KR100930218B1 - 소프트웨어 기반 보안 코프로세서를 제공하는 방법, 장치및 처리 시스템 - Google Patents

소프트웨어 기반 보안 코프로세서를 제공하는 방법, 장치및 처리 시스템 Download PDF

Info

Publication number
KR100930218B1
KR100930218B1 KR1020077026726A KR20077026726A KR100930218B1 KR 100930218 B1 KR100930218 B1 KR 100930218B1 KR 1020077026726 A KR1020077026726 A KR 1020077026726A KR 20077026726 A KR20077026726 A KR 20077026726A KR 100930218 B1 KR100930218 B1 KR 100930218B1
Authority
KR
South Korea
Prior art keywords
tpm
processing system
vtpm
device model
virtual
Prior art date
Application number
KR1020077026726A
Other languages
English (en)
Other versions
KR20080008361A (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 KR20080008361A publication Critical patent/KR20080008361A/ko
Application granted granted Critical
Publication of KR100930218B1 publication Critical patent/KR100930218B1/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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • 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/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Abstract

가상 보안 코프로세서 프레임워크는 미리 결정된 암호화 코프로세서를 모방하기 위해 적어도 하나의 디바이스 모델의 생성을 지원한다. 일 실시예에서, 가상 보안 코프로세서 프레임워크는 처리 시스템 내의 디바이스 모델(DM)의 인스턴스를 생성하도록 처리 시스템 내의 암호화 코프로세서를 사용한다. DM은 적어도 부분적으로는 미리 결정된 디바이스 모델 디자인에 기초할 수 있다. DM은 디바이스 모델 디자인의 제어 로직에 따라 미리 결정된 암호화 코프로세서를 모방할 수 있다. 일 실시예에서, 가상 보안 코프로세서 네트워크는 처리 시스템 내의 하나 이상의 가상 머신을 위한 하나 이상의 가상 TPM(vTPM)을 지원하도록 처리 시스템 내의 물리적인 신뢰 플랫폼 모듈(TPM)을 사용한다. 다른 실시예가 설명되고 청구된다.

Description

소프트웨어 기반 보안 코프로세서를 제공하는 방법, 장치 및 처리 시스템{METHOD AND APPARATUS FOR PROVIDING SOFTWARE-BASED SECURITY COPROCESSORS}
본 발명은 일반적으로 데이터 처리 분야에 관한 것으로서, 더 구체적으로는 보안 가상화를 지원하기 위한 방법 및 관련 장치에 관한 것이다.
통상의 처리 시스템은 중앙 처리 유닛(CPU) 및 임의 접근 메모리(RAM)와 같은 하드웨어 자원뿐만 아니라 운영 체제(OS) 및 하나 이상의 최종 사용자 프로그램 또는 애플리케이션과 같은 소프트웨어 자원을 포함할 수 있다. 애플리케이션은 일반적으로 특정 OS 상에서 실행되도록 개발되었다. 전형적인 통상의 컴퓨터 시스템이 시동될 때, 최종 사용자 프로그램 또는 애플리케이션을 로딩하기 전에 OS를 로딩한다. OS는 일반적으로 처리 시스템 내의 소프트웨어 애플리케이션과 하드웨어 사이의 중개자(intermediary)로서 기능한다.
RAM 및 하나 이상의 CPU에 부가하여, 처리 시스템은 신뢰 플랫폼 모듈(TPM)과 같은 보안 코프로세서(SC)를 포함할 수 있다. TPM은 처리 시스템 내에 존재하고 처리 시스템의 보안을 향상시키기 위한 다양한 설비 및 서비스를 제공하는 하드웨어 구성 요소이다. 예를 들면, TPM은 집적 회로(IC) 또는 반도체 칩으로서 구현될 수 있고, 데이터를 보호하고 플랫폼의 구성을 인증하는데 사용될 수 있다.
TPM은 TPM의 설계 원리, 구조 및 TPM 명령과 같은 부분을 포함하는 2003년 10월 2일자의 트러스티드 컴퓨팅 그룹(Trusted Computing Group)(TCG) TPM 사양 버전 1.2와 같은 사양에 따라 구현될 수 있다. TPM 사양은 TCG에 의해 출판되어 있고, www.trustedcomputinggroup.org/home의 주소에서 인터넷으로부터 입수 가능하다.
TPM의 하위 구성 요소(sub-component)는 실행 엔진 및 보안 비휘발성(NV) 메모리 또는 저장 장치를 포함할 수 있다. 보안 NV 메모리는 암호화 키(encryption key)와 같은 민감성 정보를 저장하는데 사용되고, 실행 엔진은 TPM의 제어 로직에 의해 규정된 보안 정책에 따라 민감성 정보를 보호한다.
일반적으로, TCG-순응성 TPM은 플랫폼의 특성에 기초하여 플랫폼의 신분(identity) 및/또는 무결성에 대한 인증과 같은 보안 서비스를 제공한다. 플랫폼 특성은 일반적으로 프로세서(들) 및 칩셋과 같은 플랫폼의 하드웨어 구성 요소, 뿐만 아니라 펌웨어 및 OS와 같은 플랫폼 내에 상주하는 소프트웨어를 포함하는 것으로 고려된다. TPM은 또한 소프트웨어 프로세스의 감사(auditing) 및 로깅(logging), 뿐만 아니라 플랫폼 부트 무결성, 파일 무결성 및 소프트웨어 라이센싱의 검증을 지원할 수 있다. 따라서, TPM은 플랫폼의 신뢰의 루트(root)라 언급할 수 있다.
따라서, 서버와 같은 처리 시스템이 클라이언트와 같은 다른 처리 시스템으로부터의 요구를 처리할 때, 서버는 TPM 기반 인증에 기초하여 보안 정책을 실시할 수 있다. 예를 들면, 서버는 이들 요구가 해당 클라이언트 시스템으로부터의 유효 한 TPM 기반 플랫폼 인증을 수반하지 않으면, 임의의 클라이언트의 시스템으로부터의 요구를 거절하도록 구성될 수 있다. 그러나, 통상의 처리 시스템이 TPM을 사용할 때, 이 처리 시스템은 동시에 단지 하나의 소프트웨어 환경만을 지원할 수 있을 것이다.
가상화 제품은 처리 시스템을 다중 가상 머신(VM)으로 분할하기 위한 특징을 제공한다. 예를 들면, 가상화 제품은 다중 OS가 동일 머신 상에서 동시에 실행되는 것을 허용하는 방식으로 처리 시스템의 하드웨어 자원을 분할하고 관리할 수 있다. 구체적으로는, 각각의 OS는 상이한 VM에서 실행될 수 있다. 따라서, 각각의 VM은 실질적으로 독립적인 소프트웨어 환경으로 고려될 수 있다. VM에서 실행되는 OS는 게스트 OS(guest OS)라 칭할 수 있다. VM은 가상 머신 모니터(VMM) 또는 하이퍼바이저(hypervisor)와 같은 가상화 제품에 의해 관리될 수 있다.
본 발명에 의해 인식되는 바와 같이, VMM이 실질적으로 OS가 그의 고유의 독립적인 물리적 머신에 있는 것과 같이 동작할 수 있게 하면 유리할 수 있다. 본 출원인과 동일한 출원인에게 양도된 미국 특허 출원 제 10/876,944호('944 출원)는 VM에 의한 TPM의 사용을 지원하기 위한 특징을 논의하고 있다. 본 출원은 TPM 및 가상화와 관련하는 부가의 특징 및 능력을 개시한다.
도 1은 본 발명의 예시적인 실시예의 특정 양태가 구현될 수 있는 적합한 데이터 처리 환경을 도시하고 있는 블록도.
도 2는 TPM 가상화와 같은 기능을 지원하기 위한 다양한 구조 및 키에 관련한 예시적인 TPM을 도시하고 있는 블록도.
도 3은 예시적인 일반화된 가상 TPM 프레임워크 및 관련 아이템의 다양한 구성 요소를 도시하고 있는 블록도.
도 4는 가상 TPM 이중 래핑된(wrapped) 키의 예시적인 실시예의 블록도.
도 5는 가상 TPM의 보안 인증을 제공하도록 가상 제작자 권한을 준비하기 위한 예시적인 구성 요소 및 동작을 도시하고 있는 블록도.
본 발명의 특징 및 장점은 첨부된 청구범위, 하나 이상의 예시적인 실시예의 이하의 상세한 설명 및 대응 도면으로부터 명백해질 것이다.
VM을 생성하기 위한 기술과 같은 플랫폼 분할 기술은 최근에 이들의 잠재적인 보안 가치에 대한 증가되는 주목을 받고 있다. 가상화 기술은 플랫폼이 VM으로 분할되는 것으로 허용하고, 각각의 VM은 가능하게는 현재의 복잡한 플랫폼보다 적은 소프트웨어를 실행한다. 개별적으로는, 전술한 바와 같이, TCG는 신뢰 플랫폼으로서 분류될 수 있는 처리 시스템의 생성을 용이하게 하도록 하드웨어-증대 보안(hardware augemented security)에 대한 표준을 제공하고 있다. TPM은 신뢰 플랫폼에 대한 신뢰의 루트를 제공할 수 있다.
소정의 VM 내의 모든 소프트웨어가 식별될 수 있고 TPM이 이 VM 내의 모든 소프트웨어에 의미 있게 인증을 할 수 있으면 유리할 것이다. 그러나, 다중 VM에 의한 사용을 위한 TPM의 공유는 적어도 부분적으로는 TPM의 상태 진술성(stateful) 불명료한 특성에 기인하여 어렵다.
양호하게 기록된 VMM은 하나의 VM에서 실행되는 악성 소프트웨어가 다른 VM에서 실행되는 소프트웨어를 변조(tampering)하는 것을 방지해야 한다. 부가적으로, TCG 신뢰 부트 모델을 사용하여, TPM이 OS 및 애플리케이션을 위한 데이터 보호를 제공할 뿐만 아니라 원격 개체에 대한 인증을 용이하게 하도록 각각의 VM에서의 OS 및 애플리케이션을 측정할 수 있으면 유리할 것이다.
불행하게도, TPM의 측정 설비는 정확하게 하나의 운영 체제의 측정값을 저장하도록 설계된다. 통상의 TPM은 다수의 현재 실행하는 OS의 특정을 개별적으로 저장하는 능력이 결여된다. 더욱이, TPM의 폐쇄된 스마트카드형 특성에 기인하여, 그의 상태가 판독되거나 스왑핑될 수 없다. 그 결과, 디바이스 공유 또는 가상화를 위한 전통적인 기술이 TPM에 사용될 수 없다.
도 1은 본 발명의 예시적인 실시예의 특정한 특징이 구현될 수 있는 적합한 데이터 처리 환경(12)을 도시하는 블록도이다. 데이터 처리 환경(12)은 하나 이상의 시스템 버스(24) 또는 다른 통신 경로 또는 매체를 경유하여 다양한 다른 구성 요소에 통신적으로 결합된 하나 이상의 프로세서 또는 중앙 처리 유닛(CPU)(22)을 구비하는 처리 시스템(20)을 포함한다.
본 명세서에서 사용될 때, 용어 "처리 시스템" 및 "데이터 처리 시스템"은 단일 머신 또는 함께 동작하는 머신 또는 디바이스에 통신적으로 결합된 시스템을 광범위하게 포함하도록 의도된다. 예시적인 처리 시스템은, 한정적인 것은 아니지만 분산 연산 시스템, 슈퍼컴퓨터, 고성능 연산 시스템, 연산 클러스터, 메인프레 임 컴퓨터, 미니 컴퓨터, 클라이언트-서버 시스템, 퍼스널 컴퓨터, 워크스테이션, 서버, 휴대용 컴퓨터, 랩탑 컴퓨터, 타블렛, 전화기, 개인 휴대 정보 단말(PDA), 휴대형 디바이스, 오디오 및/또는 비디오 디바이스와 같은 엔터테인먼트 디바이스 및 정보를 처리하거나 전송하기 위한 다른 디바이스를 포함한다.
처리 시스템(20)은 적어도 부분적으로는 키보드, 마우스 등과 같은 통상의 입력 디바이스로부터의 입력에 의해, 및/또는 다른 머신, 바이오메트릭 피드백(biometric feedback) 또는 다른 입력 소스 또는 신호로부터 수신된 지령에 의해 제어될 수 있다. 처리 시스템(20)은 네트워크 인터페이스 제어기(NIC), 모뎀 또는 다른 통신 포트 또는 커플링 등을 통해서 하나 이상의 원격 데이터 처리시스템(76 내지 78)으로의 하나 이상의 접속을 이용할 수 있다. 처리 시스템은 근거리 통신망(LAN), 원거리 통신망(WAN), 인트라넷, 인터넷 등과 같은 물리적 및/또는 논리적 네트워크(80)를 경유하여 상호 접속될 수 있다. 네트워크(80)를 수반하는 통신은 무선 주파수(RF), 위성, 마이크로파, 미국 전기 전자 학회(IEEE) 802.11, 블루투스, 광학, 적외선, 케이블, 레이저 등을 포함하는 다양한 유선 및/또는 무선 근거리 또는 장거리 캐리어 및 프로토콜을 이용할 수 있다.
처리 시스템(20) 내에는, 프로세서(22)가 임의 접근 메모리(RAM)26), 판독 전용 메모리(ROM), 통합형 드라이브 전자(IDE) 하드 드라이브와 같은 대용량 저장 장치, 및/또는 플로피 디스크, 광학 저장 장치, 테이프, 플래시 메모리, 메모리 스틱, 디지털 비디오 디스크, 생물학적 저장 장치 등과 같은 다른 디바이스 또는 매체와 같은 하나 이상의 휘발성 또는 비휘발성 데이터 저장 디바이스에 통신적으로 결합될 수 있다. 본 개시 내용을 위해, 용어 "ROM"은 소거 가능 프로그램 가능 ROM(EPROM), 전기적 소거 가능 프로그램 가능 ROM(EEPROM), 플래시 ROM, 플래시 메모리 등과 같은 비휘발성 메모리 디바이스를 칭하도록 일반적으로 사용될 수 있다. 프로세서(22)는 또한 비디오 제어기, 소형 컴퓨터 시스템 인터페이스(SCSI) 제어기, 네트워크 제어기, 범용 직렬 버스(USB) 제어기, 키보드 및 마우스 등의 입력 디바이스와 같은 부가의 구성 요소에 통신적으로 결합될 수 있다. 처리 시스템(20)은 또한 다양한 시스템 구성 요소를 통신적으로 결합하기 위한 메모리 제어기 허브, 입력/출력(I/O) 제어기 허브, PCT 루트 브리지 등과 같은 하나 이상의 브리지 또는 허브(34)를 구비할 수 있다. 본 명세서에 사용될 때, 용어 "버스"는 공유 통신 경로, 뿐만 아니라 점단위 경로(point-to-point pathway)를 칭하는데 사용될 수 있다.
예를 들면 NIC와 같은 몇몇 구성 요소는 버스와 통신하기 위한 인터페이스를 갖는 어댑터 카드(예를 들면, PCI 커넥터)로서 구현될 수 있다. 일 실시예에서, 하나 이상의 디바이스는 프로그램 가능 또는 프로그램 불가능 로직 디바이스 또는 어레이, 응용 특정 집적 회로(ASIC), 내장형 컴퓨터, 스마트 카드 등과 같은 구성 요소를 사용하여 매립형 제어기로서 구현될 수 있다.
예시되어 있는 바와 같이, 처리 시스템(20)은 또한 프로세서(24)에 통신적으로 결합된 TPM(30)을 구비한다. TPM(30)은 또한 물리적 TPM 또는 하드웨어 TPM(hwTPM)(30)으로서 칭할 수 있다. 일 실시예에서, TPM(30)은 시스템 마더보드 또는 처리 시스템(20)의 후면(backplane)에 존재하는 매립형 디바이스로서 구현된 다. TPM(30)은 휘발성 플랫폼 구성 레지스터(PCR) 및 허가 세션, 뿐만 아니라 지속 데이터 무결성 레지스터(DIR), 허가 다이제스트(digest) 및 범용 지속 저장 장치를 포함하는 다수의 저장 설비를 구비한다. 이들 설비 각각은 대응 메모리내 데이터 구조(in-memory data structure)를 가질 수 있다.
본 발명은 머신에 의해 액세스될 때 머신 실행 작업을 초래하거나 또는 추상 데이터 유형 또는 저레벨 하드웨어 환경을 규정하는 명령, 기능, 절차, 데이터 구조, 애플리케이션 프로그램 등을 포함하는 연관 데이터를 참조하여 또는 이 연관 데이터와 관련하여 설명될 것이다. 데이터는 휘발성 및/또는 비휘발성 데이터 저장 장치에 저장될 수 있다.
예를 들면, RAM(26)은 실행시에 TPM(30)의 보안 가상화를 지원하도록 일반화된 가상 TPM(GVTPM) 프레임워크(40)를 구현하는 하나 이상의 명령 세트를 포함할 수 있다. GVTPM 프레임워크(40)는 또한 가상 TPM 서비스라 칭할 수도 있다. 본 개시 내용을 위해, 가상 TPM(vTPM)은 TPM형 기능성을 제공하는 논리적(즉, 주로 소프트웨어-구현형) 구성 요소이다. 마찬가지로, 가상 보안 코프로세서(vSC)는 하드웨어 보안 코프로세서에 의해 제공될 가능성이 있는 것과 같은 기능성을 제공하는 논리적 디바이스이다.
일 예시적인 실시예에서, GVTPM 프레임워크(40)는 VMM(64) 내에서 부분적으로 또는 완전히 동작할 수 있다. 다른 실시예에서, GVTPM 프레임워크(40)는 VMM에 의해 지원되는 하나 이상의 서비스 VM에 상주한다. 서비스 VM은 이들이 게스트 OS를 갖는 VM보다 더 소수의 자원을 필요로 할 수 있기 때문에 경량 VM이라 칭할 수 있다. 대안의 실시예에서, GVTPM 프레임워크(40)용 모듈의 일부 또는 전체가 펌웨어 또는 임의의 다른 보호된 환경에 상주할 수 있다. GVTPM 프레임워크의 상이한 실시예가 광범위한 VMM 아키텍처를 위한 가상 TPM 서비스를 제공할 수 있다. 다른 실시예에서, GVTPM 프레임워크(40)는 VMM의 부분이 전혀 아닐 수도 있다.
예시적인 실시예에서, 처리 시스템(20)은 처리 시스템(20) 내의 하나 이상의 VM(60A 내지 60C)을 지원하도록 부트 시간에 또는 소정의 이후의 시간에 RAM(26)에 VMM(64)을 로딩할 수 있다. VMM(64)은 마이크로-커널(micro-kernel) 및 서비스 OS와 같은 소프트웨어 또는 펌웨어 구성 요소의 실행을 통해 구현될 수 있다. 마이크로-커널은 명령 스케쥴링과 같은 시스템 관리 작업을 위한 명령의 작은 핵심을 포함할 수 있다. 서비스 OS는 VM을 생성하고 유지하기 위한 디바이스 드라이버 및 환경 가상화 소프트웨어를 포함할 수 있다. 서비스 OS 내의 디바이스 드라이버는 TPM(30)과 통신하기 위한 TPM 드라이버를 포함할 수 있다. 이와 다르게, 도 3에 도시되어 있는 바와 같이, TPM 드라이버(130)가 GVTPM 관리자(110)와 같은 상이한 소프트웨어 구성 요소에 로딩될 수 있다. 처리 시스템(20)은 예를 들면 ROM으로부터 및/또는 하나 이상의 로컬 또는 원격 대용량 저장 디바이스로부터 VMM(64) 및 GVTPM 프레임워크(40)를 구현하는 명령을 로딩할 수 있다. TPM 가상화를 지원하거나 용이하게 하는데 사용되는 임의의 부가의 명령이 또한 예를 들면 ROM으로부터 및/또는 하나 이상의 로컬 또는 원격 대용량 저장 디바이스로부터 로딩될 수 있다. 예시적인 실시예에서, VMM(64)은 그의 고유의 독립적인 게스트 OS를 각각 실행하는 다중 VM(60A 내지 60C)을 지원한다. VM 중 하나 이상은 TCG 표준에 순응하여 신뢰 소프트웨어 스택 또는 TCG 소프트웨어 스택(TSS)을 실행할 수 있다.
본 개시 내용을 위해, vTPM, 전용 vSC 및 유사한 가상 디바이스는 디바이스 모델(DM)이라 칭할 수 있다. 예시적인 실시예에서, 이러한 디바이스 모델은 GVTPM 프레임워크(40)에 의해 지원된다. 게다가, GVTPM 프레임워크(40)는 다중 DM 디자인을 지원할 수 있다. 예를 들면, 도 3과 관련하여 더 상세히 후술되는 바와 같이, GVTPM 프레임워크(40)는 하나의 DM 디자인에 기초하여 vTPM을 생성할 수 있고, GVTPM 프레임워크(40)는 다른 DM 디자인에 기초하여 전용 vSC를 생성할 수 있다. 따라서, 상이한 DM 디자인을 사용하여 상이한 유형의 보안 코프로세서의 가상화를 용이하게 할 수 있다. 따라서, GVTPM 프레임워크(40)는 상이한 보안 및 성능 타협(tradeoff)을 갖고 vTPM 및 다른 vSC를 지원할 수 있다. vSC는 vTPM에 한정되지 않기 때문에, GVTPM 프레임워크(40)는 또한 가상 보안 코프로세서(vSC) 프레임워크라 칭할 수도 있다.
도 1에 도시되어 있는 바와 같이, 일 실시예에서, 처리 시스템(20)은 하나 이상의 VM 정의(definition)(41, 51)를 포함하는 데이터 저장 디바이스(28)를 구비한다. 일 실시예에서, VM 정의는 하드 디스크 드라이브(HDD)에 상주할 수 있다. 대안의 실시예에서, VM 정의는 다른 유형의 저장 디바이스에 상주할 수 있다. 예를 들면, VM 정의는 원격 시스템으로부터 검색되어 RAM(26) 또는 프로세서(22)의 캐시 메모리에 로딩될 수 있다. VM 정의는 가상 머신 내에 포함될 속성을 정의할 수 있다. 예를 들면, VMM(64)이 VM(60A)을 생성해야 한다고 결정할 때, 처리 시스템(20)은 GVTPM 프레임워크(40)가 VM 정의(41)를 측정하고 이어서 VMM(64)이 VM 정의(41) 내의 초기화 명령 또는 부트 코드로 제어를 통과시키는 부트 블록과 같이 VM 정의(41)를 처리할 수 있다. VM(60A)은 적어도 부분적으로는 해당 부트 코드의 실행을 통해 실증될 수 있다. 특히, vTPM(44A)은 VM 정의(41) 내의 제어 로직 및/또는 초기화 데이터에 기초하여 VM(60A)에 대해 생성될 수 있다. 더 상세히 후술되는 바와 같이, 이 제어 로직은 vTPM을 구현하기 위한 프로그램 코드 세그먼트(PCS)를 구성하거나 또는 포함할 수 있다. 유사하게, 대응 PCS(55)를 갖는 VM 정의(51)는 VM(60C) 및 대응 vSC(44C)를 생성하는데 사용될 수 있다.
예시적인 실시예에서, GVTPM 프레임워크(40)는 보호된 호스트 메모리로부터 동작한다. 예를 들면, 처리 시스템(20)은 다른 구획(partition) 내의 소프트웨어로의 액세스 또는 변조로부터 하드웨어에 의해 보호되는 메모리의 격리 영역 내로 GVTPM 프레임워크(40)를 로딩하고, 이 격리 영역으로부터 GVTPM 프레임워크(40)를 실행하기 위해 미국 특허 제 6,507,904호, 제 6,633,963호 및/또는 제 6,678,825호(모두 인텔 코포레이션에 양도됨)에 설명된 바와 같은 기술을 사용할 수 있다. 대안의 실시예에서, 다른 기술이 보호된 메모리를 제공하는데 사용될 수 있다. 예를 들면, 환경은 보호된 메모리를 제공하는 시스템 관리 모드(SMM)를 포함할 수 있거나, 또는 보호된 실행 환경이 변조 저항성 소프트웨어 컴파일러(compiler)를 사용하여 생성될 수 있다. 다른 구성 요소[예를 들면, VMM(64), 마이크로커널 등]가 또한 보호된 메모리 영역에 상주할 수 있다. 예시적인 실시예에서, 보호된 메모리는 소프트웨어/명령이 간섭 또는 관찰 없이 실행될 수 있는 것을 보장한다.
보호된 메모리는 또한 허가받지 않은 프로그램이 민감성 정보에 액세스하거 나 변조하는 것을 방지하는 기능을 할 수 있다. 예를 들면, 더 상세히 후술되는 바와 같이, GVTPM 프레임워크(40)는 VM(60A)용 하드웨어 TPM을 모방하도록 가상 TPM(44A)을 생성할 수 있다. GVTPM 프레임워크(40)는 vTPM(44A)의 구조 내에 저장된 데이터를 저장하고 보호하도록 보호된 메모리를 사용할 수 있다.
도 3에 도시되어 있는 바와 같이, GVTPM 프레임워크(40)는 보호된 저장 서비스(PSS)(100)를 포함할 수 있고, PSS(100)는 vTPM이 실행되지 않을 때에도 vTPM을 보호하도록 TPM(30)을 사용할 수 있다. 예를 들면, vTPM이 능동적으로 동작하지 않을 때, 이 vTPM을 위한 지속 데이터 구조가 디스크 상에 저장되어 어미 SRK(parent SRK)를 갖는 vTPM 서비스의 PCR에 봉인될 수 있다.
예시적인 실시예에서, vTPM(44A)은 단일 사용자 허가 세션 하에서 그 자신으로부터 그리고 hwTPM(30)으로부터 TPM 기능성을 명백하게 제공할 수 있다. vTPM(44A)은 사용자 및 hwTPM 모두를 갖는 개별 허가 세션을 유지함으로써 이 목적을 달성한다. 즉, 사용자는 vTPM(44a)이 hwTPM인 것처럼 vTPM(44A)을 갖는 허가 세션을 생성할 수 있다. vTPM(44A)은 hwTPM이 수행하는 이 세션에 기초하여 모든 동일한 허가 검사를 완료할 수 있다. vTPM(44A)이 요구된 기능을 직접적으로 제공할 수 있으면, vTPM(44A)은 세션 넌스(nonce)를 간단히 갱신하고 회답할 수 있다. vTPM(44A)이 hwTPM이 서비스를 제공하도록 요구하면, vTPM(44A)은 허가 세션을 생성하거나 또는 요구를 수행하는 hwPTM을 갖는 현존하는 허가 세션을 재사용할 수 있다. 일단 vTPM(44A)이 hwTPM을 사용하여 수행되면, vTPM(44A)은 사용자 세션 상의 넌스를 갱신하고 회답할 수 있다.
예시적인 실시예에서, GVTPM 프레임워크(40)는 신뢰 가상 TPM(vTPM)(44A, 44B)를 위한 및/또는 vSC(44C)와 같은 다른 TPM형 가상 구성 요소를 위한 실행 환경을 제공한다. vSC(44A 내지 44C)에 의해 사용되는 민감성 데이터를 보호하기 위해, GVTPM 프레임워크(40)는 vSC의 신뢰성이 TPM을 사용하는 소프트웨어의 기댓값에 부합하는 하드웨어에 고정되는 것을 보장하도록 TPM(30)을 사용한다. 본 개시 내용을 위해, 용어 가상 TPM 및 vTPM은 물리적 TPM의 소프트웨어 모방 또는 시뮬레이션, 뿐만 아니라 유사한 종류의 보안 부시스템의 소프트웨어 모방을 칭하는데 사용된다.
GVTPM 프레임워크(40)는, 다중의 상호 비신뢰적인 및/또는 미인식 게스트가 게스트 OS 또는 게스트 OS에서 실행되는 애플리케이션에 대한 변형을 필요로 하지 않고 TPM을 공유하도록 할 수 있다. 부가적으로, GVTPM 프레임워크(40)는 향상된 전용 기능성을 갖는 주문형 암호화 부시스템을 생성하기 위한 필수 환경을 제공하기 위한 특징을 포함할 수 있다. 본 명세서는 또한 GVTPM 프레임워크(40)와 같은 프레임워크 하에서 가상화를 최적화하기 위한 부가의 TPM 특징을 설명한다.
하나 이상의 예시적인 실시예의 이 상세한 설명의 잔여부는 이하와 같이 속행된다. "보안 배경" 섹션은 TPM의 배경을 제공한다. "일반화된 가상 TPM 프레임워크" 섹션은 예시적인 프레임워크를 논의한다. "예시적인 vTPM 디바이스모델 디자인" 섹션은 두 개의 예시적인 vTPM 디자인 또는 디자인 모델을 설명한다. "하드웨어 최적화" 섹션은 TPM 가상화를 용이하게 할 수 있는 예시적인 하드웨어 특징을 설명한다. 다음은 "가상 TPM의 원격 배치 및 설치" 및 "가상 TPM 이 주(migrating)"이다.
1.0 - 보안 배경
1.1 - TPM 기능 서론
산업 콘소시움 TCG는 플랫폼 상에서의 신뢰를 위한 기초를 제공하도록 약속된 소형 암호화 부시스템으로서 TPM을 표준화하였다. 이 때문에, TPM은 인증 및 보호된 저장 장치를 용이하게 하는 기능을 제공한다.
TPM의 기능성의 핵심은 플랫폼의 구성에 대한 정보를 저장하는 그의 능력에 있다. 이 정보는 이어서 TPM의 1차 기능의 양자 모두를 위해 사용될 수 있다. 플랫폼은 원격 개체(entity)가 플랫폼의 신뢰성에 대한 판정을 수행하도록 하는데 필요한 정보를 원격 개체에 제공할 수 있다. 플랫폼은 또한 시스템이 공지의 "양호한" 구성에 있는 동안에만 키 또는 민감성 데이터가 해제되는 것을 보장하도록 TPM에 명령할 수 있다.
플랫폼 상태를 저장하기 위해, 통상의 TPM은 플랫폼에 대한 소프트웨어 및 구성 정보의 160-비트 SHA1(보안 해싱 알고리즘 1) 해시의 구성의 측정을 저장하기 위해 PCR을 사용한다. 이들 측정은 부트 블록에서 시작한다. 각각의 부트 구성 요소는 다음 구성 요소를 측정하고, 이를 TPM에 기록하고, 이어서 운영 체제가 그의 핵심의 측정을 인계받을 때까지 이 구성 요소를 런칭한다. PCR로의 각각의 기록은 이전의 측정을 덮어쓰기보다는 레지스터에 측정을 추가하기 때문에, 어떠한 개체도 이전의 구성 요소에 의해 수행된 그의 코드의 측정을 변경할 수 없다. 따 라서, 측정의 체인이 이루어져서, 체인의 시작(측정을 위한 신뢰의 루트라 알려짐) 및 각각의 링크가 신뢰성이 있으면 전체 체인이 신뢰성이 있다.
1.2 - 인증
인증은 플랫폼이 신뢰적인 방식으로 원격 집단에 그의 구성을 보고하는 것을 가능하게 하는 TPM 기능 및 프로토콜의 세트를 칭한다. 예를 들면, TPM은 플랫폼 상태를 저장하는데 사용되는 PR을 서명하는 능력을 제공한다. 예를 들면, 플랫폼은 PCR을 서명하도록 인증 신분 키(AIK)를 사용할 수 있다. 이러한 서명된 PCR은 인용문(quote)이라 칭할 수 있다.
인용문이 실제 TPM에 의해 서명되었다는 것에 대한 증명을 원격 개체에 제공하기 위해, 각각의 TPM은 인증서(credential)의 세트를 갖는다. 예를 들면, TPM 제작자에 의해 서명된 보증 인증서(endorsement credential)는 TPM이 TPM 사양에 부합한다는 것을 진술한다. 제작자는 또한 TPM 내의 보증키(EK)로서 공지된 고유 키를 저장하고, 제작자는 보증 인증서에 서명하기 위해 EK를 사용한다. 이론적으로는 EK는 PCR의 인용문에 서명하도록 직접 사용될 수 있다. 그러나, EK는 고유하기 때문에, 제 3 집단이 대신에 프라이버시를 제공하도록 사용된다. 구체적으로는, 플랫폼은 각각의 AIK에 대한 신분 인증서를 생성하도록 프라이버시 인증 기관(CA)으로서 공지된 제 3 집단을 사용한다. TCG는 EK 및 보증 인증서를 사용하여 TPM이 실제의 TPM이라는 것을 TPM이 프라이버시 CA에 입증할 수 있게 하는 프로토콜을 규정하고 있다. 이어서, 프라이버시 CA는 TPM이 이를 소유하고 있다는 것을 주장하는 AIK에 대한 신분 인증서를 생성한다.
원격 개체가 TPM의 제작자, 프라이버시 CA 및 측정을 위한 신뢰의 루트를 신뢰한다고 가정하면, 신분 인증서에 의해 수반되는 AIK에 의해 서명되는 인용문은 플랫폼의 현재 상태의 암호화 증명이다. 예를 들면, 통상의 인증 접근이 도 1에 도시되어 있는 것과 유사한 네트워크 환경에 사용되면, 프라이버시 CA(76)와 같은 원격 처리 시스템이 통상의 TPM의 AIK에 대한 신분 인증서를 제공할 수 있고, 처리 시스템(20)은 챌린저(challenger)(78)와 같은 원격 처리 시스템에 신뢰성 단언을 수행하도록 이 신분 인증서를 사용할 수 있다. 그러나, 더 상세히 후술되는 바와 같이, 본 발명은 예를 들면 처리 시스템(20)과 같은 디바이스 내의 가상 머신(60A 내지 60C)과 같은 구획에 대한 가상 보안 프로세서 또는 가상 TPM을 지원하기 위한 변형된 인증 접근을 도입한다.
도 2는 TPM 가상화와 같은 기능을 지원하기 위한 다양한 구조 및 키에 대한 TPM(30)과 같은 예시적인 TPM을 도시하고 있는 블록도이다. 도 2에서, TPM(30)의 EK는 hwEK(52)로서 도시되어 있고, 저장 루트키는 hwSRK(50)로서 도시되어 있고, TPM 제작자에 의해 제공된 보증 인증서는 EK_Cred(54)로서 도시되어 있다. 도 2는 또한 저장 장치(38) 내의 PCR(32) 및 DIR(36)을 도시하고 있다.
1.3 - 보안 저장
TPM이 제공하는 다른 세트의 서비스는 키 및 다른 데이터의 보안 저장이다. TPM은 리베스트-샤미르-아델만(RSA) 키를 생성할 수 있고, 이는 일단 (a) 요청자가 비밀 SHA1 해시를 경유하여 허가를 제공하면, 그리고 (b) PCR에 의해 결정되는 바와 같은 현재 구성이 "양호한" 상태를 지시하면 1회만의 사용을 허용할 수 있다. 이 강력한 기능은 머신이 절충되고 외부 매체로부터 부팅되거나 다른 방식으로 변조되면 데이터가 액세스 불가능할 수 있도록 플랫폼이 데이터를 암호화하는 것을 허용한다.
보안 저장과 같은 서비스를 지원하기 위해, TPM은 상이한 동작에 대한 단일 용도 유형을 갖는 키를 생성한다. 유형 EK의 키는 단지 프라이버시 CA로부터 신분 인증서를 복호화하기 위해서만 이용 가능하다. AIK는 다른 키를 서명하고 PCR을 인용하는데 사용된다. 저장 키(SK)는 다른 키를 보호하거나 또는 데이터를 "봉인"하는데 사용되는데, 이 봉인은 패스워드 또는 PCR 바인딩(binding)으로 데이터를 보호하는 데이터의 특정 암호화이다. 바인딩 키(BK)는 임의의 데이터를 암호화하고 데이터를 TPM-바인딩된 데이트 구조로 변환하는데 사용된다. 서명 키(SigK)는 임의의 데이터에 서명하기 위해 사용된다. 마지막으로, 레가시 키(legacy key)는 데이터에 서명하거나 암호화할 수 있고 데이터가 TPM-바인딩된 데이터 구조의 구성인 것을 요구하지 않는다.
각각의 TPM은 두 개의 핵심 키, 즉 EK 및 저장 루트 키(SRK)로서 공지된 SK의 특정 유형을 갖는다. SRK는 시스템 또는 사용자에 의해 생성될 수 있는 키의 계층의 상위 계층이다. 이 계층은 브랜치(branch)로서 그리고 EK 유형 이외의 임의의 다른 유형을 리프(leaves)로서 저장 키 상에 형성된다. 계층 내의 키 중에서, 단지 SRK 및 EK만이 항상 TPM 내에 로딩되도록 요구된다. 다른 키는 "래핑된 키(wrapped key)"로서 암호화된 TPM의 외부에 저장되고 사용에 앞서 로딩된다. 래핑된 키는 더 상세히 후술된다. 일단 키가 로딩되면, 이는 키 유형이 동작을 위해 교정되고, 적절한 허가가 제공되고, PCR이 키에 의해 지정된 임의의 PCR 바인딩에 정합하면 임의의 기능을 수행할 수 있다.
1.4 - TPM 구성 요소
TPM, 스마트카드, 인터내셔널 비즈니스 머신스 코포레이션으로부터의 모델 4758 암호화 코프로세서 및 다른 유사한 디바이스 또는 부시스템은 본질적으로는 변조 저항성과 같은 경계선 보호를 일반적으로 포함하는 소형의 내장형 연산 환경이다. 따라서, 이러한 디바이스는 동작을 위한 외부 자원에 의존하지 않고 특정 연산을 수행하도록 신뢰될 수 있다.
전형적인 TPM은 이하의 4개의 구성 요소를 포함한다.
1. 프로그램 코드 세그먼트(PCS): 일반적으로 ROM 내에 있고 판독 전용 데이터로서 저장되는 TPM의 제어 로직의 코드 세그먼트.
2. 프로세서: PCS를 실행하는 소형 CPU.
3. 비휘발성 메모리(NV 메모리 또는 NVM): NVM은 TPM의 지속 키, 비밀 및 다른 상태가 저장되어 있는 TPM 내의 저장 장치이다. 이는 일반적으로 재시동을 통해 보존되는 변조 저항성 플래시에 위치되어 있다.
4. 능동 메모리: 이는 전원 차단되면 손실되는 비지속 데이터를 저장하는데 사용되는 휘발성 메모리이다.
이들 프리미티브(primitive)로부터 형성된 디바이스의 기술적 능력은 주로 이들의 내부 자원에 의해 제한된다. 실제로, 높은 개발 및 전개 비용을 회피하기 위한 노력의 결과로서, 이들 디바이스는 일반적으로 데이터 보호를 위한 단지 소수의 간단한 범용의 구성만을 포함한다. 예를 들면, 전형적인 디바이스에서, 간단한 암호화 및 복호화 기능만이 이용 가능하고, 복잡한 액세스 제어 정책은 이용 가능하지 않다. 본 명세서에 개시된 프레임워크는 동일한 자원 제약을 갖지 않고 개발 및 전개가 저렴한 연산 영역을 제공함으로써 이 문제점을 완화시킨다.
2.0 - 일반화된 가상 TPM 프레임워크
도 3은 예시적인 GVTPM 프레임워크 및 관련 아이템의 다양한 구성을 도시하는 블록도이다. 예시된 실시예에서, GVTPM 프레임워크(40)는 TPM 구성 요소의 다양한 기능 및 보안 특성을 제공하는 것을 보조하는 다수의 구성 요소를 포함한다.
또한, GVTPM PSS(100)는 각각의 DM의 NVM에 대한 중앙 저장소로서 기능하고, 플랫폼의 CPU(22) 및 RAM(26)은 프로세서 및 능동 메모리 자원을 제공한다. PSS(100)는 각각의 DM의 지속 데이터에 대한 보호된 저장 장치를 제공하기 때문에, PSS(100)는 또한 보호된 지속 저장 장치라 칭할 수도 있다. 예시적인 실시예에서, GVTPM 프레임워크(40)는 프레임워크가 플랫폼의 나머지로부터 보호되는 것을 보장하도록 플랫폼이 CPU(22) 및 RAM(26)의 사용을 격리시킬 수 있는 보안 요건을 부여한다. 격리 요건에 부합하는 일 방법은 신뢰 가상 머신 모니터(TVMM)에 구성 요소를 구현하거나 또는 그 자신의 VM 내의 GVTPM 프레임워크(40)를 격리하도록 TVMM을 사용하는 것이다. 예시적인 실시예에서, VMM(64)은 일반적으로는 TVMM으로서 수락된다. 대안의 실시예는 PSS 내에 NVM을 저장하지 않을 수 있다. PSS는 대신에 상기의 것과 유사한 NVM을 암호화하고 NVM을 vSC에 복귀할 수 있다.
부가적으로, GVTPM 관리자(110)는 vSC(44A 내지 44C)에 대한 생성, 비활성화 및 다른 관리 기능을 제공하고, 가상 제조 기관(MA)(124, 126)이 vSC(44A 내지 44C)에 대한 인증서를 획득하는데 사용된다. GVTPM 프레임워크(40)는 또한 키 및 세션 관리자(140)를 포함하고, 이 GVTPM 관리자(110)는 하나의 vTPM이 프로세서(22)로부터 언로딩되고 다른 vTPM이 활성화될 준비가 될 때 키 및 허가 세션을 스왑핑하는 것과 같은 작업을 위해 사용한다. 예를 들면, 프로세서(22) 상에 실행을 위해 로딩되지만 현재는 스케쥴링되지 않은 vTPM에 속하는 키는 프로세서(22) 상에서 실행하도록 스케쥴링된(또는 곧 스케쥴링될) vTPM에 의해 요구되는 키에 대한 공간을 형성하도록 제거될 수 있다.
예시적인 실시예에서, GVTPM 프레임워크(40)의 모든 구성 요소는 이들 구성 요소 내에 저장된 비밀의 보안을 보장하기 위해 시스템의 나머지로부터 격리된다.
2.1 - GVTPM 디바이스 모델
GVTPM 프레임워크(40)는 DM(44A, 44B)을 생성하도록 VM 정의(41)를 사용할 수 있고, GVTPM 프레임워크(40)는 DM(44C)을 생성하도록 VM 정의(51)를 사용할 수 있다. GVTPM 프레임워크(40)는 DM을 제공하거나 또는 사용할 때 가상화 이벤트(VE)를 사용할 수 있다. 예를 들면, VE는 VM(60A) 내의 소프트웨어가 TPM으로의 액세스를 시도할 때 트리거링될 수 있다. VE에 응답하여, 제어가 VM(60A)으로부터 VMM(64)으로 전달될 수 있다. GVTPM 관리자(110)는 vTPM(44A)을 참조하여 이벤트를 처리하도록 VE를 인터셉트할 수 있다. 예시적인 실시예에서, VM(60A)은 vTPM(44A) 이외의 어떠한 TPM도 인식하지 않을 수 있지만, GVTPM 관리자(110)는 vTPM(44A)을 지원하기 위해 hwTPM(30)을 사용할 수 있다.
실제로, DM은 VM(60A 내지 60C)과 같은 OS 구획으로 GVTPM 기능성을 확장한다. 각각의 DM의 보호 경계선은 TVMM과 같은 그 내부에서 실행하는 환경에 의해 제공된다. 각각의 GVTPM 구성 요소 및 각각의 DM 주위에 개별적으로 경계선을 배치함으로써, 각각의 DM은 다른 DM이 절충되는 경우에 격리를 유지한다. 따라서, 디바이스 모델 디자인에 따라 DM 내에 구현되는 데이터 구조는 디바이스 모델의 변조 저항성 구조로 고려될 수 있다.
프레임워크의 디자인은 디바이스 모델의 디자인에 융통성을 허용한다. 예를 들면, VMM에 의해 허용되는 임의의 기능성은 전형적인 하드웨어 SC에 의해 지원되는 제한된 기능성에 대조적으로 DM 내에서 실행될 수 있다. 전용 기능성의 경우에는, 프레임워크의 융통성은 광범위한 암호화 알고리즘, 서명 체계, 액세스 제어 정책 및 저장 메카니즘을 허용한다.
예시적인 실시예에서, 가상 TPM에 대해, 각각의 DM은 그 자신의 EK, SRK, PCR, DIR, 단조 카운터, 사용자 키 계층, 범용 NVM 등을 포함하는 TPM 구조 및 자원의 그 자신의 세트를 관리한다. 이는 vTPM이 하드웨어 TPM과 동일하게 기능하여, 애플리케이션이 하드웨어 또는 가상 TPM을 명백하게 사용할 수 있는 것을 보장 한다.
예시적인 실시예에서, vTPM(44A)은 시뮬레이팅된 지속적인 단조 카운터를 제공하도록 소프트웨어를 사용한다. 카운터의 수는 실질적으로는 제한되지 않을 수 있다. 예시적인 실시예에서, vTPM(44A)은 적어도 hwTPM으로부터 예측되는 4개의 카운터를 제공한다. vTPM 카운터는 하드웨어 TPM 카운터로의 임의의 직접 링크를 필요로 하지 않을 수 있다.
vPCR(92)과 같은 가상 PCR은 hwTPM의 자원 제약을 갖지 않지만, 대신에 이들에 이용 가능한 PCR의 구성 가능한 수를 가질 수 있다. 예시적인 실시예에서, vPCR(92)은 PSS(100) 내의 vTPM(44A)의 메모리 공간 내에 저장되고, vTPM(44A)은 vPCR(92) 상의 표준 PCR 동작을 모방한다.
프레임워크는 성능 및 보안을 평형화하는 능력을 개별 DM 디자인에 허용한다. 몇몇 구현은 DM 내의 소프트웨어 내에 키를 구현함으로써 더 신속한 암호화 동작 또는 향상된 이주를 향유할 수 있고, 다른 구현은 모든 키가 항상 하드웨어 TPM 내에 상주하고 DM이 이들에 대한 입구(portal)로서 작용하는 것을 필요로 할 수 있다. 부가적으로, 이 접근은 명백하게는 상이한 DM 디자인이 상이한 지리적 위치의 데이터 보호 및 암호법에 정합하도록 이들의 서비스를 조정하는 것을 허용한다.
더 상세히 후술되는 바와 같이, GVTPM 관리자(110)는 각각의 DM 디자인에 대한 상이한 가상 제작자 기관(vMA)을 제공한다. 예를 들면, 도 3에서, 가상 제작자 기관(124)은 VM 정의(41)에 의해 제공되는 DM 디자인에 기초하여 DM을 서비스하고, 가상 제작자 기관(126)은 VM 정의(51)에 의해 제공되는 DM 디자인에 기초하여 DM을 서비스한다.
2.2 - GVTPM 관리자
GVTPM 관리자(110)는 GVTPM 프레임워크(40)를 위한 중앙 관리 구성 요소이다. 예시적인 실시예에서, GVTPM 관리자(110)는 vTPM을 설치하고, 다른 프레임워크 구성 요소를 브리징하고, DM을 위한 TPM(30)으로의 직렬화된 액세스를 허가하는 책임이 있는 관리 구성 요소이다. 일 실시예에서, GVTPM 관리자(110)는 VMM(64)이 (a) 필수 VM을 생성하고, (b) 통신 채널을 제공하는 것을 요구함으로써 신규한 DM을 설치한다. 신규한 DM의 설치 프로세스 중에, GVTPM 관리자(110)는 PSS(100)가 DM 코드의 측정과 같은 DM을 인증하도록 요구하는 임의의 정보를 수집할 수 있다. 예를 들면, GVTPM 관리자(110)는 당해의 DM을 실증하기 위한 기초로서 기능하는 특정 VM 정의 내의 PCS를 측정할 수 있다. 예를 들면, VM 정의(41)는 TPM의 특정 유형 또는 모델에 대한 PCS(45)를 포함할 수 있고, VM 정의(51)는 스마트카드의 특정 유형 또는 모델에 대한 PCS(55)를 포함할 수 있다. 일 실시예에서, 처리 시스템에 의해 지원될 각각의 상이한 DM 디자인은 VM 정의 내의 PCS에 의해서 완전히 또는 주로 정의된다.
GVTPM 관리자(110)는 각각의 특정 OS 구획과 각각의 DM 사이에 통신 채널을 제공할 수 있다. GVTPM 관리자(110)는 또한 자신과 각각의 DM 사이에 통신 채널을 제공할 수 있다. GVTPM 관리자(110)는 가상 관리자 기관으로의 액세스, PSS(100) 로의 액세스 및 hwTPM(30)으로의 직렬화된 액세스와 같은 다른 GVTPM 구성 요소로의 DM 액세스를 제공한다. 따라서, GVTPM 관리자(110)는 다중 DM을 가로질러 hwTPM(30)을 공유하는 책임이 있다. 관리 하의 주요 자원은 로딩된 키 및 허가 세션의 세트이다. 전술한 TPM 사양의 핵심 서비스 부분에서 제안된 바와 같은 공유 기술이 이 작업을 위해 적합화될 수 있다.
예시적인 실시예에서, GVTPM 관리자(110)는 단지 하나의 vTPM만이 동시에 TPM(30)에 액세스하는 것을 보장한다. 게다가, GVTPM 관리자(110)는 각각의 vTPM이 그가 필요로 하는 자원을 갖는 것을 보장하도록 TPM(30) 내외로 키 및 허가 세션을 스왑핑한다.
2.3 - GVTPM 보호된 저장 서비스
DM 내의 융통성을 유지하기 위해, GVTPM 프레임워크(40)는 어떠한 방식으로 각각의 DM이 기능하는지에 대해 비교적 소수의 요건을 부여한다. 일 실시예에서, 유일한 요건은 모든 지속 데이터(예를 들면, 키, 카운터, NVM 데이터 및 시스템 리부트를 가로질러 기능하기 위해 vTPM이 요구하는 임의의 다른 상태)가 로딩 중인 메모리를 활성화하도록 NVM으로부터 복사되고 이어서 필요할 때 NVM으로 복귀 저장되는 것이다. 이 요건에 따르면, PSS는 DM이 동작하지 않을 때 DM의 NVM을 보호하는 책임이 있다. DM이 로딩된 후에, DM이 실행될 때 데이터의 격리 및 보호를 제공하는 것이 TVMM의 책임이다.
예시적인 실시예에서, PSS(100)는 vTPM을 인증하고 vTPM의 상태가 미리 상태를 저장하는 vTPM 내로만 로딩되는 것을 보장한다. PSS(100)는 또한 저장된 상태의 무결성을 보장하고 재실행 방지 보호를 제공한다. 각각의 DM에 대한 오프라인 NVM을 보호하기 위해, PSS(100)는 TPM(30)에 기반을 두는 강력한 인증 및 보호 메카니즘을 제공한다. 이 인증은 NVM을 미리 저장한 DM의 PCS를 식별하고, NVM이 저장된 이후로 PCS가 변조되어 있지 않은 것을 보장한다. NVM을 로딩하는 PCS를 인증하는 것에 부가하여, 구성 요소 격리를 손상시키는 능력을 갖는 TVMM, GVTPM 관리자(110) 및 임의의 다른 코드가 NVM이 저장된 이후로 변조되지 않는 것을 TPM이 보장하는 것이 또한 중요하다.
이를 위해, 예시적인 실시예에서, GVTPM의 해시는 기초의 신뢰 연산 베이스(TCB) 내의 모든 소프트웨어의 해시와 마찬가지로 TPM(30)의 PCR 내에 저장될 수 있다. 일반적으로, 용어 TCB는 처리 시스템의 기초 보안 정책에 영향을 줄 수 있는 처리 시스템의 구성 요소를 총칭한다. 예를 들면, TCB는 하드웨어, 부트 코드, 커널, 시스템 동작을 제어하는 구성 파일 및 커널 또는 구성 파일을 변경하기 위한 특권 또는 액세스 권한을 갖고 실행할 수 있는 임의의 프로그램을 포함할 수 있다. 예시적인 실시예에서, TPM(30)은 GVTPM 구성 요소 또는 TCB의 변조를 검출할 수 있고, 부적절한 DM으로의 비밀의 공개를 방지할 수 있고, 적절한 메모리 보호가 여전히 적절한 것을 보호할 수 있다.
2.3.1 - NVM 저장
예시적인 실시예에서, 동작이 DM의 NVM을 변경할 때마다, DM은 그의 NVM을 저장하도록 PSS(100)에 대한 요구를 발행한다. 대안의 구현에서, DM은 가능한 한 낮은 보장 비용으로 성능을 증가시키도록 이들의 NVM의 저장을 지연시키도록 설계될 수 있다.
PSS(100)가 NVM을 수신할 때, NVM은 불투명 데이터로서 도달한다. NVM 데이터는 PSS(100)가 그가 수신하는 NVM 데이터를 분석하지 않기 때문에 불투명한 것으로 고려된다. PSS(100)는 넌스를 간단하게 생성하고 이어서 NVM 데이터 및 넌스를 암호화할 수 있다. 예시적인 실시예에서, PSS(100)는 암호화를 수행하도록 그 자신의 이주 불가능한 TPM 키를 사용하고, 이 키는 플랫폼 TCB, GVTPM 관리자(110) 및 PSS(100)의 측정치로 설정된 그의 PCR 바인드를 갖는다. PCR 바인딩을 사용함으로써, TPM(30)은 이 블랍(blob)이 단지 TCB 및 GVTPM 관리자(110)가 변형되지 않을 때 키에 의해 복호화될 수 있는 것을 보장한다. 다음에, PSS(100)는 암호화된 NVM 블랍의 사본을 DM에 제공할 수 있다.
일단, NVM이 저장되면, PSS(100)는 DM을 측정하고, PSS(100)는 DM의 측정치, NVM 블랍 신분 및 넌스를 지속 데이터베이스에 기록한다. 블랍의 해시는 양호한 고유의 식별자로서 기능할 수 있다. 이 DM이 미리 저장된 상태를 가지면, PSS(100)는 오래된 기록을 신규한 기록으로 덮어쓰기 할 수 있다.
2.3.2 - NVM 복원
예시적인 실시예에서, DM이 시동될 때, 이는 그의 미리 저장된 NVM이 PSS(100)에 의해 복원될 것을 요구한다. 이에 응답하여, PSS(100)는 먼저 블랍을 위한 식별자를 산출하여 PSS(100)가 데이터베이스 내의 기록을 검색할 수 있게 한다. 다음, PSS(100)는 DM을 측정하고 DM 측정치가 기록 내의 것에 정합하는지를 검증한다. 다음, PSS(100)는 블랍을 복호화하도록 그의 TPM 키를 사용하고, 내부의 넌스를 검증한다.
예시적인 실시예에서, NVM을 복원하기 전에, PSS(100)는 이하의 5개의 조건을 보장한다.
· NVM이 요구 DM에 대응함.
· NVM이 이 DM에 대한 가장 최근의 NVM임.
· NVM이 저장된 이후로 변경되지 않음.
· NVM 블랍이 PSS(100)에 의해 생성됨.
· TCB는 NVM이 저장된 이후로 변경되지 않음.
DM 측정의 비교는 조건 1에 부합하는 것을 보장한다. 성공적인 검색 및 성공적인 복호화의 조합은 조건 2 및 3이 또한 사실인 것을 지시한다. 비밀 넌스의 포함은 PSS가 이 블랍을 생성하고 PSS 공개 키를 사용하여 위조되지 않는 것을 지시하고, 따라서 조건 4를 보장한다. 마지막으로, 복호화를 수행하기 위한 PSS TPM 키의 성공적인 사용은 GVTPM 프레임워크 및 TCB가 모두 이들이 이전에 있던 것과 동일한 상태에 있다는 것을 TPM이 검증하는 것을 지시한다.
일단, 모든 5개의 조건이 검증되면, 불투명 NVM이 DM으로 복귀되고, DM은 그의 초기화를 통해 진행한다.
2.4 - 가상 제작자 기관
다수의 경우에, 소정의 키가 DM 내에 상주하고 이어서 소정의 GVTPM 환경에 상주하는 증거를 갖는 것이 중요하다. 하드웨어 TPM의 경우에, TPM 제작자는 EK가 TPM의 내부에서 보호되었다는 것을 진술하도록 보증 인증서에 서명하고, 플랫폼 제작자는 TPM이 TCG 순응성 플랫폼 내에 상주한다는 것을 진술하도록 플랫폼 인증서에 서명한다. GVTPM 프레임워크(40)에서, 각각의 가상 제작자 기관은 유사한 방식으로 작용하여, TCG 순응성 플랫폼 내의 GVTPM 프레임워크(40) 내의 특정 디바이스 모델에 순응하는 DM 내에 상주하는 키를 증명한다.
실제로, GVTPM 프레임워크(40)는 신뢰 인증 기관이 TPM 제작자 및 플랫폼 제작자 상황을 가상 제작자 기관에 위임하는 것을 허용한다. 예시적인 실시예에서, 가상 제작자 기관은 TPM 제작자, 플랫폼 제작자, 또는 양자 모두로서 작용하는 플랫폼 상의 특정 가능한 소프트웨어이다. 가상 제작자 기관은 가상화를 사용하는 플랫폼이 인증을 위해 요구되는 적절한 인증서를 갖는 신규한 vTPM을 보안적으로 생성하는 것을 허용한다.
도 5는 vTPM을 위한 보안 인증을 제공하기 위해 가상 제작자 기관을 준비하기 위한 예시적인 구성 요소 및 동작을 도시하고 있는 블록도이다. 도 5에서, 처리 시스템(20)의 하드웨어는 플랫폼 하드웨어(252)로서 집합적으로 도시되어 있다. 하드웨어는 TPM(30)을 포함한다. 하드웨어 상부에서 실행되는 것은 하나 이상의 신뢰 구획이다. 일 실시예에서, 이들 구획은 VM(60A) 및 vMA 구획(254)을 포함한다. VMM(64)은 제 3의 별개의 구획에서 동작할 수 있다. 구획의 하나 이상은 예 를 들면 가상 머신으로서 구현될 수 있다. 대안의 실시예에서, 구성 요소의 하나 이상은 보호된 구획을 공유할 수 있다.
예시적인 실시예에서, 가상 제작자 기관은 신뢰 구성 요소 내의 처리 시스템(20)에 국부적으로 상주한다. 예를 들면, 가상 제작자 기관(124)은 신뢰 VMM(64) 내에 또는 VMM(64)에 의해 지원되는 신뢰 구획(254)(예를 들면, 신뢰 VM) 내에 상주할 수 있다. 그러나, 대안의 실시예에서, 가상 제작자 기관은 이들이 측정될 수 있고 이 측정이 플랫폼의 TPM 내에 저장될 수 있는 펌웨어 또는 임의의 다른 보호 구획 내에 상주할 수 있다. vTPM은 또한 신뢰 구성 요소 내의 처리 시스템(20) 상에 국부적으로 상주한다. 예를 들면, vTPM(44A)은 예시적인 실시예에서 VM(60A)에 상주한다.
각각의 가상 제작자 기관은 TPM 인증서에 서명하기 위해 사용될 서명 키(250)를 TPM(30) 내에 생성한다. 예시적인 실시예에서, 가상 제작자 기관(124)으로부터의 인증을 의미 있게 하기 위해, 가상 제작자 기관(124)은 먼저 가상 제작자 기관(124)의 구성이 신뢰적이고 가상 제작자 기관(124)의 서명 키가 TPM에 의해 보호된다는 것을 제 3 집단(예를 들면, 외부 CA)에 확신시킨다. 이 제 3 집단은 가상 제작자 인증 기관(VMCA)으로 고려될 수 있다. 본질적으로, VMCA는 어느 GVTPM 환경이 신뢰적인 가상 TPM을 제조하는데 충분히 신뢰적인지를 판정하도록 프라이버시 CA에 의해 신뢰된 개체이다. 동일한 개체가 프라이버시 CA 및 VMCA로서 기능할 수 있고, 또는 도 1에 도시되어 있는 바와 같이 프라이버시 CA(76) 및 VMCA(77)은 개별 개체일 수 있고, 프라이버시 CA(76)가 vSC 프레임워크 및 DM에 적 절하게 액세스하도록 VMCA(77)를 신뢰한다.
예시적인 실시예에서, 처리 시스템(20)이 VMM(64)을 런칭할 때, 그리고 VMM이 구획(254)을 생성하고 이 구획에 가상 제작자 기관(24)을 로딩할 때, RCR(32) 내의 값은 화살표 270 및 271로 지시된 바와 같이 플랫폼의 진화를 반영하도록 변형된다.
화살표 272로 지시된 바와 같이, 가상 제작자 기관(124)은 이어서 가상 제작자 기관(124)의 상태에 바인딩된 TPM 서명 키(250) 뿐만 아니라 PCR(32)에 반영되어 있는 바와 같이 GVTPM 프레임워크(40), VMM(64) 및 임의의 다른 TCB 내의 구성 요소와 같은 가상 제작자 기관(124)의 무결성에 영향을 주는 임의의 소프트웨어를 생성한다. 다음에, 가상 제작자 기관(124)은 TPM(30)이 가상 제작자 기관(124) 이외의 임의의 개체가 이 TPM 서명 키를 허용하지 않을 수 있다는 것을 VMCA(77)에 입증한다.
가상 제작자 기관 및 TCB의 상태로의 바인딩은 가상 제작자 기관(124)이 GVTPM 프레임워크(40) 내에 매립된 정책에 따라 동작할 수 있는 것을 입증한다. 따라서, 가상 제작자 기관(124)은 지정된 플랫폼 및 소프트웨어 구성에 의해 제어되는 것을 입증한다. 따라서, 서명 키(250)는 GVTPM 프레임워크(40)에 의해 생성된 임의의 가상 TPM이 GVTPM 프레임워크(40) 내에 매립된 정책에 따라 동작할 수 있는 것을 검증한다. 다음에, VMCA(77)는 환경이 예를 들면 승인된 환경의 리스트를 참조하여 신뢰성이 있는지 여부를 판정할 수 있다.
예를 들면, 도 3의 가상 제작자 기관(124)은 가상 제작자 기관(124)을 위한 서명 키(250)가 TPM(30) 내에 상주하고 처리 시스템(20)이 서명 키가 생성될 때와 동일한 구성에 있을 때에만 가상 제작자 기관(124)에 이용 가능하다. 이러한 프로토콜의 일 예는 가상 제작자 기관(124)이 TPM(30) 내에 AIK를 생성하는 것이다. 표준 채널을 통해, 가상 제작자 기관(124)은 이어서 프라이버시 CA에 의해 서명되어 신분 키에 의해 수행된 임의의 청구가 신뢰 TPM에 의해 이루어지는 것을 증명하는 이 키에 대한 신분 인증서를 획득한다. 다음에, 이 신분 키는 TPM(30)이 서명 키가 신분 키와 동일한 TPM 내에 위치되는 진술에 서명하도록 신분 키를 사용하는 프로세스인 서명 키(250)를 증명하는데 사용되고, 서명 키는 가상 제작자 기관(124)을 지원하는 환경에 대한 신뢰를 보장하는 지정된 구성에 바인딩된다. 이 진술이 신분이 실제 TPM이라는 것을 진술하는 신분 인증서와 조합될 때, 가상 제작자 기관(124)의 서명 키(250)가 합법적인 TPM에 의해 보호되고 가상 제작자 기관(124)의 동작을 위한 신뢰를 제공하는 지정된 구성에 사용을 위해 이용 가능하다는 것이 유도된다.
일단, 가상 제작자 기관(124)이 특정 구성으로 바인딩된 TPM 서명 키를 갖는다는 것을 가상 제작자 기관(124)이 VMCA(77)에 확신시키면, VMCA(77)는 이 구성이 신뢰되도록 충분히 안전하지 여부에 대한 정보 제공된 판정을 수행한다. 이 구성이 충분히 신뢰성이 있는 것으로 간주되면, VCMA(77)는, VMCA(77)가 가상 제작자 기관의 서명 키에 보증 인증서 및 플랫폼 인증서에 대한 권한을 위임하는 것을 진술하는 서명 키의 공개 부분을 갖는 증명서를 생성한다. 이 증명서는 VMCA(77)의 판정을 신뢰하는 다른 CA의 네트워크를 통해 진행된다.
가상 제작자 기관의 인증서 및 가상 제작자 기관에 의해 서명된 인증서 상의 유효 기간은 GVTPM 프레임워크 및 그의 TCB의 리뷰가 얼마나 광범위한지에 비례할 가능성이 있다. GVTPM 프레임워크 또는 기초의 TCB의 취약성의 발견은 GVTPM DM의 신뢰의 제거를 초래할 수 있다. 이러한 상황 하에서, VMCA(77)는 가상 제작자 기관으로의 위임을 취소하기를 원할 수 있고, VMCA(77)가 이 가상 제작자 기관을 더 이상 신뢰하지 않는다는 것을 다른 CA의 네트워크에 일반적으로 통지할 수 있다. 예를 들면, 가상 제작자 기관(124)으로의 기관 위임 후에, VMCA(77)가 이어서 가상 제작자 기관(124)의 구성 및 그의 vTPM 아키텍처가 취약하다고 판정하면, VMCA(77)는 이 위임을 취소할 수 있다.
VMCA(77)가 가상 제작자 기관(124)으로부터 증명을 수락한 후에, 가상 제작자 기관(124)은 vTPM(44A)과 같은 가상 TPM의 신뢰성을 인증하기 위해 서명 키(250)를 사용할 수 있다. 구체적으로는, 예시적인 실시예에서, 가상 제작자 기관(124)은 화살표 274로 지시된 바와 같이 vTPM(44A)에 대한 정보에 기초하여 신규한 보증 및 플랫폼 인증서(260)를 생성하고, 가상 제작자 기관(124)은 VMCA(77)와의 부가의 상호 작용 없이 이들 인증서에 서명하도록 TPM(30)으로부터의 서명 키(250)를 사용한다. 따라서, 이 신규한 서명(262)은 화살표 276으로 지시된 바와 같이 완성된 증명서(280)를 생성하도록 증명서(260)에 첨부된다. 가상 제작자 기관에 의해 서명되어 있는 완성된 증명서(280)와 같은 증명서는 vMA 증명서 또는 vMA 인증서라 칭할 수 있다.
다음, 가상 TPM(44A)은 이들이 TPM 관리자 및 플랫폼 제작자에 의해 서명된 하드웨어 TPM에 대한 인증서인 것과 동일한 방식으로 vMA 인증서(280)를 사용할 수 있다. 따라서, 처리 시스템(20)은 높은 보안 보장을 여전히 제공하면서 실시간으로(즉, 외부 처리 시스템으로부터 인증서를 획득하는 것과 연관된 지연이 없음) vTPM(44A)과 같은 가상 보안 코프로세서를 생성할 수 있다.
전술된 바와 같이, 예시적인 실시예에서, 적어도 각각의 유형의 DM은 그 자신의 가상 제작자 기관을 갖는다. 예를 들면, 특정 GVTPM 프레임워크는 모든 TPM DM에 대한 하나의 가상 제작자 기관 및 각각의 전용 DM 디자인에 대한 상이한 가상 제작자 기관을 포함할 수 있다. 따라서, 가상 제작자 기관(124)은 예를 들면 vTPM(44A, 44B)을 서비스할 수 있다. 예시적인 실시예에서, 처리 시스템(20)이 vTPM(44A)과 같은 신규한 vTPM을 생성할 때, GVTPM 관리자(110)는 보증 인증서와 TPM(30) 및 vTPM 아키텍처가 상주하는 소프트웨어 플랫폼으로의 소프트웨어 확장을 적절하게 식별하는 플랫폼 인증서를 생성하도록 가상 제작자 기관(124)에 필요한 임의의 다른 정보와 함께 신규한 vTPM에 대한 보증 키를 가상 제작자 기관(124)에 제공한다. 다음에, 가상 제작자 기관(124)은 신뢰 CA에 의해 보증된 서명 키를 사용하여 이들 보증 및 플랫폼 인증서에 서명하는 책임이 있다.
상기 단락은 가상 제작자 기관이 가상 제작자 기관의 구성을 인증하도록 TPM으로부터 서명 키 및 신분 키를 사용하는 예시적인 실시예를 설명한다. 전용 보안 코프로세서와 같은 다른 유형의 보안 부시스템 및 다른 유형의 키가 대안의 실시예에 사용될 수 있다. 유사하게, 다른 접근이 가상 제작자 기관에 대한 구성이 실제로는 VMCA로서 기능하는 외부 CA에 수락 가능한지를 검증하는데 사용될 수 있다. 예를 들면, 외부 CA는 가상 제작자 기관이 미리 결정된 구성을 갖는 경우에만 비밀이 가상 제작자 기관에 의해 개봉될 수 있는 방식으로 키에 비밀을 봉인할 수 있다. 외부 CA가 가상 제작자 기관에 비밀을 전송한 후에, 가상 제작자 기관의 구성이 미리 결정된 구성에 정합하면, 가상 제작자 기관은 비밀을 개봉할 수 있다. 다음에, 가상 제작자 기관은 가상 제작자 기관이 비밀을 개봉할 수 있다는 것에 대한 증명을 외부 CA에 송신할 수 있다. 이에 응답하여, 외부 CA는 요구된 기관을 가상 제작자 기관에 위임할 수 있다. 다음, 가상 제작자 기관은 vTPM에 대한 인증서에 서명하도록 위임된 기관을 사용할 수 있다.
이하의 단락은 VMCA로부터의 확인 응답을 얻도록 가상 제작자 기관에 의해 사용될 수 있는 예시적인 프로토콜, 뿐만 아니라 이러한 인증서를 생성하기 위한 예시적인 방법을 설명한다. VMCA로부터의 확인 응답은 TPM 및 비-TPM 인증서에 서명할 필요가 있는 인증서를 가상 제작자 기관에 제공할 수 있다.
2.5 - vTPM 인증서
전술된 바와 같이, 각각의 가상 제작자 기관은 TPM 신분 키(AIK)를 먼저 생성하고 TCG 사양에 개략된 프로세스를 사용하여 신뢰 제 3 집단 CA(TTPCA)으로부터 신분 인증서를 획득할 수 있다. TTPCA는 예를 들면 TCG 프라이버시 CA일 수 있다. 다음에, 가상 제작자 기관은 현재 플랫폼 구성에 바인딩된 그의 서명 키를 생성한다. 예를 들면, 가상 제작자 기관(124)은 이주 능력 및 그가 바인딩되어 있는 PCR을 포함하는 서명 키의 특성에 서명하도록 가상 제작자 기관의 AIK를 사용하는 TPM(30)을 갖도록 TPM_CertifyKey 동작을 사용할 수 있다. 다음에, 가상 제작자 기관(124)은CertifyKey 결과를 신분 인증서와 함께 VMCA(77)에 송신할 수 있다.
일반적으로, VMCA(77)는 TCG 프라이버시 CA에 의해 서명된 신분 인증서를 신뢰해야 한다. 인증서는 신분 키가 유효 TPM 내에 상주하는 것을 지시하고, CertifyKey 증명서는 서명 키가 단지 특정 가상 제작자 기관 및 TCB에 대해서만 이용 가능하다는 것을 지시한다.
일단 VMCA(77)가 가상 제작자 기관(124)이 신뢰성이 있다는 것을 확신되면, VMCA(77)는 TPM 제작자 상황을 가상 제작자 기관(124)에 위임할 수 있다. 예를 들면, VMCA(77)는 위임 증명서를 생성하고 이 증명서를 TCG 프라이버시 CA에 분배할 수 있다.
다음, 가상 제작자 기관(124)은 DM[예를 들면, vTPM(44)]을 위한 보증 인증서 및 플랫폼 인증서를 생성하도록 위임된 TPM 제작자 상황을 사용할 수 있다. 이들 인증서 내의 모델 필드는 vTPM(44A)이 상주하는 하드웨어 및 소프트웨어 플랫폼 양자 모두를 지시할 수 있다. 일 실시예에서, 보증 인증서에 대해, 모델 필드는 하드웨어 TPM 모델 및 GVTPM 관리자(110)를 지시할 수 있다. 플랫폼 인증서에 대해, 모델 필드는 VMM(64) 및 유사한 소프트웨어를 포함하는 하드웨어 플랫폼 및 TCB를 지시할 수 있다.
2.6 - 비- vTPM 인증서
TCG 사양에 부합하지 않는 전용 DM[예를 들면, DM(44C)]은 보증 또는 플랫폼 인증서를 갖지 않아야 하지만, 여전히 유사한 인증서로부터 이익을 얻을 수 있다. 전용 DM의 개발자는 인증서를 발행하기 위한 명확한 목적으로 프라이버시 CA와 유사한 그 자신의 평가기 서비스를 동작시킬 수 있어, 개발자는 데이터가 이 키로 암호화되기 전에 키가 개발자의 DM의 인스턴스(instance)에 있는 것을 보장할 수 있다. 이를 수행하기 위한 정밀한 프로토콜은 전용 DM 및 이 DM에 대응하는 가상 제작자 기관을 설계하는 개체까지이다.
3.0 - 예시적인 vTPM 디바이스 모델 디자인
이 섹션은 vTPM을 생성하기 위한 두 개의 예시적인 DM 디자인을 설명한다. GVTPM 프레임워크(40)에서, 이들은 엄격한 보안으로부터 더 큰 성능 및 융통성의 스펙트럼의 대향 단부들에 대략 대응한다. 소프트웨어 기반 DM이라 칭하는 제 1 모델은 일단 vTPM이 TPM 하드웨어 내에 고정되면 소프트웨어가 VM 내의 OS에 완전한 TPM 기능성을 제공할 수 있다는 것을 인식한다. 모든 사설 키는 가상 TPM 내에 저장된 모든 다른 데이터와 마찬가지로 디바이스 모델의 메모리 내에 저장된다. 하드웨어 기반 DM이라 칭하는 제 2 모델에서, 모든 키가 하드웨어 TPM 내에 저장된다. 제 2 모델에서, 키가 사용될 때, 디바이스 모델은 키를 사용하도록 TPM에 요구를 발행한다. 제 1 모델에서, vTPM은 TPM의 성능 제한에 의해 방해받지 않고, 제 2 모델은 여전히 대부분의 요구를 서비스하도록 하드웨어 TPM에 의존한다. 정상 기능 중의 제 1 모델과 제 2 모델 사이의 보안 차이는 동일하다. 그러나, 절충이 발생된 후의 시스템의 최종 상태 및 그의 비밀은 모델 사이에서 상이하다.
플랫폼의 DM 또는 VMM이 절충되면, DM의 메모리 내에 저장된 모든 데이터가 절충될 수 있다. 절충 중에, 양 모델은 공격자가 이 vTPM 내의 키를 사용하는 것을 허용할 수 있다. 일단, 취약성이 패치되고 절충이 종료되면, 이들 키로의 액세스는 하드웨어 기반 DM에서 종료된다. 그러나, 소프트웨어 기반 DM의 경우에, 사설 키는 이들이 메모리 내에서 이용 가능하기 때문에 영구적으로 절충되어 있을 수 있다.
대부분의 환경에서, 소프트웨어 기반 접근은 적절한 보안 레벨을 성취할 수 있다. 그러나, 절충된 키를 취소하고 재생성하는데 더 비용이 많이 드는 환경에서는, 절충이 일시적일 수 있기 때문에 하드웨어 기반 접근이 적절할 수 있다. 이들 유형의 환경은 고성능, 고도의 변조 저항성 TPM이 중요한 공개 키를 보호하는데 사용되는 서버를 포함할 수 있다. 제안된 프레임워크는 특정 구현의 보장 요구에 부합하기 위한 바람직한 접근을 판정할 수 있는 권한자에게 이들 선택을 남겨둔다. 예를 들면, 몇몇 키 및/또는 데이터 구조를 수용하기 위해 TPM을 사용하는 혼성 접근이 특정 구현에 대해 적절할 수 있다.
3.1 - 소프트웨어 기반 vTPM 디바이스 모델
완전히 소프트웨어 기반 vTPM DM은 TPM 기능성을 제공하기 위한 하드웨어 TPM 자원을 거의 또는 전혀 사용하지 않는다. 일단 PSS 및 하드웨어 TPM이 DM 및 TCB가 DM의 인증서에 반영된 것들과 동일하다는 것을 보장하면, DM은 하드웨어 TPM과는 독립적으로 기능하도록 잔류된다. 모든 가상 PCR, 단조 카운터, 비휘발성 저 장 장치 및 다른 TPM 자원이 DM의 메모리 내에 저장되어 관리된다.
이 디자인의 장점은 디바이스 모델에 의해 노출되는 기능성이 하드웨어 TPM에 의해 제공되는 기능성 또는 성능에 의해 결코 손상되지 않는다는 것이다. 키가 강력할수록, 더 다수의 키 슬롯 및 더 많은 PCR이 모두 용이하게 지원된다. 게다가, 전형적인 하드웨어 TPM은 매우 자원 제약적이고 매우 고성능 디바이스는 아니다. 그러나, 소프트웨어 기반 DM의 성능은 하드웨어 TPM의 성능에 의해 속박되지 않는다. 예를 들면, 소프트웨어 기반 DM은 벌크 암호화를 지원할 수 있고, 반면 통상의 하드웨어 TPM에 의한 암호화는 극단적으로 느리다.
3.2 - 하드웨어 기반 vTPM 디바이스 모델
제 2 예시적인 vTPM 디바이스 모델이 하드웨어 TPM 내의 보호된 처리의 사용을 최대화하려고 시도한다. 하드웨어 TPM 자원의 주요 용도는 각각의 DM에 대한 모든 키가 하드웨어 TPM 내에 저장되고 사설 키가 메인 메모리에 절대로 저장되지 않는 것이다.
3.2.1 - 키 계층
이 섹션은 하드웨어 기반 디바이스 모델의 예시적인 실시예에 이용되는 전체 키 계층을 설명한다. 본 예시적인 실시예는 도 3에 도시되어 있는 바와 같이 VM(60A)을 위한 vTPM으로서 기능하는 DM(44A)의 개념에서 설명된다.
도 2를 재차 참조하면, TPM(30)은 일반적으로 표준 보증 키(hwEK)(52) 및 저 장 루트 키(hwSRK)(50)를 유지한다. 부가적으로, 키 바인딩 키(KBK)(160)로서 공지된 AIK가 vTPM 키를 보호하는데 사용된다.
또한, 각각의 DM은 각각의 VM에 대한 하드웨어 TPM을 모방하기 위한 적절한 키 및 데이터 구조를 가질 수 있다. 예를 들면, 예시적인 실시예에서, DM(44A)은 가상 EK(vEK)(150) 및 그의 어미 키가 hwSRK(50)인 가상 SRK(vSRK)(152)를 갖는다. vSRK에 어미화되어, 가상 서명 키(vSigK)(154), 가상 저장/암호화 키(vEncK)(156) 및 가상 신분 키(vAIK)(158)가 존재한다. 하드웨어 TPM을 모방하기 위한 각각의 DM 내의 부가의 구조는 가상 PCR(vPCR)(92) 및 가상 DIR(vDIR)(94)을 포함할 수 있다. 각각의 DM은 또한 가상 EK 인증서(vEK_Cred)(96) 및 하나 이상의 가상 AIK 인증서(vAIK_Cred)(98)와 같은 데이터를 포함할 수 있다.
도 2의 우하측 코너에 범례에 의해 지시되어 있는 바와 같이, 저장 키는 채워져 있지 않은 타원으로서 도시되어 있고, 인증 신분 키(AIK)는 수평 라인으로 채워진 타원으로서 도시되어 있고, 서명 키는 도트의 패턴으로 채워진 타원으로서 도시되어 있다. 게다가, 굵은 타원은 TPM(30)의 PCR(32)에 바인딩된 키를 표현한다. 키들 사이의 라인은 키들 사이의 어미/자손 관계를 지시한다. 예를 들면, 이들 라인은 SRK(50)가 각각의 DM 내의 특정 가상 키에 대한 어미 키라는 것을 지시한다. 인증서는 평행사변형으로 표현되어 있다.
일 실시예에서, vTPM 내의 가상 키 및 다른 구조 또는 객체는 하드웨어 TPM 키 또는 객체와 동일한 구조를 가질 수 있지만, 가상 TPM 내의 가상 객체는 EK(52), SRK(50) 및 PCR(32)과 같은 TPM(30) 내의 표준 객체를 참조하지 않는다. 대신에, 더 상세히 후술되는 바와 같이, 각각의 가상 TPM은 vEK(150) 등과 같은 그 자신의 개별 객체를 얻는다. 이들 가상 객체는 하드웨어 TPM의 객체에 기초하거나 이로부터 유도될 수 있다. 예를 들면, 예시적인 실시예에서, 가상 SRK 및 가상 EK는 하드웨어 SRK의 자손이거나, 또는 네스팅된 vTPM의 경우에, 가상 SRK는 하드웨어 SRK에 최종적으로 기초한다. vTPM 키가 vSRK 내에 근원하는 것을 허용함으로써, 이 모델은 vTPM 네스팅을 허용한다.
vEK(150), vSRK(152) 및 vPCR(92)과 같은 가상 TPM 객체는 이어서 vSigK(154), 가상 AIK(vAIK)(158) 및 가상 저장/암호화 키(vEncK)(156)와 같은 DM(44A) 내의 부가의 가상 객체에 기초하여 기능할 수 있다. 예시적인 실시예에서, 각각의 DM은 동일한 애플리케이션 프로그램 인터페이스(API)를 갖는 대응 하드웨어 디바이스에 의해 제공되는 모든 기능을 제공할 수 있다. 예를 들면, DM(44A)은 그 자신의 vDIR(94), vPCR(92), vAIK(158) 들을 포함할 수 있다. 따라서, 각각의 VM 내의 게스트 OS는 대응 vTPM이 hwTPM이 아니라는 것을 완전히 인식하지 않을 수 있다. 따라서, VM은 레가시 OS 코드를 사용할 수 있다. 게다가, 예시적인 실시예에 따르면, 통상의 hwTPM을 갖는 처리 시스템은 hwTPM에 대한 임의의 변형을 필요로 하지 않고 vTPM을 제공하도록 구성될 수 있다.
가상 머신 아키텍처는 가상 키 및 관련 데이터를 보호하도록 하드웨어 TPM을 수단화할 수 있다. 일 실시예에서, vTPM 키 계층 및 관련 데이터가 표준 hwTPM 내에 보호된다. 예를 들면, 가상 TPM 키는 데이터가 먼저 암호화되지 않으면 하드웨어 TPM 내에 저장되고 결코 그로부터 해제될 수 없다. 따라서, 가상 TPM이 절충되 면, 연관된 vTPM의 공개 부분은 가능하게는 단지 절충의 기간 동안에만 비인증 사용을 받게 될 수 있다. 예시적인 하드웨어 기반 실시예에서, 모든 키는 하드웨어 TPM 내부에 잔류할 수 있고, 따라서 일단 절충이 종료되면 사설 키가 도난되거나 또는 사용될 수 없다.
본 발명에 따른 처리 시스템은 또한 vTPM이 통상의 TPM 인증 서비스를 제공하는 것을 허용하는 인증 프로토콜 아키텍처를 제공한다. 가상 TPM의 인식이 없는 원격 챌린저는 인증 프로세스에 완전히 참여할 수 있다. 더욱이, vTPM 인식을 갖는 원격 챌린저는 부가의 프로토콜 없이 vTPM으로부터 hwTPM을 구별하는 것이 가능할 수 있고, 이어서 vTPM을 호스팅하는 플랫폼이 신뢰되는지 여부를 판정할 수 있다. 원격 챌린저는 한정적인 것은 아니지만 검증적으로 안전한 클라이언트에만 데이터를 제공하는 개체를 포함할 수 있다. 이러한 챌린저는 제 3 집단 데이터 공급자라 칭할 수 있다.
전술된 바와 같이, 예시적인 하드웨어 기반 모델에서, 각각의 DM을 위한 모든 키가 TPM(30)에 저장된다. TPM(30)의 능력 및 특정 구현을 위한 특정 보안 요건에 의존하여, 인증서(96, 98), vPCR(92), vDIR(94) 등과 같은 다른 구조 및 데이터 아이템의 하나 이상이 또한 하드웨어 TPM 내에 저장될 수 있거나, 또는 이들은 GVTPM 프레임워크(40)의 PSS(100) 내에 저장될 수 있다.
프라이버시 CA가 플랫폼에 대한 신분 인증서를 생성할 때, 프라이버시 CA는 플랫폼에 신분 인증서를 전송하기 전에 플랫폼의 EK로 신분 인증서를 암호화한다. 일 실시예에서, VM(60A)은 프라이버시 CA(76)와 상호 작용하는 플랫폼으로서 동작 하고, VM(60A)은 하드웨어 기반 vTPM 디바이스 모델[예를 들면, DM(44A)]을 사용한다. 따라서, 프라이버시 CA(76)는 VM의 vEK(150)로 신분 인증서[예를 들면, vAIK_Cred(98)]를 암호화할 수 있다. 이 암호화는 전송 중에 인증서를 보호한다. VM(60A)이 프라이버시 CA로부터 신분 인증서를 수신할 때, VM(60A)은 이 인증서를 복호화하도록 DM(44A)으로부터 vEK의 사설 키를 사용한다. vAIK_Cred(98)는 TCG 바인딩된 데이터 구조에 있지 않기 때문에, vEK(150)는 이 인증서의 복호화를 지원하기 위해 TPM 레가시 키이어야 한다.
예시적인 실시예에서, vSRK(152) 및 vEncK(156)는 전통적인 TPM 저장 키이고 특정 주의를 필요로 하지 않는다. 유사하게, vSigK(154)는 전통적인 TPM 서명 키이고 특정 주의를 필요로 하지 않는다. 그러나, 신분 키는 단지 인용된 PCR 값에 서명 가능하다. 이는 AIK로서 구현되는 경우 vAIK가 DM 메모리 내에 저장된 가상 PCR에 서명하는 것이 불가능하다는 것을 의미하는데, 이는 이들이 hwTPM(30) 외부에 있는 데이터이기 때문이다. 따라서, vAIK(158)는 TPM 서명 키로서 구현될 수 있다. 인용 구조가 DM(44A) 내의 가상 PCR(92)에 대해 구성되고 이어서 vAIK로 서명될 수 있다. 마지막으로, KBK(160)는 전통적인 바인딩 키이다.
3.2.2 - TPM 키 상에서의 가상 PCR 의 실시
하드웨어 TPM[예를 들면, TPM(30)] 및 vTPM을 사용하는 VM[예를 들면, DM(44A)을 사용하는 VM(60A)]은 현재의 PCR 값의 상이한 개념을 갖는다. vTPM과 TPM 사이의 정보 흐름이 일정하게 유지되는 것을 보장하기 위한 주의가 취해져야 한다. VM이 키가 vTPM 내에 생성되는 것을 요구할 때, 이 요구는 게스트가 바인딩이 가상적인 것이라는 것을 인식하지 않을 지라도 vPCR 바인딩에 의해 수반된다. 이 요구가 하드웨어 TPM으로 포워딩될 때, 요구 내의 PCR 필드는 정확한 hwPCR 바인딩으로 해석되어야 한다. DM은 GVTPM + TCB를 바인딩으로서 사용하거나 또는 성능을 위해 이들을 생략할 수 있다. 따라서, 하드웨어 TPM으로부터 복귀된 결과적인 신규하게 생성된 래핑된 키는 VM에 의해 요구되는 vPCR 바인딩을 포함하지 않을 것이다. 래핑된 키는 이들 바인딩을 포함하지 않기 때문에, 공격자가 원본 래핑된 키를 획득하여 이를 직접 하드웨어 TPM 내에 로딩하면 공격자가 vTPM을 바이패스할 가능성이 있을 수 있다.
부가적으로, 하드웨어 TPM에 의해 복귀된 래핑된 키는 TPM 버전, PCR 바인딩, 공개 키, 암호화된 사설 키 및 요구자에 복귀되는 다른 정보를 포함하는 TCG_KEY 구조이다. 버전 및 PCR 바인딩 정보는 하드웨어 TPM의 것이고, vTPM의 것은 아니다. 투명성을 보존하기 위해, vTPM에 의해 복귀된 TPM_KEY 구조는 vPCR 바인딩 및 vTPM 버전 정보를 가져야 한다. 일 실시예에서, 이 과제를 처리하기 위해, vTPM에 의해 복귀된 래핑된 키는 하드웨어 TPM에 의해 복구된 래핑된 키의 변형된 형태일 수 있다. 본 개시 내용을 위해, vTPM에 의해 복귀된 래핑된 키는 vTPM 이중 래핑된 키라 칭할 수 있다.
도 4는 vTPM 이중 래핑된 키의 예시적인 실시예의 블록도를 도시하고 있다. 도 4에서, vTPM 래핑된 키(210)는 TPM(30)에 의해 복귀된 래핑된 키(200)의 변형된 형태이다. 일 실시예에서, VM(60A) 내의 DM(44A)이 신규한 vAIK를 생성할 때와 같 이 VM(60A)이 신규한 키가 vTPM(44A)에 의해 생성되는 것을 요구할 때마다 이하의 동작이 수행될 수 있고, 처리 시스템(20)은 TPM(30) 내에 이 키를 저장하도록 진행된다.
vTPM 래핑된 키(210)에서, 구조의 모든 공개 부분은 투명성을 보장하기 위해 그대로 잔류한다. 또한, 블록 214에 예시되어 있는 바와 같이, TCG_KEY 구조의 암호화된 사설 키 섹션(216)은 hwPCR 바인딩, 이 키를 사용하기 위한 허가, 하드웨어 TPM의 버전, 키의 공개 부분의 다이제스트 및 vTPM 디바이스 모델[예를 들면, DM(44A)]에 판독 불가능한 원본 암호화된 사설 키 섹션을 포함하도록 확장될 수 있다. 블록 212에 지시되어 있는 바와 같이, TCG_KEY 구조의 공개 부분의 PCR 바인딩은 vPCR 바인딩으로 대체될 수 있고, 버전은 vTPM의 것으로 설정될 수 있다. 사설 부분에 저장된 다이제스트는 이들 변형을 반영할 수 있다. 마지막으로, 확장된 사설 키 섹션(216)은 KBK(160)(전술됨)로 암호화될 수 있다. 결과는 예측된 버전 및 vPCR 바인딩을 갖는 TCG_KEY(210) 및 하드웨어 TPM으로 통과되면 적절하게 복호화될 수 없는 판독 불가능한 암호화된 섹션이다.
사용을 위해, 사용자로 복귀된 키는 가상 TPM[예를 들면, DM(44A)]에 로딩되어야 하고, 이 키는 사설 키 섹션(216)을 복호화하고, 가상 PCR 바인딩(212)을 검증하고, 원본 래핑된 키(200)를 재구성할 수 있다. 일단 vPCR 및 허가가 검증되면, DM은 사설 키 섹션(216)의 사본(204)을 포함하는 원본 래핑된 키(200)를 TPM 내에 로딩한다. 원본 래핑된 키(200)는 유사하게 하드웨어 TPM에 의해 복호화될 수 있고, 하드웨어 PCR 바인딩(202)은 키(200)가 완전히 로딩되어 사용을 위해 이 용 가능하기 전에 검증될 수 있다.
3.2.3 - 다른 디바이스 모델 자원
가상 TPM 디바이스 모델은 다수의 DM을 가로질러 다른 TPM 자원의 대부분을 공유하는 것이 불가능할 수 있다. 단조 카운터는 일반적으로 비배제적인 카운터 사용으로 애플리케이션을 변경하지 않고 공유될 수 없으며, 따라서 특정 DM에 영구적으로 할당되거나 또는 소프트웨어 기반 디바이스 모델의 것과 유사한 소프트웨어에서 구현될 수 있다. vTPM 비휘발성 저장 장치는 하드웨어 TPM의 저장을 초과하지 않는 한 하드웨어 TPM에 저장될 수 있다. 하드웨어 TPM의 저장이 부적절하면, 비휘발성 저장 장치는 또한 소프트웨어 기반 DM의 것과 유사하게 가상화될 수 있다.
VM은 다수의 TPM 기능을 사용하기 위해 허가 세션을 생성하는 것이 가능해야 하지만, 이는 일반적으로 vTPM 디바이스 모델에 의해 직접 취급되는 기능과 하드웨어 TPM으로 통과되는 기능 사이에 구별되어야 할 필요는 없다. 일 실시예에서, 단일 사용자 허가 세션 하에서 자신과 하드웨어 TPM 양자 모두로부터 TPM 기능성을 명백하게 제공한다.
이를 성취하기 위해, DM은 VM 및 하드웨어 TPM 양자 모두를 갖는 개별 허가 세션을 유지한다. 즉, 사용자는 정상 상태로서 DM을 갖는 허가 세션을 생성할 수 있다. DM은 하드웨어 TPM이 수행할 수 있는 이 세션에 기초하여 모든 동일한 허가 검사를 수행할 수 있다. DM이 요구된 기능을 직접적으로 제공하면, DM은 세션 넌 스 및 회답을 간단하게 갱신할 수 있다. DM이 서비스를 제공하도록 하드웨어 TPM을 필요로 하면, DM은 하드에어 TPM에 의해 그가 갖는 현존하는 인증 세션을 생성하거나 재사용할 수 있고 요구를 수행한다. 일단 DM이 하드웨어 TPM을 사용하여 수행되면, 이는 사용자의 세션 및 회답에서 넌스를 갱신할 수 있다.
4.0 - 하드웨어 최적화
전술된 프레임워크는 단일의 통상의 TPM을 사용하여 다중 게스트에 TPM 능력을 제공할 수 있다. 프레임워크는 TPM 기능성을 제공하도록 소프트웨어 또는 하드웨어 TPM을 사용할 수 있지만, 가상 PCR을 실시하기 위한 TPM을 사용하는 것은 성가실 수 있다. 이 섹션은 하드웨어 기반 디바이스 모델을 최적화하고 단순화하기 위한 TPM 특징을 설명한다. 이들 특징은 이하의 사항을 포함한다.
· 가상 PCR
· 가상 인증 신분 키
· 가상 EK
전형적인 통상의 TPM은 TPM이 키 바인딩을 실시하고 vPCR 인용문을 제공하는 것을 허용하도록 vPCR을 저장하는 것이 불가능할 수도 있다. 이는 DM이 vPCR을 실시하여 관리하는 이중 래핑된 키에 대한 필요성을 초래한다. vPCR을 저장할 수 있는 변형된 TPM은 상당한 복잡성을 제거하고 증가된 성능을 제공한다. 본 출원인과 동일한 양수인에게 양도된 미국 특허 출원 제 11/095,034호는 가상 머신을 위한 PCR 및/또는 vPCR을 지원하는 기술을 논의하고 있다.
일단 vPCR이 변형된 TPM에서 이용 가능하면, AIK는 이들을 인용하는 것이 가능해야 한다. 일 실시예에서, 변형된 TPM은 주 PCR보다는 vPCR을 인용하는 가상 AIK(vAIK)를 생성하는 능력을 갖는다.
마지막으로, PCR을 효율적으로 인용하기 위해, vAIK는 신분 인증서를 요구한다. 전술한 바와 같이, 신분 인증서는 EK로 암호화된다. 일 실시예에서, 변형된 TPM은 vAIK에 대한 인증서를 복호화할 수 있는 vEK에 대한 지원을 포함한다.
이들 변경에 의해, GVTPM 프레임워크(40) 내의 하드웨어 기반 DM의 성능이 증가되는 동시에 프레임워크의 복잡성을 감소시키고 따라서 그의 신뢰성을 증가시킬 수 있다.
5.0 - 가상 TPM 의 원격 전개 및 설치
플랫폼 상의 TPM의 사용은 소프트웨어 및 데이터 분배를 위한 신규한 과제를 생성할 수 있다. 예를 들면, 조직 내의 정보 기술(IT) 부서는 소프트웨어 빌드 또는 패치를 생성하고, 이어서 빌드 또는 패치를 조직을 가로지르는 수백 또는 수천의 머신에 추진해야 한다. TPM은 TPM이 키를 보호하고 데이터를 봉인하는데 사용되는 방식에 기인하여 이 프로세스에 신규한 동역학을 추가한다. 머신에 신규한 소프트웨어 패키지를 분배하기 위해, IT 부서는 머신의 TPM에 분배되는데 필요한 이 소프트웨어에 의해 요구되는 임의의 키를 발견할 수 있다.
이하의 단락은 어떠한 방식으로 vTPM이 하나의 머신(예를 들면, 서버)에 설치되고 이어서 vTPM을 사용하도록 예측되는 소프트웨어를 갖는 다른 머신(예를 들 면, 클라이언트)에 분배될 수 있는지를 설명한다. 후술되는 접근에 대한 예시적인 사용 모델은 비즈니스 기업이지만, 이 접근 또는 다른 변형예는 vTPM의 서비스의 고객이 클라이언트 시스템이 특정 개체로부터의 소프트웨어를 실행할 때와 같은 서비스를 제공하는 개체와 충분히 밀접한 관계에 있고 클라이언트 시스템이 동일한 개체에 의해 제공된 데이터로의 액세스를 위해 이 소프트웨어를 사용하는 임의의 환경에 사용될 수 있다. 예를 들면, 의사의 사무실의 클라이언트 시스템은 보험 회사로부터 이 vTPM을 사용하기 위해 콘텐트 뷰어와 함께 vTPM을 획득할 수 있다. 클라이언트 시스템은 이어서 보험 회사로부터의 보호된 보험 기록에 액세스하기 위해 이 콘텐트 뷰어를 사용할 수 있다. 예시적인 실시예에서, 단지 개체가 vTPM을 신뢰하는데 필요한 것은 vTPM을 제공하는 동일한 개체인 보험 회사이다.
원격으로 설치된 vTPM은, 정상의 vTPM과는 달리 그가 동작할 수 있는 플랫폼의 외부에 생성된다. 이는 가상 제작자 기관이 더 이상 vTPM에 대한 보증 인증서 및 플랫폼 인증서 양자 모두에 서명하지 않을 수 있다는 것을 의미한다. 예시적인 설치 환경에서, IT 부서는 vTPM을 제조하고, 이 vTPM에 대한 보증 키를 생성하고, 보증 인증서에 서명하고, 이어서 vTPM 및 보증 인증서를 목적지 머신에 송신한다. 일단 vTPM이 목적지 머신 내에 삽입되면, 가상 제작자 기관은 신규한 vTPM에 대한 플랫폼 인증서를 생성하고 이를 서명할 수 있다. 이들 두 개의 인증서에 대한 서명은 챌린저가 신뢰해야 하는 두 개의 개체를 식별한다. IT 부서는 사설 보증 키 뿐만 아니라 vTPM 내에 미리 로딩되는 임의의 다른 키로의 액세스를 가지므로, IT 부서는 보증 인증서에 서명한다. vTPM 아키텍처 구성 요소[예를 들면, GVTPM 프레 임워크(40)] 및 플랫폼의 격리 메카니즘은 vTPM을 소프트웨어 플랫폼 내로 통합한다. 이들은 잠재적으로는 vTPM 내에 저장된 비밀에 대한 액세스를 갖는다. 따라서, 이들 개체는 또한 챌린저에 의해 신뢰되어야 한다. 따라서, 플랫폼 인증서는 가상 제작자 기관에 의해 서명된다.
챌린저가 보증 인증서에 서명하는 개체 및 플랫폼 인증서에 서명하는 개체를 신뢰하지 않으면, 챌린저는 이 vTPM으로부터의 인증을 거절할 수 있다. 기업의 경우에는, IT 부서가 vTPM, vTPM 플랫폼 및 챌린저 소프트웨어의 제조를 제어할 가능성이 있다. 따라서, 이들 개체 사이에는 고유의 신뢰가 존재한다. 유사하게, 콘텐트 공급자는 vTPM 및 관련 챌린저 소프트웨어의 제조를 제어할 수 있다. 따라서, 이러한 콘텐트 공급자는 단지 vTPM 플랫폼을 신뢰할 필요가 있을 수 있다.
예로서, 전개를 위한 메카니즘은 vTPM을 목적지의 PSS에 전달하는 것이다. 이러한 것이 어떠한 방식으로 성취되는지는 PSS 및 GVTPM 관리자의 구현에 의존한다. 예시적인 구현에서, PSS는 어느 PSS가 외부 개체가 하드웨어 TPM에 의해 보호되고 특정 vTPM 아키텍처에 바인딩되어 있는지를 증명할 수 있는 저장 키를 유지한다. 이 키는 상태를 저장하는데 사용되지만, 이는 또한 상태를 수신하는데 사용될 수도 있다. 이하의 단계는 어떠한 방식으로 이 전송이 발생할 수 있는지를 예시한다.
1) 설치자는 신규한 vTPM 및 vTPM 내에 요구되는 모든 키를 생성한다. 또한, 설치자는 이 vTPM에 대한 신규한 보증 인증서를 생성하여 서명한다.
2) 설치자는 목적지 PSS가 재실행 방지 넌스를 제공하도록 요구한다.
3) PSS는 넌스 및 선택적으로는 PSS의 공개 키를 설치자에게 송신한다. 이 키는 이전의 통신으로부터 이미 공지되어 있을 수 있다.
4) 다음에, 설치자는 신규한 vTPM의 상태 및 단계 3으로부터 PSS의 저장 키로의 넌스를 암호화한다.
5) 설치자는 PSS에 암호화된 블랍을 vTPM에 대한 보증 인증서와 함께 송신한다.
6) PSS는 vTPM 상태를 수신하고, 이를 복호화하고, 이를 모든 오프라인 vTPM인 것과 같이 봉인하고, 이를 공지의 vTPM으로서 기록한다. 이 vTPM은 이제 공식적으로는 PSS의 플랫폼의 부분이다.
7) PSS에 대한 가상 제작자 기관은 vTPM에 대한 플랫폼 인증서를 생성한다.
PSS는 이제 로딩되고 임의의 다른 것일 수 있는 것처럼 vTPM을 사용한다.
TPM 키를 요구하는 소프트웨어가 클라이언트에 분배되어야 할 때, vTPM이 서버에 생성되어 이어서 클라이언트에 전달되는 대신에 클라이언트 시스템에 생성되면, 서버는 일반적으로 vTPM을 생성하도록 클라이언트에 명령하고, 이어서 클라이언트가 소프트웨어에 의해 요구되는 각각의 키를 생성하는 동안 대기할 필요가 있다. 다음, 클라이언트는 생성된 키의 공개 키 부분을 서버에 송신하고, 서버는 이어서 전개를 위해 애플리케이션 및 데이터를 생성하도록 이들 공개 키를 사용할 수 있다. 수백 또는 수천의 클라이언트가 갱신되어야 하면, 이 프로세스는 완료하는데 장시간을 소요할 수 있다. 더욱이, 서버는 키를 생성하는 환경의 제어를 갖지 않는다.
키를 생성하는 개체가 또한 챌린저(즉, 인증을 요구하거나 다른 방식으로 키에 의존할 수 있는 개체)일 수 있을 때, 본 발명에 의해 도입된 접근은 이들 키를 지원하기 위해 필수 키 및 vTPM을 생성하기 위한 더 신속하고 더 효율적인 방법을 제공할 수 있다.
도 2에 나타낸 바와 같이, TPM과 마찬가지로, vTPM은 vTPM의 상태를 구성하는 데이터를 저장하기 위한 구조를 포함한다. 예를 들면, vTPM에 대한 상태의 일부가 PCR 및 DIR에 저장된다. 게다가, vTPM의 상태는 다양한 키, 인증서, 카운터 등을 포함할 수 있다. 본 개시 내용을 위해, vTPM에 대한 상태 데이터의 상당한 부분을 생성하는 것이 vTPM을 생성하는 것으로 고려될 수 있다.
특히, 본 개시 내용을 위해, EK의 생성은 vTPM의 생성을 구성한다. 전술된 바와 같이, 일단 vTPM이 생성되어 있으면, 이는 타겟 시스템으로 전달될 수 있다. 이 vTPM에 대한 상태의 나머지는 플랫폼, VMM 또는 VM이 vTPM의 소유권을 취득할 때 생성될 수 있다. vTPM을 생성하고 이를 다른 처리 시스템에 전달하는 프로세스는 일반적으로 vTPM의 원격 설치 및 전개라 칭할 수 있다.
6.0 - 가상 TPM 이주
몇몇 환경에서, TPM의 고정된 특성이 중요하다. 그러나, 몇몇 환경은 플랫폼을 가로지르는 TPM의 제어된 이동성으로부터 이점을 얻을 수 있다. TCG는 제 3 집단 개입에 의해 단일 키가 하나의 TPM으로부터 다른 TPM으로 이주될 수 있는 메카니즘을 승인한다. 그러나, 이 메카니즘은 특히 하나 이상의 키가 이주될 필요가 있을 때 성가실 수 있다. 이하의 단락은 제어된 방식으로 플랫폼으로부터 플랫폼으로 vTPM을 이주하는 신규한 방법을 소개한다. 예시적인 실시예에서, 이주되는 각각의 키에 대한 제 3 집단 개입을 필요로 하지 않고 모든 키가 동시에 이주된다.
후술되는 이주의 방법은 중요한 보장을 제공한다. 예를 들면, vTPM이 특정 보안 특성을 갖도록 통지되면, 키가 vTPM 내에 생성될 때, 이 키에 대한 모든 이해 당사자(stakeholder)는 이 vTPM이 다른 플랫폼으로 이주되면 이들 보안 특성이 또한 신규한 플랫폼 내에 존재할 수 있다는 것을 보장해야 한다. 또한, vTPM이 이주될 때, VTPM 상태가 소스 플랫폼으로부터 목적지 플랫폼으로 복사되지 않고 이동되어야 한다.
이주 정책은 통지된 보안 특성의 보증을 지원하는데 사용된다. 이 정책은 특정 vTPM이 이 플랫폼으로 이주되도록 하기 위해 vTPM 아키텍처 및 이 아키텍처를 보호하는 플랫폼 메카니즘에 대한 기준을 결정한다. 부가적으로, 이 정책은 엄격하게 실시된다. 예시적인 실시예에서, 가상 제작자 기관은 이주 정책을 실시하기 위한 용도로 기능하며, 가상 제작자 기관은 이주 정책당 하나의 키(예를 들면, 서명 키)를 유지한다. 가상 제작자 기관이 제작자 상황을 얻기 위해 신뢰 CA에 등록할 때, 가상 제작자 기관은 또한 가상 제작자 기관이 이 서명 키로 서명하는 인증서를 갖는 임의의 vTPM에 대한 가상 제작자 기관에 의해 실시될 수 있는 이주 정책을 식별하도록 데이터를 송신한다.
예시적인 실시예에서, 이주 가능한 vTPM의 생성을 지원하기 위해, GVTPM 관리자(110)가 일반적으로 취급하도록 요구되는 vTPM 관리 기능에 부가하여, GVTPM 관리자(110)는 VTPM 생성 중에 이주 가능한 또는 이주 불가능한 것으로서 vTPM을 선언할 수 있다. 이주 가능한 vTPM은 어떠한 이용 가능한 이주 정책이 사용될 수 있는지를 지시하도록 부가의 사양을 요구할 수 있다. 예를 들면, 가상 제작자 기관이 보증 인증서 및 플랫폼 인증서를 생성할 때, 가상 제작자 기관은 vTPM이 이주 가능한 것을 지시하는 모델 번호를 사용할 수 있고, 그의 이주 가능한 vTPM 제작자 키로 인증서에 서명할 수 있다. 즉, 가상 제작자 기관은 이주 가능한 vTPM의 제작자에 속하는 것으로서 인식되는 서명 키로 인증서에 서명할 수 있다.
따라서, 일 실시예에서, 이주 가능한 vTPM은 하나의 서명 키에 의해 서명된 이들의 보증 인증서를 획득하고, 이주 불가능한 vTPM은 상이한 서명 키에 의해 서명된 이들의 보증 인증서를 획득한다. 이 방법론은 이주 가능한 vTPM의 더 양호한 식별을 허용한다. 몇몇 실시예에서, 하나의 가상 제작자 기관은 이주 가능한 vTPM에 대한 인증서에 서명하고, 상이한 가상 제작자 기관은 이주 불가능한 vTPM에 대한 인증서에 서명한다.
이주를 위한 예시적인 메카니즘은 소스 플랫폼 상의 PSS가 목적지 플랫폼 내의 PSS로 이주 가능한 vTPM의 상태를 전달하는 것이다. 이 전달이 어떠한 방식으로 성취되는지는 PSS 및 GVTPM 관리자의 구현에 의존한다.
예시적인 구현에서, PSS는 어느 PSS가 외부 개체가 하드웨어 TPM에 의해 보호되고 특정 vTPM 아키텍처에 바인딩되어 있는지를 증명할 수 있는 저장 키를 유지한다. 이 키는 상태를 저장하는데 사용되지만, 이는 또한 상태를 수신하는데 사용될 수도 있다. 제 1 플랫폼 내의 PSS(PSS 1)가 제 2 플랫폼 내의 PSS(PSS 2)로 vTPM을 이주하기를 원하면, 이하의 단계들이 실행될 수 있다.
1. PSS 1은 PSS 2가 그의 저장 공개 키 및 이 키의 바인딩에 대한 증명을 전송할 것을 요구한다.
2. PSS 2는 그의 저장 공개 키 및 넌스를 PSS 1에 송신한다.
3. PSS 1은 PSS 2의 상태에 vTPM에 대한 정책을 평가한다. PSS 1은 정책이 PSS 2의 상태가 신뢰적이어서 vTPM의 안전한 동작을 제공하고 다음의 이주를 위해 이 정책을 계속 유지한다는 것을 선언하면 단지 vTPM만을 이주시켜야 한다.
4. PSS 2가 통과되면, PSS 1은 vTPM이 실행되지 않는 것을 보장한다. 다음에, PSS 1은 이하의 사항, 즉 vTPM의 지속 상태, 단계 2로부터의 넌스 및 이 상태가 실행되어야 하는 정확한 vTPM의 측정을 PSS 2의 저장 키에 암호화한다.
5. PSS 1은 공지의 vTPM의 리스트로부터 이 vTPM에 대한 기록을 삭제한다. 이는 이 상태가 이 서비스로 재로딩될 수 없고 이주가 종료될 때 이 vTPM이 단지 PSS 2 하에서만 존재할 수 있는 것을 보장한다.
6. PSS 1은 PSS 2에 암호화된 블랍을 vTPM에 대한 보증 인증서와 함께 송신한다.
7. PSS 2는 vTPM 상태를 수신하고, 이를 복호화하고, 이를 모든 오프라인 vTPM인 것과 같이 봉인하고, 이를 공지의 vTPM으로서 기록한다. 이 vTPM은 이제 공식적으로는 PSS 2의 플랫폼의 부분이다.
8. (선택적임) PSS 2의 가상 제작자 기관은 vTPM에 대한 플랫폼 인증서를 생성한다. vTPM이 이 플랫폼에 더 이상 상주하지 않기 때문에 vTPM이 PSS 1의 플랫 폼 인증서를 사용하여 계속되는 것이 부적절하다. 그러나, vTPM의 신뢰성은 단지 정책을 통과할 수 있는 최약의 구성의 것이기 때문에, 이 신규한 인증서가 사용되는 보안에 대해서는 중요하지 않다.
PSS 2는 이제 로딩되고 임의의 다른 것일 수 있는 것처럼 vTPM을 사용한다.
이주 프로토콜의 안전성은 이하의 사항, 즉 소정의 이주 가능한 vTPM에 대해서 vTPM이 그의 이동 중에 절대로 절충되지 않는 것을 보장하는 것을 입증하도록 유효화될 수 있다. 귀납 증명 방법론에 의해, 이 보장은 두 개의 이하의 명제가 챌린저에 대해 입증될 수 있는 경우에 설립될 수 있다.
1. vTPM 상태는 원래는 안전한 vTPM 내에 생성된다.
2. vTPM이 안전한 vTPM이면, vTPM 아키텍처는 단지 vTPM 상태를 다른 안전한 vTPM으로 이주시킬 수 있다.
이들 두 개의 진술의 보장은 인증서 상의 서명에서 발견된다. vTPM이 생성될 때, 그의 보증 인증서는 가상 제작자 기관에 의해 생성되고 서명된다. 이에 앞서, 가상 제작자 기관은 그의 서명 키를 생성하고 이를 이주 정책과 함께 인증 기관과 교환한다. 이 CA는 CA가 안전한 vTPM을 제공하고 안전한 이주 정책을 실시하는 것으로서 가상 제작자 기관을 인식하지 않으면 가상 제작자 기관에 대한 보증 인증서에 서명하지 않을 것이다. 따라서, CA에 의해 서명된 인증서를 갖는 가상 제작자 기관은 안전하지 않은 vTPM으로 vTPM을 절대로 이주하지 않을 것이다.
일반적으로, 챌린저는 AIK에 의해 서명된 PCR의 세트와 프라이버시 CA에 의해 서명된 동봉된 신분 인증서를 수신한다. 챌린저는 vTPM의 평가를 이 정보에 기 초할 수 있다. 이 인증서를 확인함으로써, 챌린저는 vTPM이 프라이버시 CA가 신뢰성 서명 키에 의해 서명된 보증 인증서를 보여준다는 것을 안전하게 결론지을 수 있다. 프라이버시 CA는 자신 또는 다른 CA가 보증하는 서명만을 인증한다. 보증 인증서 상의 서명이 다른 CA에 의해 보증될 수 있는 유일한 방법은, 서명 키가 안전한 가상 제작자 기관에 있고 서명 키가 단지 안전한 다른 vTPM으로의 이주를 허용하는 이주 정책에 대응하는 경우이다.
따라서, 신분 인증서의 존재는 이 vTPM이 합법적인 vTPM에서 생성되었고, 이 인증을 제공하기 전에 비인증 vTPM에 전혀 상주되지 않는다는 것을 챌린저에게 확신시켜야 한다.
유사하게, 상기 이주 접근은 vTPM을 제공하기 위한 플랫폼보다는 vTPM을 수용하도록 플랫폼으로부터 시작될 수 있다.
개시된 이주 방법론은 개인이 다중 머신으로부터 데이터를 액세스하기를 원하는 사용 모델을 포함하는 광범위한 애플리케이션에 유용할 수 있다. 예를 들면, 의사는 집 컴퓨터와 사무실 컴퓨터 사이에 vTPM을 편리하게 이주할 수 있어, 의사가 하나 이상의 위치로부터 보호된 의료 기록에 액세스할 수 있게 한다. 액세스될 수 있는 보호된 데이터의 유형은 한정적인 것은 아니지만 디지털 저작권 관리(DRM) 프로토콜에 의해 보호된 콘텐트, 콘텐트에 액세스하기 위한 소프트웨어를 제공하는 동일한 개체로부터의 전용 콘텐트 및 단지 특정 개체에만 이용 가능해야 하는 개인용, 민감한 및/또는 기밀 정보(예를 들면, 의료 기록, 재정 데이터 등)를 포함한다.
유사하게, 상기 이주 접근은 실제로는 임의의 특정 워크스테이션으로부터의 개인의 연산 환경을 해방하는 사용 모델을 지원할 수 있다. 예를 들면, http://info.pittsburgh.intel-research.net/project/isr/에 설명된 인터넷 일시 정지/재시작(ISR) 프로젝트는, "사용자의 연산 환경이 사용자가 이동할 때 사용자 [워크스테이션을 가로질러]를 따르는 모바일 연산으로의 접근"에 속한다. ISR 프로젝트는 이하와 같은 운반 가능 연산 환경의 일 예시적인 전개를 설명한다.
예를 들면, 오전에 집에서 오후에 사무실에서 작업하는 재택 근무자를 상상하라. 오전의 작업을 완료한 후에, 사용자는 집의 머신에 "일시 정지"를 클릭하고 사무실로 이동하기 시작한다. 사용자가 도중에 있는 동안, 사용자의 연산 환경의 상태는 또한 네트워크를 통해 사용자의 사무실의 머신으로의 도중에 있다. 재택 근무자가 사무실에 도착할 때, 사무실 머신은 사용자가 집에 남겨둔 바와 동일한 환경을 제시한다: 동일한 애플리케이션 및 파일이 열리고, 윈도우가 모두 예측된 배치에 있고, 커서가 적절한 위치에 있다.
이러한 모델 및 유사한 모델은 TPM-보호된 OS, TPM-보호된 애플리케이션 및/또는 TPM-보호된 데이터를 포함하는 환경과 같은 운반 가능한 TPM-보호된 연산 환경을 지원하도록 vTPM 이주를 사용할 수 있다.
8.0 - 결론
본 명세서는 TPM과 같은 보안 코프로세서의 가상화를 위한 일반화된 프레임워크를 설명한다. 예시적인 실시예는 보안 가상 TPM 동작을 가능하게 하도록 TPM 을 사용한다. 개시된 실시예는 다중 전용 하드웨어 TPM을 필요로 하지 않고, VM 내의 소프트웨어의 변경을 필요로 하지 않고, 그리고 TPM 또는 vTPM-보호된 시스템과 상호 작용하는 원격 개체의 변경을 필요로 하지 않고 다중 VM이 TPM 기능성을 사용할 수 있게 한다. 본 명세서에 따르면, 가상 TPM은 원격 개체에 인증을 제공하도록 VM 내의 OS 및 애플리케이션을 측정할 수 있다. 더욱이, 가상 TPM은, 하드웨어 TPM 및 챌린저가 전술된 TPM 버전 1.2 디자인 사양과 같은 현재의 TPM 사양에 설명된 기능성만을 이용할 수 있을지라도 하드웨어 TPM 챌린저를 위한 VM의 상태를 인증할 수 있다. VM 내의 게스트 OS는 하드웨어 TPM이 공유되고 있고, 신뢰 관계가 시스템 내의 VM 사이에 요구되지 않는다는 것을 인식하지 못하고 있을 수도 있다.
개시된 프레임워크는 또한 하드웨어 내에 구현되면 고비용일 수 있는 보안 소프트웨어 주문형 암호화 부시스템의 개발을 용이하게 할 수 있다. 가상 TPM은 하드웨어 기반 보안 저장 및 인증을 제공하는 TPM 기능과 VM 기술에 의해 생성된 격리의 조합을 가능하게 한다. 주문형 암호화 부시스템은 액세스 제어 및 암호화 프로토콜을 제공하기 위한 TPM의 것보다 풍부한 기능성을 가능하게 한다. 본 발명은 가상 투명성을 보장하면서 상이한 보안 및 성능 타협에 따라 어떠한 방식으로 프레임워크가 사용될 수 있는지의 예를 예시하는 실시예를 포함한다. 이는 애플리케이션이 가상화가 없는 플랫폼 상에서의 TPM 액세스와는 상이한 VM 내로부터의 TPM 액세스를 처리할 필요가 없다는 것을 의미한다. 예를 들면, 애플리케이션은 이들이 물리적 보안 코프로세서와 통신하고자 할 때 DM과 통신하기 위해 동일한 API를 사용할 수 있다.
본 명세서는 더 간단한 최적화된 TPM 가상화를 가능화하기 위한 부가의 하드웨어 TPM 특징을 설명한다. 게다가, 본 명세서는 가상 TPM을 원격 설치하고 전개하기 위한, 그리고 플랫폼 사이에 가상 TPM을 이주시키기 위한 메카니즘을 설명한다.
전술된 바와 같이, 상이한 실시예는 데이터를 보호하기 위해 하드웨어 TPM에 다소 의존할 수 있다. 예를 들면, 모든 키가 하드웨어 TPM에 저장될 수 있고, 또는 증가된 융통성 및/또는 성능을 위해, 가상 키가 생성되어 vTPM 소프트웨어에 의해 사용될 수 있고, 가상 키가 저장되지 않거나 또는 hwTPM에 의해 직접 보호될 수 있다. 가상 TPM에 속하거나 또는 가상 TPM에 의해 생성되는 사설 키는 하드웨어 TPM이 암호화 동작을 수행하도록 이들 사설 키를 사용하지 않을 수 있다는 점에서 하드웨어 TPM에 의해 동작되지 않을 수 있다. 대신에, 가상 TPM은 그의 가상 키로 암호화 동작을 수행하도록 호스트 프로세서 및 암호화 소프트웨어를 사용할 수 있다. 이를 수행하기 위해, 가상 TPM 서비스는 보호된 호스트 메모리 내에 그의 사설 키를 저장할 수 있다. 그러나, 사설 키가 사용되지 않을 때, 가상 TPM 서비스는 그의 소프트웨어 구성으로 키를 래핑하기 위해 하드웨어 TPM 특징을 사용할 수 있다.
이들 선택권은 vTPM이 하드웨어 TPM에 의해 제공될 수 있는 것보다 훨씬 더 높은 성능을 갖는 vTPM 소프트웨어에서 객체를 암호화하고, 복호화하고, 서명하고, 검증할 수 있게 한다. 따라서, 이들 선택권은 예를 들면 성능 민감성 서버 환경에 서의 벌크 암호화 또는 사용에 바람직할 수 있다. 그러나, 추가된 성능에 대한 타협은 vTPM이 절충되는 경우 가상 키가 영구적으로 절충될 수 있다는 것이다.
본 명세서에 설명되고 예시되어 있는 예시적인 실시예 및 원리의 관점에서, 예시되어 있는 실시예는 이러한 원리로부터 일탈하지 않고 배열 및 상세가 변형될 수 있다는 것을 인식할 수 있을 것이다. 예를 들면, 가상 TPM이 VM과 연계하여 설명되었지만, 대안의 실시예는 또한 하드웨어 TPM을 공유하는 서버 또는 서버의 그룹 내의 구획과 같은 다른 유형의 시스템 세분 분할부와 연계하여 사용된 vTPM을 포함한다. 예를 들면, 가상 TPM은 두 개의 논리적 2-프로세서 시스템으로 분할되는 4개의 프로세서 시스템에 사용될 수 있다. 본 명세서의 교시 내용은 또한 하나 이상의 서비스 코프로세서 또는 하드웨어 플랫폼 상의 하나 이상의 다른 유형의 독립적인 처리 요소에 논리적 TPM을 제공하는데 사용될 수 있다.
더욱이, 대안의 실시예는 하드웨어 TPM을 모방하지 않고 하드웨어 TPM의 능력을 확장하고 그리고/또는 증폭하는(예를 들면 더 많은 PCR, 더 많은 저장 장치를 제공함으로써) vTPM 서비스를 포함한다. 대안의 실시예는 또한 보안 OS의 상부에서, 관리된 실행 시간 환경(MRTE)의 상부에서, 서비스 프로세서 또는 코프로세서에서, 플랫폼의 시스템 관리 모드(SMM) 등에서 실행하는 가상 TPM 서비스를 포함한다. 가상 TPM을 제공하는 대신에, 또는 가상 TPM의 제공에 부가하여, 부가의 실시예는 다른 종류의 모방된 보안 코프로세서를 제공한다.
또한, 상기 논의는 특정 실시예에 집중되었지만, 다른 구성이 고려된다. 특히, "일 실시예에서", "다른 실시예에서" 등과 같은 표현이 본 명세서에 사용되었 지만, 이들 구문은 실시예 가능성을 일반적으로 참조하도록 의도되는 것이고 특정 실시예 구성에 본 발명을 한정하도록 의도되는 것은 아니다. 본 명세서에 사용될 때, 이들 용어는 다른 실시예에 조합 가능한 동일한 또는 상이한 실시예를 참조할 수도 있다.
유사하게, 예시적인 프로세스가 특정 시퀀스로 수행되는 특정 동작에 대해 설명되었지만, 다수의 변형이 본 발명의 다수의 대안의 실시예를 유도하도록 이들 프로세스에 적용될 수 있다. 예를 들면, 대안의 실시예는 개시된 동작 모두보다 소수를 사용하는 프로세스, 부가의 동작을 사용하는 프로세스, 상이한 시퀀스로 동일 동작을 사용하는 프로세스 및 본 명세서에 개시된 개별 동작이 조합되고, 세분되거나 또는 다른 방식으로 변경되는 프로세스를 포함할 수 있다.
본 발명의 대안의 실시예는 또한 본 발명의 동작을 수행하기 위한 머신 액세스 가능 매체 인코딩 명령을 포함한다. 이러한 실시예는 또한 프로그램 제품이라 칭할 수도 있다. 이러한 머신 액세스 가능 매체는 한정적인 것은 아니지만 플로피 디스크, 하드 디스크, CD-ROM, ROM 및 RAM과 같은 저장 매체, 뿐만 아니라 안테나, 와이어, 광 파이버, 마이크로파, 무선파 및 다른 전자기 또는 광학 캐리어와 같은 통신 매체를 포함할 수 있다. 따라서, 명령 및 다른 데이터는 패킷, 직렬 데이터, 병렬 데이터, 전파 신호 등의 구성으로 전송 환경 또는 네트워크를 통해 전달될 수 있고, 분산 환경에서 사용되고 단일 또는 다중 프로세서 머신에 의한 액세스를 위해 국부적으로 및/또는 원격 저장될 수 있다.
본 명세서에서 서술되는 하드웨어 및 소프트웨어 구성 요소는 각각이 다른 것들과는 실질적으로 독립적으로 설계되고, 구성되거나 갱신될 수 있도록 적당하게 내장되는 기능 요소를 표현한다는 것을 또한 이해해야 한다. 대안의 실시예에서, 다수의 구성 요소는 본 명세서에 설명되고 예시되어 있는 기능성을 제공하기 위한 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로서 구현될 수 있다.
본 명세서에 설명된 예시적인 실시예로부터 즉시 유도될 수 있는 광범위한 유용한 변경의 관점에서, 이 상세한 설명은 단지 예시적인 것으로 의도되고, 본 발명의 범주를 한정하는 것으로서 간주되어서는 안된다. 따라서, 본 발명에서 청구되는 것은 이하의 청구범위 및 이러한 구현에 대한 모든 등가물의 범주 및 사상 내에 있는 모든 구현이다.

