KR20060081334A - 하드웨어 보안 모듈을 구비한 컴퓨터를 보안 부팅하기 위한시스템, 방법 및 컴퓨터 판독 가능 매체 - Google Patents

하드웨어 보안 모듈을 구비한 컴퓨터를 보안 부팅하기 위한시스템, 방법 및 컴퓨터 판독 가능 매체 Download PDF

Info

Publication number
KR20060081334A
KR20060081334A KR1020050110058A KR20050110058A KR20060081334A KR 20060081334 A KR20060081334 A KR 20060081334A KR 1020050110058 A KR1020050110058 A KR 1020050110058A KR 20050110058 A KR20050110058 A KR 20050110058A KR 20060081334 A KR20060081334 A KR 20060081334A
Authority
KR
South Korea
Prior art keywords
computer
secret
boot
value
pcr
Prior art date
Application number
KR1020050110058A
Other languages
English (en)
Other versions
KR101219857B1 (ko
Inventor
제임스 안토니 쥬니어 슈워츠
제이미 헌터
조나단 디. 슈워츠
케네스 디. 레이
폴 잉글랜드
러셀 험프리즈
스테판 톰
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20060081334A publication Critical patent/KR20060081334A/ko
Application granted granted Critical
Publication of KR101219857B1 publication Critical patent/KR101219857B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

트러스티드 플랫폼 모듈(TPM)을 구비한 컴퓨터에서, 부트 컴포넌트의 예측 해시 값이 플랫폼 구성 레지스터(PCR)에 위치할 수 있으며, 이는 TPM이 비밀을 개봉하는 것을 허용한다. 이어서, 비밀은 부트 컴포넌트를 해독하는 데 사용될 수 있다. 이어서, 해독된 부트 컴포넌트의 해시가 계산될 수 있고, 그 결과는 PCR에 위치될 수 있다. 이어서, PCR들이 비교될 수 있다. 이들이 일치하지 않는 경우, 시스템 동작을 위한 중요 비밀에 대한 액세스가 취소될 수 있다. 또한, 제1 복수의 PCR 값이 현존할 때에만 제1 비밀이 액세스될 수 있고, 제1 복수의 PCR 값 중 하나 이상이 새로운 값으로 대체된 후에만 제2 비밀이 액세스될 수 있으므로, 제2 비밀에 대한 액세스를 허가하기 위해서는 제1 비밀에 대한 추가적인 액세스를 취소해야 한다.
트러스티드 프로세싱 모듈, 보안 부팅, 비밀, 액세스

Description

하드웨어 보안 모듈을 구비한 컴퓨터를 보안 부팅하기 위한 시스템, 방법 및 컴퓨터 판독 가능 매체{SYSTEMS AND METHODS FOR SECURELY BOOTING A COMPUTER WITH A TRUSTED PROCESSING MODULE}
도 1은 본 발명과 연관된 소프트웨어 및/또는 하드웨어 기술을 구현하는 데 적합한 컴퓨팅 환경을 나타내는 도면.
도 2는 현대의 컴퓨팅 기술이 다수의 네트워크 장치에서 수행될 수 있음을 강조하기 위하여 도 1로부터의 기본 컴퓨팅 환경의 확장을 제공하는 도면.
도 3은 트러스티드 플랫폼 모듈(TPM)을 이용하는 컴퓨팅 플랫폼을 나타내는 도면.
도 4는 복수의 소프트웨어 컴포넌트가 후속 프로세스로의 전이 전에 후속 프로세스를 측정하는 예시적인 부트 프로세스를 나타내는 도면.
도 5는 TPM과 같은 하드웨어 보안 모듈(HSM)을 이용하여 후속 소프트웨어 컴포넌트 또는 프로세스가 실행되는 것을 허용하기 전에 이 후속 컴포넌트의 완전성을 보장하기 위한 일반 기술을 나타내는 도면.
도 5a는 프로세스에서 사용되는 데이터의 측정치가 TPM에 의해 검증되지 않은 경우 부트 프로세스가 진행될 수 없음을 보장하기 위한 시스템 및 방법을 나타내는 도면.
도 6은 컴퓨터의 성공적인 부트가 예시적인 컴포넌트인 부트 관리자의 성공적인 해독 및 측정과 연관되는 도 5a에 도시된 시스템 및 방법의 일례를 나타내는 도면.
도 7은 제한된 기간 동안 부트 컴포넌트들에 자원에 대한 액세스를 제공한 후 오퍼레이팅 시스템을 론칭하기 전에 자원에 대한 액세스를 취소하기 위한 아키텍쳐의 동작을 나타내는 도면.
도 8은 도 7과 같은 아키텍쳐에서 수행되는 예시적인 단계들의 흐름도.
<도면의 주요 부분에 대한 부호 설명>
100: 컴퓨팅 환경
101: 프로세싱 유닛
103: 시스템 메모리
107, 113: 오퍼레이팅 시스템
108, 114: 애플리케이션 프로그램
109, 115: 다른 프로그램 모듈
110, 116: 프로그램 데이터
111: 비분리식 불휘발성 메모리 인터페이스
117: 분리식 불휘발성 메모리 인터페이스
122: 그래픽 인터페이스
123: 비디오 인터페이스
125: 비디오 메모리
127: 포인팅 장치
128: 키보드
129: 모뎀
130: 광역 네트워크
131: 원격 컴퓨터
133: 원격 애플리케이션 프로그램
134: 네트워크 인터페이스
135: 근거리 네트워크
136: 출력 주변 장치 인터페이스
137: 프린터
138: 스피커
139: 모니터
270: 통신 네트워크/버스
271, 272, 276, 277: 컴퓨팅 장치
273: 객체
278: 데이터베이스
본 발명은 일반적으로 컴퓨팅 분야에 관한 것이다. 구체적으로, 본 발명은 부트 동안 사용되는 데이터의 비권한 변경을 방지하고 부트 동안에만 필요한 자원들에 대한 포스트-부트 액세스를 방지함으로써 컴퓨터 보안을 강화하기 위한 시스템 및 방법을 제공한다.
보안은 컴퓨터 사용자들의 보편적인 관심사가 되었다. 바이러스, 웜, 트로이 목마, 식별자 도용, 소프트웨어 및 미디어 콘텐츠 도용, 및 데이터 파괴 협박을 이용한 갈취가 만연하고 있다. 오퍼레이팅 시스템은 이러한 공격을 막기 위한 다양한 보안 기능을 제공할 수 있다. 그러나, 오퍼레이팅 시스템의 보안 기능은 그 기능이 억제되는 경우 비효과적이다. 이러한 보안 기능의 억제가 시도된다면, 이는 오퍼레이팅 시스템의 부트 동안에 시도될 가능성이 높다. 부트 후, 오퍼레이팅 시스템은 그 자신 및 그가 관리하는 데이터 및 프로세스들을 보호하기 위해 적절한 다양한 기능을 가질 수 있다. 그러나, 부트 동안에 이러한 기능들은 아직 초기화되지 않을 수 있으며, 바이패스 및/또는 탬퍼링에 취약하다.
현재 오퍼레이팅 시스템들에 의해 사용되는 예시적인 보안 기능들은 암호 파일 시스템(EFS) 및 트러스티드 플랫폼 모듈(TPM)이다. EFS 기능은 선택된 민감한 데이터를 암호화한다. 오퍼레이팅 시스템은 사용자가 로그온될 때까지 EFS 데이터에 액세스할 필요가 없다. 오퍼레이팅 시스템 부트 후, 사용자는 로그온 프로세스에 대한 패스워드를 제공할 수 있다. 패스워드는 EFS 데이터를 해독할 수 있는 해독 키에 대한 액세스를 허가한다. 예를 들어, 마이크로소프트 윈도우® 오퍼레이팅 시스템은 시스템 키 또는 "SYSKEY"를 사용하는데, 이 SYSKEY는 SYSKEY의 가용성에 의존하는 다양한 프로세스를 올바르게 수행함으로써 이들 프로세스를 보호하는 데 사용된다. 예를 들어, 오퍼레이팅 시스템에 의해 암호화된 형태로 저장되는 EFS 데이터를 해독하는 데 필요한 키는 SYSKEY로부터 도출될 수 있다.
따라서, 제한된 동작을 수행하는 데 필요한 키(들)는 로그온 프로시져에 의해 보호된다. 일반적으로, 사용자는 시스템의 이용을 시작하기 전에 그 자신을 올바르게 인증해야 한다. 키의 사용은 사용자가 올바르게 인증한 경우에만 가능하다. 그러나, 로그온 프로시져를 이용하여 키들에 대한 액세스를 보호하는 것은 운영체제가 올바른 로그온 프로그램을 로딩하였고, 그렇지 않은 경우 키들의 이용이 실행중일 수 있는 악성 코드에 의해 불가능하게 된 것을 가정한다. 부트 동안에 올바른 오퍼레이팅 시스템 로더 대신에 악성 오퍼레이팅 시스템 로더가 사용된 경우, 악성 로더는 오퍼레이팅 시스템과 함께 악성 로그온 프로그램이 로딩되게 할 수 있다. 또한, 악성 로그온 프로그램은 적절한 패스워드의 입력 없이도 EFS 키들의 이용을 가능하게 할 수 있다. 오퍼레이팅 시스템의 로딩은 보안 구멍의 기회를 제공하므로, 이러한 상황에서의 키들의 보호는 운영체제의 로딩이 올바르게 이루어질 수 있는 것으로 검증될 수 있는 환경에서 운영체제의 로딩이 이루어질 것을 요구한다.
EFS는 부트된 운영체제에 의해 지원되는 기능이므로, 부트 프로세스 동안에 노출되는 소정의 데이터를 보호함에 있어서는 비효과적일 가능성이 있다. EFS는 몇몇 시스템 서비스에 필요한 비밀들, 네트워크 서비스들(예를 들어, 개인 또는 공개 웹 서버)에 의해 사용되는 데이터베이스들, 및 회사 도메인에 접속하기 위한 RAS 증명서와 같이, 사용자가 로그온되기 전에 요구되는 사용자 데이터를 보호할 수 없다.
트러스티드 플랫폼 모듈(TPM)은 컴퓨터 상에서 실행되는 소프트웨어의 신뢰성을 보장한다. 이것은 일반적으로 데이터의 트러스티드 측정치를 TPM에 제출하고 TPM에 의존하여 측정치가 무엇이어야 하는지를 결정함으로써 달성된다. 컴퓨터 보안은 종종 소프트웨어 컴포넌트들의 거동을 예측할 수 있다는 것에 의존한다. 일반적으로, 시스템의 보안은 공지된 양호한 상태로부터 진행하는 그 거동이 이해되는 공지 프로그램이 예측 가능한 방식으로 동작할 것이라는 전제로부터 출발할 수 있다. 역으로, 컴퓨터 시스템이 그 설계자의 예상 밖의 방식으로 거동하게 하는 것을 수반할 수 있는 보안의 방해는 일반적으로 공지 프로그램을 대체 또는 변경함으로써, 또는 공지 프로그램을 그의 거동이 이해되지 않는 상태에서 실행함으로써 실현될 수 있다. 따라서, 컴퓨팅 환경에 대한 보안을 제공하는 한 양태는 공지 프로그램이 사용되고 있고 공지된 양호한 상태로부터 진행되고 있다는 것을 검증하는 것을 포함한다. TPM은 데이터의 해시와 같은 측정치가 TPM에 사전에 봉인된 값과 일치하므로 데이터가 무엇이어야 하는지를 검증함으로써 이를 달성한다.
EFS와 마찬가지로, TPM은 부트된 컴퓨터 상에서 실행되는 애플리케이션들의 완전성에 관한 소정의 보증을 제공하기 위해 성공적으로 사용되어 왔다. TPM에 대한 다수의 추가적인 제한이 또한 존재한다. 예를 들어, 표준 방식으로 TPM을 사용하는 머신은 현장에서 재구성(예를 들어, 회의 중에 네트워크 카드를 랩탑에 삽입하기)될 수 없다. TPM은 초기화된 오퍼레이팅 시스템에 대한 엄격한 제한 및 복잡성을 생성한다.
오늘날 대부분의 TPM은 현재 http://www.trustedcomputinggroup.org/home에서 입수할 수 있고 "Trusted Platform Module (TPM) Specification Version 1.2"라는 제목을 가진 TRUSTED COMPUTING GROUP® (TCG) 표준을 따른다. TPM은 플랫폼에 의해 실행되는 코드에 대한 신뢰를 확보하기 위해 컴퓨팅 플랫폼으로 통합될 수 있는 서브시스템이다. 신뢰성 있는 코드를 확보하기 위한 메카니즘들의 표준화는 보안 및 암호 공동체가 보안을 제공하기 위한 메카니즘들에 액세스하는 것을 허용하고 새로운 소프트웨어 기능들의 고객 이해 및 신뢰를 향상시키므로 이롭다. 이것은 또한 TCG®에 의해 고안되고 장려되는 바와 같이 표준의 구현 및 개선에 있어서의 혁신을 권장한다. TCG® 사양에 기술된 바와 같이, "제조자들은 가변 성능 및 비용 포인트를 가진 서브시스템을 설치함으로써 시장에서 경쟁할 것이다".
오퍼레이팅 시스템에 의해 사용되는 전술한 예시적인 보안 메카니즘들은 부트를 보호하기 위한 몇몇 기술에 의해 보완된다. 머신 글로벌 패스워드를 이용하여 비밀들을 보호하기 위하여 머신 패스워드 인증이 이용될 수 있다. 그러나, 이것은 패스워드가 머신 부트 전에 입력될 것을 요구한다. 패스워드는 다수의 머신 사용자에 의해 공유되어야 하는데, 이는 첫 번째 보안 결함이다. 두 번째 결함은 패스워드 입력을 위한 일반적인 사용자 인터페이스가 제공될 수 없으므로 이용성의 문제가 발생한다는 것이다. 이것은 특히 태블릿 PC에서 성가시다. 종종, 머신 글로벌 패스워드는 종이에 기록되어 머신 앞에 남겨질 수 있다. 따라서, 패스워드는 효과적이지만, 빈번하게 요구되는 타입의 정교한 사용자 보호를 제공하지 못한다.
둘째로, 분리식 매체에 비밀이 저장될 수 있다. 또한, 이러한 기능은 보안 관점에서 이론적으로는 효과적이지만, 실제로는 종종 문제가 있다. 이러한 경우의 기본적인 문제는 사용 가능한 기능 시스템을 보장하기 위하여 분리식 매체는 거의 항상 머신 내에 남겨질 것이라는 것이다.
안전한 오퍼레이팅 시스템 부트의 적절한 보장이 없는 경우, 컴퓨터 상에서 데이터를 보호할 수 있는 사용자의 능력은 컴퓨터 상에서 실행되는 오퍼레이팅 시스템의 보안 기능이 아니라 컴퓨터가 위치하고 있는 빌딩의 보안에 의해 제한된다. 랩탑의 대중화 및 컴퓨터 도용, 특히 랩탑 도용의 계속적인 증가와 함께, 컴퓨터가 도둑의 손에 들어갈 때 오퍼레이팅 시스템의 보안이 강경하게 유지되는 것을 허용하는 솔루션이 요구된다.
TPM을 이용하여 부트 프로세스를 보호하는 시스템 및 방법은 많이 연구되지 않고 있다. 부트 프로세스에서의 TPM의 이용에 더하여, 부트 프로세스의 유지를 행하고 컴퓨터 상의 데이터에 대한 액세스를 제어하기 위한 시스템 및 방법이 유용한 것으로 입증될 수 있다. 이러한 시스템 및 방법에 대한 설명은 "Systems and Methods for Boot Recovery in a Secure Boot Process on a Computer with a Hardware Security Module"라는 제목으로 ___자로 출원된 미국 특허 출원 제___호(대리인 서류 번호 MSFT 4634/311226.01), "Systems and Methods for Updating a Secure Boot Process on a Computer with a Hardware Security Module"라는 제목으로 ___자로 출원된 미국 특허 출원 제___호(대리인 서류 번호 MSFT 4784/312086.01), 및 "Systems and Methods for Controlling Access to Data on a Computer with a Secure Boot Process"라는 제목으로 ___자로 출원된 미국 특허 출 원 제___호(대리인 서류 번호 MSFT 4635/311227.01)에서 발견할 수 있다. 또한, "System and method for protected operating system boot using state validation"이라는 제목으로 2004년 6월 30일자로 출원된 미국 특허 출원 10/882,134는 본 발명과 전반적으로 관련되어 있다.
전술한 점을 고려하여, 본 발명은 소프트웨어 컴포넌트들의 완전성 메트릭을 검증하기 위한 트러스티드 플랫폼 모듈(TPM)을 구비한 컴퓨터를 보안 부팅하기 위한 시스템 및 방법을 제공한다. 본 발명에서 이용되는 TPM은 비밀들을 복수의 플랫폼 구성 레지스터(PCR) 값으로 봉인할 수 있다. PCR 값들은 부트 컴포넌트들을 측정함으로써 얻어질 수 있다. 부트 컴포넌트들이 비밀들이 봉인된 때로부터 변경되지 않은 경우, 비밀들은 적절한 시스템 부트 동안 얻어질 수 있다. 부트 컴포넌트의 예상 해시 값이 PCR에 위치할 수 있으며, 이는 예상 값이 올바른 경우 비밀을 개봉한다. 이어서, 비밀은 실제 부트 컴포넌트를 그의 디스크 상의 위치로부터 해독하는 데 사용될 수 있다. 이어서, 해독된 부트 컴포넌트의 해시가 계산되고, 그 결과가 예상 값과 비교될 수 있다. 다른 예는 부트 프로세스에서 상이한 포인트들에서 얻을 수 있는 PCR 값들로 봉인될 수 있는 2개의 비밀의 사용을 수반한다. 제1 비밀은 제1 복수의 PCR 값이 로딩될 때에만 액세스될 수 있으며, 제2 비밀은 제1 복수의 값 중 하나 이상이 새로운 값으로 대체된 후에만 액세스될 수 있으므로, 제2 비밀에 대한 액세스를 허가하기 위해서는 제1 비밀에 대한 추가적인 액세스를 취소해야 한다. 본 발명의 다른 이점 및 특징은 아래에 설명된다.
본 발명에 따라 컴퓨터를 보안 부팅하기 위한 시스템 및 방법이 첨부된 도면을 참조하여 설명된다.
아래의 설명 및 도면에서는 본 발명의 다양한 실시예의 완전한 이해를 제공하기 위해 소정의 상세가 설명된다. 그러나, 본 발명의 다양한 실시예를 불필요하게 모호하게 하는 것을 피하기 위하여, 컴퓨팅 및 소프트웨어 기술과 자주 연관되는 소정의 공지된 상세는 아래에 설명되지 않는다. 또한, 관련 분야의 통상의 전문가들은 이들이 후술하는 상세들 중 하나 이상 없이도 본 발명의 다른 실시예들을 실시할 수 있다는 것을 이해할 것이다. 마지막으로, 아래의 설명에서 다양한 방법은 단계들 및 시퀀스들을 참조하여 설명되지만, 이러한 설명은 본 발명의 실시예들의 명확한 구현을 제공하기 위한 것이며, 단계들 및 단계들의 시퀀스는 본 발명을 실시하는 데 필요한 것으로 간주되어서는 안 된다.
아래의 상세한 설명은 일반적으로, 필요에 따라 본 발명의 다양한 양태 및 실시예의 정의를 더 설명하고 확장하는 전술한 바와 같은 발명의 개요를 따른다. 그러므로, 상세한 설명은 먼저 본 발명과 연관된 소프트웨어 및/또는 하드웨어 기술을 구현하는 데 적합한 도 1의 컴퓨팅 환경을 설명한다. 현대의 컴퓨팅 기술이 다수의 개별 장치에서 수행될 수 있음을 강조하기 위하여 도 2에는 네트워크 컴퓨팅 환경이 기본 컴퓨팅 환경의 확장으로서 도시되어 있다.
이어서, 측정치들이 하드웨어 보안 모듈(HSM)에 어떻게 제출될 수 있는지를 설명하기 위하여, HSM을 이용하는 컴퓨팅 플랫폼의 개요가 도 3과 관련하여 제공되 는데, HSM은 이들 측정치가 올바른 경우 시스템 자원에 키를 리턴하도록 구성될 수 있다. 도 3에 도시된 HSM은 TPM이며, 이는 이 분야의 전문가들에 의해 쉽게 인식되는 HSM이라는 점에 유의한다. 또한, 부트시에 또는 그 후에 수반되는 소프트웨어 컴포넌트의 추가 프로세싱은 TPM에 의해 보호되는 비밀의 개봉에 부수적으로 될 수 있다. 이어서, 부트 프로세스에서 소프트웨어 컴포넌트에 의한 TPM의 이용이 도 4에 도시되어 있다. 도 5는 도 4와 같은 소프트웨어 컴포넌트들에 의한 하나의 일반적인 TPM 이용 패턴을 나타내는데, 다음 소프트웨어 컴포넌트의 로딩 및 실행은 다음 컴포넌트의 실행 가능 코드의 해시의 검증에 부수적이다.
도 5a, 6, 7 및 8에서, 부트 프로세스에서 플랫폼 구성 레지스터(PCR)로서 지칭되는 TPM 레지스터의 이용 양태들이 보다 상세히 설명된다. 도 5a는 특정 부트 컴포넌트 세트가 적절하지 않은 경우 부트 프로세스가 진행될 수 없음을 보장하기 위한 시스템 및 방법을 나타낸다. 도 6은 컴퓨터의 성공적인 부트가 예시적인 컴포넌트인 부트 관리자의 성공적인 해독 및 측정과 연관되는 도 5a에 도시된 시스템 및 방법의 일례를 나타낸다. 도 7 및 8은 부트 프로세스가 성공적으로 오퍼레이팅 시스템을 론칭하였고 시스템 자원들(일반적으로 하나 이상의 디스크 파티션 상에 상주)이 더 이상 필요하지 않게 된 후에 부트에 필요한 시스템 자원들에 대한 액세스를 방지하기 위한 메카니즘을 나타낸다.
예시적인 컴퓨팅 및 네트워크 환경
도 1의 컴퓨팅 시스템 환경(100)은 적절한 컴퓨팅 환경의 일례일 뿐이며, 본 발명의 용도 또는 기능의 범위에 관한 어떠한 제한도 시사하려는 의도는 없다. 컴퓨팅 환경(100)은 예시적인 오퍼레이팅 환경(100)에 도시된 컴포넌트들 중 어느 하나 또는 이들의 조합에 관한 어떠한 종속성 또는 요건을 갖는 것으로 해석되지 않아야 한다.
본 발명은 다양한 다른 범용 또는 특수 목적 컴퓨팅 시스템 환경 또는 구성에서도 이용된다. 본 발명에서 이용하기에 적합할 수 있는 공지된 컴퓨팅 시스템, 환경 및/또는 구성의 예는 개인용 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩탑 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱 박스, 프로그래머블 소비자 전자장치, 네트워크 PC, 미니 컴퓨터, 메인프레임 컴퓨터, 임의의 상기 시스템들 또는 장치들을 포함하는 분산 컴퓨팅 환경 등을 포함하지만, 이에 한하지 않는다.
본 발명은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행 가능 명령어와 일반적으로 관련하여 구현될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 본 발명은 통신 네트워크를 통해 연결된 원격 프로세싱 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서도 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 포함하는 로컬 및 원격 컴퓨터 저장 매체 양쪽에 위치할 수 있다.
도 1을 참조하면, 본 발명을 구현하기 위한 예시적인 시스템은 컴퓨터(140)의 형태인 범용 컴퓨팅 장치를 포함한다. 컴퓨터(140)의 컴포넌트들은 프로세싱 유닛(101), 시스템 메모리(103) 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트를 프로세싱 유닛(101)에 결합하는 시스템 버스(102)를 포함할 수 있지만 이에 한하지 않는다. 시스템 버스(102)는 메모리 버스 또는 메모리 제어기, 주변 버스, 및 임의의 다양한 버스 아키텍쳐를 이용하는 로컬 버스를 포함하는 임의의 여러 타입의 버스 구조를 가질 수 있다. 예를 들어, 이러한 아키텍쳐는 ISA 버스, MCA 버스, EISA 버스, VESA 로컬 버스, 및 메자닌 버스로도 알려진 PCI 버스를 포함하지만 이에 한하지 않는다.
HSM은 본 발명을 구현하는 컴퓨터의 일부일 수 있지만, 도 1에는 도시되어 있지 않다. 도 3은 도 3을 참조하여 후술하는 바와 같이 컴퓨터의 컴포넌트들과 통합되는 HSM(도 3의 실시예에서 TPM)을 나타낸다. 표준 실시예에서, HSM은 소정 범위의 보안 기능을 제공하기 위해 도 1의 컴퓨터와 같은 컴퓨터의 마더보드에 접착되거나, 칩셋 또는 다른 하드웨어 컴포넌트에 통합되는 하드웨어 칩일 수 있다. 그러나, 이 명세서를 위해, HSM은 하드웨어 또는 소프트웨어로 구현될 수 있으며, 본 발명의 동작에 필요한 트러스티드 기능들, 즉 제출된 측정치들의 비교 및 검증, 및 암호화된 메모리 자원들에 대한 액세스를 위한 키의 릴리스를 제공할 수 있는 기능 유닛으로서 널리 정의된다는 것을 이해해야 한다. TPM은 산업 표준 TPM에 대한 TCG® 사양에 기술된 바와 같이 소정 범위의 다른 기능도 제공할 수 있다.
컴퓨터(140)는 일반적으로, 다양한 컴퓨터 판독 가능 매체를 포함한다. 컴퓨터 판독 가능 매체는 컴퓨터(140)에 의해 액세스될 수 있는 임의의 이용 가능 매체일 수 있으며, 휘발성 및 불휘발성, 분리식 및 비분리식 매체 양자를 포함한다. 예를 들어, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만 이에 한하지 않는다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 불휘발성, 분리식 및 비분리식 매체 양자를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 다른 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 또는 원하는 정보를 저장하는 데 사용될 수 있고 컴퓨터(140)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만 이에 한하지 않는다. 통신 매체는 일반적으로 반송파 또는 다른 전송 메카니즘과 같은 변조 데이터 신호 내에 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조 데이터 신호"라는 용어는 그의 특성들 중 하나 이상이 그 내부의 정보를 인코딩하는 방식으로 설정 또는 변경된 신호를 의미한다. 예를 들어, 통신 매체는 유선 네트워크 또는 직접적인 유선 접속과 같은 유선 매체, 및 음향, RF, 적외선 및 다른 유선 매체와 같은 무선 매체를 포함하지만 이에 한하지 않는다. 임의의 전술한 것들의 조합도 컴퓨터 판독 가능 매체의 범위에 포함되어야 한다.
시스템 메모리(103)는 ROM(104) 및 RAM(106)과 같은 휘발성 및/또는 불휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 예를 들어, 시동시에 컴퓨터(140) 내의 요소들 간의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(105; BIOS)은 일반적으로 ROM(104)에 저장된다. RAM(106)은 일반적으로 프로세 싱 유닛(101)에 의해 즉시 액세스될 수 있고, 그리고/또는 현재 프로세싱 유닛 상에서 동작하고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예를 들어, 도 1은 오퍼레이팅 시스템(107), 애플리케이션 프로그램(108), 다른 프로그램 모듈(109) 및 프로그램 데이터(110)를 도시하고 있지만 이에 한하지 않는다.
컴퓨터(140)는 다른 분리식/비분리식, 휘발성/불휘발성 컴퓨터 저장 매체도 포함할 수 있다. 단지 예로서, 도 1은 비분리식 불휘발성 자기 매체에 대해 판독 또는 기입하는 하드 디스크 드라이브(112), 분리식 불휘발성 자기 디스크(119)에 대해 판독 또는 기입하는 자기 디스크 드라이브(118), 및 CD-ROM 또는 다른 광학 매체와 같은 분리식 불휘발성 광 디스크(121)에 대해 판독 또는 기입하는 광 디스크 드라이브(120)를 도시하고 있다. 예시적인 동작 환경에서 사용될 수 있는 다른 분리식/비분리식, 휘발성/불휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 반도체 RAM, 반도체 ROM 등을 포함하지만 이에 한하지 않는다. 하드 디스크 드라이브(112)는 일반적으로 인터페이스(111)와 같은 비분리식 메모리 인터페이스를 통해 시스템 버스(102)에 접속되며, 자기 디스크 드라이브(118) 및 광 디스크 드라이브(120)는 일반적으로 인터페이스(117)와 같은 분리식 메모리 인터페이스에 의해 시스템 버스(102)에 접속된다.
도 1에 도시된 전술한 드라이브들 및 관련 컴퓨터 저장 매체는 컴퓨터(140)를 위한 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 및 다른 데이터의 저장을 제공한다. 도 1에서, 예를 들어 하드 디스크 드라이브(112)는 오퍼레이팅 시스템(113), 애플리케이션 프로그램(114), 다른 프로그램 모듈(115) 및 프로그램 데이터(116)를 저장하는 것으로 도시되어 있다. 이들 컴포넌트는 오퍼레이팅 시스템(107), 애플리케이션 프로그램(108), 다른 프로그램 모듈(109) 및 프로그램 데이터(110)와 동일하거나 다를 수 있다는 점에 유의한다. 오퍼레이팅 시스템(113), 애플리케이션 프로그램(114), 다른 프로그램 모듈(115) 및 프로그램 데이터(116)는 여기서 적어도 이들이 상이한 사본들임을 나타내기 위하여 상이한 번호가 주어져 있다. 사용자는 키보드(128), 및 일반적으로 마우스, 트랙볼 또는 터치 패드로서 지칭되는 포인팅 장치(127)와 같은 입력 장치를 통해 컴퓨터(140)에 명령어 또는 정보를 입력할 수 있다. 다른 입력 장치(도시되지 않음)는 마이크로폰, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 다른 입력 장치들은 종종 시스템 버스에 결합되는 사용자 입력 인터페이스(126)를 통해 프로세싱 유닛(101)에 접속되지만, 병렬 포트, 게임 포트 또는 USB와 같은 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니터(139) 또는 다른 타입의 표시 장치도 비디오 인터페이스(123)와 같은 인터페이스를 통해 시스템 버스(102)에 접속된다. 모니터 외에도 컴퓨터는 출력 주변 장치 인터페이스(136)를 통해 접속될 수 있는 스피커(138) 및 프린터(137)와 같은 다른 주변 출력 장치도 포함할 수 있다.
컴퓨터(140)는 원격 컴퓨터(131)와 같은 하나 이상의 원격 컴퓨터에 대한 논리 접속을 이용하여 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(131)는 개인용 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 다른 공통 네트워크 노드일 수 있으며, 도 1에는 하나의 메모리 저장 장치(132)만이 도시되어 있지만, 일반적으로 컴퓨터(140)와 관련하여 전술한 요소들의 대부분 또는 모두를 포함한다. 도 1에 도시된 논리 접속은 LAN(135) 및 WAN(130)을 포함하지만 다른 네트워크를 포함할 수도 있다. 이러한 네트워크 환경은 사무실, 기업 컴퓨터 네트워크, 인트라넷 및 인터넷에서 일반적이다.
LAN 네트워크 환경에서 사용될 때, 컴퓨터(140)는 네트워크 인터페이스 또는 어댑터(134)를 통해 LAN(135)에 접속된다. WAN 네트워크 환경에서 사용될 때, 컴퓨터(140)는 일반적으로 인터넷과 같은 WAN(130)을 통해 통신을 설정하기 위한 모뎀(129) 또는 다른 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(129)은 사용자 입력 인터페이스(126) 또는 다른 적절한 메카니즘을 통해 시스템 버스(102)에 접속될 수 있다. 네트워크 환경에서, 컴퓨터(140)와 관련하여 도시된 프로그램 모듈들, 또는 그 일부는 원격 메모리 저장 장치에 저장될 수 있다. 예를 들어, 도 1은 원격 애플리케이션 프로그램(133)을 메모리 장치(132)에 상주하는 것으로 도시하고 있지만 이에 한하지 않는다. 도시된 네트워크 접속은 예시적이며, 컴퓨터들 간의 통신 링크를 설정하는 다른 수단이 사용될 수 있음을 이해할 것이다.
여기서 설명되는 다양한 기술은 하드웨어 또는 소프트웨어, 또는 적절한 경우 이들의 조합으로 구현될 수 있다는 것을 이해해야 한다. 따라서, 본 발명의 방법 및 장치, 또는 소정의 양태 또는 그 일부는 플로피 디스켓, CD-ROM, 하드 드라이브, 또는 임의의 다른 머신 판독 가능 저장 매체와 같은 유형 매체에 구현된 프로그램 코드(즉, 명령어)의 형태를 가질 수 있으며, 프로그램 코드가 컴퓨터와 같은 머신에 로딩되어 실행될 때, 머신은 본 발명을 실시하기 위한 장치가 된다. 프로그래머블 컴퓨터 상에서 프로그램 코드를 실행하는 경우, 컴퓨팅 장치는 일반적 으로 프로세서, 프로세서에 의해 판독 가능한 저장 매체(휘발성 및 불휘발성 메모리 및/또는 저장 소자들을 포함함), 적어도 하나의 입력 장치, 및 적어도 하나의 출력 장치를 포함한다. 하나 이상의 프로그램은 예를 들어 API, 재사용 가능한 컨트롤 등의 이용을 통해 본 발명과 관련하여 설명된 프로세스들을 구현하거나 이용할 수 있다. 이러한 프로그램은 바람직하게는 컴퓨터 시스템과 통신할 수 있도록 하이 레벨 프로시져 또는 객체 지향 프로그래밍 언어로 구현된다. 그러나, 프로그램(들)은 원할 경우 어셈블리 또는 기계 언어로 구현될 수도 있다. 어느 경우에나, 언어는 컴파일 또는 인터프리트 언어일 수 있으며, 하드웨어 구현과 조합될 수 있다.
예시적인 실시예들은 하나 이상의 독립식 컴퓨팅 시스템과 관련하여 본 발명을 이용하는 것으로 설명하고 있지만, 본 발명은 이에 한하는 것이 아니라 네트워크 또는 분산 컴퓨팅 환경과 같은 임의의 컴퓨팅 환경과 관련하여 구현될 수도 있다. 더욱이, 본 발명은 다수의 프로세싱 칩 또는 장치에서 구현될 수 있으며, 저장도 다수의 장치에서 행해질 수 있다. 이러한 장치들은 개인용 컴퓨터, 네트워크 서버, 핸드헬드 장치, 수퍼 컴퓨터, 또는 자동차 및 비행기와 같은 다른 시스템에 통합된 컴퓨터를 포함할 수 있다.
도 2에 예시적인 네트워크 컴퓨팅 환경이 제공되어 있다. 이 분야의 전문가는 네트워크가 분산 컴퓨팅 환경에서 임의의 컴퓨터 또는 다른 클라이언트 또는 서버 장치를 접속할 수 있다는 것을 이해할 수 있다. 이와 관련하여, 임의 수의 프로세싱, 메모리, 또는 저장 유닛, 및 동시에 발생하는 임의 수의 애플리케이션 및 프로세스를 가진 임의의 컴퓨터 시스템 또는 환경은 제공되는 시스템 및 방법과 관련하여 이용하기에 적합한 것으로 간주된다.
분산 컴퓨팅은 컴퓨팅 장치와 시스템 간의 교환에 의한 컴퓨터 자원 및 서비스의 공유를 제공한다. 이들 자원 및 서비스는 정보의 교환, 캐시 저장 및 파일의 디스크 저장을 포함한다. 분산 컴퓨팅은 클라이언트들이 기업 전체에 이익이 되도록 그들의 집합적 능력을 이용하는 것을 가능하게 하는 네트워크 접속을 이용한다. 이와 관련하여, 다양한 장치들은 여기서 설명되는 프로세스들을 포함할 수 있는 애플리케이션, 객체 또는 자원을 가질 수 있다.
도 2는 예시적인 네트워크 또는 분산 컴퓨팅 환경의 개략도를 제공한다. 환경은 컴퓨팅 장치(271, 272, 276, 277), 객체(273, 274, 275) 및 데이터베이스(278)를 포함한다. 이들 엔티티(271, 272, 273, 274, 275, 276, 277, 278) 각각은 프로그램, 메소드, 데이터 스토어, 프로그래머블 로직 등을 포함하거나 이용할 수 있다. 엔티티들(271-278)은 PDA, 오디오/비디오 장치, MP3 플레이어, 개인용 컴퓨터 등과 같은 동일 또는 상이한 장치들의 일부를 포함할 수 있다. 각각의 엔티티(271-278)는 통신 네트워크(270)를 통해 다른 엔티티(271-278)와 통신할 수 있다. 이와 관련하여, 임의의 엔티티는 데이터베이스(278) 또는 다른 저장 요소의 유지 및 갱신을 담당할 수 있다.
이러한 네트워크(270) 자체는 도 2의 시스템에 서비스를 제공하는 다른 컴퓨팅 엔티티를 포함할 수 있으며, 다수의 상호접속된 네트워크를 나타낼 수 있다. 본 발명의 일 양태에 따르면, 각각의 엔티티(271-278)는 다른 엔티티(271-278) 중 하나 이상 엔티티의 서비스를 요구하기 위하여 API, 또는 다른 객체, 소프트웨어, 펌웨어 및/또는 하드웨어를 이용할 수 있는 개별 기능 프로그램 모듈들을 포함할 수 있다.
객체(275)와 같은 객체는 다른 컴퓨팅 장치(276) 상에서 호스트될 수 있다는 것도 이해할 것이다. 따라서, 도시된 물리적 환경이 접속된 장치들을 컴퓨터들로서 도시할 수 있지만, 이러한 도시는 예시적일 뿐이며, 대안으로 PDA, 텔레비젼, MP3 플레이어 등과 같은 다양한 디지털 장치, 인터페이스와 같은 소프트웨어 객체, COM 객체 등을 포함하는 물리적 환경이 도시되거나 설명될 수 있다.
분산 컴퓨팅 환경을 지원하는 다양한 시스템, 컴포넌트 및 네트워크 구성이 존재한다. 예를 들어, 컴퓨팅 시스템들은 유선 또는 무선 시스템에 의해, 로컬 네트워크 또는 광역 분산 네트워크에 의해 서로 접속될 수 있다. 현재, 많은 네트워크들은 광역 분산 컴퓨팅을 위한 기반 구조를 제공하고 많은 상이한 네트워크들을 포함하는 인터넷에 결합된다. 이러한 임의의 기반 구조는 인터넷에 결합되는지의 여부에 관계 없이, 제공되는 시스템 및 방법과 함께 사용될 수 있다.
네트워크 기반 구조는 클라이언트/서버, 피어 대 피어 또는 하이브리드 아키텍쳐와 같은 일군의 네트워크 토폴로지를 가능하게 할 수 있다. "클라이언트"는 관련 없는 다른 클래스 또는 그룹의 서비스를 이용하는 클래스 또는 그룹의 멤버이다. 컴퓨팅에 있어서, 클라이언트는 다른 프로그램에 의해 제공되는 서비스를 요구하는 프로세스, 즉 대략 한 세트의 기반 구조 또는 태스크이다. 클라이언트 프로세스는 다른 프로그램 또는 서비스 자체에 대한 어떠한 동작 상세를 알 필요 없 이 요구된 서비스를 이용한다. 클라이언트/서버 아키텍쳐, 특히 네트워크 시스템에서, 클라이언트는 일반적으로 다른 컴퓨터, 예컨대 서버에 의해 제공되는 공유 네트워크 자원에 액세스하는 컴퓨터이다. 도 2의 예에서, 임의의 엔티티(271-278)는 환경에 따라 클라이언트, 서버 또는 양자로 간주될 수 있다.
서버는 일반적으로, 반드시 그런 것은 아니지만, 인터넷과 같은 원격 또는 로컬 네트워크를 통해 액세스할 수 있는 원격 컴퓨터 시스템이다. 클라이언트 프로세스는 제1 컴퓨터 시스템에서 활성일 수 있고, 서버 프로세스는 제2 컴퓨터 시스템에서 활성일 수 있으며, 통신 매체를 통해 서로 통신하여, 분산 기능을 제공하고, 다수의 클라이언트가 서버의 정보 수집 능력을 이용하는 것을 허용한다. 임의의 소프트웨어 객체는 다수의 컴퓨팅 장치 또는 객체에 분산될 수 있다.
클라이언트(들) 및 서버(들)는 프로토콜 계층(들)에 의해 제공되는 기능을 이용하여 서로 통신한다. 예를 들어, HTTP는 WWW 또는 "웹"과 함께 사용되는 일반 프로토콜이다. 일반적으로, 서버 또는 클라이언트 컴퓨터들을 서로 식별하기 위해 인터넷 프로토콜(IP) 어드레스와 같은 컴퓨터 네트워크 어드레스 또는 URL과 같은 다른 레퍼런스가 사용될 수 있다. 네트워크 어드레스는 URL 어드레스로서 참조될 수 있다. 통신은 통신 매체를 통해 제공될 수 있는데, 예를 들어 클라이언트(들) 및 서버(들)는 고용량 통신을 위해 TCP/IP 접속(들)을 통해 서로 결합될 수 있다.
도 1의 범용 프레임워크에 따라 구축될 수 있는 다양한 컴퓨팅 환경, 및 도 2와 같은 네트워크 환경에서의 컴퓨팅에서 발생할 수 있는 추가적인 다양화에 비추어, 여기서 제공되는 시스템 및 방법은 어떠한 방식으로도 특정 컴퓨팅 아키텍쳐로 한정되는 것으로 해석될 수 없다. 대신에, 본 발명은 임의의 단일 실시예로 한정되어서는 안 되며, 오히려 첨부된 청구범위에 따라 범위가 해석되어야 한다.
예시적인 TPM 보안 부트 시퀀스
본 발명의 실시예들은 보안 부트 프로세스에서 TPM을 이용한다. TPM은 도 3에 컴퓨터 아키텍쳐와 관련하여 도시되어 있다. 본 발명의 실시예들에서 이용하기 위해 고안된 TPM은 TCG® 1.2를 따를 수 있지만, PCR에 위치하는 것과 같은 측정치를 검증하고 측정치가 올바른 경우에 비밀을 개봉하기 위한 임의의 HSM이 사용될 수 있다.
이와 관련하여, 도 3은 도 1과 같은 매우 일반화된 모습의 컴퓨터에서 메모리(305)에 액세스하는 CPU(300)를 나타내고 있다. CPU(300)는 소정의 보안 기능을 위해 TPM(301)에 의존할 수 있다. 일반적으로, CPU(300)는 먼저 부트 프로세스에 수반되는 데이터의 측정을 수행하고, 이들 측정치는 봉인된 PCR 값(304)으로 도시된 바와 같이 TPM(301)에 안전하게 저장될 수 있다. 다양한 실시예에서, 본 명세서의 도면에 도시된 다양한 PCR 값(304, 303)은 실제로, TCG® 1.2 사양에 정의된 바와 같이 대수식에 의해 확장되는 하나 이상의 단일 저장 위치에 저장될 수 있다는 점에 유의한다.
비밀(302)은 TPM(301)에 특정 PCR 값으로 봉인될 수 있다. TPM(301)으로부터 비밀(302)을 검색하기 위하여, 정확한 PCR 값이 PCR(303)에 입력되어야 한다. 이러한 정확한 값들은 TPM(301)에 봉인된 PCR 값을 얻기 위해 측정된 동일 데이터 를 측정함으로써 얻어질 수 있다. 다수의 비밀(302)이 다양한 PCR(304)로 봉인될 수 있다. 예를 들어, 제1 비밀(A)을 검색하기 위하여, PCR[1], PCR[2] 및 PCR[3]에 정확한 값이 저장되는 것이 요구될 수 있다. 제2 비밀(B)을 얻기 위하여, 네 번째 정확한 값이 PCR[4]에서 요구될 수 있다.
TPM(301)에 봉인된 측정치와 일치하지 않는 측정치가 PCR(303)에 위치하는 경우, 비밀(302)을 개봉하기 위해 TPM(301)이 요구될 때, 개봉은 실패할 것이다. 정확한 측정치가 PCR(303)에 위치하는 경우, TPM(301)은 비밀을 개봉하는 것이 요구될 때 비밀(302)을 개봉하도록 신뢰될 수 있다. 따라서, 본 출원에 있어서, "정확한" 측정치 또는 정확한 값은 비밀(302)이 봉인되는 측정치이며, 따라서 TPM(301)에 의한 비밀(302)의 개봉을 허용한다. 몇몇 실시예에서 정확한 측정치는 악성 코드의 측정치일 수 있다는 점에 유의한다. 이것은 예를 들어 TPM(310)에 봉인된 초기 측정치(304)에 오류가 있는 경우이다.
특정 측정치로 봉인된 비밀은 임의의 데이터일 수 있다. 일반적으로, 비밀(302)은 해독 키 및/또는 BLOB(Binary Large Object)의 형태를 갖는다. 일반적으로, 키는 데이터를 해독하는 데 사용될 수 있는 정보를 제공한다. 봉인된 BLOB는 키는 물론 유용할 수 있는 다른 데이터를 포함할 수 있다. 이와 관련하여, 이 분야의 전문가가 이해하듯이, BLOB를 키로 대체하거나 키를 BLOB로 대체함으로써 여기서 설명되는 다양한 기술에 대한 균등물이 구축될 수 있다. 따라서, CPU(300)가 PCR(303)에 정확한 측정치를 제공하는 경우, 키와 같은 대응 비밀(302)이 요구될 때, TPM(301)은 비밀(302)을 개봉할 수 있다. 이어서, 비밀(302)로부터의 키는 CPU(300)에 의해 액세스될 수 있는 메모리(305)의 부분들을 해독하는 데 사용될 수 있다. 본 발명의 실시예들에서, TPM(301)은 도 3에 도시된 바와 같이 3개의 비밀(A, B, C)에 대한 액세스를 허가하도록 구성될 수 있다. 비밀(302)은 다양한 요구 PCR 값으로 봉인될 수 있으며, 따라서 소정의 측정이 수행된 후에만 액세스될 수 있다. 이러한 3개의 키 또는 3개의 비밀은 여기서 첫 번째는 부트 액세스 전용 비밀, 두 번째는 볼륨 바운드 비밀, 세 번째는 패스워드 비밀로 지칭된다.
TPM 관련 액티비티는 로그(307)에 저장될 수 있다. 로그(307)는 몇몇 실시예에서 컴퓨터의 BIOS에 의해 유지될 수 있다. 임의의 다른 프로세스도 로그(307)의 유지를 담당할 수 있다. 따라서, 소프트웨어 컴포넌트(308) 또는 다른 데이터(309)와 같은 데이터가 PCR(303) 내로 측정되는 경우, 측정된 데이터는 로그(307)에서 식별될 수 있다. 비밀 개봉 요구가 발생한 경우, 요구 이벤트는 로그(307)에서 식별될 수 있다. 이들은 광범위한 다른 이벤트 및 액티비티에 대한 레코드를 포함할 수 있는 로그(307) 내에 TPM 관련 액티비티를 저장하는 2가지 예일 뿐이다.
일반적으로, TPM(301)은 트러스티드 측정을 수행하고 이들을 TPM(301)에 제출하기 위한 트러스트 측정의 정적 루트(SRTM)와 함께 동작한다. 그러나, 예를 들어 DRTM 넥서스의 이용을 통해 보안 측정을 수행하는 다른 프로세스도 이용할 수 있다. 본 발명의 실시예들은 이러한 방식으로 SRTM과 같은 트러스티드 측정 프로세스를 이용할 수 있으며, 이와 관련하여 SRTM은 초기 디스크 기반 부트 코드를 측정하기 위해 여기서 설명되는 다양한 소프트웨어 컴포넌트에 의해 이용되는 BIOS 표준 SRTM(프로세스 및 RTM이라고도 한다)일 수 있다. 시스템은 오퍼레이팅 시스 템을 부팅하는 초기 단계에 수반되는 다른 코드 및 임계 데이터를 측정하여 오퍼레이팅 시스템 부트의 임의의 초기 단계가 측정될 수 있도록 하기 위해 SRTM을 확장할 수도 있다. PCR(303)은 어디에선가 얻어진 값을 포함할 수 있다는 점에 유의한다. 이 값은 소프트웨어 컴포넌트(308) 또는 다른 데이터(309)와 같은 데이터의 측정치일 수 있다. 본 발명은 PCR(303)에 위치하는 데이터 측정치들 또는 다른 값들의 임의의 배타적인 조합으로 한정되지 않는다.
TPM 보안 부트 프로세스에서, 도 3에 도시된 구성은 도 4에 도시된 예시적인 소프트웨어 컴포넌트를 측정하고 그 측정치를 PCR(303)에 저장하는 데 사용될 수 있다. 본 발명의 실시예들에 의해 측정될 것으로 선택될 수 있는 도 4에 도시된 부트 컴포넌트들, 및 특히 디스크 기반 코드 컴포넌트들은 좀처럼 변경되지 않는 것으로 알려져 있으며, 쉬운 공격을 받는다. 따라서, 소정의 부트 컴포넌트들이 변경되지 않게 유지하는 것은 여기서 설명되는 바와 같은 적격 유지 및 갱신 프로세스에 의해서가 아니라면, 데이터 보안을 강화하기 위해 지불하는 비교적 작은 대가이다.
도 4를 참조하면, 컴퓨터의 예시적인 부트 프로세스를 제공하기 위한 일련의 소프트웨어 컴포넌트(400-407)가 도시되어 있다. 본 발명은 도시된 특정 컴포넌트로도 컴포넌트들의 시퀀스로도 제한되지 않는다. 도시된 컴포넌트들은 측정을 위한 트러스트의 코어 루트(CRTM; 400)에서 여기서는 단일 소프트웨어 컴포넌트(407)로서 일반화된 오퍼레이팅 시스템(0S; 407)의 컴포넌트들까지 순차적으로 로딩될 수 있다. 컴포넌트의 로딩은 메모리 및 CPU와 같은 컴퓨터의 자원들에 대한 컴포 넌트 액세스의 제공을 수반하여, 컴포넌트의 명령어들이 CPU에 의해 실행될 수 있게 한다. 도 4의 컴포넌트가 악성이거나 오류가 있는 경우, 이 컴포넌트는 로딩된 경우 보안 측정을 회피하는 데 사용될 수 있다. 따라서, 본 발명에 따라 컴퓨터를 부팅하기 위한 프로세스는 컴포넌트(들)가 실행되는 것을 허용하기 전에 하나 이상의 PCR(303) 내로 하나의 컴포넌트 또는 다수의 컴포넌트를 측정하는 단계를 포함한다. 성공적인 부트는 TPM에 봉인되는 측정치들(304)의 트러스티드 세트로 봉인된 비밀(302)에 부수적으로 될 수 있다. 그러나, 본 발명은 TPM에 악성 코드의 측정치를 봉인할 수도 있다는 점에 유의한다. 봉인시에 악성 코드가 실행되고 있는 경우, 이들 측정치는 부트에 필요할 수 있다. 이상적으로는, 비밀은 트러스티드 코드의 측정치(304)로 봉인된다. PCR(303)에 위치하는 측정치가 올바른 경우, 302로부터의 비밀이 개봉되어, 머신이 보안 부트를 진행하는 것을 허용할 수 있다. 비밀(302)을 개봉하는 프로세스는 도 5에 도시되어 있다.
몇몇 이용 시나리오에서, 머신의 소유자는 머신의 구성을 "로킹"하여 이전에 검증된 것 외에 어떠한 ROM 기반 코드도 계속 실행되지 않을 것을 보장하기를 원하는지를 결정할 수 있다. 이 경우, 머신 소유자는 사용될 추가적인 PCR(302)을 선택함으로써 검증 프로세스에 수반될 보다 많은 소프트웨어 컴포넌트(BIOS, 옵션 ROM)를 구성할 수 있다. 소유자는 또한 이들이 TPM(301)에 의해 검증되는 머신 패스워드를 추가로 이용하기를 원하는지를 결정할 수 있다. 이것은 본 발명의 표준 실시예들에서 일반적으로 제공될 수 있는 것 이상으로 보안이 확장되는 것을 허용하며, 사용자가 사용의 편의에 대비하여 머신 보안을 고려하는 것을 허용한다.
도 5는 TPM을 이용하여, 후속 소프트웨어 컴포넌트의 로딩 전에 이 후속 컴포넌트의 완전성을 보장하는 기술을 나타낸다. 도 5의 단계들은 도 4의 컴포넌트들과 같은 일련의 컴포넌트에 적절한 명령어들을 배치함으로써 수행될 수 있다. 이와 관련하여, 도 5의 프로세스는 CRTM 컴포넌트의 실행(단계 508)으로부터 시작될 수 있다. CRTM과 같은 컴포넌트 및 도 4의 다른 컴포넌트들 중 일부 또는 전부는 예를 들어 도 3의 303으로부터 다른 컴포넌트를 측정하고 그 결과를 PCR에 위치시키기 위한 명령어를 가질 수 있다. 이러한 명령어를 가진 컴포넌트는 종종 측정을 위한 트러스트의 루트(RTM)로서 지칭되며, 전술한 바와 같이 SRTM을 이용하기 위한 명령어를 포함할 수 있다. 따라서, 부트 블록이 부트 관리자를 측정하는 경우, 부트 블록은 부트 관리자에 대한 RTM으로서 서비스한다.
RTM은 후속 컴포넌트를 메모리에 로딩(단계 500)한 후 후속 컴포넌트에 대한 측정(단계 501)을 수행하고 측정치를 PCR에 추가(단계 502)할 수 있다. RTM이 TPM으로부터 키 또는 BLOB와 같은 비밀을 필요로 하는 경우(단계 503), RTM은 이러한 비밀을 요구할 수 있고, TPM은 비밀에 액세스하는 데 필요한 모든 PCR에 대해 올바른 값들이 로딩되는 경우에만 요구된 비밀(들)을 릴리스하게 된다. 따라서, TPM으로부터 검색된 정보에 기초하여 비밀을 개봉하기 위한 시도가 이루어질 수 있다(단계 504). 단계 505에서 개봉이 성공하면, 후속 컴포넌트를 로딩하는 단계를 포함할 수 있는 추가적인 단계들은 물론 후술하는 다른 액션들이 취해질 수 있다. 개봉이 성공하지 못한 경우, PCR 내의 값들은 아마도 부정확한 것이며, 따라서 실행 코드에는 오류가 있을 수 있다. 단계 507에서 오류가 발생할 수 있으며, 예를 들 어 컴퓨터의 디스크 상의 데이터의 암호화를 이용하고 해독 키를 유출하는 것을 방지함으로써 컴퓨터에 저장된 민감한 정보에 대한 어떠한 액세스도 제공되지 않음을 보장하기 위한 적절한 조치가 취해질 수 있다. 대안으로, 예를 들어 시스템을 정확한 PCR 값을 생성하는 상태로 복구하거나, 사용자가 도 3의 값들(302)에서 새로운 봉인된 PCR 값들을 허가하는 것을 인증함으로써 시스템을 유지하기 위한 프로세스들이 구현될 수 있다. 이러한 프로세스들은 후술한다. 단계 503에서 비밀이 필요하지 않은 경우, 도시된 바와 같이 어떠한 비밀도 요구하지 않고 후속 컴포넌트가 로딩될 수 있다.
도 4 및 5는 본 발명의 시스템 및 방법에 따른 예시적인 부트 프로세스를 설명하기 위해 함께 참조될 수 있다. BIOS(401)를 로딩하고 측정하는 CRTM(400)이 먼저 로딩될 수 있다. 이러한 측정은 예를 들어 BIOS 상에 해시를 수행한 후 해시 측정값을 PCR에 제출함으로써 수행될 수 있다. 이어서, BIOS는 실행이 허용될 수 있으며, 마스터 부트 레코드(MBR; 402)에 대한 RTM의 역할을 할 수 있다. MBR은 PCR 내로 측정된 후, MBR(402)은 실행이 허용될 수 있다. MBR은 부트 섹터 컴포넌트(403)를 측정할 수 있으며, 이어서 부트 섹터 컴포넌트의 실행이 허용된다. 이러한 PCR 로딩, 측정, 기입후 후속 컴포넌트로의 전이 패턴은 각각의 컴포넌트(404, 405, 406, 407)는 물론, 필요에 따라서 오퍼레이팅 시스템(407) 내의 임의의 컴포넌트에 의해 반복될 수 있다. 본 발명의 추가 양태들은 이 프로세스의 변형을 포함하며, 이 변형은 방법에 따라 임의의 포인트에서 비밀을 요구하고 이용할 수 있는데, 이러한 요구는 도 5에 도시되어 있다. 이와 관련하여, 본 발명의 실시예 들은 후속 컴포넌트로의 전이 전에 수행될 수 있는 추가 단계들을 통해 향상된 보안을 제공한다. 이러한 추가 단계들은 정확한 PCR 값을 측정하여 얻어지는 비밀에 부수하는 머신의 성공적인 부트를 이루어, 부트에 사용된 데이터의 일부 또는 전부가 비밀이 봉인된 때의 그대로인 것을 보장할 수 있다. 추가 단계들은 부트 동안에는 필요하지만 그 후에는 필요하지 않은 자원들에 대한 포스트- 부트 액세스를 방지하도록 동작할 수도 있다.
도 4 및 5의 기본 프로세스는 해독 키, BLOB, 또는 후속 컴포넌트로의 전이 전에 해독 키 등에 대한 액세스를 허용하는 다른 보호 정보일 수 있는 비밀들을 검색하도록 컴포넌트들(400-406) 중 일부에 요구함으로써 강화될 수 있다. 따라서, 본 발명의 실시예들은 부트 프로세스 내의 전략 포인트들에서 하나 이상의 비밀에 대한 액세스시에 오퍼레이팅 시스템에 의한 유용한 동작들의 수행을 결정할 수 있다. 측정되는 임의의 코드 모듈(401-406)(컴포넌트 및/또는 소프트웨어 프로세스로도 지칭됨)이 변경된 것이 발견되면, 중요한 비밀들이 보류될 수 있다. 보류될 수 있는 비밀들의 예는 "SYSKEY"(서비스에 의해 사용되는 패스워드와 같은 로컬 비밀을 암호화하기 위해 LSASS에 의해 사용됨), 컴퓨터의 하드 드라이브 또는 하드 파티션에 저장된 거의 모든 것을 해독하기 위한 볼륨-암호화 키, 및 EFS와 같은 보다 높은 시스템 보호 레벨에 의해 요구되는 비밀이다. 이어서, 보다 높은 레벨의 보호는 SRTM보다 훨씬 융통성 있는 방식으로 카탈로그들을 이용하여 검증을 수행할 수 있다.
머신이 성공적으로 부트할 수 있는 상태로 머신을 교정하기 위하여, 여기서 설명되는 보안 부트 프로세스에 더하여 후술하는 시스템 및 방법이 구현될 수 있다.
예시적인 추가 부트 보호 기술
도 4 및 5를 참조하여 이해될 수 있는 것과 같이, 복수의 소프트웨어 컴포넌트가 다음 컴포넌트로의 전이 전에 이 다음 컴포넌트를 측정하도록 구성될 수 있는 부트 시퀀스에서, 컴퓨터에 저장된 데이터의 보안을 더욱 강화하는 몇몇 추가적인 예방 조치가 취해질 수 있다. 이러한 추가적인 예방 조치는 이 섹션의 주제이다. 여기서 설명되는 예방 조치들 중 임의 또는 모든 예방조치는 본 발명의 실시예에 포함될 수 있다. 바람직한 일 실시예에서, 후술하는 바와 같이, 여기서 설명되는 모든 예방조치가 이용된다. 그러나, 본 발명은 이러한 구현들로 한정되는 것이 아니다.
먼저, 도 5a를 참조하면, 컴퓨터의 부트는 플랫폼의 완전성(integrity)에 따라 비밀의 릴리스를 결정함으로써 오퍼레이팅 시스템에 우선하는 컴포넌트들의 완전성과 연관될 수 있다. 도 5a의 개념적인 개요가 먼저 제공된 후, 도 5a에 대한 보다 상세한 설명이 제공된다.
먼저, PCR은 부트 관리자와 같은 소프트웨어 컴포넌트의 공지 해시를 이용하여 확장될 수 있다. 이것은 부트 비밀이 개봉 가능하게 하며, 모든 상위 소프트웨어 컴포넌트가 신뢰성이 있을 경우에 만족된다. 모든 상위 컴포넌트는 신뢰될 수 있으며, 부트 비밀은 개봉될 수 있다. 이 시점에서 소프트웨어 컴포넌트, 예를 들 어 부트 관리자의 상태가 공지된다.
이어서, 부트 비밀이 해독될 수 있으며, 부트 관리자를 메모리 내로 판독하기 위하여 시스템 파티션을 온더플라이 방식으로 해독하는 데에 볼륨 대칭 키가 사용될 수 있다.
셋째, 이제 해독되어 메모리에 있는 부트 관리자의 해시를 공지 해시에 대해 검증함으로써 사전 인증 단계가 강화될 수 있다. 해시들이 일치하는 경우, 부트는 정상적으로 진행될 수 있다. 해시가 올바르지 않은 경우, PCR들은 무효화될 수 있다. 해시가 올바른지를 검사하는 적어도 다음과 같은 방법이 있다:
a. 공지 해시에 대해 부트 관리자의 해시를 검사한다. 우리는 시스템이 부트 비밀을 개봉할 수 있었을 경우에 공지 해시가 유효하다는 것을 알며, 따라서 암암리에 우리는 부트 관리자의 해시가 부트 BLOB를 개봉하는 데 사용되는 해시와 일치하는 경우에 부트 관리자의 해시가 유효하다는 것을 안다.
b. 봉인된 비밀에 저장된 해시에 대해 부트 관리자의 해시를 검사한다.
c. 부트 관리자의 공지 해시로 상이한 PCR을 확장하고 두 해시를 비교한다.
이제 도 5a를 보다 상세히 참조하면, 현행 컴포넌트 또는 RTM이 단계 550에서 실행되고 있다. 현행 RTM은 다음 소프트웨어 컴포넌트로 전이하기 위하여 다음 단계들을 수행할 수 있다. 후속 컴포넌트의 예상 측정치가 PCR, 예를 들어 PCR[a]에 로딩될 수 있다(단계 551). 이어서, RTM 컴포넌트는 비밀의 검색을 시도할 수 있다(단계 552). PCR[a]가 정확한 값으로 로딩되지 않은 경우, 현행 RTM은 유효하지 않을 수 있으며, 비밀에 대한 액세스가 거부되어 도 5를 참조하여 설명된 바와 같이 정상적인 부트가 차단될 수 있다. 비밀은 후속 컴포넌트를 해독하는 데 이용될 수 있다(단계 553). 후속 컴포넌트가 해독되므로, 자칭 해커들이 예상치 못한 방법으로 수행하도록 후속 컴포넌트를 리버스 엔지니어링하고 수정하는 것은 불가능하다. 해독된 후속 컴포넌트는 측정될 수 있으며(단계 554), 측정치는 PCR[b]와 같은 PCR에 위치될 수 있다(단계 555). 이어서, RTM은 PCR[a] 및 PCR[b]의 값들을 비교할 수 있다. 이들이 일치하는 경우, RTM은 후속 컴포넌트일 수 있는 다음 컴포넌트로 전이할 수 있다(단계 556). 이들이 일치하지 않는 경우, PCR[a] 및 [b]는 예를 들어 이들 PCR 내로 메모리의 소정 부분을 측정함으로써 종료 값으로 캡핑될 수 있으며, 정상적인 부트가 중지될 수 있다(단계 557).
도 6을 참조하면, 도시된 흐름도는 도 5a에서 소개된 시스템 및 방법의 실시예, 따라서 중요한 부트 컴포넌트의 완전성은 물론 상위 컴포넌트들의 성공적인 동작시의 중요한 부트 컴포넌트에 대한 액세스를 결정하기 위한 시스템 및 방법을 구현하는 다수의 단계들을 나타낸다. 임의의 컴포넌트가 도 6에서 설명하는 기술의 주제일 수 있지만, 도 6에서 사용되는 예시적인 부트 컴포넌트는 부트 관리자이다. 이러한 설명을 위해, 도 6의 단계들은 도 4와 관련하여 이해될 수 있다. 다수의 소프트웨어 컴포넌트가 연속적으로 실행될 수 있으며, 이들 중 하나 이상이 다음 컴포넌트로의 전이 전에 이 다음 컴포넌트를 측정할 수 있다.
이와 관련하여, 단계 612에 도시된 바와 같이, 부트 섹터와 같은 제1 컴포넌트가 부트 프로세스 내의 소정의 포인트에서 로딩될 수 있다. 이어서, 부트 섹터는 도 5a에서 설명된 기술에 따라 PCR 내로 측정될 수 있다. 본 발명이 임의의 특 정 PCR로 한정되는 것은 아니지만, 단계 611에서 사용되는 예시적인 PCR은 PCR[8]이다. 이어서, 컴퓨터는 부트 섹터의 실행으로 전이할 수 있다(단계 612). 이제, 부트 섹터는 부트 블록에 대한 RTM으로서 서비스할 수 있고, 이와 관련하여 부트 블록을 PCR[9] 내로 측정할 수 있다(단계 608). 이어서, 컴퓨터는 부트 블록의 실행으로 전이할 수 있다(단계 600). 이제, 부트 블록은 부트 관리자에 대한 RTM의 역할을 할 수 있을 뿐만 아니라, 다음 단계들에서 추가적인 보안 측정을 수행할 수 있다.
따라서, 부트 블록은 부트 관리자의 예상 측정치를 PCR 내로 로딩할 수 있다(단계 601). 도 6에서 사용되는 예시적인 PCR은 PCR[10]이다. PCR[8], [9] 및 [10]은 물론 제어하도록 구성된 임의의 선행 또는 후속 PCR들에 로딩된 값이 올바른 경우, TPM은 부트 블록에 의해 비밀이 요구될 때 이 비밀에 대한 액세스를 허가할 수 있다. 비밀은 부트 관리자가 저장되는 하드 디스크의 일부와 같은 메모리의 일부를 해독하기 위한 해독 키일 수 있다. 이 키는 단계 602에 설명된 바와 같이 부트 블록 컴포넌트에 의해 검색될 수 있다. 부트 관리자에 대한 정확한 예상 측정치를 생성하도록 부트 블록에 요구하는 것은 제1 보안 계층을 제공하며, 부정확한 값이 제공되는 경우, TPM은 부트 관리자를 해독하는 데 필요한 키에 대한 액세스를 거부할 수 있다는 점에 유의한다.
정확한 예상 값이 제공된 때, 단계 603에서 부트 관리자 컴포넌트를 해독하는 데 사용될 수 있는 암호화 키가 검색될 수 있다. 이어서, 부트 블록은 부트 관리자를 해독하는 데 사용되는 "부트 액세스 전용" 키를 영구적으로 처분하도록 구 성될 수 있다(단계 604). 부트 관리자의 로딩 전에 부트 액세스 전용 키를 처분함으로써, 보안 계층이 추가되는데, 이는 부트 관리자 또는 후속 로딩된 컴포넌트에 오류가 존재하는 경우, 키에 액세스하지 못하며, 따라서 액세스할 수 있는 데이터가 엄격히 제한되기 때문이다. 이것은 특히, 본 발명의 다양한 실시예에서 고려되는 바와 같이, 컴퓨터의 하드 디스크가 거의 전부 암호화된 때 사실이다.
이어서, 컴포넌트의 해시 값의 계산과 같은 부트 관리자 컴포넌트의 측정이 행해질 수 있다(단계 605). 측정치는 PCR[13]과 같은 다른 PCR에 저장될 수 있다(단계 606). PCR[10] 및 PCR[13]에 저장된 값들은 단계 607에 보여지는 바와 같이 일치하는지를 판정하기 위해 비교될 수 있다. 이들이 일치하지 않는 경우, 부트 관리자는 변경되었으며 오류 또는 악성 코드를 포함할 수 있는 것으로 결론지을 수 있다. 부트 관리자 컴포넌트의 실행으로의 전이는 아직 행해지지 않았으며, 따라서 아직은 어떠한 해도 입힐 수 없다는 것을 기억하자. 부트 관리자에 오류가 있는 경우, 부트 블록에 의해 적절한 보안 조치가 취해질 수 있다. 따라서, 컴퓨터의 부트는 부트 관리자와 같은 중요한 소프트웨어 컴포넌트의 성공적인 해독 및 측정에 부수하여 이루어질 수 있다.
도 7 및 8을 참조하면, 나중에 컴퓨팅 자원들을 제어하는 프로세스들로부터 부트 동안에 사용되는 비밀들을 봉인하는 데 사용될 수 있는 예시적인 시스템 및 방법이 설명된다. 도 7 및 8의 프로세스들은 다양한 상황에서 유용한 것으로 이해되는 다른 이점을 갖지만, 다수의 디스크 파티션이 컴퓨터 하드 드라이브 상에 존재하는 상황에서 특히 유용하다. 도 7 및 8에 도시된 프로세스들의 하나의 이점은 이들이 단일 파티션에 대한 소프트웨어 컴포넌트에 의한 액세스를 제한하는 데 이용될 수 있다는 것이다. 컴포넌트들은 초기 부트 단계에서 종종 모든 디스크 파티션에 대한 액세스를 요구하지만, 컴포넌트들은 이후 단계들에서 그리고 부트 후에는 단일 파티션으로 제한될 수 있다. 도 7 및 8은 이러한 제한을 보장하기 위한 예시적인 시스템 및 방법을 설명한다.
도 7은 도 8에 도시된 프로세스에 대한 설정을 제공한다. 파티션 A(700), 파티션 B(702) 및 파티션 C(704)를 포함하는 다수의 디스크 파티션이 도면의 좌측에 도시되어 있다. 각각의 파티션은 이 분야의 전문가가 이해하듯이 일반적으로 701, 703 및 705와 같은 예비 섹션에 저장되는, 초기 부트 단계에 필요한 정보를 제외하고는 완전히 암호화될 수 있다. 도 7의 바닥을 따라 부트 블록(706), 부트 관리자(707), 및 도 4를 참조하여 설명된 바와 같이 연속적으로 로딩할 수 있는 OS 로더(708)를 포함하는 소프트웨어 컴포넌트들이 있다. PCR x(709), PCR y(710), 시간 1의 PCR z(711), 및 시간 2의 PCR z(712)를 포함하는 다수의 PCR이 도 7의 중앙에 도시되어 있다. PCR들은 일반적으로 문자가 아니라 번호로 식별되지만, 여기서는 본 발명의 몇몇 실시예들이 도 8에 설명된 PCR들을 사용할 수 있지만 본 발명은 사용되는 특정 PCR들로 한정되지 않는다는 것을 강조하기 위해 문자가 사용된다. 도 7의 PCR들은 도 5를 참조하여 설명된 기능을 제공하는데, PCR들에 값들이 위치할 수 있고, TPM(713)은 값이 올바른지를 표시하고, 그리고/또는 올바른 값들이 입력된 때 비밀에 대한 액세스를 허가하도록 신뢰될 수 있다.
도 8에 반영된 실시예들의 보다 상세한 설명 전에 도 7과 관련하여 일반적인 개념이 형성될 수 있다. 시간 1의 PCR z(711)의 값과 같은 하나 이상의 PCR의 제1 값이 TPM(713)을 통해 키 또는 BLOB(714)와 같은 부트 전용 비밀에 대한 액세스를 취득하기 위해 요구될 수 있다. 부트 전용 키 또는 BLOB(714)는 컴퓨터 부트의 초기 단계에서 요구될 수 있는 바와 같이 다수의 파티션으로부터의 정보를 해독하는 데 유용할 수 있다. 시간 2의 PCR z(712)의 값과 같은 하나 이상의 제2 PCR 값이 볼륨 바운드 키 또는 BLOB(715)에 대한 액세스를 취득하기 위해 요구될 수 있다. 볼륨 바운드 키 또는 BLOB는 오직 파티션 A(700)로부터의 데이터를 해독하는 것과 같이 파티션들의 서브세트에 대해서만 유용할 수 있다. 따라서, 상이한 시간에 동일 PCR에서 상이한 값을 이용하고, 이들 다수의 값에서 적절한 키에 대한 키 또는 BLOB 액세스를 결정함으로써, 부트 컴포넌트들이 이용할 수 있는 정보에 다운스트림 소프트웨어 컴포넌트들이 액세스하는 것을 차단할 수 있다. 부트가 적절히 이루어지기 위하여, 부트 전용 키 또는 BLOB(714)가 더 이상 액세스될 수 없음을 보장하는 볼륨 바운드 키 또는 BLOB(715)가 액세스되어야 한다. 이 시스템의 추가적인 이점은 특히 도 6에 설명된 시스템 및 방법과 결합하여 당업자에게 명백할 것이다.
도 8을 참조하면, 도 7에 도시된 것과 같은 시스템을 구현하기 위한 다양한 실시예가 도시되어 있다. 따라서, 단계 800에서 부트 관리자 컴포넌트가 로딩될 수 있다. 도 6의 기술을 포함하는 시스템에서, 부트 관리자는 여기서 설명되는 프로세스에 따라 로딩될 수 있다. 예를 들어, 부트 관리자의 해시는 단계 801에서 PCR[10] 내로 측정될 수 있다. 이어서, TPM 이용에 대해 일반적인 바와 같이 모든 이전 측정치뿐만 아니라 예를 들어 PCR[11] 및 [12]이고 측정과 함께 아직 로딩되지 않았으며 따라서 일반적으로 0인 초기값을 유지하고 있는 PCR[y] 및 [z]의 값들에 기초하여 TPM으로부터 부트 액세스 전용 키가 검색될 수 있다. 따라서, PCR[y] 및 [z]의 초기 값에 기초하여 단계 802에서 비밀이 검색될 수 있다.
도 8을 더 참조하면, 단계 803 및 804에서 OS 로더 컴포넌트가 메모리 내로 로딩되고, 부트 관리자에 의해 측정될 수 있다. OS 로더의 해시는 PCR[y]에 위치될 수 있다(단계 805). 이러한 PCR[y]에 대한 변경은 부트 액세스 전용 비밀에 대한 후속 액세스를 효과적으로 거부하며, 따라서 비밀이 부트 관리자에 의해 처분되는 경우, 다운스트림 컴포넌트들은 비밀을 잃게 된다. 이어서, PCR[y]는 부트 액세스 전용 비밀에 저장된 값과 비교될 수 있다(단계 806). 예를 들어, 부트 액세스 전용 비밀이 BLOB인 경우, PCR 값은 BLOB와 함께 저장될 수 있다. 비교가 성공적인 경우, 부트 액세스 전용 BLOB로부터 볼륨 바운드 키가 추출될 수 있다. 볼륨 바운드 키는 PCR[z] 내로 측정될 수 있다(단계 808). TPM은 PCR[z]를 통해 새로운 PCR 값들에 기초하여 볼륨 바운드 비밀에 대한 액세스를 허가하도록 구성될 수 있다(단계 809). 따라서, 단계 809에서의 볼륨 바운드 BLOB의 취득은 부트 액세스 전용 BLOB의 액세스 불가시에 결정될 수 있다. 이러한 기술을 이용하는 본 발명의 구현들에서, 모든 후속 프로세스는 볼륨 바운드 키 또는 BLOB와 연관된 파티션들의 서브세트로 효과적으로 제한될 수 있다.
시스템 데이터를 보호하기 위한 예시적인 부트 검증 프로세스
본 발명의 실시예들은 사용자 인터페이스(UI)를 통한 사용자의 명령어에 턴온되고 구성될 수 있는 부트 검증 프로세스를 제공할 수 있다. 따라서, 제어 패널 애플릿과 같은 프로그램을 이용하여, 사용자가 본 발명에 따른 부트 보호 프로세스의 동작을 가능하게 하는 것을 허용하는 UI가 이용 가능하게 될 수 있다. 머신의 사용자가 머신의 TPM의 소유권을 갖지 않은 경우, UI는 먼저 소유권을 취하거나 취소할 수 있는 옵션을 제공할 수 있다. 특정 부트 파티션을 선택하도록 사용자에게 요구하는 유사한 옵션이 제공될 수 있다. 보호된 부트가 새 기술 파일 시스템(NTFS)과 같은 특정 파일 시스템에서만 동작하도록 구성된 경우, 사용자는 그 파일 시스템을 이용하는 부트 파티션을 선택하도록 요구될 수 있다.
보호된 부트가 UI로부터 가능하게 되면, 자동 프로세스가, 보호되어야 하는 최상위 레벨의 비밀들이 가능한 경우 재생성된 후 비밀을 개봉하도록 요구된 예상 PCR 레지스터 값들로 봉인되는 것을 보장할 수 있다. 바람직한 실시예들은 이러한 동작을 위해 잠재적으로 PCR[15]를 통해 PCR[4], PCR[8]을 이용할 수 있다. 개봉 동작을 위한 패스워드가 주어져 공개적으로 볼 수 있는 위치에 저장될 수 있다. 따라서, 선택된 패스워드는 봉인 동작에 사용되는 것과 다를 수 있다. TCG® 1.2 TPM은 이러한 동작을 지원하는 데 바람직하다. 보다 양호한 보안을 제공할 수 있는 이 프로세스의 변형은 보다 많은 PCR이 지정되는 것을 허용하며, 개봉 패스워드가 머신 소유자에 의해 지정되어 부트 프로세스에서 초기에 입력되는 것을 허용할 수 있다.
통상의 PC 또는 AT 컴퓨터(PCAT) 시스템, 즉 통상의 BIOS를 이용하는 인텔 x86 기반 시스템에서, MBR 부트 섹터, NTFS 부트 섹터, NTFS 부트 블록 및 부트 관리자는 예상 PCR 값을 결정하는 데 사용될 수 있다. 예상 PCR 값에 대한 상세는 예시적인 부트 시퀀스와 관련하여 후술된다. 확장형 펌웨어 인터페이스(EFI) 시스템에서는 EFIU 시스템 파티션(ESP)에서 관련 파일들이 측정된다. 부트 볼륨 암호화를 포함하는 본 발명의 변형에서, 최대 NTFS 부트 블록을 포함하는 부트의 초기 부분들에 대한 PCR들로 디스크 해독 키가 봉인될 수 있다.
복구 시나리오를 돕기 위하여, 상기 비밀들의 다른 사본들은 CD-ROM을 통한 복구, 특수 복구 파티션이 존재하는 경우 이 파티션을 통한 복구, 및 분리식 매체 및/또는 패스워드와 같은 제2 인증 방법을 통한 복구를 포함하는 부트로 봉인될 수 있다.
아래에 PCAT 시스템에 대한 예시적인 부트 프로세스가 제공된다. 여기서 설명되는 프로세스는 또한 도 8 및 9를 참조하여 이해될 수 있다:
- TCG® 1.2 사양에 의해 요구되는 바와 같이, BIOS를 PCR[0] 내로 측정하는 것을 담당하는 ROM의 판독 전용 부분이 실행될 수 있다.
- BIOS 구성 파라미터들이 PCR[1] 내로 측정된다.
- 옵션 ROM들이 PCR[2] 내로 측정된다.
- 옵션 ROM 파라미터들이 PCR[3] 내로 측정된다.
- MBR이 PCR[4] 내로 측정된다.
- 파티션 테이블이 PCR[5] 내로 측정된다.
- MBR을 측정한 후, BIOS는 실행을 MBR로 전달한다.
- MBR은 액티브 파티션의 NTFS 부트 섹터를 로딩하고, 이것을 PCR[8] 내로 측정한다. 이어서, MBR은 실행을 이 부트 섹터로 전달한다.
- 부트 섹터는 부트 블록을 메모리로 로딩한다(일반적으로 8K). 부트 블록은 PCR[9] 내로 측정된다. 볼륨이 암호화되는 경우, 이 시점에서 암호화 정보가 개봉되어 디스크로부터 로딩된 임의의 미래 섹터들을 해독하는 데 사용된다.
- 부트 관리자가 디스크로부터 메모리로 판독된다. 부트 관리자는 PCR[10] 내로 측정된다. 실행이 부트 관리자로 전달된다(전술한 바와 같이 하나의 변형은 봉인된 데이터 중에서 예상 PCR[10] 측정치를 저장하고, 이것을 이용하여 정확한 부트 관리자가 측정되었는지를 검증할 수 있다).
- 부트 관리자는 중요한 데이터를 PCR[11] 내로 측정한다. 중요한 데이터는 예를 들어 디버거가 인에이블되려고 하는 경우 보안에 영향을 줄 수 있는 정보를 포함할 수 있다. 몇몇 실시예에서, 이러한 정보는 PCR[11]이 이 정보로 확장될 때까지 기능할 수 없다.
- 부트 관리자는 OS 로더를 메모리 안으로 선택하고, OS 로더를 PCR[12] 내로 측정하며, 실행을 OS 로더로 전달한다.
- OS 로더는 PCR[13] 내로 중요 데이터를 측정한다.
- OS 로더는 PCR[4], PCR[8-13] 및 선택적으로 임의의 추가적인 PCR들을 이용하여, OS 로더에 의해 사용된 비밀들을 개봉한다.
- OS 로더는 시스템의 추가적인 검증을 수행하기 위해 "코드 완전성"으로 전달한다.
- 코드 완전성은 위상-0 드라이버, NTKRNL 및 HAL과 같은 시스템에 의해 로딩된 각각의 미래 2진수를 검증한다.
- NTKRNL은 LSASS 및 WinLogon을 포함하는 초기 시스템 프로세스를 시작한다.
- LSASS는 PCR[4], PCR[8-13] 및 선택적으로 임의의 추가적인 PCR들을 이용하여, SYSKEY를 개봉한다. 개봉이 실패하는 경우, LSASS는 원인을 판단하고, 교정 동작을 제안하며, 그리고/또는 제2 방법으로 비밀을 얻기 위해 복구 정보를 요구한다.
- 암호화된 부트 볼륨에 액세스하는 모든 코드는 PCR[4], PCR[8-9] 및 선택적으로 지정되는 임의의 PCR들을 이용하여 부트 볼륨 해독 비밀들을 개봉한다.
EFI 시스템에서, 상기 프로세스에 대한 여러 변형이 이로울 수 있다. 예를 들어, MBR을 측정하고 실행을 MBR에 전달하는 대신에, 다음의 동작들이 취해질 수 있다:
- 옵션 ROM들에 더하여 ROM 기반 드라이버들이 PCR[2] 내로 측정된다.
- 부트 관리자를 포함하는 디스크 기반 드라이버들 및 모듈들이 PCR[4] 내로 측정된다.
- NTFS를 이해하는 임의의 EFI 드라이버들은 부트 볼륨 해독 비밀들을 개봉할 수 있는 추가적인 능력을 갖는다.
전술한 프로세스 및 그 변형은 표준 컴퓨터 부트 외의 목적에도 이용될 수 있다. 구체적으로, 본 발명의 추가적인 이용도 가능하고 본 발명은 특정 설정 또 는 목적으로 한정되는 것은 아니지만, 2가지 추가 목적이 고려된다. 먼저, 상기 프로세스는 하이버네이션 파일의 보호를 포함하도록 확장될 수 있다. 둘째, 상기 프로세스는 부트 볼륨 및 오퍼레이팅 시스템의 동작에 필요한 다른 볼륨의 보호를 포함하도록 확장될 수 있다.
하이버네이션 파일의 보호와 관련하여, 이것은 인에이블링 비밀들 중에서 하이버네이션 파일 암호화 및 해독 키들을 저장함으로써 달성될 수 있다. 암호화 및 해독 키들은 단일 대칭 키이거나, 다른 대칭 키를 봉인하는 데 사용되는 비대칭 키일 수 있다. 머신이 하이버네이트될 때, 하이버네이션 파일이 암호화될 수 있다. 머신이 검증된 부트 코드 경로를 통해 부트되지 않은 경우, 하이버네이션 파일은 해독될 수 없으며, 따라서 하이버네이션 파일에 저장된 임의의 비밀들은 유지된다. 머신이 검증된 코드 경로를 통해 부트되는 경우, 하이버네이션 파일은 검증된 코드에 의해 해독되며, 실행은 양호하게 정의된 실행 경로에서 재개되어 실행 환경의 보안이 재개된다.
부트 볼륨 및 운영체제의 동작에 필요한 다른 볼륨의 보호도 달성될 수 있다. 이 경우, 전체 부트 볼륨은 암호화되고, 그리고/또는 전체 완전성 검사를 포함할 수 있다. 해독에 필요한 키들은 검증된 부트 코드에 의해서만 이용될 수 있으며, 이어서 검증된 부트 코드는 이 키들을 이용하여 시스템의 부트를 재개하는 데 필요한 추가 코드 및 데이터를 해독한다. 디스크의 완전성 정보를 갱신하는 데 필요한 키들도 검증된 부트 코드에 의해서만 이용될 수 있다. 전체 완전성 검사를 포함하는 시스템은 검증된 코드를 실행하고 있는 것이 보장된 경우 추가 동작을 위 해 완전성 검증된 코드 및 데이터만을 선택할 수 있다. 검증된 코드만이 이러한 인에이블링 비트들을 개봉할 수 있으므로, 공격자는 시스템의 완전성이 유효한 것으로 믿도록 시스템을 속일 수 없다.
보호된 부트 프로세스를 교정하고 개량하기 위한 예시적인 시스템 및 방법
본 발명의 실시예들은 컴퓨터를 보안 부팅하기 위한 시스템 및 방법을 진단하고 교정하는 것은 물론 개량하기 위한 프로세스를 포함할 수 있다. 이 때문에, 부트 프로세스의 문제점을 진단하기 위한 첫 번째 관측은 전술한 보호된 부트 프로세스에서 비밀을 개봉하는 프로세스는 측정이 정확한지의 여부를 판정하기 위한 수단을 제공한다는 것이다. 따라서, 2가지 상태, 즉 측정되고 있는 코드 중에서 검증된 코드만이 실행되었음을 나타내는 비밀 개봉 상태, 또는 검증되지 않은 코드가 실행된 것이 가능하다는 것을 나타내는 비밀 비개봉 상태가 존재할 수 있다. 진단을 위해, TCG 종속 BIOS에 의해 생성된 로그들을 검사함으로써 무엇이 실패했는지를 판정할 수 있다. 이어서 이러한 정보는 오류가 의도적이 아니라 우발적인 것일 때보다 많은 정보 피드백을 제공하기 위하여 문제를 진단하는 데 사용될 수 있다.
전술한 보호된 부트 프로세스는 TPM을 이용함으로써 시스템의 자체 검증에 의존한다. 몇몇 실시예에서, 이러한 시스템은 실제로는 계속 유효할 때 무효인 것으로 보일 수 있다. 시스템이 무효인 것으로 보일 때, 2가지 해결 경로가 있으며, 이들 중 하나 또는 모두는 본 발명의 다양한 실시예에서 이용 가능하게 될 수 있는데, 첫째 로그들의 검사로부터 얻어지는 정보를 이용하여 시스템은 유효한 것으로 간주될 수 있는 상태로 복귀할 수 있다. 둘째, 사용자는 시스템이 유효한 것으로 간주되어야 한다는 것을 인증할 수 있다.
시스템을 유효한 것으로 간주되는 상태로 복귀시키기 위하여, 로그 정보를 이용하여 TPM이 측정을 무효인 것으로 간주한 이유를 진단할 수 있다. 변경되었을 수 있는 임의의 코드는 그의 초기 상태로 되돌아 갈 수 있다. 대안으로, 사용자가 예를 들어 디스크로부터 부팅하기 전에 네트워크 부트를 시도함으로써 유다른 방식으로 부트한 경우, 컴퓨터는 예상된 방식으로 부트하려는 시도에서 재부팅될 수 있다.
시스템을 유효 상태로 복귀시키는 실시예들을 보충하기 위한 제품들에 포함될 수 있는 다수의 추가적인 기능이 존재한다. 예를 들어, 머신 상의 하드웨어가 파괴되고, 디스크가 또 하나의 다른 동일한 머신으로 이동된 경우, TPM의 비밀 키는 상이할 수 있다. 이 경우, 사용자는 머신 대신 인증될 수 있다. 다수의 메카니즘이 제2 인증이라고 하는 이것을 행할 수 있다. 이것을 위한 자격증들은 쉽게 액세스 가능할 필요가 없으며, 머신을 다시 인에이블시키기 위하여 예를 들어 전화 통화를 요구할 수 있다. 제2 인증은 다른 방법으로 얻어질 수 있는, 제1 TPM 방법에 의해 해독되는 것과 동일한 비밀들을 제공할 수 있다. 이러한 실시예들은 제1 인증 방법과 동일한 방법을 이용하는 것보다 강력한 보안을 제공할 수 있다. 예를 들어, 머신 패스워드는 기억하기 쉬운 형태를 가질 필요 없이 완전히 무작위로 생성될 수 있다. 머신이 이러한 제2 방법에 의한 인증을 요구할 때, 머신의 사용자들은 이들의 IT 부서를 호출한다. IT 부서는 이들의 선택 시스템을 이용하여 호출 자의 식분을 검증하고 호출자의 패스워드를 판독한다. 패스워드가 입력될 때, 전술한 이동 메카니즘은 이 시나리오에서 비밀들을 새로운 TPM PCR 값들로 재봉인하는 데 사용될 수 있다. 또한, 이러한 시스템은 패스워드가 한 번만 사용될 수 있는 패스워드 시스템을 이용할 수 있는데, 제2 인증 메카니즘에 대한 새로운 패스워드로 재봉인된 비밀들은 새로운 전화 통화를 요구하게 된다.
컴퓨터를 보안 부팅하기 위한 시스템 및 방법의 실시예들은 쉽게 개량되도록 구성될 수 있다. 본 발명의 실시예들에 의해 모니터되는 코드는 좀처럼 변경되지 않지만, 이러한 코드 모듈들 중 하나는 결국 변경될 수 있음이 불가피하다. 또한, 보안 부트 프로세스에서 사용되는 비밀들은 시스템이 최초로 구성될 때, 또는 전술한 바와 같이 복구 후에 TPM으로 봉인될 수 있다.
하나 이상의 부트 컴포넌트를 개량하기 위한 제1 방법은 복구 후에, 또는 코드 변경 후에 이용 가능한 이동을 이용할 수 있으며, TPM PCR 값들이 결정될 때까지 임시 저장 장치에 저장할 수 있다. 많은 실시예에서, 이것은 PCR 값들이 현재 부트에서 공지되어 있으므로 재부트를 요구할 필요가 없다. 그러나, 코드 모듈들이 변경되는 경우, 재부트는 새로운 코드 모듈들이 측정되고, 그 값들이 TPM PCR들에 저장되는 것을 보장한다.
하나 이상의 부트 컴포넌트를 개량하기 위한 제2 방법은 제어된 코드 변경 환경에서 이용될 수 있다. 이 경우, 새로운 코드 변경으로 인한 예상 PCR 값들은 미리 결정되며, 비밀들은 시스템이 재부팅되기 전에 예상 PCR 값들로 봉인될 수 있다.
실행 시스템은 다음의 비제한 옵션 리스트 중 하나 이상에 따라 전술한 이동을 수행할 수 있다:
- 변경 전에, 예를 들어 서비스 팩은 그가 OS 로더를 변경할 것이라는 것을 알 수 있다.
- 변경 직후, 예를 들어 디스크가 포맷된 후.
- 검증된 시스템에서 변경 검출 후. 예를 들어, 셧다운시, 시스템은 컴포넌트들이 적법하게 수정되었음을 주시하고 조용히 이동을 수행한다.
- 복구의 일부로서. 예를 들어, 시스템 기동시, 시스템은 복구가 수행되었는지를 판정할 수 있으며, 다음 번 부트 후에 복구 메카니즘이 요구되지 않도록 이동을 수행할 수 있다.
보안 부트 프로세스를 유지하기 위한 또 다른 시스템은 TPM 외부에서 생성되는 다수의 상이한 키를 제공할 수 있다. 이러한 각각의 키는 동일한 RSA 키잉 자료를 이용할 수 있지만, 각각의 키의 이용은 상이한 PCR 세트들 및/또는 패스워드들로 제한될 수 있다. 사실, 이러한 추가적인 키들은 어떠한 것에도 제한되지 않을 수 있다. 이러한 실시예들에서, 적어도 하나의 BLOB는 어떠한 것에도 제한되지 않는 각각의 디스크 볼륨(예를 들어, 파티션)과 연관될 수 있다. 각각의 키는 상이한 부트 컴포넌트로부터 이용될 수 있으며 BLOB의 비밀을 보장한다. 패스워드 게이티드 키가 복구를 위해 사용될 수 있으며, RSA 키잉 자료가 제3자에게 기탁될 수 있다.
이러한 접근법은 전술한 보안 부트 프로세스와 단지 약간 상이하지만, 유지 및 서비스에 있어서 상당한 이익이 명백해진다. RSA 키잉 자료가 TPM 외부에서 생성되었고 모든 키에서 동일하다는 사실로 인해, 이 RSA 자료는 이제 한 부서 또는 전체 조직의 피고용자와 같은 다수의 사용자에 대해 보다 큰 스케일로 이용될 수 있다. 결과적으로, 조직 내의 임의의 머신에 대한 개방 및 서비스를 허용하는 마스터 키가 생성될 수 있다. 키들은 각각의 TPM의 SRK에 의해 계속 보호되며, 따라서 키들은 계속 안전한 것으로 간주될 수 있다. 그러나, 이 실시예에서는 정보 기술(IT) 부서와 같은 중앙 부서가 머신마다 하나의 키를 저장할 필요가 없으며, 오히려 논리 그룹마다 하나의 키를 저장하면 된다. 또한, 중앙 부서는 다수의 BLOB 상에 다수의 키를 저장하기 위하여 부트 블록 내의 보다 작은 저장 공간을 요구한다.
마지막으로, 전술한 실시예들에서, 관리자는 이제 정책들 및 새로운 RSA 키들을 푸시 다운할 수 있으며, 따라서 키들은 각각의 머신 상에서 자주 변경된다. 이것은 그 기능의 유지 비용을 감소시킨다.
풀 볼륨 암호화 및 보호된 부트를 이용한 데이터에 대한 액세스의 영구적 파괴
전술한 보안 부트 프로세스의 부산물은 풀 볼륨 암호화, 즉 파티션 내의 거의 모든 데이터의 암호화가 효율적이고 효과적으로 지원될 수 있다는 것이다. 이것은 비밀들을 파괴하고 따라서 컴퓨터 상에서 데이터에 액세스하는 데 필요한 중요한 정보를 파괴하기 위해 요구되는 노력을 줄일 수 있다. 이러한 데이터의 효과 적인 파괴는 소정의 상황에서, 구체적으로 민감한 데이터를 처분하기를 원하는 상황에서, 보다 구체적으로는 이러한 데이터를 빠르게 처분하기를 원하는 상황에서 가치가 높을 수 있다.
본 발명을 구현하는 컴퓨터를 동작시키는 데 필요한 비밀들의 제거는 소프트웨어의 재설치 없이 이러한 컴퓨터를 사용 불가능하게 만들 수 있으며, 컴퓨터 상의 데이터에 대한 액세스를 영구적으로 방지할 수 있다. 이를 달성하기 위하여, TPM 내부에 저장된 비밀들이 리셋될 수 있다. 이것은 TPM의 소유권을 변경함으로써 간단히 수행될 수 있다. TPM에 의해 봉인된 임의의 비밀들은 더 이상 유효하지 않다. 제2 복구 메카니즘도 파괴되어야 한다. 그러나, 단기적으로 이러한 메카니즘이 파괴될 때까지, 복구 메카니즘이 오프 사이트로 유지될 때, 복구 메카니즘은 머신을 일시적으로 디스에이블시키고 나중에 머신을 복구하는 방법을 제공할 수 있다.
TPM에 저장된 비밀들 및 임의의 복구 메카니즘 양자가 변경된 때, 머신의 콘텐츠인 코드 및 데이터 양자는 얻어질 수 없게 된다. 이것은 머신의 보안 제거를 매우 빠르게 달성한다. 이러한 효율적인 보안 제거의 하나의 이점은 머신의 재판매를 보다 실용적으로 만든다는 것이다.
본 발명은 소프트웨어 컴포넌트들의 완전성 메트릭을 검증하기 위한 트러스티드 플랫폼 모듈(TPM)을 구비한 컴퓨터를 보안 부팅하기 위한 시스템 및 방법을 제공한다.

Claims (20)

  1. 기록 값을 보유하고, 제출 값과 상기 기록 값을 비교하여, 상기 제출 값이 올바른 경우에 비밀을 릴리스하는 하드웨어 보안 모듈(HSM)을 구비한 컴퓨터 상의 보안 부트 프로세스를 위한 명령어를 가진 컴퓨터 판독 가능 매체로서,
    적어도 하나의 값을 상기 HSM에 제출하기 위한 명령어 - 상기 값이 올바른 경우에 상기 HSM은 비밀을 릴리스할 수 있음 -;
    상기 비밀을 검색하기 위한 명령어;
    상기 비밀의 검색으로 인하여 액세스할 수 있는 정보를 이용하여 데이터를 해독하기 위한 명령어 - 상기 해독 명령어의 실행은 해독된 데이터를 생성함 -; 및
    컴퓨터 부트 프로세스의 적어도 일부를 위한 명령어 - 상기 컴퓨터 부트 프로세스는 상기 해독된 데이터 없이는 정상 부트를 완료할 수 없음 -
    를 포함하는 컴퓨터 판독 가능 매체.
  2. 제1항에 있어서, 상기 HSM은 트러스티드 플랫폼 모듈(TPM)이고, 상기 적어도 하나의 값은 적어도 하나의 플랫폼 구성 레지스터(PCR)에 위치하는 컴퓨터 판독 가능 매체.
  3. 제1항에 있어서, 상기 해독된 데이터는 상기 컴퓨터 부트 프로세스에서 사용되는 소프트웨어 컴포넌트를 포함하는 컴퓨터 판독 가능 매체.
  4. 제1항에 있어서, 상기 해독된 데이터는, 상기 컴퓨터 부트 프로세스를 계속하기 위하여 상기 컴퓨터 부트 프로세스에서 사용되는 소프트웨어 컴포넌트가 요구하는 정보를 포함하는 컴퓨터 판독 가능 매체.
  5. 제1항에 있어서, 상기 해독된 데이터는 컴퓨터 판독 가능 매체에 저장된 데이터에 액세스하기 위하여 요구되는 정보를 포함하는 컴퓨터 판독 가능 매체.
  6. 제1항에 있어서, 메모리로부터 상기 비밀을 제거하기 위한 명령어를 더 포함하는 컴퓨터 판독 가능 매체.
  7. 기록 값을 보유하고, 제출 값과 상기 기록 값을 비교하여, 상기 제출 값이 올바른 경우에 비밀을 릴리스하는 하드웨어 보안 모듈(HSM)을 포함하는 컴퓨터로서,
    적어도 하나의 값을 상기 HSM에 제출하기 위한 수단 - 상기 값이 올바른 경우에 상기 HSM은 비밀을 릴리스할 수 있음 -;
    상기 비밀을 검색하기 위한 수단;
    상기 비밀의 검색으로 인하여 액세스할 수 있는 정보를 이용하여 데이터를 해독하기 위한 수단 - 상기 해독 수단의 동작은 해독된 데이터를 생성함-; 및
    컴퓨터 부트 프로세스의 적어도 일부를 포함하는 수단 - 상기 컴퓨터 부트 프로세스는 상기 해독된 데이터 없이는 정상 부트를 완료할 수 없음 -
    을 더 포함하는 컴퓨터.
  8. 제7항에 있어서, 상기 HSM은 트러스티드 플랫폼 모듈(TPM)이고, 상기 적어도 하나의 값은 플랫폼 구성 레지스터(PCR)에 위치하는 컴퓨터.
  9. 제7항에 있어서, 상기 해독된 데이터는 상기 컴퓨터 부트 프로세스에서 사용되는 소프트웨어 컴포넌트를 포함하는 컴퓨터.
  10. 제7항에 있어서, 상기 해독된 데이터는, 상기 컴퓨터 부트 프로세스를 계속하기 위하여 상기 컴퓨터 부트 프로세스에서 사용되는 소프트웨어 컴포넌트가 요구하는 정보를 포함하는 컴퓨터.
  11. 제7항에 있어서, 상기 해독된 데이터는 컴퓨터 판독 가능 매체에 저장된 데이터에 액세스하기 위해 요구되는 정보를 포함하는 컴퓨터.
  12. 제7항에 있어서, 메모리로부터 상기 비밀을 제거하기 위한 수단을 더 포함하는 컴퓨터.
  13. 복수의 파티션, 및 기록 값을 보유하고, 제출 값과 상기 기록 값을 비교하 여, 상기 제출 값이 올바른 경우에 비밀을 릴리스하는 하드웨어 보안 모듈(HSM)을 구비한 컴퓨터 상의 보안 부트 프로세스를 위한 명령어를 가진 컴퓨터 판독 가능 매체로서,
    적어도 하나의 제1 값을 상기 HSM에 제출하기 위한 명령어 - 상기 제1 값이 올바른 경우에 상기 HSM은 제1 비밀을 릴리스할 수 있음 -;
    상기 제1 비밀을 검색하기 위한 명령어;
    메모리 위치로부터 상기 제1 비밀을 제거하기 위한 명령어; 및
    적어도 하나의 제2 값을 상기 HSM에 제출하기 위한 명령어 - 상기 제2 값이 올바른 경우에 상기 HSM은 상기 제1 비밀이 아니라 제2 비밀을 릴리스할 수 있음 -
    를 포함하는 컴퓨터 판독 가능 매체.
  14. 제13항에 있어서, 상기 HSM은 트러스티드 플랫폼 모듈(TPM)이고, 상기 적어도 하나의 제1 값 및 상기 적어도 하나의 제2 값은 플랫폼 구성 레지스터(PCR)에 위치하는 컴퓨터 판독 가능 매체.
  15. 제13항에 있어서, 컴퓨터 부트 프로세스의 적어도 일부를 위한 명령어를 더 포함하고, 상기 컴퓨터 부트 프로세스는 상기 제1 비밀 없이는 정상 부트를 완료할 수 없는 컴퓨터 판독 가능 매체.
  16. 제13항에 있어서, 상기 제2 비밀은 컴퓨터 판독 가능 매체의 적어도 파티션 에 저장된 실질적으로 모든 데이터에 액세스하기 위해 필요한 컴퓨터 판독 가능 매체.
  17. 제13항에 있어서, 상기 제1 값은 컴퓨터 부트 프로세스에 사용되는 소프트웨어 컴포넌트의 해시를 포함하는 컴퓨터 판독 가능 매체.
  18. 제13항에 있어서, 상기 제2 값은 해독 키의 해시를 포함하는 컴퓨터 판독 가능 매체.
  19. 제13항에 있어서, 상기 제1 비밀 및 상기 제2 비밀 중 적어도 하나는 BLOB(Binary Large Object)인 컴퓨터 판독 가능 매체.
  20. 제13항에 있어서, 상기 제1 비밀 및 상기 제2 비밀 중 적어도 하나는 해독 키인 컴퓨터 판독 가능 매체.
KR1020050110058A 2005-01-07 2005-11-17 하드웨어 보안 모듈을 구비한 컴퓨터를 보안 부팅하기 위한시스템, 방법 및 컴퓨터 판독 가능 매체 KR101219857B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/031,161 2005-01-07
US11/031,161 US7725703B2 (en) 2005-01-07 2005-01-07 Systems and methods for securely booting a computer with a trusted processing module

Publications (2)

Publication Number Publication Date
KR20060081334A true KR20060081334A (ko) 2006-07-12
KR101219857B1 KR101219857B1 (ko) 2013-01-10

Family

ID=36569935

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050110058A KR101219857B1 (ko) 2005-01-07 2005-11-17 하드웨어 보안 모듈을 구비한 컴퓨터를 보안 부팅하기 위한시스템, 방법 및 컴퓨터 판독 가능 매체

Country Status (5)

Country Link
US (1) US7725703B2 (ko)
EP (2) EP1679632B1 (ko)
JP (1) JP4837985B2 (ko)
KR (1) KR101219857B1 (ko)
CN (1) CN1801091B (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101427646B1 (ko) * 2007-05-14 2014-09-23 삼성전자주식회사 펌웨어의 무결성 검사 방법 및 장치
KR20160130790A (ko) * 2014-03-25 2016-11-14 후아웨이 테크놀러지 컴퍼니 리미티드 신뢰 커널 시작 방법 및 장치
KR20210130840A (ko) * 2016-02-05 2021-11-01 엔사이퍼 시큐리티 리미티드 데이터 전송 방법, 데이터의 사용 제어 방법 및 암호 장치

Families Citing this family (180)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7506380B2 (en) * 2005-01-14 2009-03-17 Microsoft Corporation Systems and methods for boot recovery in a secure boot process on a computer with a hardware security module
US7565553B2 (en) * 2005-01-14 2009-07-21 Microsoft Corporation Systems and methods for controlling access to data on a computer with a secure boot process
US20120084566A1 (en) * 2010-10-04 2012-04-05 Edward Chin Methods and systems for providing and controlling cryptographic secure communications across unsecured networks
CN1885226A (zh) * 2005-06-24 2006-12-27 网际威信控股公司 资料加解密方法及执行该方法的储存媒体及加解密模块
US7908483B2 (en) * 2005-06-30 2011-03-15 Intel Corporation Method and apparatus for binding TPM keys to execution entities
US20070022243A1 (en) * 2005-07-22 2007-01-25 John Rudelic Method and apparatus capable of disabling authenticated operations and guaranteed secure boot in a wireless platform
US8201240B2 (en) * 2005-09-16 2012-06-12 Nokia Corporation Simple scalable and configurable secure boot for trusted mobile phones
CN100428157C (zh) * 2005-10-19 2008-10-22 联想(北京)有限公司 一种可进行完整性检测的计算机系统和方法
US20070101401A1 (en) * 2005-10-27 2007-05-03 Genty Denise M Method and apparatus for super secure network authentication
CN100437502C (zh) * 2005-12-30 2008-11-26 联想(北京)有限公司 基于安全芯片的防病毒方法
US7266475B1 (en) * 2006-02-16 2007-09-04 International Business Machines Corporation Trust evaluation
EP1826697A1 (en) * 2006-02-24 2007-08-29 Giga Games System, SL Method for booting and using software for AWP and B type amusing gaming machines, and for C type casino machines
JP4769608B2 (ja) * 2006-03-22 2011-09-07 富士通株式会社 起動検証機能を有する情報処理装置
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
US7987351B2 (en) * 2006-10-06 2011-07-26 Broadcom Corporation Method and system for enhanced boot protection
WO2008046101A2 (en) 2006-10-13 2008-04-17 Ariel Silverstone Client authentication and data management system
US8117429B2 (en) * 2006-11-01 2012-02-14 Nokia Corporation System and method for a distributed and flexible configuration of a TCG TPM-based local verifier
US7613872B2 (en) * 2006-11-28 2009-11-03 International Business Machines Corporation Providing core root of trust measurement (CRTM) for systems using a backup copy of basic input/output system (BIOS)
KR100850583B1 (ko) 2006-12-01 2008-08-06 한국전자통신연구원 Tpm 명령어 처리 방법 및 이를 이용한 무선 단말
JP5001123B2 (ja) * 2006-12-07 2012-08-15 パナソニック株式会社 記録デバイス、集積回路、アクセス制御方法、プログラム記録媒体
JP2008171306A (ja) * 2007-01-15 2008-07-24 Ricoh Co Ltd 電子装置およびプログラム
US8588421B2 (en) * 2007-01-26 2013-11-19 Microsoft Corporation Cryptographic key containers on a USB token
JP5340173B2 (ja) * 2007-01-26 2013-11-13 インターデイジタル テクノロジー コーポレーション ロケーション情報およびロケーション情報を用いるアクセス制御を保証する方法および機器
JP5096022B2 (ja) * 2007-03-15 2012-12-12 株式会社リコー 情報処理装置、ソフトウェア検証方法及びソフトウェア検証プログラム
JP4903071B2 (ja) * 2007-03-15 2012-03-21 株式会社リコー 情報処理装置、ソフトウェア更新方法及び画像処理装置
JP5116325B2 (ja) * 2007-03-15 2013-01-09 株式会社リコー 情報処理装置、ソフトウェア更新方法及び画像処理装置
JP4890309B2 (ja) * 2007-03-19 2012-03-07 株式会社リコー 情報処理装置及び情報保護方法
JP4893411B2 (ja) * 2007-03-28 2012-03-07 カシオ計算機株式会社 端末装置及びプログラム
US8151262B2 (en) * 2007-03-30 2012-04-03 Lenovo (Singapore) Pte. Ltd. System and method for reporting the trusted state of a virtual machine
US20080271145A1 (en) * 2007-04-30 2008-10-30 Schiller Mark R Tamper indication system and method for a computing system
RU2429590C2 (ru) * 2007-04-30 2011-09-20 Интердиджитал Текнолоджи Корпорейшн ДОМАШНИЙ (е)NODE-B С НОВОЙ ФУНКЦИОНАЛЬНОЙ ВОЗМОЖНОСТЬЮ
US7805598B2 (en) * 2007-05-03 2010-09-28 Dell Products L.P. Auto-detecting and auto-correcting system state changes before booting into operating systems
US9098448B2 (en) * 2007-05-29 2015-08-04 Dell Products L.P. Intelligent boot services
CN100464341C (zh) * 2007-08-31 2009-02-25 深圳兆日技术有限公司 基于可信计算技术的数字内容使用痕迹的产生与管理方法
US7853804B2 (en) * 2007-09-10 2010-12-14 Lenovo (Singapore) Pte. Ltd. System and method for secure data disposal
US7913074B2 (en) 2007-09-28 2011-03-22 Microsoft Corporation Securely launching encrypted operating systems
US8375440B2 (en) * 2007-10-15 2013-02-12 Microsoft Corporation Secure bait and switch resume
JP4775744B2 (ja) * 2007-10-19 2011-09-21 インテル・コーポレーション 信頼できる共存環境をラウンチする方法およびプログラム
US8090937B2 (en) * 2007-11-02 2012-01-03 Dell Products L.P. System and method for managing booting of an information handling system
JP5085287B2 (ja) * 2007-11-21 2012-11-28 株式会社リコー 情報処理装置、正当性検証方法および正当性検証プログラム
US20090172378A1 (en) * 2007-12-28 2009-07-02 Kazmierczak Gregory J Method and system for using a trusted disk drive and alternate master boot record for integrity services during the boot of a computing platform
EP2245829B1 (en) 2008-01-18 2016-01-06 InterDigital Patent Holdings, Inc. Method for enabling machine to machine communication
EA201070673A1 (ru) * 2008-01-30 2011-02-28 Панасоник Корпорэйшн Безопасная начальная загрузка с помощью способа необязательных компонентов
US20090222635A1 (en) * 2008-03-03 2009-09-03 David Carroll Challener System and Method to Use Chipset Resources to Clear Sensitive Data from Computer System Memory
US8312534B2 (en) * 2008-03-03 2012-11-13 Lenovo (Singapore) Pte. Ltd. System and method for securely clearing secret data that remain in a computer system memory
WO2009153387A1 (en) * 2008-06-16 2009-12-23 Nokia Siemens Networks Oy Software loading method and apparatus
JP5309709B2 (ja) * 2008-06-16 2013-10-09 株式会社リコー ソフトウェア改ざん検知方法及び機器
US8103909B2 (en) * 2008-09-15 2012-01-24 Juniper Networks, Inc. Automatic hardware-based recovery of a compromised computer
US8411863B2 (en) * 2008-10-03 2013-04-02 Microsoft Corporation Full volume encryption in a clustered environment
US8341430B2 (en) * 2008-10-03 2012-12-25 Microsoft Corporation External encryption and recovery management with hardware encrypted storage devices
US9230109B2 (en) 2008-10-07 2016-01-05 Microsoft Technology Licensing, Llc Trusted platform module security
WO2010041462A1 (ja) * 2008-10-10 2010-04-15 パナソニック株式会社 情報処理装置、情報処理方法、情報処理プログラム及び集積回路
WO2010041467A2 (en) * 2008-10-10 2010-04-15 Panasonic Corporation USING TRANSIENT PCRs TO REALISE TRUST IN APPLICATION SPACE OF A SECURE PROCESSING SYSTEM
US9086913B2 (en) * 2008-12-31 2015-07-21 Intel Corporation Processor extensions for execution of secure embedded containers
US8923520B2 (en) * 2009-02-06 2014-12-30 Dell Products L.P. System and method for recovery key management
EP2399217B1 (en) 2009-02-18 2018-05-30 Panasonic Intellectual Property Management Co., Ltd. Information processing device and information processing method
US9805196B2 (en) * 2009-02-27 2017-10-31 Microsoft Technology Licensing, Llc Trusted entity based anti-cheating mechanism
JP2012520027A (ja) 2009-03-06 2012-08-30 インターデイジタル パテント ホールディングス インコーポレイテッド 無線装置のプラットフォームの検証と管理
WO2010113282A1 (ja) 2009-03-31 2010-10-07 富士通株式会社 構成変更の検証機能を有した情報処理装置及びその制御方法
WO2010113266A1 (ja) * 2009-03-31 2010-10-07 富士通株式会社 情報処理装置,情報処理装置の起動制御方法及び起動プログラム
EP2420079A1 (en) * 2009-04-15 2012-02-22 Interdigital Patent Holdings, Inc. Validation and/or authentication of a device for communication with a network
JP5493951B2 (ja) 2009-04-17 2014-05-14 株式会社リコー 情報処理装置、正当性検証方法及びプログラム
US8312272B1 (en) * 2009-06-26 2012-11-13 Symantec Corporation Secure authentication token management
EP2449499B1 (en) * 2009-07-01 2014-11-26 Panasonic Corporation Secure boot method and secure boot apparatus
KR101042857B1 (ko) * 2009-09-03 2011-06-20 주식회사 잉카인터넷 해킹 프로세스의 실행 차단방법
US8250379B2 (en) * 2009-10-13 2012-08-21 Microsoft Corporation Secure storage of temporary secrets
US8510569B2 (en) * 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
CN102004876B (zh) * 2009-12-31 2012-07-18 郑州信大捷安信息技术股份有限公司 可容忍非信任组件的安全终端加固模型及加固方法
CN102214278B (zh) * 2010-04-06 2013-04-10 国民技术股份有限公司 一种计算机的可信性检测方法
US8782435B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time using control flow signatures
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US8627464B2 (en) 2010-11-02 2014-01-07 Microsoft Corporation Globally valid measured operating system launch with hibernation support
KR101622447B1 (ko) 2010-11-05 2016-05-31 인터디지탈 패튼 홀딩스, 인크 장치 유효성 확인, 재난 표시, 및 복원
CN103201747B (zh) * 2010-11-18 2015-11-25 国际商业机器公司 用于验证多个数据处理系统的方法和设备
US8560845B2 (en) * 2011-01-14 2013-10-15 Apple Inc. System and method for tamper-resistant booting
JP5932837B2 (ja) * 2011-01-19 2016-06-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コードを更新および認証するための方法およびシステム、プログラムの完全性を試験する方法およびシステム
US20120233449A1 (en) * 2011-03-11 2012-09-13 Thibadeau Robert H Methods and systems for measuring trustworthiness of a self-protecting drive
JP5736994B2 (ja) * 2011-06-15 2015-06-17 株式会社リコー 情報処理装置、正当性検証方法、及びプログラム
US8850177B2 (en) * 2011-07-08 2014-09-30 Openpeak Inc. System and method for validating components during a booting process
US20140149729A1 (en) * 2011-07-18 2014-05-29 Ted A. Hadley Reset vectors for boot instructions
US8732527B2 (en) * 2011-08-16 2014-05-20 Google Inc. Secure recovery apparatus and method
US8874935B2 (en) 2011-08-30 2014-10-28 Microsoft Corporation Sector map-based rapid data encryption policy compliance
US8812830B2 (en) 2011-08-31 2014-08-19 Microsoft Corporation Attestation protocol for securely booting a guest operating system
US9014023B2 (en) 2011-09-15 2015-04-21 International Business Machines Corporation Mobile network services in a mobile data network
JP5278520B2 (ja) * 2011-10-17 2013-09-04 株式会社リコー 情報処理装置、情報保護方法
US8775784B2 (en) 2011-11-11 2014-07-08 International Business Machines Corporation Secure boot up of a computer based on a hardware based root of trust
US8971192B2 (en) 2011-11-16 2015-03-03 International Business Machines Corporation Data breakout at the edge of a mobile data network
US8938621B2 (en) * 2011-11-18 2015-01-20 Qualcomm Incorporated Computing device integrity protection
WO2013101081A1 (en) 2011-12-29 2013-07-04 Intel Corporation Methods and apparatus for trusted boot optimization
JP5519712B2 (ja) * 2012-01-20 2014-06-11 レノボ・シンガポール・プライベート・リミテッド コンピュータをブートする方法およびコンピュータ
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
KR101897605B1 (ko) * 2012-02-24 2018-09-12 삼성전자 주식회사 휴대 단말기의 무결성 보호 방법 및 장치
US9262637B2 (en) * 2012-03-29 2016-02-16 Cisco Technology, Inc. System and method for verifying integrity of platform object using locally stored measurement
JP5310897B2 (ja) * 2012-04-02 2013-10-09 株式会社リコー 情報処理装置、ソフトウェア更新方法及び記録媒体
UA76687U (uk) * 2012-07-04 2013-01-10 Владимир Евгеньевич Цвигун Система контролю завантаження операційної системи
JP5961059B2 (ja) * 2012-07-18 2016-08-02 キヤノン株式会社 情報処理装置およびその起動方法
JP2012234580A (ja) * 2012-09-05 2012-11-29 Ricoh Co Ltd 情報処理装置、正当性検証方法および正当性検証プログラム
US9063721B2 (en) 2012-09-14 2015-06-23 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US8938796B2 (en) 2012-09-20 2015-01-20 Paul Case, SR. Case secure computer architecture
JP5234217B2 (ja) * 2012-11-14 2013-07-10 株式会社リコー 情報処理装置、ソフトウェア更新方法及びプログラム
JP5500232B2 (ja) * 2012-11-26 2014-05-21 株式会社リコー 情報処理装置及び情報保護方法
JP5842800B2 (ja) * 2012-12-20 2016-01-13 カシオ計算機株式会社 制御システム、情報処理装置、端末装置、制御方法及び制御プログラム
US9465943B2 (en) * 2013-01-31 2016-10-11 Red Hat, Inc. Extension of a platform configuration register with a known value
US9280687B2 (en) * 2013-03-15 2016-03-08 Lenovo (Singapore) Pte. Ltd. Pre-boot authentication using a cryptographic processor
CN103218562A (zh) * 2013-03-21 2013-07-24 东信和平科技股份有限公司 一种移动终端可信防护方法及系统
CN105324779B (zh) * 2013-04-15 2018-08-28 亚马逊技术有限公司 使用安全存储装置的主机恢复
US9619238B2 (en) 2013-04-15 2017-04-11 Amazon Technologies, Inc. Remote attestation of host devices
US9594638B2 (en) * 2013-04-15 2017-03-14 Amazon Technologies, Inc. Host recovery using a secure store
JP5574007B2 (ja) * 2013-04-26 2014-08-20 株式会社リコー 情報処理装置及び情報保護方法
US20140344570A1 (en) 2013-05-20 2014-11-20 Microsoft Corporation Data Protection For Organizations On Computing Devices
JP5582231B2 (ja) * 2013-07-18 2014-09-03 株式会社リコー 情報処理装置、真正性確認方法、及び記録媒体
US9542568B2 (en) * 2013-09-25 2017-01-10 Max Planck Gesellschaft Zur Foerderung Der Wissenschaften E.V. Systems and methods for enforcing third party oversight of data anonymization
US9519498B2 (en) * 2013-12-24 2016-12-13 Microsoft Technology Licensing, Llc Virtual machine assurances
KR102186609B1 (ko) 2014-03-07 2020-12-03 삼성전자주식회사 무결성 검증 장치를 포함하는 전자 시스템
CN103812648B (zh) * 2014-03-13 2017-03-22 深圳数字电视国家工程实验室股份有限公司 Rsa密钥生成方法及装置
US10615967B2 (en) 2014-03-20 2020-04-07 Microsoft Technology Licensing, Llc Rapid data protection for storage devices
CN103927488A (zh) * 2014-04-04 2014-07-16 西安电子科技大学 一种针对可信嵌入式系统的可信平台模块
US9672361B2 (en) * 2014-04-30 2017-06-06 Ncr Corporation Self-service terminal (SST) secure boot
US9652631B2 (en) 2014-05-05 2017-05-16 Microsoft Technology Licensing, Llc Secure transport of encrypted virtual machines with continuous owner access
US10032029B2 (en) * 2014-07-14 2018-07-24 Lenovo (Singapore) Pte. Ltd. Verifying integrity of backup file in a multiple operating system environment
JP2016025616A (ja) 2014-07-24 2016-02-08 レノボ・シンガポール・プライベート・リミテッド ディスク・ドライブが記憶するデータを保護する方法および携帯式コンピュータ
JP6362483B2 (ja) * 2014-09-02 2018-07-25 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US9825945B2 (en) 2014-09-09 2017-11-21 Microsoft Technology Licensing, Llc Preserving data protection with policy
US9853812B2 (en) 2014-09-17 2017-12-26 Microsoft Technology Licensing, Llc Secure key management for roaming protected content
US9928080B2 (en) 2014-09-30 2018-03-27 International Business Machines Corporation Hardware security module access management in a cloud computing environment
US10229272B2 (en) 2014-10-13 2019-03-12 Microsoft Technology Licensing, Llc Identifying security boundaries on computing devices
US9584317B2 (en) 2014-10-13 2017-02-28 Microsoft Technology Licensing, Llc Identifying security boundaries on computing devices
US9900295B2 (en) 2014-11-05 2018-02-20 Microsoft Technology Licensing, Llc Roaming content wipe actions across devices
US9519787B2 (en) 2014-11-14 2016-12-13 Microsoft Technology Licensing, Llc Secure creation of encrypted virtual machines from encrypted templates
US9729319B2 (en) 2014-12-15 2017-08-08 Nxp Usa, Inc. Key management for on-the-fly hardware decryption within integrated circuits
US9418246B2 (en) 2014-12-15 2016-08-16 Freescale Semiconductor, Inc. Decryption systems and related methods for on-the-fly decryption within integrated circuits
EP3040896A1 (en) 2014-12-30 2016-07-06 Gemalto Sa Secure element
US10120696B2 (en) * 2015-03-19 2018-11-06 Sony Corporation Method and device for controlling usability of a communication device
US9578020B2 (en) 2015-03-19 2017-02-21 Sony Corporation Module for controlling usability of a device
US9853820B2 (en) 2015-06-30 2017-12-26 Microsoft Technology Licensing, Llc Intelligent deletion of revoked data
GB2540408B (en) 2015-07-16 2021-09-15 Trw Ltd Electronic control units for vehicles
US10223294B2 (en) 2015-09-01 2019-03-05 Nxp Usa, Inc. Fast secure boot from embedded flash memory
US9900325B2 (en) 2015-10-09 2018-02-20 Microsoft Technology Licensing, Llc Passive encryption of organization data
WO2017127089A1 (en) 2016-01-21 2017-07-27 Hewlett Packard Enterprise Development Lp Software validation for untrusted computing systems
US10210040B2 (en) 2016-01-28 2019-02-19 Nxp Usa, Inc. Multi-dimensional parity checker (MDPC) systems and related methods for external memories
US10528739B2 (en) * 2016-04-20 2020-01-07 Sophos Limited Boot security
US9916452B2 (en) * 2016-05-18 2018-03-13 Microsoft Technology Licensing, Llc Self-contained cryptographic boot policy validation
US10313121B2 (en) 2016-06-30 2019-06-04 Microsoft Technology Licensing, Llc Maintaining operating system secrets across resets
US10242195B2 (en) * 2016-07-22 2019-03-26 Hewlett Packard Enterprise Development Lp Integrity values for beginning booting instructions
US10177910B2 (en) * 2016-08-31 2019-01-08 Microsoft Technology Licensing, Llc Preserving protected secrets across a secure boot update
RU169208U1 (ru) * 2016-09-22 2017-03-09 Российская Федерация, от имени которой выступает Министерство обороны Российской Федерации Вычислительная система
CN116186728A (zh) * 2016-11-23 2023-05-30 恩图鲁斯特咨询卡有限公司 打印机标识和安全
US10318738B2 (en) * 2016-12-27 2019-06-11 Intel Corporation Distributed secure boot
TWI615732B (zh) * 2016-12-27 2018-02-21 瑞昱半導體股份有限公司 電子裝置之電子元件、啟動電子裝置的方法及加密方法
DE102017204081A1 (de) 2017-03-13 2018-09-13 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Überprüfung der Integrität von in einem vorbestimmten Speicherbereich eines Speichers gespeicherten Daten
US10929572B2 (en) 2017-04-10 2021-02-23 Nyquist Semiconductor Limited Secure data storage device with security function implemented in a data security bridge
US11263326B2 (en) 2017-06-02 2022-03-01 Apple Inc. Method and apparatus for secure system boot
US10417429B2 (en) 2017-06-02 2019-09-17 Apple Inc. Method and apparatus for boot variable protection
WO2018236420A1 (en) * 2017-06-20 2018-12-27 Google Llc CLOUD EQUIPMENT SECURITY MODULES FOR CRYPTOGRAPHIC EXTERNALIZATION OPERATIONS
US10462664B2 (en) * 2017-08-02 2019-10-29 Dell Products, Lp System and method for control of baseboard management controller ports
AU2018321586B2 (en) 2017-08-22 2023-03-09 Absolute Software Corporation Firmware integrity check using silver measurements
US10735190B1 (en) 2017-11-16 2020-08-04 Amazon Technologies, Inc. Persistent TPM-based identifier and key pair
US11374745B1 (en) * 2017-11-29 2022-06-28 Amazon Technologies, Inc. Key usage tracking using TPM
US10642970B2 (en) * 2017-12-12 2020-05-05 John Almeida Virus immune computer system and method
US10614254B2 (en) * 2017-12-12 2020-04-07 John Almeida Virus immune computer system and method
US10936722B2 (en) * 2018-04-18 2021-03-02 Nuvoton Technology Corporation Binding of TPM and root device
US11985132B2 (en) * 2018-05-02 2024-05-14 Samsung Electronics Co., Ltd. System and method for resource access authentication
TWI684887B (zh) * 2018-06-26 2020-02-11 和碩聯合科技股份有限公司 自動驗證方法與系統
CN110677250B (zh) 2018-07-02 2022-09-02 阿里巴巴集团控股有限公司 密钥和证书分发方法、身份信息处理方法、设备、介质
CN110795742B (zh) 2018-08-02 2023-05-02 阿里巴巴集团控股有限公司 高速密码运算的度量处理方法、装置、存储介质及处理器
CN110795774B (zh) * 2018-08-02 2023-04-11 阿里巴巴集团控股有限公司 基于可信高速加密卡的度量方法、设备和系统
CN110874478B (zh) 2018-08-29 2023-05-02 阿里巴巴集团控股有限公司 密钥处理方法及装置、存储介质和处理器
CN109117643B (zh) * 2018-09-05 2021-05-07 郑州云海信息技术有限公司 系统处理的方法以及相关设备
JP7170482B2 (ja) * 2018-09-20 2022-11-14 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
CN109558738A (zh) * 2018-12-07 2019-04-02 郑州云海信息技术有限公司 一种移动平台可信控制装置及其方法
US11048802B2 (en) * 2019-05-09 2021-06-29 X Development Llc Encrypted hard disk imaging process
US11645393B2 (en) 2019-06-28 2023-05-09 Seagate Technology Llc Secure booting in a data storage device with front end bus
US11388008B2 (en) 2019-07-16 2022-07-12 International Business Machines Corporation Trusted platform module swarm
EP3933631B1 (en) 2020-06-30 2023-04-12 NXP USA, Inc. Fast and versatile multicore soc secure boot method
EP3933630A1 (en) 2020-06-30 2022-01-05 Nxp B.V. Method and apparatus to adjust system security policies based on system state
US11797680B2 (en) * 2020-08-28 2023-10-24 Micron Technology, Inc. Device with chain of trust
KR102387685B1 (ko) * 2020-11-03 2022-05-30 유비벨록스(주) 보안 부트 검증 방법 및 이를 위한 보안 칩
US11803454B2 (en) * 2021-04-30 2023-10-31 Dell Products L.P. Chained loading with static and dynamic root of trust measurements
WO2023048706A1 (en) * 2021-09-22 2023-03-30 Hewlett-Packard Development Company, L.P. Emulated network response

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5937063A (en) * 1996-09-30 1999-08-10 Intel Corporation Secure boot
US6189100B1 (en) * 1998-06-30 2001-02-13 Microsoft Corporation Ensuring the integrity of remote boot client data
US6401208B2 (en) * 1998-07-17 2002-06-04 Intel Corporation Method for BIOS authentication prior to BIOS execution
US6330670B1 (en) * 1998-10-26 2001-12-11 Microsoft Corporation Digital rights management operating system
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US6684326B1 (en) * 1999-03-31 2004-01-27 International Business Machines Corporation Method and system for authenticated boot operations in a computer system of a networked computing environment
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US6643781B1 (en) * 1999-05-14 2003-11-04 Sun Microsystems, Inc. Method and apparatus for rendering stolen computing devices inoperable
US6757824B1 (en) * 1999-12-10 2004-06-29 Microsoft Corporation Client-side boot domains and boot rules
US7117376B2 (en) * 2000-12-28 2006-10-03 Intel Corporation Platform and method of creating a secure boot that enforces proper user authentication and enforces hardware configurations
DE60228027D1 (de) * 2001-07-06 2008-09-18 Texas Instruments Inc Sicherer Bootloader zum Sichern digitaler Geräte
US7237121B2 (en) * 2001-09-17 2007-06-26 Texas Instruments Incorporated Secure bootloader for securing digital devices
US7779267B2 (en) * 2001-09-04 2010-08-17 Hewlett-Packard Development Company, L.P. Method and apparatus for using a secret in a distributed computing system
US7117121B2 (en) * 2001-09-11 2006-10-03 Zonar Compliance Systems, Llc System and process to ensure performance of mandated inspections
US7191464B2 (en) 2001-10-16 2007-03-13 Lenovo Pte. Ltd. Method and system for tracking a secure boot in a trusted computing environment
US7343493B2 (en) 2002-03-28 2008-03-11 Lenovo (Singapore) Pte. Ltd. Encrypted file system using TCPA
US6907522B2 (en) * 2002-06-07 2005-06-14 Microsoft Corporation Use of hashing in a secure boot loader
US7558958B2 (en) * 2002-06-13 2009-07-07 Microsoft Corporation System and method for securely booting from a network
US7216369B2 (en) * 2002-06-28 2007-05-08 Intel Corporation Trusted platform apparatus, system, and method
US20040117318A1 (en) * 2002-12-16 2004-06-17 Grawrock David W. Portable token controlling trusted environment launch
JP3724577B2 (ja) * 2003-02-06 2005-12-07 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、情報処理装置用制御方法、及び情報処理装置用制御プログラム
TWI319147B (en) * 2003-04-10 2010-01-01 Lenovo Singapore Pte Ltd Apparatus, motherboard, method and computer-readable storage medium recording instructions capable of determinging physical presence in a trusted platform in a computer system
JP2004355561A (ja) * 2003-05-30 2004-12-16 Sony Corp 起動装置
US7318150B2 (en) * 2004-02-25 2008-01-08 Intel Corporation System and method to support platform firmware as a trusted process
US20060047944A1 (en) * 2004-09-01 2006-03-02 Roger Kilian-Kehr Secure booting of a computing device
JP4562464B2 (ja) * 2004-09-07 2010-10-13 富士通株式会社 情報処理装置
US7711942B2 (en) * 2004-09-23 2010-05-04 Hewlett-Packard Development Company, L.P. Computer security system and method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101427646B1 (ko) * 2007-05-14 2014-09-23 삼성전자주식회사 펌웨어의 무결성 검사 방법 및 장치
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
KR20210130840A (ko) * 2016-02-05 2021-11-01 엔사이퍼 시큐리티 리미티드 데이터 전송 방법, 데이터의 사용 제어 방법 및 암호 장치
US11849029B2 (en) 2016-02-05 2023-12-19 Ncipher Security Limited Method of data transfer, a method of controlling use of data and cryptographic device

Also Published As

Publication number Publication date
EP3125149A1 (en) 2017-02-01
EP3125149B1 (en) 2020-01-29
US20060155988A1 (en) 2006-07-13
EP1679632B1 (en) 2017-11-08
JP4837985B2 (ja) 2011-12-14
EP1679632A3 (en) 2006-08-02
CN1801091A (zh) 2006-07-12
EP1679632A2 (en) 2006-07-12
KR101219857B1 (ko) 2013-01-10
CN1801091B (zh) 2010-10-06
JP2006323814A (ja) 2006-11-30
US7725703B2 (en) 2010-05-25

Similar Documents

Publication Publication Date Title
KR101219857B1 (ko) 하드웨어 보안 모듈을 구비한 컴퓨터를 보안 부팅하기 위한시스템, 방법 및 컴퓨터 판독 가능 매체
US10516533B2 (en) Password triggered trusted encryption key deletion
KR101176646B1 (ko) 상태 검증을 사용하는 보호된 오퍼레이팅 시스템 부팅을 위한 시스템 및 방법
US7506380B2 (en) Systems and methods for boot recovery in a secure boot process on a computer with a hardware security module
US8028172B2 (en) Systems and methods for updating a secure boot process on a computer with a hardware security module
US7565553B2 (en) Systems and methods for controlling access to data on a computer with a secure boot process
JP5992457B2 (ja) オペレーティングシステムのコンフィグレーション値の保護
US8850212B2 (en) Extending an integrity measurement
US8417962B2 (en) Device booting with an initial protection component
US8213618B2 (en) Protecting content on client platforms
US20140020083A1 (en) Customizable Storage Controller With Integrated F+ Storage Firewall Protection
Muñoz et al. TPM, a pattern for an architecture for trusted computing
Zhao et al. Deceptive Deletion Triggers under Coercion
Zhao Authentication and Data Protection under Strong Adversarial Model

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151217

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161220

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171219

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20191217

Year of fee payment: 8