KR101717263B1 - 가상 머신들의 측정용 신뢰 루트 - Google Patents

가상 머신들의 측정용 신뢰 루트 Download PDF

Info

Publication number
KR101717263B1
KR101717263B1 KR1020157021062A KR20157021062A KR101717263B1 KR 101717263 B1 KR101717263 B1 KR 101717263B1 KR 1020157021062 A KR1020157021062 A KR 1020157021062A KR 20157021062 A KR20157021062 A KR 20157021062A KR 101717263 B1 KR101717263 B1 KR 101717263B1
Authority
KR
South Korea
Prior art keywords
computing platform
guest
vtpm
integrity
vrtm
Prior art date
Application number
KR1020157021062A
Other languages
English (en)
Other versions
KR20150105390A (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 KR20150105390A publication Critical patent/KR20150105390A/ko
Application granted granted Critical
Publication of KR101717263B1 publication Critical patent/KR101717263B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)
  • Measuring Volume Flow (AREA)
  • Testing Of Engines (AREA)
  • Testing Or Calibration Of Command Recording Devices (AREA)

Abstract

가상 머신들(VM들)의 측정을 위한 신뢰 루트들(RTM들)과 관련된 기술들 및 시스템들의 실시예들이 개시된다. 일부 실시예들에서, 컴퓨팅 플랫폼은 컴퓨팅 플랫폼의 제1 보안 엔클레이브(SE) 내에 가상 머신 RTM(vRTM)을 제공할 수 있다. 컴퓨팅 플랫폼은 제1 SE의 무결성 측정을 수행하도록 구성될 수 있다. 컴퓨팅 플랫폼은 컴퓨팅 플랫폼의 제1 SE 밖에 게스트 VM을 위한 가상 머신 신뢰 플랫폼 모듈(vTPM)을 제공할 수 있다. 컴퓨팅 플랫폼은 vRTM과 게스트 VM의 자원 간의 무결성 측정들의 체인을 개시할 수 있다. 다른 실시예들이 설명되고/되거나 청구될 수 있다.

Description

가상 머신들의 측정용 신뢰 루트{ROOTS-OF-TRUST FOR MEASUREMENT OF VIRTUAL MACHINES}
본 발명은 일반적으로 컴퓨팅 시스템 분야에 관한 것으로서, 특히 보안 컴퓨팅 플랫폼에 관한 것이다.
일부 보안 모델들에서는 하나 이상의 신뢰 루트(roots-of-trust)를 사용하여 신뢰 컴퓨팅 플랫폼을 지원한다. 예를 들어, 신뢰 컴퓨팅 그룹(Trusted Computing Group)에 의해 제공되는 보안 모델들 중 일부에서는 3개의 신뢰 루트, 즉 저장용 신뢰 루트(root-of-trust for storage(RTS)), 보고용 신뢰 루트(root-of-trust for reporting(RTR)) 및 측정용 신뢰 루트(root-of-trust for measurement(RTM))가 사용된다. 이러한 신뢰 루트들의 컴퓨팅 플랫폼 내의 위치들은 바뀔 수 있다. 예를 들어, 일부 컴퓨팅 플랫폼들은 하드웨어 및 소프트웨어 구성의 부당 변경(tampering)을 검출하도록 동작하는 물리 컴포넌트(통상적으로 칩)인 신뢰 플랫폼 모듈(Trusted Platform Module(TPM)) 내에 RTR 및 RTS를 포함한다. 그러나 그러한 플랫폼 내의 RTM은 플랫폼 펌웨어에 의해 제공될 수 있다. 구체적으로, 그러한 컴퓨팅 플랫폼이 부트를 시작할 때, 장치의 사전 BIOS 내의 ROM과 같이 불변 형태로 구현되는 코어 RTM(core RTM(cRTM))이 실행될 다음 코드 세트를 측정하고, 이러한 측정을 암호 방식으로 해싱하고, 해시 요약 값을 TPM 내에 저장한다. 제어가 이러한 다음 코드 세트로 전달되며, 이어서 이 코드 세트는 후속 코드 세트를 측정하고, 측정의 해시 요약 값을 TPM에 저장한다. 이러한 측정 체인은 부트가 완료되고 OS가 로딩될 때까지 계속된다. (예로서, 멀웨어 또는 부당 변경으로 인한) 부트 스테이지들의 구성 변화들은 TPM에 저장된 해시 값들과 그들의 이전 값들을 비교함으로써 검출될 수 있다. 초기 측정 컴포넌트로서의 cRTM은 실행 전에 측정되지 않으며, 설계상 올바른 것으로 가정된다.
가상 환경에서, 게스트 가상 머신(virtual machine(VM))이 가상 머신 관리자(virtual machine manager(VMM), 하이퍼바이저라고도 지칭됨)에 의해 제공되는 소프트웨어 기방 환경에서 실행된다. 환경은 하드웨어에 대한 드라이버들과 같은 전통적인 컴퓨팅 플랫폼들의 다수의 물리 컴포넌트의 가상 버전들을 제공하는 VM들, 및 게스트 VM의 메모리를 조작할 수 있는 VM들과 같이 VM 유지보수를 위한 지원 기능들을 제공하는 VM들을 포함할 수 있다. 소정의 이전 연구는 TPM 개념을 가상 시스템들에 적용하여 가상 머신 TPM(virtual machine TPM(vTPM))을 개발하였다. 일부 그러한 시스템들에서, 각각의 게스트 VM은 관련 게스트 VM의 측정 체인을 위한 RTS 및 RTR로서 역할하는 그 자신의 vTPM과 관련될 수 있다. vTPM을 지원하는 VM들 및 기타 소프트웨어 컴포넌트들을 측정할 수 있는 RTM이 동일 하이퍼바이저 상에 VM으로서 구현될 수 있다. 그러나, 그러한 RTM은 vTPM만큼 부당 변경에 취약하며, 하이퍼바이저의 신뢰성에 전적으로 의존한다. 이것은 신뢰 컴퓨팅 베이스를 너무 크게 할 수 있으며, 결과적으로 하이퍼바이저 또는 다른 컴포넌트들 내의 보안 브랜치들을 취약하게 할 수 있다.
첨부 도면들과 관련된 아래의 상세한 설명에 의해 실시예들이 쉽게 이해될 것이다. 이러한 설명을 용이하게 하기 위해, 동일 참조 번호들은 동일한 구조 요소들을 지시한다. 첨부 도면들에서 실시예들은 한정이 아니라 예시적으로 도시된다.
도 1은 다양한 실시예들에 따른, 보안 엔클레이브(secure enclave: SE) 내에 측정용 가상 머신 신뢰 루트(vRTM)를 포함하는 컴퓨팅 플랫폼의 블록도이다.
도 2는 다양한 실시예들에 따른, SE 내의 vRTM과 게스트 VM의 자원 간의 무결성 측정들의 체인을 개시하기 위한 예시적인 프로세스의 흐름도이다.
도 3은 다양한 실시예들에 따른, RTM의 무결성 측정을 저장하기 위한 예시적인 프로세스의 흐름도이다.
도 4는 다양한 실시예들에 따른, SE 내에 vRTM을 갖는 컴퓨팅 플랫폼과 통신하기 위한 예시적인 프로세스의 흐름도이다.
도 5는 다양한 실시예들에 따른, 플랫폼 구성 레지스터 내에 저장된 값들을 변경하기 위한 예시적인 프로세스의 흐름도이다.
도 6은 다양한 실시예들에 따른, 개시되는 실시예들을 실시하기에 적합한 예시적인 컴퓨팅 플랫폼의 블록도이다.
가상 머신들(virtual machines(VM들))의 측정을 위한 신뢰 루트들(roots-of-trust(RTM들))과 관련된 기술들 및 시스템들의 실시예들이 개시된다. 일부 실시예들에서, 컴퓨팅 플랫폼은 컴퓨팅 플랫폼의 제1 보안 엔클레이브(secure enclave(SE)) 내에 가상 머신 RTM(virtual machine RTM(vRTM))을 제공할 수 있다. 컴퓨팅 플랫폼은 제1 SE의 무결성 측정을 수행하도록 구성될 수 있다. 컴퓨팅 플랫폼은 컴퓨팅 플랫폼의 제1 SE 밖에 게스트 VM을 위한 가상 머신 신뢰 플랫폼 모듈(vTPM)을 제공할 수 있다. 컴퓨팅 플랫폼은 vRTM과 게스트 VM의 자원 간의 무결성 측정들의 체인을 개시할 수 있다.
아래의 상세한 설명에서는, 그의 일부를 형성하는 첨부 도면들이 참조되며, 도면들 전반에서 동일한 번호들은 동일한 요소들을 지시하고, 도면들에는 실시 가능한 실시예들이 예시적으로 도시된다. 본 발명의 범위로부터 벗어나지 않고서 다른 실시예들이 이용될 수 있고, 구조 또는 논리적 변경들이 이루어질 수 있다는 것을 이해해야 한다. 따라서, 아래의 상세한 설명은 한정적인 것으로 간주되지 않아야 하며, 실시예들의 범위는 첨부된 청구항들 및 그들의 균등물들에 의해 정의된다.
다양한 동작들은 청구 발명의 이해에 가장 도움이 되는 방식으로 다수의 개별 액션들 또는 동작들로서 차례로 설명될 수 있다. 그러나, 설명의 순서는 이러한 동작들이 반드시 순서 의존적이라는 것을 의미하는 것으로 해석되지 않아야 한다. 구체적으로, 이러한 동작들을 설명의 순서대로 수행되지 않을 수도 있다. 설명되는 동작들은 설명되는 실시예와 다른 순서로 수행될 수 있다. 다양한 추가 동작들이 수행될 수 있고/있거나, 설명되는 동작들이 추가 실시예들에서 생략될 수 있다.
본 발명의 목적들을 위해, "A 및/또는 B"라는 표현은 (A), (B) 또는 (A 및 B)를 의미한다. 본 발명의 목적들을 위해, "A, B 및/또는 C"라는 표현은 (A), (B), (C), (A 및 B), (A 및 C), (B 및 C) 또는 (A, B 및 C)를 의미한다.
설명은 "일 실시예에서" 또는 "실시예들에서"라는 표현들을 사용하며, 이들 각각은 동일하거나 상이한 실시예들 중 하나 이상을 지칭할 수 있다. 더구나, 본 발명의 실시예들과 관련하여 사용되는 바와 같은 "포함하는", "갖는" 등의 용어들은 동의어들이다. 본 명세서에서 사용되는 바와 같이, "모듈" 또는 "논리"라는 용어들은 주문형 집적 회로(ASIC), 전자 회로, 하나 이상의 소프트웨어 또는 펌웨어 프로그램을 시행하는 (공유, 전용 또는 그룹) 프로세서 및/또는 (공유, 전용 또는 그룹) 메모리, 조합 논리 회로, 및/또는 설명되는 기능을 제공하는 다른 적절한 컴포넌트들 중 일부를 지칭하거나 그들을 포함할 수 있다.
이제, 도 1을 참조하면, 다양한 실시예들에 따른, SE 내에 vRTM을 포함하는 컴퓨팅 플랫폼이 도시된다.
컴퓨팅 플랫폼(100)은 하드웨어(102)를 포함할 수 있다. 하드웨어(102)는 예를 들어 하나 이상의 처리 장치 및 메모리 장치(예로서, 시스템 메모리, 캐시 메모리, 마이크로프로세서 기반 메모리, 프로세서 내의 메모리, 프로세서 밖의 메모리)를 포함할 수 있다. 일부 실시예들에서, 컴퓨팅 플랫폼(100)은 컴퓨팅 플랫폼(100)이 다른 컴퓨팅 플랫폼들 또는 장치들과 통신할 수 있는 통신 인터페이스를 포함할 수 있다. 컴퓨팅 플랫폼(100)의 하드웨어(102)에 포함될 수 있는 하드웨어들의 추가 예들이 아래에서 도 6을 참조하여 설명된다. 하드웨어(102)는 컴퓨팅 플랫폼(100)의 펌웨어 및 마이크로코드도 포함할 수 있다. 예를 들어, 마이크로코드는 어셈블리 언어 명령어들의 동작을 정의할 수 있으며, 따라서 컴퓨팅 플랫폼(100)의 최종 사용자에 의해 변경되지 못하는 방식으로 하드웨어 컴포넌트들의 동작에 영향을 줄 수 있다.
컴퓨팅 플랫폼(100)은 가상 머신 모니터(VMM)(104)를 포함할 수 있다. VMM(104)은 컴퓨팅 플랫폼(100)의 하드웨어(102)를 가상화하여 가상 동작 플랫폼들을 제공함으로써 (특히, vRTM(120), vTPM(106), 게스트 VM(110)과 같은) VM들이 컴퓨팅 플랫폼(100) 상에서 동시에 실행되거나 동작하는 것을 가능하게 할 수 있다. VMM(104) 상에서 실행되는 각각의 VM은 그의 가상 동작 플랫폼을 물리 플랫폼으로서 인식할 수 있다. 컴퓨팅 플랫폼(100)의 소정 컴포넌트들이 "게스트 VM들"로서 설명될 수 있지만, "게스트 VM"이라는 용어는 (예로서, 지원 VM들(122)을 포함하는) vRTM(120)에 의해 측정될 수 있는, VMM(104)상에서 실행되는 임의의 VM을 포함할 수 있다.
컴퓨팅 플랫폼(100)은 vTPM(106)을 포함할 수 있다. 일부 실시예들에서, 컴퓨팅 플랫폼(100)은 vTPM(106)과 같은 다수의 vTPM을 포함할 수 있으며, 이들 각각은 (후술하는) 게스트 VM(110)과 같은 하나 이상의 게스트 VM과 관련될 수 있다. 설명의 편의를 위해, 본 개시 내용의 많은 부분은 단일 vTPM을 설명하지만, 본 명세서에서 개시되는 모든 시스템들 및 기술들은 다수의 vTPM과 함께 사용하기에 적합하다. vTPM(106)은 vTPM(106)과 게스트 VM(110) 간의 통신을 가능하게 하도록 구성될 수 있는 게스트 인터페이스 모듈(108)을 포함할 수 있다. vTPM(106)은 vTPM(106)과 (후술하는) 관리 VM(MVM)(118) 간의 통신을 가능하게 하도록 구성될 수 있는 인터페이스 모듈(116)을 포함할 수 있다.
vTPM(106)은 SE(134) 내에 배치될 수 있다. 본 명세서에서 사용되는 바와 같이, (SE(134)와 같은) SE는 (VM과 같은) 모듈이 머신 판독 가능 코드의 명령어들을 실행하고 데이터를 저장할 수 있는 안전한 장소를 제공하는 메모리 위치들의 세트를 포함할 수 있다. 따라서, SE는 컴퓨팅 플랫폼(100)의 하드웨어(102)가 (SE(134) 내의 vTPM(106)과 같은) 소정의 메모리 위치들을 보호하기 위한 메커니즘을 제공할 수 있다. 구체적으로, SE(134)는 컴퓨팅 플랫폼(100)의 임의의 펌웨어, VMM(104), 및/또는 컴퓨팅 플랫폼(100) 상에서 실행되는 다른 프로세스들로부터 vTPM(106)의 비밀들을 보호할 수 있다. SE들의 콘텐츠가 또한 측정 및 저장될 수 있으며, 따라서 콘텐츠의 변경들이 쉽게 검출될 수 있다.
이제, SE들의 다수의 실시예가 설명된다. 일부 실시예들에서, SE 내의 VM들은 엔클레이브 페이지 캐시로부터 실행될 수 있으며, 엔클레이브 페이지들은 컴퓨팅 플랫폼(100)의 운영 체제(OS)에 의해 엔클레이브 페이지 캐시 내에 로딩될 수 있다. 일부 실시예들에서, SE는 VMM 또는 VMM 상에서 실행되는 VM(예로서, Xen 하이퍼바이저 내의 도메인 0)에 의해 초기화될 수 있다. SE 내의 VM의 페이지가 엔클레이브 페이지 캐시로부터 제거될 때마다, 암호 보호들을 이용하여, 페이지의 비밀성을 보호하고, 페이지가 엔클레이브 페이지 캐시 내로 다시 로딩될 때 부당 변경을 검출할 수 있다. 엔클레이브 페이지 캐시 내에서, 엔클레이브 데이터는 하드웨어(102)의 처리 장치들에 의해 제공되는 액세스 제어 메커니즘들을 이용하여 보호될 수 있으며, 페이지 캐시의 페이지들은 암호화될 수도 있다.
일부 실시예들에서 SE 내의 VM을 위한 코드는 암호화된 상태로 엔클레이브 페이지 캐시 내에 임시 저장될 수 있다. VM 코드는 엔클레이브 페이지 캐시로부터 인출되고 해독되어 처리 장치 캐시 내에 배치될 수 있고, 처리 장치 캐시로부터 코드가 검색 및 실행될 수 있으며, 엔클레이브 데이터는 컴퓨팅 플랫폼(100)의 처리 장치(들)에 의해 액세스된다. 일부 실시예들에서, 엔클레이브 페이지 캐시는 컴퓨팅 플랫폼(100)의 물리 주소 공간 내에 배치될 수 있으며, 엔클레이브 페이지 캐시는 하드웨어(102)의 처리 장치(들)에 의해 실행되는 명령어들의 서브세트인 SE 명령어들의 사용을 통해서만 액세스될 수 있다. 엔클레이브 페이지 캐시는 많은 상이한 SE로부터의 페이지들을 포함할 수 있으며, 페이지들의 무결성 및 비밀성을 보호하기 위한 액세스 제어 메커니즘들을 제공할 수 있다. 엔클레이브 페이지 캐시는 컴퓨팅 플랫폼에서 일관된 물리 메모리 액세스들을 유지하는 데 사용될 수 있는 것들과 유사한 일관성 프로토콜을 유지할 수 있다.
일부 실시예들에서, 엔클레이브 페이지 캐시는 엔클레이브 페이지 캐시 내의 각각의 페이지와 관련된 상태 정보를 포함할 수 있는 엔클레이브 페이지 캐시 맵을 사용할 수 있다. 상태 정보는 주어진 페이지가 속하는 특정 엔클레이브, 로딩된 페이지의 상태 등과 같은 정보를 지시할 수 있다. 페이지가 엔클레이브 페이지 캐시로부터 제거될 때, 엔클레이브 페이지 캐시 맵으로부터 상태 정보를 내보내고 (암호 기술들을 이용하여) 보호함으로써 SE 상에서 무결성 측정이 수행될 수 있다. 유사하게, 주어진 엔클레이브 페이지가 엔클레이브 페이지 캐시 내로 다시 로딩될 때, 상태 정보가 검증될 수 있다. 다양한 실시예들에서, 엔클레이브 페이지 캐시는 상이한 타입의 메모리들(예로서, 특정 처리 장치의 온보드 정적 랜덤 액세스 메모(SRAM) 및/또는 처리 장치 상에 배치되거나 그로부터 분리된 동적 랜덤 액세스 메모리(DRAM)의 일부) 내에 저장될 수 있다. 다양한 실시예들에서, 엔클레이브 페이지 캐시는 컴퓨팅 플랫폼(100) 밖으로부터의 무허가 액세스들로부터 보호될 수 있는 한편, 컴퓨팅 플랫폼(100)의 다른 컴포넌트들이 일관되고 안전하게 엔클레이브 페이지 캐시에 액세스하는 것을 가능하게 할 수 있다.
일부 실시예들에서, 엔클레이브 페이지 캐시는 DRAM을 이용하여 암호로 보호되는 휘발성 저장을 생성하는 비교적 비용 효과적인 메커니즘을 제공할 수 있는 암호 메모리 개구일 수 있다. 암호 메모리 개구는 하드웨어(102)의 중앙 처리 유닛(CPU)의 처리 코어 밖의 영역에서 하나 이상의 전략 배치된 암호 유닛들을 이용하여 다양한 레벨의 보호를 제공할 수 있다. 처리 코어 밖의 다양한 에이전트들은 암호 메모리 개구로 향하는 메모리 액세스들을 인식하고, 이러한 액세스들을 처리 코어 내에 위치하는 암호 제어기로 라우팅하도록 변경될 수 있다. 암호 제어기는 필요한 보호 레벨에 따라 플랫폼 DRAM에 대한 하나 이상의 메모리 액세스를 생성하여 암호 텍스트를 인출할 수 있다. 이어서, 암호 제어기는 인출된 텍스트를 처리하여 평문 텍스트를 생성함으로써 본래의 암호 메모리 개구 요청을 충족시킬 수 있다.
일부 실시예들에서, 엔클레이브 페이지 캐시는 하드웨어(102)에 포함된 마이크로코드에 의해 관리될 수 있는 개별 컨테이너로서 유지될 수 있다. 이러한 방식으로, 컨테이너는 실행이 SE 밖에서 이루어질 때 액세스 가능하지 않을 수 있다. (SE(134)와 같은) SE에 들어갈 때, 제어는 개별 컨테이너 내에 포함될 수 있는 엔클레이브 페이지 캐시 내의 엔클레이브 코드로 전달될 수 있다. SE 내에서 실행되는 동안 발생하는 임의의 페이지 장애들 또는 예외들은 마이크로코드에 의해 컴퓨팅 플랫폼(100)의 OS에 그리고/또는 VMM(104)에 반영될 수 있다. 컴퓨팅 플랫폼(100)이 임의의 SE 밖에서 실행될 때, 하드웨어(102)의 SE 범위 레지스터에 의해 엔클레이브 페이지 캐시에 대한 액세스 제어가 제공될 수 있다. 따라서, 컴퓨팅 플랫폼(100)은 마이크로코드 내에서 실행될 때 실행 SE에 속하지 않는 다른 SE 페이지 캐시 엔트리들에 대한 액세스를 방지하는 페이지 테이블 레벨 보호들을 제공할 수 있다. 일부 실시예들에서, SE의 구현은 하드웨어(102)의 처리 장치의 마이크로코드 능력을 이용하여 명령어들 및 보호들을 구현하는 것을 포함할 수 있다.
SE들의 다양한 실시예들의 전술한 장점들 및 특징들에 더하여, 다수의 설계 고려 사항들은 SE들이 컴퓨팅 플랫폼에서 어떻게 사용될 수 있는지도 알릴 수 있다. 예를 들어, (예를 들어, 네트워크 인터페이스 카드들과 같은) 제삼자 하드웨어 및 장치들은 SE들 내에서 실행되는 VM들 또는 다른 애플리케이션들과 통신하도록 구성되지 않을 수 있으며, 따라서 그러한 장치들이 SE 밖에서 실행되는 VM들 및 애플리케이션들과 올바르게 인터페이스할 수 있는 경우에도, 그러한 장치들은 SE들 내에서 실행되는 VM들 또는 다른 애플리케이션들과 올바르게 인터페이스하지 못할 수 있다. 게다가, SE들의 다양한 실시예들에 포함된 보안 특징들은 (예로서, 키 관리를 위한 메모리 및 프로세서 사이클들과 관련하여) 상당한 오버헤드를 필요로 할 수 있으며, 따라서 존재할 경우에 어떤 VM들 또는 다른 애플리케이션들이 SE 내에 적절히 포함될 수 있는지에 대한 선택은 속도, 메모리 액세스 및 다른 문제들에 대한 고려를 필요로 할 수 있다.
도 1을 계속 참조하면, 일부 실시예들에서, 컴퓨팅 플랫폼(100)은 vTPM(106)과 같은 다수의 vTPM을 포함할 수 있으며, 이들 각각은 상이한 SE 내에 배치될 수 있다. 일부 실시예들에서, vTPM은 SE 내에 배치되지 않을 수 있다. vTPM(106)은 암호 정보를 저장하도록 구성될 수 있다. 일부 실시예들에서, vTPM(106)은 (RSA(Rivest-Shamir-Adelman) 키 쌍 또는 비공개 및 공개 증명 키 쌍과 같은) 비공개 및 공개 키 쌍 중 비공개 키를 저장할 수 있으며, 그러한 키들은 vTPM(106), 및/또는 그러한 키들로 서명된 증명서들을 고유하게 식별할 수 있다. vTPM(106)의 키들은 SE(134)의 경계들을 떠나지 않을 수 있으며; vTPM(106)과 관련된 게스트 VM(예로서, 게스트 VM(110))이 이주할 때 vTPM(106)은 플랫폼들 사이에서 암호 정보를 운반할 수 있다.
vTPM(106)은 플랫폼 구성 레지스터들(PCR들)(136)을 포함할 수 있다. 일부 실시예들에서, PCR들(136)은 (후술하는) vRTM(120)과 vTPM(106)에 의해 지원되는 게스트 VM들(예로서, 게스트 VM(110), 후술됨)의 하나 이상의 자원 사이의 무결성 측정들의 체인 중 하나 이상의 무결성 측정을 저장하도록 구성될 수 있다. 특정 게스트 VM 자원의 무결성 측정이 수행될 때, 무결성 측정은 그 게스트 VM 자원과 관련된 특정 PCR 내에 저장될 수 있다. 무결성 측정들의 체인이 다시 개시될 때, vTPM(106)은 특정 PCR에 저장된 값을 변경하기 위한 (예로서, vRTM(120)으로부터의) 커맨드를 수신할 수 있다. 일부 실시예들에서, 그러한 커맨드는 특정 PCR에 저장된 값을 새로운 무결성 측정의 암호 해시를 이용하여 확장하기 위한 커맨드를 포함할 수 있다. 본 명세서에서 사용되는 바와 같이, 기존 값을 새로운 값을 이용하여 "확장"하는 것은 기존 값과 새로운 값을 연결하고 그 결과를 (예로서, SHA-1 해시를 이용하여) 해싱하는 것을 포함할 수 있다. 이러한 방식으로, 게스트 VM 자원들에 대한 무결성 측정들의 이력이 PCR들(136) 내에 유지될 수 있다. 일부 실시예들에서, 하나 이상의 PCR(136) 내에 저장된 값은 후술하는 바와 같이 MVM(118)에 의해 허용될 때만 변경될 수 있다.
컴퓨팅 플랫폼(100)은 게스트 VM(110)을 포함할 수 있다. 일부 실시예들에서, 컴퓨팅 플랫폼(100)은 게스트 VM(110)과 같은 다수의 게스트 VM을 포함할 수 있으며, 본 개시 내용의 많은 부분은 설명의 편의를 위해 단일 게스트 VM을 설명할 것이다. 게스트 VM(110)은 게스트 VM(110)과 vTPM(106)의 게스트 인터페이스 모듈(108) 사이의 통신을 가능하게 하도록 구성될 수 있는 vTPM 드라이버(114)를 포함할 수 있다. 일부 실시예들에서, vTPM 드라이버(114)와 게스트 인터페이스 모듈(108) 간의 통신은 VMM(104)을 통해 발생할 수 있다. vTPM 드라이버(114)는 게스트 VM(110) 상에서 실행될 수 있는 운영 체제(OS)(112)에 의해 제어될 수 있다. OS(112)는 물리 및/또는 가상 장치들(예로서, 물리 및/또는 가상 프린터들, 디이 장치들 또는 통신 장치들)에 대한 다수의 다른 드라이버를 제어할 수 있다. OS(112)는 또한 게스트 VM(110)이 격리된 물리 머신인 것처럼 게스트 VM(110) 상에서 실행될 수 있는 다수의 애플리케이션을 지원할 수 있다. 일부 실시예들에서, 하나 이상의 추가 VM이 게스트 VM(110) 상에서 실행될 수 있다. 본 명세서에서 사용되는 바와 같이, 게스트 VM의 "자원"은 게스트 VM 상에서 실행되는 임의의 모듈들 또는 게스트 VM에 의해 지원되는 다른 데이터, 예로서 드라이버들, OS들, 애플리케이션들 및 다른 VM들을 포함할 수 있다.
컴퓨팅 플랫폼(100)은 MVM(118)을 포함할 수 있다. MVM(118)은 (vTPM(106)과 같은) 하나 이상의 vTPM과 관련될 수 있으며, 하나 이상의 vTPM의 수명들을 관리하도록 구성될 수 있다. 일부 실시예들에서, MVM(118)은 그와 관련된 vTPM들(예로서, vTPM(106))의 비공개 키를 저장할 수 있고, 비공개 키를 이용하여 관련 vTPM들에 대한 증명서들에 서명하도록 구성될 수 있으며, 따라서 서명된 증명서들은 다른 컴퓨팅 플랫폼들이 예로서 게스트 VM(110)과 같은 게스트 VM의 자원의 보안의 검증을 요청할 때 인증의 증거로서 사용될 수 있다.
MVM(118)은 SE(132) 내에 배치될 수 있다. SE(132)는 vTPM(106)이 배치되는) SE(134)와 다른 SE일 수 있다. MVM(118)은 vTPM(106)의 관리 인터페이스 모듈(108)을 통해 vTPM(106)과 통신할 수 있다. 일부 실시예들에서, MVM(118)과 관리 인터페이스 모듈(108) 간의 통신은 VMM(104)을 통해 발생할 수 있다. 전술한 바와 같이, 일부 실시예들에서, MVM(118)은 vTPM(106)의 PCR들(136) 중 어느 것이 (예로서, vRTM(120)에 의해) 변경될 수 있는지를 제어할 수 있다. 구체적으로, MVM(118)은 변경자를 vTPM(106)에 제공할 수 있으며, 이 변경자는 PCR들(136) 중 특정 PCR이 변경될 수 있거나 변경되지 못할 수 있고, 결과적으로 PCR들(136) 중 특정한 하나 이상의 PCR을 변경하기 위한 vTPM(106)에 대한 커맨드들이 허용되거나 허용되지 않는다는 것을 지시한다. 일부 실시예들에서, vTPM(106)은 PCR들(136) 중 특정 PCR의 값의 변경이 허가된다는 것을 나타내는 변경자를 MVM(118)으로부터 수신한 후에만 그러한 변경을 허락할 수 있다. MVM(118)은 소정의 조건들 하에서만, 예를 들어 게스트 VM과 관련된 수명 이벤트가 발생할 때, PCR 값들의 변경을 허가하기 위한 식별자들을 제공할 수 있다. 일부 실시예들에서, MVM(118)은 vRTM(120)과 통신할 수 있다(후술함). 일부 실시예들에서 MVM(118) 및 vRTM(120)은 공통 SE 내에 포함될 수 있으며, 일부 그러한 실시예들에서 MVM(118)은 vRTM일 수 있고, vRTM(120)의 기능을 포함할 수 있다. 일부 실시예들에서, MVM(118)의 변경자 제공 기능은 vRTM(120) 내에 포함될 수 있으며, vRTM(120)은 변경자들을 보안 채널을 통해 (vTPM(106)과 같은) vTPM들에 제공할 수 있다. 위의 실시예들은 SE(132) 내의 MVM(118)(또는 SE(130) 내의 vRTM(120))으로부터의 허가시에만 PCR들(136) 내의 값들의 변경을 허가함으로써 예를 들어 VMM(104) 내의 악의적인 프로세스들에 의한 변경으로부터 PCR들(136)을 보호할 수 있다. 일부 실시예들에서, MVM(118)은 다수의 지원 VM(122) 중 임의의 VM과 통신할 수 있다(후술함).
컴퓨팅 플랫폼(100)은 vRTM(120)을 포함할 수 있다. vRTM(120)은 게스트 VM(110)과 같이 VMM(104) 상에서 실행되는 VM들의 자원들의 무결성 측정들을 위한 RTM으로서 역할하도록 구성될 수 있다. 일부 실시예들에서, vRTM(120)은 VM의 자원의 무결성 측정들의 체인을 개시하도록 구성될 수 있다. 무결성 측정은 예를 들어 VM의 자원을 정의하는 머신 판독 가능 코드의 해시를 포함할 수 있다. 일부 실시예들에서, vRTM(120)은 PCR들(136) 중 하나 내에(예로서, 해싱된 머신 판독 가능 코드를 가진 게스트 VM 자원과 관련된 PCR들(136) 중 하나 내에) 해시 값을 저장하기 위한 커맨드를 vTPM(106)에 대해 발부할 수 있다. 일부 실시예들에서, 해시 값을 저장하기 위한 커맨드는 (예를 들어, vTPM(120)이 이전 체인의 무결성 측정들의 저장을 이전에 개시하고 명령한 후에 다른 측정 체인을 개시할 때) PCR들(136) 중 적절한 하나의 PCR을 해시 값으로 확장하기 위한 커맨드일 수 있다.
vRTM(120)은 SE(130) 내에 배치될 수 있다. SE(130)는 (MVM(118)이 배치된) SE(132) 및 (vTPM(106)이 배치된) SE(134)와 다른 SE일 수 있다. 전술한 바와 같이, 컴퓨팅 장치(100)는 SE(130)를 포함하는 하나 이상의 SE의 무결성 측정들을 수행하도록 구성될 수 있다. 일부 실시예들에서, SE(130(따라서 vRTM(120))의 측정들은 SE(130)와 관련된 측정 레지스터 내의 그들의 초기 저장으로부터 보고되고, (vTPM(106)의 PCR들(136)과 같은) 각각의 vTPM의 PCR들 내로 확장될 수 있다. 일부 실시예들에서, vRTM(120)은 게스트 인터페이스 모듈(108)을 통해 vTPM(106)과 통신할 수 있다. 일부 실시예들에서, vRTM(120)과 vTPM(106) 간의 통신은 VMM(104)을 통해 발생할 수 있다. 전술한 바와 같이, 일부 실시예들에서, vTPM(106)은 SE 내에 배치되지 않을 수 있으며, 구체적으로는 vRTM(120)이 배치된 SE(130) 밖에 배치될 수 있다.
컴퓨팅 플랫폼은 하나 이상의 지원 VM(122)을 포함할 수 있다. 일부 실시예들에서, 지원 VM들(122)은 (vTPM(106)과 같은) vTPM들 및 (게스트 VM(110)과 같은) 게스트 VM들에 서비스들을 제공할 수 있다. 도 1에 도시된 지원 VM들의 예들은 이주 에이전트 VM(124), 도메인 형성자 VM(126) 및 보조자 VM(128)을 포함한다. 일부 실시예들에서, 이주 에이전트 VM(124)은 예를 들어 컴퓨팅 플랫폼(100)으로부터 게스트 VM이 이주하고 있는 다른 컴퓨팅 플랫폼으로의 게스트 VM의 복사를 관리하고, 게스트 VM이 이주한 후에 게스트 VM의 사본을 삭제함으로써 게스트 VM들(예로서, 게스트 VM(110)의 이주를 관리하도록 구성될 수 있다. 일부 실시예들에서, 도메인 형성자 VM(126)은 게스트 VM들에 대한 게스트 OS들을 초기화하고, 게스트 VM들에 대한 메모리를 할당하고/하거나, 다른 초기화 작업들을 행함으로써 (게스트 VM(110)과 같은) 게스트 VM들에 대한 환경들을 초기화하도록 구성될 수 있다. 보조자 VM(128)은 가상화된 드라이버 서비스들과 같은 서비스들을 (게스트 VM(110)과 같은) 게스트 VM들에 제공할 수 있는 하나 이상의 지원 VM을 나타낼 수 있다. 일부 실시예들에서, 지원 VM들(122) 중 하나 이상은 vRTM(120)과 게스트 VM(110) 사이의 무결성 측정들의 체인(결과적으로, vRTM(120)과, 게스트 VM(110)의 자원들과 같이 vTPM(106)과 관련된 게스트 VM의 자원들 사이의 무결성 측정들의 체인)의 일부로서 측정될 수 있다. 일부 실시예들에서, vTPM(106)이 SE 내에 배치되지 않을 때, vRTM(120)에 의해 개시되는 무결성 측정들의 체인은 vTPM(106) 자체의 측정을 포함할 수 있으며, vTPM(106)이 SE 내에 배치될 때, vTPM(106)이 배치된 SE(예로서, SE(134))의 측정은 vTPM(106)의 검증을 서비스할 수 있다.
이제, 도 2를 참조하면, 다양한 실시예들에 따른, SE 내의 vRTM과 게스트 VM의 자원 사이의 무결성 측정들의 체인을 개시하기 위한 프로세스(200)의 흐름도가 제공된다. 프로세스(200)(그리고 본 명세서에서 설명되는 다른 프로세스들)의 동작들이 특정 순서로 배열되고 각각 한 번 도시되지만, 다양한 실시예들에서 동작들 중 하나 이상은 반복되거나, 생략되거나, 비순차적으로 수행될 수 있다. 예시의 목적을 위해, 프로세스(200)의 동작들은 컴퓨팅 플랫폼(100)에 의해 수행되는 것으로 설명될 수 있지만, 프로세스(200)의 개별 동작들을 포함하는 프로세스(200)의 동작들은 컴퓨팅 플랫폼(100)의 임의의 적절히 구성된 컴포넌트 또는 컴포넌트들의 조합에 의해 수행될 수 있다.
프로세스(200)는 동작 202에서 시작될 수 있으며, 여기서 컴퓨팅 플랫폼(100)은 (SE(130)와 같은) SE 내에 (vRTM(120)과 같은) vRTM을 제공할 수 있다. 전술한 바와 같이, SE는 컴퓨팅 플랫폼(100)의 메모리의 영역 밖에 위치하는 실행되는 명령어들을 통해 액세스될 수 없는 그러한 메모리의 영역을 포함할 수 있다. 일부 실시예들에서, 컴퓨팅 플랫폼(100)은 vRTM이 배치된 제1 SE의 무결성 측정을 수행하도록 구성될 수 있다.
동작 204에서, 컴퓨팅 플랫폼(100)은 vRTM이 배치된 SE 밖의 (게스트 VM(110)과 같은) 게스트 VM을 위한 vTPM(vTPM(106)과 같은)을 제공할 수 있다. 일부 실시예들에서, 컴퓨팅 플랫폼(100)은 동작 204에서 (SE(134)와 같은) SE 내에 vTPM을 제공할 수 있다. 동작 204에서 vTPM을 제공받을 수 있는 SE는 동작 202에서 vRTM을 제공받는 SE와 다를 수 있다.
동작 206에서, 컴퓨팅 플랫폼(100)은 (동작 202의) vRTM과 게스트 VM의 자원(예로서, 게스트 VM 상에서 실행되는 애플리케이션) 사이의 무결성 측정들의 체인을 개시할 수 있다. 일부 실시예들에서, 게스트 VM은 vTPM이 배치된 SE 밖에 배치될 수 있다. 무결성 측정들의 체인은 vTPM의 측정을 포함할 수 있으며, 부트 또는 다른 초기화 시퀀스에서 vTPM 전에 발생하는 하나 이상의 지원 VM의 무결성 측정(들)을 포함할 수 있다. 예를 들어, 일부 실시예들에서, 하나 이상의 지원 VM은 제1 시간에 인스턴스화될 수 있으며, 지원 VM들에 의해 제공되는 서비스들을 이용하는 게스트 VM은 여러 주 또는 여러 달 늦은 제2 시간에 인스턴스화될 수 있다. 그러한 실시예들에서, 무결성 측정들의 체인은 제1 시간에 또는 그 근처에 수행되는 지원 VM들의 무결성 측정들 및 제2 시간에 또는 그 근처에 수행되는 게스트 VM의 무결성 측정들을 포함할 수 있다.
동작 208에서, 컴퓨팅 플랫폼(100)은 무결성 측정들이 수행될 추가 게스트 VM이 존재하는지를 결정할 수 있다. 그러한 경우, 컴퓨팅 플랫폼(100)은 동작 204로 진행하여, 추가 게스트 VM을 위한 vTPM을 제공하고, 전술한 바와 같이 계속할 수 있다. 컴퓨팅 플랫폼(100)이 동작 208에서 무결성 측정들이 수행될 추가 게스트 VM이 존재하지 않는 것으로 결정하는 경우, 프로세스(400)가 종료될 수 있다. 전술한 바와 같이, 프로세스(400)의 동작들의 순서는 순전히 예시적이며, 예를 들어 일부 실시예들에서 모든 게스트 VM들에 대한 vTPM들은 병렬로 또는 순차적으로 설정될 수 있으며, 그 후에 게스트 VM 자원들의 무결성 측정들이 (다시 병렬로 또는 순차적으로) 행해질 수 있다.
이제, 도 3을 참조하면, 다양한 실시예들에 따른, vRTM의 무결성 측정을 저장하기 위한 프로세스(300)의 흐름도가 제공된다. vRTM(120) 및 SE(130)와 관련하여 전술한 바와 같이, 일부 실시예들에서 컴퓨팅 플랫폼(100)은 vRTM이 배치된 SE와 같은 SE의 무결성 측정을 수행하도록 구성될 수 있다. vRTM을 포함하는 SE의 무결성 측정을 수행하고, 이러한 무결성 측정을 컴퓨팅 플랫폼(100) 내에(예로서, 컴퓨팅 플랫폼(100)의 OS 및/또는 VMM(104)에 의해 액세스 가능하지 않은 하드웨어(102), 펌웨어 또는 위치 내에) 저장함으로써, (도 2의 동작 206에서 개시되는 바와 같은) vRTM과 게스트 VM의 자원 사이의 무결성 측정들의 체인은 컴퓨팅 플랫폼(100)에서 VMM(104) 아래로 루팅(rooting)될 수 있다. 이러한 더 깊은 루팅은 무결성 측정들의 신뢰성을 개선할 수 있다. 게다가, vRTM 자체의 무결성이 측정될 수 있으므로, vRTM에 대한 부당 변경을 검출하고, 따라서 컴퓨팅 플랫폼(100)의 보안을 더 개선하는 것이 가능할 수 있다. 예시의 목적을 위해, 프로세스(300)의 동작들은 컴퓨팅 플랫폼(100)에 의해 수행되는 것으로 설명될 수 있지만, 프로세스(300)의 개별 동작들을 포함하는 프로세스(300)의 동작들은 컴퓨팅 플랫폼(100)의 임의의 적절히 구성된 컴포넌트 또는 컴포넌트들의 조합에 의해 수행될 수 있다.
프로세스(300)는 동작 302에서 시작될 수 있으며, 여기서 컴퓨팅 플랫폼(100)은 vRTM(예로서, vRTM(120))의 무결성 측정을 저장할 수 있다. 일부 실시예들에서, vRTM의 무결성 측정은 마이크로코드에 의해 수행될 수 있으며, 컴퓨팅 플랫폼(100)은 vRTM의 무결성 측정을 vRTM이 배치된 SE의 마이크로코드(예로서, SE(130)와 관련된 마이크로코드)와 관련된 하드웨어 레지스터 내에 저장할 수 있다. 일부 실시예들에서, 컴퓨팅 플랫폼(100)은 vTPM(106)의 PCR들(136) 중 하나 내에 무결성 측정을 저장할 수도 있다.
동작 304에서, 컴퓨팅 플랫폼(100)은 동작 302에서 저장된 vRTM의 무결성 측정에 대해 데이터의 세트를 봉인(sealing)할 수 있다. 본 명세서에서 사용되는 바와 같이, 무결성 측정에 대해 "데이터의 세트를 봉인하는 것"은 무결성 측정이 (vRTM과 같은) 하부의 측정된 컴포넌트가 SE 내에서 최초로 보호된 이래로 변경되지 않았다는 것을 지시할 때만 데이터의 세트가 해독될 수 있도록 데이터의 세트를 암호화하는 것을 지칭할 수 있다. 일부 실시예들에서, (키와 같은) 데이터의 세트는 vRTM의 무결성이 먼저 검증되지 않는 한은 그 데이터의 해독을 방지하기 위해 vRTM의 무결성 측정에 대해 봉인될 수 있다. 예를 들어, 은행 계좌에 대한 패스워드를 나타내는 데이터의 세트는 vRTM의 무결성 측정이 예상 또는 초기 값과 동일할 때만 패스워드가 해독될 수 있도록 vRTM의 무결성 측정에 대해 봉인될 수 있으며, 그렇지 않은 경우에 vRTM은 부당 변경되었을 수 있고, 패스워드는 암호화된 상태를 유지하라 수 있다. 이어서, 프로세서(3000가 종료될 수 있다.
이제, 도 4를 참조하면, 다양한 실시예들에 따른, SE 내에 vRTM을 갖는 컴퓨팅 플랫폼(예로서, SE(130) 내에 vRTM(120)을 갖는 컴퓨팅 플랫폼(100))과 통신하기 위한 프로세스(400)의 흐름도가 제공된다. 일부 실시예들에서, 프로세스(400)는 예를 들어, vRTM에 의해 행해지고, vTPM, 및 제2 컴퓨팅 플랫폼의 게스트 VM의 자원 내에 저장된 무결성 측정들의 체인이 제2 컴퓨팅 플랫폼의 게스트 VM의 자원이 부당 변경되지 않았다는 것을 지시한다는 것을 확인하기를 원하는 제1 컴퓨팅 플랫폼에 의해 수행될 수 있다.
예를 들어, 일부 실시예들에서, 제1 컴퓨팅 플랫폼은 은행 또는 병원 서버일 수 있고, 제2 컴퓨팅 플랫폼은 금융 또는 의료 기록들을 포함할 수 있으며, 제1 컴퓨팅 플랫폼이 제2 컴퓨팅 플랫폼과 민감한 정보를 교환하기 전에, 제1 컴퓨팅 플랫폼은 제2 컴퓨팅 플랫폼의 특정 자원들이 손상되지 않았다는 것을 검증하기를 원할 수 있다. 일부 실시예들에서, 제1 컴퓨팅 플랫폼은 제2 컴퓨팅 플랫폼의 vRTM 자체가 손상되지 않았다는 것을 검증하기를 원할 수 있다. 제1 컴퓨팅 플랫폼은 제2 컴퓨팅 플랫폼 밖에 위치하고 제2 컴퓨팅 플랫폼에 의해 신뢰되거나 신뢰되지 않을 수 있는 엔티티(예로서, 애플리케이션 또는 인터넷 서버)이거나 그를 포함할 수 있다.
아래의 프로세스(400)의 설명에서, 제2 컴퓨팅 플랫폼은 컴퓨팅 플랫폼(100)에 대해 본 명세서에서 설명되는 임의의 실시예에 따른 보안 엔클레이브 내에 vRTM을 갖도록 구성될 수 있다. 일부 실시예들에서, 제1 컴퓨팅 플랫폼은 컴퓨팅 플랫폼(100)에 대해 본 명세서에서 설명되는 바와 같이 구성될 수 있거나, 컴퓨팅 플랫폼(100)과 같은 컴퓨팅 플랫폼들과 통신하도록 구성되는 범용 컴퓨팅 플랫폼일 수 있다.
프로세스(400)는 동작 402에서 시작될 수 있으며, 여기서 제1 컴퓨팅 플랫폼은 vRTM을 포함하는 제2 컴퓨팅 플랫폼의 SE(예로서, 컴퓨팅 플랫폼(100)의 vRTM(120)을 포함하는 SE(130))의 무결성 측정을 보고하기 위한 커맨드를 제2 컴퓨팅 플랫폼의 처리 장치로 전송한다. 전술한 바와 같이, SE 내의 vRTM은 vRTM과 제2 컴퓨팅 플랫폼의 게스트 VM(컴퓨팅 플랫폼(100)의 게스트 VM(110))의 자원 사이의 무결성 측정들의 체인에 대한 RTM으로서 구성될 수 있다. 일부 실시예들에서, 게스트 VM은 vRTM을 포함하는 SE 밖에 배치될 수 있다.
동작 404에서, 제1 컴퓨팅 플랫폼은 제2 컴퓨팅 플랫폼으로부터 vRTM을 포함하는 SE의 무결성 측정을 수신할 수 있다. 일부 실시예들에서, 무결성 측정은 (예로서, vTPM(106)의 PCR들(136) 중 하나 이상으로부터 검색되는 바와 같이) 제2 컴퓨팅 플랫폼의 vTPM으로부터 전송될 수 있다. 일부 실시예들에서, 동작 404에서 수신되는 SE의 무결성 측정은 제2 컴퓨팅 플랫폼과 관련된 키를 이용하여 암호 방식으로 서명될 수 있다. 예를 들어, 키는 신뢰된 당사자(예로서, 하드웨어의 하나 이상의 컴포넌트의 제조자)에 의해 검증 가능할 수 있는 하드웨어 플랫폼 키일 수 있다. 암호 서명을 이용하여, 제1 컴퓨팅 플랫폼은 무결성 측정이 올바른 컴퓨팅 플랫폼으로부터 보고되었고 도중에 부당 변경되지 않았다는 것을 확인할 수 있다.
동작 406에서, 제1 컴퓨팅 플랫폼은 (동작 404에서 수신된 바와 같은) SE의 무결성 측정을 예상 값과 비교할 수 있다. 일부 실시예들에서, 예상 값은 vRTM을 정의하는 머신 판독 가능 코드의 예상 세트에 기초할 수 있다. 예를 들어, 예상 값은 vRTM을 정의하는 머신 판독 가능 코드의 예상 세트의 해시일 수 있다. 제1 컴퓨팅 플랫폼이 동작 406에서 SE의 무결성 측정이 예상 값과 매칭되지 않는 것으로 결정하는 경우, 제1 컴퓨팅 플랫폼은 동작 410으로 진행하여, 미스매치의 지시자를 제1 컴퓨팅 플랫폼의 다른 컴포넌트(예로서, 보안 이벤트 로깅 소프트웨어), 다른 컴퓨팅 플랫폼(예로서, 보안 이벤트 로깅 서버) 및/또는 제2 컴퓨팅 플랫폼에 (예를 들어, 그에게 잠재적인 보안 파괴를 통지하기 위해) 제공할 수 있다. 이어서, 프로세스(400)가 종료될 수 있다.
제1 컴퓨팅 플랫폼이 동작 406에서 SE의 무결성 측정이 예상 값과 매칭되는 것으로 결정하는 경우, 제1 컴퓨팅 플랫폼은 동작 408로 진행하여, 제2 컴퓨팅 플랫폼의 게스트 VM의 자원과 통신할 수 있다. 일부 실시예들에서, 동작 408에서 제2 컴퓨팅 플랫폼의 게스트 VM의 자원과 통신하기 전에, 제1 컴퓨팅 플랫폼은 vRTM과 제2 컴퓨팅 플랫폼의 게스트 VM의 자원 간의 무결성 측정들의 체인을 나타내는 데이터(예로서, 체인의 무결성 측정들의 하나 이상의 해시 값)가 예상 값 또는 값들과 매칭되는지를 결정할 수 있으며, 매치의 확인 시에만 제2 컴퓨팅 플랫폼의 게스트 VM의 자원과의 통신을 진행할 수 있다. 이어서, 프로세스(400)가 종료될 수 있다.
이제, 도 5를 참조하면, 다양한 실시예들에 따른, (PCR들(136) 중 임의의 PCR과 같은) PCR에 저장된 값들을 변경하기 위한 프로세스(500)의 흐름도가 제공된다. 예시의 목적을 위해, 프로세스(500)의 동작들은 컴퓨팅 플랫폼(100)에 의해 수행되는 것으로 설명될 수 있지만, 프로세스(500)의 개별 동작들을 포함하는 프로세스(500)의 동작들은 컴퓨팅 플랫폼(100)의 임의의 적절히 구성된 컴포넌트 또는 컴포넌트들의 조합에 의해 수행될 수 있다.
프로세스(500)는 동작 502에서 시작될 수 있으며, 여기서 컴퓨팅 플랫폼(100)은 (SE(132)와 같은) 컴퓨팅 플랫폼(100)의 제1 SE 내에 (MVM(118)과 같은) MVM을 제공할 수 있다. 동작 504에서, 컴퓨팅 플랫폼(100)은 컴퓨팅 플랫폼(100)의 (SE(134)와 같은) 제2 SE 내에 (게스트 VM(110)과 같은) 게스트 VM을 위한 (vTPM(106)과 같은) vTPM을 제공할 수 있다. (동작 504의) 제2 SE는 (동작 502)의 제1 SE와 다를 수 있다. 동작 506에서, 컴퓨팅 플랫폼(100)은 (SE(130)와 같은) 컴퓨팅 플랫폼(100)의 제3 SE 내에 (vRTM(120)과 같은) vRTM을 제공할 수 있으며, 제3 SE는 제1 및 제2 SE들과 다를 수 있다. 일부 실시예들에서, 동작 502에서 제공되는 MVM은 vRTM(예로서, vRTM(120)의 기능)을 포함할 수 있으며, 따라서 동작 506은 수행되지 않을 수 있다.
동작 508에서, 컴퓨팅 플랫폼(100)은 vRTM(예로서, vRTM(120) 또는 MVM(118)에 포함된 vRTM)과 게스트 VM의 자원 간의 무결성 측정들의 체인을 개시할 수 있다. 동작 510에서, 컴퓨팅 플랫폼(100)은 (동작 504에서 제공된) vTPM에서 vTPM의 PCR, 즉 게스트 VM의 자원과 관련된 PCR 내에 저장된 값을 변경하기 위한 커맨드를 수신할 수 있다. 일부 실시예들에서, PCR 내에 저장된 값을 변경하기 위한 커맨드는 동작 508에서 개시된 무결성 측정들의 체인에 응답하여 행해질 수 있다. 일부 실시예들에서, PCR 내에 저장된 값을 변경하기 위한 커맨드는 무결성 측정들로부터 발생하지 않을 수 있고, 다른 소스(예로서, 다른 프로세스)로부터 발생할 수 있다. 일부 실시예들에서, 동작 510에서 수신된 커맨드는 PCR 내에 저장된 값을 PCR과 관련된 게스트 VM 자원의 무결성 측정의 암호 해시로 확장하기 위한 커맨드를 포함할 수 있다. 동작 510에서 수신된 커맨드는 PCR의 구성에 의존할 수 있으며, 예를 들어 일부 PCR들은 vTPM 재설정 시에만 하나의 값으로 초기화될 수 있거나, 임의의 값으로 설정되는 것이 아니라 단지 확장될 수 있다.
동작 512에서, 컴퓨팅 플랫폼(100)은 (동작 510에서 수신된) 변경 커맨드가 허가되었다는 것을 나타내는 변경자가 MVM으로부터 vTPM에서 수신되었는지를 결정할 수 있다. 일부 실시예들에서, MVM 및 vTPM은 동작 512에서 보안 채널을 통해 통신할 수 있다. MVM 및 vTPM 각각은 보안 엔클레이브들 내에 배치되므로(따라서, 검증 및 신뢰될 수 있으므로), 2개의 신뢰 포인트 사이에 보안 채널을 설정하기 위한 이 분야에 공지된 다수의 기술 중 임의의 기술을 이용하여, MVM과 vTPM 사이에 보안 채널을 설정할 수 있다. 일부 실시예들에서, 변경자는 PCR과 관련된 게스트 VM의 수명 이벤트를 나타낼 수 있다. 적절한 변경자가 수신되지 않은 경우, 프로세스(500)는 종료될 수 있고, PCR에 대해 어떠한 변경도 행해지지 않을 수 있다. 컴퓨팅 플랫폼(100)이 동작 510에서 변경자가 수신된 것으로 결정하는 경우, 컴퓨팅 플랫폼(100)은 동작 514로 진행하여, PCR 내에 저장된 값을 변경할 수 있다. 이어서, 프로세스(500)가 종료될 수 있다.
이제, 도 6을 참조하면, 개시되는 실시예들(예로서, 도 1의 컴퓨팅 플랫폼(100) 및 도 4와 관련하여 전술한 제1 및 제2 컴퓨팅 플랫폼들과 관련하여 전술한 실시예들)을 실시하는 데 적합한 예시적인 컴퓨팅 플랫폼(600)의 블록도가 제공된다. 컴퓨팅 플랫폼(600)은 예를 들어 데스크탑 컴퓨터, 휴대용 컴퓨터, 태블릿 컴퓨터, 서버, 클라이언트, 씬 클라이언트, 셀룰러 전화 또는 스마트폰과 같은 다수의 컴퓨팅 시스템 중 임의의 컴퓨팅 시스템을 포함하거나 그의 일부일 수 있다.
도시된 바와 같이, 컴퓨팅 장치(600)는 다수의 처리 장치(602) 및 시스템 메모리(604)를 포함한다. 처리 장치들(602)은 하나 이상의 처리 코어 및 다른 처리 장치를 포함할 수 있다. 게다가, 컴퓨팅 플랫폼(600)은 (반도체 드라이브, 디스켓, 하드 드라이브, 컴팩트 디스크 판독 전용 메모리(CDROM) 등과 같은) 대용량 저장 장치들(606), (디이, 키보드, 커서 제어, 카메라, 마이크, GPS 수신기, 모션 검출기 등과 같은) 입출력 장치들(608) 및 (네트워크 인터페이스 카드, 모뎀, 와이파이 장치, 블루투스 장치 등과 같은) 통신 인터페이스들(610)을 포함할 수 있다. 요소들은 하나 이상의 버스를 나타내는 시스템 버스(612)를 통해 서로 결합될 수 있다. 다수의 버스의 경우, 이들은 하나 이상의 버스 브리지(도시되지 않음)에 의해 브리징될 수 있다. 본 명세서에서 설명되는 기술들 및 시스템들은 이러한 장치들 또는 경로들 중 어느 하나 이상을 통해 유발되는 취약성들에 대해 컴퓨팅 플랫폼의 자원들을 보호하는 데 사용될 수 있다.
이러한 요소들 각각은 이 분야에 공지된 그의 통상적인 기능들을 수행할 수 있다. 구체적으로, 시스템 메모리(604) 및 대용량 저장소(606)는 본 명세서에서 공동으로 계산 논리(622)로서 지시되는 각각의 처리 장치에 의해 실행될 때 도 2-5 중 임의의 도면의 방법 또는 그의 부분들을 구현하는 프로그래밍 명령어들의 작업 사본 및 영구 사본을 저장하는 데 사용될 수 있다. 다양한 컴포넌트들은 처리 장치들(602)에 의해 지원되는 어셈블러 명령어들 또는 그러한 명령어들로 컴파일링될 수 있는 예를 들어 C와 같은 하이 레벨 언어들에 의해 구현될 수 있다.
프로그래밍 명령어들의 영구 사본은 예를 들어 컴팩트 디스크(CD)와 같은 머신 액세스 가능 배포 매체를 통해 또는 (예로서, 배포 서버(도시되지 않음)로부터) 통신 인터페이스(610)를 통해 공장에서 또는 현장에서 영구 저장소(606) 내에 배치될 수 있다. 즉, 에이전트 프로그램의 일 구현을 갖는 하나 이상의 배포 매체를 이용하여, 에이전트를 배포하여 다양한 컴퓨팅 장치들을 프로그래밍할 수 있다. 요소들(602-612)의 구성은 공지되어 있으며, 따라서 더 설명되지 않는다.
전술한 기술들을 수행하기 위한 (비일시적 머신 판독 가능 매체들을 포함하는) 머신 액세스 가능 매체들, 방법들, 시스템들 및 장치들은 본 명세서에서 개시되는 실시예들의 설명을 위한 예들이다. 게다가, 전술한 상호작용들에서의 모든 장치들은 다양한 개시되는 기술들을 수행하도록 구성될 수 있다.
예들
예 1A는 컴퓨팅 플랫폼 상에서 무결성 측정들의 체인을 개시하기 위한 방법으로서, 컴퓨팅 플랫폼의 제1 보안 엔클레이브(secure enclave) 내의 vRTM을 상기 컴퓨팅 플랫폼에 제공하는 단계 - 상기 컴퓨팅 플랫폼은 제2 보안 엔클레이브의 무결성 측정을 수행하도록 구성됨 -; 게스트 VM을 위한 vTPM을 상기 컴퓨팅 플랫폼에 상기 제1 보안 엔클레이브 밖에 제공하는 단계; 및 상기 컴퓨팅 플랫폼 상에서 상기 vRTM과 상기 게스트 VM의 자원 간의 무결성 측정들의 체인을 개시하는 단계를 포함하는 방법이다.
예 1B는 예 1A의 내용을 포함할 수 있으며, 상기 제1 보안 엔클레이브는 상기 컴퓨팅 플랫폼의 메모리의 영역을 포함하고, 메모리의 상기 영역은 메모리의 상기 영역 밖에 위치하는 실행되는 명령어들을 통해 액세스 가능하지 않다는 것을 더 특정한다.
예 1C는 예 1A-1B 중 어느 하나의 내용을 포함할 수 있으며, 상기 vRTM과 상기 게스트 VM의 상기 자원 간의 무결성 측정들의 상기 체인 중 하나의 무결성 측정을 상기 vTPM 내에 저장하는 단계를 더 포함할 수 있다.
예 1D는 예 1A-1C의 내용을 포함할 수 있으며, 게스트 VM을 위한 vTPM을 상기 컴퓨팅 플랫폼에 상기 제1 보안 엔클레이브 밖에 제공하는 단계는 게스트 VM을 위한 vTPM을 상기 컴퓨팅 플랫폼에 상기 컴퓨팅 플랫폼의 제2 보안 엔클레이브 내에 제공하는 단계를 포함하고, 상기 제2 보안 엔클레이브는 상기 제1 보안 엔클레이브와 다르다는 것을 더 특정한다.
예 1E는 예 1D의 내용을 포함할 수 있으며, 상기 게스트 VM은 상기 제1 보안 엔클레이브 밖에 위치한다는 것을 더 특정한다.
예 1F는 예 1A-1E 중 어느 하나의 내용을 포함할 수 있으며, 무결성 측정들의 상기 체인은 상기 vTPM의 무결성 측정을 포함한다는 것을 더 특정한다.
예 1G는 예 1F의 내용을 포함할 수 있으며, 무결성 측정들의 상기 체인은 상기 게스트 VM에 서비스를 제공하는 지원 VM의 무결성 측정을 포함한다는 것을 더 특정한다.
예 1H는 예 1A-1G 중 어느 하나의 내용을 포함할 수 있으며, 상기 제1 보안 엔클레이브의 무결성 측정을 수행하도록 구성되는 것은 상기 제1 보안 엔클레이브와 관련된 마이크로코드가 상기 제1 보안 엔클레이브의 상기 무결성 측정을 수행하고 상기 제1 보안 엔클레이브의 상기 무결성 측정을 하드웨어 레지스터 내에 저장하도록 구성되는 것을 포함한다는 것을 더 특정한다.
예 1I는 예 1A-1H 중 어느 하나의 내용을 포함할 수 있으며, 상기 제1 vTPM은 제1 vTPM이고, 상기 게스트 VM은 제1 게스트 VM이며, 상기 방법은 제2 게스트 VM을 위한 제2 vTPM을 상기 컴퓨팅 플랫폼에 제공하는 단계; 및 상기 컴퓨팅 플랫폼 상에서 상기 vRTM과 상기 제2 게스트 VM의 자원 간의 무결성 측정들의 체인을 개시하는 단계를 더 포함한다는 것을 더 특정한다.
예 1J는 컴퓨팅 플랫폼의 처리 장치에 의한 실행에 응답하여 상기 컴퓨팅 플랫폼이 예 1A-1I 중 어느 하나의 방법을 수행하게 하는 명령어들을 포함하는 하나 이상의 머신 판독 가능 매체이다.
예 1K는 하나 이상의 처리 장치를 포함하는 장치로서, 상기 장치는 상기 하나 이상의 처리 장치에 의한 실행에 응답하여 상기 장치가 예 1A-1I 중 어느 하나의 방법을 수행하게 하는 명령어들을 포함하는 하나 이상의 머신 판독 가능 매체를 포함한다.
예 1L은 예 1A-1I 중 어느 하나의 방법의 동작들을 수행하기 위한 하나 이상의 수단을 포함하는 장치이다.
예 2A는 컴퓨팅 플랫폼에 상기 컴퓨팅 플랫폼의 제1 보안 엔클레이브 내에 MVM을 제공하는 단계; 상기 컴퓨팅 플랫폼에 대한 게스트 VM을 위한 vTPM을 컴퓨팅 플랫폼에 제공하는 단계 - 상기 vTPM은 상기 제1 보안 엔클레이브와 다른 상기 컴퓨팅 플랫폼의 제2 보안 엔클레이브 내에 제공됨 -; 상기 vTPM의 PCR 내에 저장된 값을 변경하기 위한 커맨드를 상기 vTPM에서 수신하는 단계; 상기 커맨드가 허가된다는 것을 나타내는 변경자를 보안 채널을 통해 상기 MVM으로부터 상기 vTPM에서 수신하는 단계; 및 상기 변경자를 수신한 후, 상기 PCR 내에 저장된 상기 값을 상기 컴퓨팅 플랫폼에 의해 변경하는 단계를 포함하는 컴퓨팅을 위한 방법이다.
예 2B는 예 2A의 내용을 포함할 수 있으며, 상기 변경자는 상기 PCR과 관련된 VM의 수명 이벤트를 나타낸다는 것을 더 특정한다.
예 2C는 예 2A-2B 중 어느 하나의 내용을 포함할 수 있으며, 상기 PCR 내에 저장된 상기 값을 변경하기 위한 상기 커맨드는 상기 PCR 내에 저장된 상기 값을 상기 PCR과 관련된 VM 자원의 무결성 측정의 암호 해시로 확장하기 위한 커맨드이다는 것을 더 특정한다.
예 2D는 예 2A-2C 중 어느 하나의 내용을 포함할 수 있으며, 상기 MVM은 vRTM을 포함한다는 것을 더 특정한다.
예 2E는 예 2A-2D 중 어느 하나의 내용을 포함할 수 있으며, 상기 컴퓨팅 플랫폼에 상기 컴퓨팅 플랫폼의 제3 보안 엔클레이브 내에 vRTM을 제공하는 단계 - 상기 제3 보안 엔클레이브는 상기 제1 및 제2 보안 엔클레이브들과 다름 -; 및 상기 컴퓨팅 플랫폼 상에서 상기 vRTM과 상기 게스트 VM의 자원 간의 무결성 측정들의 체인을 개시하는 단계를 더 포함한다.
예 2F는 컴퓨팅 플랫폼의 처리 장치에 의한 실행에 응답하여 상기 컴퓨팅 플랫폼이 예 2A-2E 중 어느 하나의 방법을 수행하게 하는 명령어들을 포함하는 하나 이상의 머신 판독 가능 매체이다.
예 2G는 하나 이상의 처리 장치를 포함하는 장치로서, 상기 장치는 상기 하나 이상의 처리 장치에 의한 실행에 응답하여 상기 장치가 예 2A-2E 중 어느 하나의 방법을 수행하게 하는 명령어들을 포함하는 하나 이상의 머신 판독 가능 매체를 포함한다.
예 2H은 예 2A-2E 중 어느 하나의 방법의 동작들을 수행하기 위한 하나 이상의 수단을 포함하는 장치이다.
예 3A는 무결성 측정을 수신하기 위한 방법으로서, 제1 컴퓨팅 플랫폼에 의해, 제2 컴퓨팅 플랫폼의 보안 엔클레이브의 무결성 측정을 보고하기 위한 커맨드를 상기 제2 컴퓨팅 플랫폼의 처리 장치로 전송하는 단계 - 상기 보안 엔클레이브는 vRTM과 상기 보안 엔클레이브 밖에 배치된 게스트 VM의 자원 간의 무결성 측정들의 체인에 대한 측정용 신뢰 루트로서 구성되는 상기 vRTM을 포함함 -; 및 상기 제2 컴퓨팅 플랫폼으로부터 상기 제1 컴퓨팅 플랫폼에 의해 상기 보안 엔클레이브의 무결성 측정을 수신하는 단계를 포함하는 방법이다.
예 3B는 예 3A의 내용을 포함할 수 있으며, 상기 제1 컴퓨팅 플랫폼에 의해, 상기 보안 엔클레이브의 상기 무결성 측정을 예상 값과 비교하는 단계를 더 포함한다.
예 3C는 예 3B의 내용을 포함할 수 있으며, 상기 제1 컴퓨팅 플랫폼에 의해, 상기 보안 엔클레이브의 상기 무결성 측정이 상기 예상 값과 매칭된다는 것을 나타내는 상기 비교의 결과에 응답하여 상기 게스트 VM의 상기 자원과 통신하는 단계를 더 포함한다.
예 3D는 예 3B-3C 중 어느 하나의 내용을 포함할 수 있으며, 상기 예상 값은 상기 vRTM을 정의하는 머신 판독 가능 코드의 예상 세트에 기초한다는 것을 더 특정한다.
예 3E는 예 3A-3D 중 어느 하나의 내용을 포함할 수 있으며, 상기 보안 엔클레이브의 상기 무결성 측정은 상기 컴퓨팅 플랫폼과 관련된 키로 서명된다는 것을 더 특정한다.
예 3F는 컴퓨팅 플랫폼의 처리 장치에 의한 실행에 응답하여 상기 컴퓨팅 플랫폼이 예 3A-3E 중 어느 하나의 방법을 수행하게 하는 명령어들을 포함하는 하나 이상의 머신 판독 가능 매체이다.
예 3G는 하나 이상의 처리 장치를 포함하는 장치로서, 상기 장치는 상기 하나 이상의 처리 장치에 의한 실행에 응답하여 상기 장치가 예 3A-3E 중 어느 하나의 방법을 수행하게 하는 명령어들을 포함하는 하나 이상의 머신 판독 가능 매체를 포함한다.
예 3H은 예 3A-3E 중 어느 하나의 방법의 동작들을 수행하기 위한 하나 이상의 수단을 포함하는 장치이다.

Claims (25)

  1. 컴퓨팅을 위한 장치로서,
    프로세서와,
    상기 프로세서에 결합되고 명령어를 저장한 메모리를 포함하되,
    상기 명령어는 상기 프로세서에 의해 동작되도록 구성되어 상기 장치로 하여금,
    상기 장치의 제1 보안 엔클레이브(secure enclave) 내에 관리 가상 머신(management virtual machine(MVM))을 제공하게 하고,
    상기 장치의 게스트 가상 머신(virtual machine(VM))을 위한 가상 머신 신뢰 플랫폼 모듈(virtual machine trusted platform module(vTPM))을 제공하게 하며 - 상기 vTPM은 상기 제1 보안 엔클레이브와 다른 상기 장치의 제2 보안 엔클레이브 내에 제공됨 -,
    상기 vTPM의 플랫폼 구성 레지스터(platform configuration register(PCR)) 내에 저장된 값을 변경하기 위한 커맨드를 상기 vTPM에서 수신하게 하고,
    상기 커맨드가 허가된다는 것을 나타내는 변경자를 보안 채널을 통해 상기 MVM으로부터 상기 vTPM에서 수신하게 하며,
    상기 변경자를 수신한 후, 상기 PCR 내에 저장된 상기 값을 변경하게 하고,
    상기 장치의 제3 보안 엔클레이브 내에 측정용 가상 머신 신뢰 루트(vRTM)를 제공하게 하며 - 상기 제3 보안 엔클레이브는 상기 제1 보안 엔클레이브 및 상기 제2 보안 엔클레이브와 다름 -,
    상기 vRTM과 상기 게스트 VM의 자원 간의 무결성 측정의 체인을 개시하게 하는
    장치.
  2. 제1항에 있어서,
    상기 변경자는 상기 PCR과 관련된 VM의 수명 이벤트를 나타내는
    장치.
  3. 제1항에 있어서,
    상기 PCR 내에 저장된 상기 값을 변경하기 위한 상기 커맨드는 PCR 내에 저장된 상기 값을 상기 PCR과 관련된 VM 자원의 무결성 측정의 암호 해시로 확장하기 위한 커맨드인
    장치.
  4. 제1항에 있어서,
    상기 MVM은 측정용 가상 머신 신뢰 루트(virtual machine root-of-trust for measurement(vRTM))를 포함하는
    장치.
  5. 명령어를 포함하는 하나 이상의 비일시적 머신 판독 가능 저장 매체로서,
    상기 명령어는 컴퓨팅 플랫폼의 처리 장치에 의한 실행에 응답하여 상기 컴퓨팅 플랫폼으로 하여금,
    상기 컴퓨팅 플랫폼에 대해, 측정용 가상 머신 신뢰 루트(vRTM)를 상기 컴퓨팅 플랫폼의 제1 보안 엔클레이브 내에 제공하게 하고 - 상기 컴퓨팅 플랫폼은 제1 보안 엔클레이브의 무결성 측정을 수행하도록 구성됨 -,
    상기 컴퓨팅 플랫폼에 대해, 게스트 가상 머신(VM)을 위한 가상 머신 신뢰 플랫폼 모듈(vTPM)을 상기 제1 보안 엔클레이브와는 다른 제2 보안 엔클레이브에 제공하게 하며,
    상기 컴퓨팅 플랫폼 상에서, 상기 vRTM과 상기 게스트 VM의 자원 간의 무결성 측정의 체인을 개시하게 하되,
    상기 무결성 측정의 체인은 상기 vTPM의 하나 이상의 무결성 측정을 포함하는
    비일시적 머신 판독 가능 저장 매체.
  6. 제5항에 있어서,
    상기 제1 보안 엔클레이브는 상기 컴퓨팅 플랫폼의 메모리의 영역을 포함하고, 상기 메모리의 영역은 상기 메모리의 영역 밖에 위치하는 실행되는 명령어를 통해 액세스 가능하지 않은
    비일시적 머신 판독 가능 저장 매체.
  7. 제5항에 있어서,
    상기 명령어는 상기 컴퓨팅 플랫폼으로 하여금 또한,
    상기 vRTM과 상기 게스트 VM의 상기 자원 간의 상기 무결성 측정의 체인 중 하나의 무결성 측정을 상기 vTPM 내에 저장하게 하는
    비일시적 머신 판독 가능 저장 매체.
  8. 제5항에 있어서,
    상기 게스트 VM은 상기 제2 보안 엔클레이브 밖에 존재하는
    비일시적 머신 판독 가능 저장 매체.
  9. 제5항에 있어서,
    상기 무결성 측정의 체인은 상기 vTPM의 하나의 무결성 측정을 포함하는
    비일시적 머신 판독 가능 저장 매체.
  10. 제9항에 있어서,
    상기 무결성 측정의 체인은 상기 게스트 VM에 서비스를 제공하는 지원 VM의 무결성 측정을 포함하는
    비일시적 머신 판독 가능 저장 매체.
  11. 제5항에 있어서,
    상기 제1 보안 엔클레이브의 무결성 측정을 수행하도록 구성되는 것은 상기 제1 보안 엔클레이브와 관련된 마이크로코드가 상기 제1 보안 엔클레이브의 상기 무결성 측정을 수행하고 상기 제1 보안 엔클레이브의 상기 무결성 측정을 하드웨어 레지스터 내에 저장하도록 구성되는 것을 포함하는
    비일시적 머신 판독 가능 저장 매체.
  12. 제5항에 있어서,
    상기 vTPM은 제1 vTPM이고, 상기 게스트 VM은 제1 게스트 VM이며,
    상기 명령어는 상기 컴퓨팅 플랫폼으로 하여금 또한,
    제2 게스트 VM을 위한 제2 vTPM을 상기 컴퓨팅 플랫폼에 제공하게 하고,
    상기 컴퓨팅 플랫폼 상에서 상기 vRTM과 상기 제2 게스트 VM의 자원 간의 무결성 측정의 체인을 개시하게 하는
    비일시적 머신 판독 가능 저장 매체.
  13. 명령어를 포함하는 하나 이상의 비일시적 머신 판독 가능 저장 매체로서,
    상기 명령어는 제1 컴퓨팅 플랫폼의 처리 장치에 의한 실행에 응답하여 상기 제1 컴퓨팅 플랫폼으로 하여금,
    제2 컴퓨팅 플랫폼의 보안 엔클레이브의 무결성 측정을 보고하는 커맨드를 상기 제2 컴퓨팅 플랫폼의 처리 장치로 전송하게 하고 - 상기 보안 엔클레이브는 측정용 가상 머신 신뢰 루트(vRTM)와 상기 보안 엔클레이브 밖에 배치된 게스트 가상 머신(VM)의 자원 간의 무결성 측정의 체인에 대한 측정용 신뢰 루트로서 구성되는 상기 vRTM을 포함하고, 상기 무결성 측정의 체인은, 상기 게스트 가상 머신(VM)을 위한 가상 머신 신뢰 플랫폼 모듈(vTPM)의 하나 이상의 무결성 측정을 포함함 - 와,
    상기 제2 컴퓨팅 플랫폼으로부터 상기 보안 엔클레이브의 무결성 측정을 수신하게 하며,
    상기 보안 엔클레이브의 상기 무결성 측정을 예상 값과 비교하게 하고,
    상기 보안 엔클레이브의 상기 무결성 측정이 상기 예상 값과 매칭된다는 것을 나타내는 상기 비교의 결과에 응답하여 상기 게스트 VM의 상기 자원과 통신하게 하는
    비일시적 머신 판독 가능 저장 매체.
  14. 제13항에 있어서,
    상기 예상 값은 상기 vRTM을 정의하는 머신 판독 가능 코드의 예상 세트에 기초하는
    비일시적 머신 판독 가능 저장 매체.
  15. 제13항에 있어서,
    상기 보안 엔클레이브의 상기 무결성 측정은 상기 컴퓨팅 플랫폼과 관련된 키로 서명되는
    비일시적 머신 판독 가능 저장 매체.
  16. 컴퓨팅 플랫폼 상에서 무결성 측정의 체인을 개시하는 방법으로서,
    상기 컴퓨팅 플랫폼에 대해, 측정용 가상 머신 신뢰 루트(vRTM)를 상기 컴퓨팅 플랫폼의 제1 보안 엔클레이브 내에 제공하는 단계와 - 상기 컴퓨팅 플랫폼은 제1 보안 엔클레이브의 무결성 측정을 수행하도록 구성됨 -,
    상기 컴퓨팅 플랫폼에 대해, 게스트 가상 머신(VM)을 위한 가상 머신 신뢰 플랫폼 모듈(vTPM)을 상기 제1 보안 엔클레이브와는 다른 제2 보안 엔클레이브에 제공하는 단계와,
    상기 컴퓨팅 플랫폼 상에서, 상기 vRTM과 상기 게스트 VM의 자원 간의 무결성 측정의 체인을 개시하는 단계
    를 포함하고,
    상기 무결성 측정의 체인은 상기 vTPM의 하나 이상의 무결성 측정을 포함하는
    무결성 측정의 체인 개시 방법.
  17. 제16항에 있어서,
    상기 vRTM과 상기 게스트 VM의 상기 자원 간의 상기 무결성 측정의 체인 중 하나의 무결성 측정을 상기 vTPM 내에 저장하는 단계
    를 더 포함하는 무결성 측정의 체인 개시 방법.
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
KR1020157021062A 2013-03-06 2013-03-06 가상 머신들의 측정용 신뢰 루트 KR101717263B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/029439 WO2014137338A1 (en) 2013-03-06 2013-03-06 Roots-of-trust for measurement of virtual machines

Publications (2)

Publication Number Publication Date
KR20150105390A KR20150105390A (ko) 2015-09-16
KR101717263B1 true KR101717263B1 (ko) 2017-03-16

Family

ID=51489395

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157021062A KR101717263B1 (ko) 2013-03-06 2013-03-06 가상 머신들의 측정용 신뢰 루트

Country Status (6)

Country Link
US (2) US9053059B2 (ko)
EP (2) EP3869332B1 (ko)
JP (1) JP6055561B2 (ko)
KR (1) KR101717263B1 (ko)
CN (2) CN104969234B (ko)
WO (1) WO2014137338A1 (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8494585B2 (en) 2011-10-13 2013-07-23 The Boeing Company Portable communication devices with accessory functions and related methods
US9992024B2 (en) * 2012-01-25 2018-06-05 Fujitsu Limited Establishing a chain of trust within a virtual machine
US10579405B1 (en) * 2013-03-13 2020-03-03 Amazon Technologies, Inc. Parallel virtual machine managers
US9497221B2 (en) * 2013-09-12 2016-11-15 The Boeing Company Mobile communication device and method of operating thereof
US9819661B2 (en) 2013-09-12 2017-11-14 The Boeing Company Method of authorizing an operation to be performed on a targeted computing device
US10064240B2 (en) 2013-09-12 2018-08-28 The Boeing Company Mobile communication device and method of operating thereof
US10063445B1 (en) * 2014-06-20 2018-08-28 Amazon Technologies, Inc. Detecting misconfiguration during software deployment
US9715597B2 (en) 2014-09-25 2017-07-25 Mcafee, Inc. Data verification using enclave attestation
US10171427B2 (en) 2015-01-29 2019-01-01 WebCloak, LLC Portable encryption and authentication service module
US9667606B2 (en) 2015-07-01 2017-05-30 Cyphermatrix, Inc. Systems, methods and computer readable medium to implement secured computational infrastructure for cloud and data center environments
US10248791B2 (en) 2015-07-20 2019-04-02 Intel Corporation Technologies for secure hardware and software attestation for trusted I/O
US9673982B2 (en) 2015-09-16 2017-06-06 Sprint Communications Company L.P. Efficient hardware trust verification in data communication systems that comprise network interface cards, central processing units, and data memory buffers
CN109416718B (zh) * 2015-12-24 2023-05-12 英特尔公司 云数据中心中应用容器的可信部署
US10528739B2 (en) 2016-04-20 2020-01-07 Sophos Limited Boot security
WO2018054466A1 (en) * 2016-09-22 2018-03-29 Telefonaktiebolaget Lm Ericsson (Publ) Virtualization of a trusted computing base
US10324862B2 (en) * 2016-09-30 2019-06-18 Intel Corporation Supporting oversubscription of guest enclave memory pages
US10642972B2 (en) * 2016-10-20 2020-05-05 Intel Corporation Extending packet processing to trusted programmable and fixed-function accelerators
US10528721B2 (en) * 2016-10-20 2020-01-07 Intel Corporation Trusted packet processing for multi-domain separatization and security
US10819696B2 (en) * 2017-07-13 2020-10-27 Microsoft Technology Licensing, Llc Key attestation statement generation providing device anonymity
CN111149106B (zh) 2017-08-11 2022-09-02 华为技术有限公司 使用多个设备证书进行密钥认证的设备和方法
US10621350B2 (en) * 2017-10-02 2020-04-14 Microsoft Technology Licensing, Llc System integrity using attestation for virtual trusted platform module
US10587412B2 (en) * 2017-11-07 2020-03-10 International Business Machines Corporation Virtual machine structure
US11113400B1 (en) * 2017-12-26 2021-09-07 Virtuozzo International Gmbh System and method for providing distributed compute platform on untrusted hardware
US10970390B2 (en) * 2018-02-15 2021-04-06 Intel Corporation Mechanism to prevent software side channels
US11093272B2 (en) 2018-06-27 2021-08-17 International Business Machines Corporation Virtual machine allocation and migration between hardware devices by destroying and generating enclaves using transmitted datafiles and cryptographic keys
CN110677250B (zh) 2018-07-02 2022-09-02 阿里巴巴集团控股有限公司 密钥和证书分发方法、身份信息处理方法、设备、介质
CN110795774B (zh) 2018-08-02 2023-04-11 阿里巴巴集团控股有限公司 基于可信高速加密卡的度量方法、设备和系统
CN110795742B (zh) 2018-08-02 2023-05-02 阿里巴巴集团控股有限公司 高速密码运算的度量处理方法、装置、存储介质及处理器
CN109165079B (zh) * 2018-08-07 2021-07-27 郑州云海信息技术有限公司 基于虚拟化的云数据中心可信平台、信任链构建方法
CN110874478B (zh) 2018-08-29 2023-05-02 阿里巴巴集团控股有限公司 密钥处理方法及装置、存储介质和处理器
US11489827B2 (en) * 2018-10-08 2022-11-01 Oracle International Corporation Dedicated network authentication and allocation for dedicated virtual machine host clusters
CN110515699B (zh) * 2019-08-20 2021-09-07 苏州浪潮智能科技有限公司 一种获取虚拟机所在平台可信状态的方法和设备
US11334670B2 (en) 2020-01-28 2022-05-17 Hewlett Packard Enterprise Development Lp Integrity verification for a software stack or part of a software stack
US11604671B2 (en) 2020-03-19 2023-03-14 Red Hat, Inc. Secure virtual machine and peripheral device communication
CN114398156B (zh) * 2022-03-24 2022-09-09 阿里云计算有限公司 数据通道构建方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070094719A1 (en) * 2005-05-13 2007-04-26 Scarlata Vincent R Method and apparatus for migrating virtual trusted platform modules
US20120151209A1 (en) * 2010-12-09 2012-06-14 Bae Systems National Security Solutions Inc. Multilevel security server framework

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103771B2 (en) 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US7133525B1 (en) * 2002-05-17 2006-11-07 Communication Security Apparatus Corp. Communication security apparatus and method of using same
US20050132367A1 (en) * 2003-12-16 2005-06-16 Vijay Tewari Method, apparatus and system for proxying, aggregating and optimizing virtual machine information for network-based management
JP3945708B2 (ja) * 2004-01-23 2007-07-18 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理システム、変換処理システム、逆変換処理システム、変換方法、変換プログラム、及び記録媒体
US7590867B2 (en) * 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
US20070056033A1 (en) 2005-03-31 2007-03-08 Grawrock David W Platform configuration apparatus, systems, and methods
US20070234412A1 (en) * 2006-03-29 2007-10-04 Smith Ned M Using a proxy for endpoint access control
JP5038396B2 (ja) * 2006-04-21 2012-10-03 インターデイジタル テクノロジー コーポレーション トラステッドコンピューティングの完全性測定の通知を実行する装置および方法
US8151262B2 (en) * 2007-03-30 2012-04-03 Lenovo (Singapore) Pte. Ltd. System and method for reporting the trusted state of a virtual machine
CN101039186B (zh) * 2007-05-08 2010-08-04 中国科学院软件研究所 系统日志的安全审计方法
US20090204964A1 (en) * 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
CN101350044B (zh) * 2008-09-02 2010-07-14 中国科学院软件研究所 一种虚拟环境信任构建方法
KR101457355B1 (ko) * 2009-12-22 2014-11-04 인텔 코포레이션 보안 애플리케이션 실행을 제공하는 방법 및 장치
WO2012148324A1 (en) * 2011-04-26 2012-11-01 Telefonaktiebolaget Lm Ericsson (Publ) Secure virtual machine provisioning
MY176908A (en) * 2011-04-26 2020-08-26 Mimos Berhad An apparatus and method for determining level of integrity
CN102244684B (zh) * 2011-07-29 2013-07-17 电子科技大学 基于usbkey的efi可信云链引导方法
US20140007087A1 (en) 2012-06-29 2014-01-02 Mark Scott-Nash Virtual trusted platform module

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070094719A1 (en) * 2005-05-13 2007-04-26 Scarlata Vincent R Method and apparatus for migrating virtual trusted platform modules
US20120151209A1 (en) * 2010-12-09 2012-06-14 Bae Systems National Security Solutions Inc. Multilevel security server framework

Also Published As

Publication number Publication date
CN108762887A (zh) 2018-11-06
CN104969234B (zh) 2018-06-12
WO2014137338A1 (en) 2014-09-12
CN108762887B (zh) 2022-03-11
KR20150105390A (ko) 2015-09-16
EP3869332B1 (en) 2023-04-12
EP3869332A3 (en) 2021-11-17
EP2815349A4 (en) 2015-10-21
EP2815349B1 (en) 2021-04-21
US9678895B2 (en) 2017-06-13
JP6055561B2 (ja) 2016-12-27
US9053059B2 (en) 2015-06-09
EP3869332A2 (en) 2021-08-25
US20140258733A1 (en) 2014-09-11
US20150286582A1 (en) 2015-10-08
CN104969234A (zh) 2015-10-07
JP2016509321A (ja) 2016-03-24
EP2815349A1 (en) 2014-12-24

Similar Documents

Publication Publication Date Title
KR101717263B1 (ko) 가상 머신들의 측정용 신뢰 루트
CN108351937B (zh) 计算设备
JP6804665B2 (ja) ハイパーバイザと仮想マシンとの間のメモリページ遷移の監視
US9690947B2 (en) Processing a guest event in a hypervisor-controlled system
US9047468B2 (en) Migration of full-disk encrypted virtualized storage between blade servers
KR101332135B1 (ko) Tpm 액세스들을 가상화하기 위한 시스템들, 방법들 및 장치들
KR20200036732A (ko) 신뢰 컨테이너들의 고속 론칭을 위한 기술들
US20140007087A1 (en) Virtual trusted platform module
CN110348204B (zh) 一种代码保护系统、认证方法、装置、芯片及电子设备
US20140006776A1 (en) Certification of a virtual trusted platform module
GB2466071A (en) Associating a Signing key with a Software Component of a Computing Platform
CN103270518A (zh) 虚拟机验证
JP2022522678A (ja) セキュア実行ゲスト所有者環境制御
Raj et al. Credo: Trusted computing for guest VMs with a commodity hypervisor
Zegzhda et al. Use of Intel SGX to ensure the confidentiality of data of cloud users
JP2021093002A (ja) 情報処理装置、情報処理方法、および、プログラム
US20220374512A1 (en) Software-based hardware security module (hsm) for a virtualized computing environment
Narayanan et al. Remote attestation of SEV-SNP confidential VMs using e-vTPMs
Narayanan et al. Remote attestation of confidential VMs using ephemeral vTPMs
Wang et al. A security-enhanced vTPM 2.0 for cloud computing
aw Ideler Cryptography as a service in a cloud computing environment
Galanou et al. Matee: Multimodal attestation for trusted execution environments
Song et al. TZ-IMA: Supporting Integrity Measurement for Applications with ARM TrustZone
US20220300314A1 (en) Hypervisor-assisted secured memory sharing among host and guest operating system
Weiß et al. Integrity verification and secure loading of remote binaries for microkernel-based runtime environments

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