Claims (21)

  1. 처리 시스템의 보호된 부분에, 미리 결정된 암호화 코프로세서에 대응하는 미리 정해진 디바이스 모델 디자인에 적어도 부분적으로 기초하여 디바이스 모델(DM)을 생성하는 단계와,
    상기 DM에서 상기 처리 시스템의 보호된 부분의 외부의 소프트웨어 개체로부터 정보를 수신하는 단계와,
    상기 DM에서의 소프트웨어 개체로부터의 정보의 수신에 응답하여, 상기 미리 정해진 디바이스 모델 디자인에 따라 상기 소프트웨어 개체에 암호화 서비스를 제공함으로써 상기 미리 결정된 암호화 코프로세서를 모방하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 DM을 지원하기 위해 상기 처리 시스템의 신뢰 플랫폼 모듈(TPM)을 사용하는 단계를 더 포함하는
    방법.
  3. 제 1 항에 있어서,
    상기 소프트웨어 개체에 암호화 서비스를 제공하는 동작은,
    상기 처리 시스템의 물리적인 암호화 코프로세서를 사용하여 상기 DM과 연관된 데이터를 봉인하는 동작과,
    상기 처리 시스템의 임의 접근 메모리(RAM) 내에 상기 봉인된 데이터를 저장하는 동작을 포함하는
    방법.
  4. 제 1 항에 있어서,
    상기 소프트웨어 개체에 암호화 서비스를 제공하는 동작은,
    상기 처리 시스템의 물리적인 암호화 코프로세서로부터의 키를 사용하여 상기 DM과 연관된 정보를 암호화하는 동작과,
    보호된 저장 서비스(PSS)를 사용하여 상기 암호화된 정보를 저장하는 동작을 포함하는
    방법.
  5. 제 4 항에 있어서,
    상기 PSS는 상기 암호화된 정보를 저장하기 위해 상기 처리 시스템의 임의 접근 메모리(RAM)를 적어도 일시적으로 사용하는
    방법.
  6. 제 1 항에 있어서,
    상기 디바이스 모델(DM)을 생성하는 단계는
    제 1 디바이스 모델 디자인에 적어도 부분적으로 기초하는 제 1 세트의 하나 이상의 DM을 상기 처리 시스템 내에 생성하는 단계와,
    제 2 디바이스 모델 디자인에 적어도 부분적으로 기초하는 제 2 세트의 하나 이상의 DM을 상기 처리 시스템 내에 생성하는 단계를 포함하는
    방법.
  7. 제 1 항에 있어서,
    상기 디바이스 모델 디자인은 특정 유형의 신뢰 플랫폼 모듈(TPM)을 표현하는
    방법.
  8. 제 1 항에 있어서,
    상기 디바이스 모델 디자인은 특정 유형의 보안 코프로세서를 표현하는
    방법.
  9. 제 1 항에 있어서,
    상기 디바이스 모델 디자인은 상기 디바이스 모델의 인스턴스와 통신하는데 사용하기 위한 상기 처리 시스템의 보호된 부분의 외부의 소프트웨어 개체를 위한 인터페이스의 정의를 포함하는
    방법.
  10. 머신 액세스 가능 매체와,
    상기 머신 액세스 가능 매체에 인코딩된 명령을 포함하고,
    상기 명령은 처리 시스템에 의해 실행될 때, 상기 처리 시스템이
    미리 결정된 암호화 코프로세서에 대응하는 미리 정해진 디바이스 모델 디자인에 적어도 부분적으로 기초하여 디바이스 모델(DM)을 생성하는 동작과,
    상기 DM에서 상기 처리 시스템에서 실행하는 소프트웨어 개체로부터 정보를 수신하는 동작과,
    상기 DM에서의 소프트웨어 개체로부터의 정보의 수신에 응답하여, 상기 디바이스 모델 디자인에 따라 상기 소프트웨어 개체에 암호화 서비스를 제공함으로써 상기 미리 결정된 암호화 코프로세서를 모방하는 동작을 수행하게 하는
    장치.
  11. 제 10 항에 있어서,
    상기 DM은 상기 DM을 지원하기 위해 상기 처리 시스템의 신뢰 플랫폼 모듈(TPM)을 사용하는
    장치.
  12. 제 10 항에 있어서,
    상기 DM은 상기 DM의 구조와 연관된 데이터를 봉인하기 위해 상기 처리 시스템의 물리적인 보안 코프로세서를 사용하는
    장치.
  13. 제 10 항에 있어서,
    상기 명령은 상기 처리 시스템이
    제 1 디바이스 모델 디자인에 적어도 부분적으로 기초하는 제 1 세트의 하나 이상의 DM을 상기 처리 시스템 내에 생성하는 동작과,
    제 2 디바이스 모델 디자인에 적어도 부분적으로 기초하는 제 2 세트의 하나 이상의 DM을 상기 처리 시스템 내에 생성하는 동작을 수행하게 하는
    장치.
  14. 제 10 항에 있어서,
    상기 디바이스 모델 디자인은 상기 디바이스 모델의 인스턴스와 통신하는데 사용하기 위한 상기 소프트웨어 개체를 위한 인터페이스의 정의를 포함하는
    장치.
  15. 처리 시스템으로서,
    프로세서와,
    상기 프로세서에 통신적으로 결합된 보안 코프로세서와,
    상기 프로세서에 통신적으로 결합된 머신 액세스 가능 매체와,
    상기 머신 액세스 가능 매체에 인코딩된 가상 보안 코프로세서 프레임워크를 구현하는 명령을 포함하고,
    상기 가상 보안 코프로세서 프레임워크는 미리 결정된 암호화 코프로세서에 대응하는 적어도 하나의 디바이스 모델 디자인을 포함하며,
    상기 가상 보안 코프로세서 프레임워크는 처리 시스템 내에, 상기 디바이스 모델 디자인에 적어도 부분적으로 기초하여 디바이스 모델(DM)을 생성하며,
    상기 가상 보안 코프로세서 프레임워크는 상기 DM을 지원하기 위해 상기 보안 코프로세서를 사용하고,
    상기 DM은 상기 디바이스 모델 디자인에 따라 상기 미리 결정된 암호화 코프로세서를 모방하는
    처리 시스템.
  16. 제 15 항에 있어서,
    상기 가상 보안 코프로세서 프레임워크는 상기 DM과 연관된 데이터를 봉인하도록 상기 보안 코프로세서를 사용하는
    처리 시스템.
  17. 제 15 항에 있어서,
    상기 가상 보안 코프로세서 프레임워크는 제 1 및 제 2 유형의 암호화 코프로세서를 각각 표현하는 제 1 및 제 2 디바이스 모델 디자인을 포함하고,
    상기 가상 보안 코프로세서 프레임워크는
    제 1 디바이스 모델 디자인에 적어도 부분적으로 기초하는 제 1 세트의 하나 이상의 DM을 상기 처리 시스템 내에 생성하고,
    제 2 디바이스 모델 디자인에 적어도 부분적으로 기초하는 제 2 세트의 하나 이상의 DM을 상기 처리 시스템 내에 생성하는
    처리 시스템.
  18. 제 15 항에 있어서,
    상기 보안 코프로세서는 신뢰 플랫폼 모듈(TPM)을 포함하는
    처리 시스템.
  19. 제 15 항에 있어서,
    상기 디바이스 모델 디자인은 상기 디바이스 모델의 인스턴스와 통신하는데 사용하기 위한 소프트웨어 개체를 위한 인터페이스의 정의를 포함하는
    처리 시스템.
  20. 처리 시스템의 보호된 부분에, 미리 결정된 암호화 코프로세서에 대응하는 미리 정해진 디바이스 모델 디자인에 적어도 부분적으로 기초하여 디바이스 모델(DM)을 생성하는 단계와,
    상기 DM에서 상기 처리 시스템의 보호된 부분의 외부의 소프트웨어 개체로부터 정보를 수신하는 단계와,
    상기 DM에서의 소프트웨어 개체로부터의 정보의 수신에 응답하여, 상기 미리 결정된 암호화 코프로세서에 의해 지원되는 동작을 사용하여 상기 소프트웨어 개체에 암호화 서비스를 제공하는 단계를 포함하는
    방법.
  21. 제 20 항에 있어서,
    상기 소프트웨어 개체에 암호화 서비스를 제공하는 동작은,
    상기 미리 결정된 암호화 코프로세서의 모방을 지원하도록 상기 처리 시스템의 암호화 코프로세서를 사용하는 동작을 포함하는
    방법.
