KR101759411B1 - 보안 보조 프로세서 부팅 성능 - Google Patents
보안 보조 프로세서 부팅 성능 Download PDFInfo
- Publication number
- KR101759411B1 KR101759411B1 KR1020157021704A KR20157021704A KR101759411B1 KR 101759411 B1 KR101759411 B1 KR 101759411B1 KR 1020157021704 A KR1020157021704 A KR 1020157021704A KR 20157021704 A KR20157021704 A KR 20157021704A KR 101759411 B1 KR101759411 B1 KR 101759411B1
- Authority
- KR
- South Korea
- Prior art keywords
- response
- security coprocessor
- computing device
- coprocessor
- security
- 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/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
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- 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/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/127—Trusted platform modules [TPM]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Hardware Redundancy (AREA)
- Retry When Errors Occur (AREA)
Abstract
컴퓨팅 장치에서 플랫폼 초기화를 개선하기 위한 기술들은 컴퓨팅 장치의 기본 입출력 시스템(BIOS)을 이용하여 컴퓨팅 장치의 플랫폼의 초기화를 개시하는 것을 포함한다. 보안 보조 프로세서 드라이버 모듈은 BIOS 모듈로부터 보안 프로세서 명령이 수신될 때 보안 보조 프로세서 명령을 명령 목록에 부가한다. 컴퓨팅 장치는, 이전에 제출된 보안 보조 프로세서 명령에 대한 응답의 이용 가능성에 관해 보안 보조 프로세서에 질의하고, 보안 보조 프로세서 드라이버 모듈에 의해 수신된 임의의 응답들을 BIOS 모듈에 전달하고, 명령 목록 내의 다음 보안 보조 프로세서 명령을 보안 보조 프로세서에 제출하기 위해 플랫폼의 초기화의 주기적 인터럽트를 설정한다.
Description
컴퓨팅 장치의 보안을 향상시키기 위해 신뢰할 수 있는 플랫폼 모듈(trusted platform module, TPM)들 및 다른 보안 보조 프로세서들이 흔히 이용된다. 그러한 보안 보조 프로세서들은 전형적으로 다양한 암호화 기능들을 수행하고 플랫폼의 무결성을 증명하는 데 종종 이용된다. 게다가, 보안 보조 프로세서들은 일반적으로 암호화 절차들을 수행할 수 있기 때문에, 이들은 어떤 상황들에서 컴퓨팅 장치의 주 프로세서로부터 그러한 암호화 절차들에 대한 부담을 덜어주기 위해 이용된다.
오늘날의 사회에서는, 소비자가 다양한 컴퓨팅 장치들을 즐기는 데 속도가 핵심적이다. 예를 들어, 표준 노트북 컴퓨터들에 비하여 증가된 부팅 속도에 중점을 두고 울트라북들이 시장에 등장하였다. 또한, 운영 체제들 및 컴퓨터 플랫폼들에 대한 일부 표준들은, 예를 들어, 컴퓨팅 장치에 불과 몇 초안에 UEFI(Unified Extensible Firmware Interface) 기본 입출력 시스템(BIOS) POST(Power-On Self-Test)를 완료할 것을 요구함으로써 부팅 속도에 집중할 것을 제조사들에 요구한다. 그러한 표준들은 컴퓨팅 장치들이 신속히 부팅되는 것과 서버 재부팅과 관련된 가동 중지 시간이 최소가 되는 것을 보장한다. 또한, 전형적인 TPM의 부팅과 관련된 대기 시간은 상당한데, 이는 그러한 표준들과는 반대된다.
본 명세서에 기술된 개념들은 첨부 도면들에 제한이 아니라 예로서 예시되어 있다. 간단 명료한 예시를 위해, 도면들에 도시된 요소들은 반드시 일정한 비율로 도시되어 있지는 않다. 적절하다고 여겨지는 경우, 대응하거나 유사한 요소들을 나타내기 위해 도면들 사이에 참조 라벨들이 반복되었다.
도 1은 플랫폼 초기화를 개선하기 위한 컴퓨팅 장치의 적어도 하나의 실시예의 단순화된 블록도이다.
도 2는 도 1의 컴퓨팅 장치의 환경의 적어도 하나의 실시예의 단순화된 블록도이다.
도 3 및 도 4는 도 1의 컴퓨팅 장치에서 플랫폼 초기화를 개선하기 위한 방법의 적어도 하나의 실시예의 단순화된 흐름도이다.
도 5는 도 1의 컴퓨팅 장치에 대한 부팅 흐름의 단순화된 흐름도이다.
도 6은 전통적인 시스템에 대한 부팅 흐름의 단순화된 흐름도이다.
도 1은 플랫폼 초기화를 개선하기 위한 컴퓨팅 장치의 적어도 하나의 실시예의 단순화된 블록도이다.
도 2는 도 1의 컴퓨팅 장치의 환경의 적어도 하나의 실시예의 단순화된 블록도이다.
도 3 및 도 4는 도 1의 컴퓨팅 장치에서 플랫폼 초기화를 개선하기 위한 방법의 적어도 하나의 실시예의 단순화된 흐름도이다.
도 5는 도 1의 컴퓨팅 장치에 대한 부팅 흐름의 단순화된 흐름도이다.
도 6은 전통적인 시스템에 대한 부팅 흐름의 단순화된 흐름도이다.
본 개시 내용의 개념들은 다양한 수정들 및 대안 형태들이 가능하며, 그것의 특정한 실시예들이 도면들에 예로서 도시되었고 본 명세서에 상세히 기술될 것이다. 그러나, 본 개시 내용의 개념들을 개시된 특정한 형태들로 제한하려는 의도는 없으며, 오히려, 의도는 본 개시 내용 및 부속된 청구항들과 일관된 모든 수정들, 등가물들, 및 대안들을 포함하려는 것임을 이해해야 한다.
본 명세서에서 "하나의 실시예", "일 실시예", "예시적인 실시예" 등에 대한 언급들은 기술된 실시예가 특정한 특징, 구조, 또는 특성을 포함할 수 있지만, 모든 실시예가 반드시 그 특정한 특징, 구조, 또는 특성을 포함할 수 있거나 포함하지 않을 수도 있음을 나타낸다. 더욱이, 그러한 문구들은 반드시 동일한 실시예를 언급하는 것은 아니다. 또한, 특정한 특징, 구조, 또는 특성이 일 실시예와 관련하여 기술될 때, 명시적으로 기술되어 있든 아니든 다른 실시예들과 관련하여 그러한 특징, 구조, 또는 특성을 달성하는 것은 통상의 기술자가 알고 있는 것이라고 생각된다.
개시된 실시예들은, 일부 경우에, 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 임의 조합으로 구현될 수 있다. 개시된 실시예들은 또한 하나 이상의 프로세서에 의해 판독되어 실행될 수 있는, 일시적 또는 비일시적 기계 판독 가능(예컨대, 컴퓨터 판독 가능) 저장 매체에 실리거나 저장된 명령어들로서 구현될 수도 있다. 기계 판독 가능 저장 매체는 기계에 의해 판독 가능한 형태로 정보를 저장하거나 전송하기 위한 임의의 저장 장치, 메커니즘, 또는 기타 물리 구조(예컨대, 휘발성 또는 비휘발성 메모리, 미디어 디스크, 또는 기타 미디어 장치)로서 구현될 수 있다.
도면들에는, 일부 구조적 또는 방법 특징들이 특정한 배열들 및/또는 순서들로 도시될 수 있다. 그러나, 그러한 특정한 배열들 및/또는 순서들이 요구되지 않을 수도 있음을 알아야 한다. 오히려, 일부 실시예들에서, 그러한 특징들은 예시적인 도면들에 도시된 것과는 다른 방식 및/또는 순서로 배열될 수 있다. 게다가, 특정한 도면에 구조적 또는 방법 특징이 포함되는 것은 그러한 특징이 모든 실시예들에서 요구됨을 암시하려는 것이 아니며, 일부 실시예들에서는, 포함되지 않을 수도 있고 다른 특징들과 조합될 수도 있다.
이제 도 1을 참고하면, 예시적인 실시예에서, 개선된 플랫폼 초기화를 위한 컴퓨팅 장치(100)가 컴퓨팅 장치(100)의 BIOS로 하여금 보안 보조 프로세서로부터의 응답을 기다리는 동안 컴퓨팅 장치(100)의 다른 구성 요소들에 대한 초기화 프로세스를 계속하게 하도록 구성된다. 아래 상세히 기술된 바와 같이, 이는 보안 보조 프로세서에 전송된 보안 보조 프로세서 명령들 각각에 대해 보안 보조 프로세서로부터의 응답을 기다리는 것과 관련된 상당한 대기 시간을 없앤다.
컴퓨팅 장치(100)는 플랫폼 초기화를 개선하고 본 명세서에 기술된 기능들을 수행할 수 있는 임의의 유형의 컴퓨팅 장치로서 구현될 수 있다. 예를 들어, 컴퓨팅 장치(100)는 휴대폰, 스마트폰, 태블릿 컴퓨터, 랩톱 컴퓨터, 개인용 정보 단말기(personal digital assistant), 모바일 인터넷 장치, 데스크톱 컴퓨터, 서버, 및/또는 임의의 다른 컴퓨팅/통신 장치로서 구현될 수 있다. 도 1에 도시된 바와 같이, 예시적인 컴퓨팅 장치(100)는 프로세서(110), 입출력("I/O") 서브시스템(112), 메모리(114), 데이터 저장소(116), 하나 이상의 주변 장치(118), 및 보안 보조 프로세서(120)를 포함한다. 물론, 컴퓨팅 장치(100)는, 다른 실시예들에서, 전형적인 컴퓨팅 장치에서 흔히 발견되는 것들과 같은 다른 또는 부가의 구성 요소들(예컨대, 다양한 입출력 장치들, 통신 회로 등)을 포함할 수 있다. 게다가, 일부 실시예들에서, 예시적인 구성 요소들 중 하나 이상이 다른 구성 요소에 포함되거나, 달리 다른 구성 요소의 일부로부터 포함될 수 있다. 예를 들어, 메모리(114), 또는 그의 부분들이 일부 실시예들에서 프로세서(110)에 포함될 수 있다.
프로세서(110)는 본 명세서에 기술된 기능들을 수행할 수 있는 임의 유형의 프로세서로서 구현될 수 있다. 예를 들어, 프로세서는 단일 또는 다중 코어 프로세서(들), 디지털 신호 프로세서, 마이크로컨트롤러, 또는 기타 프로세서 또는 처리/제어 회로로서 구현될 수 있다. 유사하게, 메모리(114)는 본 명세서에 기술된 기능들을 수행할 수 있는 임의 유형의 휘발성 또는 비휘발성 메모리 또는 데이터 저장소로서 구현될 수 있다. 동작 시에, 메모리(114)는 운영 체제, 애플리케이션, 프로그램, 라이브러리, 및 드라이버와 같은 컴퓨팅 장치(100)의 동작 중에 사용되는 다양한 데이터 및 소프트웨어를 저장할 수 있다. 메모리(114)는 프로세서(110), 메모리(114), 및 컴퓨팅 장치(100)의 다른 구성 요소들과의 입출력 동작들을 용이하게 하는 회로 및/또는 구성 요소들로서 구현될 수 있는 I/O 서브시스템(112)을 통해 프로세서(110)에 통신 가능하게 연결된다. 예를 들어, I/O 서브시스템(112)은 메모리 컨트롤러 허브, 입출력 제어 허브, 펌웨어 장치, 통신 링크(즉, 포인트-투-포인트 링크, 버스 링크, 와이어, 케이블, 광 가이드, 인쇄 회로 기판 트레이스 등) 및/또는 입출력 동작들을 용이하게 하는 다른 구성 요소들 및 서브시스템들로서 구현되거나, 달리 이들을 포함할 수 있다. 일부 실시예들에서, I/O 서브시스템(112)은 시스템 온 칩(SoC; system-on-a-chip)의 일부를 형성하고, 프로세서(110), 메모리(114), 및 컴퓨팅 장치(100)의 다른 구성 요소들과 함께, 단일 집적 회로 칩에 포함될 수 있다.
데이터 저장소(116)는, 예를 들어, 메모리 장치 및 회로, 메모리 카드, 하드 디스크 드라이브, 솔리드-스테이트 드라이브, 또는 기타 데이터 저장 장치와 같이 데이터의 단기간 또는 장기간 저장을 위해 구성된 임의 유형의 장치 또는 장치들로서 구현될 수 있다. 컴퓨팅 장치(100)의 주변 장치들(118)은 임의 수의 부가의 주변 또는 인터페이스 장치를 포함할 수 있다. 주변 장치들(118)에 포함되는 특정한 장치들은, 예를 들어, 컴퓨팅 장치(100)의 유형 및/또는 의도된 용도에 의존할 수 있다.
보안 보조 프로세서(120)는 본 명세서에 기술된 기능들을 수행할 수 있는 임의의 하드웨어 구성 요소(들) 또는 회로로서 구현될 수 있다. 일부 실시예들에서, 보안 보조 프로세서(120)는 신뢰할 수 있는 실행 환경(trusted execution environment)을 설정할 수 있다. 예를 들어, 보안 보조 프로세서(120)는 신뢰할 수 있는 플랫폼 모듈(TPM), 관리 효율성 엔진(manageability engine, ME), 컨버지드 보안 엔진(converged security engine, CSE), 또는 다른 아웃-오브-밴드 프로세서(out-of-band processor)로서 구현될 수 있다. 일부 실시예들에서, 보안 보조 프로세서(120)는 프로세서(110)에 대하여 독립적으로 그리고 아웃-오브-밴드 방식으로 동작하도록 구성된 아웃-오브-밴드 프로세서로서 구현된다.
이제 도 2를 참고하면, 사용 중에, 컴퓨팅 장치(100)는 플랫폼 초기화를 개선하기 위한 환경(200)을 설정한다. 예시적인 실시예에서의 환경(200)은 보안 보조 프로세서 드라이버 모듈(202)과 기본 입출력 시스템(BIOS) 모듈(204)을 포함한다. 게다가, 보안 보조 프로세서 드라이버 모듈(202)은 애플리케이션 프로그래밍 인터페이스(206), 타이머 모듈(208), 및 보안 보조 프로세서 인터럽트 핸들러(210)를 추가로 포함한다. 보안 보조 프로세서 드라이버 모듈(202), BIOS 모듈(204), 애플리케이션 프로그래밍 인터페이스(206), 타이머 모듈(208), 및 보안 보조 프로세서 인터럽트 핸들러(210) 각각은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합으로서 구현될 수 있다.
보안 보조 프로세서 드라이버 모듈(202)은 보안 보조 프로세서(120)와 컴퓨팅 장치(100)의 다른 구성 요소들 사이의 통신을 관리한다. 예를 들어, 아래 상세히 기술된 바와 같이, 보안 보조 프로세서 드라이버 모듈(202)은 실행 또는 다른 처리를 위해 보안 보조 프로세서(120)에 보안 보조 프로세서 명령을 전송할 수 있다. 보안 보조 프로세서가 응답하는 것을 기다리기 - 이는 전형적으로 상당한 대기 시간을 초래함 - 보다는, 일부 실시예들에서, 보안 보조 프로세서 드라이버 모듈(202)은 보안 보조 프로세서(120)의 상태를 질의하거나 달리 폴링(poll)하여 보안 보조 프로세서(120)의 응답이 준비되어 있는지를 결정하고, 그렇지 않다면, 아래 더 상세히 기술된 바와 같이 다른 초기화를 재개한다.
BIOS 모듈(204)은 컴퓨팅 장치(100)의 플랫폼의 초기화를 시작할 수 있다. 이에 따라, 일부 실시예들에서, BIOS 모듈(204)은 컴퓨팅 장치(100)의 다양한 구성 요소들(예컨대, 입출력 장치들)을 초기화하고/하거나 테스트한다. 게다가, BIOS 모듈(204)은 보안 보조 프로세서 드라이버 모듈(202)의 애플리케이션 프로그래밍 인터페이스(API)(206)를 이용하여 보안 보조 프로세서 드라이버 모듈(202)과 통신하고 상호 작용할 수 있다. 일부 실시예들에서, BIOS 모듈(204)은 보안 보조 프로세서(120)와 직접 통신하지 않고 대신에 보안 보조 프로세서 드라이버 모듈(202)을 매개자로 이용한다. 그에 따라, BIOS 모듈(204)이 보안 보조 프로세서 명령을 전송하고자 할 때, BIOS 모듈(204)은 그 명령을 보안 보조 프로세서(120)에 직접 전송하는 것이 아니라 보안 보조 프로세서 드라이버 모듈(202)에 전송한다. 아래 기술된 바와 같이, 보안 보조 프로세서(120)는 그 보안 보조 프로세서 명령을 명령 목록에 부가한다. 유사하게, 보안 보조 프로세서(120)로부터의 응답이 보안 보조 프로세서 드라이버 모듈(202)에 의해 수신될 때, 그 응답은 결국 BIOS 모듈(204)에 전달될 수 있다. 물론, 일부 실시예들에서, 어떤 보안 보조 프로세서 명령들은 보안 보조 프로세서(120)로부터의 응답을 끌어낼 수 없고/없거나 보안 보조 프로세서 드라이버 모듈(202)에 의해 BIOS 모듈(204)로 전달될 필요가 없을 수 있다.
타이머 모듈(208)은 컴퓨팅 장치(100)의 플랫폼의 초기화의 주기적 인터럽트를 설정하도록 구성된다. 예를 들어, 일부 실시예들에서, 타이머 모듈(208)은 고정밀 이벤트 타이머(High Precision Event Timer, HPET) 또는 다른 하드웨어 타이머를 포함하거나 달리 이용할 수 있다. 하나의 실시예에서, 타이머 모듈(208)에 의해 설정된 주기적 인터럽트는 컴퓨팅 장치(100)의 클록이 소정 값에 도달할 때마다 발생하는 실시간 인터럽트이다. 물론, 다른 실시예들에서, 타이머 모듈(208)은 비주기적이거나 변하는 주기(예컨대, 주기들의 세트)를 갖는 인터럽트를 설정할 수 있다. 예를 들어, 인터럽트는 다른 BIOS 단계 동안보다 하나의 BIOS 단계 동안에 덜 빈번하게 발생할 수 있다(즉, 주기는 BIOS 단계에 의존할 수 있다). 인터럽트가 발생할 때, 보안 보조 프로세서 인터럽트 핸들러(210)가 호출되고 제어는 (예컨대, BIOS 모듈(204)로부터) 보안 보조 프로세서 인터럽트 핸들러(210)로 이전된다. 아래 상세히 기술된 바와 같이, 보안 보조 프로세서 인터럽트 핸들러(210)는 보안 보조 프로세서(120)의 상태를 체크하고(즉, 이전에 제출된 보안 보조 프로세서 명령에 대한 응답이 준비되어 있는지를 결정하고), 응답이 준비되어 있다면 보안 보조 프로세서(120)로부터 응답을 획득한다.
명령 목록에 임의의 보안 보조 프로세서 명령들이 있다면, 보안 보조 프로세서 인터럽트 핸들러(210)는 목록 내의 다음 명령을 처리를 위해 보안 보조 프로세서(120)에 전송하고, 제어는 보안 보조 프로세서 인터럽트 핸들러(210)로부터 반환된다. 물론, 전술한 바와 같이, 응답은 BIOS 모듈(204)에 전달될 수 있다. 일부 실시예들에서, 명령 목록은 보안 보조 프로세서(120)로의 전송을 위해 큐잉(queue)되는 보안 보조 프로세서 명령들의 목록이다. 예를 들어, 보안 보조 프로세서(120)가 TPM인 실시예에서, 명령 목록은 실행을 위해 큐잉되는 BIOS 모듈(204)로부터 보안 보조 프로세서 드라이버 모듈(202)(또는 그러한 실시예에서 TPM 드라이버 모듈)로 전송된 TPM 명령들의 목록이다. 일부 실시예들에서, 보안 보조 프로세서 명령이 실행을 위해 보안 보조 프로세서(120)에 전송되면 그것은 명령 목록에서 제거된다. 명령 목록 내의 보안 보조 프로세서 명령들의 실행 순서는 실시예에 따라 달라질 수 있다는 것을 알아야 한다. 예를 들어, 하나의 실시예에서는, 선입 선출(FIFO) 정책이 구현될 수 있다. 다른 실시예에서는, 후입 선출(LIFO) 정책이 이용될 수 있다. 또 다른 실시예에서는, 보안 보조 프로세서 명령들의 실행의 우선 순위를 결정하기 위해 보다 복잡한 정책이 이용될 수 있다. 명령 목록은 임의의 적당한 데이터 구조로서 컴퓨팅 장치(100)에 저장될 수 있다.
이제 도 3 및 도 4를 참고하면, 사용 중에, 컴퓨팅 장치(100)는, 예를 들어, BIOS 모듈(204)로 하여금 보안 보조 프로세서(120)에 전송된 보안 보조 프로세서 명령들 각각에 대해 보안 보조 프로세서(120)로부터의 응답을 기다리는 동안 컴퓨팅 장치(100)의 다른 구성 요소들에 대한 초기화 프로세스를 계속하게 함으로써 플랫폼 초기화를 개선하기 위한 방법(300)을 실행할 수 있다. 예시된 방법(300)은 도 3의 블록 302에서 시작되고, 여기서 컴퓨팅 장치(100)는 컴퓨팅 장치(100)에 전원이 인가(power on)되었는지를 결정한다. 컴퓨팅 장치(100)에 전원이 인가되었다면, 컴퓨팅 장치(100)는 블록 304에서 보안 보조 프로세서 인터럽트 핸들러(210)를 초기화한다. 그렇게 하면서, 블록 306에서, 컴퓨팅 장치(100)는 타이머를 초기화한다. 즉, 전술한 바와 같이 플랫폼의 초기화의 주기적 인터럽트가 설정된다. 게다가, 블록 308에서, 컴퓨팅 장치(100)는 보안 보조 프로세서 명령 목록을 초기화한다(예컨대, 적절한 데이터 구조를 설정한다).
블록 310에서, 컴퓨팅 장치(100)는 플랫폼 초기화를 시작한다. 예를 들어, 컴퓨팅 장치(100)는 컴퓨팅 장치(100)의 다양한 구성 요소들(예컨대, 다양한 입출력 구성 요소들)을 초기화하고/하거나 테스트하기 시작할 수 있다. 블록 312에서, 컴퓨팅 장치(100)는 보안 보조 프로세서(120)로의 전송을 위해 BIOS 모듈(204)로부터 보안 보조 프로세서 명령이 보안 보조 프로세서 드라이버 모듈(202)에 의해 수신되었는지를 결정한다. 그렇다면, 컴퓨팅 장치(100)는 블록 314에서 보안 보조 프로세서 명령을 보안 보조 프로세서 명령 목록에 부가하고 플랫폼 초기화를 계속한다. 블록 316에서, 컴퓨팅 장치(100)는 보안 보조 프로세서 인터럽트(예컨대, 주기적 인터럽트)가 트리거되었는지를 결정한다. 컴퓨팅 장치(100)가, 블록 312에서, BIOS 모듈(204)로부터 보안 보조 프로세서 명령이 수신되지 않았다고 결정하면, 방법(300)은 바로 블록 316으로 진행한다. 보안 보조 프로세서 인터럽트가 트리거되었다면, 컴퓨팅 장치(100)는 블록 318에서 보안 보조 프로세서(120)의 상태를 체크한다. 예를 들어, 컴퓨팅 장치(100)는 이전에 제출된 보안 보조 프로세서 명령에 대한 응답이 보안 보조 프로세서(120)로부터 보안 보조 프로세서 드라이버 모듈(202)로의 전송을 위해 이용 가능한지를 결정한다. 게다가, 컴퓨팅 장치(100)가, 블록 316에서, 보안 보조 프로세서 인터럽트가 트리거되지 않았다고 결정하면, 방법(300)은 블록 330으로 진행하고, 여기서 컴퓨팅 장치(100)는 아래 더 상세히 기술된 바와 같이 비보안 보조 프로세서 플랫폼 초기화가 완료되었는지를 결정한다. 다시 말해서, 일부 실시예들에서, 컴퓨팅 장치(100)의 보안 보조 프로세서 인터럽트 핸들러(210)는 보안 보조 프로세서 인터럽트의 발생에 응답해서만 방법(300)의 블록들 318-328에서 기술된 기능들을 수행한다.
블록 318에서 보안 보조 프로세서(120)의 상태를 체크한 후에, 방법(300)은 블록 320(도 4 참조)으로 진행한다. 컴퓨팅 장치(100)가 블록 320에서 보안 보조 프로세서(120)로부터의 응답이 이용 가능하다고 결정하면, 컴퓨팅 장치(100)의 보안 보조 프로세서 드라이버 모듈(202)은 블록 322에서 보안 보조 프로세서(120)로부터 보안 보조 프로세서 응답을 수신한다. 그러나, 컴퓨팅 장치(100)가 응답이 준비되어 있지 않다고 결정하면, 방법(300)은 블록 330으로 진행한다. 블록 324에서, 보안 보조 프로세서 드라이버 모듈(202)은 수신된 응답을 BIOS 모듈(204)에 전달한다. 일부 실시예들에서, 보안 보조 프로세서 드라이버 모듈(202)은 보안 보조 프로세서 응답이 이용 가능하다는 것을 BIOS 모듈(204)에 알리는 이벤트를 시그널링한다. 그러한 실시예들에서, BIOS 모듈(204)은 BIOS 모듈(204)에 의해 응답이 요구된다면 이벤트 콜백 절차(event callback procedure)들을 통해 보안 보조 프로세서 응답을 검색할 수 있다.
블록 326에서, 컴퓨팅 장치(100)는 보안 보조 프로세서 명령 목록이 비어 있는지를 결정한다. 즉, 컴퓨팅 장치(100)는 보안 보조 프로세서(120)에 의한 실행을 위해 대기하는 임의의 보안 보조 프로세서 명령들이 있는지를 결정한다. 명령 목록이 비어 있다면, 방법(300)은 블록 330으로 진행한다. 그러나, 명령 목록이 비어 있지 않다면, 보안 보조 프로세서 드라이버 모듈(202)은 블록 328에서 다음 보안 보조 프로세서 명령을 실행을 위해 보안 보조 프로세서(120)에 전송한다. 전술한 바와 같이, 명령 목록 내의 보안 보조 프로세서 명령들의 실행의 우선 순위는 구현된 특정 정책에 따라 달라질 수 있다. 블록 330에서, 컴퓨팅 장치(100)는 비보안 보조 프로세서 플랫폼 초기화가 완료되었는지를 결정한다. 바꾸어 말하여, 컴퓨팅 장치(100)는 보안 보조 프로세서 명령들(즉, 보안 보조 프로세서 명령 목록 내의 명령들)이 플랫폼 초기화를 완료하기 위해 실행되도록 남겨진 유일한 명령들인지를 결정한다. 물론, 일부 실시예들에서, 보안 보조 프로세서(120)로부터의 보안 보조 프로세서 명령에 대한 응답에 의존하는 BIOS 모듈(204)에 의해 실행될 부가의 명령들이 있을 수 있다. 그러한 실시예에서, 컴퓨팅 장치(100)는, 예를 들어, 보안 보조 프로세서 명령들이 현재 실행될 수 있는 유일한 명령들인지를 결정할 수 있다.
비보안 보조 프로세서 플랫폼 초기화가 완료되면, 컴퓨팅 장치(100)는 블록 332에서 타이머를 중지한다. 즉, 컴퓨팅 장치(100)는 플랫폼 초기화의 인터럽트를 중지한다. 블록 334에서, 컴퓨팅 장치(100)는 보안 보조 프로세서 명령 목록이 비어 있는지를 결정한다. 비보안 보조 프로세서 플랫폼 초기화가 완료되고 실행을 위해 명령 목록에 남아 있는 보안 보조 프로세서 명령들이 없다면, 플랫폼 초기화가 완료되고 이제 컴퓨팅 장치(100)의 운영 체제가 부팅될 수 있다는 것을 알아야 한다. 그에 따라, 블록 338에서, 컴퓨팅 장치(100)는 운영 체제를 부팅한다. 물론, 일부 실시예들에서, 컴퓨팅 장치(100)는 둘 이상의 운영 체제를 포함할 수 있다. 이에 따라, 기본 운영 체제가 부팅될 수 있고, 컴퓨팅 장치(100)의 사용자에게 부팅하기 위한 운영 체제를 선택할 옵션이 주어질 수 있거나, 어떤 다른 부팅 정책이 구현될 수 있다.
컴퓨팅 장치(100)가, 블록 334에서, 보안 보조 프로세서 명령 목록이 비어 있지 않다고 결정하면, 컴퓨팅 장치(100)는 블록 336에서 남아 있는 보안 보조 프로세서 명령들을 실행한다. 예를 들어, 보안 보조 프로세서 드라이버 모듈(202)은 순차적으로 명령 목록에 남아 있는 각각의 보안 보조 프로세서 명령을 실행을 위해 보안 보조 프로세서(120)에 전송하고, 다음 명령을 전송하기 전에 각각의 전송된 명령에 대한 응답을 기다리고, 초기화를 완료하기 위해 응답들을 BIOS 모듈(204)에 전달하는 전통적인 접근 방법을 따를 수 있다. 전술한 바와 같이, 일부 실시예들에서, 하나 이상의 비보안 보조 프로세서 명령이 실행하기 위해 보안 보조 프로세서 명령에 대한 응답에 의존할 수 있다. 그러한 실시예에서, 비보안 보조 프로세서 명령이 (예컨대, 보안 보조 프로세서(120)로부터의 응답으로 인해) BIOS 모듈(204)에 의해 실행 가능하게 되면, 방법(300)은 블록 330으로 돌아갈 수 있고, 여기서 컴퓨팅 장치(100)는 비보안 보조 프로세서 플랫폼 초기화가 완료되었는지를 결정한다. 컴퓨팅 장치(100)는 또한 보안 보조 프로세서 인터럽트와 관련된 타이머를 다시 인에이블(re-enable)할 수 있다. 다시 말해서, 그러한 실시예들에서, 컴퓨팅 장치(100)는 보안 보조 프로세서(120)로부터의 보안 보조 프로세서 명령에 대한 응답을 기다리는 동안 플랫폼의 비보안 보조 프로세서 초기화를 허용하는 절차들을 재개할 수 있다. 블록 330으로 돌아가서, 컴퓨팅 장치(100)가 비보안 보조 프로세서 초기화가 완료되지 않았다고 결정하면, 방법(300)은 도 3의 블록 312로 돌아가고, 여기서 컴퓨팅 장치는 BIOS 모듈(204)로부터 보안 보조 프로세서 명령이 보안 보조 프로세서 드라이버 모듈(202)에 의해 수신되었는지를 결정한다.
이제 도 5 및 도 6을 참고하면, 도 5에는 개선된 플랫폼 초기화를 위한 방법(300)을 구현하는 컴퓨팅 장치(100)에 대한 부팅 흐름(502)이 예시적으로 도시되어 있는 반면, 도 6에는 플랫폼 초기화를 위한 전통적인 방법을 구현하는 컴퓨팅 장치(100)에 대한 부팅 흐름(602)이 도시되어 있다. 도 5에 도시된 바와 같이, 부팅 흐름(502)은 본 명세서에 기술된 바와 같이 컴퓨팅 장치(100)에 대한 플랫폼 초기화를 구현할 때 일반적으로 연속적이다. 전술한 바와 같이, BIOS 모듈(204)이 플랫폼을 초기화할 때 보안 보조 프로세서 명령(504)과 만나면, 이 명령(504)은 보안 보조 프로세서(120)에 의한 실행을 위해 보안 보조 프로세서 드라이버 모듈(202)에 전송된다. 명령(504)은 실행을 기다리는 명령들(504)의 명령 목록에 부가되고, BIOS 모듈(204)은 보안 보조 프로세서(120)와 무관한 플랫폼 초기화를 계속한다. 설정된 보안 보조 프로세서 인터럽트가 (예컨대, 주어진 기간의 만료에 의해) 트리거될 때, 보안 보조 프로세서 인터럽트 핸들러(210)는 보안 보조 프로세서(120)가 이전에 제출된 명령(504)에 대해 준비된 응답을 가지고 있는지를 결정하고, 그렇다면, 응답을 수신하고, 응답을 BIOS 모듈(204)에 전달하고, 명령 목록 내의 다음 명령(504)을 실행을 위해 보안 보조 프로세서(120)에 전송한다. 이에 따라, 보안 보조 프로세서(120)의 초기화와 관련된 대기 시간이 최소가 되거나, 달리 감소된다. 그러나, 도 6에 예시적으로 도시된 바와 같이, 보안 보조 프로세서(120)를 초기화하는 전통적인 방법은 각각의 제출된 명령(604)에 대해 보안 보조 프로세서(120)로부터 응답을 기다리는 것과 관련된 상당한 시간 지연들을 수반한다. 구체적으로, BIOS 모듈(204)이 보안 보조 프로세서 명령(604)과 만나면, 이 명령(604)은 보안 보조 프로세서(120)에 전송된다. BIOS 모듈(204)은 플랫폼 초기화를 계속하기 전에 제출된 명령(604)에 대해 보안 보조 프로세서(120)로부터 응답을 기다려야 한다. 보안 보조 프로세서(120)의 초기화는 전형적으로 여러 개(예컨대, 20개 이상)의 보안 보조 프로세서 명령(604)의 실행을 수반하기 때문에, 전통적인 플랫폼 초기화를 구현할 때 대기 시간은 상당하다. 예를 들어, TPM의 경우에, "TpmSelfTest" 명령이 PEI(Pre Extensible Firmware Interface Initialization) BIOS 단계 동안에 TPM에 전송되어야 하고, TPM으로부터 응답을 수신하는 데 상당한 양이 소요된다.
예들
본 명세서에 개시된 장치들, 시스템들, 및 방법들의 예시적인 예들이 아래 제공된다. 이 장치들, 시스템들, 및 방법들의 실시예는 아래 기술된 예들 중 임의의 하나 이상, 및 이들의 임의의 조합을 포함할 수 있다.
예 1은 플랫폼 초기화를 개선하기 위한 컴퓨팅 장치를 포함하고, 이 컴퓨팅 장치는 제출된 보안 보조 프로세서 명령들을 실행하는 보안 보조 프로세서; 상기 컴퓨팅 장치의 플랫폼의 초기화를 시작하는 기본 입출력 시스템 모듈; 상기 기본 입출력 시스템 모듈로부터의 상기 보안 보조 프로세서 명령의 수신에 응답하여 보안 보조 프로세서 명령을 명령 목록에 부가하는 보안 보조 프로세서 드라이버 모듈; 및 상기 플랫폼의 초기화의 주기적 인터럽트를 설정하는 타이머 모듈을 포함하고, 상기 보안 보조 프로세서 드라이버 모듈은 또한, 상기 주기적 인터럽트의 발생에 응답하여, (i) 이전에 제출된 보안 보조 프로세서 명령에 대한 보안 보조 프로세서 응답의 이용 가능성에 관해 상기 보안 보조 프로세서에 질의하고, (ii) 이용 가능한 보안 보조 프로세서 응답의 수신에 응답하여, 상기 이용 가능한 보안 보조 프로세서 응답을 상기 기본 입출력 시스템 모듈에 전달한다.
예 2는 예 1의 주제를 포함하고, 상기 보안 보조 프로세서 드라이버 모듈은 또한 상기 이용 가능한 보안 보조 프로세서 응답의 수신에 응답하여 상기 명령 목록 내의 다음 보안 보조 프로세서 명령을 상기 보안 보조 프로세서에 제출한다.
예 3은 예 1 및 예 2 중 어느 하나의 주제를 포함하고, 상기 보안 보조 프로세서는 신뢰할 수 있는 플랫폼 모듈을 포함한다.
예 4는 예 1 내지 예 3 중 어느 하나의 주제를 포함하고, 상기 보안 보조 프로세서는 관리 효율성 엔진을 포함한다.
예 5는 예 1 내지 예 4 중 어느 하나의 주제를 포함하고, 상기 보안 보조 프로세서는 컨버지드 보안 엔진을 포함한다.
예 6은 예 1 내지 예 5 중 어느 하나의 주제를 포함하고, 상기 보안 보조 프로세서는 아웃-오브-밴드 프로세서를 포함한다.
예 7은 예 1 내지 예 6 중 어느 하나의 주제를 포함하고, 상기 기본 입출력 모듈은 또한 상기 주기적 인터럽트로부터의 복귀(return)에 응답하여 상기 플랫폼의 초기화를 계속한다.
예 8은 예 1 내지 예 7 중 어느 하나의 주제를 포함하고, 상기 타이머 모듈은 또한 상기 보안 보조 프로세서 명령들을 수반하지 않는 초기화 절차들의 완료에 응답하여 상기 초기화의 주기적 인터럽트를 중단한다.
예 9는 예 1 내지 예 8 중 어느 하나의 주제를 포함하고, 상기 보안 보조 프로세서 드라이버 모듈은 또한, 상기 보안 보조 프로세서 명령들을 수반하지 않는 초기화 절차들의 완료에 응답하여, (i) 상기 명령 목록에 남아 있는 각각의 보안 보조 프로세서 명령을 상기 보안 보조 프로세서에 제출하고, (ii) 상기 남아 있는 보안 보조 프로세서 명령들 중 하나에 대한 이용 가능한 보안 보조 프로세서 응답의 수신에 응답하여, 상기 남아 있는 보안 보조 프로세서 명령들 각각에 대해 상기 이용 가능한 보안 보조 프로세서 응답을 상기 기본 입출력 시스템 모듈에 전달한다.
예 10은 예 1 내지 예 9 중 어느 하나의 주제를 포함하고, 상기 기본 입출력 시스템 모듈은 또한 초기화 절차들의 완료에 응답하여 상기 컴퓨팅 장치의 운영 체제를 부팅한다.
예 11은 예 1 내지 예 10 중 어느 하나의 주제를 포함하고, 상기 명령 목록은 선입 선출 시스템을 따른다.
예 12는 예 1 내지 예 11 중 어느 하나의 주제를 포함하고, 상기 명령 목록은 후입 선출 시스템을 따른다.
예 13은 컴퓨팅 장치의 플랫폼 초기화를 개선하기 위한 방법을 포함하고, 이 방법은 상기 컴퓨팅 장치의 기본 입출력 시스템을 이용하여 상기 컴퓨팅 장치의 플랫폼의 초기화를 개시하는 단계; 상기 컴퓨팅 장치의 보안 보조 프로세서 드라이버를 이용하여 그리고 상기 기본 입출력 시스템으로부터, 상기 컴퓨팅 장치의 보안 보조 프로세서에 의해 실행될 보안 보조 프로세서 명령을 수신하는 단계; 상기 보안 보조 프로세서 드라이버를 이용하여, 상기 보안 보조 프로세서 명령의 수신에 응답하여 상기 보안 보조 프로세서 명령을 명령 목록에 부가하는 단계; 및 상기 컴퓨팅 장치를 이용하여, (i) 이전에 제출된 보안 보조 프로세서 명령에 대한 보안 보조 프로세서 응답의 이용 가능성에 관해 상기 보안 보조 프로세서에 질의하고, (ii) 이용 가능한 보안 보조 프로세서 응답의 수신에 응답하여, 상기 이용 가능한 보안 보조 프로세서 응답을 상기 기본 입출력 시스템 모듈에 전달하기 위해 주기적으로 상기 플랫폼의 초기화를 인터럽트하는 단계를 포함한다.
예 14는 예 13의 주제를 포함하고, 상기 플랫폼의 초기화를 인터럽트하는 단계는 상기 이용 가능한 보안 보조 프로세서 응답의 수신에 응답하여 상기 명령 목록 내의 다음 보안 보조 프로세서 명령을 상기 보안 보조 프로세서에 제출하는 단계를 포함한다.
예 15는 예 13 및 예 14 중 어느 하나의 주제를 포함하고, 상기 보안 보조 프로세서 명령을 수신하는 단계는, 상기 컴퓨팅 장치의 신뢰할 수 있는 플랫폼 모듈 드라이버를 이용하여 그리고 상기 기본 입출력 시스템으로부터, 상기 컴퓨팅 장치의 신뢰할 수 있는 플랫폼 모듈에 의해 실행될 신뢰할 수 있는 플랫폼 모듈 명령을 수신하는 단계를 포함하고; 상기 보안 보조 프로세서 명령을 상기 명령 목록에 부가하는 단계는, 상기 신뢰할 수 있는 플랫폼 모듈 드라이버를 이용하여, 상기 신뢰할 수 있는 플랫폼 모듈 명령의 수신에 응답하여 상기 신뢰할 수 있는 플랫폼 모듈 명령을 명령 목록에 부가하는 단계를 포함하고; 상기 플랫폼의 초기화를 인터럽트하는 단계는, 상기 컴퓨팅 장치를 이용하여, (i) 이전에 제출된 신뢰할 수 있는 플랫폼 모듈 명령에 대한 신뢰할 수 있는 플랫폼 모듈 응답의 이용 가능성에 관해 상기 신뢰할 수 있는 플랫폼 모듈에 질의하고, (ii) 이용 가능한 신뢰할 수 있는 플랫폼 모듈 응답의 수신에 응답하여, 상기 이용 가능한 신뢰할 수 있는 플랫폼 모듈 응답을 상기 기본 입출력 시스템 모듈에 전달하기 위해 주기적으로 상기 플랫폼의 초기화를 인터럽트하는 단계를 포함한다.
예 16은 예 13 내지 예 15 중 어느 하나의 주제를 포함하고, 상기 플랫폼의 초기화를 인터럽트하는 단계는 상기 이용 가능한 신뢰할 수 있는 플랫폼 모듈 응답의 수신에 응답하여 상기 명령 목록 내의 다음 신뢰할 수 있는 플랫폼 모듈 명령을 상기 신뢰할 수 있는 플랫폼 모듈에 제출하는 단계를 포함한다.
예 17은 예 13 내지 예 16 중 어느 하나의 주제를 포함하고, 상기 보안 보조 프로세서 명령을 수신하는 단계는, 상기 컴퓨팅 장치의 관리 효율성 엔진 드라이버를 이용하여 그리고 상기 기본 입출력 시스템으로부터, 상기 컴퓨팅 장치의 관리 효율성 엔진에 의해 실행될 관리 효율성 엔진 명령을 수신하는 단계를 포함하고; 상기 보안 보조 프로세서 명령을 상기 명령 목록에 부가하는 단계는, 상기 관리 효율성 엔진 드라이버를 이용하여, 상기 관리 효율성 엔진 명령의 수신에 응답하여 상기 관리 효율성 엔진 명령을 명령 목록에 부가하는 단계를 포함하고; 상기 플랫폼의 초기화를 인터럽트하는 단계는, 상기 컴퓨팅 장치를 이용하여, (i) 이전에 제출된 관리 효율성 엔진 명령에 대한 관리 효율성 엔진 응답의 이용 가능성에 관해 상기 관리 효율성 엔진에 질의하고, (ii) 이용 가능한 관리 효율성 엔진 응답의 수신에 응답하여, 상기 이용 가능한 관리 효율성 엔진 응답을 상기 기본 입출력 시스템 모듈에 전달하기 위해 주기적으로 상기 플랫폼의 초기화를 인터럽트하는 단계를 포함한다.
예 18은 예 13 내지 예 17 중 어느 하나의 주제를 포함하고, 상기 보안 보조 프로세서 명령을 수신하는 단계는, 상기 컴퓨팅 장치의 컨버지드 보안 엔진 드라이버를 이용하여 그리고 상기 기본 입출력 시스템으로부터, 상기 컴퓨팅 장치의 컨버지드 보안 엔진에 의해 실행될 컨버지드 보안 엔진 명령을 수신하는 단계를 포함하고; 상기 보안 보조 프로세서 명령을 상기 명령 목록에 부가하는 단계는, 상기 컨버지드 보안 엔진 드라이버를 이용하여, 상기 컨버지드 보안 엔진 명령의 수신에 응답하여 상기 컨버지드 보안 엔진 명령을 명령 목록에 부가하는 단계를 포함하고; 상기 플랫폼의 초기화를 인터럽트하는 단계는, 상기 컴퓨팅 장치를 이용하여, (i) 이전에 제출된 컨버지드 보안 엔진 명령에 대한 컨버지드 보안 엔진 응답의 이용 가능성에 관해 상기 컨버지드 보안 엔진에 질의하고, (ii) 이용 가능한 컨버지드 보안 엔진 응답의 수신에 응답하여, 상기 이용 가능한 컨버지드 보안 엔진 응답을 상기 기본 입출력 시스템 모듈에 전달하기 위해 주기적으로 상기 플랫폼의 초기화를 인터럽트하는 단계를 포함한다.
예 19는 예 13 내지 예 18 중 어느 하나의 주제를 포함하고, 상기 컴퓨팅 장치에서, 상기 주기적 인터럽트로부터의 복귀에 응답하여 상기 플랫폼의 초기화를 계속하는 단계를 더 포함한다.
예 20은 예 13 내지 예 19 중 어느 하나의 주제를 포함하고, 상기 컴퓨팅 장치에서, 상기 보안 보조 프로세서 명령들을 수반하지 않는 초기화 절차들의 완료에 응답하여 상기 초기화의 주기적 인터럽트를 중단하는 단계를 더 포함한다.
예 21은 예 13 내지 예 20 중 어느 하나의 주제를 포함하고, 상기 컴퓨팅 장치를 이용하여 그리고 상기 보안 보조 프로세서 명령들을 수반하지 않는 상기 초기화 절차들의 완료에 응답하여, 상기 명령 목록에 남아 있는 각각의 보안 보조 프로세서 명령을 상기 보안 보조 프로세서에 제출하는 단계; 및 상기 컴퓨팅 장치를 이용하여 그리고 상기 남아 있는 보안 보조 프로세서 명령들 중 하나에 대한 이용 가능한 보안 보조 프로세서 응답의 수신에 응답하여, 상기 남아 있는 보안 보조 프로세서 명령들 각각에 대해 상기 이용 가능한 보안 보조 프로세서 응답을 상기 기본 입출력 시스템에 전달하는 단계를 더 포함한다.
예 22는 예 13 내지 예 21 중 어느 하나의 주제를 포함하고, 상기 컴퓨팅 장치에서, 상기 초기화 절차들의 완료에 응답하여 상기 컴퓨팅 장치의 운영 체제를 부팅하는 단계를 더 포함한다.
예 23은 예 13 내지 예 22 중 어느 하나의 주제를 포함하고, 상기 명령 목록 내의 다음 보안 보조 프로세서 명령을 상기 보안 보조 프로세서에 제출하는 단계는 상기 명령 목록 내의 다음 보안 보조 프로세서 명령을 선입 선출 베이스로 상기 보안 보조 프로세서에 제출하는 단계를 포함한다.
예 24는 예 13 내지 예 23 중 어느 하나의 주제를 포함하고, 상기 명령 목록 내의 다음 보안 보조 프로세서 명령을 상기 보안 보조 프로세서에 제출하는 단계는 상기 명령 목록 내의 다음 보안 보조 프로세서 명령을 후입 선출 베이스로 상기 보안 보조 프로세서에 제출하는 단계를 포함한다.
예 25는 프로세서; 및 복수의 명령어가 저장되어 있는 메모리를 포함하는 컴퓨팅 장치를 포함하고, 복수의 명령어는 상기 프로세서에 의해 실행될 때 상기 컴퓨팅 장치로 하여금 예 13 내지 예 24 중 어느 하나의 방법을 수행하게 한다.
예 26은 실행되는 것에 응답하여, 컴퓨팅 장치가 예 13 내지 예 24 중 어느 하나의 방법을 수행하게 하는 복수의 명령어가 저장되어 있는 하나 이상의 기계 판독 가능 저장 매체를 포함한다.
예 27은 플랫폼 초기화를 개선하기 위한 컴퓨팅 장치를 포함하고, 이 컴퓨팅 장치는 상기 컴퓨팅 장치의 기본 입출력 시스템을 이용하여 상기 컴퓨팅 장치의 플랫폼의 초기화를 개시하는 수단; 상기 컴퓨팅 장치의 보안 보조 프로세서 드라이버를 이용하여 그리고 상기 기본 입출력 시스템으로부터, 상기 컴퓨팅 장치의 보안 보조 프로세서에 의해 실행될 보안 보조 프로세서 명령을 수신하는 수단; 상기 보안 보조 프로세서 드라이버를 이용하여, 상기 보안 보조 프로세서 명령의 수신에 응답하여 상기 보안 보조 프로세서 명령을 명령 목록에 부가하는 수단; 및 (i) 이전에 제출된 보안 보조 프로세서 명령에 대한 보안 보조 프로세서 응답의 이용 가능성에 관해 상기 보안 보조 프로세서에 질의하고, (ii) 이용 가능한 보안 보조 프로세서 응답의 수신에 응답하여, 상기 이용 가능한 보안 보조 프로세서 응답을 상기 기본 입출력 시스템 모듈에 전달하기 위해 주기적으로 상기 플랫폼의 초기화를 인터럽트하는 수단을 포함한다.
예 28은 예 27의 주제를 포함하고, 상기 플랫폼의 초기화를 인터럽트하는 수단은 상기 이용 가능한 보안 보조 프로세서 응답의 수신에 응답하여 상기 명령 목록 내의 다음 보안 보조 프로세서 명령을 상기 보안 보조 프로세서에 제출하는 수단을 포함한다.
예 29는 예 27 및 예 28 중 어느 하나의 주제를 포함하고, 상기 보안 보조 프로세서 명령을 수신하는 수단은, 상기 컴퓨팅 장치의 신뢰할 수 있는 플랫폼 모듈 드라이버를 이용하여 그리고 상기 기본 입출력 시스템으로부터, 상기 컴퓨팅 장치의 신뢰할 수 있는 플랫폼 모듈에 의해 실행될 신뢰할 수 있는 플랫폼 모듈 명령을 수신하는 수단을 포함하고; 상기 보안 보조 프로세서 명령을 상기 명령 목록에 부가하는 수단은, 상기 신뢰할 수 있는 플랫폼 모듈 드라이버를 이용하여, 상기 신뢰할 수 있는 플랫폼 모듈 명령의 수신에 응답하여 상기 신뢰할 수 있는 플랫폼 모듈 명령을 명령 목록에 부가하는 수단을 포함하고; 상기 플랫폼의 초기화를 인터럽트하는 수단은 (i) 이전에 제출된 신뢰할 수 있는 플랫폼 모듈 명령에 대한 신뢰할 수 있는 플랫폼 모듈 응답의 이용 가능성에 관해 상기 신뢰할 수 있는 플랫폼 모듈에 질의하고, (ii) 이용 가능한 신뢰할 수 있는 플랫폼 모듈 응답의 수신에 응답하여, 상기 이용 가능한 신뢰할 수 있는 플랫폼 모듈 응답을 상기 기본 입출력 시스템 모듈에 전달하기 위해 주기적으로 상기 플랫폼의 초기화를 인터럽트하는 수단을 포함한다.
예 30은 예 27 내지 예 29 중 어느 하나의 주제를 포함하고, 상기 플랫폼의 초기화를 인터럽트하는 수단은 상기 이용 가능한 신뢰할 수 있는 플랫폼 모듈 응답의 수신에 응답하여 상기 명령 목록 내의 다음 신뢰할 수 있는 플랫폼 모듈 명령을 상기 신뢰할 수 있는 플랫폼 모듈에 제출하는 수단을 포함한다.
예 31은 예 27 내지 예 30 중 어느 하나의 주제를 포함하고, 상기 보안 보조 프로세서 명령을 수신하는 수단은, 상기 컴퓨팅 장치의 관리 효율성 엔진 드라이버를 이용하여 그리고 상기 기본 입출력 시스템으로부터, 상기 컴퓨팅 장치의 관리 효율성 엔진에 의해 실행될 관리 효율성 엔진 명령을 수신하는 수단을 포함하고; 상기 보안 보조 프로세서 명령을 상기 명령 목록에 부가하는 수단은, 상기 관리 효율성 엔진 드라이버를 이용하여, 상기 관리 효율성 엔진 명령의 수신에 응답하여 상기 관리 효율성 엔진 명령을 명령 목록에 부가하는 수단을 포함하고; 상기 플랫폼의 초기화를 인터럽트하는 수단은 (i) 이전에 제출된 관리 효율성 엔진 명령에 대한 관리 효율성 엔진 응답의 이용 가능성에 관해 상기 관리 효율성 엔진에 질의하고, (ii) 이용 가능한 관리 효율성 엔진 응답의 수신에 응답하여, 상기 이용 가능한 관리 효율성 엔진 응답을 상기 기본 입출력 시스템 모듈에 전달하기 위해 주기적으로 상기 플랫폼의 초기화를 인터럽트하는 수단을 포함한다.
예 32는 예 27 내지 예 31 중 어느 하나의 주제를 포함하고, 상기 보안 보조 프로세서 명령을 수신하는 수단은 상기 컴퓨팅 장치의 컨버지드 보안 엔진 드라이버를 이용하여 그리고 상기 기본 입출력 시스템으로부터, 상기 컴퓨팅 장치의 컨버지드 보안 엔진에 의해 실행될 컨버지드 보안 엔진 명령을 수신하는 수단을 포함하고; 상기 보안 보조 프로세서 명령을 상기 명령 목록에 부가하는 수단은, 상기 컨버지드 보안 엔진 드라이버를 이용하여, 상기 컨버지드 보안 엔진 명령의 수신에 응답하여 상기 컨버지드 보안 엔진 명령을 명령 목록에 부가하는 수단을 포함하고; 상기 플랫폼의 초기화를 인터럽트하는 수단은 (i) 이전에 제출된 컨버지드 보안 엔진 명령에 대한 컨버지드 보안 엔진 응답의 이용 가능성에 관해 상기 컨버지드 보안 엔진에 질의하고, (ii) 이용 가능한 컨버지드 보안 엔진 응답의 수신에 응답하여, 상기 이용 가능한 컨버지드 보안 엔진 응답을 상기 기본 입출력 시스템 모듈에 전달하기 위해 주기적으로 상기 플랫폼의 초기화를 인터럽트하는 수단을 포함한다.
예 33은 예 27 내지 예 32 중 어느 하나의 주제를 포함하고, 상기 주기적 인터럽트로부터의 복귀에 응답하여 상기 플랫폼의 초기화를 계속하는 수단을 더 포함한다.
예 34는 예 27 내지 예 33 중 어느 하나의 주제를 포함하고, 상기 보안 보조 프로세서 명령들을 수반하지 않는 초기화 절차들의 완료에 응답하여 상기 초기화의 주기적 인터럽트를 중단하는 수단을 더 포함한다.
예 35는 예 27 내지 예 34 중 어느 하나의 주제를 포함하고, 상기 보안 보조 프로세서 명령들을 수반하지 않는 상기 초기화 절차들의 완료에 응답하여, 상기 명령 목록에 남아 있는 각각의 보안 보조 프로세서 명령을 상기 보안 보조 프로세서에 제출하는 수단; 및 상기 남아 있는 보안 보조 프로세서 명령들 중 하나에 대한 이용 가능한 보안 보조 프로세서 응답의 수신에 응답하여, 상기 남아 있는 보안 보조 프로세서 명령들 각각에 대해 상기 이용 가능한 보안 보조 프로세서 응답을 상기 기본 입출력 시스템에 전달하는 수단을 더 포함한다.
예 36은 예 27 내지 예 35 중 어느 하나의 주제를 포함하고, 상기 초기화 절차들의 완료에 응답하여 상기 컴퓨팅 장치의 운영 체제를 부팅하는 수단을 더 포함한다.
예 37은 예 27 내지 예 36 중 어느 하나의 주제를 포함하고, 상기 명령 목록 내의 다음 보안 보조 프로세서 명령을 상기 보안 보조 프로세서에 제출하는 수단은 상기 명령 목록 내의 다음 보안 보조 프로세서 명령을 선입 선출 베이스로 상기 보안 보조 프로세서에 제출하는 수단을 포함한다.
예 38은 예 27 내지 예 37 중 어느 하나의 주제를 포함하고, 상기 명령 목록 내의 다음 보안 보조 프로세서 명령을 상기 보안 보조 프로세서에 제출하는 수단은 상기 명령 목록 내의 다음 보안 보조 프로세서 명령을 후입 선출 베이스로 상기 보안 보조 프로세서에 제출하는 수단을 포함한다.
Claims (25)
- 플랫폼 초기화를 개선하기 위한 컴퓨팅 장치로서,
제출된 보안 보조 프로세서 명령들(security co-processor commands)을 실행하는 보안 보조 프로세서;
상기 컴퓨팅 장치의 플랫폼의 초기화를 시작하는 기본 입출력 시스템 모듈;
상기 기본 입출력 시스템 모듈로부터의 상기 보안 보조 프로세서 명령의 수신에 응답하여 보안 보조 프로세서 명령을 명령 목록에 부가하는 보안 보조 프로세서 드라이버 모듈; 및
상기 플랫폼의 초기화의 주기적 인터럽트를 설정하는 타이머 모듈
을 포함하고,
상기 보안 보조 프로세서 드라이버 모듈은 또한, 상기 주기적 인터럽트의 발생에 응답하여, (i) 이전에 제출된 보안 보조 프로세서 명령에 대한 보안 보조 프로세서 응답의 이용 가능성에 관해 상기 보안 보조 프로세서에 질의하고, (ii) 이용 가능한 보안 보조 프로세서 응답의 수신에 응답하여, 상기 이용 가능한 보안 보조 프로세서 응답을 상기 기본 입출력 시스템 모듈에 전달하는 컴퓨팅 장치. - 제1항에 있어서, 상기 보안 보조 프로세서 드라이버 모듈은 또한 상기 이용 가능한 보안 보조 프로세서 응답의 수신에 응답하여 상기 명령 목록 내의 다음 보안 보조 프로세서 명령을 상기 보안 보조 프로세서에 제출하는 컴퓨팅 장치.
- 제1항에 있어서, 상기 보안 보조 프로세서는 신뢰할 수 있는 플랫폼 모듈(trusted platform module)을 포함하는 컴퓨팅 장치.
- 제1항에 있어서, 상기 보안 보조 프로세서는 관리 효율성 엔진(manageability engine) 및 컨버지드 보안 엔진(converged security engine) 중 하나를 포함하는 컴퓨팅 장치.
- 제1항에 있어서, 상기 보안 보조 프로세서는 아웃-오브-밴드 프로세서(out-of-band processor)를 포함하는 컴퓨팅 장치.
- 제1항에 있어서, 상기 기본 입출력 모듈은 또한 상기 주기적 인터럽트로부터의 복귀(return)에 응답하여 상기 플랫폼의 초기화를 계속하는 컴퓨팅 장치.
- 제1항에 있어서, 상기 타이머 모듈은 또한 상기 보안 보조 프로세서 명령들을 수반하지 않는 초기화 절차들의 완료에 응답하여 상기 초기화의 주기적 인터럽트를 중단하는 컴퓨팅 장치.
- 제7항에 있어서, 상기 보안 보조 프로세서 드라이버 모듈은 또한, 상기 보안 보조 프로세서 명령들을 수반하지 않는 초기화 절차들의 완료에 응답하여, (i) 상기 명령 목록에 남아 있는 각각의 보안 보조 프로세서 명령을 상기 보안 보조 프로세서에 제출하고, (ii) 상기 남아 있는 보안 보조 프로세서 명령들 중 하나에 대한 이용 가능한 보안 보조 프로세서 응답의 수신에 응답하여, 상기 남아 있는 보안 보조 프로세서 명령들 각각에 대해 상기 이용 가능한 보안 보조 프로세서 응답을 상기 기본 입출력 시스템 모듈에 전달하는 컴퓨팅 장치.
- 제8항에 있어서, 상기 기본 입출력 시스템 모듈은 또한 초기화 절차들의 완료에 응답하여 상기 컴퓨팅 장치의 운영 체제를 부팅하는 컴퓨팅 장치.
- 제1항에 있어서, 상기 명령 목록은 선입 선출 시스템(first in, first out system) 및 후입 선출 시스템(last in, first out system) 중 하나를 따르는 컴퓨팅 장치.
- 복수의 명령어가 저장되어 있는 하나 이상의 기계 판독 가능 저장 매체로서, 컴퓨팅 장치의 실행에 응답하여, 상기 컴퓨팅 장치로 하여금:
상기 컴퓨팅 장치의 기본 입출력 시스템을 이용하여 상기 컴퓨팅 장치의 플랫폼의 초기화를 개시하고;
상기 컴퓨팅 장치의 보안 보조 프로세서 드라이버를 이용하여 그리고 상기 기본 입출력 시스템으로부터, 상기 컴퓨팅 장치의 보안 보조 프로세서에 의해 실행될 보안 보조 프로세서 명령을 수신하고;
상기 보안 보조 프로세서 드라이버를 이용하여, 상기 보안 보조 프로세서 명령의 수신에 응답하여 상기 보안 보조 프로세서 명령을 명령 목록에 부가하고;
(i) 이전에 제출된 보안 보조 프로세서 명령에 대한 보안 보조 프로세서 응답의 이용 가능성에 관해 상기 보안 보조 프로세서에 질의하고, (ii) 이용 가능한 보안 보조 프로세서 응답의 수신에 응답하여, 상기 이용 가능한 보안 보조 프로세서 응답을 상기 기본 입출력 시스템 모듈에 전달하기 위해 주기적으로 상기 플랫폼의 초기화를 인터럽트하게 하는
하나 이상의 기계 판독 가능 저장 매체. - 제11항에 있어서, 상기 플랫폼의 초기화를 인터럽트하는 것은 상기 이용 가능한 보안 보조 프로세서 응답의 수신에 응답하여 상기 명령 목록 내의 다음 보안 보조 프로세서 명령을 상기 보안 보조 프로세서에 제출하는 것을 포함하는 하나 이상의 기계 판독 가능 저장 매체.
- 제11항에 있어서, 상기 보안 보조 프로세서 명령을 수신하는 것은, 상기 컴퓨팅 장치의 신뢰할 수 있는 플랫폼 모듈 드라이버를 이용하여 그리고 상기 기본 입출력 시스템으로부터, 상기 컴퓨팅 장치의 신뢰할 수 있는 플랫폼 모듈에 의해 실행될 신뢰할 수 있는 플랫폼 모듈 명령을 수신하는 것을 포함하고;
상기 보안 보조 프로세서 명령을 상기 명령 목록에 부가하는 것은, 상기 신뢰할 수 있는 플랫폼 모듈 드라이버를 이용하여, 상기 신뢰할 수 있는 플랫폼 모듈 명령의 수신에 응답하여 상기 신뢰할 수 있는 플랫폼 모듈 명령을 명령 목록에 부가하는 것을 포함하고;
상기 플랫폼의 초기화를 인터럽트하는 것은, (i) 이전에 제출된 신뢰할 수 있는 플랫폼 모듈 명령에 대한 신뢰할 수 있는 플랫폼 모듈 응답의 이용 가능성에 관해 상기 신뢰할 수 있는 플랫폼 모듈에 질의하고, (ii) 이용 가능한 신뢰할 수 있는 플랫폼 모듈 응답의 수신에 응답하여, 상기 이용 가능한 신뢰할 수 있는 플랫폼 모듈 응답을 상기 기본 입출력 시스템 모듈에 전달하기 위해 주기적으로 상기 플랫폼의 초기화를 인터럽트하는 것을 포함하는 하나 이상의 기계 판독 가능 저장 매체. - 제13항에 있어서, 상기 플랫폼의 초기화를 인터럽트하는 것은 상기 이용 가능한 신뢰할 수 있는 플랫폼 모듈 응답의 수신에 응답하여 상기 명령 목록 내의 다음 신뢰할 수 있는 플랫폼 모듈 명령을 상기 신뢰할 수 있는 플랫폼 모듈에 제출하는 것을 포함하는 하나 이상의 기계 판독 가능 저장 매체.
- 제11항에 있어서, 상기 복수의 명령어는 또한 상기 컴퓨팅 장치로 하여금, 주기적으로 상기 플랫폼의 초기화를 인터럽트하는 것으로부터의 복귀에 응답하여 상기 플랫폼의 초기화를 계속하게 하는 하나 이상의 기계 판독 가능 저장 매체.
- 제11항에 있어서, 상기 복수의 명령어는 또한 상기 컴퓨팅 장치로 하여금, 상기 보안 보조 프로세서 명령들을 수반하지 않는 초기화 절차들의 완료에 응답하여 상기 초기화의 주기적 인터럽트를 중단하게 하는 하나 이상의 기계 판독 가능 저장 매체.
- 제16항에 있어서,
상기 복수의 명령어는 또한 상기 컴퓨팅 장치로 하여금,
상기 보안 보조 프로세서 명령들을 수반하지 않는 상기 초기화 절차들의 완료에 응답하여, 상기 명령 목록에 남아 있는 각각의 보안 보조 프로세서 명령을 상기 보안 보조 프로세서에 제출하고;
상기 남아 있는 보안 보조 프로세서 명령들 중 하나에 대한 이용 가능한 보안 보조 프로세서 응답의 수신에 응답하여, 상기 남아 있는 보안 보조 프로세서 명령들 각각에 대해 상기 이용 가능한 보안 보조 프로세서 응답을 상기 기본 입출력 시스템에 전달하게 하는 하나 이상의 기계 판독 가능 저장 매체. - 컴퓨팅 장치의 플랫폼 초기화를 개선하기 위한 방법으로서,
상기 컴퓨팅 장치의 기본 입출력 시스템을 이용하여 상기 컴퓨팅 장치의 플랫폼의 초기화를 개시하는 단계;
상기 컴퓨팅 장치의 보안 보조 프로세서 드라이버를 이용하여 그리고 상기 기본 입출력 시스템으로부터, 상기 컴퓨팅 장치의 보안 보조 프로세서에 의해 실행될 보안 보조 프로세서 명령을 수신하는 단계;
상기 보안 보조 프로세서 드라이버를 이용하여, 상기 보안 보조 프로세서 명령의 수신에 응답하여 상기 보안 보조 프로세서 명령을 명령 목록에 부가하는 단계; 및
상기 컴퓨팅 장치를 이용하여, (i) 이전에 제출된 보안 보조 프로세서 명령에 대한 보안 보조 프로세서 응답의 이용 가능성에 관해 상기 보안 보조 프로세서에 질의하고, (ii) 이용 가능한 보안 보조 프로세서 응답의 수신에 응답하여, 상기 이용 가능한 보안 보조 프로세서 응답을 상기 기본 입출력 시스템 모듈에 전달하기 위해 주기적으로 상기 플랫폼의 초기화를 인터럽트하는 단계
를 포함하는 방법. - 제18항에 있어서, 상기 플랫폼의 초기화를 인터럽트하는 단계는 상기 이용 가능한 보안 보조 프로세서 응답의 수신에 응답하여 상기 명령 목록 내의 다음 보안 보조 프로세서 명령을 상기 보안 보조 프로세서에 제출하는 단계를 포함하는 방법.
- 제18항에 있어서, 상기 보안 보조 프로세서 명령을 수신하는 단계는, 상기 컴퓨팅 장치의 신뢰할 수 있는 플랫폼 모듈 드라이버를 이용하여 그리고 상기 기본 입출력 시스템으로부터, 상기 컴퓨팅 장치의 신뢰할 수 있는 플랫폼 모듈에 의해 실행될 신뢰할 수 있는 플랫폼 모듈 명령을 수신하는 단계를 포함하고;
상기 보안 보조 프로세서 명령을 상기 명령 목록에 부가하는 단계는, 상기 신뢰할 수 있는 플랫폼 모듈 드라이버를 이용하여, 상기 신뢰할 수 있는 플랫폼 모듈 명령의 수신에 응답하여 상기 신뢰할 수 있는 플랫폼 모듈 명령을 명령 목록에 부가하는 단계를 포함하고;
상기 플랫폼의 초기화를 인터럽트하는 단계는, 상기 컴퓨팅 장치를 이용하여, (i) 이전에 제출된 신뢰할 수 있는 플랫폼 모듈 명령에 대한 신뢰할 수 있는 플랫폼 모듈 응답의 이용 가능성에 관해 상기 신뢰할 수 있는 플랫폼 모듈에 질의하고, (ii) 이용 가능한 신뢰할 수 있는 플랫폼 모듈 응답의 수신에 응답하여, 상기 이용 가능한 신뢰할 수 있는 플랫폼 모듈 응답을 상기 기본 입출력 시스템 모듈에 전달하기 위해 주기적으로 상기 플랫폼의 초기화를 인터럽트하는 단계를 포함하는 방법. - 제20항에 있어서, 상기 플랫폼의 초기화를 인터럽트하는 단계는 상기 이용 가능한 신뢰할 수 있는 플랫폼 모듈 응답의 수신에 응답하여 상기 명령 목록 내의 다음 신뢰할 수 있는 플랫폼 모듈 명령을 상기 신뢰할 수 있는 플랫폼 모듈에 제출하는 단계를 포함하는 방법.
- 제18항에 있어서, 상기 컴퓨팅 장치에서, 주기적으로 상기 플랫폼의 초기화를 인터럽트하는 것으로부터의 복귀에 응답하여 상기 플랫폼의 초기화를 계속하는 단계를 더 포함하는 방법.
- 제18항에 있어서, 상기 컴퓨팅 장치에서, 상기 보안 보조 프로세서 명령들을 수반하지 않는 초기화 절차들의 완료에 응답하여 상기 초기화의 주기적 인터럽트를 중단하는 단계를 더 포함하는 방법.
- 제23항에 있어서,
상기 컴퓨팅 장치를 이용하여 그리고 상기 보안 보조 프로세서 명령들을 수반하지 않는 상기 초기화 절차들의 완료에 응답하여, 상기 명령 목록에 남아 있는 각각의 보안 보조 프로세서 명령을 상기 보안 보조 프로세서에 제출하는 단계; 및
상기 컴퓨팅 장치를 이용하여 그리고 상기 남아 있는 보안 보조 프로세서 명령들 중 하나에 대한 이용 가능한 보안 보조 프로세서 응답의 수신에 응답하여, 상기 남아 있는 보안 보조 프로세서 명령들 각각에 대해 상기 이용 가능한 보안 보조 프로세서 응답을 상기 기본 입출력 시스템에 전달하는 단계를 더 포함하는 방법. - 삭제
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/072732 WO2014139162A1 (en) | 2013-03-15 | 2013-03-15 | Security co-processor boot performance |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150106922A KR20150106922A (ko) | 2015-09-22 |
KR101759411B1 true KR101759411B1 (ko) | 2017-07-18 |
Family
ID=51535841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157021704A KR101759411B1 (ko) | 2013-03-15 | 2013-03-15 | 보안 보조 프로세서 부팅 성능 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9223983B2 (ko) |
EP (1) | EP2973139B1 (ko) |
JP (1) | JP6050528B2 (ko) |
KR (1) | KR101759411B1 (ko) |
CN (1) | CN104981814B (ko) |
BR (1) | BR112015018946A2 (ko) |
WO (1) | WO2014139162A1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150193620A1 (en) * | 2014-01-07 | 2015-07-09 | Dell Products, Lp | System and Method for Managing UEFI Secure Boot Certificates |
US10303880B2 (en) * | 2014-07-24 | 2019-05-28 | Nuvoton Technology Corporation | Security device having indirect access to external non-volatile memory |
EP3413532A1 (en) | 2017-06-07 | 2018-12-12 | Hewlett-Packard Development Company, L.P. | Monitoring control-flow integrity |
EP3413531A1 (en) | 2017-06-07 | 2018-12-12 | Hewlett-Packard Development Company, L.P. | Intrusion detection systems |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002525745A (ja) * | 1998-09-24 | 2002-08-13 | フィーニックス テクノロジーズ リミテッド | ブート時間を最小化するためにバイオス・ブート・シーケンス中に他のプロセッサを使用する方法 |
JP2007172145A (ja) | 2005-12-20 | 2007-07-05 | Seiko Epson Corp | プロセッサ及びブート処理方法をコンピュータに実行させるためのプログラム |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0222725A (ja) * | 1988-07-11 | 1990-01-25 | Hokkaido Nippon Denki Software Kk | ハードディスクの状態遷移チェック方式 |
US5301277A (en) * | 1991-04-10 | 1994-04-05 | Seiko Epson Corporation | Method and apparatus for communicating peripheral data to/from minor operating systems running as subprocesses on a main operating system |
US5270627A (en) * | 1991-06-24 | 1993-12-14 | Unilens Corp., U.S.A. | Machine tool control system |
US5844986A (en) | 1996-09-30 | 1998-12-01 | Intel Corporation | Secure BIOS |
US6321323B1 (en) * | 1997-06-27 | 2001-11-20 | Sun Microsystems, Inc. | System and method for executing platform-independent code on a co-processor |
US6401202B1 (en) | 1999-06-18 | 2002-06-04 | Phoenix Technologies Ltd. | Multitasking during BIOS boot-up |
US6968061B2 (en) * | 2000-02-17 | 2005-11-22 | The United States Of America As Represented By The Secretary Of The Navy | Method which uses a non-volatile memory to store a crypto key and a check word for an encryption device |
US6792031B1 (en) * | 2000-10-18 | 2004-09-14 | Texas Instruments Incorporated | Method for maintaining timing in a CDMA rake receiver |
US6789147B1 (en) * | 2001-07-24 | 2004-09-07 | Cavium Networks | Interface for a security coprocessor |
US6944746B2 (en) * | 2002-04-01 | 2005-09-13 | Broadcom Corporation | RISC processor supporting one or more uninterruptible co-processors |
US7200758B2 (en) * | 2002-10-09 | 2007-04-03 | Intel Corporation | Encapsulation of a TCPA trusted platform module functionality within a server management coprocessor subsystem |
US7454610B2 (en) * | 2002-12-31 | 2008-11-18 | Broadcom Corporation | Security association updates in a packet load-balanced system |
US7765388B2 (en) * | 2003-09-17 | 2010-07-27 | Broadcom Corporation | Interrupt verification support mechanism |
US9032404B2 (en) * | 2003-08-28 | 2015-05-12 | Mips Technologies, Inc. | Preemptive multitasking employing software emulation of directed exceptions in a multithreading processor |
US20050289332A1 (en) * | 2004-06-23 | 2005-12-29 | Rothman Michael A | Platform boot speed |
US20060095598A1 (en) * | 2004-10-30 | 2006-05-04 | Axalto Inc. | Method and apparatus of extending answer to reset and subsequent communications between a smart card and a chip card interface device |
US7793347B2 (en) * | 2005-02-07 | 2010-09-07 | Rozas Guillermo J | Method and system for validating a computer system |
FR2883998A1 (fr) * | 2005-04-05 | 2006-10-06 | St Microelectronics Sa | Coprocesseur securise comprenant un circuit de detection d'un evenement |
JP2006338605A (ja) * | 2005-06-06 | 2006-12-14 | Denso Corp | プログラム異常監視方法及びプログラム異常監視装置 |
US7822978B2 (en) * | 2005-07-22 | 2010-10-26 | Intel Corporation | Quiescing a manageability engine |
CN100375027C (zh) * | 2005-09-30 | 2008-03-12 | 联想(北京)有限公司 | 一种快速启动tcpa/tcg安全计算机的系统和方法 |
US20080010516A1 (en) * | 2006-06-14 | 2008-01-10 | Inventec Corporation | Method and apparatus for indicating the actual progress of a booting procedure |
US20080127229A1 (en) * | 2006-09-08 | 2008-05-29 | International Business Machines Cropration | Multiple interface standard support for redundant array of independent disks |
US8209542B2 (en) * | 2006-12-29 | 2012-06-26 | Intel Corporation | Methods and apparatus for authenticating components of processing systems |
KR101209252B1 (ko) * | 2007-02-02 | 2012-12-06 | 삼성전자주식회사 | 전자기기의 부팅 방법 및 부팅 인증 방법 |
US20090183245A1 (en) * | 2008-01-10 | 2009-07-16 | Simpson Gary H | Limited Functionality Mode for Secure, Remote, Decoupled Computer Ownership |
US8739177B2 (en) * | 2010-06-21 | 2014-05-27 | Intel Corporation | Method for network interface sharing among multiple virtual machines |
WO2012120573A1 (ja) * | 2011-03-04 | 2012-09-13 | 日本電気株式会社 | デッドロック回避方法、デッドロック回避機構 |
US8560453B2 (en) * | 2011-06-30 | 2013-10-15 | Intel Corporation | Method and apparatus for dynamic, real-time ad insertion based on meta-data within a hardware based root of trust |
US8763112B2 (en) * | 2011-07-02 | 2014-06-24 | Intel Corporation | Systems and methods for power-on user authentication |
US9015455B2 (en) * | 2011-07-07 | 2015-04-21 | Intel Corporation | Processsor integral technologies for BIOS flash attack protection and notification |
US8375221B1 (en) * | 2011-07-29 | 2013-02-12 | Microsoft Corporation | Firmware-based trusted platform module for arm processor architectures and trustzone security extensions |
US9354683B2 (en) * | 2012-08-08 | 2016-05-31 | Amazon Technologies, Inc. | Data storage power management |
US9292569B2 (en) * | 2012-10-02 | 2016-03-22 | Oracle International Corporation | Semi-join acceleration |
-
2013
- 2013-03-15 JP JP2015561893A patent/JP6050528B2/ja not_active Expired - Fee Related
- 2013-03-15 WO PCT/CN2013/072732 patent/WO2014139162A1/en active Application Filing
- 2013-03-15 BR BR112015018946A patent/BR112015018946A2/pt not_active IP Right Cessation
- 2013-03-15 EP EP13877987.1A patent/EP2973139B1/en active Active
- 2013-03-15 CN CN201380073058.2A patent/CN104981814B/zh active Active
- 2013-03-15 US US13/976,041 patent/US9223983B2/en not_active Expired - Fee Related
- 2013-03-15 KR KR1020157021704A patent/KR101759411B1/ko active IP Right Grant
-
2015
- 2015-12-29 US US14/982,697 patent/US9563775B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002525745A (ja) * | 1998-09-24 | 2002-08-13 | フィーニックス テクノロジーズ リミテッド | ブート時間を最小化するためにバイオス・ブート・シーケンス中に他のプロセッサを使用する方法 |
JP2007172145A (ja) | 2005-12-20 | 2007-07-05 | Seiko Epson Corp | プロセッサ及びブート処理方法をコンピュータに実行させるためのプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN104981814B (zh) | 2018-08-14 |
US20160188881A1 (en) | 2016-06-30 |
US9223983B2 (en) | 2015-12-29 |
WO2014139162A1 (en) | 2014-09-18 |
US20150220738A1 (en) | 2015-08-06 |
JP6050528B2 (ja) | 2016-12-21 |
US9563775B2 (en) | 2017-02-07 |
JP2016513838A (ja) | 2016-05-16 |
KR20150106922A (ko) | 2015-09-22 |
BR112015018946A2 (pt) | 2017-07-18 |
EP2973139A1 (en) | 2016-01-20 |
EP2973139B1 (en) | 2020-04-22 |
CN104981814A (zh) | 2015-10-14 |
EP2973139A4 (en) | 2016-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8201163B2 (en) | Input/output transaction management during platform initiation | |
US9542201B2 (en) | Network bios management | |
US20180113764A1 (en) | Hypervisor Based Watchdog Timer | |
US9529750B2 (en) | Service processor (SP) initiated data transaction with bios utilizing interrupt | |
JP4855451B2 (ja) | 記憶装置のアクセス方法及び装置 | |
KR20110130435A (ko) | 메모리 세그먼테이션 및 acpi 기반 컨텍스트 전환을 사용하는 운영 시스템 로딩 | |
US9262178B2 (en) | Method for reducing platform boot times by providing lazy input/output abstractions | |
US9529410B2 (en) | Service processor (SP) initiated data transaction with BIOS utilizing power off commands | |
EP3910469A1 (en) | Interface and warm reset path for memory device firmware upgrades | |
US10936300B1 (en) | Live system updates | |
US20140068607A1 (en) | Managing safe removal of a passthrough device in a virtualization system | |
KR101759411B1 (ko) | 보안 보조 프로세서 부팅 성능 | |
US11816220B2 (en) | Phased boot process to dynamically initialize devices in a verified environment | |
US11106457B1 (en) | Updating firmware runtime components | |
US8291436B2 (en) | Synchronization of event handlers | |
US8499142B1 (en) | UEFI boot loader for loading non-UEFI compliant operating systems | |
CN105677606B (zh) | 总线设备的热插拔方法及总线装置 | |
US20150178175A1 (en) | Information processing device and monitoring method | |
US11593121B1 (en) | Remotely disabling execution of firmware components | |
US20240086220A1 (en) | Delaying interrupts for virtual machines | |
TWI479419B (zh) | 電腦系統及其電腦系統啟動之方法 | |
US20180300264A1 (en) | Function states of a device coupled to a computer bus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |