KR20180069856A - 체인 보안 시스템들 - Google Patents
체인 보안 시스템들 Download PDFInfo
- Publication number
- KR20180069856A KR20180069856A KR1020187013561A KR20187013561A KR20180069856A KR 20180069856 A KR20180069856 A KR 20180069856A KR 1020187013561 A KR1020187013561 A KR 1020187013561A KR 20187013561 A KR20187013561 A KR 20187013561A KR 20180069856 A KR20180069856 A KR 20180069856A
- Authority
- KR
- South Korea
- Prior art keywords
- certificate
- metric
- subsystem
- proof
- sys
- 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/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/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
-
- 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/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2153—Using hardware token as a secondary aspect
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Storage Device Security (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
계층화된 자격 인정 접근법은 가상 기계들에 대한 가상 이미지들이 원시 상태에 있는 원격 환경에서 실행되고 신뢰 실행 환경에서 실행되는 이러한 기계들을 갖는 고객들에게 확실성을 제공한다. 환경은 각각 그 자체의 암호화 바운더리, 보안 저장 장치, 및 신뢰 컴퓨팅 성능을 갖는 다수의 서브시스템으로 나누어질 수 있다. 신뢰, 제한적 서브시스템은 호스트 컴퓨팅 디바이스의 메인 시스템 상에서 실행되는 가상 기계들에 대한 관리상 작업들을 핸들링할 수 있다. 제한적 시스템은 인증 기관으로부터 인증서를 수신할 수 있고, 인증서를 메인 시스템에 제공하기 위해 인증 기관으로서의 역할을 할 수 있다. 증명 요청 시, 서브시스템들은 각각의 인증서들 뿐만 아니라 인증서 체인을 사용하여 증명 정보를 제공할 수 있다. 적절한 자격을 갖는 개체는 응답으로부터 시스템의 상태를 결정하고 상태가 예상대로인지 확인할 수 있다.
Description
점점 더 많은 수의 어플리케이션 및 서비스가 인터넷과 같은 네트워크들을 통해 이용가능하게 되면서, 점점 더 많은 수의 콘텐츠, 어플리케이션, 및 서비스 제공자가 클라우드 컴퓨팅과 같은 기술들에 의존하고 있다. 일반적으로 클라우드 컴퓨팅은 그러한 서비스들을 지원하기 위해 사용되는 하드웨어 및/또는 소프트웨어가 임의의 주어진 시간에 서비스들의 요구를 충족하기 위해 동적으로 확장가능한, 웹 서비스들과 같은, 서비스들을 통해 전자 자원들에 접근하기 위한 접근법이다. 고객은 클라우드를 통해 자원들에의 접근을 위해 임차, 임대, 또는 다른 방법으로 값을 치를 것이며, 그에 따라 고객이 이러한 자원들에 접근하기 위한 하드웨어 및 소프트웨어를 구매 및 유지할 필요가 없게 된다. 적어도 고객 관점으로부터, 상기한 접근법에 가능한 난점은 자원들이 통상적으로 그러한 자원들의 제공자의 제어를 받는 위치에 있고, 그에 따라 고객의 직접 제어를 벗어난다는 점이다. 나아가, 자원들은 보통 다른 고객들과 공유되어 데이터, 소프트웨어, 및 자원 보안 및 무결성이 위태롭게 될 수 있게 된다.
본 발명에 따른 다양한 실시예는 다음 첨부 도면들을 참조하여 설명될 것이다:
도 1은 다양한 실시예가 구현될 수 있는 예시적인 환경을 예시한다.
도 2는 다양한 실시예에 따라 사용될 수 있는 다수의 게스트 가상 기계를 운영하는 가상 기계 관리자에 대한 예시적인 구성을 예시한다.
도 3은 다양한 실시예에 따라 이용될 수 있는 신뢰 코프로세서를 포함하는 예시적인 환경을 예시한다.
도 4는 다양한 실시예에 따라 이용될 수 있는 예시적인 자격 인정 프로세스를 예시한다.
도 5는 다양한 실시예에 따라 이용될 수 있는 예시적인 증명 프로세스를 예시한다.
도 6은 다양한 실시예에 따라 이용될 수 있는 예시적인 증명 확인 프로세스를 예시한다.
도 7은 다양한 실시예에 따라 이용될 수 있는 다른 예시적인 증명 프로세스를 예시한다.
도 8은 다양한 실시예에 따라 이용될 수 있는 다른 예시적인 증명 확인 프로세스를 예시한다.
도 9는 다양한 실시예에 따라 이용될 수 있는 컴퓨팅 디바이스의 예시적인 구성요소들을 예시한다.
도 1은 다양한 실시예가 구현될 수 있는 예시적인 환경을 예시한다.
도 2는 다양한 실시예에 따라 사용될 수 있는 다수의 게스트 가상 기계를 운영하는 가상 기계 관리자에 대한 예시적인 구성을 예시한다.
도 3은 다양한 실시예에 따라 이용될 수 있는 신뢰 코프로세서를 포함하는 예시적인 환경을 예시한다.
도 4는 다양한 실시예에 따라 이용될 수 있는 예시적인 자격 인정 프로세스를 예시한다.
도 5는 다양한 실시예에 따라 이용될 수 있는 예시적인 증명 프로세스를 예시한다.
도 6은 다양한 실시예에 따라 이용될 수 있는 예시적인 증명 확인 프로세스를 예시한다.
도 7은 다양한 실시예에 따라 이용될 수 있는 다른 예시적인 증명 프로세스를 예시한다.
도 8은 다양한 실시예에 따라 이용될 수 있는 다른 예시적인 증명 확인 프로세스를 예시한다.
도 9는 다양한 실시예에 따라 이용될 수 있는 컴퓨팅 디바이스의 예시적인 구성요소들을 예시한다.
본 개시 내용의 다양한 실시예에 따른 시스템들 및 방법들은 공유 컴퓨팅 환경에서 보안을 관리하기 위한 종래 접근법들에서 경험된 앞서 언급한 그리고 다른 결점들 중 하나 이상을 극복할 수 있다. 특히, 다양한 실시예는 가상 기계들에 대한 가상 이미지(들)가 원시 상태에 있는 원격 환경에서 실행되고 신뢰 실행 환경에서 실행되는 이러한 기계들을 갖는 고객들에게 확실성을 제공한다. 특히, 다양한 실시예는 환경이 논리적으로 서브-시스템들 이를테면 제한적 서브시스템(l-sys) 및 메인 서브시스템(m-sys)으로 나누어지되, l-sys가 m-sys 상에서 실행되는 가상 기계들에 대한 관리상 프로세스들을 호스팅할 수 있는, 계층화된 자격 인정 접근법을 이용한다. l-sys는 예를 들어, 신뢰 코프로세서를 갖는 주변 장치를 사용하여 제공될 수 있는 한편, m-sys는 원시 호스트 컴퓨팅 디바이스에 의해 제공될 수 있다. l-sys가 m-sys보다 상위 레벨의 신뢰도를 갖고, m-sys에 물리적으로 연결되기 때문에, l-sys는 인증 기관으로부터 인증서를 수신할 수 있고, m-sys에 자격을 제공할 수 있으며 이에 의해 l-sys가 m-sys에 대한 인증 기관으로서의 역할을 한다. 증명 단계 동안, 각 서브시스템에 대한 관련 정보는 예를 들어, 해싱될 수 있고, 목적하는 증명을 제공하기 위해 인증 체인과 조합된다. 관련 정보는 각 서브시스템에 대한 자격뿐만 아니라, 적절한 식별자들을 포함할 수 있다. 정보를 수신하는 개체는 각각의 고객 기계에 대한 가상 이미지가 원시 상태로 있고 신뢰 실행 환경에서 실행되고 있다는 보장을 제공하기 위해, 시스템에 대한 상태 정보를 추출하는 데 적절한 자격을 사용하고 그 정보가 예상대로라는 것을 확인할 수 있다.
다양한 다른 어플리케이션, 프로세스, 및 사용이 다양한 실시예에 대하여 아래에서 제시된다.
도 1은 다양한 실시예의 측면들이 구현될 수 있는 예시적인 환경(100)을 예시한다. 이러한 예에서, 사용자는 적어도 하나의 네트워크(104)를 거쳐 공유 자원 환경(106), 이를테면 다른 상기한 옵션들 중에서도, 데이터 센터 또는 "클라우드" 환경으로 수신될 콜 또는 요청을 제출하기 위해 컴퓨팅 디바이스(102)를 이용할 수 있다. 컴퓨팅 디바이스(102)는 클라이언트 디바이스들 이를테면 개인용 컴퓨터들, 셀 폰들, 핸드헬드 메시징 디바이스들, 랩탑 컴퓨터들, 셋-탑 박스들, 개인용 정보 단말기들, 전자 북 리더기들, 기타 같은 종류의 것을 포함할 수 있음에 따라, 임의의 적절한 디바이스를 포함할 수 있다. 적어도 하나의 네트워크(104)는 인트라넷, 인터넷, 셀룰러 네트워크, 근거리 네트워크, 또는 임의의 다른 상기한 네트워크 또는 이들의 조합을 포함하여, 임의의 적절한 유선 및/또는 무선 네트워크를 포함할 수 있다. 상기한 시스템을 위해 사용되는 구성요소들은 선택된 네트워크 및/또는 환경의 유형에 적어도 부분적으로 따를 수 있다. 상기한 네트워크를 통해 통신하기 위한 프로토콜들 및 구성요소들은 주지되어 있고 본원에서 상세하게 논의되지는 않을 것이다.
이러한 예에서의 자원 환경(106)은 구성요소들 이를테면 응용 프로그램 인터페이스들(API들), 라우터들, 스위치들, 웹 서버들, 및 통신 수단들을 사용자 컴퓨팅 디바이스(102)로부터 환경에서의 적절한 자원으로 라우팅하기 위해 알려지거나 사용되는 다른 상기한 구성요소들을 포함할 수 있음에 따라, 인터페이스 계층(118)을 포함한다. 이러한 예에서, 자원 환경(106)은 다수의 랙(108)을 포함하며, 각 랙은 이러한 예시적인 실시예에서 다수의 호스트 컴퓨팅 디바이스(110), 뿐만 아니라 임의적 랙 지원 컴퓨팅 시스템(116)을 포함한다. 예시된 랙들(108) 중 하나 상의 호스트 컴퓨팅 시스템들(110)은 이러한 예에서 각각 하나 이상의 가상 기계(114), 뿐만 아니라 그러한 호스트 컴퓨팅 시스템 상의 가상 기계들과 연관된 별개의 가상 기계 관리자(112)를 호스팅하다. 가상 기계 관리자(VMM)는 각각의 호스트 디바이스 상의 가상 기계들(VM들)을 관리하고, 가상화의 다양한 측면을 핸들링하는 작업을 맡게 된다. 각 가상 기계(114)는 사용자를 대신하여 하나 이상의 작업을 실행하기 위한 독립적인 컴퓨팅 자원으로서의 역할을 할 수 있으며, 여기서 가상 기계는 사용자에 대한 전용 자원으로서의 기능을 한다. 또한 환경은 별개의 가상 기계들을 포함하지 않는 추가적인 호스트 컴퓨팅 시스템들도 포함할 수 있으나, 그럼에도 불구하고 각각 하나 이상의 사용자에 대한 컴퓨팅 자원으로서의 역할을 할 수 있다. 랙 지원 컴퓨팅 시스템(116)은 그것의 랙에 로컬인 다른 컴퓨팅 시스템들에, 뿐만 아니라 가능한 환경(106)에 위치되는 다른 컴퓨팅 시스템들에도 다양한 유틸리티 서비스(예를 들어, 장기 프로그램 저장, 계량, 및 프로그램 실행의 그리고/또는 랙에 로컬인 다른 컴퓨팅 시스템들에 의해 수행되는 논-로컬 블록 데이터 저장 장치 액세스의 다른 모니터링)를 제공할 수 있다. 또한 각 컴퓨팅 시스템은 이를테면 실행 프로그램들, 뿐만 아니라 다른 다양한 구성요소에 의해 생성되거나 그 외 사용되는 프로그램들 및/또는 데이터의 로컬 카피들을 저장하기 위해, 하나 이상의 로컬 접속 저장 디바이스들(미도시)을 가질 수 있다.
도 1의 예는 설명을 위해 간략화된 것이고, 호스트 컴퓨팅 시스템들 및 다른 디바이스들의 수 및 조직은 도 1에 도시된 것보다 훨씬 더 클 수 있다는 것이 이해될 것이다. 예를 들어, 하나의 예시적인 실시예로서, 클라우드 환경에 대략 수천 수만의 컴퓨팅 시스템이 있을 수 있으며, 그러한 컴퓨팅 시스템들의 적어도 일부가 각각 다수의 가상 기계를 호스팅할 수 있는 호스트 컴퓨팅 시스템들이다.
다수의 가상화 기술이 소정의 호스트 기계 상에서 복수의 게스트 가상 기계(VM) 또는 게스트 운영 체제(OS)를 동시에 운영하기 위해 사용될 수 있다. 도 2는 다양한 실시예에 따른, 가상 기계 관리자(VMM), 이를테면 하이퍼바이저를 사용하는 하나의 가상화 기술을 이용하는 예(200)를 예시한다. 호스트 컴퓨팅 디바이스(202)의 하드웨어(204)(예를 들어, 중앙 처리 장치 및 다른 상기한 구성요소들)는 이를테면 "베어 메탈(bare metal)" 또는 네이티브(native) 하이퍼바이저의 경우, 하드웨어(204) 상에서 직접 실행되는 VMM(206)과 인터페이싱할 수 있다. 상기한 목적들에 유용한 하이퍼바이저들의 예들은 Xen, Hyper-V®, 기타 같은 종류의 것을 포함한다. 하이퍼바이저들은 통상적으로 기계 상의 어떠한 다른 소프트웨어보다 높고 많은 권한을 가진 프로세서 상태로 실행되고, 서비스들 이를테면 종속 계층들 및/또는 도메인들에 대한 메모리 관리 및 프로세서 스케줄링을 제공한다. 상기한 계층들 및/또는 도메인들 중 가장 많은 권한을 가진 계층 및/또는 도메인은 서비스 도메인 계층에 있으며, 이는 하이퍼바이저(206), 뿐만 아니라 이기종일(즉, 서로 상이한 운영 체제들을 실행할) 수 있는 보다 적은 권한의 도메인들, 이를테면 게스트 가상 기계들(210, 212, 214) 또는 다른 운영 체제의 도메인들의 동작 및 기능을 구성하기 위한 관리상 운영 체제를 포함할 수 있는 호스트 도메인(208)을 포함할 수 있다. 호스트 도메인(208)(예를 들어, DOM-0)은 하이퍼바이저(206)를 거쳐 호스트 컴퓨팅 디바이스(202)의 하드웨어 자원들(204)에 직접 액세스할 수 있는 한편, 게스트 가상 기계 도메인들(210, 212, 214)은 그렇지 않을 수 있다.
특정 실시예들에서, 동작들의 다양한 모드가 있을 수 있다. 예를 들어, 호스트 컴퓨팅 디바이스 상의 마이크로코드를 업데이트하기 위해, 호스트 컴퓨팅 디바이스는 신뢰 소스로부터 업데이트를 수신하고 이를테면 정상 하이퍼바이저 실행을 중단하기 위해 시스템 관리 중단(SMI)을 수신함으로써, 시스템 관리 모드(SMM)로 들어갈 수 있다. SMM으로 들어가는 것은 프로세서에서 단일 물리적 코어(예를 들어, 부트스트래핑 코어)를 제외하고 모든 물리적 프로세서 코어의 실행이 적어도 일부 종래 설계에서 일시 중지되게 한다. 실행을 유지하는 단일 물리적 코어는 업데이트를 적용하는 것에 책임이 있을 것이다. 몇몇 실시예에서, 프로세서가 물리적 코어들의 실행을 일시 중지하기 전 SMI 또는 다른 중단 신호를 검출할 때 그것이 실행하고 있던 특정 명령에 대한 모든 업데이트를 실행하는 것을 완료함이 보장될 수 있다. 수신된 업데이트(예를 들어, 펌웨어, 소프트웨어, 또는 마이크로코드에 대한)는 신뢰 소스, 이를테면 서비스 제공자 또는 프로세서 제조업체에 의해 서명 및/또는 암호화될 수 있다. 하나의 예에서, 업데이트는 업데이트의 진위를 보장하기 위해 개인 키 또는 신뢰 소스의 다른 상기한 자격을 사용하여 서명될 수 있다. 업데이트가 개인 키를 사용하여 서명되는 경우, 호스트 컴퓨팅 디바이스는 패치를 적용하기 전 업데이트의 서명을 인증할 필요가 있을 수 있다. 몇몇 실시예에서, 서명을 확인하기 위해 사용되는 공개 키는 호스트 컴퓨팅 디바이스 상의 신뢰 플랫폼 모듈(TPM)(미도시)에 저장될 수 있다. 몇몇 실시예에서, 업데이트는 비대칭 또는 대칭 암호화를 사용하여 암호화될 수 있다. 예를 들어, 업데이트는 업데이트의 사적 권리를 보장하기 위해 공개 키를 사용하여 암호화될 수 있다. 업데이트가 암호화된 경우라면, 업데이트를 핸들링하는 임의의 중간 당사자들은 그들이 업데이트를 복호하기 위해 사용되는 개인 키에 접근할 수 있지 않는 한 업데이트를 판독 또는 그것의 콘텐츠를 알아낼 수 없다. 업데이트가 암호화된 경우라면, 업데이트를 복호하기 위한 개인 키는 이전에 설명된 바와 같이, 업데이트를 확인하기 위한 공개 키와 유사하게, TPM에 저장될 수 있다. 업데이트가 인증 및/또는 복호되면, 업데이트는 호스트 컴퓨팅 디바이스(202)에 적용될 수 있다. 업데이트를 적용하기 위해 SMM이 사용되는 경우라면, 업데이트를 적용하기 위한 명령들은 SMI 핸들러에서 구현될 수 있거나, 또는 SMI 핸들러가 하이퍼바이저에 미리 구성된 패치 기능을 암호로 확인 및 불러올 수 있다. 그러나, 상기한 접근법의 가능한 불리한 점은 하나 이상의 외부 사용자에게 노출되는 호스트 기계 상의 가상 기계 관리자(VMM)가 손상될 수 있다는 점이다. 결과적으로, 호스트 컴퓨팅 디바이스(202) 상의 게스트 가상 기계들(VM들)(210, 212, 214) 중 하나가 하이퍼바이저(206)를 통해 호스트 하드웨어(204)에서의 TPM에 접근할 수 있다.
다양한 실시예에 따른 접근법들은 고객 비밀들, 키들, 보안 데이터, 및 다른 상기한 객체들이 그러한 환경 내에서 양호하게 보호되고, 어떠한 의도치 않은 또는 예기치 않은 환경의 변경이 일어나지 않았다는 것을 보장하면서 상기한 환경에서의 보안을 개선하려고 시도할 수 있다. 도 3은 상기한 보안을 제공하기 위해 사용될 수 있는 예시적인 환경(300)을 예시한다. 유사한 구성요소들에 대한 참조 부호들이 설명의 간단함을 위해 도면들 사이에서 이어질 수 있으나, 상기한 사용은 달리 구체적으로 언급되지 않는 한 다양한 실시예의 범위의 제한으로 해석되지 않아야 한다는 것이 주의되어야 한다. 이러한 예에서, 호스트 컴퓨팅 디바이스(202)는 신뢰 코프로세서(304), 또는 VMM(206) 및 호스트 기계의 다른 구성요소들과 통신할 수 있는 보안 코프로세서를 포함한다(또는 수용할 수 있다). 신뢰 코프로세서(304)는 호스트 컴퓨팅 디바이스(202)에서 착탈가능한 주변 장치, 예를 들어, 이를테면 PCI 장치를 통해 제공될 수 있다. 신뢰 코프로세서는 하나 이상의 프로세서, 메모리, 하나 이상의 인터페이스, 및 상기한 시스템에 주변 장치 또는 추가 프로세서를 제공하기 위해 알려진 임의의 다른 구성요소들 또는 연결들을 포함할 수 있다. 일 실시예에서, 신뢰 코프로세서는 특정 펌웨어를 포함하는 별개의 PCIE 카드 형태를 취하는 독립적인 하드웨어 구성요소이다. 신뢰 코프로세서의 구성은 그것이 논리적으로 고객 VM와 연간된, 신뢰 바운더리, 암호화 바운더리, 신뢰 영역, 또는 신뢰 고립 영역 내에 있는 것으로 고려될 수 있게 한다. 적어도 몇몇 실시예에서, 주변 장치 카드는 자원 환경의 제공자, 또는 제공자에 의해 신뢰되는 개체에 의해 제조, 구성, 또는 그 외 제공될 수 있으며, 그에 따라 제공자가 주변 장치 카드, 또는 다른 상기한 추가 또는 착탈가능한 하드웨어의 보안성에서 원시 호스트 컴퓨팅 디바이스(202)의 보안성보다 높은 레벨의 신뢰도를 가질 수 있게 된다.
신뢰 코프로세서(304), 또는 다른 상기한 하드웨어 디바이스는 호스트 컴퓨팅 디바이스가 고객 데이터를 프로세싱하거나, 또는 다른 상기한 작업들을 수행하는 고객 가상 기계들을 호스팅하는 것에 실질적으로 전용될 수 있도록 호스트 컴퓨팅 디바이스(202)로부터 관리상 작업들 중 많은 작업을 오프로딩할 수 있는 이점을 제공할 수 있다. 그에 따라 고객 전용의 컴퓨터 자원들이 호스트 컴퓨팅 디바이스에 의해 제공되어, 그러한 자원들의 관리가 신뢰 코프로세서에 의해 관리되는 동안, 고객 작업들을 위한 하드웨어 사용량이 최대로 될 수 있게 할 수 있다. 이는 모든 관리상 프로세스가 신뢰 컴퓨팅 환경(308)에서, 또는 보다 상위 레벨의 제공자 신뢰도를 갖는 하드웨어에 대응하는 신뢰 바운더리 내에서 실행될 추가 이점을 갖는다. 추가 이점은 제공자가 제공자 접근이 단지 필요 자원들로만 제한되고, 시스템이 신뢰 소프트웨어를 실행하고 있다는 보안 확실성을 제공할 수 있다는 점이다.
그에 따라 신뢰 컴퓨팅 환경(308) 내 구성요소들 이를테면 신뢰 코프로세서(304)는 논리적으로 호스트 디바이스 상의 서브-시스템으로 고려될 수 있으며, 여기서 그러한 서브시스템은 상대적으로 제한된 기능을 갖는다. 이러한 별개의 "제한적" 서브시스템은 관련 암호화 바운더리 내에 포함되고, 본원에서 "l-sys"로서 지칭된다. 그 다음 호스트의 하드웨어의 적어도 일부가 호스트 기계 상에서 실행되는, 가상 기계들, 또는 가상 호스트들을 제공 및 유지하는 것에 전용될 수 있다. 이러한 "메인" 서브시스템은 별개의 암호화 바운더리 내에 포함되고, 본원에서 "m-sys"로서 지칭된다. 그에 따라 제공자 접근은 m-sys에서 호스팅되는 게스트 기계들에 관리상 기능들을 제공하기 위해 l-sys로 적어도 어느 정도 제한될 수 있다.
그러나, 그러한 제공자 접근의 분리 및 제한에도 불구하고, 제공자는 여전히 각 고객 인스턴스에 대한 가상 이미지가 예기치 않게 변경되지 않고, "원시(pristine)" 또는 예상 상태에 있다는, 그리고 인스턴스가 신뢰 실행 환경에서 실행되고 있다는 확실성을 고객들(가상 환경에서 실행되는 가상 인스턴스들을 갖는)에게 제공할 수 있어야 할 것이다. 다양한 실시예에 따른 접근법들은 그러한 확실성을 계층화된 또는 체인된 자격 인정 메커니즘을 사용하여 제공할 수 있으며, 이에 의해 서브시스템들은 서브시스템들이 식별될 수 있게 하고 서브시스템들 위에서 실행되는 소프트웨어 및 가상 시스템들이 진본으로 확인될 수 있게 하는 그것들 자체의 자격 인정 메커니즘들을 가질 수 있다. 적어도 몇몇 실시예에서의 각 서브시스템은 그 자체의 암호화 바운더리, 보안 저장 장치, 및 신뢰 컴퓨팅 성능, 뿐만 아니라 추가 펌웨어 및 소프트웨어를 실행할 수 있는 능력을 가질 수 있다.
나아가, 적어도 몇몇 서브시스템은 별개의 메모리 및 프로세서 공간을 신뢰 컴퓨팅 환경의 부분으로서 이용할 수 있다, 이를테면 신뢰 플랫폼 모듈(TPM) 또는 다른 상기한 구성요소로서 모델링될 수 있다. TPM은 원격 증명을 수행하기 위해, 이를테면 호스트 상에서 실행되는 시스템의 진위를 원격으로 확인하기 위해 사용될 수 있다. 예를 들어, TPM들의 시리즈, 체인, 또는 계층을 제공함으로써, 서브시스템들이 식별될 수 있고 그러한 서브-시스템들 위에서 실행되는 소프트웨어 및 가상 시스템들이 진본으로 확인될 수 있다. 본원에서 논의되는 예들이 l-sys 및 m-sys를 포함하여, 2-시스템 호스트에 관하지만, 다양한 다른 수 및/또는 구성의 서브시스템이 다양한 실시예의 범위 내에서 적절하게 사용될 수 있다는 것이 이해되어야 한다.
언급된 바와 같이, 자원 제공자 환경에 내장된 시스템들을 사용하여 민감한 또는 기밀 작업들을 수행하는 고객들은 보통 원격 내장 시스템들이 예기치 않게 변경 또는 조작되지 않을 것이라는 것, 그리고 내장 시스템들 및 가상 기계들이 예상대로 기능할 것이라는 것을 보장할 수 있기 원할 것이다. 그러한 운영을 확인하기 위한 하나의 접근법은 원격 증명을 수반한다. 원격 증명은 컴퓨팅 환경, 이를테면 본원에 설명된 다양한 서브시스템에 대한 승인되지 않은 또는 예기치 않은 변경의 검출을 제공한다. 이러한 변경들은 보안 조치를 피하려고 하는 변경들을 포함할 수 있다. 종래 원격 증명 프로세스 동안, 호스트 기계는 호스트 상에서 현재 실행되고 있는 소프트웨어를 나타내는 인증서를 생성할 수 있다. 그 다음 인증서는 환경에서 현재 실행되고 있는 소프트웨어가 변경되지 않거나 예상대로라는 것을 판명하기 위해, 고객, 또는 다른 적절한 당사자에 제공될 수 있다. 원격 증명은 예를 들어, 소프트웨어에 관한 정보가 증명을 요청하는 당사자, 또는 적절한 키를 획득한 다른 당사자에게만 노출된다는 것을 보장하기 위한, 공개 키 암호화의 이점을 취할 수 있다. TPM은 일반적으로 암호화 키들을 하드웨어에 설치함으로써 하드웨어를 보호할 수 있는 전용 마이크로프로세서이다. TPM은 호스트의 하드웨어 및 소프트웨어 상에서 예상 행위들을 강제하기 위해 TPM 외부에서 접근 불가능한 고유한 암호 키를 이용할 수 있다. 몇몇 실시예에서, 고유한 키는 서명 키, 이를테면 2048-비트 RSA 공개 및 개인 키 쌍이며, 이는 변경할 수 없고 TPM으로부터 내보낼 수 없다. 서명 키에 대한 공개 키는 TPM의 인증서 내에 포함될 수 있다. TPM은 대응하는 환경 또는 서브시스템의 하드웨어 및 소프트웨어 구성의 해시 개요를 생성함으로써 몇몇 실시예에서 원격 증명을 수행할 수 있다. 해시 값은 임의의 적절한 암호화 해싱 알고리즘을 사용하여 생성될 수 있다, 이를테면 MD5, SHA-1, SHA-2, 또는 SHA-3 해시들을 생성할 수 있다.
다양한 실시예에 따른 접근법들은 원격 증명을 수행하기 위해, l-sys에서의 제1 TPM(306), 또는 이러한 예에서 신뢰 코프로세서(304)를 갖는 주변 장치, 및 m-sys에서의 제2 TPM(302), 또는 이러한 예에서 호스트 컴퓨팅 디바이스(202)의 나머지를 이용할 수 있다. 신뢰 l-sys 환경(308)은 하나 이상의 다른 서브시스템, 이를테면 m-sys의 증명을 수행할 수 있는 디바이스 상에서 m-sys의 증명을 위한 신뢰점으로서 기능할 수 있다. l-sys는 이전에 논의된 바와 같은 인증 기관으로부터의 인증서로 구속되는 공개 키를 갖는, 증명 무결성 키 쌍 및 호스트 신원 키 쌍을 생성할 수 있다. 그러한 정보는 증명을 위한 해시를 생성할 뿐만 아니라, 인프라스트럭처 내 디바이스를 고유하게 식별하기 위해 사용될 수도 있다. 몇몇 실시예에서, 증명 요청은 몇몇 유형의 질의, 작업, 또는 챌린지를 포함할 것이고, 요청을 수신한 디바이스는 질의, 작업, 또는 챌린지를 갖는 정보를 수집하고 요청의 소스(또는 다른 적절한 당사자 또는 목적지)로 리턴될 해시를 생성할 수 있다. 증명 요청은 API를 통해 수신되고 콘솔 또는 다른 상기한 인터페이스를 통해 트리거될 수 있다. 몇몇 실시예에서, 증명 요청은 고객 가상 기계 내로부터, 이를테면 가상 TPM 또는 다른 상기한 증명 디바이스로부터 올 수 있다. 그 다음 요청 당사자는 정확한 챌린지, 뿐만 아니라 챌린지에 대한 모든 정보에 대해 예상된 값들이 포함되었음을 보장하기 위해 그 자체의 적절한 키의 카피를 사용할 수 있다. 이는 l-sys의 소프트웨어, 하드웨어, 구성, 및/또는 다른 측면들이 예상대로이고 어떠한 예기치 않은 변경도 일어나지 않았음을 보장하는 것을 도울 수 있다. l-sys가 예상대로 작동하는 것으로 확인되면, l-sys(제공자의 제어를 받는 펌웨어를 포함할 수 있는)는 m-sys, 또는 보다상위 레벨 시스템을 부팅 또는 그 외 초기화할 수 있다. 또한 m-sys는 적절한 인증서로 구속되는 공개 키를 갖는, 증명 무결성 키 쌍 및 호스트 신원 키 쌍을 생성할 수 있는 TPM을 가질 수 있다. 그러한 정보는 증명을 위한 해시를 생성할 뿐만 아니라, 인프라스트럭처 내 디바이스를 고유하게 식별하기 위해 사용될 수도 있다. 이러한 예에서, l-sys는 m-sys에 권한을 넘겨주는 인증서일 수 있다. 그에 따라 l-sys, 또는 신뢰 코프로세서는 인증서를 넘겨주고, 인증서 서브-권한으로서의 역할을 하며, 그것이 m-sys TPM에 물리적으로 접속됨을 증명할 수 있는데, 이는 신뢰 코프로세서가 호스트에 물리적으로 연결되기 때문이다. 상기한 접근법은 전체 증명 체인을 제공할 수 있다. 호스트를 증명하기 원하는 고객 또는 다른 개체는 l-sys에 체인되는 지정된 가상 기계의 호스트, 및 기존 인증 기관에 체인되는 주변 장치 카드 또는 신뢰 코프로세서에 대응하는, m-sys의 인증서를 통해 증명을 얻을 수 있다..
하나의 예에서, 고객 시스템은 자원 제공자 환경에서의 가상 호스트 상에서 실행되는 고객 가상 기계와 통신하고 있다. 고객 시스템은 가상 기계에 구속되는 정보 이를테면 인스턴스 식별자(ID), 뿐만 아니라 가상 기계를 실행하는 호스트 컴퓨팅 디바이스에 대한 호스트 ID를 인식할 수 있다. 그 다음 고객 시스템은 고객 가상 기계에 증명 명령, 또는 증명 요청을 송신할 수 있다. 가상 기계는 요청을 수신할 수 있으며, 이는 몇몇 실시예에서 주변 장치 또는 l-sys를 통해 도착할 수 있다. 가상 기계는 인스턴스 ID 및 호스트 ID를 수신하고 가상 기계가 현재 요청을 수신했다고, 그리고 증명이 제공되어야 한다고 결정할 수 있다. 증명을 제공하기 위해, 신뢰점 시스템, 또는 l-sys, 및 메인 시스템, 또는 m-sys 양자에 정보가 리턴될 필요가 있다. 이러한 예에서, 가상 기계는 l-sys에 증명 명령을 송신할 수 있으며, 이는 증명 명령의 챌린지 및 예상 정보를 사용하여 적절한 해시를 생성할 수 있다. 또한 l-sys는 m-sys에 증명 명령을 송신할 수 있으며, 이는 m-sys 정보와 유사한 해시를 생성할 수 있다. m-sys의 해시는 가상 기계에 대한 고객의 예상 부트 이미지에 대한 정보를 포함할 수 있다. 가상 기계는 예를 들어, 양 해시 값을 획득할 수 있고, 증명에 적절한 정보를 다시 송신할 수 있다. 이는 예를 들어, l-sys 및 m-sys에 대한 해시 값들, 뿐만 아니라 l-sys 및 m-sys에 대한 인증서 체인도 포함할 수 있다. 정보를 수신한 고객 시스템은 이미지가 예상대로이고 증명 체인을 신뢰할 수 있다고 확인할 수 있다. 각 서브시스템에 대한 견적들을(또는 다른 계량들, 이는 서명될 수 있다) 얻은 고객 시스템이 또한 각 견적 상의 서명, 뿐만 아니라 그러한 서명들 내 값들을 확인할 수 있다. 고객 시스템은 또한 m-sys 인증서가 l-sys에 의해 발급되었고, l-sys 인증서는 신뢰 인증 기관에 의해 발급되었다고 확인할 수 있다. 고객이 인증 기관을 신뢰하는 한, 고객은 고객 가상 기계가 예상대로 작동하고 있음을 나타내는 정보를 확인할 수 있어야 한다.
확인을 위한 해시의 부분으로서 제공되는 정보는 관련 서브시스템에 대한 임의의 적절한 정보를 포함할 수 있다. 신뢰 코프로세서가 예를 들어, 주변 장치 카드 상에 있는 l-sys에 대해, 해시는 PCR 레지스터들에 대한 값들, 또는 신뢰 코프로세서에 대한 펌웨어에 대한 정보를 포함할 수 있다. 다양한 다른 유형의 정보가 또한 이용될 수 있다. 어느 정보를 포함할지에 대한 결정은 고객 시스템이 현재 상태를 예상하기에 적절한 해시를 알거나 결정할 수 있도록 시스템 또는 환경의 현재 상태에 대한 지식을 유지할 필요와, 많은 정보를 포함하는 것의 유용성 사이에서 규형을 잡으며, 이는 시스템 또는 환경이 예상대로 작동하고 있다는 강화된 보안성을 제공한다. 증명의 체인을 사용하는 것에 대한 이점은 서브시스템의 성질로 인해 보다 신뢰할 수 있는 환경인 것에 더하여, l-sys가 보다 제어되고 간단한 환경이라는 점이며, 그에 따라 해싱 또는 매칭 에러의 가능성이 상당히 감소되게 되고, 손상의 가능성 또한 상당히 감소되게 된다. 많은 경우, m-sys의 하드웨어 및 소프트웨어 양자가 자원 제공자 환경 외부로부터 제공될 것이기 때문에, 환경이 안전하다는 보장이 작거나 약해질 수 있다. 서브시스템들의 성질은 다른 상기한 이점들 중에서도, 신뢰 서브시스템이 l-sys에서의 신뢰도 레벨 및 l-sys의 m-sys로의 물리적 연결에 기인하여 다른 서브시스템을 인증할 수 있다는 것을 유리하게 만든다.
계층화된 서브시스템 접근법을 사용한 원격 증명을 가능하게 하기 위해, 자격 인정 프로세스는 먼저 서브시스템들이 먼저 증명에 적절한 자격을 갖는다는 것을 보장하기 위해 적어도 몇몇 실시예에서 사용된다. 도 4는 다양한 실시예에 따라 이용될 수 있는 계층화된 서브시스템들에 자격을 제공하기 위한 예시적인 프로세스(400)를 예시한다. 본원에서 논의되는 임의의 프로세스에 대해, 추가적인, 보다 적은, 또는 대안적인 단계들이 달리 언급되지 않는 한 다양한 실시예의 범위 내에서 유사한 또는 상이한 순서들로, 또는 동시에 수행될 수 있다는 것이 이해되어야 한다. 이러한 예에서, 호스트 컴퓨팅 디바이스 상에서 메인 시스템을 관리하기 위해 제한적 시스템이 제공될 수 있으며(402), 여기서 제한적 시스템은 본원에서 논의된 바와 같은 신뢰 하드웨어 및 소프트웨어를 가질 수 있고, 관련 암호화 및/또는 신뢰 바운더리 내에 포함될 수 있다. l-sys는 디지털 인증서들을 획득하기 위해 본원에서 논의 또는 제시되는, 또는 해당 기술분야에 알려진 임의의 다양한 프로세스를 사용하여 인증 기관으로부터 인증서를 수신할 수 있다(404). l-sys는 증명 무결성 키 쌍 및 호스트 신원 키 쌍을 생성할 수 있으며(406), 여기서 공개 키들은 각각의 인증 기관에 의해 발급된 인증서에 구속되고 l-sys의 TPM으로부터 인증된 서명 키를 사용하여 생성된다. 임의의 다양한 기술이 알려진 또는 인증된 서명 키로부터 인증 기관을 통해 인증된 호스트 증명 또는 신원 키로 부트스트래핑하기 위해 사용될 수 있다. 완료 시 l-sys는 인증 기관 인증 증명 무결성 키 및 호스트 신원 키를 가질 수 있다. 이러한 인증된 키들은 저장될 수 있고(408) Certl-sys에 의해 익명으로 표현된다.
나아가 자격 인정 스테이지에서, m-sys TPM은 m-sys로부터 접근가능할 수 있다. l-sys는 오프-박스 네트워크 트래픽 없이 m-sys와 통신할 수 있다. m-sys TPM은 l-sys로부터의 자격을 획득하게 될 수 있으며(410), 이는 인증서 체인을 생성하기 위해(412) 사용될 수 있다. 그에 따라 인증 기관은 l-sys를 인증하고, l-sys는 m-sys 키들을 인증한다. m-sys 자격 인정은 인증 기관기 l-sys의 기관 인증된 호스트 신원 키에 의해 대체되는 방법을 이용할 수 있다. m-sys는 증명 무결성 키 쌍 및 호스트 신원 키 쌍을 생성할 수 있으며(414), 여기서 공개 키들은 l-sys에 의해 발급된 자격에 구속되고 m-sys의 TPM으로부터 인증된 서명 키를 사용하여 생성된다. 완료 시 m-sys TPM은 l-sys 인증 증명 무결성 키 및 l-sys 인증 호스트 신원 키를 가질 수 있다. 이러한 인증된 키들은 저장될 수 있고(416) Certm-sys에 의해 익명으로 표현된다.
양 서브시스템(또는 둘보다 많은 서브시스템이 경우 모든 서브시스템)이 자격이 인정되면, 시스템 상에서 실행되는 고객 구현이 증명될 수 있다. 도 5는 다양한 실시예에 따라 이용될 수 있는 고객 구현을 증명하기 위한 예시적인 프로세스(500)를 예시한다. 상기한 프로세스는 적어도 몇몇 실시예에서 증명 요청 부분 및 증명 응답 부분을 포함하여, 다양한 부분으로 나눌 수 있다. 적어도 몇몇 실시예에는, 또한 증명 응답 확인 프로세스 또는 부분이 있을 수 있다. 증명 요청에 관한 제1 부분은 고객 구현의 증명을 요청하는 개체를 수반한다. 이러한 예에서, 증명 요청이 수신되며(502), 여기서 증명 요청은 고객 구현의 호스트 컴퓨팅 디바이스에 대한 호스트 신원(h-id)과 같은 정보를 포함한다. 증명 요청은 다른 상기한 옵션들 중에서도, 먼저 본원 다른 곳에서 논의될 바와 같이, 제어 영역 구성요소로 수신된 다음, 제한적 시스템 구성요소 또는 인터페이스로 포워딩될 수 있다. 프로세스의 부분으로서, 랜덤 암호화 임시값(N), 또는 다른 임의의 일회용 숫자가 증명 요청으로 생성된 다음 적어도 값들(h-id 및 N)로 이루어질 수 있다. 출력 증명 요청은 적어도 몇몇 실시예에서 호스트(h-id)에 수신될 수 있다.
호스트 신원(h-id)으로 자격 인정된 호스트는 요청을 수신할 수 있으며, 이는 l-sys를 통해 왔을 수 있다. 논의된 바와 같이, 자격 인정된 호스트는 m-sys 및 l-sys에 대한 값들로 이루어지는 신원(h-id)을 가질 것이며, 여기서 l-sys가 인증 기관에 의해 인증된 것이다. m-sys, 또는 예를 들어, 요청을 수신하거나 그것을 통지받은 다른 구성요소는 l-sys의 증명을 트리거할 수 있다(504). 증명 요청에 응답하여, 대상 증명 타겟에 대한 h-id가 확인될 수 있다. 제1 증명 견적(견적1)(또는 다른 서명된 계량)이 임시값(N) 및 인증 기관에 의해 인증된 l-sys 자격을 사용하여 생성될 수 있다(506). 차례로, l-sys는 증명 요청을 m-sys로 송신할 수 있다(508). m-sys는 임시값(N), 및 l-sys에 의해 인증된 m-sys 자격을 사용하여 제2 증명 견적(견적2)을 생성할 수 있다(510). 본원 다른 곳에서 언급될 바와 같이, 각 견적은 적어도 몇몇 실시예에서 각각의 정보의 해시를 포함할 수 있다. 그 다음 l-sys는 m-sys로부터 견적2 및 자격(Certm-sys)을 수신하고 견적1, 견적2, 및 자격들(Certm-sys 및 Certl-sys), 또는 몇몇 실시예에서 인증서 체인을 포함하여 증명 응답을 조합할 수 있으며(512), 이는 증명 응답으로서 리턴될 출력을 형성할 수 있다. 그 다음 l-sys는 적절한 목적지 또는 어드레스로 요청을 포워딩할 수 있다(514).
적어도 몇몇 실시예에서, 증명 응답을 수신하고(또는 다른 관심있는 및 허가된 개체) 상태의 진위를 보장하는 개체는 증명을 확인하기 원할 수 있다. 도 6은 다양한 실시예에 따라 이용될 수 있는 증명 응답을 확인하기 위한 예시적인 프로세스(600)를 예시한다. 이러한 예에서, 증명 응답이 증명을 확인하는데 관심이 있는 개체, 이를테면 자원 제공자 환경에서, 이를테면 m-sys 서브시스템에서 실행되는 구현과 연관된 고객에 의해 수신된다(602). 확인 프로세스의 부분으로서, 시스템에 대해 보고된 상태가 결정될 수 있다(604). 상태 정보는 예를 들어, 인증 기관으로부터의 공개 키의 진본 카피, 뿐만 아니라 호스트 신원(h-id)에 대한 증명 요청을 생성하기 위해 사용되는 임시값(N)을 포함할 수 있다. 또한 상태는 m-sys에 대한 수락할만한 증명 응답 값들(PCR 값들)의 제1 세트, l-sys에 대한 수락할만한 증명 응답 값들(PCR 값들)의 제2 세트를 포함할 수 있다. 입력은 견적1, 견적2, 및 인증서들(Certm-sys 및 Certl-sys)을 포함하여, 증명 견적들 및 자격들을 포함할 수 있다. 확인 프로세스의 부분으로서, Certl-sys가 h-id에 대한 인증 기관으로부터의 유효한 인증서라는 제1 확인이 수행될 수 있다(606). 그렇지 않은 경우, 증명 실패 응답이 리턴되거나(608), 또는 다른 개선 동작이 취해질 수 있다. 언급된 바와 같이, 이러한 확인들이 편리함을 위해 특정 순서로 나열되지만, 이러한 결정들은 다양한 실시예의 범위 내에서, 상이한 순서들, 또는 동시에 또는 다른 방법으로 수행될 수 있다는 것이 이해되어야 한다. 제1 견적(견적1)이 Certl-sys에서의 적절한 h-id 자격을 사용하여 서명되고, 임시값(N)을 포함하며, 정확한 PCR 값을 갖는다는 제2 확인이 수행될 수 있다(610). 그렇지 않은 경우, 증명 실패 응답이 리턴되거나(608), 또는 다른 개선 동작이 취해질 수 있다. Certm-sys가 h-id에 대한 l-sys로부터의 유효한 인증서라는 제3 확인이 수행될 수 있다(612). 그렇지 않은 경우, 증명 실패 응답이 리턴되거나(608), 또는 다른 개선 동작이 취해질 수 있다. 제2 견적(견적2)이 Certm-sys에서의 적절한 h-id 자격을 사용하여 서명되고, 임시값(N)을 포함하며, 정확한 PCR 값들을 갖는다는 제4 확인이 수행될 수 있다(614). 그렇지 않은 경우, 증명 실패 응답이 리턴되거나(608), 또는 다른 개선 동작이 취해질 수 있다. 모든 확인이 성공적으로 통과되는 경우, 통과 또는 성공 메시지가 리턴되거나(616), 또는 증명의 확인에 응답하여 유사한 동작이 취해질 수 있다.
도 7은 증명, 그러나 이 경우 시스템 상에서 실행되는 특정 가상 기계 또는 고객 인스턴스에 특수한 증명을 위한 유사한 프로세스(700)를 예시한다. 이러한 예에서, 원격 가상 기계에 대한 증명 요청이 수신되며(702), 여기서 증명 요청은 가상 기계에 대한 가상 이미지의 신원(v-id) 및 가상 이미지가 로딩되는 호스트 컴퓨팅 디바이스에 대한 호스트 신원(h-id)과 같은 정보를 포함한다. 프로세스의 부분으로서, 랜덤 암호화 임시값(N), 또는 다른 임의의 일회용 숫자가 증명 요청으로 생성된 다음 적어도 값들(v-id, h-id 및 N)로 이루어질 수 있다. 출력 증명 요청은 적어도 몇몇 실시예에서 호스트(h-id)에 수신될 수 있다.
호스트 신원(h-id)으로 자격 인정된 호스트는 요청을 수신할 수 있으며, 이는 l-sys를 통해 왔을 수 있다. 논의된 바와 같이, 자격 인정된 호스트는 m-sys 및 l-sys에 대한 값들로 이루어지는 신원(h-id)을 가질 것이며, 여기서 l-sys가 인증 기관에 의해 인증된 것이다. m-sys, 또는 예를 들어, 요청을 수신하거나 그것을 통지받은 다른 구성요소는 l-sys의 증명을 트리거할 수 있다(704). 증명 요청에 응답하여, 대상 증명 타겟에 대한 h-id가 확인될 수 있다. 제1 증명 견적(견적1)이 임시값(N) 및 인증 기관에 의해 인증된 l-sys 자격을 사용하여 생성될 수 있다(706). 차례로, l-sys는 증명 요청을 m-sys로 송신할 수 있다(708). m-sys는 임시값(N), 및 l-sys에 의해 인증된 m-sys 자격을 사용하여 제2 증명 견적(견적2)을 생성할 수 있다(710). 몇몇 실시예에서 제2 증명 견적은 PCR 레지스터들 중 하나 이상에 제시되는 가상 이미지(v-id)를 커버할 것이다. 특정 가상 기계 또는 고객 인스턴스에 대한 계량, 이를테면 서명된 계량 또는 견적이 또한 결정 또는 생성될 수 있으며(712), 여기서 이러한 예에서 계량은 v-id의 형태를 취한다. 그 다음 l-sys는 m-sys로부터 견적2 및 자격(Certm-sys)을 수신하고 견적1, 견적2, 및 자격들(Certm-sys 및 Certl-sys), 또는 인증서 체인을 포함하여 증명 응답을 조합할 수 있으며(714), 이는 증명 응답으로서 리턴될 출력을 형성할 수 있다. 그 다음 l-sys는 적절한 목적지 또는 어드레스로 요청을 포워딩할 수 있다(716).
적어도 몇몇 실시예에서, 증명 응답을 수신하고(또는 다른 관심있는 및 허가된 개체) 상태의 진위를 보장하는 개체는 증명을 확인하기 원할 수 있다. 도 8은 다양한 실시예에 따라 이용될 수 있는 증명 응답을 확인하기 위한 예시적인 프로세스(800)를 예시한다. 이러한 예에서, 증명 응답이 증명을 확인하는데 관심이 있는 개체, 이를테면 자원 제공자 환경에서, 이를테면 m-sys 서브시스템에서 실행되는 가상 기계와 연관된 고객에 의해 수신된다(802). 확인 프로세스의 부분으로서, 시스템에 대해 보고된 상태가 결정될 수 있다(804). 상태 정보는 예를 들어, 인증 기관으로부터의 공개 키의 진본 카피, 뿐만 아니라 가상 이미지(v-id) 및 호스트 신원(h-id)에 대한 증명 요청을 생성하기 위해 사용되는 임시값(N)을 포함할 수 있다. 또한 상태는 m-sys에 대한 수락할만한 증명 응답 값들(PCR 값들)의 제1 세트, l-sys에 대한 수락할만한 증명 응답 값들(PCR 값들), 및 가상 이미지(v-id)에 대한 수락할만한 증명 응답 값의 제2 세트를 포함할 수 있다. 입력은 견적1, 견적2, 및 인증서들(Certm-sys 및 Certl-sys)을 포함하여, 증명 견적들 및 자격들을 포함할 수 있다. 확인 프로세스의 부분으로서, Certl-sys가 h-id에 대한 인증 기관으로부터의 유효한 인증서라는 제1 확인이 수행될 수 있다(806). 그렇지 않은 경우, 증명 실패 응답이 리턴되거나(808), 또는 다른 개선 동작이 취해질 수 있다. 언급된 바와 같이, 이러한 확인들이 편리함을 위해 특정 순서로 나열되지만, 이러한 결정들은 다양한 실시예의 범위 내에서, 상이한 순서들, 또는 동시에 또는 다른 방법으로 수행될 수 있다는 것이 이해되어야 한다. 제1 견적(견적1)이 Certl-sys에서의 적절한 h-id 자격을 사용하여 서명되고, 임시값(N)을 포함하며, 정확한 PCR 값을 갖는다는 제2 확인이 수행될 수 있다(810). 그렇지 않은 경우, 증명 실패 응답이 리턴되거나(808), 또는 다른 개선 동작이 취해질 수 있다. Certm-sys가 h-id에 대한 l-sys로부터의 유효한 인증서라는 제3 확인이 수행될 수 있다(812). 그렇지 않은 경우, 증명 실패 응답이 리턴되거나(808), 또는 다른 개선 동작이 취해질 수 있다. 제2 견적(견적2)이 Certm-sys에서의 적절한 h-id 자격을 사용하여 서명되고, 임시값(N)을 포함하며, 정확한 PCR 값들을 갖는다는 제4 확인이 수행될 수 있다(814). 그렇지 않은 경우, 증명 실패 응답이 리턴되거나(808), 또는 다른 개선 동작이 취해질 수 있다. 견적2에서의 값들이 v-id에 대한 가상 이미지에 대한 수락할만한 증명 응답 값을 포함한다는 제5 확인이 수행될 수 있으며(816), 이는 적어도 몇몇 실시예에서 전용 또는 상가적 PCR 값일 공산이 가장 크다. 그렇지 않은 경우, 증명 실패 응답이 리턴되거나(808), 또는 다른 개선 동작이 취해질 수 있다. 모든 확인이 성공적으로 통과되는 경우, 통과 또는 성공 메시지가 리턴되거나(818), 또는 증명의 확인에 응답하여 유사한 동작이 취해질 수 있다.
몇몇 실시예에서, TPM 또는 다른 신뢰 환경은 확인가능한 자격 이를테면 인증서로 프로비저닝되지 않을 수 있다. 이러한 상황들에 대해, 호스트에의 물리적 접근이 대신 사용될 수 있는 특정 프로비저닝 프로세스가 이용될 수 있다. 몇몇 실시예에서, 원격 시스템의 증명은 특수 권한들을 요구할 수 있다. 가능한, 그리고 증명 요청의 진위를 확인하기 위해 사용되는 요청 개체에 대한 인증된 자격이 확립될 수 있다. 무엇보다 특히, 인증된 비대칭 키 쌍이 사용될 수 있고 증명 요청이 서명된다. 몇몇 실시예에서는, 증명 구축을 위해 호스트 신원(h-id)도 가상 이미지 식별자(v-id)도 알려질 필요가 없다. 호스트 신원은 증명 요청 생성 시 반드시 알려져야 할 필요는 없고, 가상 이미지 식별자는 증명 견적의 부분으로 다시 보고될 수 있으며, 이에 의해 수락할만한 값들이 결정될 수 있다.
적어도 몇몇 실시예에서, 견적은 TPM 정의 견적 메커니즘으로 안정될 필요는 없고 시스템의 신원 키를 사용하여 추가적으로 서명된 정보를 포함할 수 있다. m-sys 증명 응답은 다수의 가상 이미지의 진위를 결정하기에 충분한 정보를 포함할 수 있다. 이는 몇몇 실시예에서 다수의 견적을 리턴하거나, 다수의 결과를 단일 견적으로 조합함으로써 수행될 수 있다. 나아가, 두 개의 시스템 계층이 설명을 위해 제시되지만, 인증 기관의 부모 노드를 갖는 임의의 적절한 트리 또는 계층적 구조가 또한 다양한 실시예의 범위 내에서 사용될 수 있되, 트리에서의 각 노드가 부모 노드에 의해 서명된다는 것이 언급되어야 한다. 유사하게 적어도 몇몇 실시예에서는 임의의 수의 루트 인증 기관이 있을 수 있다. 하나의 상기한 시스템에서, l-sys는 단일 호스트 내에 포함되는 서브시스템들의 패밀리에 대한 루트를 형성한다.
추가적으로, 본 발명의 실시예들은 다음 조항들을 고려해서 설명될 수 있다:
1. 호스트 컴퓨터 시스템으로서,
복수의 가상 기계를 작동시키도록 구성된 적어도 하나의 프로세서;
코프로세서 및 상기 복수의 가상 기계를 관리하기 위한 제1 실행가능한 명령들을 저장하는 제1 메모리를 포함하는 주변 장치로서, 적어도 제1 서명 키 및 인증 기관으로부터 수신되는 제1 인증서를 사용하여 상기 주변 장치와 사용하기 위해 구성된 제1 보안 암호 프로세서를 더 포함하는, 상기 주변 장치; 및
적어도 제2 서명 키 및 상기 제1 보안 암호 프로세서로부터 수신되는 제2 인증서를 사용하여 상기 호스트 컴퓨터 시스템과 사용하기 위해 구성된 제2 보안 암호 프로세서 및 제2 실행가능한 명령들을 저장하는 제2 메모리를 포함하되,
상기 제1 명령들은 실행될 때 상기 주변 장치로 하여금:
상기 복수의 가상 기계의 고객 가상 기계와 연관된 증명 요청을 수신하게 하되, 상기 고객 가상 기계는 고객 기계 이미지를 사용하여 런칭되고;
상기 주변 장치에 대한 제1 서명된 계량을 생성하게 하되, 상기 제1 서명된 계량은 상기 주변 장치에 대한 식별 정보 및 상기 인증 기관으로부터 수신된 상기 제1 인증서를 사용하여 생성된 자격을 포함하고;
상기 제2 보안 프로세서가 상기 호스트 컴퓨팅 시스템에 대한 제2 서명된 계량을 생성하게 하되, 상기 제2 서명된 계량은 상기 호스트 컴퓨팅 기계에 대한 식별 정보, 상기 고객 기계 이미지에 대한 정보, 및 상기 제1 보안 암호 프로세서로부터 수신된 상기 제2 인증서를 사용하여 생성된 자격을 포함하고;
상기 제1 서명된 계량, 상기 제2 서명된 계량, 및 상기 제1 인증서 및 상기 제2 인증서에 대한 인증서 체인을 포함하여 증명 응답을 조합하게 하되, 그리고
상기 증명 응답을 포워딩하게 하되, 고객 시스템이 적어도 상기 고객 가상 기계의 무결성 및 상기 호스트 컴퓨팅 시스템의 보안을 확인할 수 있게 되는, 호스트 컴퓨터 시스템.
2. 조항 1에 있어서, 상기 제2 명령들은 실행될 때 또한 상기 시스템으로 하여금 상기 호스트 컴퓨팅 디바이스 상에서 메인 서브시스템을 작동시키게 하되, 상기 메인 서브시스템은 상기 고객 기계 이미지를 사용하여 상기 고객 가상 기계를 실행하는 것에 대한 책임이 있으며, 그리고
상기 제1 명령들은 실행될 때 또한 상기 코프로세서로 하여금 상기 주변 장치를 사용하여 제한적 서브시스템을 작동시키게 하되, 상기 제한적 시스템은 상기 메인 서브시스템에 대한 관리상 작업들을 수행하도록 구성되고, 상기 제한적 서브시스템은 또한 상기 메인 서브시스템을 초기화하도록 그리고 상기 자격이 상기 제2 보안 암호 프로세서에 제공되게 하도록 구성되는, 호스트 컴퓨터 시스템.
3. 조항 1에 있어서, 상기 제1 서명된 계량은 상기 제1 암호 프로세서에 대응하는 제1 증명 무결성 키 쌍 및 제1 호스트 신원 키 쌍을 더 포함하고, 상기 제2 서명된 계량은 상기 제2 암호 프로세서에 대응하는 제2 증명 무결성 키 쌍 및 제2 호스트 신원 키 쌍을 더 포함하는, 호스트 컴퓨터 시스템.
4. 조항 1에 있어서, 상기 명령들은 실행될 때 또한 상기 시스템로 하여금:
상기 제1 서명된 계량의 제1 해시 및 상기 제2 서명된 계량의 제2 해시를 생성하게 하고 제1 해시 및 제2 해시를 증명 응답에 포함시키게 하는, 호스트 컴퓨터 시스템.
5. 컴퓨터-구현 방법으로서,
컴퓨팅 디바이스의 메인 서브시스템으로 고객 시스템으로부터의 증명 요청을 수신하는 단계로서, 상기 컴퓨팅 디바이스는 상기 고객 시스템과 연관된 고객 가상 기계를 운영하는, 상기 증명 요청을 수신하는 단계;
상기 컴퓨팅 디바이스에 물리적으로 연결된 신뢰 하드웨어를 사용하여 제공되는 제한적 서브시스템에 요청을 송신하는 단계로서, 상기 제한적 서브시스템은 상기 고객 가상 기계에 대한 관리상 작업들을 수행하도록 구성된, 상기 제한적 서브시스템에 요청을 송신하는 단계;
상기 제한적 서브시스템으로부터, 상기 제한적 서브시스템에 대한 제1 자격을 포함하는 제1 계량을 수신하는 단계로서, 상기 제1 자격은 인증 기관에 의해 제공되는 제1 인증서를 사용하여 생성되는, 상기 제1 계량을 수신하는 단계;
상기 메인 서브시스템에 대한 제2 자격 및 상기 고객 가상 기계에 대한 상태 정보를 포함하는 제2 계량을 생성하는 단계로서, 상기 제2 자격은 상기 제한적 서브시스템에 의해 제공되는 제2 인증서를 사용하여 생성되는, 상기 제2 계량을 생성하는 단계; 및
상기 고객 시스템에 증명 응답을 송신하는 단계로서, 상기 증명 응답은 상기 제1 계량 및 상기 제2 계량을 포함하는, 상기 증명 응답을 송신하는 단계를 포함하는, 방법.
6. 조항 5에 있어서,
상기 제한적 서브시스템의 제1 보안 암호 프로세서로 상기 제1 인증서를 수신하는 단계; 및
상기 제1 인증서 및 상기 제1 보안 암호 프로세서의 제1 서명 키를 사용하여 상기 제1 자격을 생성하는 단계로서, 상기 제1 서명 키는 상기 제1 보안 암호 프로세서로부터 내보낼 수 없는, 상기 제1 자격을 생성하는 단계를 더 포함하는, 컴퓨터-구현 방법.
7. 조항 6에 있어서, 상기 제1 자격은 제한적 서브시스템과 연관된 제1 증명 무결성 키 쌍 및 제1 호스트 신원 키 쌍을 포함하는, 컴퓨터-구현 방법.
8. 조항 6에 있어서,
상기 메인 서브시스템의 제2 보안 암호 프로세서로 상기 제2 인증서를 수신하는 단계; 및
상기 제2 인증서 및 상기 제2 보안 암호 프로세서의 제2 서명 키를 사용하여 상기 제2 자격을 생성하는 단계로서, 상기 제2 서명 키는 상기 제2 보안 암호 프로세서로부터 내보낼 수 없는, 상기 제2 자격을 생성하는 단계를 더 포함하는, 컴퓨터-구현 방법.
9. 조항 8에 있어서, 상기 제2 자격은 메인 서브시스템과 연관된 제2 증명 무결성 키 쌍 및 제2 호스트 신원 키 쌍을 포함하는, 컴퓨터-구현 방법.
10. 조항 5에 있어서,
상기 요청을 상기 제한적 서브시스템에 송신하기 전에, 상기 증명 요청에 포함된 제1 식별자를 사용하여 호스트 기계의 신원, 그리고 상기 증명 요청에 포함된 제2 식별자를 사용하여 고객 기계 이미지의 신원을 확인하는 단계를 더 포함하는, 컴퓨터-구현 방법.
11. 조항 5에 있어서,
상기 제1 계량 및 상기 제2 계량 중 적어도 하나를 사용하여 적어도 하나의 해시 값을 생성하고 상기 적어도 하나의 해시 값을 상기 증명 응답에 포함시키는 단계를 더 포함하며, 상기 적어도 하나의 해시 값은 상기 고객 시스템과 연관되는, 컴퓨터-구현 방법.
12. 조항 5에 있어서, 상기 증명 응답은 상기 제1 인증서 및 상기 제2 인증서에 대한 인증서 체인 또는 가상 인스턴스에 대한 계량 중 적어도 하나를 더 포함하는, 컴퓨터-구현 방법.
13. 조항 5에 있어서, 상기 계량은 견적 또는 암호로 확인가능한 계량 중 하나인, 컴퓨터-구현 방법.
14. 조항 5에 있어서, 상기 신뢰 하드웨어는 상기 컴퓨팅 디바이스가 운영하는 환경의 제공자에 의해 구성되는 펌웨어 및 명령들을 포함하는 주변 장치 카드이되, 상기 주변 장치 카드는 상기 컴퓨팅 디바이스보다 상위 레벨의 신뢰도를 갖는, 컴퓨터-구현 방법.
15. 조항 5에 있어서,
상기 증명 요청에 포함된 챌린지 정보를 결정하는 단계; 및
상기 챌린지 정보를 상기 증명 응답에 포함시키는 단계를 더 포함하는, 컴퓨터-구현 방법.
16. 호스트 컴퓨팅 디바이스 상에서 작동되는 제한적 서브시스템으로서,
적어도 하나의 프로세서; 및
명령들을 저장하는 메모리로서, 상기 명령들은 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 제한적 서브시스템으로 하여금:
상기 호스트 컴퓨팅 디바이스 상의 메인 서브시스템에서 실행되는 가상 기계에 대한 증명 요청을 수신하게 하되, 상기 제한적 서브시스템은 상기 호스트 컴퓨팅 디바이스에 물리적으로 연결된 신뢰 하드웨어를 사용하여 제공되며 상기 가상 기계에 대한 관리상 작업들을 수행하도록 구성되고;
상기 제한적 서브시스템에 대한 제1 자격을 포함하는 제1 계량을 생성하게 하되, 상기 제1 자격은 인증 기관에 의해 제공되는 제1 인증서를 사용하여 생성되고;
상기 호스트 컴퓨팅 디바이스의 상기 메인 서브시스템이 상기 메인 서브시스템에 대한 제2 자격 및 상기 고객 가상 기계에 대한 상태 정보를 포함하는 제2 계량을 생성하게 하되, 상기 제2 자격은 상기 제한적 서브시스템에 의해 제공되는 제2 인증서를 사용하여 생성되며; 그리고
상기 제1 계량 및 상기 제2 계량을 포함하는 증명 응답을 송신하게 하는, 제한적 서브시스템.
17. 조항 16에 있어서, 상기 명령들은 실행될 때 또한 상기 호스트 컴퓨팅 디바이스로 하여금:
상기 제2 인증서가 상기 메인 서브시스템의 제2 보안 암호 프로세서로 송신되게 하며; 그리고
상기 제2 자격이 상기 제2 인증서 및 상기 제2 보안 암호 프로세서의 제2 서명 키를 사용하여 생성되게 하되, 상기 제2 서명 키는 상기 제2 보안 암호 프로세서로부터 내보낼 수 없는, 제한적 서브시스템.
18. 조항 16에 있어서, 상기 명령들은 실행될 때 또한 상기 호스트 컴퓨팅 디바이스로 하여금:
상기 증명 요청에 포함된 암호화 임시값(cryptographic nonce)을 결정하게 하며; 그리고
상기 암호화 임시값을 상기 증명 응답에 포함시키게 하는, 제한적 서브시스템.
19. 조항 16에 있어서, 상기 명령들은 실행될 때 또한 상기 호스트 컴퓨팅 디바이스로 하여금:
상기 호스트 컴퓨팅 디바이스를 상기 증명 요청에 포함된 제1 식별자를 사용하여 상기 증명 요청의 타겟으로서 확인하게 하는, 제한적 서브시스템.
20. 조항 16에 있어서, 상기 증명 요청은 상기 가상 기계 내로부터 생성되는, 제한적 서브시스템.
도 9는 예시적인 컴퓨팅 디바이스(900)의 일반적 구성요소들의 세트의 논리적 배열을 예시한다. 이러한 예에서, 디바이스는 메모리 디바이스 또는 소자(904)에 저장될 수 있는 명령들을 실행하기 위한 프로세서(902)를 포함한다. 해당 기술분야에서의 통상의 기술자에게 명백할 수 있는 바와 같이, 디바이스는 많은 유형의 메모리, 데이터 저장 장치, 또는 비-일시적 컴퓨터-판독가능한 저장 매체, 이를테면 프로세서(902)에 의한 실행을 위한 프로그램 명령들을 위한 제1 데이터 저장 장치, 이미지 또는 데이터를 위한 별개의 저장 장치, 다른 디바이스들과 정보를 공유하기 위한 착탈가능한 메모리 등을 포함할 수 있다. 디바이스는 통상적으로 몇몇 유형의 디스플레이 소자(906), 이를테면 터치 스크린 또는 액정 디스플레이(LCD)를 포함할 것이나, 디바이스들 이를테면 휴대용 미디어 플레이어들이 다른 수단을 통해, 이를테면 오디오 스피커들을 통해 정보를 전달할 수 있다. 논의된 바와 같이, 많은 실시예에서 디바이스는 사용자로부터 종래 입력을 수신할 수 있는 적어도 하나의 입력 소자(908)를 포함할 것이다. 이러한 종래 입력은 예를 들어, 푸시 버튼, 터치 패드, 터치 스크린, 휠, 조이스틱, 키보드 마우스, 키패드, 또는 사용자가 디바이스에 명령을 입력할 수 있는 임의의 다른 상기한 디바이스 또는 소자를 포함할 수 있다. 그러나, 몇몇 실시예에서, 상기한 디바이스는 어떠한 버튼도 포함하지 않을 수 있고, 시각적 및 청각적 명령들의 조합을 통해서만 제어될 수 있으며, 그에 따라 사용자가 디바이스와 접촉할 필요 없이 디바이스를 제어할 수 있게 된다. 몇몇 실시예에서, 도 9의 컴퓨팅 디바이스(900)는 다양한 네트워크, 이를테면 와이파이, 블루투스, RF, 유선, 또는 무선 통신 시스템을 통해 통신하기 위한 하나 이상의 네트워크 인터페이스 소자(908)를 포함할 수 있다. 많은 실시예에서 디바이스는 네트워크, 이를테면 인터넷과 통신할 수 있고, 다른 상기한 디바이스들과 통신할 수 있을 수 있다.
다양한 실시예에 따른 측면들을 구현하기 위해 본원에서 논의된 예시적인 환경들은 주로 웹 서비스들 및 클라우드 컴퓨팅과 관련된 웹-기반이나, 웹-기반 환경이 설명을 위해 사용되더라도, 상이한 환경들이 다양한 실시예를 구현하기 위해 적절하게 사용될 수 있다는 것이 이해되어야 한다. 다양한 실시예와 상호작용하기 ? 사용되는 클라이언트 디바이스들은 적절한 네트워크를 통해 요청들, 메시지들, 또는 정보를 송신 및 수신하도록 작동 가능한 임의의 적절한 디바이스를 포함할 수 있고 정보를 다시 디바이스의 사용자에게 전달할 수 있다. 상기한 클라이언트 디바이스들의 예들은 개인용 컴퓨터들, 스마트폰들, 핸드헬드 메시징 디바이스들, 랩탑 컴퓨터들, 셋-탑 박스들, 개인용 정보 단말기들, 전자 북 리더기들 기타 같은 종류의 것을 포함한다. 네트워크는 인트라넷, 인터넷, 셀룰러 네트워크, 근거리 네트워크, 또는 임의의 다른 상기한 네트워크 또는 이들의 조합을 포함하여, 임의의 적절한 네트워크를 포함할 수 있다. 상기한 시스템을 위해 사용되는 구성요소들은 선택된 네트워크 및/또는 환경의 유형에 적어도 부분적으로 따를 수 있다. 상기한 네트워크를 통해 통신하기 위한 프로토콜들 및 구성요소들은 주지되어 있고 본원에서 상세하게 논의되지는 않을 것이다. 네트워크를 통한 통신은 유선 연결 또는 무선 연결, 및 이들의 조합들에 의해 가능하게 될 수 있다.
체인되거나 다르게 구성될 수 있는 몇몇 어플리케이션 서버, 계층, 또는 다른 소자, 프로세스 또는 구성요소가 있을 수 있으며, 이들은 본원에서 논의 및 제안된 작업들을 수행하기 위해 상호작용할 수 있다는 것이 이해되어야 한다. 본원에서 사용될 때, 용어 "데이터 저장소"는 데이터를 저장, 액세스 및 검색할 수 있는 임의의 디바이스 또는 디바이스들의 조합을 지칭하며, 이는 임의의 표준, 분산, 또는 클러스터 환경에서의, 임의의 조합 및 수의 데이터 서버들, 데이터베이스들, 데이터 저장 디바이스들 및 데이터 저장 매체들을 포함할 수 있다. 어플리케이션 서버는 클라이언트 디바이스에 대한 하나 이상의 어플리케이션의 측면들을 실행하여, 어플리케이션에 대한 데이터 액세스 및 비즈니스 로직의 대부분을 핸들링하기 위해 필요에 따라 데이터 저장소와 통합하기 위한 임의의 적절한 하드웨어 및 소프트웨어를 포함할 수 있다. 어플리케이션 서버는 데이터 저장소와 협력하여 액세스 제어 서비스들을 제공하고, 사용자에 전달될 콘텐츠 이를테면 텍스트, 그래픽, 오디오, 및/또는 비디오를 생성할 수 있으며, 이는 이러한 예에서 웹 서버에 의해 HTML, XML, 또는 다른 적절한 구조 언어의 형태로 사용자에게 제공될 수 있다. 모든 요청 및 응답, 뿐만 아니라 클라이언트 디바이스 및 자원 간 콘텐츠의 전달의 핸들링은 웹 서버에 의해 핸들링될 수 있다. 본원에서 논의된 구조 코드가 본원 다른 곳에서 논의된 바와 같이 임의의 적절한 디바이스 또는 호스트 기계 상에서 실행될 수 있기 때문에, 웹 및 어플리케이션 서버들이 필수적인 것은 아니고 단지 예시적인 구성요소들이라는 것이 이해되어야 한다.
데이터 저장소는 몇몇 별개의 데이터 테이블, 데이터베이스, 또는 특정 측면에 관한 데이터를 저장하기 위한 다른 데이터 저장 메커니즘 및 매체를 포함할 수 있다. 데이터 저장소는 그것와 연관된 로직을 통해, 서버로부터 명령들을 수신하고, 그것들에 응답하여 데이터를 획득, 업데이트 또는 그 외 프로세싱하도록 작동가능하다. 하나의 예에서, 사용자는 특정 유형의 항목에 대한 검색 요청을 제출할 수 있다. 이 경우, 데이터 저장소는 사용자의 식원을 확인하기 위해 사용자 정보에 액세스할 수 있고, 해당 유형의 항목들에 대한 정보를 획득하기 위해 카탈로그 상세 정보에 액세스할 수 있다. 그 다음 정보는 이를테면 사용자 디바이스 상의 브라우저를 통해 사용자가 볼 수 있는 웹 페이지 상에 나열한 결과들로, 사용자에게 리턴될 수 있다. 특정 관심 항목에 대한 정보는 브라우저의 전용 페이지 또는 창에 보여질 수 있다.
각 서버는 통상적으로 해당 서버의 일반적인 관리 및 동작을 위한 실행가능한 프로그램 명령들을 제공하는 운영 체제를 포함할 것이고, 통상적으로 서버의 프로세서에 의해 실행될 때, 서버가 그것의 의도된 기능들을 수행하게 하는 명령들을 저장한 컴퓨터-판독가능한 저장 매체를 포함할 것이다. 서버들의 운영 체제 및 일반적인 기능에 적합한 구현예들은 알려져 있거나 시판되고 있고, 특히 본원에서의 본 개시 내용을 고려하여, 해당 기술분야의 통상의 기술자들에 의해 용이하게 구현된다.
환경은 일 실시예에서 하나 이상의 컴퓨터 네트워크 또는 직접 연결을 사용하는, 통신 링크들을 통해 상호연결되는 몇몇 컴퓨터 시스템 및 구성요소를 이용하는 분산 컴퓨팅 환경이다. 그러나, 해당 기술분야의 통상의 기술자에 의해 그러한 시스템이 설명된 것보다 적거나 많은 수의 구성요소를 갖는 시스템에서 똑같이 양호하게 동작할 수 있음이 이해될 것이다. 그에 따라, 본원에서의 다양한 시스템 및 서비스의 도면들은 사실상 예시적인 것으로 취해져야 하고, 본 발명의 범위를 제한하지 않아야 한다.
다양한 측면이 적어도 하나의 서비스 또는 웹 서비스의 부분으로서 구현될 수 있다, 이를테면 서비스-지향 아키텍처의 부분일 수 있다. 서비스들 이를테면 웹 서비스들은 임의의 적절한 유형의 메시징을 사용하여, 이를테면 확장 마크업 언어(XML) 포맷의 메시지들을 사용하여 그리고 적절한 프로토콜 이를테면 SOAP("Simple Object Access Protocol"로부터 도출되는)를 사용하여 교환됨으로써 통신할 수 있다. 그러한 서비스들에 의해 제공 또는 실행되는 프로세스들은 임의의 적절한 언어, 이를테면 웹 서비스 설명 언어(WSDL)로 쓰여질 수 있다. 언어 이를테면 WSDL를 사용하면 다양한 SOAP 프레임워크에서의 기능 이를테면 클라이언트 측 코드의 자동 생성을 가능하게 한다.
대부분 실시예는 시중에서 구할 수 있는 다양한 프로토콜, 이를테면 TCP/IP, FTP, UPnP, NFS, 및 CIFS를 사용하여 통신을 지원하기 위해 해당 기술분야에서의 통상의 기술자들에게 익숙할 수 있는 적어도 하나의 네트워크를 이용한다. 네트워크는 예를 들어, 근거리 네트워크, 광역 네트워크, 가상 전용 네트워크, 인터넷, 인트라넷, 엑스트라넷, 공중 교환 전화 네트워크, 적외선 네트워크, 무선 네트워크, 및 이들의 임의의 조합일 수 있다.
웹 서버를 이용하는 실시예들에서, 웹 서버는 HTTP 서버들, FTP 서버들, CGI 서버들, 데이터 서버들, 자바 서버들, 및 비지니스 어플리케이션 서버들을 포함하여, 다양한 서버 또는 중간 계층 어플리케이션 중 임의의 것을 실행할 수 있다. 서버(들)는 또한 이를테면 임의의 프로그래밍 언어, 이를테면 Java®, C, C# 또는 C++, 또는 임의의 스트립팅 언어, 이를테면 펄, 파이톤, 또는 TCL, 뿐만 아니라 이들의 조합들로 쓰여진 하나 이상의 스크립트 또는 프로그램으로서 구현될 수 있는 하나 이상의 웹 어플리케이션을 실행함으로써, 사용자 디바이스들로부터의 요청들에 응답하여 프로그램들 또는 스크립트들을 실행할 수 있을 수 있다. 서버(들)는 또한 제한 없이 Oracle®, Microsoft®, Sybase® 및 IBM®에서 시판되고 있는 것들을 포함하여, 데이터베이스 서버들을 포함할 수 있다.
환경은 위에서 논의된 바와 같이 다양한 데이터 저장소 및 다른 메모리 및 저장 매체를 포함할 수 있다. 이들은 다양한 위치에, 이를테면 컴퓨터들 중 하나 이상에 로컬이거나(그러고/또는 있거나) 네크워크를 거쳐 임의의 또는 모든 컴퓨터에서 원격인 저장 매체 상에 있을 수 있다. 실시예들의 특정 집합에서, 정보는 해당 기술분야의 통상의 기술자들에게 익숙한 저장-영역 네트워크("SAN")에 있을 수 있다. 유사하게, 컴퓨터들, 서버들 또는 다른 네트워크 디바이스들에 기인하는 기능들을 수행하기 위한 임의의 필요한 파일들이 적절하게, 로컬로 그리고/또는 원격에 저장될 수 있다. 시스템이 컴퓨터화된 디바이스들을 포함하는 경우, 각각의 상기한 디바이스는 버스를 통해 전기적으로 결합될 수 있는 하드웨어 요소들을 포함할 수 있으며, 요소들은 예를 들어, 적어도 하나의 중앙 처리 장치(CPU), 적어도 하나의 입력 디바이스(예를 들어, 마우스, 키보드, 컨트롤러, 터치 스크린 또는 키패드) 및 적어도 하나의 출력 디바이스(예를 들어, 디스플레이 디바이스, 프린터 또는 스피커)를 포함한다. 상기한 시스템은 또한 하나 이상의 저장 디바이스, 이를테면 디스크 드라이브, 광 저장 디바이스 및 고체-상태 저장 디바이스 이를테면 랜덤 액세스 메모리("RAM") 또는 판독-전용 메모리("ROM"), 뿐만 아니라 착탈가능한 미디어 디바이스, 메모리 카드, 플레시 카드 등을 포함할 수 있다.
상기한 디바이스들은 또한 위에서 설명된 바와 같은 컴퓨터-판독가능한 저장 매체 판독기, 통신 디바이스(예를 들어, 모뎀, 네트워크 카드(무선 또는 유선), 적외선 통신 디바이스 등) 및 작업 메모리를 포함할 수 있다. 컴퓨터-판독가능한 저장 매체 판독기는 원격, 로컬, 고정 및/또는 착탈가능한 저장 디바이스들 뿐만 아니라 컴퓨터-판독가능한 정보를 일시적으로 그리고/또는 보다 영구적으로 포함, 저장, 전송 및 검색하기 위한 저장 매체를 나타내는, 컴퓨터-판독가능한 저장 매체와 연결되거나, 또는 이를 수용하도록 구성될 수 있다. 시스템 및 다양한 디바이스는 또한 통상적으로 운영 체제 및 어플리케이션 프로그램들, 이를테면 클라이언트 어플리케이션 또는 웹 브라우저를 포함하여, 다수의 소프트웨어 어플리케이션, 모듈, 서비스 또는 적어도 하나의 작업 메모리 디바이스 내에 위치된 다른 요소를 포함할 것이다. 대안적인 실시예들이 위에서 설명된 것으로부터 많은 변경예를 가질 수 있다는 것이 이해되어야 한다. 예를 들어, 맞춤형 하드웨어가 또한 사용될 수 있고/거나 특정 요소들은 하드웨어, 소프트웨어(휴대용 소프트웨어, 이를테면 애플릿들을 포함함), 또는 양자로 구현될 수 있다. 나아가, 다른 컴퓨팅 디바이스들 이를테면 네트워크 입력/출력 디바이스들에 대한 연결이 채용될 수 있다.
코드, 또는 코드의 부분들을 포함하기 위한 저장 매체 및 비-일시적 컴퓨터 판독가능한 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다목적 디스크(DVD) 또는 다른 광 저장장치, 자기 카셋트들, 자기 테이프, 자기 디스크 저장장치 또는 다른 자기 저장 디바이스들 또는 원하는 정보를 저장하기 위해 사용될 수 있고 시스템 디바이스에 의해 액세스될 수 있는 임의의 다른 매체를 포함하여, 저장 매체 및 통신 매체, 이에 한정되는 것은 아니지만, 이를테면, 정보 이를테면 컴퓨터 판독가능한 명령들, 데이터 구조들, 프로그램 모듈들 또는 다른 데이터의 저장을 위해 임의의 방법 또는 기술로 구현되는 휘발성 및 비-휘발성, 착탈가능한 및 비-착탈가능한 매체를 포함하여, 해당 기술분야에 알려지거나 사용되는 임의의 적절한 매체를 포함할 수 있다. 본원에 제공된 개시 내용 및 교시 내용들에 기초하여, 해당 기술분야의 통상의 기술자는 다양한 실시예를 구현하기 위한 다른 방식들 및/또는 방법들을 이해할 것이다.
따라서, 명세서 및 도면들은 제한적인 의미가 아니라 예시적인 의미로 여겨져야 한다. 그러나, 청구항들에 제시된 바와 같은 본 발명의 광범위한 사상 및 범위에서 벗어나지 않고 그것에 대한 다양한 변형 및 변경이 이루어질 수 있다는 것이 분명할 것이다.
Claims (15)
- 호스트 컴퓨터 시스템으로서,
복수의 가상 기계를 작동시키도록 구성된 적어도 하나의 프로세서;
코프로세서 및 상기 복수의 가상 기계를 관리하기 위한 제1 실행가능한 명령들을 저장하는 제1 메모리를 포함하는 주변 장치로서, 적어도 제1 서명 키(endorsement key) 및 인증 기관으로부터 수신되는 제1 인증서를 사용하여 상기 주변 장치와 사용하기 위해 구성된 제1 보안 암호 프로세서를 더 포함하는, 상기 주변 장치; 및
적어도 제2 서명 키 및 상기 제1 보안 암호 프로세서로부터 수신되는 제2 인증서를 사용하여 상기 호스트 컴퓨터 시스템과 사용하기 위해 구성된 제2 보안 암호 프로세서 및 제2 실행가능한 명령들을 저장하는 제2 메모리를 포함하되,
상기 제1 명령들은 실행될 때 상기 주변 장치로 하여금:
상기 복수의 가상 기계의 고객 가상 기계와 연관된 증명 요청을 수신하게 하되, 상기 고객 가상 기계는 고객 기계 이미지를 사용하여 런칭되고;
상기 주변 장치에 대한 제1 서명된 계량(signed measurement)을 생성하게 하되, 상기 제1 서명된 계량은 상기 주변 장치에 대한 식별 정보 및 상기 인증 기관으로부터 수신된 상기 제1 인증서를 사용하여 생성된 자격을 포함하고;
상기 제2 보안 프로세서가 상기 호스트 컴퓨팅 시스템에 대한 제2 서명된 계량을 생성하게 하되, 상기 제2 서명된 계량은 상기 호스트 컴퓨팅 기계에 대한 식별 정보, 상기 고객 기계 이미지에 대한 정보, 및 상기 제1 보안 암호 프로세서로부터 수신된 상기 제2 인증서를 사용하여 생성된 자격을 포함하고;
상기 제1 서명된 계량, 상기 제2 서명된 계량, 및 상기 제1 인증서 및 상기 제2 인증서에 대한 인증서 체인을 포함하여 증명 응답을 조합하게 하되; 그리고
상기 증명 응답을 포워딩하게 하되, 고객 시스템이 적어도 상기 고객 가상 기계의 무결성 및 상기 호스트 컴퓨팅 시스템의 보안을 확인할 수 있게 되는, 호스트 컴퓨터 시스템. - 청구항 1에 있어서, 상기 제2 명령들은 실행될 때 또한 상기 시스템으로 하여금 상기 호스트 컴퓨팅 디바이스 상에서 메인 서브시스템을 작동시키게 하되, 상기 메인 서브시스템은 상기 고객 기계 이미지를 사용하여 상기 고객 가상 기계를 실행하는 것에 대한 책임이 있으며, 그리고
상기 제1 명령들은 실행될 때 또한 상기 코프로세서로 하여금 상기 주변 장치를 사용하여 제한적 서브시스템을 작동시키게 하되, 상기 제한적 시스템은 상기 메인 서브시스템에 대한 관리상 작업들을 수행하도록 구성되고, 상기 제한적 서브시스템은 또한 상기 메인 서브시스템을 초기화하도록 그리고 상기 자격이 상기 제2 보안 암호 프로세서에 제공되게 하도록 구성되는, 호스트 컴퓨터 시스템. - 청구항 1에 있어서, 상기 제1 서명된 계량은 상기 제1 암호 프로세서에 대응하는 제1 증명 무결성 키 쌍 및 제1 호스트 신원 키 쌍을 더 포함하고, 상기 제2 서명된 계량은 상기 제2 암호 프로세서에 대응하는 제2 증명 무결성 키 쌍 및 제2 호스트 신원 키 쌍을 더 포함하는, 호스트 컴퓨터 시스템.
- 컴퓨터-구현 방법으로서,
컴퓨팅 디바이스의 메인 서브시스템으로 고객 시스템으로부터의 증명 요청을 수신하는 단계로서, 상기 컴퓨팅 디바이스는 상기 고객 시스템과 연관된 고객 가상 기계를 운영하는, 상기 증명 요청을 수신하는 단계;
상기 컴퓨팅 디바이스에 물리적으로 연결된 신뢰 하드웨어를 사용하여 제공되는 제한적 서브시스템에 요청을 송신하는 단계로서, 상기 제한적 서브시스템은 상기 고객 가상 기계에 대한 관리상 작업들을 수행하도록 구성된, 상기 제한적 서브시스템에 요청을 송신하는 단계;
상기 제한적 서브시스템으로부터, 상기 제한적 서브시스템에 대한 제1 자격을 포함하는 제1 계량을 수신하는 단계로서, 상기 제1 자격은 인증 기관에 의해 제공되는 제1 인증서를 사용하여 생성되는, 상기 제1 계량을 수신하는 단계;
상기 메인 서브시스템에 대한 제2 자격 및 상기 고객 가상 기계에 대한 상태 정보를 포함하는 제2 계량을 생성하는 단계로서, 상기 제2 자격은 상기 제한적 서브시스템에 의해 제공되는 제2 인증서를 사용하여 생성되는, 상기 제2 계량을 생성하는 단계; 및
상기 고객 시스템에 증명 응답을 송신하는 단계로서, 상기 증명 응답은 상기 제1 계량 및 상기 제2 계량을 포함하는, 상기 증명 응답을 송신하는 단계를 포함하는, 방법. - 청구항 4에 있어서,
상기 제한적 서브시스템의 제1 보안 암호 프로세서로 상기 제1 인증서를 수신하는 단계; 및
상기 제1 인증서 및 상기 제1 보안 암호 프로세서의 제1 서명 키를 사용하여 상기 제1 자격을 생성하는 단계로서, 상기 제1 서명 키는 상기 제1 보안 암호 프로세서로부터 내보낼 수 없는, 상기 제1 자격을 생성하는 단계를 더 포함하는, 컴퓨터-구현 방법. - 청구항 5에 있어서,
상기 메인 서브시스템의 제2 보안 암호 프로세서로 상기 제2 인증서를 수신하는 단계; 및
상기 제2 인증서 및 상기 제2 보안 암호 프로세서의 제2 서명 키를 사용하여 상기 제2 자격을 생성하는 단계로서, 상기 제2 서명 키는 상기 제2 보안 암호 프로세서로부터 내보낼 수 없는, 상기 제2 자격을 생성하는 단계를 더 포함하는, 컴퓨터-구현 방법. - 청구항 4에 있어서,
상기 요청을 상기 제한적 서브시스템에 송신하기 전에, 상기 증명 요청에 포함된 제1 식별자를 사용하여 호스트 기계의 신원, 그리고 상기 증명 요청에 포함된 제2 식별자를 사용하여 고객 기계 이미지의 신원을 확인하는 단계를 더 포함하는, 컴퓨터-구현 방법. - 청구항 4에 있어서,
상기 제1 계량 및 상기 제2 계량 중 적어도 하나를 사용하여 적어도 하나의 해시 값을 생성하고 상기 적어도 하나의 해시 값을 상기 증명 응답에 포함시키는 단계를 더 포함하며, 상기 적어도 하나의 해시 값은 상기 고객 시스템과 연관되는, 컴퓨터-구현 방법. - 청구항 4에 있어서, 상기 계량은 견적(quote) 또는 암호로 확인가능한 계량 중 하나인, 컴퓨터-구현 방법.
- 청구항 4에 있어서, 상기 신뢰 하드웨어는 상기 컴퓨팅 디바이스가 운영하는 환경의 제공자에 의해 구성되는 펌웨어 및 명령들을 포함하는 주변 장치 카드이되, 상기 주변 장치 카드는 상기 컴퓨팅 디바이스보다 상위 레벨의 신뢰도를 갖는, 컴퓨터-구현 방법.
- 청구항 4에 있어서,
상기 증명 요청에 포함된 챌린지 정보를 결정하는 단계; 및
상기 챌린지 정보를 상기 증명 응답에 포함시키는 단계를 더 포함하는, 컴퓨터-구현 방법. - 호스트 컴퓨팅 디바이스 상에서 작동되는 제한적 서브시스템으로서,
적어도 하나의 프로세서; 및
명령들을 저장하는 메모리로서, 상기 명령들은 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 제한적 서브시스템으로 하여금:
상기 호스트 컴퓨팅 디바이스 상의 메인 서브시스템에서 실행되는 가상 기계에 대한 증명 요청을 수신하게 하되, 상기 제한적 서브시스템은 상기 호스트 컴퓨팅 디바이스에 물리적으로 연결된 신뢰 하드웨어를 사용하여 제공되며 상기 가상 기계에 대한 관리상 작업들을 수행하도록 구성되고;
상기 제한적 서브시스템에 대한 제1 자격을 포함하는 제1 계량을 생성하게 하되, 상기 제1 자격은 인증 기관에 의해 제공되는 제1 인증서를 사용하여 생성되고;
상기 호스트 컴퓨팅 디바이스의 상기 메인 서브시스템이 상기 메인 서브시스템에 대한 제2 자격 및 상기 고객 가상 기계에 대한 상태 정보를 포함하는 제2 계량을 생성하게 하되, 상기 제2 자격은 상기 제한적 서브시스템에 의해 제공되는 제2 인증서를 사용하여 생성되며; 그리고
상기 제1 계량 및 상기 제2 계량을 포함하는 증명 응답을 송신하게 하는, 제한적 서브시스템. - 청구항 12에 있어서, 상기 명령들은 실행될 때 또한 상기 호스트 컴퓨팅 디바이스로 하여금:
상기 제2 인증서가 상기 메인 서브시스템의 제2 보안 암호 프로세서로 송신되게 하며; 그리고
상기 제2 자격이 상기 제2 인증서 및 상기 제2 보안 암호 프로세서의 제2 서명 키를 사용하여 생성되게 하되, 상기 제2 서명 키는 상기 제2 보안 암호 프로세서로부터 내보낼 수 없는, 제한적 서브시스템. - 청구항 12에 있어서, 상기 명령들은 실행될 때 또한 상기 호스트 컴퓨팅 디바이스로 하여금:
상기 증명 요청에 포함된 암호화 임시값(cryptographic nonce)을 결정하게 하며; 그리고
상기 암호화 임시값을 상기 증명 응답에 포함시키게 하는, 제한적 서브시스템. - 청구항 12에 있어서, 상기 명령들은 실행될 때 또한 상기 호스트 컴퓨팅 디바이스로 하여금:
상기 호스트 컴퓨팅 디바이스를 상기 증명 요청에 포함된 제1 식별자를 사용하여 상기 증명 요청의 타겟으로서 확인하게 하는, 제한적 서브시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/960,553 US10169591B2 (en) | 2015-12-07 | 2015-12-07 | Chained security systems |
US14/960,553 | 2015-12-07 | ||
PCT/US2016/065351 WO2017100303A1 (en) | 2015-12-07 | 2016-12-07 | Chained security systems |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180069856A true KR20180069856A (ko) | 2018-06-25 |
KR102110273B1 KR102110273B1 (ko) | 2020-05-13 |
Family
ID=57570474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187013561A KR102110273B1 (ko) | 2015-12-07 | 2016-12-07 | 체인 보안 시스템들 |
Country Status (7)
Country | Link |
---|---|
US (2) | US10169591B2 (ko) |
EP (1) | EP3387580B1 (ko) |
JP (1) | JP6591678B2 (ko) |
KR (1) | KR102110273B1 (ko) |
CN (1) | CN108351944B (ko) |
CA (1) | CA3004189C (ko) |
WO (1) | WO2017100303A1 (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210063055A (ko) | 2019-11-22 | 2021-06-01 | 서강대학교산학협력단 | 신뢰 실행 환경을 이용한 분산 블록체인 오라클 시스템 및 상기 시스템에서의 외부 데이터 전달 방법 |
KR20210071394A (ko) | 2019-12-06 | 2021-06-16 | 서강대학교산학협력단 | 블록체인을 기반으로 한 센서 네트워크 시스템 및 상기 센서 네트워크 시스템에서의 동적 링크키 생성 방법 |
KR20220021576A (ko) | 2020-08-14 | 2022-02-22 | 서강대학교산학협력단 | 신뢰 실행 환경을 기반으로 한 탈중앙형 오라클 시스템 및 상기 시스템에서의 외부 데이터 전달 방법 |
WO2023149648A1 (ko) * | 2022-02-07 | 2023-08-10 | 삼성전자 주식회사 | 보안 기능을 제공하는 전자 장치 및 그의 동작 방법 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11310050B2 (en) | 2018-09-17 | 2022-04-19 | Microsoft Technology Licensing, Llc | Verifying a computing device after transport |
CN105184154B (zh) * | 2015-09-15 | 2017-06-20 | 中国科学院信息工程研究所 | 一种在虚拟化环境中提供密码运算服务的系统和方法 |
US10169591B2 (en) | 2015-12-07 | 2019-01-01 | Amazon Technologies, Inc. | Chained security systems |
US10050947B2 (en) * | 2016-01-28 | 2018-08-14 | Cisco Technology, Inc. | Key distribution in a distributed network environment |
CN107133520B (zh) * | 2016-02-26 | 2021-05-14 | 华为技术有限公司 | 云计算平台的可信度量方法和装置 |
US10412191B1 (en) | 2016-03-30 | 2019-09-10 | Amazon Technologies, Inc. | Hardware validation |
US10790978B2 (en) * | 2016-05-25 | 2020-09-29 | Intel Corporation | Technologies for collective authorization with hierarchical group keys |
US20180198620A1 (en) * | 2017-01-11 | 2018-07-12 | Raptor Engineering, LLC | Systems and methods for assuring data on leased computing resources |
US10819696B2 (en) * | 2017-07-13 | 2020-10-27 | Microsoft Technology Licensing, Llc | Key attestation statement generation providing device anonymity |
GB2566264B (en) * | 2017-09-01 | 2020-05-13 | Trustonic Ltd | Application certificate |
US10635821B2 (en) * | 2017-10-13 | 2020-04-28 | Baidu Usa Llc | Method and apparatus for launching a device |
US11824882B2 (en) * | 2018-08-13 | 2023-11-21 | Ares Technologies, Inc. | Systems, devices, and methods for determining a confidence level associated with a device using heuristics of trust |
US11695783B2 (en) * | 2018-08-13 | 2023-07-04 | Ares Technologies, Inc. | Systems, devices, and methods for determining a confidence level associated with a device using heuristics of trust |
US10771264B2 (en) | 2018-10-10 | 2020-09-08 | Hewlett Packard Enterprise Development Lp | Securing firmware |
US11444846B2 (en) * | 2019-03-29 | 2022-09-13 | Intel Corporation | Technologies for accelerated orchestration and attestation with edge device trust chains |
WO2020206355A1 (en) * | 2019-04-03 | 2020-10-08 | Cisco Technology, Inc. | Verifying the trust-worthiness of a physical host underlying a virtual network element |
US11212119B2 (en) * | 2019-04-05 | 2021-12-28 | Cisco Technology, Inc. | Remote attestation of modular devices with multiple cryptoprocessors |
CN111865568B (zh) * | 2019-04-29 | 2022-10-04 | 华控清交信息科技(北京)有限公司 | 面向数据传输的存证方法、传输方法及系统 |
US11507666B2 (en) | 2019-08-27 | 2022-11-22 | Red Hat, Inc. | Trusted execution environment verification of a software package |
US10997297B1 (en) * | 2019-12-06 | 2021-05-04 | Western Digital Technologies, Inc. | Validating firmware for data storage devices |
US20200127850A1 (en) * | 2019-12-20 | 2020-04-23 | Intel Corporation | Certifying a trusted platform module without privacy certification authority infrastructure |
US11909882B2 (en) * | 2020-01-30 | 2024-02-20 | Dell Products L.P. | Systems and methods to cryptographically verify an identity of an information handling system |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
US11604880B2 (en) | 2020-02-25 | 2023-03-14 | Dell Products L.P. | Systems and methods to cryptographically verify information handling system configuration |
US11558198B2 (en) * | 2020-04-07 | 2023-01-17 | Cisco Technology, Inc. | Real-time attestation of cryptoprocessors lacking timers and counters |
CN112995206B (zh) * | 2021-04-13 | 2021-07-30 | 北京电信易通信息技术股份有限公司 | 一种基于可信技术实现多型工作单元安全联动的方法 |
US11989282B2 (en) * | 2021-09-10 | 2024-05-21 | International Business Machines Corporation | Open-source container data management |
US20240036902A1 (en) * | 2022-07-26 | 2024-02-01 | Microsoft Technology Licensing, Llc | Accumulations of measurements for attestations |
CN116506134B (zh) * | 2023-06-28 | 2023-09-15 | 山东海量信息技术研究院 | 数字证书管理方法、装置、设备、系统及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060256108A1 (en) * | 2005-05-13 | 2006-11-16 | Scaralata Vincent R | Method and apparatus for remotely provisioning software-based security coprocessors |
US8176336B1 (en) * | 2008-12-19 | 2012-05-08 | Emc Corporation | Software trusted computing base |
US20140006776A1 (en) * | 2012-06-29 | 2014-01-02 | Mark Scott-Nash | Certification of a virtual trusted platform module |
US20140108784A1 (en) * | 2012-10-12 | 2014-04-17 | International Business Machines Corporation | Reducing noise in a shared media sesssion |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7587595B2 (en) * | 2005-05-13 | 2009-09-08 | Intel Corporation | Method and apparatus for providing software-based security coprocessors |
US9171161B2 (en) * | 2006-11-09 | 2015-10-27 | International Business Machines Corporation | Trusted device having virtualized registers |
JP5411122B2 (ja) * | 2008-02-25 | 2014-02-12 | パナソニック株式会社 | 情報処理装置 |
US8627414B1 (en) | 2009-08-04 | 2014-01-07 | Carnegie Mellon University | Methods and apparatuses for user-verifiable execution of security-sensitive code |
US20120246470A1 (en) * | 2010-02-16 | 2012-09-27 | Nicolson Kenneth Alexander | Information processing device, information processing system, software routine execution method, and remote attestation method |
CN103795717B (zh) * | 2014-01-23 | 2017-01-25 | 中国科学院计算技术研究所 | 一种云计算平台完整性证明方法及其系统 |
US10169591B2 (en) | 2015-12-07 | 2019-01-01 | Amazon Technologies, Inc. | Chained security systems |
-
2015
- 2015-12-07 US US14/960,553 patent/US10169591B2/en active Active
-
2016
- 2016-12-07 WO PCT/US2016/065351 patent/WO2017100303A1/en active Application Filing
- 2016-12-07 CN CN201680065061.3A patent/CN108351944B/zh active Active
- 2016-12-07 JP JP2018529648A patent/JP6591678B2/ja active Active
- 2016-12-07 CA CA3004189A patent/CA3004189C/en active Active
- 2016-12-07 EP EP16813211.6A patent/EP3387580B1/en active Active
- 2016-12-07 KR KR1020187013561A patent/KR102110273B1/ko active IP Right Grant
-
2019
- 2019-01-01 US US16/237,703 patent/US10621366B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060256108A1 (en) * | 2005-05-13 | 2006-11-16 | Scaralata Vincent R | Method and apparatus for remotely provisioning software-based security coprocessors |
US8176336B1 (en) * | 2008-12-19 | 2012-05-08 | Emc Corporation | Software trusted computing base |
US20140006776A1 (en) * | 2012-06-29 | 2014-01-02 | Mark Scott-Nash | Certification of a virtual trusted platform module |
US20140108784A1 (en) * | 2012-10-12 | 2014-04-17 | International Business Machines Corporation | Reducing noise in a shared media sesssion |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210063055A (ko) | 2019-11-22 | 2021-06-01 | 서강대학교산학협력단 | 신뢰 실행 환경을 이용한 분산 블록체인 오라클 시스템 및 상기 시스템에서의 외부 데이터 전달 방법 |
KR20210071394A (ko) | 2019-12-06 | 2021-06-16 | 서강대학교산학협력단 | 블록체인을 기반으로 한 센서 네트워크 시스템 및 상기 센서 네트워크 시스템에서의 동적 링크키 생성 방법 |
KR20220021576A (ko) | 2020-08-14 | 2022-02-22 | 서강대학교산학협력단 | 신뢰 실행 환경을 기반으로 한 탈중앙형 오라클 시스템 및 상기 시스템에서의 외부 데이터 전달 방법 |
WO2023149648A1 (ko) * | 2022-02-07 | 2023-08-10 | 삼성전자 주식회사 | 보안 기능을 제공하는 전자 장치 및 그의 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
CA3004189A1 (en) | 2017-06-15 |
US20190138736A1 (en) | 2019-05-09 |
EP3387580A1 (en) | 2018-10-17 |
JP6591678B2 (ja) | 2019-10-16 |
KR102110273B1 (ko) | 2020-05-13 |
JP2018537785A (ja) | 2018-12-20 |
CA3004189C (en) | 2020-12-29 |
EP3387580B1 (en) | 2020-03-04 |
WO2017100303A1 (en) | 2017-06-15 |
US20170161505A1 (en) | 2017-06-08 |
US10621366B2 (en) | 2020-04-14 |
US10169591B2 (en) | 2019-01-01 |
CN108351944A (zh) | 2018-07-31 |
CN108351944B (zh) | 2021-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102110273B1 (ko) | 체인 보안 시스템들 | |
US11228449B2 (en) | Secure interface for invoking privileged operations | |
US10409985B2 (en) | Trusted computing host | |
US11050844B2 (en) | User controlled hardware validation | |
US9792143B1 (en) | Platform secure execution modes | |
KR101704329B1 (ko) | 프리빌리지 컴퓨팅 작동의 결과 보호 | |
JP6165883B2 (ja) | 安全な仮想マシン移行 | |
EP2791817B1 (en) | Cryptographic certification of secure hosted execution environments | |
JP6022718B2 (ja) | 信頼されるプロバイダによるコンフィギュレーションおよび検証 | |
JP2016519827A (ja) | 安全な記憶装置を用いたホストリカバリ | |
US10691356B2 (en) | Operating a secure storage device | |
US11893410B2 (en) | Secure storage of workload attestation reports in a virtualized and clustered computer system | |
US10579405B1 (en) | Parallel virtual machine managers |
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 |