KR20200036732A - 신뢰 컨테이너들의 고속 론칭을 위한 기술들 - Google Patents
신뢰 컨테이너들의 고속 론칭을 위한 기술들 Download PDFInfo
- Publication number
- KR20200036732A KR20200036732A KR1020190104310A KR20190104310A KR20200036732A KR 20200036732 A KR20200036732 A KR 20200036732A KR 1020190104310 A KR1020190104310 A KR 1020190104310A KR 20190104310 A KR20190104310 A KR 20190104310A KR 20200036732 A KR20200036732 A KR 20200036732A
- Authority
- KR
- South Korea
- Prior art keywords
- trust
- container
- computing device
- virtual
- response
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/74—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
신뢰 컨테이너들의 고속 론칭을 위한 기술들은 신뢰 플랫폼 모듈(TPM)을 갖는 컴퓨팅 디바이스를 포함한다. 컴퓨팅 디바이스는 TPM을 이용하여 컨테이너 런타임을 측정하고 측정에 응답하여 컨테이너 런타임을 실행한다. 컴퓨팅 디바이스는 TPM과 가상 플랫폼 자격 증명 간의 신뢰 관계를 확립하고, 가상 플랫폼 자격 증명을 가상 TPM에 프로비저닝하고, 가상 플랫폼 자격 증명을 프로비저닝하는 것에 응답하여 게스트 환경을 실행한다. 컴퓨팅 디바이스는 가상 TPM을 이용하여 컨테이너화된 애플리케이션을 측정하고 측정에 응답하여 컨테이너화된 애플리케이션을 실행한다. 컴퓨팅 디바이스는 가상 TPM을 이용하여 게스트 환경에서 신뢰할 수 있는 컴퓨팅 동작을 수행할 수 있다. 가상 TPM 및 컨테이너화된 애플리케이션은 컴퓨팅 디바이스의 멀티-키 전체 메모리 암호화(MKTME) 지원을 이용하여 보호될 수 있다. 가상 TPM의 상태는 암호화되고 지속될 수 있다. 다른 실시예들이 설명되고 청구된다.
Description
신뢰할 수 있고 안전한 부팅 시스템들은 컴퓨팅 디바이스들이 소프트웨어 및 펌웨어 컴포넌트들이 로딩될 때 이들을 검증하여, 컴퓨팅 디바이스에 대한 신뢰 체인을 확립할 수 있게 한다. 예를 들어, 전형적인 안전 부팅 시스템은 컴퓨팅 디바이스의 부팅 펌웨어, 펌웨어 드라이버들, 운영 체제 로더, 및 운영 체제가 로딩될 때 이들을 검증할 수 있다. 예시적인 보호 부팅 기술들은 Intel® TXT(Trusted Execution Technology), Intel Boot Guard, UEFI Secure Boot technology, 또는 Intel PTT(Platform Trust Technology)를 포함한다. 신뢰 부팅에 대한 신뢰 루트(root of trust)는, 예를 들어, Trusted Computing Group®에 의해 지정된 신뢰 플랫폼 모듈(Trusted Platform Module, TPM)을 포함할 수 있다.
특정 애플리케이션들은 컨테이너들, 가상화, 또는 다른 리소스 격리 기술들을 이용하여 실행될 수 있다. 컨테이너화된 애플리케이션들은 가상 머신들, 네임스페이스들, 또는 다른 가상화 기술들을 이용하여 다른 애플리케이션들로부터 격리될 수 있다.
본 명세서에 설명된 개념들은 첨부 도면들에서 제한이 아니라 예로서 예시되어 있다. 예시의 단순성 및 명료성을 위해, 도면들에 예시된 요소들은 반드시 일정한 비율로 그려진 것은 아니다. 적절한 것으로 간주되는 경우, 대응하는 또는 유사한 요소들을 나타내기 위해 도면들 사이에서 참조 라벨들이 반복되었다.
도 1은 신뢰 컨테이너 실행을 위한 컴퓨팅 디바이스의 적어도 하나의 실시예의 단순화된 블록도이다.
도 2는 도 1의 컴퓨팅 디바이스의 환경의 적어도 하나의 실시예의 단순화된 블록도이다.
도 3 내지 도 5는 도 1 및 도 2의 컴퓨팅 디바이스에 의해 실행될 수 있는 신뢰 컨테이너 실행을 위한 방법의 적어도 하나의 실시예의 단순화된 흐름도이다.
도 6은 도 1 및 도 2의 컴퓨팅 디바이스의 신뢰 컴포넌트 스택의 적어도 하나의 실시예의 단순화된 블록도이다.
도 7은 도 1 및 도 2의 컴퓨팅 디바이스의 컨테이너 매니페스트의 적어도 하나의 실시예의 단순화된 블록도이다.
도 8는 도 1 및 도 2의 컴퓨팅 디바이스의 컨테이너 게스트 환경의 적어도 하나의 실시예의 단순화된 블록도이다.
도 1은 신뢰 컨테이너 실행을 위한 컴퓨팅 디바이스의 적어도 하나의 실시예의 단순화된 블록도이다.
도 2는 도 1의 컴퓨팅 디바이스의 환경의 적어도 하나의 실시예의 단순화된 블록도이다.
도 3 내지 도 5는 도 1 및 도 2의 컴퓨팅 디바이스에 의해 실행될 수 있는 신뢰 컨테이너 실행을 위한 방법의 적어도 하나의 실시예의 단순화된 흐름도이다.
도 6은 도 1 및 도 2의 컴퓨팅 디바이스의 신뢰 컴포넌트 스택의 적어도 하나의 실시예의 단순화된 블록도이다.
도 7은 도 1 및 도 2의 컴퓨팅 디바이스의 컨테이너 매니페스트의 적어도 하나의 실시예의 단순화된 블록도이다.
도 8는 도 1 및 도 2의 컴퓨팅 디바이스의 컨테이너 게스트 환경의 적어도 하나의 실시예의 단순화된 블록도이다.
본 개시내용의 개념들은 다양한 수정들 및 대안적인 형태들의 여지가 있지만, 그의 특정 실시예들이 도면들에 예로서 도시되었으며, 본 명세서에서 상세히 설명될 것이다. 그러나, 본 개시내용의 개념들을 개시된 특정 형태들로 제한하려는 의도는 없고, 오히려, 그 의도는 본 개시내용 및 첨부된 청구항들에 부합하는 모든 수정들, 등가물들 및 대안들을 커버하려는 것임을 이해해야 한다.
명세서에서 "일 실시예", "실시예", "예시적인 실시예" 등에 대한 언급들은 설명된 실시예가 특정 특징, 구조, 또는 특성을 포함할 수 있지만, 모든 실시예가 그 특정 특징, 구조, 또는 특성을 포함할 수 있거나 반드시 포함하는 것은 아닐 수도 있음을 나타낸다. 또한, 그러한 문구들이 반드시 동일한 실시예를 언급하는 것은 아니다. 또한, 특정한 특징, 구조, 또는 특성이 실시예와 관련하여 설명될 때, 명시적으로 설명되든지 아니든지 간에, 다른 실시예들과 관련하여 그러한 특징, 구조, 또는 특성을 달성하는 것은 본 기술분야의 통상의 기술자의 지식 범위 내에 있다고 할 수 있다. 또한, "적어도 하나의 A, B, 및 C"의 형태로 리스트에 포함된 항목들은 (A); (B); (C); (A 및 B); (A 및 C); (B 및 C); 또는 (A, B, 및 C)를 의미할 수 있다는 것을 이해해야 한다. 유사하게, "A, B, 및 C 중 적어도 하나"의 형태로 열거된 항목들은 (A); (B); (C); (A 및 B); (A 및 C); (B 및 C); 또는 (A, B, 및 C)를 의미할 수 있다.
개시된 실시예들은, 일부 경우들에서, 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 개시된 실시예들은 또한 하나 이상의 프로세서에 의해 판독 및 실행될 수 있는, 일시적 또는 비일시적 머신 판독가능(예를 들어, 컴퓨터 판독가능) 저장 매체에 의해 운반되거나 그에 저장된 명령어들로서 구현될 수 있다. 머신 판독가능 저장 매체는 머신에 의해 판독가능한 형태로 정보를 저장하거나 송신하기 위한 임의의 저장 디바이스, 메커니즘, 또는 다른 물리 구조(예를 들어, 휘발성 또는 비휘발성 메모리, 미디어 디스크, 또는 다른 미디어 디바이스)로서 구현될 수 있다.
도면들에서, 일부 구조적 또는 방법 특징들은 특정 배열들 및/또는 순서들로 도시될 수 있다. 그러나, 그러한 특정 배열들 및/또는 순서들이 요구되지 않을 수도 있다는 것을 이해해야 한다. 오히려, 일부 실시예들에서, 그러한 특징들은 예시적인 도면들에 도시된 것과는 상이한 방식 및/또는 순서로 배열될 수 있다. 또한, 특정 도면에서 구조적 또는 방법 특징의 포함은 그러한 특징이 모든 실시예들에서 요구된다는 것을 암시하도록 의도되지 않으며, 일부 실시예들에서는, 포함되지 않을 수 있거나 다른 특징들과 조합될 수 있다.
이제 도 1을 참조하면, 신뢰 컨테이너 실행을 위한 컴퓨팅 디바이스(100)는 컴퓨팅 엔진(120) 및 물리 신뢰 플랫폼 모듈(TPM)(132)을 포함한다. 사용 시에, 아래 설명되는 바와 같이, 컴퓨팅 디바이스(100)는 컨테이너 런타임으로 확장되는 플랫폼 컴포넌트들을 측정하는 신뢰 부팅 프로세스를 수행한다. 컴퓨팅 디바이스(100)는 신뢰 컨테이너에서 가상 TPM(vTPM)을 셋업한다. 신뢰 컨테이너는 메모리로부터 직접 실행되고 다양한 컨테이너 계층들을 기술하는 매니페스트를 이용하여 무결성 보호될 수 있다. vTPM 및 컨테이너 메모리 페이지들은 컴퓨팅 엔진(120)의 멀티-키 전체 메모리 암호화(MKTME) 지원(122)을 이용하여 보호될 수 있다. vTPM을 이용하여 신뢰할 수 있는 컴퓨팅 동작들을 수행함으로써, 컴퓨팅 디바이스(100)는 물리 TPM(132)에 비하여 성능을 개선할 수 있고, 이는 제한된 리소스들을 갖는 비교적 저렴한 마이크로컨트롤러일 수 있고/있거나 저속 I/O 접속을 통해 컴퓨팅 엔진(120)에 접속될 수 있다. 또한, 각각의 신뢰 컨테이너에서 vTPM을 사용함으로써, 컴퓨팅 디바이스(100)는 물리 TPM(132)에 대한 가상 머신 액세스들 및/또는 종료들과 연관된 오버헤드 없이 많은 컨테이너들을 핸들링하기 위해 스케일링하는 것이 가능할 수 있다. 또한, MKTME 키들은 물리 TPM(132)을 이용하여 안전하게 저장될 수 있고, 이는 MKTME 암호화된 메모리가 전력 사이클들에 걸쳐 지속되더라도 보안성을 보장할 수 있고, 이는 결국 이미 인스턴스화된 신뢰 컨테이너들의 효율적인 재론칭을 허용할 수 있다.
컴퓨팅 디바이스(100)는, 이에 제한되는 것은 아니지만, 컴퓨터, 서버, 워크스테이션, 데스크톱 컴퓨터, 랩톱 컴퓨터, 노트북 컴퓨터, 태블릿 컴퓨터, 모바일 컴퓨팅 디바이스, 웨어러블 컴퓨팅 디바이스, 네트워크 어플라이언스, 웹 어플라이언스, 분산 컴퓨팅 시스템, 프로세서 기반 시스템, 및/또는 소비자 전자 디바이스를 포함하는, 본 명세서에 설명된 기능들을 수행할 수 있는 임의의 유형의 계산 또는 컴퓨터 디바이스로서 구현될 수 있다. 도 1에 도시된 바와 같이, 컴퓨팅 디바이스(100)는 예시적으로 컴퓨팅 엔진(120), 입력/출력 서브시스템(124), 메모리(126), 데이터 저장 디바이스(128), 통신 서브시스템(130), 및/또는 서버 또는 유사한 컴퓨팅 디바이스에서 흔히 발견되는 다른 컴포넌트들 및 디바이스들을 포함한다. 물론, 컴퓨팅 디바이스(100)는, 다른 실시예들에서는, 서버 컴퓨터에서 흔히 발견되는 것들과 같은 다른 또는 추가적인 컴포넌트들(예를 들어, 다양한 입력/출력 디바이스들)을 포함할 수 있다. 또한, 일부 실시예들에서, 예시적인 컴포넌트들 중 하나 이상은 다른 컴포넌트에 통합되거나 다른 방식으로 다른 컴포넌트의 일부를 형성할 수 있다. 예를 들어, 메모리(126), 또는 그의 부분들은 일부 실시예들에서 컴퓨팅 엔진(120)에 통합될 수 있다.
컴퓨팅 엔진(120)은 본 명세서에 설명된 기능들을 수행할 수 있는 임의의 유형의 컴퓨팅 엔진으로서 구현될 수 있다. 예를 들어, 컴퓨팅 엔진(120)은 단일 또는 멀티-코어 프로세서(들), 디지털 신호 프로세서, 마이크로컨트롤러, 필드 프로그래머블 게이트 어레이(FPGA) 또는 다른 구성 가능한 회로, 주문형 집적 회로(ASIC), 또는 다른 프로세서 또는 처리/제어 회로로서 구현될 수 있다. 또한, 단일의 컴퓨팅 엔진(120)을 포함하는 것으로 예시되어 있지만, 일부 실시예들에서, 컴퓨팅 디바이스(100)는 다수의 프로세서들(120)을 갖는 멀티-소켓 서버로서 구현될 수 있다. 예시적인 컴퓨팅 엔진(120)은 멀티-키 전체 메모리 암호화(MKTME) 지원(122)을 포함한다. MKTME 지원(122)은 컴퓨팅 엔진(120)이 메모리(126)의 콘텐츠를 투명하게 암호화할 수 있게 한다. MKTME 지원(122)은, 데이터가 각각 메모리(126)에 저장되고 그로부터 판독될 때 데이터를 암호화하고 암호해독하는 데 사용되는 다수의 암호화 키들을 갖는 테이블 또는 다른 내부 보호 구조를 유지한다. 암호화 키들은 예시적으로 128-비트 AES XTS 키들이지만, 임의의 대칭, 비대칭, 또는 다른 암호화 키로서 구현될 수도 있다. 암호화 키는 MKTME 지원(122)에 의해 페이지마다의 기준으로, 예를 들어, 특정 메모리 액세스에 대한 물리 메모리 페이지 어드레스의 하나 이상의 달리 사용되지 않는 상위 비트들에 포함된 키 식별자에 기초하여 선택될 수 있다. 그 실시예들에서, 컴퓨팅 디바이스(100)의 운영 체제, 가상 메모리 모니터, 또는 다른 관리 컴포넌트는 적절한 키 식별자들로 하나 이상의 페이지 테이블 및/또는 확장 페이지 테이블들을 구성함으로써 특정한 메모리 페이지들에 대한 액세스를 제어할 수 있다. MKTME 키들은 MKTME 지원(122)에 의해 생성될 수 있고, 이 경우에 그것들은 컴퓨팅 엔진(120)의 외부에 공개되지 않거나, 소프트웨어에 의해 공급될 수 있다. 일부 실시예들에서, MKTME 지원(122)은 Intel TDX(Trusted Domain Extensions)에 대한 지원을 포함할 수 있다. TDX를 이용하여, MKTME 지원(122)은 "사용자" 또는 "테넌트" 키라고도 불리는 외부 "도메인" 키를 수용할 수 있다. 컴퓨팅 엔진(120)은 또한 MKTME 및 Intel SGX뿐만 아니라 Intel TDX에 의해 사용되는 메모리를 보호하기 위해 자체 생성되는 디폴트 키를 사용할 수 있다.
메모리(126)는 본 명세서에 설명된 기능들을 수행할 수 있는 임의의 유형의 휘발성 또는 비휘발성 메모리 또는 데이터 저장소로서 구현될 수 있다. 동작 시에, 메모리(126)는 운영 체제들, 애플리케이션들, 프로그램들, 라이브러리들, 및 드라이버들과 같은 컴퓨팅 디바이스(100)의 동작 동안 사용되는 다양한 데이터 및 소프트웨어를 저장할 수 있다. 메모리(126)는, 컴퓨팅 디바이스(100)의 컴퓨팅 엔진(120), 메모리(126), 및 다른 컴포넌트들과의 입력/출력 동작들을 용이하게 하기 위한 회로 및/또는 컴포넌트들로서 구현될 수 있는, I/O 서브시스템(124)을 통해 컴퓨팅 엔진(120)에 통신가능하게 결합된다. 예를 들어, I/O 서브시스템(124)은, 메모리 제어기 허브들, 입력/출력 제어 허브들, 센서 허브들, 펌웨어 디바이스들, 통신 링크들(즉, 포인트-투-포인트 링크들, 버스 링크들, 와이어들, 케이블들, 광 가이드들, 인쇄 회로 보드 트레이스들 등) 및/또는 입력/출력 동작들을 용이하게 하기 위한 다른 컴포넌트들 및 서브시스템들로서 구현될 수 있거나 또는 달리 이들을 포함할 수 있다. 일부 실시예들에서, I/O 서브시스템(124)은 시스템 온 칩(SoC)의 일부를 형성할 수 있고, 컴퓨팅 디바이스(100)의 컴퓨팅 엔진(120), 메모리(126), 및 다른 컴포넌트들과 함께 단일 집적 회로 칩 상에 통합될 수 있다. 유사하게, 데이터 저장 디바이스(128)는, 예를 들어, 메모리 디바이스들 및 회로들, 메모리 카드들, 하드 디스크 드라이브들, 솔리드 스테이트 드라이브들, 비휘발성 플래시 메모리, 또는 다른 데이터 저장 디바이스들과 같은, 데이터의 단기간 또는 장기간 저장을 위해 구성된 임의의 유형의 디바이스 또는 디바이스들로서 구현될 수 있다.
컴퓨팅 디바이스(100)는, 컴퓨터 네트워크(도시되지 않음)를 통해 컴퓨팅 디바이스(100)와 다른 원격 디바이스들 간의 통신을 가능하게 할 수 있는 임의의 통신 회로, 디바이스, 또는 이들의 집합으로서 구현될 수 있는, 통신 서브시스템(130)도 포함한다. 통신 서브시스템(130)은 임의의 네트워크 인터페이스 카드, 네트워크 어댑터, 네트워크 제어기, 호스트 패브릭 인터페이스, 네트워크 코프로세서, 또는 컴퓨팅 디바이스(100)를 컴퓨터 네트워크에 접속하는 다른 컴포넌트로서 구현될 수 있다. 통신 서브시스템(130)은 그러한 통신을 달성하기 위해 임의의 하나 이상의 통신 기술(예를 들어, 유선 또는 무선 통신) 및 연관된 프로토콜들(예를 들어, 이더넷, InfiniBand®, Bluetooth®, Wi-Fi®, WiMAX, 3G, 4G LTE 등)을 사용하도록 구성될 수 있다. 일부 실시예들에서, 통신 서브시스템(130)은 SoC의 일부를 형성할 수 있고, 컴퓨팅 디바이스(100)의 컴퓨팅 엔진(120) 및/또는 다른 컴포넌트들과 함께 단일 집적 회로 칩 상에 통합될 수 있다.
도시된 바와 같이, 컴퓨팅 디바이스(100)는 TPM(132)을 포함한다. TPM(132)은 물리 마이크로컨트롤러, 코프로세서, 기능 블록, 또는 보안 서비스들을 제공하는 다른 전용 컴포넌트로서 구현될 수 있다. 특히, TPM(132)은 암호 키들, 플랫폼 자격 증명들, 및 플랫폼 측정치들에 대한 하나 이상의 보안 저장 위치를 제공할 수 있다. TPM(132)은 또한 보안 난수 생성, 암호 키 생성, 암호 바인딩 및 실링, 로컬 또는 원격 증명, 또는 다른 보안 서비스들을 제공할 수 있다. TPM(132)은 신뢰 플랫폼 그룹(Trusted Platform Group)에 의해 지정된 하나 이상의 TPM 표준, 예컨대 TPM 1.2, TPM 2.0, 또는 임의의 다른 버전에 따라 구현될 수 있다. 일부 실시예들에서, TPM(132)은 LPC(low pin count) 버스, SPI(serial peripheral interconnect) 버스, 또는 다른 저속 인터커넥트와 같은 저대역폭 접속을 통해 I/O 서브시스템(124)에 결합된 전용 마이크로컨트롤러로서 구현될 수 있다.
컴퓨팅 디바이스(100)는 하나 이상의 주변 디바이스(134)를 추가로 포함할 수 있다. 주변 디바이스들(134)은 임의의 수의 추가적인 입력/출력 디바이스들, 인터페이스 디바이스들, 및/또는 다른 주변 디바이스들을 포함할 수 있다. 예를 들어, 일부 실시예들에서, 주변 디바이스들(134)은 터치스크린, 그래픽 회로, 그래픽 처리 유닛(GPU) 및/또는 프로세서 그래픽, 오디오 디바이스, 마이크로폰, 카메라, 키보드, 마우스, 네트워크 인터페이스, 및/또는 다른 입력/출력 디바이스들, 인터페이스 디바이스들, 및/또는 주변 디바이스들을 포함할 수 있다.
이제 도 2를 참조하면, 예시적인 실시예에서, 컴퓨팅 디바이스(100)는 동작 동안 환경(200)을 확립한다. 예시적인 환경(200)은 플랫폼 신뢰 관리자(202), 가상 신뢰 셋업 관리자(204), 및 가상 신뢰 관리자(206)를 포함한다. 환경(200)의 다양한 컴포넌트들 또는 컴포넌트들의 부분들이 컴퓨팅 디바이스(100)의 호스트 환경 또는 가상화된 환경에 의해 확립되거나 달리 실행될 수 있다. 도시된 바와 같이, 환경(200)의 다양한 컴포넌트들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로서 구현될 수 있다. 그에 따라, 일부 실시예들에서, 환경(200)의 컴포넌트들 중 하나 이상은 전기 디바이스들의 회로 또는 집합(예를 들어, 플랫폼 신뢰 관리자 회로(202), 가상 신뢰 셋업 관리자 회로(204), 및/또는 가상 신뢰 관리자 회로(206))로서 구현될 수 있다. 그러한 실시예들에서, 플랫폼 신뢰 관리자 회로(202), 가상 신뢰 셋업 관리자 회로(204), 및/또는 가상 신뢰 관리자 회로(206) 중 하나 이상은 컴퓨팅 디바이스(100)의 컴퓨팅 엔진(120), I/O 서브시스템(124), 및/또는 다른 컴포넌트들의 일부를 형성할 수 있다는 것을 이해해야 한다. 예를 들어, 컴퓨팅 엔진(120)의 회로는 플랫폼 신뢰 관리자(202), 가상 신뢰 셋업 관리자(204), 및/또는 가상 신뢰 관리자(206)를 확립하기 위한 명령어들을 로딩하거나 달리 실행할 수 있다. 또한, 일부 실시예들에서, 예시적인 컴포넌트들 중 하나 이상은 다른 컴포넌트의 일부를 형성할 수 있고 및/또는 예시적인 컴포넌트들 중 하나 이상은 서로 독립적일 수 있다.
도시된 바와 같이, 환경(200)은 다수의 플랫폼 컴포넌트들(210) 및 컨테이너들(212)을 추가로 포함한다. 아래에 더 설명되는 바와 같이, 플랫폼 컴포넌트들(210)은 펌웨어(예를 들어, 하드웨어 부팅 실행 ROM, UEFI BIOS), 로우-레벨 소프트웨어(예를 들어, 부팅 로더), 운영 체제 컴포넌트들, 컨테이너 런타임 컴포넌트들, 및 컴퓨팅 디바이스(100)의 다른 실행 가능 컴포넌트들을 포함할 수 있다. 각각의 컨테이너(212)는 가상 TPM(vTPM)(214), 컨테이너화된 애플리케이션(218), 및 다른 컨테이너 컴포넌트들(220), 예컨대 컨테이너화된 가상 머신들, 운영 체제들, 미들웨어, 및/또는 다른 컨테이너화된 컴포넌트들을 포함할 수 있다.
플랫폼 신뢰 관리자(202)는 TPM(132)을 이용하여 플랫폼 컴포넌트들(210)을 측정하고, 이들을 측정하는 것에 응답하여 플랫폼 컴포넌트들(210)을 실행하도록 구성된다. 아래에 더 설명되는 바와 같이, 신뢰 체인을 확립하기 위해, 초기 하드웨어 부팅 실행 컴포넌트(210)로부터 컨테이너 런타임 컴포넌트(210)까지 플랫폼 컴포넌트들(210)의 스택이 TPM(132)을 이용하여 측정되고 실행될 수 있다.
가상 신뢰 셋업 관리자(204)는 컨테이너 런타임 컴포넌트(210)를 실행하는 것에 응답하여 TPM(132)과 하나 이상의 가상 플랫폼 자격 증명(216) 간의 신뢰 관계들을 확립하고, 가상 플랫폼 자격 증명들(216)을 각각의 컨테이너(212)의 vTPM(214)에 프로비저닝하도록 구성된다. 신뢰 관계를 확립하는 것은 TPM(132)을 이용하여 vTPM(214)의 가상 인증 키(virtual endorsement key)를 생성하는 것을 포함할 수 있다. 가상 신뢰 셋업 관리자(204)는 가상 플랫폼 자격 증명들(216)을 프로비저닝하는 것에 응답하여 컨테이너(212)의 게스트 환경을 실행하도록 추가로 구성된다. 가상 플랫폼 자격 증명들(216)은 하나 이상의 키, 인증서, 디바이스 아이덴티티, 매니페스트 구조, 또는 다른 신뢰할 수 있는 컴퓨팅 인프라스트럭처 구조를 포함할 수 있다. 예를 들어, 가상 플랫폼 자격 증명들(216)은 가상 인증 인증서(virtual endorsement certificate) 및 가상 플랫폼 인증서를 포함할 수 있다. 가상 플랫폼 자격 증명들(216)은 메모리에 상주하는 파일시스템 이미지 내에 미리 로딩될 수 있고, 이는 보안을 희생하지 않고 론칭 속도를 향상시킬 수 있다.
가상 신뢰 관리자(206)는, 컨테이너(212)의 게스트 환경의 실행에 응답하여, vTPM(214)을 이용하여 컨테이너(212)의 컨테이너 컴포넌트들(220) 및 컨테이너화된 애플리케이션(218)을 측정하도록 구성된다. 가상 신뢰 관리자(206)는 컨테이너화된 애플리케이션(218) 및 컨테이너 컴포넌트들(220)을 측정하는 것에 응답하여 게스트 환경에서 컨테이너화된 애플리케이션(218) 및 컨테이너 컴포넌트들(220)을 실행하도록 추가로 구성된다. 가상 신뢰 관리자(206)는 컨테이너화된 애플리케이션(218)을 실행하는 것에 응답하여 vTPM(214)을 이용하여 게스트 환경에서 신뢰할 수 있는 컴퓨팅 동작을 수행하도록 추가로 구성될 수 있다. 일부 실시예들에서, vTPM(214) 및 컨테이너화된 애플리케이션(218)은 컨테이너(212)의 격리된 서브-컨테이너들에서 실행될 수 있다.
일부 실시예들에서, 가상 신뢰 셋업 관리자(204)는 하나 이상의 암호화 키로 컴퓨팅 엔진(120)의 MKTME 지원(122)을 구성하도록 추가로 구성될 수 있다. 가상 신뢰 셋업 관리자(204)는 디폴트 키가 사용될 수 있거나 많은 테넌트 또는 도메인 키들이 사용될 수 있는 정책을 설정할 수 있다. 가상 신뢰 셋업 관리자(204)는 MKTME 암호화 키들 중 하나 이상과 TPM(132) 간의 신뢰 관계를 확립하도록 추가로 구성될 수 있다. 일부 실시예들에서, 가상 신뢰 셋업 관리자(204)는 TPM(132)을 이용하여 하나 이상의 MKTME 암호화 키를 안전하게 저장하도록 구성될 수 있다. 가상 신뢰 관리자(206)는 MKTME 암호화 키를 이용하여 vTPM(214)과 연관된 메모리 페이지들을 암호화하고, 상이한 MKTME 암호화 키를 이용하여 컨테이너화된 애플리케이션(218)과 연관된 메모리 페이지들을 암호화하도록 추가로 구성될 수 있다. 가상 신뢰 관리자(206)는 대응하는 MKTME 암호화 키를 이용하여 vTPM(214)의 신뢰 상태를 암호화하여 암호화된 신뢰 상태를 생성하고 암호화된 신뢰 상태를 컴퓨팅 디바이스(100)의 영구 저장소에 저장하도록 추가로 구성될 수 있다. 가상 신뢰 셋업 관리자(204)는 vTPM(214) 및 범용 컨테이너들을 포함하는 메모리를 보호하기 위해 프로세서 명령어들이 사용되는 정책뿐만 아니라, 컨테이너(vTPM 또는 범용)를 보호하기 위해 VM 또는 VMM이 더 사용되는지의 여부에 대한 정책을 추가로 설정할 수 있다.
가상 신뢰 관리자(206)는 컨테이너(212)의 게스트 환경을 실행하는 것에 응답하여 vTPM(214)과 컨테이너 매니페스트 간의 신뢰 관계를 확립하도록 추가로 구성될 수 있다. 컨테이너 매니페스트는 컨테이너화된 애플리케이션(218) 및/또는 하나 이상의 컨테이너 컴포넌트(220)의 무결성 측정치를 포함한다. 그 실시예들에서, 컨테이너화된 애플리케이션(218)을 측정하는 것은 컨테이너 매니페스트로부터 컨테이너화된 애플리케이션(218)의 무결성 측정치를 반환하는 것을 포함할 수 있다.
이제 도 3 내지 도 5를 참조하면, 사용 시에, 컴퓨팅 디바이스(100)는 신뢰 컨테이너 실행을 위한 방법(300)을 실행할 수 있다. 일부 실시예들에서, 방법(300)의 동작들은 도 2에 도시된 바와 같은 컴퓨팅 디바이스(100)의 환경(200)의 하나 이상의 컴포넌트에 의해 수행될 수 있다는 것을 이해해야 한다. 방법(300)은 도 3에 도시된 블록 302에서 시작되고, 여기서는 컴퓨팅 디바이스(100)가 플랫폼 부팅을 수행한다. 컴퓨팅 디바이스(100)는 전력 사이클 이벤트, 플랫폼 리셋, 또는 다른 부팅 이벤트에 응답하여 부팅할 수 있다. 플랫폼 부팅에 응답하여, 컴퓨팅 디바이스(100)는, 예를 들어 Intel TXT를 이용하여 신뢰 부팅 프로세스를 시작할 수 있다. 위에 설명된 바와 같이, 신뢰 부팅 프로세스의 일부로서, 컴퓨팅 엔진(120)은 플랫폼 신뢰 관리자(202), 가상 신뢰 셋업 관리자(204), 및/또는 가상 신뢰 관리자(206)를 확립하기 위한 명령어들을 로딩하거나 달리 실행할 수 있다.
블록 304에서, 컴퓨팅 디바이스(100)는 플랫폼 컴포넌트(210)를 로딩한다. 플랫폼 컴포넌트(210)는, 예를 들어, 펌웨어 디바이스, 데이터 저장 디바이스(128), 또는 다른 비휘발성 저장소로부터 메모리(126) 내로 로딩될 수 있다. 컴퓨팅 디바이스(100)는 초기에 하드웨어 부팅 실행 ROM과 같은 로우-레벨 플랫폼 컴포넌트를 로딩할 수 있고, 시스템 컴포넌트 스택의 상위 계층들을 계속 로딩할 수 있다. 예시적인 컴포넌트 스택의 하나의 잠재적인 실시예가 도 6에 예시되고 아래에 설명된다.
블록 306에서, 컴퓨팅 디바이스(100)는 물리 TPM(132)을 이용하여 플랫폼 컴포넌트(210)를 측정한다. 컴퓨팅 디바이스(100)는, 예를 들어, 플랫폼 컴포넌트(210)의 무결성 해시를 계산하고, 그 무결성 해시를 이용하여 물리 TPM(132)의 플랫폼 구성 레지스터(PCR)를 확장할 수 있다.
일부 실시예들에서, 블록 308에서, 컴퓨팅 디바이스(100)는 안전 부팅 정책을 시행할 수 있다. 예를 들어, 컴퓨팅 디바이스(100)는 플랫폼 컴포넌트(210)의 무결성 해시를 허용된 컴포넌트들의 화이트리스트와 비교할 수 있다. 플랫폼 컴포넌트(210)가 화이트리스트에 포함되지 않는 경우, 컴퓨팅 디바이스(100)는 플랫폼을 중지시키는 것과 같은 보안 액션을 수행할 수 있다.
블록 310에서, 플랫폼 컴포넌트(210)를 측정한 후에 그리고 안전한 부팅 정책을 시행하는 일부 실시예들에서, 컴퓨팅 디바이스(100)는 플랫폼 컴포넌트(210)를 실행한다. 더 설명되는 바와 같이, 실행된 후에, 플랫폼 컴포넌트(210)는 컴포넌트 스택 내의 다음 컴포넌트(210)를 로딩, 측정, 및 실행할 수 있다.
블록 312에서, 컴퓨팅 디바이스(100)는 컨테이너 런타임 컴포넌트(210)가 로딩, 측정, 및 실행되었는지를 결정한다. 컨테이너 런타임 컴포넌트(210)는 각각의 컨테이너(212)에 대한 게스트 컨테이너 환경을 확립하는 것을 포함하여 하나 이상의 컨테이너(212)의 실행을 관리한다. 컨테이너 런타임 컴포넌트(210)는 가상 머신 모니터, 하이퍼바이저, 네임스페이스 또는 다른 운영 체제 레벨 가상화 컴포넌트, 및/또는 다른 컨테이너 런타임 및 오케스트레이션 툴들로서 구현되거나 달리 이들을 포함할 수 있다. 예를 들어, 컨테이너 런타임 컴포넌트(210)는 Kubernetes, Kata Containers, Clear Containers, Docker, OpenStack, OpenShift, 또는 다른 컨테이너 런타임으로서 구현될 수 있다. 컨테이너 런타임 컴포넌트(210)는, Intel VT-x 또는 다른 가상화 지원과 같은 컨테이너들(212) 간의 격리를 시행하기 위해 컴퓨팅 엔진(120)의 가상화 지원을 사용할 수 있다. 컨테이너 런타임 컴포넌트(210)가 아직 실행되지 않는다면, 방법(300)은 플랫폼 컴포넌트들(210)을 로딩, 측정, 및 실행하는 것을 계속하기 위해 블록 304로 루프백한다. 컨테이너 런타임 컴포넌트(210)가 실행되었다면, 방법(300)은 블록 314로 진행한다.
블록 314에서, 컴퓨팅 디바이스(100)의 컨테이너 런타임 컴포넌트(210)는 컨테이너(212)에서 가상 TPM(vTPM)(214)을 셋업한다. 컨테이너 셋업 동안, vTPM(214)은 메모리(126) 내로, 예컨대 메모리 파일시스템 또는 ISO 이미지 내로 로딩될 수 있다. 아래에 더 설명되는 바와 같이, 컨테이너(212)는 적어도 2개의 메모리 페이지들을 포함할 수 있고, 각각은 상이한 MKTME 키들과 연관된다. 예를 들어, 하나의 MKTME 키는 vTPM(214) 메모리 페이지(들)와 연관될 수 있고, 다른 MKTME 키는 비-TPM 컨테이너(212) 계층들(예를 들어, 컨테이너 컴포넌트들(220) 및 컨테이너 애플리케이션(218))과 연관될 수 있다. vTPM(214) MKTME 키는 프로세서-생성된 MKTME 키들로부터 획득될 수 있다. 컨테이너 런타임 컴포넌트(210)는 나머지 컨테이너(212) 페이지들을 보호하는 데 사용되는 게스트-vTPM 특정 키를 공급할 수 있다. 일부 실시예들에서, vTPM(214)은 컨테이너(212) MKTME 키, 또는 컨테이너에 배타적으로 바인딩되어 있는 다른 데이터를 보호하기 위해 사용될 수 있는 MKTME 키로부터 파생된 저장 키를 또한 포함할 수 있다.
블록 316에서, 컴퓨팅 디바이스(100)는 물리 TPM(132)을 이용하여 하나 이상의 가상 플랫폼 자격 증명(216)을 생성한다. 특히, vTPM(214)은 적용가능한 TPM 사양에 의해 지정된 키들로 구성될 수 있다. 예를 들어, vTPM(214) 환경은 컨테이너(212)가 처음으로 초기화될 때 동적으로 구성될 수 있다. 컨테이너 런타임 컴포넌트(210)(및/또는 다른 컨테이너 오케스트레이션 툴들)는 가상의 저장 루트 키(SRK), 가상 인증 키, 가상 증명 키, 가상 디바이스 아이덴티티 키, 및/또는 적절한 TPM 사양에 의해 지정된 다른 키들 및 자격 증명들과 같은, 가상 플랫폼 자격 증명들(216)을 생성하기 위해 하나 이상의 가상 제조 프로세스들을 수행할 수 있다. 가상 플랫폼 자격 증명들(216)은 TPM(132)에 의해 서명되거나 달리 인증될(authenticated) 수 있다. 예를 들어, vTPM(214)의 가상 플랫폼 자격 증명들(216)은 물리 TPM(132)의 키 계층 구조에 포함될 수 있다. 그 예에서, 가상 SRK는 TPM(132)의 물리 SRK 아래에 저장될 수 있다. 물리 TPM(132)은 vTPM(214)의 제조자 및 발행자로서 역할을 할 수 있다. TPM(132)의 인증서 체인은 vTPM(214) 및 엔드 엔티티 인증서를 포함하도록 확장될 수 있다. vTPM(214)의 가상 증명 키(예를 들어, IAK/LAK)는 컨테이너(212)와 연관된 컨테이너 매니페스트 구조를 발행/서명하는 데 사용될 수 있다. 도 7과 관련하여 아래에 더 설명되는 바와 같이, 컨테이너 매니페스트는 컨테이너 계층들을 설명하고, 중간 해시 값들을 포함할 수 있다. 블록 318에서, 컴퓨팅 디바이스(100)는 가상 플랫폼 자격 증명들(216)을 vTPM(214)에 프로비저닝한다. 예를 들어, 가상 플랫폼 자격 증명들(216)은 메모리에 상주하는 파일시스템 이미지 또는 vTPM(214)의 다른 인-메모리 이미지 내에 저장될 수 있다.
블록 320에서, 컴퓨팅 디바이스(100)는 물리 TPM(132)을 이용하여 vTPM(214)에 대한 하나 이상의 MKTME 암호화 키를 생성한다. MKTME 암호화 키들은 적용가능한 TPM 사양들에 의해 정의된 적절한 키 제약들과 함께 TPM(132)의 키 계층 구조에 포함될 수 있다. 블록 322에서, 컴퓨팅 디바이스(100)는 MKTME 암호화 키(들)를 이용하여 하나 이상의 vTPM(214) 메모리 페이지의 암호화를 수행하도록 컴퓨팅 엔진(120)의 MKTME 지원(122)을 구성한다. vTPM(214) 메모리 페이지들을 암호화하는 것은 vTPM(214)의 보안 저장소(예를 들어, 키 계층 구조, 레지스터, 및 다른 보안 저장소)를 컴퓨팅 디바이스(100)의 컨테이너(212) 및/또는 다른 컴포넌트들의 게스트 환경으로의 인가되지 않은 공개로부터 보호할 수 있다.
일부 실시예들에서, 블록 324에서, 컴퓨팅 디바이스(100)는 컨테이너(212) 이미지의 하나 이상의 측정치를 vTPM(214)에 프로비저닝할 수 있다. 예를 들어, 하나 이상의 미리 측정된 가상 플랫폼 구성 레지스터(PCR) 값들과 같은 TPM 상태 데이터가 vTPM(214)에 프로비저닝될 수 있다. 프로비저닝된 측정치들은 메모리에 상주하는 파일시스템 이미지 또는 vTPM(214)의 다른 인-메모리 이미지 내에 저장될 수 있다.
이제 도 4를 참조하면, vTPM(214)을 셋업한 후에, 블록 326에서 컴퓨팅 디바이스(100)의 컨테이너 런타임 컴포넌트(210)는 컨테이너(212) 이미지를 로딩한다. 블록 328에서, 컴퓨팅 디바이스(100)는 컨테이너(212) 이미지를 측정한다. 예를 들어, 컴퓨팅 디바이스(100)는 컨테이너(212) 이미지 및/또는 전체 컨테이너(212) 이미지에 포함된 하나 이상의 계층에 대한 무결성 해시들을 결정할 수 있다. 블록 330에서, 컴퓨팅 디바이스(100)는 하나 이상의 미리 계산된 무결성 해시를 포함하는 컨테이너 매니페스트, 플랫폼 인증서, 및/또는 다른 데이터를 검증한다. 컨테이너 매니페스트는, 인-메모리 파일시스템 이미지와 같은, 컨테이너(212)의 이미지에 포함될 수 있다. 컨테이너 매니페스트의 하나의 잠재적인 실시예가 도 7에 도시되고 아래에 설명된다.
블록 332에서, 컴퓨팅 디바이스(100)는 연관된 MKTME 암호화 키(들)를 이용하여 하나 이상의 컨테이너(212) 메모리 페이지의 암호화를 수행하도록 컴퓨팅 엔진(120)의 MKTME 지원(122)을 구성한다. 컨테이너(212) 메모리 페이지들을 암호화하는 것은 컨테이너화된 애플리케이션(218) 및/또는 컨테이너 컴포넌트들(220)을 컴퓨팅 디바이스(100)의 다른 컴포넌트들(예를 들어, 다른 컨테이너들(212))에 의한 인가되지 않은 공개 및/또는 수정으로부터 보호할 수 있다. 컨테이너(212) 메모리 페이지들에 대한 MKTME 암호화 키들은 vTPM(214)에 의해 생성되고 vTPM(214)의 키 계층 구조에 포함될 수 있다. 컨테이너(212) 메모리 페이지들은 vTPM(214) 메모리 페이지들을 암호화하는 데 사용되는 것들과 상이한 MKTME 키들을 이용하여 암호화될 수 있으며, 이는 vTPM(214)과 컨테이너(212)의 다른 컴포넌트들 간의 추가적인 격리를 제공할 수 있다.
블록 334에서, 컴퓨팅 디바이스(100)의 컨테이너 런타임 컴포넌트(210)는 컨테이너(212) 게스트 환경을 부팅한다. 컨테이너(212) 게스트 환경은 블록 304 내지 블록 310과 관련하여 위에 설명된 물리 신뢰 부팅 프로세스와 유사하게, 가상 신뢰 부팅 프로세스를 수행할 수 있다. 블록 336에서, 컴퓨팅 디바이스(100)는 게스트 환경에서 컨테이너 컴포넌트(220)를 로딩한다. 블록 338에서, 컴퓨팅 디바이스(100)는 vTPM(214)을 이용하여 컨테이너 컴포넌트(220)를 측정한다. 컴퓨팅 디바이스(100)는, 예를 들어, 컨테이너 컴포넌트(220)의 무결성 해시를 계산하고, 그 무결성 해시를 이용하여 vTPM(214)의 플랫폼 구성 레지스터(PCR)를 확장할 수 있다. 일부 실시예들에서, 블록 340에서, 컴퓨팅 디바이스(100)는 컨테이너 컴포넌트(220)와는 별개의 게스트 환경에서 vTPM(214)을 이용하여 측정을 수행한다. 예를 들어, vTPM(214)은 제2 컨테이너(212), 네스팅된 컨테이너(212), 또는 다른 별개의 게스트 환경, 예컨대 SGX 인클레이브, 서비스 VM(SOS), Intel TDX 환경, 또는 VMM/하이퍼바이저에서 실행될 수 있다. 일부 실시예들에서, 블록 342에서 컴퓨팅 디바이스(100)는 컨테이너 컴포넌트(220)와 동일한 게스트 환경의 격리된 부분에서 vTPM(214)을 이용하여 측정을 수행한다. 예를 들어, 컨테이너 컴포넌트(220) 및 vTPM(214)은 컨테이너(212)의 상이한 서브-컨테이너들에 포함될 수 있다. 각각의 서브-컨테이너는, 예를 들어, 각각의 서브-컨테이너에 상이한 가상 프로세서들을 할당함으로써 게스트 환경의 가상 파티션에 할당될 수 있다. 격리된 서브-컨테이너들의 하나의 잠재적인 실시예가 도 8에 도시되고 아래에 설명된다.
일부 실시예들에서, 블록 344에서 컴퓨팅 디바이스(100)는 컨테이너 매니페스트로부터 미리 계산된 측정치를 검색할 수 있다. 예를 들어, 위에 설명된 바와 같이, 컨테이너(212) 이미지는 컨테이너 매니페스트, 플랫폼 인증서, 및/또는 미리 계산된 무결성 해시 값들을 포함하는 다른 데이터를 포함할 수 있다. 검증되고 메모리에 로딩된 후에, MKTME 암호화는 매니페스트 및 소스 이미지들을 인가되지 않은 수정으로부터 보호할 수 있다. 따라서, 컨테이너(212)의 특정 계층들 및/또는 컴포넌트들은 나중에 매니페스트에 포함된 무결성 해시 값들을 이용하여 검증될 수 있다.
블록 346에서, 컴퓨팅 디바이스(100)는 컨테이너 컴포넌트(220)를 실행한다. 블록 348에서, 컴퓨팅 디바이스(100)는 추가적인 컨테이너 컴포넌트들(220)이 로딩, 측정, 및 실행되기 위해 남아 있는지를 결정한다. 그렇다면, 방법(300)은 블록 336으로 루프백한다. 추가적인 컨테이너 컴포넌트들(220)이 남아 있지 않다면, 방법(300)은 도 5에 도시된 블록 350으로 진행한다.
이제 도 5를 참조하면, 블록 350에서 컴퓨팅 디바이스(100)는 컨테이너(212)의 게스트 환경 내에서 컨테이너화된 애플리케이션(218)을 실행한다. 일부 실시예들에서, 블록 352에서 컴퓨팅 디바이스(100)는 vTPM(214)을 이용하여 하나 이상의 신뢰할 수 있는 컴퓨팅 동작들을 수행할 수 있다. 예를 들어, 컨테이너화된 애플리케이션(218)은 vTPM(214)을 이용하여 온보딩 또는 오케스트레이션 유틸리티에 대한 증명 또는 검증을 수행하거나 또는 vTPM(214)에 의해 제공된 보안 서비스들에 액세스할 수 있다. 컨테이너화된 애플리케이션(218)은, 예를 들어, 표준 라이브러리들 또는 다른 미들웨어(예를 들어, Trusted Computing Group에 의해 지정된 TSS(Trusted Software Stack))에 액세스함으로써, 하나 이상의 적용가능한 TPM 사양에 따라 신뢰할 수 있는 컴퓨팅 서비스들에 액세스할 수 있다. 컨테이너화된 애플리케이션(218)은 특별한 컨테이너화 또는 가상화 인식 없이 vTPM(214) 인터페이스를 이용하여 애플리케이션 특정 암호 키들을 추가로 관리할 수 있다. 컴퓨팅 디바이스(100)는 가상 머신 종료 또는 컴퓨팅 디바이스(100)의 호스트 환경 또는 다른 비-컨테이너화된 환경으로의 다른 컨텍스트 전환을 요구하지 않고, 그리고 물리 TPM(132)의 관여를 요구하지 않고, 게스트 환경 내에서 vTPM(214)에 의해 신뢰할 수 있는 동작들을 수행할 수 있다. 따라서, 컴퓨팅 디바이스(100)는 비교적 높은 성능을 갖고(예를 들어, 메모리 속도에서 동작들을 수행함) 많은 컨테이너들(212)을 지원하도록 스케일링 가능한 신뢰할 수 있는 컴퓨팅 동작들을 수행할 수 있다.
블록 354에서, 컴퓨팅 디바이스(100)는 컨테이너 실행 사이클들에 걸쳐 컨테이너(212)를 지속할지를 결정한다. 그렇지 않다면, 방법(300)은 아래에 설명되는 블록 362로 앞으로 분기한다. 컴퓨팅 디바이스(100)가 컨테이너(212)를 지속하기로 결정하면, 방법(300)은 블록 356으로 진행한다.
블록 356에서, 컴퓨팅 디바이스(100)는 vTPM(214)과 연관된 MKTME를 이용하여 또는 파생된 저장 키를 이용하여 vTPM(214) 상태를 암호화한다. 예를 들어, vTPM(214)은 그의 가상 저장 키(vSRK) 하에서 이 목적을 위한 저장 키를 생성할 수 있다. 암호화되는 vTPM(214) 상태는 플랫폼 구성 레지스터들(PCR들), 가상 플랫폼 자격 증명들(216), 키 계층 구조, 또는 vTPM(214)의 다른 보안 저장소를 포함할 수 있다. 블록 358에서, 컴퓨팅 디바이스(100)는 MKTME 키(또는 파생된 키)를 물리 TPM(132)의 키 계층 구조 내에 저장한다. 예를 들어, TPM(132)은 MKTME 키를 물리 TPM(132)의 키 계층 구조에 이미 포함된 하나 이상의 키를 이용하여 바인딩, 실링, 또는 달리 보호할 수 있다. 다른 예로서, 파생된 저장 키는 TPM(132)의 키 계층 구조에서 vSRK 하에 저장될 수 있다. 블록 360에서, 컴퓨팅 디바이스(100)는 암호화된 vTPM(214) 상태를 데이터 저장 디바이스(128)와 같은 컴퓨팅 디바이스(100)의 영구 저장소에 저장한다. 암호화된 vTPM(214) 상태는 컴퓨팅 디바이스(100)의 비보안 저장소에 저장될 수 있다.
블록 362에서, 컴퓨팅 디바이스(100)는 추가적인 컨테이너들(212)을 로딩, 측정, 및 실행할지를 결정한다. 그렇지 않다면, 방법(300)은 현재 실행 중인 컨테이너화된 애플리케이션(들)(218)을 계속 실행하기 위해 블록 350으로 루프백한다. 컴퓨팅 디바이스(100)가 추가적인 컨테이너들(212)을 로딩, 측정, 및 실행하기로 결정하면, 방법(300)은 도 3에 도시된 블록 314로 루프백한다.
일부 실시예들에서, 방법(300)은 컴퓨팅 디바이스(100)가 방법(300)을 수행하게 하기 위해 컴퓨팅 디바이스(100)의 컴퓨팅 엔진(120) 및/또는 다른 컴포넌트들에 의해 실행될 수 있는 컴퓨터 판독가능 매체 상에 저장된 다양한 명령어들로서 구현될 수 있다는 것을 이해해야 한다. 컴퓨터 판독가능 매체는 메모리(126), 데이터 저장 디바이스(128), 펌웨어 디바이스들, 마이크로코드, 컴퓨팅 디바이스(100)의 다른 메모리 또는 데이터 저장 디바이스들, 컴퓨팅 디바이스(100)의 주변 디바이스(134)에 의해 판독가능한 휴대용 매체, 및/또는 다른 매체를 포함하지만 이에 제한되지 않는, 컴퓨팅 디바이스(100)에 의해 판독될 수 있는 임의의 유형의 매체로서 구현될 수 있다.
이제 도 6을 참조하면, 도면(600)은 컴퓨팅 디바이스(100)에 의해 로딩, 측정, 및 실행될 수 있는 컴포넌트 스택(602)을 예시한다. 도시된 바와 같이, 스택(602)은 컨테이너(212) 및 물리 TPM(132)에 의해 측정되는 플랫폼 컴포넌트들(210)을 포함한다. 컨테이너(212)는 vTPM(214)에 의해 측정되는 컨테이너 컴포넌트들(220) 및 컨테이너화된 애플리케이션(218)을 포함한다. 도 3 내지 도 5에서 위에 설명된 바와 같이, 컴포넌트 스택(602)의 각각의 플랫폼 컴포넌트(210)는 컨테이너 런타임 컴포넌트(210)까지, 컴포넌트 스택(602) 내의 다음 플랫폼 컴포넌트(210)를 로딩, 측정한 다음, 실행한다.
예시적인 플랫폼 컴포넌트들(210)은 플랫폼 리셋 후에 컴퓨팅 디바이스(100)에 의해 실행되는 제1 컴포넌트일 수 있는 하드웨어 부팅 실행 ROM(604)을 포함한다. 하드웨어 부팅 실행 ROM(604)은 BIOS(606)를 로딩하고, 이는 UEFI BIOS(606)로서 예시되어 있지만, 임의의 사전-부팅 펌웨어 환경으로서 구현될 수 있다. BIOS(606)는 부팅 로더(608)를 로딩하고, 이는 예시적으로 tboot이고, 운영 체제 또는 VMM의 측정되고 검증된 론칭을 수행할 수 있는 임의의 부팅로더로서 구현될 수 있다. 부팅 로더(608)는 운영 체제(610)를 로딩한다. 운영 체제(610)는 예시적으로 Linux®이지만, 다른 실시예들에서는 Microsoft® Windows™와 같은 다른 운영 체제일 수 있다. 운영 체제(610)는 무결성 관리 시스템(612)을 로딩한다. 무결성 관리 시스템(612)은 운영 체제(610)로부터 실행 스레드를 수신할 수 있는 소프트웨어 모듈들의 설치 및 로딩을 감독한다. 무결성 관리 시스템(612)은 Linux IMA(Integrity Measurement Architecture)/EVM(Extended Verification Module), dm-verity, Mender.io, OSTree, swupd, swupdate, 또는 다른 무결성 관리 툴들로서 구현될 수 있다. 무결성 관리 시스템(612)은 컨테이너 오케스트레이터(614) 및 컨테이너 런타임(616)을 로딩한다. 컨테이너 오케스트레이터(614)는 Kubernetes 오케스트레이터 및/또는 다른 오케스트레이션 툴들로서 구현될 수 있다. 컨테이너 런타임(616)은 Kubernetes, Kata Containers, Clear Containers, Docker, OpenStack, OpenShift, 또는 다른 컨테이너 런타임으로서 구현될 수 있다. 도시된 바와 같이, 컴포넌트들(604 내지 616)은 물리 TPM(132)에 의해 측정된다.
컨테이너 런타임(616)은 컨테이너(212)의 컨테이너 게스트 환경(618)을 로딩, 측정, 및 실행한다. 도 3 내지 도 5와 관련하여 위에 설명된 바와 같이, 컨테이너 게스트 환경(618)은 가상 부팅 프로세스를 수행하고, 게스트 환경(618)의 각각의 컨테이너 컴포넌트(220)는 컨테이너 애플리케이션(218)까지, 다음 컨테이너 컴포넌트(220)를 로딩, 측정, 및 실행한다.
예시적인 컨테이너 컴포넌트들(220)은 VMM(620)을 포함하고, 이는 예시적으로 QEMU이다. 다른 실시예들에서 VMM(620)은 NEMU라고 달리 지칭되는 제한된 다양한 QEMU로서 구현될 수 있다. VMM(620)은, 일부 실시예들에서 vTPM(214)의 동작들을 수행하는 것을 포함하여, 컨테이너(212)에 대한 가상화된 하드웨어 또는 다른 서비스들을 제공할 수 있다. VMM(620)은 게스트 OS(622)를 로딩하고, 이는 예시적으로 Linux이지만, Microsoft® Windows™와 같은 다른 운영 체제로서 구현될 수도 있다. 게스트 OS(622)는 TPM 드라이버들, TSS(Trusted System Stack) 라이브러리, 및/또는 다른 신뢰할 수 있는 컴퓨팅 지원 컴포넌트들을 포함할 수 있다. 게스트 OS(622)는 컨테이너화된 애플리케이션(624)을 로딩한다. 도시된 바와 같이, 컴포넌트들(620 내지 624)은 vTPM(214)에 의해 측정된다.
이제 도 7을 참조하면, 도면(700)은 컨테이너(212)와 연관될 수 있는 컨테이너 매니페스트(712)를 예시한다. 도시된 바와 같이, 컨테이너(212)는 컨테이너 게스트 환경(702)을 확립하고, 이는 게스트 OS(710)(예를 들어, 게스트 OS 커널, 디바이스 드라이버들, 및/또는 다른 OS 컴포넌트들), 미들웨어(708)(예를 들어, 라이브러리들, 프레임워크들, 시스템 유틸리티들, 및/또는 다른 미들웨어), 및 컨테이너화된 애플리케이션(706)을 포함한다. 컨테이너 게스트 환경(702)은 예시적으로 3개의 계층(704)으로 조직된다.
컨테이너 매니페스트(712)는 컨테이너 다이제스트(714) 및 계층 다이제스트들(716, 718, 720)을 포함하는 다수의 무결성 해시 값들을 포함한다. 컨테이너 다이제스트(714)는 컨테이너(212) 이미지와 연관된 무결성 해시 값일 수 있다. 각각의 계층 다이제스트(716, 718, 720)는 게스트 환경(702)의 대응하는 계층(704)과 연관된 무결성 해시 값일 수 있다. 예시적으로, 계층 1 다이제스트(716)는 컨테이너화된 애플리케이션(706)에 대응하고, 계층 2 다이제스트(718)는 미들웨어(708)에 대응하고, 계층 3 다이제스트(720)는 게스트 OS(710)에 대응한다. 다른 실시예들에서 컨테이너 매니페스트(712)는 상이한 수 및/또는 조직의 무결성 해시들을 포함할 수 있다는 것을 이해해야 한다. 컨테이너 매니페스트(712)는 또한 하나 이상의 컨테이너 서명(722)을 포함한다. 컨테이너(212)는, 예를 들어, 대응하는 vTPM(214)의 하나 이상의 가상 플랫폼 자격 증명(216)을 이용하여 서명될 수 있다.
이제 도 8을 참조하면, 도면(800)은 다수의 격리된 서브-컨테이너들(804, 806)을 갖는 컨테이너 게스트 환경(802)을 예시한다. 일부 실시예들에서, 서브-컨테이너들(804, 806)은 좌측(LHS) 컨테이너(804) 및 우측(RHS) 컨테이너(806)로서 구현될 수 있다. 도시된 바와 같이, LHS 컨테이너(804)는 컨테이너화된 애플리케이션(808), 미들웨어(810), 및 LHS 게스트 OS(812)를 포함할 수 있다. RHS 컨테이너(806)는 vTPM(814) 및 RHS 게스트 OS(816)를 포함할 수 있다. 서브-컨테이너들(804, 806)은 정의된 격리 애플리케이션 프로그래밍 인터페이스(API)(818)를 통해 통신할 수 있다. 서브-컨테이너들(804, 806)은 하나 이상의 가상화 또는 다른 리소스 격리 기법들을 이용하여 격리될 수 있다.
또한, 일부 실시예들에서, RHS 컨테이너(806)는 추가적인 격리 특성들을 가질 수 있다. 예를 들어, RHS 컨테이너(806)의 메모리 페이지들은 피어 게스트 컨테이너들에게 숨겨질 수 있다(그리고 LHS 컨테이너(804)에만 노출될 수 있다). RHS 컨테이너(806)는 Intel SGX(Software Guard Extensions), Intel TDX, ARM® TrustZone®, 가상 CPU를 사용하는 신뢰할 수 있는 세계 및 신뢰할 수 없는 세계를 갖는 VM을 포함하는 ACRN 하이퍼바이저, 별개의 EPT들, 및 별개의 태스크 스케줄링, 또는 다른 기술을 이용하여 추가로 격리될 수 있다. 일부 실시예들에서, RHS 컨테이너(806)는, 물리 TPM(132), ME(manageability engine), CSME(converged security and manageability engine), Intel DAL(Dynamic Application Loader), 하드웨어 보안 모듈, 및/또는 Intel QAT(QuickAssist Technology)와 같은 암호 가속기와 같은, 보안 하드웨어에 대한 독점적 액세스를 가질 수 있다. RHS 컨테이너(806)의 메모리 페이지들은 애플리케이션-공급 키들과 독립적이고 피어-RHS 컨테이너 MKTME 키들과 독립적인 MKTME 키들을 이용하여 암호화될 수 있다.
예들
본 명세서에 개시된 기술들의 예시적인 예들이 아래에 제공된다. 기술들의 실시예는 아래에 설명되는 예들 중 임의의 하나 이상, 및 그 예들의 임의의 조합을 포함할 수 있다.
예 1은 신뢰 컨테이너 실행을 위한 컴퓨팅 디바이스를 포함하고, 이 컴퓨팅 디바이스는: 프로세서; 신뢰 플랫폼 모듈; 및 저장된 복수의 명령어를 포함하는 메모리 디바이스를 포함하고, 상기 명령어들은, 실행되는 것에 응답하여, 상기 컴퓨팅 디바이스로 하여금 플랫폼 신뢰 관리자, 가상 신뢰 셋업 관리자, 및 가상 신뢰 관리자를 확립하게 하고; 상기 플랫폼 신뢰 관리자는 (i) 상기 컴퓨팅 디바이스의 신뢰 플랫폼 모듈을 이용하여 컨테이너 런타임 컴포넌트를 측정하고, (ii) 상기 컨테이너 런타임 컴포넌트의 측정에 응답하여 상기 컨테이너 런타임 컴포넌트를 실행하고; 상기 가상 신뢰 셋업 관리자는 (i) 상기 컨테이너 런타임 컴포넌트의 실행에 응답하여 상기 신뢰 플랫폼 모듈과 가상 플랫폼 자격 증명 간의 신뢰 관계를 확립하고, (ii) 상기 신뢰 관계의 확립에 응답하여 상기 가상 플랫폼 자격 증명을 제1 컨테이너의 가상 신뢰 플랫폼 모듈에 프로비저닝하고, (iii) 상기 가상 플랫폼 자격 증명의 프로비저닝에 응답하여 상기 제1 컨테이너의 게스트 환경을 실행하고; 상기 가상 신뢰 관리자는 (i) 상기 게스트 환경의 실행에 응답하여 상기 가상 신뢰 플랫폼 모듈을 이용하여 상기 제1 컨테이너의 컨테이너화된 애플리케이션을 측정하고, (ii) 상기 컨테이너화된 애플리케이션의 측정에 응답하여 상기 게스트 환경에서 상기 컨테이너화된 애플리케이션을 실행한다.
예 2는 예 1의 주제를 포함하고, 상기 가상 신뢰 관리자는 추가로 상기 컨테이너화된 애플리케이션의 실행에 응답하여 상기 가상 신뢰 플랫폼 모듈을 이용하여 상기 게스트 환경에서 신뢰할 수 있는 컴퓨팅 동작을 수행한다.
예 3은 예 1 및 2 중 어느 하나의 주제를 포함하고, 상기 가상 신뢰 관리자는 추가로: 상기 컴퓨팅 디바이스의 프로세서의 멀티-키 전체 메모리 암호화 지원을 이용하여 제1 암호화 키를 이용하여 상기 가상 신뢰 플랫폼 모듈과 연관된 제1 메모리 페이지를 암호화하고; 상기 프로세서의 상기 멀티-키 전체 메모리 암호화를 이용하여 제2 암호화 키를 이용하여 상기 컨테이너화된 애플리케이션과 연관된 제2 메모리 페이지를 암호화한다.
예 4는 예 1 내지 예 3 중 어느 하나의 주제를 포함하고, 상기 가상 신뢰 셋업 관리자는 추가로 상기 컨테이너 런타임 컴포넌트의 실행에 응답하여 상기 제1 암호화 키 및 상기 제2 암호화 키를 이용하여 상기 프로세서를 구성하고; 상기 게스트 환경을 실행하는 것은 상기 프로세서의 구성에 응답하여 상기 게스트 환경을 실행하는 것을 포함한다.
예 5는 예 1 내지 예 4 중 어느 하나의 주제를 포함하고, 상기 가상 신뢰 셋업 관리자는 추가로 상기 신뢰 플랫폼 모듈과 상기 제1 암호화 키 간의 신뢰 관계를 확립한다.
예 6은 예 1 내지 예 5 중 어느 하나의 주제를 포함하고, 상기 가상 신뢰 셋업 관리자는 추가로 상기 신뢰 플랫폼 모듈을 이용하여 상기 제1 암호화 키를 안전하게 저장하고; 상기 가상 신뢰 관리자는 추가로 (i) 상기 컨테이너화된 애플리케이션의 실행에 응답하여 상기 제1 암호화 키를 이용하여 상기 가상 신뢰 플랫폼 모듈의 신뢰 상태를 암호화하여 암호화된 신뢰 상태를 생성하고, (ii) 상기 암호화된 신뢰 상태를 상기 컴퓨팅 디바이스의 영구 저장소에 저장한다.
예 7은 예 1 내지 예 6 중 어느 하나의 주제를 포함하고, 상기 신뢰 관계를 확립하는 것은 상기 신뢰 플랫폼 모듈을 이용하여 상기 가상 신뢰 플랫폼 모듈의 가상 인증 키를 생성하는 것을 포함한다.
예 8은 예 1 내지 예 7 중 어느 하나의 주제를 포함하고, 상기 게스트 환경을 실행하는 것은: 상기 제1 컨테이너의 제1 서브-컨테이너에서 상기 가상 신뢰 플랫폼 모듈을 실행하고; 상기 제1 컨테이너의 제2 서브-컨테이너에서 상기 컨테이너화된 애플리케이션을 실행하고; 상기 제1 서브-컨테이너를 상기 제2 서브-컨테이너로부터 격리시키는 것을 포함한다.
예 9는 예 1 내지 예 8 중 어느 하나의 주제를 포함하고, 상기 가상 신뢰 관리자는 추가로 상기 게스트 환경의 실행에 응답하여 상기 가상 신뢰 플랫폼 모듈과 컨테이너 매니페스트 간의 신뢰 관계를 확립하고, 상기 컨테이너 매니페스트는 상기 컨테이너화된 애플리케이션의 무결성 측정치를 포함한다.
예 10은 예 1 내지 예 9 중 어느 하나의 주제를 포함하고, 상기 컨테이너화된 애플리케이션을 측정하는 것은 상기 컨테이너 매니페스트로부터 상기 컨테이너화된 애플리케이션의 무결성 측정치를 반환하는 것을 포함한다.
예 11은 신뢰 컨테이너 실행을 위한 방법을 포함하고, 이 방법은: 컴퓨팅 디바이스에 의해, 상기 컴퓨팅 디바이스의 신뢰 플랫폼 모듈을 이용하여 컨테이너 런타임 컴포넌트를 측정하는 단계; 상기 컴퓨팅 디바이스에 의해, 상기 컨테이너 런타임 컴포넌트를 측정하는 것에 응답하여 상기 컨테이너 런타임 컴포넌트를 실행하는 단계; 상기 컴퓨팅 디바이스에 의해, 상기 컨테이너 런타임 컴포넌트를 실행하는 것에 응답하여 상기 신뢰 플랫폼 모듈과 가상 플랫폼 자격 증명 간의 신뢰 관계를 확립하는 단계; 상기 컴퓨팅 디바이스에 의해, 상기 신뢰 관계를 확립하는 것에 응답하여 상기 가상 플랫폼 자격 증명을 제1 컨테이너의 가상 신뢰 플랫폼 모듈에 프로비저닝하는 단계; 상기 컴퓨팅 디바이스에 의해, 상기 가상 플랫폼 자격 증명을 프로비저닝하는 것에 응답하여 상기 제1 컨테이너의 게스트 환경을 실행하는 단계; 상기 컴퓨팅 디바이스에 의해, 상기 게스트 환경을 실행하는 것에 응답하여 상기 가상 신뢰 플랫폼 모듈을 이용하여 상기 제1 컨테이너의 컨테이너화된 애플리케이션을 측정하는 단계; 및 상기 컴퓨팅 디바이스에 의해, 상기 컨테이너화된 애플리케이션을 측정하는 것에 응답하여 상기 게스트 환경에서 상기 컨테이너화된 애플리케이션을 실행하는 단계를 포함한다.
예 12는 예 11의 주제를 포함하고, 상기 컴퓨팅 디바이스에 의해, 상기 컨테이너화된 애플리케이션을 실행하는 것에 응답하여 상기 가상 신뢰 플랫폼 모듈을 이용하여 상기 게스트 환경에서 신뢰할 수 있는 컴퓨팅 동작을 수행하는 단계를 추가로 포함한다.
예 13은 예 11 및 예 12 중 어느 하나의 주제를 포함하고, 상기 컴퓨팅 디바이스에 의해, 상기 컴퓨팅 디바이스의 프로세서의 멀티-키 전체 메모리 암호화 지원을 이용하여 제1 암호화 키를 이용하여 상기 가상 신뢰 플랫폼 모듈과 연관된 제1 메모리 페이지를 암호화하는 단계; 및 상기 컴퓨팅 디바이스에 의해, 상기 프로세서의 상기 멀티-키 전체 메모리 암호화를 이용하여 제2 암호화 키를 이용하여 상기 컨테이너화된 애플리케이션과 연관된 제2 메모리 페이지를 암호화하는 단계를 추가로 포함한다.
예 14는 예 11 내지 예 13 중 어느 하나의 주제를 포함하고, 상기 컴퓨팅 디바이스에 의해, 상기 신뢰 플랫폼 모듈과 상기 제1 암호화 키 간의 신뢰 관계를 확립하는 단계를 추가로 포함한다.
예 15는 예 11 내지 예 14 중 어느 하나의 주제를 포함하고, 상기 컴퓨팅 디바이스에 의해, 상기 신뢰 플랫폼 모듈을 이용하여 상기 제1 암호화 키를 안전하게 저장하는 단계; 상기 컴퓨팅 디바이스에 의해, 상기 컨테이너화된 애플리케이션을 실행하는 것에 응답하여 상기 제1 암호화 키를 이용하여 상기 가상 신뢰 플랫폼 모듈의 신뢰 상태를 암호화하여 암호화된 신뢰 상태를 생성하는 단계; 및 상기 컴퓨팅 디바이스에 의해, 상기 암호화된 신뢰 상태를 상기 컴퓨팅 디바이스의 영구 저장소에 저장하는 단계를 추가로 포함한다.
예 16은 예 11 내지 예 15 중 어느 하나의 주제를 포함하고, 상기 신뢰 관계를 확립하는 단계는 상기 신뢰 플랫폼 모듈을 이용하여 상기 가상 신뢰 플랫폼 모듈의 가상 인증 키를 생성하는 단계를 포함한다.
예 17은 예 11 내지 예 16 중 어느 하나의 주제를 포함하고, 상기 컴퓨팅 디바이스에 의해, 상기 게스트 환경을 실행하는 것에 응답하여 상기 가상 신뢰 플랫폼 모듈과 컨테이너 매니페스트 간의 신뢰 관계를 확립하는 단계를 추가로 포함하고, 상기 컨테이너 매니페스트는 상기 컨테이너화된 애플리케이션의 무결성 측정치를 포함한다.
예 18은 저장된 복수의 명령어를 포함하는 하나 이상의 컴퓨터 판독가능 저장 매체를 포함하고, 상기 명령어들은, 실행되는 것에 응답하여, 컴퓨팅 디바이스로 하여금: 상기 컴퓨팅 디바이스의 신뢰 플랫폼 모듈을 이용하여 컨테이너 런타임 컴포넌트를 측정하고; 상기 컨테이너 런타임 컴포넌트를 측정하는 것에 응답하여 상기 컨테이너 런타임 컴포넌트를 실행하고; 상기 컨테이너 런타임 컴포넌트를 실행하는 것에 응답하여 상기 신뢰 플랫폼 모듈과 가상 플랫폼 자격 증명 간의 신뢰 관계를 확립하고; 상기 신뢰 관계를 확립하는 것에 응답하여 상기 가상 플랫폼 자격 증명을 제1 컨테이너의 가상 신뢰 플랫폼 모듈에 프로비저닝하고; 상기 가상 플랫폼 자격 증명을 프로비저닝하는 것에 응답하여 상기 제1 컨테이너의 게스트 환경을 실행하고; 상기 게스트 환경을 실행하는 것에 응답하여 상기 가상 신뢰 플랫폼 모듈을 이용하여 상기 제1 컨테이너의 컨테이너화된 애플리케이션을 측정하고; 상기 컨테이너화된 애플리케이션을 측정하는 것에 응답하여 상기 게스트 환경에서 상기 컨테이너화된 애플리케이션을 실행하게 한다.
예 19는 예 18의 주제를 포함하고, 저장된 복수의 명령어를 추가로 포함하고, 상기 명령어들은, 실행되는 것에 응답하여, 컴퓨팅 디바이스로 하여금 상기 컨테이너화된 애플리케이션을 실행하는 것에 응답하여 상기 가상 신뢰 플랫폼 모듈을 이용하여 상기 게스트 환경에서 신뢰할 수 있는 컴퓨팅 동작을 수행하게 한다.
예 20은 예 18 및 예 19 중 어느 하나의 주제를 포함하고, 저장된 복수의 명령어를 추가로 포함하고, 상기 명령어들은, 실행되는 것에 응답하여, 컴퓨팅 디바이스로 하여금: 상기 컴퓨팅 디바이스의 프로세서의 멀티-키 전체 메모리 암호화 지원을 이용하여 제1 암호화 키를 이용하여 상기 가상 신뢰 플랫폼 모듈과 연관된 제1 메모리 페이지를 암호화하고; 상기 프로세서의 상기 멀티-키 전체 메모리 암호화를 이용하여 제2 암호화 키를 이용하여 상기 컨테이너화된 애플리케이션과 연관된 제2 메모리 페이지를 암호화하게 한다.
예 21은 예 18 내지 예 20 중 어느 하나의 주제를 포함하고, 저장된 복수의 명령어를 추가로 포함하고, 상기 명령어들은, 실행되는 것에 응답하여, 컴퓨팅 디바이스로 하여금 상기 신뢰 플랫폼 모듈과 상기 제1 암호화 키 간의 신뢰 관계를 확립하게 한다.
예 22는 예 18 내지 21 중 어느 하나의 주제를 포함하고, 저장된 복수의 명령어를 추가로 포함하고, 상기 명령어들은, 실행되는 것에 응답하여, 컴퓨팅 디바이스로 하여금: 상기 신뢰 플랫폼 모듈을 이용하여 상기 제1 암호화 키를 안전하게 저장하고; 상기 컨테이너화된 애플리케이션을 실행하는 것에 응답하여 상기 제1 암호화 키를 이용하여 상기 가상 신뢰 플랫폼 모듈의 신뢰 상태를 암호화하여 암호화된 신뢰 상태를 생성하고; 상기 암호화된 신뢰 상태를 상기 컴퓨팅 디바이스의 영구 저장소에 저장하게 한다.
예 23은 예 18 내지 예 22 중 어느 하나의 주제를 포함하고, 상기 신뢰 관계를 확립하는 것은 상기 신뢰 플랫폼 모듈을 이용하여 상기 가상 신뢰 플랫폼 모듈의 가상 인증 키를 생성하는 것을 포함한다.
예 24는 예 18 내지 예 23 중 어느 하나의 주제를 포함하고, 상기 게스트 환경을 실행하는 것은: 상기 제1 컨테이너의 제1 서브-컨테이너에서 상기 가상 신뢰 플랫폼 모듈을 실행하고; 상기 제1 컨테이너의 제2 서브-컨테이너에서 상기 컨테이너화된 애플리케이션을 실행하고; 상기 제1 서브-컨테이너를 상기 제2 서브-컨테이너로부터 격리시키는 것을 포함한다.
예 25는 예 18 내지 예 24 중 어느 하나의 주제를 포함하고, 저장된 복수의 명령어를 추가로 포함하고, 상기 명령어들은, 실행되는 것에 응답하여, 컴퓨팅 디바이스로 하여금 상기 게스트 환경을 실행하는 것에 응답하여 상기 가상 신뢰 플랫폼 모듈과 컨테이너 매니페스트 간의 신뢰 관계를 확립하게 하고, 상기 컨테이너 매니페스트는 상기 컨테이너화된 애플리케이션의 무결성 측정치를 포함한다.
Claims (25)
- 신뢰 컨테이너 실행을 위한 컴퓨팅 디바이스로서, 상기 컴퓨팅 디바이스는:
프로세서;
신뢰 플랫폼 모듈; 및
저장된 복수의 명령어를 포함하는 메모리 디바이스를 포함하고, 상기 명령어들은, 실행되는 것에 응답하여, 상기 컴퓨팅 디바이스로 하여금 플랫폼 신뢰 관리자, 가상 신뢰 셋업 관리자, 및 가상 신뢰 관리자를 확립하게 하고;
상기 플랫폼 신뢰 관리자는 (i) 상기 컴퓨팅 디바이스의 신뢰 플랫폼 모듈을 이용하여 컨테이너 런타임 컴포넌트를 측정하고, (ii) 상기 컨테이너 런타임 컴포넌트의 측정에 응답하여 상기 컨테이너 런타임 컴포넌트를 실행하고;
상기 가상 신뢰 셋업 관리자는 (i) 상기 컨테이너 런타임 컴포넌트의 실행에 응답하여 상기 신뢰 플랫폼 모듈과 가상 플랫폼 자격 증명 간의 신뢰 관계를 확립하고, (ii) 상기 신뢰 관계의 확립에 응답하여 상기 가상 플랫폼 자격 증명을 제1 컨테이너의 가상 신뢰 플랫폼 모듈에 프로비저닝하고, (iii) 상기 가상 플랫폼 자격 증명의 프로비저닝에 응답하여 상기 제1 컨테이너의 게스트 환경을 실행하고;
상기 가상 신뢰 관리자는 (i) 상기 게스트 환경의 실행에 응답하여 상기 가상 신뢰 플랫폼 모듈을 이용하여 상기 제1 컨테이너의 컨테이너화된 애플리케이션을 측정하고, (ii) 상기 컨테이너화된 애플리케이션의 측정에 응답하여 상기 게스트 환경에서 상기 컨테이너화된 애플리케이션을 실행하는, 컴퓨팅 디바이스. - 제1항에 있어서, 상기 가상 신뢰 관리자는 추가로 상기 컨테이너화된 애플리케이션의 실행에 응답하여 상기 가상 신뢰 플랫폼 모듈을 이용하여 상기 게스트 환경에서 신뢰할 수 있는 컴퓨팅 동작을 수행하는, 컴퓨팅 디바이스.
- 제1항에 있어서, 상기 가상 신뢰 관리자는 추가로:
상기 컴퓨팅 디바이스의 프로세서의 멀티-키 전체 메모리 암호화 지원을 이용하여 제1 암호화 키를 이용하여 상기 가상 신뢰 플랫폼 모듈과 연관된 제1 메모리 페이지를 암호화하고;
상기 프로세서의 상기 멀티-키 전체 메모리 암호화를 이용하여 제2 암호화 키를 이용하여 상기 컨테이너화된 애플리케이션과 연관된 제2 메모리 페이지를 암호화하는, 컴퓨팅 디바이스. - 제3항에 있어서,
상기 가상 신뢰 셋업 관리자는 추가로 상기 컨테이너 런타임 컴포넌트의 실행에 응답하여 상기 제1 암호화 키 및 상기 제2 암호화 키를 이용하여 상기 프로세서를 구성하고;
상기 게스트 환경을 실행하는 것은 상기 프로세서의 구성에 응답하여 상기 게스트 환경을 실행하는 것을 포함하는, 컴퓨팅 디바이스. - 제3항에 있어서, 상기 가상 신뢰 셋업 관리자는 추가로 상기 신뢰 플랫폼 모듈과 상기 제1 암호화 키 간의 신뢰 관계를 확립하는, 컴퓨팅 디바이스.
- 제3항에 있어서,
상기 가상 신뢰 셋업 관리자는 추가로 상기 신뢰 플랫폼 모듈을 이용하여 상기 제1 암호화 키를 안전하게 저장하고;
상기 가상 신뢰 관리자는 추가로 (i) 상기 컨테이너화된 애플리케이션의 실행에 응답하여 상기 제1 암호화 키를 이용하여 상기 가상 신뢰 플랫폼 모듈의 신뢰 상태를 암호화하여 암호화된 신뢰 상태를 생성하고, (ii) 상기 암호화된 신뢰 상태를 상기 컴퓨팅 디바이스의 영구 저장소에 저장하는, 컴퓨팅 디바이스. - 제1항에 있어서, 상기 신뢰 관계를 확립하는 것은 상기 신뢰 플랫폼 모듈을 이용하여 상기 가상 신뢰 플랫폼 모듈의 가상 인증 키(virtual endorsement key)를 생성하는 것을 포함하는, 컴퓨팅 디바이스.
- 제1항에 있어서, 상기 게스트 환경을 실행하는 것은:
상기 제1 컨테이너의 제1 서브-컨테이너에서 상기 가상 신뢰 플랫폼 모듈을 실행하고;
상기 제1 컨테이너의 제2 서브-컨테이너에서 상기 컨테이너화된 애플리케이션을 실행하고;
상기 제1 서브-컨테이너를 상기 제2 서브-컨테이너로부터 격리시키는 것을 포함하는, 컴퓨팅 디바이스. - 제1항에 있어서, 상기 가상 신뢰 관리자는 추가로 상기 게스트 환경의 실행에 응답하여 상기 가상 신뢰 플랫폼 모듈과 컨테이너 매니페스트 간의 신뢰 관계를 확립하고, 상기 컨테이너 매니페스트는 상기 컨테이너화된 애플리케이션의 무결성 측정치를 포함하는, 컴퓨팅 디바이스.
- 제9항에 있어서, 상기 컨테이너화된 애플리케이션을 측정하는 것은 상기 컨테이너 매니페스트로부터 상기 컨테이너화된 애플리케이션의 무결성 측정치를 반환하는 것을 포함하는, 컴퓨팅 디바이스.
- 신뢰 컨테이너 실행을 위한 방법으로서, 상기 방법은:
컴퓨팅 디바이스에 의해, 상기 컴퓨팅 디바이스의 신뢰 플랫폼 모듈을 이용하여 컨테이너 런타임 컴포넌트를 측정하는 단계;
상기 컴퓨팅 디바이스에 의해, 상기 컨테이너 런타임 컴포넌트를 측정하는 것에 응답하여 상기 컨테이너 런타임 컴포넌트를 실행하는 단계;
상기 컴퓨팅 디바이스에 의해, 상기 컨테이너 런타임 컴포넌트를 실행하는 것에 응답하여 상기 신뢰 플랫폼 모듈과 가상 플랫폼 자격 증명 간의 신뢰 관계를 확립하는 단계;
상기 컴퓨팅 디바이스에 의해, 상기 신뢰 관계를 확립하는 것에 응답하여 상기 가상 플랫폼 자격 증명을 제1 컨테이너의 가상 신뢰 플랫폼 모듈에 프로비저닝하는 단계;
상기 컴퓨팅 디바이스에 의해, 상기 가상 플랫폼 자격 증명을 프로비저닝하는 것에 응답하여 상기 제1 컨테이너의 게스트 환경을 실행하는 단계;
상기 컴퓨팅 디바이스에 의해, 상기 게스트 환경을 실행하는 것에 응답하여 상기 가상 신뢰 플랫폼 모듈을 이용하여 상기 제1 컨테이너의 컨테이너화된 애플리케이션을 측정하는 단계; 및
상기 컴퓨팅 디바이스에 의해, 상기 컨테이너화된 애플리케이션을 측정하는 것에 응답하여 상기 게스트 환경에서 상기 컨테이너화된 애플리케이션을 실행하는 단계를 포함하는, 방법. - 제11항에 있어서, 상기 컴퓨팅 디바이스에 의해, 상기 컨테이너화된 애플리케이션을 실행하는 것에 응답하여 상기 가상 신뢰 플랫폼 모듈을 이용하여 상기 게스트 환경에서 신뢰할 수 있는 컴퓨팅 동작을 수행하는 단계를 추가로 포함하는, 방법.
- 제11항에 있어서,
상기 컴퓨팅 디바이스에 의해, 상기 컴퓨팅 디바이스의 프로세서의 멀티-키 전체 메모리 암호화 지원을 이용하여 제1 암호화 키를 이용하여 상기 가상 신뢰 플랫폼 모듈과 연관된 제1 메모리 페이지를 암호화하는 단계; 및
상기 컴퓨팅 디바이스에 의해, 상기 프로세서의 상기 멀티-키 전체 메모리 암호화를 이용하여 제2 암호화 키를 이용하여 상기 컨테이너화된 애플리케이션과 연관된 제2 메모리 페이지를 암호화하는 단계를 추가로 포함하는, 방법. - 제13항에 있어서, 상기 컴퓨팅 디바이스에 의해, 상기 신뢰 플랫폼 모듈과 상기 제1 암호화 키 간의 신뢰 관계를 확립하는 단계를 추가로 포함하는, 방법.
- 제13항에 있어서,
상기 컴퓨팅 디바이스에 의해, 상기 신뢰 플랫폼 모듈을 이용하여 상기 제1 암호화 키를 안전하게 저장하는 단계;
상기 컴퓨팅 디바이스에 의해, 상기 컨테이너화된 애플리케이션을 실행하는 것에 응답하여 상기 제1 암호화 키를 이용하여 상기 가상 신뢰 플랫폼 모듈의 신뢰 상태를 암호화하여 암호화된 신뢰 상태를 생성하는 단계; 및
상기 컴퓨팅 디바이스에 의해, 상기 암호화된 신뢰 상태를 상기 컴퓨팅 디바이스의 영구 저장소에 저장하는 단계를 추가로 포함하는, 방법. - 제11항에 있어서, 상기 신뢰 관계를 확립하는 단계는 상기 신뢰 플랫폼 모듈을 이용하여 상기 가상 신뢰 플랫폼 모듈의 가상 인증 키를 생성하는 단계를 포함하는, 방법.
- 제11항에 있어서, 상기 컴퓨팅 디바이스에 의해, 상기 게스트 환경을 실행하는 것에 응답하여 상기 가상 신뢰 플랫폼 모듈과 컨테이너 매니페스트 간의 신뢰 관계를 확립하는 단계를 추가로 포함하고, 상기 컨테이너 매니페스트는 상기 컨테이너화된 애플리케이션의 무결성 측정치를 포함하는, 방법.
- 저장된 복수의 명령어를 포함하는 하나 이상의 컴퓨터 판독가능 저장 매체로서, 상기 명령어들은, 실행되는 것에 응답하여, 컴퓨팅 디바이스로 하여금:
상기 컴퓨팅 디바이스의 신뢰 플랫폼 모듈을 이용하여 컨테이너 런타임 컴포넌트를 측정하고;
상기 컨테이너 런타임 컴포넌트를 측정하는 것에 응답하여 상기 컨테이너 런타임 컴포넌트를 실행하고;
상기 컨테이너 런타임 컴포넌트를 실행하는 것에 응답하여 상기 신뢰 플랫폼 모듈과 가상 플랫폼 자격 증명 간의 신뢰 관계를 확립하고;
상기 신뢰 관계를 확립하는 것에 응답하여 상기 가상 플랫폼 자격 증명을 제1 컨테이너의 가상 신뢰 플랫폼 모듈에 프로비저닝하고;
상기 가상 플랫폼 자격 증명을 프로비저닝하는 것에 응답하여 상기 제1 컨테이너의 게스트 환경을 실행하고;
상기 게스트 환경을 실행하는 것에 응답하여 상기 가상 신뢰 플랫폼 모듈을 이용하여 상기 제1 컨테이너의 컨테이너화된 애플리케이션을 측정하고;
상기 컨테이너화된 애플리케이션을 측정하는 것에 응답하여 상기 게스트 환경에서 상기 컨테이너화된 애플리케이션을 실행하게 하는, 하나 이상의 컴퓨터 판독가능 저장 매체. - 제18항에 있어서, 저장된 복수의 명령어를 추가로 포함하고, 상기 명령어들은, 실행되는 것에 응답하여, 컴퓨팅 디바이스로 하여금 상기 컨테이너화된 애플리케이션을 실행하는 것에 응답하여 상기 가상 신뢰 플랫폼 모듈을 이용하여 상기 게스트 환경에서 신뢰할 수 있는 컴퓨팅 동작을 수행하게 하는, 하나 이상의 컴퓨터 판독가능 저장 매체.
- 제18항에 있어서, 저장된 복수의 명령어를 추가로 포함하고, 상기 명령어들은, 실행되는 것에 응답하여, 컴퓨팅 디바이스로 하여금:
상기 컴퓨팅 디바이스의 프로세서의 멀티-키 전체 메모리 암호화 지원을 이용하여 제1 암호화 키를 이용하여 상기 가상 신뢰 플랫폼 모듈과 연관된 제1 메모리 페이지를 암호화하고;
상기 프로세서의 상기 멀티-키 전체 메모리 암호화를 이용하여 제2 암호화 키를 이용하여 상기 컨테이너화된 애플리케이션과 연관된 제2 메모리 페이지를 암호화하는, 하나 이상의 컴퓨터 판독가능 저장 매체. - 제20항에 있어서, 저장된 복수의 명령어를 추가로 포함하고, 상기 명령어들은, 실행되는 것에 응답하여, 컴퓨팅 디바이스로 하여금 상기 신뢰 플랫폼 모듈과 상기 제1 암호화 키 간의 신뢰 관계를 확립하게 하는, 하나 이상의 컴퓨터 판독가능 저장 매체.
- 제20항에 있어서, 저장된 복수의 명령어를 추가로 포함하고, 상기 명령어들은, 실행되는 것에 응답하여, 컴퓨팅 디바이스로 하여금:
상기 신뢰 플랫폼 모듈을 이용하여 상기 제1 암호화 키를 안전하게 저장하고;
상기 컨테이너화된 애플리케이션을 실행하는 것에 응답하여 상기 제1 암호화 키를 이용하여 상기 가상 신뢰 플랫폼 모듈의 신뢰 상태를 암호화하여 암호화된 신뢰 상태를 생성하고;
상기 암호화된 신뢰 상태를 상기 컴퓨팅 디바이스의 영구 저장소에 저장하게 하는, 하나 이상의 컴퓨터 판독가능 저장 매체. - 제18항에 있어서, 상기 신뢰 관계를 확립하는 것은 상기 신뢰 플랫폼 모듈을 이용하여 상기 가상 신뢰 플랫폼 모듈의 가상 인증 키를 생성하는 것을 포함하는, 하나 이상의 컴퓨터 판독가능 저장 매체.
- 제18항에 있어서, 상기 게스트 환경을 실행하는 것은:
상기 제1 컨테이너의 제1 서브-컨테이너에서 상기 가상 신뢰 플랫폼 모듈을 실행하고;
상기 제1 컨테이너의 제2 서브-컨테이너에서 상기 컨테이너화된 애플리케이션을 실행하고;
상기 제1 서브-컨테이너를 상기 제2 서브-컨테이너로부터 격리시키는 것을 포함하는, 하나 이상의 컴퓨터 판독가능 저장 매체. - 제18항에 있어서, 저장된 복수의 명령어를 추가로 포함하고, 상기 명령어들은, 실행되는 것에 응답하여, 컴퓨팅 디바이스로 하여금 상기 게스트 환경을 실행하는 것에 응답하여 상기 가상 신뢰 플랫폼 모듈과 컨테이너 매니페스트 간의 신뢰 관계를 확립하게 하고, 상기 컨테이너 매니페스트는 상기 컨테이너화된 애플리케이션의 무결성 측정치를 포함하는, 하나 이상의 컴퓨터 판독가능 저장 매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/144,325 | 2018-09-27 | ||
US16/144,325 US11017092B2 (en) | 2018-09-27 | 2018-09-27 | Technologies for fast launch of trusted containers |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200036732A true KR20200036732A (ko) | 2020-04-07 |
Family
ID=65229596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190104310A KR20200036732A (ko) | 2018-09-27 | 2019-08-26 | 신뢰 컨테이너들의 고속 론칭을 위한 기술들 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11017092B2 (ko) |
KR (1) | KR20200036732A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11588641B2 (en) | 2020-10-20 | 2023-02-21 | Samsung Electronics Co., Ltd. | Electronic apparatus and controlling method thereof |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11017092B2 (en) | 2018-09-27 | 2021-05-25 | Intel Corporation | Technologies for fast launch of trusted containers |
US11132440B2 (en) * | 2018-11-01 | 2021-09-28 | Foundation Of Soongsil University-Industry Cooperation | Hybrid trust execution environment based android security framework, android device equipped with the same and method of executing trust service in android device |
JP6746741B1 (ja) * | 2019-03-08 | 2020-08-26 | ラトナ株式会社 | コンテナオーケストレーション技術を利用したセンサ情報処理システム、センサ情報処理システムの制御方法、センサ情報処理システムの制御に用いるコンピュータプログラム、及び、その記録媒体。 |
WO2021006899A1 (en) | 2019-07-10 | 2021-01-14 | Hewlett-Packard Development Company, L.P. | Executing containers during idle states |
US11409880B2 (en) * | 2019-07-11 | 2022-08-09 | International Business Machines Corporation | Blackbox security for containers |
US11176245B2 (en) * | 2019-09-30 | 2021-11-16 | International Business Machines Corporation | Protecting workloads in Kubernetes |
US11463478B2 (en) * | 2019-10-29 | 2022-10-04 | International Business Machines Corporation | Remediation strategy optimization for development, security and operations (DevSecOps) |
US11436342B2 (en) * | 2019-12-26 | 2022-09-06 | Intel Corporation | TDX islands with self-contained scope enabling TDX KeyID scaling |
US20210200880A1 (en) * | 2019-12-27 | 2021-07-01 | Intel Corporation | Method and apparatus for multi-key total memory encryption based on dynamic key derivation |
CN113139175A (zh) | 2020-01-19 | 2021-07-20 | 阿里巴巴集团控股有限公司 | 处理单元、电子设备以及安全控制方法 |
US11888972B2 (en) | 2020-02-26 | 2024-01-30 | Red Hat, Inc. | Split security for trusted execution environments |
US11630683B2 (en) | 2020-02-26 | 2023-04-18 | Red Hat, Inc. | Low latency launch for trusted execution environments |
US11620411B2 (en) | 2020-03-24 | 2023-04-04 | Red Hat, Inc. | Elastic launch for trusted execution environments |
CN113468535B (zh) * | 2020-03-31 | 2024-06-25 | 华为技术有限公司 | 可信度量方法及相关装置 |
CN111881467B (zh) * | 2020-06-12 | 2022-10-28 | 海光信息技术股份有限公司 | 利用安全处理器保护文件的方法、装置、cpu和计算机设备 |
US11343082B2 (en) | 2020-09-28 | 2022-05-24 | Red Hat, Inc. | Resource sharing for trusted execution environments |
US12056511B2 (en) * | 2020-11-09 | 2024-08-06 | International Business Machines Corporation | Container image creation and deployment using a manifest |
US11847253B2 (en) * | 2020-11-30 | 2023-12-19 | Red Hat, Inc. | Efficient launching of trusted execution environments |
US11921858B2 (en) * | 2021-06-08 | 2024-03-05 | Dell Products L.P. | System and method for protecting against alterations in chain of trust sequences |
GB2608435B (en) * | 2021-07-02 | 2023-07-12 | Worldr Tech Limited | System and method for managing transparent data encryption of database |
EP4131040A1 (en) * | 2021-08-03 | 2023-02-08 | Thales Dis France SAS | Method for securely pulling a signed container image |
US12105850B2 (en) | 2021-11-09 | 2024-10-01 | Dell Products L.P. | Secure base activation image for edge day zero secure infrastructure provisioning |
US12086255B2 (en) | 2021-11-09 | 2024-09-10 | Dell Products L.P. | Edge day zero secure infrastructure identification and attestation |
US20230144033A1 (en) * | 2021-11-09 | 2023-05-11 | Dell Products L.P. | Edge day zero secure infrastructure provisioning with autonomic methods |
CN114048485B (zh) * | 2021-11-12 | 2023-04-07 | 四川大学 | 一种针对Docker容器内进程代码段完整性动态监测方法 |
CN114036559B (zh) * | 2021-11-16 | 2022-11-04 | 北京冲量在线科技有限公司 | 基于可信平台控制模块(tpcm)和异构可信执行环境的信创隐私计算系统 |
WO2023196971A1 (en) * | 2022-04-07 | 2023-10-12 | Entrust Corporation | Secure update of dynamic configuration in containerized execution environment |
CN114462051A (zh) * | 2022-04-12 | 2022-05-10 | 中电云数智科技有限公司 | 一种基于可信计算环境的可信计算系统及方法 |
WO2023227233A1 (en) * | 2022-05-26 | 2023-11-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Verification of containers by host computing system |
CN115314495B (zh) * | 2022-08-08 | 2024-08-27 | 国网智能电网研究院有限公司 | 一种面向5g边缘计算节点的容器加固系统及加固方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9652631B2 (en) * | 2014-05-05 | 2017-05-16 | Microsoft Technology Licensing, Llc | Secure transport of encrypted virtual machines with continuous owner access |
US9442752B1 (en) * | 2014-09-03 | 2016-09-13 | Amazon Technologies, Inc. | Virtual secure execution environments |
US20190034617A1 (en) * | 2017-07-31 | 2019-01-31 | Intel Corporation | Flexible container attestation |
US11017092B2 (en) | 2018-09-27 | 2021-05-25 | Intel Corporation | Technologies for fast launch of trusted containers |
-
2018
- 2018-09-27 US US16/144,325 patent/US11017092B2/en active Active
-
2019
- 2019-08-26 KR KR1020190104310A patent/KR20200036732A/ko unknown
-
2021
- 2021-05-17 US US17/321,764 patent/US11741234B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11588641B2 (en) | 2020-10-20 | 2023-02-21 | Samsung Electronics Co., Ltd. | Electronic apparatus and controlling method thereof |
Also Published As
Publication number | Publication date |
---|---|
US20190042759A1 (en) | 2019-02-07 |
US11741234B2 (en) | 2023-08-29 |
US20210390186A1 (en) | 2021-12-16 |
US11017092B2 (en) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11741234B2 (en) | Technologies for fast launch of trusted containers | |
US10635821B2 (en) | Method and apparatus for launching a device | |
EP2973179B1 (en) | Dynamically loaded measured environment for secure code launch | |
US9690947B2 (en) | Processing a guest event in a hypervisor-controlled system | |
US10353831B2 (en) | Trusted launch of secure enclaves in virtualized environments | |
Li et al. | Secure virtual machine execution under an untrusted management OS | |
US8151262B2 (en) | System and method for reporting the trusted state of a virtual machine | |
EP3869332B1 (en) | Roots-of-trust for measurement of virtual machines | |
Demigha et al. | Hardware-based solutions for trusted cloud computing | |
JP2014528604A (ja) | 仮想マシンおよびネストにされた仮想マシンマネージャの認証されたランチ | |
Rocha et al. | Defense-in-depth against malicious insiders in the cloud | |
Kong | A practical approach to improve the data privacy of virtual machines | |
US11748520B2 (en) | Protection of a secured application in a cluster | |
AU2020287873B2 (en) | Systems and methods for processor virtualization | |
Zegzhda et al. | Use of Intel SGX to ensure the confidentiality of data of cloud users | |
US20220374512A1 (en) | Software-based hardware security module (hsm) for a virtualized computing environment | |
Sule et al. | Deploying trusted cloud computing for data intensive power system applications | |
Sani et al. | The case for I/O-device-as-a-service | |
Ushakov et al. | Trusted hart for mobile RISC-V security | |
Wang et al. | A security-enhanced vTPM 2.0 for cloud computing | |
Ma et al. | A virtual machine cloning approach based on trusted computing | |
Yu et al. | A trust verification architecture with hardware root for secure clouds | |
Johnson et al. | Confidential Container Groups: Implementing confidential computing on Azure container instances | |
Aw Ideler | Cryptography as a service in a cloud computing environment | |
CN117473530B (en) | Lightweight trusted measurement system and method based on trusted execution environment |