KR100883442B1 - Method of delivering direct proof private keys to devices using an on-line service - Google Patents
Method of delivering direct proof private keys to devices using an on-line service Download PDFInfo
- Publication number
- KR100883442B1 KR100883442B1 KR1020077003426A KR20077003426A KR100883442B1 KR 100883442 B1 KR100883442 B1 KR 100883442B1 KR 1020077003426 A KR1020077003426 A KR 1020077003426A KR 20077003426 A KR20077003426 A KR 20077003426A KR 100883442 B1 KR100883442 B1 KR 100883442B1
- Authority
- KR
- South Korea
- Prior art keywords
- key
- secret key
- data structure
- encrypted data
- secret
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 79
- 238000004519 manufacturing process Methods 0.000 claims abstract description 39
- 238000012545 processing Methods 0.000 claims abstract description 38
- 230000008569 process Effects 0.000 claims description 28
- 230000004044 response Effects 0.000 claims description 14
- 230000001052 transient effect Effects 0.000 claims description 10
- 238000009434 installation Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000013478 data encryption standard Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 235000014510 cooky Nutrition 0.000 description 2
- 230000000875 corresponding effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009429 electrical wiring Methods 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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/3226—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 using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3228—One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
직접 증명 비밀키를 필드에 있는 클라이언트 컴퓨터 시스템에 설치된 디바이스에 전달하는 것은 디바이스에 상당한 비휘발성 저장소를 요구함 없이 보안적인 방식으로 달성될 수 있다. 고유의 의사 난수값이 생성되어 제조시 디바이스에 저장된다. 의사 난수값을 사용하여 디바이스와 연관된 직접 증명 비밀키 및 비밀키 다이제스트를 유지하는 데이터 구조를 암호화하는 대칭키를 생성한다. 그 결과의 암호화된 데이터 구조는 클라이언트 컴퓨터 시스템에 의해 액세스가능한 보호 온라인 서버 상에 저장된다. 디바이스가 클라이언트 컴퓨터 시스템 상에서 개시될때, 시스템은 로컬 암호화된 데이터 구조가 시스템에 존재하는지를 체크한다. 로컬 암호화된 데이터 구조가 존재하지 않는다면, 시스템은 보안 프로토콜을 사용하여 보호 온라인 서버로부터 관련 암호화된 데이터 구조를 획득한다. 디바이스는 직접 증명 비밀키를 획득하기 위해 저장된 의사 난수값으로부터 재생성된 대칭키를 이용하여 암호화된 데이터 구조를 복호화한다. 비밀키가 유효하면, 이 비밀키는 클라이언트 컴퓨터 시스템에 있는 디바이스에 의해 후속의 인증 프로세싱용으로 사용될 수 있다.
Passing a direct proof secret key to a device installed in a client computer system in the field can be accomplished in a secure manner without requiring significant nonvolatile storage on the device. Unique pseudo random values are generated and stored in the device at the time of manufacture. The pseudorandom value is used to generate a symmetric key that encrypts the data structure holding the direct proof secret and secret key digest associated with the device. The resulting encrypted data structure is stored on a protected online server accessible by the client computer system. When a device is launched on a client computer system, the system checks whether a local encrypted data structure exists in the system. If no local encrypted data structure exists, the system uses a secure protocol to obtain the relevant encrypted data structure from the protected online server. The device decrypts the encrypted data structure using the symmetric key regenerated from the stored pseudorandom value to obtain the proof secret key directly. If the secret key is valid, it can be used for subsequent authentication processing by a device in the client computer system.
Description
본 발명은 일반적으로 컴퓨터 보안에 관한 것으로, 보다 상세하게는, 암호키를 프로세싱 시스템의 디바이스로 보안성있게 분배하는 것에 관한 것이다.FIELD OF THE INVENTION The present invention generally relates to computer security, and more particularly to securely distributing cryptographic keys to devices in a processing system.
콘텐츠 보호 및/또는 컴퓨터 보안 특징을 지원하는 일부 프로세싱 시스템 아키텍처는, 특별히 보호되거나 "신뢰된" 소프트웨어 모듈이 (예를 들면, 그래픽 컨트롤러 카드 같은) 프로세싱 시스템에 있는 특별히 보호되거나 "신뢰된" 하드웨어 디바이스를 사용하여 인증 암호화 통신 세션을 생성할 수 있는 것을 요구한다. 디바이스를 식별하고 동시에 암호화 통신 세션을 생성하는데 공통적으로 사용되는 한가지 방법은, 일방이 인증된 DH(Diffe-Helman) 키 교환 프로세스를 사용하는 것이다. 이 프로세스에서, 디바이스에는 고유의 공개/비밀 RSA(Rivest, Shamir and Adelman) 알고리즘 키 쌍 또는 고유의 ECC(Elliptic Curve Cryptography) 키 쌍이 할당된다. 그러나, 이 인증 프로세스에서는 RSA 또는 ECC 키를 사용하기 때문에, 디바이스가 고유의 입증가능 아이덴티티(identity)를 갖게 되고, 이는 프라이버시 우려를 발생시킬 수 있다. 최악의 경우에, 이들 우려는 결과적으로 그러한 종류의 보안성을 제공하는 신뢰성있는 디바이스를 구축하는 OEMs(original equipment manufacturers)로부터의 지원이 부족하게 할 수 있다.Some processing system architectures that support content protection and / or computer security features include specially protected or "trusted" hardware devices in which specially protected or "trusted" software modules are present in the processing system (such as a graphics controller card). Requires that an authenticated encrypted communication session be created. One method commonly used to identify devices and simultaneously create encrypted communication sessions is to use an authenticated Diffe-Helman (DH) key exchange process. In this process, the device is assigned a unique public / secret RSA (Rivest, Shamir and Adelman) algorithm key pair or a unique Elliptic Curve Cryptography (ECC) key pair. However, since this authentication process uses RSA or ECC keys, the device has a unique verifiable identity, which can create privacy concerns. In the worst case, these concerns may result in a lack of support from original equipment manufacturers (OEMs) building reliable devices that provide that kind of security.
본 발명의 특징 및 이점은 후술하는 본 발명의 상세한 설명으로부터 자명해 질 것이다.The features and advantages of the present invention will become apparent from the following detailed description of the invention.
도 1은 본 발명의 일 실시예에 따라 동작하는 TPM(Trusted Platform Module)으로 구현되는 플랫폼을 특색으로 하는 시스템을 도시한다.1 illustrates a system featuring a platform implemented with a Trusted Platform Module (TPM) operating in accordance with one embodiment of the present invention.
도 2는 도 1의 TPM을 포함하는 플랫폼의 제 1 실시예를 도시한다.FIG. 2 shows a first embodiment of a platform including the TPM of FIG. 1.
도 3은 도 1의 TPM을 포함하는 플랫폼의 제 2 실시예를 도시한다.3 illustrates a second embodiment of a platform including the TPM of FIG. 1.
도 4는 도 2의 TPM으로 구현된 컴퓨터 시스템의 예시적 실시예를 도시한다.4 illustrates an example embodiment of a computer system implemented with the TPM of FIG. 2.
도 5는 본 발명의 실시예에 따라 온라인 서비스를 이용하여 직접 증명 키(Direct Proof keys)를 디바이스에 분배하는 시스템의 도면이다.5 is a diagram of a system for distributing Direct Proof keys to a device using an online service in accordance with an embodiment of the present invention.
도 6은 본 발명의 실시예에 따라 온라인 서비스를 이용하여 직접 증명 키를 분배하는 방법의 단계를 도시하는 흐름도이다.6 is a flow chart illustrating the steps of a method for directly distributing an attestation key using an online service in accordance with an embodiment of the present invention.
도 7은 본 발명의 실시예에 따른 보호 서버 셋업 프로세싱을 도시하는 흐름도이다.7 is a flow diagram illustrating protection server setup processing in accordance with an embodiment of the present invention.
도 8은 본 발명의 실시예에 따른 디바이스 제조자 셋업 프로세싱을 도시하는 흐름도이다.8 is a flowchart illustrating device manufacturer setup processing in accordance with an embodiment of the present invention.
도 9는 본 발명의 실시예에 따른 디바이스 제조자 제조 프로세싱을 도시하는 흐름도이다.9 is a flowchart illustrating device manufacturer manufacturing processing in accordance with an embodiment of the present invention.
도 10 내지 도 12는 본 발명의 실시예에 따른 클라이언트 컴퓨터 시스템 셋업 프로세싱의 흐름도이다.10-12 are flowcharts of client computer system setup processing in accordance with an embodiment of the present invention.
도 13은 본 발명의 실시예에 따른 클라이언트 컴퓨터 시스템 프로세싱의 흐름도이다.13 is a flowchart of client computer system processing in accordance with an embodiment of the present invention.
보호된/신뢰된 디바이스가 그 자체를 인증하고, 신뢰된 소프트웨어 모듈을 사용하여 암호화 통신 세션을 확립할 수 있도록 직접 증명 기반 DH 키 교환 프로토콜을 이용하여 프로세싱 시스템에서 임의의 고유 아이덴티티 정보 생성을 방지할 수 있고, 이에 의해 프라이버시 문제가 초래하는 것을 방지할 수 있다. 그러나, 직접 증명 비밀키를 제조 라인에서 디바이스에 직접 내장하게 되면, 다른 접근법보다 더 보호된 비휘발성 저장소가 디바이스 상에 필요하게 되어, 디바이스 비용이 증가하게 된다. 본 발명의 실시예는, 온라인 서비스를 이용하여 보안성있는 방식으로 (예를 들면, 서명에 사용되는) 직접 증명(DP) 비밀키를 디바이스에 전달되도록 하고, 후속하여 디바이스 자체별로 설치되도록 할 수 있는 방법이다. 본 발명에서 제공되는 방법은 설치 프로세스를 위한 식별 정보를 디바이스가 드러낼 필요가 없도록 설계된다. 일 실시예에서, 이러한 능력을 지원하기에 요구되는 디바이스 저장소가 대략 300 내지 700 바이트에서 대략 40 바이트까지 감소될 수 있다. 디바이스에 대하여 직접 증명 기반 DH 키 교환을 구현하기에 요구되는 비휘발성 저장소를 감소시킴으로써, 이러한 기술을 보다 광범위하게 적용할 수 있게 된다.Use a direct proof-based DH key exchange protocol to prevent the generation of any unique identity information in the processing system so that protected / trusted devices can authenticate themselves and establish encrypted communication sessions using trusted software modules. This can prevent the privacy problem from incurring. However, embedding the direct proof secret key directly into the device in the manufacturing line requires more protected nonvolatile storage on the device than other approaches, leading to increased device costs. Embodiments of the present invention can be used to deliver a direct proof (DP) secret key (eg, used for signing) to a device in a secure manner using an online service, and subsequently to be installed on a per device basis. That's how it is. The method provided by the present invention is designed such that the device does not need to reveal identification information for the installation process. In one embodiment, the device storage required to support this capability may be reduced from approximately 300 to 700 bytes to approximately 40 bytes. By reducing the nonvolatile storage required to implement direct evidence-based DH key exchange for the device, this technique becomes more widely applicable.
본 발명의 실시예에서, DP 비밀 서명키는 디바이스 내에 또는 디바이스와 함께 배포되지는 않는다. 그 대신, 필드에 있는 디바이스는 제조자 또는 판매자, 또는 델리게이트(delegate)가 제공한 온라인 보호 서버로부터 자신의 비밀키를 안전하게 검색할 수 있는 프로토콜을 그 디바이스가 지원한다. 이 프로토콜은 디바이스와 서버 간에 신뢰 채널을 생성하고, 로컬 프로세싱 시스템 상의 소프트웨어를 포함하는 임의의 개재되는 소프트웨어에서의 신뢰를 필요로 하지는 않는다. In an embodiment of the invention, the DP secret signing key is not distributed in or with the device. Instead, the device in the field supports a protocol that allows the device to retrieve its private key securely from an online protection server provided by the manufacturer or vendor, or delegate. This protocol creates a trust channel between the device and the server and does not require trust in any intervening software, including software on the local processing system.
본 발명의 "일 실시예" 또는 "실시예"에 대한 명세서에서의 참조는 그 실시예와 연결하여 설명되는 특정 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 명세서에 걸쳐 다양한 개소에 등장하는 "일 실시예에서"의 어구 표현은 모두 동일한 실시예를 참조할 필요는 없다.Reference in the specification to “one embodiment” or “an embodiment” of the present invention means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the phrase phrase "in one embodiment" appearing in various places throughout the specification is not necessarily all referring to the same embodiment.
후술하는 설명에서, 임의의 용어는 본 발명의 하나 이상의 실시예의 임의의 특징을 설명하는데 사용된다. 예를 들면, "플랫폼"은 정보를 송수신하는데 적응되는 임의의 유형의 통신 디바이스로서 정의된다. 다양한 플랫폼의 예는 컴퓨터 시스템, 개인 휴대 단말 장치, 셀룰러 전화, 셋톱 박스, 팩시밀리 기계, 프린터, 모뎀, 라우터 등을 포함하지만, 이에 제약 또는 한정되는 것은 아니다. "통신 링크"는 플랫폼에 적용되는 하나 이상의 정보 전달 매체로서 광범위하게 정의된다. 다양한 유형의 통신 링크의 예는 전기 배선(들), 광 섬유(들), 케이블(들), 버스 트레이스(들), 또는 무선 신호 기술을 포함하지만, 이에 제약 또는 한정되는 것은 아니다.In the description below, certain terms are used to describe any feature of one or more embodiments of the present invention. For example, a "platform" is defined as any type of communication device that is adapted to sending and receiving information. Examples of various platforms include, but are not limited to, computer systems, personal digital assistants, cellular telephones, set top boxes, facsimile machines, printers, modems, routers, and the like. "Communication link" is broadly defined as one or more information transfer media applied to a platform. Examples of various types of communication links include, but are not limited to, electrical wiring (s), optical fiber (s), cable (s), bus trace (s), or wireless signal technology.
"챌린저(challenger)"는 다른 엔티티로부터 확실성 또는 권한의 몇몇 검증을 요청하는 임의의 엔티티(예를 들면, 개인, 플랫폼, 시스템, 소프트웨어 및/또는 디바이스)를 말한다. 정상적으로, 이것은 요청된 정보를 드러내거나 제공하기 전에 수행된다. "응답기"는 권한, 유효성 및/또는 아이덴티티의 몇몇 증명을 제공하도록 요청받은 임의의 엔티티를 말한다. "인증 제조자"와 상호교환하여 사용될 수 있는 "디바이스 제조자"는 플랫폼 또는 디바이스를 제조하거나 구성하는 임의의 엔티티를 말한다.A "challenger" refers to any entity (eg, person, platform, system, software and / or device) that requests some verification of certainty or authority from another entity. Normally this is done before revealing or providing the requested information. "Responder" refers to any entity that has been asked to provide some proof of authority, validity and / or identity. "Device Manufacturer", which may be used interchangeably with "Authentication Manufacturer", refers to any entity that manufactures or configures a platform or device.
본 명세서에서 사용되는 바와 같이, 응답기가 몇몇 암호화 정보(예를 들면, 서명, 키 같은 비밀 등)를 소유하거나 인지한다는 것을 챌린저에게 "증명" 또는 "확신" 시킨다는 것은, 챌린저에게 노출된 정보 및 증명을 기초로, 응답기가 암호화 정보를 갖고 있을 확률이 높다는 것을 의미한다. 암호화 정보를 챌린저에게 "누설" 또는 "폭로"하지 않고 챌린저에게 이것을 증명하는 것은, 챌린저에게 개시된 정보에 기초하여, 챌린저가 암호화 정보를 결정하는 것이 계산적으로 불가능하다는 것을 의미한다.As used herein, to “challenge” or “confirm” a challenger that a responder owns or recognizes some cryptographic information (eg, a signature, a secret such as a key, etc.), the information and attestation exposed to the challenger. Based on this, it is likely that the responder has a high degree of encryption information. Proving this to the challenger without "leaking" or "disclosing" the encryption information to the challenger means that it is computationally impossible for the challenger to determine the encryption information based on the information disclosed to the challenger.
그러한 증명을 이후에 직접 증명이라 한다. 용어 "직접 증명"은 영-지식(zero-knowledge) 증명이라 하며, 이들 유형의 증명은 해당 분야에 공통적으로 공지되어 있다. 특히, 본 명세서에서 참조되는 특정의 직접 증명 프로토콜은, 본 출원인에게 양도되고, 2002년 11월 27일 출원되었으며, 발명의 명칭이 "System and Method for Establishing Trust Without Reavealing Identity"로서 공동 계류중인 미국 특허 출원번호 제 10/306,336호의 주제이다. 직접 증명은, 발급자가 정의한 공통 특성을 공유하는 많은 멤버의 패밀리를 발급자가 정의하는 프로토콜을 정의한다. 발급자는 전체로 패밀리를 나타내는 패밀리 공개 및 비밀키 쌍(Fpub 및 Fpri)을 생성한다. Fpri를 사용하여, 발급자는 또한 패밀리의 각각의 멤버에 대하여 고유의 직접 증명 비밀 서명키(DPpri)를 생성할 수 있다. 개별 DPpri에 의해 서명된 임의의 메시지는 패밀리 공개키(Fpub)를 사용하여 검증될 수 있다. 그러나, 그러한 검증은 단지 서명자가 패밀리의 멤버라는 것만 식별하고, 개별 멤버에 관한 정보를 고유하게 식별하는 것은 노출되지 않는다. 일 실시예에서, 발급자는 디바이스 제조자 또는 델리게이트(delegate)일 수 있다. 즉, 발급자는 공유된 특성을 기초로 디바이스 패밀리를 정의하고, 패밀리 공개/비밀키 쌍을 생성하며, DP 비밀키를 디바이스에 삽입할 수 있는 엔티티일 수 있다. 발급자는 또한 키의 소스 및 디바이스 패밀리의 특성을 식별하는 패밀리 공개키에 대한 인증서를 생성할 수 있다.Such proof is hereinafter referred to as direct proof. The term "direct proof" is referred to as zero-knowledge proof, and these types of proof are commonly known in the art. In particular, certain direct attestation protocols referenced herein are assigned to the applicant, filed on November 27, 2002, and co-pending US patent titled "System and Method for Establishing Trust Without Reavealing Identity". The subject matter of application number 10 / 306,336. Direct attestation defines a protocol in which the issuer defines a family of many members that share common characteristics defined by the issuer. The issuer creates family public and private key pairs (Fpub and Fpri) that represent the family as a whole. Using Fpri, the issuer can also generate a unique direct proof secret signing key (DPpri) for each member of the family. Any message signed by an individual DPpri can be verified using a family public key (Fpub). However, such verification only identifies that the signer is a member of the family, and uniquely identifying information about an individual member is not exposed. In one embodiment, the issuer may be a device manufacturer or delegate. That is, the issuer may be an entity that can define a device family based on shared properties, generate a family public / private key pair, and insert a DP secret key into the device. The issuer may also generate a certificate for the family public key that identifies the source of the key and the characteristics of the device family.
이제 도 1을 참조하면, 본 발명의 일 실시예에 따라 동작하는 ("신뢰 플랫폼 모듈" 또는 "TPM"로 칭해지는) 신뢰된 하드웨어 디바이스로 구현되는 플랫폼을 특색으로 하는 시스템의 실시예가 도시된다. 제 1 플랫폼(102, 챌린저)은 제 2 플랫폼(104, 응답기)이 자신에 관한 정보를 제공하는 요청(106)을 전송한다. 요청(106)에 응답하여, 제 2 플랫폼(104)은 요청된 정보(108)를 제공한다.Referring now to FIG. 1, shown is an embodiment of a system featuring a platform implemented with a trusted hardware device (called a “trust platform module” or “TPM”) operating in accordance with one embodiment of the present invention. The first platform 102 (challenger) sends a
부가적으로, 보안성을 높이기 위해, 제 1 플랫폼(102)은 요청된 정보(108)가 선택된 디바이스 제조자 또는 디바이스 제조자의 선택된 그룹(이후, "디바이스 제조자(들)(110)라 칭함)에 의해 제조된 디바이스로부터 전송되는지를 검증할 필요가 있다. 예를 들면, 본 발명의 일 실시예에 대하여, 제 1 플랫폼(102)은 요청된 정보가 디바이스 제조자(들)(110)에 의해 생성된 암호화 정보(예를 들면, 서명)을 구비하는지 보여줄 것을 제 2 플랫폼에 요구한다. 이러한 요구는 (도시된 바와 같은) 요청(106)에 삽입되거나 개별적으로 전송될 수 있다. 제 2 플랫폼(104)은 응답 형태로 정보를 제공함으로써 그 요구에 응답하여, 암호화 정보가 누설됨 없이, 제 2 플랫폼(104)이 디바이스 제조자(들)(110)에 의해 생성된 암호화 정보를 구비한다는 것을 제 1 플랫폼에게 확신시킨다. 상기 응답은 (도시된 바와 같은) 요청된 정보(108)의 일부이거나 개별적으로 전송될 수 있다.Additionally, to increase security, the
본 발명의 일 실시예에서, 제 2 플랫폼(104)은 TPM(Trusted Platform Module, 115)을 포함한다. TPM(115)은 디바이스 제조자(들)(110)에 의해 제조된 암호화 디바이스이다. 본 발명의 일 실시예에서, TPM(115)은 패키지로 밀봉된 소량의 온칩 메모리를 구비한 프로세서를 포함한다. TPM(115)은 응답이 유효 TPM으로부터 전송되는지를 판정하기 위해 TPM을 인에이블하도록 하는 정보를 제 1 플랫폼(102)에 제공한다. 사용되는 정보는 TPM의 아이덴티티 또는 제 2 플랫폼의 아이덴티티가 판정될 수 없도록 하는 콘텐츠이다.In one embodiment of the invention, the
도 2는 TPM(115)을 구비한 제 2 플랫폼(104)의 제 1 실시예를 도시한다. 본 발명의 이 실시예에 있어서, 제 2 플랫폼(104)은 TPM(115)에 접속된 프로세서(202)를 포함한다. 일반적으로, 프로세서(202)는 정보를 처리하는 디바이스이다. 예를 들면, 본 발명의 일 실시예에서, 프로세서(202)는 마이크로프로세서, 디지털 신호 프로세서, 마이크로-컨트롤러 또는 심지어 상태 머신으로도 구현될 수 있다. 대안으로, 본 발명의 다른 실시예에서, 프로세서(202)는 FPGA(Field Programmable Gate Array)들 같은 프로그램가능 또는 하드코딩된 로직, TTL(transistor-transistor logic) 로직, 또는 심지어 ASIC(Application Specific Integrated Circuit)으로도 구현될 수 있다.2 shows a first embodiment of a
본 명세서에서, 제 2 플랫폼(104)은 하나 이상의 키, 해시 값, 서명, 인증서 등과 같은 암호화 정보를 저장할 수 있는 저장 유닛(206)을 더 포함한다. "X"의 해시 값은 "Hash(X)"로 표현될 수 있다. 그러한 정보는 도 3에 도시된 바와 같이 저장 유닛(206) 대신 TPM(115)의 내부 메모리에 저장될 수 있다는 것이 예상된다. 암호화 정보는, 특히, TPM 외부에 저장된다면, 암호화될 수 있다.In this specification, the
도 4는 도 2의 TPM(115)으로 구현된 컴퓨터 시스템(300)을 포함하는 플랫폼의 실시예를 도시한다. 컴퓨터 시스템(300)은 버스(302) 및 그 버스(302)에 접속된 프로세서(310)를 포함한다. 컴퓨터 시스템(300)은 주 메모리 유닛(304) 및 정적 메모리 유닛(306)을 더 포함한다.4 illustrates an embodiment of a platform that includes a
본 명세서에서, 주 메모리 유닛(304)은 프로세서(310)에 의해 실행되는 명령 및 정보를 저장하는 휘발성 반도체 메모리이다. 주 메모리(304)는 또한 프로세서(310)가 명령을 실행하는 동안 임시 변수 또는 다른 중간 정보를 저장하는데 사용될 수 있다. 정적 메모리 유닛(306)은 프로세서(310)용 명령 및 정보를 보다 영구적으로 저장하는 비휘발성 반도체 메모리이다. 정적 메모리(306)의 예로는 판독 전용 메모리(ROM)을 포함하지만, 이에 제약 또는 한정되는 것은 아니다. 주 메모리 유닛(304) 및 정적 메모리 유닛(306) 모두 버스(302)에 접속된다.In this specification, the
본 발명의 일 실시예에서, 컴퓨터 시스템(300)은 도한 자기 디스크 또는 광 디스크 같은 데이터 저장 디바이스(308)를 포함하고, 이에 대응하는 드라이브 또한 정보 및 명령을 저장하는 컴퓨터 시스템(300)에 접속될 수 있다.In one embodiment of the invention,
컴퓨터 시스템(300)은 또한 버스(302)를 경유하여 그래픽 컨트롤러 디바이스(314)에 접속되고, 상기 그래픽 컨트롤러 디바이스는 최종 사용자에게 정보를 표시하는 음극선관(CRT), 액정 표시 장치(LCD) 또는 임의의 평판 디스플레이 같은 디스플레이(도시 생략)를 제어한다. 일 실시예에서, 프로세서에 의해 실행되는 소프트웨어 모듈을 사용하여 인증된 암호화 통신 세션을 그래픽 컨트롤러가 확립할 수 있도록 하는 것이 바람직할 수 있다.
전형적으로, 영숫자 입력 디바이스(316)(예를 들면, 키보드, 키패드 등)는 정보 및/또는 커맨드 선택을 프로세서(310)와 통신하는 버스(302)에 접속될 수 있다. 또 다른 유형의 사용자 입력 디바이스는 마우스, 트랙볼, 터치 패드, 스타일러스 같은 커서 제어 유닛(318), 또는 방향 정보 및 커맨드 선택을 프로세서(310)와 통신하고 디스플레이(314) 상에서 커서의 움직임을 제어하는 커서 방향키이다.Typically, alphanumeric input device 316 (eg, keyboard, keypad, etc.) may be connected to bus 302 which communicates information and / or command selection with
통신 인터페이스 유닛(320)은 또한 버스(302)에 접속된다. 인터페이스 유닛(320)의 예로는 모뎀, 네트워크 인터페이스 카드, 또는 로컬 또는 광역 네트워크의 일부를 형성하는 통신 링크에 접속하는데 사용되는 기타 공지된 인터페이스가 포함된다. 이러한 방식에서, 컴퓨터 시스템(300)은, 예를 들면, 회사 인트라넷 및/또는 인터넷 같은 종래의 네트워크 인프라스트럭처를 통해 다수의 클라이언트 및/또는 서버와 접속될 수 있다. 일 실시예에서, 컴퓨터 시스템은 네트워크를 통해 온라인으로 보호 서버와 접속될 수 있다.The communication interface unit 320 is also connected to the bus 302. Examples of interface unit 320 include a modem, network interface card, or other known interface used to connect to a communication link that forms part of a local or wide area network. In this manner,
전술한 다소의 내장 컴퓨터 시스템이 임의의 구현에 대하여 바람직할 수 있다는 것이 이해된다. 따라서, 컴퓨터 시스템(300)의 구성은 가격 제한, 성능 요구사항, 기술적 향상 및/또는 기타 환경과 같은 다수의 인자에 따라 구현이 변경될 것이다.It is understood that some of the aforementioned embedded computer systems may be desirable for any implementation. Thus, the configuration of
적어도 일 실시예에서, 컴퓨터 시스템(300)은, 시스템에 다른 적대의 소프트웨어가 존재하더라도, 주 메모리(304) 및/또는 대량 저장 디바이스(308)에 저장되고 프로세서(310)에 의해 실행되어 특정 활동을 수행하는 특별히 보호된 "신뢰" 소프트웨어 모듈(예를 들면, 변형-억제 소프트웨어, 또는 보호된 프로그램을 실행하는 능력을 구비하는 시스템)의 사용을 지원할 수 있다. 이들 신뢰 소프트웨어 모듈의 일부는 등가적으로 "신뢰가능" 보호된 액세스를 다른 플랫폼에 요구하는 것이 아니라, 그래픽 컨트롤러(314) 같은 동일한 플랫폼 내의 하나 이상의 주변 디바이스에 요구한다. 일반적으로, 그러한 액세스는 신뢰 소프트웨어 모듈이 디바이스의 능력 및/또는 특정 아이덴티티를 식별할 수 있고, 다음에 시스템에 있는 다른 소프트웨어에 의해 스누프(snoop)되거나 스푸프(spoof)될 수 없는 데이터의 교환을 가능하게 하는 디바이스를 사용하여 암호화 세션을 성립하는 것을 요구한다. In at least one embodiment,
디바이스를 식별하고 동시에 암호화 세션을 성립하는 종래의 한가지 방법은 일방이 인증된 DH 키 교환 프로세스를 사용한다는 것이다. 이 프로세스에서, 디바이스에는 고유의 공개/비밀 RSA 또는 ECC 키 쌍이 할당된다. 디바이스는 비밀키를 유지하고 보호하지만, 공개키는 인증서를 인증함과 함께 소프트웨어 모듈에 공개될 수 있다. DH 키 교환 프로세스 동안, 디바이스는 비밀키를 이용하여 메시지에 서명하고, 소프트웨어 모듈은 대응하는 공개키를 이용하여 이를 검증할 수 있다. 이에 의해 소프트웨어 모듈은 메시지가 관심 디바이스로부터 사실상 유래하였다는 것을 인증할 수 있다. One conventional method of identifying a device and at the same time establishing an encryption session is that one uses an authenticated DH key exchange process. In this process, the device is assigned a unique public / secret RSA or ECC key pair. The device maintains and protects the private key, but the public key can be disclosed to the software module with authenticating the certificate. During the DH key exchange process, the device signs the message using the private key, and the software module can verify it using the corresponding public key. This allows the software module to authenticate that the message actually originated from the device of interest.
그러나, 이 인증 프로세스가 RSA 또는 ECC 키를 사용하기 때문에, 디바이스는 고유하고 증명가능한 아이덴티티를 구비한다. 디바이스가 비밀키로 메시지에 서명하도록 할 수 있는 임의의 소프트웨어 모듈은 이러한 특정의 고유 디바이스카 컴퓨터 시스템에 존재한다는 것을 검증할 수 있다. 디바이스들이 프로세싱 시스템들 간에 거의 이동하지 않는다고 가정하면, 이 또한 증명가능한 고유의 컴퓨터 시스템 아이덴티티를 나타낸다. 또한, 디바이스의 공개키 자체는 일정한 고유값, 효과적으로는 영구적인 "쿠키"를 나타낸다. 일부의 경우에, 이들 특성은 중요한 프라이버시 문제로서 해석될 수 있다.However, because this authentication process uses an RSA or ECC key, the device has a unique and verifiable identity. Any software module that can allow a device to sign a message with a secret key can verify that it exists in this particular unique device car computer system. Assuming that devices rarely move between processing systems, this also represents a verifiable unique computer system identity. In addition, the device's public key itself represents a constant unique value, effectively a permanent "cookie". In some cases, these characteristics can be interpreted as important privacy issues.
대안적인 하나의 접근법은, 본 출원인에 양도되고, 2004/?/?에 출원되었으며 발명의 명칭이 "An Apparatus and Method for Establishing an Authenticated Encryped Session with a Device Without Exposing Privacy-Sensitive information"로서 공동 계류중인 미국 특허 출원 번호 10/???,???에 개시되어 있다. 이 접근법에서, 일방이 인증된 DH 프로세스에서의 RSA 또는 ECC 키의 사용은 직접 증명 키로 대체된다. 이 접근법을 사용하는 디바이스는 디바이스의 특정 패밀리에 속하는 것으로 인증될 수 있고, 이는 디바이스의 거동 또는 신뢰감에 관한 보장을 포함할 수 있다. 상기 접근법은 프로세싱 시스템을 나타내는 고유의 아이덴티티를 성립하는데 사용될 수 있는 임의의 고유 식별 정보를 노출하지 않는다.One alternative approach is assigned to the Applicant, filed on 2004 /? /? And co-pending with the name "An Apparatus and Method for Establishing an Authenticated Encryped Session with a Device Without Exposing Privacy-Sensitive information". US Patent Application No. 10 / ???, ???. In this approach, the use of RSA or ECC keys in one-sided authenticated DH processes is replaced with direct proof keys. Devices using this approach may be authenticated as belonging to a particular family of devices, which may include a guarantee regarding the behavior or reliability of the device. The approach does not expose any unique identifying information that may be used to establish a unique identity representing the processing system.
이 접근법이 양호하게 동작하더라도, RSA 또는 ECC 키보다 더 클수 있는 직접 증명 비밀키를 유지하기 위해 디바이스에 부가의 저장소가 필요하게 된다. 이러한 부가의 저장소 요구사항의 부담을 완화하기 위해, 본 발명의 실시예는 상기 키가 필요할 때, 디바이스에 실질적인 부가의 저장소를 요구하지 않고, 상기 디바이스가 직접 증명 비밀키를 갖는 것을 보장하는 시스템 및 프로세스를 정의한다. Although this approach works well, additional storage is needed on the device to maintain the direct proof secret key, which can be larger than the RSA or ECC key. In order to alleviate the burden of such additional storage requirements, embodiments of the present invention provide a system that, when the key is needed, does not require substantial additional storage on the device, and ensures that the device has a proof private key directly; Define the process.
본 발명의 적어도 일 실시예에서, 디바이스 제조자는 제조 라인에서 128 비트의 의사 난수를 디바이스에 저장하지고, 보다 큰 직접 증명 비밀키(DPpri)는 암호화되어 보호 서버에 의해 동작되는 온라인 서비스를 이용하여 필드에 있는 디바이스에 전달될 수 있다. 다른 실시예에서는 128 비트보다 길거나 더 짧은 수를 디바이스에 저장할 수 있다. 이 프로세스는 단지 특정의 디바이스만이 할당된 DPpri 키를 복호화하여 사용할 수 있다는 것을 보장한다. 도 5는 본 발명의 실시예에 따라 직접 증명 키를 배포하는 시스템(500)의 도면이다. 이 시스템에는 네개의 엔티티, 즉, 디바이스 제조 보호 시스템(502), 디바이스 제품 제조 시스템(503), 클라이언트 컴퓨터 시스템(504) 및 보호 서버(522)가 있다. 디바이스 제조 보호 시스템은 디바이스(506) 제조에 앞서 셋업 프로세스에서 사용되는 프로세싱 시스템을 포함한다. 제조 보호 시스템(502)은, 그 보호 시스템이 디바이스 제조처(예를 들면, 닫힌 시스템임) 외부의 해커 공격으로부터 보호되도록 디바이스 제조자에 의해 동작될 수 있다. 제품 제조 시스템(503)은 디바이스의 제조시에 사용될 수 있다. 일 실시예에서, 보호 시스템 및 제품 시스템은 동일 시스템일 수 있다. 디바이스(506)는 클라이언트 컴퓨터 시스템(예를 들면, 메모리 컨트롤러, 그래픽 컨트롤러 같은 주변 디바이스, I/O 디바이스 등)에 포함하기 위한 임의의 하드웨어를 포함한다. 본 발명의 실시예에서, 디바이스는 그 디바이스의 비휘발성 저장소에 저장된 의사 난수값 RAND(508)와 키 서비스 공개키 해시값(509)을 포함한다.In at least one embodiment of the present invention, the device manufacturer does not store 128-bit pseudorandom numbers on the device in the manufacturing line, and a larger direct proof secret key (DPpri) is encrypted using an online service operated by a protection server. It can be delivered to the device in the field. In other embodiments, the device may store a number longer or shorter than 128 bits. This process ensures that only certain devices can decrypt and use the assigned DPpri key. 5 is a diagram of a
제조 보호 시스템은 보호 데이터베이스(510)와 생성 함수(512)를 포함한다. 보호 데이터베이스는 후술되는 방식으로 생성 함수(512)에 의해 생성되는 (제조될 디바이스당 적어도 하나 만큼의) 다수의 의사 난수값을 저장하는 데이터 구조를 포함한다. 생성 함수는 본 명세서에서 키블로브(514)로 칭해지는 데이터 구조를 생성하기 위한 (소프트웨어 또는 하드웨어에서 구현되는) 로직을 포함한다. 키블로브(514)는 적어도 세개의 아이템을 포함한다. 고유의 직접 증명 비밀키(DPpri)는 서명을 위해 디바이스에 의해 사용될 수 있는 암호화 키를 포함한다. DP 비밀 다이제스트(516)(DPpri 다이제스트)는 SHA-1 같은 보안 메시지 다이제스트를 생성하는 임의의 공지된 방법에 따른 DPpri의 메시지 다이제스트를 포함한다. 일부 실시예에서는 호환 목적을 위해 키블로브의 일부로서 비트 스트림을 포함하는 의사 난수 초기화 벡터(IV, 518)가 포함될 수 있다. 암호화용으로 스트림 암호가 사용되면, IV는 스트림 암호에 IV를 사용하기 위한 공지된 방법에서 사용된다. 암호화용으로 블록 암호가 사용되면, IV는 암호화될 메시지의 부분으로서 사용되어, 암호화의 각 인스턴스를 상이하게 되도록 한다. 제조 보호 시스템은 또한 이후에 상세히 설명되는 바와 같이 온라인 프로토콜용으로 사용되는 키 서비스 공개키(507)를 포함한다.The manufacturing protection system includes a
본 발명의 일 실시예에서, 제조 보호 시스템은 하나 이상의 키블로브(이후 상세히 설명됨)를 생성하고 그 키블로브를 보호 서버(522) 상의 키블로브 데이터베이스(520)에 저장한다. 일 실시예에서, 키블로브 데이터베이스에는 다수의 키블로브가 존재할 수 있다. 보호 서버는 디바이스 제조자, 디바이스 판매자, 또는 기타 관계자에 의해 동작될 수 있다. 보호 서버는, 예를 들면, 인터넷과 같은 네트워크를 사용하여 클라이언트 컴퓨터 시스템(504)에 통신적으로 접속될 수 있다. 보호 서버는 또한 보호 서버와 디바이스 간 온라인 프로토콜에 사용하기 위한 키 서비스 비밀키(511)를 포함한다.In one embodiment of the invention, the manufacturing protection system generates one or more keyblobs (described in detail below) and stores the keyblobs in the
시스템(504) 내에 포함된 디바이스(506)와 통신 세션의 키 교환 및 인증을 위한 직접 증명 프로토콜을 사용하고 하고자 하는 클라이언트 컴퓨터 시스템(504)은 후술되는 키 서비스 공개/비밀키 쌍 및 온라인 프로토콜을 사용하여 보호 서버 상의 키블로브 데이터베이스(520)에서 선택된 키블로브(514)를 판독할 수 있다. 디바이스는 키블로브 데이터를 사용하여, 직접 증명 프로토콜 구현시 사용하기 위한 (후술되는 바와 같이) 로컬화 키블로브(524)를 생성한다. 디바이스 드라이버 소프트웨어(526)는 클라이언트 컴퓨터 시스템에 의해 실행되어 디바이스(506)를 초기화하고 제어한다.A
본 발명의 실시예에서는 다섯개의 개별 단계의 동작이 있을 수 있다. 도 6은 본 발명의 실시예에 따라 직접 증명 키를 배포하는 방법의 단계를 설명하는 흐름도(600)이다. 본 발명의 실시예에 따라, 각 단계에서 임의의 액션이 실행될 수 있다. 디바이스 제조자의 현장에서는 적어도 세개의 단계, 즉, 보호 서버 셋업 단계(601), 디바이스 제조자 셋업 단계(602) 및 제품 제조 단계(604)가 있다. 보호 서버 셋업 단계는 본 명세서에서 도 7을 참조하여 설명된다. 디바이스 제조자 셋업 단계는 본 명세서에서 도 8을 참조하여 설명된다. 디바이스 제조자 제조 단계는 본 명세서에서 도 9를 참조하여 설명된다. 클라이언트 컴퓨터 시스템을 구비한 소비자 현장에서는 적어도 두개의 단계, 즉, 클라이언트 컴퓨터 시스템 셋업 단계(606) 및 클라이언트 컴퓨터 시스템 사용 단계(608)가 있다. 클라이언트 컴퓨터 시스템 셋업 단계는 본 명세서에서 도 10 내지 도 12를 참조하여 설명된다. 클라이언트 컴퓨터 시스템 사용 단계는 본 명세서에서 도 13을 참조하여 설명된다.In an embodiment of the present invention, there may be five separate steps of operation. 6 is a flow diagram 600 illustrating the steps of a method for directly distributing an attestation key in accordance with an embodiment of the present invention. According to embodiments of the present invention, any action may be executed at each step. At the device manufacturer's site, there are at least three steps: protection
도 7은 본 발명의 실시예에 따른 보호 서버 셋업 단계 프로세싱을 설명하는 흐름도(700)이다. 이 프로세싱은 디바이스 제조에 앞서 디바이스 제조자에 의해 실행될 수 있다. 블록(702)에서, 디바이스 제조자는 키 검색 요청을 지원하기 위한 보호 서버(522)를 설립한다. 일 실시예에서, 보호 서버는 공지된 방식으로 인터넷에 통신적으로 접속되어 있다. 보안을 향상하기 위해, 보호 서버는 제조 보호 시스템 또는 제품 제조 시스템에 사용되는 프로세싱 시스템과 동일하여서는 안된다. 블록(704)에서, 디바이스 제조자는 보호 서버가 제공하는 키 검색 서비스용으로 사용될 키 서비스 공개/비밀키 쌍을 생성한다. 일 실시예에서, 키 서비스 공개/비밀키 쌍은 보호 서버에 저장될 수 있다. 이러한 키 쌍은 시스템에 의해 수행되는 모든 프로세싱에 대하여 한 번 생성될 수 있거나, 또는 디바이스의 각 클래스에 대하여 새로운 키 쌍이 생성될 수 있다. 블록(706)에서, 디바이스 제조자는 키 서비스 공개키(507)를 제조 보호 시스템(502)에 전달한다.7 is a
도 8은 본 발명의 실시예에 따른 디바이스 제조 셋업 프로세싱을 도시하는 흐름도(800)이다. 일 실시예에서, 디바이스 제조자는 제조 보호 시스템(502)을 사용하여 이들 액션을 수행할 수 있다. 블록(802)에서, 디바이스 제조자는 제조될 디바이스의 각 클래스에 대하여 직접 증명 패밀리 키 쌍(Fpub 및 Fpri)을 생성한다. 고유의 디바이스 각각은, DPpri를 사용하여 생성된 서명이 Fpub에 의해 검증될 수 있도록 DPpir 키를 구비할 것이다. 디바이스의 클래스는 선택된 제품 라인(즉, 디바이스 유형)과 같은 디바이스의 임의의 세트 또는 서브세트, 또는 버전 넘버에 기초한 제품 라인의 서브셋, 또는 디바이스의 다른 특징을 포함할 수 있다. 패밀리 키 쌍은 생성된 디바이스의 클래스가 사용하기 위한 것이다.8 is a
제조될 각 디바이스에 대하여, 제조 보호 시스템(502)의 생성 함수(512)는 블록(804) 내지 블록(820)을 수행한다. 우선, 블록(804)에서, 생성 함수는 고유의 의사 난수값(RAND, 508)을 생성한다. 일 실시예에서, RAND의 길이는 128 비트이다. 다른 실시예에서는 다른 크기의 값이 사용될 수 있다. 일 실시예에서, 다수의 디바이스에 대한 의사 난수 값이 미리 생성될 수 있다. 블록(806)에서, 디바이스에 의해 지원되는 일방 함수(f)를 사용하여, 생성 함수는 고유 RAND 값으로부터 대칭 암호화 키(SKEY)를 생성한다(SKEY=f(RAND)). 일방 함수는 이러한 목적에 적당한 임의의 공지된 알고리즘(예를 들면, SHA-1, MGF1, 데이터 암호화 표준(DES), 트리플 DES, 어드밴스트 암호화 표준(AES) 등)일 수 있다. 블록(808)에서, 일 실시예에서, 생성 함수는 "널(null) 엔트리"(예를 들면, 작은 수의 제로 바이트)를 암호화하기 위해 SKEY를 사용함으로써 보호 서버(522) 상의 키블로브 테이터베이스(520)에 있는 이 디바이스의 키블로브(514)를 참조하도록 사용될 식별자(ID) 레이블(label)을 생성한다(SKEY를 사용하여 디바이스 ID=Encrypt (0..0)). 다른 실시예에서, 디바이스 ID를 생성하는 다른 방식이 사용될 수 있고, SKEY에 의해 다른 값이 암호화될 수 있다.For each device to be manufactured, the
다음에, 블록(810)에서, 생성 함수는 디바이스의 패밀리 공개키(Fpub)와 상관있는 DP 비밀 서명키(DPpri)를 생성한다. 블록(812)에서, 생성 함수는 공지된 방법을 사용하여(예를 들면, SHA-1 또는 다른 해시 알고리즘을 사용하여) DPpri 다이제스트를 생성하기 위해 DPpri를 해싱한다(hash). 블록(814)에서, 생성 함수는 디바이스에 대한 키블로브 데이터 구조를 구축한다. 키블로브는 적어도 DPpri 및 DPpri 다이제스트를 포함한다. 일 실시예에서, 키블로브는 또한 복수의 의사 무작위적으로 생성된 비트를 갖는 무작위 초기화 벡터(IV)를 포함한다. 이들 값은 SKEY를 사용하여 암호화되어 암호화된 키블로브(514)를 생성한다. 블록(816)에서, 블록(808)에서 생성된 디바이스 ID와 블록(814)에서 생성된 암호화된 키블로브(514)가 키블로브 데이터베이스(520)의 엔트리에 저장될 수 있다. 일 실시예에서, 키블로브 데이터베이스의 엔트리는 디바이스 ID에 의해 지시될 수 있다. 블록(818)에서, 현재의 RAND 값이 보호 데이터베이스(510)에 저장될 수 있다. 블록(820)에서, SKEY 및 DPpri이 필드의 디바이스에 의해 재생될 것이기 때문에, 이들은 삭제될 수 있다.Next, at
DPpri 다이제스트의 생성 및 SKEY에 의한 후속 암호화는, DPpri의 콘텐츠가 SKEY를 소유하지 않은 임의의 엔티티에 의해 결정될 수 없도록, 그리고, SKEY를 소유하지 않은 엔티티에 의한 후속 검출없이 키블로브의 콘텐츠가 SKEY를 소유하지 않은 엔티티에 의해 수정될 수 없도록 설계된다. 다른 실시예에서, 이러한 비밀성 및 무결성 보호를 제공하는 다른 방법을 사용할 수 있다. 몇몇 실시예에서, 무결성 보호가 요구되지 않을 수 있으며, 단지 비밀성만을 제공하는 방법이 사용될 수 있다. 이 경우에, DPpri 다이제스트 값이 반드시 필요한 것은 아니다.The creation of a DPpri digest and subsequent encryption by the SKEY ensures that the content of the DPpri cannot be determined by any entity that does not own the SKEY, and that the content of the keyblob is SKEY without subsequent detection by the entity that does not own the SKEY. It is designed so that it cannot be modified by an entity that does not own it. In other embodiments, other methods of providing such confidentiality and integrity protection may be used. In some embodiments, integrity protection may not be required, and methods that provide only confidentiality may be used. In this case, the DPpri digest value is not necessarily required.
블록(820) 후의 임의의 시간에, 블록(822)에서, RAND 값의 보호 데이터베이스는 제조 프로세스 동안 디바이스에 RAND 값을 저장할 제품 제조 시스템(503)에 보안적으로 업로드될 수 있다. 이러한 업로드가 검증되었으면, RAND 값은 제조 보호 시스템(502)으로부터 보안적으로 삭제될 수 있다. 마지막으로, 블록(824)에서, 복수의 암호화 키블로브를 구비한 키블로브 데이터베이스(520)는, 디바이스 ID 필드에 의해 인덱스되는 바와 같이, 각 디바이스에 대하여 하나의 키블로브 데이터베이스 엔트리가 사용되도록 하면서, 보호 서버(522) 상에 저장될 수 있다.At any time after
도 9는 본 발명의 실시예에 따른 디바이스 제품 제조 프로세싱을 설명하는 흐름도(900)이다. 제품 라인에서 디바이스가 제조됨에 따라, 블록(902)에서, 제품 제조 시스템은 보호 데이터베이스로부터 미사용 RAND 값을 선택한다. 그 후, 선택된 RAND 값은 디바이스에 있는 비휘발성 저장소에 저장될 수 있다. 일 실시예에서, 비휘발성 저장소는 TPM을 포함한다. 일 실시예에서, RAND 값은 대략 16 바이트의 비휘발성 저장소에 저장될 수 있다. 블록(904)에서, 키 서비스 공개키(507)의 해시(509)가 디바이스의 비휘발성 저장소에 저장될 수 있다. 이 해시는 임의의 공지된 해싱 알고리즘을 사용하여 생성될 수 있다. 일 실시예에서, 해시 값은 대략 20 바이트의 비휘발성 저장소에 저장될 수 있다. 블록(906)에서, RAND 값을 성공적으로 저장하였다면, 제품 제조 시스템은 보호 데이터베이스(510)에 있는 그 디바이스의 RAND 값의 임의의 레코드를 파괴한다. 이 때, RAND 값의 유일한 사본이 디바이스에 저장된다.9 is a
대체 실시예에서, RNAD 값은 디바이스의 제조 동안 생성될 수 있고, 그 다음에 키블로브의 계산을 위해 제조 보호 시스템으로 전송된다.In an alternate embodiment, RNAD values may be generated during manufacture of the device and then sent to the manufacturing protection system for calculation of the kiblob.
또 다른 실시예에서, RAND 값은 디바이스 상에 생성될 수 있고, 디바이스 및 제조 보호 시스템은 DPpri 키를 그 디바이스의 외부로 누설하지 않는 방법을 사용하여 DPpri 키를 생성하도록 프로토콜을 취급할 수 있다. 다음에, 디바이스는 디바이스 ID, SKEY 및 키블로브를 생성할 수 있다. 디바이스는 보호 데이터베이스(510)에 저장하기 위해 디바이스 ID 및 키블로브를 제조 시스템으로 전달할 수 있다. 이 방법에서, 제조 시스템은 결국 보호 데이터베이스에 있는 동일한 정보(디바이스 ID, 키블로브)를 갖게 되지만, RAND 값 또는 DPpri 값을 알지는 못한다.In another embodiment, the RAND value may be generated on a device, and the device and manufacturing protection system may handle the protocol to generate the DPpri key using a method that does not leak the DPpri key out of the device. The device may then generate a device ID, SKEY and keyblob. The device may pass the device ID and keyblob to the manufacturing system for storage in the
도 10 내지 도 12는 본 발명의 실시예에 따른 클라이언트 컴퓨터 시스템 셋업 프로세싱의 흐름도이다. 클라이언트 컴퓨터 시스템은 이들 액션을 시스템 부팅 부분으로 수행한다. 도 10의 흐름도(1000)를 시작하면서, 블록(1002)에서, 클라이언트 컴퓨터 시스템은 정규 방식으로 부팅될 수 있고, 디바이스용 디바이스 드라이버 소프트웨어 모듈(526)이 클라이언트 컴퓨터 시스템의 주 메모리에 로딩될 수 있다. 디바이스 드라이버가 초기화되고 실행을 시작할 때, 디바이스 드라이버는 블록(1004)에서 디바이스(506)용 대용량 저장 디바이스(308)에 암호화 로컬 키블로브(524)가 이미 저장되어 있는지를 판정한다. 이미 저장되어 있다면, 더 이상의 셋업 프로세싱이 수행될 필요가 없고, 셋업 프로세싱은 블록(1006)에서 종료한다. 만약 저장되어 있지 않다면, 프로세싱은 블록(1008)에서 계속된다. 블록(1008)에서, 디바이스 드라이버는 키 획득 커맨드를 디바이스(506)에 송출하여 디바이스의 DP 비밀키 획득 프로세스를 시작한다. 10-12 are flowcharts of client computer system setup processing in accordance with an embodiment of the present invention. The client computer system performs these actions as part of the system boot. Beginning with the
블록(1010)에서, 디바이스 드라이버는 키 서비스 공개키(507)를 디바이스로 전송한다. 블록(1014)에서, 디바이스는 수신된 키 서비스 공개키를 추출하고, 그 키 서비스 공개키의 해시값을 생성하여, 수신된 키 서비스 공개키의 해시를 디바이스의 비휘발성 저장소에 저장된 키 서비스 공개키 해시(509)와 비교한다. 해시가 일치하면, 수신된 키 서비스 공개키는 디바이스 제조자의 키 검색 서비스의 키인 것으로 공지되고, 클라이언트 컴퓨터 시스템 셋업 프로세싱은 계속된다.At
또 다른 실시예에서, 디바이스는 인증 키 서비스 공개키의 인증서를 수신할 수 있으며, 그 인증서는 해시가 디바이스의 비휘발성 저장소에 저장된 키 서비스 공개키 해시(509)인 키 서비스 공개키에 대한 인증서 체인을 통해 검증될 수 있다. 다음에, 인증 키 서비스 공개키는 후속 단계에서 키 서비스 공개키로서 사용될 수 있다.In another embodiment, the device may receive a certificate of an authentication key service public key, which certificate chain is a certificate chain for a key service public key whose hash is a key service public
블록(1018)에서, 디바이스는 일방 함수(f)를 사용하여, 내장된 RAND 값(508)으로부터 대칭키 SKEY를 재생성한다(SKEY=f(RAND)). 블록(1020)에서, 디바이스는 SKEY를 사용하여 "널 엔트리"(예를 들면, 소수의 제로 바이트)를 암호화함으로써 자신의 고유의 디바이스 ID 레이블을 생성한다(SKEY를 사용하여 디바이스 ID=Encrypt(0..0)). 프로세싱은 도 11의 흐름도(1100)에서 계속된다.At
도 11의 블록(1102)에서, 디바이스는 과도 대칭키(Tkey)를 생성한다. 이 키는 보호 서버로 송신되며, 그 보호 서버는 이 키를 이용하여 보호 서버가 디바이스로 리턴한 메시지를 암호화할 수 있다. 블록(1104)에서, 디바이스는 디바이스 ID 및 과도 대칭키(Tkey)를 포함하는 검색 키 요청 메시지를 구축하고, 블록(1014)에서 디바이스 드라이브로부터 수신된 키 서비스 공개키를 이용하여 메시지를 암호화하며, 디바이스 드라이버를 경유하여 검색 키 요청 메시지를 보호 서버로 전송한다. (키 서비스 공개키를 이용하여, 검색키 요청(Retrieve Key Request)= Encrypt(Device ID, Tkey)). 당해 분야에 능숙한 자는, 공개키를 이용하여 메시지를 암호화하기 위해, 전형적으로 대칭 암호용 세션키(Skey)를 생성하고, 그 공개키를 이용하여 세션키를 암호화한 다음, 그 세션키를 이용하여 메시지를 암호화한다는 것을 인식할 수 있을 것이다. 블록(1106)에서, 보호 서버는 키 서비스 비밀키(511)를 사용하여 수신된 키 요청 메시지를 복호화하고, 그 메시지 내에 저장된 필드를 추출한다. 보호 서버가 (키 요청 메시지로부터 얻어진) 디바이스 ID를 이제 알기 때문에, 보호 서버는 정합하는 디바이스 ID 값을 포함하는 레코드에 대한 키블로브 데이터베이스를 검색하고, 그 레코드로부터 디바이스의 암호화된 키블로브를 추출한다. 블록(1110)에서, 보호 서버는 패밀리 공개키 및 암호화된 키블로브를 포함하는 제 2 응답 메시지를 구축하고, 디바이스가 공급한 과도 대칭키(Tkey)를 사용하여 제 2 응답 메시지를 암호화한다. 따라서, 키 응답 = (패밀리 공개키, Tkey를 사용한 (암호화된 키블로브)의 암호화). 암호화된 키블로브는 대칭키(SKEY)로 이미 암호화되어, 단지 디바이스만이 재생할 수 있기 때문에, Tkey를 사용하여 암호화된 키블로브를 암호화하는 것이 키블로브를 보호하는 것은 아니다. 오히려, 이러한 방식으로 암호화하는 것에 의해, 키 획득 프로세스가 수행될 때마다 리턴된 키블로브가 확실히 변경되도록 함으로써, 키블로브 자체가 "쿠키"로서 확실히 사용될 수 없도록 한다. 제 2 응답 메시지는 블록(1112)에서 클라이언트 컴퓨터 시스템 상의 디바이스 드라이버로 리턴될 수 있으며, 이 드라이버는 메시지를 디바이스로 포워딩한다.In
블록(114)에서, 디바이스는 제 2 응답 메시지로부터 패밀리 공개키를 추출하고, 과도 대칭키(Tkey)를 사용하여 래핑된(wrapped) 키블로브를 복호화하며, 암호 키블로브를 디바이스의 휘발성 메모리에 저장한다. 다음에, 프로세싱은 도 12의 흐름도(1200)에서 계속된다.In block 114, the device extracts the family public key from the second response message, decrypts the wrapped keyblob using a transient symmetric key (Tkey), and converts the cryptographic keyblob to the device's volatile memory. Store in Next, processing continues in flow diagram 1200 of FIG. 12.
도 12의 블록(1216)에서, 디바이스는 대칭키 SKEY를 사용하여 암호 키블로브를 복호화하여, DPpri 및 DPpri 다이제스트를 산출하고, 이들 값을 비휘발성 저장소에 저장한다(SKEY를 사용하여 복호화된 키블로브 = Decrypt(IV, DPpri, DPpri Digest)). 초기화 벡터(IV)는 폐기될 수 있다. 블록(1218)에서, 디바이스는 DPpri를 해시하고 그 결과를 DPpri 다이제스트에 비교함으로써 DPpri의 무결성을 체크한다. 비교 결과가 양호하면, 디바이스는 DPpri를 유효 키로서 수용한다. 디바이스는 또는 키 획득 플래그를 참(true)으로 설정하여, DP 비밀키가 성공적으로 획득되었다는 것을 지시할 수 있다. 블록(1220)에서, 디바이스는 새로운 IV를 선택하고, 새로운 IV를 사용하여 새로운 암호화 로컬 키블로브를 생성한다(SKEY를 사용하여 로컬 키블로브=Encrypt(IV2, DPpri, DPpri Digest)). 일 실시예에서, 새로운 암호화 로컬 키블로브는 클라이언트 컴퓨터 시스템 상의 키 검색 유틸리티 소프트웨어 모듈(도 5에는 도시되지 않음)로 리턴될 수 있다. 블록(1222)에서, 키 검색 유틸리티는 암호화된 로컬 키블로브를 클라이언트 컴퓨터 시스템 내의 (예를 들면, 대량 저장 디바이스(308) 같은) 저장소에 저장한다. 디바이스의 DPpri는 이제 클라이언트 컴퓨터 시스템에 보안적으로 저장된다.In
디바이스가 셋업 프로세싱 동안 DPpri를 획득하였으면, 디바이스는 DPpri를 사용할 수 있다. 도 13은 본 발명의 일 실시예에 따른 클라이언트 컴퓨터 시스템의 흐름도(1300)이다. 클라이언트 컴퓨터 시스템은 셋업이 완료된 후에 언제라도 이들 액션을 수행할 수 있다. 블록(1302)에서, 클라이언트 컴퓨터 시스템은 정규의 방식으로 부팅될 수 있고 디바이스용 디바이스 드라이버(526)가 주 메모리로 로딩될 수 있다. 디바이스 드라이버가 초기화되어 실행을 시작할 때, 디바이스 드라이버는, 디바이스(506)에 대하여 대용량 저장 디바이스(308)에 저장된 암호화 로컬 키블로브(524)가 이미 존재하는지를 판정한다. 키블로브가 존재하지 않는다면, 도 10 내지 도 12의 셋업 프로세싱이 수행된다. 이 디바이스에 이용가능한 암호화 로컬 키블로브가 존재한다면, 프로세싱은 블록(1306)으로 계속된다. 블록(1306)에서, 디바이스 드라이버는 암호화 로컬 키블로브를 검색하고 키블로브를 디바이스로 전달한다. 일 실시예에서, 키블로브의 전달은 Load Keyblob 커맨드를 실행함으로써 달성될 수 있다.If the device acquired DPpri during setup processing, the device can use DPpri. 13 is a
블록(1308)에서, 디바이스는 일방 함수(f)를 사용하여 내장된 RAND 값(508)으로부터 대칭키 SKEY(이제는 복호화용으로 사용됨)를 재생성한다(SKEY=f(RAND)). 블록(1310)에서, 디바이스는 대칭키 SKEY를 사용하여 암호화 로컬 키블로브를 복호화하여, DPpri 및 DPpri 다이제스트를 산출하고, 이들 값을 비휘발성 저장소에 저장한다(SKEY를 사용하여 복호화된 키블로브=Decrypt(IV2, DPpri, DPpri Digest)). 제 2 초기화 벡터(IV2)는 폐기될 수 있다. 블록(1312)에서, 디바이스는 DPpri를 해싱하고 그 결과를 DPpri 다이제스트와 비교함으로써 DPpri의 무결성을 체크한다. 비교 결과가 양호하면(예를 들면, 다이제스트가 정합하면), 디바이스는 보다 조기에 획득된 유효키로서 DPpri를 수용하고, 사용을 위해 그 DPpri를 인에이블시킨다. 디바이스는 또한 키 획득 플래그를 참으로 설정하여 DP 비밀키가 성공적으로 획득되었다는 것을 지시할 수 있다. 블록(1314)에서, 디바이스는 또 다른 IV를 선택하고 새로운 IV를 사용하여 새로운 암호화 로컬 키블로브를 생성한다(SKEY를 사용하여 로컬 키블로브=Encrypt(IV3, DPpri, DPpri Digest)). 암호화된 새로운 로컬 키블로브는 키 검색 유틸리티로 리턴될 수 있다. 블록(1316)에서, 키 검색 유틸리티는 암호화 로컬 키블로브를 클라이언트 컴퓨터 시스템 내의 (예를 들면, 대용량 저장 디바이스(308) 같은) 저장소에 저장한다. 디바이스의 DPpri는 이제 클라이언트 시스템에 다시 한번 보안적으로 저장된다.At
본 발명의 일 실시예에서는, 한번에 모든 디바이스 DP 비밀키를 생성할 필요는 없다. 보호 서버 상의 키블로브 데이터베이스가 정규적으로 업로드된다고 가정하면, 디바이스 DP 비밀키는 필요에 따라 배치로 생성될 수 있다. 키블로브 데이터베이스가 보호 서버상에서 업로드될 때마다, 생성되었지만 디바이스에는 아직 할당되지 않은 디바이스 키를 포함하는, 지금까지 생성된 대로 키블로브 데이터베이스를 포함할 것이다.In one embodiment of the invention, it is not necessary to generate all the device DP secret keys at once. Assuming that the keyblob database on the protection server is uploaded regularly, the device DP secret key can be generated in batch as needed. Each time the keyblob database is uploaded on the protection server, it will include the keyblob database as it is created so far, including device keys that have been generated but not yet assigned to the device.
또 다른 실시예에서, 키를 요구하는 디바이스에 대해서만 이들 키를 생성하도록 하면서, 디바이스의 DPpri 키의 생성을 지연하는 것도 가능하다. 디바이스로부터 제 1 키 획득 요청을 수신하면, 보호 서버는 디바이스의 RAND 값을 여전히 유지하는 보호 제조 시스템에 요청을 생성한다. 이 때, 제조 보호 시스템은 디바이스에 대한 DPpri 키를 생성하고, 이 키를 보호 서버로 리턴한 후, RAND 값만을 파괴한다.In another embodiment, it is also possible to delay the generation of the device's DPpri key while only generating these keys for devices that require keys. Upon receiving the first key acquisition request from the device, the protection server generates a request to the protection manufacturing system that still maintains the device's RAND value. At this time, the manufacturing protection system generates a DPpri key for the device, returns this key to the protection server, and then destroys only the RAND value.
또 다른 실시예에서, 키 서비스 공개키 해시를 디바이스의 비휘발성 저장소에 저장하는 대신, 디바이스 제조자는 루트(root) 키의 해시를 저장한 후, 이 루트 키로 키 서비스 공개키에 대한 인증서에 서명하도록 선택할 수 있다. 이 방식에서, 대규모 수의 디바이스에 대하여 동일한 루트 키를 사용할 수 있다.In another embodiment, instead of storing the key service public key hash in the device's nonvolatile storage, the device manufacturer stores the hash of the root key and then signs the certificate for the key service public key with this root key. You can choose. In this way, the same root key can be used for a large number of devices.
본 명세서에 논의된 동작이 순차 프로세스로 설명되었지만, 일부의 동작은 사실상 병렬로 또는 동시에 수행될 수 있다. 부가하여, 일부 실시예에서, 동작의 순서는 본 발명의 범위를 벗어나지 않고 재조정될 수 있다.Although the operations discussed herein have been described in sequential processes, some of the operations may be performed in parallel or concurrently. In addition, in some embodiments, the order of the operations may be readjusted without departing from the scope of the present invention.
본 명세서에서 설명된 기술은 임의의 특정 하드웨어 또는 소프트웨어 구성으로 한정되는 것은 아니다, 이 기술은 임의의 컴퓨팅 또는 프로세싱 환경에서 적용가능성을 찾을 수 있다. 이 기술은 하드웨어, 소프트웨어 또는 그 둘의 조합으로 구현될 수 있다. 이 기술은 모바일 또는 고정 컴퓨터, 개인 휴대 단말 장치, 셋톱 박스, 셀룰러 전화 및 페이저 같은 프로그램가능 머신, 및 각각 프로세서, 그 프로세서에 의해 판독가능한 (휘발성 및 비휘발성 메모리 및/또는 저장 소자 포함하는)저장 매체, 적어도 하나의 입력 디바이스, 및 하나 이상의 출력 디바이스를 포함하는 다른 전자 디바이스 상에서 실행되는 프로그램으로 구현될 수 있다. 입력 디바이스를 사용하여 입력된 데이터에 프로그램 코드를 적용하여 설명된 기능을 수행하고 출력 정보를 생성한다. 출력 정보는 하나 이상의 출력 디바이스에 제공될 수 있다. 당업자라면 본 발명이 멀티프로세서 시스템, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다양한 컴퓨터 시스템 구성으로 실행될 수 있다는 것을 이해할 수 있을 것이다. 본 발명은 또한 통신 네트워크를 통해 링크된 원격 프로세싱 디바이스에 의해 작업이 수행될 수 있는 분산형 컴퓨팅 환경에서 실행될 수도 있다.The techniques described herein are not limited to any particular hardware or software configuration, which techniques may find applicability in any computing or processing environment. This technique can be implemented in hardware, software or a combination of both. The technology includes programmable machines such as mobile or fixed computers, personal digital assistants, set-top boxes, cellular telephones and pagers, and storage, including volatile and nonvolatile memory and / or storage elements, respectively, by the processor, the processor. It can be implemented as a program running on another medium including a medium, at least one input device, and one or more output devices. Program code is applied to data input using an input device to perform the described functions and to generate output information. Output information may be provided to one or more output devices. Those skilled in the art will appreciate that the present invention may be practiced in a variety of computer system configurations, including multiprocessor systems, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks may be performed by remote processing devices that are linked through a communications network.
각각의 프로그램은 고레벨 절차형 또는 객체 지향형 프로그래밍 언어로 구현되어 프로세싱 시스템과 통신할 수 있다. 그러나, 프로그램은, 원한다면, 어셈블리 또는 기계어로 구현될 수 있다. 어느 경우든, 상기 언어는 컴파일되거나 해석될 수 있다.Each program may be implemented in a high level procedural or object oriented programming language to communicate with a processing system. However, the program can be implemented in assembly or machine language, if desired. In either case, the language can be compiled or interpreted.
프로그램 명령을 사용하여 명령으로 프로그래밍된 범용 또는 특수 목적용 프로세싱 시스템이 본 명세서에서 설명된 동작을 수행하도록 할 수 있다. 대안으로, 동작을 수행하는 배선에 의한 로직을 포함하는 특정 하드웨어 컴포넌트에 의해, 또는 프로그래밍된 컴퓨터 컴포넌트와 맞춤형 하드웨어 컴포넌트의 조합에 의해 동작이 수행될 수 있다. 본 명세서에서 설명된 방법은 프로세싱 시스템을 프로그래밍하는데 사용될 수 있는 명령이 저장된 기계 판독가능 매체를 포함할 수 있는 컴퓨터 프로그램 제품 또는 상기 방법을 수행하기 위한 다른 전자 장치로서 제공될 수 있다. 본 명세서에서 사용되는 용어 "기계 판독가능 매체"는 기계에 의해 실행하기 위한 명령 시퀀스를 저장하거나 인코딩할 수 있고, 본 명세서에서 설명된 방법들 중 어느 한 방법을 기계가 수행할 수 있는 임의의 매체를 포함한다. 따라서, 용어 "기계 판독가능 매체"는 고상(solid-state) 메모리, 광자기 디스크, 및 데이터 신호를 인코딩하는 캐리어 웨이브를 포함하지만, 이에 한정되는 것은 아니다. 또한, 액션을 취하거나 결과를 도출함으로서 하나의 형태 또는 다른 형태(예를 들면, 프로그램, 절차, 프로세스, 애플리케이션, 모듈, 로직 등)를 말하는 것은 본 기술 분야에서는 일반적이다. 그러한 표현은 단순히 프로세서가 결과를 생성하기 위해 액션을 수행하도록 하는 프로세싱 시스템에 의한 소프트웨어의 실행을 진술하는 약식일 뿐이다. Program instructions may be used to cause general purpose or special purpose processing systems programmed with instructions to perform the operations described herein. Alternatively, the operation may be performed by a specific hardware component including logic by wiring to perform the operation, or by a combination of a programmed computer component and a custom hardware component. The method described herein can be provided as a computer program product or other electronic device for performing the method that can include a machine readable medium having stored thereon instructions that can be used to program the processing system. The term "machine-readable medium" as used herein may store or encode a sequence of instructions for execution by a machine, and any medium on which a machine may perform any of the methods described herein. It includes. Thus, the term "machine-readable medium" includes, but is not limited to, solid-state memory, magneto-optical disks, and carrier waves that encode data signals. In addition, it is common in the art to refer to one form or another (eg, program, procedure, process, application, module, logic, etc.) by taking action or producing a result. Such representation is merely a shorthand for stating the execution of the software by the processing system that causes the processor to perform an action to produce a result.
본 발명은 설명된 실시예를 참조하여 설명되었지만, 그러한 설명은 한정적으로 해석되는 것을 의도하는 것은 아니다. 본 발명이 속하는 기술 분야의 당업자에게는 본 발명의 예시적 실시예 뿐만 아니라 다른 실시예의 다양한 수정이 본 발명의 사상 및 범위 내에 있을 것이라는 것은 자명하다.Although the present invention has been described with reference to the described embodiments, such description is not intended to be limiting. It will be apparent to those skilled in the art that various modifications of the exemplary embodiments as well as other embodiments of the present invention will fall within the spirit and scope of the present invention.
Claims (35)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020077003426A KR100883442B1 (en) | 2004-07-14 | 2005-07-08 | Method of delivering direct proof private keys to devices using an on-line service |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/892,256 | 2004-07-14 | ||
KR1020077003426A KR100883442B1 (en) | 2004-07-14 | 2005-07-08 | Method of delivering direct proof private keys to devices using an on-line service |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070032073A KR20070032073A (en) | 2007-03-20 |
KR100883442B1 true KR100883442B1 (en) | 2009-02-11 |
Family
ID=41346453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020077003426A KR100883442B1 (en) | 2004-07-14 | 2005-07-08 | Method of delivering direct proof private keys to devices using an on-line service |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100883442B1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8971530B2 (en) * | 2009-06-24 | 2015-03-03 | Intel Corporation | Cryptographic key generation using a stored input value and a stored count value |
KR102347733B1 (en) * | 2019-09-18 | 2022-01-06 | 유비벨록스(주) | Id issue/authentication system that do not need to manage personal information and secure transaction authentication method thereof |
CN114036565B (en) * | 2021-11-19 | 2024-03-08 | 上海勃池信息技术有限公司 | Private information retrieval system and private information retrieval method |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030043738A (en) * | 2001-11-26 | 2003-06-02 | 마츠시타 덴끼 산교 가부시키가이샤 | Application authentication system |
US20040103281A1 (en) * | 2002-11-27 | 2004-05-27 | Brickell Ernie F. | System and method for establishing trust without revealing identity |
-
2005
- 2005-07-08 KR KR1020077003426A patent/KR100883442B1/en not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030043738A (en) * | 2001-11-26 | 2003-06-02 | 마츠시타 덴끼 산교 가부시키가이샤 | Application authentication system |
US20040103281A1 (en) * | 2002-11-27 | 2004-05-27 | Brickell Ernie F. | System and method for establishing trust without revealing identity |
Also Published As
Publication number | Publication date |
---|---|
KR20070032073A (en) | 2007-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7697691B2 (en) | Method of delivering Direct Proof private keys to devices using an on-line service | |
US11757662B2 (en) | Confidential authentication and provisioning | |
US7693286B2 (en) | Method of delivering direct proof private keys in signed groups to devices using a distribution CD | |
JP4616345B2 (en) | A method for directly distributing a certification private key to a device using a distribution CD | |
US8074265B2 (en) | Methods and systems for verifying a location factor associated with a token | |
CN110401615B (en) | Identity authentication method, device, equipment, system and readable storage medium | |
US20080141027A1 (en) | System and method of providing security | |
CN111614621B (en) | Internet of things communication method and system | |
CN112351037B (en) | Information processing method and device for secure communication | |
KR100883442B1 (en) | Method of delivering direct proof private keys to devices using an on-line service | |
US20210111906A1 (en) | Pseudonym credential configuration method and apparatus | |
KR100897075B1 (en) | Method of delivering direct proof private keys in signed groups to devices using a distribution cd |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130219 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20140203 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20150130 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20160127 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20170201 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |