KR101701664B1 - 보안 가상 머신 이송 - Google Patents

보안 가상 머신 이송 Download PDF

Info

Publication number
KR101701664B1
KR101701664B1 KR1020157022744A KR20157022744A KR101701664B1 KR 101701664 B1 KR101701664 B1 KR 101701664B1 KR 1020157022744 A KR1020157022744 A KR 1020157022744A KR 20157022744 A KR20157022744 A KR 20157022744A KR 101701664 B1 KR101701664 B1 KR 101701664B1
Authority
KR
South Korea
Prior art keywords
computing device
host computing
key
request
destination
Prior art date
Application number
KR1020157022744A
Other languages
English (en)
Other versions
KR20150110712A (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 KR20150110712A publication Critical patent/KR20150110712A/ko
Application granted granted Critical
Publication of KR101701664B1 publication Critical patent/KR101701664B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • 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/45562Creating, deleting, cloning virtual machine instances
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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

Abstract

복수의 호스트 컴퓨팅 장치간에 가상 머신 인스턴스의 보안 이송을 할 수 있도록 하기 위한, 비대칭(또는 대칭) 암호와 같은 보안 스킴을 사용하는 형식화된 세트의 인터페이스(가령, 응용 프로그래밍 인터페이스(APIs))가 기술된다. 이송은 가상 머신을 이송하기 위한 요청을 수신함에 의해 수행되는데, 여기서, 요청은 소스 호스트 컴퓨팅 및 데스티네이션 호스트 컴퓨팅을 위한 공개키를 포함한다. 소스 및 데스티네이션 호스트는 암호화된 세션을 설립하기 위한 공개키를 사용하고 나서, 가상 머신을 이송하기 위한 암호화된 세션을 사용한다.

Description

보안 가상 머신 이송{SECURE VIRTUAL MACHINE MIGRATION}
더 많은 수의 애플리케이션과 서비스가 인터넷과 같은 네트워크에 걸쳐 이루어짐에 따라, 더 많은 수의 콘텐츠, 애플리케이션, 및/또는 서비스 제공자가 클라우드 컴퓨팅과 같은 기술에 의지한다. 일반적으로, 클라우드 컴퓨팅은 웹 서비스와 같은 서비스를 통해 전자적 자원으로의 접근을 제공하는 접근법이고, 이러한 서비스를 지원하는데 사용되는 하드웨어 및/또는 소프트웨어는 동적으로 확장 및 축소가 가능(scalable)하여, 임의의 주어진 시간에 서비스의 요구를 충족시킨다. 전형적으로, 사용자 또는 고객은 클라우드를 통해 자원에 접근하기 위해 빌리거나, 리스하거나 아니면 값을 지불할 것이어서, 필요한 하드웨어 및/또는 소프트웨어를 구입하고 유지할 필요가 없다.
많은 클라우드 컴퓨팅 제공자는 가상 현실화를 사용하여, 복수의 사용자가 기본적인 하드웨어 및/또는 소프트웨어 자원을 공유할 수 있도록 한다. 가상 현실화는 컴퓨팅 서버, 저장 장치 또는 그 밖의 다른 자원이 특정 사용자에 의해 각각 소유된 복수의 고립된 인스턴스(instance), (가령, 가상 머신)으로 나뉘어질 수 있도록 할 수 있다. 이들 가상 머신은 호스트 컴퓨팅 장치상에서 실행되는 하이퍼바이저를 사용하여 종종 호스팅된다. 이와 관련하여, 하나의 호스트 컴퓨팅 장치에서 다른 호스트 컴퓨팅 장치로 가상 머신을 이송하는 것이 가끔 바람직하다.
본 개시물에 따른 다양한 실시예가 도면을 참조하여 기술된다.
도 1a는 다양한 실시예에 따라, 복수의 이송 요청을 사용하여 두 개의 호스트 컴퓨팅 장치간에 가상 머신을 보안상으로 이송하는 예시를 나타내고,
도 1b는 다양한 실시예에 따라, 하나의 이송 요청을 사용하여, 두 개의 호스트 컴퓨팅 장치간에 가상 머신을 안전하게 이송하는 예시를 나타내고,
도 2는 다양한 실시예에 따라, 호스트 컴퓨팅 장치로 제출된 이송 요청에 싸인(sign)하기 위한 비대칭 암호를 사용하는 예시를 나타내고,
도 3은 다양한 실시예에 따라, 인증기관을 사용하는 예시를 나타내고,
도 4는 다양한 실시예에 따라, 서비스 제공자의 자원 센터 환경(resource center environment)의 예시를 나타내고,
도 5는 다양한 실시예에 따라, 복수의 호스트 컴퓨팅 장치간의 가상 머신 인스턴스를 보안상으로 이송하기 위한 예시적인 프로세스를 나타내고,
도 6은 다양한 실시예에 따라, 하이퍼바이저 또는 커널 내에서, 이송 요청과 같은 특권이 있는 동작을 수행하는데 사용될 수 있는 API를 제공하기 위한 예시적인 프로세스를 나타내고,
도 7은 다양한 실시예에 따라, 요청의 암호화를 사용하는 예시적인 프로세스를 나타내고,
도 8은 다양한 실시예에 따라 사용될 수 있는 예시적인 컴퓨팅 장치의 일반적인 구성의 세트의 논리적인 배치를 나타내고, 및
도 9는 다양한 실시예에 따른 양상을 실행하기 위한 예시적인 환경을 나타낸다.
다음 설명에서, 다양한 실시예가 첨부된 도면을 제한하지 않고, 예시로서 나타날 것이다. 이 개시물내의 다양한 실시예에 대한 참조는 동일한 실시예일 필요는 없고, 이러한 참조는 적어도 하나를 의미한다. 특정 실시예 및 그 밖의 다른 세부사항이 논의되지만, 이는 단지 설명적인 목적을 위한 것이라는 점을 이해해야 한다. 관련 기술에서의 당업자는 다른 구성 및 컨피규레이션이 청구된 주제의 범위와 사상으로부터 벗어나지 않으면서 사용될 수 있다.
본 개시물의 다양한 실시예에 따른 시스템 및 방법은 가상 머신 및 그 밖의 보안된 정보(가령, 키스토어(keystore)등)와 같은 컴퓨팅 자원의 이송을 위한 종래의 접근법에서 경험된, 하나 이상의 상기 또는 그 밖의 다른 부족한 점을 극복할 수 있다. 특히, 다양한 실시예는 비대칭(또는 대칭) 암호화와 같은 보안 스킴을 사용하여, 다양한 호스트 컴퓨팅 장치간의 가상 머신의 보안상(가령, 암호화된) 이송을 가능하게 할 수 있다.
다양한 실시예에서, 가상 머신(VM) 또는 그 밖의 보안된 정보의 이송을 위한 프로세스는 소스 호스트 컴퓨팅 장치(source host computing device)와 데스티네이션 호스트 컴퓨팅 장치(destination host computing device)를 선택하는 것으로 시작할 수 있다. 일 실시예에서, 인스턴스를 이송하기 위한 하나의 요청은 두 개의 서로 다른 호스트 장치(소스 호스트 및 데스티네이션 호스트)에 어드레스될 수 있다. 이 요청은 두 호스트 컴퓨팅 장치를 위한 키(key)를 포함할 수 있다. 또 다른 실시예에서, 두 요청이 발행될 수 있는데, 한 요청은 소스 호스트로 발행되고, 다른 것은 데스티네이션 호스트로 발행된다. 각각의 요청은 (파라미터로서) 다른 호스트를 위한 공개키를 포함한다. 이와 같이, 소스 호스트 컴퓨팅 장치로의 요청은 데스티네이션 호스트 컴퓨팅 장치의 공개키를 포함하고, 데스티네이션 호스트 컴퓨팅 장치로의 요청은 소스 호스트 컴퓨팅 장치를 위한 공개키를 포함한다.
요청이 소스 호스트 컴퓨팅 장치에 의해 수신되면, 소스 호스트 컴퓨팅 장치는 데스티네이션 호스트 컴퓨팅 장치에 접촉하여, 상호 인증이 수행된다. 실시예에 따르면, 두 개의 호스트 컴퓨팅 장치는 보안 세션(secure session)을 설립하고, 이송을 위해 사용될 이송키(migration key)(가령, 세션키(session key))에 동의한다. 보안 세션은 소스 호스트 컴퓨팅 장치 및 데스티네이션 호스트 컴퓨팅 장치에 이송을 위한 요청의 일부로서 제공되었던 키를 사용하여 설립된다. 가상 머신의 이송은 소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로의 상태 정보(가령, 디스크 상태, RAM 상태 등)의 전송을 포함한다. 상태 데이터는 소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로, 보안 세션을 통해 전송될 수 있고, 상태 데이터는 협상되었던 이송키를 사용하여 암호화될 수 있다. 전송의 암호화는 신뢰할 수 없는 자가 전송된 데이터를 읽거나, 수정하거나, 아니면 접근하는 것을 막을 수 있다.
일부 실시예에서, 이송을 시작하기 위한 초기 요청은 스스로, 임의의 중간자가 파라미터 및 요청의 그 밖의 정보를 읽는 것을 막기 위해, 그리고, 요청의 진실성을 보장하기 위하여, 암호화 및/또는 싸인될 수 있다. VM을 이송하기 위한 요청은, 요청이 커널 및/또는 호스트 컴퓨팅 장치상의 가상 현실화 레이어에 보안상으로 제공되도록 할 수 있는 인터페이스(가령, 응용 프로그래밍 인터페이스(API))의 형식화된 세트를 사용하여, 커널 또는 가상 현실화 레이어(가령, 하이퍼바이저)에 제출될 수 있다.
다양한 실시예에서, 본원에서 기술되는 보안 스킴은, 하이퍼바이저 및/또는 호스트 컴퓨팅 장치의 OS 커널과 같은 로케이션에서 특권이 있는 동작을 수행할 때, 멀티-테넌트 공유된 자원 환경(multi-tenant shared resource environment)(가령, 클라우드 컴퓨팅 환경)에서 사용될 수 있다. 종래에는, 이러한 유형의 환경에서, 호스트 컴퓨팅 장치는 가상 현실화 기술을 사용하여, 서비스 제공자(가령, 클라우드 컴퓨팅 제공자)의 서로 다른 고객과 관련된 하나 이상의 가상 머신 인스턴스를 제공한다. 이들 가상 머신 인스턴스는 하이퍼바이저(또는 그 밖의 다른 가상 현실화 기술)를 사용하여 컴퓨팅 장치상에 호스팅되고, 각각의 가상 머신 인스턴스는, 커널, 장치 드라이버 및 그 밖의 다른 OS 구성을 포함하는 게스트 운영 시스템을 포함할 수 있다. 호스트 컴퓨팅 장치 및 가상 머신을 호스팅하기 위한 그 밖의 물리적 자원은 대개 서비스 제공자에 의해 제공되고, 데이터 센터, 서버팜, 콘텐츠 딜리버리 네트워크(content delivery network, CDNs) 인터넷 접속 포인트(POPs)등과 같은 자원 센터에 존재한다. 다양한 실시예에서, 본원에서 기술되는 보안 스킴은 가상 머신 인스턴스가 복수의 호스트 컴퓨팅 장치들간에 보안상으로 이송될 수 있도록 하여, 서비스 제공자가 이송 프로세스 동안에 데이터 보안을 위태롭게함 없이 자원 활용성을 개선시킬 수 있다. 이송 요청이 싸인되기 때문에, 인증되지 않은 자는 사기 이송의 일부로서의 리드 또는 라이트를 발행할 수 없다. 소스와 데스티네이션간의 데이터 전송이 암호화되기 때문에, 신뢰하지 못하는 자는 전송되는 블록 데이터를 리드할 수 없다.
일 실시예에 따르면, 서비스는 멀티-테넌트 컴퓨팅 환경에서 제공될 수 있는데, 여기서, 서비스는 이송 프로세스를 개시한다. 본 실시예에서, 서비스는 이송될 가상 머신을 확인하여, 가상 머신을 위한 데스티네이션 호스트를 결정하고, 이송 프로세스를 시작하기 위한 API 콜(들)을 발행할 수 있다. 예를 들어, 서비스는 API 콜을 통해 호스트 컴퓨팅 장치 및 적절한 키를 가진 데스티네이션 호스트로 이송 요청을 제출할 수 있다. 그리고 나서, 이송은 이전에 기술된 바와 같이, 키를 사용하여 보안 이송 세션을 설립함에 의해 수행된다.
일부 실시예에서, 가상 머신을 이송하기 보다는, 본원에서 기술되는 보안 스킴이 가상 머신의 메모리를 원격으로 리드하는데 사용되거나, (가령, 법원 전문가에 의해) 나중에 검사될 저장소로 가상 머신이 복사되는데 사용될 수 있다. 예를 들어, 서비스는 가상 머신을 호스팅하는 호스트 컴퓨팅 장치로 API 콜을 제출할 수 있는데, 여기서, API 콜은 서비스로 제공될 가상 머신의 메모리를 요청한다. 대안적으로, 서비스는 호스트 컴퓨팅 장치가 가상 머신을, 나중에 분석될 메모리 내의 지정된 로케이션으로 복사하도록 요청할 수 있다. 요청은 하나 이상의 키를 포함할 수 있다. 요청 수신에 응답하여, VM을 호스팅하는 호스트 컴퓨팅 장치는 하나 이상의 키를 사용하여 컴퓨팅 장치에 요청하여 보안 세션을 설립할 수 있고, 그리고 나서, 가상 머신의 메모리에 접근 또는 지정된 로케이션으로 가상 머신의 메모리에 라이트를 제공할 수 있다.
도 1a는 다양한 실시예에 따라, 복수의 이송 요청을 사용하여 두 개의 호스트 컴퓨팅 장치간에 가상 머신을 보안상으로 이송하는 예시를 나타낸다. 도시된 바와 같이, 권한 있는 개체(107)는 소스 호스트 컴퓨팅 장치(101) 및 데스티네이션 호스트 컴퓨팅 장치(102)를 선택하고, 소스 호스트 컴퓨팅 장치(101)에서 데스티네이션 호스트 컴퓨팅 장치(102)로 가상 머신(108)의 이송을 개시할 수 있다. 권한 있는 개체는, 네트워크 관리자 또는 이송을 수행하기 위해 특권이 있는 접근성이 있는 서비스 제공자의 그 밖의 다른 기술자와 같이, 이송 요청이 이루어지도록 허용되는 임의의 자(가령, 사용자, 애플리케이션, 서비스 등)일 수 있다.
도시된 실시예에서, 이송을 시작하기 위하여, 권한 있는 개체(107)는 두 개의 요처(103, 105) - 한 요청이 관련된 호스트 컴퓨팅 장치의 각각에 대한 것이다. 각각의 요청은 다른 것을 위한 공개키를 포함한다. 특히, 소스 호스트 장치(101)로 어드레스되는 요청(103)은 데스티네이션 호스트 컴퓨팅 장치(102)를 위한 공개키(104)를 포함하고, 요처(105)은 소스 호스트 컴퓨팅 장치(101)를 위한 공개키(106)를 포함한다. 일 실시예에서, 각각의 요청은 요청의 진실성을 보장하기 위하여 싸인(signed)된다. 요청은 도 2를 참조하여 기술될 바와 같은, 권한 있는 개체(107)의 비밀키(private key)를 사용함에 의해 싸인될 수 있다. 이송 요청의 싸인은 호스트 컴퓨팅 장치가 요청이 사기꾼이 아닌 적절한 권한 있는 개체(107)에 의해 개시되었다는 것을 확인할 수 있도록 할 수 있다.
요청이 각각의 컴퓨팅 장치에 의해 수신되면, 소스 호스트 컴퓨팅 장치(101)는 데스티네이션 호스트 컴퓨팅 장치(102)와 접촉하고, 상호 인증이 수행되어 보안 세션을 설립한다. 다양한 실시예에서, 상호 인증은, 전송 레이어 보안(TLS) 및 보안 소켓 레이어(SSL)와 유사한 기술을 사용하여 수행될 수 있다. 특히, 상호 인증은, 두 개의 호스트의 비밀키와 공개키를 효율적으로 클라이언트 인증과 서버 인증으로 사용하여, 보안 세션을 위한 세션키(112)를 협상하는 소스 호스트 컴퓨팅 장치(101) 및 데스티네이션 호스트 컴퓨팅 장치(102)에 의해 수행될 수 있다. 일 실시예에서, 소스 호스트 컴퓨팅 장치(101)는 데스티네이션 호스트 컴퓨팅 장치(102)에 접촉하는데, 소스 호스트 컴퓨팅 장치와 데스티네이션 호스트 컴퓨팅 장치는, 요청에서 제공되었던 키를 사용하여 서로 인증한다. 인증되면, 소스 호스트 컴퓨팅 장치와 데스티네이션 호스트 컴퓨팅 장치는 세션키가 상태 정보를 전송하는데 사용되는 것에 동의한다. 일 실시예에서, 키 동의는 전방향 비밀성(forward secrecy)을 보장하기 위한 Diffie-Hellman 이다. 상태 정보를 전송하기 위해 사용되는 큰 암호는 인증된 암호 보안 갈루아/카운터 모드(Authenticated Encryption Security Galois/Counter Mode, AES-GCM)일 수 있다. 대안적인 실시예에서, 키는 그 밖의 다른 기술을 사용하여 협상될 수 있다. 그 밖의 다른 실시예에서, 세션키도 원래의 이송 요청(103, 105)의 일부로서 포함될 수 있다.
실시예에 따르면, 소스 호스트 컴퓨팅 장치(101)로부터 데스티네이션 호스트 컴퓨팅 장치(102)로 전송된 데이터는, 보안 세션을 설립하는 것의 일부로서 협상되는 세션키(112)에 암호화된다. 키를 갖지 않은 당사자는 이 데이터를 해독할 수 없어서, 두 호스트간의 보안 데이터 전송을 보장한다. 다양한 실시예에서, 데스티네이션 호스트 컴퓨팅 장치(102)로의 가상 머신(108, 111) 이송은 데스티네이션 호스트 컴퓨팅 장치(102)로 상태 정보(109, 110)를 복사하는 것을 포함할 수 있다. 일 실시예에서, 소스 호스트 컴퓨팅 장치(101)상의 리드 인터페이스는 데스티네이션 호스트 컴퓨팅 장치(102)상의 라이트 인터페이스에 연결될 수 있고, 가상 머신 이송을 위해 사용할 수 있다. 관련된 이송의 유형에 의존하여, 복사되어야 하는 상태 정보(109)는 디스크 상태, 랜덤 액세스 메모리(RAM) 상태, VM의 외부의 네트워크 파이어월 상태 등을 포함할 수 있다. 일부 실시예에서, 네트워크 입력/출력(I/O) 동작과 같은 일부 상태 정보는 순서대로 복사될 필요가 있을 수 있다.
대안적인 실시예에서, 키 대신에, 하나 이상의 증명서가 가상 머신을 보안적으로 이송하는데 사용될 수 있다. 본 실시예에서, 소스 호스트 컴퓨팅 장치(101)로의 요청(103)은 데스티네이션 호스트 컴퓨팅 장치(102)에 대한 증명서를 포함할 수 있고, 또는 호스트 컴퓨팅 장치(102)를 위한 식별자만을 포함할 수 있다. 요청을 수신하면, 호스트 컴퓨팅 장치(101)는 호스트 컴퓨팅 장치(102)에 접촉할 수 있고, 여기서, 호스트 컴퓨팅 장치(102)는 싸인된 증명서를 기대하고, 표준 증명서 유효성을 수행한다. 증명서 및 증명서 권한의 일반적인 사용은 도 3 및 이와 관련된 문헌을 참조하여 좀 더 자세히 기술된다.
일 실시예에서, 소스 호스트 컴퓨팅 장치(101)는 데스티네이션 호스트 컴퓨팅 장치(102)로 가상 머신의 라이브 이동을 수행할 수 있다. 라이브 이송(live migration)이란, 하나의 호스트 컴퓨팅 장치상의 가상 머신을 우선 차단하고나서, 또 다른 호스트 컴퓨팅 장치상의 가상 머신을 시작하는 것과 관련된 콜드 이송(cold migration) 또는 리부트 이송(reboot migration)과 달리, 이송이 완성되는 동안, 가상 머신이 소스 호스트 컴퓨팅 장치(101)상에서 계속 실행되는 것을 의미한다. 그러나, 본원에서 기술되는 많은 실시예가 라이브 이송으로 제한되지 않고, 임의의 다른 유형의 이송이 본 개시물의 범위 내에서 실행될 수 있다는 점을 유의해야 한다.
라이브 이송이 수행되면, 소스 호스트 컴퓨팅 장치(101)는, 가상 머신이 소스 호스트 컴퓨팅 장치(101)상에서 실행되는 동안, 처음부터 끝까지 RAM 상태와 같은 데이터를 데스티네이션 호스트 컴퓨팅 장치(102)로 복사하는 것을 시작할 수 있다. 소스 호스트 컴퓨팅 장치(101)상의 RAM이 실질적으로 클 수 있기 때문에(가령, 기가 바이트), 전체 RAM 상태의 복사는 상당한 양의 시간이 소요될 수 있다. 결과적으로, 복사가 완료되면, 상태의 일부분은 무효(invalid)로될 개연성이 있는데, 왜냐하면, RAM 상태가 데스티네이션 호스트 컴퓨팅 장치(102)로 전송되는 동안에, 상태 데이터가 가상 머신을 실행함에 의해 지속적으로 변형되었기 때문이다. 이러한 무효 부분을 해결하기 위하여, 전체 RAM 상태가 전송되면, 소스 호스트 컴퓨팅 장치(101)가 다시 처음에 시작할 수 있으나, 이 시간에는 RAM 상태로의 변화만 복사한다. 그리고 나서, 이러한 프로세스는 소스 호스트 컴퓨팅 장치(101)와 데스티네이션 호스트 컴퓨팅 장치(102)간의 무효인 상태 데이터의 양을 최소로 하기 위하여, 여러번 반복될 수 있다. 프로세스가 반복됨에 따라, 데스티네이션 호스트 컴퓨팅 장치(102)로 복사되어야 하는 상태 데이터의 양이, 변화를 복사하는데 소요되는 감소된 시간 때문에, 점점 더 작아진다. 예를 들어, 전체 RAM 상태를 복사하기 위해, 기가바이트의 데이터가 전송될 필요가 있고, 처음 한 세트의 변화를 복사하기 위해, 100 메가바이트가 전송될 필요가 있으며, 다음 세트의 변화를 복사하기 위해, 10 메가바이트가 전송될 필요가 있는 등이다. 기설정된 스레숄드가 도달할 때까지, 프로세스는 반복될 수 있는데, 그 시점에서, 가상 머신이 소스 호스트 컴퓨팅 장치(101)상에서 정지되고, 변화가 데스티네이션 호스트 컴퓨팅 장치(102)로 복사되며, 가상 머신(111)의 새로운 인스턴스가 데스티네이션 호스트 컴퓨팅 장치(102)상에서 시작된다. 다양한 실시예에서, 라이브 이송 전반에 걸쳐, 소스 호스트 컴퓨팅 장치(101)와 데스티네이션 호스트 컴퓨팅 장치(102)간에 전송되는 상당한 양의 데이터가, 이전에 기술된 바와 같이, 소스와 데스티네이션간에 협상되었던 세션키를 사용하여 암호화될 수 있다. 이러한 방식으로, 두 개의 호스트 간에 전송되는 민감한 데이터는 소스 호스트 컴퓨팅 장치(101)와 데스티네이션 호스트 컴퓨팅 장치(102)의 외부의 임의의 다른 자에 의해 보안되고, 리드되지 않는다.
도 1b는 다양한 실시예에 따라, 하나의 이송 요청을 사용하여, 두 개의 호스트 컴퓨팅 장치간에 가상 머신을 안전하게 이송하는 예시(120)를 나타낸다. 도시된 바와 같이, 권한 있는 개체(107)는 도 1a를 참조하여 이전에 기술된 바와 같은 유사한 방식으로, 소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로의 가상 머신 인스턴스의 이송을 개시할 수 있다. 그러나, 도 1b의 실시예에서, 권한 있는 개체(107)는 두 개의 호스트, 즉, 소스 호스트 컴퓨팅 장치(101)와 데스티네이션 호스트 컴퓨팅 장치 장치(102)로 어드레스되는 하나의 요청(103)을 생성할 수 있다. 요청(103)은 두 장치를 위한 키를 포함한다. 예를 들어, 이송 요청(103)은 가상 머신(108)을 호스트 컴퓨팅 장치(101)에서 호스트 컴퓨팅 장치(102)로 이송하도록 요청할 수 있고, 요청은 호스트(101)를 위한 키(104)와 호스트(102)를 위한 키(106)를 (가령, 파라미터로서) 포함할 수 있다. 요청은 권한 있는 개체의 비밀키를 사용하여 싸인될 수 있다.
실시예에 따르면, 요청은 소스 호스트 컴퓨팅 장치(101)와 데스티네이션 호스트 컴퓨팅 장치(102) 모두에게 제공된다. 키가 싸인된 요청(103)에 포함되기 때문에, 각각의 호스트 컴퓨팅 장치는 이들이 요청의 싸인자를 신뢰하는 것과 같이, 키를 신뢰한다. 요청이 수신되면, 소스 호스트 컴퓨팅 장치(101)와 데스티네이션 컴퓨팅 장치(102)가 보안 세션을 설립하고, 세션키(112)를 협상하여, 가상 머신(108)을 이송하고, 이전에 기술된 바와 같이, 상태 정보(109)를 데스티네이션 호스트 컴퓨팅 장치(102)로 복사한다.
도면 및 이와 관련된 문헌이 가상 머신을 이송하기 위한 다양한 기술을 묘사할지라도, 이는 본원에 기술된 실시예의 전부를 제한하는 것이 아니라는 점을 유의해야 한다. 다야한 대안적인 실시예에서, 임의의 다른 보안된 정보가 본원에 기술된 보안 스킴을 사용하여, 소스 호스트 컴퓨팅 장치(101)에서 데스티네이션 호스트 컴퓨팅 장치(102)로 이송 또는 전송될 수 있다. 예를 들어, 복수의 키를 포함하는 키스토어는 소스 호스트 컴퓨팅 장치(101)에서 데스티네이션 호스트 컴퓨팅 장치(102)로 보안적으로 이송될 수 있다. 마찬가지로, 소스 호스트 컴퓨팅 장치(101)의 신뢰 플랫폼 모듈(trusted platform module, TPM)의 상태는 데스티네이션 호스트 컴퓨팅 장치로 이송될 수 있다. 동일한 방식으로, IP 테이블, 룰 및 그 밖의 다른 정보는 본원에서 기술되는 다양한 실시예에 따라 보안적으로 될 수 있다.
도 2는 다양한 실시예에 따라, 호스트 컴퓨팅 장치로 제출된 이송 요청에 싸인(sign)하기 위한 비대칭 암호를 사용하는 예시(200)를 나타낸다. 도시된 실시예에서, 호스트 컴퓨팅 장치(201)는 적어도 하나의 가상 현실화 레이어(하이퍼바이저(202)와 Dom0(205)의 조합으로 나타남) 및 하나 이상의 게스트(211)를 포함한다. 게스트는 가상 머신 인스턴스일 수 있고, 이들 각각은 자체 개개의 운영 시스템(OS), 커널(206), 장치 드라이버, 스케쥴러등을 가진다. Dom-0(205)는 호스트 컴퓨팅 장치(201)상의 다른 게스트 도메인을 론칭(launch)하고 관리하는데 사용된다. 가상 현실화 레이어가 본 도면에서 분리된 구성으로 도시되지만, 그 밖의 다른 가상 현실화 레이어의 실시가 가능하고, 본 개시물의 범위 내에 있다. 예를 들어, Dom0(205)의 기능 또는 기능의 서브세트는 물론 하이퍼바이저(202)에 의해 영향을 받는 것들은 하나의 구성으로 통합될 수 있다. 다양한 실시예에서, 가상 현실화 레이어는, 하드웨어상에서 직접 실행되는 유형 1 하이퍼바이저 또는 운영 시스템 내에서 실행되는 유형 2 하이퍼바이저를 포함할 수 있다.
실시예에 따르면, 호스트 컴퓨팅 장치(201)는 싸인 및/또는 암호화된 요청을 제출하는데 사용될 수 있는 한 세트의 API(108)을 제공하여, 커널(206)(가령, Dom-0 커널) 또는 호스트 컴퓨팅 장치(201)의 하이퍼바이저(202)에 대해 특권이 있는 동작을 수행한다. 특권이 있는 동작은 하이퍼바이저 및/또는 커널의 실행되는 메모리 이미지를 바꿀 수 있다. 예를 들어, 특권이 있는 동작은 하이퍼바이저/커널에 패치(patch)를 적용하고, 메모리 내의 로케이션을 리드하며, 호스트 컴퓨팅 장치상에서 실행되는 하나 이상의 변수를 수정하고, 호스트 컴퓨팅 장치상에서 실행되는 가상 머신 인스턴스를 시작/중지하며, 가상 머신을 또 다른 호스트 컴퓨팅 장치로 이송하는 등을 할 수 있다. API 요청이 암호화되기 때문에, 커널/하이퍼바이저 외부의 중재자(intermediary parties)는 요청을 리드할 수 없고, 요청이 수행하려는 것이 무엇인지 알 수 없다.
실시예에 따르면, API의 요청은 비밀키와 공개키를 포함하는 비대칭 키 페어(key pair)를 사용하여 싸인되고 확인될 수 있다. 일 실시예에서, API 콜에 대한 적어도 일부(또는 전부)의 논의는 캐노니컬라이즈(canonicalized) 및 직렬화되어서, 스트링-투-싸인(string-to-sing)을 초래한다. 그리고 나서, 이러한 스트링은 하쉬-베이스드 메세지 인증 코드(hash-based message authentication code, HAMC) 또는 비대칭 암보를 통해 싸인되어서, API(208)로 전송될 수 있다. API로의 파라미터가 시그네쳐에 포함되기 때문에, 요청(가령, 요청을 만들었던 코드)을 얻었던 잠재적인 공격자는 요청을 바꿀 수 없을 것이다.
일부 실시예에 따르면, 요청은, 요청이 제한된 시간 구간에서만 유효할 때, 재연 보호에 기초한 타임 윈도우를 제공하는, 타임스탬프를 포함할 수 있다. 일부 실시예에서, 요청은 시리얼 번호나 호스트 머신 식별자(ID)와 같은, 호스트 컴퓨팅 장치(201)와 특허 관련된 고유값을 포함할 수 있다. 이들 값은 비밀이 아닐 수 있으나, 이들을 포함하는 것은 요청을 특정 호스트 컴퓨팅 장치(201)에 결합시킬 수 있다. 그 경우에, 잠재적인 공격자는 서로 다른 호스트 컴퓨팅 장치에 대한 요청을 재연하는 것이 금지될 것이다. 일부 실시예에서, 요청은, 호스트 컴퓨팅 장치(201)에 결합 강도를 증가시키기 위해, 호스트 컴퓨팅 장치(201) 내의 신뢰 플랫폼 모듈(TPM)(미도시)에 의해 인증될 수 있다.
도시된 실시예에 따르면, API 요청을 싸인하는데 사용되는 비밀키(204)는, 요청이 어드레스되는 호스트 컴퓨팅 장치(201)상에 존재하지 않는다. 대신에, 비밀키(204)는 서비스 제공자의 네트워크(210)상의 보안 로케이션(203) 또는 또 다른 신뢰 로케이션에 저장될 수 있다. 결과적으로, 악의적인 중재자가 호스트 컴퓨팅 장치(201)에 존재하면, 이들은 비밀키(204)를 사용하여 요청을 위조할 수 없을 것이다.
호스트 컴퓨팅 장치(201)는, 비밀키(204)를 사용하여 싸인되었던 요청의 시그네쳐를 확인하는데 사용될 수 있는 공개키를 포함할 수 있다. 일 실시예에서, 공개키(207)는 호스트 컴퓨팅 장치(201)의 커널(206) 내로 컴파일될 수 있다. 또 다른 실시예에서, 공개키(209)는 하이퍼바이저(202) 내로 컴파일될 수 있다. 일부 실시예에서, 커널(206)은 하이퍼바이저(202)상에 저장된 공개키(209)와 상이한 공개키(207)를 저장할 수 있는 반면, 다른 실시예에서는, 동일한 공개키가 하이퍼바이저(202)와 커널(206) 모두에 대한 요청을 확인하는데 사용될 수 있다. 또 다른 실시예에서, 실제 공개키를 호스트 컴퓨팅 장치(201)에 저장하기보다는, 대신에, 호스트 컴퓨팅 장치(201)는 특정 인증기관(CA)에 의해 증명된 임의의 공개키를 신뢰하도록 구성될 수 있다. 이들 실시예에서, 호스트 컴퓨팅 장치(201)는 요청자로부터 요청을 받을 수 있고, 여기서, 요청은 공개키를 포함하는 증명서가 첨부된다. 호스트 컴퓨팅 장치는 CA의 증명서를 신뢰할 것이고, 따라서, 요청의 일부로서 수신된 공개키를 신뢰할 것이다. 공개키가 호스트 컴퓨팅 장치에 저장되는지, 증명서와 함께 제공되는지와 무관하게, 공개키는 비밀키(204)를 사용하여 싸인되었던 API 요청을 확인하는데 사용될 수 있다. 예를 들어, 사용자(가령, 고객, 서비스 제공자의 기술자, 제3자 등)가 업데이트를 커널(206)상의 코드의 일부분에 적용하길 원한다면, 이들은 API 요청을 싸인하기 위한 비밀키(204)에 접근하거나, 이를 사용하여, 코드의 적절한 부분을 수정한다. 요청을 받으면, 커널(206)은 공개키를 사용하여 요청을 확인하려는 시도를 하고, 확인이 성공되면, 필요한 특권이 있는 동작을 실행할 수 있다.
대안적인 실시예(미도시)에서, HMAC 및 대칭키가 사용되면, 키는 커널(206) 또는 하이퍼바이저(202) 내로 컴파일될 수 있다. 그 경우에, 키는 혼란되고, 모든 빌드마다 변할수 있으나, 키는 실제로 호스트 컴퓨팅 장치(201)상에 존재할 수 있다. 선택적으로, 전체 요청은 커널내로 컴파일된 키로 암호화될 수 있어서, 요청 자체는 요청을 발행하는 코드에 대해 불투명하다.
일부 실시예에서, 요청에 제공되었던 특정 키에 따라(또는, 키를 소유하는 측(party)에 따라) 하나 이상의 제한이 적용될 수 있다. 예를 들어, 어떤 액터에 의해 싸인된 요청은 호스트 컴퓨팅 장치(201)상의 게스트 가상 머신을 시작/중지 또는 호스트 컴퓨팅 장치(201)를 리부팅하도록만 허용될 수 있다. 다른 액터(가령, 서비스 제공자의 OS 팀)가 가진 키를 사용하여 싸인된 요청은 하이퍼바이저의 실행 코드를 수정할 수 있도록 한다. 일 실시예에서, 호스트 컴퓨팅 장치(201)는 그 호스트 컴퓨팅 장치에 저장된 서로 다른 복수의 공개키를 가질 수 있는데, 여기서, 각각의 공개키는 서로 다른 개체(가령, 사용자, 팀 등)와 관련된 비밀키와 관련된다. 어떤 개체의 비밀키가 요청을 싸인하는데 사용되었는지에 따라, 요청된 작업이 승인되거나 거절될 수 있다. 대안적인 실시예에서, 호스트 컴퓨팅 장치(201)는 하나의 비밀키와 관련된 하나의 공개키만을 저장할 수 있으나, 요청은 요청을 제출하는 사용자의 신원을 포함할 수 있다. 이러한 신원에 기초하여, 호스트 컴퓨팅 장치(201)는 요청된 작업의 실행에 대해 상이한 제한을 적용할 수 있다. 예를 들어, 호스트 컴퓨팅 장치(201)는 하나의 사용자가 게스트를 중지/시작하도록 하는 반면, 또 다른 사용자는 하이퍼바이저의 코드를 수정 또는 업데이트할 수 있도록 한다. 이러한 임의의 수의 제한(가령, 키에 대해 또는 당사자에 대해)이 가능하고, 본원에서 기술된 실시예의 범위 내에 있다.
도 3은 다양한 실시예에 따라, 인증기관을 사용하는 예시(300)를 나타낸다. 도시된 실시예에서, 호스트 컴퓨팅 장치(가령, 호스트 컴퓨팅 장치(301)상의 커널(306) 및/또는 하이퍼바이저(302))는 부팅 시간에 비대칭 키로 구성된 암호 신원(cryptographic identity)을 생성한다. 예를 들어, 호스트 컴퓨팅 장치(301)가 부팅할 때, 하이퍼바이저(302)는 비밀키(307)와 공개키(309)를 포함하는 키 페어를 생성한다. 마찬가지로, Dom0(305)이 로딩될 때, 커널(306)은 비밀키(313)와 공개키(314)로 구성된 키 페어를 생성한다.
다양한 실시예에서, 공개키(309, 313)는 어느 정도 공개될 수 있다. 예를 들어, 공개키는 인증기관(310)에 제공될 수 있다. 대안적으로, 공개키는 요청 당사자에게 직접 제공될 수 있다. 이러한 공개키는 수집될 수 있고, 요청은 이러한 키를 사용하여 암호화될 수 있다. 이러한 실시예에서, 호스트 장치(301)에 의해 생성되었던 비밀키(307, 314)는 절대로 호스트를 떠나지 않고, 그 밖의 어디에 존재하지 않는다. 요청 당사자가 호스트 컴퓨팅 장치(301)로부터 공개키를 신뢰성 있게 얻으면, 이는 공개키를 사용하여 싸인된 요청이 그 호스트 컴퓨팅 장치(301)(및 호스트 컴퓨팅 장치만)으로 갈 것이라는 점을 보장할 수 있는데, 왜냐하면, 요청이 호스트 컴퓨팅 장치(301)를 절대 떠나지 않은 비밀키(307, 313)에 의해서만 해독될 수 있는 공개키(309, 314)를 사용하여 싸인되기 때문이다. 도 3이 커널(306)과 하이퍼바이저(302)가 자체 개개의 키 페어를 발행하는 예시를 나타내지만, 이는 모든 실시예에 대한 요구사항이나 제한이 아니라는 점을 유의해야 한다. 일부 실시예에서, 오직 하이퍼바이저(302)만이 키 페어를 발행한다. 다른 실시예에서, 오직 커널(306)만 키 페어를 발행한다. 다른 실시예에서, 하이퍼바이저(302) 및 커널(306)은 키 페어를 공유할 수 있다.
일부 실시예에서, 호스트 컴퓨팅 장치(301)는 공개키(309)를 인증기관(CA)(310)으로 제공할 수 있다. CA(310)는 하나 이상의 디지털 증명서(312, 315)를 적절한 요청 당사자(가령, 싸인하는 당사자(311))에게 발행하는 개체일 수 있다. 디지털 증명서는, API 요청을 싸인하는데 사용될 수 있는 공개키를 당사자가 적절하게 소유한다는 것을 증명한다. 본 실시예에서, CA의 사용은, 비밀키가 정말로 호스트 컴퓨팅 장치(301)를 위한 것이라고, 어느 정도 확실하게 믿을 수 있게 한다. 일 실시예에서, CA는 서비스 제공자를 위항 CA이고, 서비스 제공자의 자원 센터 내에서 실행된다. 자원 센터는 아래 도 4를 참조하여 추가로 더 자세히 기술된다. 대안적인 실시예에서, CA(310)는, 싸인하는 당사자(311) 및 증명서에 의존하는 호스트 컴퓨팅 장치(301) 모두에 의해 신뢰받는, 신뢰받는 제3자이다. 증명서 권한은 기술 분야에서 잘 알려져 있고, 많은 공개키 인프라구조(PKI) 스킴에서 사용된다.
본 실시예에서, CA(310)가 증명서(312)를 요청 당사자(311)에게 발행하면, 요청 당사자(311)는 증명서를 사용하여, 커널(306) 또는 하이퍼바이저(302)와 관련된 특권이 있는 동작을 API 요청이 실행하도록 할 수 있다. 그리고 나서, 하이퍼바이저(302) 또는 커널(306)은, 특정 당사자에게 발행된 특정 CA에 의해 싸인된 임의의 증명서가 유효하고, 이에 따라 특권이 있는 동작을 실행할 수 있다는 것을 확인할 수 있다.
다양한 실시예에서, 도 3에 나타난 기술은 도 2에 나타난 기술과 함께 사용될 수 있다. 예를 들어, 도 3의 요청 당사자(311)는 그 자체의 비밀키를 가질 수 있는데, 요청 당사자가 특권이 있는 동작을 실행시키기 위한 요청을 싸인하는데 사용할 수 있다. 본 실시예에서, 요청은 진실성(즉, 호스트 컴퓨팅 장치는 요청 당사자가 요청을 생성했다는 확실함을 알 것임)을 보장하기 위해 싸인되고, 또한, 비밀성(즉, 외부 당사자가 요청 내에 포함된 정보를 해독하지 못함)을 보장하기 위해 암호화된다.
도 4는 다양한 실시예에 따라, 서비스 제공자의 자원 센터 환경의 예시(400)를 나타낸다. 도시된 실시예에서, 서비스 제공자(가령, 클라우드 컴퓨팅 자원 제공자)는 서비스 제공자의 물리적 자원(가령, 호스트 서버 등)을 저장하는 하나 이상의 자원 센터(423)(가령, 데이터 센서, 서버팜 등)를 유지할 수 있다. 이들 물리적 자원은, 인터넷과 같은 네트워크(402)를 통해 사용자(401)에게 제공될 수 있는 복수의 가상 머신 인스턴스 또는 가상 서버를 호스트하는데 사용될 수 있다. 예를 들어, 사용자가 서비스 제공자의 물리적 자원을 사용하여 애플리케이션을 실행하기 원할 때, 그 또는 그녀는 서비스 제공자에게, 애플리케이션을 사용 및 실행하는데 사용될, 사용자를 위한 가상 머신을 제공하도록 요청할 수 있다. 사용자의 애플리케이션에 대한 요구가 커짐에 따라, 사용자는 더 많은 가상 머신이 준비되도록 요청할 수 있어서, 로드, 하나 이상의 가상 사설망(VPNs) 등의 요청 생성에 균형을 맞출 수 있다.
도시된 예시에서, 서비스 제공자의 자원 센터(423)는 호스트 컴퓨팅 장치(406, 407, 408, 409, 410)의 하나 이상의 랙(rack, 421, 422)을 포함할 수 있는데, 특정 랙의 각각의 호스트 컴퓨팅 장치는 하나의 탑-오브-랙(top-of-rack, TOR) 스위치(404, 405)에 연결된다. 이들 TOR 스위치는, 호스트 컴퓨팅 장치가 네트워크에 연결될 수 있는 하나 이상의 다른 스위치(424, 425)에 더 연결될 수 있다. 본 개시물 전반에서 사용되는 바와 같이, 네트워크는, 광역 네트워크(WANs), 셀룰러 네트워크, 로컬 영역 네트워크(LANs), 저장 영역 네트워크(SANs), 인트라넷, 엑스트라넷등에 제한되지 않고, 이를 포함하여, 서로 통신할 수 있는 장치의 임의의 유선 또는 무선 네트워크일 수 있다. 자원 센터는 가령, 데이터 센터, 서버팜, 콘텐츠 딜리버리 네트워크(CDN) 인터넷 접속 포인트(POP) 등과 같은 자원의 임의의 물리적 또는 논리적 그룹핑을 포함할 수 있다.
실시예에 따르면, 각각의 호스트 컴퓨팅 장치는, 서비스 제공자의 고객이 이들 고객을 대신하여 다양한 애플리케이션과 서비스를 실행하도록 제공되었던 하나 이상의 가상 머신 인스턴스(413, 414, 415, 416, 417, 418, 419)를 호스트할 수 있다. 각각의 가상 머신에는 커널, 드라이버, 프로세스 관리등을 포함하는 자체 운영 시스템(OS)이 제공될 수 있다.
고객이 가상 머신 인스턴스를 얻기 원할 때, 고객은 우선 서비스 제공자에게 요청을 제출하여, 이들이 사용하려는 VM의 유형을 표시할 수 있다. 서비스 제공자는, 서비스 제공자의 물리적 자원(가령, 호스트 컴퓨팅 장치)상에 호스팅될 가상 머신 인스턴스를 제공하는 프로세스를 수행할 수 있다. 그리고 나서, 가상 머신 인스턴스는 서비스 제공자의 자원을 사용하여, 고객 대신에 다양한 애플리케이션과 서비스를 실행하는데 사용될 수 있다.
실시예에 따르면, 가상 머신 인스턴스가 업(up) 되고 실행되면, 가상 머신 인스턴스를 호스트 컴퓨팅 장치에서 또 다른 호스트 컴퓨팅 장치로 움직이는 것이 바람직한 상황이 있을 수 있다. 예를 들어, 서비스 제공자는 가상 머신이 호스팅된 호스트 컴퓨팅 장치가, 다른 가상 머신 인스턴스가 동일한 호스트 컴퓨팅 장치에 호스팅되기 때문에, 요청으로 오버로드된다는 것을 결정할 수 있다. 본원에서 기술된 다양한 실시예에서, 본 개시물 전반에 걸쳐 기술되는 보안 스킴은 서비스 제공자가 비대칭(또는 대칭) 암호를 사용할 수 있도록 하여, 암호화되고, 보안된 방식으로 호스트 컴퓨팅 장치에서 또 다른 호스트 컴퓨팅 장치로 데이터(및 VM)를 이송할 수 있다.
도 5는 다양한 실시예에 따라, 복수의 호스트 컴퓨팅 장치간의 가상 머신 인스턴스를 보안상으로 이송하기 위한 예시적인 프로세스(500)를 나타낸다. 이 도면이 특정 순서로 기능 동작을 도시하지만, 그 프로세서는 도시된 특정 순서나 동작에 제한될 필요는 없다. 기술 분야에서의 당업자는 이 도면이나 다른 도면에서 그려진 다양한 동작이 변하고, 재배열되고, 병렬로 수행되거나, 다양한 방식으로 각색될 수 있다는 것을 인식할 것이다. 게다가, 어떤 동작이나 동작의 순서는 다양한 실시예의 범위에서 벗어남 없이, 프로세스에 추가되거나, 이로부터 생략될 수 있다는 것을 이해해야한다. 또한, 본원에 포함된 프로세스 도면은, 다양한 흐름이나 순서, 수행을 위한 최적화되거나, 아니면 다양한 방식으로 수정되어 실행될 수 있는 코드 실행의 실제 순서를 명시하려는 의도라기보다는, 기술 분야의 당업자 중 일인에게 프로세스 흐름의 개념을 증명하려는 의도이다.
동작 501에서, 권한 있는 당사자(authorized party)는 하나의 호스트 컴퓨팅 장치에서 또 다른 호스트 컴퓨팅 장치로 가상 머신을 이송하기 위한 요청을 생성한다. 요청은 이전에 기술된 바와 같이, 응용 프로그래밍 인터페이스(API)를 사용하여 생성될 수 있다. 일 실시예에서, 요청은 소스 호스트 컴퓨팅 장치를 위한 키 및 데스티네이션 호스트 컴퓨팅 장치를 위한 키를 포함할 수 있다. 대안적인 실시예에서, 권한 있는 당사자는 두 개의 요청, 즉, 하나는 데스티네이션 호스트 컴퓨팅 장치를 위한 키를 포함하는 소스 호스트 컴퓨팅 장치를 위한 이송 요청 및 소스 호스트 컴퓨팅 장치를 위한 키를 포함하는 데스티네이션 호스트 컴퓨팅 장치를 위한 별도의 이송 요청을 생성할 수 있다.
동작 502에서, 요청은 이전에 기술된 바와 같이, 권한 있는 당사자의 비밀키를 사용하여 싸인된다. 요청을 싸인하는 것은 요청의 진실성을 보장한다. 다시 말해, 요청의 어떠한 수신자는 권한 있는 당사자가 요청을 실제로 생성했던 당사자였다는 것이 보장 받는다.
동작 503에서, 요청(들)은 소스 호스트 컴퓨팅 장치 및 데스티네이션 호스트 컴퓨팅 장치로 제공된다. 요청은 API 또는 기술 분야에서 알려진 어떤 다른 기술을 사용하여 호스트 장치로 제출될 수 있다. 동작 504에서, 장치가 요청을 수신하면, 소스 호스트 컴퓨팅 장치는 데스티네이션 호스트 컴퓨팅 장치와 연결된다. 동작 505에서, 소스 호스트 컴퓨팅 장치 및 데스티네이션 호스트 컴퓨팅 장치는 요청의 일부로서 제공된 키를 사용하여 보안 세션을 설립하여, 소스 및 데스티네이션 머신을 인증한다. 일 실시예에서, 보안 세션을 설립하는 것은, 소스 호스트 컴퓨팅 장치와 데스티네이션 호스트 컴퓨팅 장치간에 전송될 데이터를 암호화하는데 사용될 세션키를 협상하는 것을 포함할 수 있다.
동작 506에서, 가상 머신 인스턴스는 보안 세션을 사용하여, 소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 이송된다. 일 실시예에서, 가상 머신을 이송하는 것은 소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 상태 정보를 복사하는 것을 포함한다. 두 개의 장치간에 전송되는 상태 정보는 보안 세션을 설립하는 것의 일부로 협상된 세션키를 사용하여 암호화될 수 있다. 이러한 방식으로, 전송을 인터셉트하거나 탭(tap)할 수 있는 어떤 당사자라도 그 안에 포함된 민감한 정보를 잠재적으로 해독할 수 없다.
도 6은 다양한 실시예에 따라, 하이퍼바이저 또는 커널 내에서 특권이 있는 동작을 수행하는데 사용될 수 있는 API를 제공하기 위한 예시적인 프로세스(600)를 나타낸다.
동작 601에서, 하나 이상의 응용 프로그래밍 인터페이스(APIs)가 제공되는데, 이는 싸인 및/또는 암호화된 요청을 호스트 컴퓨팅 장치로 제공하는데 사용될 수 있다. 호스트 컴퓨팅 장치는 가상 현실화 레이어(가령, 가상 머신 모니터 또는 하이퍼바이저와 관련된 Dom0 동작) 및 운영 시스템 커널을 가진 하나 이상의 가상 머신을 포함할 수 있다.
동작 602에서, 비밀키 및 이와 대응되는 공개키를 포함하는 비대칭 키 페어가 생성된다. 비밀키는 정보를 암호화하는데 사용될 수 있고, 공개키는 비밀키를 사용하여 암호화된 정보를 해독하는데 사용될 수 있다.
동작 603에서, 공개키는 호스트 컴퓨팅 장치상에 저장된다. 예를 들어, 공개키는 운영 시스템의 커널 또는 하이퍼바이저 내로 컴파일될 수 있다. 대안적으로, 키는 호스트 컴퓨팅 장치의 신뢰 플랫폼 모듈(TPM) 내에 저장될 수 있다.
동작 604에서, 비밀키는 호스트 컴퓨팅 장치에 대해 외부에 있는 보안 로케이션 내에 저장된다. 본 실시예에서, 비밀키는 호스트 컴퓨팅 장치상에 존재하지 않아서, 호스트 컴퓨팅 장치상에 존재하는 임의의 악성 에이전트가 비밀키에 접근하지 못한다.
동작 605에서, 호스트 머신은 API를 통해 요청을 수신하는데, 요청은 하이퍼바이저 및/또는 운영 시스템 커널상의 특권이 있는 동작(가령, 이송 요청을 수행함)을 실행한다. 실시예에 따르면, 수신된 요청은 비밀키를 사용하여 싸인된다.
동작 606에서, 호스트 컴퓨팅 장치(가령, 커널 또는 하이퍼바이저)는 호스트 컴퓨팅 장치상에 저장된 공개키를 사용하여 요청의 시그네쳐를 유효화하도록 시도한다. 요청의 시그네쳐가 유효화되면, 특권이 있는 동작은 동작 607에 도시된 바와 같이, 하이퍼바이저/커널상에서 실행될 수 있다. 시그네쳐가 공개키를 사용하여 유효화되지 못하면, 특권이 있는 동작은 실패한다(즉, 실행되지 않음).
도 7은 다양한 실시예에 따라, 요청의 암호화를 사용하는 예시적인 프로세스(700)를 나타낸다. 동작 701에서, 호스트 컴퓨팅 장치는 비대칭 키 페어를 생성한다. 예를 들어, 호스트 컴퓨팅 장치상의 부트 프로세스는 공개키 및 이와 대응되는 비밀키를 생성할 수 있다. 동작 702에서, 공개키는 신뢰되는 소스에 발행된다. 일 실시예에서, 공개키는 공개키를 사용하여 요청을 암호화할 요청 당사자에게 직접 제공될 수 있다. 또 다른 실시예에서, 공개키는 인증기관으로 제공될 수 있는데, 여기서, 인증기관은, 커널 또는 하이퍼바이저상의 특권이 있는 동작을 수행하기 원할 수 있는 인증된 당사자에게 증명서를 수여할 수 있다. 본 실시예에서, 인증기관은 증명서 내에 공개키를 내장시킬 수 있고, 자체 비밀키를 사용하여 증명서에 싸인할 수 있다. 따라서, 증명서를 수신하는 당사자는 공개키가 호스트 컴퓨팅 장치로부터 CA에 의해 정말로 증명된다는 것을 확인할 수 있다.
동작 703에서, 호스트 컴퓨팅 장치는 특권이 있는 동작을 수행하기 위한 요청을 수신한다. 그리고 나서, 호스트 컴퓨팅 장치는 동작 704에 도시된 바와 같이, 호스트 컴퓨팅 장치상에 저장된 비밀키를 사용하여 요청을 해독하려고 한다. 요청이 비밀키를 사용하여 해독될 수 있다면, 호스트 컴퓨팅 장치는 동작 705에 도시된 바와 같이, 커널/하이퍼바이저상의 특권이 있는 동작을 실행할 수 있다.
본 개시물의 다양한 실시예는 다음 항과 관련하여 기술될 수 있다.
1. 컴퓨팅 동작을 보안하기 위한 컴퓨터 실행되는 방법에 있어서, 상기 방법은,
실행가능한 명령으로 구성되는 하나 이상의 컴퓨터 시스템의 제어하에서,
소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 가상 머신을 이송하기 위한 적어도 하나의 요청을 수신하는 단계 - 소스 호스트 컴퓨팅 장치 및 데스티네이션 호스트 컴퓨팅 장치는 가상 현실화 레이어를 각각 포함하되, 적어도 하나의 요청은 가상 머신을 이송하기 위한 허가를 가진 권한 있는 당사자에 의해 싸인되고, 적어도 하나의 요청은 데스티네이션 호스트 컴퓨팅 장치를 위한 제1 키를 포함함 - 와,
요청이 권한 있는 당사자에 의해 싸인되었다는 것을 확인하는 단계와,
가상 현실화 레이어 내의 이송키를 설립하는 단계 - 이송키는 데스티네이션 호스트 컴퓨팅 장치에 대해 소스 호스트 컴퓨팅 장치를 인증하기 위해 데스티네이션 호스트 컴퓨팅 장치로 전송된 소스 호스트 컴퓨팅 장치를 위한 적어도 하나의 제1 키 및 제2 키를 사용하여 설립됨 - 와, 및
상태 정보가 소스 호스트 컴퓨팅 장치의 가상 현실화 레이어 외부와 통신되기 이전에, 협상된 이송키를 사용하여 가상 머신과 관련된 상태 정보를 암호화하고, 및 데스티네이션 호스트 컴퓨팅 장치로 데스티네이션 호스트 컴퓨팅 장치에 의해 해독 가능한 암호화된 상태 정보를 전송함에 의하여, 소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 가상 머신을 이송하는 단계를 포함한다.
2. 제 1 항의 컴퓨터 실행되는 방법에 있어서, 가상 머신을 이송하기 위한 적어도 하나의 요청을 수신하는 단계는,
소스 호스트 컴퓨팅 장치에 의해 제1 요청을 수신하는 단계와, 및
데스티네이션 호스트 컴퓨팅 장치는 제2 요청 내의 제2 키를 수신하도록 구성되는 것을 더 포함한다.
3. 제 1 항의 컴퓨터 실행되는 방법에 있어서, 가상 머신을 이송하는 단계는,
소스 호스트 컴퓨팅 장치에 의해 데스티네이션 호스트 컴퓨팅 장치에 연결하는 단계와, 및
소스 호스트 컴퓨팅 장치 및 데스티네이션 호스트 컴퓨팅 장치에 의해 적어도 하나의 제1 키 및 제2 키를 사용하여 상호 인증을 수행하는 단계를 포함한다.
4. 컴퓨터 실행되는 방법에 있어서, 상기 방법은,
소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 보안된 정보를 이송을 위한 요청을 호스트 컴퓨팅 장치에 의해 수신하는 단계 - 요청은 데스티네이션 호스트 컴퓨팅 장치를 위한 데스티네이션 키를 포함함 - 와,
호스트 컴퓨팅 장치에 의해 키를 설립하는 단계 - 상기 키는 데스티네이션 키를 사용하여 데스티네이션 호스트 컴퓨팅 장치를 인증하는 소스 호스트 컴퓨팅 장치에 의해 설립되고, 데스티네이션 호스트 컴퓨팅 장치가 소스 호스트 컴퓨팅 장치를 위한 소스키를 사용하여 소스 호스트 컴퓨팅 장치를 인증하였다는 표시를 수신함 - 와, 및
설립된 키를 사용하여, 보안된 정보가 소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 이송하도록 하는 단계를 포함한다.
5. 제 4 항의 컴퓨터 실행되는 방법에 있어서, 보안된 정보는 소스 호스트 컴퓨팅 장치상에서 실행되는 가상 머신이다.
6. 제 5 항의 컴퓨터 실행되는 방법에 있어서, 보안된 정보가 이송되도록 하는 단계는,
설립된 키를 사용하여, 소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 적어도 일부의 랜덤 액세스 메모리(RAM) 상태 정보를 복사하는 단계와,
소스 호스트 컴퓨팅 장치상의 가상 머신을 정지시키는 단계와, 및
데스티네이션 호스트 컴퓨팅 장치상에 가상 머신을 실행하기 위해 표시를 데스티네이션 호스트 컴퓨팅 장치로 전송하는 단계를 더 포함한다.
7. 제 4 항의 컴퓨터 실행되는 방법에 있어서, 소스키는 소스 호스트 컴퓨팅 장치의 부트 시간에서 생성되는 키 페어의 일부인 공개키이고, 소스 호스트 컴퓨팅 장치는 공개 키를 관리자 서버에 전송하고, 관리자 서버는 공개키를 사용하여 보안된 정보를 이송하기 위한 요청을 개시한다.
8. 제 4 항의 컴퓨터 실행되는 방법에 있어서, 키를 설립하는 단계는 Diffie-Hellman 키 교환 프로세스에 따라 수행된다.
9. 제 4 항의 컴퓨터 실행되는 방법에 있어서, 보안된 정보가 이송되도록 하는 단계는,
소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 랜덤 액세스 메모리(RAM) 상태 정보의 세트를 복사하는 단계 - 복사하는 단계는 완성하기 위해 한 구간의 시간이 소요됨 - 와,
소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 RAM 상태 정보에서의 변화의 세트를 전송하는 단계 - 복사를 완성하는데 소요되는 한 구간의 시간 동안에 소스 호스트 컴퓨팅 장치상에서 변화가 이루어졌음 - 를 더 포함한다.
10. 제 4 항의 컴퓨터 실행되는 방법에 있어서, 보안된 정보를 이송하기 위한 요청은 권한 없는 당사자가 적어도 하나의 요청을 제출하는 것을 막기 위해 싸인된다.
11. 제 4 항의 컴퓨터 실행되는 방법에 있어서, 요청은 소스 호스트 컴퓨팅 장치 또는 데스티네이션 호스트 컴퓨팅 장치 중 적어도 하나를 위한 증명서를 더 포함한다.
12. 컴퓨터 실행되는 방법에 있어서, 상기 방법은,
실행가능한 명령으로 구성되는 하나 이상의 컴퓨터 시스템의 제어하에서,
소스 호스트 컴퓨팅 장치상에서 실행되는 가상 머신을 선택하는 단계 - 가상 머신은 데스티네이션 호스트 컴퓨팅 장치로 이송됨 - 와, 및
응용 프로그래밍 인터페이스(API)를 사용하여, 소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 가상 머신을 이송하기 위한 적어도 하나의 요청을 제출하는 단계 - 적어도 하나의 요청은 적어도 하나의 키를 포함함 - 를 포함하되,
적어도 하나의 요청에 응답하여, 소스 호스트 컴퓨팅 장치 및 데스티네이션 호스트 컴퓨팅 장치는 소스 호스트 컴퓨팅 장치와 데스티네이션 호스트 컴퓨팅 장치를 인증하기 위한 적어도 하나의 키를 사용함에 의해 보안 세션을 설립하고, 및
적어도 하나의 요청에 응답하여 가상 머신은 보안 세션을 사용하여 소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 이송된다.
13. 제 12 항의 컴퓨터 실행되는 방법에 있어서, 적어도 하나의 요청은,
소스 호스트 컴퓨팅 장치와 관련된 제1 키 - 제1 키는 데스티네이션 호스트 컴퓨팅 장치에 제공됨 - 와, 및
데스티네이션 호스트 컴퓨팅 장치와 관련된 제2 키 - 제2 키는 소스 호스트 컴퓨팅 장치에 제공됨 - 를 더 포함한다.
14. 제 13 항의 컴퓨터 실행되는 방법에 있어서, 적어도 하나의 요청을 제출하는 단계는,
제1 요청을 소스 컴퓨팅 장치에 제출하는 단계 - 제1 요청은 제2 키를 포함함 - 와, 및
제2 요청을 데스티네이션 호스트 컴퓨팅 장치에 제출하는 단계 - 제2 요청은 제1 키를 포함함 - 를 더 포함한다.
15. 컴퓨팅 시스템에 있어서, 상기 컴퓨팅 시스템은,
적어도 하나의 프로세서와, 및
적어도 하나의 프로세서에 의해 실행될 때, 컴퓨팅 시스템이,
소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 가상 머신을 이송하기 위한 적어도 하나의 요청을 수신 - 적어도 하나의 요청은 제1 키 및 제2 키를 포함함 - 하도록 하고,
소스 호스트 컴퓨팅 장치와 데스티네이션 호스트 컴퓨팅 장치간의 보안 세션을 설립 - 보안 세션은 적어도 제1 키 및 제2 키를 사용함에 의해 설립됨 - 하도록 하며, 및
적어도 하나의 요청에 응답하여 보안 세션을 사용하여, 소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 가상 머신을 이송하도록 하는 명령을 포함하는 메모리를 포함한다.
16. 제 15 항의 컴퓨팅 시스템에 있어서, 가상 머신을 이송하는 것은,
보안 세션을 사용하여 소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 랜덤 액세스 메모리(RAM) 상태 정보의 적어도 일부를 복사하는 것과,
소스 호스트 컴퓨팅 장치상의 가상 머신을 정지시키는 것과, 및
데스티네이션 호스트 컴퓨팅 장치상에 가상 머신의 새로운 인스턴스를 시작하는 것을 더 포함한다.
17. 제 15 항의 컴퓨팅 시스템에 있어서, 가상 머신을 이송하기 위한 요청을 수신하는 것은,
소스 호스트 컴퓨팅 장치에 의해 제1 요청을 수신하는 것 - 제1 요청은 제2 키를 포함함 - 과, 및
데스티네이션 호스트 컴퓨팅 장치에 의해 제2 요청을 수신하는 것 - 제2 요청은 제1 키를 포함함 - 을 더 포함한다.
18. 제 15 항의 컴퓨팅 시스템에 있어서, 보안 세션을 설립하는 것은,
보안 세션 동안에 소스 호스트 컴퓨팅 장치와 데스티네이션 호스트 컴퓨팅 장치간에 상태 정보를 전송하는데 사용될 세션키를 협상하는 것과, 및
세션키를 사용함에 의해, 소스 호스트 컴퓨팅 장치와 데스티네이션 호스트 컴퓨팅 장치간에 전송된 정보를 암호화하는 것을 더 포함한다.
19. 제 18 항의 컴퓨팅 시스템에 있어서, 세션키를 협상하는 것은 Diffie-Hellman 키 교환 프로세스에 따라 수행된다.
20. 제 15 항의 컴퓨팅 시스템에 있어서, 가상 머신을 이송하는 것은,
소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 랜덤 액세스 메모리(RAM) 상태 정보의 세트를 복사하는 단계 - 복사하는 단계는 완성하기 위해 한 구간의 시간이 소요됨 - 와,
소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 RAM 상태 정보에서의 변화의 세트를 전송하는 단계 - 복사를 완성하는데 소요되는 한 구간의 시간 동안에 소스 호스트 컴퓨팅 장치상에서 변화가 이루어졌음 - 를 더 포함한다.
21. 한 세트의 동작을 수행하기 위해 하나 이상의 프로세서에 의해 실행가능한 하나 이상의 시퀀스의 명령을 저장하는 비일시적 컴퓨터 리드가능한 저장 매체에 있어서, 상기 저장 매체는,
제1 컴퓨팅 장치상의 가상 머신에 해당하는 메모리를 리드 또는 복사하기 위한 적어도 하나의 요청을 수신하는 단계 - 적어도 하나의 요청은 제2 컴퓨팅 장치로부터 수신되고, 적어도 하나의 요청은 적어도 하나의 키를 포함함 - 와,
제1 컴퓨팅 장치와 제2 컴퓨팅 장치간에 보안 세션을 설립하는 단계 - 보안 세션은 적어도 하나의 키를 사용함에 의해 설립됨 - 와, 및
제1 컴퓨팅 장치와 제2 컴퓨팅 장치간에 설립된 보안 세션을 사용하여, 제1 컴퓨팅 장치상의 가상 머신에 해당하는 메모리를 리드 또는 복사 중 적어도 하나를 수행하는 단계를 포함한다.
22. 제 21 항의 비일시적 컴퓨터 리드가능한 저장 매체에 있어서, 제1 호스트 컴퓨팅 장치에서 제2 컴퓨팅 장치로 가상 머신에 해당하는 메모리를 복사하는 단계와, 및
가상 머신에 해당하는 메모리를 제2 컴퓨터 장치상에서 분석되도록 하는 단계를 더 포함한다.
23. 제 21 항의 비일시적 컴퓨터 리드가능한 저장 매체에 있어서, 적어도 하나의 요청을 수신하는 단계는,
제1 컴퓨팅 장치에 의해 제1 요청을 수신하는 단계 - 제1 요청은 제2 컴퓨팅 장치와 관련된 키를 포함함 - 과, 및
제2 컴퓨팅 장치에 의해 제2 요청을 수신하는 것 - 제2 요청은 제1 컴퓨팅 장치와 관련된 키 포함함 - 을 더 포함한다.
24. 제 21 항의 비일시적 컴퓨터 리드가능한 저장 매체에 있어서, 적어도 하나의 요청은 제1 컴퓨팅 장치상에서 실행되는 가상 머신에 해당하는 메모리를 리드하기 위한 서비스에 의해 제출된다.
25. 제 21 항의 비일시적 컴퓨터 리드가능한 저장 매체에 있어서, 보안 세션을 설립하는 단계는 Diffie-Hellman 키 교환 프로세스에 따라 수행된다.
도 8은 예시적인 컴퓨팅 장치(800)의 일반적인 구성의 세트의 논리적인 배치를 나타낸다. 본 예시에서, 장치는 메모리 장치 또는 요소(804) 내에 저장될 수 있는 명령을 실행하기 위한 프로세서(802)를 포함한다. 기술 분야에서 당업자에게 명백한 바와 같이, 장치는 여러 유형의 메모리, 데이터 저장소, 또는 프로세서(802)에 의한 실행을 위한 프로그램 명령을 위한 제1 데이터 저장소와 같은 비일시적인 컴퓨터-리드가능한 저장 매체, 이미지나 데이터를 위한 별도의 저장소, 다른 장치와 정보를 공유하기 위한 제거가능한 메모리등을 포함할 수 있다. 전형적으로, 장치는, 휴대용 미디어 플레이어와 같은 장치가 오디오 스피커와 같은 다른 수단을 통해 정보를 전달할 수도 있지만, 터치 스크린 또는 액정 크리스털 디스플레이(LCD)와 같은 일부 유형의 디스플레이 요소(806)를 포함할 것이다. 논의된 바와 같이, 많은 실시예에서 장치는 사용자로부터 일반적인 입력을 수신할 수 있는 적어도 하나의 입력 요소(808)를 포함할 것이다. 이러한 일반적인 입력은 가령, 푸쉬 버튼, 터치 패드, 터치 스크린, 휠, 조이스틱, 키보드, 마우스, 키패드 또는 사용자가 장치에 명령어를 입력할 수 있는 그 밖의 장치 또는 요소를 포함할 수 있다. 그러나, 일부 실시예에서, 이러한 장치는 어떠한 버튼을 포함하지 않고, 오직, 시각 및 청각 명령어의 조합을 통해 제어될 수 있어서, 사용자는 장치와 접촉하지 않으면서 장치를 제어할 수 있다. 일부 실시예에서, 도 8의 컴퓨팅 장치(800)는, Wi-Fi, 블루투스, RF, 유선 또는 무선 통신 시스템과 같은 다양한 네트워크를 통한 통신을 위한 하나 이상의 네트워크 인터페이스 요소(808)를 포함할 수 있다. 많은 실시예에서의 장치는 인터넷과 같은 네트워크로 통신할 수 있고, 이러한 다른 장치와 통신할 수 있다.
논의된 바와 같이, 다양한 접근법이 기술된 실시예에 따라 다양한 환경에서 실행될 수 있다. 예를 들어, 도 9는 다양한 실시예에 따른 양상을 실행하기 위한 예시적인 환경(900)을 나타낸다. 인식될 바와 같이, 웹-기반 환경이 설명을 위해 사용되지만, 적절하면, 다양한 환경이 다양한 실시예를 실행하는데 사용될 수 있다. 시스템은 전자 클라이언트 장치(902)를 포함하는데, 이는 적절한 네트워크(904)를 통해 요청, 메세지 또는 정보를 전송하고, 장치의 사용자에게 다시 정보를 전달하도록 작동하는 임의의 적절한 장치를 포함할 수 있다. 이러한 클라이언트 장치의 예시는 개인용 컴퓨터, 셀 폰, 휴대용 메세지 장치, 랩탑 컴퓨터, 셋톱 박스, 개인용 데이터 보조기, 전자 북 리더등을 포함한다. 네트워크는 인트라넷, 인터넷, 셀룰러 네트워크, 로컬 영역 네트워크 또는 임의의 다른 이러한 네트워크 또는 이들의 조합을 포함하는 임의의 적절한 네트워크를 포함할 수 있다. 이러한 시스템을 위해 사용되는 구성은 선택된 네트워크 및/또는 환경의 유형에 적어도 일부분 의존할 수 있다. 이러한 네트워크를 통한 통신을 위한 프로토콜 및 구성은 잘 알려져 있어서, 본원에서는 자세히 논의하지 않을 것이다. 네트워크를 통한 통신은 유선 또는 무선 연결 및 이들의 조합을 통해 활성화될 수 있다. 이러한 예시에서, 네트워크는, 다른 네트워크를 위해 유사한 목적을 제공하는 대안적인 장치가 사용될 수 있지만, 기술 분야에서 당업자에게 명백해지는 바와 같이, 인터넷을 포함하고, 환경은 요청을 수신하고, 이에 응답하여 콘텐츠를 제공하기 위한 웹 서버(906)를 포함한다.
설명적인 환경은 적어도 하나의 애플리케이션 서버(908) 및 데이터 저장소(910)를 포함한다. 연결되거나 아니면 구성되어서, 적절한 데이터 저장소로부터 데이터를 얻는 것과 같은 업무를 수행하기 위해 상호작용할 수 있는 여러 애플리케이션 서버, 레이더 또는 그 밖의 요소, 프로세스 또는 구성이 있을 수 있다는 것을 이해해야 한다. 본원에서 사용되는 바와 같은 용어 "데이터 저장소"는 데이터의 저장, 액세스 및 복구를 할 수 있는 임의의 장치 또는 장치들의 조합을 말하며, 이는 임의의 조합 및 임의의 수의 데이터 서버, 데이터베이스, 데이터 저장 장치 및 데이터 저장 매체를, 표준 환경, 분산 환경 또는 클러스터 환경에서 포함할 수 있다. 애플리케이션 서버는 필요에 따라 클라이언트 장치를 위한 하나 이상의 애플리케이션의 양상을 실행하고, 애플리케이션을 위한 데이터 액세스 및 비지니스 로직의 주요부를 다루기 위해, 데이터 저장소와 통합되기 위한 임의의 적절한 하드웨어 및 소프트웨어를 포함할 수 있다. 애플리케이션 서버는 데이터 저장소와 상호 작동하는 액세스 제어 서비스를 제공하고, 사용자에게 전송될 문자, 그래픽, 오디오 및/또는 비디오와 같은 콘테츠를 생성할 수 있으며, 이는 HTML, XML 또는 본 예시에서 또 다른 적절한 구조적인 언어의 형태로 웹 서버에 의해 사용자로 제공될 수 있다. 모든 요청 및 응답은 물론, 클라이언트 장치(902)와 애플리케이션 서버(908)간의 콘텐츠의 전달을 다루는 것은 웹 서버(906)에 의해 다루어질 수 있다. 웹 서버 및 애플리케이션 서버는 요구되지 않고, 단지 예시 구성이며, 본원에서 논의되는 구조화된 코드는 임의의 적절한 장치 또는 본원 어딘가에서 논의된 바와 같이, 호스트 머신상에서 실행될 수 있다는 것을 이해해야 한다.
데이터 저장소(910)는 여러 별도의 데이터 테이블, 데이터베이스 또는 그 밖의 다른 데이터 저장 메카니즘 및 특정 양상과 관련된 데이터를 저장하기 위한 매체를 포함할 수 있다. 예를 들어, 설명된 데이터 저장소는 생성 데이터(912)를 저장하기 위한 메카니즘 및 사용자 정보(916)를 포함하는데, 이는 생산 측면을 위한 콘텐츠를 제공하는데 사용될 수 있다. 또한, 데이터 저장소는 로그(log) 또는 세션 데이터(914)를 저장하기 위한 메카니즘을 포함하도록 도시된다. 페이지 이미지 정보와 액세스 권리 정보와 같은 데이터 저장소내에 저장될 필요가 있는 많은 그 밖의 다른 양상이 있을 수 있는데, 이는 적절한 상기 나열된 메카니즘이나 데이터 저장소(910) 내의 추가적인 메카니즘으로 저장될 수 있다는 것을 이해해야 한다. 데이터 자장소(910)는, 그 사이에 관련된 논리를 통해, 애플리케이션 서버(908)로부터 명령을 수신하고, 이에 응답하여 데이터를 얻고, 업데이트하거나 아니면 처리할 수 있다. 일 실시예에서, 사용자는 어떤 유형의 아이템을 위한 검색 요청을 제출할 수 있다. 이러한 경우에, 데이터 저장소는 사용자의 신원을 확인하기 위해 사용자 정보에 액세스할 수 있고, 그 유형의 아이템에 대한 정보를 얻기 위해 카달로그 상세 정보에 액세스할 수 있다. 그리고 나서, 정보는, 사용자가 사용자 장치(902)상의 브라우저를 통해 볼 수 있는 웹 페이지상에 결과 리스트와 같이 사용자에게 되돌아 올 수 있다. 관심 있는 특정 아이템을 위한 정보는 브라우저의 전용 페이지나 윈도우에서 볼 수 있다.
전형적으로 각각의 서버는 그 서버의 일반 관리 및 작업을 위한 실행가능한 프로그램 명령을 제공하는 운영 시스템을 포함할 것이고, 전형적으로, 서버으 lvm로세서에 의해 실행될 때, 서버가 명령의 의도된 기능을 수행할 수 있도록 하는 명령을 저장하는 컴퓨터-리드가능한 매체를 포함할 것이다. 서버의 운영 시스템 및 일반 기능을 위한 적절한 실행은 알려져 있거나, 시판되며, 기술 분야의 당업자, 특히 본원에서의 개시물과 관련된 당업자에 의해 용이하게 실행된다.
일 실시예에서의 환경은 여러 컴퓨터 시스템 및 하나 이상의 컴퓨터 네트워크 또는 직접 연결을 사용하는 통신 링크를 통해 상호연결된 구성을 사용하는 분산된 컴퓨팅 환경이다. 그러나, 이러한 시스템은, 도 9에 도시된 것 보다 더 적거나 더 많은 수의 구성을 가진 시스템에서 동등하게 잘 작동할 수 있다는 것을 당업자가 인식할 것이다. 따라서, 도 9의 시스템(900)의 도시는 본 개시물의 범위에서 벗어나지 않고, 실제로 설명적인 것으로 받아들여야 한다.
본원에서 논의되거나 암시된 다양한 실시예는 매우 광범위하게 작동하는 환경에서 실행될 수 있는데, 어떤 경우에 이는 하나 이상의 사용자 컴퓨터, 컴퓨팅 장치 또는 복수의 임의의 애플리케이션을 작동하는데 사용될 수 있는 프로세싱 장치를 포함할 수 있다. 사용자 또는 클라이언트 디바이스는 다수의 네트워킹 및 메시징 프로토콜을 지원할 수 있는, 모바일 소프트웨어를 가동하는 셀룰러, 무선, 및 휴대용 장치, 그리고, 표준 운영 체제를 가동하는 데스크탑 또는 랩탑 컴퓨터와 같은, 다수의 범용 개인용 컴퓨터 중 임의의 것을 포함할 수 있다. 이러한 시스템은 개발 및 데이터베이스 관리와 같은 용도를 위한, 다양한 상업적-가용 운영 체제 및 기타 알려진 애플리케이션 중 임의의 것을 가동하는 다수의 워크스테이션을 또한 포함할 수 있다. 이러한 장치들은 더미 터미널, 신(thin)-클라이언트, 게임 시스템, 및 네트워크를 통해 통신할 수 있는 기타 디바이스와 같은, 기타 전자 장치를 또한 포함할 수 있다.
대부분의 실시예는 TCP/IP, OSI, FTP, UPnP, NFS, CIFS, 및 AppleTalk과 같은, 다양한 상업적-가용 프로토콜 중 임의의 프로토콜을 이용하여 통신을 지원하기 위해 당업자에게 친숙한 적어도 하나의 네트워크를 이용한다. 네트워크는 예를 들어, 근거리망, 광역망, 가상 사설망, 인터넷, 인트라넷, 엑스트라넷, 공중 교환 전화망, 적외선망, 무선망, 및 이들의 임의의 조합일 수 있다.
웹 서버를 이용하는 실시예에서, 웹 서버는 HTTP 서버, FTP 서버, CGI 서버, 데이터 서버, 자바 서버, 및 비즈니스 애플리케이션 서버를 포함하는, 다양한 서버 또는 미드-타이어 애플리케이션 중 임의의 것을 가동할 수 있다. 서버는 자바®, C, C#, 또는 C++와 같은 임의의 프로그래밍 언어, 또는, Perl, Python, 또는 TCL과 같은 임의의 스크립팅 언어, 그리고 이들의 조합으로 기록된 하나 이상의 스크립트 또는 프로그램으로 구현될 수 있는 하나 이상의 웹 애플리케이션을 실행하는 것과 같은 방식으로, 사용자 장치로부터의 응답 요청에, 프로그램 또는 스크립트를 또한 실행할 수 있다. 서버는 Oracle®, Microsoft®, Sybase®, 및 IBM®으로부터 상업적으로 가용한 제품을 제한없이 포함하는 데이터베이스 서버를 또한 포함할 수 있다.
환경은 앞서 논의한 다양한 데이터 스토어 및 기타 메모리 및 저장 미디어를 포함할 수 있다. 이들은 네트워크 간 컴퓨터 전부 또는 일부로부터 떨어진, 또는 컴퓨터들 중 하나 이상에 대해 국부적인(및/또는 내부에 위치하는)저장 매체와 같이, 다양한 위치에 놓일 수 있다. 특정 세트의 실시예에서, 정보는 당업자에게 친숙한 저장 영역 네트워크("SAN")에 위치할 수 있다. 마찬가지로, 컴퓨터, 서버, 또는 다른 네트워크 서비스에 기여하는 기능을 수행하기 위한 임의의 필요 파일들은 적절한 대로 국부적으로 및/또는 원격으로 저장될 수 있다. 시스템이 컴퓨터화된 디바이스를 포함하는 경우에, 이러한 각각의 장치는 버스를 통해 전기적으로 연결될 수 있는 하드웨어 요소들을 포함할 수 있으며, 상기 요소는 예를 들어, 적어도 하나의 중앙 프로세싱 유닛(CPU), 적어도 하나의 입력 장치(가령, 마우스, 키보드, 컨트롤러, 터치 스크린, 또는 키패드), 및 적어도 하나의 출력 장치(가령, 디스플레이 장치, 프린터, 또는 스피커)를 포함한다. 이러한 시스템은 하나 이상의 저장 장치, 가령, 디스크 드라이브, 광학 저장 장치, 그리고, 고상 저장 장치, 가령, 랜덤 액세스 메모리("RAM") 또는 읽기-전용 메모리("ROM"), 그리고 제거가능 매체 장치, 메모리 카드, 플래시 카드, 등을 또한 포함할 수 있다.
이러한 장치는 앞서 설명한 바의 컴퓨터 판독가능 저장 매체 판독기, 통신 장치(가령, 모뎀, 네트워크 카드(무선 또는 유선), 적외선 통신 카드, 등), 및 작업 메모리를 또한 포함할 수 있다. 컴퓨터-판독가능 저장 매체 판독기는 컴퓨터 판독가능 정보를 일시적으로 및/또는 더 영구적으로 지니고, 저장하며, 전송하고, 불러드리기 위한 저장 매체와, 원격, 로컬, 고정, 및/또는 제거가능형 저장 장치를 나타내는 컴퓨터 판독가능 저장 매체와 연결될 수 있고, 또는 이를 수용하도록 구성될 수 있다. 시스템 및 다양한 장치들은 또한, 클라이언트 애플리케이션 또는 웹 브라우저와 같은, 애플리케이션 프로그램 및 운영 체제를 포함한, 적어도 하나의 작업 메모리 장치 내에 위치한 다수의 소프트웨어 애플리케이션, 모듈, 서비스, 또는 기타 요소들을 통상적으로 포함할 것이다. 대안의 실시예는 앞서 설명한 것으로부터 수많은 변형을 가질 수 있다. 예를 들어, 주문형 하드웨어가 또한 사용될 수 있고, 및/또는 특정 요소들이 하드웨어적으로, 소프트웨어적으로(애플릿과 같은 포터블 소프트웨어 포함), 또는 둘 모두로 구현될 수 있다. 더욱이, 네트워크 입/출력 장치와 같은 다른 컴퓨팅 장치에 대한 연결이 이용될 수 있다.
코드 또는 코드의 일부분을 지니기 위한 저장 매체 및 컴퓨터 판독가능 매체는 당 분야에 알려진 또는 사용되는 임의의 적절한 매체를 포함할 수 있고, 저장 매체 및 통신 매체를 포함하되, 예를 들어, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터와 같은 정보의 저장 및/또는 전송을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 제거가능 및 제거불가능 매체를 포함하며, 예를 들어, RAM, ROM, EEPROM, 플래시 메모리, 또는 다른 메모리 기술, CD-ROM, 디지털 다용도 디스크(DVD), 또는 다른 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지, 또는 다른 자기 저장 디바이스, 또는 요망 정보 저장에 사용될 수 있는 그리고 시스템 장치에 의해 액세스될 수 있는 그외 다른 매체를 포함하지만, 이에 제한되지 않는다. 여기서 제공되는 개시내용 및 설명에 기초하여, 당업자는 다양한 실시예의 구현을 위한 다른 방식 및/또는 방법을 이해할 것이다.
따라서, 명세서 및 도면은 제한적인 측면보다는 예시적인 면으로 간주되어야 한다. 그러나, 다양한 변형에 및 변화가 청구범위에서 제시되는 발명의 더 넓은 사상 및 범위로부터 벗어나지 않으면서 이루어질 수 있다.

Claims (15)

  1. 컴퓨터 실행되는 방법에 있어서, 상기 방법은,
    소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 보안된 정보를 이송하기 위한 요청을 상기 소스 호스트 컴퓨팅 장치에 의해 수신하는 단계 - 요청은 데스티네이션 호스트 컴퓨팅 장치를 위한 데스티네이션 키를 포함함 - 와,
    상기 데스티네이션 키를 이용하여 상기 데스티네이션 호스트 컴퓨팅 장치를 상기 소스 호스트 컴퓨팅 장치에 의해 인증하고,
    상기 데스티네이션 호스트 컴퓨팅 장치가 상기 소스 호스트 컴퓨팅 장치와 연관된 소스 키를 사용하여 상기 소스 호스트 컴퓨팅 장치를 인증하였다는 표시를 상기 소스 호스트 컴퓨팅 장치에 의해 수신하는 것에 의해,
    상기 소스 호스트 컴퓨팅 장치와 상기 데스티네이션 호스트 컴퓨팅 장치 간에 상호 인증을 수행하는 단계와,
    상기 소스 호스트 컴퓨팅 장치에 의해 이송키(migration key)를 설립하는 단계 - 상기 이송키는 상기 데스티네이션 키 및 상기 소스 키를 사용하여 상기 소스 호스트 컴퓨팅 장치에 의해 설립됨 - 와,
    상기 이송키를 사용하여, 보안된 정보가 소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 이송되도록 하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 실행되는 방법.
  2. 제 1 항에 있어서, 보안된 정보는 소스 호스트 컴퓨팅 장치상에서 실행되는 가상 머신인 것을 특징으로 하는 컴퓨터 실행되는 방법.
  3. 제 2 항에 있어서, 보안된 정보가 이송되도록 하는 단계는,
    상기 이송키를 사용하여, 소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 적어도 일부의 랜덤 액세스 메모리(RAM) 상태 정보를 복사하는 단계와,
    소스 호스트 컴퓨팅 장치상의 가상 머신을 정지시키는 단계와,
    데스티네이션 호스트 컴퓨팅 장치상에 가상 머신을 실행하기 위해 표시를 데스티네이션 호스트 컴퓨팅 장치로 전송하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 실행되는 방법.
  4. 제 1 항에 있어서, 소스키는 소스 호스트 컴퓨팅 장치의 부트 시간에서 생성되는 키 페어의 일부인 공개키이고, 소스 호스트 컴퓨팅 장치는 공개 키를 관리자 서버에 전송하고, 관리자 서버는 공개키를 사용하여 보안된 정보를 이송하기 위한 요청을 개시할 수 있는 것을 특징으로 하는 컴퓨터 실행되는 방법.
  5. 제 1 항에 있어서, 상기 이송키를 설립하는 단계는 Diffie-Hellman 키 교환 프로세스에 따라 수행되는 것을 특징으로 하는 컴퓨터 실행되는 방법.
  6. 제 1 항에 있어서, 보안된 정보가 이송되도록 하는 단계는,
    소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 랜덤 액세스 메모리(RAM) 상태 정보의 세트를 복사하는 단계 - 복사하는 단계는 완성하기 위해 한 구간의 시간이 소요됨 - 와,
    소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 RAM 상태 정보에서의 변화의 세트를 전송하는 단계 - 복사를 완성하는데 소요되는 한 구간의 시간 동안에 소스 호스트 컴퓨팅 장치상에서 변화가 이루어졌음 - 를 더 포함하는 것을 특징으로 하는 컴퓨터 실행되는 방법.
  7. 제 1 항에 있어서, 보안된 정보를 이송하기 위한 요청은 권한 없는 당사자가 상기 요청을 제출하는 것을 막기 위해 싸인되는 것을 특징으로 하는 컴퓨터 실행되는 방법.
  8. 제 1 항에 있어서, 요청은 소스 호스트 컴퓨팅 장치 또는 데스티네이션 호스트 컴퓨팅 장치 중 적어도 하나를 위한 증명서를 더 포함하는 것을 특징으로 하는 컴퓨터 실행되는 방법.
  9. 컴퓨팅 시스템에 있어서, 상기 컴퓨팅 시스템은,
    적어도 하나의 프로세서와,
    적어도 하나의 프로세서에 의해 실행될 때, 컴퓨팅 시스템이,
    소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 가상 머신을 이송하기 위한 적어도 하나의 요청을 수신 - 적어도 하나의 요청은 제1 키 및 제2 키를 포함하고, 상기 제1 키는 상기 소스 호스트 컴퓨팅 장치와 연관되고, 상기 제2 키는 상기 데스티네이션 호스트 컴퓨팅 장치와 연관됨 - 하도록 하고,
    상기 소스 호스트 컴퓨팅 장치가 상기 제2 키를 이용하여 상기 데스티네이션 호스트 컴퓨팅 장치를 인증하고,
    상기 데스티네이션 호스트 컴퓨팅 장치가 상기 제1 키를 이용하여 상기 소스 호스트 컴퓨팅 장치를 인증하였다는 표시를 수신하는 것에 의해,
    상기 소스 호스트 컴퓨팅 장치와 상기 데스티네이션 호스트 컴퓨팅 장치 간에 상호 인증을 수행하도록 하며,
    소스 호스트 컴퓨팅 장치와 데스티네이션 호스트 컴퓨팅 장치간의 보안 세션을 설립 - 보안 세션은 적어도 제1 키 및 제2 키를 사용함에 의해 설립됨 - 하도록 하며,
    적어도 하나의 요청에 응답하여 보안 세션을 사용하여, 소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 가상 머신을 이송하도록 하는 명령을 포함하는 메모리를 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  10. 제 9 항에 있어서, 가상 머신을 이송하는 것은,
    보안 세션을 사용하여 소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 랜덤 액세스 메모리(RAM) 상태 정보의 적어도 일부를 복사하는 것과,
    소스 호스트 컴퓨팅 장치상의 가상 머신을 정지시키는 것과,
    데스티네이션 호스트 컴퓨팅 장치상에 가상 머신의 새로운 인스턴스를 시작하는 것을 더 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  11. 제 9 항에 있어서, 가상 머신을 이송하기 위한 적어도 하나의 요청을 수신하는 것은,
    소스 호스트 컴퓨팅 장치에 의해 제1 요청을 수신하는 것 - 상기 제1 요청은 상기 제2 키를 포함함 -
    을 더 포함하고, 상기 데스티네이션 호스트 컴퓨팅 장치는 상기 제1 키를 포함하는 제2 요청을 수신하는, 컴퓨팅 시스템.
  12. 제 9 항에 있어서, 보안 세션을 설립하는 것은,
    보안 세션 동안에 소스 호스트 컴퓨팅 장치와 데스티네이션 호스트 컴퓨팅 장치간에 상태 정보를 전송하는데 사용될 세션키를 협상하는 것과,
    세션키를 사용함에 의해, 소스 호스트 컴퓨팅 장치와 데스티네이션 호스트 컴퓨팅 장치간에 전송된 정보를 암호화하는 것을 더 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  13. 제 12 항에 있어서, 세션키를 협상하는 것은 Diffie-Hellman 키 교환 프로세스에 따라 수행되는 것을 특징으로 하는 컴퓨팅 시스템.
  14. 제 9 항에 있어서, 가상 머신을 이송하는 것은,
    소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 랜덤 액세스 메모리(RAM) 상태 정보의 세트를 복사하는 단계 - 복사하는 단계는 완성하기 위해 한 구간의 시간이 소요됨 - 와,
    소스 호스트 컴퓨팅 장치에서 데스티네이션 호스트 컴퓨팅 장치로 RAM 상태 정보에서의 변화의 세트를 전송하는 단계 - 복사를 완성하는데 소요되는 한 구간의 시간 동안에 상기 가상 머신에 의해 소스 호스트 컴퓨팅 장치상에서 변화가 이루어졌음 - 를 더 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  15. 제 9 항에 있어서,
    제2 컴퓨팅 장치
    를 더 포함하고, 상기 제2 컴퓨팅 장치는 적어도 하나의 제2 프로세서 및 제2 명령들을 포함하는 제2 메모리를 포함하고, 상기 제2 명령들은 상기 적어도 하나의 제2 프로세서에 의해 실행될 때, 상기 제2 컴퓨팅 장치로 하여금,
    데스티네이션 호스트 컴퓨팅 장치로 이송을 위해 소스 호스트 컴퓨팅 장치상에서 실행되는 가상 머신을 선택하도록 하고,
    응용 프로그래밍 인터페이스(API)를 사용하여, 가상 머신을 이송하기 위한 적어도 하나의 요청을 제출 - 적어도 하나의 요청은 제1 키 및 제2 키를 포함함 - 하도록 하는, 컴퓨팅 시스템.

KR1020157022744A 2013-01-22 2014-01-22 보안 가상 머신 이송 KR101701664B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/746,702 2013-01-22
US13/746,702 US9729517B2 (en) 2013-01-22 2013-01-22 Secure virtual machine migration
PCT/US2014/012606 WO2014116745A1 (en) 2013-01-22 2014-01-22 Secure virtual machine migration

Publications (2)

Publication Number Publication Date
KR20150110712A KR20150110712A (ko) 2015-10-02
KR101701664B1 true KR101701664B1 (ko) 2017-02-01

Family

ID=51208714

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157022744A KR101701664B1 (ko) 2013-01-22 2014-01-22 보안 가상 머신 이송

Country Status (9)

Country Link
US (1) US9729517B2 (ko)
EP (1) EP2948864B1 (ko)
JP (1) JP6165883B2 (ko)
KR (1) KR101701664B1 (ko)
CN (1) CN105027107B (ko)
AU (1) AU2014209472B2 (ko)
CA (1) CA2898908C (ko)
SG (1) SG11201505652UA (ko)
WO (1) WO2014116745A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9729517B2 (en) 2013-01-22 2017-08-08 Amazon Technologies, Inc. Secure virtual machine migration
US10063380B2 (en) 2013-01-22 2018-08-28 Amazon Technologies, Inc. Secure interface for invoking privileged operations

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8019732B2 (en) * 2008-08-08 2011-09-13 Amazon Technologies, Inc. Managing access of multiple executing programs to non-local block data storage
US9503268B2 (en) 2013-01-22 2016-11-22 Amazon Technologies, Inc. Securing results of privileged computing operations
US10579405B1 (en) * 2013-03-13 2020-03-03 Amazon Technologies, Inc. Parallel virtual machine managers
US9141424B2 (en) * 2013-03-14 2015-09-22 International Business Machines Corporation Achieving continuous availability for planned workload and site switches with no data loss
CN104252375B (zh) * 2013-06-25 2017-07-28 国际商业机器公司 用于位于不同主机的多个虚拟机共享USB Key的方法和系统
US9251160B1 (en) * 2013-06-27 2016-02-02 Symantec Corporation Data transfer between dissimilar deduplication systems
US20150096031A1 (en) * 2013-09-27 2015-04-02 Justin H. N. Benoit System and method for providing simplified end-to-end security for computing devices in standalone, lan, wan or internet architectures
US9542216B2 (en) 2013-10-15 2017-01-10 At&T Intellectual Property I, L.P. Richer model of cloud app markets
KR101762376B1 (ko) * 2014-01-10 2017-07-27 한국전자통신연구원 모바일 인증 시스템 및 방법
US9563419B2 (en) * 2014-02-20 2017-02-07 International Business Machines Corporation Managing deployment of application pattern based applications on runtime platforms
US9753768B2 (en) 2014-03-08 2017-09-05 Vmware, Inc. Instant xvmotion using a private storage virtual appliance
US20150254092A1 (en) * 2014-03-08 2015-09-10 Vmware, Inc. Instant xvmotion using a hypervisor-based client/server model
US9882825B2 (en) * 2014-03-14 2018-01-30 Citrix Systems, Inc. Method and system for securely transmitting volumes into cloud
KR101683251B1 (ko) * 2014-03-27 2016-12-06 한국전자통신연구원 센서 네트워크에서 센서 노드 설정 방법, 보안 설정 방법 및 이를 포함하는 센서 네트워크 시스템
US10693850B2 (en) * 2014-05-12 2020-06-23 Google Llc Managing NIC-encrypted flows for migrating guests or tasks
US10491568B1 (en) * 2014-05-21 2019-11-26 Amazon Technologies, Inc. Management of encrypted data storage
US9584492B2 (en) * 2014-06-23 2017-02-28 Vmware, Inc. Cryptographic proxy service
EP3198779B1 (en) * 2014-09-26 2020-04-15 British Telecommunications public limited company Secure virtualised data volumes
JP6398559B2 (ja) * 2014-10-02 2018-10-03 富士通株式会社 情報共有プログラム、情報共有システム及び情報共有方法
GB2531770A (en) * 2014-10-30 2016-05-04 Ibm Confidential Extracting System Internal Data
US10303879B1 (en) * 2014-11-06 2019-05-28 Amazon Technologies, Inc. Multi-tenant trusted platform modules
CN104580208B (zh) 2015-01-04 2018-11-30 华为技术有限公司 一种身份认证方法及装置
US9712503B1 (en) 2015-03-23 2017-07-18 Amazon Technologies, Inc. Computing instance migration
US9667606B2 (en) 2015-07-01 2017-05-30 Cyphermatrix, Inc. Systems, methods and computer readable medium to implement secured computational infrastructure for cloud and data center environments
US10050951B2 (en) * 2015-07-20 2018-08-14 Cisco Technology, Inc. Secure access to virtual machines in heterogeneous cloud environments
US9767318B1 (en) * 2015-08-28 2017-09-19 Frank Dropps Secure controller systems and associated methods thereof
US20170093966A1 (en) * 2015-09-28 2017-03-30 International Business Machines Corporation Managing a shared pool of configurable computing resources having an arrangement of a set of dynamically-assigned resources
US9792143B1 (en) * 2015-10-23 2017-10-17 Amazon Technologies, Inc. Platform secure execution modes
US10628192B2 (en) * 2015-12-24 2020-04-21 Intel Corporation Scalable techniques for data transfer between virtual machines
US10719346B2 (en) 2016-01-29 2020-07-21 British Telecommunications Public Limited Company Disk encryption
WO2017129657A1 (en) 2016-01-29 2017-08-03 British Telecommunications Public Limited Company Disk encryption
WO2017129660A1 (en) 2016-01-29 2017-08-03 British Telecommunications Public Limited Company Secure data storage
US10754680B2 (en) 2016-01-29 2020-08-25 British Telecommunications Public Limited Company Disk encription
KR102484606B1 (ko) * 2016-03-11 2023-01-05 삼성전자주식회사 전자장치 및 그 제어방법
US10083282B2 (en) 2016-03-24 2018-09-25 Paypal, Inc. Operating system based authentication
US10601779B1 (en) * 2016-06-21 2020-03-24 Amazon Technologies, Inc. Virtual private network (VPN) service backed by eventually consistent regional database
US10346641B2 (en) 2016-09-23 2019-07-09 Intel Corporation Processors, methods, systems, and instructions to determine whether to load encrypted copies of protected container pages into protected container memory
CN106341228B (zh) * 2016-11-01 2019-06-04 广东浪潮大数据研究有限公司 一种虚拟机迁移方法、系统及虚拟机迁入端和迁出端
US10447668B1 (en) * 2016-11-14 2019-10-15 Amazon Technologies, Inc. Virtual cryptographic module with load balancer and cryptographic module fleet
CN106598713A (zh) * 2016-11-24 2017-04-26 上海交通大学 虚拟机安全动态迁移的方法及系统
US11153297B2 (en) * 2016-12-06 2021-10-19 Vmware, Inc. Systems and methods to facilitate certificate and trust management across a distributed environment
US11182203B2 (en) 2016-12-06 2021-11-23 Vmware, Inc. Systems and methods to orchestrate infrastructure installation of a hybrid system
US10462123B2 (en) 2016-12-06 2019-10-29 Vmware, Inc. Systems and methods for cloning an agent in a distributed environment
US10509733B2 (en) 2017-03-24 2019-12-17 Red Hat, Inc. Kernel same-page merging for encrypted memory
US10209917B2 (en) 2017-04-20 2019-02-19 Red Hat, Inc. Physical memory migration for secure encrypted virtual machines
US10379764B2 (en) * 2017-05-11 2019-08-13 Red Hat, Inc. Virtual machine page movement for encrypted memory
US11165589B2 (en) * 2017-05-11 2021-11-02 Shapeshift Ag Trusted agent blockchain oracle
JP6918576B2 (ja) * 2017-05-24 2021-08-11 キヤノン株式会社 システム、情報処理装置、方法及びプログラム
US10771439B2 (en) 2017-06-28 2020-09-08 Microsoft Technology Licensing, Llc Shielded networks for virtual machines
US11354420B2 (en) 2017-07-21 2022-06-07 Red Hat, Inc. Re-duplication of de-duplicated encrypted memory
US11726813B2 (en) * 2017-08-01 2023-08-15 Cable Television Laboratories, Inc. Systems and methods for establishing scalable credential creation and access
US10534921B2 (en) 2017-08-23 2020-01-14 Red Hat, Inc. Copy and decrypt support for encrypted virtual machines
US11010387B2 (en) 2017-10-06 2021-05-18 Microsoft Technology Licensing, Llc Join operation and interface for wildcards
US10673716B1 (en) 2017-10-31 2020-06-02 Amazon Technologies, Inc. Graph-based generation of dependency-adherent execution plans for data center migrations
US10757082B2 (en) * 2018-02-22 2020-08-25 International Business Machines Corporation Transforming a wrapped key into a protected key
US11640480B2 (en) 2018-04-25 2023-05-02 British Telecommunications Public Limited Company Data message sharing
WO2019223980A1 (en) 2018-05-24 2019-11-28 British Telecommunications Public Limited Company Cryptographic key generation using multiple random sources
WO2019223979A1 (en) 2018-05-24 2019-11-28 British Telecommunications Public Limited Company Cryptographic key generation and storage
US10824728B2 (en) * 2018-05-30 2020-11-03 Nec Corporation Reliable detection of co-located virtual machines in the cloud using a trusted execution environment
CN109067823A (zh) * 2018-06-11 2018-12-21 中国平安人寿保险股份有限公司 一种数据迁移方法、装置、计算机设备及存储介质
KR20200032945A (ko) * 2018-09-19 2020-03-27 시큐리티플랫폼 주식회사 가상사설망 기능을 수행하기 위한 시스템 온 칩 및 이를 포함하는 시스템
US10768837B2 (en) * 2018-10-31 2020-09-08 EMC IP Holding Company LLC Non-disruptive migration of a virtual volume in a clustered data storage system
CN109684037A (zh) * 2018-12-18 2019-04-26 北京可信华泰信息技术有限公司 一种虚拟机安全迁移方法
CN109921902B (zh) 2019-03-22 2020-10-23 创新先进技术有限公司 一种密钥管理方法、安全芯片、业务服务器及信息系统
CN110708154B (zh) * 2019-08-31 2022-05-10 苏州浪潮智能科技有限公司 一种虚拟机迁移方法、系统、终端及存储介质
US20220337402A1 (en) * 2019-09-17 2022-10-20 Simon Bourdages Centralized remote migration client credential management
US11614956B2 (en) 2019-12-06 2023-03-28 Red Hat, Inc. Multicast live migration for encrypted virtual machines
US11507408B1 (en) * 2020-01-21 2022-11-22 Amazon Technologies, Inc. Locked virtual machines for high availability workloads
CN113849261A (zh) * 2020-06-28 2021-12-28 华为技术有限公司 处理数据的方法、主机及装置
US11809568B2 (en) 2021-05-12 2023-11-07 International Business Machines Corporation Hypervisor having local keystore
US20230171233A1 (en) * 2021-11-30 2023-06-01 Oracle International Corporation Secure transfer of workloads across security regions
CN115189928B (zh) * 2022-06-25 2023-10-17 中国人民解放军战略支援部队信息工程大学 一种密码服务虚拟机动态安全迁移方法及系统
CN114944917B (zh) * 2022-07-21 2022-10-14 国开启科量子技术(北京)有限公司 使用量子密钥迁移虚拟机的方法、装置、介质和设备
CN115499385B (zh) * 2022-09-21 2023-09-12 中电云数智科技有限公司 一种vDPA虚机热迁移不丢包的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080282348A1 (en) 2005-03-22 2008-11-13 Graeme John Proudler Methods, Devices and Data Structures for Trusted Data
US20110066597A1 (en) 2009-09-14 2011-03-17 Vmware, Inc. Method and System for Performing Live Migration of Persistent Data of a Virtual Machine

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2870163B2 (ja) * 1990-09-07 1999-03-10 松下電器産業株式会社 認証機能付き鍵配送方式
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
CA2431311C (en) 2002-06-06 2004-05-04 Dick C. Hardt 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
US8295484B2 (en) 2004-12-21 2012-10-23 Broadcom Corporation System and method for securing data from a remote input device
US7636442B2 (en) 2005-05-13 2009-12-22 Intel Corporation Method and apparatus for migrating software-based security coprocessors
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US8364638B2 (en) 2005-09-15 2013-01-29 Ca, Inc. Automated filer technique for use in virtualized appliances and applications
JP2007122303A (ja) 2005-10-27 2007-05-17 Hitachi Ltd 論理区画式計算機システム
JP5054317B2 (ja) 2006-02-08 2012-10-24 株式会社アイ・オー・データ機器 暗号鍵設定方法、ネットワークシステム、管理装置、情報処理端末、および暗号鍵設定プログラム
EP2016701A4 (en) * 2006-04-25 2012-04-25 Stephen Laurence Boren DYNAMIC DISTRIBUTED KEY SYSTEM AND METHOD FOR MANAGING IDENTITY, AUTHENTICATION OF SERVERS, DATA SECURITY AND PREVENTING ATTACKS OF MIDDLE MAN
CA2547047A1 (en) * 2006-05-15 2007-11-15 Embotics Corporation Management of virtual machines using mobile autonomic elements
US8707383B2 (en) * 2006-08-16 2014-04-22 International Business Machines Corporation Computer workload management with security policy enforcement
US8407699B2 (en) 2008-03-10 2013-03-26 Citrix Systems, Inc. System and method for managing code isolation
WO2008117500A1 (ja) * 2007-03-27 2008-10-02 Nec Corporation 仮想マシン運用システム、仮想マシン運用方法およびプログラム
US9112681B2 (en) * 2007-06-22 2015-08-18 Fujitsu Limited Method and apparatus for secure information transfer to support migration
US8127296B2 (en) * 2007-09-06 2012-02-28 Dell Products L.P. Virtual machine migration between processors having VM migration registers controlled by firmware to modify the reporting of common processor feature sets to support the migration
KR100953092B1 (ko) * 2007-11-06 2010-04-19 한국전자통신연구원 Sso서비스 방법 및 시스템
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
US8595723B2 (en) 2008-06-10 2013-11-26 Hewlett-Packard Development Company, L.P. Method and apparatus for configuring a hypervisor during a downtime state
AU2009259876A1 (en) 2008-06-19 2009-12-23 Servicemesh, Inc. Cloud computing gateway, cloud computing hypervisor, and methods for implementing same
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
US8336079B2 (en) 2008-12-31 2012-12-18 Hytrust, Inc. Intelligent security control system for virtualized ecosystems
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
US8438256B2 (en) 2009-06-26 2013-05-07 Vmware, Inc. Migrating functionality in virtualized mobile devices
CN101937357B (zh) * 2009-07-01 2013-11-06 华为技术有限公司 一种虚拟机迁移决策方法、装置及系统
JP2011035573A (ja) 2009-07-31 2011-02-17 Victor Co Of Japan Ltd 音信号処理装置および音信号処理方法
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)
JP5467461B2 (ja) 2010-03-17 2014-04-09 曙ブレーキ工業株式会社 ブリーダプラグ
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
US8800050B2 (en) 2010-11-09 2014-08-05 Microsoft Corporation Security system for computing resources pre-releases
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 富士通株式会社 スケジューリングプログラム、および情報処理装置
JP5050114B1 (ja) * 2011-04-28 2012-10-17 株式会社東芝 情報記録装置
US20120324446A1 (en) 2011-06-17 2012-12-20 Microsoft Corporation Virtual machine image composition and signing
US8732462B2 (en) 2011-07-07 2014-05-20 Ziptr, Inc. Methods and apparatus for secure data sharing
EP2587715B1 (en) 2011-09-20 2017-01-04 BlackBerry Limited Assisted certificate enrollment
US9413538B2 (en) * 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
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
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
US10063380B2 (en) 2013-01-22 2018-08-28 Amazon Technologies, Inc. Secure interface for invoking privileged operations

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080282348A1 (en) 2005-03-22 2008-11-13 Graeme John Proudler Methods, Devices and Data Structures for Trusted Data
US20110066597A1 (en) 2009-09-14 2011-03-17 Vmware, Inc. Method and System for Performing Live Migration of Persistent Data of a Virtual Machine

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9729517B2 (en) 2013-01-22 2017-08-08 Amazon Technologies, Inc. Secure virtual machine migration
US10063380B2 (en) 2013-01-22 2018-08-28 Amazon Technologies, Inc. Secure interface for invoking privileged operations
US11228449B2 (en) 2013-01-22 2022-01-18 Amazon Technologies, Inc. Secure interface for invoking privileged operations

Also Published As

Publication number Publication date
CN105027107A (zh) 2015-11-04
JP2016509806A (ja) 2016-03-31
WO2014116745A1 (en) 2014-07-31
AU2014209472A1 (en) 2015-08-27
EP2948864B1 (en) 2019-05-08
SG11201505652UA (en) 2015-08-28
KR20150110712A (ko) 2015-10-02
CN105027107B (zh) 2019-03-15
US9729517B2 (en) 2017-08-08
EP2948864A1 (en) 2015-12-02
EP2948864A4 (en) 2016-09-28
JP6165883B2 (ja) 2017-07-19
AU2014209472B2 (en) 2016-11-10
CA2898908C (en) 2017-09-26
CA2898908A1 (en) 2014-07-31
US20140208111A1 (en) 2014-07-24

Similar Documents

Publication Publication Date Title
KR101701664B1 (ko) 보안 가상 머신 이송
US11228449B2 (en) Secure interface for invoking privileged operations
US10409985B2 (en) Trusted computing host
US20220014515A1 (en) Secure Authentication Of A Device Through Attestation By Another Device
JP6462103B2 (ja) 特権的コンピューティングオペレーションの結果の保護
US11526595B2 (en) Optically scannable representation of a hardware secured artifact

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