KR1020077026726A 2005-05-13 2006-05-11 소프트웨어 기반 보안 코프로세서를 제공하는 방법, 장치및 처리 시스템 KR100930218B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US68109405P 2005-05-13 2005-05-13
US60/681,094 2005-05-13
US11/171,133 US7587595B2 (en) 2005-05-13 2005-06-29 Method and apparatus for providing software-based security coprocessors
US11/171,133 2005-06-29
PCT/US2006/018685 WO2006124751A2 (en) 2005-05-13 2006-05-11 Method and apparatus for providing software-based security coprocessors

Publications (2)

Publication Number Publication Date
KR20080008361A KR20080008361A (ko) 2008-01-23
KR100930218B1 true KR100930218B1 (ko) 2009-12-09

Family

ID=37418673

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077026726A KR100930218B1 (ko) 2005-05-13 2006-05-11 소프트웨어 기반 보안 코프로세서를 제공하는 방법, 장치및 처리 시스템

Country Status (6)

Country Link
US (1) US7587595B2 (ko)
EP (1) EP1880339A2 (ko)
JP (1) JP4732513B2 (ko)
KR (1) KR100930218B1 (ko)
CN (1) CN101176100B (ko)
WO (1) WO2006124751A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180029047A (ko) * 2015-07-14 2018-03-19 비트데펜더 아이피알 매니지먼트 엘티디 비동기적 인트로스펙션 예외를 이용한 컴퓨터 보안 시스템들 및 방법들

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590867B2 (en) 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
US8074262B2 (en) 2005-05-13 2011-12-06 Intel Corporation Method and apparatus for migrating virtual trusted platform modules
US7613921B2 (en) 2005-05-13 2009-11-03 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
EP1850260A1 (en) * 2006-04-26 2007-10-31 Macrovision Corporation A computer-implemented method and system for binding digital rights management executable code to a software application
US8458673B2 (en) * 2006-04-26 2013-06-04 Flexera Software Llc Computer-implemented method and system for binding digital rights management executable code to a software application
US8108668B2 (en) * 2006-06-26 2012-01-31 Intel Corporation Associating a multi-context trusted platform module with distributed platforms
US8510859B2 (en) 2006-09-26 2013-08-13 Intel Corporation Methods and arrangements to launch trusted, co-existing environments
US8479264B2 (en) * 2006-09-29 2013-07-02 Micron Technology, Inc. Architecture for virtual security module
US9171161B2 (en) * 2006-11-09 2015-10-27 International Business Machines Corporation Trusted device having virtualized registers
US8024579B2 (en) 2006-12-29 2011-09-20 Lenovo (Singapore) Pte Ltd. Authenticating suspect data using key tables
US9280659B2 (en) 2006-12-29 2016-03-08 Intel Corporation Methods and apparatus for remeasuring a virtual machine monitor
US20080320263A1 (en) * 2007-06-20 2008-12-25 Daniel Nemiroff Method, system, and apparatus for encrypting, integrity, and anti-replay protecting data in non-volatile memory in a fault tolerant manner
US8064605B2 (en) * 2007-09-27 2011-11-22 Intel Corporation Methods and apparatus for providing upgradeable key bindings for trusted platform modules
US8249257B2 (en) * 2007-09-28 2012-08-21 Intel Corporation Virtual TPM keys rooted in a hardware TPM
WO2009050324A1 (en) 2007-10-16 2009-04-23 Nokia Corporation Credential provisioning
US20090133097A1 (en) * 2007-11-15 2009-05-21 Ned Smith Device, system, and method for provisioning trusted platform module policies to a virtual machine monitor
US8259948B2 (en) * 2007-12-29 2012-09-04 Intel Corporation Virtual TPM key migration using hardware keys
CA2661398C (en) 2008-04-05 2016-05-17 Third Brigade Inc. System and method for intelligent coordination of host and guest intrusion prevention in virtualized environment
FR2929733B1 (fr) * 2008-04-08 2010-08-27 Eads Defence And Security Syst Systeme et procede de securisation d'un ordinateur comportant un micronoyau
WO2009127905A1 (en) * 2008-04-16 2009-10-22 Lenovo (Singapore) Pte. Ltd. Apparatus and method for enabling applications on a security processor
JP5309709B2 (ja) * 2008-06-16 2013-10-09 株式会社リコー ソフトウェア改ざん検知方法及び機器
US8996885B2 (en) * 2008-10-02 2015-03-31 Broadcom Corporation Secure virtual machine manager
US8868925B2 (en) * 2008-12-09 2014-10-21 Nvidia Corporation Method and apparatus for the secure processing of confidential content within a virtual machine of a processor
US8266448B2 (en) * 2008-12-09 2012-09-11 Nvidia Corporation Apparatus, system, method, and computer program product for generating and securing a program capable of being executed utilizing a processor to decrypt content
US8346847B2 (en) * 2009-06-03 2013-01-01 Apple Inc. Installing applications based on a seed application from a separate device
US8402280B1 (en) 2009-10-15 2013-03-19 Nvidia Corporation System, method, and computer program product for buffering in association with audio/video digital rights management (DRM) processing
EP3002683B1 (en) 2009-12-14 2017-07-12 Citrix Systems Inc. Methods and systems for communicating between trusted and non-trusted virtual machines
CN102754077B (zh) 2009-12-14 2015-11-25 思杰系统有限公司 可从外部媒体装置引导的安全虚拟化环境
US20110238980A1 (en) 2010-03-23 2011-09-29 Fujitsu Limited System and methods for remote maintenance in an electronic network with multiple clients
US9286485B2 (en) * 2010-03-23 2016-03-15 Fujitsu Limited Using trust points to provide services
CN102402657A (zh) * 2010-09-15 2012-04-04 联想(新加坡)私人有限公司 用于使能安全处理器上的应用的装置和方法
DE102010053485A1 (de) * 2010-12-04 2012-06-06 Robert Bosch Gmbh Verfahren zum Betreiben einer Arbeitsmaschine und Arbeitsmaschine mit virtueller Automatisierung
CN102833296B (zh) * 2011-06-13 2018-10-23 伊姆西公司 用于构建安全的计算环境的方法和设备
CN102332069B (zh) * 2011-08-05 2014-02-26 道里云信息技术(北京)有限公司 虚拟机全生命周期安全管理方法及系统
GB2513826A (en) 2012-06-29 2014-11-12 Ibm Trusted boot of a virtual machine
US8938796B2 (en) 2012-09-20 2015-01-20 Paul Case, SR. Case secure computer architecture
US9037854B2 (en) * 2013-01-22 2015-05-19 Amazon Technologies, Inc. Privileged cryptographic services in a virtualized environment
US9176910B2 (en) * 2013-02-15 2015-11-03 International Business Machines Corporation Sending a next request to a resource before a completion interrupt for a previous request
US9230081B2 (en) * 2013-03-05 2016-01-05 Intel Corporation User authorization and presence detection in isolation from interference from and control by host central processing unit and operating system
WO2014194494A1 (zh) * 2013-06-05 2014-12-11 华为技术有限公司 数据安全的保护方法、服务器、主机及系统
WO2015003310A1 (en) 2013-07-09 2015-01-15 Hua Zhong University Of Science Technology Synchronized virtual trusted platform modules (vtpm) and virtual machine (vm) rollbacks
US9497221B2 (en) * 2013-09-12 2016-11-15 The Boeing Company Mobile communication device and method of operating thereof
US9235714B1 (en) * 2013-11-12 2016-01-12 Amazon Technologies, Inc. Preventing persistent storage of cryptographic information using signaling
US10223538B1 (en) 2013-11-12 2019-03-05 Amazon Technologies, Inc. Preventing persistent storage of cryptographic information
US9231923B1 (en) 2013-11-12 2016-01-05 Amazon Technologies, Inc. Secure data destruction in a distributed environment using key protection mechanisms
US10095532B2 (en) * 2014-04-28 2018-10-09 Netkine, Inc. Providing excess compute resources with virtualization
EP2950229B1 (en) * 2014-05-28 2018-09-12 Nxp B.V. Method for facilitating transactions, computer program product and mobile device
US9864864B2 (en) * 2014-09-23 2018-01-09 Accenture Global Services Limited Industrial security agent platform
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
US9742762B2 (en) 2014-12-01 2017-08-22 Microsoft Technology Licensing, Llc Utilizing a trusted platform module (TPM) of a host device
JP6357091B2 (ja) * 2014-12-03 2018-07-11 Kddi株式会社 情報処理装置、及びコンピュータプログラム
US9584325B1 (en) * 2014-12-04 2017-02-28 Amazon Technologies, Inc. User-configurable cryptographic interface controller
KR101702771B1 (ko) * 2015-08-26 2017-02-03 (주)에이티솔루션즈 보안운영체제를 이용한 고속 데이터 엔코딩/디코딩 방법
US10169591B2 (en) * 2015-12-07 2019-01-01 Amazon Technologies, Inc. Chained security systems
KR102484606B1 (ko) * 2016-03-11 2023-01-05 삼성전자주식회사 전자장치 및 그 제어방법
US10277407B2 (en) 2016-04-19 2019-04-30 Microsoft Technology Licensing, Llc Key-attestation-contingent certificate issuance
US10708067B2 (en) * 2016-06-18 2020-07-07 Intel Corporation Platform attestation and registration for servers
US9992029B1 (en) * 2017-04-05 2018-06-05 Stripe, Inc. Systems and methods for providing authentication to a plurality of devices
CN107294710B (zh) * 2017-06-30 2020-12-04 浪潮(北京)电子信息产业有限公司 一种vTPM2.0的密钥迁移方法及装置
US20190116022A1 (en) * 2017-10-16 2019-04-18 Samsung Electronics Co., Ltd. Encryption device and operation method thereof
US10659054B2 (en) * 2018-02-23 2020-05-19 Nxp B.V. Trusted monotonic counter using internal and external non-volatile memory
US10776460B2 (en) 2018-10-15 2020-09-15 KameleonSec Ltd. Proactive security system based on code polymorphism
US11500988B2 (en) 2019-03-08 2022-11-15 International Business Machines Corporation Binding secure keys of secure guests to a hardware security module
CN110380854A (zh) * 2019-08-12 2019-10-25 南京芯驰半导体科技有限公司 针对多个系统的根密钥生成、隔离方法及根密钥模块
US20200127850A1 (en) * 2019-12-20 2020-04-23 Intel Corporation Certifying a trusted platform module without privacy certification authority infrastructure
US11822664B2 (en) 2020-06-22 2023-11-21 Apple Inc. Securely signing configuration settings
CN115250189B (zh) * 2021-04-27 2023-06-02 西门子(中国)有限公司 一种智能家居设备的密钥管理方法及装置
CN113468563B (zh) * 2021-06-24 2022-11-18 曙光信息产业股份有限公司 虚拟机数据加密方法、装置、计算机设备和存储介质
CN114297699B (zh) * 2022-03-10 2022-06-14 好享家舒适智能家居股份有限公司 一种复杂结构数据自动加密解密方法及系统
CN116841691A (zh) * 2023-06-15 2023-10-03 海光信息技术股份有限公司 加密硬件的配置方法、数据机密计算方法及相关设备

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0001585D0 (en) * 2000-01-24 2000-03-15 Radioscape Ltd Method of designing,modelling or fabricating a communications baseband stack
US6895501B1 (en) * 2000-03-13 2005-05-17 Wrq, Inc. Method and apparatus for distributing, interpreting, and storing heterogeneous certificates in a homogenous public key infrastructure
WO2002006929A2 (en) 2000-07-18 2002-01-24 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
FI110427B (fi) * 2001-03-28 2003-01-31 Kemira Chemicals Oy Työliuoksen hydraus vetyperoksidin valmistusprosessissa
US7676430B2 (en) * 2001-05-09 2010-03-09 Lenovo (Singapore) Ptd. Ltd. System and method for installing a remote credit card authorization on a system with a TCPA complaint chipset
US6922774B2 (en) * 2001-05-14 2005-07-26 The United States Of America As Represented By The National Security Agency Device for and method of secure computing using virtual machines
GB2376765B (en) * 2001-06-19 2004-12-29 Hewlett Packard Co Multiple trusted computing environments with verifiable environment identities
EP1271331B1 (en) * 2001-06-28 2008-10-15 Nokia Corporation Method for enabling a communication between processes and processing system using the same method
GB2382419B (en) * 2001-11-22 2005-12-14 Hewlett Packard Co Apparatus and method for creating a trusted environment
US7103771B2 (en) * 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US7478233B2 (en) * 2002-05-30 2009-01-13 Microsoft Corporation Prevention of software tampering
JP2004013602A (ja) * 2002-06-07 2004-01-15 Handotai Rikougaku Kenkyu Center:Kk データ駆動プロセッサのエミュレーションシステム
JP2004015667A (ja) * 2002-06-10 2004-01-15 Takeshi Sakamura Icカード間暗号通信方法、電子チケット流通システムにおけるicカード間暗号通信方法およびicカード
US8261063B2 (en) * 2003-02-03 2012-09-04 Hewlett-Packard Development Company, L.P. Method and apparatus for managing a hierarchy of nodes
US7356197B2 (en) * 2003-06-30 2008-04-08 Intel Corporation Variable tap filter architecture for image processing
US7177967B2 (en) * 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US7313679B2 (en) * 2003-10-17 2007-12-25 Intel Corporation Extended trusted computing base
US20050132122A1 (en) * 2003-12-16 2005-06-16 Rozas Carlos V. Method, apparatus and system for monitoring system integrity in a trusted computing environment
US7222062B2 (en) * 2003-12-23 2007-05-22 Intel Corporation Method and system to support a trusted set of operational environments using emulated trusted hardware
US7380119B2 (en) * 2004-04-29 2008-05-27 International Business Machines Corporation Method and system for virtualization of trusted platform modules
US7590867B2 (en) * 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
US7590300B2 (en) * 2004-06-24 2009-09-15 Intel Corporation Image filtering methods and apparatus
US20060002471A1 (en) * 2004-06-30 2006-01-05 Lippincott Louis A Motion estimation unit
US7471844B2 (en) * 2004-12-27 2008-12-30 Intel Corporation Method, apparatus and system for multi-feature programmable tap filter image processing
US7707629B2 (en) * 2005-03-31 2010-04-27 Intel Corporation Platform configuration register virtualization apparatus, systems, and methods
US8074262B2 (en) * 2005-05-13 2011-12-06 Intel Corporation Method and apparatus for migrating virtual trusted platform modules
US7613921B2 (en) * 2005-05-13 2009-11-03 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US7827550B2 (en) * 2005-08-17 2010-11-02 Intel Corporation Method and system for measuring a program using a measurement agent

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"TCG Specification Architecture Overview, Specification Revision 1.2"
MARIO STRASSER : "A Software-based TPM Emulator for Linux"

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180029047A (ko) * 2015-07-14 2018-03-19 비트데펜더 아이피알 매니지먼트 엘티디 비동기적 인트로스펙션 예외를 이용한 컴퓨터 보안 시스템들 및 방법들
KR102297133B1 (ko) 2015-07-14 2021-09-06 비트데펜더 아이피알 매니지먼트 엘티디 비동기적 인트로스펙션 예외를 이용한 컴퓨터 보안 시스템들 및 방법들

