KR20150106935A - Privileged cryptographic services in a virtualized environment - Google Patents

Privileged cryptographic services in a virtualized environment Download PDF

Info

Publication number
KR20150106935A
KR20150106935A KR1020157021806A KR20157021806A KR20150106935A KR 20150106935 A KR20150106935 A KR 20150106935A KR 1020157021806 A KR1020157021806 A KR 1020157021806A KR 20157021806 A KR20157021806 A KR 20157021806A KR 20150106935 A KR20150106935 A KR 20150106935A
Authority
KR
South Korea
Prior art keywords
hypervisor
key
privileged
service
computing
Prior art date
Application number
KR1020157021806A
Other languages
Korean (ko)
Other versions
KR101696131B1 (en
Inventor
그레고리 브랜체크 로스
나치케스 라오 포트라팔리
Original Assignee
아마존 테크놀로지스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US13/746,924 priority Critical
Priority to US13/746,924 priority patent/US9037854B2/en
Application filed by 아마존 테크놀로지스, 인크. filed Critical 아마존 테크놀로지스, 인크.
Priority to PCT/US2014/012600 priority patent/WO2014116740A2/en
Publication of KR20150106935A publication Critical patent/KR20150106935A/en
Application granted granted Critical
Publication of KR101696131B1 publication Critical patent/KR101696131B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Abstract

특권 암호화 서비스, 가령, 시스템 관리 모드(SMM)에서 실행 중인 서비스가 기재된다. 상기 특권 서비스는 멀티테넌트 원격 프로그램 실행 환경에서 암호 키 및/또는 또 다른 보안 자원을 저장 및 관리하도록 동작 가능하다. 특권 서비스는 암호 키를 이용하기 위한 요청을 수신하고 이들 요청에 대한 응답을 발행할 수 있다. 덧붙여, 특권 서비스는 하이퍼바이저의 조작의 증거를 검출하기 위해, 런타임 동안 (가령, 주기적으로 또는 요청에 응답하여) 하이퍼바이저를 측정할 수 있다. 특권 서비스가 하이퍼바이저보다 더 특권 있는 시스템 관리 모드에서 동작 중이기 때문에, 상기 특권 서비스는 가상 머신 탈출 및 그 밖의 다른 하이퍼바이저 공격에 대해 강건할 수 있다. A privileged cryptographic service, for example, a service running in a system management mode (SMM) is described. The privileged service is operable to store and manage cryptographic keys and / or other security resources in a multi-tenant remote program execution environment. The privileged service may receive a request to use the cryptographic key and issue a response to those requests. In addition, a privileged service may measure the hypervisor during runtime (e.g., periodically or in response to a request) to detect evidence of manipulation of the hypervisor. Because the privileged service is operating in a more privileged system management mode than the hypervisor, the privileged service can be robust against virtual machine escape and other hypervisor attacks.

Description

가상화 환경에서의 특권 암호화 서비스{PRIVILEGED CRYPTOGRAPHIC SERVICES IN A VIRTUALIZED ENVIRONMENT}PRIVILEGED CRYPTOGRAPHIC SERVICES IN A VIRTUALIZED ENVIRONMENT In a virtualized environment,
네트워크, 가령, 인터넷에서 점점 증가하는 개수의 애플리케이션 및 서비스가 이용 가능해짐에 따라, 증가하는 개수의 콘텐츠, 애플리케이션 및/또는 서비스 제공자가 클라우드 컴퓨팅 같은 기법에 의존하고 있다. 일반적으로 클라우드 컴퓨팅은 서비스, 가령, 웹 서비스를 통해 전자 자원에 액세스를 제공하기 위한 방식이며, 여기서, 이들 서비스를 지원하기 위해 사용되는 하드웨어 및/또는 소프트웨어가 임의의 특정한 때에 서비스의 수요를 충족하기 위해 동적으로 확장 가능하다. 일반적으로 사용자 또는 고객은 클라우드를 통해 자원을 대여, 임대 또는 그 밖의 다른 방식으로 지원의 액세스를 위해 지불할 것이며, 따라서 필요한 하드웨어 및/또는 소프트웨어를 구매 및 유지할 필요가 없다. As an increasing number of applications and services become available on the network, for example the Internet, an increasing number of content, applications and / or service providers rely on techniques such as cloud computing. In general, cloud computing is a way to provide access to electronic resources through services, such as web services, where the hardware and / or software used to support those services meet the needs of the service at any particular time It is dynamically extensible to. In general, a user or a customer will pay for access to the support through the cloud by leasing, leasing or otherwise accessing the resource, and thus need not purchase and maintain the necessary hardware and / or software.
이러한 맥락에서, 많은 클라우드 컴퓨팅 제공자가 가상화 및 멀티-테넌트 아키텍처를 이용하여 복수의 사용자가 기저 하드웨어 및/또는 소프트웨어 자원을 공유할 수 있게 한다. 가상화에 의해 컴퓨팅 서버, 저장 장치 또는 또 다른 자원이 특정 사용자와 연관되는(가령, 사용자에 의해 소유되는) 복수의 고립된 인스턴스들로 분할될 수 있다. 이로써 다양한 사용자가 클라우드 컴퓨팅 제공자의 자원을 이용해 자신의 애플리케이션을 원격으로 실행할 수 있다.In this context, many cloud computing providers utilize virtualization and multi-tenant architectures to enable multiple users to share underlying hardware and / or software resources. By virtualization, a computing server, storage device, or other resource can be partitioned into a plurality of isolated instances associated with a particular user (e.g., owned by a user). This allows various users to remotely execute their applications using the resources of the cloud computing provider.
본 발명에 따르는 다양한 실시예가 다음의 도면을 참조하여 기재될 것이다.
도 1은 다양한 실시예에 따라, 암호 키 정보를 관리하는 특권 서비스의 하나의 예시를 도시한다.
도 2는 다양한 실시예에 따라, 신뢰 플랫폼 모듈(TPM)을 이용하는 특권 서비스 구현예의 하나의 예시를 도시한다.
도 3은 다양한 실시예에 따라, 호스트 컴퓨팅 장치 상에 특권 암호화 서비스를 제공하기 위한 예시적 프로세스를 도시한다.
도 4는 다양한 실시예에 따라, 하이퍼바이저를 측정하고 조작의 증거를 검출하기 위해 TPM을 이용하는 특권 서비스에 의해 수행될 수 있는 프로세스의 하나의 예시를 도시한다.
도 5는 다양한 실시예에 따라 사용될 수 있는 예시적 컴퓨팅 장치의 일반적인 컴포넌트의 세트의 논리적 배열을 도시한다.
도 6은 다양한 실시예에 따르는 양태를 구현하기 위한 환경의 하나의 예시를 도시한다.
Various embodiments according to the present invention will be described with reference to the following drawings.
1 illustrates one example of a privileged service for managing cryptographic key information, according to various embodiments.
Figure 2 illustrates one example of a privileged service implementation using Trusted Platform Module (TPM), in accordance with various embodiments.
3 illustrates an exemplary process for providing a privileged cryptographic service on a host computing device, in accordance with various embodiments.
Figure 4 illustrates one example of a process that may be performed by a privileged service that uses the TPM to measure the hypervisor and to detect evidence of manipulation, in accordance with various embodiments.
Figure 5 illustrates a logical arrangement of a set of common components of an exemplary computing device that may be used in accordance with various embodiments.
Figure 6 illustrates one example of an environment for implementing aspects in accordance with various embodiments.
이하의 기재에서 첨부된 도면의 다양한 실시예가 한정이 아닌 예시로서 설명될 것이다. 본 명세서의 다양한 실시예에 대한 참조는 반드시 동일한 실시예에 대한 것이 아니며 이러한 참조는 적어도 하나를 의미한다. 특정 구현예 및 그 밖의 다른 상세사항이 언급되지만, 단지 설명 목적으로만 이뤄짐이 이해되어야 한다. 해당 분야의 통상의 기술자는 특허청구범위의 사상 및 범위 내에서 그 밖의 다른 구성요소 및 구성이 사용될 수 있음을 알 것이다.Various embodiments of the accompanying drawings in the following description will be described by way of example and not by way of limitation. References to various embodiments herein are not necessarily to the same embodiment, and such references are intended to mean at least one. While specific embodiments and other details are set forth, it should be understood that this is done for illustrative purposes only. Those of ordinary skill in the art will recognize that other components and configurations may be used within the spirit and scope of the claims.
본 발명의 다양한 실시예에 따르는 시스템 및 방법이 가령, 가상화 컴퓨팅 환경에서 배치될 수 있는 컴퓨팅 시스템에서 보안을 관리하기 위한 종래의 방식에서 겪는 앞서 언급된 또는 그 밖의 다른 결함 중 하나 이상을 극복할 수 있다. 특히, 다양한 실시예는 특권 암호화 서비스(privileged cryptographic service), 가령, 시스템 관리 모드(SMM)로 실행 중인 서비스를 이용해, 암호 키 및/또는 멀티테넌트 원격 프로그램 실행 환경(가령, 클라우드 컴퓨팅 환경)에서의 그 밖의 다른 보안 자원을 저장 및 관리할 수 있다.Systems and methods in accordance with various embodiments of the present invention can overcome one or more of the aforementioned or other deficiencies encountered in a conventional manner for managing security, for example, in a computing system that may be deployed in a virtualized computing environment have. In particular, various embodiments may utilize a privileged cryptographic service, e.g., a service running in a system management mode (SMM), to provide services in a cryptographic key and / or multi-tenant remote program execution environment (e.g., a cloud computing environment) Other security resources can be stored and managed.
다양한 실시예에서, 서비스 제공자에 의해 하나 이상의 고객에게 멀티테넌트 원격 프로그램 실행 환경이 제공된다. 상기 환경은 복수의 호스트 컴퓨팅 장치를 포함할 수 있고, 여기서 각각의 호스트 컴퓨팅 장치는 하나 이상의 가상 머신을 관리하는 하이퍼바이저(hypervisor)를 포함한다. 각각의 가상 머신은 서비스 제공자의 특정 고객과 연관(가령, 고객에 의해 소유)될 수 있고 가상 머신이 서비스 제공자의 물리적 자원을 이용하는 고객을 대신하여 고객에 의해 제공되는 코드(가령, 애플리케이션, 서비스 등)를 실행할 수 있다.In various embodiments, a multi-tenant remote program execution environment is provided to one or more customers by a service provider. The environment may comprise a plurality of host computing devices, where each host computing device includes a hypervisor that manages one or more virtual machines. Each virtual machine may be associated with a particular customer of the service provider (e.g., owned by the customer) and the virtual machine may be provided with code (e.g., application, service, etc.) provided by the customer on behalf of the customer utilizing the physical resources of the service provider ).
종래의 멀티테넌트 원격 프로그램 실행 환경에서, 고객의 코드가 가상 머신의 환경을 빠져 나오고 하이퍼바이저의 맥락 내에서 동작할 수 있는 경우, 상기 코드는 호스트 컴퓨팅 장치 상에 있는 일부 고도로 민감한 정보 및 그 밖의 다른 자원으로의 액세스를 획득할 수 있다. 이러한 잠재적인 취약점은 종종 가상 머신 탈출(virtual machine escape)이라고 지칭된다. 예를 들어, 한 고객의 코드가 하이퍼바이저의 맥락 내에서 동작할 수 있는 경우, 코드는 또 다른 고객의 암호 키 및 그 밖의 다른 보안 정보로의 액세스를 획득하고, 이들 키를 또 다른 위치로 빼내며, 그 밖의 다른 많은 악의적 동작을 수행할 가능성이 있다.In a conventional multi-tenant remote program execution environment, if the customer's code exits the environment of the virtual machine and is able to operate within the context of the hypervisor, the code may include some highly sensitive information on the host computing device and other Access to the resource can be obtained. These potential vulnerabilities are often referred to as virtual machine escapes. For example, if a customer's code can operate within the context of a hypervisor, the code can gain access to another customer's encryption key and other security information, pull these keys to another location And there is a possibility to perform many other malicious actions.
다양한 실시예에서, 이러한 권한 없는 동작으로의 노출을 방지하거나 감소시키기 위해, 각각의 호스트 컴퓨팅 장치는 호스트 컴퓨팅 장치 상의 하이퍼바이저 및/또는 그 밖의 다른 운영 체제보다 더 특권을 갖는 시스템 관리 모드(SMM) 또는 그 밖의 다른 일부 모드에서 실행될 수 있는 또는 하이퍼바이저가 액세스할 수 없는 메모리의 적어도 일부분에 대한 액세스 권한을 갖는 특권 서비스(privileged service)를 포함한다. 예를 들어, 특권 서비스는 하이퍼바이저, 가상 머신 또는 그 밖의 다른 운영 체제에 의한 모든 정규 실행이 유예되고 특권 서비스가 실행되는 시스템 관리 모드에서 동작할 수 있다. 상기 특권 서비스는 하나 이상의 암호 키를 저장하고 관리할 수 있으며, 하이퍼바이저, 하나 이상의 가상 머신 및/또는 그 밖의 다른 개체로부터의 암호 키를 이용하기 위한 요청을 수신할 수 있고, 이들 요청에 대한 응답을 발행할 수 있다. 덧붙여, 특권 서비스는 하이퍼바이저 조작의 증거를 검출하기 위해 런타임(runtime) 중에(가령, 주기적으로 또는 요청에 응답하여) 하이퍼바이저를 측정할 수 있다. 특권 서비스가 하이퍼바이저보다 더 특권 있는 시스템 관리 모드에서 동작 중이기 때문에, 상기 특권 서비스는 가상 머신 탈출 및 그 밖의 다른 하이퍼바이저 공격에 대해 강건(robust)할 수 있다. 이러한 방식 하에서, 오염된 하이퍼바이저가 특권 서비스에 의해 관리되는 암호 키를 빼낼 수 없을 것이다. 덧붙여, 하이퍼바이저가 조작됐음이 검출되면, 키를 이용하지 못하게 막아지거나 그 밖의 다른 일부 동작이 수행, 가령, 모든 특권 서비스에 의해 저장되는 키 재료(key material)가 파괴될 수 있다. In various embodiments, each host computing device may have a system management mode (SMM) that has more privileges than the hypervisor and / or other operating systems on the host computing device, to prevent or reduce exposure to this unauthorized operation. Or some other mode, or privileged service having access to at least a portion of the memory that the hypervisor can not access. For example, a privileged service may operate in a system management mode in which all regular execution by the hypervisor, virtual machine, or other operating system is suspended and the privileged service is executed. The privileged service may store and manage one or more cryptographic keys and may receive a request to use a cryptographic key from a hypervisor, one or more virtual machines and / or other entities, Can be issued. In addition, the privileged service may measure the hypervisor during runtime (e.g., periodically or in response to a request) to detect evidence of the hypervisor operation. Because the privileged service is operating in a more privileged system management mode than the hypervisor, the privileged service may be robust against virtual machine escape and other hypervisor attacks. Under this scheme, the contaminated hypervisor will not be able to derive the cryptographic key managed by the privileged service. In addition, if it is detected that the hypervisor has been tampered with, the key may be prevented from being used or some other operation may be performed, for example, the key material stored by all the privileged services may be destroyed.
일부 실시예에서, 호스트 컴퓨팅 장치 상의 신뢰 플랫폼 모듈(TPM: trusted platform module) 또는 그 밖의 다른 암호화 프로세서를 관리하기 위해 특권 서비스가 사용될 수 있다. 이들 실시예에서, TPM은 루트 키(root key)를 관리하고 SMM에서 실행 중인 특권 서비스만 추출 키(derived key)에 액세스할 수 있게 할 수 있다. 실제로 상기 SMM은 키의 사용을 하이퍼바이저 및 가상 머신에 제공할 수 있다. 하나의 실시예에서, 호스트 컴퓨팅 장치의 초기 부팅 동안, 신뢰되는 하이퍼바이저가 런칭됐음을 보장하기 위해, 특권 서비스가 하이퍼바이저의 하나 이상의 값을 측정할 수 있다. 그 후 런타임 중에, 시스템 관리 인터럽트(SMI: system management interrupt) 루틴이 사용되어 하이퍼바이저를 재측정하고 런타임 측정치를 부팅 시에 측정된 초기 값에 비교하여, 조작의 증거를 검출할 수 있다. In some embodiments, a privileged service may be used to manage a trusted platform module (TPM) or other cryptographic processor on the host computing device. In these embodiments, the TPM can manage the root key and allow only privileged services running in the SMM to access the derived key. Indeed, the SMM may provide the use of a key to the hypervisor and the virtual machine. In one embodiment, during an initial boot of the host computing device, a privileged service may measure one or more values of the hypervisor to ensure that a trusted hypervisor has been launched. During runtime, a system management interrupt (SMI) routine may then be used to re-measure the hypervisor and compare the run-time measurements to the initial values measured at boot time to detect evidence of operation.
일부 실시예에서, SMI 핸들러에 의해 관리되고 하이퍼바이저에 의해 액세스될 수 없는 키(key)와 함께 가상 TPM 서비스를 가상 머신으로 제공하기 위해 특권 서비스가 사용될 수 있다. 신뢰 되는 키가 물리적 TPM에 심어져서, 키가 SMI 핸들러로만 전달됐음을 보장함으로써 가상 TPM 서비스를 복수의 고객에게 제공하는 복수의 하이퍼바이저를 포함하는 시스템 내 하이퍼바이저의 오염에 대해 보호할 수 있다. 이러한 방식으로 임의의 가상 머신 탈출은 한 고객의 암호 키를 다른 고객에게 노출하지 않을 것이다. In some embodiments, a privileged service may be used to provide a virtual TPM service to the virtual machine with a key that is managed by the SMI handler and can not be accessed by the hypervisor. The trusted key can be embedded in the physical TPM to protect against contamination of the hypervisor in the system including a plurality of hypervisors that provide the virtual TPM service to a plurality of customers by ensuring that the key is only delivered to the SMI handler. In this way any virtual machine escape will not expose a customer's encryption key to other customers.
도 1은 다양한 실시예에 따라 암호 키 정보를 관리하는 특권 서비스의 예시(100)를 도시한다. 도시된 실시예에서, 호스트 컴퓨팅 장치(104)는 각각의 가상 머신이 고객(101, 102)과 연관되는 하나 이상의 가상 머신(105, 106)을 관리하는 하이퍼바이저(107)를 포함한다. 하나 이상의 가상 머신(105, 106)은 하나 이상의 고객(101, 102)에 의해 제공되는 코드(111, 112)를 실행시킬 수 있다. 고객은 가상 머신 상에서 실행될 코드를 네트워크(103), 가령, 인터넷을 통해 제공할 수 있다. 안전한 암호화 서비스를 제공하기 위해, 호스트 컴퓨팅 장치(104)는 특권 서비스(108)를 더 포함한다. Figure 1 illustrates an example of a privileged service (100) for managing cryptographic key information in accordance with various embodiments. In the illustrated embodiment, the host computing device 104 includes a hypervisor 107 that manages one or more virtual machines 105, 106, each virtual machine associated with a customer 101, 102. One or more virtual machines 105, 106 may execute code 111, 112 provided by one or more customers 101, 102. The customer can provide the code to be executed on the virtual machine via the network 103, for example, the Internet. To provide a secure cryptographic service, the host computing device 104 further includes a privileged service 108.
하나의 실시예에 따라, 특권 암호화 서비스(108)가 시스템 관리 모드(SMM) 또는 하이퍼바이저(107) 또는 또 다른 운영 체제보다 더 특권을 갖는 그 밖의 다른 모드로 호스트 컴퓨팅 장치(101) 상에서 실행 중이다. 하나의 실시예에서, SMM은 하이퍼바이저, 가상 머신 또는 그 밖의 다른 운영 체제에 의한 모든 정규 실행이 유예되고 특권 서비스가 실행되는 동작 모드이다. 하이퍼바이저, 가상 머신(VM) 또는 호스트 컴퓨팅 장치 상에서 실행 중인 그 밖의 다른 소프트웨어 코드에 의해 호출될 수 있는 시스템 관리 인터럽트(SMI)에 의해 SMM이 트리거될 수 있다. 본 명세서에 기재된 다양한 실시예는 SMM 또는 SMI 구현예에 한정되지 않으며 그 밖의 다른 임의의 동작 모드가 해당 분야의 통상의 기술자에게 자명할 바와 같이 가능하다. 예를 들어, 또 다른 구현예에서, 특권 서비스가 하이퍼바이저가 액세스 권한을 갖지 않는 메모리의 일부분으로의 액세스 권한을 가질 수 있다. 이는 특권 서비스에 배타적으로, 하나 이상의 범위 레지스터(range register)를 이용해 분할된(partition) 메인 메모리의 특정 부분을 특화시킴으로써 구현될 수 있다. 대안적으로, 특권 서비스는 하나 이상의 코-프로세서(co-processor) 내부의 메모리, 하나 이상의 모드에 특화된 레지스터, 또는 특정 암호 키 레지스터로의 배타적 액세스를 제공 받을 수 있다. According to one embodiment, the privileged cryptographic service 108 is running on the host computing device 101 in a system management mode (SMM) or other mode with more privileges than the hypervisor 107 or another operating system . In one embodiment, the SMM is an operating mode in which all regular execution by the hypervisor, virtual machine, or other operating system is deferred and the privileged service is executed. The SMM may be triggered by a system management interrupt (SMI) that may be invoked by a hypervisor, a virtual machine (VM), or any other software code executing on the host computing device. The various embodiments described herein are not limited to SMM or SMI implementations and any other mode of operation is possible as would be apparent to one of ordinary skill in the art. For example, in another implementation, a privileged service may have access to a portion of memory where the hypervisor does not have access rights. It can be implemented exclusively for privileged services by specializing a particular part of the main memory partition using one or more range registers. Alternatively, the privileged service may be provided with exclusive access to memory within one or more co-processors, one or more mode-specific registers, or a specific cryptographic key register.
하나의 실시예에 따라, 특권 서비스(108)는 스스로 인증하고 하나 이상의 암호 키(109, 110) 및/또는 그 밖의 다른 보안 자원을 저장한다. 하나 이상의 키(109, 110)가 하이퍼바이저(107), 하나 이상의 가상 머신(105, 106) 및/또는 외부 컴퓨팅 장치로부터 수신될 수 있다. 일부 실시예에서, 가상 머신(105, 106) 중 하나에 의해 암호 키(109, 110)가 생성될 수 있다. 각각의 키가 특정 고객(101, 102)에 의해 소유되거나 및/또는 특정 가상 머신(105, 106)과 연관될 수 있다. 예를 들어, 키(110)가 가상 머신(111)과 연관되는 동안 키(109)는 가상 머신(105)과 연관될 수 있다. According to one embodiment, the privileged service 108 authenticates itself and stores one or more cryptographic keys 109, 110 and / or other security resources. One or more keys 109 and 110 may be received from the hypervisor 107, one or more virtual machines 105 and 106, and / or an external computing device. In some embodiments, cryptographic keys 109 and 110 may be generated by one of the virtual machines 105 and 106. Each key may be owned by a particular customer 101, 102 and / or associated with a particular virtual machine 105, 106. For example, key 109 may be associated with virtual machine 105 while key 110 is associated with virtual machine 111.
하나의 실시예에 따르면, SMM에서 실행 중인 특권 서비스(108)가 또한 하이퍼바이저(107) 및/또는 가상 머신(105, 106)과 통신하고 특권 서비스가 저장하는 암호 키(109, 110)를 이용하기 위한 요청을 수신하도록 기능한다. 하나의 실시예에서, 시스템 관리 인터럽트 핸들러 루틴을 이용해 특권 서비스(108)가 호출된다. 예를 들어, 하이퍼바이저(107)로 하여금 특권 서비스(108)가 암호 키(109)를 이용하도록 요청하기 위해 SMI를 호출하게 하는 가상 머신(105)에서 실행 중인 컴포넌트에 의해 요청이 개시될 수 있다. 다양한 실시예에서, 요청은 암호 키의 이용을 요구하는 임의의 요청, 비제한적 예를 들면, 키를 이용해 하나 이상의 계산이 수행되기 위한 요청 또는 키를 이용해 암호화 또는 서명된 하나 이상의 메시지를 송신하기 위한 요청일 수 있다. According to one embodiment, the privileged service 108 running in the SMM also communicates with the hypervisor 107 and / or the virtual machines 105 and 106 and uses the cryptographic keys 109 and 110 stored by the privileged service Lt; / RTI > In one embodiment, the privileged service 108 is invoked using the system management interrupt handler routine. For example, a request may be initiated by a component running in the virtual machine 105 that causes the hypervisor 107 to invoke the SMI to request the privileged service 108 to use the cryptographic key 109 . In various embodiments, the request may include any request that requires the use of a cryptographic key, a non-restrictive request to send one or more messages encrypted or signed using a key or a request to perform one or more computations using the key Request.
일부 실시예에서, 특권 서비스(108)는 요청에 응답하여 응답을 생성할 수 있으며, 이때 상기 응답은 서비스가 저장하는 암호 키를 적어도 부분적으로 기초로 한다. 일부 실시예에서, 요청의 일부로서, 상기 특권 서비스(108)는 또한 특정 키를 이용하도록 가상 머신을 인가하는 증명(proof)(가령, 인가 정보)을 수신할 수 있다. 상기 증명은 고객으로부터 하이퍼바이저 또는 상기 하이퍼바이저 상에서 실행 중인 가상 머신에 의해 수신될 수 있다. 상기 증명은 또한 하이퍼바이저 상에서 실행 중인 가상 머신에서 생성될 수 있다. In some embodiments, the privileged service 108 may generate a response in response to a request, wherein the response is based at least in part on the cryptographic key stored by the service. In some embodiments, as part of the request, the privileged service 108 may also receive a proof (e.g., authorization information) authorizing the virtual machine to use a particular key. The proof may be received by a hypervisor or by a virtual machine running on the hypervisor from a customer. The proof may also be generated in a virtual machine running on the hypervisor.
다양한 실시예에서, 특권 서비스(108)는 하이퍼바이저보다 더 특권 있는 모드에서 동작하기 때문에, 가상 머신 탈출 및/또는 하이퍼바이저 조작의 경우, 상기 하이퍼바이저는 특권 서비스에 의해 저장되는 키의 계정-교차 사용(cross-account use)이 막아질 수 있다. In various embodiments, since the privileged service 108 operates in a more privileged mode than the hypervisor, in the case of a virtual machine exit and / or hypervisor operation, Cross-account use can be prevented.
도 2는 다양한 실시예에 따라, 신뢰 플랫폼 모듈(TPM)을 이용하는 특권 서비스 구현예의 예시(200)를 도시한다. 도시된 실시예에서, 호스트 컴퓨팅 장치(201)는 하나 이상의 범용 프로세서(208) 및 신뢰 플랫폼 모듈(207)을 포함한다. 상기 호스트 컴퓨팅 장치는 하이퍼바이저(204), 하나 이상의 프로세서로의 직접 액세스 권한을 갖는 특권 도메인(privileged domain)(가령, DOM-0(202)), 및 장치의 하나 이상의 프로세서에 대한 가상 액세스 권한을 갖고 고객이 제공한 코드를 실행시키는 하나 이상의 비특권 도메인(가령, DOM-U(203))을 더 포함한다. Figure 2 illustrates an example 200 of a privileged service implementation using a Trusted Platform Module (TPM), in accordance with various embodiments. In the illustrated embodiment, the host computing device 201 includes one or more general purpose processors 208 and a trusted platform module 207. The host computing device includes a hypervisor 204, a privileged domain having direct access to one or more processors (e.g., DOM-0 202), and a virtual access right to one or more processors of the device (E.g., DOM-U 203) that executes the code provided by the customer.
다양한 실시예에서, 신뢰 플랫폼 모듈(TPM)(207)은 정보를 보호하는 암호 키(206)를 저장할 수 있는 임의의 보안 암호화 프로세서일 수 있다. 상기 특권 서비스(205)는 하이퍼바이저(204)의 부팅 시 측정뿐 아니라 실행 중인 하이퍼바이저(204)의 동적 재-측정까지 가능하게 한다. 하나의 실시예에서, 부팅 동안, SMM 메모리가 TPM(207)과 대화하도록 배타적으로 인가될 수 있도록, 시스템 관리 모드에서 실행 중인 특권 서비스(205)는 TPM(207)의 소유권(ownership)을 취할 수 있다. 이는 SMM에서 실행 중인 특권 암호화 서비스(205)에게 부팅 사이에 키(206)를 영속시키고 원격 소프트웨어에 대해 자신을 인증할 수 있는 능력을 제공할 수 있다. TPM(207)은 루트 키를 관리하고 SMM에서 실행 중인 특권 서비스(205)만 추출 키를 액세스할 수 있게 한다. 이 실시예에서, 상기 특권 서비스는 하이퍼바이저 및 가상 머신으로 키의 사용을 제공할 수 있다. In various embodiments, Trusted Platform Module (TPM) 207 may be any secure encryption processor capable of storing an encryption key 206 to protect the information. The privileged service 205 enables a dynamic re-measurement of the running hypervisor 204 as well as a boot-time measurement of the hypervisor 204. In one embodiment, the privileged service 205 running in system management mode may take ownership of the TPM 207, such that during boot, the SMM memory may be exclusively authorized to talk to the TPM 207 have. This may provide the privilege cryptographic service 205 running in the SMM with the ability to persist the key 206 between boot and authenticate itself to the remote software. The TPM 207 manages the root key and allows only the privileged service 205 running in the SMM to access the extract key. In this embodiment, the privileged service may provide the use of a key to the hypervisor and the virtual machine.
다양한 실시예에서, SMM에서 실행 중인 상기 특권 서비스(205)는 주기적으로 또는 특권 서비스(205)가 관리하는 암호 키를 이용하기 위한 하이퍼바이저로부터의 요청의 수신에 응답하여 실행 중인 하이퍼바이저를 측정할 수 있다. 예를 들어, 부팅 시에, 특권 서비스(205)(또는 또 다른 컴포넌트)가 사용되어 하이퍼바이저(207)와 연관된 하나 이상의 값을 측정하고 유효한 하이퍼바이저가 로딩됨을 보장할 수 있다. 예를 들어, 하나 이상의 값을 측정하기 위해, 상기 특권 서비스(205)는 하이퍼바이저(207)의 코드를 담고 있는 메모리 내 하나 이상의 위치(location)를 읽고 상기 위치에 담긴 값을 해시 처리(hash)할 수 있다. 그 후 해시 값이 저장되고 차후 하이퍼바이저(207)의 코드가 어떠한 식으로도 변경됐었는지 여부를 체크할 수 있다. 또 다른 실시예에서, 값 자체를 측정하는 대신, 또 다른 개체, 가령, BIOS(Basic Input/Output System)에 의해 특권 서비스에 해시 값이 제공될 수 있다. 예를 들어, (가령, SMM에서 동작하기 위해) 특권 서비스(205)를 프로비저닝(provision)할 때, 상기 BIOS는 하이퍼바이저 코드에 대한 해시 값을 특권 서비스로 제공할 수 있다.In various embodiments, the privileged service 205 executing in the SMM periodically or in response to receipt of a request from the hypervisor to use the cryptographic key managed by the privileged service 205 measures the hypervisor being executed . For example, at boot time, the privileged service 205 (or another component) may be used to measure one or more values associated with the hypervisor 207 and ensure that a valid hypervisor is loaded. For example, to measure one or more values, the privileged service 205 reads one or more locations in the memory containing the code of the hypervisor 207, hash the values contained in the location, can do. It is then possible to check whether the hash value is stored and the code of the hypervisor 207 is changed in any way. In another embodiment, instead of measuring the value itself, a hash value may be provided to the privileged service by another entity, for example, Basic Input / Output System (BIOS). For example, when provisioning the privileged service 205 (e.g., to operate in the SMM), the BIOS may provide a hash value for the hypervisor code as a privileged service.
결과적으로, 런타임 동안 하나 이상의 값이 재-측정되어 하이퍼바이저(207)의 임의의 조작을 검출할 수 있다. 예를 들어, 런타임 동안 획득된 값이 초기 값과 일치하지 않는 경우, 상기 특권 서비스(205)는 하이퍼바이저(207)가 오염됐다고 결정하고 적절한 교정 동작을 취할 수 있다. 예를 들어, 상기 특권 서비스는 하이퍼바이저가 상기 특권 서비스에 의해 저장된 임의의 키를 이용하지 못하게 하거나 하이퍼바이저를 전적으로 유예시킬 수 있다. 또는, 상기 특권 서비스는 조작의 증거의 검출에 응답하여, 저장된 모든 키 재료를 파괴할 수 있다. 또 다른 예시로서, 상기 특권 서비스는 외부 서비스 또는 개체에게 상기 하이퍼바이저가 오염될 수 있다는 지시자를 통지할 수 있다. 일부 실시예에서, 상기 특권 서비스(205)는 가상 TPM 서비스를 가상 머신으로 제공하도록 사용될 수 있으며, 이때 가상 TPM과 연관된 키가 특권 서비스(가령, SMI 핸들러)에 의해 관리되고 하이퍼바이저에 의해 액세스 가능하지 않는다. 따라서 하이퍼바이저가 키로의 액세스 권한을 갖지 않으면서, 가상 머신이 SMI 핸들러를 이용해 키를 이용하기 위한 요청을 제출할 수 있다. 하나의 실시예에서, 신뢰 키가 물리적 TPM(207)에 심어져서 상기 키가 SMI 핸들러에게만 전달됐음을 보장할 수 있다. 이는 가상 TPM 서비스를 복수의 고객에게 제공하는 하이퍼바이저의 멀티테넌트 환경을 포함하는 시스템 내 하이퍼바이저의 오염에 대해 보호하여, 가상 머신 탈출이 고객 키를 노출하지 않게 할 것이다.As a result, one or more values may be re-measured during runtime to detect any manipulation of the hypervisor 207. For example, if the value obtained during runtime does not match the initial value, the privileged service 205 may determine that the hypervisor 207 is corrupted and may take appropriate corrective action. For example, the privileged service may prevent the hypervisor from using any key stored by the privileged service, or may entirely defer the hypervisor. Alternatively, the privileged service may destroy all stored key material in response to detection of evidence of manipulation. As another example, the privileged service may notify an external service or entity of an indication that the hypervisor may be corrupted. In some embodiments, the privileged service 205 may be used to provide a virtual TPM service to a virtual machine, wherein the key associated with the virtual TPM is managed by a privileged service (e.g., an SMI handler) I never do that. Thus, the virtual machine can submit a request to use the key using the SMI handler, without the hypervisor having access to the key. In one embodiment, a trust key may be embedded in the physical TPM 207 to ensure that the key is only delivered to the SMI handler. This will protect against contamination of the hypervisor in the system, including the hypervisor's multi-tenant environment, which provides the virtual TPM service to multiple customers, so that the virtual machine escape will not expose the customer key.
도 2가 하이퍼바이저, DOM-0 및 적어도 하나의 DOM-U을 이용하는 하나의 구현예를 도시하지만, 이 특정 구현예가 본 명세서에 기재된 모든 실시예로 한정되려는 의도는 아니다. 대안적 실시예에서, 하이퍼바이저라는 용어는 다양한 다른 구현예를 포함할 수 있는데, 가령, 가상 머신 관리자 또는 그 밖의 다른 가상화 기법을 포함할 수 있다. 예를 들어, 대안적 구현예에서, 하이퍼바이저는 DOM-0의 기능부를 포함하고 별도의 특권 도메인, 가령, DOM-0를 이용하지 않는다. 덧붙여, 다양한 실시예의 범위 내에서 유형 1 하이퍼바이저 또는 유형 2 하이퍼바이저가 사용될 수 있다. 종래 기술에 알려진 바와 같이, 유형 1 하이퍼바이저(가령, 베어 메탈(bare metal))는 호스트 컴퓨터의 하드웨어 상에서 직접 실행되어 하드웨어를 제어하고 하나 이상의 게스트 운영 체제를 관리할 수 있다. 유형 1 구성에서, 게스트 운영 체제는 하이퍼바이저 위 또 다른 레벨에서 실행된다. 유형 2(가령, 호스팅된) 하이퍼바이저는 종래의 운영 체제 환경 내에서 실행된다. 개별 제 2 소프트웨어 레벨로서의 하이퍼바이저 레이어에 의해, 게스트 운영 체제가 하드웨어 위의 제 3 레벨에서 실행된다. 다양한 실시예에서, 어느 유형의 하이퍼바이저라도 본 발명의 범위 내에서 사용될 수 있다. Although Figure 2 illustrates one implementation using the hypervisor, DOM-0 and at least one DOM-U, this particular implementation is not intended to be limited to all embodiments described herein. In an alternative embodiment, the term hypervisor may include various other implementations, for example, a virtual machine manager or other virtualization techniques. For example, in an alternative implementation, the hypervisor includes the functionality of DOM-0 and does not use a separate privilege domain, such as DOM-0. In addition, a Type 1 hypervisor or a Type 2 hypervisor may be used within the scope of various embodiments. As is known in the art, a type 1 hypervisor (e.g., bare metal) can be directly executed on the hardware of the host computer to control the hardware and manage one or more guest operating systems. In a type 1 configuration, the guest operating system runs at another level above the hypervisor. Type 2 (e.g., hosted) hypervisors run within conventional operating system environments. By the hypervisor layer as the individual second software level, the guest operating system is executed at the third level on the hardware. In various embodiments, any type of hypervisor may be used within the scope of the present invention.
마찬가지로, 도 2가 신뢰 플랫폼 모듈 구현예를 도시하지만, 이는 본 명세서에 기재되는 모든 실시예로 한정되려는 의도가 역시 아니다. 대안적 실시예에서, 특권 암호화 서비스가 그 밖의 다른 유형의 암호화 프로세서와 함께 사용될 수 있다. 덧붙여, 일부 실시예에서, 특권 암호화 서비스가 가상 머신의 코드를 실행시키도록 동작 가능하지 않은 머신 상에서 임의의 코-프로세서, 비제한적 예를 들면, 원격 관리 카드, 베이스보드 관리 제어기(BMC), 관리 엔진(manageability engine) 등과 함께 사용될 수 있다. 이들 실시예에서, 이러한 코-프로세서의 펌웨어가 특권 암호화 서비스를 구현하는 펌웨어로 대체될 수 있다. 상기 프로세서는 암호 키 및 그 밖의 다른 정보를 수신하기 위해 특정하게 요청하는 것이 가능해질 수 있다. Likewise, although FIG. 2 illustrates a trusted platform module implementation, it is not intended to be limited to all embodiments described herein. In an alternative embodiment, the privileged cryptographic service may be used with other types of cryptographic processors. In addition, in some embodiments, privileged cryptographic services may be implemented on any machine that is not operable to execute code of a virtual machine, such as any co-processor, but not limited to, a remote management card, a baseboard management controller (BMC) An engine (manageability engine) or the like. In these embodiments, the firmware of such a co-processor may be replaced by firmware implementing a privileged cryptographic service. The processor may be able to specifically request to receive an encryption key and other information.
도 3은 다양한 실시예에 따라, 호스트 컴퓨팅 장치 상의 특권 암호화 서비스를 제공하기 위한 예시적 프로세스(300)를 도시한다. 이 도면이 기능적 동작을 특정 시퀀스로 도시할 수 있어도, 프로세스는 도시된 특정 순서 또는 동작으로 반드시 한정될 필요는 없다. 해당 분야의 통상의 기술자라면 이 도면 또는 그 밖의 다른 도면에서 그려진 다양한 동작이 변경, 재배열, 병렬로 수행, 또는 다양한 방식으로 적용될 수 있음을 알 것이다. 덧붙여, 다양한 실시예의 범위 내에서, 특정 동작 또는 동작 시퀀스가 프로세스에 추가되거나 프로세스로부터 생략될 수 있음을 이해할 것이다. 덧붙여, 본 명세서에 기재된 프로세스는 코드 실행의 실제 시퀀스를 특정하기 보다는 해당 분야의 통상의 기술자에게 프로세스 흐름의 아이디어를 보여주려는 의도를 가지며, 상기 프로세스는 여러 다른 흐름 또는 시퀀스로 구현되거나 성능에 최적화되거나 그 밖에 달리 다양한 방식으로 수정될 수 있다. Figure 3 illustrates an exemplary process 300 for providing privileged cryptographic services on a host computing device, in accordance with various embodiments. Although this figure illustrates the functional operation in a specific sequence, the process need not necessarily be limited to the specific sequence or operation shown. Those of ordinary skill in the art will recognize that the various operations depicted in this or other drawings may be modified, rearranged, performed in parallel, or applied in various ways. In addition, it will be understood that within the scope of various embodiments, a particular operation or sequence of operations may be added to or omitted from the process. In addition, the processes described herein are intended to illustrate the idea of a process flow to the ordinary artisan of the art rather than specifying the actual sequence of code execution, and the process may be implemented in various different flows or sequences, Otherwise, it can be modified in various ways.
동작(301)에서, 특권 서비스는 스스로 인증하여, 키 및/또는 그 밖의 다른 암호물을 획득할 수 있다. 하나의 실시예에서, 상기 특권 서비스는 특권 서비스에게 암호 키를 제공하는 외부 컴퓨팅 장치 또는 서비스에 의해 자신을 인증할 수 있다. 또 다른 실시예에서, 특권 서비스는 임의의 외부 개체에 대항하여 인증하지 않는다. 일부 실시예에서, 서비스 제공자에 의해 키가 생성될 수 있고, 또 다른 실시예에서, 키는 고객의 가상 머신과 함께 사용되도록 고객에 의해 제공되거나, 가상 머신에 의해 생성될 수 있다. 동작(302)에서, 성공적인 인증이 수행된 경우, 특권 서비스는 하나 이상의 암호 키를 수신한다. In operation 301, the privileged service may authenticate itself and obtain a key and / or other ciphers. In one embodiment, the privileged service may authenticate itself by an external computing device or service that provides the cryptographic key to the privileged service. In yet another embodiment, the privileged service does not authenticate against any external entity. In some embodiments, a key may be generated by the service provider, and in another embodiment, the key may be provided by the customer for use with the customer's virtual machine, or may be generated by the virtual machine. In operation 302, if successful authentication is performed, the privileged service receives one or more cryptographic keys.
동작(303)에서, 특권 서비스가 호스트 컴퓨팅 장치 상에 하나 이상의 암호 키를 저장한다. 앞서 기재된 바와 같이, 호스트 컴퓨팅 장치는 하나 이상의 가상 머신을 관리하는 하이퍼바이저를 포함할 수 있고 특권 서비스는 하이퍼바이저보다 더 높은 특권 모드에서 동작한다.In operation 303, the privileged service stores one or more cryptographic keys on the host computing device. As described above, the host computing device may include a hypervisor that manages one or more virtual machines, and the privileged service operates in a privileged mode that is higher than the hypervisor.
동작(304)에서, 특권 서비스는 장치에 저장된 암호 키를 이용하기 위한 요청을 수신한다. 하나의 실시예에 따르면, 키를 이용하도록 요청하는 인터럽트 신호(가령, SMI)가 수신될 수 있다. 요청은 하이퍼바이저 또는 하나 이상의 가상 머신 상에서 실행 중인 컴포넌트로부터 수신될 수 있다. 다양한 실시예에서, 요청은 아호 키를 이용하는 임의의 동작일 수 있는데, 비제한적 예를 들면, 키를 이용해 하나 이상의 계산이 수행되도록 하는 요청 또는 키를 이용해 암호화 또는 서명된 하나 이상의 메시지를 송신하기 위한 요청일 수 있다.In operation 304, the privileged service receives a request to use the cryptographic key stored in the device. According to one embodiment, an interrupt signal (e.g., SMI) requesting to use a key may be received. The request may be received from a hypervisor or a component running on one or more virtual machines. In various embodiments, the request may be any operation using an ahoky, including, but not limited to, a request to send one or more messages encrypted or signed using a key or a request to perform one or more calculations using a key Request.
동작(305)에서, 특권 서비스는 요청에 응답하여 하이퍼바이저를 측정한다. 예를 들어, 특권 서비스는 부팅 시에 획득된 값을 런타임 동안 측정된 값에 비교하여, 하이퍼바이저의 조작의 임의의 증거를 검출할 수 있다. In operation 305, the privileged service measures the hypervisor in response to the request. For example, the privileged service can detect any evidence of manipulation of the hypervisor by comparing the value obtained at boot time to the value measured during runtime.
동작(306)에서, 상기 특권 서비스는 호스트 컴퓨팅 장치에 저장된 암호 키를 적어도 부분적으로 기초로 하여 요청에 대한 응답을 생성한다. 일부 실시예에서, 특권 서비스가 하이퍼바이저가 조작됐음을 결정한 경우, 상기 하이퍼바이저는 키를 액세스하지 못하게 막아질 수 있다.In operation 306, the privileged service generates a response to the request based, at least in part, on the cryptographic key stored in the host computing device. In some embodiments, if the privileged service determines that the hypervisor has been tampered with, the hypervisor may be prevented from accessing the key.
도 4는 다양한 실시예에 따라, 하이퍼바이저를 측정하고 조작의 증거를 검출하기 위해 TPM을 이용하는 특권 서비스에 의해 수행될 수 있는 프로세스의 예시(400)를 도시한다. 동작(401)에서, 호스트 컴퓨팅 장치의 부팅 시, 상기 특권 서비스는 TPM의 배타적 소유권을 획득한다. 덧붙여, 부팅 시에, TPM은 신뢰 하이퍼바이저가 호스트 컴퓨팅 장치 상에 로딩됐음을 보장하기 위해 하이퍼바이저와 연관된 하나 이상의 값을 획득할 수 있다(동작(402)). 하나의 실시예에서, 하나 이상의 값을 측정하기 위해, 특권 서비스는 메모리에서 하이퍼바이저의 코드를 담고 있는 하나 이상의 위치를 읽고 상기 위치에 담긴 값을 해시 처리한다. 그 후 상기 해시 값이 저장되고 차후 하이퍼바이저의 코드가 어떠한 식으로도 변경됐었는지 여부를 체크하기 위해 사용될 수 있다. 또 다른 실시예에서, 값 자체를 측정하는 대신, 특권 서비스에게 또 다른 개체, 가령, BIOS에 의해 해시 값이 제공될 수 있다. 예를 들어, (가령, SMM에서 동작하기 위해) 특권 서비스를 프로비저닝할 때, BIOS가 특권 서비스에게 하이퍼바이저 코드에 대한 해시 값을 제공할 수 있다. FIG. 4 illustrates an example 400 of a process that may be performed by a privileged service that uses the TPM to measure the hypervisor and to detect evidence of manipulation, according to various embodiments. At operation 401, upon booting of the host computing device, the privileged service obtains an exclusive ownership of the TPM. In addition, at boot time, the TPM may obtain one or more values associated with the hypervisor to ensure that the trusted hypervisor is loaded on the host computing device (act 402). In one embodiment, to measure one or more values, the privileged service reads one or more locations containing the code of the hypervisor in memory and hashes the values contained in the locations. Then the hash value is stored and can be used to check whether the code of the subsequent hypervisor has changed in any way. In another embodiment, instead of measuring the value itself, the hash value may be provided to the privileged service by another entity, such as the BIOS. For example, when provisioning a privileged service (for example, to operate in an SMM), the BIOS may provide the privileged service with a hash value for the hypervisor code.
동작(403)에서, 그 후 런타임 동안, 특권 암호화 서비스가 암호 키를 이용하기 위한 요청을 수신한다. 하나의 실시예에서, 상기 요청은 시스템 관리 인터럽트(SMI)를 호출함으로써 생성된다. 동작(404)에서, 하이퍼바이저와 연관된 하나 이상의 값이 런타임 동안 재-측정된다. 동작(405)에서, 특권 서비스는 부팅 시에 획득된 초기 값에 대해 상기 재-측정된 값을 비교하여 하이퍼바이저의 조작의 증거를 검출할 수 있다. At operation 403, thereafter, during runtime, the privileged cryptographic service receives a request to use the cryptographic key. In one embodiment, the request is generated by invoking a system management interrupt (SMI). At operation 404, one or more values associated with the hypervisor are re-measured during runtime. At operation 405, the privileged service may compare the re-measured value against an initial value obtained at boot time to detect evidence of manipulation of the hypervisor.
다양한 실시예에 따라, 하이퍼바이저 측정이 사용되어 암호 키가 사용되도록(가령, 가상 머신에 의해 사용되도록) 배포될 수 있는지 여부를 결정할 수 있다. 암호 키를 관리하기 위해, 복수의 암호 동작 구현예가 가능하다. 키 관리 프로세스의 한 가지 이러한 가능한 구현예가 이하에서 기재된다. According to various embodiments, a hypervisor measurement may be used to determine whether the cryptographic key can be used (e.g., to be used by a virtual machine) to be deployed. To manage cryptographic keys, a plurality of cryptographic operation implementations are possible. One such possible implementation of the key management process is described below.
이 특정 구현예에서, BIOS가 프로세서가 SMM 모드이게 하는 SMI 인터럽트가 발행될 때마다 호출되는 시스템 관리 인터럽트(SMI) 핸들러를 초기화한다. TPM은 BIOS의 암호 해시 측정을 할 수 있는 능력, 가령, SMI 핸들러를 제공할 수 있고 이들 해시 값을 플랫폼 설정 레지스터(PCR: platform configuration register)라고 알려진 TPM 하드웨어 레지스터에 저장할 수 있다. 따라서 신뢰 SMI 핸들러의 알려진 해시 값을 PCR에 저장된 해시 값에 비교함으로써, 신뢰 SMI 핸들러가 플랫폼 상에 설치됨을 검증할 수 있는 능력을 제공한다. 상기 SMI 핸들러는 BIOS에 의해 잠금되고 비-SMM 모드에서 실행 중인 어떠한 소프트웨어(가령, 하이퍼바이저 및 OS)에 의해서도 액세스 가능하지 않는 시스템 관리 랜덤 액세스 메모리(SMRAM)라고 지칭되는 메모리의 영역에 저장될 수 있다. 이 실시예에서, 신뢰 하이퍼바이저가 암호학적으로 측정되고 이는 다음의 두 방식으로 이뤄질 수 있다:In this particular implementation, the BIOS initializes a system management interrupt (SMI) handler that is called whenever an SMI interrupt is issued that causes the processor to go into SMM mode. The TPM can provide the ability to perform cryptographic hash measurements of the BIOS, for example, an SMI handler, and store these hash values in a TPM hardware register known as a platform configuration register (PCR). Thus, by comparing the known hash value of the trust SMI handler to the hash value stored in the PCR, it provides the ability to verify that the trust SMI handler is installed on the platform. The SMI handler may be stored in an area of memory called a system management random access memory (SMRAM) that is locked by the BIOS and is not accessible by any software (e.g., hypervisor and OS) running in non-SMM mode have. In this embodiment, the trust hypervisor is cryptographically measured and can be accomplished in two ways:
(1) 신뢰 부트로더(bootloader)가 하이퍼바이저로 실행 제어를 전송하기 전에 상기 하이퍼바이저를 측정할 수 있고 해시 값을 PCR에 저장한다; 또는 (1) the trusted bootloader can measure the hypervisor before sending the execution control to the hypervisor and store the hash value in the PCR; or
(2) 신뢰 부트로더가 SMI 인터럽트를 발행할 수 있다. SMI 핸들러가 하이퍼바이저를 측정하고 암호 해시 값을 SMRAM에 저장할 수 있다. (2) The trusted boot loader can issue SMI interrupts. The SMI handler can measure the hypervisor and store the cryptographic hash value in SMRAM.
이 실시예에서, 신뢰 하이퍼바이저의 해시 값이 기준 해시 값으로 참조될 수 있다. 그 후, 플랫폼 런-타임 키 관리 흐름에 2개의 단계가 존재할 수 있는데, 즉, 키 프로비저닝과 키 사용이다. 하나의 실시예에서, 이들 흐름의 상세사항이 다음과 같다:In this embodiment, the hash value of the trust hypervisor may be referred to as the reference hash value. There are then two steps in the platform run-time key management flow: key provisioning and key usage. In one embodiment, the details of these flows are as follows:
키 프로비저닝: 신뢰 하이퍼바이저가 초기에 부팅될 때, 상기 하이퍼바이저는 PCR을 체크하여 신뢰 SMI 핸들러가 플랫폼 상에 설치됨을 보장할 수 있다. 신뢰 SMI 핸들러가 검증되며, 상기 하이퍼바이저가 암호 키 및 그 밖의 다른 자격증명(비밀번호 등)을 생성하고, 이를 메모리 또는 레지스터에 위치시키며 SMI 인터럽트를 발행한다. 키를 프로비저닝하는 역할을 수행하는 SMI 핸들러는 상기 암호 키를 SMRAM 내 키 저장 데이터 구조로 복사하고 메모리/레지스터에서 키를 소거한다. 상기 SMI 핸들러는 저장된 키에 대응하는 인덱스 값을 하이퍼바이저에게 반환(return)한다. Key Provisioning: When the Trusted Hypervisor is initially booted, the hypervisor can check the PCR to ensure that a trusted SMI handler is installed on the platform. The trust SMI handler is verified and the hypervisor generates a cryptographic key and other credentials (such as a password), places it in memory or a register and issues an SMI interrupt. An SMI handler serving to provision the key copies the cryptographic key into the key store data structure in the SMRAM and erases the key from the memory / register. The SMI handler returns the index value corresponding to the stored key to the hypervisor.
키 사용: 하이퍼바이저가 특정 암호 키를 액세스할 필요가 있을 때, 상기 하이퍼바이저는 대응하는 인덱스 값을 주는 것과 함께 SMI 인터럽트를 발행한다. 그 후 SMI 핸들러는 하이퍼바이저의 암호 해시 측정을 수행하고 이 해시 값을 부팅 동안 계산된 기준 해시 값과 비교한다. SMI 핸들러 실행은 하이퍼바이저에 독립적으로 발생하기 때문에, 이의 측정 동작을 조작할 수 없다. 해시 값이 일치하면, SMI 핸들러는 요청된 자격증명을 반환한다. 해시 값의 불일치는 런-타임 하이퍼바이저 오염을 가리키며 SMI 핸들러는 에러 메시지를 반환할 것이다. Key Usage: When the hypervisor needs to access a particular cryptographic key, the hypervisor issues an SMI interrupt with giving the corresponding index value. The SMI handler then performs a cryptographic hash measurement of the hypervisor and compares this hash value with the computed reference hash value during boot. Since the SMI handler execution occurs independently of the hypervisor, its measurement operations can not be manipulated. If the hash values match, the SMI handler returns the requested credentials. The hash value mismatch indicates run-time hypervisor pollution and the SMI handler will return an error message.
하나의 실시예에서, SMRAM이 하이퍼바이저에 의해 액세스 가능하지 않다고 가정되면, 악의적 하이퍼바이저 또는 오염된 하이퍼바이저가 신뢰 하이퍼바이저에 의해 저장된 키를 액세스하지 못할 것이다. 따라서 하이퍼바이저에 대한 임의의 악의적 공격으로부터 SMRAM 내 비밀이 안전하다. In one embodiment, if it is assumed that the SMRAM is not accessible by the hypervisor, the malicious hypervisor or the contaminated hypervisor will not be able to access the key stored by the trusted hypervisor. Therefore, the secret in the SMRAM is secure from any malicious attack on the hypervisor.
일부 실시예에서, 또한 이 키 관리 프로세스는 게스트 가상 머신(VM)에 의해 사용되어 암호 키 및 자격증명을 저장할 수 있으며, 이때 게스트 VM이 SMI를 발행하여 비밀을 저장할 수 있다. 게스트 VM에 대한 비밀 관리 스킴의 동작 흐름이 다음과 같을 것이다:In some embodiments, the key management process may also be used by a guest virtual machine (VM) to store cryptographic keys and credentials, wherein the guest VM may issue an SMI to store the secret. The operation flow of the secret management scheme for the guest VM would be as follows:
a. 게스트 VM이 SMI를 발행하여 하이퍼바이저가 신뢰되는지 여부를 체크할 수 있다. 상기 SMI 핸들러는 하이퍼바이저를 암호학적으로 측정하고 이 값을 기준 해시 값과 비교한다. 상기 SMI 핸들러는 하이퍼바이저가 신뢰되는지 여부를 가리키는 값을 반환한다,a. The guest VM may issue an SMI to check whether the hypervisor is trusted. The SMI handler cryptographically measures the hypervisor and compares this value with a reference hash value. The SMI handler returns a value indicating whether the hypervisor is trusted or not,
b. SMI 핸들러가 하이퍼바이저가 신뢰된다고 가리키는 값을 반환한다면, 새 암호 키를 저장하거나 이전에 저장된 암호 키(또는 자격증명)를 불러오기 위해 게스트 VM이 또 다른 SMI 인터럽트를 발행한다. b. If the SMI handler returns a value indicating that the hypervisor is trusted, the guest VM issues another SMI interrupt to store the new cipher key or to load the previously stored cipher key (or credentials).
이 흐름에서, 게스트 VM은 2개의 SMI를 발행해야 하는데, 첫 번째는 하이퍼바이저를 검증하기 위한 것이며, 두 번째는 SMRAM에 비밀을 저장하거나 불러오기 위한 것이다. 하이퍼바이저가 악의적이거나 런-타임 동안 맬웨어(malware)에 의해 오염된 경우, (하이퍼바이저 무결성 체크가 실패할 것이기 때문에 하이퍼바이저가 SMI를 발행하는 경우라도) 상기 하이퍼바이저에게 게스트 VM의 자격증명이 노출되지 않는다. In this flow, the guest VM must issue two SMIs, one for verifying the hypervisor, and the second for storing or retrieving secrets in the SMRAM. If the hypervisor is malicious or contaminated by malware during run-time, the credentials of the guest VM are not exposed to the hypervisor (even if the hypervisor issues an SMI because the hypervisor integrity check will fail) Do not.
본 발명의 실시예가 다음의 항목과 관련하여 기재될 수 있다:Embodiments of the present invention may be described in connection with the following items:
1. 적어도 하나의 프로세서,1. At least one processor,
하나 이상의 가상 머신을 관리하는 하이퍼바이저 - 각각의 가상 머신은 각자의 고객과 연관되며 고객이 제공한 코드를 실행하도록 동작함 - , A hypervisor that manages one or more virtual machines - each virtual machine is associated with its own customer and is operative to execute customer provided code,
상기 하이퍼바이저를 유예시키고 호스트 컴퓨팅 장치 상에서 시스템 관리 모드(SMM)에서 실행될 수 있는 특권 서비스 - 상기 특권 서비스는 A privileged service that can be suspended in the hypervisor and executed in a system management mode (SMM) on the host computing device,
고객과 연관된 암호 키를 수신하고 호스트 컴퓨팅 장치에 상기 암호 키를 저장하며, Receiving a cryptographic key associated with the customer and storing the cryptographic key on a host computing device,
하이퍼바이저 또는 하나 이상의 가상 머신 중 적어도 하나로부터 암호 키를 이용하기 위한 요청을 수신 - 상기 요청은 시스템 관리 인터럽트(SMI)를 개시함으로써 생성됨 - 하고, A request to use a cryptographic key from at least one of a hypervisor or one or more virtual machines, the request being generated by initiating a system management interrupt (SMI)
상기 하이퍼바이저와 연관된 하나 이상의 값을 측정하고, Measuring one or more values associated with the hypervisor,
하나 이상의 값을 기초로 상기 하이퍼바이저가 변경됐는지 여부를 결정하고, Determine whether the hypervisor has changed based on the one or more values,
하나 이상의 값이 상기 하이퍼바이저가 변경되지 않았다고 가리키는 경우 요청에 대한 응답을 생성 - 상기 응답은 상기 호스트 컴퓨팅 장치에 저장된 암호 키를 적어도 부분적으로 기초로 함 - 하도록 동작함 - Generating a response to the request if the one or more values indicate that the hypervisor has not changed, the response being based at least in part on a cryptographic key stored on the host computing device;
를 구현하기 위해 장치의 적어도 하나의 프로세서에 의해 실행되는 명령을 포함하는 메모리Comprising instructions executed by at least one processor of the apparatus to implement the method < RTI ID = 0.0 >
를 포함하는, 컴퓨팅 장치.And a computing device.
2. 항목 1에 있어서, 상기 호스트 컴퓨팅 장치는 제 2 고객에 대한 제 2 암호 키를 저장하며, 하이퍼바이저의 맥락에서 실행 중인 상기 고객의 고객이 제공한 코드가 제 2 고객에 대해 호스트 컴퓨팅 장치에 저장된 제 2 암호 키를 추출하지 못하게 막아지는, 컴퓨팅 장치. 2. The method of item 1, wherein the host computing device stores a second cryptographic key for a second customer, and the code provided by the customer's customer running in the context of the hypervisor is provided to the host computing device And is prevented from extracting the stored second cryptographic key.
3. 항목 1에 있어서, 하이퍼바이저와 연관된 하나 이상의 값을 측정하는 것은 3. In item 1, measuring one or more values associated with the hypervisor
호스트 컴퓨팅 장치의 부팅 시에 획득된 하이퍼바이저와 연관된 하나 이상의 값을 측정하는 것, Measuring one or more values associated with the hypervisor obtained at boot time of the host computing device,
런타임 동안 하이퍼바이저와 연관된 하나 이상의 값을 측정하는 것, 및Measuring one or more values associated with the hypervisor during runtime, and
부팅 시에 측정된 하나 이상의 값을 런타임 동안 측정된 하나 이상의 값에 비교하는 것을 적어도 부분적으로 기초로 하여 하이퍼바이저가 변경됐는지 여부를 결정하는 것Determining whether the hypervisor has changed based at least in part on comparing one or more values measured at boot time to one or more values measured during run time
을 더 포함하는, 컴퓨팅 장치. The computing device further comprising:
4. 항목 1에 있어서, 4. In item 1,
암호 키를 저장하도록 구성된 신뢰 플랫폼 모듈(TPM) - 상기 특권 서비스는 TPM에 대한 배타적 액세스 권한을 획득하고 TPM에 저장된 암호 키에 대한 액세스 권한을 관리하도록 더 동작하는, 컴퓨팅 장치. A Trusted Platform Module (TPM) configured to store an encryption key, the privilege service further operative to obtain exclusive access to the TPM and to manage access rights to the encryption key stored in the TPM.
5. 적어도 하나의 프로세서, 및5. At least one processor, and
상기 적어도 하나의 프로세서에 의해 실행될 때 컴퓨팅 장치로 하여금 When executed by the at least one processor, cause the computing device
하나 이상의 가상 머신을 관리하고 메모리의 제 1 부분으로의 액세스 권한을 갖는 하이퍼바이저, 및 A hypervisor that manages one or more virtual machines and has access to a first portion of memory, and
상기 하이퍼바이저에 의해 액세스될 수 없는 메모리의 적어도 제 2 부분으로의 액세스 권한을 갖는 특권 서비스 - 상기 특권 서비스는 A privileged service having access rights to at least a second portion of a memory that can not be accessed by the hypervisor,
컴퓨팅 장치에 키를 저장하고, Storing the key on the computing device,
하이퍼바이저 또는 하나 이상의 가상 머신 중 적어도 하나로부터의 키를 이용하기 위한 요청을 수신하며, A request to use a key from at least one of a hypervisor or one or more virtual machines,
컴퓨팅 장치에 저장된 키를 적어도 부분적으로 기초로 하여 상기 요청에 대한 응답을 생성하도록 동작함 - Operable to generate a response to the request based at least in part on a key stored in the computing device,
를 구현하도록 하는 명령을 포함하는 메모리RTI ID = 0.0 > memory < / RTI >
를 포함하는, 컴퓨팅 장치. And a computing device.
6. 항목 5에 있어서, 상기 특권 서비스는 6. The method according to item 5,
암호화 프로세서(cryptographic processor), 원격 관리 카드, 베이스보드 관리 제어기(BMC), 시스템 관리 모드(SMM)에서 실행 중인 컴포넌트, 또는 관리 엔진(manageability engine) 중 적어도 하나를 이용해 실행되는, 컴퓨팅 장치. Wherein the computing device is implemented using at least one of a cryptographic processor, a remote management card, a baseboard management controller (BMC), a component running in a system management mode (SMM), or a manageability engine.
7. 항목 5에 있어서, 메모리의 제 2 부분은 7. In item 5, the second part of the memory
하나 이상의 범위 레지스터(range register)를 이용해 분할(partition)된 메모리 메모리의 일부분, 하나 이상의 코-프로세서(co-processor) 내부 메모리, 하나 이상의 코-프로세서에 부착된 메모리, 하나 이상의 모드에 특화된 레지스터, 또는 특정 암호 키 레지스터 중 적어도 하나인, 컴퓨팅 장치. A portion of memory memory partitioned using one or more range registers, one or more co-processor internal memories, a memory attached to one or more co-processors, one or more mode-specific registers, Or a specific cryptographic key register.
8. 항목 5에 있어서, 상기 특권 서비스는8. The method according to item 5,
하이퍼바이저와 연관된 하나 이상의 값을 측정하고,Measuring one or more values associated with the hypervisor,
상기 하이퍼바이저와 연관된 하나 이상의 값을 적어도 부분적으로 기초로 하여 상기 하이퍼바이저가 변경됐는지 여부를 검출하도록 더 동작하는, 컴퓨팅 장치.Further operable to detect whether the hypervisor has changed based at least in part on one or more values associated with the hypervisor.
9. 항목 8에 있어서, 상기 특권 서비스는 9. The method of claim 8,
상기 하이퍼바이저가 변경됐다는 검출에 응답하여 외부 개체에 통지하거나, Notifying an external entity in response to detection that the hypervisor has been changed,
상기 하이퍼바이저가 변경됐다는 검출에 응답하여 암호 키를 삭제하도록 더 동작하는, 컴퓨팅 장치.And delete the cryptographic key in response to detecting that the hypervisor has changed.
10. 항목 5에 있어서, 10. The method according to item 5,
시스템 관리 인터럽트(SMI)를 이용함으로써 특권 서비스로 요청을 제출하도록 구성된 컴포넌트 - 상기 컴포넌트는 하이퍼바이저 또는 가상 머신 중 적어도 하나 내에 위치함 - A component configured to submit a request to a privileged service by using a system management interrupt (SMI), the component being located in at least one of a hypervisor or a virtual machine,
를 더 포함하는, 컴퓨팅 장치. Further comprising:
11. 항목 5에 있어서, 11. The method according to item 5,
키를 저장하도록 구성된 신뢰 플랫폼 모듈(TPM) - 특권 서비스는 상기 TPM 에 대한 배타적 액세스 권한을 획득하도록 더 동작함 - 을 더 포함하는, 컴퓨팅 장치. Wherein the Trusted Platform Module (TPM) configured to store the key - the privileged service is further operative to obtain exclusive access to the TPM.
12. 항목 11에 있어서, 특권 서비스는 하이퍼바이저 및 하나 이상의 가상 머신에 의한 TPM에 저장된 키로의 액세스를 제어하도록 더 동작하는, 컴퓨팅 장치.12. The computing device of item 11, wherein the privileged service is further operative to control access to the key stored in the TPM by the hypervisor and the one or more virtual machines.
13. 항목 5에 있어서, 상기 특권 서비스는 13. The method of claim 5,
부팅 시 하이퍼바이저와 연관된 값의 제 1 세트를 측정하여 하이퍼바이저를 검증하도록 더 동작하는, 컴퓨팅 장치. And further operable to verify the hypervisor by measuring a first set of values associated with the hypervisor at boot-up.
14. 항목 13에 있어서, 상기 특권 서비스는14. The method of claim 13,
하이퍼바이저를 검증하기 위해 호스트 컴퓨팅 장치 상의 가상 머신으로부터 제 1 시스템 관리 인터럽트(SMI)를 수신하며, Receive a first system management interrupt (SMI) from a virtual machine on the host computing device to verify the hypervisor,
SMI 핸들러에 의해 상기 하이퍼바이저와 연관된 값의 제 2 세트를 측정하며, Measuring a second set of values associated with the hypervisor by an SMI handler,
상기 SMI 핸들러에 의해 상기 값의 제 2 세트를 값의 제 1 세트와 비교하며,Compare the second set of values with the first set of values by the SMI handler,
값의 제 2 세트가 부팅 시 측정된 값의 제 1 세트와 일치하는 경우 SMI 핸들러에 의해 하이퍼바이저를 검증하며, Verifies the hypervisor by the SMI handler if the second set of values matches the first set of values measured at boot time,
가상 머신으로부터 제 2 SMI를 수신하여 키를 불러오거나 새 키를 저장하도록  To receive a second SMI from the virtual machine and load the key or store the new key
더 동작하는, 컴퓨팅 장치. Further operating.
15. 항목 5에 있어서, 상기 특권 서비스는15. The method of claim 5,
가상 TPM을 하나 이상의 가상 머신으로 노출시키도록 더 동작하며, 상기 하나 이상의 가상 머신은 시스템 관리 인터럽트(SMI)을 이용하여 키를 액세스하도록 동작하며 상기 키는 하이퍼바이저에 의해 액세스될 수 없는, 컴퓨팅 장치. Wherein the at least one virtual machine is further operative to expose a virtual TPM to one or more virtual machines, the one or more virtual machines being operative to access a key using a system management interrupt (SMI), the key being not accessible by a hypervisor, .
16. 항목 5에 있어서, 응답을 생성하는 것은 암호 키와 연관된 인증 정보를 더 기초로 하는, 컴퓨팅 장치. 16. The computing device according to item 5, wherein generating a response is further based on authentication information associated with the encryption key.
17. 항목 5에 있어서, 키를 이용하기 위한 요청은 17. In item 5, the request to use the key
키를 이용해 하나 이상의 계산이 수행되기 위한 요청, 또는A request to perform one or more calculations using a key, or
키를 이용해 암호화 또는 서명되는 하나 이상의 메시지를 송신하기 위한 요청A request to send one or more messages encrypted or signed with a key
중 적어도 하나를 더 포함하는, 컴퓨팅 장치. ≪ / RTI >
18. 실행 가능 명령에 의해 설정된 하나 이상의 컴퓨터 시스템의 제어 하에서, 18. Under control of one or more computer systems set by an executable instruction,
특권 서비스에 의해, 호스트 컴퓨팅 장치에 키를 저장하는 단계 - 상기 호스트 컴퓨팅 장치는 하나 이상의 가상 머신을 관리하는 하이퍼바이저를 포함하고 상기 특권 서비스는 상기 하이퍼바이저에 의해 액세스될 수 없는 메모리의 적어도 일부분에 대한 액세스 권한을 가짐 - , Storing a key in a host computing device by a privileged service, the host computing device including a hypervisor managing one or more virtual machines, the privileged service being operable to at least a portion of a memory that is not accessible by the hypervisor Have access to -,
특권 서비스에 의해 키를 이용하기 위해 요청하는 신호를 수신하는 단계 - 상기 신호는 하이퍼바이저 또는 하나 이상의 가상 머신 중 적어도 하나로부터 수신됨 - , 및 Receiving a signal requesting to use a key by a privileged service, the signal being received from at least one of a hypervisor or one or more virtual machines; and
상기 특권 서비스에 의해 요청에 대한 응답을 생성하는 단계 - 상기 응답은 컴퓨팅 장치에 저장된 키를 적어도 부분적으로 기초로 함 - Generating a response to the request by the privileged service, the response based at least in part on a key stored on the computing device,
를 포함하는, 컴퓨터로 구현되는 방법.≪ / RTI >
19. 항목 18에 있어서, 특권 서비스는 19. In item 18, the privileged service
암호화 프로세서, 원격 관리 카드, 베이스보드 관리 제어기(BMC), 시스템 관리 모드(SMM)에서 실행 중인 컴포넌트, 관리 엔진, 또는 하이퍼바이저를 실행하지 않는 호스트 컴퓨팅 장치의 하나 이상의 프로세서 중 적어도 하나를 이용해 호스트 컴퓨팅 장치 상에서 실행되는, 컴퓨터로 구현되는 방법. A host computing device using at least one of a cryptographic processor, a remote management card, a baseboard management controller (BMC), a component running in a system management mode (SMM), a management engine, or a host computing device not running a hypervisor, ≪ / RTI >
20. 항목 18에 있어서, 하이퍼바이저와 연관된 하나 이상의 값을 측정하는 단계, 20. The method of claim 18, further comprising measuring one or more values associated with the hypervisor,
하나 이상의 값을 적어도 부분적으로 기초로 하여 하이퍼바이저가 변경됐는지 여부를 검출하는 단계 Detecting whether the hypervisor has changed, based at least in part on one or more values;
를 더 포함하는, 컴퓨터로 구현되는 방법.≪ / RTI >
21. 항목 20에 있어서, 상기 하이퍼바이저가 변경됐다는 검출에 응답하여, 21. The method of claim 20, wherein, in response to detecting that the hypervisor has changed,
외부 개체로 통지를 전송 - 상기 통지는 하이퍼바이저가 변경됐음을 가리킴 - , 또는 Send notification to external entity - said notification indicates that the hypervisor has changed - or
키를 삭제Delete key
중 적어도 하나를 수행하는 단계≪ RTI ID = 0.0 >
를 더 포함하는, 컴퓨터로 구현되는 방법.≪ / RTI >
22. 항목 18에 있어서, 키를 저장하는 단계는 22. The method of item 18, wherein storing the key
신뢰 플랫폼 모듈(TPM)에 키를 저장하는 단계 - 상기 특권 서비스는 TPM에 대한 배타적 액세스 권한을 갖도록 구성됨 - 를 더 포함하는, 컴퓨터로 구현되는 방법.Storing a key in a trusted platform module (TPM), wherein the privileged service is configured to have exclusive access to the TPM.
23. 하나 이상의 프로세서에 의해 실행되며 컴퓨팅 시스템으로 하여금 23. A computer system, executed by one or more processors,
특권 서비스에 의해, 호스트 컴퓨팅 장치에 키를 저장하게 하며 - 상기 호스트 컴퓨팅 장치는 하나 이상의 가상 머신을 관리하는 하이퍼바이저를 포함하고, 상기 특권 서비스는 하이퍼바이저에 의해 액세스될 수 없는 메모리의 적어도 일부분에 대한 액세스 권한을 가짐 - , Wherein the host computing device comprises a hypervisor that manages one or more virtual machines, wherein the privileged service is configured to store at least a portion of the memory that is not accessible by the hypervisor Have access to -,
특권 서비스에 의해, 키를 사용하도록 요청하는 신호를 수신하게 하며 - 상기 신호는 하이퍼바이저 또는 하나 이상의 가상 머신 중 적어도 하나로부터 수신되고, By a privileged service, a signal requesting to use a key, the signal being received from at least one of a hypervisor or one or more virtual machines,
특권 서비스에 의해 요청에 대한 응답을 생성하게 하는 - 상기 응답은 컴퓨팅 장치에 저장된 키를 적어도 부분적으로 기초로 함 - 하나 이상의 명령을 저장하는 비-일시적 컴퓨터 판독형 저장 매체. Wherein the response is based, at least in part, on a key stored in the computing device. The non-transitory computer readable storage medium of claim 1, wherein the response is generated by a privileged service.
24. 항목 23에 있어서, 컴퓨팅 시스템으로 하여금 24. The computer-readable medium of claim 23,
가상 TPM을 하나 이상의 가상 머신에 노출시키게 하는 - 상기 하나 이상의 가상 머신은 키를 액세스하기 위해 시스템 관리형 인터럽트(SMI)를 이용하도록 동작하고, 상기 키는 하이퍼바이저에 의해 액세스될 수 없음 - 명령을 더 포함하는, 비-일시적 컴퓨터 판독형 저장 매체. Wherein the at least one virtual machine is operative to use a system managed interrupt (SMI) to access a virtual TPM, wherein the key can not be accessed by a hypervisor; ≪ / RTI >
25. 항목 23에 있어서, 상기 특권 서비스는 키와 관련된 인가 정보를 이용하여 요청에 대한 응답을 생성하도록 동작하는, 비-일시적 컴퓨터 판독형 저장 매체. 25. The non-transitory computer readable storage medium of claim 23, wherein the privileged service is operative to generate a response to the request using authorization information associated with the key.
26. 항목 23에 있어서, 상기 키를 사용하기 위한 요청은 26. The method of claim 23, wherein the request to use the key comprises
하나 이상의 계산이 키를 이용해 수행되기 위한 요청, 또는A request for one or more calculations to be performed using the key, or
키를 이용해 암호화 또는 서명되는 하나 이상의 메시지를 송신하기 위한 요청 A request to send one or more messages encrypted or signed with a key
중 적어도 하나를 더 포함하는, 비-일시적 컴퓨터 판독형 저장 매체. ≪ / RTI > further comprising at least one of: < RTI ID = 0.0 > a < / RTI >
27. 항목 23에 있어서, 컴퓨팅 시스템으로 하여금27. The method according to item 23,
부팅 시 하이퍼바이저와 연관된 값의 제 1 세트를 측정하여 신뢰 하이퍼바이저가 런칭됐음을 검증하게 하는 명령을 더 포함하는, 비-일시적 컴퓨터 판독형 저장 매체. Further comprising the step of measuring at boot a first set of values associated with the hypervisor to verify that the trusted hypervisor has been launched.
28. 항목 27에 있어서, 컴퓨팅 시스템으로 하여금28. The method of item 27,
런타임 동안 호스트 컴퓨팅 장치 상에서 가상 머신으로부터의 제 2 시스템 관리 인터럽트(SMI)를 수신하게 하며, To receive a second system management interrupt (SMI) from the virtual machine on the host computing device during runtime,
SMI 핸들러에 의해 하이퍼바이저와 연관된 값의 제 2 세트를 측정하게 하며, Allow the SMI handler to measure a second set of values associated with the hypervisor,
SMI 핸들러에 의해 값의 제 2 세트를 값의 제 1 세트와 비교하게 하며, Cause the SMI handler to compare the second set of values with the first set of values,
값의 제 2 세트가 부팅 시 측정된 값의 제 1 세트와 일치하는 경우 SMI 핸들러에 의해 하이퍼바이저를 검증하게 하고, To cause the SMI handler to verify the hypervisor if the second set of values matches the first set of values measured at boot,
가상 머신으로부터 키를 불러오거나 새 키를 저장하도록 제 2 SMI를 수신하게 하는 명령을 더 포함하는, 비-일시적 컴퓨터 판독형 저장 매체. Further comprising receiving a second SMI to retrieve a key from the virtual machine or to store a new key.
도 5는 예시적 컴퓨팅 장치(500)의 일반적인 구성요소의 세트의 논리적 배열을 도시한다. 이 예시에서, 장치는 메모리 장치 또는 요소(504)에 저장될 수 있는 명령을 실행하기 위한 프로세서(502)를 포함한다. 해당 분야의 통상의 기술자에게 자명할 바와 같이, 상기 장치는 많은 유형의 메모리, 데이터 저장소, 또는 비-일시적 컴퓨터 판독형 저장 매체, 가령, 프로세서(502)에 의해 실행되기 위한 프로그램 명령을 위한 제 1 데이터 저장소, 이미지 또는 데이터를 위한 별도의 저장소, 다른 장치와 정보를 공유하기 위한 이동식 메모리 등을 포함할 수 있다. 상기 장치는 일부 유형의 디스플레이 요소(506), 가령, 터치 스크린 또는 액정 디스플레이(LCD)를 포함할 것인데, 장치, 가령, 휴대용 미디어 플레이어가 그 밖의 다른 수단, 가령, 오디오 스피커를 통해 정보를 전달할 수 있다. 언급된 바와 같이, 많은 실시예에서 장치는 사용자로부터 종래의 입력을 수신할 수 있는 적어도 하나의 입력 요소(508)를 포함할 것이다. 이 종래의 입력은, 예를 들어, 푸시 버튼, 터치 패드, 터치 스크린, 휠, 조이스틱, 키보드, 마우스, 키패드, 또는 그 밖의 다른 임의의 이러한 장치 또는 요소를 포함할 수 있으며, 이로써 사용자가 장치로 명령어를 입력할 수 있다. 그러나 일부 실시예에서, 이러한 장치는 임의의 버튼을 전혀 포함하지 않을 수 있으며, 시각적 및 오디오 명령어의 조합을 통해서만 제어되어, 사용자가 장치와 접촉할 필요 없이 장치를 제어할 수 있게 할 수 있다. 일부 실시예에서, 도 5의 컴퓨팅 장치(500)는 다양한 네트워크, 가령, Wi-Fi, 블루투스(Bluetooth), RF, 유선 또는 무선 통신 시스템을 통해 통신하기 위해 하나 이상의 네트워크 인터페이스 요소(508)를 포함할 수 있다. 많은 실시예에서의 장치는 네트워크, 가령, 인터넷과 통신할 수 있고, 이러한 그 밖의 다른 장치와 통신할 수 있다. FIG. 5 illustrates a logical arrangement of a set of common components of an exemplary computing device 500. In this example, the apparatus includes a processor 502 for executing instructions that may be stored in a memory device or element 504. As will be apparent to one of ordinary skill in the art, the apparatus may be implemented in many types of memory, a data store, or a non-transitory computer readable storage medium, such as a first A data store, a separate repository for images or data, a removable memory for sharing information with other devices, and the like. The device may include some type of display element 506, e.g., a touch screen or a liquid crystal display (LCD), such that the device, e.g., a portable media player, can communicate information via other means, have. As mentioned, in many embodiments, the device will include at least one input element 508 capable of receiving conventional input from a user. This conventional input may include, for example, a push button, touch pad, touch screen, wheel, joystick, keyboard, mouse, keypad, or any other such device or element, You can enter commands. In some embodiments, however, such a device may not include any buttons at all and is only controlled through a combination of visual and audio commands, allowing the user to control the device without having to contact the device. In some embodiments, the computing device 500 of FIG. 5 includes one or more network interface elements 508 for communicating over various networks, such as Wi-Fi, Bluetooth, RF, wired, or wireless communication systems can do. Devices in many embodiments may communicate with a network, such as the Internet, and may communicate with such other devices.
언급된 바와 같이, 기재된 실시예에 따라 다양한 실시예에서 서로 다른 접근법이 구현될 수 있다. 예를 들어, 도 6은 다양한 실시예에 따라 양태를 구현하기 위한 환경(600)의 하나의 예시를 도시한다. 알다시피, 웹-기반 환경이 설명을 목적으로 사용되지만, 다양한 실시예를 구현하기 위해 적절하게 여러 다른 환경이 사용될 수 있다. 시스템은 요청, 메시지, 또는 정보를 적절한 네트워크(604)를 통해 전송 및 수신하고 정보를 다시 장치의 사용자에게 전달하도록 동작하는 임의의 적절한 장치를 포함할 수 있는 전자 클라이언트 장치(602)를 포함한다. 이러한 클라이언트 장치의 예시는 개인 컴퓨터, 셀 폰, 핸드헬드 메시징 장치, 랩톱 컴퓨터, 셋-톱 박스, 개인 데이터 보조기, 전자 책 리더등을 포함할 수 있다. 네트워크는 임의의 적절한 네트워크, 가령, 인트라넷, 인터넷, 셀룰러 네트워크, 로컬 영역 네트워크 또는 그 밖의 다른 임의의 이러한 네트워크 또는 이들의 조합을 포함할 수 있다. 이러한 시스템을 위해 사용되는 구성요소는 선택된 네트워크 및/또는 환경의 유형에 적어도 부분적으로 따라 달라질 수 있다. 이러한 네트워크를 통해 통신하기 위한 프로토콜 및 구성요소는 잘 알려져 있으며 본 명세서에서 상세히 설명되지 않을 것이다. 유선 또는 무선 연결 및 이들의 조합을 통해 네트워크를 통한 통신이 활성화될 수 있다. 이 예시에서, 환경이 요청을 수신하고 이에 응답하여 콘텐츠를 서비스하기 위한 웹 서버(606)를 포함하기 때문에 네트워크는 인터넷을 포함하지만, 다른 네트워크의 경우 해당 분야의 통상의 기술자에게 자명할 유사한 목적을 수행하는 대안적 장치가 사용될 수 있다. As noted, different approaches may be implemented in various embodiments in accordance with the described embodiments. For example, FIG. 6 illustrates one example of an environment 600 for implementing aspects in accordance with various embodiments. As will be appreciated, although a web-based environment is used for illustrative purposes, various other environments may be used as appropriate to implement various embodiments. The system includes an electronic client device 602 that may include any suitable device operable to transmit and receive requests, messages, or information over the appropriate network 604 and to communicate the information back to the user of the device. Examples of such client devices may include personal computers, cell phones, handheld messaging devices, laptop computers, set-top boxes, personal data assistants, e-book readers, and the like. The network may comprise any suitable network, such as an intranet, the Internet, a cellular network, a local area network or any other such network or combination thereof. The components used for such a system may vary at least in part depending upon the type of network and / or environment selected. The protocols and components for communicating over such a network are well known and will not be described in detail herein. Communication over a network may be activated through a wired or wireless connection and combinations thereof. In this example, the network includes the Internet, because the environment includes a web server 606 for servicing the content in response to receiving the request, but in the case of other networks, a similar purpose Alternative devices that perform this function may be used.
도시된 환경은 적어도 하나의 애플리케이션 서버(608) 및 데이터 저장소(610)를 포함한다. 따라서 연쇄연결(chain)되거나 그 밖의 다른 방식으로 구성될 수 있고 작업 가령 적절한 데이터 저장소로부터 데이터를 획득하는 것을 수행하도록 상호대화할 수 있는 복수의 애플리케이션 서버, 레이어 또는 또 다른 요소, 프로세스 또는 구성요소가 존재할 수 있음이 이해되어야 한다. 본 명세서에서 사용될 때, "데이터 저장소(data store)"라는 용어는 데이터를 저장, 액세스 및 불러올 수 있는 임의의 장치 또는 장치들의 조합을 지칭하며, 임의의 조합 및 복수의 데이터 서버, 데이터베이스, 데이터 저장 장치 및 데이터 저장 매체를 임의의 표준, 분산형, 또는 클러스터링된 환경에서 포함할 수 있다. 애플리케이션 서버는 클라이언트 장치에 대한 이상의 애플리케이션의 양태를 실행하기 위해 필요에 따라 데이터 저장소와 일체 구성되고 애플리케이션에 대한 데이터 액세스 및 비즈니스 로직의 대부분을 핸들링하기 위한 임의의 적절한 하드웨어 및 소프트웨어를 포함할 수 있다. 상기 애플리케이션 서버는 데이터 저장소와 협업하는 액세스 제어 서비스를 제공하고 이 예시에서 웹 서버에 의해 HTML, XML 또는 또 다른 적절한 구조화된 언어의 형태로 사용자에게 서비스될 수 있는 콘텐츠, 가령, 사용자에게 전송될 텍스트, 그래픽, 오디오 및/또는 비디오를 생성할 수 있다. 모든 요청 및 응답뿐 아니라 클라이언트 장치(602)와 애플리케이션 서버(608) 간 콘텐츠의 전달의 핸들링이 웹 서버(606)에 의해 핸들링될 수 있다. 본 명세서에서 언급되는 구조화된 코드가 본 명세서 임의의 곳에서 언급되는 바와 같이 임의의 적절한 장치 또는 호스트 머신 상에서 실행될 수 있기 때문에 웹 및 애플리케이션 서버는 필수는 아니며 예시적 구성요소에 불과함이 이해되어야 한다.The depicted environment includes at least one application server 608 and a data store 610. Thus, multiple application servers, layers, or other elements, processes, or components that may be chain-coupled or otherwise configured and capable of interacting with one another to perform operations such as obtaining data from an appropriate data store It should be understood that it can exist. As used herein, the term "data store " refers to any device or combination of devices capable of storing, accessing and retrieving data, and may include any combination of data servers, databases, Devices, and data storage media in any standard, distributed, or clustered environment. The application server may include any suitable hardware and software for integrating with the data store and handling most of the business logic and data access to the application as needed to implement aspects of the application to the client device. The application server provides an access control service that collaborates with the data repository, and in this example provides content that can be served by the web server to the user in the form of HTML, XML or another suitable structured language, such as text to be sent to the user , Graphics, audio, and / or video. All requests and responses, as well as handling of delivery of content between the client device 602 and the application server 608, can be handled by the web server 606. It should be appreciated that web and application servers are not required and are exemplary components only, since the structured code referred to herein may be executed on any suitable device or host machine as referred to anywhere herein .
데이터 저장소(610)는 특정 양태와 관련된 데이터를 저장하기 위한 복수의 개별 데이터 테이블, 데이터베이스 또는 또 다른 데이터 저장 메커니즘 및 매체를 포함할 수 있다. 예를 들어, 도시된 데이터 저장소는 제품 데이터(612) 및 사용자 정보(616)를 저장하고 제품 측을 위해 콘텐츠를 서비스하도록 사용될 수 있는 메커니즘을 포함한다. 상기 데이터 저장소는 또한 로그 또는 세션 데이터(614)를 저장하기 위한 메커니즘을 포함하는 것으로 보인다. 데이터 저장소에 저장될 필요가 있을 수 있는 그 밖의 다른 많은 양태, 가령, 페이지 이미지 정보 및 액세스 권한 정보가 존재할 수 있고 이들은 앞서 나열된 메커니즘들 중 임의의 것에 적절하게 또는 데이터 저장소(610)의 추가 메커니즘에 저장될 수 있음이 이해되어야 한다. 데이터 저장소(610)는, 이와 연관된 로직을 통해, 애플리케이션 서버(608)로부터의 명령을 수신하고, 이에 응답하여 데이터를 획득, 업데이트 또는 그 밖의 다른 방식으로 프로세싱하도록 동작한다. 하나의 예시에서, 사용자는 특정 유형의 아이템에 대해 검색 요청을 제출할 수 있다. 이 경우, 데이터 저장소는 사용자의 신원을 검증하기 위해 사용자 정보를 액세스하고 카탈로그 상세사항 정보를 액세스하여 상기 유형의 아이템에 대한 정보를 획득할 수 있다. 그 후 정보는 사용자에게 반환될 수 있다, 가령, 사용자가 사용자 장치(602) 상의 브라우저를 통해 볼 수 있는 웹 페이지 상에 나열된다. 특정 관심 아이템에 대한 정보가 전용 페이지 또는 브라우저의 창으로 관찰될 수 있다. The data store 610 may comprise a plurality of separate data tables, databases or other data storage mechanisms and media for storing data associated with a particular aspect. For example, the depicted data store includes product data 612 and user information 616 and a mechanism that can be used to service the content for the product side. The data store also appears to include a mechanism for storing log or session data 614. There may be many other aspects that may need to be stored in the data store, such as page image information and access privilege information, which may be appropriate to any of the previously listed mechanisms or to additional mechanisms of the data store 610 Lt; / RTI > The data store 610 is operative to receive instructions from the application server 608 via its associated logic and to acquire, update or otherwise process the data in response thereto. In one example, a user may submit a search request for a particular type of item. In this case, the data store may access the user information to verify the identity of the user and access catalog detail information to obtain information about the item of the type. The information may then be returned to the user, for example, on a web page that the user can view through a browser on the user device 602. [ Information about a particular item of interest can be viewed on a dedicated page or browser window.
일반적으로 각각의 서버는 일반적인 관리 및 상기 서버의 동작을 위한 실행 가능한 프로그램 명령을 제공하는 운영 체제를 포함할 것이며, 일반적으로 서버의 프로세서에 의해 실행될 때 서버로 하여금 이의 의도된 기능들을 수행하게 하는 명령을 저장하는 컴퓨터 판독형 매체를 포함할 것이다. 운영 체제 및 서버의 일반적인 기능에 대한 적절한 구현예가 알려져 있거나 상업적으로 이용 가능하고 해당 분야의 통상의 기술자에 의해, 특히, 본 명세서의 내용을 참조하여 쉽게 구현된다.Generally, each server will include an operating system that provides general management and executable program instructions for the operation of the server, and typically includes instructions that, when executed by a processor of the server, cause the server to perform its intended functions A computer readable medium storing a computer readable medium. Appropriate implementations of the general functionality of the operating system and server are known or commercially available and are readily implemented by one of ordinary skill in the art, particularly with reference to the present disclosure.
하나의 실시예에서의 환경은 하나 이상의 컴퓨터 네트워크 또는 직접 연결을 이용해, 통신 링크를 통해 상호연결되는 복수의 컴퓨터 시스템 및 구성요소를 이용하는 분산 컴퓨팅 환경이다. 그러나 해당 분야의 통상의 기술자라면 이러한 시스템이 도 6에 도시된 것보다 더 적거나 더 많은 구성요소를 갖는 시스템에서도 동일하게 동작할 수 있음을 알 것이다. 따라서 도 6의 시스템(600)의 도시는 설명을 위한 것이며 본 발명의 범위를 한정하려는 것이 아니다.An environment in one embodiment is a distributed computing environment that utilizes a plurality of computer systems and components interconnected over a communication link using one or more computer networks or direct connections. However, those of ordinary skill in the art will appreciate that such a system may operate identically in systems having fewer or more components than those shown in FIG. Thus, the illustration of the system 600 of FIG. 6 is for illustrative purposes and is not intended to limit the scope of the present invention.
본 명세서에 기재되고 암시되는 다양한 실시예가 다양한 동작 환경에서 구현될 수 있으며, 이는 일부 경우, 하나 이상의 사용자 컴퓨터, 컴퓨팅 장치, 또는 복수의 애플리케이션 중 임의의 것을 동작하도록 사용될 수 있는 프로세싱 장치를 포함할 수 있다. 사용자 또는 클라이언트 장치는 여러 범용 개인 컴퓨터, 가령, 표준 운영 체제를 운영하는 데스크톱 또는 랩톱 컴퓨터뿐 아니라 모바일 소프트웨어를 운영하고 복수의 네트워킹 및 메시징 프로토콜을 지원할 수 있는 셀룰러, 무선, 및 핸드헬드 장치 중 임의의 것을 포함할 수 있다. 또한 이러한 시스템은 이러한 개발 및 데이터베이스 관리 목적으로, 다양한 상업적으로 이용 가능한 운영 체제 및 그 밖의 다른 알려진 애플리케이션 중 임의의 것을 운영하는 복수의 워크스테이션을 포함할 수 있다. 또한 이들 장치는 그 밖의 다른 전자 장치, 가령, 더미 단말기(dummy terminal), 씬-클라이언트(thin-client), 및 네트워크를 통해 통신할 수 있는 그 밖의 다른 장치를 포함할 수 있다.Various embodiments described and illustrated herein may be implemented in a variety of operating environments, which may include, in some cases, one or more user computers, a computing device, or a processing device that may be used to operate any of a plurality of applications have. The user or client device may be any general purpose personal computer, such as a desktop or laptop computer running a standard operating system, as well as any of cellular, wireless, and handheld devices capable of operating mobile software and supporting multiple networking and messaging protocols ≪ / RTI > Such systems may also include a plurality of workstations running any of a variety of commercially available operating systems and other known applications for such development and database management purposes. These devices may also include other electronic devices, such as a dummy terminal, a thin-client, and other devices capable of communicating over a network.
대부분의 실시예는 다양한 상용화된 프로토콜, 가령, TCP/IP, OSI, FTP, UPnP, NFS, CIFS, 및 AppleTalk 중 임의의 것을 이용하여 통신을 지원하기 위해 해당 분야의 통상의 기술자에게 친숙할 적어도 하나의 네트워크를 이용한다. 또한 상기 네트워크는 로컬 영역 네트워크, 광역 네트워크, 가상 사설망, 인터넷, 인트라넷, 익스트라넷, 공중 교환 전화망, 적외선 네트워크, 무선 네트워크, 및 이들의 임의의 조합일 수 있다. Most embodiments utilize at least one protocol that is familiar to those of ordinary skill in the art for supporting communications using any of a variety of commercially available protocols, such as TCP / IP, OSI, FTP, UPnP, NFS, CIFS, Network. The network may also be a local area network, a wide area network, a virtual private network, the Internet, an intranet, an extranet, a public switched telephone network, an infrared network, a wireless network, and any combination thereof.
웹 서버를 이용하는 실시예에서, 상기 웹 서버는 다양한 서버 또는 미드-티어 애플리케이션(mid-tier application), 가령, HTTP 서버, FTP 서버, CGI 서버, 데이터 서버, Java 서버, 및 비즈니스 애플리케이션 서버 중 임의의 것을 운영할 수 있다. 상기 서버(들)는 또한, 임의의 프로그램 언어, 가령, Java®, C, C# 또는 C++ 또는 임의의 스크립팅 언어, 가령, Perl, Python, 또는 TCL뿐 아니라 이들의 조합으로 써진 하나 이상의 스크립트 또는 프로그램으로 구현될 수 있는 하나 이상의 웹 애플리케이션을 실행함으로써, 사용자 장치로부터 요청에 응답하여 프로그램 또는 스크립트를 실행할 수 있다. 상기 서버(들)는 또한 데이터베이스 서버, 비-제한적 예를 들면, Oracle®, Microsoft®, Sybase®, 및 IBM®로부터 상업적으로 이용 가능한 것들을 포함할 수 있다. In an embodiment using a web server, the web server may be any of a variety of servers or mid-tier applications, such as an HTTP server, an FTP server, a CGI server, a data server, a Java server, You can operate things. The server (s) may also be implemented in one or more scripts or programs written in any programming language, such as Java®, C, C # or C ++ or any scripting language, such as Perl, Python, or TCL, By executing one or more web applications that may be implemented, a program or script may be executed in response to a request from a user device. The server (s) is also a database server, a non-limiting may comprise, for example, Oracle ®, Microsoft ®, Sybase ®, and those commercially available from the IBM ®.
환경은 앞서 언급된 바와 같이 다양한 데이터 저장소 및 그 밖의 다른 메모리 및 저장 매체를 포함할 수 있다. 이들은 다양한 위치, 가령, 하나 이상의 컴퓨터에 로컬한(및/또는 내부에 위치하는) 또는 네트워크를 통해 컴퓨터들 중 일부 또는 전부로부터 원격지에 위치하는 저장 매체 내에 있을 수 있다. 실시예의 특정 세트에서, 정보가 해당 분야의 통상의 기술자에게 친숙한 저장-영역 네트워크("SAN") 내에 위치할 수 있다. 마찬가지로, 컴퓨터, 서버 또는 그 밖의 다른 네트워크 장치의 속성인 기능을 수행하기 위한 임의의 필수 파일이 경우에 따라 로컬하게 및/또는 원격으로 저장될 수 있다. 시스템이 컴퓨터화된 장치를 포함하는 경우, 이러한 각각의 장치는 버스를 통해 전기적으로 연결될 수 있는 하드웨어 요소를 포함할 수 있고, 상기 요소는, 예를 들어, 적어도 하나의 중앙 처리 유닛(CPU), 적어도 하나의 입력 장치(가령, 마우스, 키보드, 제어기, 터치 스크린 또는 키패드), 및 적어도 하나의 출력 장치(가령, 디스플레이 장치, 인쇄기, 또는 스피커)를 포함할 수 있다. 이러한 시스템은 또한 하나 이상의 저장 장치, 가령, 디스크 드라이브, 광학 저장 장치, 및 솔리드-상태 저장 장치, 가령, 랜덤 액세스 메모리("RAM") 또는 리드-온리 메모리("ROM")뿐 아니라 이동식 매체 장치, 메모리 카드, 플래시 카드 등까지 포함할 수 있다.The environment may include various data storage and other memory and storage media as previously mentioned. They may be in a variety of locations, e.g., storage media located locally (and / or internally) on one or more computers or remotely from some or all of the computers over a network. In a particular set of embodiments, the information may be located within a storage-area network ("SAN") familiar to those of ordinary skill in the art. Likewise, any required files for performing functions that are attributes of a computer, server, or other network device may be stored locally and / or remotely, as the case may be. When the system includes a computerized device, each of these devices may comprise a hardware component that can be electrically connected via a bus, the component including, for example, at least one central processing unit (CPU) At least one input device (e.g., a mouse, keyboard, controller, touch screen or keypad), and at least one output device (e.g., a display device, a printer, or a speaker). Such systems may also include one or more storage devices such as disk drives, optical storage devices, and solid-state storage devices such as random access memory ("RAM") or read- , A memory card, a flash card, and the like.
또한 이러한 장치는 앞서 기재된 바와 같이 컴퓨터-판독형 저장 매체 리더, 통신 장치(가령, 모뎀, 네트워크 카드(무선 또는 유선), 적외선 통신 장치 등), 및 동작 메모리를 포함할 수 있다. 컴퓨터 판독형 저장 매체 리더는, 원격, 로컬, 고정식 및/또는 이동식 저장 장치뿐 아니라 컴퓨터 판독형 정보를 일시적으로 및/또는 더 영구적으로 포함, 저장, 송신 및 불러오기 위한 저장 매체를 나타내는 컴퓨터 판독형 저장 매체와 연결 또는 이를 수용하도록 구성될 수 있다. 상기 시스템 및 다양한 장치는 또한 일반적으로 적어도 하나의 작업 메모리 장치, 가령, 운영 체제 및 애플리케이션 프로그램, 가령, 클라이언트 애플리케이션 또는 웹 브라우저 내에 위치하는 복수의 소프트웨어 애플리케이션, 모듈, 서비스, 또는 그 밖의 다른 요소를 포함할 것이다. 대안적 실시예는 앞서 기재된 바의 다양한 변형예를 가질 수 있음이 자명할 것이다. 예를 들어, 또한 커스텀화된 하드웨어가 사용되거나 및/또는 특정 요소가 하드웨어, 소프트웨어(가령, 휴대용 소프트웨어, 가령, 애플릿(applet)), 또는 둘 모두로 구현될 수 있다. 덧붙여, 그 밖의 다른 컴퓨팅 장치, 가령, 네트워크 입/출력 장치로의 연결이 채용될 수 있다. Such devices may also include a computer-readable storage medium reader, a communication device (e.g., a modem, a network card (wireless or wired), an infrared communication device, etc.), and an operating memory as previously described. The computer readable storage medium readable medium may be a computer readable storage medium having stored thereon a storage medium for temporarily, permanently and / or more permanently storing, transmitting and retrieving computer readable information, as well as remote, local, fixed and / May be configured to connect to or accept the storage medium. The system and various devices also generally include at least one working memory device, e.g., an operating system and an application program, e.g., a plurality of software applications, modules, services, or other elements located within a client application or web browser something to do. It will be appreciated that alternative embodiments may have various modifications as described above. For example, customized hardware may also be used and / or certain elements may be implemented in hardware, software (e.g., portable software, such as an applet), or both. In addition, connections to other computing devices, such as network I / O devices, may be employed.
코드 또는 코드의 일부분을 담기 위한 저장 매체 및 컴퓨터 판독형 매체가 종래 기술에서 알려진 또는 사용되는 임의의 적절한 매체, 가령, 저장 매체 및 통신 매체, 비제한적 예를 들면, 정보, 가령, 컴퓨터 판독형 명령, 데이터 구조, 프로그램 모듈, 또는 그 밖의 다른 데이터의 저장 및/또는 송신을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체, 가령, RAM, ROM, EEPROM, 플래시 메모리 또는 그 밖의 다른 메모리 기법, CD-ROM, 디지털 다목적 디스크(DVD) 또는 그 밖의 다른 광학 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 그 밖의 다른 자기 저장장치 또는 원하는 정보를 저장하도록 사용될 수 있고 시스템 장치에 의해 액세스될 수 있는 그 밖의 다른 임의의 매체를 포함할 수 있다. 본 명세서에 제공되는 설명 및 기법을 기초로 해당 분야의 통상의 기술자라면 다양한 실시예를 구현하기 위한 그 밖의 다른 방식 및/또는 방법을 알 것이다.Storage medium and computer readable medium for containing a portion of a code or code is any suitable medium known or used in the art, such as storage media and communication media, including, but not limited to, information, Volatile, removable and non-removable media, such as RAM, ROM, EEPROM, flash memory or other removable media implemented in any method or technology for storage and / or transmission of data, data structures, program modules, Magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other information storage medium, such as a CD-ROM, a digital versatile disk (DVD) or other optical storage device, Or any other medium that can be accessed by a system device. Those skilled in the art will recognize other methods and / or methods for implementing various embodiments based on the description and techniques provided herein.
따라서 명세서 및 도면은 제한이 아니라 설명 목적으로 간주된다. 그러나 특허청구범위에서 제공되는 본 발명의 더 넓은 사상 및 범위 내에서 다양한 수정 및 변경이 이뤄질 수 있음이 자명할 것이다. The specification and drawings are, therefore, to be regarded in an illustrative rather than a restrictive sense. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims.

Claims (15)

  1. 적어도 하나의 프로세서, 및
    상기 적어도 하나의 프로세서에 의해 실행될 때 컴퓨팅 장치로 하여금
    하나 이상의 가상 머신을 관리하고 메모리의 제 1 부분으로의 액세스 권한을 갖는 하이퍼바이저, 및
    상기 하이퍼바이저에 의해 액세스될 수 없는 메모리의 적어도 제 2 부분으로의 액세스 권한을 갖는 특권 서비스 - 상기 특권 서비스는
    컴퓨팅 장치에 키를 저장하고,
    하이퍼바이저 또는 하나 이상의 가상 머신 중 적어도 하나로부터의 키를 이용하기 위한 요청을 수신하며,
    컴퓨팅 장치에 저장된 키를 적어도 부분적으로 기초로 하여 상기 요청에 대한 응답을 생성하도록 동작함 -
    를 구현하도록 하는 명령을 포함하는 메모리
    를 포함하는, 컴퓨팅 장치.
    At least one processor, and
    When executed by the at least one processor, cause the computing device
    A hypervisor that manages one or more virtual machines and has access to a first portion of memory, and
    A privileged service having access rights to at least a second portion of a memory that can not be accessed by the hypervisor,
    Storing the key on the computing device,
    A request to use a key from at least one of a hypervisor or one or more virtual machines,
    Operable to generate a response to the request based at least in part on a key stored in the computing device,
    RTI ID = 0.0 > memory < / RTI >
    And a computing device.
  2. 제1항에 있어서, 상기 특권 서비스는
    암호화 프로세서(cryptographic processor), 원격 관리 카드, 베이스보드 관리 제어기(BMC), 시스템 관리 모드(SMM)에서 실행 중인 컴포넌트, 또는 관리 엔진(manageability engine) 중 적어도 하나를 이용해 실행되는, 컴퓨팅 장치.
    2. The method of claim 1,
    Wherein the computing device is implemented using at least one of a cryptographic processor, a remote management card, a baseboard management controller (BMC), a component running in a system management mode (SMM), or a manageability engine.
  3. 제1항에 있어서, 메모리의 제 2 부분은
    하나 이상의 범위 레지스터(range register)를 이용해 분할(partition)된 메모리 메모리의 일부분, 하나 이상의 코-프로세서(co-processor) 내부 메모리, 하나 이상의 코-프로세서에 부착된 메모리, 하나 이상의 모드에 특화된 레지스터, 또는 특정 암호 키 레지스터 중 적어도 하나인, 컴퓨팅 장치.
    2. The method of claim 1 wherein the second portion of the memory
    A portion of memory memory partitioned using one or more range registers, one or more co-processor internal memories, a memory attached to one or more co-processors, one or more mode-specific registers, Or a specific cryptographic key register.
  4. 제1항에 있어서, 상기 특권 서비스는
    상기 하이퍼바이저가 변경됐다는 검출에 응답하여 외부 개체에 통지하거나,
    상기 하이퍼바이저가 변경됐다는 검출에 응답하여 키를 삭제하도록 더 동작하는, 컴퓨팅 장치.
    2. The method of claim 1,
    Notifying an external entity in response to detection that the hypervisor has been changed,
    And to delete the key in response to detecting that the hypervisor has changed.
  5. 제1항에 있어서,
    시스템 관리 인터럽트(SMI)를 이용함으로써 특권 서비스로 요청을 제출하도록 구성된 컴포넌트 - 상기 컴포넌트는 하이퍼바이저 또는 가상 머신 중 적어도 하나 내에 위치함 -
    를 더 포함하는, 컴퓨팅 장치.
    The method according to claim 1,
    A component configured to submit a request to a privileged service by using a system management interrupt (SMI), the component being located in at least one of a hypervisor or a virtual machine,
    Further comprising:
  6. 제1항에 있어서, 상기 키는 신뢰 플랫폼 모듈(TPM)에 저장되고 특권 서비스는 하이퍼바이저 및 하나 이상의 가상 머신에 의한 TPM에 저장된 키로의 액세스를 제어하도록 더 동작하는, 컴퓨팅 장치.2. The computing device of claim 1, wherein the key is stored in a trusted platform module (TPM) and the privileged service is further operative to control access to a key stored in the TPM by the hypervisor and the one or more virtual machines.
  7. 제1항에 있어서, 상기 특권 서비스는
    부팅 시 하이퍼바이저와 연관된 값의 제 1 세트를 측정하여 하이퍼바이저를 검증하도록 더 동작하는, 컴퓨팅 장치.
    2. The method of claim 1,
    And further operable to verify the hypervisor by measuring a first set of values associated with the hypervisor at boot-up.
  8. 제7항에 있어서, 상기 특권 서비스는
    하이퍼바이저를 검증하기 위해 호스트 컴퓨팅 장치 상의 가상 머신으로부터 제 1 시스템 관리 인터럽트(SMI)를 수신하며,
    SMI 핸들러에 의해 상기 하이퍼바이저와 연관된 값의 제 2 세트를 측정하며,
    상기 SMI 핸들러에 의해 상기 값의 제 2 세트를 값의 제 1 세트와 비교하며,
    값의 제 2 세트가 부팅 시 측정된 값의 제 1 세트와 일치하는 경우 SMI 핸들러에 의해 하이퍼바이저를 검증하며,
    가상 머신으로부터 제 2 SMI를 수신하여 키를 불러오거나 새 키를 저장하도록
    더 동작하는, 컴퓨팅 장치.
    8. The method of claim 7, wherein the privileged service
    Receive a first system management interrupt (SMI) from a virtual machine on the host computing device to verify the hypervisor,
    Measuring a second set of values associated with the hypervisor by an SMI handler,
    Compare the second set of values with the first set of values by the SMI handler,
    Verifies the hypervisor by the SMI handler if the second set of values matches the first set of values measured at boot time,
    To receive a second SMI from the virtual machine and load the key or store the new key
    Further operating.
  9. 제1항에 있어서, 상기 특권 서비스는
    가상 TPM을 하나 이상의 가상 머신으로 노출시키도록 더 동작하며, 상기 하나 이상의 가상 머신은 시스템 관리 인터럽트(SMI)을 이용하여 키를 액세스하도록 동작하며 상기 키는 하이퍼바이저에 의해 액세스될 수 없는, 컴퓨팅 장치.
    2. The method of claim 1,
    Wherein the at least one virtual machine is further operative to expose a virtual TPM to one or more virtual machines, the one or more virtual machines being operative to access a key using a system management interrupt (SMI), the key being not accessible by a hypervisor, .
  10. 제1항에 있어서, 응답을 생성하는 것은 암호 키와 연관된 인증 정보를 더 기초로 하는, 컴퓨팅 장치. 2. The computing device of claim 1, wherein generating a response is further based on authentication information associated with the cryptographic key.
  11. 제1항에 있어서, 키를 이용하기 위한 요청은
    키를 이용해 하나 이상의 계산이 수행되기 위한 요청, 또는
    키를 이용해 암호화 또는 서명되는 하나 이상의 메시지를 송신하기 위한 요청
    중 적어도 하나를 더 포함하는, 컴퓨팅 장치.
    The method of claim 1, wherein the request to use the key comprises:
    A request to perform one or more calculations using a key, or
    A request to send one or more messages encrypted or signed with a key
    ≪ / RTI >
  12. 실행 가능 명령에 의해 설정된 하나 이상의 컴퓨터 시스템의 제어 하에서,
    특권 서비스에 의해, 호스트 컴퓨팅 장치에 키를 저장하는 단계 - 상기 호스트 컴퓨팅 장치는 하나 이상의 가상 머신을 관리하는 하이퍼바이저를 포함하고 상기 특권 서비스는 상기 하이퍼바이저에 의해 액세스될 수 없는 메모리의 적어도 일부분에 대한 액세스 권한을 가짐 - ,
    특권 서비스에 의해 키를 이용하기 위해 요청하는 신호를 수신하는 단계 - 상기 신호는 하이퍼바이저 또는 하나 이상의 가상 머신 중 적어도 하나로부터 수신됨 - , 및
    상기 특권 서비스에 의해 요청에 대한 응답을 생성하는 단계 - 상기 응답은 컴퓨팅 장치에 저장된 키를 적어도 부분적으로 기초로 함 -
    를 포함하는, 컴퓨터로 구현되는 방법.
    Under the control of one or more computer systems set by an executable instruction,
    Storing a key in a host computing device by a privileged service, the host computing device including a hypervisor managing one or more virtual machines, the privileged service being operable to at least a portion of a memory that is not accessible by the hypervisor Have access to -,
    Receiving a signal requesting to use a key by a privileged service, the signal being received from at least one of a hypervisor or one or more virtual machines; and
    Generating a response to the request by the privileged service, the response based at least in part on a key stored on the computing device,
    ≪ / RTI >
  13. 제12항에 있어서,
    하이퍼바이저와 연관된 하나 이상의 값을 측정하는 단계,
    하나 이상의 값을 적어도 부분적으로 기초로 하여 하이퍼바이저가 변경됐는지 여부를 검출하는 단계
    를 더 포함하는, 컴퓨터로 구현되는 방법.
    13. The method of claim 12,
    Measuring one or more values associated with the hypervisor,
    Detecting whether the hypervisor has changed, based at least in part on one or more values;
    ≪ / RTI >
  14. 제13항에 있어서, 상기 하이퍼바이저가 변경됐다는 검출에 응답하여,
    외부 개체로 통지를 전송 - 상기 통지는 하이퍼바이저가 변경됐음을 가리킴 - , 또는
    키를 삭제
    중 적어도 하나를 수행하는 단계
    를 더 포함하는, 컴퓨터로 구현되는 방법.
    14. The method of claim 13, wherein, in response to detecting that the hypervisor has changed,
    Send notification to external entity - said notification indicates that the hypervisor has changed - or
    Delete key
    ≪ RTI ID = 0.0 >
    ≪ / RTI >
  15. 제12항에 있어서, 키를 저장하는 단계는
    신뢰 플랫폼 모듈(TPM)에 키를 저장하는 단계 - 상기 특권 서비스는 TPM에 대한 배타적 액세스 권한을 갖도록 구성됨 - 를 더 포함하는, 컴퓨터로 구현되는 방법.
    13. The method of claim 12, wherein storing the key comprises:
    Storing a key in a trusted platform module (TPM), wherein the privileged service is configured to have exclusive access to the TPM.
KR1020157021806A 2013-01-22 2014-01-22 Privileged cryptographic services in a virtualized environment KR101696131B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US13/746,924 2013-01-22
US13/746,924 US9037854B2 (en) 2013-01-22 2013-01-22 Privileged cryptographic services in a virtualized environment
PCT/US2014/012600 WO2014116740A2 (en) 2013-01-22 2014-01-22 Privileged cryptographic services in a virtualized environment

Publications (2)

Publication Number Publication Date
KR20150106935A true KR20150106935A (en) 2015-09-22
KR101696131B1 KR101696131B1 (en) 2017-01-12

Family

ID=51208718

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157021806A KR101696131B1 (en) 2013-01-22 2014-01-22 Privileged cryptographic services in a virtualized environment

Country Status (9)

Country Link
US (1) US9037854B2 (en)
EP (1) EP2949074B1 (en)
JP (1) JP6141455B2 (en)
KR (1) KR101696131B1 (en)
CN (1) CN104982005B (en)
AU (1) AU2014209467B2 (en)
CA (1) CA2898756C (en)
SG (1) SG11201505653PA (en)
WO (1) WO2014116740A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200060157A (en) * 2018-11-22 2020-05-29 한양대학교 산학협력단 Method and apparatus for detection alteration of smram

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10341281B2 (en) 2013-01-22 2019-07-02 Amazon Technologies, Inc. Access control policies associated with freeform metadata
US9576141B2 (en) 2013-01-22 2017-02-21 Amazon Technologies, Inc. Access controls on the use of freeform metadata
US10579405B1 (en) * 2013-03-13 2020-03-03 Amazon Technologies, Inc. Parallel virtual machine managers
US9680862B2 (en) * 2014-07-01 2017-06-13 Fireeye, Inc. Trusted threat-aware microvisor
US9594927B2 (en) * 2014-09-10 2017-03-14 Intel Corporation Providing a trusted execution environment using a processor
US10303879B1 (en) * 2014-11-06 2019-05-28 Amazon Technologies, Inc. Multi-tenant trusted platform modules
EP3032453B1 (en) * 2014-12-08 2019-11-13 eperi GmbH Storing data in a server computer with deployable encryption/decryption infrastructure
US10754967B1 (en) * 2014-12-15 2020-08-25 Marvell Asia Pte, Ltd. Secure interrupt handling between security zones
US9459907B2 (en) 2015-02-24 2016-10-04 Red Hat Israel, Ltd. Guest controlled malicious payload protection
EP3070607B1 (en) * 2015-03-20 2020-12-09 Virtual Open Systems Compute node supporting virtual machines and services
US10642753B1 (en) 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
US10726127B1 (en) 2015-06-30 2020-07-28 Fireeye, Inc. System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US10216927B1 (en) 2015-06-30 2019-02-26 Fireeye, Inc. System and method for protecting memory pages associated with a process using a virtualization layer
US10395029B1 (en) 2015-06-30 2019-08-27 Fireeye, Inc. Virtual system and method with threat protection
US10075296B2 (en) 2015-07-02 2018-09-11 Intel Corporation Loading and virtualizing cryptographic keys
US10033759B1 (en) 2015-09-28 2018-07-24 Fireeye, Inc. System and method of threat detection under hypervisor control
CN105718794B (en) * 2016-01-27 2018-06-05 华为技术有限公司 The method and system of safeguard protection are carried out to virtual machine based on VTPM
JP2017147654A (en) * 2016-02-18 2017-08-24 株式会社日立ソリューションズ Virtual terminal management device, and document protection method
US10348500B2 (en) * 2016-05-05 2019-07-09 Adventium Enterprises, Llc Key material management
US10148444B2 (en) * 2016-08-04 2018-12-04 Dell Products L.P. Systems and methods for storing administrator secrets in management controller-owned cryptoprocessor
WO2018162040A1 (en) * 2017-03-07 2018-09-13 Huawei Technologies Co., Ltd. Hypervisor measurement agent
US10467439B2 (en) * 2017-07-05 2019-11-05 Dell Products, L.P. Detecting tampering of memory contents in an information handling system
US20190087580A1 (en) * 2017-09-19 2019-03-21 Microsoft Technology Licensing, Llc Secure launch for a hypervisor
US10657071B2 (en) * 2017-09-25 2020-05-19 Intel Corporation System, apparatus and method for page granular, software controlled multiple key memory encryption
WO2019174048A1 (en) * 2018-03-16 2019-09-19 华为技术有限公司 Container escape detection method, apparatus and system, and storage medium
US20200356670A1 (en) * 2019-05-08 2020-11-12 Baidu Usa Llc Tpm-based secure multiparty computing system using a non-bypassable gateway
CN110430046B (en) * 2019-07-18 2021-07-06 上海交通大学 Cloud environment-oriented trusted platform module two-stage key copying method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080147555A1 (en) * 2006-12-18 2008-06-19 Daryl Carvis Cromer System and Method for Using a Hypervisor to Control Access to a Rental Computer
US20100082991A1 (en) * 2008-09-30 2010-04-01 Hewlett-Packard Development Company, L.P. Trusted key management for virtualized platforms
US20110307888A1 (en) * 2010-06-15 2011-12-15 Microsoft Corporation Protection of virtual machines executing on a host device
US20120027213A1 (en) * 2005-05-13 2012-02-02 Scarlata Vincent R Method And Apparatus For Remotely Provisioning Software-Based Security Coprocessors

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6557104B2 (en) * 1997-05-02 2003-04-29 Phoenix Technologies Ltd. Method and apparatus for secure processing of cryptographic keys
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US7493409B2 (en) * 2003-04-10 2009-02-17 International Business Machines Corporation Apparatus, system and method for implementing a generalized queue pair in a system area network
US7552419B2 (en) * 2004-03-18 2009-06-23 Intel Corporation Sharing trusted hardware across multiple operational environments
US20050289311A1 (en) * 2004-06-29 2005-12-29 David Durham System and method for secure inter-platform and intra-platform communications
US7587595B2 (en) * 2005-05-13 2009-09-08 Intel Corporation Method and apparatus for providing software-based security coprocessors
US8973094B2 (en) * 2006-05-26 2015-03-03 Intel Corporation Execution of a secured environment initialization instruction on a point-to-point interconnect system
US20080134321A1 (en) * 2006-12-05 2008-06-05 Priya Rajagopal Tamper-resistant method and apparatus for verification and measurement of host agent dynamic data updates
US8254579B1 (en) * 2007-01-31 2012-08-28 Hewlett-Packard Development Company, L.P. Cryptographic key distribution using a trusted computing platform
US8151262B2 (en) * 2007-03-30 2012-04-03 Lenovo (Singapore) Pte. Ltd. System and method for reporting the trusted state of a virtual machine
US8010763B2 (en) * 2007-08-02 2011-08-30 International Business Machines Corporation Hypervisor-enforced isolation of entities within a single logical partition's virtual address space
JP2009223787A (en) * 2008-03-18 2009-10-01 Hitachi Software Eng Co Ltd Information processor and processing method, and program
US20120054486A1 (en) * 2010-08-31 2012-03-01 MindTree Limited Securing A Virtual Environment And Virtual Machines
TW201241662A (en) * 2010-12-21 2012-10-16 Ibm Virtual machine validation
CN102542185B (en) * 2010-12-23 2016-05-04 伊姆西公司 The method and apparatus that software in sclerosis random access storage device is carried out
US8953796B2 (en) * 2011-06-29 2015-02-10 International Business Machines Corporation Techniques for accessing features of a hardware adapter
US8694781B1 (en) * 2012-03-30 2014-04-08 Emc Corporation Techniques for providing hardware security module operability
US9071587B2 (en) * 2012-08-27 2015-06-30 International Business Machines Corporation Optimizing deployment of virtual machines by pre-generating a virtual machine's first-boot metadata by cloud controller
US8832435B2 (en) * 2012-12-17 2014-09-09 International Business Machines Corporation Providing a real-time indication of platform trust

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120027213A1 (en) * 2005-05-13 2012-02-02 Scarlata Vincent R Method And Apparatus For Remotely Provisioning Software-Based Security Coprocessors
US20080147555A1 (en) * 2006-12-18 2008-06-19 Daryl Carvis Cromer System and Method for Using a Hypervisor to Control Access to a Rental Computer
US20100082991A1 (en) * 2008-09-30 2010-04-01 Hewlett-Packard Development Company, L.P. Trusted key management for virtualized platforms
US20110307888A1 (en) * 2010-06-15 2011-12-15 Microsoft Corporation Protection of virtual machines executing on a host device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200060157A (en) * 2018-11-22 2020-05-29 한양대학교 산학협력단 Method and apparatus for detection alteration of smram

Also Published As

Publication number Publication date
AU2014209467B2 (en) 2016-09-08
AU2014209467A1 (en) 2015-08-27
US20140208123A1 (en) 2014-07-24
KR101696131B1 (en) 2017-01-12
JP6141455B2 (en) 2017-06-07
EP2949074B1 (en) 2018-11-21
SG11201505653PA (en) 2015-08-28
EP2949074A2 (en) 2015-12-02
EP2949074A4 (en) 2016-09-21
CA2898756C (en) 2018-10-02
US9037854B2 (en) 2015-05-19
CA2898756A1 (en) 2014-07-31
CN104982005A (en) 2015-10-14
WO2014116740A2 (en) 2014-07-31
JP2016511872A (en) 2016-04-21
CN104982005B (en) 2018-05-29
WO2014116740A3 (en) 2014-10-09

Similar Documents

Publication Publication Date Title
KR101696131B1 (en) Privileged cryptographic services in a virtualized environment
US10621366B2 (en) Chained security systems
US9465652B1 (en) Hardware-based mechanisms for updating computer systems
US9576155B2 (en) Trusted computing host
KR101704329B1 (en) Securing results of privileged computing operations
US9792143B1 (en) Platform secure execution modes
US20140075522A1 (en) Reliable verification of hypervisor integrity
US11050844B2 (en) User controlled hardware validation
Berger et al. Scalable attestation: A step toward secure and trusted clouds
US20160164880A1 (en) Systems And Methods Of Transaction Authorization Using Server-Triggered Switching To An Integrity-Attested Virtual Machine
US10685119B2 (en) Trusted malware scanning
US10635821B2 (en) Method and apparatus for launching a device
US20190384918A1 (en) Measuring integrity of computing system
US10250603B1 (en) Connection control for virtualized environments
US9537738B2 (en) Reporting platform information using a secure agent
Park et al. Data firewall: a TPM-based security framework for protecting data in thick client mobile environment
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
FPAY Annual fee payment

Payment date: 20191224

Year of fee payment: 4