KR20130094317A - 신뢰성 있는 부트 최적화를 위한 방법 및 장치 - Google Patents
신뢰성 있는 부트 최적화를 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR20130094317A KR20130094317A KR1020137006741A KR20137006741A KR20130094317A KR 20130094317 A KR20130094317 A KR 20130094317A KR 1020137006741 A KR1020137006741 A KR 1020137006741A KR 20137006741 A KR20137006741 A KR 20137006741A KR 20130094317 A KR20130094317 A KR 20130094317A
- Authority
- KR
- South Korea
- Prior art keywords
- boot
- data processing
- processing system
- digest
- cache
- 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
-
- 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/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
Abstract
데이터 처리 시스템은 업데이트로부터 보호되는 캐시 또는 파티션을 갖는 고 무결성 스토리지(HIS) 장치를 포함할 수 있다. 데이터 처리 시스템은 재가동되는 것에 응답하여 부트 프로세스를 수행할 수 있다. 부트 프로세스는 부트 오브젝트를 실행하는 작업을 포함할 수 있다. 부트 프로세스 동안, 부트 오브젝트를 실행하기 전에, 데이터 처리 시스템은 HIS 장치의 보호되는 캐시로부터 부트 오브젝트에 대한 다이제스트를 검색할 수 있다. 다이제스트는 부트 오브젝트에 대한 암호화 해시 값일 수 있다. 부트 프로세스 동안, 검색된 다이제스트는 데이터 처리 시스템의 TPM 내의 플랫폼 구성 레지스터 내에 확장될 수 있다. 다른 실시들도 설명되고 청구된다.
Description
본 개시는 일반적으로 신뢰성 있는 부트 프로세스에 관련된다. 더 구체적으로, 본 개시는 고 무결성 스토리지 기술의 사용을 통해 신뢰성 있는 부트 프로세스를 최적화하는 것에 관련된다.
본 개시의 목적을 위해, 데이터 처리 시스템을 "재가동"하는 것은 데이터 처리 시스템을 턴 온하거나 리세트하는 것이다. 통상적으로, 데이터 처리 시스템이 재가동되면, 그것은 사용자에게 유용하게 되기 전에 부트 프로세스를 완료해야 한다. 예를 들어, 부트 프로세스는 무슨 유형들의 하드웨어 구성 요소들이 존재하는지를 판정하고 운영 체제(OS)를 로드(load)하는 등의 작업들을 포함할 수 있다. 부트 프로세스에서 로드 및/또는 실행되는 오브젝트는 "부트 오브젝트(boot objects)"라고 일컬어질 수 있다. 또한, 부트 프로세스는 이러한 "사전-부트 패이즈(pre-boot phase)" 및 "OS 부트 패이즈" 등의 상이한 단계들을 포함할 수 있다. 본 개시의 목적을 위해, 사전-부트 패이즈는 재가동 후 첫번째 작업으로 개시하여 OS 부트 로더 등에 제어의 전달로 종료하는 데이터 처리 시스템에 의해 실행되는 모든 작업들을 포함한다. 따라서, OS 부트 패이즈는 제어가 OS 부트 로더에 전달될 때 개시한다. 사전-부트 패이즈는 일반적으로 기본 입력/출력 시스템(basic input/output system: BIOS)에 의해 관리된다. BIOS는 또한 "펌웨어(firmware)"라고 일컬어질 수도 있다.
최근, 악성코드(예를 들어, 컴퓨터 바이러스와 루트킷(rootkits))가 OS 커널, OS 부트 로더, 또는 심지어 펌웨어 등의, 로우 레벨의 코드를 공격하도록 개발되어 왔다. 이러한 유형의 악성코드는, 안티-바이러스 소프트웨어(anti-virus software)와 동일한 보안 레벨에서 작동할 수 있기 때문에, 안티-바이러스 소프트웨어가 검출하고 제거하는 것이 어려울 수 있다.
TCG(Trusted Computing Group: TCG)는 그러한 공격에 대한 보호를 돕기 위해 TPM(trusted platform modules: TPMs)의 표준을 개발해 왔다. 예를 들어, TCG는 2011년 4월 28일자의 "TCG PC 클라이언트 특정 TPM 인터페이스 사양서(TCG PC Client Specific TPM Interface Specification)(TIS)"란 제목의, 버전 1.21, 개정 1.00의 문서("TPM 클라이언트 사양서")를 공개했다. TPM 클라이언트 사양서에 설명된 바와 같이, TPM은 암호화 키의 안전한 생성 및 저장을 제공할 수 있다. 또한 TPM은 현재 플랫폼 구성에 대한 정보를 안전하게 저장하기 위한 플랫폼 구성 레지스터들(PCRs)을 제공할 수 있다. 또한 TPM은 암호화 해시 생성기(cryptographic hash generator) 또는 "해시 엔진"을 제공할 수 있다. 해시 엔진은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다.
신뢰성 있는 부트 프로세스는 로드될 시스템 오브젝트(또는 오브젝트들)의 무결성을 그의(또는 그들의) 로드 전에 검사하는 것을 수반할 수 있다. 예를 들어, 시스템 오브젝트는 그 오브젝트의 해시 값을 생성하기 위해 TPM의 해시 엔진을 통해 실행될 수 있다. 원래의 오브젝트는 "메시지(message)"라고 일컬어질 수 있고, 그 결과의 해시 값은 "해시 결과", "해시", 또는 "다이제스트(digest)"라고 일컬어질 수 있다. 또한, 메시지를 해시하는 프로세스는 메시지를 "측정(measuring)"하는 것이라고 일컬어질 수 있고, 그 결과의 다이제스트는 "측정 값(measurement)"이라고 일컬어질 수 있다. 소정의 오브젝트는, 오브젝트의 소정의 버전을 해시한 다음, 그 결과의 다이제스트와, 오브젝트의 원래 버전으로부터 생성된 것으로 알려진 다이제스트를 비교함으로써, 그 오브젝트의 원래 버전에 비해, 변경되지 않은 것으로서 검증될 수 있다. 그 결과, 로드된 모든 오브젝트들의 다이제스트들이 공지의 양호한 다이제스트들에 대해 검증될 수 있다면, 그 검증을 수행할 책임이 있는 함수(또는 함수들)가 신뢰될 수 있는 경우, 컴퓨팅 플랫폼의 무결성이 신뢰될 수 있다. 다이제스트를 검증하는 한 가지 방법은, 공지의 양호한 메시지에 대한 공지의 양호한 다이제스트의 목록과의 직접 비교에 의한 것이다(즉, "화이트리스트"를 사용하여). 다른 방법은, 다이제스트가 양호한지의 여부를 판정하고 입증하기 위해 신뢰되는 제3자측에 다이제스트를 보고하는 것이다(즉, "입증(attestation)"을 통해). 다이제스트 인증을 위해 화이트리스트를 사용하는 데이터 처리 시스템은 "보안 부트" 또는 "보안 론치(secure launch)"를 행한다고 말할 수 있다. 다이제스트 인증을 위해 입증을 사용하는 데이터 처리 시스템은 "측정된 부트(measured boot)" 또는 "측정된 론치"를 수행한다고 말할 수 있다. "신뢰성 있는 부트"라는 용어는 "보안 부트" 및 "측정된 부트"를 둘 다 포괄한다.
신뢰성 있는 부트 프로세스에 있어서, 데이터 처리 시스템의 BIOS는 암시적으로 신뢰되는 기본적인 함수(또는 함수들의 집합)를 수반하는 신뢰성 체인을 확립하기 위해 TPM을 사용할 수 있다. 그 기본적인 함수는 "신뢰성 루트(root of trust)"라고 일컬어질 수 있다. 예를 들어, 데이터 처리 시스템의 부트 시에 BIOS에 의해 실행되는 초기 함수들 중 하나는 BIOS 자체를 측정하고 검증하기 위한 함수일 수 있다. 그 함수는 "측정을 위한 신뢰성 정적 코어 루트(static core root of trust for measurement: SCRTM)"라고 일컬어질 수 있다. 예를 들어, SCRTM은 플랫폼 구성 요소들을 초기화하고 설정하는 플랫폼 펌웨어의 서브셋으로서 플랫폼 제조업체에 의해 공급되는 코드일 수 있다.
또한, 일단 해시 값이 생성되면, 그것은 TPM 내의 PCR에 부가될 수 있다. 이 프로세스는 PCR을 "확장"하는 것으로서 알려져 있다. TPM의 클라이언트 사양서에 설명된 바와 같이, 다른 유형들의 부트 오브젝트들에 대한 측정 값들을 저장하기 위해 다른 PCR들이 사용될 수 있다. 그리고 TPM은 컴퓨팅 플랫폼 세션 기간 동안 그의 PCR들 중 적어도 일부 내의 값들을 보전할 수 있으나, 그 후 컴퓨터 플랫폼이 재시작하거나 다시 리세트될 때 모든 PCR들은 고정 값(예를 들어, 0)으로 초기화될 수 있다.
TCG는 또한 하드 디스크 드라이브 등의 스토리지 장치의 보안을 강화하기 위한 표준을 공개했다. 예를 들어, TCG는 2010년 2월 4일자의 "TCG 스토리지: 보안 서브시스템 클래스: 오팔(TCG Storage: Security Subsystem Class: Opal)"이란 제목의, 사양서 버전 1.00, 개정 3.00의 문서("오팔 사양서")를 공개했다. 오팔 사양서에 정해진 목적은 다음과 같다: "스토리지 워크그룹 사양들은 신뢰성 있는 플랫폼 호스트에 의해 결정된 정책 제어하에 스토리지 장치를 두기 위한 포괄적인 아키텍처와, 신뢰성 있는 플랫폼의 정책들을 준수하는 스토리지 장치의 기능과, 신뢰성 있는 주변 장치로서의 스토리지 장치의 수명주기 상태를 제공한다."
하기에서 상세히 설명하는 바와 같이, 본 개시는 안전한 스토리지를 사용하여, 신뢰성 있는 부트 성능의 최적화를 위한 기술을 소개한다.
본 발명의 특징 및 장점은 첨부된 특허 청구 범위, 하나 이상의 실시예에 대한 하기의 상세한 설명, 및 대응하는 도면들로부터 명백해질 것이다.
도 1은 보안 부트 성능을 최적화하기 위해 고 무결성 스토리지 장치를 사용하는 데이터 처리 시스템을 갖는 컴퓨팅 환경의 실시예의 블록도이다.
도 2a, 도 2b, 및 도 2c는 최적화된 보안 부트 프로세스의 실시예의 흐름도를 제시한다.
도 3은 도 2a, 도 2b, 및 도 2c의 프로세스에 연관된 다양한 구성 요소들 및 작업들을 도시하는 블록도이다.
도 4는 최적화된 보안 부트 프로세스의 다른 실시예에 연관된 다양한 구성 요소들 및 작업들을 도시하는 블록도이다.
도 5는 최적화된 보안 부트 프로세스를 위한 데이터 처리 시스템을 준비하는 프로세스의 실시예의 흐름도를 제시한다.
도 6은 도 5의 프로세스에 연관된 다양한 구성 요소들 및 동작들을 도시하는 블록도이다.
도 1은 보안 부트 성능을 최적화하기 위해 고 무결성 스토리지 장치를 사용하는 데이터 처리 시스템을 갖는 컴퓨팅 환경의 실시예의 블록도이다.
도 2a, 도 2b, 및 도 2c는 최적화된 보안 부트 프로세스의 실시예의 흐름도를 제시한다.
도 3은 도 2a, 도 2b, 및 도 2c의 프로세스에 연관된 다양한 구성 요소들 및 작업들을 도시하는 블록도이다.
도 4는 최적화된 보안 부트 프로세스의 다른 실시예에 연관된 다양한 구성 요소들 및 작업들을 도시하는 블록도이다.
도 5는 최적화된 보안 부트 프로세스를 위한 데이터 처리 시스템을 준비하는 프로세스의 실시예의 흐름도를 제시한다.
도 6은 도 5의 프로세스에 연관된 다양한 구성 요소들 및 동작들을 도시하는 블록도이다.
"보안 컴퓨팅 환경의 구축(Creating a Secure Computing Environment)"을 위한 기술은 www.intel.com/technology/advanced_comm/322287.pdf에서 입수할 수 있는 Intel® "신뢰성 있는 실행 기술(Trusted Execution Technology)"(TXT)의 기술 개요(Technology Brief)에 쉽게 설명되어 있다. 그 개요는 신뢰성 있는 부트 또는 보호된 론치를 제공하는 다양한 기능들에 대해 설명한다. 그 기능들 중 하나는, BIOS에 저장된 서명된 바이너리로 구성되고 부트 프로세스를 보안하는 것을 돕는 BIOS 인증 코드 모듈(authentication code module: ACM)을 수반한다. 또 다른 기능은, 모든 시스템 소프트웨어에 대한 바이너리 해시들을 생성하고, 그 결과를 TPM에 저장하고, 임의의 소프트웨어가 실행을 시작하는 것이 허용되기 전에 이전의 값들에 의해 새로운 해시 값들이 검증되는 것을 수반한다.
그러나, 새로운 해시 값들의 계산은 상당한 시간이 걸릴 수 있으며, OS의 로딩을 지연시킬 수 있다. 이러한 지연은 해시 알고리즘의 하드웨어 가속화를 통해 어느 정도 감소시킬 수 있다. 그러나, 더 강력한 해시 알고리즘들은, 하드웨어 가속화에 의하더라도, 더 많은 다이제스트들을 계산하기 위해 더 많은 시간을 필요로 하고 상당한 지연을 계속 유발한다.
도 1은 보안 부트 성능을 최적화하기 위해 고 무결성 스토리지(high integrity storage: HIS) 장치(60)를 사용하는 데이터 처리 시스템(20)을 갖는 컴퓨팅 환경(100)의 실시예의 블록도이다. 도 1의 실시에 있어서, 데이터 처리 시스템은 랜덤 액세스 메모리(random access memory: RAM)(24) 및 판독 전용 메모리(read only memory: ROM) 등의 다른 구성 요소와 통신하는 하나 이상의 중앙 처리 장치(CPUs) 또는 프로세서(22)를 포함한다. 본 개시의 목적을 위해, "ROM"이란 용어는 소거가능한 프로그래머블(erasable programmable) ROM(EPROM), 전기적으로 소거가능한 프로그래머블(electrically erasable programmable) ROM(EEPROM), 플래시 ROM, 및 플래시 메모리를 포함하지만, 그것에 한정되지 않는 비휘발성 메모리 장치를 일컫기 위해 일반적으로 사용될 수 있다. 프로세서는 RAM과의 통신을 용이하게 하기 위해 메모리 컨트롤러(14)를 포함할 수 있거나, 또는 메모리 컨트롤러가 독립적으로 구현될 수 있거나 또는 다른 구성 요소의 일부로서 구현될 수 있다. 프로세서는 칩셋(12) 또는 주변 장치 컨트롤러 허브(peripheral controller hub: PCH)를 통해 다른 구성 요소와 통신할 수 있다. ROM은 직렬 주변기기 인터페이스(Serial Peripheral Interface: SPI) 버스를 통해 칩셋에 결합될 수 있고, ROM은 SPI 플래시(30)라고 일컬어질 수 있다.
데이터 처리 시스템의 부팅은 SPI 플래시에 적어도 부분적으로 상주하는 BIOS(32)에 의해 관리될 수 있다. BIOS는, 사전-검증기(pre-verifier)(34), SCRTM(33), 드라이버 실행 환경(driver execution environment: DXE) 로더(34), 및 HIS 드라이버(38)를 포함한 다양한 다른 DXE 드라이버들(36) 등의, 부트 프로세스 동안 로드 및/또는 실행되는 다양한 부트 오브젝트들을 포함할 수 있다.
프로세서는 관리능력 엔진(manageability engine: ME)(23)을 통해 SPI 플래시와 통신할 수 있다. ME는 칩셋 및 연관된 펌웨어 내의 컨트롤러에 의해 구현될 수 있다. ME는 사전-부트 환경에서 다양한 보안 및 관리능력 기능들을 제공할 수 있다. 다음에 나타내는 바와 같이, 그러한 기능들은 사용자 인증 및 사용자 존재 검증을 포함할 수 있다. 사용자 인증 및 사용자 존재 검증을 수행하기 위한 하드웨어 및/또는 소프트웨어 제어 로직은 임베디드 액세스 매니저(embedded access manager: EAM)(25)라고 일컬어질 수 있다. 예를 들어, EAM은 ME에서 실행하는 펌웨어로서 구현될 수 있다. 또한 ME의 기능들은 근거리 통신망(LAN)의 통신 기능들을 포함할 수 있다. 또한 PCH 또는 ME는 버스 백플레인 상의 구성 요소 등의 다른 구성 요소와의 통신을 제어할 수 있다. 그러나, 일 실시에 있어서, 처리 시스템은 ME에 의해 액세스될 수 없는 SATA(Serial Advanced Technology Attachment) 컨트롤러를 포함한다.
제조 동안 SPI 플래시는, BIOS(32)를 포함하는 BIOS 세그먼트, ME를 구현하기 위한 펌웨어를 저장하는 ME 세그먼트(29), LAN 통신 등을 용이하게 하기 위한 LAN 세그먼트 등의, 다른 구성 요소들에 의한 독점적 사용을 위한 세그먼트들로 플랫폼 제조사에 의해 파티션될 수 있다. ME 세그먼트는 또한 ME 데이터를 저장하기 위한 ME 스토리지 영역(27)을 포함할 수 있다. 마찬가지로, BIOS 세그먼트는 BIOS 데이터를 저장하기 위한 BIOS 스토리지 영역(31)을 포함할 수 있다.
또한 프로세서는 비휘발성 스토리지 장치(60)에, 네트워크 어댑터 또는 포트(28)에, 입력/출력(I/O) 포트(26)에, 그리고 하나 이상의 디스플레이(50) 및 하나 이상의 입력 장치(52)(예를 들어, 키보드 및 마우스) 등의 I/O 장치들에 접속될 수 있다. 스토리지 장치는 하드 디스크 드라이브(hard disk drive: HDD), 플래시 메모리, 또는 임의의 다른 적절한 스토리지 기술일 수 있다. 네트워크 포트는 LAN 및/또는 인터넷 등의 광역 네트워크(wide area network: WAN)(39)를 통해 데이터 처리 시스템과 하나 이상의 원격 데이터 처리 시스템(44) 사이의 통신을 위해 사용될 수 있다. 또한 프로세서는 암호화 프로세서(cryptographic processor: CP)(42), 다양한 영구 키를 저장하는 비휘발성 메모리, 및 각종 PCR들(44)뿐만 아니라 각종 로드된 키를 저장하는 휘발성 메모리를 갖춘 TPM(40)에 접속될 수 있다. TPM은, 예를 들어, 마더보드에 부착되고, SPI 버스를 통해, 또는 PCIe(Peripheral Component Interconnect Express) 버스를 통해 액세스 가능한 개별 칩일 수 있다.
일 실시에 있어서, BIOS는 확장 가능한 펌웨어 인터페이스(EFI)를 제공한다. 예를 들어, BIOS는 인터넷의 www.uefi.org/specs/에서 입수할 수 있는 통일화된 EFI(UEFI) 사양서("UEFI 사양서")의 버전 2.3.1에 정해진 표준 등의, 작업을 위해 설정된 표준에 거의 따를 수 있다. 예를 들어, UEFI 사양서의 제27장은 보안 부트를 수행하기 위해 사용될 수 있는 프로세스의 일부 양태들에 대한 세부 사항들을 제공한다. 그러나 어떤 실시들에서는, 작업을 위한 그 표준들이 본 명세서에 제공되는 교시에 따라, 더 최적화되거나 또는 달리 수정될 수 있다. 다른 실시들에 있어서, 본 교시는 다른 유형의 BIOS들을 갖는 데이터 처리 시스템에 의해 사용될 수 있다. 또한, 데이터 처리 시스템은 보안을 제공하기 위해 Intel® TXT로서 총칭되는 것 등의 기술 특징을 사용할 수 있다. Intel® TXT에 관한 부가적인 세부 사항들은 위에서 언급한 기술 개요로부터 그리고 인터넷의 www.intel.com/technology/security에서 얻을 수 있다.
도 1의 실시에 있어서, 스토리지 장치의 적어도 일부는 HIS 드라이버에 의해 관리되고, 다음에 나타낸 바와 같이 인증된 관리자가 업데이트를 적용하고 있는 것이 아니라면, HIS 드라이버는 스토리지 장치의 적어도 일부(예를 들어, HIS 파티션(62))가 부트 프로세스 동안(그리고 부트 프로세스 후에) 판독 전용 모드로 잠겨지는 것을 보장한다. 이 개시의 목적을 위해, 용어 "HIS 장치"는 스토리지를 포함한 임의의 장치를 일컫기 위해 사용될 수 있는데, 그것의 적어도 일부는, 사용자가 특정 사용자 세션 동안 업데이트 권한을 갖는다고 인증되지 않는다면, 판독 전용 모드로 잠긴 채 유지된다. 예를 들어, 데이터 처리 시스템은 HIS 장치를 보호하기 위해 오팔 사양서에 기재되어 있는 것과 거의 같은 기술을 사용할 수 있다. 일 실시에 있어서, 전체 스토리지 장치는 HIS를 인식할 수 있다. 다른 실시에 있어서, 스토리지 장치의 일부만이 HIS 파티션으로서 구성된다. 다른 실시에 있어서, 스토리지 장치는 여러 HIS 파티션을 가지며, 예를 들어, 하나는 OS용으로 예약되고, 다른 하나는 신뢰성 있는 부트용으로 예약된다.
또한, HIS 파티션 내의 부트 무결성 캐시(BIC)(64)는 부트 동안 실행될 부트 오브젝트에 대한 다이제스트들 또는 해시 값들을 포함한다. 도시된 바와 같이, 그러한 다이제스트들은, 예를 들어, 하나 이상의 "다른 드라이버" 다이제스트(HIS 드라이버 이외의 "다른" 하나 이상의 오브젝트에 대한 하나 이상의 다이제스트를 일컬음), OS 로더 다이제스트, 및 하나 이상의 OS 드라이버 다이제스트를 포함할 수 있다. 데이터 처리 시스템이 신뢰성 있는 부트를 수행할 때, 그 해시 값들을 재계산하는 것 대신에, 데이터 처리 시스템은 HIS 장치로부터 해시 값들을 검색할 수 있고, 그 해시 값은 TPM PCR들을 확장하기 위해 사용될 수 있다. HIS 장치로부터 해시 값을 검색하기 위한 판독 작업은 그에 필적하는 해시 알고리즘의 계산보다 현격히 빠를 수 있다. 도시된 바와 같이, 부트 무결성 캐시 이외에, HIS 파티션은 OS 이미지(66)를 포함할 수도 있다.
하기에서 더 상세히 설명하는 바와 같이, BIOS는 유효한 신뢰성 루트에서 시작하여 HIS 장치의 신뢰성 있는 드라이버를 포함하도록 진행하여, HIS 장치에 대한 신뢰성 체인을 확립할 수 있다. 일단 HIS 장치가 신뢰성 체인에 포함되었다면, HIS 드라이버는 HIS 장치의 부트 무결성 캐시로부터 부트 오브젝트의 다이제스트를 판독하기 위해 사용될 수 있다. 어떤 실시들에 있어서, 하나 이상의 부트 오브젝트가 또한 HIS 장치로부터 판독된다. 다른 실시들에 있어서, 하나 이상의 부트 오브젝트가 ROM으로부터 그리고/또는 하나 이상의 다른 장치로부터 판독된다.
도 2a, 도 2b, 및 도 2c는 도 1의 데이터 처리 시스템(20)에 관한, 최적화된 보안 부트 프로세스의 실시예의 흐름도를 제시한다. 도 3은 도 2a, 도 2b, 및 도 2c의 프로세스에 연관된 다양한 구성 요소들 및 작업들을 도시하는 블록도이다. 도 2a의 프로세스는 블록(700)에 나타낸 바와 같이, 데이터 처리 시스템의 재가동에 의해 시작하며, 즉시 사전-검증기의 실행이 이어진다. 도 1의 실시예와 유사한 실시에 있어서, 사전-검증기는 ACM으로서 구현될 수 있다. 따라서, ACM은 아마도 SPI 플래시에 저장되어 있는 화이트리스트에 기초하여 사전-검증기를 검증할 것이다. 다른 실시에 있어서, 사전-검증기는 프로세서 또는 칩셋에 저장되는 마이크로코드로서, 아마도 ME의 일부로서 구현될 수 있다. 마이크로코드로서 구현된다면, 사전-검증기는 신뢰성 있는 하드웨어 루트라고 생각될 수 있다. 그런 다음 사전-검증기는, 블록(702)에 나타낸 바와 같이, 시스템 ROM으로부터의 SCRTM을 해시하기 위해 TPM의 CP(암호화 프로세서)를 사용할 수 있고, 그 후 그 결과의 다이제스트를 TPM의 PCR 내에 확장할 수 있다. 그 후 사전-검증기는 SCRTM을 론치한다.
일 실시에 있어서, SCRTM은 TXT 보안 초기화(SINIT) ACM과 비슷하지만, SCRTM은 또한 데이터 처리 시스템 내의 부트 무결성 캐시의 존재를 검사한다. SCRTM은 또한 부트 프로세스가 HIS 파티션을 사용해야 하는지의 여부를 판정하기 위해 론치 제어 정책(LCP)과 협의할 수 있다. LCP는 예를 들어, 시스템 ROM에 저장된 설정에 의해 지정될 수 있다. 부트 무결성 캐시가 존재하는 것과, LCP가 부트 무결성 캐시의 사용을 방지하지 않는다는 것을 검출하는 것에 응답하여, SCRTM은 BIOS가 부트 무결성 캐시 옵션을 사용하고 있다는 것을 나타내는 메시지를 생성할 수 있다. 즉, 메시지는 HIS 부트 가속이 사용되고 있다는 것을 나타낼 수 있다. 따라서, 메시지는 HIS 장치가 부트 프로세스 동안 사용되었는지의 여부를 나타내는 부트 구성 데이터라고 일컬어질 수 있다. SCRTM은 PCR에 그 메시지를 해시-확장할 수 있다("해시-확장"은 메시지가 해시되고, 그 결과의 다이제스트가 PCR 내에 확장된다는 것을 의미한다). SCRTM은 또한 TPM에 연관된 이벤트 로그에 그 메시지를 기록할 수 있다. 이벤트 로그는 PCR 로그라고 불릴 수 있으며, 각 로그 항목은 PCR 번호, PCR 내에 확장된 값, 및 무엇이 측정되었는지를 나타내는 로그 메시지를 포함할 수 있다.
UEFI 측정 부트 작업들에 대한 추가의 상세 사항들은, 인터넷 www.intel.com/intelpress/sum_efi2.htm에서 주문할 수 있는 "Beyond BIOS, 2nd Edition: Developing with the Unified Extensible Firmware Interface"라는 책의 제10장에서 찾을 수 있고, 인터넷 http://download.intel.com/technology/efi/SF09_EFIS001_UEFI_PI_TCG_White_Paper.pdf에서 다운로드할 수 있는 "신뢰성 있는 플랫폼(Trusted Platforms): UEFI, PI, 및 TCG 기반의 펌웨어"라는 제목의 백서에서 찾을 수 있다. 이어서, 다른 당사자("검증기")는 PCR 로그에 기초하여, 데이터 처리 시스템이 HIS 부트 가속을 사용했는지의 여부(예를 들어, 데이터 처리 시스템이 실시간으로 직접 그 다이제스트들을 계산한 것이 아니라 캐시된 값들로부터 다이제스트들을 확장했는지의 여부)를 판정할 수 있다. 일 실시에 있어서, PCR 로그의 유효화는, TPM으로부터 얻어지고, 입증 식별 키(Attestation Identity Key: AIK)를 사용하여 TPM에 의해 서명되는 입증된 PCR 값들을 필요로 한다. PCR 로그는 검증기에 PCR 값들을 의미가 있도록 해석하고 적용하는 방법에 대해 지시한다. 검증기가 HIS 부트 가속의 사용을 금지하는 정책을 갖고 있다면, 검증기는 검증기에 의해 보호된 리소스들에 대한 데이터 처리 시스템에 의한 액세스를 허용하지 않도록 결정할 수 있거나, 또는 검증기는 위험을 줄이기 위해 몇 가지 다른 보상 트랜잭션을 적용할 수 있다.
그 후, 블록(712)에 나타낸 바와 같이, SCRTM은 시스템 ROM으로부터 사전-EFI 초기화(PEI) 모듈을 해시하기 위해 TPM의 CP를 사용할 수 있고, 그런 다음 그 결과의 다이제스트를 PCR 내에 확장할 수 있다. 그 후, 블록(714)에 나타낸 바와 같이, SCRTM은 PEI 모듈을 론치할 수 있다. 그 후, 블록(716)에 나타낸 바와 같이, PEI 모듈은 DXE 로더를 해시할 수 있고, 그 다이제스트를 PCR에 확장할 수 있다. 그 후, 블록(718)에 나타낸 바와 같이, PEI 모듈은 DXE 로더를 론치할 수 있다. 그 후, 블록(720)에 나타낸 바와 같이, DXE 로더는 HIS 드라이버를 해시할 수 있고, 그 다이제스트를 PCR 내에 확장할 수 있다. 그 후, 블록(722)에 나타낸 바와 같이, DXE 로더는 HIS 드라이버를 론치할 수 있다. 그 후, HIS 드라이버는 HIS 장치의 전원을 켜고, 쓰기 또는 업데이트 작업들을 금지하면서, 판독 작업들을 서비스할 수 있도록 그것을 설정함으로써 HIS 서브시스템을 초기화할 수 있다.
이어서, DXE 로더는 다양한 부가적인 오브젝트들을 론치할 수 있고, 적어도 어떤 경우들에 있어서는, 그 오브젝트들을 론치하기 전에, DXE 로더가 그 오브젝트들을 해시하는 것 대신에, 부트 무결성 캐시로부터 그 오브젝트들의 다이제스트들을 판독할 수 있다. 예를 들어, 시스템 ROM은 부트 프로세스 동안 사용될 부트 오브젝트들의 일부 또는 전부를 지정하는 LCP를 포함할 수 있고, DXE 로더는 다음과 같은 프로세스에 따라 그 오브젝트들 중 일부 또는 전부를 처리할 수 있다. 블록(724)에 나타낸 바와 같이, DXE 로더는 처리될 다음 부트 오브젝트를 선택할 수 있다. 그 후, 블록(730)에 나타낸 바와 같이, DXE 로더는 부트 무결성 캐시에 그 오브젝트의 다이제스트가 있는지의 여부를 판정할 수 있다. 그 캐시에 다이제스트가 없다면, DXE 로더는 블록(760)에 나타낸 바와 같이, 주요 소스로부터(예를 들어, 시스템 ROM으로부터 또는 옵션 ROM으로부터) 오브젝트의 이미지를 판독할 수 있다. 그 후, 블록들(762 및 764)에 나타낸 바와 같이, DXE 로더는 그 이미지를 해시하기 위해 CP를 사용할 수 있고, 그 결과의 다이제스트를 PCR 내에 확장할 수 있다. 그 후, 블록(736)에 나타낸 바와 같이, DXE 로더는 오브젝트를 론치할 수 있다. 블록(740)에 나타낸 바와 같이, 부트가 완료되면, 프로세스는 종료할 수 있다. 그러나, 처리할 부트 오브젝트가 더 있다면, 프로세스는 블록(724)으로 복귀할 수 있고, DXE 로더는 로드 및/또는 실행될 다음 부트 오브젝트를 선택할 수 있다.
그러나, 블록(730)을 다시 참조하여, 선택된 부트 오브젝트의 다이제스트를 부트 무결성 캐시가 가지고 있다고 DXE 로더가 판정하면, 프로세스는 페이지 커넥터 A를 통해 블록(810)으로 진행할 수 있으며, 그 블록은 플랫폼이 "판독-확장" 작업("read-extend" operation)을 지원하는지의 여부를 DXE 로더가 판정하는 것을 나타낸다.
일 실시예에 따르면, TPM은 영구 부트 무결성 캐시를 제공할 수 있는 HIS 파티션 또는 통합된 HIS 장치를 포함할 수 있다. 그 결과, TPM은 그 HIS 파티션에 저장된 캐시된 해시 값들에 직접 액세스할 수 있다. 또한 TPM은 그 캐시된 해시 값들을 PCR들 내에 확장할 수 있다. 판독-확장 작업 또는 명령은, TPM이 TPM의 부트 무결성 캐시로부터 직접 지정된 다이제스트를 TPM의 PCR에 확장하게 한다. 따라서, 판독-확장 작업은 DXE 로더가 다른 소스(예를 들어, 시스템 ROM)로부터 다이제스트를 판독한 후, TPM에 그 다이제스트를 공급하는 것을 회피하게 해준다. 이러한 유형의 통합은 2개의 작업을 하나로 결합함으로써 신뢰성 있는 부트 프로세스의 속도를 높일 수 있다. 또한, 통합된 HIS-TPM 장치는, 해시하기 쉬운 단일 코드 모듈로 구성되는 옵션 ROM DXE 드라이버 등의, 작은 이미지들 또는 짧은 시퀀스들만에 대해 판독-확장 인터페이스를 이용함으로써, 내부 확장 작업을 더 적게 수행할 수 있다. 그와 대조적으로, 일 실시에 있어서, 판독-확장은 하나 이상의 제3 모듈에 신뢰성 있는 부트 로직을 적용하는 코드를 포함하는 부트 오브젝트들에 대해 회피될 수 있다.
대안적으로, 통합된 부트 무결성 캐시를 TPM이 갖고 있을 때, 신뢰성 있는 부트로부터의 TPM PCR 값들은 부트 무결성 캐시에 저장될 수 있다. 그런 다음, 이후의 부트 동안, 부트 오브젝트가 론치될 때마다 부트 오브젝트 다이제스트에 대해 확장 작업이 수행되는 것 대신에, 그 PCR 값들이 신뢰성 있는 부트 프로세스의 종료시에 대응하는 PCR들에 확장될 수 있다.
일 실시에 있어서, HIS 드라이버는 TPM과 HIS 장치 사이의 그리고 ME와 HIS 장치 사이의 프록시 통신(proxy communications)을 행할 수 있다. 즉, HIS 장치와 ME 및/또는 TPM 사이의 통신을 위해, 측정 값의 무결성을 보호하기 위해 신뢰될 수 없는 BIOS 및 호스트 드라이버들을 사용하는 것 대신에, TPM상의 HIS 파티션에의 액세스가 노출되는 메커니즘으로서 HIS 드라이버가 사용될 수 있다. 다른 실시에 있어서, 가상화 엔진 디지털-아날로그 컨버터(virtualization engine digital-to-analog converter: VEDAC) 등의 가상화 엔진(virtualization engine: VE)의 칩셋 하드웨어가, 예를 들어, SATA 컨트롤러를 통해, HIS 장치에의 직접 액세스를 위해 사용될 수 있다. VE/VEDAC 하드웨어는 ME가 호스트 또는 BIOS 스토리지 드라이버를 필요로 하지 않고 스토리지 서브시스템에 직접 통신하는 것을 허용할 수 있다. VE/DAC는 또한 스토리지 컨트롤러 허브(SCH)로서 일컬어질 수 있다. HIS 장치는 SCH에 첨부될 수 있다. 또한, TPM은 ME 내에 구현될 수 있고, 그러한 ME는 융합 보안 엔진(converged security engine: CSE)이라고 일컬어질 수 있다. ME와 SCH는 호스트 BIOS 또는 OS를 통한 우회 없이, 직접 통신할 수 있다.
블록(810)을 다시 참조하여, 판독-확장이 지원되지 않는다면, DXE 로더는, 블록(818)에 나타낸 바와 같이, 부트 무결성 캐시로부터 다이제스트를 판독할 수 있다. DXE 로더는 또한 블록(818)에서 그 캐시로부터 부트 오브젝트 이미지를 판독할 수 있다. 예를 들어, 어떤 실시들에 있어서, 부트 오브젝트들 자체의 일부 또는 전부가 또한 부트 무결성 캐시에(또는 HIS 파티션의 어떤 다른 부분에) 저장될 수 있다. 그러한 부트 오브젝트들은 "HIS 보호 부트 이미지들"이라고 일컬어질 수 있다. 부트 오브젝트들 및 그 오브젝트들의 다이제스트들을 HIS 파티션에 저장하는 데이터 처리 시스템은 HIS 파티션에 오브젝트들을 저장하지 않는 데이터 처리 시스템보다 더 강력한 보안을 제공할 수 있다.
그 후, 블록(830)에 나타낸 바와 같이, DXE 로더는 보안 부트가 활성화되는(enabled)지의 여부를 판정할 수 있다. 보안 부트가 활성화되지 않으면, 블록들(834 및 836)에 나타낸 바와 같이, DXE 로더는 다이제스트를 PCR에 확장할 수 있고, 오브젝트를 론치할 수 있다. 그 후, 블록(840)에 나타낸 바와 같이, 부트 프로세스가 완료되면, 프로세스는 종료할 수 있다. 그렇지 않으면, 프로세스는 페이지 커넥터 B를 통해 블록(724)으로 복귀할 수 있어서, DXE 로더는 처리할 다음 부트 오브젝트를 선택한다.
그러나, 보안 부트가 활성화되면, 프로세스는 블록(830)으로부터 페이지 커넥터 C를 통해 블록(910)으로 진행하여, DXE 로더는 다이제스트가 금지 오브젝트의 "블랙 리스트"에서의 임의의 항목과 일치하는지의 여부를 판정한다. 일치한다면, 프로세스는 페이지 커넥터 B를 통해 블록(724)으로 진행하여, DXE 로더는 블랙리스트에 오른 오브젝트의 다이제스트를 PCR에 확장하지 않고 블랙리스트에 오른 오브젝트를 론치하지 않고, 다음 부트 오브젝트를 선택함으로써 블랙리스트에 오른 오브젝트를 폐기한다.
블록(910)을 다시 참조하여, 다이제스트가 블랙리스트에 있지 않다면, 블록(920)에 나타낸 바와 같이, DXE 드라이버는, 다이제스트가 승인된 다이제스트의 "화이트 리스트"에 있는지의 여부를 판정한다. 블록(930)에 나타낸 바와 같이, 다이제스트가 화이트리스트에 있는 어떠한 항목과도 일치하지 않으면, DXE 로더는 오브젝트가 임베디드 디지털 서명(예를 들어, UEFI 포터블 실행코드-공통 오브젝트 파일 포맷(PE-COFF) 실행코드에 대한 서명)을 갖는지의 여부를 판정한다. 그러한 서명은, 예를 들어 "Authenticode"라는 상표로 불리는 기술을 사용하여, 또는 임의의 다른 적절한 기술을 사용하여 생성될 수 있다. 오브젝트가 임베디드 디지털 서명을 포함하면, 그 서명은 블록(940)에 나타낸 바와 같이, 승인된 서명의 화이트리스트 내의 항목과 비교될 수 있다. 서명이 화이트리스트에서 발견되면, 다이제스트는 PCR에 확장될 수 있고, 블록들(924 및 926)에 나타낸 바와 같이, 오브젝트가 론치될 수 있다. 그리고, 블록(950)에 나타낸 바와 같이, 부트가 완료되지 않았다면, 프로세스는 페이지 커넥터 B를 통해 블록(724)으로 복귀할 수 있어서, DXE 로더가 처리할 다음 부트 오브젝트를 선택한다. 또는, 처리할 오브젝트가 더 이상 없다면, 프로세스는 종료할 수 있다. 그러나, 블록들(940 및 930)을 다시 참조하여, 서명이 화이트리스트에 없다면, 또는 오브젝트가 디지털 서명을 포함하지 않는다면, 프로세스는 페이지 커넥터 B를 통해 블록(724)으로 복귀할 수 있어서, 상기에서 언급한 바와 같이, 오브젝트가 폐기된다.
블록(810)을 다시 참조하여, 판독-확장이 지원된다면, DXE 로더는 블록(812)에 나타낸 바와 같이, 주요 소스로부터 또는 HIS 파티션으로부터 부트 오브젝트의 이미지를 판독할 수 있다. DXE 로더는 그런 다음 판독-확장 명령을 실행할 수 있거나, 또는 그렇지 않으면 판독-확장 요청을 TPM에 발행할 수 있고, 블록(814)에 나타낸 바와 같이, 그 요청은 부트 오브젝트의 식별자를 포함한다. 응답으로, TPM은, 블록(816)에 나타낸 바와 같이, PCR을 확장하기 위해 TPM의 부트 무결성 캐시로부터의 부트 오브젝트에 대한 다이제스트의 복사본을 사용할 수 있다. 그 후, 블록(820)에 나타낸 바와 같이, 처리할 부트 오브젝트가 더 있다면, 프로세스는 페이지 커넥터 B를 통해 블록(724)으로 복귀할 수 있다. 그렇지 않으면, 블록(822)에 나타낸 바와 같이, DXE 로더는 논리적 부트 경로 함의(the logical boot path entailment)를 이용하여 PCR들을 업데이트할 수 있다. 예를 들어, UEFI 펌웨어는 부트 타겟(예를 들어, UEFI 부트 옵션들에서 참조된 부트 타겟)에 대한 다이제스트가 이전 부트 시에 기록되었는지(예를 들어, PCR[4] 내에), 디스크 구조 정보에 대한 다이제스트가 이전 부트 시에 기록되었는지(예를 들어, PCR[5] 내에), 그리고/또는 다른 다이제스트들이 이전에 기록되었는지를 판정할 수 있다. 그러므로, DXE 로더는 연관된 해시 계산을 재실행하지 않고, HIS 캐시로부터 이러한 이전의 결과의 측정 해시들을 이용하여 PCR들을 업데이트함으로써, 논리적 부트 경로 함의를 이용하여 PCR들을 업데이트할 수 있다. 그런 다음 프로세스는 종료할 수 있다.
아래의 표는 회피될 수 있는 몇 가지 샘플 해시 계산 시간을 열거한다.
도 3은 도 2a, 도 2b 및 도 2c에 도시된 프로세스에 연관된 다양한 구성 요소들 및 작업들을 도시하는 블록도이다. 예를 들어, "해시"라는 레이블이 붙은 상이한 화살표들은 특정 구성 요소들(SCRTM 등)이 다른 구성 요소들(PEI 모듈 등)을 해시 하기 위해 TPM의 CP를 사용한다는 것을 나타낸다. 또한, 해시로부터 이어지져서 "다이제스트" 원을 향하고, 그리고 ("확장" 화살표를 통해) PCR로 향하는 화살표들은 오브젝트가 론치되기 전에 각 오브젝트의 해시 결과가 PCR 내에 확장된다는 것을 나타낸다. 또한, 도 3은, 일 실시에 있어서, 대응하는 다이제스트들이 HIS 장치의 부트 무결성 캐시로부터 판독되면서, 부트 오브젝트의 일부(예를 들어, "다른" 드라이버, OS 로더, 및 OS 드라이버(들))가 시스템 ROM으로부터 판독되는 것을 도시한다. 예를 들어, 보안 부트 프로세스가 BIOS를 너머 계속된다면, OS 드라이버들은 OS 로더 또는 OS 커널에 의해 무결성 검사를 받게 될 것이다. 이 기술은 보안 부트 프로세스를 더욱 가속화하기 위해 사용될 수 있다. 예를 들어, 이 기술은 OS 커널에 의해 로드될 첫 번째 드라이버들일 수 있는 조기 론치 안티-악성코드(Early Launch Anti-malware: ELAM)라고 불리는 드라이버들의 클래스를 검증하기 위해 사용될 수 있다. OS 로더 또는 OS 커널은 HIS 무결성 파티션으로부터 화이트리스트 드라이버들을 얻을 수 있다. 로드될 후속 드라이버들은 또한 HIS 무결성 파티션에 화이트리스트 이미지들을 갖고 있을 수 있다.
또한 "실행" 화살표는 제어가 어떻게 전달되는지를 의미한다. 예를 들어, SCRTM이 PEI 모듈을 론치하고 PEI 모듈이 DXE 로더를 론치하지만, 그 후 DXE 로더는 여러 오브젝트들을 순서대로 론치하는데, 그 각각의 (OS 로더 이외의 다른) 오브젝트가 실행을 종료한 후에는 DXE 로더로 제어가 복귀한다. 또한, "신뢰성 있는 판독(trusted read)"이라고 레이블이 붙은 점선 화살표들은, 드라이버 이미지가 디스크로부터 판독된 후에 동적으로 그 다이제스트들을 계산하는 것이 아니라, DXE 로더(및 OS 로더)가 신뢰성 있는 HIS 드라이버를 사용하여 HIS 파티션의 부트 무결성 캐시로부터 다이제스트를 판독하는 것을 의미한다. 그리고 점선 "확장" 화살표는 신뢰성 있는 판독 작업들로부터의 다이제스트들이 PCR 내에 확장되는 것을 의미한다.
도 4는 최적화된 보안 부트 프로세스의 대안적인 실시에 연관된 다양한 구성 요소들 및 작업들을 도시하는 블록도이다. 도 4의 실시는 도 3의 것과 유사하지만, 도 4에 있어서 TPM은 부트 무결성 캐시를 갖는 HIS 장치로서 역할을 하는 스토리지를 포함한다. 따라서, 판독-확장 작업들은 시스템 ROM으로부터 또는 옵션 ROM들로부터 그 다이제스트들을 판독하지 않고 부트 오브젝트의 다이제스트를 PCR 내에 확장하기 위해 사용될 수 있다.
도 5는 최적화된 보안 부트 프로세스를 위한 데이터 처리 시스템을 준비하기 위해, 데이터 처리 시스템(예를 들어, 도 1의 데이터 처리 시스템(20))의 부트 무결성 캐시에 다이제스트를 로드하는 프로세스의 실시예의 흐름도를 제시한다. 상기에서 언급한 바와 같이, 인증된 관리자가 업데이트를 적용하는 것이 아니라면, HIS 파티션은 판독 전용 모드로 잠겨진다. 데이터 처리 시스템은 도 1에 도시된 ME 등의, 확실하게 관리자를 인증하기 위한 다양한 기능들을 포함할 수 있다.
도 5의 프로세스는 데이터 처리 시스템의 재가동으로 시작할 수 있다. 사전-부트 프로세스의 초기 단계에서, 사용자는 HIS 파티션을 업데이트하기 위해 액세스를 요청할 수 있다. 예를 들어, DXE 로더는 도 2a에 도시된 프로세스의 단계(722)와 단계(724) 사이의 요청 등을 검출할 수 있다. 도 5의 블록들(410 및 412)에 나타낸 바와 같이, HIS 파티션에 대한 업데이트 또는 쓰기 액세스의 요청을 검출하는 것에 응답하여, DXE 로더는 임베디드 액세스 매니저를 초기화할 수 있다. 예를 들어, DXE 로더는 사용자를 인증하고 사용자의 존재 세션을 확립하기 위해 사용될 센서들 및 다른 인증 장치들을 작동시킬 수 있고, DXE 로더는, 그 장치들이 말단 사용자 입력을 수신하도록 준비시키는 디폴트 상태로 그 장치들을 초기화할 수 있다. 그 후 DXE 로더는 임베디드 액세스 매니저를 론치할 수 있다. 그 후, 블록(420)에 나타낸 바와 같이, 임베디드 액세스 매니저는 사용자가 관리자 권한이 승인되어 있는지를 검증하기 위해 사용자 인증을 수행할 수 있다.
도 6은 사용자 인증을 위해 사용될 수 있는 다양한 구성 요소들 및 작업들을 도시한다. 예를 들어, 도 6은 임베디드 액세스 매니저의 인증 시도와 사용자의 대응 응답을 포함한, 사용자(310)와 임베디드 액세스 매니저(25) 사이의 상호 작용을 도시한다. 따라서 임베디드 액세스 매니저는, 사용자가 HIS 파티션을 업데이트하기 위해 사용자가 권한이 부여된 것을 입증할 것을 필요로 한다. 이 사전-부트 인증(pre-boot authentication: PBA)은, 사용자가 사용자 아이디(userid)와 적어도 하나의 크레덴셜(credential)을 제공할 것을 필요로 할 수 있다. 크레덴셜은 (1) 사용자가 알고 있는 어떤 것(예를 들어, 패스워드) (2) 사용자라는 어떤 것(예를 들어, 지문이나 홍채 스캔을 사용하여) 그리고/또는 (3) 사용자가 소유한 어떤 것(예를 들어, USB 동글(dongle))을 포함할 수 있지만, 그것에 한정되지 않는다. 이러한 작업들은 종래의 하드 드라이브 패스워드 기능을 위해 사용되는 작업들과 유사할 수 있다. 어떤 실시들은 UEFI 사양서의 제31장에 설명된 사용자 아이덴티티 인프라스트럭처를 사용할 수 있다. 사용자 인증을 수행하기 위해, 임베디드 액세스 매니저는 사용자가 업데이트 또는 관리자 권한을 가지며 가입되어 있는지의 여부를 판정하기 위해, 승인된 사용자들 및 연관된 크레덴셜들의 소정의 목록에 대해 사용자 아이디와 크레덴셜을 확인할 수 있다.
임베디드 액세스 매니저가 사용자를 관리자로서 인증한 후에, 임베디드 액세스 매니저는 HIS 장치가 인식할 수 있고 입증할 수 있다는 크레덴셜(예를 들어, 패스워드)을 생성할 수 있다. 이 크레덴셜은 "액세스 토큰(access token)"이라고 일컬어질 수 있다. 액세스 토큰은 호스트(또는 BIOS) 론치 제어 정책 매니저(Launch Control Policy Manager: LCPM)에 전달될 수 있고, 그 후 LCPM은 HIS 가속된 신뢰성 있는 부트가 바람직한지의 여부를 판정할 수 있다. 바람직하다면, LCPM은 HIS 신뢰성 있는 부트 가속이 인에이블되어 있다는 것을 나타내는 데이터를 이용하여 TPM의 PCR을 확장할 수 있다. 그 후 LCPM은 HIS 드라이버를 통해 HIS 장치에 액세스 토큰을 제시함으로써 HIS 파티션의 잠금을 해제할 수 있다. 그 후 LCPM은 HIS 파티션에 업데이트를 적용할 수 있다. 예를 들어, LCPM은 아마도 그 부트 오브젝트의 이미지와 함께, 부트 무결성 캐시에 부트 오브젝트에 대한 다이제스트를 쓸 수 있다.
그러나, 도 5의 블록(420)을 다시 참조하여, 사용자 인증이 실패하면, 블록(430)에 나타낸 바와 같이, 오류 메시지가 표시될 수 있으며, 프로세스는 HIS 파티션에 업데이트를 적용하지 않고 종료할 수 있다.
또한, 사용자 인증이 성공하는 경우, 데이터 처리 시스템이 전에 부트 무결성 캐시 옵션을 전혀 사용하지 않았다면, 부트 무결성 캐시 사용을 인에이블하기 위해 초기화 구성을 확립하도록 특정 작업들이 수행될 수 있다. 예를 들어, 블록(422)에 나타낸 바와 같이, 데이터 처리 시스템은 클린룸 부트(cleanroom boot)를 수행할 수 있다. 예를 들어, 일단 관리자 액세스가 허용되었다면, ME는 관리자가 HIS 파티션에 쓰기 권한을 허용하는 BIOS 구성 비트를 설정할 수 있도록 할 수 있다. 그 비트가 일단 설정되면, 시스템은 보안을 시행하지 않고 대신 재부트될 수 있다. 따라서, 블록(424)에 나타낸 바와 같이, ME는 HIS 파티션에 쓰기를 인에이블할 수 있다. 그 후, 블록(426)에 나타낸 바와 같이, 예를 들어 도 6과 관련하여 설명한 바와 같이, ME는 클린룸 부트를 수행하고, 클린룸 부트 동안 처리된 부트 오브젝트들의 다이제스트들을 부트 무결성 캐시에 저장할 수 있다. (a) 관리자가 시스템이 현재 악성코드에 의한 공격을 받고 있지 않다고 믿는 경우(예를 들어, 관리자가 악성코드 스캔을 수행한 후), (b) 시스템이 임의의 신뢰성 없는 네트워크(untrusted networks)에 접속되어 있지 않은 경우, 그리고 (c) 시스템이 물리적 보안(예를 들어, 잠긴 문)에 의해 보호되는 장소(예를 들어, 정보 기술(IT) 연구실)에 있는 경우, 관리자는 클린룸 부트를 수행할 수 있다. 이것은 관리자가 관리자 패스워드를 입력해도 된다고 생각하는 "클린룸" 조건을 정의한다. 블록(428)에 나타낸 바와 같이, 클린 부트 측정 값들이 HIS 파티션에 저장된 후, ME는 HIS 파티션을 다시 잠글 수 있고, 그 후 프로세스는 종료할 수 있다.
부트 무결성 캐시가 이미 사용된 후에 인증된 관리자가 HIS 파티션을 업데이트할 수 있도록 하기 위해 유사한 작업들이 수행될 수 있다. 예를 들어, 관리자가 관리자에 의해 신뢰되는 드라이버를 포함하는 옵션 ROM이 있는 어댑터 카드를 추가했다면, 관리자는 그 어댑터 카드를 설치한 후 HIS 장치에 대한 업데이트 액세스를 요청할 수 있다. 전술한 프로세스는 그 후 새로운 드라이버에 대한 다이제스트와 새로운 드라이버의 사본을 부트 무결성 캐시에 저장하기 위해 사용될 수 있으며, 이에 의해 베이스라인 시스템 측정 값들을 업데이트한다. 동일한 유형의 프로세스가 시스템 BIOS 업데이트를 포함한 다른 업데이트를 위해 사용될 수 있지만, 그것에 한정되지 않는다.
또한 임베디드 액세스 매니저는 HIS 파티션에의 모든 업데이트를 위해 사용자 존재 요건을 실시할 수 있다. 예를 들어, 임베디드 액세스 매니저는 업데이트가 시도되고 있는 동안의 세션의 지속 기간에 사용자가 데이터 처리 시스템에 존재하는 상태로 유지할 것을 필요로 할 수 있다. 데이터 처리 시스템은 사용자가 근처에 없을 때를 검출하기 위해 근접 센서들을 사용할 수 있다. 사용자가 더 이상 존재하지 않는 것을 임베디드 액세스 매니저가 검출하면, 사용자 존재 세션이 상실된다. 응답으로, 임베디드 액세스 매니저는 인증에 응답하여 부여된 액세스 권한을 취소한다. 즉, ME는 HIS 파티션에 쓰기를 다시 잠글 수 있다. 이러한 지속적인 존재의 요건은 "사용자 존재 세션"에 대한 요건이라고 일컬어질 수 있다.
설명된 바와 같이, 데이터 처리 시스템은 부트 오브젝트의 다이제스트들을 생성하기 위해 암호화 해시 계산을 수행하는 것 대신에, 부트 무결성 캐시로부터 그 다이제스트들을 판독함으로써, 신뢰성 있는 부트 성능을 최적화할 수 있다. 데이터 처리 시스템의 BIOS는 암시적으로 신뢰성 있는 사전-검증기를 포함할 수 있고, OS 부트 로더 또는 가상 머신 모니터(virtual machine monitor: VMM) 로더 등의 필적할 소프트웨어를 포함한 것까지 모든 후속의 부트 오브젝트들에 대한 다이제스트들이 PCR들에 확장될 수 있다. 따라서, 데이터 처리 시스템은 측정된 론치 환경(measured launch environment: MLE)을 작성할 수 있다. 그 후 MLE의 측정 값들은 그 론치 환경의 구성 요소들 중 어떠한 것도 손상되지 않았다는 것을 검증하기 위해 사용될 수 있다.
일 실시에 있어서, MLE는 SCRTM에 의해 직접 측정된 코드로서 구현될 수 있다. 예를 들어, MLE는 가상 머신 모니터(VMM) 로더일 수 있다. 이 MLE는 "조기 론치된" MLE, 또는 BIOS 자체 내의 하이퍼바이저(hypervisor)일 수 있다. 그러한 구현을 위한 추가 정보는 다음의 문헌에서 찾을 수 있다.
"시스템 무결성과 레거시 환경 에뮬레이션을 제공하는 방법(A Method For Providing System Integrity And Legacy Environment Emulation)"이란 명칭의 미국 특허 제7,103,529호,
"신뢰성 있는 사전-부트 펌웨어로부터 제3자 사전-부트 펌웨어를 분리하는 방법(Method For Isolating Third Party Pre-Boot Firmware From Trusted Pre-Boot Firmware)"이란 명칭의 미국 특허 제7,827,371호, 및
"순차 하이퍼바이저 호출을 위한 방법 및 장치(Method And Apparatus For Sequential Hypervisor Invocation)"란 명칭의 미국 특허 출원 공개 제2009-0249053호.
어떤 플랫폼들에서의 MLE 효율을 결정하기 위해 사용되는 기준은 LCP에 의해 제공될 수 있다. 예를 들어, LCP는 UEFI 화이트리스트와 블랙리스트 내의 것과 유사한 정보를 포함할 수 있다.
일 실시에 있어서, 신뢰성 있는 부트 프로세스 동안 PCR들 내에 확장된 다이제스트들에 관해서는, 모든 다이제스트들이 동일한 PCR 내에 확장될 수 있다. 다른 실시들에 있어서, 다른 다이제스트들에 대해 다른 PCR들이 사용될 수 있다.
어떤 실시들에 있어서, 신뢰성 있는 부트 프로세스는 데이터 처리 시스템을 "인스턴트 온(instant on)"으로서 특성화할 수 있기에 충분히 신속하게 실행할 수 있다. 일 실시에 있어서, 데이터 처리 시스템은 HDD의 HIS 파티션으로부터 다이제스트들을 판독한다. HIS 파티션은 부트 동안 쓰기가 방지되기 때문에, 공격자가 부트 오브젝트를 통해 악성코드를 유입할 기회가 감소된다. HIS 드라이버가 신뢰되기 때문에, 전통적인 신뢰성 있는 부트를 수행한 신뢰성 플랫폼 루트 및 PEI 덕분에, 론치할 때 런타임 공격의 위험이 증가하지 않는다. HIS 파티션에의 액세스는 임베디드 액세스 매니저에 의해 제어되며, 임베디드 액세스 매니저는 강력한 인증을 사용하여 오직 인증된 관리자들만이 HIS 파티션 내의 이미지들을 업데이트할 수 있도록 한다.
본 명세서에 기재되고 예시된 원리들과 실시예들에 비추어, 예시된 실시들은 그러한 원리들로부터 벗어나지 않고 배치 및 세부 사항에 있어서 변경될 수 있다는 것을 알 것이다. 또한, 상기의 논의는 특정 실시들에 초점을 맞추고 있지만, 다른 구성들도 생각된다. 또한, "일 실시에 있어서" 또는 "다른 실시에 있어서" 등의 표현들이 본 명세서에서 사용되지만, 이러한 문구들은 일반적으로 실시 가능성을 일컫기 위한 의미이고, 본 발명을 특정 실시 구성에 한정하도록 의도된 것은 아니다. 본 명세서에서 사용된 이 용어들은 다른 실시들에 결합 가능한 동일한 또는 상이한 실시들을 일컬을 수 있다.
본 명세서에서 사용된 "처리 시스템"과 "데이터 처리 시스템"이란 용어들은 단일 머신, 또는 통신 가능하게 결합된 머신들의 또는 함께 작동하는 장치들의 시스템을 광범위하게 포괄하도록 의도된다. 예시적인 처리 시스템들은 분산 컴퓨팅 시스템, 슈퍼 컴퓨터, 고성능 컴퓨팅 시스템, 컴퓨팅 클러스터, 메인 프레임 컴퓨터, 미니 컴퓨터, 클라이언트 서버 시스템, 퍼스널 컴퓨터(PCs), 워크스테이션, 서버, 휴대용 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 개인 휴대 정보 단말기(PDAs), 전화, 핸드헬드 장치, 오디오 및/또는 비디오 장치 등의 오락 장치, 및 정보를 처리하거나 전송하는 다른 장치를 포함하지만, 그것에 한정되지 않는다.
또한, 서로 결합되거나, 서로 통신하거나, 또는 서로 반응하는 것으로서 기재된 구성 요소들은 명시적으로 달리 규정하지 않는 한, 상호 지속적인 통신 상태이거나, 또는 서로 직접 결합될 필요는 없다. 또한, 데이터 처리 시스템의 어떤 구성 요소들은 버스와의 통신을 위한 인터페이스(예를 들어, 커넥터)를 갖춘 어댑터 카드로서 구현될 수 있다. 대안적으로, 장치들은 프로그래머블 또는 논-프로그래머블(non-programmable) 로직 디바이스 또는 어레이, 주문형 집적 회로(ASICs), 임베디드 컴퓨터, 및 스마트 카드 등의 구성 요소들을 사용하여 임베디드 컨트롤러로서 구현될 수 있다.
또한 본 명세서에서 기재된 하드웨어 및 소프트웨어 구성 요소들은, 각각이 실질적으로 다른 것과 독립적으로 설계, 구축, 또는 갱신될 수 있도록 상당히 자립적인 기능 요소들을 나타낸다는 것을 이해해야 한다. 대안적인 실시들에 있어서, 구성 요소들의 많은 부분은 본원 명세서에 기재되고 예시된 기능을 제공하는 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로서 구현될 수 있다. 예를 들어, 대안적인 실시들은 본 발명의 작업들을 수행하기 위한 제어 로직 또는 명령을 인코딩한 머신 액세스 가능한 매체를 포함한다. 그러한 실시들은 또한 프로그램 제품이라고 일컬어질 수 있다. 그러한 머신 액세스 가능한 매체는 자기 디스크, 광 디스크, RAM, ROM, 플래시 메모리 등의 실체적인 저장 매체를 포함할 수 있지만, 그것에 한정되지 않는다. 대안적으로, 기재된 작업들을 실시하기 위한 제어 로직의 일부 또는 전부는 하드웨어 로직으로(예를 들어, 집적 회로 칩, 프로그래머블 게이트 어레이(PGA), ASIC 등의 일부로서) 구현될 수 있다. 또한 명령들은 분산 환경에서 사용될 수 있고, 단일 또는 멀티 프로세서 머신들에 의한 액세스를 위해 국지적으로 그리고/또는 원격으로 저장될 수 있다.
이 개시의 목적을 위해, "프로그램"이란 용어는 애플리케이션, 함수, 프로시저, 루틴, 모듈, 드라이버, 서브프로그램, 프로세스, 및 다른 유형의 소프트웨어 구성 요소들을 포함한 넓은 범위의 소프트웨어 구성을 포괄하도록 일반적으로 사용된다. 또한, 하나 이상의 예시의 프로세스가 특정 순서로 실행되는 특정 작업들에 대해 설명되었지만, 본 발명의 다수의 대체 실시를 도출하기 위해 다수의 수정이 그 프로세스들에 적용될 수 있다. 예를 들어, 대체 실시들은 개시된 모든 작업들보다 적은 작업들을 사용하는 프로세스들, 부가적인 작업들을 사용하는 프로세스, 및 본 명세서에 개시된 개별 작업들이 결합되거나, 세분화되거나, 재배열되거나, 또는 달리 변경되는 프로세스들을 포함할 수 있다.
본 명세서에 기재된 예시적인 실시들로부터 유도될 수 있는 광범위하게 다양한 유용한 순열들의 관점에서, 이 상세한 설명은 예시만을 의도한 것이며, 본 발명의 범위를 한정하는 것으로서 해석되지 말아야 한다. 그러므로, 발명으로서 특허 청구되는 것은, 다음의 청구항들 및 그러한 구현들에 대한 모든 등가물들의 범위 내에 들어오는 모든 구현들이다.
Claims (17)
- 데이터 처리 시스템의 부트 방법으로서,
데이터 처리 시스템이 재가동되는 것에 응답하여, 상기 데이터 처리 시스템에 대한 부트 프로세스를 수행하는 단계 -상기 부트 프로세스를 수행하는 단계의 동작은 부트 오브젝트를 실행하는 단계를 포함하고, 상기 데이터 처리 시스템은 업데이트들로부터 보호되는 캐시를 갖는 고 무결성 스토리지(high integrity storage: HIS) 장치를 포함함-; 및
상기 부트 프로세스 동안, 상기 부트 오브젝트를 실행하기 전에, 상기 HIS 장치의 보호되는 캐시로부터 상기 부트 오브젝트에 대한 다이제스트를 검색하는 단계 -상기 다이제스트는 상기 부트 오브젝트에 대한 암호화 해시 값을 포함함-
를 포함하고,
상기 방법은,
상기 부트 프로세스 동안, 상기 부트 오브젝트에 대한 검색된 다이제스트를 사용하여 상기 데이터 처리 시스템의 TPM(trusted platform module) 내의 플랫폼 구성 레지스터(platform configuration register: PCR)를 확장하는 단계; 및
상기 부트 프로세스 동안, 상기 HIS 장치의 보호되는 캐시로부터 상기 부트 오브젝트에 대한 캐시된 다이제스트를 검색하기 전에, 상기 HIS 장치의 보호되는 캐시를 판독 전용 모드로 자동으로 설정하는 단계
로 구성된 그룹으로부터의 동작을 더 포함하는 방법. - 데이터 처리 시스템의 부트 방법으로서,
데이터 처리 시스템이 재가동되는 것에 응답하여, 상기 데이터 처리 시스템에 대한 부트 프로세스를 수행하는 단계 -상기 부트 프로세스를 수행하는 단계의 동작은 부트 오브젝트를 실행하는 단계를 포함하고, 상기 데이터 처리 시스템은 업데이트들로부터 보호되는 캐시를 갖는 고 무결성 스토리지(HIS) 장치를 포함함-;
상기 부트 프로세스 동안, 상기 부트 오브젝트를 실행하기 전에, 상기 HIS 장치의 보호되는 캐시로부터 상기 부트 오브젝트에 대한 다이제스트를 검색하는 단계 -상기 다이제스트는 상기 부트 오브젝트에 대한 암호화 해시 값을 포함함-;
상기 부트 오브젝트를 해시하여 상기 부트 오브젝트의 다이제스트를 생성하는 단계; 및
상기 부트 오브젝트의 다이제스트를 상기 HIS 장치의 보호되는 캐시에 저장하는 단계
를 포함하는 방법. - 제1항에 있어서,
상기 데이터 처리 시스템의 사용자가 상기 보호되는 캐시를 업데이트할 권한이 부여되었는지의 여부를 판정하는 단계; 및
상기 사용자가 상기 보호되는 캐시를 업데이트할 권한이 부여되었다고 판정한 후에만 상기 HIS 장치의 보호되는 캐시를 쓰기가능 모드로 설정하는 단계를 더 포함하는 방법. - 제3항에 있어서,
상기 보호되는 캐시를 쓰기가능 모드로 설정한 후, 새로운 다이제스트를 상기 보호되는 캐시에 저장하는 단계; 및
상기 새로운 다이제스트를 상기 캐시에 저장한 후, 상기 보호되는 캐시를 판독 전용 모드로 자동으로 설정하는 단계를 더 포함하는 방법. - 제4항에 있어서,
새로운 부트 오브젝트를 상기 데이터 처리 시스템에 저장하는 단계를 더 포함하고,
상기 새로운 다이제스트는 상기 새로운 부트 오브젝트에 대한 암호화 해시 값을 포함하는 방법. - 제4항에 있어서,
상기 사용자가 상기 보호되는 캐시를 업데이트할 권한이 부여되었는지의 여부를 판정하는 단계, 상기 보호되는 캐시를 쓰기가능 모드로 설정하는 단계, 상기 새로운 다이제스트를 상기 보호되는 캐시에 저장하는 단계, 및 상기 보호되는 캐시를 판독 전용 모드로 자동으로 설정하는 단계의 동작들은 상기 부트 프로세스 동안 수행되는 방법. - 제4항에 있어서,
상기 보호되는 캐시를 쓰기가능 모드로 설정한 후, 상기 사용자가 상기 데이터 처리 시스템에 존재하는지의 여부를 자동으로 감시하는 단계; 및
상기 사용자의 부재를 검출하는 것에 응답하여 쓰기 권한을 자동으로 취소하는 단계를 더 포함하는 방법. - 데이터 처리 시스템의 부트 방법으로서,
데이터 처리 시스템이 재가동되는 것에 응답하여, 상기 데이터 처리 시스템에 대한 부트 프로세스를 수행하는 단계 -상기 부트 프로세스를 수행하는 단계의 동작은 부트 오브젝트를 실행하는 단계를 포함하고, 상기 데이터 처리 시스템은 업데이트들로부터 보호되는 캐시를 갖는 고 무결성 스토리지(HIS) 장치를 포함함-;
상기 부트 프로세스 동안, 상기 부트 오브젝트를 실행하기 전에, 상기 HIS 장치의 보호되는 캐시로부터 상기 부트 오브젝트에 대한 다이제스트를 검색하는 단계 -상기 다이제스트는 상기 부트 오브젝트에 대한 암호화 해시 값을 포함함-; 및
상기 부트 프로세스 동안, 상기 데이터 처리 시스템의 신뢰된 플랫폼 모듈(TPM)에 대한 이벤트 로그에 부트 구성 데이터를 기록하는 단계 -상기 부트 구성 데이터는 상기 HIS 장치가 상기 부트 프로세스 동안 사용되었는지의 여부를 나타냄-
를 포함하는 방법. - 데이터 처리 시스템의 부트 방법으로서,
데이터 처리 시스템이 재가동되는 것에 응답하여, 상기 데이터 처리 시스템에 대한 부트 프로세스를 수행하는 단계 -상기 부트 프로세스를 수행하는 단계의 동작은 부트 오브젝트를 실행하는 단계를 포함하고, 상기 데이터 처리 시스템은 업데이트들로부터 보호되는 캐시를 갖는 고 무결성 스토리지(HIS) 장치를 포함함-; 및
상기 부트 프로세스 동안, 상기 부트 오브젝트를 실행하기 전에, 상기 HIS 장치의 보호되는 캐시로부터 상기 부트 오브젝트에 대한 다이제스트를 검색하는 단계 -상기 다이제스트는 상기 부트 오브젝트에 대한 암호화 해시 값을 포함함-
를 포함하고,
상기 데이터 처리 시스템은 신뢰된 플랫폼 모듈(TPM)을 포함하고,
상기 HIS 장치는 TPM과 통합되어 있는 방법. - 제9항에 있어서,
상기 HIS 장치의 보호되는 캐시로부터 상기 부트 오브젝트에 대한 다이제스트를 검색하는 단계의 동작은, 상기 TPM이, 통합된 HIS 스토리지 장치로부터 상기 다이제스트를 판독하고 상기 다이제스트를 상기 TPM 내의 플랫폼 구성 레지스터(PCR)에 확장하게 하는 단일 명령을 실행하는 단계를 포함하는 방법. - 제10항에 있어서,
상기 단일 명령은 판독-확장 명령을 포함하는 방법. - 제9항에 있어서,
상기 부트 오브젝트에 대한 다이제스트는, 상기 부트 프로세스 동안 상기 부트 오브젝트에 대한 다이제스트를 계산하지 않고 상기 부트 프로세스 동안에 얻어지는 방법. - 적어도 하나의 비일시적 머신 액세스가능 매체로서,
데이터 처리 시스템에 의해 실행될 때, 상기 데이터 처리 시스템이 제1항 내지 제12항 중 어느 한 항에 기재된 방법을 수행하게 하는 명령들을 포함하는 머신 액세스가능 매체. - 데이터 처리 시스템으로서,
프로세서;
상기 프로세서에 응답하는 적어도 하나의 비일시적 머신 액세스가능 매체; 및
상기 데이터 처리 시스템에 의해 실행될 때, 상기 데이터 처리 시스템이 제1항 내지 제12항 중 어느 한 항에 기재된 방법을 수행하게 하는, 상기 머신 액세스가능 매체 내의 명령들
을 포함하는 데이터 처리 시스템. - 데이터 처리 시스템의 부트 방법으로서,
데이터 처리 시스템이 재가동되는 것에 응답하여, 상기 데이터 처리 시스템에 대한 부트 프로세스를 수행하는 단계 -상기 부트 프로세스를 수행하는 단계의 동작은 부트 오브젝트를 실행하는 단계를 포함하고, 상기 데이터 처리 시스템은 업데이트들로부터 보호되는 캐시를 갖는 고 무결성 스토리지(HIS) 장치를 포함함-; 및
상기 부트 프로세스 동안, 상기 부트 오브젝트를 실행하기 전에, 상기 HIS 장치의 보호되는 캐시로부터 상기 부트 오브젝트에 대한 다이제스트를 검색하는 단계 -상기 다이제스트는 상기 부트 오브젝트에 대한 암호화 해시 값을 포함함-
를 포함하는 방법. - 적어도 하나의 비일시적 머신 액세스가능 매체로서,
데이터 처리 시스템에 의해 실행될 때, 상기 데이터 처리 시스템이 제15항에 기재된 방법을 수행하게 하는 명령들을 포함하는 머신 액세스가능 매체. - 데이터 처리 시스템으로서,
프로세서,
상기 프로세서에 응답하는 적어도 하나의 비일시적 머신 액세스가능 매체; 및
상기 데이터 처리 시스템에 의해 실행될 때, 상기 데이터 처리 시스템이 제15항에 기재된 방법을 수행하게 하는, 상기 머신 액세스가능 매체 내의 명령들
을 포함하는 데이터 처리 시스템.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/067873 WO2013101081A1 (en) | 2011-12-29 | 2011-12-29 | Methods and apparatus for trusted boot optimization |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130094317A true KR20130094317A (ko) | 2013-08-23 |
KR101359841B1 KR101359841B1 (ko) | 2014-02-07 |
Family
ID=48698317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020137006741A KR101359841B1 (ko) | 2011-12-29 | 2011-12-29 | 신뢰성 있는 부트 최적화를 위한 방법 및 장치 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8892858B2 (ko) |
EP (1) | EP2798559B1 (ko) |
KR (1) | KR101359841B1 (ko) |
CN (1) | CN103299311B (ko) |
BR (1) | BR112014013583A8 (ko) |
WO (1) | WO2013101081A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160130790A (ko) * | 2014-03-25 | 2016-11-14 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 신뢰 커널 시작 방법 및 장치 |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9317276B2 (en) | 2011-01-19 | 2016-04-19 | International Business Machines Corporation | Updating software |
WO2013101081A1 (en) | 2011-12-29 | 2013-07-04 | Intel Corporation | Methods and apparatus for trusted boot optimization |
US8793504B2 (en) * | 2012-02-22 | 2014-07-29 | International Business Machines Corporation | Validating a system with multiple subsystems using trusted platform modules and virtual platform modules |
US9367688B2 (en) * | 2012-06-22 | 2016-06-14 | Intel Corporation | Providing geographic protection to a system |
WO2014077615A1 (en) * | 2012-11-19 | 2014-05-22 | Samsung Sds Co., Ltd. | Anti-malware system, method of processing packet in the same, and computing device |
US9336395B2 (en) * | 2013-01-25 | 2016-05-10 | Hewlett-Packard Development Company, L.P. | Boot driver verification |
US9424425B2 (en) * | 2013-05-31 | 2016-08-23 | Microsoft Technology Licensing, Llc | Protecting anti-malware processes |
US9544293B2 (en) | 2013-09-20 | 2017-01-10 | Oracle International Corporation | Global unified session identifier across multiple data centers |
EP3060980A4 (en) * | 2013-10-24 | 2017-06-28 | Intel Corporation | Techniques for pre-os image rewriting to provide cross-architecture support, security introspection, and performance optimization |
US9721104B2 (en) * | 2013-11-26 | 2017-08-01 | Intel Corporation | CPU-based measured boot |
US9672361B2 (en) * | 2014-04-30 | 2017-06-06 | Ncr Corporation | Self-service terminal (SST) secure boot |
US9195831B1 (en) | 2014-05-02 | 2015-11-24 | Google Inc. | Verified boot |
US9438627B2 (en) | 2014-06-11 | 2016-09-06 | International Business Machines Corporation | Shared security utility appliance for secure application and data processing |
US20160042024A1 (en) * | 2014-08-08 | 2016-02-11 | Front Porch Digital, Inc. | Continuous data health check |
FR3024915B1 (fr) * | 2014-08-18 | 2016-09-09 | Proton World Int Nv | Dispositif et procede pour assurer des services de module de plateforme securisee |
US9621551B2 (en) * | 2014-09-15 | 2017-04-11 | Dell Products L.P. | Systems and methods for providing secure pre-boot and root authentication to an information handling system |
GB2531586A (en) | 2014-10-23 | 2016-04-27 | Ibm | Methods and systems for starting computerized system modules |
CN104809398A (zh) * | 2015-04-21 | 2015-07-29 | 深圳怡化电脑股份有限公司 | 密码键盘引导程序固件防篡改方法及装置 |
US10693859B2 (en) | 2015-07-30 | 2020-06-23 | Oracle International Corporation | Restricting access for a single sign-on (SSO) session |
US10581826B2 (en) * | 2015-10-22 | 2020-03-03 | Oracle International Corporation | Run-time trust management system for access impersonation |
US10528739B2 (en) | 2016-04-20 | 2020-01-07 | Sophos Limited | Boot security |
US10541816B2 (en) | 2016-06-01 | 2020-01-21 | International Business Machines Corporation | Controlling execution of software by combining secure boot and trusted boot features |
CN106250760A (zh) * | 2016-07-26 | 2016-12-21 | 浪潮电子信息产业股份有限公司 | 一种基于TPM2.0芯片的U‑Boot可信启动方法 |
US10365961B2 (en) * | 2016-09-09 | 2019-07-30 | Dell Products L.P. | Information handling system pre-boot fault management |
US10623501B2 (en) | 2016-09-15 | 2020-04-14 | Oracle International Corporation | Techniques for configuring sessions across clients |
US10262140B2 (en) | 2016-09-29 | 2019-04-16 | Intel Corporation | Methods and apparatus to facilitate blockchain-based boot tracking |
CN106844241A (zh) * | 2017-02-27 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种安全卡、安全卡槽及板卡 |
US10474473B2 (en) * | 2017-04-11 | 2019-11-12 | Intel Corporation | Technology to facilitate rapid booting with high-speed and low-speed nonvolatile memory |
US10080693B1 (en) | 2017-04-26 | 2018-09-25 | Stryker Corporation | Harness system for patient transport apparatus |
US10397230B2 (en) * | 2017-06-15 | 2019-08-27 | International Business Machines Corporation | Service processor and system with secure booting and monitoring of service processor integrity |
US10528740B2 (en) | 2017-06-15 | 2020-01-07 | International Business Machines Corporation | Securely booting a service processor and monitoring service processor integrity |
US11290438B2 (en) | 2017-07-07 | 2022-03-29 | Oracle International Corporation | Managing session access across multiple data centers |
US10462664B2 (en) | 2017-08-02 | 2019-10-29 | Dell Products, Lp | System and method for control of baseboard management controller ports |
US11074348B2 (en) | 2017-08-24 | 2021-07-27 | International Business Machines Corporation | Securing and changing immutable data in secure bootup |
US11050730B2 (en) | 2017-09-27 | 2021-06-29 | Oracle International Corporation | Maintaining session stickiness across authentication and authorization channels for access management |
EP3502877B1 (en) | 2017-09-29 | 2021-03-03 | Huawei Technologies Co., Ltd. | Data loading method and apparatus for virtual machines |
CN110069361B (zh) * | 2018-01-24 | 2023-12-01 | 联想企业解决方案(新加坡)有限公司 | 用于tpm故障切换的方法和装置 |
US10726132B2 (en) * | 2018-03-08 | 2020-07-28 | Hewlett Packard Enterprise Development Lp | Enclave launch and authentication |
EP3791306B1 (en) * | 2018-05-11 | 2023-08-30 | Lattice Semiconductor Corporation | Asset management systems and methods for programmable logic devices |
US11409878B2 (en) | 2018-05-31 | 2022-08-09 | Hewlett-Packard Development Company, L.P. | Trusted sequence for computing devices via hashes |
US11238160B2 (en) * | 2018-09-28 | 2022-02-01 | Apple Inc. | Boot firmware sandboxing |
JP7187362B2 (ja) * | 2019-03-15 | 2022-12-12 | キオクシア株式会社 | ストレージ装置及び制御方法 |
TWI724424B (zh) * | 2019-05-17 | 2021-04-11 | 英商鼎通盛股份有限公司 | 開機驗證程序加速方法與電腦系統 |
CN110348180B (zh) * | 2019-06-20 | 2021-07-30 | 苏州浪潮智能科技有限公司 | 一种应用程序启动控制方法和装置 |
US11134078B2 (en) | 2019-07-10 | 2021-09-28 | Oracle International Corporation | User-specific session timeouts |
US11507387B2 (en) | 2020-05-26 | 2022-11-22 | Dell Products L.P. | Method to optimize system boot time of modules/driver's execution in UEFI pre-boot environment |
JP7408593B2 (ja) * | 2021-03-23 | 2024-01-05 | 株式会社東芝 | 制御装置、情報処理装置、および情報処理システム |
CN113101376A (zh) * | 2021-04-12 | 2021-07-13 | 中国科学院长春应用化学研究所 | 一种可用于基因治疗的复合基因载体及其制备方法和应用 |
US11803454B2 (en) * | 2021-04-30 | 2023-10-31 | Dell Products L.P. | Chained loading with static and dynamic root of trust measurements |
CN113254048B (zh) * | 2021-06-21 | 2021-09-28 | 深之蓝(天津)水下智能科技有限公司 | 引导程序更新方法、装置、设备及计算机可读介质 |
US11392705B1 (en) | 2021-07-29 | 2022-07-19 | Netskope, Inc. | Disk encryption key management for booting of a device |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560706B1 (en) * | 1998-01-26 | 2003-05-06 | Intel Corporation | Interface for ensuring system boot image integrity and authenticity |
US6378072B1 (en) * | 1998-02-03 | 2002-04-23 | Compaq Computer Corporation | Cryptographic system |
US7814532B2 (en) * | 2001-05-02 | 2010-10-12 | Lenovo (Singapore) Pte. Ltd. | Data processing system and method for password protecting a boot device |
US7103529B2 (en) | 2001-09-27 | 2006-09-05 | Intel Corporation | Method for providing system integrity and legacy environment emulation |
US7024555B2 (en) * | 2001-11-01 | 2006-04-04 | Intel Corporation | Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment |
US7127579B2 (en) | 2002-03-26 | 2006-10-24 | Intel Corporation | Hardened extended firmware interface framework |
US7210034B2 (en) | 2003-01-30 | 2007-04-24 | Intel Corporation | Distributed control of integrity measurement using a trusted fixed token |
US20050021968A1 (en) | 2003-06-25 | 2005-01-27 | Zimmer Vincent J. | Method for performing a trusted firmware/bios update |
US7562230B2 (en) | 2003-10-14 | 2009-07-14 | Intel Corporation | Data security |
WO2005109184A1 (en) * | 2004-05-08 | 2005-11-17 | Intel Corporation | Firmware interface runtime environment protection field |
US8332653B2 (en) * | 2004-10-22 | 2012-12-11 | Broadcom Corporation | Secure processing environment |
US7725703B2 (en) * | 2005-01-07 | 2010-05-25 | Microsoft Corporation | Systems and methods for securely booting a computer with a trusted processing module |
US7523323B2 (en) | 2005-09-15 | 2009-04-21 | Intel Corporation | Method and apparatus for quick resumption |
US7765392B2 (en) * | 2006-06-29 | 2010-07-27 | Intel Corporation | Method and apparatus for establishing processor as core root of trust for measurement |
US8190916B1 (en) | 2006-07-27 | 2012-05-29 | Hewlett-Packard Development Company, L.P. | Methods and systems for modifying an integrity measurement based on user authentication |
US8510859B2 (en) | 2006-09-26 | 2013-08-13 | Intel Corporation | Methods and arrangements to launch trusted, co-existing environments |
DE102006046456B4 (de) * | 2006-09-29 | 2009-11-05 | Infineon Technologies Ag | Schaltkreis-Anordnung, Verfahren zum Hochfahren einer Schaltkreis-Anordnung, Verfahren zum Betreiben einer Schaltkreis-Anordnung und Computerprogrammprodukte |
US8984265B2 (en) | 2007-03-30 | 2015-03-17 | Intel Corporation | Server active management technology (AMT) assisted secure boot |
US8321931B2 (en) * | 2008-03-31 | 2012-11-27 | Intel Corporation | Method and apparatus for sequential hypervisor invocation |
US9613215B2 (en) * | 2008-04-10 | 2017-04-04 | Nvidia Corporation | Method and system for implementing a secure chain of trust |
US8726364B2 (en) | 2008-06-30 | 2014-05-13 | Intel Corporation | Authentication and access protection of computer boot modules in run-time environments |
US8296553B2 (en) | 2008-11-19 | 2012-10-23 | Intel Corporation | Method and system to enable fast platform restart |
US8544092B2 (en) * | 2009-03-12 | 2013-09-24 | International Business Machines Corporation | Integrity verification using a peripheral device |
US8413253B2 (en) * | 2009-12-30 | 2013-04-02 | Intel Corporation | Protecting persistent secondary platform storage against attack from malicious or unauthorized programs |
US8417962B2 (en) * | 2010-06-11 | 2013-04-09 | Microsoft Corporation | Device booting with an initial protection component |
US8516551B2 (en) | 2010-07-28 | 2013-08-20 | Intel Corporation | Providing a multi-phase lockstep integrity reporting mechanism |
US8539245B2 (en) | 2010-08-06 | 2013-09-17 | Intel Corporation | Apparatus and method for accessing a secure partition in non-volatile storage by a host system enabled after the system exits a first instance of a secure mode |
WO2013101081A1 (en) | 2011-12-29 | 2013-07-04 | Intel Corporation | Methods and apparatus for trusted boot optimization |
-
2011
- 2011-12-29 WO PCT/US2011/067873 patent/WO2013101081A1/en active Application Filing
- 2011-12-29 US US13/810,654 patent/US8892858B2/en not_active Expired - Fee Related
- 2011-12-29 CN CN201180049417.1A patent/CN103299311B/zh not_active Expired - Fee Related
- 2011-12-29 EP EP11878914.8A patent/EP2798559B1/en not_active Not-in-force
- 2011-12-29 BR BR112014013583A patent/BR112014013583A8/pt not_active IP Right Cessation
- 2011-12-29 KR KR1020137006741A patent/KR101359841B1/ko active IP Right Grant
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160130790A (ko) * | 2014-03-25 | 2016-11-14 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 신뢰 커널 시작 방법 및 장치 |
US10032030B2 (en) | 2014-03-25 | 2018-07-24 | Huawei Technologies Co., Ltd. | Trusted kernel starting method and apparatus |
Also Published As
Publication number | Publication date |
---|---|
EP2798559B1 (en) | 2019-03-13 |
WO2013101081A1 (en) | 2013-07-04 |
KR101359841B1 (ko) | 2014-02-07 |
US8892858B2 (en) | 2014-11-18 |
BR112014013583A2 (pt) | 2017-06-13 |
US20140025939A1 (en) | 2014-01-23 |
EP2798559A4 (en) | 2015-09-02 |
CN103299311A (zh) | 2013-09-11 |
EP2798559A1 (en) | 2014-11-05 |
BR112014013583A8 (pt) | 2017-06-13 |
CN103299311B (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101359841B1 (ko) | 신뢰성 있는 부트 최적화를 위한 방법 및 장치 | |
CN109669734B (zh) | 用于启动设备的方法和装置 | |
US7962738B2 (en) | Hypervisor runtime integrity support | |
EP2729896B1 (en) | Bios flash attack protection and notification | |
US7222062B2 (en) | Method and system to support a trusted set of operational environments using emulated trusted hardware | |
US7853804B2 (en) | System and method for secure data disposal | |
US8505103B2 (en) | Hardware trust anchor | |
EP1975836A2 (en) | Server active management technology (AMT) assisted secure boot | |
US20090328195A1 (en) | Authentication and Access Protection of Computer Boot Modules in Run-Time Environments | |
US11206141B2 (en) | Merging multiple compute nodes with trusted platform modules utilizing provisioned node certificates | |
US20080165971A1 (en) | Trusting an Unverified Code Image in a Computing Device | |
US11106798B2 (en) | Automatically replacing versions of a key database for secure boots | |
US10776095B2 (en) | Secure live media boot system | |
US10853086B2 (en) | Information handling systems and related methods for establishing trust between boot firmware and applications based on user physical presence verification | |
US10592661B2 (en) | Package processing | |
EP3029564B1 (en) | System and method for providing access to original routines of boot drivers | |
US11989305B2 (en) | Automated update of a customized secure boot policy | |
RU2581552C2 (ru) | Способ доверенной загрузки в виртуализированных средах | |
Zimmer | Platform Trust Beyond BIOS Using the Unified Extensible Firmware Interface. | |
US20240028734A1 (en) | Automated update of a customized secure boot policy | |
CN114780929A (zh) | 一种电子设备及处理方法 | |
Wang et al. | Trusted computing technology analyzing in NGSCB | |
KR20110048014A (ko) | 컴퓨터 플랫폼에서의 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170102 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180103 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190103 Year of fee payment: 6 |