Also Published As

Publication number Publication date
KR20080008361A (ko) 2008-01-23
US20060256105A1 (en) 2006-11-16
CN101176100B (zh) 2010-05-19
CN101176100A (zh) 2008-05-07
WO2006124751A2 (en) 2006-11-23
EP1880339A2 (en) 2008-01-23
WO2006124751A3 (en) 2007-07-19
JP4732513B2 (ja) 2011-07-27
US7587595B2 (en) 2009-09-08
JP2008541279A (ja) 2008-11-20

Similar Documents

Publication Publication Date Title
KR100930218B1 (ko) 소프트웨어 기반 보안 코프로세서를 제공하는 방법, 장치및 처리 시스템
US9501665B2 (en) Method and apparatus for remotely provisioning software-based security coprocessors
US7571312B2 (en) Methods and apparatus for generating endorsement credentials for software-based security coprocessors
US8074262B2 (en) Method and apparatus for migrating virtual trusted platform modules
US7636442B2 (en) Method and apparatus for migrating software-based security coprocessors
EP2207121B1 (en) Protecting content on virtualized client platforms
US8595483B2 (en) Associating a multi-context trusted platform module with distributed platforms
US20060020781A1 (en) Method and apparatus for providing secure virtualization of a trusted platform module
US20110202765A1 (en) Securely move virtual machines between host servers
KR100917290B1 (ko) 신뢰 플랫폼 모듈의 보안 가상화를 위한 방법 및 장치
Manferdelli et al. The cloudproxy tao for trusted computing
Qiu et al. Integrity Measurement Model Based on Trusted Virtual Platform
Cabiddu et al. Building a Trusted Environment for Security Applications
Aslam et al. TCG based approach for secure management of virtualized platforms: state-of-the-art

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: 20121102

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131101

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141031

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151030

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161028

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee