KR101735982B1 - 특권 동작을 발동하기 위한 보안 인터페이스 - Google Patents

특권 동작을 발동하기 위한 보안 인터페이스 Download PDF

Info

Publication number
KR101735982B1
KR101735982B1 KR1020157022330A KR20157022330A KR101735982B1 KR 101735982 B1 KR101735982 B1 KR 101735982B1 KR 1020157022330 A KR1020157022330 A KR 1020157022330A KR 20157022330 A KR20157022330 A KR 20157022330A KR 101735982 B1 KR101735982 B1 KR 101735982B1
Authority
KR
South Korea
Prior art keywords
computing device
host computing
request
public key
certificate
Prior art date
Application number
KR1020157022330A
Other languages
English (en)
Other versions
KR20150110652A (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 KR20150110652A publication Critical patent/KR20150110652A/ko
Application granted granted Critical
Publication of KR101735982B1 publication Critical patent/KR101735982B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • G06F21/335User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2115Third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

가상화 계층에 전송되는 요청을 인가 및 인증하기 위해 비대칭(또는 대칭) 암호법 등의 보안체계를 이용하는, 형식화된 인터페이스 세트(예컨대 응용 프로그래밍 인터페이스(API))가 개시된다. 인터페이스는 보안 감시, 포렌식 캡처를 수행하고/하거나 런타임 시 소프트웨어 시스템을 패치하기 위해 발동될 수 있다. 전술한 바 이외의 다른 양태들은 특허청구범위, 상세한 설명 및 도면에 기재되어 있다.

Description

특권 동작을 발동하기 위한 보안 인터페이스{SECURE INTERFACE FOR INVOKING PRIVILEGED OPERATIONS}
점점 더 많은 어플리케이션과 서비스가 인터넷 등의 네트워크를 통해 이용 가능해지면서 클라우드 컴퓨팅과 같은 기술에 의존하는 콘텐츠, 어플리케이션 및/또는 서비스 공급자가 많아지고 있다. 일반적으로 클라우드 컴퓨팅은 웹 서비스와 같은 서비스를 통해 전자 자원에 대한 접근을 제공하는 방식으로, 이런 서비스를 지원하기 위해 사용되는 하드웨어 및/또는 소프트웨어는 언제든 서비스 요구에 응할 수 있도록 동적인 확장이 가능하다. 클라우드를 통해 자원에 접근하고자 하는 사용자 또는 고객은 통상적으로 임대, 리스 또는 여타의 방식으로 사용료를 지불하며, 따라서 필요한 하드웨어 및/또는 소프트웨어를 구매 및 유지할 필요가 없다.
많은 클라우드 컴퓨팅 공급자들은 가상화를 활용하여 다수의 사용자가 기초 하드웨어 및/또는 소프트웨어 자원을 공유할 수 있도록 한다. 가상화는 컴퓨팅 서버, 저장 장치 또는 여타의 자원이 각각 특정 사용자에 의해 소유되는 다수의 격리 인스턴스(예컨대, 가상 머신)로 분할될 수 있도록 한다. 가상 기계는 흔히 호스트 컴퓨팅 장치로 가동되는 하이퍼바이저를 이용하여 호스팅된다. 이 맥락에서, 하이퍼바이저와 게스트 운영체제 커널은 보안 강화 메커니즘으로서의 역할을 한다. 예컨대, 하이퍼바이저는 통상적으로 호스트 상의 다양한 가상 머신을 제어하고, 커널은 가상 머신 상의 다양한 프로세스를 제어한다. 보안상의 이유로, 하이퍼바이저와 커널은 모두 수정 또는 변경이 어렵게 되어 있다. 그러나 때로는, 소프트웨어 패치의 적용, 보안 감시의 수행 등의 이유로 런타임 시 하이퍼바이저나 커널의 코드를 변경하는 것이 바람직할 수 있다.
도면을 참조하여 본 개시에 따른 다양한 실시예를 설명한다.
도 1은 다양한 실시예에 따른 것으로, 특권 동작을 수행하기 위한 API 요청을 서명하기 위해 비대칭 암호법을 이용하는 일례를 도시한 도면;
도 2는 다양한 실시예에 따른 것으로, 커널 또는 하이퍼바이저 상에서 특권 동작을 수행하기 위해 활용될 수 있는 API의 일례를 도시한 도면;
도 3은 다양한 실시예에 따른 것으로, 서비스 공급자의 자원 센터 환경의 일례를 도시한 도면;
도 4는 다양한 실시예에 따른 것으로, 하이퍼바이저 또는 커널에서 특권 동작을 수행하기 위해 사용될 수 있는 API를 제공하기 위한 예시적인 프로세스를 도시한 도면;
도 5는 다양한 실시예에 따른 것으로, 공개 키를 이용하여 암호화된 요청을 암호 해독하기 위한 호스트 컴퓨팅 장치의 예시적인 프로세스를 도시한 도면;
도 6은 다양한 실시예에 따라 활용될 수 있는 예시적인 컴퓨팅 장치의 일반적인 구성요소 세트의 논리 배열을 도시한 도면;
도 7은 다양한 실시예에 따른 양태를 구현하기 위한 환경의 일례를 도시한 도면.
하기 설명에서는, 첨부 도면을 참조하여 다양한 실시예를 한정이 아닌 예로서 제시한다. 본 개시에서 다양한 실시예에 대한 언급은 반드시 동일한 실시예를 가리키는 것은 아니며, 이런 언급은 적어도 하나의 실시예를 의미한다. 특정한 구현예와 여타의 세목이 검토되긴 하지만, 이는 오로지 예로서 제시되는 것이다. 관련 기술분야의 당업자라면 청구된 발명 요지의 범위와 사상을 벗어나지 않고 다른 구성요소와 구성이 사용될 수 있다는 것을 인식할 것이다.
본 개시의 다양한 실시예에 따른 시스템 및 방법은 운영체제 커널 및/또는 하이퍼바이저와 같은 컴퓨팅 자원에서 특권 동작을 수행하고 소프트웨어 코드를 변경하기 위한 종래의 방식에서 나타난 상기 또는 여타의 결점중 하나 이상을 해결할 수 있다. 특히, 다양한 실시예는 운영체제(OS) 커널 및/또는 하이퍼바이저 상에서 특권 동작이 수행되고 코드가 안전하게 추가 또는 변경되도록 하기 위해 비대칭(또는 대칭) 암호법 등의 보안체계를 이용하는 형식화된 인터페이스 세트(예컨대 응용 프로그래밍 인터페이스(application programming interface: API))를 제공한다. 이들 인터페이스는 보안 감시, 포렌식 캡처를 수행하고/하거나 런타임 시 소프트웨어 시스템을 패치하기 위해 발동될 수 있다.
일반적으로, 커널과 하이퍼바이저는 다양한 프로세스와 구성요소가 수행하도록 허용된 활동이 무엇인지를(예컨대 어플리케이션이 어느 메모리부에 접근할 수 있는지를) 결정하는 보안 강화 메커니즘으로서의 역할을 한다. 만일 커널 또는 하이퍼바이저의 자유로운 변경이 허용된다면, 잠재적 악성 에이전트가 용이하게 접근 권한을 얻어 사실상 어떤 활동이든지 수행할 수 있기 때문에 전체 시스템의 보안이 위태로워질 수 있다. 따라서, 일반적으로 커널과 하이퍼바이저는 의도적으로 변경이 어렵도록 되어 있다. 그러나, 때로는 시스템이 가동되는 동안 이들 구성요소를 변경하는 것이 바람직할 수 있다. 예컨대, 하이퍼바이저 또는 커널은 패치가 필요한 버그나 에러를 가질 수 있는데, 이 경우에는 전체 시스템을 재부팅하지 않고서 패치를 적용하는 것이 유리할 수 있다. 이는 서비스 공급자에 의해 제공되는 단일 호스트 서버가 다양한 고객을 위해 다수의 가상 머신 인스턴스를 호스팅할 수 있고 각각의 가상 머신은 독립된 커널 등을 갖춘 게스트 운영체제를 포함할 수 있는 다중임대 공유 자원 환경(예컨대, 클라우드 컴퓨팅 환경)에서 특히 유용할 수 있다. 다양한 실시예에서, 본 개시 전반에 걸쳐 설명하는 인터페이스(예컨대 API)는 여타의 다양한 특권 동작뿐만 아니라 커널/하이퍼버이저 코드에 대한 업데이트와 여타의 변경을 가능하게 한다.
다양한 실시예에 따르면, API 세트는 고객을 대신하여 어플리케이션과 가상 머신 인스턴스를 호스팅하는 다중임대 공유 자원 환경의 서비스 공급자(예컨대 "클라우드" 컴퓨팅 공급자)에 의해 구현될 수 있다. 어플리케이션과 가상 머신 인스턴스는 서비스 공급자가 소유 및 운영하는 물리적 자원(예컨대 호스트 컴퓨팅 장치 및 여타의 네트워크 자원) 상에서 호스팅된다. 일 실시예에 따르면, 서비스 공급자는 가상 머신 이미지를 촬영하여, 적어도 어느 정도는 가상 머신 이미지를 토대로 하나 이상의 가상 머신 인스턴스를 고객에게 공급할 수 있다. 일 실시예에서, 각각의 가상 머신 인스턴스는 서비스 공급자의 컴퓨팅 자원 상에서 공급되는 게스트 운영체제와 그 자체의 커널 및 드라이버를 포함한다. 공급이 이루어지고 나면, 가상 머신 인스턴스는 다양한 어플리케이션 및/또는 여타의 고객 서비스를 실행한다.
일 실시예에 따르면, 각각의 가상 머신 인스턴스는 호스트 컴퓨팅 장치 상에서 공급된다. 각각의 호스트 컴퓨팅 장치는 하나 이상의 가상 머신 인스턴스를 호스팅할 수 있다. 적어도 하나의 실시예에서, 호스트 컴퓨팅 장치는 하드웨어 장치 드라이버와 장치의 다른 물리적 자원에 대한 접근을 제공하고 하나 이상의 가상 머신 인스턴스가 이들 자원에 접근할 수 있도록 하는 하이퍼바이저를 추가로 포함한다.
일 실시예에 따르면, 가상 머신 인스턴스가 호스트 컴퓨팅 장치 상에서 공급되고 나면, 본 명세서에서 설명하는 응용 프로그래밍 인터페이스(API)가 가상 머신의 커널 및/또는 하이퍼바이저의 코드를 업데이트하거나 하이퍼바이저 또는 커널과 결부된 다른 어떤 특권 동작을 수행하기 위한 요청을 제출하기 위해 사용될 수 있다. 비인가 당사자가 이들 인터페이스를 사용하는 것을 방지하기 위해, 서명 체계(예컨대 비대칭 암호법)를 이용하여 API 요청을 서명할 수 있다. 서명 체계는 비공개 키와 공개 키를 사용할 수 있는데, 비공개 키는 비공개 키의 소유자와 결부된 서명을 생성하기 위해 사용될 수 있고, 공개 키는 해당 서명을 검증하여 요청을 제출하는 존재가 비공개 키를 소지하고 있다는 것을 보증하기 위해 (즉, 요청이 진짜임을 증명하기 위해) 사용될 수 있다. 일 실시예에서, 공개 키는 호스트 컴퓨팅 장치에 제공되고, 비공개 키는 서비스 공급자의 네트워크 상의 보안 위치에 원격 저장된다. 커널 또는 하이퍼바이저의 코드를 변경할 필요가 있을 때, 하이퍼바이저 또는 운영체제 커널 상에서 특권 동작을 수행할 것을 청하는 요청이 API를 이용하여 개시될 수 있다. 본 실시예에서, 요청은 비공개 키를 이용하여 서명된다. 호스트 컴퓨팅 장치가 요청을 수신하면, 호스트 컴퓨팅 장치는 호스트 컴퓨팅 장치에 저장된 공개 키를 이용하여 요청의 서명을 검증한다. 서명이 성공적으로 검증되면, 호스트 컴퓨팅 장치는 하이퍼바이저 및/또는 커널 상에서 특권 동작을 실행하며, 요청의 서명이 공개 키를 이용하여 성공적으로 검증되지 못할 경우에는 특권 동작은 이루어지지 않는다.
다른 실시예에서는, 암호화 체계가 API와 함께 사용될 수 있다. 본 실시예에서, 호스트 컴퓨팅 장치는 부팅 시 비대칭 키 쌍을 생성할 수 있다. 키 쌍은 공개 키와 비공개 키를 포함할 수 있는데, 공개 키는 요청을 암호화하기 위해 이용될 수 있고, 비공개 키는 공개 키를 이용하여 암호화된 요청을 암호 해독하기 위해 이용될 수 있다. 본 실시예에서, 키 쌍을 생성한 후 호스트 컴퓨팅 장치는 (예컨대 인증 기관 또는 다른 당사자에게) 공개 키를 발행하는 데 반해, 비공개 키는 호스트 컴퓨팅 장치에 그대로 남아있고 호스트 컴퓨터 장치를 결코 떠나지 않는다. 본 실시예에서, 호스트 컴퓨팅 장치가 공개 키를 이용하여 암호화된 요청을 수신할 때, 호스트 컴퓨팅 장치는 그 내부에 저장된 비공개 키를 이용하여 요청을 암호 해독할 수 있다. 이와 같이, 일단 요청이 암호화되고 나면 어떤 당사자도 비공개 키를 소지하지 않고서는 요청 내의 정보를 해독할 수 없다. 또한, 공개 키가 인증 기관(certificate authority: CA)에 발행된다면, 어느 요청 당사자든지 인증 기관(CA)이 발급한 인증서를 검사함으로써 공개 키가 진실로 호스트 컴퓨팅 장치에 속한 것임을 보증할 수 있다.
몇몇 대안적인 실시예에서는, 대칭 암호법이 API로 전송된 요청을 보안하기 위해 사용될 수 있다. 비대칭 암호법과 대조적으로, 대칭 암호법에서는 서명 당사자와 호스트 모두가 요청을 서명하기 위해 사용되는 동일한 비밀 키를 소지하여야 한다. 양 당사자가 보유하는 키는 동일하거나, 키가 서로에게서 파생되도록 간단한 변형이 가해질 수도 있다. 대칭 암호법에서, 키는 호스트 컴퓨팅 장치(예컨대 커널 또는 하이퍼바이저)와 하이퍼바이저/커널의 코드를 변경하고자 하는 요청 당사자 사이에 공유되는 비밀에 해당한다. 몇몇 실시예에서는, 대칭 암호법을 가능하게 하기 위해, 각각의 요청 당사자는 호스트 컴퓨팅 장치별로 다른 키를 보유하게 되는데, 이 경우에는 네트워크 상의 모든 비밀 키 조합을 관리하는 로직이 필요할 수 있다.
도 1은 다양한 실시예에 따른 것으로, 특권 동작을 수행하기 위한 API 요청을 서명하기 위해 비대칭 암호법을 사용하는 일례(100)를 도시한다. 도시된 실시예에서, 호스트 컴퓨팅 장치(101)는 하이퍼바이저(102)와 도메인0(Dom0)(105)로서 도시된 가상화 계층을 포함할 수 있다. 다음으로 Dom0(105)과 하이퍼바이저(102)는 게스트(111)와 같은 복수의 게스트를 건설할 수 있다. 게스트는 각각 자체의 전용 운영체제(OS), 커널, 장치 드라이버, 스케줄러 등을 갖춘 가상 머신 인스턴스일 수 있다. 도시된 실시예에서, Dom-0(105)는 호스트 컴퓨팅 장치(101) 상의 다른 게스트 도메인을 런칭 및 관리하기 위해 사용된다. 도면에는 가상화 계층이 별도의 구성요소로서 도시되어 있지만, 본 개시의 범위를 벗어나지 않고 가상화 계층을 달리 구현하는 것도 가능하다. 예컨대, 하이퍼바이저(102)의 영향을 받는 기능은 물론, Dom0의 기능 또는 이들 기능의 부분 집합이 단일 구성요소에 통합될 수 있다.
일 실시예에 따르면, 호스트 컴퓨팅 장치(101)는 호스트 컴퓨팅 장치(101)의 Dom-0 커널(106) 또는 하이퍼바이저(102)와 같은 가상화 계층 상에서 특권 동작을 수행하기 위해 서명되고/되거나 암호화된 요청을 제출하기 위해 사용될 수 있는 API(108) 세트를 제공한다. 동작의 예로는 하이퍼바이저 및/또는 커널의 러닝 메모리 이미지를 변경하기 위한 동작을 들 수 있다. 예컨대, 특권 동작은 하이퍼바이저/커널에 패치를 적용하는 것, 메모리 내의 위치를 판독하는 것, 호스트 컴퓨팅 장치 상에서 실행되는 하나 이상의 변수를 변경하는 것, 호스트 컴퓨팅 장치 상에서 실행되는 가상 머신 인스턴스를 시작/정지하는 것, 또는 가상 머신을 다른 호스트로 이송하는 것 등일 수 있다. API의 요청이 서명되고/되거나 암호화될 수 있기 때문에, 커널/하이퍼바이저 외부의 중간 당사자는 요청의 복제 및/또는 판독을 행할 수 없다.
일 실시예에 따르면, API(108)의 요청은 비공개 키와 공개 키를 포함하는 비대칭 키 쌍을 이용하여 서명될 수 있다. 일 실시예에서는, API 콜에 대한 독립 변수 중 적어도 일부(또는 전부)가 정규화되고 직렬화되어 문자열과 서명이 일대일로대응하게 된다. 이어서 문자열은 해쉬 기반 메시지 인가 코드(hash-based message authentication code: HMAC) 또는 비대칭 암호법을 통해 서명되어 API(108)로 전송될 수 있다. API에 대한 매개변수가 서명에 포함되기 때문에, 요청(예컨대 해당 요청을 만드는 코드)을 입수한 잠재적인 공격자라도 요청을 변경할 수 없다.
몇몇 실시예에 따르면, 요청은 실시간 윈도우 기반 재연 방지를 제공하는 타임 스탬프를 포함할 수 있는데, 이 경우 요청은 한정된 기간 동안만 유효하다. 몇몇 실시예에서, 요청은 일련 번호 또는 호스트 컴퓨팅 장치 식별자(ID)와 같은, 호스트 컴퓨팅 장치(101)와 특별히 결부된 고유값을 포함할 수 있다. 고유값은 비밀이 아닐 수 있지만, 고유값을 포함함으로써 특정 호스트 컴퓨팅 장치(108)에 요청을 연계시킬 수 있다. 이 경우, 잠재적인 공격자가 다른 장치를 대상으로 요청을 재연하는 것을 막을 수 있게 된다. 몇몇 실시예에서는, 호스트 컴퓨팅 장치에 대한 연계 강도를 높이기 위해, 호스트 컴퓨팅 장치(101)의 신뢰 플랫폼 모듈(trusted platform module: TPM)(미도시)에 의해 요청이 인가될 수 있다.
도시된 실시예에 따르면, API 요청을 서명하기 위해 이용되는 비공개 키(104)는 요청이 전달되는 호스트 컴퓨팅 장치(101) 상에 존재하지 않는다. 대신에, 비공개 키(104)는 서비스 공급자의 네트워크(110) 상의 보안 위치(103)나 다른 신뢰할 수 있는 위치에 저장될 수 있다. 그 결과, 악성 에이전트가 호스트 컴퓨팅 장치(101) 상에 존재하더라도 이들이 비공개 키(104)를 이용하여 요청을 위조하는 것은 불가능하다.
호스트 컴퓨팅 장치(101)는 비공개 키(104)를 이용하여 서명된 요청의 서명을 검증하기 위해 사용될 수 있는 하나 이상의 공개 키(107, 109)를 포함할 수 있다. 일 실시예에서, 공개 키(107)는 호스트 컴퓨팅 장치(101)의 커널(106)에 컴파일될 수 있다. 다른 실시예에서, 공개 키(109)는 하이퍼바이저(102)에 컴파일될 수 있다. 몇몇 실시예에서, 커널은 하이퍼바이저에 저장된 공개 키(109)와 다른 공개 키(107)을 저장할 수 있는데 반해, 다른 실시예에서는 동일한 공개 키가 하이퍼바이저 및 커널 상에서 요청을 검증하기 위해 사용될 수 있다. 또 다른 실시예에서는, 호스트 컴퓨팅 장치(101)에 실제 공개 키를 저장하는 대신에, 호스트 컴퓨팅 장치(101)가 특정 인증 기관(CA)에 의해 인증되는 공개 키를 신뢰하도록 구성될 수 있다. 이런 실시예에서, 호스트 컴퓨팅 장치는 공개 키를 포함하는 인증서를 수반하는 요청을 요청자로부터 수신할 수 있다. 호스트 컴퓨팅 장치는 CA의 인증서를 신뢰하며, 따라서 요청의 일부로서 수신되는 공개 키를 신뢰한다. 공개 키가 호스트 컴퓨팅 장치에 저장되는지 아니면 인증서와 함께 제공되는지와는 무관하게, 공개 키는 비공개 키(104)를 이용하여 서명된 API 요청의 서명을 검증하기 위해 사용될 수 있다. 예컨대, 사용자(예컨대, 고객, 서비스 공급자의 기술자, 제 3자 등)가 커널(106)의 코드의 일부에 업데이트를 적용하길 원할 경우, 사용자는 비공개 키(104)의 사용을 득하고 비공개 키(104)를 사용하여 코드의 적절한 부분을 변경하기 위한 API 요청을 서명할 수 있다. 요청 수신시, 커널(106)은 공개 키를 이용하여 요청의 서명을 검증할 수 있고 검증이 성공적일 경우 필요한 특권 동작을 실행할 수 있다.
대안적인 실시예(미도시)에서는, HMAC와 대칭 키가 활용될 경우, 비밀 키가 커널 또는 하이퍼바이저에 컴파일될 수 있다. 이 경우, 비밀 키는 난독화되고 매 빌드마다 변경될 수 있지만, 비밀 키는 호스트 컴퓨팅 장치(101) 상에 실제로 존재할 수 있다. 선택적으로, 요청 전체가 커널에 컴파일된 키에 암호화될 수 있으며, 그 결과 해당 요청을 발령하는 코드로는 요청 자체를 명확히 알 수 없다.
몇몇 실시예에서, 요청과 함께 제공된 특정 키에 따라(또는 키를 소지하고 있는 당사자에 따라) 하나 이상의 제약이 가해질 수 있다. 예컨대, 몇몇 행위자(즉, 특정 비공개 키)에 의해 서명되는 요청은 호스트 상의 게스트 가상 머신을 시작/정지하거나 호스트 컴퓨팅 장치(101)를 재부팅하는 것만이 허용될 수 있다. 여타의 행위자(예컨대, 서비스 공급자의 OS 팀)가 보유하는 키를 이용하여 서명되는 요청은 하이퍼바이저(102)의 작동 코드를 변경하는 것이 허용된다. 일 실시예에서, 호스트 컴퓨팅 장치(101)는 다수의 상이한 공개 키를 저장할 수 있는데, 각각의 공개 키는 다른 존재(예컨대 사용자, 팀 등)와 관련된 비공개 키와 결부된다. 어느 존재의 비공개 키가 요청을 서명하기 위해 이용되었는지에 따라, 요청된 동작은 허용되거나 거부될 수 있다. 대안적인 실시예에서, 호스트 컴퓨팅 장치(101)는 하나의 비공개 키와 결부된 단 하나의 공개 키를 저장할 수 있지만, 요청은 요청을 제출하는 사용자의 아이디(identity)를 포함할 수 있다. 아이디를 토대로, 호스트 컴퓨팅 장치(101)는 요청된 동작의 실행에 각기 다른 제약을 가할 수 있다. 예컨대, 호스트 컴퓨팅 장치(101)는 어떤 사용자에게는 게스트의 시작/정지를 허용할 수 있고, 다른 사용자에게는 하이퍼바이저의 코드 변경 또는 업데이트를 허용할 수 있다. 본 명세서에 기술된 실시예의 범위를 벗어나지 않고, (예컨대 키당 또는 당사자당 기준으로) 임의의 개수의 제약이 가해질 수 있다.
도 2는 다양한 실시예에 따른 것으로, 가상화 계층(예컨대 하이퍼바이저(202) 및 Dom-0(205)) 상에서 특권 동작을 수행하기 위해 활용될 수 있는 API의 일례(200)를 도시한다. 도시된 실시예에서, 호스트 컴퓨팅 장치(201)(예컨대, 호스트 컴퓨팅 장치(201) 상의 Dom-0(205) 및/또는 하이퍼바이저(202))는 부팅 시 비대칭 키 쌍으로 구성된 암호화 아이디를 생성한다. 예컨대, 호스트 컴퓨팅 장치(101)가 부팅 중일 때, 하이퍼바이저(202)는 비공개 키(207)와 공개 키(209)를 포함하는 키 쌍을 생성한다. 마찬가지로, Dom-0(205)이 로딩될 때, 커널(206)은 비공개 키(213)와 공개 키(214)로 구성된 키 쌍을 생성할 수 있다.
다양한 실시예에서, 공개 키(209, 213)는 특정한 방식으로 발행될 수 있다. 예컨대, 공개 키는 인증 기관(210)에 제공될 수 있다. 대안으로서, 공개 키는 요청 당사자에게 직접 제공될 수 있다. 본 공개 키는 수집될 수 있으며, 요청은 본 공개 키를 사용하여 암호화될 수 있다. 본 실시예에서, 호스트 컴퓨팅 장치(201)에 의해 생성된 비공개 키(207, 214)는 호스트 컴퓨팅 장치를 결코 떠나지 않고 다른 어느 곳에도 존재하지 않는다. 요청 당사자(211)가 호스트(201)로부터 신뢰성 있게 비공개 키를 획득할 수 있을 경우, 요청은 호스트 컴퓨팅 장치(201)를 결코 떠나지 않는 비공개 키(207, 213)에 의해서만 암호 해독될 수 있기 때문에, 확실히, 공개 키를 이용하여 암호화되는 요청은 해당 호스트(201)에 의해서(그리고 해당 호스트에 의해서만) 암호 해독만 될 수 있다. 도 2는 Dom0(205)과 하이퍼바이저(202)가 모두 고유의 전용 키 쌍을 발급하는 예를 도시하고 있지만, 물론 이는 모든 실시예에 적용되는 요건이나 제약은 아니다. 몇몇 실시예에서는, 하이퍼바이저만이 키 쌍을 발급한다. 다른 실시예에서는, Dom-0 커널만이 키 쌍을 발급한다. 또 다른 실시예에서는, 하이퍼바이저와 Dom0 커널이 키 쌍을 공유할 수 있다.
몇몇 실시예에서, 호스트 컴퓨팅 장치(201)는 인증 기관(CA)(210)에 공개 키(209)를 제공할 수 있다. CA(210)는 적절한 요청 당사자(예컨대 요청 당사자(211))에게 하나 이상의 디지털 인증서(212, 215)를 발급하는 존재일 수 있다. 디지털 인증서는 당사자가 API 요청 암호화에 사용될 수 있는 공개 키를 적절히 소유하고 있다는 것을 증명한다. 본 실시예에서는, CA를 이용함으로써 요청 당사자는 비공개 키가 실제로 호스트 컴퓨팅 장치(201)를 대상으로 하는 것임을 확실하게 믿을 수 있다. 일 실시예에서, CA는 서비스 공급자를 위한 CA로, 서비스 공급자의 자원 센터 내에서 운영된다. 자원 센터에 대해서는 도 3을 참조하여 보다 상세히 후술한다. 다른 실시예에서, CA(210)는 요청 당사자(211)(예컨대 인증서의 소유자)와 인증서에 의존하는 호스트(201)가 모두 신뢰하는 믿을만한 제 3자이다. 인증 기관은 기술분야에 잘 알려져 있으며 많은 공개 키 기반구조(PKI) 체계에 사용된다.
본 실시예에서는, 일단 CA(210)가 요청 당사자(211)에게 증명서(212)를 발급하고 나면, 요청 당사자(211)는 커널(206) 또는 하이퍼바이저(202) 상에서 특권 동작을 실행하기 위해 인증서를 이용하여 API 요청을 생성할 수 있다. 이어서 커널(206) 또는 하이퍼바이저(202)는 특정 CA에 의해 서명되어 특정 당사자에게 발급된 인증서가 유효한지를 검증할 수 있고 이에 따라 특권 동작을 실행할 수 있다.
다양한 실시예에서는, 도 2에 도시된 기술을 도 1에 도시된 기술과 연계하여 사용할 수 있다. 예컨대, 도 2의 요청 당사자(211)는 특권 동작을 실행하기 위한 요청을 서명하기 위해 이용할 수 있는 고유의 비공개 키를 가질 수 있다. 본 실시예에서, 요청은 진짜임을 보장하기 위해 서명되고(즉, 호스트는 요청 당사자가 요청을 생성했다는 것을 확실히 알게 된다) 프라이버시를 보장하기 위해 암호화된다(즉, 어떤 외부 당사자도 요청에 포함된 정보를 해독할 수 없다).
도 3은 다양한 실시예에 따른 것으로, 서비스 공급자의 자원 센터 환경의 일례(300)를 도시한다. 도시된 실시예에서, 서비스 공급자(예컨대 클라우드 컴퓨팅 자원 공급자)는 서비스 공급자의 물리적 자원(예컨대 호스트 서버 등)을 저장하는 하나 이상의 자원 센터(323)(데이터 센터, 서버 팜 등)를 유지할 수 있다. 물리적 자원은 인터넷 등의 네트워크(302)를 통해 사용자(301)에게 제공될 수 있는 다수의 게스트(예컨대 가상 머신 인스턴스)를 호스팅하기 위해 사용될 수 있다. 예컨대, 사용자가 서비스 공급자의 물리적 자원을 사용하여 어플리케이션을 실행하길 원할 경우, 사용자는 어플리케이션의 배치 및 실행에 사용할 사용자용 가상 머신을 공급해줄 것을 서비스 공급자에게 요청할 수 있다. 사용자 어플리케이션에 대한 수요가 증가함에 따라, 사용자는 부하를 상쇄하기 위해 보다 많은 가상 머신을 제공해줄 것을 요청할 수 있을 뿐 아니라 하나 이상의 가상 사설 네트워크(VPN)의 생성 등을 요청할 수 있다.
도시된 예에서, 서비스 공급자의 자원 센터(323)는 호스트 서버(306, 307, 308, 309, 310)의 하나 이상의 랙(321, 322)을 포함할 수 있고, 특정 랙 상의 각각의 호스트 컴퓨팅 장치는 단일한 탑-오브-랙(TOR) 스위치(304, 305)에 연결된다. TOR 스위치는 호스트 서버를 네트워크에 연결시킬 수 있는 하나 이상의 다른 스위치(324, 325)에 추가로 연결될 수 있다. 본 명세서 전반에 걸쳐 사용되는 것으로, 네트워크는 인터넷 또는 여타의 광역 통신망(WAN), 셀룰러 네트워크, 근거리 통신망(LAN), 저장영역 네트워크(SAN), 인트라넷, 엑스트라넷 등을 포함하지만 이에 한정되지는 않는, 서로 통신이 가능한 장치들의 유선 또는 무선 네트워크일 수 있다. 자원 센터는 데이터 센터, 서버 팜, 콘텐츠 전송 네트워크(CDN), 상호접속위치(POP) 등과 같은, 자원들의 물리적 또는 논리적 그룹을 포함할 수 있다.
일 실시예에 따르면, 각각의 호스트 컴퓨팅 장치는 서비스 공급자의 고객을 대신하여 다양한 어플리케이션과 서비스를 실행하기 위해 고객에게 제공된 하나 이상의 게스트(예컨대 가상 머신 인스턴스(313, 314, 315, 316, 317, 318, 319))를 호스팅하기 위해 사용되는 가상화 계층(예컨대, Dom-0과 조합된 하이퍼바이저)을 포함할 수 있다. 각각의 게스트(예컨대, 가상 머신)는 커널, 드라이버, 프로세스 관리자 등을 포함하는 고유의 운영체제(OS)와 함께 제공될 수 있다.
고객이 가상 머신 인스턴스를 획득하고자 할 경우, 고객은 우선 사용하고자 하는 게스트의 유형(예컨대 VM)을 표시하는 요청을 서비스 공급자에게 제출할 수 있다. 서비스 공급자는 서비스 공급자의 물리적 자원(예컨대 호스트 컴퓨팅 장치) 상에서 호스팅될 게스트를 제공하기 위한 프로세스를 수행할 수 있다. 이어서 서비스 공급자의 자원을 활용하여 고객을 대신하여 다양한 어플리케이션과 서비스를 실행하기 위해 게스트를 사용할 수 있다.
일 실시예에 따르면, 일단 게스트가 준비되어 가동되고 나면, 가상화 계층(예컨대 하이퍼바이저 또는 커널)의 코드에 변경을 가할 필요가 있거나, 어떤 다른 특권 동작을 실행할 필요가 있을 수 있다. 예컨대, 서비스 공급자가 호스트 컴퓨팅 장치 상에서 VM을 호스팅하는 하이퍼바이저의 코드에 패치 또는 업데이트를 적용하길 원할 수 있다. 아니면, 고객(또는 어떤 다른 제 3자)이 커널 또는 하이퍼바이저의 코드에 업데이트를 적용하길 원할 수 있다. 다양한 실시예에서, 본 개시 전반에 걸쳐 설명하는 API는 사용자가 비대칭(또는 대칭) 암호법을 활용하여 보안된 방식으로 코드를 변경할 수 있도록 한다.
도 4는 다양한 실시예에 따른 것으로, 하이퍼바이저 또는 커널에서 특권 동작을 수행하기 위해 사용될 수 있는 API를 제공하기 위한 예시적인 프로세스(400)를 도시한다. 본 도면은 특정한 순서로 기능수행 동작들을 도시하고 있지만, 프로세스가 반드시 도시된 특정 순서 또는 동작들에 한정되는 것은 아니다. 기술분야의 당업자라면 본 도면이나 다른 도면에 도시된 다양한 동작들이 변경되거나, 재배열되거나, 병행하여 수행되거나, 다양한 방식으로 조정될 수 있다는 것을 분명히 알 것이다. 또한 특정 동작 또는 일련의 동작들이 다양한 실시예의 범위를 벗어나지 않고 프로세스에 추가되거나 프로세스에서 생략될 수 있음은 당연하다. 또한, 본 명세서에 수록된 프로세스 도해들은 코드 실행의 실제 순서를 특정하는 것이 아니라 기술분야의 당업자에게 프로세스 흐름을 실례를 들어 설명하기 위한 것으로, 본 프로세스는 다양한 흐름 또는 순서로 구현될 수 있거나, 수행을 위해 최적화될 수 있거나, 아니면 다양한 방식으로 변경될 수 있다.
동작 401에서는, 호스트 컴퓨팅 장치에 서명된 요청을 제출하기 위해 사용될 수 있는 하나 이상의 응용 프로그래밍 인터페이스(API)가 제공된다. 호스트 컴퓨팅 장치는 가상화 계층(예컨대 하이퍼바이저와 연계하여 작동되는 가상 머신 모니터 또는 Dom0)과 하나 이상의 게스트(예컨대 운영체제 커널을 갖는 게스트 운영체제를 가동하는 가상 머신)를 포함할 수 있다.
동작 402에서는, 비공개 키와 이에 대응하는 공개 키를 포함하는 비대칭 키 쌍이 생성된다. 일 실시예에서, 비대칭 키 쌍은 호스트 컴퓨팅 장치 상의 가상화 계층에 의해 생성된다. 다른 실시예에서, 비대칭 쌍은 인증 기관과 같은 다른 존재 또는 서비스에 의해 생성될 수 있다. 비공개 키는 정보의 암호화에 사용될 수 있고 공개 키는 비공개 키를 이용하여 암호화된 정보의 암호 해독에 사용될 수 있다.
동작 403에서는, 공개 키가 호스트 컴퓨팅 장치에 저장된다. 예컨대, 공개 키는 가상화 계층, 예컨대 Dom0이나 하이퍼바이저에 컴파일될 수 있다. 대안으로서, 키는 호스트 컴퓨팅 장치의 신뢰 플랫폼 모듈(TPM)에 저장될 수 있다.
동작 404에서는, 비공개 키가 호스트 컴퓨팅 장치 외부에 존재하는 보안 위치에 저장된다. 본 실시예에서, 비공개 키는 호스트 컴퓨팅 장치 상에 존재하지 않으며, 그 결과 호스트 컴퓨팅 장치 상에 거주하는 어떤 악성 에이전트도 비공개 키에 접근하지 못한다.
동작 405에서는, 호스트 컴퓨팅 장치가 가상화 계층 상에서의 특권 동작 실행을 요구하는, API를 통한 요청을 수신한다. 일 실시예에 따르면, 수신된 요청은 비공개 키를 이용하여 서명된다.
동작 406에서는, 가상화 계층(예컨대 커널 또는 하이퍼바이저)이 호스트 컴퓨팅 장치에 저장된 공개 키를 이용하여 요청의 서명을 인증한다. 요청의 서명이 인증되면, 동작 407에 도시된 바와 같이, 특권 동작이 하이퍼바이저/커널 상에서 실행될 수 있다. 서명이 공개 키를 이용하여 성공적으로 인증되지 못할 경우에는 특권 동작은 이루어지지 않는다(즉, 실행되지 않는다).
도 5는 다양한 실시예에 따른 것으로, 공개 키를 이용하여 암호화된 요청을 암호 해독하기 위해 호스트 컴퓨팅 장치에 의해 수행되는 예시적인 프로세스(500)를 도시한다.
동작 501에서는, 호스트 컴퓨팅 장치가 비대칭 키 쌍을 생성한다. 예컨대, 호스트 컴퓨팅 장치의 부팅 프로세스가 공개 키와 이에 대응하는 비공개 키를 생성할 수 있다. 동작 502에서는, 공개 키가 신뢰할 수 있는 소스에 발행된다. 일 실시예에서, 공개 키는 요청의 암호화에 공개 키를 사용할 요청 당사자에게 직접 제공될 수 있다. 다른 실시예에서, 공개 키는 인증 기관에 제공될 수 있는데, 인증 기관은 커널 또는 하이퍼바이저 상에서 특권 동작을 수행하길 원하는 인가된 당사자에게 인증서를 수여할 수 있다. 본 실시예에서, 인증 기관은 인증서 내에 비공개 키를 내장할 수 있고, 고유의 비공개 키를 이용하여 인증서를 서명할 수 있다. 따라서, 인증서를 수령한 당사자는 공개 키가 실제로 호스트 컴퓨팅 장치에서 유래하는 것임이 CA에 의해 인증되었음을 확인할 수 있다.
동작 504에서는, 호스트 컴퓨팅 장치가 특권 동작을 수행하기 위한 요청을 수신한다. 이어서 호스트 컴퓨팅 장치는 동작 505에 도시된 바와 같이, 호스트 컴퓨팅 장치에 저장된 비공개 키를 이용하여 요청을 암호 해독한다. 요청이 비공개 키를 사용하여 해독될 수 있다면, 동작 506에 도시된 바와 같이, 호스트 컴퓨팅 장치가 커널/하이퍼바이저 상에서 특권 동작을 실행할 수 있다.
본 개시의 다양한 실시예는 하기 항목들에 비추어 설명할 수 있다.
1. 가상화 컴퓨팅 환경에서 소프트웨어 변경을 보안하기 위한 컴퓨터 구현 방법으로서,
실행 가능 명령어를 포함하도록 구성되는 하나 이상의 컴퓨터 시스템의 제어 하에,
하나 이상의 게스트를 호스팅하도록 구성되는 가상화 계층을 포함하는 호스트 컴퓨팅 장치에 제출되는 요청을 수신하도록 구성되는 적어도 하나의 응용 프로그래밍 인터페이스(API)를 제공하는 단계;
호스트 컴퓨팅 장치에 정보의 암호 해독에 사용될 수 있는 공개 키를 저장하고, 정보의 암호화에 사용될 수 있는 대응 비공개 키를 호스트 컴퓨팅 장치 외부의 보안 위치에 저장하는 단계;
호스트 컴퓨팅 장치가 API를 통해, 보안 위치에 저장된 비공개 키를 이용하여 서명된, 호스트 컴퓨팅 장치의 가상화 계층에서의 특권 동작을 실행하기 위한 요청을 수신하는 단계; 및
가상화 계층이, 요청의 서명이 공개 키를 사용하여 성공적으로 인증될 경우에는 특권 동작을 실행하고, 요청의 서명이 공개 키를 이용하여 성공적으로 인증되지 못할 경우에는 특권 동작이 실행되지 않는 단계를 포함하는 방법.
2. 제1항에 있어서, 요청은 호스트 컴퓨팅 장치와 결부된 고유값을 추가로 포함하고, 서명 인증 단계는 요청에 포함된 고유값이 호스트 컴퓨팅 장치에 할당된 고유값과 일치하는지를 판정하는 단계를 추가로 포함하는 방법.
3. 제1항에 있어서, 요청은 호스트 컴퓨팅 장치의 가상화 계층과 결부된 암호화 아이디의 일부인 제2 공개 키를 이용하여 암호화되고, 암호화 아이디는 제2 공개 키와, 제2 공개 키를 이용하여 암호화되는 요청을 암호 해독하기 위해 사용되는 제2 비공개 키를 포함하는 키 쌍을 포함하는 방법.
4. 제1항에 있어서, 요청은 한정된 기간 동안만 요청의 효력을 유지하는 타임 스탬프를 추가로 포함하는 방법.
5. 제1항에 있어서, 호스트 컴퓨팅 장치에 비공개 키를 저장하는 단계는 인증 기관에 의해 발급되고 공개 키를 포함하는 인증서를 수신하는 단계를 추가로 포함하는 방법.
6. 컴퓨터 구현 방법으로서,
실행가능 명령어로 구성되는 하나 이상의 컴퓨터 시스템의 제어 하에,
호스트 컴퓨팅 장치의 부팅 동작 중에, 공개 키와 비공개 키를 포함하는 비대칭 키 쌍을 생성하는 단계;
공개 키를 발행하는 단계;
인터페이스를 사용하여, 적어도 공개 키에 의해 보안되는, 호스트 컴퓨팅 장치의 가상화 계층에서의 특권 동작을 실행하기 위한 요청을 수신하는 단계;
호스트 컴퓨팅 장치의 가상화 계층에 의해 요청을 검증하는 단계; 및
호스트 컴퓨팅 장치의 가상화 계층에서 특권 동작을 실행하는 단계를 포함하는, 컴퓨터 구현 방법.
7. 제6항에 있어서, 요청은 호스트 컴퓨팅 장치에 대하여 원격 저장되는 제2 비공개 키를 이용하여 서명되고, 요청의 서명은 호스트 컴퓨팅 장치가 이용 가능한 제2 공개 키를 이용하여 인증되는 방법.
8. 제6항에 있어서, 호스트 컴퓨팅 장치의 가상화 계층에 접근 가능한 휘발성 메모리에만 비공개 키를 저장하는 단계를 추가로 포함하는 방법.
9. 제6항에 있어서, 공개 키를 발행하는 단계는 인증서에 공개 키를 내장하도록 구성되는 인증 기관(CA)에 인증서 서명 요청을 전송하는 단계를 추가로 포함하는 방법.
10. 제6항에 있어서, 호스트 컴퓨팅 장치로 전송되는 요청은 공개 키를 이용하여 암호화되고, 호스트 컴퓨팅 장치는 호스트 컴퓨팅 장치에 저장된 비공개 키를 이용하여 요청을 암호 해독하도록 작동되는 방법.
11. 제6항에 있어서, 특권 동작은 호스트 컴퓨팅 장치의 가상화 계층의 러닝 메모리 이미지를 변경하기 위한 요청인 방법.
12. 제6항에 있어서, 특권 동작은,
호스트 컴퓨팅 장치 상의 하이퍼바이저와 커널 중 적어도 하나에 패치를 적용하기 위한 요청이거나;
호스트 컴퓨팅 장치 상에 호스팅된 게스트의 메모리 내 위치를 판독하기 위한 요청이거나;
호스트 컴퓨팅 장치에서 실행되는 하나 이상의 변수를 변경하기 위한 요청이거나; 또는
호스트 컴퓨터 장치에서 실행되는 게스트를 정지 또는 재부팅하기 위한 요청인 방법.
13. 제6항에 있어서, 비공개 키는 호스트 컴퓨팅 장치의 신뢰 플랫폼 모듈(TPM)에 저장되는 방법.
14. 제6항에 있어서, 요청은,
요청이 유효하게 유지되는 시간 기간을 한정하는 타임 스탬프; 또는
호스트 컴퓨팅 장치와 결부된 고유값 중 적어도 하나를 추가로 포함하는 방법.
15. 제6항에 있어서, 공개 키는 공개 키를 소지한 당사자에게 허락되는 특권 동작들의 세트와 결부되고, 요청을 검증하는 단계는 특권 동작이 해당 세트에 포함되는지를 판정하는 단계를 포함하는 방법.
16. 컴퓨팅 시스템으로서,
적어도 하나의 프로세서와;
명령어들을 포함하는 메모리를 포함하되, 상기 명령어들은, 프로세서에 의해 실행될 때, 컴퓨팅 시스템으로 하여금,
응용 프로그래밍 인터페이스(API)를 통해, 적어도 하나의 키를 이용하여 보안되는, 호스트 컴퓨팅 장치의 가상화 계층에서 특권 동작을 실행하기 위한 요청을 수신하고,
호스트 컴퓨팅 장치의 가상화 계층에 의해 요청을 검증하도록 시도하고,
요청이 성공적으로 검증될 경우, 호스트 컴퓨팅 장치의 가상화 계층에서 특권 동작을 실행하도록 하는, 컴퓨팅 시스템.
17. 제16항에 있어서, 요청은 호스트 컴퓨팅 장치에 대하여 원격 저장되는 비공개 키를 이용하여 생성되는 서명에 의해 보안되고, 요청은 호스트 컴퓨팅 장치가 이용 가능한 공개 키를 이용하여 검증되는, 컴퓨팅 시스템.
18. 제17항에 있어서, 호스트 컴퓨팅 장치는 공개 키가, 인가된 당사자에게 발급되고 호스트 컴퓨팅 장치가 신뢰하는 인증 기관에 의해 서명된 인증서에 포함되는 경우에, 공개 키를 이용하도록 구성되는, 컴퓨팅 시스템.
19. 제16항에 있어서, 부팅 시, 호스트 컴퓨팅 장치는,
제2 공개 키와 제2 비공개 키를 포함하는 비대칭 키 쌍을 생성하고,
제2 공개 키를 발행하고 호스트 컴퓨팅 장치의 휘발성 메모리에 제2 비공개 키를 저장하도록 구성되는, 컴퓨팅 시스템.
20. 제 19항에 있어서, 제2 공개 키를 발행하는 것은 제2 공개 키를 인증서에 연계시키기 위해 인증 기관에 인증서 서명 요청을 전송하는 것을 추가로 포함하는, 컴퓨팅 시스템.
21. 비일시적 컴퓨터 판독가능 저장 매체로서,
적어도 하나의 가상화 계층을 포함하는 호스트 컴퓨팅 장치에 요청을 제출하기 위한 인터페이스를 제공하고;
인터페이스를 사용하여, 적어도 하나의 키에 의해 보안되고 호스트 컴퓨팅 장치의 가상화 계층에서 검증될 수 있는, 호스트 컴퓨팅 장치의 가상화 계층에서의 특권 동작의 실행을 위한 요청을 수신하고;
호스트 컴퓨팅 장치의 가상화 계층에 의해 요청을 검증하고;
요청이 성공적으로 검증될 경우 호스트 컴퓨팅 장치의 가상화 계층에서 특권 동작을 실행하도록 하나 이상의 프로세서에 의해 실행 가능한 일련의 명령어를 저장하는, 비일시적 컴퓨터 판독가능 저장 매체.
22. 제21항에 있어서, 요청은 호스트 장치에 대하여 원격 저장되는 서명 비공개 키를 이용하여 서명되고, 요청의 서명은 호스트 컴퓨팅 장치가 이용 가능한 서명 공개 키를 이용하여 인증되는, 비일시적 컴퓨터 판독가능 저장 매체.
23. 제22항에 있어서, 호스트 컴퓨팅 장치는 서명 공개 키가, 인가된 당사자에게 발급되고 호스트 컴퓨팅 장치가 신뢰하는 인증 기관에 의해 서명된 인증서에 포함될 경우, 서명 공개 키를 이용하도록 구성되는, 비일시적 컴퓨터 판독가능 저장 매체.
24. 21항에 있어서, 하나 이상의 프로세서에 의해 실행 가능한 명령어들은,
하나 이상의 프로세서로 하여금,
호스트 컴퓨팅 장치의 부팅 절차 중에, 공개 키와 비공개 키를 포함하는 비대칭 키 쌍을 생성하고,
공개 키를 발행하고 호스트 컴퓨팅 장치에 비공개 키를 저장하도록 하는 명령어들을 추가로 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
25. 제 24항에 있어서, 공개 키를 발행하는 것은는 공개 키를 인증서에 첨부시키기 위해 인증 기관에 인증서 서명 요청을 전송하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
도 6은 예시적인 컴퓨팅 장치(600)의 일반적인 구성요소 세트의 논리 배열을 도시한다. 본 예에서, 본 장치는 메모리 장치 또는 요소(604)에 저장될 수 있는 명령어를 실행하기 위한 프로세서(602)를 포함한다. 기술분야의 당업자에게 자명한 바와 같이, 본 장치는 프로세서(602)에 의해 실행되는 프로그램 명령어를 저장하는 제1 데이터 저장 장치, 이미지 또는 데이터를 저장하는 별도의 저장 장치, 다른 장치와 정보를 공유하기 위한 이동식 메모리 등과 같은 다양한 유형의 메모리, 데이터 저장 장치, 또는 비일시적 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 본 장치는 통상적으로 터치 스크린 또는 액정 디스플레이(LCD)와 같은 특정 유형의 디스플레이 요소(606)를 포함하지만, 휴대용 매체 재생기와 같은 장치들은 오디오 스피커와 같은 다른 수단을 통해 정보를 전달할 수 있다. 검토한 바와 같이, 많은 실시예의 장치는 사용자로부터 통상적인 입력을 받아들일 수 있는 적어도 하나의 입력 요소(608)를 포함한다. 통상적인 입력 요소의 예로는 푸쉬 버튼, 터치 패드, 터치 스크린, 휠, 조이스틱, 키보드, 마우스, 키패드 또는 사용자가 본 장치에 명령을 입력할 수 있도록 하는 다른 유사한 장치 또는 요소를 들 수 있다. 그러나, 몇몇 실시예에서, 본 장치는 버튼을 전혀 포함하지 않고 시각 및 청각 명령의 조합을 통해서만 제어될 수 있으며, 그 결과 사용자는 본 장치와 접촉하지 않고서도 본 장치를 제어할 수 있다. 몇몇 실시예에서, 도 5의 컴퓨팅 장치(600)는 와이파이, 블루투스, 알에프, 유선 또는 무선 통신 시스템 등의 다양한 네트워크를 통해 통신하기 위한 하나 이상의 네트워크 인터페이스 요소(608)를 포함할 수 있다. 많은 실시예의 장치는 인터넷 등의 네트워크와 통신할 수 있고 다른 유사 장치와도 통신할 수 있다.
검토한 바와 같이, 다양한 방식이 상술한 실시예에 따라 다양한 환경에서 구현될 수 있다. 예컨대, 도 7은 다양한 실시예에 따른 양태를 구현하기 위한 환경(700)의 일례를 도시한다. 웹 기반 환경이 설명을 위해 사용되긴 하지만, 적절할 경우, 이와 다른 환경이 다양한 실시예를 구현하기 위해 이용될 수 있다. 본 시스템은 전자 클라이언트 장치(702)를 포함하는데, 이는 적절한 네트워크(704)를 통해 요청, 메시지 또는 정보를 송수신하고 장치의 사용자에게 도로 정보를 전달할 수 있는 임의의 적절한 장치를 포함할 수 있다. 이런 클라이언트 장치의 예로는 개인 컴퓨터, 휴대폰, 휴대용 메시징 장치, 노트북 컴퓨터, 셋탑 박스, 개인 정보단말기, 전자서적 판독기 등이 있다. 네트워크는 인트라넷, 인터넷, 셀룰러 네트워크, 근거리 통신망, 다른 유사 네트워크 또는 이들의 조합을 포함하는 임의의 적절한 네트워크를 포함할 수 있다. 이런 시스템에 사용되는 구성요소는 적어도 어느 정도는 선택되는 네트워크 및/또는 환경의 유형에 따라 결정된다. 이런 네트워크를 통해 통신하기 위한 프로토콜과 구성요소는 익히 공지되어 있어서 본 명세서에서는 상세히 검토하지 않는다. 네트워크를 통한 통신은 유선 또는 무선 연결 및 이들의 조합을 통해 이루어질 수 있다. 본 예에서는, 환경이 요청을 수신하고 이에 응답하여 콘텐츠를 제공하기 위한 웹 서버(706)를 포함함에 따라 네트워크가 인터넷을 포함하고 있지만, 기술분야의 당업자에게 자명한 바와 같이, 여타의 네트워크의 경우에는 유사한 목적을 수행하는 대안적인 장치가 사용될 수 있다.
예시된 환경은 적어도 하나의 응용 서버(708)와 데이터 저장소(710)를 포함한다. 물론 여러 개의 응용 서버, 계층 또는 여타의 요소, 프로세스 또는 구성요소가 존재할 수 있는데, 이들은 연쇄화되거나 다른 방식으로 구성될 수 있으며 적절한 데이터 저장소로부터 데이터를 획득하는 등의 작업을 수행하기 위해 상호작용할 수 있다. 본 명세서에서, "데이터 저장소"는 어떤 표준적인 분산 또는 군집 환경에서 데이터 서버, 데이터베이스, 데이터 저장 장치 및 데이터 저장 매체를 임의의 조합 및 수효로 포함할 수 있는 것으로, 데이터를 저장하고, 데이터에 접근하고, 데이터를 검색할 수 있는 장치 또는 장치들의 조합을 의미한다. 응용 서버는 클라이언트 장치를 위한 하나 이상의 어플리케이션의 양태를 실행하기 위해 필요에 따라 데이터 저장소와 통합되어 어플리케이션을 위한 데이터 접근 및 비즈니스 로직의 대부분을 처리하기 위한 임의의 적절한 하드웨어 및 소프트웨어를 포함할 수 있다. 응용 서버는 데이터 저장소와 협력하여 접근 제어 서비스를 제공하며 사용자에게 전송되는 텍스트, 그래픽, 오디오 및/또는 비디오 등의 콘텐츠를 생성할 수 있는데, 이들 콘텐츠는 본 예에서는 HTML, XML, 또는 다른 적절한 구조 언어의 형태로 웹 서버에 의해 사용자에게 제공될 수 있다. 클라이언트 장치(702)와 응용 서버(708) 사이의 콘텐츠 전달은 물론 모든 요청 및 응답의 처리는 웹 서버(706)에 의해 수행될 수 있다. 본 명세서에서 검토되는 구조화된 코드는 본 명세서의 다른 곳에서 검토된 바와 같은 임의의 적절한 장치 또는 호스트 컴퓨팅 장치에서 실행될 수 있기 때문에, 웹과 응용 서버는 필수적인 것이 아니라 단지 예시적인 구성요소일 따름이다.
데이터 저장소(710)는 여러 개의 별도 데이터 테이블, 데이터베이스 또는 특정 양태에 관한 데이터를 저장하기 위한 여타의 데이터 저장 메커니즘 및 매체를 포함할 수 있다. 예컨대, 도시된 데이터 저장소는 생산 측을 위한 콘텐츠를 제공하기 사용될 수 있는 생산 데이터(712)와 사용자 정보(716)를 저장하기 위한 메커니즘을 포함한다. 또한 데이터 저장소는 로그 또는 세션 데이터(714)를 저장하기 위한 메커니즘을 포함하는 것으로 도시되어 있다. 물론, 페이지 이미지 정보와 접근 권한 정보와 같은, 데이터 저장소에 저장될 필요가 있는 다수의 다른 양태도 있을 수 있는데, 이들 양태는 적절할 경우 위에 열거한 메커니즘 중 어느 것이나, 데이터 저장소(710)의 추가적인 메커니즘에 저장될 수 있다. 데이터 저장소(710)는 그와 결부된 로직을 통해, 응용 서버(708)로부터의 명령을 수신하고 이에 응답하여 데이터를 획득하거나 업데이트하거나 달리 처리할 수 있다. 일례로, 사용자는 특정 유형의 항목에 대한 검색 요청을 제출할 수 있다. 이 경우, 데이터 저장소는 사용자 정보에 접근하여 사용자의 아이디를 확인하고 카탈로그 상세 정보에 접근하여 해당 유형의 항목에 대한 정보를 획득할 수 있다. 이어서 정보는 예컨대 사용자가 사용자 장치(702)의 브라우저를 통해 볼 수 있는 웹 페이지를 목록화한 결과물의 형태로 사용자에게 도로 전송될 수 있다. 특정 관심 항목에 대한 정보는 브라우저의 전용 페이지 또는 윈도우에서 찾아볼 수 있다.
통상적으로 각각의 서버는 해당 서버의 일반적인 관리 및 운영을 위한 실행 가능한 프로그램 명령어를 제공하고 서버의 프로세서에 의해 실행될 때 서버가 그 의도된 기능을 수행할 수 있도록 하는 명령어를 저장하는 컴퓨터 판독가능 매체를 통상 포함하는 운영체제를 포함한다. 운영체제의 적절한 구현예와 서버의 일반적 기능은 공지되어 있거나 상업적으로 입수 가능하며, 특히 본 명세서의 개시에 비추어 기술분야의 당업자가 용이하게 구현할 수 있다.
일 실시예의 환경은 하나 이상의 컴퓨터 네트워크 또는 직결 접속로를 사용하여 통신 링크를 통해 상호연결되는 여러 개의 컴퓨터 시스템과 구성요소를 활용하는 분산 컴퓨팅 환경이다. 그러나, 이런 시스템이 도 7에서 도시된 것보다 적거나 많은 구성요소를 갖춘 시스템에서도 똑같이 양호하게 작동할 수 있음을 기술분야의 당업자라면 당연히 알 수 있을 것이다. 따라서, 도 7에 나타낸 시스템(700)은 당연히 예로서 제시된 것이며 본 개시의 범위를 제한하지 않는다.
본 명세서에서 검토하거나 제시하는 다양한 실시예는 몇몇 경우에는 다수의 어플리케이션 중 임의의 것을 작동시키기 위해 사용될 수 있는 하나 이상의 사용자 컴퓨터, 컴퓨팅 장치 또는 처리 장치를 포함할 수 있는 광범위한 운영 환경에서 구현될 수 있다. 사용자 또는 클라이언트 장치는 표준 운영체제를 운영하는 데스크탑 또는 노트북 컴퓨터와 같은 다수의 범용 개인 컴퓨터와 휴대용 소프트웨어를 운영하고 다수의 네트워킹 및 메시징 프로토콜을 지원할 수 있는 셀 방식 장치, 무선 장치 및 휴대형 장치들 중 어떤 것이든 포함할 수 있다. 이런 시스템은 또한 다양한 상용 운영체제 중 임의의 것을 운영하는 다수의 워크스테이션과, 개발 및 데이터베이스 관리 등을 위한 여타의 공지된 어플리케이션을 포함할 수 있다. 이들 장치는 또한 가상 단말기, 씬 클라이언트, 게임 시스템 및 네트워크를 통해 통신할 수 있는 여타의 장치와 같은 다른 전자 장치를 포함할 수도 있다.
대부분의 실시예는 TCP/IP, OSI, FTP, UPnP, NFS, CIFS 및 애플토크와 같은 다양한 상용 프로토콜 중 임의의 것을 사용하여 통신을 지원하기 위해 기술분야의 당업자가 익히 알고 있는 적어도 하나의 네트워크를 활용할 수 있다. 네트워크는 예컨대 근거리 통신망, 광역 통신망, 가상 사설 통신망, 인터넷, 이트라넷, 엑스트라넷, 공중교환 전화망, 적외선 네트워크, 무선 네트워크 및 이들의 임의의 조합일 수 있다.
웹 서버를 활용하는 실시예에서, 웹 서버는 HTTP 서버, FTP 서버, CGI 서버, 데이터 서버, 자바 서버 및 비즈니스 응용 서버를 포함하는 다양한 서버 또는 중간급 어플리케이션 중 임의의 것을 운영할 수 있다. 서버(들)는 또한 예컨대 자바(등록상표(Java®)), C, C# 또는 C++ 등의 프로그래밍 언어나 Perl, Python 또는 TCL 등의 스크립팅 언어 및 이들의 조합으로 작성된 하나 이상의 스크립트 또는 프로그램으로서 구현될 수 있는 하나 이상의 웹 어플리케이션을 실행함으로써 사용자 장치로부터의 요청에 응답하여 프로그램 또는 스크립트를 실행할 수 있다. 서버(들)는 오라클(등록상표(Oracle®)), 마이크로소프트(등록상표(Microsoft®)), 사이베이스(등록상표(Sybase®)) 및 아이비엠(등록상표(IBM®))으로부터 상업적으로 입수가능한 것들을 제한 없이 포함하는 데이터베이스 서버를 포함할 수도 있다.
환경은 상술한 바와 같은 다양한 데이터 저장소와 여타의 메모리 및 저장 매체를 포함할 수 있다. 이들은 다양한 위치에, 예컨대 컴퓨터들 중 하나 이상에 국지화된(그리고/또는 소재하는) 저장 매체나, 네트워크 상에 존재하는 컴퓨터들의 일부 또는 전부로부터 원격에 소재할 수 있다. 특정한 실시예 세트에서, 정보는 기술분야의 당업자에게 익숙한 저장영역 네트워크("SAN")에 소재할 수 있다. 마찬가지로, 컴퓨터, 서버 또는 여타의 네트워크 장치에 속한 기능을 수행하기 위한 필수 파일은 적절할 경우 국지적으로 및/또는 원격에 저장될 수 있다. 시스템이 컴퓨터화된 장치를 포함하는 경우, 각각의 이런 장치는 버스를 통해 전기적으로 연결될 수 있는 하드웨어 요소를 포함할 수 있는데, 이런 요소는 예컨대 적어도 하나의 중앙처리장치(CPU), 적어도 하나의 입력 장치(예컨대, 마우스, 키보드, 제어판, 터치스크린 또는 키보드) 및 적어도 하나의 출력 장치(예컨대, 디스플레이 장치, 프린터 또는 스피커)를 포함할 수 있다. 이런 시스템은 또한 디스크 드라이브, 광학 저장 장치 및 랜덤 액세스 메모리("RAM") 또는 판독전용 메모리("ROM")와 같은 솔리드스테이트 저장 장치를 하나 이상 포함하는 것은 물론 이동식 매체 장치, 메모리 카드, 플래쉬 카드 등도 포함할 수 있다.
이런 장치는 또한 상술한 바와 같은 컴퓨터 판독가능 저장 매체 판독기, 통신 장치(예컨대, 모뎀, 네트워크 카드(무선 또는 유선), 적외선 통신 장치 등) 및 작업 메모리를 포함할 수 있다. 컴퓨터 판독가능 저장 매체 판독기는 컴퓨터 판독가능 정보를 임시로 그리고/또는 영구적으로 내장, 저장, 전송 및 검색하기 위한 저장 매체는 물론 원격형, 국지형, 고정식 및/또는 이동식 저장 장치에 해당하는 컴퓨터 판독가능 저장 매체에 연결되거나 이들 저장 매체를 수납하도록 구성될 수 있다. 또한 시스템과 장치는 다수의 소프트웨어 어플리케이션, 모듈, 서비스 또는 클라이언트 어플리케이션이나 웹 브라우저와 같은 운영체제와 응용 프로그램을 포함하는, 적어도 하나의 작업 메모리 장치 내에 배치되는 여타의 요소를 통상 포함한다. 물론 대안적인 실시예에서는 상술한 바로부터 많은 변형이 이루어질 수 있다. 예컨대, 주문형 하드웨어가 사용될 수도 있고/있거나 특정 요소가 하드웨어, 소프트웨어(애플릿 등의 휴대형 소프트웨어를 포함) 또는 이들 모두에 구현될 수 있다. 또한, 네트워크 입출력 장치와 같은 여타의 컴퓨팅 장치에 대한 연결이 이루어질 수도 있다.
코드 또는 코드의 일부를 내장하기 위한 저장 매체와 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 여타의 메모리 기술, CD-ROM, 디지털 다기능 디스크(DVD) 또는 여타의 광학 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 여타의 자기 저장장치, 또는 원하는 정보의 저장을 위해 사용될 수 있고 시스템 장치에 의해 접근 가능한 여타의 매체를 포함하는, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장 및/또는 전송을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체와 같은 것이지만 이에 한정되지는 않는 저장 매체와 통신 매체를 포함하는, 기술분야에 공지되거나 사용되는 임의의 적절한 매체를 포함할 수 있다. 본 명세서에 제시된 개시와 설시를 토대로, 기술분야의 당업자는 다양한 실시예를 구현하기 위한 다른 방식 및/또는 방법을 알 수 있을 것이다.
따라서, 본 명세서와 도면은 제한적인 의미가 아니라 예시적인 것으로 간주되어야 한다. 그러나, 이에 기초한 다양한 수정 및 변경이 특허청구범위에 기재된 본 발명의 사상과 범위를 벗어나지 않고서 실행될 수 있음은 물론이다.

Claims (17)

  1. 컴퓨터 구현 방법으로서,
    호스트 컴퓨팅 장치의 부팅 동작 중에, 공개 키와 비공개 키를 포함하는 비대칭 키 쌍을 생성하는 단계;
    인증서에 상기 공개 키를 내장하도록 구성되는 인증 기관(certificate authority; CA)에 인증서 서명 요청을 전송하는 것에 의해 상기 공개 키를 발행하는 단계 - 상기 인증서는 상기 호스트 컴퓨팅 장치의 가상화 계층에서 특권 동작을 수행하기 위해 이용되고, 상기 인증 기관은 상기 인증서를 상기 특권 동작을 수행할 권한이 있는 요청자에게 제공하도록 구성됨 - ;
    상기 CA에 의해 서명된 상기 인증서가 유효하다는 것을 결정하는 단계;
    인터페이스를 사용하여, 상기 호스트 컴퓨팅 장치의 상기 가상화 계층에서 상기 특권 동작을 실행하기 위한 요청을 상기 요청자로부터 수신하는 단계로서, 상기 요청은 적어도 상기 인증서로부터의 상기 공개 키에 의해 보안되는, 상기 요청을 수신하는 단계;
    상기 호스트 컴퓨팅 장치에 저장된 상기 비공개 키를 이용하여 상기 요청을 암호 해독함으로써 상기 비공개 키의 이용에 부분적으로 기초하여 상기 호스트 컴퓨팅 장치의 상기 가상화 계층에 의해 상기 요청을 검증하는 단계 - 상기 요청을 검증하는 것은 상기 요청자가 상기 호스트 컴퓨팅 장치의 상기 가상화 계층에서 상기 특권 동작을 수행할 권한이 있음을 나타냄 - ; 및
    상기 호스트 컴퓨팅 장치의 상기 가상화 계층에서 상기 특권 동작을 실행하는 단계를 포함하는, 컴퓨터 구현 방법.
  2. 제1항에 있어서, 상기 요청은 상기 호스트 컴퓨팅 장치에 대하여 원격 저장되는 제2 비공개 키를 이용하여 서명되고, 상기 요청의 서명은 상기 호스트 컴퓨팅 장치가 이용 가능한 제2 공개 키를 이용하여 인증되는, 컴퓨터 구현 방법.
  3. 제1항에 있어서, 상기 호스트 컴퓨팅 장치의 상기 가상화 계층에 접근 가능한 휘발성 메모리에만 상기 비공개 키를 저장하는 단계를 추가로 포함하는, 컴퓨터 구현 방법.
  4. 삭제
  5. 제1항에 있어서, 상기 호스트 컴퓨팅 장치로 전송되는 상기 요청은 상기 공개 키를 이용하여 암호화되는, 컴퓨터 구현 방법.
  6. 제1항에 있어서, 상기 특권 동작은 상기 호스트 컴퓨팅 장치의 상기 가상화 계층의 러닝 메모리 이미지를 변경하기 위한 요청인, 컴퓨터 구현 방법.
  7. 제1항에 있어서, 상기 특권 동작은,
    상기 호스트 컴퓨팅 장치의 하이퍼바이저와 커널 중 적어도 하나에 대해 패치를 적용하기 위한 요청이거나;
    상기 호스트 컴퓨팅 장치에 호스팅된 게스트의 메모리 내 위치를 판독하기 위한 요청이거나;
    상기 호스트 컴퓨팅 장치에서 실행되는 하나 이상의 변수를 변경하기 위한 요청이거나; 또는
    상기 호스트 컴퓨팅 장치에서 실행되는 게스트를 정지시키거나 재부팅하기 위한 요청인, 컴퓨터 구현 방법.
  8. 제1항에 있어서, 상기 비공개 키는 상기 호스트 컴퓨팅 장치의 신뢰 플랫폼 모듈(trusted platform module: TPM)에 저장되는, 컴퓨터 구현 방법.
  9. 제1항에 있어서, 상기 요청은,
    상기 요청이 유효하게 유지되는 시간 기간을 한정하는 타임 스탬프; 또는
    상기 호스트 컴퓨팅 장치와 결부된 고유값
    중 적어도 하나를 추가로 포함하는, 컴퓨터 구현 방법.
  10. 제1항에 있어서, 상기 공개 키는 상기 공개 키를 소지한 당사자에게 허락되는 특권 동작들의 세트와 결부되고, 상기 요청을 검증하는 단계는 상기 특권 동작이 상기 세트에 포함되는지를 판정하는 단계를 포함하는, 컴퓨터 구현 방법.
  11. 컴퓨팅 시스템으로서,
    적어도 하나의 프로세서; 및
    명령어들을 포함하는 메모리를 포함하되, 상기 명령어들은, 상기 프로세서에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금,
    부팅 시, 공개 키와 비공개 키를 포함하는 비대칭 키 쌍을 생성하고,
    인증서에 상기 공개 키를 내장하도록 구성되는 인증 기관(CA)에 인증서 서명 요청을 전송하는 것에 의해 상기 공개 키를 발행하고 - 상기 인증서는 호스트 컴퓨팅 장치의 가상화 계층에서 특권 동작을 수행하기 위해 이용되고, 상기 인증 기관은 상기 인증서를 상기 특권 동작을 수행할 권한이 있는 요청자에게 제공하도록 구성됨 - ;
    상기 CA에 의해 서명된 상기 인증서가 유효하다는 것을 결정하며,
    응용 프로그래밍 인터페이스(application programming interface: API)를 통해, 상기 호스트 컴퓨팅 장치의 상기 가상화 계층에서 상기 특권 동작을 실행하기 위한, 적어도 상기 인증서로부터의 상기 공개 키를 이용하여 보안되는 요청을 상기 요청자로부터 수신하고;
    상기 호스트 컴퓨팅 장치에 저장된 상기 비공개 키를 이용하여 상기 요청을 암호 해독함으로써 상기 비공개 키의 이용에 부분적으로 기초하여 상기 호스트 컴퓨팅 장치의 상기 가상화 계층에 의해 상기 요청을 검증하도록 시도하고 - 상기 요청을 검증하는 것은 상기 요청자가 상기 호스트 컴퓨팅 장치의 상기 가상화 계층에서 상기 특권 동작을 수행할 권한이 있음을 나타냄 - ; 그리고
    상기 요청이 성공적으로 검증될 경우, 상기 호스트 컴퓨팅 장치의 상기 가상화 계층에서 상기 특권 동작을 실행하도록 하는, 컴퓨팅 시스템.
  12. 제11항에 있어서, 상기 요청은 상기 호스트 컴퓨팅 장치에 대하여 원격 저장되는 제2 비공개 키를 이용하여 생성되는 서명에 의해 보안되고, 상기 요청은 상기 호스트 컴퓨팅 장치가 이용 가능한 제2 공개 키를 이용하여 검증되는, 컴퓨팅 시스템.
  13. 제12항에 있어서, 상기 호스트 컴퓨팅 장치는, 상기 제2 공개 키가, 인가된 당사자에게 발급되고 상기 호스트 컴퓨팅 장치가 신뢰하는 인증 기관에 의해 서명된 상기 인증서에 포함되는 경우에, 상기 제2 공개 키를 이용하도록 구성되는, 컴퓨팅 시스템.
  14. 제11항에 있어서, 부팅 시, 상기 호스트 컴퓨팅 장치는,
    상기 호스트 컴퓨팅 장치의 휘발성 메모리에 상기 비공개 키를 저장하도록 구성되는, 컴퓨팅 시스템.
  15. 삭제
  16. 제11항에 있어서, 상기 요청은,
    상기 요청이 유효하게 유지되는 시간 기간을 한정하는 타임 스탬프; 또는
    상기 호스트 컴퓨팅 장치와 결부된 고유값
    중 적어도 하나를 추가로 포함하는, 컴퓨팅 시스템.
  17. 제11항에 있어서, 상기 공개키는 상기 공개 키를 소지한 당사자에게 허락되는 특권 동작들의 세트와 결부되고, 상기 요청을 검증하는 것은 상기 특권 동작이 상기 세트에 포함되는지를 판정하는 것을 포함하는, 컴퓨팅 시스템.
KR1020157022330A 2013-01-22 2014-01-22 특권 동작을 발동하기 위한 보안 인터페이스 KR101735982B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/746,737 US10063380B2 (en) 2013-01-22 2013-01-22 Secure interface for invoking privileged operations
US13/746,737 2013-01-22
PCT/US2014/012604 WO2014116743A1 (en) 2013-01-22 2014-01-22 Secure interface for invoking privileged operations

Publications (2)

Publication Number Publication Date
KR20150110652A KR20150110652A (ko) 2015-10-02
KR101735982B1 true KR101735982B1 (ko) 2017-05-15

Family

ID=51208708

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157022330A KR101735982B1 (ko) 2013-01-22 2014-01-22 특권 동작을 발동하기 위한 보안 인터페이스

Country Status (9)

Country Link
US (2) US10063380B2 (ko)
EP (1) EP2948854B1 (ko)
JP (1) JP6092428B2 (ko)
KR (1) KR101735982B1 (ko)
CN (1) CN104969201B (ko)
AU (1) AU2014209470B2 (ko)
CA (1) CA2898906C (ko)
SG (1) SG11201505651WA (ko)
WO (1) WO2014116743A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11228449B2 (en) 2013-01-22 2022-01-18 Amazon Technologies, Inc. Secure interface for invoking privileged operations

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9860274B2 (en) 2006-09-13 2018-01-02 Sophos Limited Policy management
US9503268B2 (en) 2013-01-22 2016-11-22 Amazon Technologies, Inc. Securing results of privileged computing operations
US9729517B2 (en) 2013-01-22 2017-08-08 Amazon Technologies, Inc. Secure virtual machine migration
US8978122B1 (en) * 2013-03-29 2015-03-10 Emc Corporation Secure cross-tenancy federation in software-as-a-service system
GB2515536A (en) * 2013-06-27 2014-12-31 Ibm Processing a guest event in a hypervisor-controlled system
GB2518367B (en) * 2013-09-18 2020-07-22 Ibm Authorized remote access to an operating system hosted by a virtual machine
US9563419B2 (en) * 2014-02-20 2017-02-07 International Business Machines Corporation Managing deployment of application pattern based applications on runtime platforms
CN106575427B (zh) * 2014-08-12 2020-12-08 艾高特有限责任公司 基于零知识环境的社交网络引擎
GB2532415A (en) 2014-11-11 2016-05-25 Ibm Processing a guest event in a hypervisor-controlled system
US9787478B2 (en) 2015-06-10 2017-10-10 Qualcomm Incorporated Service provider certificate management
US10110566B2 (en) 2015-07-21 2018-10-23 Baffle, Inc. Systems and processes for executing private programs on untrusted computers
CN105262592A (zh) * 2015-09-18 2016-01-20 浪潮(北京)电子信息产业有限公司 一种数据交互的方法及api接口
US9794292B2 (en) * 2015-10-26 2017-10-17 Amazon Technologies, Inc. Providing fine-grained access remote command execution for virtual machine instances in a distributed computing environment
CN106991298B (zh) * 2016-01-21 2021-02-02 斑马智行网络(香港)有限公司 应用程序对接口的访问方法、授权请求方法及装置
US10044701B2 (en) * 2016-05-24 2018-08-07 Vantiv, Llc Technologies for token-based authentication and authorization of distributed computing resources
US10318311B2 (en) * 2016-06-30 2019-06-11 Amazon Technologies, Inc. Memory allocation techniques at partially-offloaded virtualization managers
WO2018027059A1 (en) 2016-08-03 2018-02-08 KryptCo, Inc. Systems and methods for delegated cryptography
US20200136835A1 (en) * 2017-06-30 2020-04-30 Nokia Solutions And Networks Oy Sharing secure connection context via a trusted proxy
US10885211B2 (en) 2017-09-12 2021-01-05 Sophos Limited Securing interprocess communications
KR102515891B1 (ko) * 2018-06-11 2023-03-29 삼성전자주식회사 전자장치, 그 제어방법 및 기록매체
US10853494B2 (en) * 2018-07-23 2020-12-01 Vmware, Inc. Binding a trusted virtual machine to a trusted host computer
CN112292678A (zh) * 2019-01-04 2021-01-29 百度时代网络技术(北京)有限公司 用于验证将要由主机系统的数据处理加速器执行的内核对象的方法与系统
US10574466B1 (en) * 2019-07-11 2020-02-25 Clover Network, Inc. Authenticated external biometric reader and verification device
US11336635B2 (en) * 2019-11-18 2022-05-17 Ciot Systems and methods for authenticating device through IoT cloud using hardware security module
CN111125597B (zh) * 2019-12-18 2023-10-27 百度在线网络技术(北京)有限公司 网页加载方法、浏览器、电子设备及存储介质
KR20210112923A (ko) 2020-03-06 2021-09-15 삼성전자주식회사 시스템 온 칩 및 이의 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120117624A1 (en) 2009-07-03 2012-05-10 Telefonaktiebolaget Lm Ericsson (Publ) Method and Apparatus for use in an IP Multimedia Subsystem
US20120117625A1 (en) * 2010-11-09 2012-05-10 Microsoft Corporation Security system for computing resources pre-releases
US20120324446A1 (en) * 2011-06-17 2012-12-20 Microsoft Corporation Virtual machine image composition and signing

Family Cites Families (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0692428A (ja) 1992-09-11 1994-04-05 Sony Corp 搬送方法
US5410602A (en) 1993-09-27 1995-04-25 Motorola, Inc. Method for key management of point-to-point communications
KR0172003B1 (ko) 1995-03-28 1999-03-30 김광호 컴퓨터 시스템 및 그 제어방법
US5638541A (en) 1995-08-25 1997-06-10 Intel Corporation System and method for managing power on desktop systems
US7020880B2 (en) 1997-01-08 2006-03-28 International Business Machines Corporation Modular application collaborator for providing inter-operability between applications and monitoring errors to trigger execution of required compensating actions to undo interrupted transaction
US6704871B1 (en) 1997-09-16 2004-03-09 Safenet, Inc. Cryptographic co-processor
CA2255285C (en) 1998-12-04 2009-10-13 Certicom Corp. Enhanced subscriber authentication protocol
US6826715B1 (en) 1999-10-28 2004-11-30 Hewlett-Packard Development Company, L.P. Automatic capture and comparison of computer configuration data
US6826690B1 (en) 1999-11-08 2004-11-30 International Business Machines Corporation Using device certificates for automated authentication of communicating devices
JP3938852B2 (ja) 2001-06-20 2007-06-27 富士通株式会社 監視サービス価格提示方法,監視サービス価格提示プログラム,監視サービス価格提示装置
US6944300B2 (en) 2001-06-22 2005-09-13 International Business Machines Corporaton Method for migrating a base chip key from one computer system to another
JP2003051838A (ja) 2001-08-07 2003-02-21 Sony Corp アドレス管理システム、インタフェースid設定処理装置、通信端末装置、およびアドレス管理方法、並びにコンピュータ・プログラム
US7272832B2 (en) 2001-10-25 2007-09-18 Hewlett-Packard Development Company, L.P. Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
US7418596B1 (en) * 2002-03-26 2008-08-26 Cellco Partnership Secure, efficient, and mutually authenticated cryptographic key distribution
AU2003240323A1 (en) 2002-06-06 2003-12-22 Sxip Networks Srl Distributed hierarchical identity management
US20040064691A1 (en) * 2002-09-26 2004-04-01 International Business Machines Corporation Method and system for processing certificate revocation lists in an authorization system
JP2004254027A (ja) 2003-02-19 2004-09-09 Toshiba Corp サーバ装置、鍵管理装置、暗号通信方法及びプログラム
US20050044363A1 (en) * 2003-08-21 2005-02-24 Zimmer Vincent J. Trusted remote firmware interface
JP2005122561A (ja) 2003-10-17 2005-05-12 Canon Inc アプリケーションプロテクトシステム
US8295484B2 (en) * 2004-12-21 2012-10-23 Broadcom Corporation System and method for securing data from a remote input device
EP2194476B1 (en) 2005-03-22 2014-12-03 Hewlett-Packard Development Company, L.P. Method and apparatus for creating a record of a software-verification attestation
US7636442B2 (en) 2005-05-13 2009-12-22 Intel Corporation Method and apparatus for migrating software-based security coprocessors
US8364638B2 (en) 2005-09-15 2013-01-29 Ca, Inc. Automated filer technique for use in virtualized appliances and applications
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US7797545B2 (en) * 2005-09-29 2010-09-14 Research In Motion Limited System and method for registering entities for code signing services
JP2007122303A (ja) 2005-10-27 2007-05-17 Hitachi Ltd 論理区画式計算機システム
JP5054317B2 (ja) 2006-02-08 2012-10-24 株式会社アイ・オー・データ機器 暗号鍵設定方法、ネットワークシステム、管理装置、情報処理端末、および暗号鍵設定プログラム
CA2648780C (en) 2006-04-25 2013-07-16 Stephen Laurence Boren Dynamic distributed key system and method for identity management, authentication servers, data security and preventing man-in-the-middle attacks
US8130959B2 (en) 2006-09-07 2012-03-06 International Business Machines Corporation Rekeying encryption for removable storage media
US8407699B2 (en) * 2008-03-10 2013-03-26 Citrix Systems, Inc. System and method for managing code isolation
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
US8380987B2 (en) 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
US7913086B2 (en) * 2007-06-20 2011-03-22 Nokia Corporation Method for remote message attestation in a communication system
US9112681B2 (en) 2007-06-22 2015-08-18 Fujitsu Limited Method and apparatus for secure information transfer to support migration
US8453143B2 (en) 2007-09-19 2013-05-28 Vmware, Inc. Reducing the latency of virtual interrupt delivery in virtual machines
KR100953092B1 (ko) 2007-11-06 2010-04-19 한국전자통신연구원 Sso서비스 방법 및 시스템
US9363258B2 (en) * 2007-12-17 2016-06-07 International Business Machines Corporation Secure digital signature system
US8208637B2 (en) 2007-12-17 2012-06-26 Microsoft Corporation Migration of computer secrets
US8259948B2 (en) 2007-12-29 2012-09-04 Intel Corporation Virtual TPM key migration using hardware keys
US7882070B2 (en) 2007-12-31 2011-02-01 Sap Ag System and method for UDDI data migration using standard UDDI v3 API
US8353015B2 (en) * 2008-01-09 2013-01-08 Microsoft Corporation Trusted internet identity
EP2249511A1 (en) 2008-02-25 2010-11-10 Panasonic Corporation Information security device and information security system
WO2009151445A1 (en) * 2008-06-10 2009-12-17 Hewlett-Packard Development Company, L.P. Method and apparatus for configuring a hypervisor during a downtime state
EP2316071A4 (en) 2008-06-19 2011-08-17 Servicemesh Inc CLOUD DATA PROCESSING GATEWAY, CLOUD DATA PROCESSING HYPERVISOR, AND METHOD FOR IMPLEMENTING THEM
US9075957B2 (en) 2008-08-04 2015-07-07 Sandisk Il Ltd. Backing up digital content that is stored in a secured storage device
US9715401B2 (en) 2008-09-15 2017-07-25 International Business Machines Corporation Securing live migration of a virtual machine from a secure virtualized computing environment, over an unsecured network, to a different virtualized computing environment
US9559842B2 (en) * 2008-09-30 2017-01-31 Hewlett Packard Enterprise Development Lp Trusted key management for virtualized platforms
US20100082960A1 (en) * 2008-09-30 2010-04-01 Steve Grobman Protected network boot of operating system
US8336079B2 (en) 2008-12-31 2012-12-18 Hytrust, Inc. Intelligent security control system for virtualized ecosystems
US8768843B2 (en) * 2009-01-15 2014-07-01 Igt EGM authentication mechanism using multiple key pairs at the BIOS with PKI
US8738932B2 (en) 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
US9158912B2 (en) 2009-04-01 2015-10-13 Dell Products L.P. Method and apparatus for a virtual machine hosting network with user devices
US8392709B1 (en) * 2009-04-28 2013-03-05 Adobe Systems Incorporated System and method for a single request—single response protocol with mutual replay attack protection
US9768965B2 (en) * 2009-05-28 2017-09-19 Adobe Systems Incorporated Methods and apparatus for validating a digital signature
US8438256B2 (en) 2009-06-26 2013-05-07 Vmware, Inc. Migrating functionality in virtualized mobile devices
US9565207B1 (en) * 2009-09-04 2017-02-07 Amazon Technologies, Inc. Firmware updates from an external channel
US8386731B2 (en) 2009-09-14 2013-02-26 Vmware, Inc. Method and system for optimizing live migration of persistent data of virtual machine using disk I/O heuristics
KR20110035573A (ko) 2009-09-30 2011-04-06 주식회사 케이티 클라우드 컴퓨팅 환경에서 안전한 가상 머신 설치를 제공하는 방법
US8631404B2 (en) 2010-02-18 2014-01-14 Red Hat Israel, Ltd. Mechanism for downloading hypervisor updates via a virtual hardware device using existing virtual machine-host channels
US8417885B2 (en) 2010-02-24 2013-04-09 Avaya Inc. Method and apparatus for high availability (HA) protection of a running virtual machine (VM)
WO2011114476A1 (ja) * 2010-03-17 2011-09-22 富士通株式会社 マルチコアプロセッサシステム、通知プログラム、および通知方法
JP2011211255A (ja) 2010-03-26 2011-10-20 Kyocera Corp データ転送システム、通信機器及びデータ転送方法
US8300831B2 (en) 2010-04-26 2012-10-30 International Business Machines Corporation Redundant key server encryption environment
US8473557B2 (en) 2010-08-24 2013-06-25 At&T Intellectual Property I, L.P. Methods and apparatus to migrate virtual machines between distributive computing networks across a wide area network
KR20120050742A (ko) 2010-11-11 2012-05-21 삼성에스디에스 주식회사 커널 네이티브 에이피아이의 후킹 처리를 통한 디지털 저작권 관리 장치 및 방법
US8880667B2 (en) 2011-02-09 2014-11-04 Microsoft Corporation Self regulation of the subject of attestation
JP5648544B2 (ja) 2011-03-15 2015-01-07 富士通株式会社 スケジューリングプログラム、および情報処理装置
US8732462B2 (en) * 2011-07-07 2014-05-20 Ziptr, Inc. Methods and apparatus for secure data sharing
US8832447B2 (en) * 2011-08-10 2014-09-09 Sony Corporation System and method for using digital signatures to assign permissions
JP2013058006A (ja) 2011-09-07 2013-03-28 Fuji Xerox Co Ltd 情報処理装置及び情報処理プログラム
US8522035B2 (en) * 2011-09-20 2013-08-27 Blackberry Limited Assisted certificate enrollment
US8694786B2 (en) * 2011-10-04 2014-04-08 International Business Machines Corporation Virtual machine images encryption using trusted computing group sealing
US9069586B2 (en) 2011-10-13 2015-06-30 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US8788843B2 (en) * 2011-10-28 2014-07-22 LogMeln, Inc. Storing user data in a service provider cloud without exposing user-specific secrets to the service provider
US9413538B2 (en) 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US8914629B2 (en) 2012-01-30 2014-12-16 The Nielsen Company (Us), Llc Intercepting encrypted network traffic for internet usage monitoring
US8909939B1 (en) * 2012-04-04 2014-12-09 Google Inc. Distribution of cryptographic host keys in a cloud computing environment
US8688984B2 (en) * 2012-04-27 2014-04-01 Google Inc. Providing content to a user across multiple devices
US10255089B2 (en) * 2012-07-31 2019-04-09 Ca, Inc. Self-deleting virtual machines
US8924720B2 (en) * 2012-09-27 2014-12-30 Intel Corporation Method and system to securely migrate and provision virtual machine images and content
US10063380B2 (en) 2013-01-22 2018-08-28 Amazon Technologies, Inc. Secure interface for invoking privileged operations
US9503268B2 (en) 2013-01-22 2016-11-22 Amazon Technologies, Inc. Securing results of privileged computing operations
US9729517B2 (en) 2013-01-22 2017-08-08 Amazon Technologies, Inc. Secure virtual machine migration

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120117624A1 (en) 2009-07-03 2012-05-10 Telefonaktiebolaget Lm Ericsson (Publ) Method and Apparatus for use in an IP Multimedia Subsystem
US20120117625A1 (en) * 2010-11-09 2012-05-10 Microsoft Corporation Security system for computing resources pre-releases
US20120324446A1 (en) * 2011-06-17 2012-12-20 Microsoft Corporation Virtual machine image composition and signing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11228449B2 (en) 2013-01-22 2022-01-18 Amazon Technologies, Inc. Secure interface for invoking privileged operations

Also Published As

Publication number Publication date
US20140208096A1 (en) 2014-07-24
EP2948854B1 (en) 2017-11-29
AU2014209470A1 (en) 2015-08-27
US10063380B2 (en) 2018-08-28
AU2014209470B2 (en) 2017-04-06
US11228449B2 (en) 2022-01-18
JP2016509725A (ja) 2016-03-31
WO2014116743A1 (en) 2014-07-31
CN104969201B (zh) 2019-06-28
EP2948854A4 (en) 2016-09-28
US20190068379A1 (en) 2019-02-28
SG11201505651WA (en) 2015-08-28
CN104969201A (zh) 2015-10-07
KR20150110652A (ko) 2015-10-02
CA2898906A1 (en) 2014-07-31
EP2948854A1 (en) 2015-12-02
CA2898906C (en) 2017-10-31
JP6092428B2 (ja) 2017-03-08

Similar Documents

Publication Publication Date Title
KR101735982B1 (ko) 특권 동작을 발동하기 위한 보안 인터페이스
JP6462103B2 (ja) 特権的コンピューティングオペレーションの結果の保護
US10609560B2 (en) Using derived credentials for enrollment with enterprise mobile device management services
US10621366B2 (en) Chained security systems
US10409985B2 (en) Trusted computing host
US10397778B2 (en) Computer network providing secure mobile device enrollment features and related methods
JP6165883B2 (ja) 安全な仮想マシン移行
WO2019099234A1 (en) Secure authentication of a device through attestation by another device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant