KR20150106935A - 가상화 환경에서의 특권 암호화 서비스 - Google Patents

가상화 환경에서의 특권 암호화 서비스 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
computing device
privileged
service
Prior art date
Application number
KR1020157021806A
Other languages
English (en)
Other versions
KR101696131B1 (ko
Inventor
그레고리 브랜체크 로스
나치케스 라오 포트라팔리
Original Assignee
아마존 테크놀로지스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아마존 테크놀로지스, 인크. filed Critical 아마존 테크놀로지스, 인크.
Publication of KR20150106935A publication Critical patent/KR20150106935A/ko
Application granted granted Critical
Publication of KR101696131B1 publication Critical patent/KR101696131B1/ko

Links

Images

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

특권 암호화 서비스, 가령, 시스템 관리 모드(SMM)에서 실행 중인 서비스가 기재된다. 상기 특권 서비스는 멀티테넌트 원격 프로그램 실행 환경에서 암호 키 및/또는 또 다른 보안 자원을 저장 및 관리하도록 동작 가능하다. 특권 서비스는 암호 키를 이용하기 위한 요청을 수신하고 이들 요청에 대한 응답을 발행할 수 있다. 덧붙여, 특권 서비스는 하이퍼바이저의 조작의 증거를 검출하기 위해, 런타임 동안 (가령, 주기적으로 또는 요청에 응답하여) 하이퍼바이저를 측정할 수 있다. 특권 서비스가 하이퍼바이저보다 더 특권 있는 시스템 관리 모드에서 동작 중이기 때문에, 상기 특권 서비스는 가상 머신 탈출 및 그 밖의 다른 하이퍼바이저 공격에 대해 강건할 수 있다.

Description

가상화 환경에서의 특권 암호화 서비스{PRIVILEGED CRYPTOGRAPHIC SERVICES IN A VIRTUALIZED ENVIRONMENT}
네트워크, 가령, 인터넷에서 점점 증가하는 개수의 애플리케이션 및 서비스가 이용 가능해짐에 따라, 증가하는 개수의 콘텐츠, 애플리케이션 및/또는 서비스 제공자가 클라우드 컴퓨팅 같은 기법에 의존하고 있다. 일반적으로 클라우드 컴퓨팅은 서비스, 가령, 웹 서비스를 통해 전자 자원에 액세스를 제공하기 위한 방식이며, 여기서, 이들 서비스를 지원하기 위해 사용되는 하드웨어 및/또는 소프트웨어가 임의의 특정한 때에 서비스의 수요를 충족하기 위해 동적으로 확장 가능하다. 일반적으로 사용자 또는 고객은 클라우드를 통해 자원을 대여, 임대 또는 그 밖의 다른 방식으로 지원의 액세스를 위해 지불할 것이며, 따라서 필요한 하드웨어 및/또는 소프트웨어를 구매 및 유지할 필요가 없다.
이러한 맥락에서, 많은 클라우드 컴퓨팅 제공자가 가상화 및 멀티-테넌트 아키텍처를 이용하여 복수의 사용자가 기저 하드웨어 및/또는 소프트웨어 자원을 공유할 수 있게 한다. 가상화에 의해 컴퓨팅 서버, 저장 장치 또는 또 다른 자원이 특정 사용자와 연관되는(가령, 사용자에 의해 소유되는) 복수의 고립된 인스턴스들로 분할될 수 있다. 이로써 다양한 사용자가 클라우드 컴퓨팅 제공자의 자원을 이용해 자신의 애플리케이션을 원격으로 실행할 수 있다.
본 발명에 따르는 다양한 실시예가 다음의 도면을 참조하여 기재될 것이다.
도 1은 다양한 실시예에 따라, 암호 키 정보를 관리하는 특권 서비스의 하나의 예시를 도시한다.
도 2는 다양한 실시예에 따라, 신뢰 플랫폼 모듈(TPM)을 이용하는 특권 서비스 구현예의 하나의 예시를 도시한다.
도 3은 다양한 실시예에 따라, 호스트 컴퓨팅 장치 상에 특권 암호화 서비스를 제공하기 위한 예시적 프로세스를 도시한다.
도 4는 다양한 실시예에 따라, 하이퍼바이저를 측정하고 조작의 증거를 검출하기 위해 TPM을 이용하는 특권 서비스에 의해 수행될 수 있는 프로세스의 하나의 예시를 도시한다.
도 5는 다양한 실시예에 따라 사용될 수 있는 예시적 컴퓨팅 장치의 일반적인 컴포넌트의 세트의 논리적 배열을 도시한다.
도 6은 다양한 실시예에 따르는 양태를 구현하기 위한 환경의 하나의 예시를 도시한다.
이하의 기재에서 첨부된 도면의 다양한 실시예가 한정이 아닌 예시로서 설명될 것이다. 본 명세서의 다양한 실시예에 대한 참조는 반드시 동일한 실시예에 대한 것이 아니며 이러한 참조는 적어도 하나를 의미한다. 특정 구현예 및 그 밖의 다른 상세사항이 언급되지만, 단지 설명 목적으로만 이뤄짐이 이해되어야 한다. 해당 분야의 통상의 기술자는 특허청구범위의 사상 및 범위 내에서 그 밖의 다른 구성요소 및 구성이 사용될 수 있음을 알 것이다.
본 발명의 다양한 실시예에 따르는 시스템 및 방법이 가령, 가상화 컴퓨팅 환경에서 배치될 수 있는 컴퓨팅 시스템에서 보안을 관리하기 위한 종래의 방식에서 겪는 앞서 언급된 또는 그 밖의 다른 결함 중 하나 이상을 극복할 수 있다. 특히, 다양한 실시예는 특권 암호화 서비스(privileged cryptographic service), 가령, 시스템 관리 모드(SMM)로 실행 중인 서비스를 이용해, 암호 키 및/또는 멀티테넌트 원격 프로그램 실행 환경(가령, 클라우드 컴퓨팅 환경)에서의 그 밖의 다른 보안 자원을 저장 및 관리할 수 있다.
다양한 실시예에서, 서비스 제공자에 의해 하나 이상의 고객에게 멀티테넌트 원격 프로그램 실행 환경이 제공된다. 상기 환경은 복수의 호스트 컴퓨팅 장치를 포함할 수 있고, 여기서 각각의 호스트 컴퓨팅 장치는 하나 이상의 가상 머신을 관리하는 하이퍼바이저(hypervisor)를 포함한다. 각각의 가상 머신은 서비스 제공자의 특정 고객과 연관(가령, 고객에 의해 소유)될 수 있고 가상 머신이 서비스 제공자의 물리적 자원을 이용하는 고객을 대신하여 고객에 의해 제공되는 코드(가령, 애플리케이션, 서비스 등)를 실행할 수 있다.
종래의 멀티테넌트 원격 프로그램 실행 환경에서, 고객의 코드가 가상 머신의 환경을 빠져 나오고 하이퍼바이저의 맥락 내에서 동작할 수 있는 경우, 상기 코드는 호스트 컴퓨팅 장치 상에 있는 일부 고도로 민감한 정보 및 그 밖의 다른 자원으로의 액세스를 획득할 수 있다. 이러한 잠재적인 취약점은 종종 가상 머신 탈출(virtual machine escape)이라고 지칭된다. 예를 들어, 한 고객의 코드가 하이퍼바이저의 맥락 내에서 동작할 수 있는 경우, 코드는 또 다른 고객의 암호 키 및 그 밖의 다른 보안 정보로의 액세스를 획득하고, 이들 키를 또 다른 위치로 빼내며, 그 밖의 다른 많은 악의적 동작을 수행할 가능성이 있다.
다양한 실시예에서, 이러한 권한 없는 동작으로의 노출을 방지하거나 감소시키기 위해, 각각의 호스트 컴퓨팅 장치는 호스트 컴퓨팅 장치 상의 하이퍼바이저 및/또는 그 밖의 다른 운영 체제보다 더 특권을 갖는 시스템 관리 모드(SMM) 또는 그 밖의 다른 일부 모드에서 실행될 수 있는 또는 하이퍼바이저가 액세스할 수 없는 메모리의 적어도 일부분에 대한 액세스 권한을 갖는 특권 서비스(privileged service)를 포함한다. 예를 들어, 특권 서비스는 하이퍼바이저, 가상 머신 또는 그 밖의 다른 운영 체제에 의한 모든 정규 실행이 유예되고 특권 서비스가 실행되는 시스템 관리 모드에서 동작할 수 있다. 상기 특권 서비스는 하나 이상의 암호 키를 저장하고 관리할 수 있으며, 하이퍼바이저, 하나 이상의 가상 머신 및/또는 그 밖의 다른 개체로부터의 암호 키를 이용하기 위한 요청을 수신할 수 있고, 이들 요청에 대한 응답을 발행할 수 있다. 덧붙여, 특권 서비스는 하이퍼바이저 조작의 증거를 검출하기 위해 런타임(runtime) 중에(가령, 주기적으로 또는 요청에 응답하여) 하이퍼바이저를 측정할 수 있다. 특권 서비스가 하이퍼바이저보다 더 특권 있는 시스템 관리 모드에서 동작 중이기 때문에, 상기 특권 서비스는 가상 머신 탈출 및 그 밖의 다른 하이퍼바이저 공격에 대해 강건(robust)할 수 있다. 이러한 방식 하에서, 오염된 하이퍼바이저가 특권 서비스에 의해 관리되는 암호 키를 빼낼 수 없을 것이다. 덧붙여, 하이퍼바이저가 조작됐음이 검출되면, 키를 이용하지 못하게 막아지거나 그 밖의 다른 일부 동작이 수행, 가령, 모든 특권 서비스에 의해 저장되는 키 재료(key material)가 파괴될 수 있다.
일부 실시예에서, 호스트 컴퓨팅 장치 상의 신뢰 플랫폼 모듈(TPM: trusted platform module) 또는 그 밖의 다른 암호화 프로세서를 관리하기 위해 특권 서비스가 사용될 수 있다. 이들 실시예에서, TPM은 루트 키(root key)를 관리하고 SMM에서 실행 중인 특권 서비스만 추출 키(derived key)에 액세스할 수 있게 할 수 있다. 실제로 상기 SMM은 키의 사용을 하이퍼바이저 및 가상 머신에 제공할 수 있다. 하나의 실시예에서, 호스트 컴퓨팅 장치의 초기 부팅 동안, 신뢰되는 하이퍼바이저가 런칭됐음을 보장하기 위해, 특권 서비스가 하이퍼바이저의 하나 이상의 값을 측정할 수 있다. 그 후 런타임 중에, 시스템 관리 인터럽트(SMI: system management interrupt) 루틴이 사용되어 하이퍼바이저를 재측정하고 런타임 측정치를 부팅 시에 측정된 초기 값에 비교하여, 조작의 증거를 검출할 수 있다.
일부 실시예에서, SMI 핸들러에 의해 관리되고 하이퍼바이저에 의해 액세스될 수 없는 키(key)와 함께 가상 TPM 서비스를 가상 머신으로 제공하기 위해 특권 서비스가 사용될 수 있다. 신뢰 되는 키가 물리적 TPM에 심어져서, 키가 SMI 핸들러로만 전달됐음을 보장함으로써 가상 TPM 서비스를 복수의 고객에게 제공하는 복수의 하이퍼바이저를 포함하는 시스템 내 하이퍼바이저의 오염에 대해 보호할 수 있다. 이러한 방식으로 임의의 가상 머신 탈출은 한 고객의 암호 키를 다른 고객에게 노출하지 않을 것이다.
도 1은 다양한 실시예에 따라 암호 키 정보를 관리하는 특권 서비스의 예시(100)를 도시한다. 도시된 실시예에서, 호스트 컴퓨팅 장치(104)는 각각의 가상 머신이 고객(101, 102)과 연관되는 하나 이상의 가상 머신(105, 106)을 관리하는 하이퍼바이저(107)를 포함한다. 하나 이상의 가상 머신(105, 106)은 하나 이상의 고객(101, 102)에 의해 제공되는 코드(111, 112)를 실행시킬 수 있다. 고객은 가상 머신 상에서 실행될 코드를 네트워크(103), 가령, 인터넷을 통해 제공할 수 있다. 안전한 암호화 서비스를 제공하기 위해, 호스트 컴퓨팅 장치(104)는 특권 서비스(108)를 더 포함한다.
하나의 실시예에 따라, 특권 암호화 서비스(108)가 시스템 관리 모드(SMM) 또는 하이퍼바이저(107) 또는 또 다른 운영 체제보다 더 특권을 갖는 그 밖의 다른 모드로 호스트 컴퓨팅 장치(101) 상에서 실행 중이다. 하나의 실시예에서, SMM은 하이퍼바이저, 가상 머신 또는 그 밖의 다른 운영 체제에 의한 모든 정규 실행이 유예되고 특권 서비스가 실행되는 동작 모드이다. 하이퍼바이저, 가상 머신(VM) 또는 호스트 컴퓨팅 장치 상에서 실행 중인 그 밖의 다른 소프트웨어 코드에 의해 호출될 수 있는 시스템 관리 인터럽트(SMI)에 의해 SMM이 트리거될 수 있다. 본 명세서에 기재된 다양한 실시예는 SMM 또는 SMI 구현예에 한정되지 않으며 그 밖의 다른 임의의 동작 모드가 해당 분야의 통상의 기술자에게 자명할 바와 같이 가능하다. 예를 들어, 또 다른 구현예에서, 특권 서비스가 하이퍼바이저가 액세스 권한을 갖지 않는 메모리의 일부분으로의 액세스 권한을 가질 수 있다. 이는 특권 서비스에 배타적으로, 하나 이상의 범위 레지스터(range register)를 이용해 분할된(partition) 메인 메모리의 특정 부분을 특화시킴으로써 구현될 수 있다. 대안적으로, 특권 서비스는 하나 이상의 코-프로세서(co-processor) 내부의 메모리, 하나 이상의 모드에 특화된 레지스터, 또는 특정 암호 키 레지스터로의 배타적 액세스를 제공 받을 수 있다.
하나의 실시예에 따라, 특권 서비스(108)는 스스로 인증하고 하나 이상의 암호 키(109, 110) 및/또는 그 밖의 다른 보안 자원을 저장한다. 하나 이상의 키(109, 110)가 하이퍼바이저(107), 하나 이상의 가상 머신(105, 106) 및/또는 외부 컴퓨팅 장치로부터 수신될 수 있다. 일부 실시예에서, 가상 머신(105, 106) 중 하나에 의해 암호 키(109, 110)가 생성될 수 있다. 각각의 키가 특정 고객(101, 102)에 의해 소유되거나 및/또는 특정 가상 머신(105, 106)과 연관될 수 있다. 예를 들어, 키(110)가 가상 머신(111)과 연관되는 동안 키(109)는 가상 머신(105)과 연관될 수 있다.
하나의 실시예에 따르면, SMM에서 실행 중인 특권 서비스(108)가 또한 하이퍼바이저(107) 및/또는 가상 머신(105, 106)과 통신하고 특권 서비스가 저장하는 암호 키(109, 110)를 이용하기 위한 요청을 수신하도록 기능한다. 하나의 실시예에서, 시스템 관리 인터럽트 핸들러 루틴을 이용해 특권 서비스(108)가 호출된다. 예를 들어, 하이퍼바이저(107)로 하여금 특권 서비스(108)가 암호 키(109)를 이용하도록 요청하기 위해 SMI를 호출하게 하는 가상 머신(105)에서 실행 중인 컴포넌트에 의해 요청이 개시될 수 있다. 다양한 실시예에서, 요청은 암호 키의 이용을 요구하는 임의의 요청, 비제한적 예를 들면, 키를 이용해 하나 이상의 계산이 수행되기 위한 요청 또는 키를 이용해 암호화 또는 서명된 하나 이상의 메시지를 송신하기 위한 요청일 수 있다.
일부 실시예에서, 특권 서비스(108)는 요청에 응답하여 응답을 생성할 수 있으며, 이때 상기 응답은 서비스가 저장하는 암호 키를 적어도 부분적으로 기초로 한다. 일부 실시예에서, 요청의 일부로서, 상기 특권 서비스(108)는 또한 특정 키를 이용하도록 가상 머신을 인가하는 증명(proof)(가령, 인가 정보)을 수신할 수 있다. 상기 증명은 고객으로부터 하이퍼바이저 또는 상기 하이퍼바이저 상에서 실행 중인 가상 머신에 의해 수신될 수 있다. 상기 증명은 또한 하이퍼바이저 상에서 실행 중인 가상 머신에서 생성될 수 있다.
다양한 실시예에서, 특권 서비스(108)는 하이퍼바이저보다 더 특권 있는 모드에서 동작하기 때문에, 가상 머신 탈출 및/또는 하이퍼바이저 조작의 경우, 상기 하이퍼바이저는 특권 서비스에 의해 저장되는 키의 계정-교차 사용(cross-account use)이 막아질 수 있다.
도 2는 다양한 실시예에 따라, 신뢰 플랫폼 모듈(TPM)을 이용하는 특권 서비스 구현예의 예시(200)를 도시한다. 도시된 실시예에서, 호스트 컴퓨팅 장치(201)는 하나 이상의 범용 프로세서(208) 및 신뢰 플랫폼 모듈(207)을 포함한다. 상기 호스트 컴퓨팅 장치는 하이퍼바이저(204), 하나 이상의 프로세서로의 직접 액세스 권한을 갖는 특권 도메인(privileged domain)(가령, DOM-0(202)), 및 장치의 하나 이상의 프로세서에 대한 가상 액세스 권한을 갖고 고객이 제공한 코드를 실행시키는 하나 이상의 비특권 도메인(가령, DOM-U(203))을 더 포함한다.
다양한 실시예에서, 신뢰 플랫폼 모듈(TPM)(207)은 정보를 보호하는 암호 키(206)를 저장할 수 있는 임의의 보안 암호화 프로세서일 수 있다. 상기 특권 서비스(205)는 하이퍼바이저(204)의 부팅 시 측정뿐 아니라 실행 중인 하이퍼바이저(204)의 동적 재-측정까지 가능하게 한다. 하나의 실시예에서, 부팅 동안, SMM 메모리가 TPM(207)과 대화하도록 배타적으로 인가될 수 있도록, 시스템 관리 모드에서 실행 중인 특권 서비스(205)는 TPM(207)의 소유권(ownership)을 취할 수 있다. 이는 SMM에서 실행 중인 특권 암호화 서비스(205)에게 부팅 사이에 키(206)를 영속시키고 원격 소프트웨어에 대해 자신을 인증할 수 있는 능력을 제공할 수 있다. TPM(207)은 루트 키를 관리하고 SMM에서 실행 중인 특권 서비스(205)만 추출 키를 액세스할 수 있게 한다. 이 실시예에서, 상기 특권 서비스는 하이퍼바이저 및 가상 머신으로 키의 사용을 제공할 수 있다.
다양한 실시예에서, SMM에서 실행 중인 상기 특권 서비스(205)는 주기적으로 또는 특권 서비스(205)가 관리하는 암호 키를 이용하기 위한 하이퍼바이저로부터의 요청의 수신에 응답하여 실행 중인 하이퍼바이저를 측정할 수 있다. 예를 들어, 부팅 시에, 특권 서비스(205)(또는 또 다른 컴포넌트)가 사용되어 하이퍼바이저(207)와 연관된 하나 이상의 값을 측정하고 유효한 하이퍼바이저가 로딩됨을 보장할 수 있다. 예를 들어, 하나 이상의 값을 측정하기 위해, 상기 특권 서비스(205)는 하이퍼바이저(207)의 코드를 담고 있는 메모리 내 하나 이상의 위치(location)를 읽고 상기 위치에 담긴 값을 해시 처리(hash)할 수 있다. 그 후 해시 값이 저장되고 차후 하이퍼바이저(207)의 코드가 어떠한 식으로도 변경됐었는지 여부를 체크할 수 있다. 또 다른 실시예에서, 값 자체를 측정하는 대신, 또 다른 개체, 가령, BIOS(Basic Input/Output System)에 의해 특권 서비스에 해시 값이 제공될 수 있다. 예를 들어, (가령, SMM에서 동작하기 위해) 특권 서비스(205)를 프로비저닝(provision)할 때, 상기 BIOS는 하이퍼바이저 코드에 대한 해시 값을 특권 서비스로 제공할 수 있다.
결과적으로, 런타임 동안 하나 이상의 값이 재-측정되어 하이퍼바이저(207)의 임의의 조작을 검출할 수 있다. 예를 들어, 런타임 동안 획득된 값이 초기 값과 일치하지 않는 경우, 상기 특권 서비스(205)는 하이퍼바이저(207)가 오염됐다고 결정하고 적절한 교정 동작을 취할 수 있다. 예를 들어, 상기 특권 서비스는 하이퍼바이저가 상기 특권 서비스에 의해 저장된 임의의 키를 이용하지 못하게 하거나 하이퍼바이저를 전적으로 유예시킬 수 있다. 또는, 상기 특권 서비스는 조작의 증거의 검출에 응답하여, 저장된 모든 키 재료를 파괴할 수 있다. 또 다른 예시로서, 상기 특권 서비스는 외부 서비스 또는 개체에게 상기 하이퍼바이저가 오염될 수 있다는 지시자를 통지할 수 있다. 일부 실시예에서, 상기 특권 서비스(205)는 가상 TPM 서비스를 가상 머신으로 제공하도록 사용될 수 있으며, 이때 가상 TPM과 연관된 키가 특권 서비스(가령, SMI 핸들러)에 의해 관리되고 하이퍼바이저에 의해 액세스 가능하지 않는다. 따라서 하이퍼바이저가 키로의 액세스 권한을 갖지 않으면서, 가상 머신이 SMI 핸들러를 이용해 키를 이용하기 위한 요청을 제출할 수 있다. 하나의 실시예에서, 신뢰 키가 물리적 TPM(207)에 심어져서 상기 키가 SMI 핸들러에게만 전달됐음을 보장할 수 있다. 이는 가상 TPM 서비스를 복수의 고객에게 제공하는 하이퍼바이저의 멀티테넌트 환경을 포함하는 시스템 내 하이퍼바이저의 오염에 대해 보호하여, 가상 머신 탈출이 고객 키를 노출하지 않게 할 것이다.
도 2가 하이퍼바이저, DOM-0 및 적어도 하나의 DOM-U을 이용하는 하나의 구현예를 도시하지만, 이 특정 구현예가 본 명세서에 기재된 모든 실시예로 한정되려는 의도는 아니다. 대안적 실시예에서, 하이퍼바이저라는 용어는 다양한 다른 구현예를 포함할 수 있는데, 가령, 가상 머신 관리자 또는 그 밖의 다른 가상화 기법을 포함할 수 있다. 예를 들어, 대안적 구현예에서, 하이퍼바이저는 DOM-0의 기능부를 포함하고 별도의 특권 도메인, 가령, DOM-0를 이용하지 않는다. 덧붙여, 다양한 실시예의 범위 내에서 유형 1 하이퍼바이저 또는 유형 2 하이퍼바이저가 사용될 수 있다. 종래 기술에 알려진 바와 같이, 유형 1 하이퍼바이저(가령, 베어 메탈(bare metal))는 호스트 컴퓨터의 하드웨어 상에서 직접 실행되어 하드웨어를 제어하고 하나 이상의 게스트 운영 체제를 관리할 수 있다. 유형 1 구성에서, 게스트 운영 체제는 하이퍼바이저 위 또 다른 레벨에서 실행된다. 유형 2(가령, 호스팅된) 하이퍼바이저는 종래의 운영 체제 환경 내에서 실행된다. 개별 제 2 소프트웨어 레벨로서의 하이퍼바이저 레이어에 의해, 게스트 운영 체제가 하드웨어 위의 제 3 레벨에서 실행된다. 다양한 실시예에서, 어느 유형의 하이퍼바이저라도 본 발명의 범위 내에서 사용될 수 있다.
마찬가지로, 도 2가 신뢰 플랫폼 모듈 구현예를 도시하지만, 이는 본 명세서에 기재되는 모든 실시예로 한정되려는 의도가 역시 아니다. 대안적 실시예에서, 특권 암호화 서비스가 그 밖의 다른 유형의 암호화 프로세서와 함께 사용될 수 있다. 덧붙여, 일부 실시예에서, 특권 암호화 서비스가 가상 머신의 코드를 실행시키도록 동작 가능하지 않은 머신 상에서 임의의 코-프로세서, 비제한적 예를 들면, 원격 관리 카드, 베이스보드 관리 제어기(BMC), 관리 엔진(manageability engine) 등과 함께 사용될 수 있다. 이들 실시예에서, 이러한 코-프로세서의 펌웨어가 특권 암호화 서비스를 구현하는 펌웨어로 대체될 수 있다. 상기 프로세서는 암호 키 및 그 밖의 다른 정보를 수신하기 위해 특정하게 요청하는 것이 가능해질 수 있다.
도 3은 다양한 실시예에 따라, 호스트 컴퓨팅 장치 상의 특권 암호화 서비스를 제공하기 위한 예시적 프로세스(300)를 도시한다. 이 도면이 기능적 동작을 특정 시퀀스로 도시할 수 있어도, 프로세스는 도시된 특정 순서 또는 동작으로 반드시 한정될 필요는 없다. 해당 분야의 통상의 기술자라면 이 도면 또는 그 밖의 다른 도면에서 그려진 다양한 동작이 변경, 재배열, 병렬로 수행, 또는 다양한 방식으로 적용될 수 있음을 알 것이다. 덧붙여, 다양한 실시예의 범위 내에서, 특정 동작 또는 동작 시퀀스가 프로세스에 추가되거나 프로세스로부터 생략될 수 있음을 이해할 것이다. 덧붙여, 본 명세서에 기재된 프로세스는 코드 실행의 실제 시퀀스를 특정하기 보다는 해당 분야의 통상의 기술자에게 프로세스 흐름의 아이디어를 보여주려는 의도를 가지며, 상기 프로세스는 여러 다른 흐름 또는 시퀀스로 구현되거나 성능에 최적화되거나 그 밖에 달리 다양한 방식으로 수정될 수 있다.
동작(301)에서, 특권 서비스는 스스로 인증하여, 키 및/또는 그 밖의 다른 암호물을 획득할 수 있다. 하나의 실시예에서, 상기 특권 서비스는 특권 서비스에게 암호 키를 제공하는 외부 컴퓨팅 장치 또는 서비스에 의해 자신을 인증할 수 있다. 또 다른 실시예에서, 특권 서비스는 임의의 외부 개체에 대항하여 인증하지 않는다. 일부 실시예에서, 서비스 제공자에 의해 키가 생성될 수 있고, 또 다른 실시예에서, 키는 고객의 가상 머신과 함께 사용되도록 고객에 의해 제공되거나, 가상 머신에 의해 생성될 수 있다. 동작(302)에서, 성공적인 인증이 수행된 경우, 특권 서비스는 하나 이상의 암호 키를 수신한다.
동작(303)에서, 특권 서비스가 호스트 컴퓨팅 장치 상에 하나 이상의 암호 키를 저장한다. 앞서 기재된 바와 같이, 호스트 컴퓨팅 장치는 하나 이상의 가상 머신을 관리하는 하이퍼바이저를 포함할 수 있고 특권 서비스는 하이퍼바이저보다 더 높은 특권 모드에서 동작한다.
동작(304)에서, 특권 서비스는 장치에 저장된 암호 키를 이용하기 위한 요청을 수신한다. 하나의 실시예에 따르면, 키를 이용하도록 요청하는 인터럽트 신호(가령, SMI)가 수신될 수 있다. 요청은 하이퍼바이저 또는 하나 이상의 가상 머신 상에서 실행 중인 컴포넌트로부터 수신될 수 있다. 다양한 실시예에서, 요청은 아호 키를 이용하는 임의의 동작일 수 있는데, 비제한적 예를 들면, 키를 이용해 하나 이상의 계산이 수행되도록 하는 요청 또는 키를 이용해 암호화 또는 서명된 하나 이상의 메시지를 송신하기 위한 요청일 수 있다.
동작(305)에서, 특권 서비스는 요청에 응답하여 하이퍼바이저를 측정한다. 예를 들어, 특권 서비스는 부팅 시에 획득된 값을 런타임 동안 측정된 값에 비교하여, 하이퍼바이저의 조작의 임의의 증거를 검출할 수 있다.
동작(306)에서, 상기 특권 서비스는 호스트 컴퓨팅 장치에 저장된 암호 키를 적어도 부분적으로 기초로 하여 요청에 대한 응답을 생성한다. 일부 실시예에서, 특권 서비스가 하이퍼바이저가 조작됐음을 결정한 경우, 상기 하이퍼바이저는 키를 액세스하지 못하게 막아질 수 있다.
도 4는 다양한 실시예에 따라, 하이퍼바이저를 측정하고 조작의 증거를 검출하기 위해 TPM을 이용하는 특권 서비스에 의해 수행될 수 있는 프로세스의 예시(400)를 도시한다. 동작(401)에서, 호스트 컴퓨팅 장치의 부팅 시, 상기 특권 서비스는 TPM의 배타적 소유권을 획득한다. 덧붙여, 부팅 시에, TPM은 신뢰 하이퍼바이저가 호스트 컴퓨팅 장치 상에 로딩됐음을 보장하기 위해 하이퍼바이저와 연관된 하나 이상의 값을 획득할 수 있다(동작(402)). 하나의 실시예에서, 하나 이상의 값을 측정하기 위해, 특권 서비스는 메모리에서 하이퍼바이저의 코드를 담고 있는 하나 이상의 위치를 읽고 상기 위치에 담긴 값을 해시 처리한다. 그 후 상기 해시 값이 저장되고 차후 하이퍼바이저의 코드가 어떠한 식으로도 변경됐었는지 여부를 체크하기 위해 사용될 수 있다. 또 다른 실시예에서, 값 자체를 측정하는 대신, 특권 서비스에게 또 다른 개체, 가령, BIOS에 의해 해시 값이 제공될 수 있다. 예를 들어, (가령, SMM에서 동작하기 위해) 특권 서비스를 프로비저닝할 때, BIOS가 특권 서비스에게 하이퍼바이저 코드에 대한 해시 값을 제공할 수 있다.
동작(403)에서, 그 후 런타임 동안, 특권 암호화 서비스가 암호 키를 이용하기 위한 요청을 수신한다. 하나의 실시예에서, 상기 요청은 시스템 관리 인터럽트(SMI)를 호출함으로써 생성된다. 동작(404)에서, 하이퍼바이저와 연관된 하나 이상의 값이 런타임 동안 재-측정된다. 동작(405)에서, 특권 서비스는 부팅 시에 획득된 초기 값에 대해 상기 재-측정된 값을 비교하여 하이퍼바이저의 조작의 증거를 검출할 수 있다.
다양한 실시예에 따라, 하이퍼바이저 측정이 사용되어 암호 키가 사용되도록(가령, 가상 머신에 의해 사용되도록) 배포될 수 있는지 여부를 결정할 수 있다. 암호 키를 관리하기 위해, 복수의 암호 동작 구현예가 가능하다. 키 관리 프로세스의 한 가지 이러한 가능한 구현예가 이하에서 기재된다.
이 특정 구현예에서, BIOS가 프로세서가 SMM 모드이게 하는 SMI 인터럽트가 발행될 때마다 호출되는 시스템 관리 인터럽트(SMI) 핸들러를 초기화한다. TPM은 BIOS의 암호 해시 측정을 할 수 있는 능력, 가령, SMI 핸들러를 제공할 수 있고 이들 해시 값을 플랫폼 설정 레지스터(PCR: platform configuration register)라고 알려진 TPM 하드웨어 레지스터에 저장할 수 있다. 따라서 신뢰 SMI 핸들러의 알려진 해시 값을 PCR에 저장된 해시 값에 비교함으로써, 신뢰 SMI 핸들러가 플랫폼 상에 설치됨을 검증할 수 있는 능력을 제공한다. 상기 SMI 핸들러는 BIOS에 의해 잠금되고 비-SMM 모드에서 실행 중인 어떠한 소프트웨어(가령, 하이퍼바이저 및 OS)에 의해서도 액세스 가능하지 않는 시스템 관리 랜덤 액세스 메모리(SMRAM)라고 지칭되는 메모리의 영역에 저장될 수 있다. 이 실시예에서, 신뢰 하이퍼바이저가 암호학적으로 측정되고 이는 다음의 두 방식으로 이뤄질 수 있다:
(1) 신뢰 부트로더(bootloader)가 하이퍼바이저로 실행 제어를 전송하기 전에 상기 하이퍼바이저를 측정할 수 있고 해시 값을 PCR에 저장한다; 또는
(2) 신뢰 부트로더가 SMI 인터럽트를 발행할 수 있다. SMI 핸들러가 하이퍼바이저를 측정하고 암호 해시 값을 SMRAM에 저장할 수 있다.
이 실시예에서, 신뢰 하이퍼바이저의 해시 값이 기준 해시 값으로 참조될 수 있다. 그 후, 플랫폼 런-타임 키 관리 흐름에 2개의 단계가 존재할 수 있는데, 즉, 키 프로비저닝과 키 사용이다. 하나의 실시예에서, 이들 흐름의 상세사항이 다음과 같다:
키 프로비저닝: 신뢰 하이퍼바이저가 초기에 부팅될 때, 상기 하이퍼바이저는 PCR을 체크하여 신뢰 SMI 핸들러가 플랫폼 상에 설치됨을 보장할 수 있다. 신뢰 SMI 핸들러가 검증되며, 상기 하이퍼바이저가 암호 키 및 그 밖의 다른 자격증명(비밀번호 등)을 생성하고, 이를 메모리 또는 레지스터에 위치시키며 SMI 인터럽트를 발행한다. 키를 프로비저닝하는 역할을 수행하는 SMI 핸들러는 상기 암호 키를 SMRAM 내 키 저장 데이터 구조로 복사하고 메모리/레지스터에서 키를 소거한다. 상기 SMI 핸들러는 저장된 키에 대응하는 인덱스 값을 하이퍼바이저에게 반환(return)한다.
키 사용: 하이퍼바이저가 특정 암호 키를 액세스할 필요가 있을 때, 상기 하이퍼바이저는 대응하는 인덱스 값을 주는 것과 함께 SMI 인터럽트를 발행한다. 그 후 SMI 핸들러는 하이퍼바이저의 암호 해시 측정을 수행하고 이 해시 값을 부팅 동안 계산된 기준 해시 값과 비교한다. SMI 핸들러 실행은 하이퍼바이저에 독립적으로 발생하기 때문에, 이의 측정 동작을 조작할 수 없다. 해시 값이 일치하면, SMI 핸들러는 요청된 자격증명을 반환한다. 해시 값의 불일치는 런-타임 하이퍼바이저 오염을 가리키며 SMI 핸들러는 에러 메시지를 반환할 것이다.
하나의 실시예에서, SMRAM이 하이퍼바이저에 의해 액세스 가능하지 않다고 가정되면, 악의적 하이퍼바이저 또는 오염된 하이퍼바이저가 신뢰 하이퍼바이저에 의해 저장된 키를 액세스하지 못할 것이다. 따라서 하이퍼바이저에 대한 임의의 악의적 공격으로부터 SMRAM 내 비밀이 안전하다.
일부 실시예에서, 또한 이 키 관리 프로세스는 게스트 가상 머신(VM)에 의해 사용되어 암호 키 및 자격증명을 저장할 수 있으며, 이때 게스트 VM이 SMI를 발행하여 비밀을 저장할 수 있다. 게스트 VM에 대한 비밀 관리 스킴의 동작 흐름이 다음과 같을 것이다:
a. 게스트 VM이 SMI를 발행하여 하이퍼바이저가 신뢰되는지 여부를 체크할 수 있다. 상기 SMI 핸들러는 하이퍼바이저를 암호학적으로 측정하고 이 값을 기준 해시 값과 비교한다. 상기 SMI 핸들러는 하이퍼바이저가 신뢰되는지 여부를 가리키는 값을 반환한다,
b. SMI 핸들러가 하이퍼바이저가 신뢰된다고 가리키는 값을 반환한다면, 새 암호 키를 저장하거나 이전에 저장된 암호 키(또는 자격증명)를 불러오기 위해 게스트 VM이 또 다른 SMI 인터럽트를 발행한다.
이 흐름에서, 게스트 VM은 2개의 SMI를 발행해야 하는데, 첫 번째는 하이퍼바이저를 검증하기 위한 것이며, 두 번째는 SMRAM에 비밀을 저장하거나 불러오기 위한 것이다. 하이퍼바이저가 악의적이거나 런-타임 동안 맬웨어(malware)에 의해 오염된 경우, (하이퍼바이저 무결성 체크가 실패할 것이기 때문에 하이퍼바이저가 SMI를 발행하는 경우라도) 상기 하이퍼바이저에게 게스트 VM의 자격증명이 노출되지 않는다.
본 발명의 실시예가 다음의 항목과 관련하여 기재될 수 있다:
1. 적어도 하나의 프로세서,
하나 이상의 가상 머신을 관리하는 하이퍼바이저 - 각각의 가상 머신은 각자의 고객과 연관되며 고객이 제공한 코드를 실행하도록 동작함 - ,
상기 하이퍼바이저를 유예시키고 호스트 컴퓨팅 장치 상에서 시스템 관리 모드(SMM)에서 실행될 수 있는 특권 서비스 - 상기 특권 서비스는
고객과 연관된 암호 키를 수신하고 호스트 컴퓨팅 장치에 상기 암호 키를 저장하며,
하이퍼바이저 또는 하나 이상의 가상 머신 중 적어도 하나로부터 암호 키를 이용하기 위한 요청을 수신 - 상기 요청은 시스템 관리 인터럽트(SMI)를 개시함으로써 생성됨 - 하고,
상기 하이퍼바이저와 연관된 하나 이상의 값을 측정하고,
하나 이상의 값을 기초로 상기 하이퍼바이저가 변경됐는지 여부를 결정하고,
하나 이상의 값이 상기 하이퍼바이저가 변경되지 않았다고 가리키는 경우 요청에 대한 응답을 생성 - 상기 응답은 상기 호스트 컴퓨팅 장치에 저장된 암호 키를 적어도 부분적으로 기초로 함 - 하도록 동작함 -
를 구현하기 위해 장치의 적어도 하나의 프로세서에 의해 실행되는 명령을 포함하는 메모리
를 포함하는, 컴퓨팅 장치.
2. 항목 1에 있어서, 상기 호스트 컴퓨팅 장치는 제 2 고객에 대한 제 2 암호 키를 저장하며, 하이퍼바이저의 맥락에서 실행 중인 상기 고객의 고객이 제공한 코드가 제 2 고객에 대해 호스트 컴퓨팅 장치에 저장된 제 2 암호 키를 추출하지 못하게 막아지는, 컴퓨팅 장치.
3. 항목 1에 있어서, 하이퍼바이저와 연관된 하나 이상의 값을 측정하는 것은
호스트 컴퓨팅 장치의 부팅 시에 획득된 하이퍼바이저와 연관된 하나 이상의 값을 측정하는 것,
런타임 동안 하이퍼바이저와 연관된 하나 이상의 값을 측정하는 것, 및
부팅 시에 측정된 하나 이상의 값을 런타임 동안 측정된 하나 이상의 값에 비교하는 것을 적어도 부분적으로 기초로 하여 하이퍼바이저가 변경됐는지 여부를 결정하는 것
을 더 포함하는, 컴퓨팅 장치.
4. 항목 1에 있어서,
암호 키를 저장하도록 구성된 신뢰 플랫폼 모듈(TPM) - 상기 특권 서비스는 TPM에 대한 배타적 액세스 권한을 획득하고 TPM에 저장된 암호 키에 대한 액세스 권한을 관리하도록 더 동작하는, 컴퓨팅 장치.
5. 적어도 하나의 프로세서, 및
상기 적어도 하나의 프로세서에 의해 실행될 때 컴퓨팅 장치로 하여금
하나 이상의 가상 머신을 관리하고 메모리의 제 1 부분으로의 액세스 권한을 갖는 하이퍼바이저, 및
상기 하이퍼바이저에 의해 액세스될 수 없는 메모리의 적어도 제 2 부분으로의 액세스 권한을 갖는 특권 서비스 - 상기 특권 서비스는
컴퓨팅 장치에 키를 저장하고,
하이퍼바이저 또는 하나 이상의 가상 머신 중 적어도 하나로부터의 키를 이용하기 위한 요청을 수신하며,
컴퓨팅 장치에 저장된 키를 적어도 부분적으로 기초로 하여 상기 요청에 대한 응답을 생성하도록 동작함 -
를 구현하도록 하는 명령을 포함하는 메모리
를 포함하는, 컴퓨팅 장치.
6. 항목 5에 있어서, 상기 특권 서비스는
암호화 프로세서(cryptographic processor), 원격 관리 카드, 베이스보드 관리 제어기(BMC), 시스템 관리 모드(SMM)에서 실행 중인 컴포넌트, 또는 관리 엔진(manageability engine) 중 적어도 하나를 이용해 실행되는, 컴퓨팅 장치.
7. 항목 5에 있어서, 메모리의 제 2 부분은
하나 이상의 범위 레지스터(range register)를 이용해 분할(partition)된 메모리 메모리의 일부분, 하나 이상의 코-프로세서(co-processor) 내부 메모리, 하나 이상의 코-프로세서에 부착된 메모리, 하나 이상의 모드에 특화된 레지스터, 또는 특정 암호 키 레지스터 중 적어도 하나인, 컴퓨팅 장치.
8. 항목 5에 있어서, 상기 특권 서비스는
하이퍼바이저와 연관된 하나 이상의 값을 측정하고,
상기 하이퍼바이저와 연관된 하나 이상의 값을 적어도 부분적으로 기초로 하여 상기 하이퍼바이저가 변경됐는지 여부를 검출하도록 더 동작하는, 컴퓨팅 장치.
9. 항목 8에 있어서, 상기 특권 서비스는
상기 하이퍼바이저가 변경됐다는 검출에 응답하여 외부 개체에 통지하거나,
상기 하이퍼바이저가 변경됐다는 검출에 응답하여 암호 키를 삭제하도록 더 동작하는, 컴퓨팅 장치.
10. 항목 5에 있어서,
시스템 관리 인터럽트(SMI)를 이용함으로써 특권 서비스로 요청을 제출하도록 구성된 컴포넌트 - 상기 컴포넌트는 하이퍼바이저 또는 가상 머신 중 적어도 하나 내에 위치함 -
를 더 포함하는, 컴퓨팅 장치.
11. 항목 5에 있어서,
키를 저장하도록 구성된 신뢰 플랫폼 모듈(TPM) - 특권 서비스는 상기 TPM 에 대한 배타적 액세스 권한을 획득하도록 더 동작함 - 을 더 포함하는, 컴퓨팅 장치.
12. 항목 11에 있어서, 특권 서비스는 하이퍼바이저 및 하나 이상의 가상 머신에 의한 TPM에 저장된 키로의 액세스를 제어하도록 더 동작하는, 컴퓨팅 장치.
13. 항목 5에 있어서, 상기 특권 서비스는
부팅 시 하이퍼바이저와 연관된 값의 제 1 세트를 측정하여 하이퍼바이저를 검증하도록 더 동작하는, 컴퓨팅 장치.
14. 항목 13에 있어서, 상기 특권 서비스는
하이퍼바이저를 검증하기 위해 호스트 컴퓨팅 장치 상의 가상 머신으로부터 제 1 시스템 관리 인터럽트(SMI)를 수신하며,
SMI 핸들러에 의해 상기 하이퍼바이저와 연관된 값의 제 2 세트를 측정하며,
상기 SMI 핸들러에 의해 상기 값의 제 2 세트를 값의 제 1 세트와 비교하며,
값의 제 2 세트가 부팅 시 측정된 값의 제 1 세트와 일치하는 경우 SMI 핸들러에 의해 하이퍼바이저를 검증하며,
가상 머신으로부터 제 2 SMI를 수신하여 키를 불러오거나 새 키를 저장하도록
더 동작하는, 컴퓨팅 장치.
15. 항목 5에 있어서, 상기 특권 서비스는
가상 TPM을 하나 이상의 가상 머신으로 노출시키도록 더 동작하며, 상기 하나 이상의 가상 머신은 시스템 관리 인터럽트(SMI)을 이용하여 키를 액세스하도록 동작하며 상기 키는 하이퍼바이저에 의해 액세스될 수 없는, 컴퓨팅 장치.
16. 항목 5에 있어서, 응답을 생성하는 것은 암호 키와 연관된 인증 정보를 더 기초로 하는, 컴퓨팅 장치.
17. 항목 5에 있어서, 키를 이용하기 위한 요청은
키를 이용해 하나 이상의 계산이 수행되기 위한 요청, 또는
키를 이용해 암호화 또는 서명되는 하나 이상의 메시지를 송신하기 위한 요청
중 적어도 하나를 더 포함하는, 컴퓨팅 장치.
18. 실행 가능 명령에 의해 설정된 하나 이상의 컴퓨터 시스템의 제어 하에서,
특권 서비스에 의해, 호스트 컴퓨팅 장치에 키를 저장하는 단계 - 상기 호스트 컴퓨팅 장치는 하나 이상의 가상 머신을 관리하는 하이퍼바이저를 포함하고 상기 특권 서비스는 상기 하이퍼바이저에 의해 액세스될 수 없는 메모리의 적어도 일부분에 대한 액세스 권한을 가짐 - ,
특권 서비스에 의해 키를 이용하기 위해 요청하는 신호를 수신하는 단계 - 상기 신호는 하이퍼바이저 또는 하나 이상의 가상 머신 중 적어도 하나로부터 수신됨 - , 및
상기 특권 서비스에 의해 요청에 대한 응답을 생성하는 단계 - 상기 응답은 컴퓨팅 장치에 저장된 키를 적어도 부분적으로 기초로 함 -
를 포함하는, 컴퓨터로 구현되는 방법.
19. 항목 18에 있어서, 특권 서비스는
암호화 프로세서, 원격 관리 카드, 베이스보드 관리 제어기(BMC), 시스템 관리 모드(SMM)에서 실행 중인 컴포넌트, 관리 엔진, 또는 하이퍼바이저를 실행하지 않는 호스트 컴퓨팅 장치의 하나 이상의 프로세서 중 적어도 하나를 이용해 호스트 컴퓨팅 장치 상에서 실행되는, 컴퓨터로 구현되는 방법.
20. 항목 18에 있어서, 하이퍼바이저와 연관된 하나 이상의 값을 측정하는 단계,
하나 이상의 값을 적어도 부분적으로 기초로 하여 하이퍼바이저가 변경됐는지 여부를 검출하는 단계
를 더 포함하는, 컴퓨터로 구현되는 방법.
21. 항목 20에 있어서, 상기 하이퍼바이저가 변경됐다는 검출에 응답하여,
외부 개체로 통지를 전송 - 상기 통지는 하이퍼바이저가 변경됐음을 가리킴 - , 또는
키를 삭제
중 적어도 하나를 수행하는 단계
를 더 포함하는, 컴퓨터로 구현되는 방법.
22. 항목 18에 있어서, 키를 저장하는 단계는
신뢰 플랫폼 모듈(TPM)에 키를 저장하는 단계 - 상기 특권 서비스는 TPM에 대한 배타적 액세스 권한을 갖도록 구성됨 - 를 더 포함하는, 컴퓨터로 구현되는 방법.
23. 하나 이상의 프로세서에 의해 실행되며 컴퓨팅 시스템으로 하여금
특권 서비스에 의해, 호스트 컴퓨팅 장치에 키를 저장하게 하며 - 상기 호스트 컴퓨팅 장치는 하나 이상의 가상 머신을 관리하는 하이퍼바이저를 포함하고, 상기 특권 서비스는 하이퍼바이저에 의해 액세스될 수 없는 메모리의 적어도 일부분에 대한 액세스 권한을 가짐 - ,
특권 서비스에 의해, 키를 사용하도록 요청하는 신호를 수신하게 하며 - 상기 신호는 하이퍼바이저 또는 하나 이상의 가상 머신 중 적어도 하나로부터 수신되고,
특권 서비스에 의해 요청에 대한 응답을 생성하게 하는 - 상기 응답은 컴퓨팅 장치에 저장된 키를 적어도 부분적으로 기초로 함 - 하나 이상의 명령을 저장하는 비-일시적 컴퓨터 판독형 저장 매체.
24. 항목 23에 있어서, 컴퓨팅 시스템으로 하여금
가상 TPM을 하나 이상의 가상 머신에 노출시키게 하는 - 상기 하나 이상의 가상 머신은 키를 액세스하기 위해 시스템 관리형 인터럽트(SMI)를 이용하도록 동작하고, 상기 키는 하이퍼바이저에 의해 액세스될 수 없음 - 명령을 더 포함하는, 비-일시적 컴퓨터 판독형 저장 매체.
25. 항목 23에 있어서, 상기 특권 서비스는 키와 관련된 인가 정보를 이용하여 요청에 대한 응답을 생성하도록 동작하는, 비-일시적 컴퓨터 판독형 저장 매체.
26. 항목 23에 있어서, 상기 키를 사용하기 위한 요청은
하나 이상의 계산이 키를 이용해 수행되기 위한 요청, 또는
키를 이용해 암호화 또는 서명되는 하나 이상의 메시지를 송신하기 위한 요청
중 적어도 하나를 더 포함하는, 비-일시적 컴퓨터 판독형 저장 매체.
27. 항목 23에 있어서, 컴퓨팅 시스템으로 하여금
부팅 시 하이퍼바이저와 연관된 값의 제 1 세트를 측정하여 신뢰 하이퍼바이저가 런칭됐음을 검증하게 하는 명령을 더 포함하는, 비-일시적 컴퓨터 판독형 저장 매체.
28. 항목 27에 있어서, 컴퓨팅 시스템으로 하여금
런타임 동안 호스트 컴퓨팅 장치 상에서 가상 머신으로부터의 제 2 시스템 관리 인터럽트(SMI)를 수신하게 하며,
SMI 핸들러에 의해 하이퍼바이저와 연관된 값의 제 2 세트를 측정하게 하며,
SMI 핸들러에 의해 값의 제 2 세트를 값의 제 1 세트와 비교하게 하며,
값의 제 2 세트가 부팅 시 측정된 값의 제 1 세트와 일치하는 경우 SMI 핸들러에 의해 하이퍼바이저를 검증하게 하고,
가상 머신으로부터 키를 불러오거나 새 키를 저장하도록 제 2 SMI를 수신하게 하는 명령을 더 포함하는, 비-일시적 컴퓨터 판독형 저장 매체.
도 5는 예시적 컴퓨팅 장치(500)의 일반적인 구성요소의 세트의 논리적 배열을 도시한다. 이 예시에서, 장치는 메모리 장치 또는 요소(504)에 저장될 수 있는 명령을 실행하기 위한 프로세서(502)를 포함한다. 해당 분야의 통상의 기술자에게 자명할 바와 같이, 상기 장치는 많은 유형의 메모리, 데이터 저장소, 또는 비-일시적 컴퓨터 판독형 저장 매체, 가령, 프로세서(502)에 의해 실행되기 위한 프로그램 명령을 위한 제 1 데이터 저장소, 이미지 또는 데이터를 위한 별도의 저장소, 다른 장치와 정보를 공유하기 위한 이동식 메모리 등을 포함할 수 있다. 상기 장치는 일부 유형의 디스플레이 요소(506), 가령, 터치 스크린 또는 액정 디스플레이(LCD)를 포함할 것인데, 장치, 가령, 휴대용 미디어 플레이어가 그 밖의 다른 수단, 가령, 오디오 스피커를 통해 정보를 전달할 수 있다. 언급된 바와 같이, 많은 실시예에서 장치는 사용자로부터 종래의 입력을 수신할 수 있는 적어도 하나의 입력 요소(508)를 포함할 것이다. 이 종래의 입력은, 예를 들어, 푸시 버튼, 터치 패드, 터치 스크린, 휠, 조이스틱, 키보드, 마우스, 키패드, 또는 그 밖의 다른 임의의 이러한 장치 또는 요소를 포함할 수 있으며, 이로써 사용자가 장치로 명령어를 입력할 수 있다. 그러나 일부 실시예에서, 이러한 장치는 임의의 버튼을 전혀 포함하지 않을 수 있으며, 시각적 및 오디오 명령어의 조합을 통해서만 제어되어, 사용자가 장치와 접촉할 필요 없이 장치를 제어할 수 있게 할 수 있다. 일부 실시예에서, 도 5의 컴퓨팅 장치(500)는 다양한 네트워크, 가령, Wi-Fi, 블루투스(Bluetooth), RF, 유선 또는 무선 통신 시스템을 통해 통신하기 위해 하나 이상의 네트워크 인터페이스 요소(508)를 포함할 수 있다. 많은 실시예에서의 장치는 네트워크, 가령, 인터넷과 통신할 수 있고, 이러한 그 밖의 다른 장치와 통신할 수 있다.
언급된 바와 같이, 기재된 실시예에 따라 다양한 실시예에서 서로 다른 접근법이 구현될 수 있다. 예를 들어, 도 6은 다양한 실시예에 따라 양태를 구현하기 위한 환경(600)의 하나의 예시를 도시한다. 알다시피, 웹-기반 환경이 설명을 목적으로 사용되지만, 다양한 실시예를 구현하기 위해 적절하게 여러 다른 환경이 사용될 수 있다. 시스템은 요청, 메시지, 또는 정보를 적절한 네트워크(604)를 통해 전송 및 수신하고 정보를 다시 장치의 사용자에게 전달하도록 동작하는 임의의 적절한 장치를 포함할 수 있는 전자 클라이언트 장치(602)를 포함한다. 이러한 클라이언트 장치의 예시는 개인 컴퓨터, 셀 폰, 핸드헬드 메시징 장치, 랩톱 컴퓨터, 셋-톱 박스, 개인 데이터 보조기, 전자 책 리더등을 포함할 수 있다. 네트워크는 임의의 적절한 네트워크, 가령, 인트라넷, 인터넷, 셀룰러 네트워크, 로컬 영역 네트워크 또는 그 밖의 다른 임의의 이러한 네트워크 또는 이들의 조합을 포함할 수 있다. 이러한 시스템을 위해 사용되는 구성요소는 선택된 네트워크 및/또는 환경의 유형에 적어도 부분적으로 따라 달라질 수 있다. 이러한 네트워크를 통해 통신하기 위한 프로토콜 및 구성요소는 잘 알려져 있으며 본 명세서에서 상세히 설명되지 않을 것이다. 유선 또는 무선 연결 및 이들의 조합을 통해 네트워크를 통한 통신이 활성화될 수 있다. 이 예시에서, 환경이 요청을 수신하고 이에 응답하여 콘텐츠를 서비스하기 위한 웹 서버(606)를 포함하기 때문에 네트워크는 인터넷을 포함하지만, 다른 네트워크의 경우 해당 분야의 통상의 기술자에게 자명할 유사한 목적을 수행하는 대안적 장치가 사용될 수 있다.
도시된 환경은 적어도 하나의 애플리케이션 서버(608) 및 데이터 저장소(610)를 포함한다. 따라서 연쇄연결(chain)되거나 그 밖의 다른 방식으로 구성될 수 있고 작업 가령 적절한 데이터 저장소로부터 데이터를 획득하는 것을 수행하도록 상호대화할 수 있는 복수의 애플리케이션 서버, 레이어 또는 또 다른 요소, 프로세스 또는 구성요소가 존재할 수 있음이 이해되어야 한다. 본 명세서에서 사용될 때, "데이터 저장소(data store)"라는 용어는 데이터를 저장, 액세스 및 불러올 수 있는 임의의 장치 또는 장치들의 조합을 지칭하며, 임의의 조합 및 복수의 데이터 서버, 데이터베이스, 데이터 저장 장치 및 데이터 저장 매체를 임의의 표준, 분산형, 또는 클러스터링된 환경에서 포함할 수 있다. 애플리케이션 서버는 클라이언트 장치에 대한 이상의 애플리케이션의 양태를 실행하기 위해 필요에 따라 데이터 저장소와 일체 구성되고 애플리케이션에 대한 데이터 액세스 및 비즈니스 로직의 대부분을 핸들링하기 위한 임의의 적절한 하드웨어 및 소프트웨어를 포함할 수 있다. 상기 애플리케이션 서버는 데이터 저장소와 협업하는 액세스 제어 서비스를 제공하고 이 예시에서 웹 서버에 의해 HTML, XML 또는 또 다른 적절한 구조화된 언어의 형태로 사용자에게 서비스될 수 있는 콘텐츠, 가령, 사용자에게 전송될 텍스트, 그래픽, 오디오 및/또는 비디오를 생성할 수 있다. 모든 요청 및 응답뿐 아니라 클라이언트 장치(602)와 애플리케이션 서버(608) 간 콘텐츠의 전달의 핸들링이 웹 서버(606)에 의해 핸들링될 수 있다. 본 명세서에서 언급되는 구조화된 코드가 본 명세서 임의의 곳에서 언급되는 바와 같이 임의의 적절한 장치 또는 호스트 머신 상에서 실행될 수 있기 때문에 웹 및 애플리케이션 서버는 필수는 아니며 예시적 구성요소에 불과함이 이해되어야 한다.
데이터 저장소(610)는 특정 양태와 관련된 데이터를 저장하기 위한 복수의 개별 데이터 테이블, 데이터베이스 또는 또 다른 데이터 저장 메커니즘 및 매체를 포함할 수 있다. 예를 들어, 도시된 데이터 저장소는 제품 데이터(612) 및 사용자 정보(616)를 저장하고 제품 측을 위해 콘텐츠를 서비스하도록 사용될 수 있는 메커니즘을 포함한다. 상기 데이터 저장소는 또한 로그 또는 세션 데이터(614)를 저장하기 위한 메커니즘을 포함하는 것으로 보인다. 데이터 저장소에 저장될 필요가 있을 수 있는 그 밖의 다른 많은 양태, 가령, 페이지 이미지 정보 및 액세스 권한 정보가 존재할 수 있고 이들은 앞서 나열된 메커니즘들 중 임의의 것에 적절하게 또는 데이터 저장소(610)의 추가 메커니즘에 저장될 수 있음이 이해되어야 한다. 데이터 저장소(610)는, 이와 연관된 로직을 통해, 애플리케이션 서버(608)로부터의 명령을 수신하고, 이에 응답하여 데이터를 획득, 업데이트 또는 그 밖의 다른 방식으로 프로세싱하도록 동작한다. 하나의 예시에서, 사용자는 특정 유형의 아이템에 대해 검색 요청을 제출할 수 있다. 이 경우, 데이터 저장소는 사용자의 신원을 검증하기 위해 사용자 정보를 액세스하고 카탈로그 상세사항 정보를 액세스하여 상기 유형의 아이템에 대한 정보를 획득할 수 있다. 그 후 정보는 사용자에게 반환될 수 있다, 가령, 사용자가 사용자 장치(602) 상의 브라우저를 통해 볼 수 있는 웹 페이지 상에 나열된다. 특정 관심 아이템에 대한 정보가 전용 페이지 또는 브라우저의 창으로 관찰될 수 있다.
일반적으로 각각의 서버는 일반적인 관리 및 상기 서버의 동작을 위한 실행 가능한 프로그램 명령을 제공하는 운영 체제를 포함할 것이며, 일반적으로 서버의 프로세서에 의해 실행될 때 서버로 하여금 이의 의도된 기능들을 수행하게 하는 명령을 저장하는 컴퓨터 판독형 매체를 포함할 것이다. 운영 체제 및 서버의 일반적인 기능에 대한 적절한 구현예가 알려져 있거나 상업적으로 이용 가능하고 해당 분야의 통상의 기술자에 의해, 특히, 본 명세서의 내용을 참조하여 쉽게 구현된다.
하나의 실시예에서의 환경은 하나 이상의 컴퓨터 네트워크 또는 직접 연결을 이용해, 통신 링크를 통해 상호연결되는 복수의 컴퓨터 시스템 및 구성요소를 이용하는 분산 컴퓨팅 환경이다. 그러나 해당 분야의 통상의 기술자라면 이러한 시스템이 도 6에 도시된 것보다 더 적거나 더 많은 구성요소를 갖는 시스템에서도 동일하게 동작할 수 있음을 알 것이다. 따라서 도 6의 시스템(600)의 도시는 설명을 위한 것이며 본 발명의 범위를 한정하려는 것이 아니다.
본 명세서에 기재되고 암시되는 다양한 실시예가 다양한 동작 환경에서 구현될 수 있으며, 이는 일부 경우, 하나 이상의 사용자 컴퓨터, 컴퓨팅 장치, 또는 복수의 애플리케이션 중 임의의 것을 동작하도록 사용될 수 있는 프로세싱 장치를 포함할 수 있다. 사용자 또는 클라이언트 장치는 여러 범용 개인 컴퓨터, 가령, 표준 운영 체제를 운영하는 데스크톱 또는 랩톱 컴퓨터뿐 아니라 모바일 소프트웨어를 운영하고 복수의 네트워킹 및 메시징 프로토콜을 지원할 수 있는 셀룰러, 무선, 및 핸드헬드 장치 중 임의의 것을 포함할 수 있다. 또한 이러한 시스템은 이러한 개발 및 데이터베이스 관리 목적으로, 다양한 상업적으로 이용 가능한 운영 체제 및 그 밖의 다른 알려진 애플리케이션 중 임의의 것을 운영하는 복수의 워크스테이션을 포함할 수 있다. 또한 이들 장치는 그 밖의 다른 전자 장치, 가령, 더미 단말기(dummy terminal), 씬-클라이언트(thin-client), 및 네트워크를 통해 통신할 수 있는 그 밖의 다른 장치를 포함할 수 있다.
대부분의 실시예는 다양한 상용화된 프로토콜, 가령, TCP/IP, OSI, FTP, UPnP, NFS, CIFS, 및 AppleTalk 중 임의의 것을 이용하여 통신을 지원하기 위해 해당 분야의 통상의 기술자에게 친숙할 적어도 하나의 네트워크를 이용한다. 또한 상기 네트워크는 로컬 영역 네트워크, 광역 네트워크, 가상 사설망, 인터넷, 인트라넷, 익스트라넷, 공중 교환 전화망, 적외선 네트워크, 무선 네트워크, 및 이들의 임의의 조합일 수 있다.
웹 서버를 이용하는 실시예에서, 상기 웹 서버는 다양한 서버 또는 미드-티어 애플리케이션(mid-tier application), 가령, HTTP 서버, FTP 서버, CGI 서버, 데이터 서버, Java 서버, 및 비즈니스 애플리케이션 서버 중 임의의 것을 운영할 수 있다. 상기 서버(들)는 또한, 임의의 프로그램 언어, 가령, Java®, C, C# 또는 C++ 또는 임의의 스크립팅 언어, 가령, Perl, Python, 또는 TCL뿐 아니라 이들의 조합으로 써진 하나 이상의 스크립트 또는 프로그램으로 구현될 수 있는 하나 이상의 웹 애플리케이션을 실행함으로써, 사용자 장치로부터 요청에 응답하여 프로그램 또는 스크립트를 실행할 수 있다. 상기 서버(들)는 또한 데이터베이스 서버, 비-제한적 예를 들면, Oracle®, Microsoft®, Sybase®, 및 IBM®로부터 상업적으로 이용 가능한 것들을 포함할 수 있다.
환경은 앞서 언급된 바와 같이 다양한 데이터 저장소 및 그 밖의 다른 메모리 및 저장 매체를 포함할 수 있다. 이들은 다양한 위치, 가령, 하나 이상의 컴퓨터에 로컬한(및/또는 내부에 위치하는) 또는 네트워크를 통해 컴퓨터들 중 일부 또는 전부로부터 원격지에 위치하는 저장 매체 내에 있을 수 있다. 실시예의 특정 세트에서, 정보가 해당 분야의 통상의 기술자에게 친숙한 저장-영역 네트워크("SAN") 내에 위치할 수 있다. 마찬가지로, 컴퓨터, 서버 또는 그 밖의 다른 네트워크 장치의 속성인 기능을 수행하기 위한 임의의 필수 파일이 경우에 따라 로컬하게 및/또는 원격으로 저장될 수 있다. 시스템이 컴퓨터화된 장치를 포함하는 경우, 이러한 각각의 장치는 버스를 통해 전기적으로 연결될 수 있는 하드웨어 요소를 포함할 수 있고, 상기 요소는, 예를 들어, 적어도 하나의 중앙 처리 유닛(CPU), 적어도 하나의 입력 장치(가령, 마우스, 키보드, 제어기, 터치 스크린 또는 키패드), 및 적어도 하나의 출력 장치(가령, 디스플레이 장치, 인쇄기, 또는 스피커)를 포함할 수 있다. 이러한 시스템은 또한 하나 이상의 저장 장치, 가령, 디스크 드라이브, 광학 저장 장치, 및 솔리드-상태 저장 장치, 가령, 랜덤 액세스 메모리("RAM") 또는 리드-온리 메모리("ROM")뿐 아니라 이동식 매체 장치, 메모리 카드, 플래시 카드 등까지 포함할 수 있다.
또한 이러한 장치는 앞서 기재된 바와 같이 컴퓨터-판독형 저장 매체 리더, 통신 장치(가령, 모뎀, 네트워크 카드(무선 또는 유선), 적외선 통신 장치 등), 및 동작 메모리를 포함할 수 있다. 컴퓨터 판독형 저장 매체 리더는, 원격, 로컬, 고정식 및/또는 이동식 저장 장치뿐 아니라 컴퓨터 판독형 정보를 일시적으로 및/또는 더 영구적으로 포함, 저장, 송신 및 불러오기 위한 저장 매체를 나타내는 컴퓨터 판독형 저장 매체와 연결 또는 이를 수용하도록 구성될 수 있다. 상기 시스템 및 다양한 장치는 또한 일반적으로 적어도 하나의 작업 메모리 장치, 가령, 운영 체제 및 애플리케이션 프로그램, 가령, 클라이언트 애플리케이션 또는 웹 브라우저 내에 위치하는 복수의 소프트웨어 애플리케이션, 모듈, 서비스, 또는 그 밖의 다른 요소를 포함할 것이다. 대안적 실시예는 앞서 기재된 바의 다양한 변형예를 가질 수 있음이 자명할 것이다. 예를 들어, 또한 커스텀화된 하드웨어가 사용되거나 및/또는 특정 요소가 하드웨어, 소프트웨어(가령, 휴대용 소프트웨어, 가령, 애플릿(applet)), 또는 둘 모두로 구현될 수 있다. 덧붙여, 그 밖의 다른 컴퓨팅 장치, 가령, 네트워크 입/출력 장치로의 연결이 채용될 수 있다.
코드 또는 코드의 일부분을 담기 위한 저장 매체 및 컴퓨터 판독형 매체가 종래 기술에서 알려진 또는 사용되는 임의의 적절한 매체, 가령, 저장 매체 및 통신 매체, 비제한적 예를 들면, 정보, 가령, 컴퓨터 판독형 명령, 데이터 구조, 프로그램 모듈, 또는 그 밖의 다른 데이터의 저장 및/또는 송신을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체, 가령, RAM, ROM, EEPROM, 플래시 메모리 또는 그 밖의 다른 메모리 기법, CD-ROM, 디지털 다목적 디스크(DVD) 또는 그 밖의 다른 광학 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 그 밖의 다른 자기 저장장치 또는 원하는 정보를 저장하도록 사용될 수 있고 시스템 장치에 의해 액세스될 수 있는 그 밖의 다른 임의의 매체를 포함할 수 있다. 본 명세서에 제공되는 설명 및 기법을 기초로 해당 분야의 통상의 기술자라면 다양한 실시예를 구현하기 위한 그 밖의 다른 방식 및/또는 방법을 알 것이다.
따라서 명세서 및 도면은 제한이 아니라 설명 목적으로 간주된다. 그러나 특허청구범위에서 제공되는 본 발명의 더 넓은 사상 및 범위 내에서 다양한 수정 및 변경이 이뤄질 수 있음이 자명할 것이다.

Claims (15)

  1. 적어도 하나의 프로세서, 및
    상기 적어도 하나의 프로세서에 의해 실행될 때 컴퓨팅 장치로 하여금
    하나 이상의 가상 머신을 관리하고 메모리의 제 1 부분으로의 액세스 권한을 갖는 하이퍼바이저, 및
    상기 하이퍼바이저에 의해 액세스될 수 없는 메모리의 적어도 제 2 부분으로의 액세스 권한을 갖는 특권 서비스 - 상기 특권 서비스는
    컴퓨팅 장치에 키를 저장하고,
    하이퍼바이저 또는 하나 이상의 가상 머신 중 적어도 하나로부터의 키를 이용하기 위한 요청을 수신하며,
    컴퓨팅 장치에 저장된 키를 적어도 부분적으로 기초로 하여 상기 요청에 대한 응답을 생성하도록 동작함 -
    를 구현하도록 하는 명령을 포함하는 메모리
    를 포함하는, 컴퓨팅 장치.
  2. 제1항에 있어서, 상기 특권 서비스는
    암호화 프로세서(cryptographic processor), 원격 관리 카드, 베이스보드 관리 제어기(BMC), 시스템 관리 모드(SMM)에서 실행 중인 컴포넌트, 또는 관리 엔진(manageability engine) 중 적어도 하나를 이용해 실행되는, 컴퓨팅 장치.
  3. 제1항에 있어서, 메모리의 제 2 부분은
    하나 이상의 범위 레지스터(range register)를 이용해 분할(partition)된 메모리 메모리의 일부분, 하나 이상의 코-프로세서(co-processor) 내부 메모리, 하나 이상의 코-프로세서에 부착된 메모리, 하나 이상의 모드에 특화된 레지스터, 또는 특정 암호 키 레지스터 중 적어도 하나인, 컴퓨팅 장치.
  4. 제1항에 있어서, 상기 특권 서비스는
    상기 하이퍼바이저가 변경됐다는 검출에 응답하여 외부 개체에 통지하거나,
    상기 하이퍼바이저가 변경됐다는 검출에 응답하여 키를 삭제하도록 더 동작하는, 컴퓨팅 장치.
  5. 제1항에 있어서,
    시스템 관리 인터럽트(SMI)를 이용함으로써 특권 서비스로 요청을 제출하도록 구성된 컴포넌트 - 상기 컴포넌트는 하이퍼바이저 또는 가상 머신 중 적어도 하나 내에 위치함 -
    를 더 포함하는, 컴퓨팅 장치.
  6. 제1항에 있어서, 상기 키는 신뢰 플랫폼 모듈(TPM)에 저장되고 특권 서비스는 하이퍼바이저 및 하나 이상의 가상 머신에 의한 TPM에 저장된 키로의 액세스를 제어하도록 더 동작하는, 컴퓨팅 장치.
  7. 제1항에 있어서, 상기 특권 서비스는
    부팅 시 하이퍼바이저와 연관된 값의 제 1 세트를 측정하여 하이퍼바이저를 검증하도록 더 동작하는, 컴퓨팅 장치.
  8. 제7항에 있어서, 상기 특권 서비스는
    하이퍼바이저를 검증하기 위해 호스트 컴퓨팅 장치 상의 가상 머신으로부터 제 1 시스템 관리 인터럽트(SMI)를 수신하며,
    SMI 핸들러에 의해 상기 하이퍼바이저와 연관된 값의 제 2 세트를 측정하며,
    상기 SMI 핸들러에 의해 상기 값의 제 2 세트를 값의 제 1 세트와 비교하며,
    값의 제 2 세트가 부팅 시 측정된 값의 제 1 세트와 일치하는 경우 SMI 핸들러에 의해 하이퍼바이저를 검증하며,
    가상 머신으로부터 제 2 SMI를 수신하여 키를 불러오거나 새 키를 저장하도록
    더 동작하는, 컴퓨팅 장치.
  9. 제1항에 있어서, 상기 특권 서비스는
    가상 TPM을 하나 이상의 가상 머신으로 노출시키도록 더 동작하며, 상기 하나 이상의 가상 머신은 시스템 관리 인터럽트(SMI)을 이용하여 키를 액세스하도록 동작하며 상기 키는 하이퍼바이저에 의해 액세스될 수 없는, 컴퓨팅 장치.
  10. 제1항에 있어서, 응답을 생성하는 것은 암호 키와 연관된 인증 정보를 더 기초로 하는, 컴퓨팅 장치.
  11. 제1항에 있어서, 키를 이용하기 위한 요청은
    키를 이용해 하나 이상의 계산이 수행되기 위한 요청, 또는
    키를 이용해 암호화 또는 서명되는 하나 이상의 메시지를 송신하기 위한 요청
    중 적어도 하나를 더 포함하는, 컴퓨팅 장치.
  12. 실행 가능 명령에 의해 설정된 하나 이상의 컴퓨터 시스템의 제어 하에서,
    특권 서비스에 의해, 호스트 컴퓨팅 장치에 키를 저장하는 단계 - 상기 호스트 컴퓨팅 장치는 하나 이상의 가상 머신을 관리하는 하이퍼바이저를 포함하고 상기 특권 서비스는 상기 하이퍼바이저에 의해 액세스될 수 없는 메모리의 적어도 일부분에 대한 액세스 권한을 가짐 - ,
    특권 서비스에 의해 키를 이용하기 위해 요청하는 신호를 수신하는 단계 - 상기 신호는 하이퍼바이저 또는 하나 이상의 가상 머신 중 적어도 하나로부터 수신됨 - , 및
    상기 특권 서비스에 의해 요청에 대한 응답을 생성하는 단계 - 상기 응답은 컴퓨팅 장치에 저장된 키를 적어도 부분적으로 기초로 함 -
    를 포함하는, 컴퓨터로 구현되는 방법.
  13. 제12항에 있어서,
    하이퍼바이저와 연관된 하나 이상의 값을 측정하는 단계,
    하나 이상의 값을 적어도 부분적으로 기초로 하여 하이퍼바이저가 변경됐는지 여부를 검출하는 단계
    를 더 포함하는, 컴퓨터로 구현되는 방법.
  14. 제13항에 있어서, 상기 하이퍼바이저가 변경됐다는 검출에 응답하여,
    외부 개체로 통지를 전송 - 상기 통지는 하이퍼바이저가 변경됐음을 가리킴 - , 또는
    키를 삭제
    중 적어도 하나를 수행하는 단계
    를 더 포함하는, 컴퓨터로 구현되는 방법.
  15. 제12항에 있어서, 키를 저장하는 단계는
    신뢰 플랫폼 모듈(TPM)에 키를 저장하는 단계 - 상기 특권 서비스는 TPM에 대한 배타적 액세스 권한을 갖도록 구성됨 - 를 더 포함하는, 컴퓨터로 구현되는 방법.
KR1020157021806A 2013-01-22 2014-01-22 가상화 환경에서의 특권 암호화 서비스 KR101696131B1 (ko)

Applications Claiming Priority (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 (ko) 2015-09-22
KR101696131B1 KR101696131B1 (ko) 2017-01-12

Family

ID=51208718

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157021806A KR101696131B1 (ko) 2013-01-22 2014-01-22 가상화 환경에서의 특권 암호화 서비스

Country Status (9)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200060157A (ko) * 2018-11-22 2020-05-29 한양대학교 산학협력단 Smram 변조 탐지 방법 및 장치
KR20200130164A (ko) * 2019-05-08 2020-11-18 바이두 유에스에이 엘엘씨 우회-불가능한 게이트웨이를 이용한 tpm-기반의 안전한 다자간 컴퓨팅 시스템
KR20210094883A (ko) * 2020-01-22 2021-07-30 네이버클라우드 주식회사 스토리지 암호화의 동적 적용을 위한 방법 및 시스템

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9576141B2 (en) 2013-01-22 2017-02-21 Amazon Technologies, Inc. Access controls on the use of freeform metadata
US10341281B2 (en) 2013-01-22 2019-07-02 Amazon Technologies, Inc. Access control policies associated with 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
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
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
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
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
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 (zh) * 2016-01-27 2018-06-05 华为技术有限公司 基于vtpm对虚拟机进行安全保护的方法及系统
JP2017147654A (ja) * 2016-02-18 2017-08-24 株式会社日立ソリューションズ 仮想端末管理装置、及び文書保護方法
US10348500B2 (en) * 2016-05-05 2019-07-09 Adventium Enterprises, Llc Key material management
US10318737B2 (en) * 2016-06-30 2019-06-11 Amazon Technologies, Inc. Secure booting of virtualization managers
US10148444B2 (en) * 2016-08-04 2018-12-04 Dell Products L.P. Systems and methods for storing administrator secrets in management controller-owned cryptoprocessor
US10310885B2 (en) * 2016-10-25 2019-06-04 Microsoft Technology Licensing, Llc Secure service hosted in a virtual security environment
US10439803B2 (en) * 2016-11-14 2019-10-08 Microsoft Technology Licensing, Llc Secure key management
WO2018162040A1 (en) * 2017-03-07 2018-09-13 Huawei Technologies Co., Ltd. Hypervisor measurement agent
EP3413531A1 (en) * 2017-06-07 2018-12-12 Hewlett-Packard Development Company, L.P. Intrusion detection systems
US10467439B2 (en) * 2017-07-05 2019-11-05 Dell Products, L.P. Detecting tampering of memory contents in an information handling system
WO2019059887A1 (en) 2017-09-19 2019-03-28 Hewlett-Packard Development Company, L.P. CRYPTOGRAPHIC KEY SECURITY
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
US11683311B2 (en) * 2018-03-01 2023-06-20 Veritas Technologies Llc Systems and methods for running applications on a multi-tenant container platform
WO2019174048A1 (zh) 2018-03-16 2019-09-19 华为技术有限公司 容器逃逸检测方法、装置、系统及存储介质
US11048815B2 (en) * 2018-08-06 2021-06-29 Snowflake Inc. Secure data sharing in a multi-tenant database system
WO2020106907A1 (en) * 2018-11-21 2020-05-28 Amazon Technologies, Inc. Method and system for robotics application development
US11500988B2 (en) * 2019-03-08 2022-11-15 International Business Machines Corporation Binding secure keys of secure guests to a hardware security module
US11354421B2 (en) * 2019-03-08 2022-06-07 International Business Machines Corporation Secure execution guest owner controls for secure interface control
US11977871B2 (en) 2019-04-15 2024-05-07 Hewlett-Packard Development Company, L.P. Image transfer
US11537421B1 (en) 2019-06-07 2022-12-27 Amazon Technologies, Inc. Virtual machine monitor providing secure cryptographic operations
CN110430046B (zh) * 2019-07-18 2021-07-06 上海交通大学 一种面向云环境的可信平台模块两阶段密钥复制方法
JP2021118370A (ja) 2020-01-22 2021-08-10 キオクシア株式会社 メモリシステム、情報処理装置、および情報処理システム
EP3940565A1 (en) * 2020-07-15 2022-01-19 Hewlett-Packard Development Company, L.P. System management states
US11924179B2 (en) * 2022-08-08 2024-03-05 International Business Machines Corporation API based distribution of private session key to network communication device for secured communications
US11916890B1 (en) * 2022-08-08 2024-02-27 International Business Machines Corporation Distribution of a cryptographic service provided private session key to network communication device for secured communications
US11765142B1 (en) * 2022-08-08 2023-09-19 International Business Machines Corporation Distribution of private session key to network communication device for secured communications

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 (ja) * 2008-03-18 2009-10-01 Hitachi Software Eng Co Ltd 情報処理装置及び方法、並びにプログラム
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 (zh) * 2010-12-23 2016-05-04 伊姆西公司 硬化随机访问存储器中的软件执行的方法和装置
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200060157A (ko) * 2018-11-22 2020-05-29 한양대학교 산학협력단 Smram 변조 탐지 방법 및 장치
KR20200130164A (ko) * 2019-05-08 2020-11-18 바이두 유에스에이 엘엘씨 우회-불가능한 게이트웨이를 이용한 tpm-기반의 안전한 다자간 컴퓨팅 시스템
US11295014B2 (en) 2019-05-08 2022-04-05 Baidu Usa Llc TPM-based secure multiparty computing system using a non-bypassable gateway
KR20210094883A (ko) * 2020-01-22 2021-07-30 네이버클라우드 주식회사 스토리지 암호화의 동적 적용을 위한 방법 및 시스템

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101696131B1 (ko) 가상화 환경에서의 특권 암호화 서비스
US10621366B2 (en) Chained security systems
US11050844B2 (en) User controlled hardware validation
US10685119B2 (en) Trusted malware scanning
US9792143B1 (en) Platform secure execution modes
US9465652B1 (en) Hardware-based mechanisms for updating computer systems
US9576155B2 (en) Trusted computing host
US10635821B2 (en) Method and apparatus for launching a device
KR101704329B1 (ko) 프리빌리지 컴퓨팅 작동의 결과 보호
US11714910B2 (en) Measuring integrity of computing system
US20160164880A1 (en) Systems And Methods Of Transaction Authorization Using Server-Triggered Switching To An Integrity-Attested Virtual Machine
US20160134623A1 (en) Secure execution environment services
US20140075522A1 (en) Reliable verification of hypervisor integrity
Berger et al. Scalable attestation: A step toward secure and trusted clouds
US10250603B1 (en) Connection control for virtualized environments
US10579405B1 (en) Parallel virtual machine managers
Park et al. Data firewall: a TPM-based security framework for protecting data in thick client mobile environment

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