KR20150106923A - 프리빌리지 컴퓨팅 작동의 결과 보호 - Google Patents

프리빌리지 컴퓨팅 작동의 결과 보호 Download PDF

Info

Publication number
KR20150106923A
KR20150106923A KR1020157021715A KR20157021715A KR20150106923A KR 20150106923 A KR20150106923 A KR 20150106923A KR 1020157021715 A KR1020157021715 A KR 1020157021715A KR 20157021715 A KR20157021715 A KR 20157021715A KR 20150106923 A KR20150106923 A KR 20150106923A
Authority
KR
South Korea
Prior art keywords
request
public key
host computing
computing device
virtualization layer
Prior art date
Application number
KR1020157021715A
Other languages
English (en)
Other versions
KR101704329B1 (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 KR20150106923A publication Critical patent/KR20150106923A/ko
Application granted granted Critical
Publication of KR101704329B1 publication Critical patent/KR101704329B1/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
    • 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/44Program or device authentication
    • 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/606Protecting data by securing the transmission between two devices or processes
    • 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
    • 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
    • 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
    • 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

Landscapes

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

Abstract

운영 체제(OS) 커널 및/또는 하이퍼바이저와 같이, 시스템 상에서 프리빌리지 작동의 결과를 보호하기 위해, 비대칭(또는 대칭) 암호 기법과 같은 보안 기법을 이용하는 정형화된 인터페이스 세트(가령, 애플리케이션 프로그래밍 인터페이스(API))가 설명된다. 인터페이스는 하이퍼바이저 및/또는 커널 상에서 프리빌리지 작동을 수행하기 위한 요청에 퍼블릭 키를 포함시킨다. 커널 및/또는 하이퍼바이저는 요청에 포함된 키를 이용하여 프리빌리지 작동의 결과를 암호화한다. 일부 실시예에서, 요청 자체가 또한 암호화되어, 임의의 중간자가 파라미터 및 요청의 기타 정보를 판독할 수 없게 된다.

Description

프리빌리지 컴퓨팅 작동의 결과 보호 {SECURING RESULTS OF PRIVILEGED COMPUTING OPERATIONS}
점점 더 많은 수의 애플리케이션 및 서비스가 인터넷과 같은 네트워크를 통해 가용해짐에 따라, 점점 더 많은 수의 콘텐츠, 애플리케이션, 및/또는 서비스 제공자들이 클라우드 컴퓨팅과 같은 기술에 주목하고 있다. 클라우드 컴퓨팅은, 일반적으로, 웹 서비스와 같은 서비스를 통해 전자 리소스에 대한 액세스를 제공하는 기법으로서, 이러한 서비스의 지원에 사용되는 하드웨어 및/또는 소프트웨어는 임의의 주어진 시간에 서비스 요청에 부합하기 위해 동적으로 스케일링가능하다. 사용자 또는 고객은 일반적으로, 클라우드를 통한 리소스 액세스를 위해 대여, 리스, 또는 그렇지 않을 경우 대금지불할 것이고, 따라서, 필요한 하드웨어 및/또는 소프트웨어를 구매 및 유지할 필요가 없다.
많은 클라우드 컴퓨팅 제공자들은 기반의 하드웨어 및/또는 소프트웨어 리소스를 복수의 사용자가 공유할 수 있도록 가상화를 이용한다. 가상화는 컴퓨팅 서버, 저장 디바이스, 및/또는 기타 리소스를 특정 사용자에 의해 각각 소유되는 복수의 분리된 인스턴스(가령, 가상 기계)로 파티션화시킬 수 있다. 이러한 가상 기계들은 호스트 컴퓨팅 디바이스 상에서 작동되는 하이퍼바이저를 이용하여 종종 호스팅된다. 이러한 범주에서, 하이퍼바이저 및 게스트 운영 체제 커널은 보안 집행 메커니즘으로 작용한다. 예를 들어, 하이퍼바이저는 통상적으로, 호스트 상의 다양한 가상 기계들을 제어하고, 커널은 가상 기계 상의 다양한 프로세스를 제어한다. 보안 상의 이유로, 하이퍼바이저 및 커널 둘 모두는 수정 또는 변경하기 어렵게 만들어진다. 그러나, 경우에 따라, 소프트웨어 패치 적용, 보안 모니터링 수행, 등과 같은 이유로 런타임시에 하이퍼바이저 또는 커널의 코드를 수정하는 것이 요망될 수 있다.
본 발명에 따른 다양한 실시예는 도면을 참조하여 설명될 것이다:
도 1은 다양한 실시예에 따른 하이퍼바이저 또는 커널에서의 프리빌리지 작동(privileged operations)의 결과를 보호하는 예를 도시하고,
도 2는 다양한 실시예에 따라, 커널 또는 하이퍼바이저에 제출되는 요청을 암호화하기 위해 비대칭 암호 기법을 이용하는 예를 도시하며,
도 3은 다양한 실시예에 따라 인증 기관을 이용하는 예를 도시하고,
도 4는 다양한 실시예에 따라 서비스 제공자의 리소스 중심 환경의 예를 도시하며,
도 5는 다양한 실시예에 따라, 하이퍼바이저 또는 커널의 프리빌리지 작동을 실행하기 위해 요청의 결과를 보호하는 일례의 프로세스를 도시하고,
도 6은 다양한 실시예에 다라, 하이퍼바이저 또는 커널의 프리빌리지 작동 수행에 사용될 수 있는 API를 제공하기 위한 일례의 프로세스를 도시하며,
도 7은 다양한 실시예에 따라, 결과의 함호화를 이용하는 일례의 프로세스를 도시하고,
도 8은 다양한 실시예에 따라 이용될 수 있는 일례의 컴퓨팅 디바이스의 한 세트의 범용 구성요소의 논리적 배열을 도시하며,
도 9는 다양한 실시예에 따른 형태들을 구현하기 위한 환경의 예를 도시한다.
다음의 설명에서, 첨부 도면의 그림에서 다양한 실시예들이, 예를 들어, 그리고, 제한없이, 도시될 것이다. 본 발명의 다양한 실시예는 반드시 동일한 실시예를 참조하는 것이 아니며, 이러한 참조는 적어도 하나를 의미한다. 구체적 구현예 및 기타 세부사항들이 논의되지만, 이는 예시적 용도일 뿐이다. 당 업자는 다른 구성요소 및 구조가 청구되는 발명의 범위 및 사상으로부터 벗어나지 않으면서 사용될 수 있음을 이해할 것이다.
본 발명의 다양한 실시예에 따른 시스템 및 방법은 프리빌리지 시스템(가령, 운영 체제 커널, 하이퍼바이저, 등)에서 작동을 수행함으로써 획득되는 결과와 같이, 데이터를 보호하기 위한 기존 기법에서 경험한 결점 또는 앞서 언급한 결점들 중 하나 이상을 극복할 수 있다. 특히, 다양한 실시예는 하이퍼바이저 및/또는 커널에 대한 프리빌리지 작동을 수행하기 위한 요청에 키(가령, 퍼블릭 키)를 포함시킴으로써 데이터를 보호하도록 비대칭(또는 대칭) 암호 기법과 같은 보안 기법을 이용한다. 커널 및/또는 하이퍼바이저는 프리빌리지 작동의 결과를 암호화하기 위해 요청에 포함된 키를 이용할 수 있다. 일부 실시예에서, 요청 자체가 암호화되거나 서명될 수도 있어서, 임의의 중간자들이 요청을 볼 권한을 승인받지 않을 경우, 및/또는 요청의 해역 또는 그렇지 않을 경우 요청에 손대는 데 사용되는 키 또는 기타 메커니즘의 사본을 갖도록 승인받지 않을 경우, 임의의 중간자들이 파라미터 및 요청의 기타 정보를 판독할 수 없게 된다. 일 실시예에 따르면, 요청은 운영체제(OS) 커널 및/또는 하이퍼바이저 상에 코드를 안전하게 추가 및/또는 수정하는, 정형화된 인터페이스 세트(가령, 애플리케이션 프로그래밍 인터페이스(API))를 이용하여 커널/하이퍼바이저에 제출된다. 이러한 인터페이스는 런타임시 보안 모니터링, 포렌식 캡처(forensic capture), 및/또는 패치 소프트웨어 시스템 수행을 위해 호출될 수 있다. 다양한 실시예에서, API 요청의 결과는 API 요청 내 파라미터로 포함된 퍼블릭 키를 이용하여 암호화된다.
다양한 실시예에서, 여기서 설명되는 보안 기법은 호스트 컴퓨팅 디바이스의 하이퍼바이저 및/또는 OS 커널에서 프리빌리지 작동을 수행할 때, 멀티-테넌트 공유 리소스 환경(가령, 클라우드 컴퓨팅 환경)에 이용될 수 있다. 결과적으로, 이러한 타입의 환경에서, 호스트 컴퓨팅 디바이스는 가상화 기술을 이용하여 서비스 제공자(가령, 클라우드 컴퓨팅 제공자)의 서로 다른 고객과 연관된 하나 이상의 가상 기계 인스턴스를 프로비저닝할 수 있다. 이러한 가상 기계 인스턴스는 하이퍼바이저(또는 다른 가상화 기술)를 이용하여 컴퓨팅 디바이스 상에서 호스팅되고, 각각의 가상 기계 인스턴스는 커널, 디바이스 드라이버, 및 기타 OS 구성요소를 포함한, 게스트 운영 체제를 지닐 수 있다. 가상 기계의 호스팅을 위한 호스트 컴퓨팅 디바이스 및 기타 물리적 리소스는 서비스 제공자에 의해 통상적으로 제공되고, 데이터 센터, 서버 팜(server farms), 콘텐츠 딜리버리 네트워크(CDN) 접속 포인트(POP), 등과 같은, 리소스 센터에 존재한다.
이러한 멀티-테넌트 공유 리소스 환경에서, 다양한 호스트 기계 및 그 위에서 작동하는 가상 기계 인스턴스 간에 인트로스펙션(instrospection) 및/또는 기타 데이터 수집을 수행하는 것이 종종 유용하다. 예를 들어, 하이퍼바이저 또는 커널을 비정상 상태에 진입시키는 소프트웨어 버그 또는 기타 이상 현상이 존재할 수 있다. 일부 경우에, 이러한 비정상 상태는 잠재 고장(latent failure)일 수 있고, 이러한 경우 상황 해결을 위해 아무 것도 하지 않을 경우, 호스트 디바이스 또는 가상 기계 인스턴스가 궁극적으로 고장날 것이다. 이러한 에러들 중 일부를 검출 또는 분석하려면 호스트 디바이스의 구동 하이퍼바이저 및/또는 커널의 메모리를 검사해야만 한다. 그러나, 이러한 구성요소(가령, 하이퍼바이저/커널)은 통상적으로 매우 민감한 정보를 지니고 있고, 이는 리소스 소유자에게 사적이고 보안을 유지하는 것이 중요하다.
다양한 실시예에서, 이러한 민감한 정보에 대한 액세스를 보호하기 위해, 여기서 설명되는 애플리케이션 프로그래밍 인터페이스(API)를 이용하여, 가상 기계의 하이퍼바이저 및/또는 커널에 대해 프리빌리지 작동을 수행(가령, 민감 데이터 불러오기, 업데이트 수행, 등)하기 위한 요청을 제출할 수 있다. 비인가자(가령, 데이터 기술자, 등)의 요청에 대한 액세스 취득을 방지하기 위해, 요청은 서명 및/또는 암호화될 수 있다. 추가적으로, 요청은 요청의 임의의 결과를 암호화하기 위해 하이퍼바이저/커널에 의해 사용될 수 있는 퍼블릭 키를 (가령, 파라미터로) 포함할 수 있다. 따라서, 퍼블릭 키에 대응하는 프라이빗 키를 가진 자는 요청의 결과를 해역할 수 있다. 결과적으로, 요청을 조작 또는 가로챌 수 있는 임의의 중간자(가령, 데이터 기술자)가 요청 결과의 판독 또는 해역이 불가능할 것이다. 요청이 서명될 경우, 요청자의 퍼블릭 키가 요청에 대한 파라미터이고, 서명 내에 덮여 있어서, 퍼블릭 키가 중간자로서 요청을 조작하는 자에 의해 제거 또는 대체될 수 없다.
일부 실시예에서, 결과를 해역할 수 있는 프라이빗 키를 가진 자는 중간자로 하여금 요청을 수행하고 결과를 수집하도록 원래 지시한 자다. 예를 들어, 관리자는 요청을 불러오고 결과를 수집하도록 기술자에게 지시할 수 있고, 이 경우, 관리자는 결과를 해역할 수 있는 프라이빗 키를 소유한다(즉, 기술자는 결과를 판독할 수 없을 것이다). 대안의 실시예에서, 프라이빗 키를 가진 자는 중간자의 결과 수집을 승인한 자와는 다른 자다. 예를 들어, 서비스 제공자의 관리자는 기술자의 요청 발급 및 결과 수집을 승인할 수 있다. 다른 자(가령, 연구자)는 결과 해역에 사용되는 프라이빗 키를 소유할 수 있다. 기술자는 요청을 발급할 수 있으나, 결과 해역을 위한 프라이빗 키가 없어 결과를 판독할 수는 없을 것이다. 마찬가지로, 본 예에서, 관리자는 요청 실행도, 요청 결과 판독도, 승인받지 못할 것이다. 이러한 키 소유권의 다양한 다른 예들도 다양한 실시예의 범위 내에서 가능하다.
일부 실시예에서, 이러한 보안 기법은 서비스 제공자의 네트워크에서 구동되는 다양한 가상 기계 인스턴스에 관한 민감한 데이터의 수집에 사용될 수 있다. 일 실시예에서, 중앙 신뢰 서비스는 리소스 센터 내 모든 호스트 디바이스에 대한 요청을 발생시킬 수 있고, 중앙 서비스는 이러한 요청 내에 퍼블릭 키를 포함할 수 있다. 신뢰불가(untrusted) 구성요소(가령, 중간자)는 그 후, 호스트 디바이스에 이러한 요청들을 분포시킬 수 있고, 국부적으로 요청을 발급할 수 있다. 일부 실시예에서, 동일한 신뢰불가 구성요소는 결과를 수집하여 이들을 중앙 서비스로 전달을 위해 수신한다. 결과는 그 후 중앙 서비스에 도달하면 해역될 수 있다.
일 실시예에서, 서비스 제공자는 고객 신뢰를 위협하지 않으면서 가짜 또는 오용 검출과 같이, 투기적 데이터 수집을 수행하기 위해 보안 기법을 이용할 수 있다. 예를 들어, 가짜 연구자는 특정 호스트 기계를 의심스런 것으로 플래그화할 수 있고, 해당 기계의 모니터링을 개시할 수 있다. 모니터링이 시작될 때, 요청에 의해, 하이퍼바이저가 상세한 커널 또는 하이퍼바이저 정보(즉, 결과)의 수집을 개시할 수 있다. 결과는 그 후, 요청에 포함된 퍼블릭 키를 이용하여 암호화될 수 있다. 후속하여, 프라이빗 키를 소지한 인증자는 수집된 데이터를 해역할 수 있고, 분석을 수행하여, 가짜, 서비스 남용, 등을 결정할 수 있다.
다른 실시예에서, 보안 기법을 이용하여 연속 건강 점검 서비스를 구현할 수 있다. 예를 들어, 특정 호스트 기계가 성능 이상 현상을 나타낼 때, 헬스 서비스는 민감한 고객 데이터를 포함할 수 있는 커널/하이퍼바이저 메모리의 스냅샷을 캡처하는, 그리고 작동 결과를 암호화하는, 요청을 제출할 수 있다. 요청 결과가 암호화되기 때문에, 정보에 부적절하게 액세스할 가능성은 낮다. 일부 실시예에서, 헬스 서비스는 호스트 기계 또는 가상 기계 인스턴스의 랜덤 샘플링 및/또는 프로파일링을 또한 수행할 수 있다. 예를 들어, 서비스는 성능 데이터의 기준선을 획득할 수 있고, 이러한 기준선에 적어도 부분적으로 기초하여 이상 현상을 후에 검출할 수 있다. 다양한 실시예에서, 프로파일은 고객 기반 또는 기계 기반일 수 있고, 절대 임계치를 포함할 수 있으며, 또는, 랜덤화될 수 있다(가령, 주기적으로 다수의 호스트 기계들이 스냅샷용으로 랜덤하게 선택된다).
다양한 실시예에서, 해역 키(가령, 프라이빗 키)가 안전한 위치에 저장된다. 예를 들어, 키는 서비스 제공자의 보안 팀에 의해 유지될 수 있다. 이와 같이, 데이터를 수집하는 자 및 수집 결과를 판독할 수 있는 자는 별개의 실체이며, 심지어 프라이빗 키에 액세스하지 못할 수 있다. 일 실시예에서, 데이터 암호화 키(가령, 퍼블릭 키)는 요청의 일부분이다. 대안의 실시예에서, 모든 호스트 기계가 신뢰하는 단일 키가 존재할 수 있고, 이 키는 커널로 컴파일될 수 있다. 다른 실시예에서, 신뢰 인증 기관(CA0이 존재할 수 있고, 각각의 호스트 기계는 신뢰 CA로부터 인증서를 인출한다.
일부 실시예에서, 고객은 키를 명시하고 서비스 제공자로 하여금 이 키를 이용하여 고객의 VM 인스턴스의 메모리의 암호화된 이미지 덤프를 고객에게 제공할 것을 지시할 수 있다. 메모리의 덤프를 불러들이는 요청은 웹 서비스 API와 같은 API를 이용하여 호스트 컴퓨팅 디바이스(가령, 호스트 컴퓨팅 디바이스의 커널 또는 하이퍼바이저)에 제출될 수 있다. 일 실시예에서, API 요청은 고객-명시 키를 포함할 수 있다. 호스트 컴퓨팅 디바이스의 커널 또는 하이퍼바이저가 호스트 컴퓨팅 디바이스로부터 메모리의 덤프를 통신하기 전에, 메모리 덤프는 고객-명시 키를 이용하여 암호화된다.
도 1은 다양한 실시예에 따라, 하이퍼바이저 또는 커널에 대한 프리빌리지 작동의 결과를 보호하는 예(100)를 도시한다. 도시되는 실시예에서, 요청(107)은 호스트 컴퓨팅 디바이스(101)의 커널(106) 또는 하이퍼바이저(102)에 대한 프리빌리지 작동 수행을 위해 한 세트의 애플리케이션 프로그래밍 인터페이스(API)(108)를 이용하여 제출될 수 있다. 본 실시예에서, 호스트 컴퓨팅 디바이스(101)는 하이퍼바이저(102) 및 프리빌리지 도메인(DOM-0)(105)의 조합으로 도시되는 가상화 층을 포함한다. Dom0(105) 및 하이퍼바이저(102)는 또한, 게스트(115)와 같은, 복수의 게스트에 영향을 미칠 수 있다. 게스트는 가상 기계 인스턴스일 수 있고, 각각은 각자 자체 운영 체제(OS), 커널, 디바이스 드라이버, 스케줄러, 등을 가질 수 있다. Dom-0(105)을 이용하여, 호스트 컴퓨팅 디바이스(101) 상에서 다른 게스트 도메인을 런칭 및 관리할 수 있다. 가상화 층이 이 도면에서 별도의 구성요소인 것으로 도시되지만, 가상화 층의 다른 구현에도 발명의 범위 내에서 가능하다. 예를 들어, Dom0의 기능, 또는 이 기능들의 서브세트, 그리고 하이퍼바이저(102)에 의해 영향받는 것들이, 단일 구성요소로 통합될 수 있다.
일 실시예에 따르면, 요청(107)은 하이퍼바이저/커널의 메모리 위치 판독, 하이퍼바이저/커널의 코드 섹션 수정, 등과 같은 임의의 프리빌리지 작동을 실행하기 위해, 데이터 기술자, 모니터링 서비스, 애플리케이션, 고객, 또는 기타 구성요소에 의해 개시될 수 있다. 요청은 아래 도 2 및 3을 참조하여 설명되는 바와 같이, 서명 및/또는 암호화될 수 있다.
일 실시예에 따르면, 요청(107)은 정보의 암호화에 사용될 수 있는 퍼블릭 키(104)를, 그리고, 요청 및 디지털 시그너처를 제출하는 원칙의 식별자를 (파라미터로) 포함한다. 요청이 커널(106)을 향한다면, 커널은 결과 생성을 위해 프리빌리지 작동을 실행할 수 있고, 그 후, 요청에 포함된 퍼블릭 키(104)를 이용하여 결과(109)를 암호화할 수 있다. 결과(109)는 커널(106) 및/또는 호스트 컴퓨팅 디바이스(101)로부터 전송되기 전에 암호화된다. 마찬가지로, 요청이 하이퍼바이저를 향할 경우, 하이퍼바이저는 결과 생성을 위해 프리빌리지 작동을 실행할 수 있고, 결과가 하이퍼바이저를 떠나기 전에 퍼블릭 키(194)를 이용하여 결과(110)를 암호화할 수 있다.
일부 실시예에서, 요청은 특정 호스트 기계에 구속될 필요가 없다. 그러나, 다른 실시예에서, 요청은 선택된 기계로 한정될 수 있다. 적어도 하나의 실시예에서, 요청은 특정 시간 구간(하루, 일주, 등)으로 한정될 수 있고, 서비스 제공자는 해당 시간 구간 동안 다양한 호스트 기계에 요청을 발급할 수 있는 다수의 사람을 이용할 수 있다. 데이터가 커널 또는 하이퍼바이저를 떠나기 전에 암호화되기 때문에, 호스트 컴퓨팅 디바이스(101) 상에 지속적 방식으로 저장될 경우, 보안 기법은 (신뢰할 수 없는) 데이터 기술자 또는 다른 중간자(112)로 하여금 매우 민감한 콜을 발급하여, 하이퍼바이저/커널 및/또는 기타 보호되는 구성요소로부터 고도로 민감한 정보를 수집하게 할 수 있다. 이러한 요청 결과가 커널/하이퍼바이저를 떠나기 전에 암호화되기 때문에, 중간자(112)는 이러한 결과에 포함될 수 있는 민감한 정보에 대한 액세스를 갖지 않을 것이다. 다양한 실시예에서, 모든 결과적인 데이터는 안전하게 수집 및 저장될 수 있고, 안전한 위치(103)에서 인증된 또는 신뢰 기관들이 안전하게 유지되는 프라이빗 키(111)를 이용함으로써 이 정보를 해역할 수 있다.
도 2는 다양한 실시예에 따라 커널 또는 하이버파이저에 제출되는 요청에 서명하기 위해 비대칭 암호 기법을 이용하는 예(200)를 도시한다. 도시되는 실시예에서, 호스트 컴퓨팅 디바이스(201)는 (하이퍼바이저(202) 및 Dom0(205)의 조합으로 도시되는) 적어도 하나의 가상화 층 및 하나 이상의 게스트(211)를 포함한다. 게스트는 가상 기계 인스턴스일 수 있고, 각각은 고유한 각자의 운영 체제(OS), 커널, 디바이스 드라이버, 스케쥴러, 등을 가진다.
일 실시예에 따르면, 호스트 컴퓨팅 디바이스(201)는 커널(가령, Dom-0 커널) 또는 하이퍼바이저(202)에 대한 프리빌리지 작동 수행을 위해 서명된 및/또는 암호화된 요청의 제출에 사용될 수 있는 한 세트의 API(208)를 제공한다. 프리빌리지 작동은 메모리 내 일 위치를 판독할 수 있고, 또는, 하이퍼바이저(202) 및/또는 커널(206)로 하여금 하나 이상의 결과를 발생시킬 수 있다. API 요청이 암호화될 수 있기 때문에, 커널/하이퍼바이저 외부의 중간자들은 프라이빗 키 소지없이는 암호화된 요청을 판독할 수 없을 것이고, 어떤 요청이 수행될 것인지 알지 못할 것이다. 추가적으로, 암호화된 요청은 결과가 커널/하이퍼바이저로부터 전송되기 전에 요청 결과의 암호화에 사용될 수 있는 퍼블릭 키를 포함할 수 있다.
도시되는 실시예에 따르면, API의 요청은 프라이빗 키 및 퍼블릭 키를 포함하는 비대칭 키 상을 이용하여 서명 및 검증될 수 있다. 일 실시예에서, (가령, 결과 암호화를 위한 퍼블릭 키를 포함한) API 콜에 대한 아규먼트의 적어도 일부(또는 전부)가 정규화 및 시리얼화된다. 이 스트링은 그 후, 해시-기반 메시지 승인 코드(HMAC) 또는 비대칭 암호 기법을 통해 서명될 수 있고, API(208)에 전송될 수 있다. API에 대한 파라미터가 시그너처에 포함되기 때문에, 요청을 획득한 잠재적 공격자는 요청을 변경할 수 없을 것이고, 요청으로부터 퍼블릭 키를 제거하거나 다른 키로 대체할 수 없을 것이다.
일부 실시예에 따르면, 요청은 시간스탬프를 지녀서, 시간 구간 기반 리플레이 보호를 제공할 수 있고, 이 경우, 요청은 제한된 지속시간 동안만 유효하게 남는다. 일부 실시예에서, 요청은 시리얼 넘버 또는 호스트 기계 식별자(ID)와 같이, 호스트 컴퓨팅 디바이스(201)와 구체적으로 연관된 고유 값을 포함할 수 있다. 이 값들이 비밀이 아닐 수 있지만, 이들을 포함시킴으로써, 특정 호스트 컴퓨팅 디바이스(201)에 요청을 묶을 수 있다. 이러한 경우에, 잠재적 공격자가 다른 호스트 컴퓨팅 디바이스에 대해 요청을 리플레이하지 못하게 된다. 일부 실시예에서, 요청은 호스트 컴퓨팅 디바이스(201)에 묶는 힘을 증가시키기 위해, 호스트 컴퓨팅 디바이스(201)에서 신뢰 플랫폼 모듈(TPM)(도시되지 않음)에 의해 인증될 수 있다.
도시되는 실시예에 따르면, API 요청의 서명에 사용되는 프라이빗 키(204)는 요청을 취급할 호스트 컴퓨팅 디바이스(201) 상에 존재하지 않는다. 대신에, 프라이빗 키(204)는 서비스 제공자의 네트워크(202) 상의 안전한 위치(203)에, 또는 다른 신뢰 위치에 저장될 수 있다. 그 결과, 호스트 컴퓨팅 디바이스(201) 상에 악성 에이전트가 존재할 경우, 이들이 프라이빗 키(204)를 이용하여 요청을 변조할 수 없을 것이다.
호스트 컴퓨팅 디바이스(201)는 프라이빗 키(204)를 이용하여 서명된 요청의 시그너처의 검증에 사용될 수 있는 퍼블릭 키를 포함할 수 있다. 일 실시예에서, 퍼블릭 키(207)는 호스트 컴퓨팅 디바이스(201)의 커널(206)에 컴파일될 수 있다. 다른 실시예에서, 퍼블릭 키(209)는 하이퍼바이저(202)에 컴파일될 수 있다. 일부 실시예에서, 커널(206)은 하이퍼바이저(202) 상에 저장되는 퍼블릭 키(209)와는 다른 퍼블릭 키(207)를 저장할 수 있고, 다른 실시예에서, 하이퍼바이저(202) 및 커널(206) 모두에 대한 요청의 검증에 동일한 퍼블릭 키가 사용될 수 있다. 또 다른 실시예에서, 호스트 컴퓨팅 디바이스(201) 상에 실제 퍼블릭 키를 저장하기보다는, 대신에, 호스트 컴퓨팅 디바이스(201)는 특정 인증 기관(Ca)에 의해 인증되는 임의의 퍼블릭 키를 신뢰하도록 구성될 수 있다. 이러한 실시예에서, 호스트 컴퓨팅 디바이스(201)는 요청자로부터 요청을 수신할 수 있고, 이 요청은 퍼블릭 키를 포함하는 인증서를 동반한다. 호스트 컴퓨팅 디바이스(201)는 CA의 인증서를 신뢰할 것이고, 따라서, 요청의 일부분으로 수신되는 퍼블릭 키를 신뢰한다. 퍼블릭 키가 호스트 컴퓨팅 디바이스 상에 저장되는지 또는 인증서와 함께 제공되는지 여부에 관계없이, 퍼블릭 키는 프라이빗 키(204)를 이용하여 서명된 API 요청의 검증에 사용될 수 있다. 예를 들어, 사용자(가령, 고객, 서비스 제공자 기술자, 제3자, 등)가 커널(206) 상의 코드의 일부분에 업데이트를 적용하고자 할 경우, 이들은 프라이빗 키(204)에 대한 액세스를 얻을 수 있고, 프라이빗 키를 이용하여 API 요청에 서명하여 코드의 적절한 부분을 수정할 수 있다. 요청 수신시, 커널(206)은 퍼블릭 키를 이용하여 요청의 검증을 시도할 수 있고, 검증이 성공적일 경우, 필요한 프리빌리지 작동을 실행할 수 있다.
대안의 실시예에서(도시되지 않음), HMAC 및 대칭 키가 이용될 경우, 프라이빗 키는 커널(206) 또는 하이퍼바이저(202)에 컴파일될 수 있다. 이러한 경우에, 프라이빗 키는 난독화될 수 있고, 매 빌드로 변경될 수 있으나, 키는 호스트 컴퓨팅 디바이스(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)로부터 퍼블릭 키를 신뢰가능하게 얻을 수 있을 경우, 호스트 컴퓨팅 디바이스를 절대 떠나지 않은 프라이빗 키(307, 313)에 의해서만 해역될 수 있는 퍼블릭 키(309, 314)를 이용함으로써 요청이 서명되기 때문에, 퍼블릭 키를 이용하여 서명된 요청이 상기 호스트 컴퓨팅 디바이스(301)로(만) 진행될 것임을 보장할 수 있다. 도 3이 커널(306) 및 가상화 층(302) 모두가 고유한 각자의 키 쌍을 발급하는 예를 도시하고 있으나, 이는 모든 실시예에 대한 요건 또는 제한사항이 아니다. 일부 실시예에서, 하이퍼바이저만이 키 쌍을 발급한다. 다른 실시예에서, 커널만이 키 쌍을 발급한다. 또 다른 실시예에서, 하이퍼바이저 및 커널이 키 쌍을 공유한다.
일부 실시예에서, 호스트 컴퓨팅 디바이스(301)는 인증 기관(CA)(310)에 요청의 서명에 사용되는 퍼블릭 키(309)를 제공할 수 있다. CA(310)는 적절한 요청자(가령, 서명자(311))에게 하나 이상의 디지털 인증서(312, 315)를 발급하는 실체일 수 있다. 디지털 인증서는 해당 자가 API 요청 서명에 사용될 수 있는 퍼블릭 키를 적절히 소유함을 인증한다. 이러한 실시예에서, CA를 이용함으로써, 요청자는 프라이빗 키가 역시 호스트 컴퓨팅 디바이스(301) 용임을, 어느 정도의 확실성과 함께, 믿을 수 있다. 일 실시예에서, CA는 서비스 제공자용 CA로서, 서비스 제공자의 리소스 센터 내에서 작동한다. 리소스 센터는 아래에서 도 4를 참조하여 더 상세하게 설명된다. 다른 실시예에서, CA(310)는 인증서에 의존하는 요청자(311) 및 호스트 컴퓨팅 디바이스(301) 모두에 의해 신뢰되는 제3자 신뢰 기관이다. 인증 기관은 당 분야에 잘 알려져 있고, 많은 퍼블릭 키 인프러스트럭처(PKI) 기법에 사용되고 있다.
본 실시예에서, CA(310)가 요청자(311)에게 인증서(312)를 발급하면, 요청자(311)는 인증서를 이용하여 API 요청으로 하여금 커널(306) 또는 하이퍼바이저(302)의 범주에서 프리빌리지 작동을 실행하게 할 수 있다. 하이퍼바이저(302) 또는 커널(306)은 그 후, 특정 당사자에게 발급된 특정 CA에 의해 서명되는 임의의 인증서가 유효한 것이고 따라서 프리빌리지 작동을 실행할 수 있는 것임을 검증할 수 있다.
일부 실시예에서, 인증 기관(310)은 앞서 설명한 바와 같이, 요청 결과의 서명에 사용될 퍼블릭 키에 대한 인증서를 또한 제공할 수 있다. 예를 들어, 서비스 제공자(가령, 데이터 기술자)의 고용인이 호스트 컴퓨팅 디바이스(301) 상의 커널/하이퍼바이저에 민감한 요청을 제출할 필요가 있을 때, 데이터 기술자는 첫번째로 CA(310)로부터 인증서를 획득활 수 있다. 그 후 이 인증서를 이용하여 데이터 기술자에 의한 퍼블릭 키의 소유권을 인증할 수 있다. 유사한 방식으로, 모니터링 서비스와 같은 자동화 구성요소가 CA(310)를 또한 이용하여, 여기서 설명되는 바와 같이, 하나 이상의 인증서를 획득할 수 있다.
다양한 실시예에서, 도 3에 도시되는 기술이 도 2에 도시되는 기술과 연계하여 사용될 수 있다. 예를 들어, 도 3의 요청자(311)는 고유 프라이빗 키를 가질 수 있고, 요청자를 이를 이용하여 프리빌리지 작동의 실행을 위한 요청에 서명한다. 본 실시예에서, 요청은 정품성 보장을 위해 서명되고(호스트 컴퓨팅 디바이스는 요청자가 요청을 발생시켰음을 확실하게 할 것임) 프라이버시 보장을 위해 암호화된다(즉, 어떤 외부자도 요청에 포함된 정보를 해역할 수 없음).
도 4는 다양한 실시예에 따라, 서비스 제공자의 리소스 센터 환경의 예(400)를 도시한다. 도시되는 실시예에서, 서비스 제공자(가령, 클라우드 컴퓨팅 리소스 제공자)는 서비스 제공자의 물리적 리소스(가령, 호스트 서버, 등)를 저장하는 하나 이상의 리소스 센터(423)(가령, 데이터 센터, 서버 팜, 등)를 유지할 수 있다. 이러한 물리적 리소스를 이용하여, 인터넷과 같은 네트워크(402)를 통해 사용자(401)에게 제공될 수 있는 다수의 가상 기계 인스턴스 또는 가상 서버를 호스팅할 수 있다. 예를 들어, 사용자가 서비스 제공자의 물리적 리소스를 이용하여 애플리케이션을 실행하고자 할 때, 서비스 제공자는 사용자에 대한 가상 기계를 프로비저닝할 것을 서비스 제공자에게 요청할 수 있고, 이는 애플리케이션의 배치 및 실행에 사용될 것이다. 사용자의 애플리케이션에 대한 수요가 증가함에 따라, 사용자는 더 많은 가상 기계들이 로브 밸런스를 위해 프로비저닝됨을 요청할 수 있고, 하나 이상의 가상 기계 네트워크(VPN)의 생성을 요청할 수 있으며, 등등이다.
도시되는 예에서, 서비스 제공자의 리소스 센터(423)는 호스트 컴퓨팅 디바이스(406, 407, 408, 409, 410)의 하나 이상의 랙(wrack)(421, 422)을 포함할 수 있고, 특정 랙 상의 각각의 호스트 컴퓨팅 디바이스는 단일 탑-오브-랙(TOR) 스위치(404, 405)에 연결된다. 이러한 TOR 스위치는 호스트 컴퓨팅 디바이스를 네트워크에 연결시키는 하나 이상의 다른 스위치(424, 425)에 또한 연결될 수 있다. 본 명세서 전체에 사용되듯이, 네트워크는 서로 통신할 수 있는 디바이스들의 임의의 유선 또는 무선 네트워크일 수 있고, 인터넷 또는 다른 광역 네트워크(WAN), 셀룰러 네트워크, 근거리 네트워크(LAN), 저장 영역 네트워크(SAN), 인트라넷, 엑스트라넷, 등을 포함한다. 리소스 센터는 데이터 센터, 서버 팜, 콘텐츠 딜리버리 네트워크(CDN) 접속 지점(POP), 등과 같은 리소스들의 임의의 논리적 또는 물리적 그룹을 포함할 수 있다.
일 실시예에 따르면, 각각의 호스트 컴퓨팅 디바이스는 고객들을 대신하여 다양한 애플리케이션 및 서비스를 실행하도록 서비스 제공자의 고객을 위해 프로비저닝되고 있는 하나 이상의 가상 기계 인스턴스(413, 414, 415, 416, 417, 418, 419)를 호스팅할 수 있다. 각각의 가상 기계는 커널, 드라이버, 프로세스 관리, 등을 포함한 자체 운영 체제(OS)를 제공받을 수 있다.
고객이 가상 기계 인스턴스를 획득하고자 할 때, 고객은 첫번째로 서비스 제공자에 요청을 제출하여, 고객이 사용하고자 하는 VM의 타입을 표시할 수 있다. 서비스 제공자는 서비스 제공자의 물리적 리소스(가령, 호스트 컴퓨팅 디바이스) 상에서 호스팅될 가상 기계 인스턴스를 프로비저닝하기 위한 프로세스를 수행할 수 있다. 그 후 가상 기계 인스턴스를 이용하여, 고객 대신에 다양한 애플리케이션 및 서비스를 실행할 수 있고, 서비스 제공자의 리소스를 이용할 수 있다.
일 실시예에 따르면, 가상 기계 인스턴스가 업 상태로 구동되면, VM의 커널 또는 하이퍼바이저의 코드에 수정을 가할 필요가 있을 수 있다. 예를 들어, 서비스 제공자는 호스트 기계 상에서 VM을 호스팅하는 하이퍼바이저의 코드로 업데이트 또는 패치 적용을 원할 수 있다. 대안으로서, 고객(또는 일부 다른 제3자)가 VM의 커널의 코드에 대한 업데이트 적용을 원할 수 있다. 다양한 실시예에서, 본 명세서 전체에서 설명되는 API는 비대칭(또는 대칭) 암호 기법을 이용함으로서 안전한 방식으로 사용자가 코드를 수정할 수 있게 한다. 추가적으로, 이러한 API 요청의 결과는 여기서 설명되는 보안 기법을 이용함으로써 커널/하이퍼바이저 외부로 전송되기 전에 암호화될 수 있다.
도 5는 다양한 실시예에 따라, 하이퍼바이저 또는 커널에서 프리빌리지 작동을 실행하기 위한 요청의 결과를 보호하기 위한 예시적 프로세스(500)를 도시한다. 이 도면이 특정 시퀀스의 기능적 작동을 설명할 수 있으나, 프로세스는 반드시 도시되는 특정 순서 또는 작동으로 제한되지 않는다. 당 업자는 본 도면 또는 다른 도면에 그려진 다양한 작동들이 변경, 재배열, 병렬 수행, 또는 다양한 방식으로 적응될 수 있음을 이해할 것이다. 더욱이, 다양한 실시예의 범위로부터 벗어나지 않으면서, 소정의 작동 또는 작동들의 시퀀스가 프로세스에 추가되거나 프로세스로부터 생략될 수 있다. 추가적으로, 여기 포함된 프로세스 도해는 코드 실행의 실제 시퀀스를 명시하는 것보다는, 당 업자 중 하나에 프로세스 흐름의 개념을 보여주고자 하는 것이며, 이는 다른 흐름 또는 시퀀스로 구현될 수 있고, 성능을 위해 최적화될 수 있으며, 그렇지 않을 경우, 다양한 방식으로 수정될 수 있다.
작동(501)에서, 인터페이스(가령, API)는 호스트 컴퓨팅 디바이스에 의해 제공된다. 이 인터페이스는 하이퍼바이저와, 커널을 가진 하나 이상의 가상 기계 인스턴스와 같이, 보호되는 구성요소를 포함할 수 있는 호스트 컴퓨팅 디바이스에 서명된 및/또는 암호화된 요청을 제출하는데 사용될 수 있다.
작동(502)에서, 퍼블릭 키는 하이퍼바이저 및/또는 커널에 대한 프리빌리지 작동을 수행하기 위해 요청(가령, API 요청) 내 파라미터로 포함된다. 퍼블릭 키를 이용하여 요청의 결과를 암호화할 것이다. 일부 실시예에서, 요청 자체가 암호화될 수 있다. 전체 요청이 암호화되는 이러한 실시예에서, 키는 실제 요청의 해역에 사용되는 퍼블릭 키와는 다를 수 있다. 다른 실시예에서, 키는 요청의 해역에 사용되는 키와 동일한 키일 수 있다. 어느 경우에도, 요청에 포함된 키를 이용하여, 커널/하이퍼바이저에 의해 실행되는 프리빌리지 작동의 결과를 해역할 수 있다.
작동(503)에서, 파라미터로 포함되는 키를 가진 요청은, 호스트 컴퓨팅 디바이스 상의 하이퍼바이저 또는 커널에 제출된다. 작동(504)에서, 하이퍼바이저 및/또는 커널은 요청을 해역하고 프리빌리지 작동을 수행하여 호스트 컴퓨팅 디바이스 상에 한 세트의 결과를 생성할 수 있다. 예를 들어, API가 웹-서비스 API인 실시예에서, 가령, 가상화 층 내의, 호스트 컴퓨팅 디바이스 상에서 구동되는 웹 서버는 API 콜을 수신할 수 있고, 이는 본 구체예에서, 웹 서비스 API 콜이다. 웹 서버는 요청을 인증할 수 있고, 프리빌리지 작동을 불러올 수 있다.
작동(505)에서, 커널/하이퍼바이저에 의해 생성된 결과는, 결과가 커널/하이퍼바이저 외부로 전송되기 전에, 요청에 포함된 퍼블릭 키를 이용하여 암호화된다. 예를 들어, 요청이 데이터 기술자 또는 모니터링 서비스에 제공되기 전에, 결과가 암호화되고, 따라서, 데이터 기술자 또는 모니터링 서비스가, 정확한 프라이빗 키에 대한 액세스를 갖지 못할 경우, 요청 결과를 판독할 수 없게 된다.
작동(506)에서, 결과는 서비스 제공자의 내부 네트워크 상의 원격 네트워크 위치와 같은, 보호받는 위치로 전달된다. 일 실시예에 따르면, 보호되는 위치는 퍼블릭 키를 이용하여 암호화된 결과의 해역에 사용될 수 있는 프라이빗 키를 저장한다. 작동(507)에서, 결과는 프라이빗 키를 이용하여, 인증된 자에 의해 해역된다.
요청이 도 5에서 암호화되지만, 이는 여기서 설명되는 모든 실시예에 대한 제한사항이 아니다. 일부 대안의 실시예에서, 요청은 인가된 실체의 프라이빗 키를 이용하여서만 서명될 수 있다. 이러한 실시예에서, 요청에 포함된 퍼블릭 키는 요청과 연관된 시그너처의 일부분이고, 따라서, 비인가 실체에 의해 제거될 수 없다. 다른 실시예에서, 요청은 서명되지 않고 또는 암호화되지 않는다.
도 6은 다양한 실시예에 따라, 하이퍼바이저 또는 커널에서 프리빌리지 작동의 수행에 사용될 수 있는 API를 제공하기 위한 예시적 프로세스(600)를 도시한다.
작동(601)에서, 하나 이상의 애플리케이션 프로그래밍 인터페이스(API)가 제공되며, 이를 이용하여 호스트 컴퓨팅 디바이스에 서명된 요청을 제출할 수 있다. 호스트 컴퓨팅 디바이스는 가상화 층(가령, 하이퍼바이저와 연계하여 작동하는 Dom0 또는 가상 기계 모니터) 및 하나 이상의 게스트(가령, 운영 체제 커널을 가진 게스트 운영 체제를 구동하는 가상 기계) 를 포함할 수 있다.
작동(602)에서, 비대칭 키 상이 발생되며, 프라이빗 키 및 대응하는 퍼블릭 키를 포함한다. 프라이빗 키를 이용하여 정보를 암호화할 수 있고, 프라이빗 키 이용하여 암호화된 정보를 퍼블릭 키를 이용하여 해역할 수 있다.
작동(603)에서, 퍼블릭 키가 호스트 컴퓨팅 디바이스 상에 저장된다. 예를 들어, 퍼블릭 키는 운영 체제의 커널 또는 하이퍼바이저에 컴파일될 수 있다. 대안으로서, 키가 호스트 컴퓨팅 디바이스의 신뢰되는 플랫폼 모듈(TPM)에 저장될 수 있다.
작동(605)에서, 프라이빗 키는 호스트 컴퓨팅 디바이스에 대해 외부에 위치한 안전한 위치에 저장된다. 본 실시예에서, 프라이빗 키는 호스트 컴퓨팅 디바이스 상에 존재하지 않으며, 따라서 그 위에 위치하는 악성 에이전트가 프라이빗 키에 대한 액세스를 가지지 못할 것이다.
작동(605)에서, 호스트 컴퓨팅 디바이스는 API를 통해 요청을 수신하여, 하이퍼바이저 및/또는 운영 체제 커널에 대한 프리빌리지 작동을 실행할 것을 요청한다. 일 실시예에 따르면, 수신된 요청이 프라이빗 키를 이용하여 서명된다.
작동(606)에서, 호스트 컴퓨팅 디바이스(가령, 커널 또는 하이퍼바이저)는 호스트 컴퓨팅 디바이스 상에 저장되는 퍼블릭 키를 이용하여 요청의 시그너처를 비준하려 시도한다. 요청의 시그너처가 성공적으로 비준될 경우, 작동(607)에 도시되는 바와 같이, 프리빌리지 작동이 하이퍼바이저/커널 상에서 실행될 수 있다. 시그너처가 퍼블릭 키를 이용하여 성공적으로 비준될 수 없는 경우, 프리빌리지 작동이 실패한다(즉, 실행되지 않는다).
도 7은 다양한 실시예에 따라, 요청의 암호화를 이용하기 위한 예시적 프로세스(700)를 도시한다. 작동(701)에서, 호스트 컴퓨팅 디바이스는 비대칭 키 쌍을 발생시킨다. 예를 들어, 호스트 컴퓨팅 디바이스 상의 부트 프로세스는 퍼블릭 키 및 대응하는 프라이빗 키를 발생시킬 수 있다. 작동(702)에서, 퍼블릭 키는 신뢰 소스에게 공개된다. 일 실시예에서, 퍼블릭 키는 요청 암호화를 위해 퍼블릭 키를 이용하는 요청자에게 직접 제공될 수 있다. 다른 실시예에서, 퍼블릭 키는 인증 기관에 제공될 수 있고, 인증 기관은 커널 또는 하이퍼바이저 상에 프리빌리지 작동을 수행하고자할 수 있는 인가자들에게 인증서를 허가할 수 있다. 본 실시예에서, 인증 기관은 인증서에 퍼블릭 키를 내장할 수 있고, 자체 프라이빗 키를 이용하여 인증서에 서명할 수 있다. 따라서, 인증서를 수신하는 자는 퍼블릭 키가 호스트 컴퓨팅 디바이스로부터 퍼블릭 키인 것임이 CA에 의해 인증됨을 검증할 수 있다.
작동(703)에서, 호스트 컴퓨팅 디바이스는 프리빌리지 작동을 수행하기 위한 요청을 수신한다. 호스트 컴퓨팅 디바이스는 그 후 작동(704)에 도시되는 바와 같이, 호스트 컴퓨팅 디바이스 상에 저장된 프라이빗 키를 이용하여 요청 해셕을 시도한다. 요청이 프라이빗 키를 이용함으로서 해석될 수 있을 경우, 호스트 컴퓨팅 디바이스는 작동(705)에 도시되는 바와 같이, 커널/하이퍼바이저 상에서 프리빌리지 작동을 실행할 수 있다.
발명의 다양한 실시예는 다음의 항들에 입각하여 설명될 수 있다.
1. 가상화된 컴퓨팅 환경에서 데이터를 보호하기 위한 컴퓨터-구현 방법에 있어서, 상기 방법은,
실행가능 명령어로 구성되는 하나 이상의 컴퓨터 시스템의 제어 하에,
하이퍼바이저 또는 커널 중 적어도 하나를 포함하는 호스트 컴퓨팅 디바이스 상에서 API 요처을 수신하기 위한 인터페이스를 제공하는 단계와,
상기 하이퍼바이저 또는 커널 상에서 프리빌리지 작동을 수행하기 위한 요청을 상기 호스트 컴퓨팅 디바이스에 의해 수신하는 단계 - 상기 요청은 제 1 키를 이용하여 암호화되고, 상기 요청은 상기 요청과 함께 파라미터로 제 2 키를 포함하며, 상기 제 2 키는 정보의 암호화에 사용될 수 있고, 상기 하이퍼바이저 또는 커널은 상기 요청을 해역하고 프리빌리지 작동을 수행하여 상기 호스트 컴퓨팅 디바이스의 한 세트의 결과를 생성하도록 구성됨 - 와,
상기 요청과 함께 제공되는 상기 제 2 키를 이용함으로써, 상기 한 세트의 결과를 상기 하이퍼바이저 또는 커널에 의해 암호화하는 단계 - 상기 한 세트의 결과는 상기 한 세트의 결과가 상기 하이퍼바이저 또는 커널로부터 외부로 전송되기 전에 암호화됨 - 를 포함하는
컴퓨터-구현 방법.
2. 제 1 항에 있어서,
상기 호스트 컴퓨팅 디바이스에 대해 외부의 위치에 상기 제 2 키로 암호화된 상기 한 세트의 결과를 전송하는 단계와,
프라이빗 키를 이용하여 상기 한 세트의 결과를 해역하는 단계를 포함하는
컴퓨터-구현 방법.
3. 제 1 항에 있어서, 상기 요청은 복수의 호스트 컴퓨팅 디바이스를 모니터링하도록 구성되는 모니터링 서비스에 의해 발급되고, 각각의 호스트 컴퓨팅 디바이스는 하나 이상의 가상 기계 인스턴스를 관리하는 하이퍼바이저를 포함하는
컴퓨터-구현 방법.
4. 제 1 항에 있어서, 상기 프리빌리지 작동은,
상기 호스트 컴퓨팅 디바이스 상의 메모리 내 위치를 판독하는 단계 - 상기 위치는 가상 기계 매니저 또는 커널 중 적어도 하나와 연관됨 - 를 포함하는
컴퓨터-구현 방법.
5. 실행가능 명령어로 구성된 하나 이상의 컴퓨터 시스템의 제어 하에,
호스트 컴퓨팅 디바이스의 가상화 층 상에 프리빌리지 작동을 수행하기 위한 요청을 발생시키는 단계와,
퍼블릭 키를 획득하여 상기 요청에 퍼블릭 키를 포함시키는 단계 - 상기 퍼블릭 키는 정보 암호화에 사용될 수 있고, 상기 퍼블릭 키는 상기 퍼블릭 키를 이용하여 암호화되는 정보의 해역에 사용될 수 있는, 대응하는 프라이빗 키를 가짐 - 와,
상기 호스트 컴퓨팅 디바이스의 가상화 층에 상기 퍼블릭 키를 포함하는 요청을 제출하는 단계 - 상기 가상화 층은 결과 생성을 위해 프리빌리지 작동을 실행하도록 구성됨 - 를 포함하며,
상기 가상화 층은 상기 요청과 함께 제공되는 퍼블릭 키를 이용함으로써 상기 프리빌리지 작동의 결과를 암호화하도록 구성되는
컴퓨터-구현 방법.
6. 제 5 항에 있어서, 상기 가상화 층은 상기 호스트 컴퓨팅 디바이스의 가상화 층 외부로 결과가 전송되기 전에 결과를 암호화하도록 구성되는, 컴퓨터-구현 방법.
7. 제 5 항에 있어서, 상기 가상화 층은 상기 호스트 컴퓨팅 디바이스에 대해 외부의 위치에 암호화된 결과를 전송하도록 구성되고, 암호화된 결과는 프라이빗 키를 이용함으로써 상기 위치에서 해역되는, 컴퓨터-구현 방법.
8. 제 5 항에 있어서, 상기 프리빌리지 작동의 수행을 위한 요청은 제 2 키를 이용하여 암호화되고, 상기 요청은 상기 가상화 층에 의해 해역가능한, 컴퓨터-구현 방법.
9. 제 5 항에 있어서, 상기 프리빌리지 작동의 수행을 위한 요청은 서비스 프라이빗 키를 이용하여 서명되고, 상기 요청의 시그너처는 서비스 퍼블릭 키를 이용하여 상기 가상화 층에 의해 검증가능한, 컴퓨터-구현 방법.
10. 제 9 항에 있어서, 인증 기관(CA)으로부터 서비스 퍼블릭 키를 포함하는 인증서를 획득하는 단계를 더 포함하는, 컴퓨터-구현 방법.
11. 제 5 항에 있어서,
상기 퍼블릭 키를 획득하는 단계는, 상기 퍼블릭 키의 소유권을 인증하는 적어도 하나의 인증서를 인증 기관(CA)을 이용하여 획득하는 단계를 더 포함하는, 컴퓨터-구현 방법.
12. 제 5 항에 있어서, 상기 요청은 복수의 호스트 컴퓨팅 디바이스를 모니터링하는 모니터링 서비스에 의해 발생되는, 컴퓨터-구현 방법.
13. 제 12 항에 있어서,
복수의 호스트 컴퓨팅 디바이스 중 적어도 하나와 연관된 프로파일에 적어도 부분적으로 기초하여, 복수의 호스트 컴퓨팅 디바이스 중 적어도 하나가 비정상적으로 작동하고 있음을 모니터링 서비스에 의해 검출하는 단계를 더 포함하는, 컴퓨터-구현 방법.
14. 제 5 항에 있어서, 상기 요청이 지정된 시간 구간으로 제한되는, 컴퓨터-구현 방법.
15. 제 5 항에 있어서, 상기 프리빌리지 작동은 상기 호스트 컴퓨팅 디바이스 상의 가상화 층의 러닝 메모리 이미지를 수정하는, 컴퓨터-구현 방법.
16. 제 5 항에 있어서, 상기 프리빌리지 작동은, 상기 호스트 컴퓨팅 디바이스 상의 메모리 내 위치를 판독하는 단계 - 상기 위치는 상기 가상화 층과 연관됨 - 를 더 포함하는, 컴퓨터-구현 방법.
17. 적어도 하나의 프로세서를 포함하는 제 1 컴퓨터 시스템과,
명령어를 포함하는 메모리를 포함하되,
상기 명령어는, 상기 적어도 하나의 프로세서에 의해 실행될 때, 컴퓨터 시스템으로 하여금,
호스트 컴퓨팅 디바이스의 가상화 층 상에 프리빌리지 작동을 수행하기 위한 요청을 신뢰 기관으로부터 수신하게 하기 위한 명령어 - 상기 요청은 퍼블릭 키를 포함하고, 상기 퍼블릭 키는 정보의 암호화에 사용될 수 있으며, 상기 퍼블릭 키는 상기 퍼블릭 키를 이용하여 암호화되는 정보의 해역에 사용될 수 있음 - 와,
상기 호스트 컴퓨팅 디바이스의 애플리케이션 프로그래밍 인터페이스(API)에 상기 요청을 발급하게 하는 명령어 - 상기 가상화 층은 프리빌리지 작동을 실행하여 결과를 생성하고 상기 요청과 함께 제공되는 퍼블릭 키를 이용하여 결과를 암호화하도록 구성됨 - 를 포함하는,
시스템.
18. 제 17 항에 있어서,
호스트 컴퓨팅 디바이스를 더 포함하고,
상기 호스트 컴퓨팅 디바이스는 명령어를 포함하는 메모리 및 적어도 하나의 프로세서를 포함하며, 상기 명령어는, 실행될 때 상기 호스트 컴퓨팅 디바이스로 하여금,
프리빌리지 작동을 실행하게 하는 명령어와,
상기 요청과 함께 제공되는 퍼블릭 키를 이용하여 결과를 암호화하게 하는 명령어와,
상기 지정된 위치에 암호화된 결과를 저장하게 하는 명령어를 포함하는
시스템.
19. 제 18 항에 있어서,
상기 호스트 컴퓨팅 디바이스는 상기 결과가 가상화 층으로부터 전송되기 전에 상기 결과를 암호화하도록 구성되는, 시스템.
20. 제 17 항에 있어서, 프리빌리지 작동을 수행하기 위한 요청은 제 2 키를 이용하여 암호화되고, 상기 요청은 상기 가상화 층에 의해 해역되는, 시스템.
21. 적어도 하나의 프로세서와, 명령어를 포함하는 메모리를 포함하는 컴퓨팅 시스템에 있어서, 상기 명령어는 적어도 하나의 프로세서에 의해 실행될 때, 컴퓨팅 시스템으로 하여금,
호스트 컴퓨팅 디바이스의 가상화 층 상에서 프리빌리지 작동을 수행하기 위한 요청을 수신하게 하는 명령어 - 상기 요청은 퍼블릭 키를 포함하고, 상기 퍼블릭 키는 정보 암호화에 사용될 수 있으며, 상기 퍼블릭 키는 상기 퍼블릭 키를 이용하여 암호화되는 정보의 해역에 사용될 수 있는 대응하는 프라이빗 키를 가짐 - 와,
결과를 생성하도록 상기 호스트 컴퓨팅 디바이스의 가상화 층 내에서 상기 요청을 실행하게 하는 명령어와,
상기 요청과 함께 제공되는 퍼블릭 키를 이용함으로써 상기 프리빌리지 작동의 결과를 암호화시키는 명령어를 포함하는
컴퓨팅 시스템.
22. 제 21 항에 있어서, 상기 메모리는 명령어를 더 포함하고, 상기 명령어는 상기 컴퓨팅 시스템으로 하여금,
상기 호스트 컴퓨팅 디바이스에 대해 외부의 위치에 암호화된 결과를 전송하게 하는 명령어를 포함하고,
상기 결과는 상기 프라이빗 키를 이용함으로써 해역가능한, 컴퓨팅 시스템.
23. 제 21 항에 있어서, 상기 프리빌리지 작동을 수행하기 위한 요청은, 제 2 키를 이용하여 암호화되고, 상기 요청은 가상화 층에 의해 해역가능한, 컴퓨팅 시스템.
24. 하나 이상의 프로세서에 의해 실행가능한 명령어들의 하나 이상의 시퀀스를 저장하는 비일시적 컴퓨터 판독가능 저장 매체에 있어서, 상기 명령어는,
호스트 컴퓨팅 디바이스의 가상화 층 상에서 프리빌리지 작동을 수행하기 위한 요청을 수신하게 하는 명령어 - 상기 요청은 퍼블릭 키를 포함하고, 상기 퍼블릭 키는 정보 암호화에 사용될 수 있으며, 상기 퍼블릭 키는 상기 퍼블릭 키를 이용하여 암호화되는 정보의 해역에 사용될 수 있는 대응하는 프라이빗 키를 가짐 - 와,
결과를 생성하도록 상기 호스트 컴퓨팅 디바이스의 가상화 층 내에서 상기 요청을 실행하게 하는 명령어와,
상기 요청과 함께 제공되는 퍼블릭 키를 이용함으로써 상기 프리빌리지 작동의 결과를 암호화시키는 명령어를 포함하는
비일시적 컴퓨터 판독가능 저장 매체.
25. 제 24 항에 있어서, 하나 이상의 프로세서로 하여금
상기 호스트 컴퓨팅 디바이스에 대해 외부의 위치에 암호화된 결과를 전송하게 하는 명령어 - 상기 위치는 상기 프라이빗 키를 저장함 - 와,
상기 프라이빗 키를 이용함으로써 상기 위치에서 상기 결과를 해역하게 하는 명령어를 더 포함하는
비일시적 컴퓨터 판독가능 저장 매체.
26. 제 24 항에 있어서,
상기 프리빌리지 작동을 수행하기 위한 요청이 제 2 키를 이용하여 암호화되고, 상기 요청은 가상화 층에 의해 해역되는, 비일시적 컴퓨터 판독가능 저장 매체.
27. 제 24 항에 있어서,
상기 결과가 호스트 컴퓨팅 디바이스로부터 외부 위치로 전송되기 전에 상기 가상화 층에서 상기 결과가 암호화되는, 비일시적 컴퓨터 판독가능 저장 매체.
도 8은 예시적 컴퓨팅 디바이스(800)의 한 세트의 범용 구성요소들의 논리적 배열을 도시한다. 본 예에서, 디바이스는 메모리 디바이스 또는 요소(804)에 저장될 수 있는 명령어를 실행하기 위한 프로세서(802)를 포함한다. 당 업자에게 명백하듯이, 디바이스는 프로세서(802)에 의한 실행을 위한 프로그램 명령어를 위한 제 1 데이터 스토리지, 이미지 또는 데이터를 위한 별도의 스토리지, 기타 디바이스와 정보를 공유하기 위한 탈착가능 메모리, 등과 같이, 많은 타입의 메모리, 데이터 스토리지, 또는 비-일시적 컴퓨터-판독가능 저장 매체를 포함할 수 있다. 디바이스는 터치스크린 또는 액정 디스플레이(LCD)와 같은, 소정 타입의 디스플레이 요소(806)를 포함할 것이지만, 휴대형 미디어 플레이와 같은 디바이스도 오디오 스피커를 통해서와 같이, 다른 수단을 통해 정보를 운반할 수 있다. 논의되는 바와 같이, 많은 실시예에서 디바이스는 사용자로부터 기존의 입력을 수신할 수 있는 적어도 하나의 입력 요소(808)를 포함할 것이다. 이러한 기존의 입력은 예를 들어, 푸시 버튼, 터치 패드, 터치 스크린, 휠, 조이스틱, 키보드, 마우스, 키패드, 또는 사용자가 디바이스에 명령을 입력할 수 있는 그외 다른 디바이스 또는 요소를 포함할 수 있다. 그러나 일부 실시예에서, 이러한 디바이스는 버튼을 전혀 포함하지 않을 수 있고 비디오 및 오디오 명령의 조합을 통해서만 제어될 수 있어서, 사용자가 디바이스와 접촉할 필요없이 디바이스를 제어할 수 있게 된다. 일부 실시예에서, 도 8의 컴퓨팅 디바이스(800)는 와이파이, 블루투스, RF, 유선, 또는 무선 통신 시스템과 같은, 다양한 네트워크를 통해 통신하기 위한 하나 이상의 네트워크 인터페이스 요소(808)를 포함할 수 있다. 많은 실시예에서, 디바이스는 인터넷과 같은 네트워크와 통신할 수 있고, 이러한 다른 디바이스와 통신할 수 있다.
논의되는 바와 같이, 설명되는 실시예에 따라 다양한 환경에서 서로 다른 기법들이 구현될 수 있다. 예를 들어, 도 9는 다양한 실시예에 따른 형태들을 구현하기 위한 환경(900)의 예를 도시한다. 아다시피, 웹-기반 환경이 설명 용도로 사용되지만, 다양한 실시예의 구현을 위해, 적절하다면, 다른 환경이 사용될 수 있다. 시스템은 적절한 네트워크(904)를 통해 요청, 메시지, 또는 정보를 송신 및 수신하도록 작동가능한, 그리고 정보를 다시 디바이스 사용자에게 전달하도록 작동가능한, 임의의 적절한 디바이스를 포함할 수 있는 전자 클라이언트 디바이스(902)를 포함한다. 이러한 클라이언트 디바이스의 예는 개인용 컴퓨터, 셀 폰, 핸드헬드 메시징 디바이스, 랩탑 컴퓨터, 셋탑 박스, PDA, 전자 북 리더, 등을 포함한다. 네트워크는 인트라넷, 인터넷, 셀룰러 네트워크, 근거리 네트워크, 또는 그외 다른 이러한 네트워크 또는 이들 간의 조합을 포함한, 임의의 적절한 네트워크를 포함할 수 있다. 이러한 시스템에 사용되는 구성요소들은 선택되는 환경 및/또는 네트워크의 타입에 적어도 부분적으로 좌우될 수 있다. 이러한 네트워크를 통해 통신하기 위한 프로토콜 및 구성요소는 잘 알려져 있고, 여기서 세부적으로 설명하지 않는다. 네트워크를 통한 통신은 유선 또는 무선 연결 및 이들의 조합을 통해 이네이블링될 수 있다. 본 예에서, 네트워크는 요청을 수신하고 그 응답으로 콘텐츠를 서빙하기 위한 웹 서버(906)를 포함함에 따라, 인터넷을 포함하지만, 다른 네트워크의 경우, 유사 용도로 기능하는 대안의 디바이스들이 사용될 수 있고, 이는 당 업자에게 명백하다.
예시적인 환경은 적어도 하나의 애플리케이션 서버(908) 및 데이터 스토어(910)를 포함한다. 적절한 데이터 스토어로부터 데이터를 획득하는 것과 같이, 작업 수행을 위해 상호작용할 수 있도록, 사슬화되거나 구성될 수 있는, 여러 개의 애플리케이션 서버, 계층 또는 기타 요소, 프로세스, 또는 구성요소들이 존재할 수 있다. 여기서 사용되듯이, 용어 "데이터 스토어"는 임의의 표준적인, 분산형 또는 클러스터형 환경에서 임의의 조합 및 개수의 데이터 서버, 데이터베이스, 데이터 저장 디바이스, 및 데이터 저장 매체를 포함할 수 있는, 데이터를 저장, 액세스, 및 불러들일 수 있는 임의의 디바이스 또는 디바이스들의 조합을 의미한다. 애플리케이션 서버는 클라이언트 디바이스를 위한 하나 이상의 애플리케이션의 형태를 실행하기 위해 필요한 대로 데이터 스토어와 통합하기 위한, 그리고, 다수의 데이터 액세스 및 애플리케이션용 비즈니스 로직을 취급하기 위한, 적절한 하드웨어 및 소프트웨어를 포함할 수 있다. 애플리케이션 서버는 데이터 스토어와 연계하여 액세스 제어 서비스를 제공하고, 텍스트, 그래픽, 오디오, 및/또는 비디오와 같은 콘텐츠를 발생시킬 수 있으며, 이러한 콘텐츠는 본 예에서 HTML, XML, 또는 다른 적절한 구조의 언어의 형태로 웹 서버에 의해 사용자에게 서빙될 수 있다. 모든 요청 및 응답의 취급과, 클라이언트 디바이스(902)와 애플리케이션 서버(908) 사이의 콘텐츠의 전달은, 웹 서버(906)에 의해 취급될 수 있다. 웹 및 애플리케이션 서버가 필수적인 것은 아니며, 단지 예시적인 구성요소일 뿐이며, 이는 여기서 논의되는 구조화된 코드가, 여기 다른 어디서 논의되는 임의의 적절한 디바이스 또는 호스트 기계 상에서 실행될 수 있기 때문이다.
데이터 스토어(910)는 분리된 여러개의 데이터 테이블, 데이터베이스, 또는 특정 형태에 관한 데이터를 저장하기 위한 기타 데이터 저장 메커니즘 및 매체를 포함할 수 있다. 예를 들어, 도시되는 데이터 스토어는 생산 측의 콘텐츠 서빙에 사용될 수 있는 생산 데이터(912) 및 사용자 정보(916)를 저장하기 위한 메커니즘을 포함한다. 데이터 스토어는 로그 또는 세션 데이터(914)를 저장하기 위한 메커니즘을 포함하는 것으로 도시된다. 데이터 스토어(910)에 적절한 것으로 또는 추가적인 메커니즘으로, 위 나열된 메커니즘들 중 임의의 수단에 저장될 수 있는 페이지 이미지 정보 및 액세스 권리 정보와 같이, 데이터 스토어에 저장될 필요가 있는 많은 다른 형태들이 존재할 수 있다. 데이터 스토어(910)는 연관 로직을 통해, 애플리케이션 서버(908)로부터 명령어를 수신하도록 작동가능하고, 이에 응답하여 데이터를 획득, 업데이트, 또는 프로세싱하도록 작동가능하다. 한 예에서, 사용자는 소정 타입의 아이템에 대한 검색 요청을 제출할 수 있다. 이러한 경우에, 데이터 스토어는 사용자의 신원 검증을 위해 사용자 정보에 액세스할 수 있고, 카탈로그 상세 정보에 액세스하여 해당 타입의 위 아이템에 관한 정보를 획득할 수 있다. 정보는 그 후, 사용자 디바이스(902) 상의 브라우저를 통해 사용자가 볼 수 있는 웹 페이지 상의 결과 리스팅에서와 같이, 사용자에게 되돌아올 수 있다. 특정 관심 아이템에 대한 정보는 브라우저의 전용 페이지 또는 윈도에서 볼 수 있다.
각각의 서버는 해당 서버의 일반적 관리 및 작동을 위한 실행가능 프로그램 명령어를 제공하는 운영 체제를 포함할 것이며, 통상적으로, 서버의 프로세서에 의해 실행될 때, 서버로 하여금 의도된 기능을 수행하게 하는 명령어를 저장한 컴퓨터-판독가능 매체를 포함할 것이다. 운영 체제 및 서버의 일반적 기능에 대한 적절한 구현예가 잘 알려져 있거나 상업적으로 가용하며, 특히 여기 명세서에 비추어, 당 업자에 의해 쉽게 구현된다.
일 실시예의 환경은 하나 이상의 컴퓨터 네트워크 또는 직접 연결을 이용하여, 통신 링크를 통해 상호연결되는 여러 개의 컴퓨터 시스템 및 구성요소를 이용하는 분산형 컴퓨팅 환경이다. 그러나, 이러한 시스템이 도 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. 실행가능 명령어로 구성된 하나 이상의 컴퓨터 시스템의 제어 하에,
    호스트 컴퓨팅 디바이스의 가상화 층 상에 프리빌리지 작동(privileged operations)을 수행하기 위한 요청을 발생시키는 단계와,
    퍼블릭 키를 획득하여 상기 요청에 퍼블릭 키를 포함시키는 단계 - 상기 퍼블릭 키는 정보 암호화에 사용될 수 있고, 상기 퍼블릭 키는 상기 퍼블릭 키를 이용하여 암호화되는 정보의 해역에 사용될 수 있는, 대응하는 프라이빗 키를 가짐 - 와,
    상기 호스트 컴퓨팅 디바이스의 가상화 층에 상기 퍼블릭 키를 포함하는 요청을 제출하는 단계 - 상기 가상화 층은 결과 생성을 위해 프리빌리지 작동을 실행하도록 구성됨 - 를 포함하며,
    상기 가상화 층은 상기 요청과 함께 제공되는 퍼블릭 키를 이용함으로써 상기 프리빌리지 작동의 결과를 암호화하도록 구성되는
    컴퓨터-구현 방법.
  2. 제 1 항에 있어서, 상기 가상화 층은 상기 호스트 컴퓨팅 디바이스의 가상화 층 외부로 결과가 전송되기 전에 결과를 암호화하도록 구성되는, 컴퓨터-구현 방법.
  3. 제 1 항에 있어서, 상기 가상화 층은 상기 호스트 컴퓨팅 디바이스에 대해 외부의 위치에 암호화된 결과를 전송하도록 구성되고, 암호화된 결과는 프라이빗 키를 이용함으로써 상기 위치에서 해역되는, 컴퓨터-구현 방법.
  4. 제 1 항에 있어서, 상기 프리빌리지 작동의 수행을 위한 요청은 제 2 키를 이용하여 암호화되고, 상기 요청은 상기 가상화 층에 의해 해역가능한, 컴퓨터-구현 방법.
  5. 제 1 항에 있어서, 상기 프리빌리지 작동의 수행을 위한 요청은 서비스 프라이빗 키를 이용하여 서명되고, 상기 요청의 시그너처는 서비스 퍼블릭 키를 이용하여 상기 가상화 층에 의해 검증가능한, 컴퓨터-구현 방법.
  6. 제 5 항에 있어서, 인증 기관(CA)으로부터 서비스 퍼블릭 키를 포함하는 인증서를 획득하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  7. 제 1 항에 있어서,
    상기 퍼블릭 키를 획득하는 단계는, 상기 퍼블릭 키의 소유권을 인증하는 적어도 하나의 인증서를 인증 기관(CA)을 이용하여 획득하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  8. 제 1 항에 있어서, 상기 요청은 복수의 호스트 컴퓨팅 디바이스를 모니터링하는 모니터링 서비스에 의해 발생되는, 컴퓨터-구현 방법.
  9. 제 8 항에 있어서,
    복수의 호스트 컴퓨팅 디바이스 중 적어도 하나와 연관된 프로파일에 적어도 부분적으로 기초하여, 복수의 호스트 컴퓨팅 디바이스 중 적어도 하나가 비정상적으로 작동하고 있음을 모니터링 서비스에 의해 검출하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  10. 제 1 항에 있어서, 상기 요청이 지정된 시간 구간으로 제한되는, 컴퓨터-구현 방법.
  11. 제 1 항에 있어서, 상기 프리빌리지 작동은 상기 호스트 컴퓨팅 디바이스 상의 가상화 층의 러닝 메모리 이미지를 수정하는, 컴퓨터-구현 방법.
  12. 제 1 항에 있어서, 상기 프리빌리지 작동은, 상기 호스트 컴퓨팅 디바이스 상의 메모리 내 위치를 판독하는 단계 - 상기 위치는 상기 가상화 층과 연관됨 - 를 더 포함하는, 컴퓨터-구현 방법.
  13. 적어도 하나의 프로세서를 포함하는 제 1 컴퓨터 시스템과,
    명령어를 포함하는 메모리를 포함하되,
    상기 명령어는, 상기 적어도 하나의 프로세서에 의해 실행될 때, 컴퓨터 시스템으로 하여금,
    호스트 컴퓨팅 디바이스의 가상화 층 상에 프리빌리지 작동을 수행하기 위한 요청을 신뢰 기관으로부터 수신하게 하기 위한 명령어 - 상기 요청은 퍼블릭 키를 포함하고, 상기 퍼블릭 키는 정보의 암호화에 사용될 수 있으며, 상기 퍼블릭 키는 상기 퍼블릭 키를 이용하여 암호화되는 정보의 해역에 사용될 수 있는 대응하는 프라이빗 키를 가짐 - 와,
    상기 호스트 컴퓨팅 디바이스의 애플리케이션 프로그래밍 인터페이스(API)에 상기 요청을 발급하게 하는 명령어 - 상기 가상화 층은 프리빌리지 작동을 실행하여 결과를 생성하고 상기 요청과 함께 제공되는 퍼블릭 키를 이용하여 결과를 암호화하도록 구성됨 - 를 포함하는,
    시스템.
  14. 제 13 항에 있어서,
    호스트 컴퓨팅 디바이스를 더 포함하고,
    상기 호스트 컴퓨팅 디바이스는 명령어를 포함하는 메모리 및 적어도 하나의 프로세서를 포함하며, 상기 명령어는, 실행될 때 상기 호스트 컴퓨팅 디바이스로 하여금,
    프리빌리지 작동을 실행하게 하는 명령어와,
    상기 요청과 함께 제공되는 퍼블릭 키를 이용하여 결과를 암호화하게 하는 명령어와,
    지정된 위치에 암호화된 결과를 저장하게 하는 명령어를 포함하는
    시스템.
  15. 제 13 항에 있어서,
    프리빌리지 작동을 수행하기 위한 요청은 제 2 키를 이용하여 암호화되고, 상기 요청은 상기 가상화 층에 의해 해역되는
    시스템.
KR1020157021715A 2013-01-22 2014-01-22 프리빌리지 컴퓨팅 작동의 결과 보호 KR101704329B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/746,780 2013-01-22
US13/746,780 US9503268B2 (en) 2013-01-22 2013-01-22 Securing results of privileged computing operations
PCT/US2014/012605 WO2014116744A1 (en) 2013-01-22 2014-01-22 Securing results of privileged computing operations

Publications (2)

Publication Number Publication Date
KR20150106923A true KR20150106923A (ko) 2015-09-22
KR101704329B1 KR101704329B1 (ko) 2017-02-08

Family

ID=51208709

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157021715A KR101704329B1 (ko) 2013-01-22 2014-01-22 프리빌리지 컴퓨팅 작동의 결과 보호

Country Status (9)

Country Link
US (1) US9503268B2 (ko)
EP (1) EP2948855B1 (ko)
JP (2) JP6321041B2 (ko)
KR (1) KR101704329B1 (ko)
CN (1) CN105027096B (ko)
AU (1) AU2014209471B2 (ko)
CA (1) CA2898907C (ko)
SG (1) SG11201505654YA (ko)
WO (1) WO2014116744A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102156174B1 (ko) * 2019-06-25 2020-09-15 아주대학교산학협력단 클라우드 기반의 IoT 시스템에 대한 디지털 포렌식 장치 및 방법

Families Citing this family (30)

* 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
US8494585B2 (en) 2011-10-13 2013-07-23 The Boeing Company Portable communication devices with accessory functions and related methods
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
GB2515536A (en) * 2013-06-27 2014-12-31 Ibm Processing a guest event in a hypervisor-controlled system
US9497221B2 (en) 2013-09-12 2016-11-15 The Boeing Company Mobile communication device and method of operating thereof
US10064240B2 (en) 2013-09-12 2018-08-28 The Boeing Company Mobile communication device and method of operating thereof
US9819661B2 (en) * 2013-09-12 2017-11-14 The Boeing Company Method of authorizing an operation to be performed on a targeted computing device
US9225529B1 (en) * 2013-12-10 2015-12-29 Emc Corporation Encrypted virtual machines in a cloud
IN2013CH06052A (ko) * 2013-12-23 2015-06-26 Cognizant Technology Solutions India Pvt Ltd
US9652276B2 (en) * 2014-09-17 2017-05-16 International Business Machines Corporation Hypervisor and virtual machine protection
US10628406B1 (en) 2014-09-30 2020-04-21 EMC IP Holding Company LLC Method and system for secure data replication data integrity verification
GB2531770A (en) * 2014-10-30 2016-05-04 Ibm Confidential Extracting System Internal Data
US10110566B2 (en) * 2015-07-21 2018-10-23 Baffle, Inc. Systems and processes for executing private programs on untrusted computers
CN105931042A (zh) * 2015-09-22 2016-09-07 中国银联股份有限公司 一种应用权限管理方法以及智能pos终端
US9894061B2 (en) 2015-10-16 2018-02-13 International Business Machines Corporation Method for booting and dumping a confidential image on a trusted computer system
US9792143B1 (en) * 2015-10-23 2017-10-17 Amazon Technologies, Inc. Platform secure execution modes
US20170277903A1 (en) * 2016-03-22 2017-09-28 Qualcomm Incorporated Data Protection Using Virtual Resource Views
JP6603632B2 (ja) * 2016-08-16 2019-11-06 日本電信電話株式会社 Apiシステム及びデータ暗号化方法
CN106372497B (zh) * 2016-08-31 2020-01-03 北京深思数盾科技股份有限公司 一种应用编程接口api保护方法和保护装置
US10270596B2 (en) * 2016-09-16 2019-04-23 International Business Machnines Corporation Generating memory dumps
US10467416B2 (en) * 2017-06-16 2019-11-05 International Business Machines Corporation Securing operating system configuration using hardware
US10885212B2 (en) 2017-09-12 2021-01-05 Sophos Limited Secure management of process properties
US10757082B2 (en) * 2018-02-22 2020-08-25 International Business Machines Corporation Transforming a wrapped key into a protected key
US11362824B2 (en) * 2018-05-25 2022-06-14 Intertrust Technologies Corporation Content management systems and methods using proxy reencryption
US11042641B2 (en) * 2018-09-11 2021-06-22 Amari.Ai Incorporated Deployment and communications gateway for deployment, trusted execution, and secure communications
US20210281561A1 (en) * 2020-03-09 2021-09-09 International Business Machines Corporation Certification for connection of virtual communication endpoints
KR20220052007A (ko) * 2020-10-20 2022-04-27 삼성전자주식회사 전자 장치 및 그 제어 방법
US11537705B2 (en) * 2020-10-27 2022-12-27 Dell Products L.P. Device access control system
US11829493B2 (en) * 2020-10-27 2023-11-28 Dell Products L.P. Device access control system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030101322A1 (en) * 2001-10-25 2003-05-29 Gardner Robert D. Protection of user process data in a secure platform architecture
US20100169948A1 (en) * 2008-12-31 2010-07-01 Hytrust, Inc. Intelligent security control system for virtualized ecosystems
US20100281273A1 (en) * 2009-01-16 2010-11-04 Lee Ruby B System and Method for Processor-Based Security
US20120117625A1 (en) * 2010-11-09 2012-05-10 Microsoft Corporation Security system for computing resources pre-releases

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410602A (en) * 1993-09-27 1995-04-25 Motorola, Inc. Method for key management of point-to-point communications
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
US6826690B1 (en) 1999-11-08 2004-11-30 International Business Machines Corporation Using device certificates for automated authentication of communicating devices
JP2002073358A (ja) * 2000-09-04 2002-03-12 Hitachi Ltd 仮想計算機主記憶のアクセス制御方法
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
AU2003240323A1 (en) 2002-06-06 2003-12-22 Sxip Networks Srl Distributed hierarchical identity management
JP2004254027A (ja) * 2003-02-19 2004-09-09 Toshiba Corp サーバ装置、鍵管理装置、暗号通信方法及びプログラム
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
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 株式会社アイ・オー・データ機器 暗号鍵設定方法、ネットワークシステム、管理装置、情報処理端末、および暗号鍵設定プログラム
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
US8453143B2 (en) * 2007-09-19 2013-05-28 Vmware, Inc. Reducing the latency of virtual interrupt delivery in virtual machines
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
US8353015B2 (en) 2008-01-09 2013-01-08 Microsoft Corporation Trusted internet identity
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
US9158912B2 (en) 2009-04-01 2015-10-13 Dell Products L.P. Method and apparatus for a virtual machine hosting network with user devices
US8478725B2 (en) 2009-09-14 2013-07-02 Vmware, Inc. Method and system for performing live migration of persistent data of a virtual machine
US8635632B2 (en) * 2009-10-21 2014-01-21 International Business Machines Corporation High performance and resource efficient communications between partitions in a logically partitioned system
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 曙ブレーキ工業株式会社 ブリーダプラグ
JP2011211255A (ja) 2010-03-26 2011-10-20 Kyocera Corp データ転送システム、通信機器及びデータ転送方法
JP5444104B2 (ja) * 2010-04-21 2014-03-19 株式会社日立製作所 記憶手段の管理方法、仮想計算機システムおよびプログラム
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
US9304867B2 (en) * 2010-09-28 2016-04-05 Amazon Technologies, Inc. System and method for providing flexible storage and retrieval of snapshot archives
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 富士通株式会社 スケジューリングプログラム、および情報処理装置
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
JP2013058006A (ja) * 2011-09-07 2013-03-28 Fuji Xerox Co Ltd 情報処理装置及び情報処理プログラム
EP2587715B1 (en) 2011-09-20 2017-01-04 BlackBerry Limited Assisted certificate enrollment
US9069586B2 (en) * 2011-10-13 2015-06-30 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
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
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
US10063380B2 (en) 2013-01-22 2018-08-28 Amazon Technologies, Inc. Secure interface for invoking privileged operations
US9729517B2 (en) 2013-01-22 2017-08-08 Amazon Technologies, Inc. Secure virtual machine migration

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030101322A1 (en) * 2001-10-25 2003-05-29 Gardner Robert D. Protection of user process data in a secure platform architecture
US20100169948A1 (en) * 2008-12-31 2010-07-01 Hytrust, Inc. Intelligent security control system for virtualized ecosystems
US20100281273A1 (en) * 2009-01-16 2010-11-04 Lee Ruby B System and Method for Processor-Based Security
US20120117625A1 (en) * 2010-11-09 2012-05-10 Microsoft Corporation Security system for computing resources pre-releases

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102156174B1 (ko) * 2019-06-25 2020-09-15 아주대학교산학협력단 클라우드 기반의 IoT 시스템에 대한 디지털 포렌식 장치 및 방법

Also Published As

Publication number Publication date
CN105027096B (zh) 2018-03-16
WO2014116744A1 (en) 2014-07-31
JP6321041B2 (ja) 2018-05-09
AU2014209471B2 (en) 2017-04-06
EP2948855A1 (en) 2015-12-02
EP2948855A4 (en) 2016-09-14
JP2016509726A (ja) 2016-03-31
CA2898907A1 (en) 2014-07-31
US9503268B2 (en) 2016-11-22
CA2898907C (en) 2018-08-14
JP2018081705A (ja) 2018-05-24
EP2948855B1 (en) 2019-07-10
KR101704329B1 (ko) 2017-02-08
JP6462103B2 (ja) 2019-01-30
US20140208097A1 (en) 2014-07-24
AU2014209471A1 (en) 2015-08-27
SG11201505654YA (en) 2015-08-28
CN105027096A (zh) 2015-11-04

Similar Documents

Publication Publication Date Title
KR101704329B1 (ko) 프리빌리지 컴퓨팅 작동의 결과 보호
US11228449B2 (en) Secure interface for invoking privileged operations
US10409985B2 (en) Trusted computing host
CN108351944B (zh) 链式安全系统
CA2898908C (en) Secure virtual machine migration

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200123

Year of fee payment: 4