KR20190082793A - 보안 키 관리 - Google Patents

보안 키 관리 Download PDF

Info

Publication number
KR20190082793A
KR20190082793A KR1020197013849A KR20197013849A KR20190082793A KR 20190082793 A KR20190082793 A KR 20190082793A KR 1020197013849 A KR1020197013849 A KR 1020197013849A KR 20197013849 A KR20197013849 A KR 20197013849A KR 20190082793 A KR20190082793 A KR 20190082793A
Authority
KR
South Korea
Prior art keywords
enclave
management
tenant
key
application code
Prior art date
Application number
KR1020197013849A
Other languages
English (en)
Other versions
KR102512739B1 (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 KR20190082793A publication Critical patent/KR20190082793A/ko
Application granted granted Critical
Publication of KR102512739B1 publication Critical patent/KR102512739B1/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/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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

보호 머신. 이 머신은 엔클레이브를 포함한다. 엔클레이브는, 하나 이상의 관리 엔클레이브에 의해 엔클레이브에 키가 제공될 수 있다는 점을 제외하면 엔클레이브 자체에 있지 않은 어떠한 애플리케이션 코드에 대해서도 액세스가 금지되는 애플리케이션 어드레스 공간의 보호 영역을 포함한다. 이 머신은 엔클레이브에 연결된 관리 엔클레이브를 더 포함한다. 이 관리 엔클레이브는 엔클레이브에 키를 제공하도록 구성된다. 관리 엔클레이브는 관리 엔클레이브 자체에 있지 않은 어떠한 애플리케이션 코드에 대해서도 액세스가 금지되는 애플리케이션 어드레스 공간의 보호 영역이다.

Description

보안 키 관리
컴퓨터 및 컴퓨팅 시스템은 현대 생활의 거의 모든 면에 영향을 미쳤다. 컴퓨터는 일반적으로 업무, 레크리에이션, 건강 관리, 교통, 엔터테인먼트, 가계 관리 등에 관여된다.
또한, 컴퓨팅 시스템 기능은 네트워크 접속을 통해 다른 컴퓨팅 시스템에 상호 접속되는 컴퓨팅 시스템의 능력에 의해 향상될 수 있다. 네트워크 접속은 유선 또는 무선 이더넷, 셀룰러 접속 또는 심지어 직렬, 병렬, USB 또는 기타 접속을 통한 컴퓨터 사이의 접속을 포함할 수 있지만, 이것으로 한정되는 것은 아니다. 이와 같이 접속함으로써, 컴퓨팅 시스템은 다른 컴퓨팅 시스템의 서비스에 액세스하고, 다른 컴퓨팅 시스템으로부터 애플리케이션 데이터를 빠르고 효율적으로 수신할 수 있다.
컴퓨팅 시스템을 상호 접속시킴으로써 이른바 "클라우드" 컴퓨팅 시스템과 같은 분산형 컴퓨팅 시스템이 용이하게 되었다. 본 설명에서 "클라우드 컴퓨팅"은, 적은 유지 관리 수고나 또는 서비스 제공 업체와의 상호 작용으로도 제공 및 배포될 수 있는 구성 가능한 컴퓨팅 리소스(예컨대, 네트워크, 서버, 스토리지, 애플리케이션, 서비스 등)의 공유 풀에 대한 유비쿼터스의 편리한 주문형 네트워크 액세스를 가능하게 하는 시스템 또는 리소스일 수 있다. 클라우드 모델은 다양한 특성(예컨대, 주문형 자가-서비스, 폭넓은 네트워크 액세스, 리소스 풀링, 신속한 탄력성(rapid elasticity), 종량제 서비스(measured service) 등), 서비스 모델(예컨대, SaaS(Software as a Service), PaaS(Platform as a Service)), IaaS(Infrastructure as a Service) 및 배치 모델(예컨대, 사설 클라우드, 커뮤니티 클라우드, 퍼블릭 클라우드, 하이브리드 클라우드 등)으로 이루어질 수 있다.
클라우드 컴퓨팅 시스템에는 클라우드 서비스 제공 업체 및 테넌트(tenant) 고객이 존재한다. 테넌트 고객은 클라우드 컴퓨팅 시스템 리소스를 사용하는 것은 원하지만, 이러한 고객은 일반적으로 클라우드 서비스 제공 업체의 개인이, 예를 들어 클라우드 서비스 제공 업체의 직원이나 또는 클라우드 서비스 제공 업체 리소스에 물리적으로 액세스할 수 있는 다른 사람들이, 자신의 데이터에 액세스하는 것은 원하지 않는다. 따라서, 테넌트 고객은, 제3자가 실제로는 이 데이터를 보지 못하면서 데이터를 관리할 것을 요구한다.
본 명세서에서 청구되는 청구 대상은, 어떤 단점을 해결하거나 또는 전술한 바와 같은 환경에서만 동작하는 실시예로 한정되는 것은 아니다. 오히려, 본 배경기술은 단지 본 명세서에 개시된 일부 실시예가 시행될 수 있는 하나의 예시적인 기술 영역을 설명하기 위해 제공된다.
본 명세서에 개시된 일 실시예는 머신을 포함한다. 이 머신은 엔클레이브(enclave)를 포함한다. 엔클레이브는, 하나 이상의 관리 엔클레이브에 의해 키(key)가 그 엔클레이브에 제공될 수 있다는 점을 제외하면, 엔클레이브 자체에 있지 않은 어떠한 애플리케이션 코드에 대해서도 액세스가 금지되는 애플리케이션 어드레스 공간의 보호 영역을 포함한다. 이 머신은 상기 엔클레이브에 연결된 관리 엔클레이브를 더 포함한다. 이 관리 엔클레이브는 엔클레이브에 키를 제공하도록 구성된다. 관리 엔클레이브는, 엔클레이브 자체에 있지 않은 어떠한 애플리케이션 코드에 대해서도 액세스가 금지되는 애플리케이션 주소 공간의 보호 영역이다.
본 과제의 해결 수단은 이하의 발명을 실시하기 위한 구체적인 내용에서 더 설명되는 개념 중 하나를 선택해서 간략한 형태로 소개하기 위해서 제공된다. 본 과제의 해결 수단은 청구 대상의 중요한 특성이나 혹은 필수적인 특성을 나타내고자 하는 것은 아니며, 청구 대상의 범주를 결정하는 도움으로서 사용되고자 하는 것도 아니다.
이하 설명에서 추가적인 특징 및 이점이 설명될 것이며, 부분적으로는 설명으로부터 자명하거나 혹은 본 명세서의 교시를 실시함으로써 학습될 수 있다. 본 발명의 특징 및 이점은 특히 첨부된 청구 범위에서 언급되는 수단 및 조합에 의해 실현되고 얻어질 수 있다. 본 발명의 특징은 이하의 설명 및 첨부된 청구 범위로부터 보다 완전히 명백해지거나, 또는 후술하는 본 발명의 실시에 의해 학습할 수 있을 것이다.
전술한 이점 및 특징 그리고 다른 이점 및 특징이 얻어질 수 있는 방식을 설명하기 위해, 상기 간단하게 설명된 청구 대상에 대한 보다 구체적인 설명을 첨부된 도면에 도시된 특정 실시예를 참조해서 제공한다. 이들 도면은 단지 전형적인 실시예를 도시하고 있는 것으로 따라서 그 범주를 제한하는 것으로 간주되지 않는다는 이해하에서, 첨부된 도면을 사용해서 추가적인 특이점 및 세부 사항으로 실시예가 개시되고 설명될 것이다
도 1은 관리 엔클레이브와 엔클레이브 및 인증 증명서를 포함하는 머신을 나타낸다.
도 2는 컴퓨트 패드릭 및 키 패브릭을 포함하는 클라우드 시스템을 나타낸다.
도 3은 클라우드 시스템 상에서 테넌트를 안전하게 관리하는 방법을 나타낸다.
본 명세서에 설명되는 실시예는, 클라우드 컴퓨팅 시스템에서의 하드웨어 기반 키 보호 시스템 및 하드웨어 기반 가상 머신(VM) 보호의 기능을 포함한다. 특히, 일부 최신 프로세서는, 선택한 코드 및 데이터가 공개 또는 수정되지 못하도록 보호하는 데 사용될 수 있는 하드웨어 명령어 및 아키텍처 구성 요소를 포함한다. 애플리케이션은 CPU-강화된 "엔클레이브" 또는 보안을 강화하는 보호받는 실행 영역으로 분할될 수 있다. 특히, 본 명세서에서 사용되는 엔클레이브는 엔클레이브 자체에 있지 않은 어떤 소프트웨어에 대한 액세스도 금지되는 애플리케이션의 어드레스 공간의 보호 영역이다. 보호되는 데이터 및 코드가 CPU 레벨에서 보호되기 때문에, 위험에 노출된(compromised) 플랫폼에서도 이러한 보안은 유지될 수 있다. 즉 외부 소프트웨어가 해당 영역에 액세스하는 것을 CPU가 방지할 수 있다. 이러한 엔클레이브는 안전한 테넌트 데이터 암호화 키 전송 및 테넌트 데이터에 대해 동작하는 안전한 보안 가상 머신을 구현하는 데 사용될 수 있다. 이러한 엔클레이브 및 보호 컴퓨팅의 일례는 캘리포니아 주 산타 클라라에 소재한 Intel Corporation에서 제공하는 Intel SGX(Software Guard Extensions)에서 입수할 수 있다.
도 1은 머신(100)를 나타낸다. 머신(100)는 프로그래밍 명령어를 실행하도록 구성된 물리적 하드웨어 장치이다. 예를 들어, 머신은 중앙 처리 장치(CPU)를 포함할 수 있다. 이 머신은 엔클레이브(102)를 포함한다. 엔클레이브(102)는 보호 코드 및 데이터를 포함하는 보호 실행 영역이다. 엔클레이브(102)는 진입 및 진출이 제한된다(CPU 레벨에서 제한됨)는 점에서, 보호되고 있다. 상세하게, 실행 코드 및/또는 데이터가 일단 이 엔클레이브에 배치되면, 외부 개체가 들여다보는 것은 불가능하다. 이는 프로세서 상태와 레지스터 상태를 모두 포함한다. 또한 외부 개체에 의한 수정이 불가능하다. 데이터는 외장 레지스터(104)에 배치될 수 있으며, 엔클레이브(102) 내에서 실행되는 코드가 외장 레지스터(104)에 액세스할 수는 있지만, 엔클레이브(102)는 필요에 따라서 이 코드에 액세스할 것이다. 관리 엔클레이브(106)가 키(108)와 같은 키를 엔클레이브(102)에 제공할 수 있는 것을 제외하면, 데이터가 강제로 엔클레이브(102)에 제공될 수는 없다.
전술한 바와 같이, 도 1은 엔클레이브(106)를 나타낸다. 관리 엔클레이브는 보호 실행 영역이라는 점에서 엔클레이브(102)와 유사하다. 그러나, 한 가지 차이점은 관리 엔클레이브(106)는 키(108)와 같은 키를 엔클레이브(102)에 제공할 수 있는 능력을 갖고 있다는 점이다.
엔클레이브(102)으로부터의 진출은 제한되지만, 엔클레이브(102)가 생성해서 자신의 외부로 제공할 수 있는 하나의 아이템은 인증 증명서(110)이다. 인증 증명서(110)는 엔클레이브가 특정 플랫폼에서 실행 중이라는 것을 인증하는 데 사용되는 검증 가능 정보를 포함할 수 있는데, 이는 엔클레이브(102) 자체에 관한 정보와 함께 특정한 관리 엔클레이브에 의해 관리된다.
특히, 엔클레이브(102)에 의해 생성되는 인증 증명서(110)는 플랫폼 인증서(112)를 포함한다. 플랫폼 인증서(112)는 엔클레이브(102)가 특정 플랫폼 상에서 구현되고 있다는 검증 가능 증거를 포함한다. 이는 예를 들어, 특정 머신(100)을 포함할 수 있다. 예를 들어, 머신(100)은 자신에게 고유한 검증 가능 증거를 생성하기 위해서 평가될 수 있는 일련 번호나 다른 특성 또는 컴포넌트를 포함할 수 있다. 예를 들어, 프로세서의 일련 번호 및/또는 머신(100)의 다른 특성 또는 컴포넌트를 사용하여 검증 가능한 증거를 생성하는데 해싱 알고리즘이 사용될 수 있다. 예를 들어, 해싱 알고리즘은 머신(100) 내의 다양한 컴포넌트의 일련 번호, 머신(100) 내의 컴포넌트의 특정 모델 번호(혹은 다른 특성)의 세트, 혹은 머신(100)의 다른 특성을 해시할 수 있다.
대안으로, 이는 머신(100)이 속해 있는 플랫폼이 일반적으로 엔클레이브 서포트를 갖고 있다는 검증 가능 증거가 될 수 있다. 예를 들어, 머신(100)이 엔클레이브 서포트를 포함한다는 검증 가능 증거가 제공될 수 있다.
엔클레이브(102)에 의해 생성되는 인증 증명서(110)는 관리 인증서(114)를 포함한다. 관리 인증서(114)는, 엔클레이브(102)의 지문(fingerprint)과 같이, 엔클레이브(102)가 관리 엔클레이브(106)에 의해 관리되고 있다는 검증 가능 증거를 포함한다. 예를 들어, 관리 엔클레이브 내의 코드는 관리 엔클레이브가 엔클레이브(102)를 관리하는데 사용되고 있다는 검증 가능 증거를 생성하는데 사용될 수 있다. 예를 들어, 해싱 알고리즘이 관리 엔클레이브(106)의 코드 및/또는 데이터에 적용되어 검증 가능 증거를 생성할 수 있으며, 이는 관리 인증서(114)에서 사용될 수 있다.
엔클레이브(102)에 의해 생성되는 인증 증명서(110)는 엔클레이브 인증서(116)를 포함한다. 엔클레이브 인증서(116)는 엔클레이브에 대한 검증 가능 증거를 포함한다. 예를 들어, 엔클레이브 인증서(116)는 관리 엔클레이브(106) 내의 코드 및/또는 데이터의 지문을 포함할 수 있다.
엔클레이브(102)에 의해 생성되는 인증 증명서(110)는 암호화 기능(118)을 포함한다. 암호화 기능(118)은 레지스터(104)에 배치되는 데이터를 암호화하는데 사용될 수 있다. 예를 들어, 암호화 기능(118)은 디피-헬만(Diffie-Hellman) 키 교환과 같은 공개 키 교환 방식에서의 공개 키 교환의 일부로서 사용될 수 있다. 이로써, 데이터는 엔클레이브(102)에 안전하게 제공될 수 있다.
이와 같은 토대에서, 도 2를 참조하며, 이는 클라우드 서비스의 테넌트에 대한 가상 머신을 구현하는데 특수한 프로세서 기능을 사용하는 것을 나타내고 있다. 특히, 전형적으로 클라우드 서비스(200)의 고객 테넌트는 보안 인프라를 갖고 있지 않으며, 따라서 보안 인프라를 제공할 수 있는 리소스를 클라우드 서비스 제공자로부터 구매한다. 클라우드 서비스(200)에서, 컴퓨트 리소스(예를 들어, 프로세서 사이클), 메모리 리소스 및 저장 리소스와 같은 클라우드 리소스는 다수의 상이한 테넌트들 사이에서 공유된다. 클라우드 서비스(200)의 물리적 머신은 리소스를 호스팅하고 필요에 따라 다양한 테넌트에게 리소스를 제공한다. 그러나 테넌트는 클라우드 서비스 공급자가 암호화되지 않은 테넌트 데이터에 액세스하는 것을 원하지 않는다. 따라서, 특정 테넌트는 자신의 데이터와 관련된 키(108)를 가지며, 이는 테넌트의 데이터(120)가 다른 테넌트 또는 클라우드 서비스(200)의 개인에게 노출되지 않도록 하는 안전한 방법에 사용된다. 다양한 머신 상의 자원이 공유되고, 다양한 머신이 서로 다른 시간에 서로 다른 테넌트에게 사용될 수 있기 때문에, 키(108)는 클라우드 서비스(200)에 의해 유지되는 상이한 머신들 사이에서 공유 가능해야 하며, 클라우드 서비스(200)가 키(108)의 값을 알지 못한다는 검증 가능 증거가 제공되어야 한다.
도시된 예에서, 이는 키 관리 패브릭(124) 및 컴퓨트 패브릭(126)을 사용함으로써 달성될 수 있다.
키 관리 패브릭(124)은 다수의 머신(100-2-1 내지 100-2-m)을 포함하며, 이는 클라우드 서비스(200)의 머신 중에서 선택되고 특정 테넌트의 키(108)를 관리하도록 구성된다. 이러한 방식으로, 키는 테넌트에 대해서 원하는 만큼의 여분 레벨로 여분으로 저장될 수 있다.
키 관리 패브릭(124)의 각각의 머신은 로컬 저장부(122-1 내지 122-m) 각각에 연결된다.
도 2는 컴퓨트 패브릭(126)을 나타낸다. 컴퓨트 패브릭은 다수의 머신(100-1-1 내지 100-1-n)을 포함하며, 이는 클라우드 서비스(200)에서 이용 가능한 머신 중에서 선택되고 테넌트의 가상 머신을 구현하도록 구성된다. 특히, 테넌트는 자신에 대해서 특정한 가상 머신이 실행될 것을 원할 것이다. 이들 가상 머신은 엔클레이브(102-1-1 내지 102-1-n)를 사용해서 구현될 수 있다. 특히, 엔클레이브(102-1-1 내지 102-1-n)에서 VM 코드가 구현될 수 있다. 테넌트용 엔클레이브를 구현하기 위해서, 각각의 엔클레이브에 대한 코드가 클라우드 서비스 제공자에 의해 제공될 수도 있고, 혹은 테넌트에 의해서 클라우드 서비스 제공자에게 제공될 수도 있다. 어떤 경우든 테넌트는, 엔클레이브의 지문을 가진 각각의 엔클레이브에 대한 엔클레이브 인증서를 포함한, VM을 실행하는 엔클레이브가 생성하는 인증 증명서를 조사함으로써 VM을 검증할 수 있다.
머신(100-1-1 내지 100-1-n 및 100-2-1 내지 100-2-m)은 각각 관리 엔클레이브(106-1-1 내지 106-1-n 및 106-2-1 내지 106-2-m)를 각각 구비한다는 점에 주의한다. 일부 실시예에서, 관리 엔클레이브(106-1-1 내지 106-1-n 및 106-2-1 내지 106-2-m)는 모두 그 안에서 실행되는 동일한 실행 가능 코드를 갖는다. 따라서, 도 1에 도시된 바와 같이, 테넌트의 머신 상의 엔클레이브는 키 패브릭(124)에 있든 컴퓨팅 패브릭(126)에 있든 동일한 관리 인증서를 가진 인증 증명서를 생성할 것이다. 이로써, 관리 엔클레이브(106-1-1 내지 106-1-n 및 106-2-1 내지 106-2-m) 각각이 보안 방식으로 서로 통신하고 관리 인증서를 생성할 수 없는 어떤 관리 엔클레이브와의 통신도 거부하는 것이 가능하게 된다. 이 기능을 사용하면, 특정 테넌트에 대한 보안 키 생성 및 관리가 달성될 수 있다.
이하 상세히 설명되는 바와 같이, 관리 엔클레이브를 검증하는데 다른 양상이 사용될 수도 있다는 점에 주의해야 한다. 예를 들어, 대안의 실시예에서, 동일한 지문을 공유하지 않는 2개의 관리 엔클레이브는 여전히 서로를 신뢰할 수 있는 것으로 인식할 수 있다. 엔클레이브는 복잡하고 유연한 정책을 구현할 수 있다. 따라서, 예를 들어, 관리 엔클레이브(106-1-1 내지 106-1-n)는 서로 상이하고 관리 엔클레이브(106-2-1 내지 106-2-m)와는 상이한 지문을 가질 수 있지만, 신뢰성 분석에 기초해서 서로 통신할 수 있다. 유사하게, 하나 이상의 관리 엔클레이브(106-1-1 내지 106-1-n)는 서로 상이할 수 있지만, 신뢰도 분석에 기초해서 서로 통신할 수 있다. 유사하게, 관리 엔클레이브(106-2-1 내지 106-2-m) 중 하나 이상은 서로 상이할 수 있지만 신뢰도 분석에 기초하여 서로 통신할 수 있다.
예를 들어, 일부 실시예에서, 관리 엔클레이브는 다른 관리 엔클레이브가 동일한 코드의 다른 버전을 실행하고 있다는 것을 결정할 수 있다. 이것은, 예를 들어, 인증 증명서(예를 들어, 인증 증명서(110))의 엔클레이브 인증서(예를 들어, 엔클레이브 인증서(116))를 조사해서 코드 작성자, 서명 기관과 관련된 정보를 검증함으로써 혹은 다른 방식으로 달성될 수 있다. 예를 들어, 엔클레이브 인증서는 서명 권한의 표시자, 코드의 기능이 무엇인지에 대한 서명 권한 선언의 표시자 및 서명 기관이 코드의 버전을 선언한 표시자 3개 모두를 사용해서 생성된 표시자를 포함할 수 있다. 수신 관리 엔클레이브는 이들 3개의 표시자를 검증하는 기능을 포함할 수 있다.
따라서, 관리 엔클레이브는 관리 엔클레이브 코드에 들어있는(baked into) 매칭 기능을 가질 수 있다. 이 매칭 기능은 엔클레이브 인증서에서 정확한 매칭을 요구하도록 구성될 수도 있고 혹은 승인된 변경을 허용할 수도 있다.
예를 들어, 이하 시나리오를 고려한다. 제 1 시나리오에서, 관리 엔클레이브(106-2-1)는 인증 증명서(110-1)를 생성한다. 인증 증명서(110-1)는 엔클레이브 인증서(116-1)를 포함한다. 엔클레이브 인증서(116-1)는 관리 엔클레이브(106-2-1)에 관한 정보를 포함한다. 예를 들어, 도시된 현재 시나리오에서, 관리 엔클레이브(106-2-1)는 관리 엔클레이브(106-2-1)를 구현하는 코드의 해시를 계산하는 기능을 포함할 수 있다. 이 예에서, 관리 엔클레이브는 서로를 신뢰하는데 매칭 코드를 요구한다. 따라서, 관리 엔클레이브(106-1-1)가 인증 증명서(110-1)를 수신하면, 엔클레이브 인증서(116-1)가 자신의 관리 엔클레이브 코드를 해싱함으로써 관리 엔클레이브(106-1-1)에 의해 생성될 수 있는 경우에, 관리 엔클레이브(106-1-1)는 관리 엔클레이브(106-2-1)만을 신뢰할 것이다.
대안의 실시예에서, 관리 엔클레이브는, 다른 관리 엔클레이브가 정확하게 동일한 코드를 실행하지 않는 경우라도 이 다른 관리 엔클레이브가 신뢰될 수 있는지를 결정할 수 있다. 예를 들어, 관리 엔클레이브(106-2-1)는, 관리 엔클레이브(106-2-1)에서 실행되는 관리 엔클레이브 코드의 작성자의 검증 가능 증거, 관리 엔클레이브(106-2-1)에서 실행되는 엔클레이브 코드의 목적의 검증 가능 증거, 및 관리 엔클레이브(106-2-1)에서 실행되는 관리 엔클레이브 코드의 버전의 검증 가능 증거에 기초한 엔클레이브 인증서(116-1)를 포함하는 인증 증명서(110-1)를 생성할 수 있다. 관리 엔클레이브(106-1-1)를 포함한 각각의 관리 엔클레이브는 인증 증명서(110-1)를 수신하고 엔클레이브 인증서(116-1)를 검증하는 기능을 포함할 수 있다.
이하는 일부 실시예에서 검증이 어떻게 기능하는 지의 다양한 예를 도시한다. 인증 증명서는 엔클레이브를 고유하게(uniquely) 나타낼 수 있는 정보를 포함한다. 이는 엔클레이브가 작성될 때 엔클레이브에 로딩되었던 모든 코드와 데이터의 디지털 지문을 포함하며, 옵션으로는 임의 신뢰된 기관에 의해 서명된 식별 정보도 포함할 수 있다. 가장 간단한 경우로서, 검증(예컨대, 2개의 엔클레이브 사이의)은 다음과 같은 일을 하는 관리 엔클레이브에 의해 수행될 수 있다.
1) 다른 관리 엔클레이브에 인증 보고서를 송신할 것을 요청.
2) 다른 관리 엔클레이브로부터의 인증 보고서가 원격 시스템에 의해 올바르게 서명되어서 이것이 신뢰할 수 있는 인증 보고서라는 것을 나타내는지 검증.
3) CPU에게 자신에 대한 인증 보고서를 준비하도록 요청(이는 CPU로부터 직접 온 것이기 때문에 신뢰할 수 있다).
4) 자신 인증서에 존재하는 신원 정보를 원격 인증서에 존재하는 신원 정보와 비교. 이들이 매칭되면, 관리 엔클레이브는 자신의 다른 카피와 대화하므로, 이를 신뢰할 수 있다.
상이한 버전의 관리 엔클레이브들에 의해 사용되는 혹은 엔클레이브와 관리 엔클레이브 사이에서 사용되는 대안의 버전에서는, 단계 3 및 4를 원격 인증서의 신원 정보를 어느 신원이 신뢰 엔클레이브를 나타내는지 결정하는데 사용되는 정책(policy) 정보와 비교하는 것으로 대체할 것이다.
키(108)는 키 패브릭(124)에 여분으로 저장될 수 있다. 키(108)는 여러 다양한 방식으로 키 패브릭(124)에 의해 획득될 수 있다. 예를 들어, 일부 실시예에서, 테넌트는 엔클레이브(106-2-1)와 같은 엔클레이브 중 하나에 키(108)를 제공할 수 있다. 다른 방안으로, 관리 엔클레이브는 머신으로부터 키(108)를 획득하기 위한 기능을 포함할 수 있다. 따라서, 예를 들어, 관리 엔클레이브(106-2-1)는 머신(100-2-1)의 CPU가 적절한 알고리즘을 사용해서 적절한 키를 계산할 것을 요청할 수 있다.
키(108)를 여분으로 저장하기 위해, 관리 엔클레이브(106)는 서로는 키를 공유할 수 있지만, 관리 엔클레이브(106)가 관련된 엔클레이브 내에 키(108)를 제공해서 관련된 엔클레이브가 테넌트의 데이터를 해독 가능하게 할 수 있는 경우를 제외하고는, 다른 위험에 노출된 관리 엔클레이브나 혹은 일부 실시예에서 동일한 코드(혹은 예를 들어 관리 엔클레이브 코드의 다른 버전과 같은 승인되고 검증 가능한 버전의 코드)를 실행하지 않는 다른 관리 엔클레이브를 포함한, 다른 개체와는 키를 공유하지 않을 것이다. 전술한 바와 같이, 관리 엔클레이브(106-2-1)는 머신(100-2-1)의 CPU가 적절한 알고리즘을 사용해서 적절한 키를 계산할 것을 요청할 수 있다. 이와 같이 도출하는 근원은 이후에 관리 엔클레이브가 다른 엔클레이브에 제공하는 키이다. 결과적으로, 관리 엔클레이브는 이 키를 CPU가 키 도출에 사용하는 위치에 제공한다. 대안의 실시예에서, 관리 엔클레이브는 다른 머신의 특수 레지스터에 키를 배치해서 키를 제공한다.
일부 실시예에서와 같이, 관리 엔클레이브가 전술한 바와 같이 동일한 관리 엔클레이브 코드 또는 다른 승인된 코드를 실행한다는 것을 결정함으로써, 관리 엔클레이브가 다른 관리 엔클레이브가 신뢰된다고 결정할 수 없다면, 관리 엔클레이브는 키(108)를 다른 관리 엔클레이브에 제공하지 않을 것이다. 이는, 관리 엔클레이브의 인증 증명서를 검사해서 관리 인증서가 매칭되는지 판정함으로써 달성될 수 있다. 따라서, 이 예에서 관리 엔클레이브는 다른 관리 엔클레이브가 동일한 지문 또는 승인된 지문을 가지고 있다고 판정할 수 있으므로, 다른 관리 엔클레이브와 통신하는 것이 안전할 수 있다.
관리 엔클레이브(106-2-1 내지 106-2-m) 각각은, 관리 엔클레이브가 실행되고 있는 특정 머신에 고유한 머신 키를 사용해서 관리 키를 암호화해서 암호화된 키(108-1 내지 108-m)를 각각 생성하고, 이 암호화된 키(108-1 내지 108-m)를 각각의 머신과 관련된 저장부(122-1 내지 122-m)에 저장한다. 관리 엔클레이브(106-2-1 내지 106-2-m) 각각은 암호화된 테넌트 키를 로컬하게 그리고 배타적으로 자신의 각각의 머신에 저장하도록 구성된다. 즉, 키 관리 패브릭에서 실행되는 관리 인클로저는 고객 키를 자신의 로컬 저장소에 암호화된 형태로 및 그 자신의 로컬 저장소에만 저장하는 기능을 갖고 있다.
가상 머신을 스핀 업시키기 위해서, 컴퓨트 패브릭(126) 내의 머신은 관리 엔클레이브(106) 및 엔클레이브(102)를 스핀 업시킬 것이다. 예를 들어, 도 2에 도시된 예에서, 머신(100-1-1)은 관리 엔클레이브(106-1-1) 및 엔클레이브(102-1-1)를 스핀 업한다. 관리 엔클레이브(106-1-1)은 키 패브릭(124) 내의 관리 엔클레이브(106-2-1 내지 106-2-m)과 동일한 코드를 실행한다. 따라서, 관리 엔클레이브(106-1-1)는 인증 증명서를 사용해서 관리 엔클레이브들(106-2-1 내지 106-2-m)와 안전하게 통신할 수 있다. 이로써, 키 패브릭(124)의 관리 엔클레이브는 저장부로부터 암호화된 테넌트 키를 취득하고, 암호화된 키를 해독하며, 컴퓨트 패브릭 내의 관리 엔클레이브에 키(108)를 제공하는 것이 가능하다. 예를 들어, 관리 엔클레이브(106-2-1)는 저장부(122-1)로부터 암호화된 키(108-1)를 취득할 수 있다. 관리 엔클레이브(106-2-1)는 머신(100-2-1)에 대한 머신 키를 사용해서 암호화된 키(108-1)를 해독해서 키(108)를 획득할 수 있다. 이후 키(108)는 관리 엔클레이브(106-1-1)에 제공될 수 있다.
머신(100-1-1)에서, 관리 엔클레이브(106-1-1)는 이 키(108)를 엔클레이브(102-1-1)에 제공할 수 있다. 이후 엔클레이브(102-1-1)는 저장부(120)로부터 테넌트에 대한 데이터를 획득하고 키(108)를 사용하여 데이터를 해독할 수 있다. 일 실시예에서, CPU에 의해 정의된 엔클레이브 아키텍쳐는, 관리 엔클레이브만이 사용할 수 있으며 엔클레이브의 어드레스 공간에 직접 키를 전달하는 것을 허용하는 특권(privileged) 명령어를 제공할 수 있다. 다른 실시예에서, 관리 엔클레이브 및 엔클레이브는 상호 인증(인증서를 통해)을 사용해서 보안 접속을 성립시킬 수 있고, 관리 엔클레이브는 보안 접속을 통해 키를 전달할 수 있다.
엔클레이브에서의 키의 운반 가능성을 원하는 테넌트는 자신을 대신해서 키를 관리하는 클라우드 서비스(200)를 신뢰하거나 혹은 자체 키 관리 시스템을 제공해야 한다. 어떤 모델이든 고객이 키 비밀을 유지하는 클라우드 서비스를 신뢰하지 않고도 수행될 수 있으며, 이는 하드웨어가 자신을 위해서 이를 수행할 것이기 때문이다. 따라서 정리하면 설계는 다음과 같이 될 수 있다.
이 설계는 키 관리 패브릭을 포함하며, 이는 고객별 키 관리 엔클레이브를 호스팅하는 서버 세트를 포함한다(이는 클라우드 제공자에 의해 기록될 수도 있고 혹은 고객이 제공할 수도 있음). 각각의 서버는 고객별로 (이동 불가능한) 관리 엔클레이브를 실행할 수 있으며, 이는 해당 고객을 위한 마스터 키를 저장하고 있다.
2. 새로운 고객 마스터 키가 요구될 때, 키 관리 패브릭은 고객의 관리 엔클레이브의 인스턴스를 각 키 관리 서버에서 시작한다. 한 인스턴스가 새로운 랜덤 키를 생성하고, 이후에 다른 모든 것에 분배한다(이는 엔클레이브 인증서를 사용해서 각 엔드 포인트가 그 고객에 대한 정확한 관리 엔클레이브인지를 인증한다). 이제 고객의 마스터 키가 충분히 복제된다.
3. 각각의 관리 엔클레이브는, 마스터 키를 밀봉하기 위해서 CPU-파생된 암호화 키를 획득한다. 이 밀봉 키는 엔클레이브 아키텍처에 의해 생성되며, 머신 고유의 비밀과 관리 엔클레이브의 암호화 해시를 포함한다. 이제 하드웨어 보호 키를 사용해서 각 마스터 키가 각 키 관리 서버에 유지된다.
4. 고객 워크로드 엔클레이브가 마스터 키를 필요로 할 때, 이는 키 관리 패브릭과 컨택트해서 고객-고유 관리 엔클레이브의 인스턴스에 대한 접속을 획득한다. 이 엔클레이브와의 보안 접속을 성립시키고, 인증서를 사용해서 정확한 엔클레이브로부터 키를 얻고 있는지 확인한 후에, 이 키를 획득한다.
이러한 시스템은 다음 특성 중 하나 이상을 가질 수 있다.
A. 각각의 마스터 키가 정확한 키 관리 코드에 고유한 암호화 키로 밀봉되어 있기 때문에(CPU의 엔클레이브 키 보호에 의해서) 클라우드 데이터센터는 어떠한 마스터 키도 공개할 수 없다. 공개하도록 관리 엔클레이브를 수정하려고 하면 밀봉 키를 변경해서 마스터 키가 성공적으로 해독되지 않게 한다. 또한, 관리 엔클레이브의 공개-방지 버전을 설득해서(convince) 마스터 키를 엔클레이브의 공개-가능 버전에 알려주려고 하는 시도는, 인증서에 의해 차단될 것이다(각 관리 엔클레이브는 마스터 키를 공개-방지되는 것으로 알고 있는 관리 엔클레이브의 버전에만 알려주기 때문에).
B. 각 고객 워크로드는 관리 엔클레이브가 마스터 키의 공개를 허용하지 않는다는 것을 확인할 수 있으며, 이는 마스터 키가 관리 엔클레이브의 특정한 공개-방지 버전에 의해서 제공되고 있다는 것을 증명할 수 있기 때문이다. 패러노이드 고객(paranoid customer)은 관리 엔클레이브 자체를 제공해야 이러한 보장을 얻을 수 있다.
C. 키 관리 패브릭이 키 사용 가능성을 보장하기에 충분한 복제를 제공하기 때문에, 마스터 키는 재난으로부터 보호된다.
이하의 설명은 다수의 방법 및 수행될 수 있는 방법 동작을 나타낸다. 방법 동작은 특정 순서로 설명되거나 흐름도에서 특정 순서로 일어나는 것으로 설명될 수는 있지만, 어떤 동작은 그 동작이 수행되기 이전에 다른 동작이 완료되는지에 따라서 달라지기 때문에, 특별히 언급되거나 요구되지 않는 한, 특정한 순서가 요구되는 것은 아니다.
이제 도 3을 참조하면 방법(300)이 도시된다. 이 방법(300)은 클라우드 시스템에서 테넌트를 안전하게 관리하기 위한 동작을 포함한다. 이 방법은 테넌트 키를 얻는 것을 포함한다(동작 302). 예를 들어, 방법(300)의 목적 상, 테넌트 키는 클라우드 서비스의 테넌트로부터 획득될 수 있다. 이에 더해서 혹은 이와 달리, 테넌트 키는 클라우드 서비스에서 생성되어서 관리 엔클레이브에 의해 획득될 수 있다. 이에 더해서 혹은 이와 달리, 특정 관리 엔클레이브는 다른 관리 엔클레이브로부터 테넌트 키를 획득할 수도 있다. 이하 더 상세하게 설명하는 바와 같이, 이는 동일한 애플리케이션 코드를 실행하는 관리 엔클레이브에 의해 가능하게 될 수 있다. 동일한 애플리케이션 코드는 동일한 애플리케이션 코드의 다른 버전을 포함할 수 있다. 즉, 어떤 관리 엔클레이브가 동일한 애플리케이션 코드의 한 버전을 실행하는 동안, 다른 관리 엔클레이브가 애플리케이션 코드의 다른 버전을 실행할 수 있다. 그러나 관리 엔클레이브들은 애플리케이션 코드를 확인해서(동일한 버전이든 다른 버전이든) 테넌트 키를 서로 전달할 수 있다.
이 방법(300)은, 클라우드 서비스의 컴퓨터 패브릭 내의 머신 상의 관리 엔클레이브에서, 머신의 엔클레이브에 테넌트 키를 제공하는 단계(동작 302)를 더 포함한다. 관리 엔클레이브와 엔클레이브는, 특정 엔클레이브에 대해, 이 특정 엔클레이브 자체에 있지 않은 어떠한 애플리케이션 코드에 대한 액세스도 금지되는 애플리케이션 어드레스 공간의 보호 영역이다. 일부 실시예에서, 관리 엔클레이브는, 테넌트 키를 관리 엔클레이브와 동일한 엔클레이브에서 실행되는 엔클레이브에만 제공할 수 있는 것으로 제한될 수 있다. 따라서, 예를 들어, 관리 엔클레이브(106-1-1)와 엔클레이브(102-1-1)가 모두 동일한 머신(100-1-1)에서 실행될 때, 관리 엔클레이브(106-1-1)는 엔클레이브(102-1-1)에 키(108)를 제공할 수 있다. 그러나, 관리 엔클레이브(106-1-1)와 엔클레이브(102-1-1)가 서로 다른 머신에서 실행되면, 관리 엔클레이브(106-1-1)는 엔클레이브(102-1-2)에 키(108)를 제공할 수 없다.
엔클레이브는 클라우드 서비스 테넌트를 위한 기능을 수행하도록 구성된다. 애플리케이션 코드가 엔클레이브의 다른 인스턴스에 있을 수 있지만, 동일한 애플리케이션 코드인 한 이 엔클레이브에 액세스할 수 있다. 예를 들어, 관리 엔클레이브(106-2-1)와 관리 엔클레이브(106-1-1)가 모두 동일한 애플리케이션 코드를 실행하고 있다면, 관리 엔클레이브(106-2-1)는 관리 엔클레이브(106-1-1)에 키(108)를 제공할 수 있다. 전술한 바와 같이, 이는 도 2에 도시된 바와 같이 인증 증명서(110-1)와 같은 인증 증명서를 사용해서 확인될 수 있다.
또한, 본 명세서에서 사용되는 동일한 "애플리케이션 코드"는 동일한 코드의 상이한 버전을 포함할 수 있다는 점에 주의한다. 그러나 관리 엔클레이브의 애플리케이션 코드는 동일한 애플리케이션 코드의 상이한 버전과의 통신이 가능하도록 구성될 수 있다. 예를 들어, 관리 엔클레이브(106-2-1)과 관리 엔클레이브(106-1-1)가 모두 동일한 애플리케이션 코드의 상이한 버전을 실행하고 있다면 관리 엔클레이브(106-2-1)는 관리 엔클레이브(106-1-1)에 키(108)를 제공할 수 있다. 전술한 바와 같이, 이것은 도 2에 도시된 인증 증명서(110-1)와 같은 인증 증명서를 사용해서 확인될 수 있다. 예를 들어, 일부 실시예는 관리 엔클레이브에 대한 엔클레이브 인증서를 포함하는 인증 증명서를 검증할 수 있다. 엔클레이브 인증서는 서명 기관의 검증 가능한 증거, 애플리케이션 코드가 어떤 기능을 갖고 있는지에 대한 서명 기관 선언의 검증 가능한 증거 및 애플리케이션 코드의 서명 기관 선언 버전의 검증 가능한 증거를 포함한다.
따라서, 방법(300)은 실행될 수 있으며, 여기서 테넌트 키를 얻는 것은, 동일한 애플리케이션 코드의 버전을 실행하는 다른 관리 엔클레이브가 상호 승인 가능하고 인증 가능한 관리 엔클레이브 코드를 실행한다는 것을 검증함으로써 이 다른 관리 엔클레이브로부터 테넌트 키를 얻는 것을 포함하며, 이로써 관리 엔클레이브들이 관리 엔클레이브 코드를 승인하고 확인함으로써 테넌트 키가 신뢰 방식으로 관리 엔클레이브들 사이에서 전달될 수 있게 된다.
일부 실시예에서, 다른 관리 엔클레이브가 상호 승인 가능하고 인증 가능한 관리 엔클레이브 코드를 실행한다는 것을 검증하는 것은, 다른 관리 엔클레이브가 동일한 애플리케이션 코드를 실행하는지를 검증하는 것을 포함한다.
이와 달리 혹은 이에 더해서, 이러한 일부 실시예에서, 다른 관리 엔클레이브가 상호 승인 가능하고 인증 가능한 관리 엔클레이브 코드를 실행한다는 것을 검증하는 것은, 다른 관리 엔클레이브가 애플리케이션 코드의 다른 버전으로서 검증될 수 있는 애플리케이션 코드의 다른 버전을 실행하는지를 검증하는 것을 포함한다.
일부 실시예에서, 다른 관리 엔클레이브가 애플리케이션 코드의 다른 버전을 실행하는지를 검증하는 것은, 관리 엔클레이브의 엔클레이브 인증서를 포함하는 인증 증명서를 검증하는 것을 포함한다. 엔클레이브 인증서는 서명 기관의 검증 가능한 증거, 애플리케이션 코드가 어떤 기능을 갖고 있는지에 대한 서명 기관 선언의 검증 가능한 증거 및 애플리케이션 코드의 서명 기관 선언 버전의 검증 가능한 증거를 포함한다.
일부 실시예에서, 관리 엔클레이브와 엔클레이브는, 상호 인증 및 인증서를 사용해서 키 발행 관리 엔클레이브가 신뢰할 수 있는 발행자이고 수신자 엔클레이브가 그 키의 신뢰 가능한 수신자인지를 검증하는, 피어이다. 이는 예를 들어 전술한 인증 증명서를 사용해서 수행할 수 있다. 특히, 관리 엔클레이브와 엔클레이브는 서로가 상호 승인되고 검증 가능한 코드를 사용하고 있다는 것을 각각 확인할 수 있다. 이는, 앞에서 정의된 것과 동일한 코드를 실행하는 관리 엔클레이브와 엔클레이브에 의해 또는 다른 상호 합의된 코드에 의해 행해질 수 있다.
본 명세서에 개시된 실시예는 하나 이상의 프로세서 및 컴퓨터 메모리와 같은 컴퓨터 판독 가능 매체를 포함하는 컴퓨터 시스템에 의해 실행될 수 있다. 특히, 컴퓨터 메모리는, 하나 이상의 프로세서에 의해 실행될 때 실시예에 개시된 동작과 같은, 다양한 기능들이 수행되게 하는 컴퓨터 실행 가능 명령어를 저장할 수 있다.
본 발명의 실시예는 이하 더 상세히 설명되는 바와 같이 컴퓨터 하드웨어를 포함하는 특수 목적 컴퓨터 또는 범용 컴퓨터를 포함하거나 이용할 수 있다. 본 발명의 범위 내의 실시예는 또한 컴퓨터 실행 가능 명령어 및/또는 데이터 구조를 전달 혹은 저장하는 물리적인 및 다른 컴퓨터 판독 가능 매체를 포함한다. 이러한 컴퓨터 판독 가능 매체는 범용 또는 특수 목적 컴퓨터 시스템에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 컴퓨터 실행 가능 명령어를 전달하는 컴퓨터 판독 가능 매체는 물리적 저장 매체이다. 컴퓨터 실행 가능 명령어를 운반하는 컴퓨터 판독 가능 매체는 전송 매체이다. 따라서, 비제한의 예로서, 본 발명의 실시예는, 물리적 컴퓨터 판독 가능 저장 매체 및 전송 컴퓨터 판독 가능 매체와 같은, 적어도 2개의 명백하게 상이한 종류의 컴퓨터 판독 가능 매체를 포함할 수 있다.
물리적 컴퓨터 판독 가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장 장치(CD, DVD 등), 자기 디스크 저장 장치 또는 다른 자기 저장 장치를 포함하고, 또는 소망의 프로그램 코드 수단을 컴퓨터 실행 가능 명령어나 데이터 구조의 형태로 저장하는데 사용될 수 있고 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함한다.
"네트워크"는 컴퓨터 시스템들 및/또는 모듈들 및/또는 다른 전자 장치들 사이에서의 전자 데이터의 전송을 가능하게 하는 하나 이상의 데이터 링크로서 정의된다. 정보가 네트워크 또는 다른 통신 접속(유선, 무선 또는 유선과 무선의 조합)을 통해 컴퓨터로 전송되거나 제공되면, 컴퓨터는 이 접속을 적절하게 전송 매체로 간주한다. 전송 매체는, 컴퓨터 실행 가능 명령어 또는 데이터 구조의 형태로 소망의 프로그램 코드 수단을 전달하는데 사용될 수 있으며, 그리고 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는, 네트워크 및/또는 데이터 링크를 포함할 수 있다. 상기의 조합은 또한 컴퓨터 판독 가능 매체의 범위 내에 포함된다.
또한, 컴퓨터 실행 가능 명령어 또는 데이터 구조의 형태인 프로그램 코드 수단은, 다양한 컴퓨터 시스템 구성 요소에 도달하면 전송 컴퓨터 판독 가능 매체로부터 물리 컴퓨터 판독 가능 저장 매체로(또는 그 반대)로 자동 전송될 수 있다. 예를 들어, 네트워크 또는 데이터 링크를 통해 수신된 컴퓨터 실행 가능 명령 또는 데이터 구조는 네트워크 인터페이스 모듈(예를 들어, "NIC") 내의 RAM에 버퍼링될 수 있고, 결국 컴퓨터 시스템 RAM 및/또는 컴퓨터 시스템의 휘발성이 적은 컴퓨터 판독 가능 물리적 저장 매체에 전달된다. 따라서, 컴퓨터 판독 가능 물리적 저장 매체는 또한 전송 매체를 이용하는(혹은 주로 이용하는) 컴퓨터 시스템 구성 요소에 포함될 수 있다.
컴퓨터 실행 가능 명령어는 예를 들어, 범용 컴퓨터, 특수 목적 컴퓨터 또는 특수 목적 처리 장치로 하여금 특정 기능 또는 기능 그룹을 수행하게 하는 명령어 및 데이터를 포함한다. 컴퓨터 실행 가능 명령어는 예를 들어, 바이너리, 어셈블리 언어와 같은 중간 포맷 명령어 또는 심지어 소스 코드일 수 있다. 비록 청구 대상을 구조적 특징 및/또는 방법 동작에 특정된 언어로 설명했지만, 첨부된 청구 범위에 한정되어 있는 청구 대상이 전술한 특징 또는 동작으로 반드시 한정되는 것은 아니라는 것을 이해해야 한다. 설명된 특징 및 동작은 청구 범위를 구현하는 예시적인 형태로서 개시된다.
당업자라면, 본 발명이 퍼스널 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터, 메시지 프로세서, 핸드 헬드 장치, 멀티-프로세서 시스템, 마이크로프로세서 기반 혹은 프로그래밍 가능 소비자 전자 장치, 네트워크 PC, 미니 컴퓨터, 메인 프레임 컴퓨터, 이동 전화기, PDA, 호출기, 라우터, 스위치 등을 포함하는 많은 타입의 컴퓨터 시스템 구성으로 네트워크 컴퓨팅 환경에서 실행될 수 있다는 것을 이해할 것이다. 본 발명은 또한 로컬 및 원격 컴퓨터 시스템 모두가 네트워크를 통해 접속된(유선 데이터 링크, 무선 데이터 링크 또는 유선 데이터 링크와 무선 데이터 링크의 조합에 의해) 로컬 및 원격 컴퓨터 시스템 모두가 태스크를 수행하는 분산 시스템 환경에서도 실시될 수 있다. 분산형 시스템 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치에 위치될 수 있다.
이와 달리 혹은 이에 더해서, 본 명세서에 설명된 기능은 적어도 부분적으로 하나 이상의 하드웨어 로직 컴포넌트에 의해 수행될 수 있다. 예를 들어, 사용될 수 있는 예시된 타입의 하드웨어 로직 컴포넌트는 FPGA(Field-programmable Gate Array), ASIC(Program-specific Integrated Circuit), ASSP(Program-specific Standard Product), SOC(System-on-a-chip system), CPLD(Complex Programmable Logic Device) 등을 포함하지만, 이것으로 한정되는 것은 아니다.
본 발명은 그 사상 또는 특성으로부터 벗어남 없이 다른 특정 형태로 실시될 수 있다. 모든 측면에서 설명된 실시예는 단지 예시적인 것으로서 한정의 의미가 아니다. 따라서, 본 발명의 범위는 전술한 설명이 아닌 첨부된 청구 범위에 의해 명시된다. 청구 범위와 균등한 의미 및 범위 내에 있는 모든 수정은 그 범주 내에 포함되어야 한다.

Claims (15)

  1. 시스템으로서,
    제 1 복수의 머신을 포함하는 컴퓨트 패브릭 - 상기 제 1 복수의 머신 각각은 제 1 관리 엔클레이브(management enclave) 및 테넌트(tenant) 엔클레이브를 포함하고, 상기 제 1 복수의 머신 각각에서, 상기 제 1 관리 엔클레이브는 하나 이상의 테넌트 키를 상기 테넌트 엔클레이브에 제공하도록 구성되고, 상기 테넌트 엔클레이브는 상기 테넌트 엔클레이브에 있지 않은 어떠한 애플리케이션 코드에 대해서도 액세스가 금지되는 애플리케이션 어드레스 공간의 보호 영역에 대응하며, 상기 제 1 관리 엔클레이브는 상기 제 1 관리 엔클레이브가 상기 하나 이상의 테넌트 키를 상기 테넌트 엔클레이브에 제공하는 것이 허용된다는 점을 제외하면 상기 제 1 관리 엔클레이브에 있지 않은 어떠한 애플리케이션 코드에 대해서도 액세스가 금지되는 애플리케이션 어드레스 공간의 보호 영역에 대응함 - 과,
    제 2 복수의 머신을 포함하는 키 패브릭 - 상기 제 2 복수의 머신 각각은 제 2 관리 엔클레이브를 실행하고, 상기 제 2 복수의 머신 각각에서, 상기 제 2 관리 엔클레이브는 하나 이상의 암호화된 테넌트 키가 상기 제 2 머신에 로컬하게 및 배타적으로 저장되게 하도록 구성되고, 상기 제 1 및 제 2 관리 엔클레이브 각각은 상호 승인 가능하고 인증 가능한 관리 엔클레이브 애플리케이션 코드를 실행하고, 이로써 관리 엔클레이브 애플리케이션 코드를 상이한 머신의 관리 엔클레이브들이 승인하고 인증함으로써 신뢰된 방식으로 상기 관리 엔클레이브들 사이에서 테넌트 키가 전달될 수 있게 함 -
    을 포함하는 시스템.
  2. 제 1 항에 있어서,
    상기 제 1 관리 엔클레이브 및 상기 제 2 관리 엔클레이브는 동일한 애플리케이션 코드를 실행함으로써 상호 승인 가능하고 인증 가능한 관리 엔클레이브 애플리케이션 코드를 실행하는
    시스템.
  3. 제 1 항에 있어서,
    상기 제 1 관리 엔클레이브 및 상기 제 2 관리 엔클레이브는, 동일한 애플리케이션 코드의 상이한 버전으로서 검증될 수 있는 상기 동일한 애플리케이션 코드의 상이한 버전을 실행함으로써, 상호 승인 가능하고 인증 가능한 관리 엔클레이브 애플리케이션 코드를 실행하는
    시스템.
  4. 제 3 항에 있어서,
    상기 제 1 관리 엔클레이브 및 상기 제 2 관리 엔클레이브는, 관리 엔클레이브의 엔클레이브 인증서를 포함하는 인증 증명서를 검증함으로써 상기 동일한 애플리케이션 코드의 상이한 버전을 검증하도록 구성되고,
    상기 엔클레이브 인증서는 서명 기관의 검증 가능한 증거, 애플리케이션 코드가 어떤 기능을 갖고 있는지에 대한 서명 기관 선언의 검증 가능한 증거 및 애플리케이션 코드의 서명 기관 선언 버전의 검증 가능한 증거를 포함하는
    시스템.
  5. 제 1 항에 있어서,
    상기 제 2 관리 엔클레이브 각각은, 각각의 제 2 관리 엔클레이브가 실행되고 있는 머신의 머신 키를 사용해서 테넌트 키를 암호화 및 해독하도록 구성되는
    시스템.
  6. 제 1 항에 있어서,
    상기 시스템은 테넌트 키를 생성하도록 구성되는
    시스템.
  7. 제 1 항에 있어서,
    상기 시스템은 테넌트로부터 테넌트 키를 수신하도록 구성되는
    시스템.
  8. 머신으로서,
    테넌트 엔클레이브 - 상기 테넌트 엔클레이브는, 상기 테넌트 엔클레이브에 하나 이상의 관리 엔클레이브에 의해서 키가 제공될 수 있다는 점을 제외하면, 상기 테넌트 엔클레이브 자체에 있지 않은 어떠한 애플리케이션 코드에 대해서도 액세스가 금지되는 애플리케이션 어드레스 공간의 보호 영역에 대응함 - 와,
    상기 테넌트 엔클레이브에 연결되는 관리 엔클레이브 - 상기 관리 엔클레이브는 상기 테넌트 엔클레이브에 키를 제공하도록 구성되고, 상기 관리 엔클레이브는 상기 관리 엔클레이브 자체에 있지 않은 어떠한 애플리케이션 코드에 대해서도 액세스가 금지되는 애플리케이션 어드레스 공간의 보호 영역에 대응함 -
    를 포함하는 머신.
  9. 제 8 항에 있어서,
    상기 관리 엔클레이브는 상호 승인 가능하고 인증 가능한 애플리케이션 코드를 실행하는 다른 관리 엔클레이브와 통신해서, 관리 엔클레이브 애플리케이션 코드를 관리 엔클레이브들이 승인하고 인증함으로써 신뢰된 방식으로 상기 관리 엔클레이브들 사이에서 테넌트 키가 전달될 수 있게 하도록 구성되는
    머신.
  10. 제 9 항에 있어서,
    상기 관리 엔클레이브는 동일한 애플리케이션 코드를 실행하는 다른 관리 엔클레이브와 통신하도록 구성되는
    머신.
  11. 제 9 항에 있어서,
    상기 관리 엔클레이브는 동일한 애플리케이션 코드의 상이한 버전으로서 검증될 수 있는 상기 동일한 애플리케이션 코드의 상이한 버전을 실행하는 다른 관리 엔클레이브와 통신하도록 구성되는
    머신.
  12. 제 11 항에 있어서,
    상기 관리 엔클레이브는, 관리 엔클레이브의 엔클레이브 인증서를 포함하는 인증 증명서를 검증함으로써 상기 동일한 애플리케이션 코드의 상이한 버전을 검증하도록 구성되고,
    상기 엔클레이브 인증서는 서명 기관의 검증 가능한 증거, 애플리케이션 코드가 어떤 기능을 갖고 있는지에 대한 서명 기관 선언의 검증 가능한 증거 및 애플리케이션 코드의 서명 기관 선언 버전의 검증 가능한 증거를 포함하는
    머신.
  13. 제 8 항에 있어서,
    상기 관리 엔클레이브는, 상기 머신의 머신 키를 사용해서 테넌트 키를 암호화 및 해독하도록 구성되는
    머신.
  14. 제 8 항에 있어서,
    상기 테넌트 엔클레이브는 클라우드 서비스 테넌트의 기능을 수행하도록 구성되고,
    상기 관리 엔클레이브는 테넌트 키를 상기 테넌트 엔클레이브에 제공하도록 구성되는
    머신.
  15. 클라우드 시스템에서 테넌트를 보안 관리하는 방법으로서,
    테넌트 키를 획득하는 단계와,
    클라우드 서비스의 컴퓨트 패브릭의 머신 상의 관리 엔클레이브에서, 상기 머신의 테넌트 엔클레이브에 상기 테넌트 키를 제공하는 단계 - 상기 관리 엔클레이브는 상기 관리 엔클레이브 자체에 있지 않은 어떠한 애플리케이션 코드에 대해서도 액세스가 금지되는 애플리케이션 어드레스 공간의 보호 영역에 대응하고, 상기 테넌트 엔클레이브는, 상기 테넌트 엔클레이브에 상기 관리 엔클레이브가 키를 제공할 수 있다는 점을 제외하면, 상기 테넌트 엔클레이브 자체에 있지 않은 어떠한 애플리케이션 코드에 대해서도 액세스가 금지되는 애플리케이션 어드레스 공간의 보호 영역에 대응하며, 상기 테넌트 엔클레이브는 클라우드 서비스 테넌트의 기능을 수행하도록 구성됨 -
    를 포함하는 방법.
KR1020197013849A 2016-11-14 2017-11-07 보안 키 관리 KR102512739B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662421835P 2016-11-14 2016-11-14
US62/421,835 2016-11-14
US15/458,627 US10439803B2 (en) 2016-11-14 2017-03-14 Secure key management
US15/458,627 2017-03-14
PCT/US2017/060261 WO2018089319A1 (en) 2016-11-14 2017-11-07 Secure key management

Publications (2)

Publication Number Publication Date
KR20190082793A true KR20190082793A (ko) 2019-07-10
KR102512739B1 KR102512739B1 (ko) 2023-03-21

Family

ID=62108837

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197013849A KR102512739B1 (ko) 2016-11-14 2017-11-07 보안 키 관리

Country Status (19)

Country Link
US (1) US10439803B2 (ko)
EP (1) EP3538993B1 (ko)
JP (1) JP7179725B2 (ko)
KR (1) KR102512739B1 (ko)
CN (1) CN109964205B (ko)
AU (1) AU2017359017B2 (ko)
BR (1) BR112019007690A2 (ko)
CA (1) CA3042257A1 (ko)
CL (1) CL2019001288A1 (ko)
CO (1) CO2019004771A2 (ko)
IL (1) IL266445B (ko)
MX (1) MX2019005508A (ko)
MY (1) MY201693A (ko)
NZ (1) NZ752240A (ko)
PH (1) PH12019550064A1 (ko)
RU (1) RU2750095C2 (ko)
SG (1) SG11201903885RA (ko)
WO (1) WO2018089319A1 (ko)
ZA (1) ZA201902220B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592670B2 (en) * 2016-06-28 2020-03-17 Intel Corporation Technologies for provisioning and managing secure launch enclave with platform firmware
US11405177B2 (en) * 2017-01-24 2022-08-02 Microsoft Technology Licensing, Llc Nested enclave identity
US10691837B1 (en) 2017-06-02 2020-06-23 Apple Inc. Multi-user storage volume encryption via secure enclave
US11943368B2 (en) 2017-11-03 2024-03-26 Microsoft Technology Licensing, Llc Provisioning trusted execution environment based on chain of trust including platform
WO2020052751A1 (en) * 2018-09-12 2020-03-19 Huawei Technologies Co., Ltd. Device and method for attesting distributed services
US10708247B2 (en) 2018-09-27 2020-07-07 Intel Corporation Technologies for providing secure utilization of tenant keys
WO2021004636A1 (en) * 2019-07-11 2021-01-14 Huawei Technologies Co., Ltd. Apparatus and method for disk attestation
US20230239163A1 (en) * 2022-01-26 2023-07-27 Microsoft Technology Licensing, Llc Establishing pki chain of trust in air gapped cloud

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150033316A1 (en) * 2013-07-23 2015-01-29 Vincent Scarlata Feature licensing in a secure processing environment

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135444B2 (en) 2006-10-19 2015-09-15 Novell, Inc. Trusted platform module (TPM) assisted data center management
EP2577539B1 (en) 2010-06-02 2018-12-19 VMware, Inc. Securing customer virtual machines in a multi-tenant cloud
US8700906B2 (en) 2011-01-14 2014-04-15 Microsoft Corporation Secure computing in multi-tenant data centers
EP2482220A1 (en) 2011-01-27 2012-08-01 SafeNet, Inc. Multi-enclave token
US9270459B2 (en) 2011-09-20 2016-02-23 Cloudbyte, Inc. Techniques for achieving tenant data confidentiality from cloud service provider administrators
US9292316B2 (en) * 2012-03-01 2016-03-22 International Business Machines Corporation Cloud of virtual clouds for increasing isolation among execution domains
US9348652B2 (en) 2012-07-02 2016-05-24 Vmware, Inc. Multi-tenant-cloud-aggregation and application-support system
US9282118B2 (en) * 2012-11-13 2016-03-08 Intel Corporation Policy enforcement in computing environment
US9037854B2 (en) * 2013-01-22 2015-05-19 Amazon Technologies, Inc. Privileged cryptographic services in a virtualized environment
KR101687275B1 (ko) 2013-03-14 2016-12-16 인텔 코포레이션 공개 클라우드에서의 신뢰 데이터 프로세싱
US9292673B2 (en) 2013-03-15 2016-03-22 International Business Machines Corporation Virtual key management and isolation of data deployments in multi-tenant environments
US9147086B1 (en) 2013-06-07 2015-09-29 Amazon Technologies, Inc. Trusted computing host
US9448950B2 (en) * 2013-12-24 2016-09-20 Intel Corporation Using authenticated manifests to enable external certification of multi-processor platforms
US20150264024A1 (en) 2014-03-15 2015-09-17 Alexander Frank System and method for confidential remote computing
TW201546649A (zh) 2014-06-05 2015-12-16 Cavium Inc 用於基於硬體安全模組的基於雲端的web服務安全管理的系統和方法
CA2949020C (en) 2014-06-23 2018-09-04 Porticor Ltd. Methods and devices for key management in an as-a-service context
US20160342801A1 (en) * 2014-06-25 2016-11-24 defend7, Inc. Containerized security as a service
US9792143B1 (en) * 2015-10-23 2017-10-17 Amazon Technologies, Inc. Platform secure execution modes
US9798641B2 (en) * 2015-12-22 2017-10-24 Intel Corporation Method to increase cloud availability and silicon isolation using secure enclaves
US20180097809A1 (en) * 2016-09-30 2018-04-05 Intel Corporation Securing access to cloud components
US10528721B2 (en) * 2016-10-20 2020-01-07 Intel Corporation Trusted packet processing for multi-domain separatization and security

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150033316A1 (en) * 2013-07-23 2015-01-29 Vincent Scarlata Feature licensing in a secure processing environment

Also Published As

Publication number Publication date
EP3538993B1 (en) 2021-12-01
ZA201902220B (en) 2020-08-26
JP7179725B2 (ja) 2022-11-29
AU2017359017B2 (en) 2021-11-04
AU2017359017A1 (en) 2019-04-18
EP3538993A1 (en) 2019-09-18
RU2019114207A (ru) 2020-11-13
CL2019001288A1 (es) 2019-09-13
WO2018089319A1 (en) 2018-05-17
CN109964205A (zh) 2019-07-02
US10439803B2 (en) 2019-10-08
MY201693A (en) 2024-03-13
RU2019114207A3 (ko) 2021-02-10
CA3042257A1 (en) 2018-05-17
NZ752240A (en) 2022-12-23
CO2019004771A2 (es) 2019-05-21
KR102512739B1 (ko) 2023-03-21
CN109964205B (zh) 2023-07-14
SG11201903885RA (en) 2019-05-30
PH12019550064A1 (en) 2020-01-20
IL266445A (en) 2019-06-30
RU2750095C2 (ru) 2021-06-22
JP2019536363A (ja) 2019-12-12
IL266445B (en) 2022-01-01
US20180139044A1 (en) 2018-05-17
MX2019005508A (es) 2019-08-12
BR112019007690A2 (pt) 2019-07-02

Similar Documents

Publication Publication Date Title
KR102512739B1 (ko) 보안 키 관리
US10397005B2 (en) Using a trusted execution environment as a trusted third party providing privacy for attestation
US11849029B2 (en) Method of data transfer, a method of controlling use of data and cryptographic device
RU2693313C2 (ru) Безопасный транспорт зашифрованных виртуальных машин с непрерывным доступом владельца
KR101687275B1 (ko) 공개 클라우드에서의 신뢰 데이터 프로세싱
US8856544B2 (en) System and method for providing secure virtual machines
EP3695335A1 (en) Secure application monitoring
US8145917B2 (en) Security bootstrapping for distributed architecture devices
CN113259123B (zh) 一种区块链数据写入、访问方法及装置
Tiwari et al. Design and Implementation of Enhanced Security Algorithm for Hybrid Cloud using Kerberos
Faisal et al. Research Article Establishment of Trust in Internet of Things by Integrating Trusted Platform Module: To Counter Cybersecurity Challenges
CN117375910A (zh) 一种基于不可信云fpga的可信通信方法及系统
CN116886374A (zh) 身份认证方法及云计算服务平台
Sharma et al. An implementation for conserving privacy based on encryption process to secured cloud computing environment

Legal Events

Date Code Title Description
AMND Amendment
E902 Notification of reason for refusal
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant