KR102451109B1 - 디바이스 익명성을 제공하는 키 증명문 생성 - Google Patents
디바이스 익명성을 제공하는 키 증명문 생성 Download PDFInfo
- Publication number
- KR102451109B1 KR102451109B1 KR1020207000801A KR20207000801A KR102451109B1 KR 102451109 B1 KR102451109 B1 KR 102451109B1 KR 1020207000801 A KR1020207000801 A KR 1020207000801A KR 20207000801 A KR20207000801 A KR 20207000801A KR 102451109 B1 KR102451109 B1 KR 102451109B1
- Authority
- KR
- South Korea
- Prior art keywords
- computing device
- attestation
- private key
- public
- key pair
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 55
- 230000004044 response Effects 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 16
- 238000012795 verification Methods 0.000 description 16
- 230000009471 action Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 7
- 230000036541 health Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0407—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
- H04L63/0435—Network 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 wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
- H04L63/0442—Network 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 wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/006—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0825—Key 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 asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0827—Key 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) involving distinctive intermediate devices or communication paths
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/321—Cryptographic 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 a third party or a trusted authority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic 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
- H04L9/3265—Cryptographic 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 using certificate chains, trees or paths; Hierarchical trust model
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/42—Anonymization, e.g. involving pseudonyms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Medicines Containing Antibodies Or Antigens For Use As Internal Diagnostic Agents (AREA)
- Mobile Radio Communication Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
컴퓨팅 디바이스는 증명 인증서에 대한 요청을 디바이스의 하드웨어 및/또는 소프트웨어에 관한 정보와 함께 증명 서비스에 전송한다. 증명 서비스는 요청을 처리하고 디바이스로부터 수신한 정보를 검증한다. 정보를 검증한 이후에, 증명 서비스는 재사용 가능한 공개/개인 키 쌍의 집합으로부터 공개/개인 키 쌍을 선택하고 디바이스에 대한 증명 인증서 및 공개/개인 키 쌍의 공개 키를 생성한다. 이러한 증명 인증서는 증명 서비스에 의해 디지털 서명되고 디바이스에 반환된다. 선택된 공개/개인 키 쌍의 개인 키는 또한 디바이스의 신뢰성 있는 보안 컴포넌트로 암호화되어, 악성 코드에 의해 키가 도난 당하거나 다른 디바이스에서 재사용될 수 없도록 보장하며, 디바이스에 반환된다. 디바이스는 증명 인증서를 사용하여 신뢰 당사자에 액세스하고, 임의로 추가 공개/개인 키 쌍 및 증명 인증서를 생성한다.
Description
컴퓨팅 디바이스는 점점 더 상호 연결되어, 이들 디바이스의 사용자에게 많은 양의 정보 및/또는 기능성을 제공하는 서비스가 이들 디바이스에 이용 가능해지고 있다. 이러한 정보 및 기능성의 이용 가능성은 사용자에게 도움이 되지만 문제가 없는 것은 아니다. 이러한 문제 중 하나는 사용자가 종종 그들의 프라이버시(privacy)를 유지하기를 원한다는 것이다. 그러나, 이들 서비스에 액세스하는 것에는 사용자 및/또는 사용자의 디바이스의 적어도 일부의 식별이 수반할 수 있으며, 이는 다른 서비스로 확대되거나 다른 서비스와 공유되는 경우에 사용자가 가진 프라이버시를 감소시킬 수 있다. 이것은 사용자의 디바이스 및/또는 사용자가 액세스하는 서비스에 대한 사용자 불만을 초래할 수 있다.
본 요약은 아래의 상세한 설명에서 추가로 설명되는 선택된 개념을 단순화된 형태로 소개하기 위해 제공된다. 본 요약은 청구된 주제의 주요 특징 또는 필수 특징을 식별하기 위한 것이 아니며 청구된 주제의 범위를 제한하기 위해 사용되는 것도 아니다.
하나 이상의 양태에 따르면, 증명 서비스에서, 컴퓨팅 디바이스로부터 컴퓨팅 디바이스에 대한 증명 인증서(attestation certificate)에 대한 요청이 수신된다. 요청은 컴퓨팅 디바이스의 하드웨어 및/또는 소프트웨어를 서술하는 정보를 포함한다. 수신된 정보가 검증되고, 비대칭 키 쌍의 집합으로부터 비대칭 키 쌍이 선택되며, 선택된 키 쌍은 또한 다수의 추가 컴퓨팅 디바이스에 대해 선택된다. 선택된 키 쌍의 공개 키를 증명 인증서와 연관시키는 컴퓨팅 디바이스에 대한 증명 인증서가 생성된다. 선택된 키 쌍의 개인 키는 제 1 컴퓨팅 디바이스에 대해 암호화된다. 선택된 키 쌍의 암호화된 개인 키 및 증명 인증서는 제 1 컴퓨팅 디바이스에 반환된다.
하나 이상의 양태에 따르면, 컴퓨팅 디바이스에서, 컴퓨팅 디바이스에 대한 증명 인증서에 대한 요청이 증명 서비스로 전송되며, 요청은 컴퓨팅 디바이스의 하드웨어 및/또는 소프트웨어를 서술하는 정보를 포함한다. 공개/개인 키 쌍 및 공개/개인 키 쌍을 컴퓨팅 디바이스의 신뢰성 있는 보안 컴포넌트(trusted secure component)와 연관시키는 증명 인증서가 증명 서비스로부터 수신된다. 공개/개인 키 쌍의 개인 키는 신뢰성 있는 보안 컴포넌트의 보안 저장소에 저장된다. 증명 서비스에 액세스하지 않고 하나 이상의 추가 공개/개인 키 쌍 및 하나 이상의 추가 증명 인증서가 생성되며, 각각의 추가 증명 인증서는 증명 서비스에 결속(chain up)된다.
상세한 설명은 첨부 도면을 참조하여 설명된다. 도면에서, 참조 번호의 가장 왼쪽 숫자(들)는 참조 번호가 처음으로 출현하는 도면을 식별한다. 설명 및 도면에서 상이한 인스턴스에서 동일한 참조 번호를 사용하는 것은 유사하거나 동일한 항목을 나타낼 수 있다. 도면에 도시된 엔티티는 하나 이상의 엔티티를 나타낼 수 있으며, 그래서 논의에서는 단일 또는 복수 형태의 엔티티가 상호 교환 가능하게 언급될 수 있다.
도 1은 하나 이상의 실시예에 따른, 디바이스 익명성을 제공하는 키 증명문(key attestation statement) 생성을 구현하는 예시적인 시스템을 도시한다.
도 2는 하나 이상의 실시예에 따른 예시적인 증명 서비스를 도시한다.
도 3은 하나 이상의 실시예에 따른 예시적인 신뢰성 있는 보안 컴포넌트를 도시한다.
도 4는 하나 이상의 실시예에 따른, 디바이스 익명성을 제공하는 키 증명문 생성을 구현하기 위한 예시적인 프로세스를 나타내는 흐름도이다.
도 5는 하나 이상의 실시예에 따른, 디바이스 익명성을 제공하는 키 증명문 생성을 구현하기 위한 다른 예시적인 프로세스를 나타내는 흐름도이다.
도 6은 본 명세서에 개시된 다양한 기술을 구현할 수 있는 하나 이상의 시스템 및/또는 디바이스를 나타내는 예시적인 컴퓨팅 디바이스를 포함하는 예시적인 시스템을 도시한다.
도 1은 하나 이상의 실시예에 따른, 디바이스 익명성을 제공하는 키 증명문(key attestation statement) 생성을 구현하는 예시적인 시스템을 도시한다.
도 2는 하나 이상의 실시예에 따른 예시적인 증명 서비스를 도시한다.
도 3은 하나 이상의 실시예에 따른 예시적인 신뢰성 있는 보안 컴포넌트를 도시한다.
도 4는 하나 이상의 실시예에 따른, 디바이스 익명성을 제공하는 키 증명문 생성을 구현하기 위한 예시적인 프로세스를 나타내는 흐름도이다.
도 5는 하나 이상의 실시예에 따른, 디바이스 익명성을 제공하는 키 증명문 생성을 구현하기 위한 다른 예시적인 프로세스를 나타내는 흐름도이다.
도 6은 본 명세서에 개시된 다양한 기술을 구현할 수 있는 하나 이상의 시스템 및/또는 디바이스를 나타내는 예시적인 컴퓨팅 디바이스를 포함하는 예시적인 시스템을 도시한다.
디바이스 익명성을 제공하는 키 증명문 생성이 본 명세서에서 논의된다. 컴퓨팅 디바이스는 자신이 자격 있는 디바이스라는 증거를 요구하는 시스템에 액세스하기 위해, 컴퓨팅 디바이스는 신뢰성 있는 제 3 자로부터 증명 인증서를 획득한다. 이러한 신뢰성 있는 제 3 자는 증명 서비스 또는 인증 기관이라고도 지칭된다. 컴퓨팅 디바이스는 컴퓨팅 디바이스의 하드웨어 및 임의로 컴퓨팅 디바이스 상에서 실행되는 소프트웨어에 관한 정보와 함께 증명 인증서에 대한 요청을 증명 서비스에 전송한다. 이러한 정보는 컴퓨팅 디바이스의 신뢰성 있는 보안 컴포넌트로부터 제공되고 이에 따라 증명 서비스에 의해 신뢰될 수 있다. 컴퓨팅 디바이스는 또한 암호화 키의 공개 키를 증명 서비스에 전송한다. 이러한 암호화 키는 컴퓨팅 디바이스의 신뢰성 있는 보안 컴포넌트에서 존재하는 비대칭 키 쌍으로서, 암호화 키의 개인 키가 악성 코드(malware)에 의해 컴퓨팅 디바이스로부터 수집되어 다른 곳에서 사용될 수 없게 보장한다.
증명 서비스는 증명 인증서 요청을 처리하고 컴퓨팅 디바이스로부터 수신된 정보를 검증한다. 이러한 검증은 컴퓨팅 디바이스가 특정 하드웨어를 포함하는지를 검증하는 것, 특정 소프트웨어가 컴퓨팅 디바이스 상에서 실행 중인지를 검증하는 것 등과 같은 다양한 작용을 포함할 수 있다. 증명 서비스가 증명 인증서 요청의 하드웨어 및/또는 소프트웨어 속성을 검증한 이후에, 증명 서비스는 속성이 진품임을 보증하며, 이에 따라 신뢰성 있는 보안 컴포넌트에 속하는 암호화 키의 존재를 진품 속성이 증명해준다면, 암호화 키의 공개 키로 암호화된 모든 것은 신뢰성 있는 보안 컴포넌트에 의해서만 암호 해독될 수 있다는 귀납법에 의해 검증될 수 있다.
증명 서비스는 재사용 가능한 공개/개인 키 쌍의 집합을 보유한다. 증명 서비스는 컴퓨팅 디바이스로부터 수신된 정보를 검증한 이후에, 재사용 가능한 공개/개인 키 쌍의 집합으로부터 공개/개인 키 쌍을 선택하고 공개/개인 키 쌍의 공개 키와 컴퓨팅 디바이스에 대한 증명 인증서를 생성한다. 이러한 증명 인증서는 증명 서비스에 의해 디지털 서명되어, 선택된 공개/개인 키 쌍의 공개 키가 컴퓨팅 디바이스의 신뢰성 있는 보안 컴포넌트와 연관되어 있다고 인증한다. 따라서, 이러한 증명 인증서는 증명문(attestation statement) 또는 키 증명문(key attestation statement)이라고도 지칭된다.
증명 서비스는 선택된 공개/개인 키 쌍의 개인 키와 함께 증명 인증서를 컴퓨팅 디바이스에 반환한다. 개인 키는 컴퓨팅 디바이스의 신뢰성 있는 보안 컴포넌트에 바인딩된 키로 암호화되어, 개인 키가 컴퓨팅 디바이스의 신뢰성 있는 보안 컴포넌트에 안전하게 전송될 수 있게 한다. 신뢰성 있는 보안 컴포넌트는 공개/개인 키 쌍뿐만 아니라 증명 인증서를 수신하여 저장한다.
이어서 컴퓨팅 디바이스는 자신이 자격 있는 엔티티라는 증거를 원하는 신뢰 당사자(relying party)와 통신할 때, 신뢰성 있는 보안 컴포넌트는 증명 인증서 및 공개/개인 키 쌍의 소유 증거를 신뢰 당사자에 제공한다. 이러한 증거는, 다양한 방식으로, 이를테면 공개/개인 키 쌍의 개인 키를 사용하여, 신뢰 당사자에 의해 신뢰성 있는 보안 컴포넌트에 제공되는 데이터 값(예를 들어, 논스(nonce))에 디지털 서명함으로써 제공될 수 있다.
증명 서비스는 증명 인증서를 요청하는 다수의 상이한 컴퓨팅 디바이스에 대한 공개/개인 키 쌍의 집합으로부터 동일한 공개/개인 키 쌍을 선택할 수 있으며 그렇게 행한다. 따라서, 다수의 상이한 컴퓨팅 디바이스가 동일한 공개/개인 키 쌍을 동시에 사용할 것이다. 다수의 상이한 컴퓨팅 디바이스가 동일한 공개/개인 키 쌍을 갖게 하면 상이한 신뢰 당사자가 특정 컴퓨팅 디바이스의 아이덴티티(identity)를 공모하고 결정하는 것을 차단할 수 있다. 예를 들어, 하나 이상의 컴퓨팅 디바이스가 동일한 공개/개인 키 쌍 및 증명 인증서를 사용하여 두 개의 상이한 신뢰 당사자에 액세스하면, 두 개의 상이한 신뢰 당사자는 이것이 이들 당사자 둘 다에 액세스하는 동일한 컴퓨팅 디바이스인지 또는 동일한 공개/개인 키 쌍을 제공 받은 두 개의 상이한 컴퓨팅 디바이스인지를 알 수 없다. 이것은 신뢰 당사자가 동일한 컴퓨팅 디바이스와 통신하고 있다는 것을 확신할 수 없기 때문에 신뢰 당사자가 특정 컴퓨팅 디바이스에 관한 정보를 공모하고 공유할 수 없어 컴퓨팅 디바이스에 대한 익명성을 제공한다.
또한, 신뢰성 있는 보안 컴포넌트는 자신의 공개/개인 키 쌍과 증명 서비스에 결속된 증명 인증서를 생성하기 위해 증명 서비스로부터 수신한 공개/개인 키 쌍을 선택적으로 사용할 수 있다. 이것은 신뢰성 있는 보안 컴포넌트가 상이한 신뢰 당사자와 함께 사용할 새로운 공개/개인 키 쌍 및 증명 인증서를 생성할 수 있게 한다. 또한, 이러한 새로운 공개/개인 키 쌍 각각은 다수의 상이한 컴퓨팅 디바이스에 제공되었던 증명 서비스의 키에 결속되어, 신뢰성 있는 보안 컴포넌트는 상이한 컴퓨팅 디바이스에 대해 선택되는 동일한 공개/개인 키 쌍의 익명성을 여전히 제공하면서 (증명 서비스에 액세스할 필요없이) 새로운 공개/개인 키 쌍을 신속하게 생성할 수 있게 한다.
대칭 키 암호화, 공개 키 암호화 및 공개/개인 키 쌍이 본 명세서에서 언급된다. 이러한 키 암호화가 관련 기술분야의 통상의 기술자에게 잘 알려져 있지만, 독자에게 도움을 주기 위해 이러한 암호화에 대한 간략한 개요가 본 명세서에 포함된다. 공개 키 암호화(비대칭 공개/개인 키 쌍 암호화라고도 지칭함)에서, 엔티티(예를 들어, 사용자, 하드웨어 또는 소프트웨어 컴포넌트, 디바이스, 도메인 등)는 공개/개인 키 쌍과 연관되어 있다. 이러한 공개/개인 키 쌍은 비대칭 키 쌍이라고도 지칭된다. 공개 키는 공개적으로 사용 가능할 수 있지만 엔티티는 개인 키를 비밀로 유지한다. 개인 키가 없으면 공개 키를 사용하여 암호화된 데이터를 암호 해독하는 것이 계산 상 매우 어렵다. 따라서, 데이터는 공개 키를 사용하는 임의의 엔티티에 의해 암호화되고 그리고 대응하는 개인 키를 사용하는 엔티티에 의해서만 암호 해독될 수 있다. 또한, 데이터에 대한 디지털 서명은 데이터 및 개인 키를 사용함으로써 생성될 수 있다. 개인 키가 없으면, 공개 키를 사용하여 검증될 수 있는 서명을 작성하는 것이 계산 상 매우 어렵다. 공개 키를 가진 임의의 엔티티는 공개 키, 서명 및 서명된 데이터에 대해 적절한 디지털 서명 검증 알고리즘을 실행함으로써 공개 키를 사용하여 디지털 서명을 검증할 수 있다.
다른 한편, 대칭 키 암호화에서, 공유 키(대칭 키라고도 지칭함)는 두 개의 엔티티에 의해 알려져 있고 비밀로 유지된다. 공유 키를 가진 임의의 엔티티는 일반적으로 그 공유 키로 암호화된 데이터를 암호 해독할 수 있다. 공유 키가 없으면 공유 키로 암호화된 데이터를 암호 해독하는 것이 계산 상 매우 어렵다. 따라서, 두 개의 엔티티가 둘 모두 공유 키를 알고 있으면, 각각의 엔티티는 서로에 의해 암호 해독될 수 있는 데이터를 암호화할 수 있지만, 다른 엔티티가 공유 키를 모르면 다른 엔티티는 데이터를 암호 해독할 수 없다. 마찬가지로, 공유 키를 갖는 엔티티는 동일 엔티티에 의해 암호 해독될 수 있는 데이터를 암호화할 수 있지만, 다른 엔티티가 공유 키를 모르면 다른 엔티티는 데이터를 암호 해독할 수 없다. 또한, 이를테면 키 해시 메시지 인증 코드 메커니즘(keyed-hash message authentication code mechanism)을 사용하는 대칭 키 암호화에 기초한 디지털 서명이 생성될 수 있다. 공유 키를 갖는 임의의 엔티티는 디지털 서명을 생성하고 검증할 수 있다. 예를 들어, 신뢰성 있는 제 3 자는 특정 엔티티의 아이덴티티에 기초하여 대칭 키를 생성할 수 있고, 그런 다음 (예를 들어, 대칭 키를 사용하여 데이터를 암호화 또는 암호 해독함으로써) 그 특정 엔티티에 대한 디지털 서명의 생성 및 검증을 둘 모두 행할 수 있다.
도 1은 하나 이상의 실시예에 따른, 디바이스 익명성을 제공하는 키 증명문 생성을 구현하는 예시적인 시스템(100)을 도시한다. 시스템(100)은 네트워크(108)를 통해 인증 서비스(104) 및 신뢰 당사자 시스템(106)과 통신할 수 있는 컴퓨팅 디바이스(102)를 포함한다. 네트워크(108)는 인터넷, 근거리 통신망(local area network)(LAN), 전화 네트워크, 인트라넷, 다른 공용 및/또는 사설 네트워크, 이들의 조합 등을 포함하는 다양한 상이한 네트워크일 수 있다.
컴퓨팅 디바이스(102)는 다양한 상이한 유형의 디바이스일 수 있다. 예를 들어, 컴퓨팅 디바이스(102)는 데스크톱 컴퓨터, 서버 컴퓨터, 랩톱 또는 넷북 컴퓨터, 모바일 디바이스(예를 들어, 태블릿 또는 패블릿 디바이스, 셀룰러 또는 다른 무선 전화(예를 들어, 스마트폰), 노트패드 컴퓨터, 모바일 스테이션, 웨어러블 디바이스(예를 들어, 안경, 헤드 장착형 디스플레이, 시계, 팔찌, 증강 현실(augmented reality)(AR) 디바이스, 가상 현실(virtual reality)(VR) 디바이스), 엔터테인먼트 디바이스(예를 들어, 엔터테인먼트 기기, 디스플레이 디바이스에 통신 가능하게 연결된 셋톱 박스, 게임 콘솔), 사물 인터넷(Internet of Things)(IoT) 디바이스(예를 들어, 다른 디바이스와의 통신을 가능하게 하는 소프트웨어, 펌웨어 및/또는 하드웨어를 구비한 객체 또는 사물), 텔레비전 또는 기타 디스플레이 디바이스, 자동차 컴퓨터 등일 수 있다. 따라서, 컴퓨팅 디바이스(102)는 실질적인 메모리 및 프로세서 리소스를 갖는 풀 리소스(full resource) 디바이스(예를 들어, 개인용 컴퓨터, 게임 콘솔)로부터 제한된 메모리 및/또는 프로세싱 리소스를 갖는 로우 리소스(low-resource) 디바이스(예를 들어, 종래의 셋톱 박스, 휴대용 게임 콘솔)에 이르기까지 다양할 수 있다.
증명 서비스(104)는 동일한 또는 상이한 유형의 하나 이상의 컴퓨팅 디바이스에 의해 구현되는 서비스 또는 시스템이다. 컴퓨팅 디바이스(102)에 관한 논의와 유사하게, 증명 서비스(104)는 실질적인 메모리 및 프로세서 리소스를 갖는 풀 리소스 디바이스로부터 제한된 메모리 및/또는 프로세싱 리소스를 갖는 로우 리소스 디바이스에 이르기까지 다양한 상이한 유형의 디바이스에 의해 구현될 수 있다.
신뢰 당사자 시스템(106)은 동일한 또는 상이한 유형의 하나 이상의 컴퓨팅 디바이스에 의해 구현된다. 컴퓨팅 디바이스(102)에 관한 논의와 유사하게, 신뢰 당사자 시스템(106)은 실질적인 메모리 및 프로세서 리소스를 갖는 풀 리소스 디바이스로부터 제한된 메모리 및/또는 프로세싱 리소스를 갖는 로우 리소스 디바이스에 이르기까지 다양한 상이한 유형의 디바이스에 의해 구현될 수 있다.
도 1은 단일 컴퓨팅 디바이스(102), 단일 증명 서비스(104) 및 단일 신뢰 당사자 시스템(106)을 갖는 예시적인 시스템(100)을 도시한다. 그러나, 시스템(100)은 다수의 컴퓨팅 디바이스(102), 다수의 증명 서비스(104) 및/또는 다수의 신뢰 당사자 시스템(106)을 포함할 수 있다는 것을 유의해야 한다.
컴퓨팅 디바이스(102)는 신뢰성 있는 보안 컴포넌트(112), 하나 이상의 애플리케이션(114) 및 오퍼레이팅 시스템(116)을 포함한다. 신뢰성 있는 보안 컴포넌트(112)는 증명 서비스(104)가 신뢰하는 것으로 간주되는 컴포넌트이다. 신뢰성 있는 보안 컴포넌트(112)는 아래에서 더 상세하게 논의되며, 특정 하드웨어 컴포넌트, 특정 소프트웨어 컴포넌트, 특정 방식 또는 순서의 컴퓨팅 디바이스(102)의 로딩 또는 부팅 등을 포함할 수 있다.
오퍼레이팅 시스템(116)은 컴퓨팅 디바이스(102)의 하드웨어 컴포넌트와의 통신을 용이하게 하는 것을 비롯한 다양한 기능성을 컴퓨팅 디바이스(102)에 제공하는 하나 이상의 프로그램을 포함한다. 엔터테인먼트 애플리케이션, 교육 애플리케이션, 생산성 애플리케이션 등과 같은 하나 이상의 애플리케이션(114)이 오퍼레이팅 시스템(116) 상에서 실행될 수 있다. 오퍼레이팅 시스템(116) 및/또는 애플리케이션(114)의 프로그램은 신뢰 당사자 시스템(106)에 액세스할 수 있다. 신뢰성 있는 보안 컴포넌트(112)와는 별개로 도시되어 있지만, 하나 이상의 애플리케이션(114)은 신뢰성 있는 보안 컴포넌트(112)에 포함될 수 있고 및/또는 오퍼레이팅 시스템(116)의 적어도 일부는 신뢰성 있는 보안 컴포넌트(112)에 포함될 수 있다.
신뢰 당사자 시스템(106)은 컴퓨팅 디바이스(102)에 정보 또는 기능성을 제공하는 다양한 상이한 시스템 중 임의의 시스템일 수 있다. 이들은 예를 들어 컴퓨팅 디바이스(102)로 하여금 다양한 유형의 엔터테인먼트 콘텐츠(예를 들어, 오디오 및/또는 비디오 콘텐츠)에 액세스할 수 있게 하는 시스템, 컴퓨팅 디바이스(102)로 하여금 다양한 교육 또는 생산 애플리케이션을 실행할 수 있게 하는 시스템, 컴퓨팅 디바이스(102)로 하여금 보안 또는 기밀 정보 등에 액세스하게 하는 시스템 등일 수 있다.
신뢰 당사자 시스템(106)에 액세스하기 위해, 신뢰성 있는 보안 컴포넌트(112)는 증명 서비스(104)로부터 증명 인증서를 획득한다. 하나 이상의 실시예에서, 본 명세서에서 논의되는 증명 인증서는 X.509 인증서 표준 중 어느 하나(예를 들어, the Network Working Group Request for Comments 1422 (1993년 2월))에 따른 X.509 인증서이다. 신뢰성 있는 보안 컴포넌트(112)는 신뢰성 있는 보안 컴포넌트(112)를 서술하는 정보를 포함하는 컴퓨팅 디바이스(102)를 서술하는 정보를 포함하는 증명 인증서 요청을 증명 서비스(104)에 전송한다.
증명 서비스(104)는 클라이언트 익명성을 지원하는 증명 인증서 시스템(122) 및 키 집합(124)을 포함한다. 키 집합(124)은 다수의 공개/개인 키 쌍의 집합이다. 키 집합(124)은 다양한 상이한 방식으로, 이를테면 저장 디바이스(예를 들어, 자기 드라이브, 솔리드 스테이트 드라이브) 또는 다른 메모리(예를 들어, 랜덤 액세스 메모리(random access memory)(RAM)))에서 유지될 수 있다. 클라이언트 익명성을 지원하는 증명 인증서 시스템(122)은 신뢰성 있는 보안 컴포넌트(112)로부터 증명 인증서 요청을 수신하고 증명 인증서 요청의 일부로서 수신된 정보를 검증한다. 이러한 검증은 아래에서 보다 상세하게 논의되며, 컴퓨팅 디바이스가 특정 하드웨어를 포함하는지를 검증하는 것, 특정 소프트웨어가 컴퓨팅 디바이스 상에서 실행 중인지를 검증하는 것 등과 같은 다양한 작용을 포함할 수 있다. 검증이 수행되는 방식은 신뢰성 있는 보안 컴포넌트(112)가 구현되는 방식에 따라 달라질 수 있다.
클라이언트 익명성을 지원하는 증명 인증서 시스템(122)이 증명 인증서 요청의 일부로서 수신된 정보를 검증할 수 없다면, 클라이언트 익명성을 지원하는 증명 인증서 시스템(122)은 증명 인증서를 컴퓨팅 디바이스(102)에 발행하지 않는다. 그러나, 클라이언트 익명성을 지원하는 증명 인증서 시스템(122)이 증명 인증서 요청의 일부로서 수신된 정보를 검증하면, 클라이언트 익명성을 지원하는 증명 인증서 시스템(122)은 키 집합(124)으로부터 공개/개인 키 쌍을 선택하고 컴퓨팅 디바이스(102)에 대한 증명 인증서를 생성한다. 이러한 증명 인증서는 신뢰성 있는 보안 컴포넌트(112)를 선택된 공개/개인 키 쌍과 연관시키고, 클라이언트 익명성을 지원하는 증명 인증서 시스템(122)에 의해 디지털 서명된다.
클라이언트 익명성을 지원하는 증명 인증서 시스템(122)은 선택된 공개/개인 키 쌍의 개인 키와 함께 증명 인증서를 컴퓨팅 디바이스(102)에 반환한다. 클라이언트 익명성을 지원하는 증명 인증서 시스템(122)은 신뢰성 있는 보안 컴포넌트(112)의 공개/개인 키 쌍의 공개 키와 같이, 신뢰성 있는 보안 컴포넌트(112)에 바인딩된 키로 개인 키를 암호화하여, 선택된 공개/개인 키 쌍의 개인 키가 신뢰성 있는 보안 컴포넌트(112)로 안전하게 전송될 수 있게 한다. 신뢰성 있는 보안 컴포넌트(112)는 공개/개인 키 쌍뿐만 아니라 증명 인증서를 수신하여 키 저장소(126)에 저장한다.
컴퓨팅 디바이스(102)는 신뢰성 있는 보안 컴포넌트(112)가 증명 서비스(104)에 의한 증명 인증서를 발행 받았다는 증거를 신뢰 당사자 시스템(106)에 제공함으로써 신뢰 당사자 시스템(106)을 사용할 수 있다. 컴퓨팅 디바이스(102)에 대해 공개/개인 키 쌍 및 증명 인증서가 선택된다면, 이러한 증거는 다양한 방식으로 신뢰 당사자 시스템(106)에 제공될 수 있다. 예를 들어, 신뢰 당사자 시스템(106)은 신뢰성 있는 보안 컴포넌트(112)에 논스를 제공할 수 있고, 신뢰성 있는 보안 컴포넌트(112)는 증명 서비스(104)로부터 수신된 공개/개인 키 쌍의 개인 키를 사용하여 논스에 디지털 서명한다. 증명 인증서상의 증명 서비스(104)의 디지털 서명은 증명 서비스(104)의 공개 키를 사용하여 신뢰 당사자 시스템(106)에 의해 검증될 수 있다. 논스상의 디지털 서명은 또한 증명 인증서에 포함된 공개 키를 사용하여 신뢰 당사자 시스템(106)에 의해 검증될 수 있으며, 이로써 증명 인증서(및 증명 인증서에 의해 참조되는 공개 키)가 증명 서비스(104)에 의해 컴퓨팅 디바이스(102)에 제공되었음을 신뢰 당사자 시스템(106)에게 입증한다.
신뢰 당사자 시스템(106)은 컴퓨팅 디바이스(102)가 신뢰 당사자 시스템(106)을 사용할 수 있게 하기 위해 다양한 추가적인 체크 또는 검증을 임의로 포함한다. 예를 들어, 신뢰 당사자 시스템(106)은 컴퓨팅 디바이스(102)의 신뢰성 있는 보안 컴포넌트(112)가 적어도 특정 버전 번호이여야 한다는 제한을 부과할 수 있다.
도 2는 하나 이상의 실시예에 따른 예시적인 증명 서비스(104)를 도시한다. 증명 서비스(104)는 클라이언트 익명성을 지원하는 증명 인증서 시스템(122) 및 키 집합(124)을 포함한다. 클라이언트 익명성을 지원하는 증명 인증서 시스템(122)은 통신 모듈(202), 검증 모듈(204), 키 선택 모듈(206) 및 증명 인증서 생성 모듈(208)을 포함한다.
통신 모듈(202)은 도 1의 컴퓨팅 디바이스(102)로부터 증명 인증서에 대한 요청을 수신한다. 도 1의 컴퓨팅 디바이스(102)를 참조하여 논의되었지만, 증명 서비스(104)는 다수의 상이한 컴퓨팅 디바이스(102)로부터 증명 인증서에 대한 요청을 수신할 수 있으며, 전형적으로 그렇게 수행한다는 점에 유의하여야 한다. 요청은 위에서 논의한 바와 같이 컴퓨팅 디바이스(102)를 서술하는 정보를 포함한다.
검증 모듈(204)은 컴퓨팅 디바이스(102)를 서술하는 정보를 검증한다. 컴퓨팅 디바이스(102)로부터 수신된 특정 정보는 달라질 수 있고, 또한 검증 모듈(204)이 컴퓨팅 디바이스(102)를 서술하는 정보를 검증하는 방식은 신뢰성 있는 보안 컴포넌트(112)가 구현되는 방식에 기초하여 적어도 부분적으로 달라진다.
도 1로 되돌아가면, 일반적으로, 신뢰성 있는 보안 컴포넌트(112)는 신뢰성 있는 보안 컴포넌트(112)가 증명 서비스(104)에 의해 신뢰 되는 상태에서 컴퓨팅 디바이스(102)를 실행시키는 하드웨어 및/또는 소프트웨어를 포함하도록 구현된다. 증명 서비스(104)에 의해 신뢰되는 상태는, 예를 들어 컴퓨팅 디바이스(102)를 공격할 수 있는 악성 코드로부터 보호되고, 증명 서비스(104)가 컴퓨팅 디바이스(102) 및/또는 신뢰성 있는 보안 컴포넌트(112)를 사칭하는 다른 디바이스가 아니라 컴퓨팅 디바이스(102)(또는 컴퓨팅 디바이스(102)의 신뢰성 있는 보안 컴포넌트(112))와 통신 중임을 증명 서비스(104)가 보증할 수 있는 상태 등이다.
하나 이상의 실시예에서, 신뢰성 있는 보안 컴포넌트(112)는 신뢰성 있는 플랫폼 모듈(trusted platform module)(TPM)인 보안 암호화 프로세서를 포함한다. TPM은 키 생성, 암호화, 암호 해독, 보안 저장(예를 들어, 플랫폼 구성 레지스터) 등과 같은 다양한 기능성을 포함한다. 하나 이상의 실시예에서, TPM은 Trusted Platform Module Library specification, Family "2.0", Level 00, Revision 01.16 (2014년 10월 30일), Parts 1-4로서 공개된 Trusted Computing Group Trusted Platform Module specification version 2.0을 따른다. 본 명세서에서 TPM이 언급되지만, 신뢰성 있는 보안 컴포넌트(112)는 TPM에 유사한 기능성을 제공하는 하나 이상의 다른 암호화 프로세서를 대안적으로 사용할 수 있다.
신뢰성 있는 보안 컴포넌트(112)는 연관된 공개/개인 키 쌍을 갖는다. 이것은 다른 디바이스 또는 컴포넌트로 하여금 신뢰성 있는 보안 컴포넌트 공개/개인 키 쌍의 공개 키를 사용하여 데이터를 암호화하게 하여, 신뢰성 있는 보안 컴포넌트(112)만이 데이터를 암호 해독할 수 있게 한다. 하나 이상의 실시예에서, 신뢰성 있는 보안 컴포넌트(112)는 컴퓨팅 디바이스(102)가 특정 순서의 특정 모드 또는 부팅된 로딩 소프트웨어로 부팅된 경우에만 TPM으로부터 연관된 공개/개인 키 쌍을 검색할 수 있다. 이것은 신뢰성 있는 보안 컴포넌트(112)에 대한 추가적인 보호를 제공하여, 컴퓨팅 디바이스가 특정의 알려진 모드(예를 들어, 보안 또는 신뢰성 있는 모드)로 또는 (예를 들어, 악성 코드 없는) 특정 소프트웨어로 부팅된 경우에만 신뢰성 있는 보안 컴포넌트(112)로 하여금 연관된 공개/개인 키 쌍에 액세스할 수 있게 한다.
하나 이상의 실시예에서, 증명 인증서 요청을 동반하는 컴퓨팅 디바이스(102)를 서술하는 정보는 컴퓨팅 디바이스(102)의 건강(health)(또는 건강 증명(health attestation))을 표시한다. 컴퓨팅 디바이스(102)의 건강은 컴퓨팅 디바이스(102)를 부팅할 때 어떤 모듈이 로딩되었는지의 표시, 컴퓨팅 디바이스(102)를 부팅할 때 특정 모듈 또는 기능이 로딩되었는지의 표시, 컴퓨팅 디바이스(102)가 특정 모드에서 (예를 들어, 보안 부팅 모드에서) 부팅되었는지 여부의 표시, 특정 보안 기능이 턴 온되었는지 또는 턴 오프되었는지의 표시, 가상 보안 모드(virtual secure mode)(VSM)가 컴퓨팅 디바이스(102)에서 (예를 들어, 신뢰성 있는 보안 컴포넌트(112)의 일부로서) 실행되고 있는지의 표시 등과 같은 다양한 상이한 방식으로 명시될 수 있다.
추가적으로 또는 대안적으로, 증명 인증서에 대한 요청을 동반하는 컴퓨팅 디바이스(102)를 서술하는 정보는 신뢰성 있는 보안 컴포넌트(112)가 증명 서비스(104)(키 증명이라고도 지칭함)에 의해 신뢰되는 컴포넌트(예를 들어, 하드웨어 컴포넌트)라는 것을 표시한다. 신뢰성 있는 보안 컴포넌트(112)는 공개/개인 키 쌍을 가질 수 있고, 이러한 공개/개인 키 쌍의 공개 키는 증명 서비스(104)에게 알려질 수 있다. 따라서, 신뢰성 있는 보안 컴포넌트(112)는 신뢰성 있는 보안 컴포넌트(112)의 공개/개인 키 쌍의 개인 키를 사용하여 값(예를 들어, 논스)에 디지털 서명함으로써 그것이 실제로 신뢰성 있는 보안 컴포넌트(112)라는 표시를 제공할 수 있다.
도 2로 되돌아가서, 검증 모듈(204)은 증명 인증서에 대한 요청을 동반하는 컴퓨팅 디바이스(102)를 서술하는 정보를 검증한다. 예를 들어, 건강 증명을 위해, 검증 모듈(204)은 컴퓨팅 디바이스(102)로부터 수신된 정보가 컴퓨팅 디바이스(102)를 부팅할 때 특정 모듈이 로딩되었음을 표시하는 것, 컴퓨팅 디바이스(102)가 특정 모드(예를 들어, 보안 부팅 모드)에서 부팅되었음을 표시하는 것, 특정 보안 기능이 턴 온 또는 턴 오프된 것 등을 검증할 수 있다. 다른 예로서, 키 증명을 위해, 검증 모듈(204)은 신뢰성 있는 보안 컴포넌트(112)에 의해 디지털 서명된 값(예를 들어, 논스) 상의 디지털 서명을 검증할 수 있다.
검증 모듈(204)이 컴퓨팅 디바이스(102)로부터 수신된 정보를 검증하지 않으면, 컴퓨팅 디바이스(102)에 대한 키가 선택되지 않고 컴퓨팅 디바이스(102)에 대한 증명 인증서가 생성되지 않는다. 그러나, 검증 모듈(204)이 컴퓨팅 디바이스(102)로부터 수신된 정보를 검증하면, 키 선택 모듈(206)은 키 집합(124)으로부터 비대칭 키 쌍(공개/개인 키 쌍)을 선택한다. 선택은 랜덤하게, 의사 랜덤하게 또는 다양한 다른 규칙 또는 기준에 따라 수행될 수 있다.
키 집합(124)은 수십, 수백, 수천 또는 그 이상의 수와 같은 임의 수의 비대칭 키 쌍을 가질 수 있다. 키 집합(124) 내의 비대칭 키 쌍은 (예를 들어, 컴퓨팅 디바이스(102)로부터 증명 인증서에 대한 요청을 수신하기 이전에 키 선택 모듈(206) 또는 증명 서비스(104)의 다른 모듈에 의해) 미리 생성될 수 있고 키 집합(124) 내에서 유지되고, 그런 다음 키 선택 모듈(206)에 의해 필요할 때 선택될 수 있다. 키 집합(124)에 포함된 비대칭 키 쌍의 수는 다양한 상이한 인자에 기초하여 달라질 수 있다. 하나 이상의 실시예에서, 키 집합(124)에 포함된 비대칭 키 쌍의 수는 키가 구성되는 경우(예를 들어, 악성 코드에 의해 발견되거나 또는 잠재적으로 발견되는 경우) 증명 인증서를 무효화할 필요성에 대비하여 컴퓨팅 디바이스의 익명성을 상쇄시켜 줌으로써 결정된다. 예를 들어, 더 많은 컴퓨팅 디바이스가 동일한 비대칭 키 쌍을 얻기 때문에 더 적은 수의 비대칭 키 쌍은 컴퓨팅 디바이스에 대한 익명성을 증가시키는 결과를 가져오지만, 또한 비대칭 키 쌍이 손상된 경우에는 많은 수의 컴퓨팅 디바이스가 손상된 비대칭 키 쌍을 수신했기 때문에 많은 수의 증명 인증서를 무효화해야 한다는 결과를 초래하기도 한다.
키 집합(124)에 포함된 비대칭 키 쌍은 시간이 지남에 따라 변경될 수 있다는 것을 또한 유의하여야 한다. 예를 들어, 키 선택 모듈(206)은 규칙적 또는 불규칙적인 간격으로 키 집합(124)에 추가할 새로운 비대칭 키 쌍을 생성할 수 있고, 규칙적 또는 불규칙적인 간격으로 키 집합(124)으로부터 비대칭 키 쌍을 삭제할 수 있다.
증명 인증서 생성 모듈(208)은 인증서를 선택된 공개/개인 키 쌍의 공개 키와 연관시키는 인증서를 생성한다. 증명 인증서는 또한 신뢰성 있는 보안 컴포넌트(112) (및/또는 컴퓨팅 디바이스(102))를 선택된 공개/개인 키 쌍의 공개 키와 연관시킨다. 이러한 연관은 예를 들어 선택된 공개/개인 키 쌍의 공개 키 및 신뢰성 있는 보안 컴포넌트(112)에 안전하게 제공되는 (예를 들어, 신뢰성 있는 보안 컴포넌트(112)의 키를 이용하여 암호화된) 선택된 공개/개인 키 쌍의 개인 키를 포함하는 인증서에 의해 수행된다. 신뢰성 있는 보안 컴포넌트(112) (및/또는 컴퓨팅 디바이스(102))의 익명성을 유지하기 위해, 신뢰성 있는 보안 컴포넌트(112) 및/또는 컴퓨팅 디바이스(102)의 이름 또는 다른 식별자가 생성된 인증서에 포함될 필요는 없다. 증명 인증서 생성 모듈(208)은 증명 서비스(104)의 공개/개인 키 쌍의 공개 키를 사용하여 인증서에 디지털 서명하여, 증명 서비스(104)가 신뢰성 있는 보안 컴포넌트(112)를 검증했고 그리고 선택된 공개/개인 키 쌍을 신뢰성 있는 보안 컴포넌트(112)에 제공했음을 신뢰 당사자가 알 수 있게 하는 증명 인증서를 생성한다.
통신 모듈(202)은 키 선택 모듈(206)에 의해 선택된 공개/개인 키 쌍의 개인 키뿐만 아니라 증명 인증서를 신뢰성 있는 보안 컴포넌트(112)에 반환한다. 선택된 공개/개인 키 쌍의 개인 키는 (예를 들어, 신뢰성 있는 보안 컴포넌트(112)의 공개/개인 키 쌍의 공개 키를 사용하여) 암호화되어, 개인 키가 신뢰성 있는 보안 컴포넌트(112)에 안전하게 전송되고 도청 또는 다른 중개 디바이스에 의해 판독될 수 없도록 한다. 증명 인증서는 또한 신뢰성 있는 보안 컴포넌트(112)에 안전하게 전송되도록 암호화될 수도 있지만, 암호화될 필요는 없다.
따라서, 증명 인증서 생성 모듈(208)에 의해 생성된 증명 인증서는 선택된 공개/개인 키 쌍의 공개 키를 포함한다. 증명 인증서는 증명 인증서 생성 모듈(208)에 의해 디지털 서명되어, 선택된 공개/개인 키 쌍의 공개 키가 이러한 증명 인증서와 함께 제공되었다는 것을 입증한다. 그 다음, 선택된 공개/개인 키 쌍의 개인 키가 신뢰성 있는 보안 컴포넌트(112)에 안전하게 제공된다. 이어서 컴퓨팅 디바이스(102)가 신뢰 당사자(104)에 액세스하기를 희망할 때, 신뢰 당사자(104)는 컴퓨팅 디바이스 및 신뢰성 있는 보안 컴포넌트(112)에 논스를 제공할 수 있다. 신뢰성 있는 보안 컴포넌트(112)는 선택된 공개/개인 키 쌍의 개인 키를 사용하여 논스에 디지털 서명하고, 서명된 논스 및 증명 인증서를 신뢰 당사자(104)에게 전송한다. 신뢰 당사자(104)는 증명 인증서 생성 모듈(208)이 증명 인증서에 실제로 디지털 서명했는지(및 이에 따라 배포했는지)를 검증하기 위해 증명 서비스(104)의 공개 키를 사용한다. 또한, (증명 서비스(104)가 신뢰성 있는 보안 컴포넌트(112)를 신뢰했고 보안 컴포넌트(112)에 개인 키를 제공했다면, 신뢰성 있는 보안 컴포넌트(112)만이 인증서 내의 공개 키와 동일한 공개/개인 키 쌍의 일부인 개인 키를 가졌을 것이기 때문에) 신뢰 당사자(104)는 논스가 증명 서비스(104)에 의해 신뢰 받는 신뢰성 있는 보안 컴포넌트에 의해 디지털 서명되었다는 것을 검증하기 위해 증명 인증서 내의 공개 키를 사용할 수 있다. 따라서, 신뢰 당사자(104)는 신뢰성 있는 보안 컴포넌트(112)가 증명 서비스(104)에 의해 신뢰되는지를 검증할 수 있지만, 신뢰 당사자(104)에 의해 신뢰되는 인증서는 특정의 신뢰성 있는 보안 컴포넌트(112) 및/또는 컴퓨팅 디바이스(102)의 이름 또는 다른 식별자를 가질 필요는 없다.
도 3은 하나 이상의 실시예에 따른 예시적인 신뢰성 있는 보안 컴포넌트(112)를 도시한다. 신뢰성 있는 보안 컴포넌트(112)는 키 저장소(126), 증명 인증서 검색 모듈(302), 증명 인증서 생성 모듈(304), 키 생성 모듈(306) 및 인증서 저장소(308)를 포함한다.
증명 인증서 검색 모듈(302)은 증명 서비스(104)와 통신하여, 증명 서비스에 대한 요청을 전송하고 증명 인증서 및 암호화된 개인 키를 증명 서비스(104)로부터 수신한다. 증명 서비스(104)로부터 수신된 공개/개인 키 쌍(또는 적어도 공개/개인 키 쌍의 개인 키)은 키 저장소(126)에 저장된다. 증명 서비스(104)로부터 수신된 증명 인증서는 또한 인증서 저장소(308)에 저장된다. 키 저장소(126)는 신뢰성 있는 보안 컴포넌트(112)의 모듈에만 액세스 가능한 보안 저장소이다. 인증서 저장소(308)는 보안 저장소일 수 있지만 보안 저장소일 필요는 없다. 추가적으로 또는 대안적으로, 증명 인증서는 신뢰성 있는 보안 컴포넌트(112) 외부에 저장될 수 있다.
신뢰성 있는 보안 컴포넌트(112)는 증명 서비스(104)에 의해 신뢰되며, 이에 따라 증명 인증서 생성 모듈(304)은 또한 증명 인증서를 생성할 수도 있다. 키 생성 모듈(306)은 다양한 공개 기술 또는 독점 기술 중 임의의 기술을 사용하여 공개/개인 키 쌍을 생성한다. 증명 인증서 생성 모듈(304)은 인증서를 새로 생성된 공개/개인 키 쌍의 공개 키와 연관시키는 인증서를 생성한다. 증명 인증서는 또한 신뢰성 있는 보안 컴포넌트(112)(및/또는 컴퓨팅 디바이스(102))를 키 생성 모듈(306)에 의해 새로 생성된 공개/개인 키 쌍의 공개 키와 연관시킨다. 이러한 연관은 예를 들어, 신뢰성 있는 보안 컴포넌트(112)에 의해 안전하게 유지되는 (예를 들어, 키 저장소(126)에 저장되는) 새로 생성된 공개/개인 키 쌍의 공개 키 및 새로 생성된 공개/개인 키 쌍의 개인 키를 포함하는 인증서에 의해 수행된다. 신뢰성 있는 보안 컴포넌트(112)(및/또는 컴퓨팅 디바이스(102))의 익명성을 유지하기 위해, 신뢰성 있는 보안 컴포넌트(112) 및/또는 컴퓨팅 디바이스(102)의 이름 또는 다른 식별자가 새로 생성된 인증서에 포함될 필요는 없다. 증명 인증서 생성 모듈(304)은 증명 서비스(104)로부터 수신된 공개/개인 키 쌍의 공개 키를 사용하여 인증서에 디지털 서명하여, 증명 서비스(104)에 결속되고 이에 따라 증명 서비스(104)가 신뢰성 있는 보안 컴포넌트(112)를 검증했다는 것을 신뢰 당사자가 알게 하는 증명 인증서를 작성한다. 또한, 증명 인증서 생성 모듈(304)에 의해 생성된 증명 인증서는 증명 서비스(104)로부터 수신된 공개/개인 키 쌍의 공개 키를 사용하여 디지털 서명되고, 그 공개 키에 기초하여 증명 서비스(104)에 결속되고, 다수의 상이한 컴퓨팅 디바이스가 그 동일한 공개 키를 수신하고 그 동일한 공개 키에 기초하여 증명 인증서를 생성할 것이기 때문에, 컴퓨팅 디바이스(102)가 자신의 증명 인증서를 생성하더라도 컴퓨팅 디바이스(102)의 익명성은 유지된다.
키 생성 모듈(306)에 의해 생성된 공개/개인 키 쌍(또는 적어도 공개/개인 키 쌍의 개인 키)은 키 저장소(126)에 저장된다. 증명 인증서 생성 모듈(304)에 의해 생성된 증명 인증서는 인증서 저장소(308)에 저장된다.
증명 인증서 생성 모듈(304) 및 키 생성 모듈(306)은 원하는 대로 새로운 키 및 증명 인증서를 생성할 수 있다. 이로써 각각의 새로운 키 및 증명 인증서에 대해 네트워크(108) 및 증명 서비스(104)에 액세스하지 않고 새로운 키 및 증명 인증서를 생성할 수 있어, 새로운 키 및 증명 인증서를 얻는데 필요한 시간을 감소시킨다. 예를 들어, 컴퓨팅 디바이스(102)에 의해 액세스되는 각각의 새로운 신뢰 당사자 시스템(106), 컴퓨팅 디바이스(102) 상에서 실행되는 웹 브라우저에 의해 액세스되는 각각의 새로운 웹 사이트 등에 대해 새로운 공개/개인 키 쌍 및 증명 인증서가 생성될 수 있다.
도 4는 하나 이상의 실시예에 따른 디바이스 익명성을 제공하는 키 증명문 생성을 구현하기 위한 예시적인 프로세스(400)를 나타내는 흐름도이다. 프로세스(400)는 도 1 또는 도 2의 증명 서비스(104)와 같은 증명 서비스에 의해 실행되며, 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합으로 구현될 수 있다. 프로세스(400)는 한 세트의 행위로서 도시되고 다양한 행위의 동작을 수행하는 도시된 순서로 제한되지 않는다. 프로세스(400)는 디바이스 익명성을 제공하는 키 증명문 생성을 구현하기 위한 예시적인 프로세스이며; 디바이스 익명성을 제공하는 주요 증명문 생성을 구현하는 것에 관한 추가적인 논의는 상이한 도면을 참조하여 본 명세서에 포함된다.
프로세스(400)에서, 컴퓨팅 디바이스에 대한 증명 인증서에 대한 요청이 수신된다(행위(402)). 요청은 컴퓨팅 디바이스의 소프트웨어 및/또는 하드웨어를 서술하는 정보를 포함한다. 정보는 컴퓨팅 디바이스의 건강을 표시하고 및/또는 신뢰성 있는 보안 컴포넌트는 위에서 논의된 증명 서비스에 의해 신뢰되는 컴포넌트라는 것을 표시할 수 있다.
수신된 정보가 검증된다(행위(404)). 증명 서비스가 정보를 검증하는 방식은 위에서 논의된 바와 같이 수신된 정보에 적어도 부분적으로 기초하여 달라진다.
비대칭 키 쌍은 비대칭 키 집합으로부터 선택된다(행위(406)). 키 집합 내의 비대칭 키 각각은 공개/개인 키 쌍이며, 키 쌍 중 하나는 위에서 논의된 다양한 방식으로, 이를 테면 랜덤하게 또는 의사 랜덤하게 선택된다.
컴퓨팅 디바이스에 대한 증명 인증서 및 선택된 키 쌍이 생성된다(행위(408)). 증명 인증서는 선택한 키 쌍의 공개 키를 증명 인증서와 연관시킨다.
컴퓨팅 디바이스에 대해 선택된 키 쌍의 개인 키가 또한 암호화된다(행위(410)). 선택된 비대칭 키 쌍은 암호화되거나, 선택된 비대칭 키 쌍의 개인 키만 암호화될 수 있다. 선택된 키 쌍의 개인 키는 컴퓨팅 디바이스의 신뢰성 있는 보안 컴포넌트의 공개/개인 키 쌍의 공개 키를 사용하여 암호화된다. 신뢰성 있는 보안 컴포넌트의 공개 키는 행위(402)에서 수신된 컴퓨팅 디바이스를 서술하는 정보에 포함될 수 있거나 또는 다른 방식으로 획득될 수 있다.
선택된 키 쌍의 암호화된 개인 키 및 증명 인증서는 컴퓨팅 디바이스에 반환된다(행위(412)). 선택된 키 쌍의 암호화된 개인 키 및 증명 인증서는 다양한 방식으로 반환될 수 있는데, 이를테면 네트워크를 통해 컴퓨팅 디바이스에 전송될 수 있다.
도 5는 하나 이상의 실시예에 따른 디바이스 익명성을 제공하는 키 증명문 생성을 구현하기 위한 예시적인 프로세스(500)를 나타내는 흐름도이다. 프로세스(500)는 도 1의 컴퓨팅 디바이스(102)와 같은 컴퓨팅 디바이스에 의해 수행되며, 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합으로 구현될 수 있다. 프로세스(500)는 한 세트의 행위로서 도시되며 다양한 행위의 동작을 수행하는 도시된 순서로 제한되지 않는다. 프로세스(500)는 디바이스 익명성을 제공하는 키 증명문 생성을 구현하기 위한 예시적인 프로세스이며; 디바이스 익명성을 제공하는 키 증명문 생성을 구현하는 것에 관한 추가적인 논의는 상이한 도면을 참조하여 본 명세서에 포함된다.
프로세스(500)에서, 컴퓨팅 디바이스에 대한 증명 인증서에 대한 요청이 증명 서비스에 전송된다(행위(502)). 요청은 컴퓨팅 디바이스의 소프트웨어 및/또는 하드웨어를 서술하는 정보를 포함한다. 정보는 컴퓨팅 디바이스의 건강을 표시하고 및/또는 신뢰성 있는 보안 컴포넌트는 위에서 논의된 증명 서비스가 신뢰하는 컴포넌트라는 것을 표시할 수 있다.
요청에 응답하여, 공개/개인 키 쌍 및 증명 인증서가 증명 서비스로부터 수신된다(행위(504)). 행위(502)에서 증명 서비스로 전송된 컴퓨팅 디바이스에 대한 정보가 증명 서비스에 의해 검증되면 공개/개인 키 쌍 및 증명 인증서가 수신된다. 증명 인증서는 수신된 공개/개인 키 쌍의 공개 키를 컴퓨팅 디바이스(및/또는 컴퓨팅 디바이스의 신뢰성 있는 보안 컴포넌트)와 연관시킨다. 이러한 연관은 예를 들어 컴퓨팅 디바이스에 안전하게 제공되는 (예를 들어, 컴퓨팅 디바이스의 신뢰성 있는 보안 컴포넌트의 키를 이용하여 암호화되는) 수신된 공개/개인 키 쌍의 공개 키 및 수신된 공개/개인 키 쌍의 개인 키를 포함하는 증명 인증서에 의해 이루어진다.
수신된 공개/개인 키 쌍 및 증명 인증서가 저장된다(행위(506)). 수신된 공개/개인 키 쌍의 개인 키는 컴퓨팅 디바이스의 신뢰성 있는 보안 컴포넌트의 보안 저장소에 저장된다. 수신된 공개/개인 키 쌍의 공개 키 및 증명 인증서는 보안 저장소 또는 대안적으로는 다른 곳에 저장될 수 있다.
증명 서비스에 결속되는 하나 이상의 추가 공개/개인 키 쌍 및 증명 인증서가 생성된다(행위(508)). 이러한 추가 공개/개인 키 쌍 및 증명 인증서는 증명 서비스에 액세스하지 않고 신뢰성 있는 보안 컴포넌트에 의해 생성된다.
특정 기능성이 특정 모듈을 참조하여 본 명세서에서 논의되지만, 본 명세서에서 논의된 개별 모듈의 기능성은 다수의 모듈로 분리될 수 있고 및/또는 다수의 모듈의 적어도 일부 기능성은 단일 모듈로 결합될 수 있다는 것을 유의하여야 한다. 또한, 작용을 수행하는 것으로 본 명세서에서 논의된 특정 모듈은 작용을 수행하는 그 특정 모듈 자체, 또는 대안적으로 작용을 수행하는(또는 그 특정 모듈과 관련하여 작용을 수행하는) 다른 컴포넌트 또는 모듈을 호출하거나 그렇지 않으면 액세스하는 그 특정 모듈을 포함한다. 따라서, 작용을 수행하는 특정 모듈은 작용을 수행하는 그 특정 모듈 자체 및/또는 작용을 수행하는 그 특정 모듈에 의해 호출되거나 그렇지 않으면 액세스되는 다른 모듈을 포함한다.
도 6은 본 명세서에 개시된 다양한 기술을 구현할 수 있는 하나 이상의 시스템 및/또는 디바이스를 나타내는 예시적인 컴퓨팅 디바이스(602)를 포함하는 예시적인 시스템(600)을 도시한다. 컴퓨팅 디바이스(602)는 예를 들어 서비스 제공자의 서버, 클라이언트(예를 들어, 클라이언트 디바이스)와 연관된 디바이스, 온칩 시스템, 및/또는 임의의 다른 적절한 컴퓨팅 디바이스 또는 컴퓨팅 시스템일 수 있다.
도시된 예시적인 컴퓨팅 디바이스(602)는 프로세싱 시스템(604), 하나 이상의 컴퓨터 판독 가능 매체(606), 및 서로 통신 가능하게 연결된 하나 이상의 I/O 인터페이스(608)를 포함한다. 도시되지는 않았지만, 컴퓨팅 디바이스(602)는 여러 컴포넌트를 서로 연결하는 시스템 버스 또는 다른 데이터 및 커맨드 전송 시스템을 더 포함할 수 있다. 시스템 버스는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스, 범용 직렬 버스 및/또는 다양한 버스 아키텍처 중 임의의 것을 사용하는 프로세서 또는 로컬 버스와 같은 상이한 버스 구조 중 어느 하나 또는 그 조합을 포함할 수 있다. 제어 라인 및 데이터 라인과 같은 다양한 다른 예가 또한 고려된다.
프로세싱 시스템(604)은 하드웨어를 사용하여 하나 이상의 동작을 수행하는 기능성을 나타낸다. 따라서, 프로세싱 시스템(604)은 프로세서, 기능 블록 등으로서 구성될 수 있는 하드웨어 요소(610)를 포함하는 것으로 도시되어 있다. 이것은 하나 이상의 반도체를 사용하여 형성된 주문형 집적 회로 또는 다른 로직 디바이스로서 하드웨어에서의 구현을 포함할 수 있다. 하드웨어 요소(610)는 이들이 형성되는 재료 또는 본 명세서에서 사용되는 프로세싱 메커니즘에 의해 제한되지 않는다. 예를 들어, 프로세서는 반도체(들) 및/또는 트랜지스터(예를 들어, 전자 집적 회로(integrated circuit)(IC))로 구성될 수 있다. 이러한 맥락에서, 프로세서 실행 가능 명령어는 전자적으로 실행 가능한 명령어일 수 있다.
컴퓨터 판독 가능 매체(606)는 메모리/저장소(612)를 포함하는 것으로서 도시되어 있다. 메모리/저장소(612)는 하나 이상의 컴퓨터 판독 가능 매체와 연관된 메모리/저장소 용량을 나타낸다. 메모리/저장소 (612)는 휘발성 매체(예를 들어, 랜덤 액세스 메모리(random access memory)(RAM)) 및/또는 비휘발성 매체(예를 들어, 판독 전용 메모리(read only memory)(ROM), 저항성 RAM(Resistive RAM)(ReRAM), 플래시 메모리, 광학 디스크, 자기 디스크 등)를 포함할 수 있다. 메모리/저장소(612)는 고정 매체(예를 들어, RAM, ROM, 고정 하드 드라이브 등)뿐만 아니라 착탈식 매체(예를 들어, 플래시 메모리, 착탈식 하드 드라이브, 광학 디스크 등)를 포함할 수 있다. 메모리/저장소(612)는 미국 캘리포니아 산타 클라라 소재의 Intel Corporation 또는 미국 아이다 보이즈 소재의 Micron Technology, Inc.로부터 입수 가능한 3D Xpoint 메모리와 같은 스토리지 클래스 메모리(storage-class memory)(SCM)를 포함할 수 있다. 컴퓨터 판독 가능 매체(606)는 아래에 더 설명되는 바와 같이 다양한 다른 방식으로 구성될 수 있다.
하나 이상의 입력/출력 인터페이스(들)(608)는 사용자가 컴퓨팅 디바이스(602)에 커맨드 및 정보를 입력할 수 있게 하고 또한 다양한 입력/출력 디바이스를 이용하여 사용자 및/또는 다른 컴포넌트 또는 디바이스에 정보를 제공할 수 있게 하는 기능성을 나타낸다. 입력 디바이스의 예는, 키보드, 커서 제어 디바이스(예를 들어, 마우스), 마이크로폰(예를 들어, 음성 입력용), 스캐너, 터치 기능성(예를 들어, 물리적 터치를 검출하도록 구성된 용량성 또는 다른 센서), 카메라(예를 들어, 터치가 연루되지 않은 제스처와 같은 움직임을 검출하기 위해 적외선 주파수와 같은 가시 또는 비가시 파장을 사용할 수 있음) 등을 포함한다. 출력 디바이스의 예는 디스플레이 디바이스(예를 들어, 모니터 또는 프로젝터), 스피커, 프린터, 네트워크 카드, 촉각 반응 디바이스 등을 포함한다. 따라서, 컴퓨팅 디바이스(602)는 사용자 상호 작용을 지원하기 위해 아래에서 추가로 설명되는 바와 같은 다양한 방식으로 구성될 수 있다.
하나 이상의 실시예에서, 컴퓨팅 디바이스(602)는 도 1의 컴퓨팅 디바이스(102)이며, 신뢰성 있는 보안 컴포넌트(614)를 포함한다. 신뢰성 있는 보안 컴포넌트(614)는 또한 증명 서비스로부터 증명 인증서를 획득하고, 위에서 논의된 바와 같이 증명 서비스에 결속되는 추가 공개/개인 키 쌍 및 증명 인증서를 생성한다. 신뢰성 있는 보안 컴포넌트(614)는 예를 들어 도 1 또는 도 3의 신뢰성 있는 보안 컴포넌트(112)를 구현할 수 있다.
대안적으로, 컴퓨팅 디바이스(602)는 도 1 또는 도 2의 증명 서비스(104)의 적어도 일부를 구현하는 컴퓨팅 디바이스이다. 이러한 상황에서, 컴퓨팅 디바이스(602)는 신뢰성 있는 보안 컴포넌트(614)를 포함할 필요가 없다. 오히려, 컴퓨팅 디바이스(602)는 클라이언트 익명성을 지원하는 증명 인증서 시스템, 예컨대 도 1 또는 도 2의 클라이언트 익명성을 지원하는 증명 인증서 시스템을 포함한다.
소프트웨어, 하드웨어 요소 또는 프로그램 모듈의 일반적인 맥락에서 다양한 기술이 본 명세서에 설명될 수 있다. 일반적으로, 이러한 모듈은 특정 작업을 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 요소, 컴포넌트, 데이터 구조 등을 포함한다. 본 명세서에 사용된 용어 "모듈", "기능성" 및 "컴포넌트"는 일반적으로 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합을 나타낸다. 본 명세서에 설명된 기술의 특징은 플랫폼 독립적이며, 이는 다양한 프로세서를 갖는 다양한 컴퓨팅 플랫폼에서 기술이 구현될 수 있다는 것을 의미한다.
설명된 모듈 및 기술의 구현은 일부 형태의 컴퓨터 판독 가능 매체 상에 저장되거나 이를 통해 전송될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨팅 디바이스(602)에 의해 액세스될 수 있는 다양한 매체를 포함할 수 있다. 예를 들어, 컴퓨터 판독 가능 매체는 "컴퓨터 판독 가능 저장 매체" 및 "컴퓨터 판독 가능 신호 매체"를 포함할 수 있지만, 이것으로 제한되는 것은 아니다.
"컴퓨터 판독 가능 저장 매체"는 단순한 신호 전송, 반송파(carrier wave) 또는 신호 자체와 대조적으로, 유형인 정보 및/또는 저장의 영구 저장을 가능하게 하는 매체 및/또는 디바이스를 지칭한다. 따라서, 컴퓨터 판독 가능 저장 매체는 비신호 보유 매체를 지칭한다. 컴퓨터 판독 가능 저장 매체는 휘발성 및 비휘발성, 착탈식 및 비착탈식 매체와 같은 하드웨어 및/또는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈, 로직 요소/회로 또는 다른 데이터와 같은 정보의 저장에 적합한 방법 또는 기술로 구현되는 저장 디바이스를 포함한다. 컴퓨터 판독 가능 저장 매체의 예는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 다른 광학 저장소, 하드 디스크, 자기 카세트, 자기 테이프, 자기 디스크 저장 또는 다른 자기 저장 디바이스, 또는 원하는 정보를 저장하기에 적합하고 컴퓨터에 의해 액세스될 수 있는 다른 저장 디바이스, 유형 매체 또는 제조 물품을 포함할 수 있으나 이것으로 제한되는 것은 아니다.
"컴퓨터 판독 가능 신호 매체"는, 예를 들어 네트워크를 통해, 컴퓨팅 디바이스(602)의 하드웨어에 명령어를 전송하도록 구성된 신호 보유 매체를 지칭한다. 신호 매체는 전형적으로 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파, 데이터 신호, 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호 내의 다른 데이터를 구현할 수 있다. 신호 매체는 또한 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내의 정보를 인코딩하는 방식으로 설정되거나 또는 변경된 하나 이상의 특성을 갖는 신호를 의미한다. 예를 들어, 제한하는 것은 아니지만, 통신 매체는 유선 네트워크 또는 다이렉트 유선 연결과 같은 유선 매체, 및 음향, RF, 적외선 및 기타 무선 매체와 같은 무선 매체를 포함한다.
앞에서 설명된 바와 같이, 하드웨어 요소(610) 및 컴퓨터 판독 가능 매체(606)는 본 명세서에 설명된 기술의 적어도 일부의 양태를 구현하기 위해 일부 실시예에서 사용될 수 있는 하드웨어 형태로 구현된 명령어, 모듈, 프로그램 가능 디바이스 로직 및/또는 고정 디바이스 로직을 나타낸다. 하드웨어 요소는 집적 회로 또는 온칩 시스템, 주문형 집적 회로(application-specific integrated circuit)(ASIC), 필드 프로그램 가능 게이트 어레이(field-programmable gate array)(FPGA), 복합 프로그램 가능 로직 디바이스(complex programmable logic device)(CPLD) 및 실리콘 내 다른 구현 또는 다른 하드웨어 디바이스를 포함할 수 있다. 이러한 맥락에서, 하드웨어 요소는 실행을 위해 명령어를 저장하는데 이용되는 하드웨어 디바이스, 예를 들어, 앞에서 설명된 컴퓨터 판독 가능 저장 매체뿐만 아니라 하드웨어 요소에 의해 구현되는 명령어, 모듈 및/또는 로직에 의해 정의된 프로그램 작업을 수행하는 프로세싱 디바이스로서 동작할 수 있다.
전술한 것들의 조합은 또한 본 명세서에 설명된 다양한 기술 및 모듈을 구현하기 위해 사용될 수 있다. 따라서, 소프트웨어, 하드웨어 또는 프로그램 모듈 및 다른 프로그램 모듈은 일부 형태의 컴퓨터 판독 가능 저장 매체 상에서 및/또는 하나 이상의 하드웨어 요소(610)에 의해 구현된 하나 이상의 명령어 및/또는 로직으로서 구현될 수 있다. 컴퓨팅 디바이스(602)는 소프트웨어 및/또는 하드웨어 모듈에 대응하는 특정 명령어 및/또는 기능을 구현하도록 구성될 수 있다. 따라서, 소프트웨어로서 컴퓨팅 디바이스(602)에 의해 실행 가능한 모듈로서의 모듈의 구현은, 예를 들어, 컴퓨터 판독 가능 저장 매체 및/또는 프로세싱 시스템의 하드웨어 요소(610)를 사용함으로써 하드웨어에서 적어도 부분적으로 달성될 수 있다. 명령어 및/또는 기능은 본 명세서에 설명된 기술, 모듈 및 예를 구현하기 위해 하나 이상의 제조 물품(예를 들어, 하나 이상의 컴퓨팅 디바이스(602) 및/또는 프로세싱 시스템(604))에 의해 실행 가능할 수 있고/동작 가능할 수 있다.
도 6에 추가로 도시된 바와 같이, 예시적인 시스템(600)은 퍼스널 컴퓨터(personal computer)(PC), 텔레비전 디바이스 및/또는 모바일 디바이스 상에서 애플리케이션을 실행할 때 원활한 사용자 경험을 위한 유비쿼터스 환경을 가능하게 한다. 서비스와 애플리케이션은 애플리케이션을 이용하거나 비디오 게임을 하거나 비디오를 시청하는 등을 행하면서 하나의 디바이스로부터 다음의 디바이스로 전이할 때 일반적인 사용자 경험을 위한 모두 세 개의 환경에서 실질적으로 유사하게 실행된다.
예시적인 시스템(600)에서, 다수의 디바이스가 중앙 컴퓨팅 디바이스를 통해 상호 연결된다. 중앙 컴퓨팅 디바이스는 다수의 디바이스에 국부적일 수 있거나 또는 다수의 디바이스로부터 원격에 위치될 수 있다. 하나 이상의 실시예에서, 중앙 컴퓨팅 디바이스는 네트워크, 인터넷 또는 다른 데이터 통신 링크를 통해 다수의 디바이스에 연결된 하나 이상의 서버 컴퓨터의 클라우드일 수 있다.
하나 이상의 실시예에서, 이러한 상호 접속 아키텍처는 다수의 디바이스의 사용자에게 공통적이고 원활한 경험을 제공하기 위해 기능성이 다수의 디바이스에 걸쳐 전달될 수 있게 한다. 다수의 디바이스 각각은 상이한 물리적 요건 및 능력을 가질 수 있으며, 중앙 컴퓨팅 디바이스는 플랫폼을 사용하여 디바이스에 맞게 조정되고 그럼에도 모든 디바이스에 공통적인 경험을 디바이스에 전달할 수 있게 한다. 하나 이상의 실시예에서, 타겟 디바이스의 클래스가 생성되고 경험이 디바이스의 일반적인 클래스에 맞추어진다. 디바이스의 클래스는 물리적 특징, 사용 유형 또는 디바이스의 다른 일반적인 특성에 의해 정의될 수 있다.
다양한 구현에서, 컴퓨팅 디바이스(602)는 다양한 상이한 구성, 이를 테면 컴퓨터(616), 모바일(618) 및 텔레비전(620) 용도를 가정할 수 있다. 이러한 구성 각각은 일반적으로 상이한 구조 및 능력을 가질 수 있는 디바이스를 포함하며, 이에 따라 컴퓨팅 디바이스(602)는 상이한 디바이스 클래스 중 하나 이상의 클래스에 따라 구성될 수 있다. 예를 들어, 컴퓨팅 디바이스(602)는 퍼스널 컴퓨터, 데스크톱 컴퓨터, 멀티 스크린 컴퓨터, 랩톱 컴퓨터, 넷북 등을 포함하는 디바이스의 컴퓨터(616) 클래스로서 구현될 수 있다.
컴퓨팅 디바이스(602)는 또한 모바일 폰, 휴대용 음악 플레이어, 휴대용 게임 디바이스, 태블릿 컴퓨터, 멀티 스크린 컴퓨터 등과 같은 모바일 디바이스를 포함하는 모바일(618) 클래스의 디바이스로서도 구현될 수 있다. 컴퓨팅 디바이스(602)는 또한 캐주얼 시청 환경에서 일반적으로 더 큰 스크린을 갖거나 또는 이에 연결된 디바이스를 포함하는 텔레비전(620) 클래스의 디바이스로서도 구현될 수 있다. 이러한 디바이스는 TV, 셋톱 박스, 게임 콘솔 등을 포함한다.
본 명세서에 설명된 기술은 컴퓨팅 디바이스(602)의 이러한 다양한 구성에 의해 지원될 수 있으며 본 명세서에 설명된 기술의 특정 예로 제한되지 않는다. 이러한 기능성은 분산 시스템의 사용을 통해, 예를 들어, 아래에서 설명되는 바와 같이 이를테면 "클라우드"(622)를 거쳐 플랫폼(624)을 통해 전체적으로 또는 부분적으로 또한 구현될 수 있다.
클라우드(622)는 리소스(626)를 위한 플랫폼(624)을 포함하고 및/또는 대표한다. 플랫폼(624)은 클라우드(622)의 하드웨어(예를 들어, 서버) 및 소프트웨어 리소스의 기본 기능성을 추상화한다. 리소스(626)는 컴퓨터 프로세싱이 컴퓨팅 디바이스(602)로부터 떨어진 서버에서 실행되는 동안에 이용될 수 있는 애플리케이션 및/또는 데이터를 포함할 수 있다. 리소스(626)는 또한 인터넷을 통해 및/또는 셀룰러 또는 Wi-Fi 네트워크와 같은 가입자 네트워크를 통해 제공되는 서비스를 포함할 수 있다.
플랫폼(624)은 컴퓨팅 디바이스(602)를 다른 컴퓨팅 디바이스와 연결하기 위한 리소스 및 기능성을 추상화할 수 있다. 플랫폼(624)은 또한 리소스의 스케일링을 추상화하여 대응하는 레벨의 스케일을 플랫폼(624)을 통해 구현되는 리소스(626)에 직면한 요구에 제공하는 역할을 할 수 있다. 따라서, 상호 연결된 디바이스 실시예에서, 본 명세서에 설명된 기능성의 구현은 시스템(600) 전체에 분산될 수 있다. 예를 들어, 기능성은 클라우드(622)의 기능성을 추상화하는 플랫폼(624)을 통해서뿐만 아니라 컴퓨팅 디바이스(602) 상에서 부분적으로 구현될 수 있다.
본 명세서의 논의에서, 다양한 상이한 실시예가 설명된다. 본 명세서에 설명된 각각의 실시예는 그 자체로 또는 본 명세서에 설명된 하나 이상의 다른 실시예와 관련하여 사용될 수 있다는 것을 인식하고 이해하여야 한다. 본 명세서에서 논의되는 기술의 추가 양태는 다음의 실시예 중 하나 이상에 관한 것이다.
증명 서비스에서 구현되는 방법으로서, 제 1 컴퓨팅 디바이스로부터, 제 1 컴퓨팅 디바이스에 대한 증명 인증서에 대한 제 1 요청 - 요청은 제 1 컴퓨팅 디바이스의 하드웨어 및/또는 소프트웨어를 서술하는 정보를 포함함 - 을 수신하는 단계; 수신된 정보를 검증하는 단계; 비대칭 키 쌍의 집합으로부터 비대칭 키 쌍을 선택하는 - 선택된 키 쌍은 또한 다수의 추가 컴퓨팅 디바이스에 대해 선택됨 - 단계; 선택된 키 쌍의 공개 키를 증명 인증서와 연관시키는 제 1 컴퓨팅 디바이스에 대한 증명 인증서를 생성하는 단계; 제 1 컴퓨팅 디바이스에 대해 선택된 키 쌍의 개인 키를 암호화하는 단계; 및 선택된 키 쌍의 암호화된 개인 키 및 증명 인증서를 제 1 컴퓨팅 디바이스에 반환하는 단계를 포함하는 방법.
본 명세서에 설명된 방법, 시스템 또는 컴퓨팅 디바이스 중 임의의 것에 대한 대안으로 또는 그에 부가하여, 제 1 컴퓨팅 디바이스에 대해 선택된 키 쌍의 개인 키를 암호화하는 단계는 선택된 키 쌍의 개인 키를 제 1 컴퓨팅 디바이스의 신뢰성 있는 보안 컴포넌트의 공개/개인 키 쌍의 공개 키를 사용하여 암호화하는 단계를 포함하고; 비대칭 키 쌍을 선택하는 단계는 비대칭 키 쌍의 집합으로부터 비대칭 키 쌍을 랜덤하게 또는 의사 랜덤하게 선택하는 단계를 포함하고; 제 1 요청을 수신하기 전에, 비대칭 키 쌍의 집합 내의 비대칭 키 쌍을 생성하는 단계를 더 포함하고; 하나 이상의 간격으로 비대칭 키 쌍의 집합 내의 비대칭 키 쌍을 변경하는 단계를 더 포함하고; 제 2 컴퓨팅 디바이스로부터, 제 2 컴퓨팅 디바이스에 대한 증명 인증서에 대한 제 2 요청을 수신하는 - 제 2 요청은 제 2 컴퓨팅 디바이스의 하드웨어 및/또는 소프트웨어를 서술하는 정보를 포함함 - 단계, 제 2 컴퓨팅 디바이스의 하드웨어 및/또는 소프트웨어를 서술하는 정보를 검증하는 단계, 비대칭 키 쌍의 집합으로부터, 제 1 컴퓨팅 디바이스에 대해 선택되었던 것과 동일한 키 쌍을 선택하는 단계, 선택된 키 쌍의 공개 키를 제 2 컴퓨팅 디바이스에 대한 증명 인증서와 연관시키는 제 2 컴퓨팅 디바이스에 대한 증명 인증서를 생성하는 단계, 제 2 컴퓨팅 디바이스에 대한 선택된 키 쌍의 개인 키를 암호화하는 단계, 및 선택된 키 쌍의 암호화된 개인 키 및 제 2 컴퓨팅 디바이스에 대한 증명 인증서를 제 2 컴퓨팅 디바이스에 반환하는 - 증명 인증서는 제 1 컴퓨팅 디바이스의 이름 또는 식별자를 갖지 않음 - 단계를 더 포함하는, 방법, 시스템 또는 컴퓨팅 디바이스 중 어느 하나 또는 그 조합.
컴퓨팅 디바이스에서 구현되는 방법으로서, 증명 서비스에, 컴퓨팅 디바이스에 대한 증명 인증서에 대한 요청을 전송하는 - 요청은 컴퓨팅 디바이스의 하드웨어 및/또는 소프트웨어를 서술하는 정보를 포함함 - 단계; 증명 서비스로부터, 공개/개인 키 쌍 및 공개/개인 키 쌍을 컴퓨팅 디바이스의 신뢰성 있는 보안 컴포넌트와 연관시키는 증명 인증서를 수신하는 단계; 신뢰성 있는 보안 컴포넌트의 보안 저장소에, 공개/개인 키 쌍의 개인 키를 저장하는 단계; 및 증명 서비스에 액세스하지 않고, 하나 이상의 추가 공개/개인 키 쌍 및 하나 이상의 추가 증명 인증서를 생성하는 - 각각의 추가 증명 인증서는 증명 서비스에 결속됨 - 단계를 포함하는, 방법.
본 명세서에 설명된 방법, 시스템 또는 컴퓨팅 디바이스 중 임의의 것에 대한 대안으로 또는 그에 부가하여, 수신된 공개/개인 키 쌍은 증명 서비스에 의해 다수의 다른 컴퓨팅 디바이스에 제공되는 것과 동일한 공개/개인 키 쌍이고; 컴퓨팅 디바이스의 웹 브라우저에 의해 액세스되는 각각의 웹 사이트에 대해 하나 이상의 추가 공개/개인 키 쌍과 하나 이상의 추가 증명 인증서 중 하나를 생성하는 단계를 더 포함하고; 컴퓨팅 디바이스에 의해 액세스되는 다수의 상이한 신뢰 당사자 시스템 각각에 대해 하나 이상의 추가 공개/개인 키 쌍과 하나 이상의 추가 증명 인증서 중 하나를 생성하는 단계를 더 포함하고; 증명 서비스로부터 수신된 공개/개인 키 쌍을 신뢰성 있는 보안 컴포넌트의 개인 키를 사용하여 암호 해독하는 단계를 더 포함하고; 신뢰성 있는 보안 컴포넌트는 신뢰성 있는 플랫폼 모듈을 포함하는, 방법, 시스템 또는 컴퓨팅 디바이스 중 어느 하나 또는 그 조합.
시스템으로서, 하나 이상의 프로세서; 및 다수의 명령어가 저장된 컴퓨터 판독 가능한 저장 매체를 포함하고, 다수의 명령어는 하나 이상의 프로세서에 의한 실행에 응답하여, 하나 이상의 프로세서로 하여금, 제 1 컴퓨팅 디바이스로부터 제 1 컴퓨팅 디바이스에 대한 증명 인증서에 대한 제 1 요청을 수신하게 - 요청은 제 1 컴퓨팅 디바이스의 하드웨어 및/또는 소프트웨어를 서술하는 정보를 포함함 - 하고; 수신된 정보를 검증하게 하고; 비대칭 키 쌍의 집합으로부터 비대칭 키 쌍을 선택하게 - 선택된 비대칭 키 쌍은 다수의 추가 컴퓨팅 디바이스에 대해 선택됨 - 하고; 선택된 키 쌍의 공개 키를 증명 인증서와 연관시키는 제 1 컴퓨팅 디바이스에 대한 증명 인증서를 생성하게 하고; 제 1 컴퓨팅 디바이스에 대해 선택된 키 쌍의 개인 키를 암호화하게 하고; 선택된 키 쌍의 암호화된 개인 키 및 증명 인증서를 제 1 컴퓨팅 디바이스에 반환하게 하는, 시스템.
본 명세서에 설명된 방법, 시스템 또는 컴퓨팅 디바이스 중 임의의 것에 대한 대안으로 또는 그에 부가하여, 제 1 컴퓨팅 디바이스에 대해 선택된 키 쌍의 개인 키를 암호화하는 것은 선택된 키 쌍의 개인 키를 제 1 컴퓨팅 디바이스의 신뢰성 있는 보안 컴포넌트의 공개/개인 키 쌍의 공개 키를 이용하여 암호화하는 것이고; 신뢰성 있는 보안 컴포넌트는 신뢰성 있는 플랫폼 모듈을 포함하고; 비대칭 키 쌍을 선택하는 것은 비대칭 키 쌍의 집합으로부터 비대칭 키 쌍을 랜덤하게 또는 의사 랜덤하게 선택하는 것이고; 다수의 명령어는 또한 하나 이상의 프로세서로 하여금 하나 이상의 간격으로 비대칭 키 쌍의 집합 내의 비대칭 키를 변경하게 하고; 다수의 명령어는 또한 하나 이상의 프로세서로 하여금 제 2 컴퓨팅 디바이스로부터, 제 2 컴퓨팅 디바이스에 대한 증명 인증서에 대한 제 2 요청을 수신하게 - 제 2 요청은 제 2 컴퓨팅 디바이스의 하드웨어 및/또는 소프트웨어를 서술하는 정보를 포함함 - 하고, 제 2 컴퓨팅 디바이스의 하드웨어 및/또는 소프트웨어를 서술하는 정보를 검증하게 하고, 비대칭 키 쌍의 집합으로부터, 제 1 컴퓨팅 디바이스에 대해 선택되었던 것과 동일한 키 쌍을 선택하게 하고, 선택된 키 쌍의 공개 키를 제 2 컴퓨팅 디바이스에 대한 증명 인증서와 연관시키는 제 2 컴퓨팅 디바이스에 대한 증명 인증서를 생성하게 하고, 제 2 컴퓨팅 디바이스에 대한 선택된 키 쌍의 개인 키를 암호화하게 하고, 그리고 선택된 키 쌍의 암호화된 개인 키 및 제 2 컴퓨팅 디바이스에 대한 증명 인증서를 제 2 컴퓨팅 디바이스에 반환하게 - 증명 인증서는 제 1 컴퓨팅 디바이스의 이름 또는 식별자를 갖지 않음 - 하는, 방법, 시스템 또는 컴퓨팅 디바이스 중 어느 하나 또는 그 조합.
컴퓨팅 디바이스로서, 하나 이상의 프로세서; 및 다수의 명령어가 저장된 컴퓨터 판독 가능한 저장 매체를 포함하고, 다수의 명령어는 하나 이상의 프로세서에 의한 실행에 응답하여, 하나 이상의 프로세서로 하여금, 증명 서비스에, 컴퓨팅 디바이스에 대한 증명 인증서에 대한 요청을 전송하는 - 요청은 컴퓨팅 디바이스의 하드웨어 및/또는 소프트웨어를 서술하는 정보를 포함함 - 것; 증명 서비스로부터, 공개/개인 키 쌍 및 공개/개인 키 쌍을 컴퓨팅 디바이스의 신뢰성 있는 보안 컴포넌트와 연관시키는 증명 인증서를 수신하는 것; 신뢰성 있는 보안 컴포넌트의 보안 저장소에, 공개/개인 키 쌍의 개인 키를 저장하는 것; 및 증명 서비스에 액세스하지 않고, 하나 이상의 추가 공개/개인 키 쌍 및 하나 이상의 추가 증명 인증서를 생성하는 - 각각의 추가 증명 인증서는 증명 서비스에 결속됨 - 것을 포함하는 행위를 수행하게 하는, 컴퓨팅 디바이스.
본 발명의 주제가 구조적 특징 및/또는 방법론적 행위에 특유한 언어로 설명되었지만, 첨부된 청구범위에 정의된 본 발명의 주제는 반드시 상술한 특정 특징 또는 행위로 제한되는 것이 아니라는 것을 이해하여야 한다. 오히려, 위에서 설명된 특정 특징 및 행위는 청구범위를 구현하는 예시적인 형태로서 개시된다.
Claims (20)
- 증명 서비스(an attestation service)에서 디바이스로 구현되는 방법으로서,
제 1 컴퓨팅 디바이스로부터, 상기 제 1 컴퓨팅 디바이스에 대응하는 제 1 증명 인증서 요청을 수신하는 단계 - 상기 제 1 증명 인증서 요청은 상기 제 1 컴퓨팅 디바이스의 하드웨어 및/또는 소프트웨어를 기술하는 정보를 포함함 - 와,
수신된 상기 정보를 검증하는 단계와,
비대칭 키 쌍의 집합(asymmetric key pair collection)으로부터 비대칭 키 쌍을 선택하는 단계 - 상기 선택된 비대칭 키 쌍은 또한, 암호화된 상기 선택된 비대칭 키 쌍의 개인 키를 구비한 다수의 추가 컴퓨팅 디바이스 각각과 동시에 연관됨 - 와,
상기 제 1 컴퓨팅 디바이스에 대응하며 상기 선택된 키 쌍의 공개 키를 제 1 증명 인증서와 연관시키는 상기 제 1 증명 인증서를 생성하는 단계와,
상기 제 1 컴퓨팅 디바이스에 대해 상기 개인 키를 암호화하는 단계와,
상기 암호화된 개인 키 및 상기 제 1 증명 인증서를 상기 제 1 컴퓨팅 디바이스에 반환하는 단계를 포함하는,
증명 서비스에서 디바이스로 구현되는 방법. - 제 1 항에 있어서,
상기 제 1 컴퓨팅 디바이스에 대해 상기 개인 키를 암호화하는 단계는, 상기 선택된 키 쌍의 상기 개인 키를 상기 제 1 컴퓨팅 디바이스의 신뢰성 있는 보안 컴포넌트의 공개/개인 키 쌍의 공개 키를 이용하여 암호화하는 단계를 포함하는,
증명 서비스에서 디바이스로 구현되는 방법. - 제 1 항에 있어서,
상기 비대칭 키 쌍을 선택하는 단계는, 상기 비대칭 키 쌍의 집합으로부터 상기 비대칭 키 쌍을 랜덤하게 또는 의사 랜덤하게(pseudorandomly) 선택하는 단계를 포함하는,
증명 서비스에서 디바이스로 구현되는 방법. - 제 1 항에 있어서,
상기 제 1 요청을 수신하기 이전에, 상기 비대칭 키 쌍의 집합 내의 비대칭 키 쌍을 생성하는 단계를 더 포함하는,
증명 서비스에서 디바이스로 구현되는 방법. - 제 1 항에 있어서,
하나 이상의 간격으로 상기 비대칭 키 쌍의 집합 내의 비대칭 키 쌍을 변경하는 단계를 더 포함하는,
증명 서비스에서 디바이스로 구현되는 방법. - 제 1 항에 있어서,
제 2 컴퓨팅 디바이스로부터, 상기 제 2 컴퓨팅 디바이스에 대응하는 제 2 증명 인증서 요청을 수신하는 단계 - 상기 제 2 증명 인증서 요청은 상기 제 2 컴퓨팅 디바이스의 하드웨어 및/또는 소프트웨어를 기술하는 추가 정보를 포함함 - 와,
수신된 상기 추가 정보를 검증하는 단계와,
상기 비대칭 키 쌍의 집합으로부터, 상기 제 1 컴퓨팅 디바이스에 대해 이전에 선택된 상기 비대칭 키 쌍을 선택하는 단계와,
상기 제 2 컴퓨팅 디바이스에 대응하며 상기 공개 키를 제 2 증명 인증서와 연관시키는 상기 제 2 증명 인증서를 생성하는 단계와,
상기 제 2 컴퓨팅 디바이스에 대해 상기 개인 키를 암호화하여 다른 암호화된 개인 키를 생성하는 단계와,
상기 다른 암호화된 개인 키 및 상기 제 2 증명 인증서를 상기 제 2 컴퓨팅 디바이스에 반환하는 단계를 더 포함하는,
증명 서비스에서 디바이스로 구현되는 방법. - 제 1 항에 있어서,
상기 제 1 증명 인증서는 상기 제 1 컴퓨팅 디바이스의 이름 또는 식별자를 갖지 않는,
증명 서비스에서 디바이스로 구현되는 방법. - 디바이스로 구현되는 방법으로서,
증명 서비스에, 상기 디바이스에 대응하는 증명 인증서 요청을 전송하는 단계 - 상기 요청은 상기 디바이스의 하드웨어 및/또는 소프트웨어를 기술하는 정보를 포함함 - 와,
상기 증명 서비스로부터, 개인 키를 포함하는 공개/개인 키 쌍 및 상기 공개/개인 키 쌍을 상기 디바이스의 신뢰성 있는 보안 컴포넌트와 연관시키는 증명 인증서를 수신하는 단계와,
상기 디바이스의 신뢰성 있는 보안 컴포넌트의 보안 저장소에, 상기 개인 키를 저장하는 단계와,
상기 증명 서비스에 액세스하지 않고, 하나 이상의 추가 공개/개인 키 쌍 및 하나 이상의 추가 증명 인증서를 생성하는 단계 - 각각의 상기 추가 증명 인증서는 상기 증명 서비스에 결속(chain up)됨 - 를 포함하는,
디바이스로 구현되는 방법. - 제 8 항에 있어서,
상기 수신된 공개/개인 키 쌍은 상기 증명 서비스에 의해 다수의 다른 디바이스에 제공되는 것과 동일한 공개/개인 키 쌍인,
디바이스로 구현되는 방법. - 제 8 항에 있어서,
상기 디바이스에서 실행되는 웹 브라우저에 의해 액세스되는 각각의 웹 사이트에 대해 상기 하나 이상의 추가 공개/개인 키 쌍 및 하나 이상의 추가 증명 인증서 중 하나를 생성하는 단계를 더 포함하는,
디바이스로 구현되는 방법. - 제 8 항에 있어서,
상기 디바이스에 의해 액세스되는 다수의 상이한 신뢰 당사자(relying party) 시스템 각각에 대해 상기 하나 이상의 추가 공개/개인 키 쌍 및 하나 이상의 추가 증명 인증서 중 하나를 생성하는 단계를 더 포함하는,
디바이스로 구현되는 방법. - 제 8 항에 있어서,
상기 증명 서비스로부터 수신된 상기 공개/개인 키 쌍을 상기 디바이스의 신뢰성 있는 보안 컴포넌트의 개인 키를 사용하여 암호 해독하는 단계를 더 포함하는,
디바이스로 구현되는 방법. - 제 8 항에 있어서,
상기 디바이스의 신뢰성 있는 보안 컴포넌트는 신뢰성 있는 플랫폼 모듈을 포함하는,
디바이스로 구현되는 방법. - 시스템으로서,
하나 이상의 프로세서와,
다수의 명령어가 저장된 컴퓨터 판독 가능 저장 매체를 포함하고,
상기 다수의 명령어는 상기 하나 이상의 프로세서에 의한 실행에 응답하여, 상기 하나 이상의 프로세서로 하여금,
제 1 컴퓨팅 디바이스로부터, 상기 제 1 컴퓨팅 디바이스에 대응하는 제 1 증명 인증서 요청을 수신하게 하고 - 상기 요청은 상기 제 1 컴퓨팅 디바이스의 하드웨어 및/또는 소프트웨어를 기술하는 정보를 포함함 -,
수신된 상기 정보를 검증하게 하며,
비대칭 키 쌍의 집합(asymmetric key pair collection)으로부터 비대칭 키 쌍을 선택하게 하고 - 상기 선택된 비대칭 키 쌍은 또한, 암호화된 상기 선택된 비대칭 키 쌍의 개인 키를 구비한 다수의 추가 컴퓨팅 디바이스 각각과 동시에 연관됨 -,
상기 제 1 컴퓨팅 디바이스에 대응하며 상기 선택된 키 쌍의 공개 키를 제 1 증명 인증서와 연관시키는 상기 제 1 증명 인증서를 생성하게 하며,
상기 제 1 컴퓨팅 디바이스에 대해 상기 개인 키를 암호화하게 하고,
상기 암호화된 개인 키 및 상기 제 1 증명 인증서를 상기 제 1 컴퓨팅 디바이스에 반환하게 하는,
시스템. - 제 14 항에 있어서,
상기 제 1 컴퓨팅 디바이스에 대해 상기 개인 키를 암호화하는 것은, 상기 개인 키를 상기 제 1 컴퓨팅 디바이스의 신뢰성 있는 보안 컴포넌트의 공개/개인 키 쌍의 공개 키를 이용하여 암호화하는 것인,
시스템. - 제 15 항에 있어서,
상기 제1 컴퓨팅 디바이스의 신뢰성 있는 보안 컴포넌트는 신뢰성 있는 플랫폼 모듈을 포함하는,
시스템. - 제 14 항에 있어서,
상기 비대칭 키 쌍을 선택하는 것은, 상기 비대칭 키 쌍의 집합으로부터 상기 비대칭 키 쌍을 랜덤하게 또는 의사 랜덤하게(pseudorandomly) 선택하는 것인,
시스템. - 제 14 항에 있어서,
상기 다수의 명령어는 상기 하나 이상의 프로세서로 하여금, 하나 이상의 간격으로 상기 비대칭 키 쌍의 집합 내의 키들을 변경하게 하는,
시스템. - 제 14 항에 있어서,
상기 다수의 명령어는 상기 하나 이상의 프로세서로 하여금,
제 2 컴퓨팅 디바이스로부터, 상기 제 2 컴퓨팅 디바이스에 대응하는 제 2 증명 인증서 요청을 수신하게 하고 - 상기 제 2 증명 인증서 요청은 상기 제 2 컴퓨팅 디바이스의 하드웨어 및/또는 소프트웨어를 기술하는 추가 정보를 포함함 -,
수신된 상기 추가 정보를 검증하게 하며,
상기 비대칭 키 쌍의 집합으로부터, 상기 제 1 컴퓨팅 디바이스에 대해 이전에 선택된 상기 비대칭 키 쌍을 선택하게 하고,
상기 제 2 컴퓨팅 디바이스에 대응하며 상기 공개 키를 제 2 증명 인증서와 연관시키는 상기 제 2 증명 인증서를 생성하게 하며,
상기 제 2 컴퓨팅 디바이스에 대해 상기 개인 키를 암호화하여 다른 암호화된 개인 키를 생성하게 하고,
상기 다른 암호화된 개인 키 및 상기 제 2 증명 인증서를 상기 제 2 컴퓨팅 디바이스에 반환하게 하는,
시스템. - 제 14 항에 있어서,
상기 제 1 증명 인증서는 상기 제 1 컴퓨팅 디바이스의 이름 또는 식별자를 갖지 않는,
시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/649,085 US10819696B2 (en) | 2017-07-13 | 2017-07-13 | Key attestation statement generation providing device anonymity |
US15/649,085 | 2017-07-13 | ||
PCT/US2018/034795 WO2019013886A1 (en) | 2017-07-13 | 2018-05-28 | GENERATION OF KEY CERTIFICATION DECLARATION PROVIDING DEVICE ANONYMAT |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200027500A KR20200027500A (ko) | 2020-03-12 |
KR102451109B1 true KR102451109B1 (ko) | 2022-10-07 |
Family
ID=62621070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207000801A KR102451109B1 (ko) | 2017-07-13 | 2018-05-28 | 디바이스 익명성을 제공하는 키 증명문 생성 |
Country Status (17)
Country | Link |
---|---|
US (2) | US10819696B2 (ko) |
EP (1) | EP3652882A1 (ko) |
JP (1) | JP7077394B2 (ko) |
KR (1) | KR102451109B1 (ko) |
CN (1) | CN110892672B (ko) |
AU (1) | AU2018299716B2 (ko) |
BR (1) | BR112020000220A2 (ko) |
CA (1) | CA3067540A1 (ko) |
CL (1) | CL2020000081A1 (ko) |
CO (1) | CO2020000162A2 (ko) |
IL (1) | IL271812B2 (ko) |
MX (1) | MX2020000328A (ko) |
PH (1) | PH12020550006A1 (ko) |
RU (1) | RU2763516C2 (ko) |
SG (1) | SG11201912738WA (ko) |
WO (1) | WO2019013886A1 (ko) |
ZA (1) | ZA201908494B (ko) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11310050B2 (en) | 2018-09-17 | 2022-04-19 | Microsoft Technology Licensing, Llc | Verifying a computing device after transport |
US10423791B2 (en) * | 2017-04-27 | 2019-09-24 | Microsoft Technology Licensing, Llc | Enabling offline restart of shielded virtual machines using key caching |
US10819696B2 (en) * | 2017-07-13 | 2020-10-27 | Microsoft Technology Licensing, Llc | Key attestation statement generation providing device anonymity |
US10447486B2 (en) * | 2017-07-19 | 2019-10-15 | Spyrus, Inc. | Remote attestation of a security module's assurance level |
US11770373B2 (en) * | 2017-09-25 | 2023-09-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Provisioning of vendor credentials |
GB2578628B (en) * | 2018-11-01 | 2021-09-15 | Trustonic Ltd | Device attestation techniques |
EP3891630B1 (en) * | 2019-01-25 | 2022-12-28 | Huawei Technologies Co., Ltd. | Method for end entity attestation |
US11374771B2 (en) | 2019-03-08 | 2022-06-28 | Ares Technologies, Inc. | Methods and systems for implementing mixed protocol certificates |
US10735205B1 (en) | 2019-03-08 | 2020-08-04 | Ares Technologies, Inc. | Methods and systems for implementing an anonymized attestation chain |
US10742421B1 (en) | 2019-03-08 | 2020-08-11 | Ares Technologies, Inc. | Methods and systems for anonymous hardware attestation |
US11394565B2 (en) * | 2019-06-18 | 2022-07-19 | Intel Corporation | Asymmetric device attestation using physically unclonable functions |
KR20210017083A (ko) * | 2019-08-06 | 2021-02-17 | 삼성전자주식회사 | 퓨즈된 키에 기반하여 증명 인증서를 생성하는 전자 장치 및 방법 |
US11539678B2 (en) * | 2019-08-16 | 2022-12-27 | Red Hat, Inc. | Asymmetric key management for cloud computing services |
US11265721B1 (en) * | 2019-08-20 | 2022-03-01 | Facebook Technologies, Llc | Secure device attestation and mutual authentication of artificial reality devices |
US11431689B2 (en) * | 2020-01-10 | 2022-08-30 | Lennox Industries Inc. | Secure payload delivery |
WO2022006574A1 (en) * | 2020-06-29 | 2022-01-06 | Arm Cloud Technology, Inc. | Device attestation |
US11595213B2 (en) * | 2020-06-29 | 2023-02-28 | Izuma Tech, Inc. | Methods and apparatus for performing attestation |
CN111953675B (zh) * | 2020-08-10 | 2022-10-25 | 四川阵风科技有限公司 | 一种基于硬件设备的密钥管理方法 |
KR102318947B1 (ko) * | 2020-08-21 | 2021-10-27 | 세종대학교산학협력단 | 개인 정보 보호 방법과 이를 수행하기 위한 컴퓨팅 장치 및 시스템 |
US11593488B2 (en) | 2020-10-28 | 2023-02-28 | Ares Technologies, Inc. | Systems and methods for a cryptographic agile bootloader for upgradable secure environment |
US11665148B2 (en) * | 2021-03-22 | 2023-05-30 | Cisco Technology, Inc. | Systems and methods for addressing cryptoprocessor hardware scaling limitations |
US11750384B2 (en) * | 2021-05-27 | 2023-09-05 | Microsoft Technology Licensing, Llc | Binding with cryptographic key attestation |
US20230388110A1 (en) * | 2022-05-31 | 2023-11-30 | Microsoft Technology Licensing, Llc | Using attestation client code to attest health of a computing device |
US20240007354A1 (en) * | 2022-06-30 | 2024-01-04 | Amazon Technologies, Inc. | Automatic onboarding of heterogeneous devices onto a client network |
CN117056948A (zh) * | 2023-07-28 | 2023-11-14 | 威艾特科技(深圳)有限公司 | 一种收据凭证加密方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050132182A1 (en) | 2003-12-12 | 2005-06-16 | International Business Machines Corporation | System and method for providing endorsement certificate |
US20100131765A1 (en) | 2008-11-26 | 2010-05-27 | Microsoft Corporation | Anonymous verifiable public key certificates |
US20110139135A1 (en) | 2008-06-05 | 2011-06-16 | Renault S.A.S. | Power supply control for spark plug of internal combustion engine |
US20110296172A1 (en) | 2010-05-28 | 2011-12-01 | Christina Fu | Server-side key generation for non-token clients |
Family Cites Families (136)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7165174B1 (en) * | 1995-02-13 | 2007-01-16 | Intertrust Technologies Corp. | Trusted infrastructure support systems, methods and techniques for secure electronic commerce transaction and rights management |
US7631188B2 (en) * | 1997-05-16 | 2009-12-08 | Tvworks, Llc | Hierarchical open security information delegation and acquisition |
US6233685B1 (en) * | 1997-08-29 | 2001-05-15 | Sean William Smith | Establishing and employing the provable untampered state of a device |
JP2000049766A (ja) * | 1998-07-27 | 2000-02-18 | Hitachi Ltd | 鍵管理サーバシステム |
US7194620B1 (en) * | 1999-09-24 | 2007-03-20 | Verizon Business Global Llc | Method for real-time data authentication |
US6996710B1 (en) * | 2000-03-31 | 2006-02-07 | Intel Corporation | Platform and method for issuing and certifying a hardware-protected attestation key |
US20020019938A1 (en) * | 2000-08-04 | 2002-02-14 | Aarons Michael Thomas | Method and apparatus for secure identification for networked environments |
US20020078347A1 (en) * | 2000-12-20 | 2002-06-20 | International Business Machines Corporation | Method and system for using with confidence certificates issued from certificate authorities |
US20020129261A1 (en) * | 2001-03-08 | 2002-09-12 | Cromer Daryl Carvis | Apparatus and method for encrypting and decrypting data recorded on portable cryptographic tokens |
US7925878B2 (en) * | 2001-10-03 | 2011-04-12 | Gemalto Sa | System and method for creating a trusted network capable of facilitating secure open network transactions using batch credentials |
GB2382419B (en) * | 2001-11-22 | 2005-12-14 | Hewlett Packard Co | Apparatus and method for creating a trusted environment |
US6963873B2 (en) * | 2002-01-02 | 2005-11-08 | Intel Corporation | Method and system for automatic association of a signed certificate with a certificate signing request |
JP4519645B2 (ja) | 2002-07-12 | 2010-08-04 | プリヴァリス・インコーポレーテッド | 旅行特権割当ておよび検証用個人認証ソフトウェアおよびシステム |
US7181016B2 (en) * | 2003-01-27 | 2007-02-20 | Microsoft Corporation | Deriving a symmetric key from an asymmetric key for file encryption or decryption |
US20040193917A1 (en) * | 2003-03-26 | 2004-09-30 | Drews Paul C | Application programming interface to securely manage different execution environments |
US7797544B2 (en) * | 2003-12-11 | 2010-09-14 | Microsoft Corporation | Attesting to establish trust between computer entities |
US7424610B2 (en) * | 2003-12-23 | 2008-09-09 | Intel Corporation | Remote provisioning of secure systems for mandatory control |
US7350072B2 (en) * | 2004-03-30 | 2008-03-25 | Intel Corporation | Remote management and provisioning of a system across a network based connection |
US20050251857A1 (en) * | 2004-05-03 | 2005-11-10 | International Business Machines Corporation | Method and device for verifying the security of a computing platform |
US20050278253A1 (en) * | 2004-06-15 | 2005-12-15 | Microsoft Corporation | Verifying human interaction to a computer entity by way of a trusted component on a computing device or the like |
US7055742B2 (en) * | 2004-06-29 | 2006-06-06 | Microsoft Corporation | Method for secure on-line voting |
US8356175B2 (en) * | 2005-06-29 | 2013-01-15 | Intel Corporation | Methods and apparatus to perform associated security protocol extensions |
US8417640B2 (en) * | 2005-10-31 | 2013-04-09 | Research In Motion Limited | Secure license key method and system |
US8989390B2 (en) * | 2005-12-12 | 2015-03-24 | Qualcomm Incorporated | Certify and split system and method for replacing cryptographic keys |
US7600123B2 (en) * | 2005-12-22 | 2009-10-06 | Microsoft Corporation | Certificate registration after issuance for secure communication |
US8145917B2 (en) * | 2005-12-30 | 2012-03-27 | Nokia Corporation | Security bootstrapping for distributed architecture devices |
US9135444B2 (en) * | 2006-10-19 | 2015-09-15 | Novell, Inc. | Trusted platform module (TPM) assisted data center management |
US8281389B2 (en) * | 2006-12-21 | 2012-10-02 | Seagate Technology Llc | System and method for tamper evident certification |
US8984280B2 (en) * | 2007-02-16 | 2015-03-17 | Tibco Software Inc. | Systems and methods for automating certification authority practices |
US7975290B2 (en) * | 2007-06-07 | 2011-07-05 | Alcatel Lucent | Verifying authenticity of instant messaging messages |
US7971261B2 (en) * | 2007-06-12 | 2011-06-28 | Microsoft Corporation | Domain management for digital media |
CN100566251C (zh) * | 2007-08-01 | 2009-12-02 | 西安西电捷通无线网络通信有限公司 | 一种增强安全性的可信网络连接方法 |
DE102007044905A1 (de) * | 2007-09-19 | 2009-04-09 | InterDigital Patent Holdings, Inc., Wilmington | Verfahren und Vorrichtung zur Ermöglichung einer Dienstnutzung und Feststellung der Teilnehmeridentität in Kommunikationsnetzen mittels softwarebasierten Zugangsberechtigungsausweisen (vSIM) |
US20090125996A1 (en) * | 2007-09-19 | 2009-05-14 | Interdigital Patent Holdings, Inc. | Virtual subscriber identity module |
US8862874B2 (en) * | 2008-05-09 | 2014-10-14 | International Business Machines Corporation | Certificate distribution using secure handshake |
US9122895B2 (en) * | 2008-06-25 | 2015-09-01 | Microsoft Technology Licensing, Llc | Authorization for transient storage devices with multiple authentication silos |
WO2010025318A2 (en) * | 2008-08-28 | 2010-03-04 | Motorola, Inc. | Encrypting a unique cryptographic entity |
US8751791B2 (en) * | 2008-09-17 | 2014-06-10 | Motorola Solutions, Inc. | Method and device for confirming authenticity of a public key infrastructure (PKI) transaction event |
US20120137364A1 (en) | 2008-10-07 | 2012-05-31 | Mocana Corporation | Remote attestation of a mobile device |
US8738932B2 (en) * | 2009-01-16 | 2014-05-27 | Teleputers, Llc | System and method for processor-based security |
CN101807998A (zh) | 2009-02-13 | 2010-08-18 | 英飞凌科技股份有限公司 | 认证 |
US8544092B2 (en) | 2009-03-12 | 2013-09-24 | International Business Machines Corporation | Integrity verification using a peripheral device |
US8509448B2 (en) * | 2009-07-29 | 2013-08-13 | Motorola Solutions, Inc. | Methods and device for secure transfer of symmetric encryption keys |
US9490984B2 (en) * | 2009-09-14 | 2016-11-08 | Interdigital Patent Holdings, Inc. | Method and apparatus for trusted authentication and logon |
CN101699891B (zh) * | 2009-10-21 | 2012-07-25 | 西安西电捷通无线网络通信股份有限公司 | 一种传感器网络密钥管理和节点鉴别方法 |
US8700893B2 (en) * | 2009-10-28 | 2014-04-15 | Microsoft Corporation | Key certification in one round trip |
US8327424B2 (en) * | 2009-12-22 | 2012-12-04 | Motorola Solutions, Inc. | Method and apparatus for selecting a certificate authority |
MY151315A (en) | 2010-05-07 | 2014-05-15 | Mimos Berhad | System and method for issuing endorsement key credential in trusted computing environment using local certificate authority |
US20120174196A1 (en) * | 2010-12-30 | 2012-07-05 | Suresh Bhogavilli | Active validation for ddos and ssl ddos attacks |
US8806196B2 (en) * | 2011-11-04 | 2014-08-12 | Motorola Solutions, Inc. | Method and apparatus for authenticating a digital certificate status and authorization credentials |
US9754253B1 (en) * | 2011-11-28 | 2017-09-05 | Amazon Technologies, Inc. | Conditioned use of certificates |
US9413538B2 (en) * | 2011-12-12 | 2016-08-09 | Microsoft Technology Licensing, Llc | Cryptographic certification of secure hosted execution environments |
US9054871B2 (en) * | 2012-02-21 | 2015-06-09 | California Institute Of Technology | Physical key-protected one time pad |
US8782423B2 (en) | 2012-06-19 | 2014-07-15 | Microsoft Corporation | Network based management of protected data sets |
US20140006776A1 (en) * | 2012-06-29 | 2014-01-02 | Mark Scott-Nash | Certification of a virtual trusted platform module |
US9411962B2 (en) * | 2012-07-18 | 2016-08-09 | Sequitur Labs Inc. | System and methods for secure utilization of attestation in policy-based decision making for mobile device management and security |
US8782401B2 (en) | 2012-09-26 | 2014-07-15 | Intel Corporation | Enhanced privacy ID based platform attestation |
US9374228B2 (en) * | 2012-10-12 | 2016-06-21 | International Business Machines Corporation | Verifying a geographic location of a virtual disk image executing at a data center server within a data center |
US9794602B2 (en) * | 2012-10-29 | 2017-10-17 | Echostar Technologies L.L.C. | Systems and methods for securely providing streaming media content on-demand |
US9935953B1 (en) * | 2012-11-06 | 2018-04-03 | Behaviometrics Ab | Secure authenticating an user of a device during a session with a connected server |
US9077759B2 (en) * | 2013-01-18 | 2015-07-07 | Apple Inc. | Conflict resolution for keychain syncing |
US9594567B2 (en) * | 2013-02-21 | 2017-03-14 | Dell Products, Lp | Configuring a trusted platform module |
EP2815349B1 (en) * | 2013-03-06 | 2021-04-21 | Intel Corporation | Roots-of-trust for measurement of virtual machines |
US20140259132A1 (en) * | 2013-03-06 | 2014-09-11 | Go Daddy Operating Company, LLC | System for creating a security certificate |
US20140281497A1 (en) * | 2013-03-13 | 2014-09-18 | General Instrument Corporation | Online personalization update system for externally acquired keys |
US9219607B2 (en) * | 2013-03-14 | 2015-12-22 | Arris Technology, Inc. | Provisioning sensitive data into third party |
US9332002B1 (en) * | 2013-03-14 | 2016-05-03 | Amazon Technologies, Inc. | Authenticating and authorizing a user by way of a digital certificate |
EP2973168A1 (en) * | 2013-03-15 | 2016-01-20 | Ologn Technologies AG | Systems, methods and apparatuses for remote attestation |
DE102013205051A1 (de) * | 2013-03-21 | 2014-09-25 | Siemens Aktiengesellschaft | Aktualisieren eines digitalen Geräte-Zertifikats eines Automatisierungsgeräts |
JP6079394B2 (ja) * | 2013-04-11 | 2017-02-15 | 富士通株式会社 | 証明書生成方法、証明書生成装置、情報処理装置、通信機器、及びプログラム |
US9094377B2 (en) * | 2013-08-16 | 2015-07-28 | Netflix, Inc. | Key generation and broadcasting |
US9998438B2 (en) | 2013-10-23 | 2018-06-12 | Microsoft Technology Licensing, Llc | Verifying the security of a remote server |
US9391980B1 (en) | 2013-11-11 | 2016-07-12 | Google Inc. | Enterprise platform verification |
US9647832B2 (en) * | 2014-01-13 | 2017-05-09 | Visa International Service Association | Efficient methods for protecting identity in authenticated transmissions |
US10050787B1 (en) * | 2014-03-25 | 2018-08-14 | Amazon Technologies, Inc. | Authentication objects with attestation |
US9680872B1 (en) * | 2014-03-25 | 2017-06-13 | Amazon Technologies, Inc. | Trusted-code generated requests |
US9652604B1 (en) * | 2014-03-25 | 2017-05-16 | Amazon Technologies, Inc. | Authentication objects with delegation |
US10049202B1 (en) * | 2014-03-25 | 2018-08-14 | Amazon Technologies, Inc. | Strong authentication using authentication objects |
US20160344725A1 (en) * | 2014-04-02 | 2016-11-24 | William B. SEVERIN | Signal haystacks |
EP2937806A1 (en) * | 2014-04-22 | 2015-10-28 | ALSTOM Renewable Technologies | Method and system for securing electronic data exchange between an industrial programmable device and a portable programmable device |
US9652631B2 (en) * | 2014-05-05 | 2017-05-16 | Microsoft Technology Licensing, Llc | Secure transport of encrypted virtual machines with continuous owner access |
US9692599B1 (en) * | 2014-09-16 | 2017-06-27 | Google Inc. | Security module endorsement |
US9716716B2 (en) * | 2014-09-17 | 2017-07-25 | Microsoft Technology Licensing, Llc | Establishing trust between two devices |
US9705879B2 (en) * | 2014-09-17 | 2017-07-11 | Microsoft Technology Licensing, Llc | Efficient and reliable attestation |
US9331989B2 (en) | 2014-10-06 | 2016-05-03 | Micron Technology, Inc. | Secure shared key sharing systems and methods |
US9900295B2 (en) * | 2014-11-05 | 2018-02-20 | Microsoft Technology Licensing, Llc | Roaming content wipe actions across devices |
US10348727B2 (en) * | 2015-02-13 | 2019-07-09 | International Business Machines Corporation | Automatic key management using enterprise user identity management |
US10015173B1 (en) * | 2015-03-10 | 2018-07-03 | Symantec Corporation | Systems and methods for location-aware access to cloud data stores |
EP3271824A4 (en) | 2015-03-20 | 2018-09-05 | Rivetz Corp. | Automated attestation of device integrity using the block chain |
US20160323736A1 (en) * | 2015-04-15 | 2016-11-03 | Melrok, Llc | Secure broadcast systems and methods for internet of things devices |
US10230696B2 (en) * | 2015-06-09 | 2019-03-12 | Intel Corporation | System, apparatus and method for managing lifecycle of secure publish-subscribe system |
US20160364553A1 (en) * | 2015-06-09 | 2016-12-15 | Intel Corporation | System, Apparatus And Method For Providing Protected Content In An Internet Of Things (IOT) Network |
ES2791956T3 (es) * | 2015-06-11 | 2020-11-06 | Siemens Ag | Aparato y procedimiento de autorización para una emisión autorizada de un token de autenticación para un dispositivo |
US10333903B1 (en) * | 2015-06-16 | 2019-06-25 | Amazon Technologies, Inc. | Provisioning network keys to devices to allow them to provide their identity |
US9923721B2 (en) * | 2015-06-22 | 2018-03-20 | Intel IP Corporation | Key agreement and authentication for wireless communication |
CN105141593A (zh) | 2015-08-10 | 2015-12-09 | 刘澄宇 | 一种私有云平台安全计算方法 |
US10397255B1 (en) * | 2015-09-23 | 2019-08-27 | StackRox, Inc. | System and method for providing security in a distributed computation system utilizing containers |
US20170093586A1 (en) * | 2015-09-25 | 2017-03-30 | Qualcomm Incorporated | Techniques for managing certificates on a computing device |
US9906513B2 (en) * | 2015-09-28 | 2018-02-27 | Bank Of America Corporation | Network authorization system |
US9917687B2 (en) * | 2015-10-12 | 2018-03-13 | Microsoft Technology Licensing, Llc | Migrating secrets using hardware roots of trust for devices |
US9832024B2 (en) * | 2015-11-13 | 2017-11-28 | Visa International Service Association | Methods and systems for PKI-based authentication |
US9740867B2 (en) * | 2015-11-16 | 2017-08-22 | Dell Products, L.P. | Securely passing user authentication data between a pre-boot authentication environment and an operating system |
US10009179B2 (en) * | 2015-11-30 | 2018-06-26 | Microsoft Technology Licensing, Llc | Trusted platform module (TPM) protected device |
US10169591B2 (en) * | 2015-12-07 | 2019-01-01 | Amazon Technologies, Inc. | Chained security systems |
US10536271B1 (en) * | 2016-01-10 | 2020-01-14 | Apple Inc. | Silicon key attestation |
US10341325B2 (en) * | 2016-01-29 | 2019-07-02 | Vmware, Inc. | System and method for transferring device identifying information |
US10169602B2 (en) * | 2016-02-22 | 2019-01-01 | Dell Products, L.P. | Method for local key management setup and recovery |
US10412191B1 (en) * | 2016-03-30 | 2019-09-10 | Amazon Technologies, Inc. | Hardware validation |
US10277407B2 (en) * | 2016-04-19 | 2019-04-30 | Microsoft Technology Licensing, Llc | Key-attestation-contingent certificate issuance |
US11256746B2 (en) * | 2016-04-25 | 2022-02-22 | Oracle International Corporation | Hash-based efficient secondary indexing for graph data stored in non-relational data stores |
GB201607476D0 (en) * | 2016-04-29 | 2016-06-15 | Eitc Holdings Ltd | Operating system for blockchain IOT devices |
US10447467B2 (en) * | 2016-05-04 | 2019-10-15 | International Business Machines Corporation | Revocable PKI signatures |
US9916452B2 (en) * | 2016-05-18 | 2018-03-13 | Microsoft Technology Licensing, Llc | Self-contained cryptographic boot policy validation |
US10115250B2 (en) * | 2016-05-23 | 2018-10-30 | Fuji Xerox Co., Ltd. | Systems and methods for location enabled electronic lock controls |
US10135622B2 (en) * | 2016-06-03 | 2018-11-20 | Intel Corporation | Flexible provisioning of attestation keys in secure enclaves |
US10601787B2 (en) * | 2016-06-06 | 2020-03-24 | Cisco Technology, Inc. | Root of trust of geolocation |
US10708067B2 (en) * | 2016-06-18 | 2020-07-07 | Intel Corporation | Platform attestation and registration for servers |
US20180007037A1 (en) * | 2016-07-01 | 2018-01-04 | Kenneth Wade Reese | Transaction-specific shared secret in one-time password device |
US10135921B2 (en) * | 2016-09-20 | 2018-11-20 | Keir Finlow-Bates | System and method for announcing cryptographic keys on a blockchain |
US10733284B2 (en) * | 2016-10-06 | 2020-08-04 | Samsung Electronics Co., Ltd. | Trusted execution environment secure element communication |
US10498712B2 (en) * | 2016-11-10 | 2019-12-03 | Ernest Brickell | Balancing public and personal security needs |
US10469478B2 (en) * | 2016-12-07 | 2019-11-05 | Vmware, Inc. | Inter-application secure data sharing workflow |
US10574648B2 (en) * | 2016-12-22 | 2020-02-25 | Dashlane SAS | Methods and systems for user authentication |
US10229270B2 (en) * | 2016-12-23 | 2019-03-12 | Amazon Technologies, Inc. | Host attestation |
US20180183578A1 (en) * | 2016-12-27 | 2018-06-28 | Intel Corporation | Provisioning keys for virtual machine scaling |
US20180183586A1 (en) * | 2016-12-28 | 2018-06-28 | Intel Corporation | Assigning user identity awareness to a cryptographic key |
US10530777B2 (en) * | 2017-01-24 | 2020-01-07 | Microsoft Technology Licensing, Llc | Data unsealing with a sealing enclave |
US11443033B2 (en) * | 2017-01-24 | 2022-09-13 | Microsoft Technology Licensing, Llc | Abstract enclave identity |
US11405177B2 (en) * | 2017-01-24 | 2022-08-02 | Microsoft Technology Licensing, Llc | Nested enclave identity |
US11036875B2 (en) * | 2017-01-24 | 2021-06-15 | Microsoft Technology Licensing, Llc | Dependent enclave binaries |
US20180241572A1 (en) * | 2017-02-22 | 2018-08-23 | Intel Corporation | Techniques for remote sgx enclave authentication |
US10341864B2 (en) * | 2017-03-03 | 2019-07-02 | Verizon Patent And Licensing Inc. | Network-based device registration for content distribution platforms |
US20180287920A1 (en) * | 2017-03-30 | 2018-10-04 | Ca, Inc. | Intercepting application traffic monitor and analyzer |
US10397005B2 (en) * | 2017-03-31 | 2019-08-27 | Intel Corporation | Using a trusted execution environment as a trusted third party providing privacy for attestation |
US10440006B2 (en) * | 2017-06-21 | 2019-10-08 | Microsoft Technology Licensing, Llc | Device with embedded certificate authority |
US10819696B2 (en) * | 2017-07-13 | 2020-10-27 | Microsoft Technology Licensing, Llc | Key attestation statement generation providing device anonymity |
-
2017
- 2017-07-13 US US15/649,085 patent/US10819696B2/en active Active
-
2018
- 2018-05-28 AU AU2018299716A patent/AU2018299716B2/en active Active
- 2018-05-28 WO PCT/US2018/034795 patent/WO2019013886A1/en unknown
- 2018-05-28 EP EP18731699.7A patent/EP3652882A1/en active Pending
- 2018-05-28 SG SG11201912738WA patent/SG11201912738WA/en unknown
- 2018-05-28 RU RU2020106575A patent/RU2763516C2/ru active
- 2018-05-28 BR BR112020000220-8A patent/BR112020000220A2/pt unknown
- 2018-05-28 CA CA3067540A patent/CA3067540A1/en active Pending
- 2018-05-28 KR KR1020207000801A patent/KR102451109B1/ko active IP Right Grant
- 2018-05-28 JP JP2020501161A patent/JP7077394B2/ja active Active
- 2018-05-28 IL IL271812A patent/IL271812B2/en unknown
- 2018-05-28 MX MX2020000328A patent/MX2020000328A/es unknown
- 2018-05-28 CN CN201880046669.0A patent/CN110892672B/zh active Active
-
2019
- 2019-12-19 ZA ZA2019/08494A patent/ZA201908494B/en unknown
-
2020
- 2020-01-02 PH PH12020550006A patent/PH12020550006A1/en unknown
- 2020-01-08 CO CONC2020/0000162A patent/CO2020000162A2/es unknown
- 2020-01-10 CL CL2020000081A patent/CL2020000081A1/es unknown
- 2020-08-27 US US17/004,929 patent/US11750591B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050132182A1 (en) | 2003-12-12 | 2005-06-16 | International Business Machines Corporation | System and method for providing endorsement certificate |
US20110139135A1 (en) | 2008-06-05 | 2011-06-16 | Renault S.A.S. | Power supply control for spark plug of internal combustion engine |
US20100131765A1 (en) | 2008-11-26 | 2010-05-27 | Microsoft Corporation | Anonymous verifiable public key certificates |
US20110296172A1 (en) | 2010-05-28 | 2011-12-01 | Christina Fu | Server-side key generation for non-token clients |
Also Published As
Publication number | Publication date |
---|---|
EP3652882A1 (en) | 2020-05-20 |
NZ759830A (en) | 2023-10-27 |
IL271812B1 (en) | 2023-09-01 |
AU2018299716B2 (en) | 2023-09-21 |
US20200396217A1 (en) | 2020-12-17 |
BR112020000220A2 (pt) | 2020-07-07 |
CA3067540A1 (en) | 2019-01-17 |
WO2019013886A1 (en) | 2019-01-17 |
MX2020000328A (es) | 2020-07-13 |
ZA201908494B (en) | 2021-03-31 |
CL2020000081A1 (es) | 2020-07-31 |
CN110892672B (zh) | 2023-10-20 |
US20190020647A1 (en) | 2019-01-17 |
RU2763516C2 (ru) | 2021-12-30 |
PH12020550006A1 (en) | 2020-10-12 |
AU2018299716A1 (en) | 2020-01-02 |
CN110892672A (zh) | 2020-03-17 |
IL271812B2 (en) | 2024-01-01 |
US10819696B2 (en) | 2020-10-27 |
US11750591B2 (en) | 2023-09-05 |
RU2020106575A (ru) | 2021-08-13 |
JP7077394B2 (ja) | 2022-05-30 |
JP2020527305A (ja) | 2020-09-03 |
CO2020000162A2 (es) | 2020-01-17 |
IL271812A (en) | 2020-02-27 |
SG11201912738WA (en) | 2020-01-30 |
KR20200027500A (ko) | 2020-03-12 |
RU2020106575A3 (ko) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102451109B1 (ko) | 디바이스 익명성을 제공하는 키 증명문 생성 | |
US11055385B2 (en) | Multi-factor user authentication framework using asymmetric key | |
EP3265950B1 (en) | Device attestation through security hardened management agent | |
US9762396B2 (en) | Device theft protection associating a device identifier and a user identifier | |
CN107077567B (zh) | 标识计算设备上的安全边界 | |
CN112187803B (zh) | 使用服务器的tpm的远程密码服务 | |
US10229272B2 (en) | Identifying security boundaries on computing devices | |
CN113141610B (zh) | 将设备标识符和用户标识符相关联的设备盗窃防护 | |
NZ759830B2 (en) | Key attestation statement generation providing device anonymity |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |