KR20080112404A - 신뢰된 계산 무결성 측정 보고를 수행하는 장치 및 방법 - Google Patents

신뢰된 계산 무결성 측정 보고를 수행하는 장치 및 방법 Download PDF

Info

Publication number
KR20080112404A
KR20080112404A KR1020087028515A KR20087028515A KR20080112404A KR 20080112404 A KR20080112404 A KR 20080112404A KR 1020087028515 A KR1020087028515 A KR 1020087028515A KR 20087028515 A KR20087028515 A KR 20087028515A KR 20080112404 A KR20080112404 A KR 20080112404A
Authority
KR
South Korea
Prior art keywords
platform
tpm
pcr
challenger
agent
Prior art date
Application number
KR1020087028515A
Other languages
English (en)
Other versions
KR101041543B1 (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 KR20080112404A publication Critical patent/KR20080112404A/ko
Application granted granted Critical
Publication of KR101041543B1 publication Critical patent/KR101041543B1/ko

Links

Images

Classifications

    • 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

Landscapes

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

Abstract

신뢰된 플랫폼 모듈(TPM)을 이용하여 복수의 서브시스템들의 무결성 측정들을 수행하는 장치 및 방법이 개시되어 있다. 부트업 후에 플랫폼 구성 레지스터(PCR)들의 상태는 시스템의 베이스 상태로서 저장된다. 다른 실시예에서, 검증되어질 애플리케이션은 애플리캐이션의 상태가 시스템의 베이스 상태로부터 확장되도록 요청한다. 이러한 요청이 수신되면, 시스템의 상태가 시스템 상태로부터가 아닌 베이스 상태 PCR 컨텐츠로부터 직접 확장된다. 다른 실시예에서, 가상 PCR이 이용되며, 여기서 이러한 가상 PCR은 외부의 보호된 메모리 상에서의 암호화된 스토리지의 이용에 의해, 통상의 TPM이 물리적 PCR에 대하여 제공하는 것 보다 더 큰 메모리 공간을 이용한다.

Description

신뢰된 계산 무결성 측정 보고를 수행하는 장치 및 방법{APPARATUS AND METHODS FOR PERFORMING TRUSTED COMPUTING INTEGRITY MEASUREMENT REPORTING}
본 발명은 복수의 플랫폼(즉, 서브시스템들)에 걸친 신뢰된 계산(즉, 컴퓨터 보안)에 관한 것이다. 보다 자세하게는, 본 발명은 신뢰된 계산 무결성 측정 보고를 수행하기 위한 장치 및 방법에 관한 것이다.
플랫폼 구성 레지스터(Platform Configuration Register; PCR)는 데이터의 해시들을 저장하는데 이용되는 신뢰된 플랫폼 모듈(trusted platform module; TPM) 내부에 있는 메모리 로케이션들이다. PCR들에 이용되는 TPM 메모리는 사실상 휘발성 또는 비휘발성일 수 있다.
통상의 신뢰된 계산 그룹(TCG) 사양들은 PCR들 상에서 판독, 확장 및 인용(Quote) 동작들을 가능하게 하며, 이 동작들은 TPM에 의해 수행된다. 판독 동작은 주어진 PCR의 값을 판독하는데 이용된다. 확장 동작은 오래된 컨텐츠를 새로운 컨텐츠로 확장함으로써 PCR들의 값을 변경하는데 이용된다. 이것은 최종 PCR 다이제스트가 어떻게 구축되었는지를 챌린저가 볼 수 있게 한다. 인용 동작은 무결성 보고에 이용되며 여기서 PCR의 값들은 TPM에 의해 입증 식별 키(attestation identification key; AIK)를 이용하여 암호화된다. 이러한 환경에서의 입증은 이러 한 정보의 내부 또는 외부 챌린저 또는 요청자들에게 시스템의 신뢰성(trustworthiness) 대책을 제공하는 플랫폼의 활동을 의미한다. 무결성 보고는 플랫폼의 현재 구성을 판단하는데 이용될 수 있다.
TPM이, 해싱되는 코드 또는 데이터의 피스의 무결성의 검증(verification)에 이후에 이용되도록 무결성 매트릭들을 생성하는 동작들을 수행하는 경우, TPM은 목표 데이터 또는 코드의 가장 최근 값의 해시를 간단히 계산하고 그 값을 PCR에 입력하지 못한다. 대신에, TPM은 PCR의 현존 값을 측정될 시스템 성분의 새로운 값과 결합(concatenate)시키고 결합된 데이터 상에서 보안 해시 알고리즘(secure hash algorithm; SHA)을 수행함으로써 확장 동작을 수행하고 목표 PCR에 그 결과를 입력한다.
PCR이 확장될 때마다, TCG 이벤트 로그에서 로그 입력이 또한 행해진다. 저장된 측정 로그(stored measurement log; SML)라 또한 불리는 TCG 이벤트 로그는 TPM이 상주하는 플랫폼 상에서 발생하는 이벤트들의 로그이다. SML은 TPM을 포함하는 시스템 플랫폼에서의 성분(예를 들어, 코드의 피스)의 측정된 값들의 로그이다. TPM은 TPM이 상주하는 플랫폼에서 발생하는 (특정 애플리케이션 소프트웨어(SW)의 로딩과 같은) 이벤트들의 측정을 수행한다. TPM을 제어하는 플랫폼 오퍼레이팅 시스템(OS)의 신뢰된 부분인 측정 커넬(kernel)은 OS에 의한 요청시 측정 이벤트들을 발생시킨다. "측정 이벤트"는 플랫폼 자체에서 발생하는 이벤트가 아니라, 플랫폼에서 발생하는 이벤트에 대하여 수행되는 "측정"의 활동 또는 이벤트를 의미하는 용어임을 주지한다. 이러한 플랫폼 이벤트의 일례는 시스템 메모리 내로의, 소프트 웨어 코드 피스의 판독이다. 측정 이벤트는 두 종류의 데이터, 1) 측정된 값들 - 내장된 데이터 또는 프로그램 코드의 표현; 및 2) 측정 다이제스트들 - 이들 값의 SHA 해시로 구성된다. 데이터는 메시지 다이제스트를 발생시키는 TPM에 의해 스캐닝된다. 다이제스트들은 머신의 동작 상태의 스냅샷(snapshot)이다. 2개의 데이터 요소(측정된 값들과 측정 다이제스트)는 개별적으로 저장된다. 측정 다이제스트는 TPM에서의 PCR들에 저장된다. 측정된 값들은 가상적으로 어디든지, 통상적으로 SML에 저장될 수 있지만, 이 값들은 암호화된 형식으로 저장되어야 한다. 실제로, 측정된 값들은 어느것도 저장되지 않을 수도 있지만, 시리얼화(serialize)된 표현이 필요한 경우에는 언제든지 재계산될 수 있다. 측정 데이터는 측정된 성분의 특성들 및 특징들을 기술한다. SML은 관련된 측정값들의 시퀀스들을 포함한다. 각각의 시퀀스는 공통 측정 다이제스트를 공유한다. 측정값들은 공통 측정 다이제스트에 첨부되어, 재해싱(re-hash)된다. 이것은 다이제스트를 확장하는 것으로서 보다 일반적으로 언급된다. 확장하는 것은 관련된 측정값들이 무시되지 않고 동작들의 순서가 보존되는 것을 보장한다.
대수적으로, 임의의 시간(t+1)에서 n번째 PCR에 대한 업데이트들은 다음과 같다.
PCR[n](t+l) = SHA-1(PCR[n](t) + 측정된 데이터(t+l)) 식 (1)
PCR 값들은 임시적이며, 시스템 리부팅시 리세트된다. 측정 이벤트들의 검증은 측정 다이제스트의 재생성과, (비교기들 중 한 비교기로서 PCR 값을 이용하여) 다이제스트 값들의 단순 비교를 필요로 한다. TCG는 SML 컨텐츠에 대한 데이터 인 코딩 규칙들을 정의하지 않고, 넓은 액세스능력을 보장하도록 확장성 생성 언어(Extensible Markup Language; XML)와 같은 다음의 적절한 표준들을 권장한다.
도 1은 챌린저(105), 플랫폼 에이전트(110), TPM(115) 및 리포지토리(120)를 포함하는 시스템(100)에 의해 실시되는 통상의 TCG 입증 절차(즉, 프로토콜)를 나타낸다.
챌린저(105)는 플랫폼 에이전트(110)로부터 하나 이상의 PCR 값들을 요청한다(단계 125). 플랫폼 에이전트(110)는 무결성 측정 값들인 SML 엔트리들을 수집한다(단계 130). 플랫폼 에이전트(110)는 TPM(115)으로부터 PCR 값들을 요청한다(단계 135). PCR 값들은 무결성 측정값의 측정 다이제스트(즉, 무결성 측정값들의 서명된 해시)이다. TPM(115)은 AIK를 이용하여 PCR값들을 서명하고(단계 140), 서명된 PCR 값들을 플랫폼 에이전트(110)에 전송한다(단계 145). 플랫폼 에이전트(110)는 또한 리포지토리(120)로부터 TPM(115)을 보증하는 크리덴셜들을 수집한다(단계 150, 단계 155). 플랫폼 에이전트(110)는 서명된 PCR 값들, SML 엔트리들 및 크리덴셜들을 챌린저(105)에 전송한다(단계 160). 그 후, 챌린저(105)는 플랫폼 구성을 검증한다(단계 165). 검증을 위하여, 챌린저(105)는 수신된 SML 엔트리들로부터 측정 다이제스트를 계산하고 계산된 측정 다이제스트와 PCR 값들을 비교한다. 챌린저(105)는 또한 플랫폼 크리덴셜들을 평가하고 서명들을 검사한다.
PCR 값들은 새로운 측정이 이루어질 때마다 확장되며, 이 정보는 TPM(115)에 의해 로깅된다. 이 확장은 측정들의 순서가 보존되고 모든 측정값들이 고려되는 것을 보장한다. PCR 값들을 확장하는 것과 관련된 도전 과제들 중 하나는, 임의의 측 정이 수행될 때 플랫폼의 상태가 변화함으로써 그 결과, 현재의 애플리케이션과 관련되지 않은 애플리케이션이 PCR들을 확장한 경우, 시스템의 상태가 정확하지 않다는 점이다.
현재, 부트업 프로세스를 위하여 예비할당된 PCR 외에, 애플리케이션들로의 PCR들의 표준화된 할당은 존재하지 않는다. 이것은 1보다 많은 애플리케이션이 동일한 PCR을 이용하고 있는 상황들을 야기할 수 있으며, 이는 아래 요약된 이유로 문제가 된다.
예를 들어, 신뢰된 디지털 권한 관리(digital rights management; DRM) 애플리케이션에 앞서, 신뢰된 브라우저 애플리케이션이 로딩되는 경우, DRM 애플리케이션에 의해 요구되는 시스템의 상태는 양쪽 애플리케이션들이 동일한 PCR들을 이용하는 경우의 예상되는 상태와 매칭할 수 없다. 이것은 시스템의 상태가, 가정된 것으로 되는 것이 아니기 때문에 애플리케이션을 로딩하는데 있어 잠재적으로 실패를 가져올 수 있다. DRM 애플리케이션에 대한 챌린저는 또한 브라우저가 실행하는 정보를 얻을 것이다. 이것은 유저의 프라이버시에 손상을 준다.
예를 들어, 도 2는 제1 챌린저(205), 제2 챌린저(210), 및 플랫폼 에이전트(220)와 TPM(225)을 포함한 유저 장치(215)를 포함하는 시스템(200)에 의해 실시되는 통상의 TCG 절차를 나타내며, 이 절차에 의해 서로 다른 애플리케이션들이 서로의 확장 동작을 알지 못하고 서로 다른 상태로부터 PCR을 확장한다. 제1 챌린저(205)가, 제2 챌린저(210)가 요청한 PCR 값들에 대한 동일한 변경들을 요청하는 경우, 제2 챌린저(210)에 의한 플랫폼 구성의 검증은 심지어 플랫폼의 구성이 유효 한 경우에도 실패할 것이다.
도 2를 참조하여 보면, 제1 챌린저(205)가 플랫폼 에이전트(220)로부터의 플랫폼 구성에 대한 요청을 전송하고(단계 230), 그 후, 플랫폼 에이전트(220)가 상주 TPM(225) 상에서 PCR을 확장한 다음(단계 235) TPM(225)로부터 PCR의 서명된 값에 대해 요청하며(단계 240), TPM(225)은 플랫폼 에이전트(220)에 다시 (AIK를 이용하여 TPM(225)에 의해 서명된) 서명된 PCR 값을 되전송한다(단계 245). 그 후, 제1 챌린저(205)는 플랫폼 에이전트(220)로부터 플랫폼 구성을 수신한다(단계 250). 이 프로세스(단계 250)에서, 제1 챌린저(205)는 일반적으로 서명된 PCR 값과 SML 엔트리(도 2에는 모두 도시되어 있지 않음)를 또한 수신하고, 플랫폼 구성 데이터, 서명된 PCR 값, 및 수신된 SML 엔트리를 이용하여 플랫폼 구성을 검증함(단계 255)을 주지한다.
개별적으로, 제2 챌린저(210)는 플랫폼 에이전트(220)로부터 플랫폼 구성을 요청하고(단계 260) 이후에 수신할 수 있으며(단계 280), 플랫폼 에이전트(220)는 TPM(225)에서 동일한 PCR을 확장하고(단계 265) TPM(225)으로부터 PCR의 서명된 값들을 요청하여(단계 270) 수신한다(단계 275). 그 후, 제2 챌린저(210)는 자신이 수신했던 플랫폼 구성을 검증할 수 있다(단계 285). 제1 챌린저(205)와 제2 챌린저(210)는 서로를 알 수 없으며, 현재의 TCG 사양들이, 보안 및 프라이버시 보호 방식으로 서로 다른 챌린저들에 대하여 적절하고 유용한 측정 다이제스트들을 기록하기 위해 어느 PCR들이 이용될 수 있는지를 지정하는 계통적 방법을 특정하지 않기 때문에, 동일한 PCR이 이들 관련없는 챌린저들 양쪽 모두에 대해 측정 다이제스 트들을 기록하는데 이용될 수 있다. 이것은 제2 챌린저(210)가 제1 챌린저(205)에 대해 의도된 측정값들로 확장된 PCR 값들에 의해 표현되는 시스템 상태를 반드시 알 필요가 있는 것이 아닐 경우에 문제를 발생시킨다. 따라서, 제2 챌린저(210)의 관점에서는, 제1 챌린저(205)에 대한 측정 및 검증 때문에 동일한 PCR이 확장되었다는 사실을 아직 추적하지(track) 않는다면, 제2 챌린저(210)는 제2 챌린저 자신의 PCR 검증 이전에 발생했던 PCR 확장의 순서를 재생성하는데 필요한 모든 SML들을 수신할 수 없기 때문에 제2 챌린저의 검증 프로세스에서 잘못된 데이터 세트들을 비교할 수 있다. 대안으로, 이러한 SML들은 PCR 확장의 많은 반복 이후에 너무 커질 수 있기 때문에 제2 챌린저(210)는 PCR의 가장 최근의 이전 상태를 재생성하기 위해 이전의 모든 SML 엔트리들의 프로세스에 대한 처리 능력을 단순히 소진할 수 있다.
도 2의 TCG 절차는 또한 한 챌린저에게 공개되고 다른 챌린저들에게는 공개되지 않도록 허용될 수 있는 개인 정보의 누출을 발생시킬 수 있다. 또한, 현재의 절차들은 (검증이 발생하지 않아야 하는 경우) 공인되지 않은 검증을 발생시킬 수 있거나, 또는 (검증이 발생해야 하는 경우) 의도하지 않은 비검증 결정이 챌린저들 측 상에서 발생할 수 있다. 현재, 이러한 문제는 다음과 같은 접근 방식 중 하나 이상을 이용하여 해결된다.
PCR들을 예비 할당하는 것: 시스템의 상태가 PCR들을 이용하여 표현되기 때문에, 특정 PCR들이 특정 애플리케이션들에 할당될 수 있다. 이러한 접근 방식에 의한 단점은 TPM에서의 PCR들의 갯수가 일반적으로 비용 및 크기 고려 사항들에 기 초하여 대략 16개라는 점이다(TCG 표준은 PCR들의 갯수를 한정하지 않음). 이것은 각각의 애플리케이션 유형에 고정된 PCR들을 할당하는 능력을 제한한다.
PCR 이벤트 로그를 이용하는 것: PCR 값들에 대한 임의의 변화들은 TPM에 의해 로깅된다. 이 로그는 시스템이 정확한 상태에 있는지를 알기 위해 PCR 값들과 함께 이용될 수 있다. 그러나, 이러한 접근 방식에 의한 문제는 로그가 문제의 애플리케이션에 직접 관련되어 있지 않은 정보를 포함할 수 있고 따라서 유저 프라이버시에 손상을 줄 수 있다는 것이다.
기동 동안에 소정의 순서로 모든 애플리케이션들을 로딩하는 것 또한 이러한 문제를 없앨 수 있다. 그러나, 모든 애플리케이션들이 기동 동안에 검증되고 로딩되어야 하기 때문에 기동 시간이 더 길어져 이러한 접근 방식은 그 이용에 있어 비실용적으로 된다.
이들 접근 방식은 신뢰된 플랫폼의 기능을 제한한다는 면에서 또는 유저의 프라이버시의 손실이라는 면에서 심각한 한계들을 갖고 있다.
본 발명은 복수의 서브시스템들의 무결성 측정들을 위하여 TPM들을 이용하는 방법 및 장치에 관한 것이다. 부트업 후의 PCR들의 상태가 시스템의 베이스 상태로서 저장된다. 이러한 환경에서의 베이스 상태는 시스템의 기동이 완료될 때의 시스템의 상태로서 정의되며, 새로운 소프트웨어가 커넬 레벨에서 로딩되는 경우에만 변경될 수 있다. 이러한 상태 자체는 오퍼레이팅 시스템(OS)의 무결성을 검증하는데 관심이 있는 챌린저들에 보고될 것이다.
본 발명의 다른 실시예에 따르면, 가상 PCR이 이용되며, 여기서, 이러한 가상 PCR은 외부의 보호된 메모리 상에서의 암호화된 스토리지의 이용에 의해, 통상의 TPM이 물리적 PCR에 대해 제공하는 것보다 더 큰 메모리 공간을 이용한다.
본 발명의 또 다른 실시예에서, 검증될 애플리케이션은 자신의 상태가 시스템의 베이스 상태로부터 확장될 것을 요청한다. 이러한 요청이 수신되면, 시스템의 상태가 시스템 상태로부터가 아닌 베이스 상태 PCR 컨텐츠로부터 직접 확장된다.
또한, 시스템 상태들의 측정 및 검증에 대한 기준 시작점으로서 기능하는 베이스 상태들에 대한 스테이트먼트들(statement)이 시스템에 전달되어, 기준 베이스 상태 인증서(certificate)의 형태로 저장된다. 측정들이 수행되며, 여기서, (일반적으로 다이제스트 형태에서의) 시스템 상태의 측정 결과들은 이러한 인증서들에 기술된 베이스 상태 값들과 비교되며, 미가공 측정 다이제스트 값들을 대신하여 스테이트먼트가 물리적 PCR 또는 가상적 PCR로 확장된다.
본 발명의 보다 자세한 이해는 첨부 도면들과 결합하여 이해되고 예를 들어 주어진 바람직한 실시예의 다음 설명으로부터 이루어질 수 있다.
도 1은 챌린저, 플랫폼 에이전트, TPM 및 리포지토리를 포함하는 시스템에서 실시되는 통상적인 TCG 입증 절차를 나타낸다.
도 2는 두 챌런저들과 한 유저 장치를 포함하는 시스템에서 실시되는 통상적인 TCG 절차를 나타내며, 이 절차에 의해 서로 다른 애플리케이션들이 서로의 확장 동작을 알지 않고 서로 다른 상태들로부터 PCR을 확장한다.
도 3은 본 발명에 따른 공통 베이스 상태로부터의 상태 확장을 이용하여 두 챌린저와 한 유저 장치를 포함하는 시스템에서 실시되는 TCG 절차를 나타낸다.
도 4는 본 발명과 종래 기술을 비교하며, 이에 의해, 서로 다른 확장 상태가 서로 다른 챌린저들에 대하여 실시된다.
도 5는 본 발명에 따라 서로 다른 PCR들 상에서의 서로 다른 확장 상태들의 할당을 나타낸다.
도 6은 본 발명에 따라 기준 베이스 상태(reference base state; RBS) 인증서를 갖는 베이스 상태 확장을 이용하여 두 챌린저와 한 유저 장치를 포함하는 시스템에서 실시되는 TCG 절차를 나타낸다.
도 7은 본 발명에 따른 측정들에 대한 선택적 요청들을 나타낸다.
도 8은 물리적 TPM의 암호화 능력에 의해 보호되는 외부 메모리를 이용하는 가상 PCR, 및 TPM과 가상 PCR을 갖는 시스템이 본 발명에 따라 챌린저에 의한 플랫폼 구성 무결성 검증에 데이터를 제공하는데 어떻게 이용될 수 있는지를 나타낸다.
도 3 및 도 4는 본 발명에 따라 PCR들이 베이스 상태에 대하여 검색되는 신호도를 나타낸다.
도 3은 제1 챌린저(305), 제2 챌린저(310), 및 플랫폼 에이전트(320)와 TPM(325)을 포함한 유저 장치(315)를 포함하는 시스템(300)에 의해 실시되는 TCG 절차를 나타내며, 이 절차에 의해, 공통 베이스 상태로부터의 상태 확장이 이용된다. 도 3을 참조하여 보면, 제1 챌린저(305)는 베이스 상태로부터 계산되는 플랫폼 구성에 대하여 플랫폼 에이전트(320)에게 요청하고(단계 330) 그 후, 플랫폼 에이전트(320)는 베이스 상태로부터 PCR을 TPM(325) 상으로 확장한 다음(단계 335), TPM(325)으로부터 PCR의 서명된 값에 대하여 요청하고(단계 340) TPM(325)은 서명된 PCR 값을 다시 플랫폼 에이전트(320)에 되전송한다(단계 345). 그 후, 제1 챌린저(305)는 플랫폼 에이전트(320)로부터 플랫폼 구성을 수신한다(단계 350). 그 후, 제1 챌린저(305)는 제1 챌린저가 단계 350에서 수신했던 플랫폼 구성 데이터와, 제1 챌린저가 자체적으로 계산하고 플랫폼 구성을 검증하는 값을 비교한다(단계 355).
개별적으로, 제2 챌린저(310)는 단계 335에서 이용되는 베이스 상태의 동일한 값으로부터 다시 계산되지만 또 한편으로는 제2 챌린저(310)와 제2 챌린저의 검증 목표 및 목적에 적합한 다른 측정값으로 확장되는 플랫폼 구성을 이후에 요청하고(단계 360) 이후에 수신할 수 있다(단계 380). 따라서, 그 후, 플랫폼 에이전트(320)는 제2 챌린저(310)로부터의 요청시, 자신의 마지막 값으로부터가 아닌, 단계 335에 이용된 동일한 베이스 상태로부터 다시 동일한 PCR을 확장할 것이다(단계 365). 그 후, 플랫폼 에이전트(320)는 TPM(325)로부터 (AIK를 이용하여 TPM(325)에 의해 서명된) PCR의 서명된 값들을 요청하고(단계 370) 수신한다(단계 375). 그 후, 제2 챌린저(310)는 제2 챌린저가 수신했던 플랫폼 구성을 검증할 수 있다(단계 385). 제1 챌린저(305)와 제2 챌린저(310) 양쪽 모두가 베이스 상태로부터이지만 자신들의 측정값들을 이용하여 독립적으로 계산되는 자신들의 플랫폼 구성 데이터를 수신하였기 때문에 도 3에 도시된 절차들은 도 2의 통상적인 절차에서 설명된 문제들을 회피할 수 있다.
도 4는 종래 기술과 본 발명을 비교한 것으로서, 이에 의해, 서로 다른 확장 상태들이 서로 다른 챌린저들에 대해 구현된다. 도 4에 도시된 바와 같이, 시스템은 기동(405)을 완료하고 베이스 상태(410)에 도달한 것으로 도시되어 있다. 종래 기술에서는, 제1 애플리케이션이 로딩된 다음 챌린저에 의해 검증되면, 시스템 상태(415)가 제1 애플리케이션의 로딩을 반영하도록 변경된다. 다음, 제2 애플리케이션(425)이 로딩되고, 다른 챌린저에 의해 검증되는 것이 필요한 경우, 시스템 상태(420)가 이때 베이스 상태(410)로부터가 아닌 시스템 상태(415)로부터의 변경을 반영할 것이다.
본 발명에 따르면, 서로 다른 챌린저들에 대하여 할당된 PCR들(또는 가상 PCR들)이 모두 베이스 상태로부터 확장될 것이기 때문에, 모든 챌린저들은 챌린저들이 특별히 검증할 필요가 있는 애플리케이션들 로딩의 순 효과만을 이용하여 자신들의 목표 상태를 검증할 것이다. 이 예에서는, 2개의 이러한 챌린저들, 챌린저 1 및 챌린저 2가 나타나 있으며, 이들 모두는 베이스 상태(410)로부터 독립적으로 확장된 자신들의 유도 목표 상태들(챌린저 1에 대하여 유도된 상태(425)와 챌린저 2에 대하여 유도된 상태(430))을 검증한다.
본 발명의 제1 실시예에 따르면, TPM은 시스템의 리부트 동안에 PCR 값들을 자신들의 디폴트 값으로 리세트한다. 여기서 언급된 시스템은 퍼스널 컴퓨터(PC), 개인 휴대 정보 단말기(PDA), 내장형 시스템, 모바일 폰, 내장형 시스템을 가진 주변기기, 네트워크 요소들 및 다른 TCG 기술들, 특히 TPM 또는 등가의 엔티티들의 이용에 의해 가능하게 되거나 또는 이용을 가능하게 하는 기능들과 서비스들이 설치된 다른 플랫폼들과 같은 임의의 플랫폼이다. PCR 값들은 TPM의 알려진 베이스 상태에 대하여 보고된다. TPM의 이 베이스 상태는 TPM에 바람직하게 저장되고 새로운 애플리케이션이 측정되어야 할 때마다 언제든지 이용될 수 있다. TPM의 베이스 상태는 시스템 부트 프로세스가 완료될 때의 플랫폼 상태를 나타낼 수 있으며, 각각의 애플리케이션에 대한 상태는 이 베이스 상태에 대하여 계산된다.
TPM의 베이스 상태는 시스템에 대한 베이스 상태와 다른 개념이다. 본 발명에 따르면, 현재의 TPM들에 대한 추가적인 기능들은, 이 기능들이 부트업 시에 PCR 값 모두를 리세트시키지 않고 그 대신에 '성공적인 부트업 시의 TPM의 상태'를 'TPM의 베이스 상태'로서 나타낼 수 있는 특정값들을 갖고 TPM 자체 내부의 차폐된 비휘발성 메모리에 이러한 값들을 저장하도록 정의된다. 이러한 비휘발성 메모리는 부트업시 다시 리세트되는 PCR과 다르다는 것을 주지한다. TPM의 베이스 상태는 TPM을 하우징하는 시스템의 성공적인 부트업시 TPM의 상태를 나타내는 값이기 때문에, 이러한 베이스 상태는 시스템 자체의 '클린(clean)' 상태를 간접적으로 나타낼 수 있다. 또한, 이러한 TPM 베이스 상태는 비휘발성이며, PCR들의 확장 동작들에 대한 베이스 상태로서 기능하도록 부트업시에 되돌려질 수 있다. 추가적으로 차폐된(즉, 보호된), 비휘발성 메모리는 TPM 내부의 베이스 상태, 및 또한 현재의 상태가 시스템의 베이스 상태로부터 계산되어야 함을 나타내는 전송 제어 프로토콜(TCP) 소프트웨어 스택(TSS)으로부터의 표시를 저장하는데 필요하다.
TSS는 TPM의 내부를 제외한 외부에서 또는 (플랫폼 OS와 같은) 플랫폼 자체 또는 플랫폼의 에이전트(즉, 도 3에서의 플랫폼 에이전트(320))의 제어 하에서 발생하는 검증 뿐만 아니라 무결성 측정 및 보고를 위한 이러한 절차(예를 들어, 도 3에 도시된 단계들 330, 335, 340, 345 및 350)의 개시 및 제어를 가능하게 하는 소프트웨어 스택이다.
제1 실시예에 따르면, TPM 베이스 상태는 TPM 자체에 안전하게 저장되며, 부트업시 TSS를 통하여 TPM의 외부 즉, 플랫폼 에이전트 또는 플랫폼 OS에 대해 알려져, 이에 의해 챌린저들은 '이러한 TPM 베이스 상태'를, 챌린저가 검증할 필요가 있는 애플리케이션들의 무결성 측정들이 구성될 수 있는 기준 베이스 상태로서 이용할 수 있다. (TPM이 포함하는 PCR들의 갯수와 동일한) 고정된 양의 메모리 용량만이 TPM에 요구된다. 이 알려진 베이스 상태는 새로운 애플리케이션이 시스템에 의해 로딩될 때마다 언제든지 이용됨으로써, 무결성 측정들이 이들이 의도되었던 방식으로 동작할 수 있게 한다. 예를 들어, TPM이 X개의 PCR들을 갖는 경우, 또한 X 개의 'TPM 베이스 상태들' - X개의 PCR들 각각에 대하여 각각 하나의 TPM 베이스 상태 - 이 있다. 저장된 TPM 베이스 상태들은 각각의 PCR들을 확장하는데 이용되며, 각각이 특정의 로딩된 애플리케이션의 무결성을 측정하는데 할당된다. 따라서, 많아야 X개의 서로 다른 애플리케이션들 로딩의 무결성이 이러한 방식으로 추적되고 측정될 수 있다.
본 발명의 제2 실시예에 따르면, 시스템이 가질 수 있는 PCR들의 갯수에 대해 고정된 크기 제약이 없다. 그러나, 실제적으로, 대부분의 구현예들에서의 갯수는 대략 16개의 PCR들이다. PCR 식별 번호들의 면에서의 확장 능력(PCR 어드레스는 0 내지 232-l의 범위일 수 있으며, 230보다 큰 값들은 추후 이용을 위하여 예비할당됨)은 TPM 상에서 물리적으로 존재하지 않지만 사실상 가상적인 가상 PCR들의 개념을 생성하는데 이용될 수 있다. 이들 가상 PCR 컨텐츠는 TPM 자체 상에 또는 외부 스토리지 상에 암호화된 데이터로서 저장될 수 있다. 이들 가상 PCR 값들의 컨텐츠들은 다른 PCR 값들로부터만 확장될 수 있다. 이것은 어떤 PCR 값들이 확장될 수 있는지에 기초하여 애플리케이션들이 베이스 상태를 정의할 수 있게 한다. 각각의 애플리케이션은 애플리케이션이 무결성 측정들을 수행하는데 이용할 수 있는 가상 PCR 번호(들)을 바람직하게 제공받는다. 이것은 잘 알려진 인터넷 애플리케이션들에 대한 포트 번호들의 할당과 어느 정도 유사하게 애플리케이션들에 대한 PCR 번호들의 할당을 가능하게 한다.
따라서, 제2 실시예에 따르면, 플랫폼이 생성할 수 있는 암호화되고 보호된 스토리지 공간이 하드웨어 구현 PCR들에 대한 대용으로서 TPM의 암호 기능에 이용된다. PCR들에 예비 할당된 어드레스 공간은 232의 정도로 매우 크기 때문에 단지 PCR에 대한 대용으로서 (랜덤 액세스 메모리(RAM)와 같은) 플랫폼 시스템에서의 임의의 암호적으로 보호되는 메모리 요소를 지정하기 위해 어드레스 공간을 이용할 수 있다. 이 방식으로, 실제 하드웨어 PCR들 보다 훨씬 더 많은 이러한 가상 PCR들을 가질 수 있다. 따라서, 또한 훨씬 더 많은 애플리케이션 로딩들 및 다른 '측정 가치있는' 이벤트들의 무결성을 추적하기 위해 훨씬 더 많은 이러한 가상 PCR들을 이용할 수 있다.
본 발명의 제3 실시예에 따르면, 모든 PCR 컨텐츠는 시스템 기동시 리세트된다. 상술한 제2 실시예에서와 같이, 많은 가상 또는 실제 PCR들이 있다면, 애플리케이션에 할당되는 PCR(들)은 초기화된 상태로부터 직접 바람직하게 계산된다. 이것은 애플리케이션들에 대한 고정된 PCR 할당들을 필요로 하지만 베이스 상태가 저장될 것을 필요로 하지 않는다.
본 발명의 제3 실시예에 따르면, 시스템에서 복수의 실제 또는 가상 PCR들을 갖고 있는 경우, PCR들을 그룹들로 기본적으로 파티션할 수 있고, 그 후 PCR들의 각각의 그룹은 단지 하나의 애플리케이션에 대해 무결성 측정들을 추적하도록 예비 할당될 것이고, 그 외의 다른 애플리케이션의 측정들은 특정 애플리케이션이 할당된 그룹에 속하지 않는 임의의 실제 또는 가상 PCR들에 기록될 수 없다. 이러한 방식으로, 심지어 모든 PCR들이 리세트되고, 어느 것이 무결성 측정들의 이력을 구성하는지로부터 특수한 '베이스 상태'가 없는 경우에도, 한 PCR이 시스템의 포스트 부트, '클린 초기 상태'를 위한 상태 유지 공간(state-holding space)으로서 각각의 그룹으로부터 이용될 수 있고, 그 후, 동일한 그룹에서의 다른 PCR들이 미리 정해진 순차적인 방식으로 (동일한 애플리케이션의 상이한 버전들의 로딩과 같은) 이벤트들의 이력의 상세한 스냅샷들을 기록하는데 이용될 수 있다. 따라서, 모든 이벤트들을 동일한 PCR로 확장하는 것이 필요하지 않을 수 있으며, 다만 단지 개개의 PCR들을 실제적으로 확장함이 없이 이러한 확장들의 스냅샷들을 서로 다른 PCR들내에 기록하는 것이 필요할 수 있다. 또한, 매우 많은 수의 PCR들(모두 동일한 그룹에 속함)과 이들의 값 및 업데이트된 PCR들의 순서의 정보(knowledge)를 이용하여, 플랫폼과의 그 특정 애플리케이션들의 이력에만 적용가능한 그 그룹에 속하는 PCR들 각각에 스냅샷들이 유지되어 있는 무결성 측정 다이제스트들의 이력 로그를 생성할 수 있다.
도 5는 이러한 PCR 구성을 나타내며, 여기서, 애플리케이션 1과 애플리케이션 2에 대한 PCR들이 처분가능하다. PCR 컨텐츠는 애플리케이션이 측정될 필요가 있을 때마다 리세트될 수 있고 PCR 컨텐츠는 초기화된 상태로부터 확장될 것이다. 애플리케이션에 대하여 계산되는 PCR 값들과 함께, 오퍼레이팅 시스템 및 드라이버들에 할당되는 PCR들의 컨텐츠는 시스템의 무결성을 검증하기 위해 챌린저에게 전송될 수 있다.
위에서 설명된 3개의 모든 실시예들은 플랫폼 상태가 유저의 프라이버시에 손상을 줌이 없이 가정된 것으로 되는지를 검증하는데 있어 챌런저를 보조한다.
3개의 모든 실시예들은 또한 기준 무결성 메트릭(RIM) 인증서의 이용으로 확대될 수 있다. 통상의 RIM 인증서는 모바일 폰들에 대한 부트업 프로세스에 스테이트먼트를 제공하기 위한 특정 방법으로서 정의된다. 통상적인 RIM 인증서는 시스템이 부트업 후에 획득해야 하는 기준 상태에 대한 스테이트먼트를 포함한다. 부트업 후, RIM 인증서에 특정된 상태와 동일한 상태에 도달하였던 것으로 시스템이 판정한 경우, 시스템은 스테이트먼트의 SHA 해시 연산의 값을 포함하도록 자신의 PCR0(제1 PCR)를 업데이트할 것을 TPM에 요청하며, 스테이트먼트는 또한 검증되어진 획득 상태를 기술한다.
본 발명에 따르면, 기준 베이스 상태(RBS) 인증서가 이용된다. 모든 애플리 케이션들에 공통적으로 적용가능한 플랫폼의 OS의 오직 단일의 공통 포스트 부트업 상태에 대한 스테이트먼트를 제공할 수 있는 통상적인 RIM 인증서와 달리, 새로운 RBS 인증서는 애플리케이션 특정(application-specific) 기준 베이스 상태들에 대한 스테이트먼트를 제공하는데 이용된다. 개념에 있어서 이러한 차이는 또한 RBS 인증서를 이용하는 시스템에 대하여, 플랫폼이 임의의 주어진 시간에 복수의 서로 다른 RBS 인증서를 수용할 수 있고 각각의 인증서가 서로 다른 애플리케이션들 또는 애플리케이션 그룹들에 대한 베이스 상태를 특정한다는 점을 가져온다. 이것은 단지 RIM 인증서를 지원하여, 이에 의해 임의의 주어진 시간에 플랫폼이 하나의 RIM 인증서와만 동작할 수 있는 시스템과 대비된다. 또한, 복수의 RBS 인증서를 가질 수 있으며, 각각의 인증서는 많은 서로 다른 애플리케이션들의 (로딩과 같은) 이벤트들에 대한 기준 베이스 상태를 특정하도록 조정되며, 각각이 동시 시간 기준 상에서 애플리케이션 특정 베이스 상태 기준화를 위해 플랫폼에 의해 수용되어 이용된다. PCR들의 면에서, 각각의 RBS 인증서는 인증서에 전용되는 하나 이상의 PCR(실제 PCR 또는 가상 PCR)을 필요로 할 것이다. 각각의 RBS 인증서 당 이러한 전용 PCR은 플랫폼 OS가 시스템의 실제 상태와 베이스 상태 사이의 검사의 검증 또는 비검증 상태에 대한 정보를 나타내도록 구성시킨 스테이트먼트의 해시값을 기록하는데 이용될 것이다. RBS 인증서에 포함된 상태 관련 스테이트먼트에 나타낸 베이스 상태와 시스템의 실제 상태가 동일한지의 플랫폼 에이전트에 의한 검증시 해시 값이 TPM의 도움으로 기록될 것이다.
이러한 스테이트먼트의 일례는 "실제 시스템 상태와 베이스 상태가 동일한 것으로 검증됨"일 수 있다. RBS 인증서에 대한 전용 PCR에 이때 기록된 이러한 스테이트먼트의 해시는 그 전용 PCR 뿐만 아니라 할당된 애플리케이션 또는 애플리케이션 그룹들의 무결성 측정 검증에 이용될 수 있는 임의의 다른 PCR들에 대한 추가의 확장 동작들에 시작점을 제공할 수 있다. RBS 인증서가 또한 구성되어진 이러한 '상태 검사 스테이트먼트'의 해시 값을 포함하고 있음을 주지한다. 따라서, 시스템 상태가 베이스 상태와 매칭하는지를 나타내도록 플랫폼 OS에 의해 구성되는 스테이트먼트 상에서 수행된 해시 연산의 결과와, 동일한 RBS 인증서의 다른 부분에 포함되거나 또는 다른 RBS 인증서에 포함된 동일한 스테이트먼트의 해시 값을 비교하여, 플랫폼 OS는 외부적으로 검증가능한 시작점 값으로부터, 특정 애플리케이션들 또는 애플리케이션 그룹들에 대한 무결성 측정 다이제스트 스토리지에 할당되는 PCR들을 확장하는 수단을 제공받는다. 또한, 그 값은 연관된 RBS 인증서에 나타낸 베이스 상태와 시스템의 실제 상태 사이의 검사에 관한 스테이트먼트의 SHA-1 해시이다.
RIM 인증서는 코어 OS 소프트웨어와, 버전 번호와 같이 이러한 OS에 대한 관련 정보의 무결성 메트릭에 대한 정보를 전달한다. 그 후, 인증서 내에 포함된 무결성 기준 값들이 실제 측정값들에 대하여 검사된 후, 플랫폼 TPM의 특정 PCR, 즉, PCR0이 RIM 인증서에 대한 "검사 또는 비검사" 스테이트먼트를 전달하도록 할당된다.
본 발명에 의해 이용되는 베이스 상태들은 여러 다른 인증서들에 포함된 스테이트먼트들에 대하여 비교될 수 있는 서로 다른 '상태 검사 스테이트먼트들'을 포함할 수 있다. 이들 인증서 각각은 서로 다른 기준 상태들에 대한 정보를 포함할 수 있고 각각이 특정 애플리케이션 또는 애플리케이션 그룹들 또는 다른 환경에 속한다.
도 6은 제1 챌린저(605), 제2 챌린저(610), 및 플랫폼 에이전트(620)와 TPM(625)과 RBS 인증서(630)를 포함한 유저 장치(615)를 포함하는 시스템(600)에 의해 실시되는 TCG 절차를 나타낸다. 도 6에 나타낸 바와 같이, 제1 챌린저(605)는 제1 챌린저(605)가 무결성을 검증하는데 관심이 있는 로딩된 애플리케이션에 적용가능한 베이스 상태에 의해 특정된 시작 구성으로부터 계산되는 플랫폼 구성을 얻도록 플랫폼 에이전트(620)에 커맨드를 발행할 수 있다(단계 635). 그 후, 플랫폼 에이전트(620)는 제1 챌린저(605)가 무결성 상태를 검증하기를 원하는 어떤 애플리케이션에 적용가능한 RBS 인증서를 검사하도록 TPM(625)에 커맨드를 발행한다(단계 640). TPM(625)은 TPM(625)이 제어하는 인증서 리포지토리로부터 RBS 인증서(630)를 얻도록 커맨드를 요청(oblige) 및 발행한다(단계 645). TPM(625)은 또한 서명된 RBS 인증서(630)를 얻는다(단계 650). 그 후, 플랫폼 에이전트(620)는 검증 및 확장 동작을 수행하도록 TPM(625)에 커맨드를 발행한다(단계 655). 이 동작에서, TPM(625)은 TPM(625)에 의해 제어되고 제1 챌린저(605)에 대하여 무결성이 검증되고 있는 애플리케이션에 대하여 특정된 특정 PCR(실제 PCR 또는 가상 PCR)을 확장하지만, 시스템의 상태와 (RBS 인증서에 나타나 있는) 베이스 상태가 동일함을 검증한 후에 플랫폼 에이전트(620)가 구성한 스테이트먼트의 해시가 RBS 인증서에 포함된 해시값과 동일한 것임을 제1 챌린저(605)가 검증한 후에만 확장한다. 그 후, TPM(625)은 AIK를 이용하여 PCR 값을 서명하고 그 PCR 값을 플랫폼 에이전트(620)에 전송한다(단계 660). 그 후, 플랫폼 에이전트(620)는 서명된 PCR 값들을 포함한 플랫폼 구성 정보를 제1 챌린저(605)에 전송할 수 있다(단계 665). 그 후, 제1 챌린저(605)는 제1 챌린저가 플랫폼 에이전트(620)로부터 수신했던 플랫폼 구성 데이터를 이용하여, 제1 챌린저가 관심이 있는 애플리케이션이, RBS 인증서에 나타낸 정확한 베이스 시스템 상태로부터 애플리케이션들에 손상을 줌이 없이 정확하게 로딩되었는지를 검증할 수 있다(단계 670).
다른 챌린저(즉, 제2 챌린저(610))는, 그 제2 챌린저가 관심이 있는 애플리케이션의 무결성을 검증하기를 원하는 경우, 동일한 방식으로, (단계 680, 단계 692 및 단계 694를 수행하는) 플랫폼 에이전트(620)와 (단계 685, 단계 690 및 단계 694를 수행하는) TPM(625)의 지원을 받아서 그러나 상이한 RBS 인증서 - 이 RBS 인증서는 제2 챌린저(610)가 관심이 있는 애플리케이션에 특정한 것임 - 를 이용하며 본질적으로 동일한 절차(단계 675 및 단계 698)를 수행할 수 있다.
도 6은 제안된 RBS 인증서를 이용한 제2 실시예의 확대예를 나타낸다. 가상 PCR들은 확장될 필요가 있는 실제 무결성 측정들을 저장하지 않고 모바일 신뢰 모듈(mobile trust module; MTM)에서의 RIM 인증서들의 현재 이용에서와 같이 '검사' 또는 '비검사'의 스테이트먼트들을 저장함으로써 베이스 상태에 대한 정보를 저장하는데 이용된다. PCR을 일방적으로 확장하는 대신에, (즉, 시뮬레이션된 확장 결과가 RBS 인증서에 포함된 상태를 검사하는 경우 PCR을 확장하는) 다른 커맨드가 이용되어야 함을 주지한다. 또한, PCR에 확장된 값은 실제 측정 결과가 아니고, 실 제 확장과 RBS 인증서에 포함된 상태 정보의 비교가 행해졌을 경우에 '검사' 또는 '비검사' 이벤트가 발생했는지를 기술하는 스테이트먼트이다.
도 6에는 서로 다른 챌린저들이 챌린저 특정 구성 검증의 검증을 위하여 공통의 단일 RBS 인증서 또는 서로 다른 RBS 인증서들 - 특정 챌린저 각각에 대해 하나의 인증서 - 이 이용될 수 있음을 주지한다.
표준에 의해 정의되지 않는 시스템의 상태를 요청하기 위해 원격 엔티티에 의해 이용되는 절차에서의 특정 양태들이 존재한다. 이러한 한 양태는 원격 엔티티가 측정들에 대하여 어떻게 요청할 수 있는지이다.
도 7은 마스터 리스트와 서브리스트를 이용한 일 실시예에 대한 블록도를 나타낸다. 요청자는 마스터 리스트로부터 1 이상의 엔티티들을 선택한 다음, 요청자가 측정들을 수신하기를 원하는 서브리스트로부터 1 이상의 요소들을 선택함으로써 요청자가 필요로 하는 정확한 측정들을 식별한다. 서브리스트가 특정되지 않으면, 마스터 리스트에서의 모든 엔티티들에 대한 측정값들이 요청자에게 전송된 것으로 추정될 수 있다. 요청은 요청[x][y] 형태일 수 있으며, 여기서, x는 마스터 리스트에 대한 식별 정보를 나타내며, y는 서브리스트에서의 요소들을 식별한다. 이전에 언급한 바와 같이, y는 요청 구조에서의 선택적 요소이다. 이 요청은 마스터 리스트와 서브리스트들의 요소들을 전달하기 위해 확장성 생성 언어(Extensible Markup Language; XML)와 같은 언어들의 이용을 포함하는 임의의 메카니즘을 이용하여 행해질 수 있다.
아래 도시된 XML 예는 인터넷 익스플로러(Internet Explorer) 및 미디어 플 레이어 애플리케이션(Media Player Application)에 대한 측정값들을 요청하는데 이용된다.
Figure 112008080338835-PCT00001
개시된 실시예에 기초하여, 가상 PCR 번호들이 애플리케이션들에 할당된다. 이들 값은 임의의 바람직한 식별자(예를 들어, 글로벌 단일 식별자(globally unique identifier; GUID) 또는 범용 단일 식별자(universally unique identifier; UUID) 등)이며, TPM과 실제 PCR 할당값 간의 매핑 테이블이 TPM 메모리에 바람직하게 저장된다. 이 시나리오에서, PCR 값들을 요청하는 애플리케이션은 애플리케이션에 할당된 PCR 값들을 알지 못하며 복수의 플랫폼들에 걸쳐 유효한 고유 식별자를 이용하여 요청을 수행한다.
위에서 설명된 방법들과 관련하여, 도 8은 TPM과 가상 PCR들을 갖는 유저 장치 시스템이 챌린저에 대한 플랫폼 구성 무결성의 검증에 데이터를 제공하는데 어떻게 이용될 수 있는지를 나타낸다. 도 8은 챌린저(805), 및 플랫폼 에이전트(815)와 TPM(820)과 가상 PCR(825)을 포함한 유저 장치(810)를 포함하는 시스템(800)에 서 실시되는 TCG 절차를 나타낸다. 유저 장치 시스템이 232개 정도로 가상 PCR들을 가질 수 있음을 주지한다.
도 8에 도시된 바와 같이, 챌린저(805)는 플랫폼 무결성의 검증에 이후에 이용될 플랫폼 구성 데이터를 얻을 것을 플랫폼 에이전트(815)에 요청한다. 플랫폼 에이전트(815)는 기준 베이스 상태로부터 PCR을 확장하도록 TPM(820)에 커맨드를 발행한다(단계 835). 플랫폼 에이전트(815)는 TPM(820)이 확장하기를 플랫폼 에이전트가 원하는 PCR이 물리적 PCR인지 또는 가상 PCR인지를 반드시 특정해야 할 필요가 있는 것은 아니다. 그 후, TPM(820)은 가상 PCR의 값을 확장하고, TPM(820) 자체 내에 저장된 암호 키 또는 TPM의 외부에 저장되지만 TPM(820) 자체 내에 저장된 키에 의해 보호되는 키를 이용하여, 가상 PCR(825)을 TPM의 새로운 확장값으로 암호화한다(단계 840). 플랫폼 에이전트(815)는 이후에 TPM(820)으로 하여금 PCR 값을 서명하도록 명령하고 그 PCR 값을 플랫폼 에이전트(815)에 전송한다(단계 845). 그 후, TPM(820)은 가상 PCR(825)을 액세스하여, 가상 PCR(825)로부터 암호화된 PCR 값을 얻는다(단계 850 및 단계 855). 그 후, TPM은 암호화된 가상 PCR 값을 복호화한다(단계 860). 그 후, TPM(820)은 복호화된 가상 PCR 값을 서명하고 (챌린저(805)가 가진 키와 다른 키를 이용하여) 가상 PCR 값을 재암호화하며, 가상 PCR 값을 플랫폼 에이전트(815)에 전송한다(단계 865). 플랫폼 에이전트(815)는 가상 PCR(825)로부터의 데이터를 포함한 플랫폼 구성 데이터를 작성하고, 그 플랫폼 구성 데이터를 챌린저(805)에 전송한다(단계 870). 그 후, 챌린저(805)는 유저 장 치(805)의 무결성 상태(또는 플랫폼 구성의 상태)를 검증하기 위해 수신된 플랫폼 구성 데이터를 이용한다(단계 875).
[실시예들]
1. 신뢰된 플랫폼 모듈(TPM), 플랫폼 에이전트 및 기준 베이스 상태(RBS) 인증서를 갖는 유저 장치를 포함하는 컴퓨터 시스템에서, 방법은 챌린저가 무결성을 검증하는데 관심이 있는 로딩된 애플리케이션에 적용가능한 베이스 상태에 의해 특정되는 시작 구성으로부터 계산되는 플랫폼 구성을 얻기 위해 챌린저가 플랫폼 에이전트에 커맨드를 발행하는 단계를 포함한다.
2. 실시예 1의 방법은, 챌린저가 무결성을 검증하는데 관심이 있는 애플리케이션에 적용가능한 RBS 인증서를 검사하기 위해 플랫폼 에이전트가 TPM에 커맨드를 발행하는 단계와; TPM이 베이스 상태를 나타내는 서명된 RBS 인증서를 획득하는 단계와; 검증 및 확장 동작을 수행하기 위해 플랫폼 에이전트가 TPM에 커맨드를 발행하는 단계 - 이 단계에 의해 TPM은 TPM에 의해 제어되고 챌린저에 대하여 무결성이 검증되고 있는 애플리케이션에 특정되는 특정 플랫폼 구성 레지스터(platform configuration register; PCR)를 확장함 - 를 더 포함한다.
3. 실시예 2의 방법은, 시스템의 상태와 베이스 상태가 동일하다고 검증하는 단계와, 스테이트먼트의 해시가 RBS 인증서에 포함되어 있는 해시 값과 동일하다고 플랫폼 에이전트가 검증하는 단계를 더 포함한다.
4. 실시예 3의 방법은, TPM이 입증 식별 키(AIK)를 이용하여 PCR 값을 서명 하는 단계와; TPM이 서명된 PCR 값을 플랫폼 에이전트에 전송하는 단계와; 플랫폼 에이전트가 서명된 PCR 값을 포함한 플랫폼 구성 정보를 챌린저에 전송하는 단계를 더 포함한다.
5. 실시예 1 내지 실시예 4 중 어느 한 실시예의 방법은, RBS 인증서에 나타낸 정확한 베이스 시스템 상태로부터 애플리케이션에 손상을 줌이 없이 애플리케이션이 정확하게 로딩되었는지를 챌린저가 검증하는 단계를 더 포함한다.
6. 유저 장치는 1 이상의 기준 베이스 상태(RBS) 인증서와; 챌린저가 무결성을 검증하는데 관심이 있는 로딩된 애플리케이션에 적용가능한 베이스 상태에 의해 특정된 시작 구성으로부터 계산되는 플랫폼 구성을 얻기 위해 챌린저로부터 제1 커맨드를 수신하도록 구성되는 플랫폼 에이전트와; 베이스 상태를 나타내는 서명된 RBS 인증서를 획득하도록 챌린저가 무결성을 검증하는데 관심이 있는 로딩된 애플리케이션에 적용가능한 RBS 인증서를 검사하기 위해 제2 커맨드를 수신하도록 구성되는 신뢰된 플랫폼 모듈(TPM) - 플랫폼 에이전트는 검증 및 확장 동작을 수행하기 위해 TPM에 제3 커맨드를 발행함으로써 이에 의해 TPM은 TPM에 의해 제어되고 챌린저에 대하여 무결성이 검증되고 있는 애플리케이션에 특정되는 특정 플랫폼 구성 레지스터(PCR)를 확장함 - 을 포함한다.
7. 실시예 6의 유저 장치에서, 시스템 상태와 베이스 상태가 동일한 것으로 검증되는 경우, 플랫폼 에이전트는 스테이트먼트의 해시가 RBS 인증서에 포함된 해시 값과 동일하다고 검증한다.
8. 실시예 7의 유저 장치에서, TPM은 입증 식별 키(AIK)를 이용하여 PCR 값 을 서명하고 서명된 PCR 값을 플랫폼 에이전트에 전송한다.
9. 실시예 8의 유저 장치에서, 플랫폼 에이전트는 서명된 PCR 값을 포함한 플랫폼 구성 정보를 챌린저에 전송한다.
10. 실시예 6 내지 실시예 9 중 어느 한 실시예의 유저 장치에서, 챌린저는 RBS 인증서에 나타낸 정확한 베이스 시스템 상태로부터 애플리케이션에 손상을 줌이 없이 애플리케이션이 정확하게 로딩되었는지를 검증한다.
11. 애플리케이션을 검증하기 위한 신뢰된 플랫폼 모듈(TPM)은 차폐된 비휘발성 메모리를 포함하며, 이 메모리는 복수의 플랫폼 구성 레지스터(PCR)를 저장하기 위한 제1 메모리 로케이션들 - TPM은 시스템 리부트 동안에 PCR들의 값들을 디폴트 값들로 리세트함 - 과; 시스템 부트 프로세스가 성공적으로 완료되는 경우 플랫폼 상태를 나타내는 복수의 베이스 상태를 저장하기 위한 제2 메모리 로케이션들 - 1 이상의 애플리케이션의 상태는 베이스 상태에 대하여 계산됨 - 을 포함한다.
12. 실시예 11의 TPM에서, 시스템은 퍼스널 컴퓨터(PC), 개인 휴대 정보 단말기(PDA), 내장형 시스템, 모바일 폰, 내장형 시스템을 가진 주변 기기, 네트워크 요소들, 및 신뢰된 계산 그룹(TCG) 기술들, 특히, TPM의 이용에 의해 가능하게 되거나 또는 이용을 가능하게 하는 기능들 및 서비스들이 설치된 다른 플랫폼을 포함하는 그룹으로부터 선택된다.
13. 신뢰된 플랫폼 모듈(TPM)과 플랫폼 에이전트를 가진 유저 장치를 포함하는 컴퓨터 시스템에서, TPM은 복수의 플랫폼 구성 레지스터(PCR)를 저장하는 차폐된 비휘발성 메모리를 가지며, 방법은, 제1 챌린저가 플랫폼 에이전트로부터의 특 정 베이스 상태로부터 계산되는 플랫폼 구성에 대한 요청을 전송하는 단계와; 플랫폼 에이전트가 제1 측정값을 가진 특정 베이스 상태로부터 TPM의 특정 플랫폼 구성 레지스터(PCR)를 확장하는 단계와; 플랫폼 에이전트가 TPM으로부터 특정 PCR의 서명된 값에 대하여 요청하는 단계와; TPM이 서명된 PCR 값을 플랫폼 에이전트에 전송하는 단계와; 제1 챌린저가 플랫폼 에이전트로부터 플랫폼 구성을 수신하는 단계와; 제1 챌린저가 플랫폼 구성 데이터와, 제1 챌린저가 자체적으로 계산하고 플랫폼 구성을 검증하는 값을 비교하는 단계를 포함한다.
14. 실시예 13의 방법은, 제2 챌린저가 특정 베이스 상태로부터 다시 계산되는 플랫폼 구성을 요청하고 수신하는 단계와; 플랫폼 에이전트가 제1 측정값과 다른 제2 측정값으로 특정 PCR을 확장하는 단계와; 플랫폼 에이전트가 TPM으로부터 특정 PCR의 서명된 값들을 요청하고 수신하는 단계와; 제2 챌린저가 자신이 수신한 플랫폼 구성을 검증하는 단계를 더 포함한다.
15. 실시예 14의 방법에서, 제1 및 제2 챌린저 양쪽 모두는, 베이스 상태로부터 독립적으로 계산되지만 자신들 자체의 측정값들을 가진 자신들의 플랫폼 구성 데이터를 수신한다.
16. 복수의 플랫폼 구성 레지스터(PCR)를 저장한 차폐된 비휘발성 메모리를 갖는 신뢰된 플랫폼 모듈(TPM)에서, 방법은, PCR들을 그룹으로 파티션하는 단계와; 애플리케이션에 대한 무결성 측정들을 추적하기 위해 PCR들의 각각의 그룹을 예비 할당하는 단계 - 다른 애플리케이션의 측정값들은 특정 애플리케이션이 할당된 그룹에 속하지 않은 임의의 PCR들에 기록될 수 없음 - 를 포함한다.
17. 실시예 16의 방법에서, 모든 PCR들이 리세트되는 경우, 각각의 그룹으로부터의 하나의 PCR을 시스템의 포스트 부트 '클린 초기 상태'를 위한 상태 유지 공간으로서 이용한다.
18. 실시예 17의 방법에서, 미리 정해진 순차적인 방식으로 이벤트들의 이력들의 상세한 스냅샷들을 기록하기 위해 그룹들에서의 다른 PCR들을 이용하는 단계를 더 포함한다.
19. 실시예 18의 방법에서, 이벤트들은 동일한 애플리케이션의 서로 다른 버전들의 로딩을 포함한다.
20. 실시예 18의 방법은, 개개의 PCR들을 실제로 확장함이 없이 PCR 확장들의 스냅샷을 서로 다른 PCR들 내에 기록하는 단계를 더 포함한다.
21. 신뢰된 플랫폼 모듈(TPM), 플랫폼 에이전트 및 가상 플랫폼 구성 레지스터(PCR)를 갖는 유저 장치를 포함하는 컴퓨터 시스템에서, 플랫폼 구성 무결성의 검증을 위한 플랫폼 구성 데이터를 챌린저에 제공하는 방법으로서, 이 방법은, 챌린저가, 플랫폼 무결성의 검증에 이후에 이용될 플랫폼 구성 데이터를 얻도록 플랫폼 에이전트에 요청하는 단계와; 기준 베이스 상태로부터 PCR을 확장하도록 플랫폼 에이전트가 TPM에 커맨드를 전송하는 단계와; TPM이 가상 PCR 값을 확장하는 단계와; TPM이 TPM 자체 내에 저장된 암호화 키 또는 TPM 외부에 저장되어 있지만 TPM 내에 저장된 키에 의해 보호되는 키를 이용하여 자신의 새로운 확장값으로 가상 PCR을 암호화하는 단계를 포함한다.
22. 실시예 21의 방법은, PCR의 값을 서명하고 서명된 PCR 값을 플랫폼 에이 전트에 전송하도록 플랫폼 에이전트가 TPM에 명령하는 단계와; TPM이 가상 PCR을 액세스하고 가상 PCR로부터 암호화된 PCR 값을 획득하는 단계와; TPM이 암호화된 가상 PCR 값을 복호화하는 단계를 더 포함한다.
23. 실시예 22의 방법은, TPM이 복호화된 가상 PCR 값을 서명하는 단계와; TPM이 챌린저가 가진 키와 다른 키를 이용하여 복호화된 PCR 값을 재암호화하는 단계와; TPM이 재암호화된 PCR 값을 플랫폼 에이전트에 전송하는 단계를 더 포함한다.
24. 실시예 23의 방법은, 플랫폼 에이전트가 가상 PCR로부터의 데이터를 포함한 플랫폼 구성 데이터를 작성하는 단계와; 플랫폼 에이전트가 작성된 데이터를 챌린저에 전송하는 단계와; 챌린저가 작성된 데이터를 이용하여 유저 장치의 무결성 상태 또는 플랫폼 구성의 상태를 검증하는 단계를 더 포함한다.
본 발명의 특징들 및 요소들이 바람직한 실시예들에서 특정 조합으로 설명되어 있지만, 각각의 특징 또는 요소는 바람직한 실시예들의 다른 특징들 및 요소들 없이 단독으로, 또는 본 발명의 다른 특징들 및 요소들을 갖고 또는 갖지 않고 여러 조합들로 이용될 수 있다. 본 발명에 제공된 본 방법들 또는 흐름도들은 범용 컴퓨터 또는 프로세서에 의한 실행을 위해 컴퓨터 판독가능 저장 매체에서 실체적으로 구현되는 컴퓨터 프로그램, 소프트웨어, 또는 펌웨어로 실행될 수 있다. 컴퓨터 판독가능 저장 매체들의 예들은 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 레지스터, 캐시 메모리, 반도체 메모리 장치, 내부 하드 디스크 및 착탈 가능 디스크와 같은 자기 매체, 자기 광학 매체, CD-ROM 디스크와 같은 광학 매체 및 디지털 다기능 디스크(DVD)를 포함한다.
예를 들어, 적절한 프로세스들은 범용 프로세서, 특수 목적 프로세서, 통상적인 프로세서, 디지털 신호 프로세서(DSP), 복수의 마이크로프로세서, DSP 코어와 관련된 1 이상의 마이크로프로세서, 컨트롤러, 마이크로컨트롤러, 응용 주문형 직접 회로(ASIC), 필드 프로그래밍가능 게이트 어레이(FPGA) 회로, 임의의 다른 유형의 집적 회로(IC), 및/또는 상태 머신을 포함한다.
소프트웨어와 관련된 프로세서는 무선 송수신 유닛(WTRU), 유저 장치(UE), 단말기, 기지국, 무선 네트워크 컨트롤러(RNC) 또는 임의의 호스트 컴퓨터에 이용하기 위한 무선 주파수 트랜시버를 구현하는데 이용될 수 있다. WTRU는 카메라, 비디오 카메라 모듈, 비디오폰, 스피커폰, 바이블레이션 장치, 스피커, 마이크로폰, 텔레비젼 트랜시버, 핸드 프리 헤드셋, 키보드, 블루투스® 모듈, 주파수 변조(FM) 무선 유닛, 액정 디스플레이(LCD) 표시 유닛, 유기 발광 다이오드 (OLED) 표시 유닛, 디지털 뮤직 플레이어, 미디어 플레이어, 비디오 게임 플레이어 모듈, 인터넷 브라우저, 및/또는 임의의 무선 근거리 통신 네트워크(WLAN) 모듈과 같이, 하드웨어 및/또는 소프트웨어에서 구현되는 모듈들과 결합하여 이용될 수 있다.

Claims (23)

  1. 신뢰된 플랫폼 모듈(TPM), 플랫폼 에이전트 및 기준 베이스 상태(RBS) 인증서를 갖는 유저 장치를 포함하는 컴퓨터 시스템에서의 방법으로서,
    챌린저가 무결성을 검증하는데 관심이 있는 로딩된 애플리케이션에 적용가능한 베이스 상태에 의해 특정되는 시작 구성으로부터 계산되는 플랫폼 구성을 얻기 위해 챌린저가 플랫폼 에이전트에 커맨드를 발행하는 단계와;
    챌린저가 무결성을 검증하는데 관심이 있는 애플리케이션에 적용가능한 RBS 인증서를 검사하기 위해 플랫폼 에이전트가 TPM에 커맨드를 발행하는 단계와;
    TPM이 베이스 상태를 나타내는 서명된 RBS 인증서를 획득하는 단계와;
    검증 및 확장 동작을 수행하기 위해 플랫폼 에이전트가 TPM에 커맨드를 발행하는 단계 - 이 단계에 의해 TPM은 TPM에 의해 제어되고 챌린저에 대하여 무결성이 검증되고 있는 애플리케이션에 특정되는 특정 플랫폼 구성 레지스터(platform configuration register; PCR)를 확장함 -
    를 포함하는 방법.
  2. 제1항에 있어서, 시스템의 상태와 베이스 상태가 동일하다고 검증하는 단계와, 스테이트먼트의 해시가 RBS 인증서에 포함되어 있는 해시 값과 동일하다고 플랫폼 에이전트가 검증하는 단계를 더 포함하는 방법.
  3. 제2항에 있어서,
    TPM이 입증 식별 키(AIK)를 이용하여 PCR 값을 서명하는 단계와;
    TPM이 서명된 PCR 값을 플랫폼 에이전트에 전송하는 단계와;
    플랫폼 에이전트가 서명된 PCR 값을 포함한 플랫폼 구성 정보를 챌린저에 전송하는 단계를 더 포함하는 방법.
  4. 제3항에 있어서, RBS에 나타낸 정확한 베이스 시스템으로부터 애플리케이션에 손상을 줌이 없이 애플리케이션이 정확하게 로딩되었는지를 검증하는 단계를 더 포함하는 방법.
  5. 1 이상의 기준 베이스 상태(RBS) 인증서와;
    챌린저가 무결성을 검증하는데 관심이 있는 로딩된 애플리케이션에 적용가능한 베이스 상태에 의해 특정된 시작 구성으로부터 계산되는 플랫폼 구성을 얻기 위해 챌린저로부터 제1 커맨드를 수신하도록 구성되는 플랫폼 에이전트와;
    베이스 상태를 나타내는 서명된 RBS 인증서를 획득하도록 챌린저가 무결성을 검증하는데 관심이 있는 로딩된 애플리케이션에 적용가능한 RBS 인증서를 검사하기 위해 제2 커맨드를 수신하도록 구성되는 신뢰된 플랫폼 모듈(TPM) - 플랫폼 에이전트는 검증 및 확장 동작을 수행하기 위해 TPM에 제3 커맨드를 발행함으로써 이에 의해 TPM은 TPM에 의해 제어되고 챌린저에 대하여 무결성이 검증되고 있는 애플리케이션에 특정되는 플랫폼 구성 레지스터(PCR)를 확장함 -
    을 포함하는 유저 장치.
  6. 제5항에 있어서, 시스템 상태와 베이스 상태가 동일한 것으로 검증되는 경우, 플랫폼 에이전트는 스테이트먼트의 해시가 RBS 인증서에 포함된 해시 값과 동일하다고 검증하는 것인 유저 장치.
  7. 제6항에 있어서, TPM은 입증 식별 키(AIK)를 이용하여 PCR 값을 서명하고 서명된 PCR 값을 플랫폼 에이전트에 전송하는 것인 유저 장치.
  8. 제7항에 있어서, 플랫폼 에이전트는 서명된 PCR 값을 포함한 플랫폼 구성 정보를 챌린저에 전송하는 것인 유저 장치.
  9. 제8항에 있어서, 챌린저는 RBS 인증서에 나타낸 정확한 베이스 시스템 상태로부터 애플리케이션에 손상을 줌이 없이 애플리케이션이 정확하게 로딩되었는지를 검증하는 것인 유저 장치.
  10. 애플리케이션을 검증하기 위한 신뢰된 플랫폼 모듈(TPM)로서,
    차폐된 비휘발성 메모리를 포함하며,
    상기 차폐된 비휘발성 메모리는, 복수의 플랫폼 구성 레지스터(PCR)를 저장하기 위한 제1 메모리 로케이션들 - TPM은 시스템 리부트 동안에 PCR들의 값들을 디폴트 값들로 리세트함 - 과;
    시스템 부트 프로세스가 성공적으로 완료되는 경우 플랫폼 상태를 나타내는 복수의 베이스 상태를 저장하기 위한 제2 메모리 로케이션들 - 1 이상의 애플리케이션의 상태는 베이스 상태에 대하여 계산됨 - 을 포함하는 것인 신뢰된 플랫폼 모듈.
  11. 제10항에 있어서, 시스템은 퍼스널 컴퓨터(PC), 개인 휴대 정보 단말기(PDA), 내장형 시스템, 모바일 폰, 내장형 시스템을 가진 주변 기기, 네트워크 요소들, 및 신뢰된 계산 그룹(TCG) 기술들, 특히, TPM의 이용에 의해 가능하게 되거나 또는 이용을 가능하게 하는 기능들 및 서비스들이 설치된 다른 플랫폼을 포함하는 그룹으로부터 선택되는 것인 신뢰된 플랫폼 모듈.
  12. 신뢰된 플랫폼 모듈(TPM)과 플랫폼 에이전트를 가진 유저 장치를 포함하는 컴퓨터 시스템에서의 방법으로서,
    TPM은 복수의 플랫폼 구성 레지스터(PCR)를 저장하는 차폐된 비휘발성 메모리를 가지며,
    상기 방법은,
    제1 챌린저가 플랫폼 에이전트로부터의 특정 베이스 상태로부터 계산되는 플랫폼 구성에 대한 요청을 전송하는 단계와;
    플랫폼 에이전트가 제1 측정값을 가진 특정 베이스 상태로부터 TPM의 특정 플랫폼 구성 레지스터(PCR)를 확장하는 단계와;
    플랫폼 에이전트가 TPM으로부터 특정 PCR의 서명된 값에 대하여 요청하는 단계와;
    TPM이 서명된 PCR 값을 플랫폼 에이전트에 전송하는 단계와; 제1 챌린저가 플랫폼 에이전트로부터 플랫폼 구성을 수신하는 단계와;
    제1 챌린저가 플랫폼 구성 데이터와, 제1 챌린저가 자체적으로 계산하고 플랫폼 구성을 검증하는 값을 비교하는 단계
    를 포함하는 방법.
  13. 제12항에 있어서, 제2 챌린저가 특정 베이스 상태로부터 다시 계산되는 플랫폼 구성을 요청하고 수신하는 단계와;
    플랫폼 에이전트가 제1 측정값과 다른 제2 측정값을 가진 특정 PCR을 확장하는 단계와;
    플랫폼 에이전트가 TPM으로부터 특정 PCR의 서명된 값들을 요청하고 수신하는 단계와;
    제2 챌린저가 자신이 수신한 플랫폼 구성을 검증하는 단계를 더 포함하는 방법.
  14. 제13항에 있어서, 제1 및 제2 챌린저 양쪽 모두는, 베이스 상태로부터 독립적으로 계산되지만 자신의 측정값들을 가진 자신들의 플랫폼 구성 데이터를 수신하 는 것인 방법.
  15. 복수의 플랫폼 구성 레지스터(PCR)를 저장한 차폐된 비휘발성 메모리를 갖는 신뢰된 플랫폼 모듈(TPM)에서의 방법으로서,
    PCR들을 그룹으로 파티션하는 단계와;
    애플리케이션에 대한 무결성 측정들을 추적하기 위해 PCR들의 각각의 그룹을 예비 할당하는 단계 - 다른 애플리케이션의 측정값들은 특정 애플리케이션이 할당된 그룹에 속하지 않은 임의의 PCR들에 기록될 수 없음 -
    를 포함하는 방법.
  16. 제15항에 있어서, 모든 PCR들이 리세트되는 경우, 각각의 그룹으로부터 하나의 PCR을 시스템의 포스트 부트 '클린, 초기 상태'를 위한 상태 유지 공간으로서 이용하는 것인 방법.
  17. 제16항에 있어서, 미리 정해진 순차적인 방식으로 이벤트들의 이력들의 상세한 스냅샷들을 기록하기 위해 그룹들에서의 다른 PCR들을 이용하는 단계를 더 포함하는 방법.
  18. 제17항에 있어서, 이벤트들은 동일한 애플리케이션의 서로 다른 버전들의 로딩을 포함하는 것인 방법.
  19. 제17항에 있어서, 개개의 PCR들을 실제로 확장함이 없이 PCR 확장들의 스냅샷을 서로 다른 PCR들 내에 기록하는 단계를 더 포함하는 방법.
  20. 신뢰된 플랫폼 모듈(TPM), 플랫폼 에이전트 및 가상 플랫폼 구성 레지스터(PCR)를 갖는 유저 장치를 포함하는 컴퓨터 시스템에서, 플랫폼 구성 무결성의 검증을 위한 플랫폼 구성 데이터를 챌린저에 제공하는 방법으로서,
    챌린저가, 플랫폼 에이전트가 플랫폼 무결성의 검증에 이후에 이용될 플랫폼 구성 데이터를 얻도록 요청하는 단계와;
    기준 베이스 상태로부터 PCR을 확장하도록 플랫폼 에이전트가 TPM에 커맨드를 전송하는 단계와;
    TPM이 가상 PCR 값을 확장하는 단계와;
    TPM이 TPM 자체 내에 저장된 암호화 키 또는 TPM 외부에 저장되어 있지만 TPM 내에 저장된 키에 의해 보호되는 키를 이용하여 자신의 새로운 확장값으로 가상 PCR을 암호화하는 단계를 포함하는 플랫폼 구성 데이터의 제공 방법.
  21. 제20항에 있어서,
    PCR의 값을 서명하고 서명된 PCR 값을 플랫폼 에이전트에 전송하도록 플랫폼 에이전트가 TPM에 명령하는 단계와;
    TPM이 가상 PCR을 액세스하고 가상 PCR로부터 암호화된 PCR 값을 획득하는 단계와;
    TPM이 암호화된 가상 PCR 값을 복호화하는 단계
    를 더 포함하는 플랫폼 구성 데이터의 제공 방법.
  22. 제21항에 있어서,
    TPM이 복호화된 가상 PCR 값을 서명하는 단계와;
    TPM이 챌린저가 가진 키와 다른 키를 이용하여 복호화된 PCR 값을 재암호화하는 단계와;
    TPM이 재암호화된 PCR 값을 플랫폼 에이전트에 전송하는 단계
    를 더 포함하는 것인 플랫폼 구성 데이터의 제공 방법.
  23. 제22항에 있어서,
    플랫폼 에이전트가 가상 PCR로부터의 데이터를 포함한 플랫폼 구성 데이터를 작성하는 단계와;
    플랫폼 에이전트가 작성된 데이터를 챌린저에 전송하는 단계와;
    챌린저가 작성된 데이터를 이용하여 유저 장치의 무결성 상태 또는 플랫폼 구성의 상태를 검증하는 단계
    를 더 포함하는 플랫폼 구성 데이터의 제공 방법.
KR1020087028515A 2006-04-21 2007-04-23 신뢰된 컴퓨팅 무결성 측정 보고를 수행하는 장치 및 방법 KR101041543B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US79416506P 2006-04-21 2006-04-21
US60/794,165 2006-04-21

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020087030238A Division KR20090006876A (ko) 2006-04-21 2007-04-23 신뢰된 계산 무결성 측정 보고를 수행하는 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20080112404A true KR20080112404A (ko) 2008-12-24
KR101041543B1 KR101041543B1 (ko) 2011-06-17

Family

ID=38516167

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020087030238A KR20090006876A (ko) 2006-04-21 2007-04-23 신뢰된 계산 무결성 측정 보고를 수행하는 장치 및 방법
KR1020087028515A KR101041543B1 (ko) 2006-04-21 2007-04-23 신뢰된 컴퓨팅 무결성 측정 보고를 수행하는 장치 및 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020087030238A KR20090006876A (ko) 2006-04-21 2007-04-23 신뢰된 계산 무결성 측정 보고를 수행하는 장치 및 방법

Country Status (7)

Country Link
US (1) US8566606B2 (ko)
EP (1) EP2013808B1 (ko)
JP (1) JP5038396B2 (ko)
KR (2) KR20090006876A (ko)
CN (1) CN101473329B (ko)
ES (1) ES2664413T3 (ko)
WO (1) WO2007124091A1 (ko)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799447B2 (en) * 2006-10-18 2014-08-05 International Business Machines Corporation Notarizing packet traces
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
EP2183697A4 (en) * 2007-06-18 2014-12-03 Ericsson Telefon Ab L M SECURITY FOR SOFTWARE-DEFINED WIRELESS DEVICES
JP4956292B2 (ja) * 2007-06-25 2012-06-20 パナソニック株式会社 情報セキュリティ装置およびカウンタ制御方法
US9015454B2 (en) * 2008-05-02 2015-04-21 Hewlett-Packard Development Company, L.P. Binding data to computers using cryptographic co-processor and machine-specific and platform-specific keys
JP5178341B2 (ja) * 2008-06-23 2013-04-10 パナソニック株式会社 オプショナルなコンポーネントを伴うセキュアブートの方法
US8572692B2 (en) 2008-06-30 2013-10-29 Intel Corporation Method and system for a platform-based trust verifying service for multi-party verification
US8161285B2 (en) * 2008-09-26 2012-04-17 Microsoft Corporation Protocol-Independent remote attestation and sealing
US8732445B2 (en) 2008-10-10 2014-05-20 Panasonic Corporation Information processing device, information processing method, information processing program, and integrated circuit
US8738932B2 (en) * 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
US8732444B2 (en) 2009-02-18 2014-05-20 Panasonic Corporation Information processing device and information processing method
US9596989B2 (en) 2009-03-12 2017-03-21 Raytheon Company Networked symbiotic edge user infrastructure
RU2011148523A (ru) 2009-07-01 2013-08-20 Панасоник Корпорэйшн Способ защищенной загрузки и устройство защищенной загрузки
EP2348444B1 (en) * 2009-12-16 2014-03-19 Nxp B.V. Data processing apparatus
WO2011101538A1 (en) * 2010-02-16 2011-08-25 Nokia Corporation Method and apparatus to reset platform configuration register in mobile trusted module
GB2482652B (en) * 2010-05-21 2016-08-24 Hewlett Packard Development Co Lp Extending integrity measurements in a trusted device using a policy register
US9208318B2 (en) * 2010-08-20 2015-12-08 Fujitsu Limited Method and system for device integrity authentication
MY155582A (en) * 2011-01-13 2015-11-03 Mimos Berhad System and method to provide integrity measurement of a machine without tpm using trusted agent
US8855550B2 (en) 2011-01-14 2014-10-07 Covidien Lp Wireless relay module having emergency call functionality
US9495511B2 (en) 2011-03-01 2016-11-15 Covidien Lp Remote monitoring systems and methods for medical devices
US8903308B2 (en) 2011-01-14 2014-12-02 Covidien Lp System and method for patient identification in a remote monitoring system
US9020419B2 (en) 2011-01-14 2015-04-28 Covidien, LP Wireless relay module for remote monitoring systems having power and medical device proximity monitoring functionality
US8897198B2 (en) 2011-01-14 2014-11-25 Covidien Lp Medical device wireless network architectures
US20120324236A1 (en) * 2011-06-16 2012-12-20 Microsoft Corporation Trusted Snapshot Generation
US8930939B2 (en) * 2011-06-25 2015-01-06 International Business Machines Corporation Comparing system engram with product engram to determine compatibility of product with system
US9058190B2 (en) * 2011-06-25 2015-06-16 International Business Machines Corporation Comparing system engram with product engram to determine compatibility with system
US9014023B2 (en) 2011-09-15 2015-04-21 International Business Machines Corporation Mobile network services in a mobile data network
US8971192B2 (en) 2011-11-16 2015-03-03 International Business Machines Corporation Data breakout at the edge of a mobile data network
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
JP5980050B2 (ja) * 2012-08-29 2016-08-31 キヤノン株式会社 情報処理装置
AU2013315269A1 (en) 2012-09-13 2015-03-26 Covidien Lp Docking station for enteral feeding pump
US8782401B2 (en) * 2012-09-26 2014-07-15 Intel Corporation Enhanced privacy ID based platform attestation
US9152793B2 (en) * 2012-09-28 2015-10-06 Intel Corporation Methods, systems and apparatus to self authorize platform code
EP2918090A4 (en) * 2012-11-08 2016-06-29 Nokia Technologies Oy PARTIAL VIRTUALIZATION OF PCR BANKS IN A MOBILE TPM
US9747471B2 (en) * 2012-12-12 2017-08-29 Cisco Technology, Inc. Secure switch between modes
KR101717263B1 (ko) * 2013-03-06 2017-03-16 인텔 코포레이션 가상 머신들의 측정용 신뢰 루트
US9201642B2 (en) * 2013-03-15 2015-12-01 International Business Machines Corporation Extending platform trust during program updates
US10073966B2 (en) * 2013-04-29 2018-09-11 Sri International Operating system-independent integrity verification
USD746441S1 (en) 2013-09-13 2015-12-29 Covidien Lp Pump
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
US9652631B2 (en) 2014-05-05 2017-05-16 Microsoft Technology Licensing, Llc Secure transport of encrypted virtual machines with continuous owner access
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
US9608825B2 (en) * 2014-11-14 2017-03-28 Intel Corporation Trusted platform module certification and attestation utilizing an anonymous key system
US9519787B2 (en) 2014-11-14 2016-12-13 Microsoft Technology Licensing, Llc Secure creation of encrypted virtual machines from encrypted templates
JP6494373B2 (ja) 2015-03-31 2019-04-03 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、およびコンピュータプログラム
EP3495979A1 (de) * 2017-12-08 2019-06-12 Siemens Aktiengesellschaft Verfahren und bestätigungsvorrichtung zur integritätsbestätigung eines systems
EP3561709B1 (en) * 2018-04-25 2020-07-29 Siemens Aktiengesellschaft Data processing apparatus, system, and method for proving or checking the security of a data processing apparatus
US11017090B2 (en) 2018-12-17 2021-05-25 Hewlett Packard Enterprise Development Lp Verification of a state of a platform
RU2706873C1 (ru) * 2018-12-28 2019-11-21 Акционерное общество "Лаборатория Касперского" Система и способ проверки ЭЦП файла
US11372970B2 (en) * 2019-03-12 2022-06-28 Hewlett Packard Enterprise Development Lp Multi-dimensional attestation
CN111866044A (zh) * 2019-04-29 2020-10-30 华为技术有限公司 数据采集方法、装置、设备及计算机可读存储介质
US11360784B2 (en) 2019-09-10 2022-06-14 Hewlett Packard Enterprise Development Lp Integrity manifest certificate
EP3869367A1 (de) * 2020-02-18 2021-08-25 Siemens Aktiengesellschaft Computergestütztes verfahren zum speichern eines integritätsstatus, integritätsstatusvorrichtung und computerprogrammprodukt
CA3168340A1 (en) * 2022-07-20 2024-01-20 Jan Morava System and method for mitigation of intrusive electromagnetic fields

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963859B2 (en) * 1994-11-23 2005-11-08 Contentguard Holdings, Inc. Content rendering repository
US7480806B2 (en) 2002-02-22 2009-01-20 Intel Corporation Multi-token seal and unseal
JP3863447B2 (ja) 2002-03-08 2006-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 認証システム、ファームウェア装置、電気機器、及び認証方法
US7343493B2 (en) * 2002-03-28 2008-03-11 Lenovo (Singapore) Pte. Ltd. Encrypted file system using TCPA
US7165181B2 (en) * 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
GB2399906B (en) * 2003-03-22 2006-10-04 Hewlett Packard Development Co Method and system for delegating authority and access control methods based on delegated authority
US7269747B2 (en) * 2003-04-10 2007-09-11 Lenovo (Singapore) Pte. Ltd. Physical presence determination in a trusted platform
US7634807B2 (en) 2003-08-08 2009-12-15 Nokia Corporation System and method to establish and maintain conditional trust by stating signal of distrust
CN100347986C (zh) * 2003-11-24 2007-11-07 华中科技大学 一种身份认证的方法和系统
JP4064914B2 (ja) * 2003-12-02 2008-03-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、サーバ装置、情報処理装置のための方法、サーバ装置のための方法および装置実行可能なプログラム
US7421588B2 (en) * 2003-12-30 2008-09-02 Lenovo Pte Ltd Apparatus, system, and method for sealing a data repository to a trusted computing platform
US20050177749A1 (en) * 2004-02-09 2005-08-11 Shlomo Ovadia Method and architecture for security key generation and distribution within optical switched networks
JP4599852B2 (ja) * 2004-02-23 2010-12-15 ソニー株式会社 データ通信装置および方法、並びにプログラム
US7318150B2 (en) 2004-02-25 2008-01-08 Intel Corporation System and method to support platform firmware as a trusted process
US7574600B2 (en) * 2004-03-24 2009-08-11 Intel Corporation System and method for combining user and platform authentication in negotiated channel security protocols
US7653727B2 (en) * 2004-03-24 2010-01-26 Intel Corporation Cooperative embedded agents
JP4144880B2 (ja) 2004-04-09 2008-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション プラットフォーム構成測定装置、プログラム及び方法、プラットフォーム構成認証装置、プログラム及び方法、プラットフォーム構成証明装置、プログラム及び方法、並びに、プラットフォーム構成開示装置、プログラム及び方法
US20050251857A1 (en) * 2004-05-03 2005-11-10 International Business Machines Corporation Method and device for verifying the security of a computing platform
GB0411654D0 (en) * 2004-05-25 2004-06-30 Hewlett Packard Development Co A generic trusted platform architecture
US20060005009A1 (en) * 2004-06-30 2006-01-05 International Business Machines Corporation Method, system and program product for verifying an attribute of a computing device
EP1617587A1 (en) * 2004-07-12 2006-01-18 International Business Machines Corporation Method, system and computer program product for privacy-protecting integrity attestation of computing platform
US20060015860A1 (en) * 2004-07-15 2006-01-19 Sony Corporation And Sony Electronics, Inc. System and method for storing attributes in a file for processing an operating system
JP4562464B2 (ja) 2004-09-07 2010-10-13 富士通株式会社 情報処理装置
US7653819B2 (en) 2004-10-01 2010-01-26 Lenovo Singapore Pte Ltd. Scalable paging of platform configuration registers
US7836299B2 (en) * 2005-03-15 2010-11-16 Microsoft Corporation Virtualization of software configuration registers of the TPM cryptographic processor
US7613921B2 (en) * 2005-05-13 2009-11-03 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US20070079120A1 (en) * 2005-10-03 2007-04-05 Bade Steven A Dynamic creation and hierarchical organization of trusted platform modules

Also Published As

Publication number Publication date
JP5038396B2 (ja) 2012-10-03
US8566606B2 (en) 2013-10-22
WO2007124091A1 (en) 2007-11-01
KR101041543B1 (ko) 2011-06-17
EP2013808B1 (en) 2018-01-10
EP2013808A1 (en) 2009-01-14
US20090307487A1 (en) 2009-12-10
KR20090006876A (ko) 2009-01-15
JP2009534749A (ja) 2009-09-24
CN101473329B (zh) 2013-05-01
CN101473329A (zh) 2009-07-01
ES2664413T3 (es) 2018-04-19

Similar Documents

Publication Publication Date Title
KR101041543B1 (ko) 신뢰된 컴퓨팅 무결성 측정 보고를 수행하는 장치 및 방법
CN109313690B (zh) 自包含的加密引导策略验证
CN107408183B (zh) 通过安全硬化管理代理进行的设备证实
CN111324895B (zh) 用于客户端设备的信任服务
CN103299311B (zh) 用于可信引导优化的方法和设备
KR101861401B1 (ko) 장치 기능과 애플리케이션의 결합
JP6463269B2 (ja) データ・センター内のデータ・センター・サーバで実行される仮想ディスク・イメージの地理的位置を確認するための方法、システム、およびコンピュータ・プログラム製品
US10771264B2 (en) Securing firmware
US9436827B2 (en) Attesting a component of a system during a boot process
JP5745061B2 (ja) 起動プロセスの際の対話型コンポーネントの使用の認証
JP5530460B2 (ja) セキュアブート方法およびセキュアブート装置
US8984296B1 (en) Device driver self authentication method and system
JP2010003235A (ja) オプショナルなコンポーネントを伴うセキュアブートの方法
JP2013519929A (ja) 情報処理装置、情報処理システム、ソフトウェアルーチン実行方法およびリモート認証方法
CN111066016A (zh) 应用证书
CN110325992B (zh) 对初始计算机操作系统设置选项的远程管理
US20200178080A1 (en) Key generation apparatus and key update method
JP2006526219A (ja) セキュアなファームウェア格納及びサービスアクセスを提供する方法及び装置
US11909882B2 (en) Systems and methods to cryptographically verify an identity of an information handling system
CN111506915B (zh) 授权访问的控制方法、装置和系统
CN113536361B (zh) 一种可信基准库的实现方法、装置及计算设备
JP7272156B2 (ja) 情報処理装置、情報処理方法
CN115730351A (zh) 一种信息处理方法、装置及设备

Legal Events

Date Code Title Description
A201 Request for examination
A107 Divisional application of patent
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: 20140516

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150608

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee