KR20100121497A - 메인 프로세서 및 바인딩된 보안 코프로세서를 포함하는 컴퓨터 시스템 - Google Patents
메인 프로세서 및 바인딩된 보안 코프로세서를 포함하는 컴퓨터 시스템 Download PDFInfo
- Publication number
- KR20100121497A KR20100121497A KR1020107019327A KR20107019327A KR20100121497A KR 20100121497 A KR20100121497 A KR 20100121497A KR 1020107019327 A KR1020107019327 A KR 1020107019327A KR 20107019327 A KR20107019327 A KR 20107019327A KR 20100121497 A KR20100121497 A KR 20100121497A
- Authority
- KR
- South Korea
- Prior art keywords
- main processor
- processor
- security control
- control processor
- main
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
- G06F21/445—Program or device authentication by mutual authentication, e.g. between devices or programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2101—Auditing as a secondary aspect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2105—Dual mode as a secondary aspect
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
- Advance Control (AREA)
- Stored Programmes (AREA)
Abstract
컴퓨터 시스템(100)이 제공되고, 이 컴퓨터 시스템(100)은 메인 프로세서(10)와 보안 제어 프로세서(20)를 포함하며, 보안 제어 프로세서(20)는 메인 프로세서에 연결되어 메인 프로세서의 동작 상태를 제어 및 모니터링하도록 구성된다. 확실하게 컴퓨터 시스템이 신뢰될 수 있도록 하기 위해, 보안 제어 프로세서는, 메인 프로세서가 예를 들어 메인 프로세서 외부에 있는 명령 소스로부터 명령들을 페치하여 실행하는 동작을 하지 못하도록, 메인 프로세서를 보안 제어 프로세서의 초기화 동안 슬레이브 모드에 있도록 구성될 수 있다. 추가적으로, 보안 제어 프로세서는, 제어 인터페이스(26)를 통해 하나 이상의 명령들을 메인 프로세서에 전달함으로써 메인 프로세서의 동작 상태를 사전에 결정된 상태로 초기화시키고, 아울러 메인 프로세서가 슬레이브 모드에 있는 동안 메인 프로세서로 하여금 하나 이상의 명령들을 실행하도록 구성될 수 있다.
Description
본 발명은 컴퓨터 시스템 보안에 관한 것으로, 특히 보안 플랫폼을 사용하는 컴퓨터 시스템에 관한 것이다.
종래의 많은 컴퓨터 시스템들 및 이 컴퓨터 시스템들 상에서 실행되는 소프트웨어는 소프트웨어 및 하드웨어 매커니즘 양쪽 모두로부터 공격을 받기 쉽다. 보호될 필요가 있는 항목에 따라, 보안 시스템을 확립할 책임이 있는 시스템 설계자들은 시스템 소프트웨어의 부분들을 신뢰가능하도록 유지시키는 것과 관련된 다양한 문제들에 직면할 수 있다. 예를 들어, 운영 체제, 애플리케이션 소프트웨어, 및 기본 입력 출력 시스템(Basic Input Output System, BIOS)을 포함할 수 있는 시스템 소프트웨어는 다양한 방법으로 손상될 수 있다. 운영 체제 소프트웨어는 바이러스 및 다른 악성 소프트웨어에 의해 공격받을 수 있다. 플래시, 판독 전용 메모리(Read Only Memory, ROM) 혹은 하드 드라이브와 같은 외부 저장소는 독립적으로 조종될 수 있다. 디지털 저작권 관리(Digital Rights Management, DRM)와 함께 동작하는 시스템들은 라이센스를 위반하려는 사용자에 의해 손상될 수 있다. 이외에도 다양한 예들이 있다.
시스템 소프트웨어가 임의의 주어진 종래 컴퓨터 시스템 상에서 쉽게 공격을 받을 수 있기 때문에, 온라인 뱅킹(online banking), 온라인 보안 트레이딩(online securities trading)과 같은 이러한 서비스의 제공자 및 사용자, 멀티미디어 콘텐츠 제공자 등이 보안화된 환경에서 소프트웨어 애플리케이션을 실행시키는 것은 점점 더 어려워지고 있다.
컴퓨터 시스템 및 방법의 다양한 실시예들이 개시된다. 일 실시예에서, 컴퓨터 시스템은 메인 프로세서(main processor)와 보안 제어 프로세서(security control processor)를 포함하며, 보안 제어 프로세서는 메인 프로세서에 연결되어 메인 프로세서의 동작 상태를 제어 및 모니터링하도록 구성된다. 확실하게 컴퓨터 시스템이 신뢰될 수 있도록 하기 위해, 보안 제어 프로세서는, 메인 프로세서가 예를 들어 메인 프로세서 외부에 있는 명령 소스로부터 명령들을 페치하여 실행하는 동작을 하지 못하도록, 메인 프로세서를 보안 제어 프로세서의 초기화 동안 슬레이브 모드(slave mode)에 있도록 구성될 수 있다. 추가적으로, 보안 제어 프로세서는, 제어 인터페이스를 통해 하나 이상의 명령들을 메인 프로세서에 전달함으로써 메인 프로세서의 동작 상태를 사전에 결정된 상태로 초기화시키고, 아울러 메인 프로세서가 슬레이브 모드에 있는 동안 메인 프로세서로 하여금 하나 이상의 명령들을 실행하도록 구성될 수 있다.
또한, 예를 들어 보안 제어 프로세서가 다른 프로세서로 교체됨으로써 시스템이 하이잭킹(hijacking)되지 않도록 확실하게 보증하기 위해, 보안 제어 프로세서 및 메인 프로세서는 바인딩 동작(binding operation)을 사용하여 함께 바인딩될 수 있다. 특정 일 실시예에서, 보안 제어 프로세서가 메인 프로세서로 하여금 정상 동작 모드(normal operational mode)에서 동작하도록 하기 이전에, 보안 제어 프로세서는 바인딩 검증 동작(binding verification operation)을 개시하도록 구성되며, 이 바인딩 검증 동작 동안 메인 프로세서 및 보안 제어 프로세서는 서로를 유효화시킨다. 성공적인 바인딩 검증 동작에 응답하여 메인 프로세서는 정상 동작 모드에서 동작하도록 구성된다.
도 1은 보안 제어 프로세서를 사용하는 컴퓨터 시스템의 일 실시예를 나타낸 블럭도이다.
도 2는 보안 제어 프로세서를 사용하는 컴퓨터 시스템 실시예의 동작을 설명하는 흐름도이다.
도 2는 보안 제어 프로세서를 사용하는 컴퓨터 시스템 실시예의 동작을 설명하는 흐름도이다.
본 발명의 다양한 변형 및 대안적 형태들이 가능하며, 본 발명의 특정 실시예들이 도면에서 예시적으로 도시되고 본 명세서에서 상세히 설명된다. 그러나, 이해해야만 하는 것으로서, 이 도면 및 상세한 설명을 통해 본 발명을 이처럼 개시되는 특정 형태로만 한정하려는 것이 아니며, 이와는 반대로, 첨부되는 특허청구범위에서 정의되는 바와 같이, 본 발명의 사상 및 범위 내에 있는 모든 변형물, 등가물, 및 대안물이 포괄되도록 하려는 것이다. 주목해야 할 사항으로서, 단어 "할 수 있다"는 본 명세서 전반에 거쳐 허용적 의미(즉, 가능성을 가진다. 가능하다)로 사용되었고, 강제적 의미(즉, 해야만 한다)로 사용된 것이 아니다.
이제 도 1을 참조하면, 컴퓨터 시스템의 일 실시예의 블럭도가 제시된다. 컴퓨터 시스템(100)은 메모리 링크(16)를 통해 시스템 메모리(15)에 연결된 메인 프로세서(10)를 포함한다. 메인 프로세서(10)는 또한 입력/출력(I/O) 브리지(30)에 I/O 링크(24)를 통해 연결된다. 추가적으로, 메인 프로세서는 제어 인터페이스(26)를 통해 보안 제어 프로세서(20)에 연결된다. I/O 브리지(24)가 주변 버스(36)를 통해 보안 제어 프로세서(20)에 연결된다. I/O 브리지(24)가 또한 주변 버스(38)를 통해 기본 입력 출력(BIOS) 저장소(18)에 연결된다. 주목할 사항으로서, 비록 BIOS가 제시된 바와 같이 I/O 브리지(24)에 연결될지라도, 다른 실시예에서는 BIOS(18)가 다른 방법으로 시스템에 연결될 수도 있다. 또한 주목할 사항으로서, 설명을 간단하게 하기 위해, 다수의 다른 컴퓨터 시스템 컴포넌트들이 생략되었다. 예를 들어, 컴퓨터 시스템(100)은 키보드, 마우스, 디스플레이와 같은 I/O 디바이스들, 그리고 그래픽 어댑터들과 같은 주변 디바이스들을 포함할 수 있을 뿐만 아니라 추가적인 프로세서들, 코프로세서들 등을 포함할 수 있다.
일 실시예에서, 프로세서(10)는 x86 아키텍처를 구현한 다양한 프로세서들 중 어느 하나를 나타낼 수 있다. 그러나, 주목할 사항으로서, 다른 실시예들에서, 메인 프로세서(10)는 임의 타입의 아키텍처를 구현할 수 있다. 추가적으로, 메인 프로세서(10)는 예시적인 마이크로프로세서의 임의 타입일 수 있기 때문에, 메인 프로세서(10)는, 간략한 설명을 위해 생략된, 명령 및 데이터 캐시들, 로드 및 저장 유닛들, 페치 및 디코딩 로직, 및 하나 이상의 실행 유닛들과 같은 다른 많은 컴포넌트들 및 기능 블럭들을 포함할 수 있다.
제시된 바와 같이, 메인 프로세서(10)는 제어 인터페이스(26)를 통해 보안 제어 프로세서(20)에 연결된다. 이처럼, 메인 프로세서(10)는 제어 인터페이스 로직(13)을 포함한다. 아래에서 더 상세히 설명되는 바와 같이, 제어 인터페이스 로직(13)은 보안 제어 프로세서(20)가 항상 메인 프로세서(10)의 동작 상태를 제어 및 모니터링할 수 있게 하는 기능을 포함할 수 있다. 메인 프로세서의 동작 상태는, 데이터 메모리 이미지, 레지스터 설정들, 실행될 명령들(이것은 또 다른 메모리 이미지일 수 있음), 캐시 및 다른 내부 프로세서 상태에 의해 기술될 수 있다. 예를 들어, 제어 인터페이스 로직(13)은, 메인 프로세서(10)의 다른 하드웨어 기능들 중에서도, 보안 제어 프로세서(20)가 프로세서 명령 캐시 I 캐시(미도시)에 직접 액세스할 수 있게 하는 테스트 액세스 포트(Test Access Port, TAP) 제어기 레지스터들을 포함할 수 있다. 일 실시예에서, 제어 인터페이스(26) 및 제어 인터페이스 로직(13)은 고급 디버그 포트(advanced debug port)로서 구현될 수 있고, 이 디버그 포트는 잘 알려진 IEEE 1149.1 바운더리 스캔 표준(Boundary Scan Standard)과 호환되는 기능을 포함할 수 있으며, 이 표준은 또한 조인트 테스트 동작 그룹(Joint Test Action Group, JTAG) 표준으로 때때로 언급되기도 한다. 바운더리 스캔 표준은 TDI, TDO, TMS, TCK, 및 TRST를 포함하는 복수의 외부적으로 액세스가능한 핀들을 구비한 직렬 테스트 인터페이스를 포함한다. 그러나, 제어 인터페이스(26) 및 제어 인터페이스 로직(13)은 추가적인 신호 및 특징들을 포함할 수 있고, 이로 인해 IEEE 1149.1 바운더리 스캔 표준의 수퍼세트(superset)가 될 수 있다. 예를 들어, 일 실시예에서, 디버그 포트는 어드밴스드 마이크로 다바이시즈(Advanced Micro Devices, Inc.)의 특허된 하드웨어 디버그 툴(Hardware Debug Tool, HDT) 포트로서 구현될 수 있다. 이처럼, 포트는 예를 들어 디버그 요청 핀(debug request pin)(DBREQ_L) 및 디버그 준비 핀(debug ready pin)(DB_RDY)과 같은 그러한 핀들을 포함할 수 있다. 이러한 실시예에서, DBREQ_L은 외부적으로 할당될 수 있고, 그리고 디버그 HW는, 완료시 DB_RDY 신호를 어써팅함으로써 응답할 수 있다.
추가적으로, 예시적 실시예로 제시된 바와 같이, 메인 프로세서(10)는 하드웨어로 구현될 수 있는 와치독 타이머(WatchDog Timer, WDT) 회로(11)를 포함한다. WDT 회로(11)는 또한 디스에이블 매커니즘(disable mechanism)(12)을 포함한다. 주목할 사항으로서, 다른 실시예들에서, WDT 회로(11)가 없을 수 있고 디스에이블 매커니즘(12)이 독립형 기능(stand-alone functionality)을 가질 수 있다(즉, WDT 회로(11) 없이 사용될 수 있음). 아래에서 더 상세히 설명되는 바와 같이, 디스에이블 매커니즘(13)은, 시스템 컴포넌트들 중 일부 혹은 모두가 관련되어 있을 수 있는 분산된 와치독 기능의 부분일 수 있다. 일 실시예에서, 디스에이블 매커니즘(12)은, 예를 들어, 특정 실시예에 따라, 메인 프로세서(10)를 영구히 혹은 일시적으로 그리고 완전히 혹은 부분적으로 디스에이블시킴으로써, WDT 회로(11)와 같은 임의의 WDT 회로로부터의 신호에 응답할 수 있다.
I/O 브리지(30)는, 특정 실시예에 따라, I/O 허브 또는 사우스브리지로서 구현될 수 있다. 일 실시예에서, I/O 링크(24)는 하이퍼트랜스포트(HyperTransport™, HT) 링크로서 구현될 수 있고, 여기서 한 쌍의 단방향 링크들은 메인 프로세서(10)와 I/O 브리지(30) 간에 패킷들을 운반할 수 있다. 이처럼, I/O 브리지(30)는 입력 및 출력 버퍼들과 같은 지원 로직(support logic), 그리고 HT 링크를 제어하기 위한 흐름 제어 로직을 포함할 수 있다. 추가적으로, I/O 브리지(30)는 주변 버스(36)와 같은 주변 버스들에 대한 통신을 지원하기 위한 브리지 로직을 포함할 수 있다. 예를 들어, 일 실시예에서, 주변 버스(36) 및 버스(38)는 로우 핀 카운트(Low Pin Count, LPC) 버스들 혹은, 주변 컴포넌트 상호접속(Peripheral Component Interconnect, PCI) 버스 등을 나타낼 수 있다. 따라서, I/O 브리지(30)는 HT 프로토콜과 LPC 혹은 PCI 프로토콜 간의 통신의 중개를 위한 브리지 로직(미도시)을 포함할 수 있다. 주목할 사항으로, 다른 실시예들에서, I/O 링크(24)는 필요에 따라 임의 타입의 통신 혹은 버스 프로토콜을 사용하여 구현될 수 있다.
보안 제어 프로세서(20)는 제어 인터페이스(26)를 통해 그리고 LPC 버스(36)를 통해 I/O 브리지(30)를 경유하여 메인 프로세서(10)에 대한 통신을 수행할 수 있다. 일 실시예에서, 제어 인터페이스(26)는 단방향 인터페이스인데, 왜냐하면 메인 프로세서(10)는 제어 인터페이스(26)를 통해 보안 제어 프로세서(20)에 대한 통신을 개시할 수 없기 때문이다. 앞서 설명된 바와 같이, 보안 제어 프로세서(20)는 제어 인터페이스(26)를 통해 메인 프로세서(10)의 상태를 모니터링 및 제어할 수 있다. 특히, 특별한 제어 인터페이스 명령들을 사용하여, 보안 제어 프로세서(20)는 메인 프로세서(10)의 CPU 상태를 형성하는 모든 컴포넌트들에 대한 판독 및 기입을 행할 수 있다. 예를 들어, 보안 제어 프로세서(20)는 명령들을 업로드할 수 있고, 그리고 제어 인터페이스(26)를 통해 메인 프로세서(10)로부터 시스템 레지스터들을 판독 및 기입할 수 있다.
도시된 바와 같이, I/O 브리지(30)는 또한 하드웨어로 구현될 수 있는 WDT 회로(31)를 포함한다. 메인 프로세서(10)의 WDT(11)와 유사하게, WDT 회로(31)는 또한 디스에이블 매커니즘(32)을 포함한다. 그러나, 앞서 설명된 바와 같이, 다른 실시예들에서, WDT 회로(31)는 존재하지 않을 수 있고, 디스에이블 매커니즘(32)은 독립형 기능을 가질 수 있으며, WDT 회로(31) 없이 사용될 수 있다. 아래에서 더 상세히 설명되는 바와 같이, 디스에이블 매커니즘(32)은 분산된 와치독 기능의 부분일 수 있으며, 여기에 시스템 컴포넌트들(예를 들어, 메인 프로세서(10), 보안 제어 프로세서(20) 등)의 일부 혹은 모두가 WDT 회로 하드웨어를 포함할 수 있고, WDT 이벤트들에 관여할 수 있다. 일 실시예에서, 디스에이블 매커니즘(33)은, 예를 들어, I/O 브리지(30)를 영구히 혹은 일시적으로 특정 실시예에 따라 디스에이블시킴으로써 WDT 회로(11) 혹은 WDT 회로(31)와 같은 임의의 WDT 회로로부터의 신호에 응답할 수 있다.
예시된 실시예에서, 보안 제어 프로세서(20)는 제어 인터페이스(26)를 통해 메인 프로세서(10)에 연결되고, 주변 버스(36)(예를 들어, LPC)를 통해 I/O 브리지(30)에 연결된다. 일 실시예에서, 보안 제어 프로세서(20)는 특별 목적 프로세서로서 구현될 수 있다. 이처럼, 보안 제어 프로세서(20)는, 일단 프로그래밍된 경우, 보안 제어 프로세서(20)의 외부로부터는 액세스할 수 없는 내부 메모리(25)와 같은 다양한 특별 보안 특징을 포함할 수 있다. 추가적으로, 일 실시예에서, 보안 제어 프로세서(20)는 탬퍼링(tampering) 및 리버스 엔지니어링(reverse engineering)으로부터 보호되도록 구현될 수 있다. 보안 제어 프로세서(20)는 또한 암호 기능을 수행하는 능력을 포함할 수 있다.
일 실시예에서, 보안 제어 프로세서(20)는 내부 메모리(25)에 저장된 프로그램 명령들을 실행하도록 구성될 수 있다. 프로그램 명령들은, 일단 실행되는 경우, 보안 제어 프로세서(20)로 하여금 메인 프로세서(10) 및 컴퓨터 시스템(100)의 부트업 시퀀스(boot-up sequence)를 제어하도록 할 수 있고, 아울러 항상 메인 프로세서(10)의 동작을 제어 및 모니터링하도록 할 수 있다. 예를 들어, 시스템의 보안을 확실히 보증하기 위해, 보안 제어 프로세서(20)는, 메인 프로세서(10)가 BIOS 코드를 로드하여 실행시킬 수 있도록 하기 이전에, BIOS 저장소(18) 내의 BIOS 코드를 유효화시키도록 구성될 수 있다.
추가적으로, 보안 제어 프로세서(20)는 메인 프로세서(10)의 동작 상태를 조종하도록 구성될 수 있고, 아울러 메인 프로세서(10)가 슬레이브 모드로부터 해방되도록 하기 이전에 메인 프로세서(10)의 명령 캐시에 명령들을 업로드하도록 구성될 수 있다. 예를 들어, 일 실시예에서, 보안 제어 프로세서(20)는 메인 프로세서를 슬레이브 모드에 있게 할 수 있다. 본 명세서에서 사용되는 바와 같이, 슬레이브 모드는 이 모드 동안 메인 프로세서가, 예를 들어 디버그 포트의 제어 하에 있을 때 그 내부 명령 캐시로부터 디버그 혹은 락 단계 방식으로 명령들을 실행시킬 수 있는 모드이다. 추가적으로, 슬레이브 모드에 있을 때, 메인 프로세서(10) 내에서의 일부 회로들은 실제로 종래의 리셋 상태에 있을 수 있다. 그러나, 다른 회로들, 예를 들어 일부 클럭 회로들 및 일부 디버그 회로들은 동작가능할 수 있다. 추가적으로, 슬레이브 모드에 있을 때, 메인 프로세서(10)는 시스템 메모리(15)로부터 자동으로 명령들을 페치하여 이러한 명령들을 실행시킬 수 없다. 주목할 사항으로서, 실행 동안 데이터 아이템들이 예를 들어 반드시 비밀 유지될 필요가 없는 경우, 내부 명령 캐시가 아닌 다른 메모리가 사용될 수 있다.
와치독 기능, 및 특히 WDT 회로들(11 및 31)은 보안 제어 프로세서(20)의 존재 및 올바른 동작을 모니터링하도록 구성될 수 있다. 예를 들어, 보안 제어 프로세서(20)는 사전에 결정된 간격으로 각각의 시스템 컴포넌트에 스테이 얼라이브(stay alive) 혹은 하트비트(heartbeat) 메시지와 같은 메시지를 전송하도록 구성될 수 있다. 일 실시예에서, 보안 제어 프로세서(20)는 주기적 간격으로 또는 어떤 무작위 간격(예를 들어, 예측할 수 없는 간격, 수도랜덤(pseudorandom) 간격, 트루 랜덤(true random) 간격 등)으로 어떤 사전에 결정된 최대 간격 내에서 메시지를 전송하도록 구성될 수 있다. 스테이 얼라이브 메시지를 수신하는 경우, 메인 프로세서(10) 및 I/O 브리지(30)는 디스에이블 매커니즘(예를 들어, 13, 23)을 리셋하도록 구성될 수 있다. 그러나, 스테이 얼라이브 메시지가 없는 경우, 디스에이블 매커니즘(들)은 각각의 컴포넌트의 그 안에 구현되어 있는 하드웨어 및/또는 기능을 디스에이블시키거나 혹은 부분적으로 디스에이블시키도록 구성될 수 있다. 주목할 사항으로서, 일 실시예에서, 메인 프로세서(10)를 부분적으로 디스에이블시키는 것은 메인 프로세서로 하여금 이에 따라 시스템(100)으로 하여금 제한된 기능 모드에서 동작하도록 하는 것을 포함할 수 있다.
일 실시예에서, 디스에이블 매커니즘은 간단히 시스템 리셋이 일어나도록 구성될 수 있고, 그럼으로써 메인 프로세서(10), 보안 제어 프로세서(20), 및 I/O 브리지(30) 각각이 리셋될 수 있다. 또 다른 실시예에서, 디스에이블 매커니즘은 메인 프로세서(10), 혹은 I/O 브리지(30), 혹은 보안 제어 프로세서(20) 중 하나를 개별적으로 리셋하도록 구성될 수 있다. 그러나, 다른 실시예들에서, 시스템이 그 의도된 목적과는 다른 임의의 방식으로 사용되는 것을 막기 위해, 고려될 수 있는 것은, 디스에이블 매커니즘(들)이 예를 들어 퓨즈를 끊거나 혹은 다른 내부 하드웨어에 영구적으로 손상을 줌으로써, 하드웨어를 더 영구적으로 디스에이블시키도록 구성될 수 있다.
대안적으로, 디스에이블 매커니즘은 메인 프로세서(10)로 하여금, 보안 제어 프로세서(20)의 제어하에 있는 메모리(25) 혹은 또 다른 메모리에 이전에 저장되었던 그리고 메인 프로세서(10)에 전달되는 코드의 실행을 시작하도록 구성될 수 있다. 이 코드는 메인 프로세서(10) 및 임의의 다른 컴퓨터 시스템 컴포넌트를 프로그래밍하여 시스템으로 하여금 제한된 기능 모드에 들어가도록 할 수 있다. 이 제한된 기능 모드에서, 컴퓨터 시스템(100)의 메인 프로세서(10) 및 하나 이상의 컴포넌트들은, 정상 동작 모드에서의 기능과 비교하여 볼 때, 감소된 기능 레벨에서 동작하도록 프로그래밍될 수 있다. 따라서, 컴퓨터 시스템의 전체 기능이 감소되고, 그리고 사용자는 컴퓨터가 덜 사용됨을 알 수 있다(혹은 사용자는 심지어 컴퓨터 시스템이 전혀 사용되지 않음을 알 수 있다).
예를 들어, 하나 이상의 컴포넌트들을 제한된 기능 모드에 들어가도록 프로그래밍하는 다양한 방법들이 있다. 가능한 것들의 비한정적 목록으로는, 메모리의 크기를 최소의 양(예를 들어 LFM 코드 사용을 위해서는 충분하지만 그 이상은 아님)으로 제한하기 위해 메인 프로세서(10)의 메모리 제어기를 프로그래밍하는 것; 어드레싱가능 메모리 공간을 제한하기 위해 최상위 어드레스 비트들을 제로(0)가 되도록 컴포넌트들을 프로그래밍하는 것; 만약 하나 이상의 프로세서가 포함된다면 프로세서들을 디스에이블시키는 것; 코프로세서들, 하드웨어 가속기들, 그래픽 프로세서들, 네트워크 오프로드 엔진(network offload engine)들, 및 다른 성능 강화 보조 회로들을 디스에이블시키는 것; 외부 인터럽트들 및 디버그 기능을 디스에이블시키는 것; 프로세서 및 시스템 캐시들을 디스에이블시키는 것; 프로세서의 동작 주파수를 감소시키는 것; 다른 동작 주파수들(예를 들어, 메모리, 그래픽 인터페이스, 내부 인터페이스들)을 감소시키는 것; 구성가능한 폭을 갖는 내부 인터페이스의 크기(예를 들어, 하이퍼트랜스포트(HyperTransport™) 링크)를 감소시키는 것; 비디오 디스플레이 모드를 가능한 가장 낮은 해상도로 감소시키거나 혹은 단지 텍스트만 표시하도록 감소시키는 것; 네트위크 접속을 컴퓨터 시스템의 소유자가 인증한 사이트들로만 한정하기 위해 NIC(들)(24)을 프로그래밍하는 것; 그리고 하나 이상의 주변 디바이스들(예를 들어, 비디오, 키보드, 및 마우스 외의 모든 디바이스들)을 디스에이블시키는 것; 등이 있으며, 이들 중 하나 이상이 임의의 조합으로 사용될 수 있다.
도 2를 참조하면, 컴퓨터 시스템(100)과 같은 컴퓨터 시스템의 실시예의 동작을 설명하는 흐름도가 제시된다. 블럭(200)에서 시작하고, 여기서 예를 들어, 파워온 리셋 동안과 같은 시스템 리셋이 개시된다. 이에 응답하여, 보안 제어 프로세서(20)가 초기화하기 시작한다. 보안 제어 프로세서(20) 초기화의 일부로서, 메인 프로세서(10)는 슬레이브 모드에 있게 된다(블럭(205)). 보안 제어 프로세서(20)는, 보안 제어 프로세서(20)의 집적 회로 패키지 외부로부터 (소프트웨어 혹은 하드웨어를 통해) 액세스할 수 없는 내부 메모리(25)에 액세스한다. 일 실시예에서, 내부 메모리(25)는 제조하는 동안 프로그래밍될 수 있다. 그러나, 제조 프로그래밍 이후, 내부 메모리(25)는 다시 프로그래밍될 수 없고, 그리고 내부 메모리(25)는 임의의 다른 외부 디바이스들에 액세스할 수 없게 된다. 따라서, 일 실시예에서, 보안 제어 프로세서(20)는 제조자에의 의해 증명된, 서명되고 고정된 소프트웨어 상에서 실행된다. 이 소프트웨어는 모든 소트트웨어의 신빙성 및 무결성을 그 실행 전에 점검한다. 추가적으로, 다른 실시예들에서, 보안 제어 프로세서(20)가 예를 들어 이러한 점검을 행하기 위해 내부 코드(예를 들어, SHA1 및 RSA)를 사용하는 코드 및 저장물(예를 들어 ROM 내의 공개 키)의 신빙성 및 무결성을 점검할 수 있을 때, 보안 제어 프로세서(20)는 외부 메모리(예를 들어, ROM)에 저장된 코드를 사용할 수 있다.
보안 제어 프로세서(20)는 프로그램 명령들을 제어 인터페이스(26)를 통해 내부 메모리(25)로부터 메인 프로세서(10)로 전달한다. 일 실시예에서, 보안 제어 프로세서(20)는 제어 인터페이스(26)를 사용하여 이 명령들을 메인 프로세서(10)의 명령 캐시에 로드한다(블럭(210)). 추가적으로, 보안 제어 프로세서(20)는, 제어 인터페이스(26)를 통해 커맨드들을 발행하고 시스템 레지스터들에 액세스함으로써, 메인 프로세서(10) 내의 다양한 시스템 레지스터들을 초기화시킬 수 있다. 추가적으로, 보안 제어 프로세서(20)는 메인 프로세서(10)로 하여금 명령 캐시에 저장된 코드를 실행하도록 할 수 있다(블럭(215)).
일 실시예에서, 명령들은 실행될 때 메인 프로세서(10)를 알려진 상태로 초기화시킬 수 있고, 바인딩 검증 동작을 개시시킬 수 있다(블럭(220)). 특히, 컴퓨터 시스템의 제조 동안, 보안 제어 프로세서(20) 및 메인 프로세서(10)는 단지 바인딩된 디바이스들만이 서로 통신할 수 있도록 함께 바인딩될 수 있다. 특히, 만약 바인딩된 디바이스들이 예를 들어 AES 암호화를 사용하여 통신한다면, 단지 키를 소유한 디바이스들만이 참여할 수 있다. 따라서, 바인딩 프로세스는 바인딩된 디바이스들이 동일한 키를 가지고 있음을 보증하는 것을 포함한다. 보안 제어 프로세서(20)와 메인 프로세서(10)를 바인딩함으로써, 컴포넌트는 이후에 다른 컴포넌트로 교체 및 제거되지 않을 수 있다.
일 실시예에서, 바인딩 검증 동작은 메인 프로세서(10)가 암호화 기능 및/또는 랜덤화된 동작을 수행하는 것(이것은 메인 프로세서(10) 내에 비밀 혹은 키를 발생시키는 것을 포함할 수 있음)을 포함할 수 있다. 이 키가 발생되는 경우, 메인 프로세서(10)는 보안 제어 프로세서(20)로부터 전송된 프로그램 명령들과 함께 포함된 키로 이 발생된 키를 유효화시킬 수 있다. 유사하게, 보안 제어 프로세서(20)는 메인 프로세서(10) 내의 사전에 결정된 레지스터로부터 키 값을 판독할 수 있다. 보안 제어 프로세서(20)는 이 키 값을 유효화시킬 수 있다. 따라서, 바인딩 검증 동작은 보안 제어 프로세서(20)에 대해 메인 프로세서(10)가 그 연결된 하나의 단지 올바른 프로세서라고 유효화시킬 수 있다. 마찬가지로, 메인 프로세서(10)는 보안 제어 프로세서(20)를 그 연결된 하나의 단지 올바른 보안 프로세서로서 유효화시킬 수 있다. 두 개의 프로세서들을 바인딩하기 위한 다수의 서로 다른 매커니즘들이 존재할 수 있음을 알 수 있다. 예를 들어, 공개/개인 키들이 구현될 수 있는 비대칭 암호화 방법 혹은 보안 제어 프로세서(20)와 메인 프로세서(10)가 이러한 바인딩을 검증할 수 있도록 보안화된 방식으로 이 키들이 교환되는 임의의 다른 매커니즘이 있을 수 있다. 만약 바인딩 검증 동작이 실패한다면(블럭(223)), 보안 제어 프로세서(20) 혹은 메인 프로세서(10) 또는 이들 모두는 이 동작을 다시 시도할 수 있다. 그리고 만약 바인딩 검증 동작이 다시 실패한다면, 시스템은 락다운 모드(lock down mode)로 진입할 수 있고, 여기서 메인 프로세서(10)는 동작하지 못하게 된다(블럭(224)).
만약 바인딩 검증 프로세스가 성공이라면(블럭(223)), 보안 제어 프로세서(20)는 BIOS 프로그램 명령들을 유효화시킨다(블럭(225)). 만약 BIOS가 유효화되지 않는다면, 보안 제어 프로세서(20)는 시스템으로 하여금 락다운 모드에 진입하도록 할 수 있고, 여기서 메인 프로세서(10)는 동작하지 못하게 된다(블럭(224)). 그러나, 만약 BIOS가 유효화된다면(블럭(226)), 보안 제어 프로세서(20)는 메인 프로세서(10)를 해방시켜 메인 프로세서가 초기화를 시작할 수 있도록 하고 아울러 BIOS 코드를 로드하여 실행시킬 수 있게 하고(블럭(230)), 그리고 운영 체제 코드 및 애플리케이션 소프트웨어의 로드 및 실행을 시작하도록 하고, 정상 동작 모드(normal operational mode)에 진입하도록 할 수 있다(블럭(235)).
동작 동안, 보안 제어 프로세서(20)는 제어 인터페이스(26)를 통해 메인 프로세서(10)의 동작 상태를 계속 모니터링 및 제어하고(블럭(240)), 반면에 앞서 설명된 WDT 회로는 스테이 얼라이브 신호를 사용하여 보안 제어 프로세서(20)의 존재를 모니터링할 수 있다(블럭(255)).
만약 메인 프로세서(10)의 동작이 보안 제어 프로세서(20)에 의해 정정된 것으로 고려된다면(블럭(245)), 보안 제어 프로세서(20)는 동작을 계속 모니터링한다(블럭(240)). 그러나, 만약 메인 프로세서(10)의 동작이 보안 제어 프로세서(20)에 의해 정정되지 않은 것으로 고려된다면(블럭(245)), 보안 제어 프로세서(20)는 시스템을 디스에이블시킬 수 있거나, 또는 메인 프로세서(10)로 하여금 동작하지 못하도록 할 수 있거나(블럭(250)) 혹은 감소된 능력으로 동작하도록 할 수 있다. 예를 들어, 일 실시예에서 어떤 애플리케이션 소프트웨어는 실행될 때, 특정 메모리 위치 혹은 레지스터에 저장된 서명 값을 포함할 수 있다. 일 실시예에서, 서명 값은, 소프트웨어의 전체 바이너리 코드를 어떤 수 공간(예를 들어, 160 비트 수)으로 맵핑시키는, 일방향 함수(one-way function)의 암호화된 결과를 나타낸다. 달리 말하면, 이로 인해 발생되는 수는 코드를 나타낸다. 어떤 수의 발생 제어 방법이 없음에 틀림없고 다시 돌아갈 방법도 없음에 틀림없다. 보안 제어 프로세서(20)는 이 서명을 로드 및 검증할 수 있다. 만약 키가 정합한다면, 메인 프로세서(10)는 계속 진행하도록 허용된다. 만약 정합하지 않는다면, 보안 제어 프로세서(20)는 메인 프로세서(10)의 동작을 정지시킬 수 있다. 일 실시예에서, 메인 프로세서(10) 상에서 실행되는 모든 소프트웨어는 인증되지 않은 소프트웨어 및 악성 소프트웨어가 실행되는 것을 막도록 유효화돼야만 한다. 따라서, 보안 제어 프로세서(20)는 컴퓨터 시스템(100)이 하이잭킹되거나 다른 용도로 변형되는 것을 막을 수 있다.
앞서 설명된 WDT 회로는 스테이 얼라이브 신호를 사용하여 보안 제어 프로세서(20)의 존재를 모니터링할 수 있다(블럭(255)). 만약 WDT 회로(들)이 보안 제어 프로세서(20)가 존재하고 동작하고 있음을 나타내는 스테이 얼라이브 신호를 계속 검출한다면(블럭(260)), WDT 회로(들)은 스테이 얼라이브 신호를 사용하여 보안 제어 프로세서(20)의 존재를 계속 모니터링한다(블럭(255)). 그러나, 만약 WDT 회로(들)이 최대 허용가능한 타임아웃 기간 내에 스테이 얼라이브 신호를 검출하는 데 실패한다면, 디스에이블 매커니즘(들)이, 앞서 설명된 바와 같이, 다양한 방법으로 컴퓨터 시스템을 디스에이블시키거나 혹은 부분적으로 디스에이블시킬 수 있다. 따라서, WDT 회로(들)는, 시스템이 정상 동작으로 초기화된 이후 제거 및 탬퍼링되거나 다른 프로세서로 대체되는 것으로부터 본래 보안 제어 프로세서(20)를 교체하려는 공격을 막을 수 있다.
비록 앞서의 실시예들이 상당히 상세히 설명되었지만, 앞서의 개시 내용이 충분히 이해됐다면 본 발명의 기술분야에서 숙련된 자들은 수많은 변형 및 수정이 가능함을 명백해 알 수 있을 것이다. 다음의 특허청구범위는 이러한 변형 및 수정 모두를 포괄하는 것으로 해석되도록 의도되었다.
본 발명은 일반적으로 컴퓨터 시스템 보안에 적용될 수 있다.
Claims (10)
- 컴퓨터 시스템(100)으로서,
메인 프로세서(10)와; 그리고
상기 메인 프로세서에 연결되어 상기 메인 프로세서의 동작 상태를 제어하고 모니터링하도록 된 보안 제어 프로세서(20)를 포함하여 구성되고,
상기 보안 제어 프로세서는, 상기 메인 프로세서가 상기 메인 프로세서 외부에 있는 명령 소스로부터 명령들을 페치하여 실행하는 동작을 하지 못하도록, 상기 메인 프로세서를 상기 보안 제어 프로세서의 초기화 동안 슬레이브 모드(slave mode)에 있도록 하며,
상기 보안 제어 프로세서는 또한, 제어 인터페이스(26)를 통해 하나 이상의 명령들을 상기 메인 프로세서에 전달함으로써 상기 메인 프로세서의 동작 상태를 사전에 결정된 상태로 초기화시키고, 아울러 상기 메인 프로세서가 상기 슬레이브 모드에 있는 동안 상기 메인 프로세서로 하여금 상기 하나 이상의 명령들을 실행하도록 하는 것을 특징으로 하는 컴퓨터 시스템. - 제1항에 있어서,
상기 보안 제어 프로세서는 항상 상기 메인 프로세서의 동작 상태를 제어하고 모니터링하도록 된 것을 특징으로 하는 컴퓨터 시스템. - 제1항에 있어서,
상기 하나 이상의 명령들은, 상기 보안 제어 프로세서에 의해 제어되고 검증되는 메모리 저장소(25)로부터 상기 메인 프로세서 내의 명령 캐시로 전달되는 것을 특징으로 하는 컴퓨터 시스템. - 제1항에 있어서,
상기 제어 인터페이스는 포트 제어기(13), 하나 이상의 데이터 신호들, 및 제어 신호를 포함하는 디버그 포트를 포함하는 것을 특징으로 하는 컴퓨터 시스템. - 제1항에 있어서,
상기 제어 인터페이스는 상기 보안 제어 프로세서와 상기 보안 제어 프로세서에 의해서만 개시되는 상기 메인 프로세서 간의 통신을 제공하는 것을 특징으로 하는 컴퓨터 시스템. - 제1항에 있어서,
상기 보안 제어 프로세서가 상기 메인 프로세서로 하여금 정상 동작 모드에서 동작하도록 하기 이전에, 상기 보안 제어 프로세서는 메모리 저장 디바이스(18)에 저장된 기본 입력 출력 시스템(Basic Input Output System, BIOS) 명령들을 유효화하도록 된 것을 특징으로 하는 컴퓨터 시스템. - 제6항에 있어서,
상기 보안 제어 프로세서가 상기 메인 프로세서로 하여금 상기 정상 동작 모드에서 동작하도록 하는 것에 응답하여, 상기 메인 프로세서는 상기 메모리 저장 디바이스로부터 상기 BIOS 명령들을 로드하도록 된 것을 특징으로 하는 컴퓨터 시스템. - 제1항에 있어서,
상기 보안 제어 프로세서가 상기 메인 프로세서로 하여금 정상 동작 모드에서 동작하도록 하기 이전에, 상기 보안 제어 프로세서는 바인딩 검증 동작을 개시시키며, 상기 바인딩 검증 동작 동안 상기 메인 프로세서 및 상기 보안 제어 프로세서는 서로를 유효화시키고, 성공적인 바인딩 검증 동작에 응답하여 상기 메인 프로세서는 상기 정상 동작 모드에서 동작하도록 된 것을 특징으로 하는 컴퓨터 시스템. - 제1항에 있어서,
상기 메인 프로세서는 와치독 타이머 회로(watchdog timer circuit)(11)를 포함하고, 상기 와치독 타이머 회로(11)는, 정상 동작 상태에서의 동작 동안, 상기 보안 제어 프로세서가 현재 존재하고 동작하고 있는지를 표시하는 신호를 모니터링하고, 아울러 상기 보안 제어 프로세서가 현재 존재하지 않거나 혹은 올바르게 동작하지 않음을 현재 신호가 표시하고 있다는 결정에 응답하여 상기 메인 프로세서에 와치독 타임아웃 통지(watchdog timeout notification)를 제공하도록 된 것을 특징으로 하는 컴퓨터 시스템. - 제9항에 있어서,
상기 메인 프로세서는, 상기 와치독 타임아웃 통지의 수신에 응답하여, 상기 메인 프로세서를 적어도 부분적으로 디스에이블(disable)시키도록 된 디스에이블 회로(12)를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/022,446 | 2008-01-30 | ||
US12/022,446 US20090193230A1 (en) | 2008-01-30 | 2008-01-30 | Computer system including a main processor and a bound security coprocessor |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20100121497A true KR20100121497A (ko) | 2010-11-17 |
Family
ID=40627406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107019327A KR20100121497A (ko) | 2008-01-30 | 2009-01-30 | 메인 프로세서 및 바인딩된 보안 코프로세서를 포함하는 컴퓨터 시스템 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20090193230A1 (ko) |
KR (1) | KR20100121497A (ko) |
CN (1) | CN101952831A (ko) |
TW (1) | TW200941277A (ko) |
WO (1) | WO2009099558A2 (ko) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010056303A1 (en) | 2008-11-12 | 2010-05-20 | Bravo Zulu International Ltd. | Lead acid battery de-sulfation |
US8601302B2 (en) * | 2009-06-22 | 2013-12-03 | Amazon Technologies, Inc. | Processor system in low power state retention mode with linear regulator off and switch regulator low in power management IC |
US8327125B2 (en) * | 2009-12-28 | 2012-12-04 | General Instrument Corporation | Content securing system |
EP2590072A4 (en) * | 2010-06-30 | 2013-10-09 | Fujitsu Ltd | SYSTEM CONTROL DEVICE, INFORMATION PROCESSING SYSTEM, AND DATA MIGRATION AND RESTORATION METHOD FOR INFORMATION PROCESSING SYSTEM |
US8612786B1 (en) * | 2010-09-24 | 2013-12-17 | Amazon Technologies, Inc. | Deep idle mode |
FR2970099B1 (fr) * | 2010-12-29 | 2013-01-11 | Viaccess Sa | Procede de chargement d'un code d'au moins un module logiciel |
TWI540438B (zh) | 2011-10-13 | 2016-07-01 | 新唐科技股份有限公司 | 記憶體控制元件 |
US8971144B2 (en) * | 2012-01-19 | 2015-03-03 | Quixant Plc | Hardware write-protection |
US8832837B2 (en) * | 2012-06-29 | 2014-09-09 | Mcafee Inc. | Preventing attacks on devices with multiple CPUs |
US9043654B2 (en) * | 2012-12-07 | 2015-05-26 | International Business Machines Corporation | Avoiding processing flaws in a computer processor triggered by a predetermined sequence of hardware events |
US20150067314A1 (en) * | 2013-08-30 | 2015-03-05 | Timothy J. Strauss | Secure firmware flash controller |
US9503443B2 (en) * | 2014-09-15 | 2016-11-22 | Ciena Corporation | Secure access systems and methods to network elements operating in a network |
JP6816345B2 (ja) * | 2015-04-24 | 2021-01-20 | 富士電機株式会社 | 駆動制御装置 |
US9736693B2 (en) * | 2015-07-21 | 2017-08-15 | Motorola Solutions, Inc. | Systems and methods for monitoring an operating system of a mobile wireless communication device for unauthorized modifications |
TWI655555B (zh) * | 2016-10-31 | 2019-04-01 | 威盛電子股份有限公司 | 基本輸入輸出系統之保護設備與方法 |
CN107273770B (zh) * | 2016-10-31 | 2020-08-11 | 威盛电子股份有限公司 | 基本输入输出系统的保护设备与方法 |
US10678927B2 (en) * | 2017-08-31 | 2020-06-09 | Texas Instruments Incorporated | Randomized execution countermeasures against fault injection attacks during boot of an embedded device |
US10740494B2 (en) | 2017-09-06 | 2020-08-11 | Google Llc | Central and delegate security processors for a computing device |
EP3543881B1 (en) * | 2018-01-29 | 2021-08-11 | Shenzhen Goodix Technology Co., Ltd. | Chip access method, security control module, chip and debugging device |
WO2021023164A1 (zh) | 2019-08-02 | 2021-02-11 | 云丁网络技术(北京)有限公司 | 一种智能锁具控制方法和系统 |
US11928210B2 (en) | 2022-03-02 | 2024-03-12 | Flexxon Pte. Ltd. | Module and method for monitoring systems of a host device for security exploitations |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4521871A (en) * | 1982-04-12 | 1985-06-04 | Allen-Bradley Company | Programmable controller with back-up capability |
US5274795A (en) * | 1989-08-18 | 1993-12-28 | Schlumberger Technology Corporation | Peripheral I/O bus and programmable bus interface for computer data acquisition |
US5491787A (en) * | 1994-08-25 | 1996-02-13 | Unisys Corporation | Fault tolerant digital computer system having two processors which periodically alternate as master and slave |
US5841969A (en) * | 1996-08-13 | 1998-11-24 | Honeywell Inc. | Single bus architecture supporting subsystems of various criticality levels |
US6629268B1 (en) * | 2000-01-25 | 2003-09-30 | International Business Machines Corporation | Method and apparatus for servicing a processing system through a test port |
US6839792B2 (en) * | 2000-12-15 | 2005-01-04 | Innovative Concepts, Inc. | Data modem |
US6789147B1 (en) * | 2001-07-24 | 2004-09-07 | Cavium Networks | Interface for a security coprocessor |
US6968477B2 (en) * | 2002-03-07 | 2005-11-22 | International Business Machines Corporation | System and method for system surveillance using firmware progress code |
US7464405B2 (en) * | 2004-03-25 | 2008-12-09 | International Business Machines Corporation | Method for preventing loading and execution of rogue operating systems in a logical partitioned data processing system |
US7136952B2 (en) * | 2004-04-28 | 2006-11-14 | International Business Machines Corporation | Method for programming firmware hubs using service processors |
JP2006031525A (ja) * | 2004-07-20 | 2006-02-02 | Sony Corp | 情報処理装置および情報処理方法、並びに、プログラム |
-
2008
- 2008-01-30 US US12/022,446 patent/US20090193230A1/en not_active Abandoned
-
2009
- 2009-01-30 CN CN2009801035791A patent/CN101952831A/zh active Pending
- 2009-01-30 WO PCT/US2009/000603 patent/WO2009099558A2/en active Application Filing
- 2009-01-30 KR KR1020107019327A patent/KR20100121497A/ko not_active Application Discontinuation
- 2009-02-02 TW TW098103175A patent/TW200941277A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
CN101952831A (zh) | 2011-01-19 |
TW200941277A (en) | 2009-10-01 |
US20090193230A1 (en) | 2009-07-30 |
WO2009099558A3 (en) | 2009-10-15 |
WO2009099558A2 (en) | 2009-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20100121497A (ko) | 메인 프로세서 및 바인딩된 보안 코프로세서를 포함하는 컴퓨터 시스템 | |
JP5607546B2 (ja) | 保護された動作モードの間にシステムアクセスを制御するための方法および装置 | |
US8843769B2 (en) | Microcontroller with embedded secure feature | |
JP5031029B2 (ja) | 複数のプロセッサにまたがるセキュア・ブートのシステム、方法およびプログラム | |
Kauer | Oslo: improving the security of trusted computing. | |
JP4883459B2 (ja) | ポイントツーポイント相互接続システム上のセキュアな環境初期化命令の実行 | |
US8375219B2 (en) | Program and operation verification | |
US7739517B2 (en) | Hardware-based authentication of a software program | |
TWI397859B (zh) | 提供安全執行環境之裝置、微處理器裝置、以及在安全執行環境中執行安全編碼之方法 | |
US8341393B2 (en) | Security to extend trust | |
US9740887B2 (en) | Methods and systems to restrict usage of a DMA channel | |
CN101103584A (zh) | 安全及后向兼容处理器以及在其上的安全软件的执行 | |
US9367327B2 (en) | Method to ensure platform silicon configuration integrity | |
WO2011145199A1 (ja) | 外部ブートデバイス、外部ブート方法、情報処理装置及びネットワーク通信システム | |
US11734457B2 (en) | Technology for controlling access to processor debug features | |
Yao et al. | Firmware Secure Coding Practice | |
Al Mahmod | Towards Unclonable System Design for Resource-Constrained Applications | |
Mahmod | Towards Unclonable System Design for Resource-Constrained Application | |
Günes et al. | Verified boot in embedded systems with hard boot time constraints | |
vor starken Angreifern et al. | Trusted Systems in Untrusted Environments: Protecting against Strong Attackers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |