KR20160105511A - 키를 이전시키기 위한 방법 및 장치 - Google Patents

키를 이전시키기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20160105511A
KR20160105511A KR1020167021100A KR20167021100A KR20160105511A KR 20160105511 A KR20160105511 A KR 20160105511A KR 1020167021100 A KR1020167021100 A KR 1020167021100A KR 20167021100 A KR20167021100 A KR 20167021100A KR 20160105511 A KR20160105511 A KR 20160105511A
Authority
KR
South Korea
Prior art keywords
key
processing system
data processing
policy
authentication
Prior art date
Application number
KR1020167021100A
Other languages
English (en)
Other versions
KR101888903B1 (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 KR20160105511A publication Critical patent/KR20160105511A/ko
Application granted granted Critical
Publication of KR101888903B1 publication Critical patent/KR101888903B1/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)
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • 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/3226Cryptographic 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 using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/043Key management, e.g. using generic bootstrapping architecture [GBA] using a trusted network node as an anchor
    • H04W12/0433Key management protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/40Security arrangements using identity modules
    • H04W12/43Security arrangements using identity modules using shared identity modules, e.g. SIM sharing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

목적지 데이터 처리 시스템(DPS)는 소스 DPS로부터 키 이전 블록을 수신한다. 키 이전 블록은 기본 키의 암호화된 버전을 포함한다. 목적지 DPS는 (a) 인증 정책 및 (b) 컨텍스트 정책을 식별하는 사용자 입력을 수신한다. 목적지 DPS는 식별된 인증 정책에 기초하여, 사용자로부터 인증 데이터를 수집한다. 목적지 DPS는 식별된 컨텍스트 정책에 기초하여, 컨텍스트 데이터를 수집한다. 목적지 DPS는 인증 데이터 및 컨텍스트 데이터를 이용하여 키 이전 블록을 복호화한다. 인증 데이터는, 가능하게는 생체 데이터를 포함하는, 다수의 유형의 인증 데이터를 포함할 수 있다. 사용자는 또한 인덱스를 입력할 수 있으며, 목적지 DPS는 인덱스를 이용하여 난수 서버로부터 수를 검색할 수 있다. 목적지 DPS는 그 수를 이용하여 키 이전 블록을 복호화할 수 있다. 다른 실시예들이 기술 및 청구된다.

Description

키를 이전시키기 위한 방법 및 장치{METHODS AND APPARATUS FOR MIGRATING KEYS}
본 명세서에 개시된 실시예는 전반적으로 데이터 처리, 특히 키를 이전시키기 위한 방법 및 장치에 관한 것이다.
디지털 키(digital key)는 컴퓨터 보안의 많은 상이한 측면에 대해 필수적인 것이다. 예를 들어, 컴퓨터들 사이의 보안 통신을 제공하기 위해, 키가 통신을 암호화하기 위해 이용될 수 있다. 또한, 메시지의 인증을 제공하기 위해, 키는 메시지가 송신자로부터 수신자에게 송신되기 전에, 메시지를 디지털적으로 서명하기 위해 이용될 수 있다.
효과적인 보안을 위해, 일부 유형의 키는 개인 전용으로 유지되어야 한다. 예를 들어, 공개 키 암호화(public key cryptography)는, 키들 중 하나는 공개되고 다른 키는 개인 전용인, 키들의 쌍을 포함한다. 또한, 때로는 하나의 디바이스로부터 다른 디바이스로 개인 키(private key)를 카피 또는 이전할 필요성이 존재한다. 예컨대, 이전의(old) 개인용 컴퓨터(PC)의 사용자가 새로운 PC를 취득한다면, 사용자는 하나 이상의 개인 키를 이전의 PC로부터 새로운 PC로 이전할 필요가 있을 수 있다.
본 개시 내용은 키를 이전시키기 위한 방법 및 장치를 기술한다.
도 1은 키를 이전시키기 위한 특징부들을 갖는 예시적인 분산형 데이터 처리 시스템의 블록도이다.
도 2는 도 1의 소스 데이터 처리 시스템을 보다 상세히 도시하는 블록도이다.
도 3은 키에 대한 키 이전 블록을 준비하기 전에 키의 소유자를 인증하기 위한 예시적인 프로세스의 흐름도이다.
도 4는 키 이전 블록을 준비하기 위한 예시적인 프로세스의 흐름도이다.
도 5a 및 5b는 키를 이전시키기 위한 예시적인 프로세스의 흐름도를 제시한다.
본 개시 내용의 목적을 위해, 이전될 키는 기본 키(primary key)로서 지칭될 수 있다. 기본 키를 하나의 디바이스로부터 다른 디바이스로 이전시키기 위해, 기본 키의 소유자는 파일에 기본 키를 저장(save)할 수 있으며, 그 파일은 하나의 디바이스로부터 다른 디바이스로 카피될 수 있다. 본 개시 내용의 목적을 위해, 이전될 기본 키를 포함하는 파일은 아카이브 파일(archive file) 또는 키 이전 블록(key migration block)으로서 지칭될 수 있다.
다양한 공개 키 암호화 표준(Public-Key Cryptography Standard: PKCS)은 키에 관한 특정한 교시(teachings)를 포함한다. 예컨대, PKCS#12로 알려진 표준은 키를 저장하는데 사용될 수 있는 파일 포맷을 기술한다. PKCS#12에 따르면, 기본 키는 KEK(key encryption key)로 암호화되고, 그 후 기본 키의 암호화된 버전이 아카이브 파일에 저장된다. 아카이브 파일은 또한 PKCS#12 블록으로서 지칭될 수 있다.
PKCS#12에 따르면, KDF(key derivation function)를 이용하여, KEK를 유도 또는 생성한다. 특히, PKCS#12에 따르면, 사용자가 개인 식별 번호(personal identification number; PIN)를 KDF에 제공하고, KDF는 그러한 PIN을 이용하여 KEK를 생성한다. 그 다음, 사용자는 PIN을 비밀로 유지해야 하며, 그것은 원하는 타겟 엔티티와만 공유된다. 타겟 엔티티는 PKCS#12 알고리즘에 PIN을 입력함으로써 평문(cleartext) KEK를 획득할 수 있다. 그 다음, 타겟 엔티티는 KEK를 이용하여, PKCS#12 블록으로부터의 기본 키를 복호화(decrypt)할 수 있다.
PKCS#12에 따르면, PIN을 알고 있거나 또는 추측하는 누구라도 KDF와 함께 PIN을 이용하여, 동일한 KEK를 생성할 수 있다. 따라서, PKCS#12 표준은 PIN에 대한 사전 공격(dictionary attack)을 포함하는 무작위 공격(brute force attack)을 받게 된다. 예컨대, 공격자는 PKCS#12를 깨기 위해 오프라인 사전 공격을 수행 할 수 있다. 이러한 위험은 PKCS#12 블록이 (예를 들면, 원격으로 액세스될 수 있는 데이터 저장 디바이스에 대해) 공개적으로 이용가능한 경우에 특히 심각하다. 본 개시 내용의 목적을 위해, 원격으로 액세스될 수 있는 데이터 저장 디바이스는 총체적으로 "클라우드(the cloud)"로서 지칭될 수 있다. 클라우드 저장 서비스는 현재 DROPBOX, GOOGLEDOCS, SKYDRIVE, ICLOUD 등과 같은 이름 또는 상표 하에 제공된다. 클라우드 저장 서비스는 기존의 키 에스크로(key escrow) 및 키 이전 서비스에 대한 매력적인 대안이 될 수 있다. 그러나, 전형적인 클라우드 저장 서비스들은 강건한 키 이전을 구현하는데 필요한 보안 및 액세스 제어 의미(security and access control semantics)가 부족하다.
더욱이, PKCS#12 블록이 클라우드 상에서 공개적으로 이용가능한 경우, 공격자가 오프라인 사전 공격을 위한 블록의 카피를 쉽게 획득할 수 있다. PKCS#12 표준은 키들을 전송가능한 포맷으로 패키징하기 위한 방법을 기술하지만, 그 표준은 이전 또는 액세스를 관리하기 위한 신뢰할 수 있게 안전한 방법을 정의하지는 않는다. PKCS#12에 관한 보다 많은 정보는 인터넷 상에서 en.wikipedia.org/wiki/PKCS_12에서 찾을 수 있다.
본 개시 내용은 키를 보다 안전하게 이전시키기 위한 방법 및 장치를 기술한다. 후술하는 바와 같이, 예시의 목적을 위해, 본 개시 내용은 하나 이상의 예시적인 실시예를 기술한다. 그러나, 본 교시는 그러한 특정 실시예로 한정되지 않는다.
본 개시 내용은, 키의 소유자가 이전 프로세스를 지정 및 시행하는 보다 큰 능력을 갖는다는 점에서, 자기 주도적인(self-directed) 키 이전을 위한 방법을 기술한다. 적어도 하나의 실시예에서, 방법은 이전 기관 또는 임의의 다른 신뢰된 또는 교육된 제3자의 도움없이 수행된다. 다른 실시예에서, 방법은 하나 이상의 신뢰된 제3자 및 하나 이상의 교육된 제3자에 의해 수행되지만, 신뢰된 및 교육된 둘다의 경우의 제3자에 의해 수행되지는 않는다. 예를 들어, 방법은 키 이전 블록의 소스 및 목적지를 알기 때문에 교육된 것으로 고려되지만, 암호화된 키를 획득하기 위해 키 이전 블록을 언랩핑(unwrap)하는데 필요한 비밀을 알지 못하기 때문에 신뢰받는 것으로 고려되지 않는 데이터 서버를 이용할 수 있다. 그리고, 방법은 각각이 암호화 키를 획득하는데 필요한 비밀들의 일부를 알고 있기 때문에 신뢰된 것으로 고려되는 난수 서버(random number server), 인증 정책 서버(authentication policy server) 및 컨텍스트 정책 서버(context policy server)를 이용할 수 있다. 그러나, 방법은 공격자가 공격을 완료하기 위해 전부 3개의 손항을 행할 필요가 있도록, 난수 서버, 인증 정책 서버 및 컨텍스트 정책 서버가 분리 및 개별적일 것을 요구할 수 있다.
하나의 실시예는 키 유도를 위한 수 개의 추가적인 구성요소를 이용하며, 분리 의무(separation-of-duty)로서 알려진 보안 원리를 적용하는, 그러한 구성요소를 포함하거나 또는 획득하기 위한 방법들을 분리한다. 예컨대, (사용자 제어 하에 있거나 또는 신뢰된 서비스 제공자에게 계약한) 다수의 서비스 각각이 키 유도를 위해 필요한 물질의 상이한 부분에 기여할 수 있다. 재료의 전부가 올바르게 제공될 때에만, 키 이전이 성공할 것이다. 따라서, 공격자는 보안을 무능화시키기 전에 키 유도를 위한 입력에 기여하는 스테이징 서비스(staging service)들 전부를 손상해야 한다. 더욱이, 다양한 스테이징 서비스 제공자가 그들의 입력을 해제하는 엔드포인트가 인텔 코포레이션(Intel Corporation)에 의해 개발된 SGX(Software Guard eXtensions) 및/또는 인텔 코포레이션에 의해 개발된 CSE(Converged Security Engine)과 같은 신뢰 실행 환경(trusted execution environment: TEE) 기술들을 이용하여 강화될 수 있다. 추가적으로 또는 대안적으로, 엔드포인트는 가상화 기술에 의해서, 및/또는 다른 강화 기술들에 의해서, TRUSTZONE 상표 하의 ARM Holdings PLC에 의해 제공된 보안 확장에 의해 보호된 환경을 이용할 수 있다. CSE는 메인 CPU 및 메모리로부터 실행을 분리하는 시스템-온-칩(SoC)에 내장된 하드웨어 보안 엔진이다. SGX에 대한 보다 많은 정보는 인터넷 상에서 software.intel.com/en-us/blogs/2013/09/26/protecting-application-secrets-with-intel-sgx에서 찾을 수있다.
아래에 보다 상세히 기술된 바와 같이, 본 개시 내용은 클라우드 저장 서비스가 이전을 가능하게 하기 위해 이용될 수 있는, 이전의 종료 시점에 대한 액세스를 제어하는 다양한 컨텍스트-대응(context-sensitive) 정책을 포함하는 사용자 지향(user-directed) 키 이전을 위한 방법을 기술한다.
적어도 하나의 실시예에서, 방법은 이전의 소스 및 타겟 엔드포인트들 모두에 대한 TEE를 포함하고, 방법은 인증, 권한 부여(authorization) 및 콘텍스트 입력(contextual input)의 이용을 통합하는 KDF를 포함한다. 성공적인 이전은 랩핑(wrap)된 기본 키가 복호화되고, 그리고 그에 따라 사용을 위해 이용가능해지도록, 타겟 엔드포인트에 대해 KEK를 성공적으로 재유도할 것을 요구한다.
클라우드 서비스 상의 키 이전 블록의 저장은 클라우드 서비스를 손상시켰을 수 있는 공격자 또는 클라이드 서비스를 유지하는 권한을 갖고, 따라서 가입자 콘텐츠에 액세스할 수 있는 내부자에게 블록을 노출시킬 수 있다. 따라서, 클라우드 콘텐츠는 알려진 암호문(ciphertext) 공격, 알려진 평문 공격, 사전 공격 및 중간자 공격(man-in-the-middle attack)을 포함한 무작위 공격을 겪을 수 있다. 그러나, 본 발명에 따르면, 적어도 하나의 실시예에서, 상이한 KDF 입력들은 상이한 엔티티들에 의해 관리된다. 그러므로, 단일 엔티티가 KEK를 재유도하기 위해 필요한 모든 입력을 유지하지 않는다. 따라서, 수송중에 성공적으로 이전 블록으로 나누기 위해, 공격자는 입력을 제공하는 모든 엔티티들을 성공적으로 손상시킬 필요가 있을 것이다.
도 1은 일 실시예에 따른, 키 이전을 위한 특징부들을 갖는 예시적인 분산형 데이터 처리 시스템(10)의 블록도이다. 도 1의 실시예에서, 분산형 데이터 처리 시스템(10)은 소스 데이터 처리 시스템(data processing system; DPS)(20) 및 목적지 DPS(30)를 포함한다. 도시된 바와 같이, 소스 DPS(20) 및 목적지 DPS(30)는 각각의 TEE(22 및 32)를 제공하도록 구성된다. 아래에 보다 상세히 기술된 바와 같이, 분산형 데이터 처리 시스템(10)은 인증 정책 서버(40), 난수 서버(70), 컨텍스트 정책 서버(60) 및 데이터 서버(50)를 또한 포함한다. 도 1의 실시예에서, 분산형 데이터 처리 시스템(10) 내의 다양한 처리 시스템은 인터넷과 같은 WAN(wide area network)(12)을 통해 서로 통신할 수 있다. 일 실시예에서, 인증 정책 서버(40), 컨텍스트 정책 서버(60) 및 난수 서버(70)는 신뢰되는 반면, 데이터 서버(50)는 신뢰되지 않는다. 유사하게, TEE(22) 및 TEE(32)는 신뢰되는 반면, 소스 DPS(20) 및 목적지 DPS(30)는 신뢰되지 않는 호스트 소프트웨어를 또한 포함할 수 있다. 본 개시 내용의 목적을 위해, 하나의 항목은 그것이 비밀 정보를 갖거나 또는 "알고 있는" 경우에 신뢰되는 것으로 고려될 수 있으며, 여기서 비밀 정보는 키 이전 블록을 복호화하는데 필요한 정보이다. 반대로, 하나의 항목은 그것이 어떠한 비밀 정보에 대한 액세스도 갖지 않는 경우에 신뢰되지 않는 것으로 고려될 수 있다.
도 1에 도시된 바와 같이, 소스 DPS(20)는 TEE(22)에 저장된 기본 키(24)를 갖는다. 일 실시예에서, 기본 키(24)는 개인 키이다. 또한, 아래에 보다 상세히 기술된 바와 같이, 소스 DPS(20)는 TEE(22) 내의 KDF(26)를 실행하여 KEK(28)를 생성하고, 그 다음 소스 DPS(20)는 KEK(28)를 이용하여 기본 키(24)에 대한 키 이전 블록(52)을 생성한다. 그 다음, 소스 DPS(20)는 키 이전 블록(52)을 데이터 서버(50)로 카피할 수 있다. 아래에 보다 상세히 기술된 바와 같이, 그 다음, 사용자는 목적지 DPS(30)를 이용하여 데이터 서버(50)로부터 키 이전 블록(52)을 검색하고, 만약 사용자가 필요한 입력들 전부를 제공 및/또는 획득할 수 있는 경우, 사용자는 TEE(32) 내의 키 이전 블록(52)으로부터 기본 키(24)를 추출할 수 있다.
도 2는 소스 DPS(20)를 보다 상세히 예시하는 블록도이다. 도 2의 실시예에서, 소스 DPS(20)는 프로세서(80)와 통신하는, RAM(random access memory)(86), HDD(hard disk drive)(88), 네트워크 포트(82), TPM(trusted platform module)(84), 하나 이상의 생체 센서(biometric sensor)(110) 및 하나 이상의 컨텍스트 센서(112)를 포함한다. 추가적으로 또는 대안적으로, 소스 DPS(20)는 다른 유형의 저장 디바이스(예를 들면, 플래시 메모리), 다른 입/출력(I/O) 포트, 다수의 프로세서 및/또는 다른 구성요소를 포함할 수 있다. 목적지 DPS(30)의 구성은 소스 DPS(20)의 구성과 동일하거나 또는 유사할 수 있다. 인증 정책 서버(40), 데이터 서버(50), 컨텍스트 정책 서버(60) 및 난수 서버(70)는 또한 소스 DPS(20)에서와 같은 구성요소 및/또는 임의의 다른 적절한 구성요소를 포함할 수 있다.
파선을 이용한 박스에 의해 도시된 바와 같이, RAM(86)에서의 저장부의 일부분 및 HDD(88)에서의 저장부의 일부분은 TEE(22) 내에서 보호된다. TEE(32) 밖에서 실행되는 소프트웨어는 TEE(22)에 의해 보호된 저장 영역들 중 어느 것에도 액세스할 수 없다. 마찬가지로, TEE(32)는 목적지 DPS(30) 내의 RAM에서의 및 HDD에서의 저장 영역들 (및/또는 다른 저장 디바이스)의 부분들을 보호할 수 있다. 아래에 나타낸 바와 같이, 소프트웨어가 먼저 안전한 것으로서 입증되지 않는 한, 어떠한 소프트웨어도 TEE(22) 내에서 실행되도록 허용되지 않는다.
도 3은 기본 키에 대한 키 이전 블록을 준비하기 전에 기본 키의 소유자를 인증하기 위한 예시적인 프로세스의 흐름도이다. 설명의 목적을 위해, 기본 키의 소유자는 앨리스(Alice)로 지칭될 수 있으며, 타겟(예를 들면, 앨리스가, 기본 키를 받기를 원하는 사람)은 밥(Bob)으로 지칭될 수 있다. 그러나, 일부 상황, 예를 들면, 앨리스가 이전의 PC를 대체할 새로운 PC를 취득하였고, 그녀가 이전의 PC로부터 새로운 PC로 키를 이전시키고 있는 경우, 앨리스는 또한 밥으로서 기능할 수도 있다.
요약하면, 앨리스는 밥의 디바이스로 이전시키고자 원하는 키를 식별한다. 키는 앨리스가 신뢰하는 소스 TEE에서 보호되어, 호스트 멀웨어(host malware)에 의해 손상되지 않는다. 앨리스는 그녀가 결정하는 적절하게 강력한 다인자 인증 정책(multifactor authentication policy)을 이용하여 소스 TEE에 대해 인증한다. 컨텍스트 센서를 이용하여, 생체 탬플릿(biometric template)에 따른 그녀의 아이덴티티(identity)의 생체 데이터를 수집할 수 있다. 그녀의 신뢰된 인증 탬플릿 제공자(그녀가 이미 가입한 신뢰된 서비스일 수 있음)가 그녀에게, TEE가 앨리스를 TEE에 대해 인증하도록 허용하는 TEE에 대한 그녀의 아이덴티티의 기준 탬플릿(reference template)을 공급한다.
특히, 도 3의 프로세스는 소스 DPS(20)에서 동작할 수 있으며, 블록(110)에서 소스 DPS(20)의 사용자(예를 들면, 앨리스)가 이전될 개인 키를 선택하는 것으로 시작된다. 예컨대, 사용자는 이전될 기본 키(24)를 선택할 수 있다. 도 1 및 2에 도시된 바와 같이, 기본 키(24)는 소스 DPS(20)에서 TEE(22)에 의해 보호된다. TEE(22)의 특성으로 인해, 기본 키(24)의 소유자는 TEE(22)가 호스트 멀웨어에 의해 손상되지 않는 것으로 신뢰할 수 있다.
예컨대, TEE(22)(및 TEE(32))는 코드가 플랫폼의 나머지로부터 분리되는 CPU 코어 상에서 실행되고, 데이터가 플랫폼의 나머지로부터 분리되는 저장부에 저장되는 TEE 환경을 제공할 수 있다. TEE 환경은 분리된 시그널링(예를 들면, 인터럽트) 및 신뢰된 I/O(예를 들면, TEE를 통한 것을 제외하고는 액세스될 수 없는 전용 I/O 디바이스를 이용함)를 또한 가질 수 있다. 더욱이, 적어도 하나의 실시예에서, TEE에서 실행하기 위한 소프트웨어(펌웨어를 포함함)가 서명(sign)되고, 그 서명은 실행되도록 허용되기 전에 입증(verify)된다. 또한, TEE 환경은 코드 및 데이터를 또한 암호화 및 복호화할 수 있다. 예컨대, TEE 외부로부터 액세스될 수 있는 디바이스 상에 데이터를 저장하기 전에, TEE는 해당 데이터를 암호화할 수 있다.
도 3의 블록(112)에 도시된 바와 같이, 사용자는 또한 현재 사용자가 기본 키의 소유자임을 입증하기 위해 이용할 소스 DPS(20)에 대한 소유자 인증 정책을 선택할 수 있다. 일 실시예에서, TEE(22)는 인증 정책 서버(40)로부터 다수의 인증 정책 정의(42)를 검색하고, 그 다음 TEE(22)는 대응하는 인덱스를 갖는, 그러한 인증 정책의 설명 또는 요약을 갖는 리스트를 디스플레이한다. 그 다음, 사용자는 그러한 정책들 중 하나를 선택한다. 일 실시예에서, 정책들 각각은 사용자를 소유자로서 인증하기 위해 인증될 다수의 인증 인자(authentication factor)를 요구한다. 예를 들어, TEE(22)는 다음과 같은 것을 포함하는 정책들의 리스트를 제공할 수 있다.
ㆍ 핑거프린트 및 보이스 프린트의 인증을 요구하는 제1 정책;
ㆍ 핑거프린트 및 망막 이미지의 인증을 요구하는 제2 정책; 및
ㆍ 보이스 프린트 및 망막 이미지의 인증을 요구하는 제3 정책.
인증 정책들은, 제한적인 것은 아니지만, 손가락 정맥(finger vein), 손바닥 정맥, 홍채 인식(iris scan), 심전도(electrocardiogram; ECG) 판독, 스마트카드 토큰(smartcard token), 1회용 패스워드 토큰(one-time-password token), 지오-펜스 근접성(geo-fence proximity), 사용자 존재 감지(user-presence sensing) 등을 포함하는, 임의의 적절한 유형 또는 유형들의 인증 데이터 또는 인자를 포함할 수 있다.
본 개시 내용의 목적을 위해, 생체 탬플릿은 특정 개인에 대한 특정 유형의 생체 측정(예를 들면, 엄지손가락 지문(thumbprint))을 위한 생체 데이터의 세트이다. 어떠한 개인이 클레임될 개인임을 인증하기 위해, 새로운 생체 탬플릿을 생성하기 위한 새로운 생체 측정이 수행되고, 그 다음 새로운 탬플릿은 하나 이상의 기준 탬플릿에 대해 비교된다.
블록(114)에 도시된 바와 같이, 사용자가 인증 정책을 선택하면, TEE(22)는 선택된 정책에 대해 요구되는 것으로서, 인증 정책 서버(40)로부터 기본 키(24)의 소유자에 대한 하나 이상의 기준 생체 탬블릿을 획득한다. 일 실시예에서, 인증 정책 서버(40)는 인증 정책 정의(42) 뿐만 아니라, 기준 탬플릿(44)을 제공한다. 따라서, 인증 정책 서버(40)는 인증 탬플릿 서버로서 지칭될 수도 있다. 다른 실시예에서, 분리된 인증 정책 서버들 및 인증 탬플릿 서버들이 이용될 수 있다. 도 1의 실시예에서, 인증 정책 서버(40)는 도 1에 도시된 바와 같은, 기본 키(24)의 소유자에 대한 하나 이상의 기준 탬플릿(44)을 포함하는, 많은 상이한 사람들에 대한 생체 인증 데이터를 갖는 기준 탬플릿을 포함할 수 있다. 기준 탬플릿(44)은 기본 키(24)의 소유자의 핑거프린트, 보이스 프린트 및 망막 이미지에 대한 생체 데이터를 포함할 수 있다. 대안적인 실시예에서, 개인에 대한 각각의 상이한 유형의 생체 데이터는 상이한 탬플릿에 저장될 수 있다.
블록(116)에 도시된 바와 같이, 그 다음, TEE(22)는 현재 사용자로부터 생체 데이터를 획득한다. 예컨대, TEE(22)는 현재 사용자로부터 핑거프린트를 스캐닝, 망막을 스캐닝, 및/또는 보이스 프린트를 레코딩할 수 있다. 블록(120)에 도시된 바와 같이, 그 다음, TEE(22)는 현재 사용자로부터의 생체 데이터를 기준 탬블릿(44)에서의 생체 데이터와 비교하여, 현재 사용자가 소유자인지의 여부를 결정한다.
따라서, 사용자는 그 또는 그녀가 결정하는 적절하게 강력한 다인자 인증 정책을 이용하여 TEE(22)에 대해 인증한다. 생체 데이터가 매칭되지 않는다면, 블록(130)에 도시된 바와 같이 TEE(22)는 에러 메시지를 디스플레이할 수 있으며, 그 다음, 프로세스는 종료될 수 있다. 그러나, 생체 데이터가 매칭된다면, TEE(22)는 블록(140)에 도시되고, 아래에서 더욱 상세히 기술되는 바와 같이, 키 이전 블록(52)을 준비하도록 진행될 수 있다.
도 4는 키 이전 블록(52)을 준비하기 위한 예시적인 프로세스의 흐름도이다. 일 실시예에서, 소스 DPS(20)는 도 4의 프로세스를 이용하여 도 3의 블록(140)을 구현한다.
앨리스는 키 이전 블록(24)이 무작위 암호 공격으로부터 보호되기를 원한다. 그러므로, 블록(210)에 도시된 바와 같이, 도 4의 프로세스는 앨리스가 TEE(22)를 이용하여 난수 서버(70)로부터 난수들의 리스트를 획득하는 것으로 시작된다. 대안적으로, 앨리스는 TEE에서의 난수 생성기를 이용하여 그녀 자신이 그러한 리스트를 생성한 후, 그 리스트를 난수 서버(70)와 공유할 수 있다. 어느 경우이든지, 그녀는 난수 서버(70)에게, 리스트로부터 어떤 수를 그녀가 KDF에서 이용할지를 말하지 않는다. 이것은 난수 서버(70)에서의 고용인 또는 다른 내부자가 앨리스의 선택을 쉽게 알지 못하도록 보장하기 위한 것이다.
블록(212)에 도시된 바와 같이, 그 다음, TEE(22)는 보호된 트랜잭션 디스플레이를 갖는 명칭 또는 상표 INTEL IDENTITY PROTECTION TECHNOLOGY(INTEL IPT) 하에 분배된 기술과 같은 신뢰된 I/O 기술을 이용하여 앨리스에게 리스트를 제공한다. 보호된 트랜잭션 디스플레이를 갖는 INTEL IPT에 관한 추가적인 세부사항은 인터넷 상에서 www.intel.com/content/www/us/en/architecture-and-technology/identity-protection/protected-transation-display.html에서 찾을 수 있다. 블록(214)에 도시된 바와 같이, 그 다음, 앨리스는 랜덤화된 PIN 패드 디스플레이를 이용하여 리스트로부터 난수들 중 하나를 선택할 수 있으며, 여기서 PIN은 리스트에서의 행 번호에 대응한다. 예컨대, 00001의 PIN 값은 리스트에서의 첫 번째 엔트리를 나타내고, 01234의 PIN 값은 1,234 번째 엔트리를 나타낼 수 있다. 선택된 난수를 식별하는 PIN은 난수(random-number) PIN 또는 RPIN으로서 지칭될 수도 있다. 앨리스는 RPIN 값(즉, 그녀가 선택한 행 번호)를 기억해야 하는데, 키 이전 블록(52)으로부터 기본 키(24)를 추출하는데 있어서 결국은 그 번호가 필요하기 때문이다.
추가적으로 또는 대안적으로, 앨리스는 하나 이상의 비트를 RPIN에 대해(및/또는 다른 PIN들 중 임의의 것에 대해) 붙일 수 있다. 키 이전 소프트웨어는 그러한 비트를 KDF(26)에 대한 직접적인 입력으로서 이용하여, 내부자 공격을 더 방지할 수 있다. 유사하게, 밥이 목적지 DPS(30)에서 기본 키(24)를 언랩핑할 때, 밥은 앨리스가 붙였던 것과 동일한 값들을 붙일 필요가 있으므로, 목적지 DPS(30)에서의 키 이전 소프트웨어는 마찬가지로 그러한 비트를 KDF(26)에 대한 직접적인 입력으로서 이용할 수 있다.
블록(220)에 도시된 바와 같이, 그 다음, 앨리스는 원하는 타겟(즉, 키 이전 블록(52)으로부터 기본 키(24)를 추출할 수 있어야 하는 개인 또는 엔티티)을 식별하기 위한 식별자를 입력 또는 선택한다. 예컨대, 앨리스는 원하는 타겟을 "IdProvider/Bob"으로서 식별할 수 있으며, 여기서 "IdProvider"는 특정 도메인을 식별하는 스트링(string)이고, "Bob"은 해당 도메인 내의 타겟에 대한 사용자 아이디(userid)이다. 상이한 타겟들 간을 구별하도록 기능하는 임의의 값이 도메인에 대해 이용될 수 있으며, 또는 사용자 아이디의 명확화가 필요치 않은 경우 도메인은 생략될 수 있다.
블록(222)에 도시된 바와 같이, 앨리스는 또한 인증 정책 서버(40)로부터 인증 정책들의 리스트를 획득할 수 있다. 리스트는 다수의 인증 정책 정의(42)와 더불어, 각각의 인증 정책의 설명 또는 요약, 및 대응하는 인덱스를 포함할 수 있다. 일 실시예에서, 인증 정책 서버(40)는 TEE(22)에게 MFA(multi-factor authentication) 정책들의 리스트를 제공한다. 그 리스트는 다수의 행을 포함할 수 있으며, 각각의 행은 (a) 행 번호 또는 인덱스(예를 들면, "00001"), (b) 특정 인증 정책(예를 들면, "Authenticate Intel chipset rel 1.0, fingerprint, face, Intel 3D camera v1")의 텍스트 설명 또는 요약, 및 (c) 해당 정책의 전체 표현을 갖는다. 예컨대, 예시적인 인증 정책 및 예시적인 컨텍스트 정책은 다음과 같이 표현될 수 있다.
Figure pct00001
Figure pct00002
Figure pct00003
Figure pct00004
블록(224 및 226)에 도시된 바와 같이, TEE(22)는 신뢰된 출력 기술을 이용하여 리스트 (또는 단지 리스트로부터의 인덱스 및 텍스트 요약)을 제공할 수 있으며, 그 다음, 앨리스는 타겟을 인증하는데 이용될 원하는 정책을 리스트로부터 선택할 수 있다. 예컨대, 앨리스는 랜덤화된 PIN 패드 디스플레이를 이용하여 리스트로부터 원하는 인증 정책을 선택할 수 있으며, 여기서 PIN은 리스트에서의 인덱스 또는 행 번호와 매칭된다. 선택된 인증 정책을 식별하는 PIN은 인증-정책(authentication-policy) PIN 또는 APIN으로 지칭될 수도 있다. 대안적으로, 타겟에 대한 인증 정책에 대해, TEE(22)는 단순히 TEE(22)가 앨리스를 인증하기 위해 이용했던 동일한 인증 정책 (및 대응하는 APIN)을 이용할 수 있다. 어느 경우이든지, 앨리스는 인덱스 또는 APIN 값을 기억해야 하는데, 그 번호는 결국 키 이전 블록(52)으로부터 기본 키(24)를 추출하는데 필요할 것이기 때문이다.
블록(228)에 도시된 바와 같이, 그 다음, TEE(22)는 선택된 인증 정책 및 타겟에 대한 지정된 식별자를 이용하여, 인증 정책 서버(40)로부터 타겟에 대한 하나 이상의 기준 탬플릿을 획득할 수 있다. 그 다음, TEE(22)는 기준 탬플릿(들)을 해싱(hash)할 수 있다. 타겟의 개인 정책을 존중하기 위해, TEE(22)는 탬플릿이 TEE(22)의 외부로 노출되는 것을 방지할 수 있다. 또한, TEE(22)는 선택된 인증 정책의 텍스트 요약 및/또는 전체 표현을 해싱할 수 있다.
블록(230)에 도시된 바와 같이, 그 다음, TEE(22)는 컨텍스트 정책 서버(60)로부터 다수의 컨텍스트 정책 정의(62)를 획득할 수 있다. 각각의 컨텍스트 정책 정의(62)는 키 이전 블록(52)이 복호화될 컨텍스트의 필요한 부분으로서 특정 속성 또는 요소를 규정할 수 있다. 그러한 속성은, 제한적인 것은 아니지만, 위치(예를 들면, 지오펜스 좌표 또는 경계), 시각(time of day), 타겟 TEE 소프트웨어의 버전 등을 포함할 수 있다. 블록(232 및 234)에 도시된 바와 같이, TEE(22)는 컨텍스트 정책들의 리스트를 앨리스에게 제공(예를 들면, 각각의 컨텍스트 정책의 인덱스 및 텍스트 설명 또는 요약을 디스플레이)할 수 있으며, 앨리스는 리스트로부터 원하는 컨텍스트 정책을 선택할 수 있다. TEE(22)는 전술한 바와 같은 기술들(예를 들면, 신뢰된 I/O 기술)을 이용하여, 리스트를 제공 및 앨리스로부터 입력(예를 들면, 선택된 행 또는 인덱스를 식별하기 위한 PIN)을 수신할 수 있다. 선택된 컨텍스트 정책을 식별하는 PIN은 컨텍스트-정책(context-policy) PIN 또는 CPIN으로 지칭될 수도 있다.
대안적으로, 앨리스는 XACML(eXtensible Access Control Markup Language)와 같은 정책 정의 언어를 이용하여 이들 요구된 요소를 지정하는 컨텍스트 정책을 수동으로 서술할 수 있으며, 그 다음, 그녀는 정책을 컨텍스트 정책 서버(60)에 업로딩할 수 있다.
어느 컨텍스트 요소가 고려될 것인지를 지정하는 것 이외에, 앨리스는 이들 요소 중 일부 또는 전부에 대해 필요한 값들을 지정할 수 있다. 예컨대, 시간 및 위치가 요구된 컨텍스트의 일부임을 지정하는 것 이외에, 앨리스는 어느 지정 시간이 수용가능한지, 및 특정 위치를 지정할 수 있다. 실제 값(기준 값)은 정책과 함께, 또는 정책의 구조를 따르는 분리된 파일을 이용하여 포함될 수 있다.
그 다음, TEE(22)는 선택된 컨텍스트 정책의 텍스트 요약 및/또는 전체 표현을 해싱할 수 있다.
블록(240)에 도시된 바와 같이, TEE(22)는 KDF(26)를 형성한다. 일 실시예에서, TEE(22)는 아래와 같은, 위에서의 요소 기준들의 다수 또는 전부를 포함하도록 KDF(26)를 생성한다.
ㆍ 앨리스에 의해 선택된 난수(예를 들면, "Rand1234");
ㆍ 대응하는 RPIN 값;
ㆍ 원하는 타겟의 지정된 식별자(예를 들면, "IdProvider/Bob");
ㆍ APIN;
ㆍ 선택된 인증 정책의 텍스트 설명의 해시(예를 들면, "AuthPolicy");
ㆍ 타겟에 대한 각각의 기준 탬플릿의 해시(예를 들면, "RefTplt_Bob");
ㆍ CPIN; 및
ㆍ 선택된 컨텍스트 정책의 텍스트 설명의 해시(예를 들면, "ContextPolicy").
블록(242)에 도시된 바와 같이, 그 다음, TEE(22)는 KDF(26)를 이용하여 KEK(28)를 생성할 수 있다. 따라서, 일 실시예에서, KDF는 다음과 같이 기술될 수 있다.
Figure pct00005
대안적으로, KDF는 다음과 같이 기술될 수 있다.
Figure pct00006
블록(244)에 도시된 바와 같이, 그 다음, 앨리스는 KEK(28)를 이용하여 키 이전 블록(52)을 생성할 수 있다. 즉, 앨리스는 KEK(28)를 이용하여 기본 키(24)를 랩핑할 수 있다. 키 이전 블록(52)은 예를 들면, PKCS#12 블록일 수 있다. 블록(250)에 도시된 바와 같이, 그 다음, 앨리스는 키 이전 블록(52)을 데이터 서버(50)로 카피할 수 있다. 데이터 서버(50)는 클라우드 저장 서비스를 제공할 수 있으며, 키 이전 블록(52)은 앨리스가 밥으로의 이전을 완료할 필요가 있는 시간까지 데이터 서버(50) 상에 상주할 수 있다. 이전이 완료되면, 데이터 서버(50)는 키 이전 블록(52)을 삭제할 수 있다. 대안적으로, 데이터 서버(50)는 잠시 동안 키 이전 블록(52)을 보관(archive)할 수 있어서, 복제/이전 서비스 외에도, 백업/복구 서비스로서 동작한다.
블록(252)에 도시된 바와 같이, 앨리스는 데이터를 밥에게 송신하여, 기본 키(24)를 언랩핑하는데 필요할 정보를 밥이 갖도록 할 수 있다. 예컨대, 앨리스는 밥에게 RIP, APIN 및 CPIN을 제공할 수 있다. 다른 그러한 데이터 항목들은 앨리스에 의해 밥의 식별자로서 이용된 스트링, 요구된 인증 인자들의 설명 및 임의의 요구된 컨텍스트 조건 등을 포함할 수 있다. 앨리스는 임의의 적절한 기술 또는 기술들의 조합을 이용하여, 필요한 정보를 밥에게 송신할 수 있다. 예컨대, 앨리스는 밥을 직접 만나서, 그에게 하나 이상의 정보 항목(예를 들면, RPIN)을 말할 수 있고/있거나, 앨리스는 하나 이상의 정보 항목을 이메일을 통해, USB(universal serial bus) 디바이스를 통해, 종이에 기록하는 등에 의해, 밥에게 송신할 수 있다.
그 다음, 개인 키(24)를 이전시키기 위해 준비하는 프로세스가 종료될 수 있다.
일 실시예에 따르면, KDF(26)의 제1 파라미터는 난수이다. 이러한 값은, National Institute of Standards and Technology (NIST) Special Publication 800-108, "Recommendation for Key Derivation Using Pseudorandom Functions," Lily Chen, October 2009 ("SP800-108")에 기술된 컨벤션에 따라, KDK(key derivation key)인 것으로 또한 고려될 수 있다. KDF(26)에 대한 후속 파라미터들은 함께 연관될 수 있으며, SP800-108에 기술된 PRF(pseudorandom function)의 "라벨(label)" 파라미터의 연장으로서 본질적으로 구현될 수 있다. SP800-108로부터의 다른 파라미터들은 KDF(26)에 의해 또한 이용될 수 있다. 아래에 보다 상세히 기술된 바와 같이, 타겟은 RPIN, APIN 및 CPIN 파라미터들을 이용하여, 기본 키(24)을 언랩핑하는데 이용된 KDF에 포함될 실제 값을 룩업(lookup)할 수 있다. 대안적으로, 룩업된 값들은 SP800-108에 따라 PRF에서 이용될 수 있으며, KDF는 PRF를 이용한다. 그들 RPIN, APIN 및 CPIN 파라미터들은 무슨 값이 앨리스로부터 밥에게 통신될지, 그 다음 실제 PRF를 구성하는 함수에 공급될지를 보기 위해 KDF 정의에 포함된다.
전술한 동작들에서, TEE(22)는 난수 서버(70), 인증 정책 서버(40) 및 컨텍스트 정책 서버(60) 각각과의 세션을 개방하여, 인덱스로서 RPIN, APIN 및 CPIN에 의해 식별된 요소들을 획득한다. 그 다음, 그러한 요소들은 KDF(26)에 대한 입력 파라미터에 포함된다. 또한, PIN 값이 KDF에 포함되어, 밥이 앨리스로부터 이전 트랜잭션에 관한 정보를 얻었고, 밥의 TEE가 앨리스와 동일한 서버들을 이용하는 것을 보장할 수 있다. KDF(26)는 단지 특정한 탬플릿 매칭만이 이용될 수 있음을 주장하기 위해 밥의 아이덴티티의 기준 탬플릿(들)을 포함할 수 있다. 즉, 앨리스는 예를 들면, 2012년 1월 2일, 1:15pm에 수집된 기준 엄지손가락 지문을 선택할 수 있다. 그 다음, 타겟에 의해 제공된 엄지손가락 지문은 해당 특정 기준 엄지손가락 지문과 매칭되어야 한다. KDF(26)는 CPIN 및 컨텍스트 정책의 해시를 포함하여, 기본 키(24)가 언랩핑될 수 있는 컨텍스트 환경을 지정할 수 있다.
따라서, 본 개시 내용에 따르면, TEE는 PIN 및 잠재적인 KDK들의 리스트로부터 KDK를 선택하기 위한 알고리즘 또는 서비스를 이용함으로써, PRF 파라미터로서의 이용을 위한 KDK를 선택할 수 있다. 이러한 방안의 암호 값이 난수 서버이거나, 또는 난수 제공자(RNP)가 매우 큰 난수들(예를 들면, 512 바이트 이상)의 리스트를 생성할 수 있다. 이것은 KDK에서의 많은 엔트로피를 보장한다. 또한, 그것은 난수 또는 KDK가 메시지보다 큰 1회용 패드(one-time-pad) 암호화의 이용을 허용한다. PIN은 리스트 내로의 인덱스 값이다. 그러므로, 리스트의 크기는 (KDK의 크기에 비하여) 작을 수 있으며, PIN은 기억하는 것 및 개인들 사이에서 전송하는 것이 더 용이할 수 있다. 다른 정책 요건을 수반하지 않는 실시예에서, KDF 파라미터 (및 관련된 동작)은 RPIN으로 제한되거나, 또는 RPIN 및 난수 자체로 제한될 수 있으며, 그러한 실시예는 키 이전 동작의 강력한 보호를 보장하기에 충분할 수 있다.
도 5a 및 5b는 기본 키(24)를 이전시키기 위한 예시적인 프로세스의 흐름도를 제공한다. 아래에 보다 상세히 기술된 바와 같이, 밥의 TEE는 (a) 난수 서버(70), 인증 정책 서버(40) 및 컨텍스트 정책 서버(60)를 필요에 따라 이용하여, KDF 입력들을 리어셈블링하고, (b) KDF 함수를 적용하여 KEK(28)를 재생성하고, (c) KEK(28)를 이용하여 키 이전 블록(52)을 언랩핑함으로써 이전을 완료한다.
도 5a의 프로세스는 앨리스가 키 이전 블록(52)을 데이터 서버(50)로 이미 카피한 이후에 시작된다. 그 다음, 블록(310)에 도시된 바와 같이, 밥은 요구된 이전 파라미터(예를 들면, RPIN, APIN, CPIN, 타겟 식별자 등)를 앨리스로부터 수신한다. 또한, 블록(312)에 도시된 바와 같이, TEE(32)는 데이터 서버(50)로부터 키 이전 블록(52)을 획득한다.
블록(314)에 도시된 바와 같이, 그 다음, 밥은 신뢰된 입력 채널을 이용하여 RPIN, APIN 및 CPIN 값들을 TEE(32)에 입력한다. 예를 들어, TEE(32)는 신뢰된 I/O 기술을 이용하여, 다양한 입력 파라미터에 대해 밥을 프롬프팅(prompt)할 수 있다. 블록(316)에 도시된 바와 같이, 밥은 앨리스가 밥을 식별하기 위해 이용했던 식별자를 TEE(32) 내로 또한 입력할 수 있다.
블록(320, 322, 334)에 도시된 바와 같이, TEE(32)는 RPIN, APIN 및 CPIN을 이용하여, 난수 서버(70), 인증 정책 서버(40) 및 컨텍스트 정책 서버(60)로부터 정확한 난수, 인증 정책 정의(42) 및 컨텍스트 정책 정의(62)를 각각 검색한다. 즉, 밥은 요구된 서버들 각각과의 세션을 개방하고, RPIN, APIN 및 CPIN을 각각의 인덱스로서 이용하여, 질문(query) 결과를 수신한다. 또한, 블록(326)에 도시된 바와 같이, TEE(32)는 인증 정책 서버(40)로부터, 지정된 인증 정책에 의해 요구되는 임의의 인증 탬플릿을 검색할 수 있다.
블록(330)에 도시된 바와 같이, 그 다음, TEE(32)는 목적지 DPS(30)의 컨텍스트 센서들을 이용하여, 현재 컨텍스트에 대한 데이터를 획득한다. 블록(332)에 도시된 바와 같이, 그 다음, TEE(32)는 목적지 DPS(30)의 생체 센서들을 이용하여, 현재 사용자로부터 생체 데이터를 획득한다. 대안적으로, 인증 정책에 의해 요구되거나 또는 허용되는 경우, TEE(32)는 이전에 수집된 후에 지역적으로 저장되었던 기준 탬플릿을 이용하여, 목적지 DPS(30)를 밥에게 속하는 것으로서 인증할 수 있다.
블록(340)에 도시된 바와 같이, 그 다음, TEE(32)는 (a) 현재 사용자로부터의 생체 데이터가 인증 정책 서버(40)로부터 검색되었던 인증 탬플릿과 매칭되는지, 및 (b) 현재 컨텍스트에 대한 데이터가 컨텍스트 정책 서버(60)로부터 검색되었던 컨텍스트 정책 정의(62)에 정의된 컨텍스트 요건을 만족시키는지의 여부를 결정한다. 블록(342)에 도시된 바와 같이, 생체 데이터가 매칭되지 않고/않거나 현재 컨텍스트가 컨텍스트 요건을 만족시키지 않는다면, TEE(32)는 에러 메시지를 생성하고, TEE(32)가 기본 키(24)를 언랩핑하지 않고서 처리가 종료된다.
그러나, 블록(360)에 도시된 바와 같이, 생체 및 컨텍스트가 요건과 매칭된다면, TEE(32)는 앨리스에 의해 이전에 선택된 옵션에 따라, 요구되는 목적지 DPS(30)에서의 파라미터에 기초하여, KDF를 생성한다. 예컨대, TEE(32)는 다음과 같은 것, 즉, 밥에 의해 입력된 RPIN, CPIN 및 APIN, 난수 서버(70)로부터의 대응하는 난수, 인증 정책 서버(40) 및 컨텍스트 정책 서버(60)로부터의 대응하는 인증 및 컨텍스트 정책들, 목적지 DPS(30)에 대한 현재 컨텍스트 데이터, 특정 인증 기준 탬플릿, 및 목적지 DPS(30)의 현재 사용자로부터의 생체 데이터를 포함하는 파라미터들을 이용하는 KDF를 생성할 수 있다. 따라서, 일 실시예 또는 상황에서, TEE(32)는 하나 이상의 컨텍스트 정책 및 하나 이상의 실제 컨텍스트 값(예를 들면, 이전이 동일한 위치로부터 시작 및 종료되어야 함을 요구하는 정책, 및 디바이스의 현재 지리적 좌표를 식별하는 실제 컨텍스트 값들)을 포함하는 파라미터를 갖는 KDF를 생성한다. 샘플링된 센서 값은, 그것이 시작 시간 및 종료 시간 둘다에서 알려지기 때문에 포함될 수 있다. 도 1의 실시예에서, TEE(32)는 TEE(22)에서의 KDF(26)와 매칭되는 KDF(26)를 생성한다.
다른 실시예 또는 상황에서, TEE는 상이한 파라미터들의 세트를 갖는 KDF를 생성할 수 있다. 예를 들어, 선택된 컨텍스트 정책 정의는 목적지 디바이스가 자정(midnight) 이전에 이전을 완료할 것을 요구할 수 있으며, 현재 컨텍스트 데이터는 현재 시간이 11:30pm임을 나타낼 수 있다. 따라서, TEE는 현재 컨텍스트가 수용가능한 것으로 결론지을 수 있다. 그리고, TEE는 KDF 파라미터들의 리스트로부터의 현재 컨텍스트 데이터를 생략할 수 있다. 유사하게, 컨텍스트 정책이 목적지 디바이스가 텍사스(Texas)에 위치될 것을 요구한다면, TEE는 컨텍스트 정책(예를 들면, "위치가 텍사스인 경우에 허용")에 대한 파라미터를 갖는, 및 샘플링된 실제 컨텍스트 값(예를 들면, 목적지 디바이스의 현재 지리적 좌표)에 대한 파라미터를 갖지 않는, KDF를 생성할 수 있다. 정책 저자(policy author)는 수집된 컨텍스트 값들의 입도(granularity)가, 그것이 이전을 완료하기 위해 반복될 수 있는 것으로 가정하는 것이 타당한 것인지 결정할 수 있다.
TEE(32)가 KDF를 생성한 후, 블록(362)에 도시된 바와 같이, TEE(32)는 KDF를 이용하여 KEK를 생성한다. TEE(32)가 정확한 파라미터들 전부를 갖는 KDF를 공급했다면, 생성된 KEK(28)는 소스 DPS(20)의 KEK(28)와 매칭될 것이다. 블록(364)에 도시된 바와 같이, 그 다음, TEE(32)는 KEK(28)를 이용하여 키 이전 블록(52)을 복호화하고, 기본 키(24)를 추출 또는 언랩핑한다. 그 다음, 목적지 DPS(30)는 TEE(32)에 기본 키(24)를 저장할 수 있다.
그러나, 블록(362)을 다시 참조하면, KDF 입력들 중 임의의 것이 부정확하다면, 생성된 KEK는 KEK(28)와 매칭되지 않을 것이다. 따라서, TEE(32)는 기본 키(24)에 액세스하기 위한 키 이전 블록(52)을 복호화하지 못할 것이다. 따라서, 도 1에서, KDF(26) 및 KEK(28)는 TEE(32)에서 점선 개요로 도시되며, 그들이 TEE(22)에서의 KDF 및 KEK와 매칭되지 않을 수 있음을 나타낸다.
본 개시 내용은 KDF로 공급되는 입력들을 관리하는 혁신적이고 유용한 방법을 기술한다. 일 실시예의 이점은, KDF를 재구성하는데 필요한 입력들 전부를 수집하기 위해, 공격자가 각각의 지원 서비스를 손상할 필요가 있다는 것이다. 잠재적인 요소들의 리스트를 제공하기 위한 서비스와 더불어, 그러한 리스트로부터 선택된 요소를 식별하기 위한 PIN을 이용하는 것은 또한 이점들을 제공한다. 예컨대, MFA 정책은 리스트에 열거될 수 있으며, APIN이 이전 동작의 일부로서 리스트로부터 특정 정책을 통신하도록 편리하게 이용될 수 있다. 유사하게, 시간 제약 및 위치 지오펜스 제약과 같은 컨텍스트 정책이, 다양한 옵션 및 옵션들의 조합을 포함하는 컨텍스트 정책 진술을 열거하는 서비스를 이용하여 KDF의 일부로서 지정될 수 있다.
일 실시예에서, 목적지 TEE가 적절한 데이터를 제공한다면, 난수 서버는 목적지 TEE에게 소스 TEE에 제공되었던 것과 동일한 난수를 제공하고, 인증 정책 서버는 목적지 TEE에게 소스 TEE에 제공되었던 것과 동일한 인증 정책을 제공하고, 컨텍스트 정책 서버는 목적지 TEE에게 소스 TEE에 제공되었던 것과 동일한 컨텍스트 정책을 제공한다. 그러나, 라이프사이클의 완료 이후에(예를 들면, 키 이전이 완료된 이후에), 서버들은 그들 각각의 리스트를 수정, 재구성 또는 대체하여, 앨리스 및 밥에 의해 이용되었던 RPIN, APIN 및 CPIN이 상이한 난수, 인증 정책 및 컨텍스트 정책을 식별하도록 할 수 있다.
일 실시예에서, 난수 서버는 큰 리스트를 제공한다. 예를 들어, 리스트는 아라비아 숫자를 이용하는 8개의 문자 PIN을 이용할 수 있다. 따라서, 리스트는 1억 개(100 million)의 엔트리를 포함할 수 있다. 대안적으로, 리스트는 모든 ASCII(American Standard Code for Information Interchange) 인쇄가능 문자를 이용하는 8 문자 PIN을 이용할 수 있다. 따라서, 리스트는 6천조 개(6 quadrillion)를 초과하는 엔트리를 포함할 수 있다. 상이한 실시예는 확장된 ASCII 문자 세트 또는 임의의 다른 적절한 문자 인코딩 방안을 이용하여, 리스트 인덱스 값을 구현할 수 있으며, 인덱스는 보다 큰 숫자 값으로 트랜스레이팅된다. 또한, 상이한 실시예는 제한적인 것은 아니지만, 4, 5, 6, 7 또는 8 ASCII 인코딩된 이진 바이트로서 구현된 PIN을 포함하는, PIN 또는 인덱스에 대해 상이한 크기를 이용할 수 있다. 다른 실시예는 크기가 16 바이트 미만인 PIN을 이용할 수 있다.
PIN의 크기는, PIN에 의해 지시된 난수의 크기에 비하여 상대적으로 작을 수 있다. 예를 들어, 상이한 실시예는 16, 32 또는 64 바이트(즉, 128, 256 또는 512 비트) 또는 그 이상의 크기를 갖는 난수를 이용할 수 있다. 따라서, PIN은 작은 것으로 지칭될 수 있으며, 난수는 크거나 또는 매우 클 수 있다. 따라서, 어떤 난수가 키 이전 블록에 대해 이용되었는지를 추측하는 것은 비실용적일 것이다. 공격자는 난수 서버로부터의 리스트 또는 데이터베이스를 이용할 필요가 있을 것이다. 그러나, 난수 서버는 의심스러운 질문을 모니터링 및 거절할 수 있다. 예컨대, 난수 서버는 공격을 추측하는 패스워드의 서명과 매칭되는 질문들을 거절할 수 있다.
일 실시예에서, 앨리스는 리스트로부터 임의로, RIPN을 수동으로 선택한다. 다른 실시예에서, 소스 DPS에서의 TEE는 난수 생성기를 이용하여 RPIN을 임의로, 자동적으로 선택한다. 즉, RPIN은 시스템에 의해 생성된 PIN일 수 있다.
본 개시 내용은 소스 및 목적지 DPS들에서의 TEE들에 의해 수행되는 다양한 동작을 언급한다. 일 실시예에서, 소스 및 목적지 TEE들은 이러한 프로세스를 구동하는 하나 이상의 소프트웨어 구성요소를 포함한다. 예컨대, TEE는 키 이전 소프트웨어(27)를 포함할 수 있고, 키 이전 소프트웨어(27)는 KDF 생성기(29)를 포함할 수 있다.
따라서, TEE(22) 및 TEE(32)에서, 키 이전 소프트웨어(27)는 앨리스 및 밥을 프롬프팅하여 요구된 사용자 입력 데이터(예를 들면, RPIN, APIN, CPIN 등)를 입력하도록 할 수 있다. 키 이전 소프트웨어(27)는 전술한 바와 같이, 신뢰된 I/O 채널을 이용하여 사용자 입력을 획득할 수 있다. 키 이전 소프트웨어(27)는 또한 생체 및 컨텍스트 데이터를 수집할 수 있다. 키 이전 소프트웨어(27)는 또한 KDF 생성기(29)를 이용하여, 사용자 입력에 기초한 KDF를 생성할 수 있다. 그 다음, 키 이전 소프트웨어(27)는 결과적인 KDF를 이용하여 KEK를 생성할 수 있다. 그 다음, 키 이전 소프트웨어(27)는 결과적인 KEK를 이용하여 키 이전 블록(52)을 암호화 또는 복호화할 수 있다.
본 개시 내용의 목적을 위해, "난수" 및 "난수 생성기"와 같은 용어는 의사랜덤 수(pseudorandom number) 및 의사랜덤 수 생성기를 포함하는 것으로서 이해되어야 한다.
본 명세서에서 기술 및 예시된 원리 및 예시적인 실시예의 관점에서, 예시된 실시예는 그러한 원리를 벗어나지 않고서도 배열 및 세부사항에 있어서 수정될 수있음을 인식할 것이다. 또한, 전술한 설명은 특정 실시예에 초점을 두었지만, 다른 구성이 고려된다. 또한, "실시예", "일 실시예", "다른 실시예" 등과 같은 표현이 본 명세서에서 이용되지만, 이들 문구는 실시예 가능성을 일반적으로 참조하는 것이며, 본 발명을 특정 실시예 구성으로 제한하도록 의도하지 않는다. 본 명세서에서 이용된 바와 같이, 이들 문구는 동일한 실시예 또는 상이한 실시예들을 참조할 수 있으며, 그러한 실시예들은 다른 실시예에 결합가능하다.
임의의 적절한 동작 환경 및 프로그래밍 언어(또는 동작 환경 및 프로그래밍 언어의 조합)가, 본 명세서에서 기술된 구성요소를 구현하는데 이용될 수 있다. 위에서 나타낸 바와 같이, 본 개시 내용은 많은 상이한 종류의 데이터 처리 시스템에서 이점이 있을 수 있다. 예시적인 데이터 처리 시스템은, 제한적인 것은 아니지만, 분산형 컴퓨팅 시스템, 수퍼컴퓨터, 고성능 컴퓨팅 시스템, 컴퓨팅 클러스터, 메인프레임 컴퓨터, 미니 컴퓨터, 클라이언트-서버 시스템, 개인용 컴퓨터(PC), 워크스테이션, 서버, 휴대용 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, PDA(personal digital assistant), 전화, 핸드헬드 디바이스, 오디오 디바이스, 비디오 디바이스, 오디오/비디오 디바이스(예를 들면, 텔레비젼 및 셋탑 박스)와 같은 엔터테인먼트 디바이스, 차량용 처리 시스템, 및 정보를 처리 또는 송신하는 다른 디바이스를 포함한다. 따라서, 명시적으로 달리 지정되지 않는 한, 또는 문맥에 의해 요구되지 않는 한, 임의의 특정 유형의 데이터 처리 시스템(예를 들면, 모바일 디바이스)에 대한 참조는 다른 유형의 데이터 처리 시스템을 또한 포함하는 것으로서 이해되어야 한다. 또한, 명시적으로 달리 지정되지 않는 한, 서로 연결되고, 서로 통신하고, 서로 응답하는 등으로서 기술되는 구성요소들은 서로 계속해서 통신할 필요는 없으며, 서로 직접 연결될 필요도 없다. 마찬가지로, 하나의 구성요소가 다른 구성요소로부터 데이터를 수신 또는 다른 구성요소로 데이터를 송신하는 것으로서 기술될 때, 명시적으로 달리 지정되지 않는 한, 해당 데이터는 하나 이상의 중간 구성요소를 통해서 송신 또는 수신될 수 있다. 또한, 데이터 처리 시스템의 일부 구성요소는 버스와 통신하기 위한 인터페이스(예를 들면, 커넥터)를 갖는 어댑터 카드로서 구현될 수 있다. 대안적으로, 디바이스 또는 구성요소는 프로그래밍가능 또는 프로그래밍불가능 로직 디바이스 또는 어레이, ASIC(application-specific integrated circuit), 내장형 컴퓨터, 스마트 카드 등과 같은 구성요소를 이용하는 내장형 제어기로서 구현될 수 있다. 본 개시 내용의 목적을 위해, "버스" 라는 용어는 3개 이상의 디바이스에 의해 공유될 수 있는 패스웨이(pathway) 뿐만 아니라, 점대점(point-to-point) 패스웨이를 포함한다.
본 개시 내용은 인스트럭션, 함수, 절차, 데이터 구조, 애플리케이션 프로그램, 마이크로코드, 구성 설정 및 다른 종류의 데이터를 언급할 수 있다. 전술한 바와 같이, 데이터가 머신 또는 디바이스에 의해 액세스될 때, 머신 또는 디바이스는 작업을 수행, 추상적인 데이터 유형 또는 하위 레벨 하드웨어 컨텍스트를 정의, 및/또는 다른 동작들을 수행함으로써 응답할 수 있다. 예컨대, 데이터 저장부, RAM 및/또는 플래시 메모리는, 실행될 때, 다양한 동작을 수행하는 다양한 인스트럭션들의 세트를 포함할 수 있다. 그러한 인스트럭션들의 세트는 일반적으로 소프트웨어 라고 지칭될 수 있다. 또한, "프로그램" 이라는 용어는 일반적으로, 애플리케이션, 루틴, 모듈, 드라이버, 서브프로그램, 프로세스 및 다른 유형의 소프트웨어 구성요소를 포함하는 광범위한 소프트웨어 구성을 커버하는데 이용될 수 있다. 또한, 하나의 예시적인 실시예에서 특정 디바이스 상에 상주하는 것으로서 전술한 애플리케이션 및/또는 다른 데이터는, 다른 실시예에서, 하나 이상의 다른 디바이스 상에 상주할 수 있다. 그리고, 하나의 예시적인 실시예에서 하나의 특정 디바이스 상에서 수행되는 것으로서 전술한 컴퓨팅 동작은, 다른 실시예에서, 하나 이상의 다른 디바이스에 의해 실행될 수 있다.
또한, 본 명세서에서 도시된 하드웨어 및 소프트웨어 구성요소는 그 각각이 다른 것들과는 실질적으로 독립적으로 설계, 구성 또는 갱신될 수 있도록 합리적으로 자체 포함되는 기능 요소들을 나타낸다. 대안적인 실시예에서, 많은 구성요소가 본 명세서에서 기술 및 예시된 기능을 제공하기 위한 하드웨어, 소프트웨어, 또는 하드웨어 및 소프트웨어의 조합으로서 구현될 수 있다. 예를 들어, 대안적인 실시예는 본 발명의 동작들을 수행하기 위한 머신 액세스가능 매체 인코딩 인스트럭션 또는 제어 로직을 포함한다. 그러한 실시예들은 프로그램 제품으로서 또한 지칭될 수 있다. 그러한 머신 액세스가능 매체는, 제한적인 것은 아니지만, 자기 디스크, 광학 디스크, RAM, ROM(read only memory) 등과 같은 유형의 저장 매체 뿐만 아니라, RAM, ROM 및/또는 다른 저장 설비를 포함하는 프로세서, 제어기 및 다른 구성요소를 포함할 수 있다. 본 개시 내용의 목적을 위해, "ROM" 이라는 용어는 일반적으로 EPROM(erasable programmable ROM), EEPROM(electrically erasable programmable ROM), 플래시 ROM, 플래시 메모리 등과 같은 비휘발성 메모리 디바이스를 지칭하는데 이용될 수 있다. 일부 실시예에서, 기술된 동작들을 구현하기 위한 제어 로직의 일부 또는 전부는 하드웨어 로직에서(예를 들면, 집적 회로 칩, PGA(programmable gate array), ASIC 등의 일부로서) 구현될 수 있다. 적어도 하나의 실시예에서, 모든 구성요소에 대한 인스트럭션은 하나의 비일시적 머신 액세스가능 매체에 저장될 수 있다. 적어도 하나의 다른 실시예에서, 둘 이상의 비일시적 머신 액세스가능 매체가 구성요소에 대한 인스트럭션을 저장하는데 이용될 수 있다. 예컨대, 하나의 구성요소에 대한 인스트럭션은 하나의 매체에 저장될 수 있고, 다른 구성요소에 대한 인스트럭션은 다른 매체에 저장될 수 있다. 대안적으로, 하나의 구성요소에 대한 인스트럭션의 일부는 하나의 매체에 저장될 수 있고, (다른 구성요소에 대한 인스트럭션 뿐만 아니라) 그 구성요소에 대한 인스트럭션들의 나머지는 하나 이상의 다른 매체에 저장될 수 있다. 또한, 인스트럭션은 분산된 환경에서 이용될 수도 있으며, 단일 또는 다수 프로세서 머신에 의한 액세스를 위해 지역적으로 및/또는 원격적으로 저장될 수 있다.
또한, 하나 이상의 예시적인 프로세스가 특정 시퀀스로 수행된 특정 동작들에 관하여 기술되었지만, 본 발명의 많은 대안적인 실시예를 도출하기 위해 많은 수정이 그러한 프로세스에 적용될 수 있다. 예를 들어, 대안적인 실시예는 개시된 동작들 전부, 추가적인 동작을 이용하는 프로세스 및 본 명세서에서 개시된 개별적인 동작이 결합, 세분화, 재배열 또는 그렇지 않은 경우 변경되는 프로세스보다 적은 것을 이용하는 프로세스를 포함할 수 있다.
본 명세서에서 기술된 예시적인 실시예로부터 쉽게 도출될 수 있는 매우 다양한 유용한 순열의 관점에서, 이러한 상세한 설명은 단지 예시적인 것으로 의도되며, 커버리지의 영역을 제한하는 것으로서 취해지지 않아야 한다.
이하의 예들은 다른 실시예들에 관련된다.
예 A1은 키 이전 능력을 갖는 데이터 처리 시스템이다. 데이터 처리 시스템은 처리 요소, 처리 요소에 응답하는 머신 액세스가능 매체, 및 머신 액세스가능 매체 내의 데이터를 포함한다. 데이터는 처리 요소에 의해 액세스될 때, 데이터는 데이터 처리 시스템이 목적지 데이터 처리 시스템이 될 수 있게 하며, 목적지 데이터 처리 시스템은 (a) 소스 데이터 처리 시스템으로부터 기본 키의 암호화된 버전을 포함하는 키 이전 블록을 수신; (b) 인증 정책을 식별하는 사용자 입력을 수신; (c) 컨텍스트 정책을 식별하는 사용자 입력을 수신; (d) 식별된 인증 정책에 기초하여, 목적지 데이터 처리 시스템의 사용자로부터 인증 데이터를 수집; (e) 식별된 컨텍스트 정책에 기초하여, 목적지 데이터 처리 시스템에 대한 컨텍스트 데이터를 수집; 및 (f) 인증 데이터 및 컨텍스트 데이터를 이용하여, 키 이전 블록을 복호화하는 것을 포함하는 동작들을 수행한다.
예 A2는 예 A1의 특징을 포함하고, 머신 액세스가능 매체는 목적지 데이터 처리 시스템에 TEE(trusted execution environment)를 제공하도록 구성된다. 또한, 머신 액세스가능 매체에서의 데이터는 TEE에서 실행되도록 구성되는 키 이전 소프트웨어를 포함하고, 키 이전 소프트웨어는 인증 데이터 및 컨텍스트 데이터를 이용하여, 목적지 데이터 처리 시스템의 TEE에서의 키 이전 블록을 복호화하도록 구성된다.
예 A3은 예 A1의 특징을 포함하고, 인증 데이터를 수집하는 동작은 목적지 데이터 처리 시스템의 사용자로부터 생체 데이터를 수집하는 것을 포함한다. 예 A3은 예 A2의 특징을 또한 포함할 수 있다.
예 A4는 예 A1의 특징을 포함하고, 식별된 인증 정책에 기초하여, 인증 데이터를 수집하는 동작은, 식별된 인증 정책에 기초하여, 둘 이상의 상이한 유형의 인증 데이터를 수집하는 것을 포함한다. 예 A4는 예 A2 내지 A3 중 임의의 하나 이상의 특징을 또한 포함할 수 있다.
예 A5는 예 A1의 특징을 포함하고, 동작들은 (a) 키 이전 블록에서의 기본 키를 암호화하는데 이용되었던 난수를 식별하는 사용자 입력을 수신하는 것; 및 (b) 난수를 이용하여 키 이전 블록을 복호화하는 것을 더 포함한다. 예 A5는 예 A2 내지 A4 중 임의의 하나 이상의 특징을 또한 포함할 수 있다.
예 A6은 예 A5의 특징을 포함하고, 키 이전 블록에서의 기본 키를 암호화하는데 이용되었던 난수를 식별하는 사용자 입력을 수신하는 동작은 16 바이트 미만의 크기를 갖는 인덱스를 수신하는 것을 포함한다. 또한, 난수는 16 바이트 이상의 크기를 갖고, 동작들은 인덱스를 이용하여, 원격 난수 서버로부터, 난수를 검색하는 것을 더 포함한다. 예 A5는 예 A2 내지 A4 중 임의의 하나 이상의 특징을 또한 포함할 수 있다.
예 A7은 예 A1의 특징을 포함하고, 동작들은 컨텍스트 정책을 식별하는 사용자 입력에 기초하여, 원격 컨텍스트 정책 서버로부터 컨텍스트 정책을 검색하는 것을 더 포함한다. 예 A7은 예 A2 내지 A6 중 임의의 하나 이상의 특징을 또한 포함할 수 있다.
예 B1은 키를 이전시키기 위한 방법이다. 방법은 (a) 목적지 데이터 처리 시스템에서, 소스 데이터 처리 시스템으로부터 기본 키의 암호화된 버전을 포함하는 키 이전 블록을 수신; (b) 목적지 데이터 처리 시스템에서, 인증 정책을 식별하는 사용자 입력을 수신; (c) 목적지 데이터 처리 시스템에서, 컨텍스트 정책을 식별하는 사용자 입력을 수신; (d) 식별된 인증 정책에 기초하여, 목적지 데이터 처리 시스템의 사용자로부터 인증 데이터를 수집; (e) 식별된 컨텍스트 정책에 기초하여, 목적지 데이터 처리 시스템에 대한 컨텍스트 데이터를 수집; 및 (f) 목적지 데이터 처리 시스템에서, 인증 데이터 및 컨텍스트 데이터를 이용하여 키 이전 블록을 복호화하는 것을 포함한다.
예 B2는 예 B1의 특징을 포함한다. 또한, 목적지 데이터 처리 시스템은 TEE(trusted execution environment)를 포함하고, 인증 데이터 및 컨텍스트 데이터를 이용하여 키 이전 블록을 복호화하는 동작은 목적지 데이터 처리 시스템의 TEE에서 실행되는 키 이전 소프트웨어에 의해 수행된다.
예 B3은 예 B1의 특징을 포함한다. 또한, 인증 데이터를 수집하는 동작은 목적지 데이터 처리 시스템의 사용자로부터 생체 데이터를 수집하는 것을 포함한다. 예 B3은 예 B2의 특징을 또한 포함할 수 있다.
예 B4는 예 B1의 특징을 포함한다. 또한, 식별된 인증 정책에 기초하여, 인증 데이터를 수집하는 동작은, 식별된 인증 정책에 기초하여, 둘 이상의 상이한 유형의 인증 데이터를 수집하는 것을 포함한다. 예 B4는 예 B2 내지 B3 중 임의의 하나 이상의 특징을 또한 포함할 수 있다.
예 B5는 예 B1의 특징을 포함한다. 또한, 방법은 (a) 목적지 데이터 처리 시스템에서, 키 이전 블록에 대한 기본 키를 암호화하는데 이용되었던 난수를 식별하는 사용자 입력을 수신하는 것; 및 (b) 난수를 이용하여 키 이전 블록을 복호화하는 것을 포함한다. 예 B5는 예 B2 내지 B4 중 임의의 하나 이상의 특징을 또한 포함할 수 있다.
예 B6은 예 B5의 특징을 포함한다. 또한, 키 이전 블록에서의 기본 키를 암호화하는데 이용되었던 난수를 식별하는 사용자 입력을 수신하는 동작은 16 바이트 미만의 크기를 갖는 인덱스를 수신하는 것을 포함한다. 또한, 난수는 16 바이트 이상의 크기를 갖고, 방법은 인덱스를 이용하여, 원격 난수 서버로부터, 난수를 검색하는 것을 더 포함한다. 예 B6은 예 B2 내지 B4 중 임의의 하나 이상의 특징을 또한 포함할 수 있다.
예 B7은 예 B1의 특징을 포함한다. 또한, 방법은 컨텍스트 정책을 식별하는 사용자 입력에 기초하여, 원격 컨텍스트 정책 서버로부터 컨텍스트 정책을 검색하는 것을 포함한다. 예 B7은 예 B2 내지 B6 중 임의의 하나 이상의 특징을 또한 포함할 수 있다.
예 B8은 예 B1의 특징을 포함한다. 또한, 방법은 인증 정책을 식별하는 사용자 입력에 기초하여, 원격 인증 정책 서버로부터 인증 정책을 검색하는 것을 포함한다. 예 B8은 예 B2 내지 B7 중 임의의 하나 이상의 특징을 또한 포함할 수 있다.
예 B9는 예 B1의 특징을 포함한다. 또한, 인증 데이터 및 컨텍스트 데이터를 이용하여 키 이전 블록을 복호화하는 동작은 (a) KDF(key derivation function)에서의 인증 데이터 및 컨텍스트 데이터를 이용하는 것; (b) KDF를 이용하여 KEK(key encryption key)를 생성하는 것; 및 (c) KEK를 이용하여 키 이전 블록을 복호화하는 것을 포함한다. 예 B9는 예 B2 내지 B8 중 임의의 하나 이상의 특징을 또한 포함할 수 있다.
예 B10은 예 B1의 특징을 포함한다. 또한, 방법은 (a) 목적지 데이터 처리 시스템에서 키 이전 블록을 수신하기 전에, 소스 데이터 처리 시스템에서, 기본 키의 소유자로부터 사용자 입력을 수신하는 것 - 사용자 입력은 인증 정책 및 컨텍스트 정책을 선택함 - ; 및 (b) 인증 정책 및 컨텍스트 정책을 선택하는 사용자 입력을 수신하는 것에 응답하여, 선택된 인증 정책 및 선택된 컨텍스트 정책을 이용해서, 기본 키의 암호화된 버전을 포함하는 키 이전 블록을 생성하는 것을 포함한다. 예 B10은 예 B2 내지 B9 중 임의의 하나 이상의 특징을 또한 포함할 수 있다.
예 B11은 예 B10의 특징을 포함한다. 또한, 소스 데이터 처리 시스템은 TEE를 포함하고, 기본 키의 평문 버전이 소스 데이터 처리 시스템의 TEE에 상주한다. 또한, (a) 인증 정책 및 컨텍스트 정책을 선택하는 사용자 입력을 수신 및 (b) 선택된 인증 정책 및 선택된 컨텍스트 정책을 이용하여 키 이전 블록을 생성하는 동작들은 소스 데이터 처리 시스템의 TEE에서 수행된다. 예 B11은 예 B2 내지 B9 중 임의의 하나 이상의 특징을 또한 포함할 수 있다.
예 B12는 예 B10의 특징을 포함한다. 또한, 방법은 (a) 소스 데이터 처리 시스템에서, 원격 난수 서버로부터 난수들의 리스트 및 대응하는 인덱스를 수신; (b) 원격 난수 서버로부터 난수들의 리스트를 수신한 후에, 난수들의 리스트로부터 난수를 선택하는 사용자 입력을 수신; 및 (c) 난수를 선택하는 사용자 입력을 수신한 후에, 선택된 난수를 이용하여 키 이전 블록을 생성하는 것을 포함한다. 예 B12는 예 B2 내지 B11 중 임의의 하나 이상의 특징을 또한 포함할 수 있다.
예 C는 키를 이전시키기 위한 컴퓨터 인스트럭션들을 포함하는 적어도 하나의 머신 액세스가능 매체이다. 컴퓨터 인스트럭션들은, 데이터 처리 시스템 상에서 실행되는 것에 응답하여, 데이터 처리 시스템이 예 B1 내지 B12 중 임의의 하나 이상에 따른 방법을 수행할 수 있게 한다.
예 D는 키 이전 능력을 갖는 데이터 처리 시스템이다. 데이터 처리 시스템은 처리 요소, 처리 요소에 응답하는 적어도 하나의 머신 액세스가능 매체, 및 적어도 하나의 머신 액세스가능 매체에 적어도 부분적으로 저장된 컴퓨터 인스트럭션들을 포함한다. 또한, 실행되는 것에 응답하여, 컴퓨터 인스트럭션들은 데이터 처리 시스템이 예 B1 내지 B12 중 임의의 하나 이상에 따른 방법을 수행하게 한다.
예 E는 키 이전 능력을 갖는 데이터 처리 시스템이다. 데이터 처리 시스템은 예 B1 내지 B12 중 임의의 하나 이상의 방법을 수행하기 위한 수단을 포함한다.
예 F1은 키 이전을 가능하게 하는 장치이다. 장치는 비일시적 머신 액세스가능 매체, 및 머신 액세스가능 매체에서의 데이터를 포함하고, 머신 액세스가능 매체에서의 데이터는, 목적지 데이터 처리 시스템에 의해 액세스될 때, 목적지 데이터 처리 시스템이, (a) 소스 데이터 처리 시스템으로부터 기본 키의 암호화된 버전을 포함하는 키 이전 블록을 수신; (b) 인증 정책을 식별하는 사용자 입력을 수신; (c) 컨텍스트 정책을 식별하는 사용자 입력을 수신; (d) 식별된 인증 정책에 기초하여, 목적지 데이터 처리 시스템의 사용자로부터 인증 데이터를 수집; (e) 식별된 컨텍스트 정책에 기초하여, 목적지 데이터 처리 시스템에 대한 컨텍스트 데이터를 수집; 및 (f) 인증 데이터 및 컨텍스트 데이터를 이용하여 키 이전 블록을 복호화하는 것을 포함하는 동작들을 수행할 수 있게 한다.
예 F2는 예 F1의 특징을 포함한다. 또한, 머신 액세스가능 매체에서의 데이터는 목적지 데이터 처리 시스템의 TEE에서 실행되도록 구성되는 키 이전 소프트웨어를 포함한다. 또한, 키 이전 소프트웨어는 인증 데이터 및 컨텍스트 데이터를 이용하여, 목적지 데이터 처리 시스템의 TEE에서의 키 이전 블록을 복호화하도록 구성된다.
예 F3은 예 F1의 특징을 포함한다. 또한, 인증 데이터를 수집하는 동작은 목적지 데이터 처리 시스템의 사용자로부터 생체 데이터를 수집하는 것을 포함한다. 예 F3은 예 F2의 특징을 또한 포함할 수 있다.
예 F4는 예 F1의 특징을 포함한다. 또한, 식별된 인증 정책에 기초하여 인증 데이터를 수집하는 동작은, 식별된 인증 정책에 기초하여 둘 이상의 상이한 유형의 인증 데이터를 수집하는 것을 포함한다. 예 F4는 예 F2 내지 F3 중 임의의 하나 이상의 특징을 또한 포함할 수 있다.
예 F5는 예 F1의 특징을 포함하고, 동작들은 (a) 키 이전 블록에서의 기본 키를 암호화하는데 이용되었던 난수를 식별하는 사용자 입력을 수신하는 것; 및 (b) 난수를 이용하여 키 이전 블록을 복호화하는 것을 더 포함한다. 예 F5는 예 F2 내지 F4 중 임의의 하나 이상의 특징을 또한 포함할 수 있다.
예 F6은 예 F5의 특징을 포함한다. 또한, 키 이전 블록에서의 기본 키를 암호화하는데 이용되었던 난수를 식별하는 사용자 입력을 수신하는 동작은 16 바이트 미만의 크기를 갖는 인덱스를 수신하는 것을 포함한다. 또한, 난수는 16 바이트 이상의 크기를 갖고, 동작들은 인덱스를 이용하여, 원격 난수 서버로부터, 난수를 검색하는 것을 더 포함한다. 예 F6은 예 F2 내지 F4 중 임의의 하나 이상의 특징을 또한 포함할 수 있다.
예 F7은 예 F1의 특징을 포함한다. 또한, 동작들은 컨텍스트 정책을 식별하는 사용자 입력에 기초하여, 원격 컨텍스트 정책 서버로부터 컨텍스트 정책을 검색하는 것을 더 포함한다. 예 F7은 예 F2 내지 F6 중 임의의 하나 이상의 특징을 또한 포함할 수 있다.

Claims (25)

  1. 키 이전(key migration) 능력을 갖는 데이터 처리 시스템으로서,
    처리 요소;
    상기 처리 요소에 응답하는 머신 액세스가능 매체; 및
    상기 머신 액세스가능 매체 내의 데이터를 포함하고,
    상기 머신 액세스가능 매체 내의 데이터는, 상기 처리 요소에 의해 액세스될 때, 상기 데이터 처리 시스템이 목적지 데이터 처리 시스템이 될 수 있게 하며, 상기 목적지 데이터 처리 시스템은 동작들을 수행하되,
    상기 동작들은,
    소스 데이터 처리 시스템으로부터 기본 키의 암호화된 버전을 포함하는 키 이전 블록을 수신하는 동작;
    인증 정책을 식별하는 사용자 입력을 수신하는 동작;
    컨텍스트 정책을 식별하는 사용자 입력을 수신하는 동작;
    상기 식별된 인증 정책에 기초하여, 상기 목적지 데이터 처리 시스템의 사용자로부터 인증 데이터를 수집하는 동작;
    상기 식별된 컨텍스트 정책에 기초하여, 상기 목적지 데이터 처리 시스템에 대한 컨텍스트 데이터를 수집하는 동작; 및
    상기 인증 데이터 및 상기 컨텍스트 데이터를 이용하여, 상기 키 이전 블록을 복호화하는 동작을 포함하는
    데이터 처리 시스템.
  2. 제1항에 있어서,
    상기 머신 액세스가능 매체는 상기 목적지 데이터 처리 시스템에 신뢰 실행 환경(trusted execution environment: TEE)을 제공하도록 구성되고;
    상기 머신 액세스가능 매체 내의 데이터는 상기 TEE에서 실행되도록 구성되는 키 이전 소프트웨어를 포함하고;
    상기 키 이전 소프트웨어는 상기 인증 데이터 및 상기 컨텍스트 데이터를 이용하여, 상기 목적지 데이터 처리 시스템의 상기 TEE에서의 상기 키 이전 블록을 복호화하도록 구성되는
    데이터 처리 시스템.
  3. 제1항에 있어서,
    상기 인증 데이터를 수집하는 동작은 상기 목적지 데이터 처리 시스템의 사용자로부터 생체 데이터를 수집하는 것을 포함하는
    데이터 처리 시스템.
  4. 제1항에 있어서,
    상기 식별된 인증 정책에 기초하여, 상기 인증 데이터를 수집하는 동작은,
    상기 식별된 인증 정책에 기초하여, 둘 이상의 상이한 유형의 인증 데이터를 수집하는 것을 포함하는
    데이터 처리 시스템.
  5. 제1항에 있어서,
    상기 동작들은,
    상기 키 이전 블록에서의 상기 기본 키를 암호화하는데 이용되었던 난수를 식별하는 사용자 입력을 수신하는 동작과;
    상기 난수를 이용하여 상기 키 이전 블록을 복호화하는 동작을 더 포함하는
    데이터 처리 시스템.
  6. 제5항에 있어서,
    상기 키 이전 블록 내의 상기 기본 키를 암호화하는데 이용되었던 난수를 식별하는 사용자 입력을 수신하는 동작은 16 바이트 미만의 크기를 갖는 인덱스를 수신하는 것을 포함하고;
    상기 난수는 16 바이트 이상의 크기를 갖고;
    상기 동작들은 상기 인덱스를 이용하여, 원격 난수 서버로부터, 상기 난수를 검색하는 동작을 더 포함하는
    데이터 처리 시스템.
  7. 제1항에 있어서,
    상기 동작들은 상기 컨텍스트 정책을 식별하는 상기 사용자 입력에 기초하여, 원격 컨텍스트 정책 서버로부터 상기 컨텍스트 정책을 검색하는 동작을 더 포함하는
    데이터 처리 시스템.
  8. 키를 이전시키기 위한 방법으로서,
    목적지 데이터 처리 시스템에서, 소스 데이터 처리 시스템으로부터 기본 키의 암호화된 버전을 포함하는 키 이전 블록을 수신하는 단계와;
    상기 목적지 데이터 처리 시스템에서, 인증 정책을 식별하는 사용자 입력을 수신하는 단계와;
    상기 목적지 데이터 처리 시스템에서, 컨텍스트 정책을 식별하는 사용자 입력을 수신하는 단계와;
    상기 식별된 인증 정책에 기초하여, 상기 목적지 데이터 처리 시스템의 사용자로부터 인증 데이터를 수집하는 단계와;
    상기 식별된 컨텍스트 정책에 기초하여, 상기 목적지 데이터 처리 시스템에 대한 컨텍스트 데이터를 수집하는 단계와;
    상기 목적지 데이터 처리 시스템에서, 상기 인증 데이터 및 상기 컨텍스트 데이터를 이용하여 상기 키 이전 블록을 복호화하는 단계를 포함하는
    키를 이전시키기 위한 방법.
  9. 제8항에 있어서,
    상기 목적지 데이터 처리 시스템은 TEE를 포함하고;
    상기 인증 데이터 및 상기 컨텍스트 데이터를 이용하여 상기 키 이전 블록을 복호화하는 단계는 상기 목적지 데이터 처리 시스템의 상기 TEE에서 실행되는 키 이전 소프트웨어에 의해 수행되는
    키를 이전시키기 위한 방법.
  10. 제8항에 있어서,
    상기 인증 데이터를 수집하는 단계는 상기 목적지 데이터 처리 시스템의 사용자로부터 생체 데이터를 수집하는 것을 포함하는
    키를 이전시키기 위한 방법.
  11. 제8항에 있어서,
    상기 식별된 인증 정책에 기초하여, 인증 데이터를 수집하는 단계는,
    상기 식별된 인증 정책에 기초하여, 둘 이상의 상이한 유형의 인증 데이터를 수집하는 것을 포함하는
    키를 이전시키기 위한 방법.
  12. 제8항에 있어서,
    상기 목적지 데이터 처리 시스템에서, 상기 키 이전 블록에 대한 상기 기본 키를 암호화하는데 이용되었던 난수를 식별하는 사용자 입력을 수신하는 단계; 및
    상기 난수를 이용하여 상기 키 이전 블록을 복호화하는 단계를 더 포함하는
    키를 이전시키기 위한 방법.
  13. 제12항에 있어서,
    상기 키 이전 블록에서의 상기 기본 키를 암호화하는데 이용되었던 난수를 식별하는 사용자 입력을 수신하는 단계는 16 바이트 미만의 크기를 갖는 인덱스를 수신하는 것을 포함하고;
    상기 난수는 16 바이트 이상의 크기를 갖고;
    상기 방법은 상기 인덱스를 이용하여, 원격 난수 서버로부터, 상기 난수를 검색하는 단계를 더 포함하는
    키를 이전시키기 위한 방법.
  14. 제8항에 있어서,
    상기 컨텍스트 정책을 식별하는 상기 사용자 입력에 기초하여, 원격 컨텍스트 정책 서버로부터 상기 컨텍스트 정책을 검색하는 단계를 더 포함하는
    키를 이전시키기 위한 방법.
  15. 제8항에 있어서,
    상기 인증 정책을 식별하는 상기 사용자 입력에 기초하여, 원격 인증 정책 서버로부터 상기 인증 정책을 검색하는 단계를 더 포함하는
    키를 이전시키기 위한 방법.
  16. 제8항에 있어서,
    상기 인증 데이터 및 상기 컨텍스트 데이터를 이용하여 상기 키 이전 블록을 복호화하는 단계는,
    KDF(key derivation function)에서의 상기 인증 데이터 및 상기 컨텍스트 데이터를 이용하는 것;
    상기 KDF를 이용하여 KEK(key encryption key)를 생성하는 것; 및
    상기 KEK를 이용하여 상기 키 이전 블록을 복호화하는 것을 포함하는
    키를 이전시키기 위한 방법.
  17. 제8항에 있어서,
    상기 목적지 데이터 처리 시스템에서 상기 키 이전 블록을 수신하기 전에, 상기 소스 데이터 처리 시스템에서, 상기 기본 키의 소유자로부터 사용자 입력을 수신하는 단계 - 상기 사용자 입력은 상기 인증 정책 및 상기 컨텍스트 정책을 선택함 - ; 및
    상기 인증 정책 및 상기 컨텍스트 정책을 선택하는 상기 사용자 입력을 수신하는 것에 응답하여, 상기 선택된 인증 정책 및 상기 선택된 컨텍스트 정책을 이용해서, 상기 기본 키의 상기 암호화된 버전을 포함하는 상기 키 이전 블록을 생성하는 단계를 더 포함하는
    키를 이전시키기 위한 방법.
  18. 제17항에 있어서,
    상기 소스 데이터 처리 시스템은 TEE를 포함하고;
    상기 기본 키의 평문 버전이 상기 소스 데이터 처리 시스템의 상기 TEE에 상주하고;
    (a) 상기 인증 정책 및 상기 컨텍스트 정책을 선택하는 상기 사용자 입력을 수신하고 (b) 상기 선택된 인증 정책 및 상기 선택된 컨텍스트 정책을 이용하여 상기 키 이전 블록을 생성하는 단계는 상기 소스 데이터 처리 시스템의 상기 TEE에서 수행되는
    키를 이전시키기 위한 방법.
  19. 제17항에 있어서,
    상기 소스 데이터 처리 시스템에서, 원격 난수 서버로부터 난수들의 리스트 및 대응하는 인덱스를 수신하는 단계;
    상기 원격 난수 서버로부터 상기 난수들의 리스트를 수신한 후에, 상기 난수들의 리스트로부터 난수를 선택하는 사용자 입력을 수신하는 단계; 및
    상기 난수를 선택하는 상기 사용자 입력을 수신한 후에, 상기 선택된 난수를 이용하여 상기 키 이전 블록을 생성하는 단계를 더 포함하는
    키를 이전시키기 위한 방법.
  20. 키를 이전시키기 위한 컴퓨터 인스트럭션들을 포함하는 적어도 하나의 머신 액세스가능 매체로서,
    상기 컴퓨터 인스트럭션들은, 데이터 처리 시스템 상에서 실행되는 것에 응답하여, 상기 데이터 처리 시스템이 제8항 내지 제19항 중 어느 한 항에 따른 방법을 수행할 수 있게 하는
    적어도 하나의 머신 액세스가능 매체.
  21. 키 이전 능력을 갖는 데이터 처리 시스템으로서,
    처리 요소;
    상기 처리 요소에 응답하는 적어도 하나의 머신 액세스가능 매체; 및
    상기 적어도 하나의 머신 액세스가능 매체에 적어도 부분적으로 저장된 컴퓨터 인스트럭션들 - 상기 컴퓨터 인스트럭션들은, 실행되는 것에 응답하여, 상기 데이터 처리 시스템이 제8항 내지 제19항 중 어느 한 항에 따른 방법을 수행할 수 있게 함 - 을 포함하는
    데이터 처리 시스템.
  22. 키 이전 능력을 갖는 데이터 처리 시스템으로서,
    제8항 내지 제19항 중 어느 한 항의 방법을 수행하기 위한 수단을 포함하는
    데이터 처리 시스템.
  23. 키 이전을 가능하게 하는 장치로서,
    비일시적 머신 액세스가능 매체; 및
    상기 머신 액세스가능 매체에서의 데이터를 포함하고,
    상기 머신 액세스가능 매체에서의 데이터는, 목적지 데이터 처리 시스템에 의해 액세스될 때, 상기 목적지 데이터 처리 시스템이 동작들을 수행할 수 있게 하되,
    상기 동작들은,
    소스 데이터 처리 시스템으로부터 기본 키의 암호화된 버전을 포함하는 키 이전 블록을 수신하는 동작;
    인증 정책을 식별하는 사용자 입력을 수신하는 동작;
    컨텍스트 정책을 식별하는 사용자 입력을 수신하는 동작;
    상기 식별된 인증 정책에 기초하여, 상기 목적지 데이터 처리 시스템의 사용자로부터 인증 데이터를 수집하는 동작;
    상기 식별된 컨텍스트 정책에 기초하여, 상기 목적지 데이터 처리 시스템에 대한 컨텍스트 데이터를 수집하는 동작; 및
    상기 인증 데이터 및 상기 컨텍스트 데이터를 이용하여 상기 키 이전 블록을 복호화하는 동작을 포함하는
    키 이전을 가능하게 하는 장치.
  24. 제23항에 있어서,
    상기 동작들은,
    상기 키 이전 블록에서의 상기 기본 키를 암호화하는데 이용되었던 난수를 식별하는 사용자 입력을 수신하는 동작; 및
    상기 난수를 이용하여 상기 키 이전 블록을 복호화하는 동작을 더 포함하는
    키 이전을 가능하게 하는 장치.
  25. 제24항에 있어서,
    상기 키 이전 블록에서의 상기 기본 키를 암호화하는데 이용되었던 난수를 식별하는 사용자 입력을 수신하는 동작은 16 바이트 미만의 크기를 갖는 인덱스를 수신하는 것을 포함하고;
    상기 난수는 16 바이트 이상의 크기를 갖고;
    상기 동작들은 상기 인덱스를 이용하여, 원격 난수 서버로부터, 상기 난수를 검색하는 동작을 더 포함하는
    키 이전을 가능하게 하는 장치.
KR1020167021100A 2014-03-03 2014-03-03 키를 이전시키기 위한 방법 및 장치 KR101888903B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2014/019966 WO2015133990A1 (en) 2014-03-03 2014-03-03 Methods and apparatus for migrating keys

Publications (2)

Publication Number Publication Date
KR20160105511A true KR20160105511A (ko) 2016-09-06
KR101888903B1 KR101888903B1 (ko) 2018-08-17

Family

ID=54055657

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167021100A KR101888903B1 (ko) 2014-03-03 2014-03-03 키를 이전시키기 위한 방법 및 장치

Country Status (6)

Country Link
US (1) US10469253B2 (ko)
EP (1) EP3114793A4 (ko)
KR (1) KR101888903B1 (ko)
CN (1) CN105960775B (ko)
TW (1) TWI578749B (ko)
WO (1) WO2015133990A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190072621A (ko) * 2016-11-29 2019-06-25 콘티넨탈 테베스 아게 운트 코. 오하게 차량 네트워크의 제어 유닛들에 난수들을 제공하기 위한 방법, 및 상기 방법을 수행하기 위한 차량 네트워크

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10469253B2 (en) 2014-03-03 2019-11-05 Intel Corporation Methods and apparatus for migrating keys
US9614670B1 (en) 2015-02-05 2017-04-04 Ionic Security Inc. Systems and methods for encryption and provision of information security using platform services
US10171235B2 (en) 2016-05-19 2019-01-01 Nxp B.V. User-initiated migration of encryption keys
CN105959106B (zh) * 2016-06-13 2019-04-02 四川特伦特科技股份有限公司 一种低复杂度数字加密方法
CN108076011A (zh) * 2016-11-10 2018-05-25 中国移动通信有限公司研究院 一种可信执行环境数据迁移方法及装置
US10938560B2 (en) * 2017-06-21 2021-03-02 Microsoft Technology Licensing, Llc Authorization key escrow
US10558812B2 (en) 2017-06-21 2020-02-11 Microsoft Technology Licensing, Llc Mutual authentication with integrity attestation
US10505732B2 (en) * 2017-08-14 2019-12-10 Nxp B.V. Method for generating a public/private key pair and public key certificate for an internet of things device
US11374760B2 (en) 2017-09-13 2022-06-28 Microsoft Technology Licensing, Llc Cyber physical key
US10855459B2 (en) 2018-01-16 2020-12-01 7Tunnels, Inc. Cryptographic systems and methods for modification of pools of truly random numbers
CN112042149B (zh) * 2018-06-01 2024-03-08 惠普发展公司,有限责任合伙企业 密钥加密密钥封装
KR102210620B1 (ko) * 2018-12-20 2021-02-02 한국스마트인증 주식회사 서버에의 비밀 정보 저장 방법 및 복구 방법
US11012425B2 (en) * 2018-12-28 2021-05-18 Micron Technology, Inc. Replay protection nonce generation
EP3720039A1 (de) * 2019-04-05 2020-10-07 Siemens Aktiengesellschaft Verfahren für das konfigurieren eines sicherheitsmoduls mit mindestens einem abgeleiteten schlüssel
US11341261B2 (en) * 2019-04-05 2022-05-24 Spideroak, Inc. Integration of a block chain, managing group authority and access in an enterprise environment
US11551117B1 (en) * 2019-10-25 2023-01-10 Reena Malhotra Policy based artificial intelligence engine
CN113014381B (zh) * 2021-02-19 2022-08-19 广州橙行智动汽车科技有限公司 一种车载终端的密钥处理方法、装置、电子设备和介质
US20230316270A1 (en) * 2022-03-30 2023-10-05 Mastercard International Incorporated Apparatus, system and method for on-device mutlifactor authentication security
CN116150445B (zh) * 2023-04-04 2023-07-21 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 一种批量信息查询方法及电子设备、存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100158253A1 (en) * 2007-02-09 2010-06-24 Lenovo (Singapore) Pte. Ltd. System and Method for Generalized Authentication
WO2013010427A1 (zh) * 2011-07-21 2013-01-24 华为技术有限公司 一种基于可信计算的密钥生成、备份和迁移方法及系统
US20130347064A1 (en) * 2012-06-15 2013-12-26 Visa International Services Association Method and apparatus for secure application execution

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7298847B2 (en) * 2002-02-07 2007-11-20 Nokia Inc. Secure key distribution protocol in AAA for mobile IP
BRPI0418234B1 (pt) 2004-01-06 2018-04-24 Thomson Licensing Dispositivo, cartão de acesso, dispositivo de destino de informação digital, e métodos para transferir informação
BRPI0517026A (pt) * 2004-10-25 2008-09-30 Rick L Orsini método e sistema analisador de dados seguros
CN100531027C (zh) * 2005-07-28 2009-08-19 深圳兆日技术有限公司 一种基于安全环境的密钥移植方法
CN2888514Y (zh) * 2006-01-04 2007-04-11 深圳兆日技术有限公司 一种具有安全转移信任的计算机系统
CN101345619B (zh) * 2008-08-01 2011-01-26 清华大学深圳研究生院 基于生物特征和移动密钥的电子数据保护方法及装置
WO2010087567A1 (en) * 2009-01-29 2010-08-05 Lg Electronics Inc. Method for installing rights object for content in memory card
US8631460B2 (en) 2011-03-23 2014-01-14 CipherPoint Software, Inc. Systems and methods for implementing transparent encryption
US20140032733A1 (en) * 2011-10-11 2014-01-30 Citrix Systems, Inc. Policy-Based Application Management
EP2712450A4 (en) * 2012-03-30 2015-09-16 Commvault Systems Inc INFORMATONS MANAGEMENT OF DATA OF MOBILE DEVICES
US20140108558A1 (en) * 2012-10-12 2014-04-17 Citrix Systems, Inc. Application Management Framework for Secure Data Sharing in an Orchestration Framework for Connected Devices
US10469253B2 (en) 2014-03-03 2019-11-05 Intel Corporation Methods and apparatus for migrating keys

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100158253A1 (en) * 2007-02-09 2010-06-24 Lenovo (Singapore) Pte. Ltd. System and Method for Generalized Authentication
WO2013010427A1 (zh) * 2011-07-21 2013-01-24 华为技术有限公司 一种基于可信计算的密钥生成、备份和迁移方法及系统
US20130347064A1 (en) * 2012-06-15 2013-12-26 Visa International Services Association Method and apparatus for secure application execution

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Pearson, Siani, Marco Casassa-Mont, and Manny Novoa. "Securing information transfer in distributed computing environments." IEEE Security & Privacy 6.1 (2008). *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190072621A (ko) * 2016-11-29 2019-06-25 콘티넨탈 테베스 아게 운트 코. 오하게 차량 네트워크의 제어 유닛들에 난수들을 제공하기 위한 방법, 및 상기 방법을 수행하기 위한 차량 네트워크
US11539693B2 (en) 2016-11-29 2022-12-27 Continental Teves Ag & Co. Ohg Method for providing random numbers for control units of a vehicle network, and vehicle network for performing said method

Also Published As

Publication number Publication date
US20170170957A1 (en) 2017-06-15
CN105960775A (zh) 2016-09-21
TWI578749B (zh) 2017-04-11
KR101888903B1 (ko) 2018-08-17
TW201540038A (zh) 2015-10-16
EP3114793A1 (en) 2017-01-11
WO2015133990A1 (en) 2015-09-11
US10469253B2 (en) 2019-11-05
CN105960775B (zh) 2020-01-07
EP3114793A4 (en) 2017-09-27

Similar Documents

Publication Publication Date Title
KR101888903B1 (ko) 키를 이전시키기 위한 방법 및 장치
US11855983B1 (en) Biometric electronic signature authenticated key exchange token
US20220191012A1 (en) Methods For Splitting and Recovering Key, Program Product, Storage Medium, and System
US20190311148A1 (en) System and method for secure storage of electronic material
US8365262B2 (en) Method for automatically generating and filling in login information and system for the same
US20200358614A1 (en) Securing Transactions with a Blockchain Network
US8862889B2 (en) Protocol for controlling access to encryption keys
US9286466B2 (en) Registration and authentication of computing devices using a digital skeleton key
WO2019199288A1 (en) System and method for secure storage of electronic material
KR20180081108A (ko) 공개/비공개 키 바이오메트릭 인증 시스템
JP2018521417A (ja) 生体特徴に基づく安全性検証方法、クライアント端末、及びサーバ
KR102514429B1 (ko) 생체인식 데이터 템플레이트의 업데이트
US9313185B1 (en) Systems and methods for authenticating devices
CN109672521B (zh) 基于国密加密引擎实现的安全存储系统和方法
WO2020155812A1 (zh) 一种数据存储方法、装置及设备
AU2020386382B2 (en) Cryptographic key management
US11405387B1 (en) Biometric electronic signature authenticated key exchange token
KR102364649B1 (ko) Puf 기반 사물인터넷 디바이스 인증 장치 및 방법
AU2018100503A4 (en) Split data/split storage
JP7250960B2 (ja) ユーザのバイオメトリクスを利用したユーザ認証および署名装置、並びにその方法
US11671475B2 (en) Verification of data recipient
KR102289478B1 (ko) 보안키 관리 방법 및 보안키 관리 서버
US9882879B1 (en) Using steganography to protect cryptographic information on a mobile device
US20240169350A1 (en) Securing transactions with a blockchain network
Ranganath Cloud Data Security through Hybrid Verification Technique Based on Cryptographic Hash Function

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