KR20240045161A - 임시 신뢰점 등록 및 디바이스-구속형 공개 키 등록 - Google Patents

임시 신뢰점 등록 및 디바이스-구속형 공개 키 등록 Download PDF

Info

Publication number
KR20240045161A
KR20240045161A KR1020237036835A KR20237036835A KR20240045161A KR 20240045161 A KR20240045161 A KR 20240045161A KR 1020237036835 A KR1020237036835 A KR 1020237036835A KR 20237036835 A KR20237036835 A KR 20237036835A KR 20240045161 A KR20240045161 A KR 20240045161A
Authority
KR
South Korea
Prior art keywords
certificate
epk
device identifier
electronic device
server
Prior art date
Application number
KR1020237036835A
Other languages
English (en)
Inventor
조앤 우디지
케네스 패터슨
샤흐람 모사예비
Original Assignee
크립토 퀀티크 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 크립토 퀀티크 리미티드 filed Critical 크립토 퀀티크 리미티드
Publication of KR20240045161A publication Critical patent/KR20240045161A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic 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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic 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 digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic 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 validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic 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 challenge-response
    • H04L9/3278Cryptographic 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 challenge-response using physically unclonable functions [PUF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Abstract

등록(enrolment)에 관련되는, 방법들, 장치들, 기기들 및 컴퓨터 판독 가능한 매체가 제공된다. 일 실시예에서, 전자 장치가 제공된다. 상기 전자 장치는 물리적 복제방지 기능(physical unclonable function: PUF)을 갖는 보안 모듈을 포함한다. 상기 보안 모듈은, 상기 PUF에 대한 제1 도전 및 응답에 기초하여, 등록 공개 키(EPK) 및 등록 비밀 키(ESK)를 포함하는 등록 키 쌍(EPK, ESK)을 설정하도록 구성된다. 상기 전자 장치는 하나 또는 다수의 메모리들을 더 포함한다. 상기 전자 장치는, 보안 연결을 통해, 디바이스 식별자 및 상기 EPK를 포함하는 인증서 서명 요청(CSR)을 상기 EPK가 상기 디바이스 식별자와 연관됨을 인증하는 인증서를 위하여 서버로 전송하도록 구성되는 하나 또는 다수의 프로세서들을 더 포함하되, 상기 CSR은 ESK를 이용해 서명되고, 상기 디바이스 식별자는 EPK의 함수에 기초한다. 상기 하나 또는 다수의 프로세서들은, 상기 보안 연결을 통해, 상기 EPK가 상기 디바이스 식별자와 연관됨을 인증하고 유효기간을 포함하는 임시 등록 디바이스 인증서를 수신하도록 추가로 구성된다. 상기 하나 또는 다수의 프로세서들은 상기 임시 등록 디바이스 인증서를 메모리에 설치하도록 추가로 구성된다.

Description

임시 신뢰점 등록 및 디바이스-구속형 공개 키 등록
본 개시는 일반적으로 당사자들 간의 신뢰를 형성하기 위한 방법들 및 시스템들에 관한 것이다. 특히, 본 개시는 암호화 방법(cryptographic methods)들 및 이 방법들을 수행하도록 구성된 컴퓨팅 장치들에 관한 것이다. 본 개시는 많은 장치들 및 네트워크들에 적용 가능하지만, 특히 인터넷 연결 장치들에 적용 가능하다.
인터넷과 같은 네트워크는 일상적인 작업이 수행되는 방식을 변화시켰으며, 이는 정보 보안에 주요한 영향을 미쳐왔다. 많은 일상적인 작업은 디지털 장치가 상대방을 안전하게 인증하고 상대방에 의해 안전하게 인증되거나 및/또는 개인 정보를 안전하게 처리할 것을 요구한다. 사물인터넷(IoT)의 발달과 함께, 난방, 조명 등의 시스템이 인터넷 연결 기기들에 의해 제어되는 것이 보편화되고 있으며, 매년 인터넷에 연결되는 기기가 더욱 늘어나고 있다.
디바이스 인증(device authentication)은 그 디바이스를 신뢰할 수 있음을 보장하도록 해당 디바이스의 신원을 안전하게 설정하는 행위를 의미한다. 어떤 디바이스가 연결되는 서비스(예를 들어, 클라우드-기반 서비스)는 그 디바이스가 정품이고, 신뢰받는 소프트웨어를 실행하고 있으며, 신뢰받는 사용자를 대신하여 작동하고 있다는 것을 알 필요가 있다.
권한설정(provisioning)은 최종 사용자에게 핸드 오프하기에 적합하도록 디바이스를 준비하고 서비스에 등록하는 과정을 지칭한다. 인증(authentication)은 해당 과정의 일부이므로 적절한 크리덴셜(credentials: 자격증명)을 제시하는 디바이스들만 등록된다. 권한설정의 정확한 세부내용은 구현에 입각하여 광범위하게 다를 수 있지만, 대부분의 상황에서, 디바이스에는, 해당 디바이스가 배포될 때(서비스에 연결하기 위해 최종 사용자에게 제공할 준비가 되어 있는 경우) 그것이 적절한 크리덴셜을 제공할 수 있도록, 제조 시점에서 암호키와 인증서가 제공된다.
종종 IoT 장치에서의 임베디드 시스템은 사전-공유 키(pre-shared keys)에 의존하며, 이는 해당 장치들이 인터넷에 연결되고 전세계적으로 주소 지정이 가능해지면 문제가 된다. 사전-공유 키는 장치들의 배포 전에 공유되어야 하며, 일반적으로 중앙집중화 자원이 통신하기 위해서는 각 장치와 키를 공유해야 하므로, 단일 서버 타협(compromise)은 장치들의 네트워크 전체의 보안을 위태롭게 할 수 있다. 더욱이, 이러한 사전-공유 키는 어떠한 통신의 출처 증명(proof-of-origin) 및 접속 제어와 같은 다양한 보안성 보장을 가능하게 하지 않는다.
공개 키 인프라(public key infrastructure: PKI)는 사전-공유 키와의 문제를 해결하는 한 가지 방법을 제공한다. PKI는, IoT 커뮤니티가 경제적 이유와 기술적 이유로 PKI를 채택하는 데에 늦어졌지만, 중앙집중형 크리덴셜 관리와 키 배포를 위해 많은 네트워크 시스템에서 사용되고 있다. 공개 키 암호학(public key cryptography), 또는 비대칭 암호학은 널리 전파될 수 있는 공개 키와 그 디바이스/소유자에게만 알려진 해당하는 비밀/개인키를 포함하는 한 쌍의 키를 사용하는 암호 체계이다. PKI는 디지털 인증서를 생성, 관리, 배포, 사용, 저장 및 취소하고, 공개 키 암호화를 관리하는 데 필요한 역할, 정책, 하드웨어, 소프트웨어 및 절차의 하나의 집합체이다. PKI는 공개 키를 개체들(사람, 조직 또는 개별 장치와 같은)의 각각의 신원과 결합(binding)한다. 상기 결합은 신뢰받는 인증기관(certificate authority: CA)에 의한 인증서의 등록 및 발급 과정을 통해 확립된다.
사전-공유 키 또는 공개 키 인프라의 장점을 취하기 위해, 일부 비밀 정보는 일반적으로 장치 제조 시점 또는 직후에 전자 장치의 보안 영역에 주입된다. 예를 들어, 비밀 정보는 사전-공유 키일 수도 있거나, 비밀 정보는 공개 키 암호화에 의존하는 시스템에서 키 쌍의 비밀 키를 포함할 수도 있다. 이러한 접근법은 그 비밀 정보를 전자 장치에 주입하는 보안 시설 및/또는 키들을 안전하게 주입하는 제3자의 능력에 대한 신뢰 중 어느 하나를 필요로 한다. 보안 시설들은 비용이 많이 들고, 관리가 어려우며, 새로운 위협에 대한 강력한 대응을 보장하기 위해 보안절차의 지속적인 유지 및 평가가 필요하다. 통상적으로, 키를 생성하고 저장하기 위해서는 하드웨어 보안 모듈(hardware security module: HSM)이 필요할 수 있고, 전자 장치에 키를 주입하기 위해서는 통합 키 주입 시스템(integrated key injection system)이 필요할 수 있으며, HSM 및/또는 보안 시설이 절충되더라도 주입된 키의 무결성을 손상시킬 수는 없다.
전자 장치에 비밀 정보를 안전하게 제공함에 있어서의 본질적인 어려움은 그 장치의 등록(상호 연결된 장치의 그리드로의 개시)과 같은 추가적인 다운스트림 프로세스에 영향을 미칠 수 있다. 종종, 서비스를 등록하기 위한 어떤 기본적인 크리덴셜을 장치에 제공하기 위해서는 디바이스 인증서가 제조 시점에서 해당 장치에 안전하게 제공되어야 한다. 다시 한번, 이것이 얼마나 안전하게 이루어질 수 있을지에 대한 한계가 존재한다.
일반적인 시나리오에서, 오리지널 장비 제조업자(Original Equipment Manufacturer: OEM)는 제조된 장치에 등록이 가능하게 하는 신원을 제공하고, 그 장치에 펌웨어를 안전하게 설치하고자 할 수 있다. 상기 장치는 예를 들어, 키를 저장하기 위한 보안 영역을 갖는 마이크로컨트롤러를 포함할 수 있으며, 상기 마이크로컨트롤러는 타사 제조업자에 의해 제조되었을 수 있다. OEM 또는 상기 제조사는, 예를 들어, 보안 영역에 비밀 키 및 디바이스 인증서를 주입할 수 있어, 보안 설비가 필요하다. 상기 장치에 펌웨어/인증서를 설치하기 위해, OEM은 신뢰가 필요한 장치를 구성하기 위한 프로그래밍 하우스의 서비스를 채용할 수 있다. 상기 프로그래밍 하우스는 보안 시설을 운영하고, 올바른 정보를 주입하며, OEM을 대신하여 안전하게 인증서에 서명하도록 신뢰 되어야 한다. 일부 상황들에 있어, 디바이스들에 권한설정(positioning)을 하는 것은 다수의 상이한 당사자들이 전자 장치와 상호작용하는 것을 요구할 수 있다.
본 발명의 실시 예들은 당해 기술분야에 공지된 하나 또는 다수의 문제점들을 적어도 완화시키는 것을 목적으로 한다.
본 발명의 일 측면에 따르면, 전자 장치가 제공된다. 상기 전자 장치는 물리적 복제방지 기능(physical unclonable function: PUF)을 갖는 보안 모듈을 포함한다. 상기 보안 모듈은, 상기 PUF에 대한 제1 도전 및 응답에 기초하여, 등록 공개 키(enrolment public key: EPK) 및 등록 비밀 키(enrolment secret key: ESK)를 포함하는 등록 키 쌍(enrolment key pair)(EPK, ESK)을 설정하도록 구성된다. 상기 전자 장치는 하나 또는 다수의 메모리들을 더 포함한다. 상기 전자 장치는, 보안 연결을 통해, 디바이스 식별자 및 상기 EPK를 포함하는 인증서 서명 요청(Certificate Signing Request: CSR)을 상기 EPK가 상기 디바이스 식별자와 연관됨을 인증하는 인증서를 위하여 서버로 전송하도록 구성되는 하나 또는 다수의 프로세서들을 더 포함하되, 상기 CSR은 ESK를 이용해 서명되고, 상기 디바이스 식별자는 EPK의 함수에 기초한다. 상기 하나 또는 다수의 프로세서들은, 상기 보안 연결을 통해, 상기 EPK가 상기 디바이스 식별자와 연관됨을 인증하고 유효기간을 포함하는 임시 등록 디바이스 인증서를 수신하도록 더 구성된다. 상기 하나 또는 다수의 프로세서들은 상기 임시 등록 디바이스 인증서를 메모리에 설치하도록 더 구성된다.
통상적으로, 디바이스 인증서(일시적 또는 기타)가, 그 디바이스 인증서와 관련된 비밀 키와 함께, 제조 중에 장치에 설치되어, 해당 장치가 서비스에 인증할 수 있게 한다. 이와 달리, 본 개시의 방법 및 장치는, 제조 시 전자 장치에 비밀 키를 내장할 필요 없이, 제조 후 전자 장치에 임시 디바이스 인증서가 제공될 수 있도록 하는 장점이 있다.
상기 하나 또는 다수의 메모리들은 기본 신뢰 루트 인증서(primary trusted root certificate)를 그 안에 설치할 수 있다. 상기 하나 또는 다수의 프로세서들은, 상기 보안 연결을 통해, 발행 인증서를 수신하도록 더 구성될 수 있으며, 상기 발행 인증서는 상기 기본 신뢰 루트 인증서로부터 파생된 것이다. 상기 발행 인증서는 전자 장치에 대한 지속적인 디바이스 인증서와 관련하여 후속 절차에서 사용될 수 있다.
상기 하나 또는 다수의 프로세서들은, 상기 발행 인증서가 상기 기본 신뢰 루트 인증서로부터 직접 파생되는지 확인하도록 더 구성될 수 있다. 상기 하나 또는 다수의 프로세서들은, 상기 확인에 응답하여, 상기 발행 인증서를 메모리에 설치하도록 더 구성될 수 있다.
상기 하나 또는 다수의 프로세서들은, 상기 기본 신뢰 루트 인증서의 파생물인, 보안 연결 발행 인증서 및 보안 연결 인증서를 상기 서버로부터 수신하도록 더 구성될 수 있다. 상기 하나 또는 다수의 프로세서들은 상기 기본 신뢰 루트 인증서를 이용하여 상기 보안 연결 인증서를 확인하도록 더 구성될 수 있다. 상기 하나 또는 다수의 프로세서들은, 상기 확인에 응답하여, 상기 서버에 대해 보안 연결을 설정하도록 더 구성될 수 있다.
상기 보안 연결 인증서를 확인하는 동작은 상기 보안 연결 인증서가 상기 기본 신뢰 루트 인증서의 파생물임을 확인하는 동작 및, 선택적으로, 상기 보안 연결 인증서에 포함된 서버 식별자를 상기 전자 장치의 상기 하나 또는 다수의 메모리들에 저장된 서버 식별자에 비교하는 동작을 포함할 수 있다. 상기 서버 식별자는, 예를 들어, 서버의 이름 또는 서버의 주소(예컨대, URL 또는 IP 주소)를 포함할 수 있다.
상기 하나 또는 다수의 프로세서들은 상기 전자 장치의 상기 하나 또는 다수의 메모리들에 저장된 상기 서버 식별자에 의해 식별된 상기 서버에 대해 보안 연결을 개시하도록 더 구성될 수 있다.
상기 장치는, 상기 PUF에 대한 제2 도전 및 응답에 기초하여, 디바이스 공개 키(device public key: DPK) 및 디바이스 비밀 키(device secret key: DSK)를 포함하는 디바이스 키 쌍(Device Key pair: DPK, DSK)을 설정하도록 더 구성될 수 있다. 상기 하나 또는 다수의 프로세서들은, 제2 보안 연결을 통해, 상기 DPK가 상기 디바이스 식별자와 관련됨을 인증하는 인증서를 위한 제2 인증서 서명 요청(Certificate Signing Request: CSR)을 서버로 전송하도록 더 구성될 수 있다. 상기 제2 CSR은 DPK 및 디바이스 식별자를 포함할 수 있고, 상기 제2 CSR은 DSK를 이용하여 서명된다. 상기 하나 또는 다수의 프로세서들은, 상기 제2 보안 연결을 통해, 상기 DPK를 상기 디바이스 식별자와 연관시키는 디바이스 인증서를 수신하도록 더 구성될 수 있다. 상기 하나 또는 다수의 프로세서들은 상기 디바이스 인증서가 상기 기본 신뢰 루트 인증서의 파생임을 확인하도록 더 구성될 수 있다. 상기 하나 또는 다수의 프로세서들은, 상기 확인에 응답하여, 상기 디바이스 인증서를 메모리에 설치할 수 있다.
바람직하게는, 본 명세서를 읽을 때 명확해지는 바와 같이, 이러한 방법은 디바이스 식별자가 해당 디바이스 식별자와 연관되는 것으로서 인증된 디바이스 공개 키와 관련되지 않은 전자 장치에 디바이스 인증서가 제공되도록 한다. 이를 통해 하류에서 추가 보안이 가능하다. 예를 들어, 디바이스 키 쌍이 어떤 예측하지 못한 방식으로 절충된다면, 전자 장치는 완전 새로운 디바이스 신원이 필요 없이 재입력된(rekeyed) 인증서를 획득할 수 있다.
디바이스 식별자는 EPK의 해시 함수에 기초할 수 있다. 예를 들어, 디바이스 식별자는 EPK에 적용되는 암호 해시 함수(cryptographic hash function)에 기초할 수 있다.
임시 등록 디바이스 인증서의 유효기간은 관련된 구현 목적에 적합한 임의의 기간일 수 있다. 일부 예에 있어, 그 유효기간은 10분 미만, 5분 미만 또는 2분 미만일 수 있다.
일부 예에 있어, 상기 임시 등록 디바이스 인증서는, 그것이 전자 장치의 펌웨어로부터 전자 장치에게 그 신원이 알려진 컴퓨팅 장치/서버로부터 보안 연결을 통해 수신되었으므로, 전자 장치에 의해 신뢰될 수 있다.
다른 예에서, 전자 장치의 하나 또는 다수의 메모리들은 임시 등록 신뢰 루트 인증서를 그것에 설치하였을 수 있다. 상기 하나 또는 다수의 프로세서들은, 상기 임시 등록 디바이스 인증서를 수신한 후, 상기 임시 등록 신뢰 루트 인증서를 이용하여 상기 임시 등록 디바이스 인증서를 확인하도록 더 구성될 수 있고, 상기 임시 등록 디바이스 인증서를 설치하는 동작은 상기 확인에 응답하는 것일 수 있다.
상기 임시 등록 디바이스 인증서는 임시 등록 발행 인증서와 관련된 비밀 키를 사용하여 서버에 의해 서명될 수 있다.
본 발명의 일 측면에 따르면, 전자 장치에 의한 성능을 위한 방법이 제공된다. 상기 전자 장치는 물리적 복제방지 기능(physical unclonable function: PUF)을 갖는 보안 모듈을 포함하고, 상기 보안 모듈은 상기 PUF에 대한 제1 도전 및 응답에 기반하여 등록 키 쌍(enrolment key pair)(EPK, ESK)을 설정하도록 구성되고, 상기 등록 키 쌍은 등록 공개 키(EPK) 및 등록 비밀 키(ESK)를 포함한다. 상기 전자 장치는 하나 또는 다수의 메모리들을 더 포함한다. 상기 방법은, 보안 연결을 통해, 상기 EPK가 디바이스 식별자와 관련됨을 인증하는 인증서를 위해 인증서 서명 요청(Certificate Signing Request: CSR)을 서버로 전송하는 동작을 포함하되, 상기 CSR은 상기 디바이스 식별자 및 상기 EPK를 포함한다. 상기 CSR은 ESK를 사용하여 서명되며, 상기 디바이스 식별자는 EPK의 함수에 기초한다. 상기 방법은, 상기 보안 연결을 통해, 상기 EPK가 상기 디바이스 식별자와 연관됨을 인증하고 유효기간을 포함하는 임시 등록 디바이스 인증서를 수신하는 동작을 더 포함한다. 상기 메모리는 상기 임시 등록 디바이스 인증서를 메모리에 설치하는 동작을 더 포함한다.
본 발명의 일 측면에 따르면, 서버가 제공된다. 상기 서버는 본 명세서에서 키 관리 서버 또는 컴퓨팅 장치로도 지칭될 수 있다. 상기 서버는, 전자 장치에 의해 설정된 등록 키 쌍의 등록 공개 키(EPK) 및 디바이스 식별자를 포함하는 인증서 서명 요청(Certificate Signing Request: CSR)을 수신하도록 구성된다. CSR은 EPK가 디바이스 식별자와 연관되어 있음을 인증하는 인증서를 위한 것이다. 상기 디바이스 식별자는 EPK의 함수에 기초한다. 상기 서버는, 상기 서버가 인증서에 서명할 수 있는 디바이스 식별자들의 데이터베이스에 대하여 상기 디바이스 식별자가 확인되게 하도록 더 구성된다. 상기 서버는, 상기 디바이스 식별자가 상기 EPK의 함수임을 인증하기 위해, 상기 디바이스 식별자의 검사가 수행되도록 더 구성된다. 상기 서버는 EPK가 데이터베이스 내의 디바이스 식별자와 연관되도록 더 구성된다. 상기 서버는, 상기 EPK가 상기 디바이스 식별자와 연관됨을 인증하고 유효기간을 포함하는 임시 등록 디바이스 인증서에 서명하도록 더 구성된다. 상기 서버는, 상기 디바이스 식별자에 의해 식별된 상기 전자 장치에 대한 보안 연결을 통해 상기 서명된 임시 등록 디바이스 인증서의 전송을 개시하도록 더 구성된다.
상기 서버는 전자 장치로부터 보안 연결을 통해 CSR을 수신하도록 더 구성될 수 있다. 상기 서버는 서버 시스템의 하나의 서버일 수 있고, 상기 CSR은 상기 전자 장치와의 보안 연결을 통해 상기 CSR을 수신한 상기 서버 시스템의 또 다른 서버를 통해 수신될 수 있다.
상기 서버는, 상기 보안 연결을 통해 발행 인증서를 전송하도록 더 구성될 수 있고, 상기 발행 인증서는 상기 전자 장치에 알려진 기본 신뢰 루트 인증서의 파생물이다.
상기 서버는, 상기 디바이스 식별자에 기초하여, 상기 기본 신뢰 루트 인증서의 파생물들인 다수의 발행 인증서들로부터 상기 보안 연결을 통해 전송할 발행 인증서를 선택하도록 더 구성될 수 있다. 이러한 방식으로, 서로 다른 장치에 대하여 서로 다른 보안 정책이 수행될 수 있는 바, 예를 들어, 제1 발행 인증서를 제1 등급의 전자 장치(예컨대, 스마트 전구)와 함께 사용하는 반면, 제2 발행 인증서를 제2 등급의 전자 장치(예를 들어, 스마트 세탁기)와 함께 사용할 수 있다.
보안 연결을 통해 전송되는 발행 인증서는 전자 장치와 관련된 보안 정책에 기초할 수 있다.
데이터베이스에 대해 전자 장치의 디바이스 식별자가 검사되도록 하는 동작은, CSR에 수신된 디바이스 식별자가 데이터베이스에 이미 저장되어 있는지를 확인하기 위한 검사가 수행되도록 하는 동작을 포함할 수 있다. 서버는 수신된 디바이스 식별자가 데이터베이스에 이미 저장되어 있는 경우에만 임시 등록 디바이스 인증서에 서명하도록 권한이 부여될 수 있다. 바람직하게는, 이러한 조건은 서버가 상기 관련된 디바이스 식별자가 데이터베이스에 있는 전자 장치들에 대한 인증서만을 서명함으로써 보안성을 향상시킨다. 따라서, 절충된 전자 장치들은 서버와 통신할 수 없다.
상기 디바이스 식별자가 EPK의 함수임을 인증하기 위해 디바이스 식별자의 검사가 수행되도록 하는 동작은, 상기 디바이스 식별자가 EPK의 해시 함수에 기초하고 있음을 인증하기 위해 디바이스 식별자의 검사가 수행되도록 하는 동작을 포함할 수 있다.
상기 임시 등록 디바이스 인증서의 유효기간은 해당 구현 목적에 적합한 임의의 기간일 수 있다. 일부 예에 있어, 상기 유효기간은 10분 미만, 5분 미만 또는 2분 미만일 수 있다.
상기 서버는 보안 연결 발행 인증서 및 보안 연결 인증서를 상기 전자 장치로 전송하는 것을 개시하도록 더 구성될 수 있는 바, 상기 보안 연결 발행 인증서 및 보안 연결 인증서는 전자 장치에 알려진 기본 신뢰 루트 인증서의 파생물이다.
상기 서버는 임시 등록 디바이스 인증서를 수신하도록 더 구성될 수 있다. 상기 서버는, 상기 디바이스 식별자 및 상기 전자 장치에 의해 설정된 디바이스 키 쌍의 디바이스 공개 키(device public key: DPK)를 포함하는 제2 CSR을 수신하도록 더 구성될 수 있으며, 여기서 상기 제2 CSR은 상기 DPK가 상기 디바이스 식별자와 연관됨을 인증하는 인증서를 위한 것이다. 상기 서버는, 상기 제2 CSR의 디바이스 식별자가 상기 서버가 인증서에 서명할 수 있는 디바이스 식별자들의 데이터베이스에 대하여 확인되도록 더 구성될 수 있다. 상기 서버는, 상기 제2 CSR의 디바이스 식별자가 상기 수신된 임시 등록 디바이스 인증서에서 지정된 디바이스 식별자와 일치하는지 확인하기 위해, 상기 제2 CSR의 디바이스 식별자에 대한 확인을 수행하도록 더 구성될 수 있다. 상기 서버는, 상기 CSR에 기초하여, 디바이스 인증서에 서명하도록 더 구성될 수 있고, 상기 디바이스 인증서는 상기 전자 장치에 알려져 있는 기본 신뢰 루트 인증서의 파생물이다. 상기 서버는 상기 디바이스 식별자에 의해 식별된 전자 장치에 대해 제2 보안 연결을 통해 상기 디바이스 인증서의 전송을 개시하도록 더 구성될 수 있다. 일부 예들에 있어, 상기 서버는, 상기 디바이스 인증서의 전송을 개시하기 전에, 상기 제2 CSR의 디바이스 식별자가 상기 EPK의 함수임을 확인하기 위해, 상기 제2 CSR의 디바이스 식별자의 확인을 수행하도록 더 구성될 수 있다.
상기 서버는 전자 장치로부터 제2 보안 연결을 통해 DPK에 대한 CSR을 수신하도록 더 구성될 수 있다. 상기 서버는 서버 시스템의 하나의 서버이고, 상기 제2 CSR은 상기 전자 장치와의 보안 연결을 통해 상기 제2 CSR을 수신한 상기 서버 시스템의 다른 서버를 통해 수신될 수 있다.
상기 임시 등록 디바이스 인증서는 서버에 저장된 임시 등록 발행 인증서에 의해 서명될 수 있다.
본 발명의 일 측면에 따르면, 서버에서의 성능을 위한 방법이 제공된다. 상기 방법은 디바이스 식별자 및 전자 장치에 의해 설정된 등록 키 쌍의 등록 공개 키(EPK)를 포함하는 인증서 서명 요청(CSR)을 수신하는 동작을 포함한다. 상기 CSR은 EPK가 디바이스 식별자와 연관되어 있음을 인증하는 인증서를 위한 것으로, 상기 디바이스 식별자는 EPK의 함수에 기초한다. 상기 방법은 상기 서버가 인증서에 서명할 수 있는 디바이스 식별자들의 데이터베이스에 대하여 상기 디바이스 식별자를 확인하도록 하는 동작을 포함한다. 상기 방법은 상기 디바이스 식별자가 상기 EPK의 함수임을 인증하기 위해 상기 디바이스 식별자의 확인을 수행하도록 하는 동작을 포함한다. 상기 방법은 EPK가 데이터베이스 내의 디바이스 식별자와 연관되도록 하는 동작을 포함한다. 상기 방법은 EPK가 디바이스 식별자와 연관됨을 인증하고 유효기간을 포함하는 임시 등록 디바이스 인증서에 서명하는 동작을 포함한다. 상기 방법은 상기 디바이스 식별자에 의해 식별된 전자 장치에 대해 보안 연결을 통해 상기 서명된 임시 등록 디바이스 인증서의 전송을 개시하는 동작을 포함한다.
본 발명의 일 측면에 따르면, 시스템이 제공된다. 상기 시스템은 전자 장치 및 하나 또는 다수의 서버들을 포함한다. 상기 전자 장치는, 물리적 복제방지 기능(physical unclonable function: PUF)을 갖는 보안 모듈을 포함하고, 상기 보안 모듈은 상기 PUF에 대한 제1 도전 및 응답에 기반하여 등록 키 쌍(EPK, ESK)을 설정하고, 상기 등록 키 쌍은 등록 공개 키(EPK) 및 등록 비밀 키(ESK)를 포함한다. 상기 전자 장치는 하나 또는 다수의 메모리들을 더 포함한다. 상기 전자 장치는 하나 또는 다수의 프로세서를 더 포함한다. 상기 하나 또는 다수의 프로세서들은, 보안 연결을 통해, 상기 EPK가 디바이스 식별자와 관련됨을 인증하는 인증서에 대해 인증서 서명 요청(Certificate Signing Request: CSR)을 상기 하나 또는 다수의 서버들 중의 서버로 전송하도록 구성된다. 상기 CSR은 디바이스 식별자 및 EPK를 포함하고, 상기 CSR은 ESK를 사용하여 서명된다. 상기 디바이스 식별자는 EPK의 함수에 기초한다. 상기 하나 또는 다수의 프로세서들은, 상기 보안 연결을 통해, 상기 EPK가 상기 디바이스 식별자와 연관됨을 인증하고 유효기간을 포함하는 임시 등록 디바이스 인증서를 수신하도록 더 구성된다. 상기 하나 또는 다수의 프로세서들은, 상기 검증에 응답하여, 상기 임시 등록 디바이스 인증서를 메모리에 설치하도록 더 구성된다. 상기 하나 또는 다수의 서버들은, 상기 보안 연결을 통해, 상기 전자 장치로부터, 상기 디바이스 식별자와 연관됨을 인증하는 인증서에 대하여 상기 디바이스 식별자 및 상기 EPK를 포함하는 CSR을 상기 EPK가 수신하도록 구성된다. 상기 하나 또는 다수의 서버들은 상기 하나 또는 다수의 서버들이 인증서에 서명할 수 있는 디바이스 식별자들의 데이터베이스에 대하여 상기 디바이스 식별자를 확인하도록 더 구성된다. 상기 하나 또는 다수의 서버들은 상기 디바이스 식별자가 상기 EPK의 함수임을 인증하기 위해 상기 디바이스 식별자를 확인하도록 더 구성된다. 상기 하나 또는 다수의 서버들은 EPK를 데이터베이스 내의 디바이스 식별자와 연관시키도록 더 구성된다. 상기 하나 또는 다수의 서버들은, 상기 EPK가 상기 디바이스 식별자와 연관됨을 인증하고 상기 유효기간을 포함하는 상기 임시 등록 디바이스 인증서에 서명하도록 더 구성된다. 상기 하나 또는 다수의 서버들은 서명된 임시 등록 디바이스 인증서를 보안 연결을 통해 전자 장치로 전송하도록 더 구성된다.
본 발명의 일 측면에 따르면, 컴퓨터 판독 가능 매체가 제공된다. 상기 컴퓨터 판독 가능 매체는, 전자 장치의 프로세서에 의해 실행될 때, 전자 장치로 하여금 본 명세서에 기재된 방법을 수행하게 하는 명령어들을 포함한다.
본 발명의 일 측면에 따르면, 컴퓨터 판독 가능 매체가 제공된다. 상기 컴퓨터 판독 가능 매체는, 서버의 프로세서에 의해 실행될 때, 상기 서버로 하여금 본 명세서에 기재된 방법을 수행하게 하는 명령어들을 포함한다.
본 명세서에 기재된 방법들을 수행하기 위한 컴퓨터 프로그램 및/또는 코드/명령어들은 컴퓨터로 판독 가능한 매체 또는 컴퓨터 프로그램 제품 상에서 컴퓨터와 같은 장치에게 제공될 수 있다. 상기 컴퓨터 판독 가능 매체는, 예를 들면, 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 또는 데이터 전송, 예를 들어, 인터넷을 통한 코드 다운로드를 위한 전파 매체일 수 있다. 대안적으로, 상기 컴퓨터 판독 가능 매체는 반도체 또는 솔리드-스테이트 메모리, 자기 테이프, 착탈 가능한 컴퓨터 디스켓, RAM(random access memory), ROM(read-only memory), 고형 자기 디스크 및 CD-ROM, CD-R/W 또는 DVD 등의 광디스크와 같은 물리적인 컴퓨터 판독 가능 매체의 형태를 가질 수 있다.
본 명세서에 개시된 발명의 많은 변형들 및 기타 실시 예들은 본 명세서에 제시된 교시의 견지에서 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 고려될 것이다. 따라서, 본 개시는 본 문서에 개시되는 실시 예들에 한정되지 않는 것으로 이해하여야 할 것이다. 또한, 본 명세서에서 제공된 설명들은 구성요소들, 단계들 및/또는 기능들의 특정한 조합들의 맥락에서 예시적인 실시예들을 제공하고 있지만, 본 발명의 영역으로부터 벗어남이 없이 대안적인 실시예들이 제공될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예들을 단지 예를 들어 설명한다.
도 1은 상세한 설명 전반에 걸쳐 참조되는 다양한 당사자들을 단지 예시적으로 나타낸 도면이다.
도 2는 통신 시스템을 나타낸다.
도 3a는 전자 장치의 블록도를 도시한다.
도 3b는 마이크로컨트롤러의 다이어그램을 나타낸다.
도 4a는 보안 모듈의 블록도를 도시한다.
도 4b는 PUF 모듈의 블록도를 나타낸다.
도 5는 컴퓨팅 장치의 블록도를 나타낸다.
도 6a는 공개 키 인프라에 의해 제공되는 신뢰 체인에서의 인증서들의 예를 나타낸다.
도 6b는 전자 장치에 임시 등록 디바이스 인증서를 제공하기 위해 사용되는 신뢰 체인에서의 인증서들의 예를 나타낸다.
도 6c는 전자 장치에 디바이스 인증서를 제공하기 위해 사용되는 신뢰 체인에서의 인증서들의 예를 나타낸다.
도 6d는 펌웨어를 인증하기 위한 신뢰 체인에서의 인증서의 예를 나타낸다.
도 7은 전자 장치에 임시 등록 디바이스 인증서를 제공하는 방법의 스윔레인(swimlane) 흐름도를 나타낸다.
도 8은 흐름도를 나타낸다.
도 9는 흐름도를 나타낸다.
도 10은 전자 장치에 디바이스 인증서를 제공하는 방법의 스윔레인 흐름도를 도시한다.
도 11은 흐름도를 나타낸다.
도 12는 흐름도를 나타낸다.
도 13은 컴퓨터 판독 가능 매체의 블록도를 도시한다.
본 명세서 및 도면에 걸쳐서, 동일한 참조 부호는 동일한 부분을 지칭한다.
이하, 다양한 실시 예들이 설명되지만, 본 발명은 이러한 실시 예들에 한정되지 아니하며, 이들 실시 예들의 모든 변형들은 첨부한 청구범위에 의해서만 한정되는 본 발명의 영역 내에 속할 것이다.
이하에서는, IoT 장치의 보안 및 등록의 경우를 참조하여 기술한다. 다만, 본 명세서에 기재된 방법들, 시스템들 및 장치들은 훨씬 더 널리 적용될 수 있음을 당해 전문가라면 이해할 것이다.
이하에서는, 전자 장치에 임시 등록 디바이스 인증서(temporary enrolment device certificate)를 안전하게 제공하는 방법 및 전자 장치에 디바이스 인증서를 안전하게 제공하는 방법에 대하여 설명한다. 본 문서에서 함께 기술된 방법들은, 관련된 다양한 당사자들이 전자 장치의 보안에 대해 서로를 특히 신뢰할 필요 없이, 전자 장치가 서비스(예를 들면, IoT 허브에 의해 제공되는 클라우드 기반 서비스)에 연결될 준비가 되어 배치될 수 있도록 한다. 설명의 편의상, 도 1에서는 여러 이해 당사자들(예를 들어, 오리지널 장비 제조자(OEM) 및 IoT 허브)의 예시적인 시나리오가 설명되고, 상세한 설명 전반에 걸쳐 참조된다. 그러나, 본 명세서에 기술된 방법들은, 당해 전문가에 의해 이해될 수 있듯이, 보다 일반적으로 적용 가능하다.
본 상세한 설명을 읽어보면 이해될 수 있듯이, 전자 장치는 물리적 복제방지 기능(physical unclonable function: PUF)이 제공될 수 있다. 물리적 복제방지 기능(물리적으로 복제 불가능한 기능 또는 PUF라고도 지칭됨)은 보안 EEPROM 및 기타 고가의 하드웨어의 요구 없이 인증 및 비밀 키 저장에 사용되는 암호 프리미티브(cryptographic primitive)이다. PUF는, 비밀을 디지털 메모리에 저장하는 대신, 보통 제조 과정 중에 삽입되는, 하나 또는 다수의 구성 요소의 고유한 물리적 특성으로부터 비밀을 도출한다. 알려진 PUF는 작은 실리카 구체들이 현탁되어 있는 경화된 에폭시 시트를 통한 레이저 광의 산란, 또는 일부 회로들의 게이트 지연에 있어 제조 가변성 등의 현상에 기초한다.
이하에서는, 물리적으로 복제 불가능한 기능, 물리적 복제방지 기능 및 PUF라는 용어들을 혼용하여 사용한다. PUF는 기능적 동작을 수행하는 객체를 포함하는데, 즉 특정 입력으로 질의 될 경우 PUF는 측정 가능한 출력을 생성한다. 전형적으로는, PUF에 대한 입력은 “도전(challenge)”으로 지칭되고, PUF의 결과적인 출력은 “응답(response)”로 지칭된다. 적용된 도전과 그의 측정된 반응은 '도전-응답 쌍'(challenge-response pair: CRP)으로 알려져 있다. 본 문서에서 사용된 상기한 용어 "도전"은 PUF에 제공되는 선택된 입력(예를 들어, 어레이의 특정 셀들의 선택, 특정 전압의 인가 등)을 의미하는 것으로 이해되고, 상기한 용어 “응답(response)”은 PUF의 해당 출력을 지칭하기 위해 본 명세서에서 사용된다.
PUF가 전자 장치에서 사용하기에 적합하다면, 본 명세서에 기술된 시스템 및 방법들과 함께 임의의 적합한 PUF가 사용될 수 있다. 예를 들어, 상기 PUF는 SRAM PUF일 수 있다. SRAM PUF는 SRAM들의 문턱 전압의 무작위적 차이를 이용하여 고유한 도전-응답 쌍들을 생성한다.
적합한 PUF의 또 다른 예는 칩 상의 와이어 또는 게이트의 지연의 무작위 변동을 이용하는 지연 PUF이다. 입력 도전이 주어지면, 회로에 레이스 조건을 설정하고, 서로 다른 경로들을 따라 전파되는 두 개의 전이들을 비교하여 어느 것이 먼저인지(응답)를 확인한다.
PUF의 다른 예에 있어서, 양자 구속(quantum confinement)은 하나의 역할을 할 수 있다. 예를 들어, PUF는 여러 공진 터널링 다이오드들로부터 형성될 수 있다.
PUF의 또 다른 예로, 양자 터널링 장벽을 통한 양자 터널링이 역할을 할 수 있다. PUF의 하나의 예는, 2020년 4월 8일에 출원된, '양자 터널링 전류를 이용한 장치 식별(Device Identification With Quantum Tunnelling Currents)'이라는 제목으로 기술되고, 공개번호 WO2020/212689A1로 공개된 국제 특허 출원 번호 PCT/GB2020/050918에서 기술되었다. 일 예에 따르면, PUF는 개별적으로 어드레싱 가능한 복수의 셀들을 갖는 어레이를 포함할 수 있다. 각각의 셀은 양자 터널링 장벽을 갖는 기본 회로를 포함할 수 있다. 셀은 트랜지스터 형태의 제1 전자 부품 및 제2 전자 트랜지스터 형태의 제2 전자 부품을 포함할 수 있다. 상기 제1 트랜지스터의 소스, 드레인 및 바디부는 동일한 전위(예를 들어, 접지)에 유지될 수 있다. 상기 제2 트랜지스터의 소스, 드레인 및 바디부도 또한 모두 동일한 전위에 유지될 수 있다. 상기 제1 트랜지스터는 트랜지스터의 채널과 게이트 단자 사이에 제1 양자 터널링 장벽을 갖는다. 상기 제2 트랜지스터는 트랜지스터의 채널과 게이트 단자 사이에 제2 양자 터널링 장벽을 갖는다. 제조 중 도입되는 트랜지스터의 고유한 차이로 인해, 제1 양자 터널링 장벽은 상기 제1 트랜지스터를 고유하게 특징화하고, 제2 양자 터널링 장벽은 상기 제2 트랜지스터를 고유하게 특징화한다. 상기 셀은 상기 제1 양자 터널링 장벽 및 상기 제2 양자 터널링 장벽에 걸쳐 전위차를 인가하기 위해 행 디코더 및 열 디코더를 이용하여 선택될 수 있다. 상기 전위차는 전류가 제1 양자 터널링 장벽 또는 제2 양자 터널링 장벽 중 어느 하나를 고전적으로 통과할 수 있는 문턱 전압 미만일 수 있다. 이에 따라, 셀이 선택되면, 제1 트랜지스터의 제1 양자 터널링 장벽을 통해서 양자 터널링 전류가 흐르고, 제2 트랜지스터의 제2 양자 터널링 장벽을 통해서 양자 터널링 전류가 흐르며, 고전적인 전류는 흐르지 않을 수 있다. 양자 터널링 전류는 비교되고 증폭될 수 있다. 셀들과 인가 전압들의 조합은 도전 과제로서 고려될 수 있고 출력 양자 터널링 전류들은 응답으로 고려될 수 있다.
다른 예에서, PUF는, 그것이 전자적으로 상호 작용할 수 있는 한, 전자 요소들을 기반으로 할 필요는 없다.
이하에서, 비대칭 키 쌍으로 달리 알려진, 여러 공개 키 쌍들을 참조하여 설명한다. 공개 키 쌍은 상대방과 공유될 수 있는 공개 키와 공유되지 않는 해당 비밀 키를 포함한다. 공개 키는 비밀로 유지할 필요는 없지만 그것이 변조될 수 없도록 저장되어야 하는 공개 가치이다. 일 예에서, 공개 키는 어떠한 방식으로도 재작성 또는 수정될 수 없음을 보장하도록 전자 장치 내의 ROM에 저장될 수 있다. 본 명세서에 기술된 공개 키 쌍은 종종 명칭을 갖는다. 예를 들어, 하나의 공개 키 쌍은 '등록 공개 키'(enrolment public key: EPK)와 대응하는 '등록 비밀 키'(enrolment secret key: ESK)를 포함하는 '등록 공개 키 쌍'으로 기술된다. 또 다른 공개 키 쌍은 '디바이스 공개 키'(device public key: DPK)와 대응하는 '디바이스 비밀 키'(device secret key DSK)를 포함하는 '디바이스 공개 키 쌍'으로 기술된다. 또 다른 공개 키 쌍은 '공개 기관 키'(public authority key: PAK)와 대응하는 '비밀 기관 키'(secret authority key: SAK)를 포함하는 '기관 키 쌍'으로 기술된다. 본 독자는 이러한 공개 키 쌍들의 명칭들이 단지 공개 키 쌍들 사이의 구분을 위한 것이라는 점을 인식할 수 있을 것이다.
본 명세서에 기술된 공개 키 쌍들은 임의의 적합한 공개 키 암호시스템(cryptosystem), 예를 들어, RSA 또는 타원 곡선 기반 암호 시스템(elliptic curve based cryptographic system)과 결부하여 사용될 수 있다. 본 명세서에 기술된 많은 공개 키 쌍들은 디지털 서명들과 함께 사용하기 위한 것이다. 디지털 서명은 디지털 메시지 또는 문서의 진위 여부를 검증하기 위한 수학적 방식이다. 본 명세서의 예들에 있어, 임의의 적합한 디지털 서명 방식, 예를 들어, RSA, ElGamal 서명 방식 또는 ECDSA가 사용될 수 있다.
본 명세서에 기술된 서버/서버 시스템/컴퓨팅 장치들 중 몇몇은 또한 "기관 서버 시스템" 또는 "키 관리 서버"와 같은 명칭이 부여되었다. 본 독자는 이러한 명칭들이 단지 상이한 컴퓨팅 장치들 간의 구별을 위한 것임을 인식할 수 있을 것이다.
도 1은 전자 장치(100)의 보안 생성, 권한설정(provisioning) 및 배치(deployment)에 종사할 수 있는 상업적 (또는 그와 다른) 당사자들을 묘사하는 예시를 도시한다. 당해 전문가는 다른 설정이 예상될 수 있으며 본 도면은 단지 예시적인 목적으로만 제공된다는 점을 이해할 것이다. 높은 수준에서, 보안 모듈이 제조되고, 이어서 전자 장치(100)에 설치하기 위해 오리지날 장비 제조업자(OEM)(160)에 제공된다(필수적인 것은 아니지만, 전형적으로, 마이크로컨트롤러의 일부로서). 상기 OEM(160)은 프로그래밍 하우스(180)의 도움을 받아 전자 장치(100)에 펌웨어를 설치하고 최종적으로 전자 장치(100)를 배치하기 위해 준비하는 과정들을 수행할 수 있다. 일단 배치되면, 전자 장치(100)는 IoT 허브(170)를 통해 제공되는 서비스와 통신할 수 있다.
상기 도면을 참조하면, 인증기관(140)은 전자 장치(100)에 설치하기 위한 보안 모듈(110)을 생성하기 위한 제조 능력(150)을 가질 수 있다(또는 신뢰받는 제조 업자와 긴밀히 협동할 수 있다). 이하에서는 보안 모듈 및 전자 장치의 예들이 추가로 설명된다.
본 논의의 목적 상, 상기 보안 모듈(110)은 도 1에 도시되지 않은 물리적 복제방지 기능(PUF)을 포함하며, 이는 공개 키 쌍들을 설정하도록 동작 가능하다. 공개 키 쌍은 상대방과 공유될 수 있는 공개 키와 공유되지 않는 대응하는 비밀 키를 포함한다. 공개 키 쌍은 비대칭 키 쌍으로도 알려져 있을 수도 있다. 공개 키 및 비밀 키는 PUF에 대한 도전과 응답에 기초할 수 있다. 예를 들어, 공개 키는 PUF에 대한 도전에 기초할 수 있고, 비밀 키는 해당 도전에 대한 응답에 기초할 수 있다. 이에 따라, 상기 보안 모듈(110)은 제조업자(150) 또는 하류의 어느 당사자에 의해 어떤 비밀 키가 삽입될 필요가 없이 공개 키 쌍들을 설정할 수 있다.
본 논의의 목적상, 상기 보안 모듈(110)은 대응하는 적어도 두 개의 도전-응답 쌍들에 기초하여 적어도 두 개의 키 쌍들을 설정하도록 구성된다. 바람직하게는, PUF 기반의 공개 키 쌍으로써, 상기 비밀 키들은 전자 장치에 저장될 필요가 없지만, 보안 모듈이 제공하는 안전한 주변/신뢰 영역 내에서 PUF로부터 동적으로 재생될 수 있다. 이에 따라, 전자 장치가 해킹되더라도, 그곳에 저장되어 있는 도난을 당할 어떤 비밀 키도 없을 수 있다.
등록 공개 키(EPK) 및 대응하는 등록 비밀 키(ESK)는 제1 CRP를 기반으로 한다. 상기 EPK는 전자 장치에 대한 식별자를 제공하기 위해 사용되며, 후술하는 바와 같이, 임시 등록 디바이스 인증서를 전자 장치에 제공하기 위한 과정에서 사용된다. 상기 임시 등록 디바이스 인증서는 EPK를 디바이스 식별자와 연관시키고, 전자 장치에 대한 디바이스 인증서를 획득하기 위해 후속 통신에서 사용 불가능하다. 상기 디바이스 식별자는 EPK의 함수를 기초로 한다. 본 명세서에 기술된 많은 예들에 있어, 상기 함수는 암호학적 해시 함수(cryptographic hash function)이지만, 이는 반드시 그런 경우일 필요는 없고 다른 함수가 사용될 수도 있다.
디바이스 공개 키(DPK) 및 대응하는 디바이스 비밀 키(DSK)는 제2 CRP를 기반으로 한다. 디바이스 키 쌍은 EPK에 기초하여 특정 디바이스 식별자를 갖는 적절한 전자 장치에 디바이스 인증서를 제공하는데 사용된다. 상기 디바이스 인증서는 DPK가 디바이스 식별자와 연관되어 있음을 인증한다. 후술하는 바와 같이, 디바이스 인증서를 인증하는 신뢰 체인은 OEM(160)에 의해 제어된다.
본 개시의 목적을 위해, 전자 장치(100)는 마이크로컨트롤러(MCU)와 같은 로우-레벨 회로로 구성되는 것으로 이해될 수 있다. 전자 장치(100)는 대안적으로 더 높은 레벨의 회로, 예를 들어, 습도 또는 온도를 감지하기 위한 회로를 포함하는 것으로 이해될 수 있거나, 스마트 폰 또는 컴퓨터와 같은 더 큰 규모의 전자 장치인 것으로 이해될 수 있다. 상기 제조업자(150)는 단지 보안 모듈(110)만을 제조할 수도 있거나, 또는 상기 보안 모듈(110)이 그 안에 설치되어 있는 마이크로컨트롤러를 제조할 수도 있다.
아래에서 설명하는 바와 같이, 인증기관(140)은 공개 키 쌍과 연관될 수 있다. 즉, 인증기관(140)은 공개 키(이하, 공개 기관 키(PAK)로 지칭됨) 및 대응하는 비밀 키(이하, 비밀 기관 키(SAK)로 지칭됨)와 연관될 수 있다. 상기 SAK는 어떤 다른 당사자와 공유되지 않는 반면, 상기 PAK는 보다 광범위하게 공유될 수 있다. 예를 들어, PAK는 보안 모듈(110), 예컨대, 보안 메모리에 각인(imprinted)될 수 있다. 대안으로서, 상기 제조업자(150)가 보안 모듈을 포함하는 마이크로컨트롤러(또는 다른 전자 장치)를 제조하는 경우, PAK는, 보안 모듈 외부의, 전자 장치의 다른 독출전용 메모리(ROM)에 설치될 수 있다. 보안 목적상, 보안 모듈/전자 장치에 저장된 PAK는 그것의 무결성을 보존하기 위해 재작성 또는 수정이 불가능한 것이 중요하다. 상기 PAK는 추후 단계에서 보안 모듈(110)에 의해, 정보가 SAK를 이용하여 서명되었고 따라서 인증기관(140)의 승인을 받았음을 확인하는데 이용될 수 있다. 상기 보안 모듈/전자 장치에는 다른 비밀이 아닌 정보, 예를 들어, SAK를 이용하여 인증기관(140)에 의해 서명되고 상기 PAK가 인증기관(140)과 연관되어 있음을 나타내는 루트 인증서가 각인될 수도 있다. 어떤 비밀 정보도 인증기관(140)에 의해 보안 모듈(110)에 제공되지 않는다. 인증기관(140) 또는 제조업자(150)에 의해 보안 모듈(110)로부터 어떤 비밀 정보도 추출되지 않는다.
초기 등록 펌웨어(initial enrolment firmware: IEF)가 또한 보안 모듈/전자 장치에 제공되어 보안 모듈(110)에서 디바이스 식별자 및 하나 또는 다수의 공개 키를 추출되도록 할 수 있다.
인증기관(140)은 하나 또는 다수의 서버들을 포함하는 서버 시스템(130)을 소유 및/또는 운영할 수 있다. 한편, 도 1의 기관 서버 시스템(130)은 3개의 서버를 갖는 것으로 도시되었으나, 당해 전문가라면 상기 서버 시스템(130)은 그 이상 또는 그 이하의 서버들로 구성될 수 있음을 이해할 수 있을 것이다.
기관 시스템의 서버들 중 적어도 하나는 SAK를 사용하여 인증서에 서명하도록 구성된다(이에 대한 더 많은 정보는 아래에서 추가로 제공됨). 상기 SAK는 펌웨어에 서명하는 데에도 사용될 수 있다.
기관 서버 시스템(130)의 서버들 중의 적어도 하나는 디바이스 식별자와 같은 보안 모듈(110)에 대한 정보를 갖는 데이터베이스를 보유하도록 구성된다.
기관 서버 시스템(130)의 서버들 중의 적어도 하나는 오리지날 장비 제조업자(OEM)(160)에 의해 운영되는 컴퓨팅 장치(120)와 안전하게 통신하도록 구성된다.
상기 서버들 중 적어도 하나는 IoT 허브(170)와 통신하도록 구성된다. IoT 허브는 IoT 어플리케이션과 그것이 관리하는 전자 장치들 간의 양방향 통신을 위한 메시지 허브로서 역할을 하는, 클라우드에서 호스팅 되는, 관리형 서비스이다. 본 논의의 목적상, 본 명세서에서 기술되는 방법들은 전자 장치가 IoT 허브(170)와 통신할 준비가 되어 배치될 수 있도록 준비하기에 적합하다.
단지 명료성을 위해, 서버 시스템(130)의 서버는 본 명세서에서 "기관 서버(authority server)"로 종종 지칭된다.
당해 전문가라면 상기 서버 시스템(130)의 기능 중 적어도 일부가 클라우드 서비스로서 제공될 수 있다는 것을 인식할 것이다. 하나 또는 다수의 서버들은 물리적으로 기관 서버(140)의 외부에 위치할 수 있다. 상기 서버 시스템(130)의 기관 서버는 특정 보안 모듈(110)을 식별하기 위한 디바이스 식별자를 수신할 수 있다. 상기 디바이스 식별자는 등록 비밀 키(ESK)와 EPK를 포함하는 등록 키 쌍의 등록 공개 키(EPK)의 기능에 기초한다. 상기 EPK와 ESK는 보안 모듈(110)의 PUF에 대한 도전과 응답을 기반으로 하며, 상기 ESK는 보안 모듈(110)을 벗어나지 않는다. 일 예에서, 상기 EPK는 PUF에 대한 도전에 기초하고, 상기 ESK는 PUF에 대한 도전에 대한 응답에 기초한다. 상기 서버 시스템(130)은 디바이스 식별자를 데이터베이스에 저장하도록 구성된다. 일부 예들에 있어, 상기 서버 시스템(130)은 또한 특정 보안 모듈(110)에 대한 EPK를 수신할 수도 있지만, 반드시 수신할 필요는 없다.
상기 서버 시스템(130)이 보안 모듈(110)의 디바이스 식별자를 수신하고 저장하고 나면, 보안 모듈(110)(마이크로컨트롤러에 이미 설치되어 있을 수도 있음)이 OEM(160)에 제공된다. 상기 OEM은 일반적으로 그 OEM(160)에 의해 제조되고 있는 다수의 전자 장치들(100)에 설치하기 위해 그러한 보안 모듈의 꾸러미를 구입할 수 있다.
상기 OEM(160)은 또한 인증기관(140)의 서버 시스템(130)과 안전하게 통신할 수 있는 컴퓨팅 장치(120)에 접속할 수 있다. 참조의 편의를 위해, OEM에 의해 운영되는 컴퓨팅 장치(120)는 이하에서 "키 관리 서버"로 지칭된다. 상기 "키 관리 서버"라는 용어는 단수로 사용되지만, 당해 전문가라면, 상기 컴퓨팅 장치(120)의 기능이 복수의 컴퓨팅 장치들 사이에서 공유될 수 있으므로, "키 관리 서버(key management server)"는 원하는 기능을 갖는 복수의 컴퓨팅 장치들(하나 또는 다수의 서버들/컴퓨팅 장치들을 포함하는 키 관리 서버 시스템)을 또한 지칭하는 것으로 이해되어야 한다는 것을 인식할 수 있을 것이다.
이하, KMS(120)로 지칭되는, 키 관리 서버(120)는, 비록 OEM(160)이 직접 상호 작용할 수 있는 서버이기는 하지만, 일부 상황에서는 기관 서버 시스템(130)의 또 다른 기관 서버로 생각될 수도 있다. 특히, KMS(120)는 기관 서버 시스템(130)과의 보안 통신이 가능하므로, 기관 서버 시스템(140)에 의해 OEM의 사용에 대해 인증될 수 있다.
상기 키 관리 서버(120)는 사내(on-premises) 운영을 위해 OEM(160)에 제공되는 물리적 서버를 포함할 수 있다. 예를 들어, OEM(160)은 인증기관(140)로부터 물리적 KMS(120)를 획득하도록 준비할 수 있다. 인증기관(140)은 OEM(160)에 제공될 특정 KMS 인스턴스(120)를 식별하기 위한 KMS 식별자를 생성 및 기록할 수 있다. 인증기관(140)은 KMS(120) 내부의 하드웨어 보안 모듈(hardware security module: HSM)에서 KMS 공개 키 쌍을 생성하고, KMS 공개 키 쌍의 KMS 공개 키를 추출하고, SAK를 사용하여 인증서에 서명하여 KMS 식별자를 KMS 공개 키와 연관시키고, 및 인증서를 KMS 소프트웨어에 끼워 넣을 수 있다. 인증기관(140)은 KMS가 인증기관 서버 시스템(130)의 기관 서버와 연결될 수 있도록 할 URL과 함께, PAK를 인증기관(140)과 연계시키는 루트 인증서를 KMS(120)에 또한 끼워 넣을 수 있다. 그런 다음, 물리적 KMS(120)는 물리적으로 OEM(160)으로 전송될 수 있다. KMS(120)는 후속적으로 서버 시스템(130)과 보안 통신(예를 들어, TLS 통신)을 개시할 수 있다. 서버 시스템(130)은 SAK에 의해 서명된 TLS 인증서 및 체인을 제시하고 TLS 서버 인증을 수행하여 인증할 수 있다. 이어서, KMS(120)는 PAK를 인증기관(140)과 연계하는 하드코딩(hardcoded) 된 루트 인증서를 사용하여 인증서를 검증할 수 있다. KMS(120)는 그의 인증서를 제시하고(인증기관(140)에 의해 SAK를 사용하여 서명된) TLS 클라이언트 인증을 수행하여 인증기관 서버에 인증할 수 있다. 인증기관(140)은 KMS에 설치된 인증서에 서명하는 데 사용되는 SAK에 해당하는 루트 공개 키(PAK)를 사용하여 인증서에 대한 서명을 검증할 수 있다. 당해 전문가라면 KMS(120)를 인증하기 위해 사용되는 공개 기관 키가 보안 모듈(110)에 설치된 공개 기관 키와 동일하거나 상이할 수 있음을 이해할 것이다.
사내 운영을 위해 OEM(160)에 제공되는 맞춤형(bespoke) 물리적 서버와는 달리, 키 관리 서버(120)는 OEM(160)에 의해 운영되지만 인증기관(140)의 서버 시스템(130)과 통신하기 위해 그에 제공되는 보안 게이트웨이를 위한 맞춤형 소프트웨어를 갖는 컴퓨팅 디바이스(120)를 포함할 수 있다. 상기 맞춤형 소프트웨어는 배포의 용이성을 위해 지식종속적(agnostic)이지 않으며, OEM(160)에 의해 쉽게 설치 및 운영될 수 있다. 상기 맞춤형 소프트웨어는 그에 의해 서버 시스템(130)에 대해 인증할 수 있는 메커니즘(공개 키)을 포함한다.
키 관리 서버(120)는 또한 적어도 하나의 추가적인 전자 장치(100)와 통신할 수 있다. 이와 같이, 하나 또는 다수의 전자 장치(100)가 등록될 수 있다. KMS(120)는 전자 장치(100)에 펌웨어의 안전한 설치를 용이하게 하기 위해 사용될 수 있다. 후술하는 바와 같이, KMS(120)는 디바이스 식별자들을 특정 전자 장치들(100)과 연관시키는 데 사용될 수 있다. KMS(120)는 인증서에 서명하는 데 사용될 수 있다.
상기 OEM(160)은 KMS(120)를 사용하여 하나 또는 다수의 수신된 보안 모듈들을 등록할 수 있다. 구체적으로, KMS(120)는 전자 장치의 보안 모듈(110)과 통신하여 EPK의 함수를 포함하는 디바이스 식별자를 추출할 수 있다. KMS(120)는 기관 서버 시스템(130)과 보안 통신 채널을 개설하여 신뢰받는 인증기관(140)에 KMS 인스턴스(120)와 디바이스 식별자 간의 연관성을 등록할 수 있다. 인증기관(140)은 로컬 데이터베이스를 업데이트하고 디바이스 식별자를 성공적으로 등록했음을 KMS(120)에 알릴 수 있으며, 해당 디바이스 식별자와 연관된 전자 장치와 통신할 수 있는 일정한 권한을 KMS(120)에 허가할 수 있다.
OEM(160)은 KMS(120)를 사용하여 전자 장치에 펌웨어를 안전하게 제공할 수 있다. 상기 OEM의 펌웨어는 임의의 적절한 보안 방법을 사용하여 전자 디바이스 상에 설치될 수 있다. 예컨대, OEM(160)은 전자 장치(100) 상에 설치될 펌웨어를 설계할 수 있다. KMS(120)는 기관 서버 시스템(130)과 보안 통신 채널을 개설하고, 비밀 기관 키(SAK)로써 (그것의 상대방(PAK)은 전자 장치(100) 상에 설치되어 있음) 서명하기 위해 기관(140)으로 펌웨어 또는 그것의 해시를 전송할 수 있다. KMS(120)는, 그것의 상대방이 전자 장치에서 동적으로 생성 가능한, PUF-기반의 펌웨어 공개 키(FPK)로 펌웨어 및 기관의 서명을 더 암호화할 수 있다. 이에 따라, 전자 장치는 해당 펌웨어 비밀 키를 이용하여 펌웨어를 복호화하고, 메모리에 저장된 PAK를 이용하여 기관(140)에 의해 펌웨어가 서명되었는지 확인할 수 있다. 이러한 방식으로, 상기 OEM은 전자 장치(100)에 펌웨어를 안전하게 제공할 수 있다.
상기 펌웨어는 전자 장치의 하드웨어를 제어하기 위한 낮은 레벨의 명령어를 포함할 수 있다.
상기 펌웨어는 후술하는 방법들에 따라 장치를 등록하기위한 하나 또는 다수의 루트 인증서들을 포함할 수 있다. 특히, 상기 펌웨어는 기본 신뢰 루트 인증서("OEM_ROOT", 도6c 참조)를 포함할 수 있다.
펌웨어는 전자 장치의 디바이스 식별자가 등록되어 있는 KMS(120)의 식별자를 포함할 수 있다. 예를 들며, 상기 식별자는 전자 장치가 KMS(120)와 접촉하기 위해 통신하고자 하는 URL(Uniform Resource Locator)을 포함할 수 있다. 펌웨어는 상기 URL에 의해 식별된 컴퓨팅 장치/서버와의 TLS 연결과 같은 보안 연결을 개시하기 위한 명령어들을 포함할 수 있다.
상기 펌웨어는, 전자 장치가 수신된 인증서들을 해석할 수 있도록, 인증서 명명 구조의 세부 사항을 포함할 수 있다. 상기 펌웨어는 인증서 서명 요청(CSR)을 설정하기 위한 세부 사항을 더 포함할 수 있다. 상기 인증서 서명 요청에는 일반적으로 인증서가 발급되어야 할 공개 키, 식별 정보(디바이스 식별자와 같은), 무결성 보호(예를 들어, 디지털 서명)가 포함된다.
KMS(120)는 또한 IoT 허브(170)에 연결하기 위해 필요한 정보를 전자 장치에 안전하게 제공하기 위해 사용될 수 있다. 예를 들어, KMS(120)는 직접 또는 서버 시스템(130)을 통해, IoT 허브와 통신하여, 등록된 각 전자 장치(100)에 대한 디바이스 인증서를 IoT 허브에 제공하도록 구성될 수 있다. KMS(120)는 전자 장치(들)(100)에 IoT 루트 인증서 및 IoT 종점(endpoint)을 제공하여, 상기 장치가 IoT 허브(170)와 통신할 수 있도록 구성될 수 있다.
상기 전자 장치들(100)은 IoT 허브(170)와 통신하는 데 필요한 모든 정보와 함께 배치될 수 있다.
도 2는 도 1에 제시된 다수의 하드웨어 장치들을 포함하는 통신 시스템을 보다 일반적으로 도시한다. 특히, 도 2는 통신 네트워크(200), 보안 모듈(110)을 구비하는 예시적인 전자 장치(100), 예컨대, OEM(160)에 의해 운영될 수 있는 키 관리 서버(120), 기관 서버 시스템(130), 및 예컨대, IoT 허브(170)에 의해 운영될 수 있는 컴퓨팅 장치(220)를 도시한다. 상기 통신 네트워크(200)는 인터넷과 같은 임의의 적합한 통신 네트워크일 수 있다. 일부 예들에 있어, 상기 통신 네트워크(200)는 광역 네트워크(Wide Area Network: WAN)를 포함할 수 있다.
전자 장치(100)는 임의의 적합한 형태를 취할 수 있으며, 본 명세서에 기재된 방법을 수행하기 위한 임의의 적합한 컴퓨팅 장치를 포함할 수 있다. 예를 들어, 전자 장치는 개인용 컴퓨터, 서버, 랩톱 컴퓨터, 또는 다른 기계장치와 같은 처리 및 저장이 가능한 임의의 컴퓨팅 장치일 수 있다. 전자 장치(100)는 IoT 장치를 포함할 수 있다. 전자 장치는 더 큰 장치에 설치하기 위한 마이크로컨트롤러 유닛(MCU)을 포함할 수 있다. 전자 장치(100)는 직접 또는 네트워크(200)를 통해 다른 장치와 통신할 수 있다. 예를 들어, 전자 장치(100)는 물리적 연결을 통해 또는 상기 네트워크(200)를 통해 KMS(120)와 통신할 수 있다. 일단 전자 장치(100)가 배치되면, 상기 장치(100)는 상기 통신 네트워크(200)를 통해 컴퓨팅 장치(220)와 통신할 수 있다. 전자 장치는 보안 연결, 예를 들어 TLS 연결을 통해 KMS(120) 및/또는 컴퓨팅 장치(220)와 통신할 수 있다.
KMS(120)는 아래에서 더 논의되는 컴퓨팅 장치(500)와 같은 임의의 적합한 컴퓨팅 장치를 포함할 수 있다. KMS(120)는 서버들의 집합 또는 단일한 장치를 포함할 수 있다. KMS(120)의 기능은 분산형 데이터 처리 환경, 단일 데이터 처리 장치 등을 포함하는 수많은 상이한 유형의 데이터 처리 환경에서 활용될 수 있다.
상기 KMS(120)는 상기 네트워크(200)를 통해 기관 서버 시스템(130)과 보안 연결을 수립할 수 있으며, 상기 네트워크(200)를 통해 또는, 일부 어떤 상황에서는, 유선 연결과 같은 직접 연결을 통해, 전자 장치(100)와 통신할 수도 있다. KMS(120)는, 전자 장치(100)의 보안 모듈(110)을 식별하는 디바이스 식별자와 같은, 전자 장치(100)에 관한 정보 및 전자 장치(100)의 EPK와 같은 하나 또는 다수의 공개 키들을 저장하도록 구성된다. 추가적으로 또는 대안적으로, KMS(120)는 기관 서버 시스템(130)의 데이터베이스(210)와 통신하여 이러한 정보를 획득하도록 구성될 수 있다. KMS(120)는 인증서에 서명하도록 더 구성된다.
상기 기관 서버 시스템(130)은 하나 또는 다수의 서버를 포함하고 데이터베이스(210)를 포함한다. 기관 서버 시스템(130)의 하나 또는 다수의 기관 서버는 인증기관(140)을 대신하여 인증서에 서명하도록, 예를 들어, KMS(120)가 인증기관(140)에 의해 신뢰받고 있음을 인증하거나, 전자 장치(100)에 설치를 위해 펌웨어에 서명하도록 구성된다. 데이터베이스(210)는 전자 장치(100)를 식별하는 디바이스 식별자, 일부 예에서는 전자 장치(100)의 펌웨어 공개 키(FPK)와 같은, 전자 장치(100)에 관한 정보를 저장하도록 구성된다. 상기 데이터베이스(210)는 KMS(120)에 관한 정보를 저장하도록 더 구성될 수 있다. 예를 들어, 데이터베이스(210)는 디바이스 식별자들의 꾸러미를 특정 KMS(120)와 연관시키는 정보를 포함할 수 있으며, KMS(120)가 그것이 연관되는 단지 해당 디바이스 식별자들과 상호작용하도록 권한을 부여하는 데 사용될 수 있다.
컴퓨팅 장치(220)는 다수의 연결된 장치들(예를 들어, 분산 컴퓨팅 환경에서) 또는 단일한 컴퓨팅 장치를 포함할 수 있다.
도 3a는 일 예에 따른 전자 장치(100)의 블록도를 도시한다. 예를 들어, 상기 전자 장치(100)는 IoT 장치일 수 있다. 당해 전문가라면 이해할 수 있는 바와 같이, 도 3a에 도시된 것에 대비해 다른 아키텍처들이 사용될 수 있다.
본 도면을 참조하면, 전자 장치(100)는 보안 모듈(110), 하나 또는 다수의 CPU/프로세서들(302), 하나 또는 다수의 메모리들(304), 센서 모듈(306), 통신 모듈(308), 포트(310) 및 전원(312)을 포함한다. 구성 요소들(302, 304, 306, 308, 310, 312)의 각각은 다양한 버스를 사용하여 상호 연결된다. 상기 CPU(302)는 통신 모듈(308)을 통해 또는 포트(310)를 통해 수신된, 메모리(304)에 저장된 명령들을 포함하는, 전자 장치(100) 내에서 실행을 위한 명령들을 처리할 수 있다.
상기 메모리(304)는 전자 장치(100) 내에 데이터를 저장하기 위한 것이다. 상기 하나 또는 다수의 메모리들(304)은 휘발성 메모리 유닛 또는 유닛들을 포함할 수 있다. 상기 하나 또는 다수의 메모리들은 비휘발성 메모리 유닛 또는 유닛들을 포함할 수 있다. 하나 또는 다수의 메모리들(304)은 또한 자기 또는 광 디스크와 같은 컴퓨터 판독 가능한 매체의 또 다른 형태일 수 있다. 하나 또는 다수의 메모리들(304)은 전자 장치(100)를 위한 대용량 저장소를 제공할 수 있다. 본 명세서에 기재된 방법을 수행하기 위한 명령들은 상기한 하나 또는 다수의 메모리들(304) 내에 저장될 수 있다.
상기 통신 모듈(308)은 프로세서(302)와 다른 시스템들 간의 통신들을 송수신하기에 적합하다. 예를 들어, 통신 모듈(308)은 인터넷과 같은 통신 네트워크(200)를 통해 통신을 송수신하는데 이용될 수 있다. 통신 모듈(308)은 전자 장치(100)가 WiFi®, Bluetooth®, NFC 등과 같은 다수의 프로토콜 중 어느 하나로 다른 장치들/서버들과 통신하도록 할 수 있다.
상기 포트(310)는, 예를 들어, 프로세서(302)에 의해 처리될 명령들을 포함하는 비-일시적 컴퓨터 판독 가능 매체를 수신하기에 적합하다. 상기 포트(310)는, 예를 들어, 전자 장치(100)와 키 관리 서버(120) 간의 유선 통신을 위해 사용될 수 있다.
상기 센서 모듈(306)은 온도, 습도 또는 임의의 다른 파라미터와 같은 센싱 파라미터를 위한 하나 또는 다수의 센서들을 포함할 수 있다.
상기 프로세서(302)는, 예를 들어, 센서 모듈(306), 보안 모듈(110) 또는 통신 모듈(308)로부터 데이터를 수신하도록 구성된다. 프로세서(302)는, 메모리(304)에 액세스하고, 메모리(304)로부터, 통신 모듈(308)로부터, 또는 상기 포트(310)에 연결된 컴퓨터 판독 가능 저장 매체로부터 수신된 명령들 및/또는 정보에 대해 동작하도록 더 구성될 수 있다.
도 3b는 전자 장치(100)의 다른 예, 즉 더 큰 전자 장치 내에 설치될 수 있는, 마이크로컨트롤러 유닛(Micro Controller Unit: MCU)(315)의 아키텍처를 도시한다. 당해 전문가라면 다른 MCU 아키텍처가 사용될 수 있음을 이해할 수 있을 것이다.
도 3b의 MCU(315)는 CPU(320), 사용자 메모리(322) 및 부트 랜덤 액세스 메모리(328)를 포함한다. CPU(320), 부트 ROM(328) 및 사용자 메모리(322)는 코드 버스(324)를 통해 통신할 수 있다. CPU(320), 부트 ROM(328), 사용자 메모리(322)는 시스템 버스(326)에 연결될 수 있고, 이것은 복수의 주변기기들(A, B, C)(330, 332, 334) 및 보안 모듈(110)에도 또한 연결될 수 있다. MCU(315)에는 보안과 관련된 구성 요소만이 예시되어 있다. 상기 MCU(315)는 더 많거나 더 적은 구성요소들을 가질 수도 있음을 당해 전문가라면 이해할 수 있을 것이다. 예컨대, MCU(315)는 더 많은 주변 장치들 및 시스템 구성요소들을 가질 수 있다.
도 4a는 일 예에 따른 보안 모듈(110)의 블록도를 나타낸다. 보안 모듈(110)은 내부의 보안 구성 요소들을 전자 장치(100)의 다른 구성 요소로부터 분리하는 신뢰 영역(trust zone)으로 간주될 수 있다. 보안 모듈(110)은 PUF 모듈(402), 암호 가속기(404) 및 보안 메모리(406)를 포함한다. 당해 전문가라면 다른 아키텍처도 또한 가능하다는 것을 이해할 수 있을 것이다. 보안 모듈(110)은 전자 장치(100)의 시스템 버스에 연결된다.
상기 PUF 모듈(410)은 PUF 및 상기 PUF와 상호 작용하는데 필요한 임의의 회로를 포함한다. 특히, PUF 모듈은 암호 가속기(404)로부터 신호를 수신하고 적절한 응답을 제공할 수 있다. 암호 가속기(404)는 암호 연산을 수행하고 PUF 모듈(402) 및 보안 메모리(406)와 상호 작용하기 위한 전용의 처리 장치를 포함한다.
보안 메모리는 PUF 모듈(402)에 의해 생성된 키들 및/또는 루트 인증서와 같은 비밀 정보를 저장하도록 구성된다. CPU(320)가 PUF 모듈(402), 보안 모듈(110) 내의 보안 주변장치들 및 보안 메모리를 제어하기 위해 필요한 명령들은 시스템에 대한 불변 부팅 프로세스(immutable booting process)의 일부인 부트 ROM(328) 내에 포함된다.
도 4b는 일 예에 따른 PUF 모듈(402)의 기능적 구성 요소들을 예시한다. PUF 모듈(402)은 PUF(450), 아날로그 프론트-엔드(analog front-end: AFE)(452), 후-처리 엔진(454) 및 RISC-V 코어(456)를 포함한다.
당해 전문가라면 PUF(450)가 임의의 적합한 PUF일 수 있음을 인식할 것이다.
아날로그 프론트-엔드(AFE)(452)는 PUF와 상호 작용하기 위한 아날로그 신호 컨디셔닝 회로를 포함한다. 예컨대, 상기 AFE는 PUF(450)와 상호작용하여 원시 '지문(fingerprint)'을 설정할 수 있다. 상기 후처리 엔진(454)은 AFE(452)의 출력을 보정하고, AFE(452)의 출력을 더 처리함으로써 추가적인 프라이버시 향상을 제공하도록 구성된다. 상기 RISC-V 코어(456)는 PUF(450)로부터의 데이터의 후처리, 예를 들어, 데이터의 에러 정정을 수행하는 CPU 코어이다. RISC-V 코어는, 다른 CPU 코어가 사용될 수는 있지만, PUF 모듈(402)을 외부 마이크로컨트롤러에 쉽게 연결할 수 있도록 하는 인터페이스를 제공한다.
도 5는 컴퓨팅 장치(500)의 블록도이다. 예를 들어, 컴퓨팅 장치(500)는 컴퓨팅 장치, 서버, 모바일 또는 휴대용 컴퓨터 또는 전화 등을 포함할 수 있다. 컴퓨팅 장치(500)는 연결된 다수의 장치들에 걸쳐 분산될 수 있다. 컴퓨팅 장치(500)는 키 관리 서버(120), 기관 서버 시스템(130)의 기관 서버, 또는 예를 들어, IoT 허브에서 사용하기 위한 서버(220)로 사용하기에 적합할 수 있다. 당해 전문가가 이해할 수 있는 바와 같이 도 5에 도시된 것과 다른 아키텍처들이 사용될 수 있다.
도면을 참조하면, 컴퓨팅 장치(500)는 하나 또는 다수의 프로세서들(510), 하나 또는 다수의 메모리들(520), 시각적 디스플레이(530) 및 가상 또는 물리적 키보드(540)와 같은 다수의 선택적 사용자 인터페이스들, 통신 모듈(550), 및 선택적으로 포트(560) 및 선택적으로 전원(570)을 포함한다. 각 구성 요소들(510, 520, 530, 540, 550, 560, 570)은 다양한 버스를 이용하여 상호 연결된다. 프로세서(510)는 메모리(520)에 저장되거나, 통신 모듈(550)을 통하여 또는 포트(560)를 통하여 수신되는, 명령들을 포함하는, 컴퓨팅 장치(500) 내에서의 실행을 위한 명령들을 처리할 수 있다.
메모리(520)는 컴퓨팅 장치(500) 내에 데이터를 저장하기 위한 것이다. 상기 하나 또는 다수의 메모리들(520)은 휘발성 메모리 유닛 또는 유닛들을 포함할 수 있다. 상기 하나 또는 다수의 메모리들은 비휘발성 메모리 유닛 또는 유닛들을 포함할 수 있다. 상기 하나 또는 다수의 메모리들(520)은 또한 자기 또는 광 디스크와 같은 컴퓨터 판독 가능 매체의 다른 형태일 수 있다. 하나 또는 다수의 메모리들(520)은 컴퓨팅 장치(500)를 위한 대용량 스토리지를 제공할 수 있다. 본 명세서에 기재된 방법을 수행하기 위한 명령들은 상기 하나 또는 다수의 메모리들(520) 내에 저장될 수 있다.
상기 장치(500)는 시각적 디스플레이(530)와 같은 시각화 수단 및 키보드(540)와 같은 가상 또는 전용의 사용자 입력 장치를 포함하는 다수의 사용자 인터페이스들을 포함한다.
통신 모듈(550)은 프로세서(510)와 원격 시스템 간의 통신을 송수신하기에 적합하다. 예를 들어, 통신 모듈(550)은 인터넷과 같은 통신 네트워크(200)를 통해 통신을 송수신하는데 이용될 수 있다.
포트(560)는, 예를 들어, 프로세서(510)에 의해 처리될 명령들을 포함하는 비-일시적 판독 가능 매체(non-transitory computer readable medium)를 수신하기에 적합하다.
프로세서(510)는, 데이터를 수신하고, 메모리(520)에 액세스하며, 통신 모듈(550)로부터, 또는 사용자 입력 장치(540)로부터, 메모리(520) 또는 포트(560)에 연결된 컴퓨터 판독 가능 저장 매체로부터 수신된 명령어들에 따라 동작하도록 구성된다.
컴퓨팅 장치(500)는 암호 키들을 안전하게 저장하기 위해, 도 5에 도시되지 않은, 하드웨어 보안 모듈(hardware security module: HSM)을 더 포함할 수 있다. 예를 들어, 키 관리 서버(120)로 사용되는 컴퓨팅 장치(500)의 경우, 인증서를 서명하기 위한 하나 또는 다수의 비밀 키 또는 펌웨어를 암호화/복호화하기 위한 서버 암호화 키 및 서버 복호화 키를 저장하기 위해 HSM이 필요할 수 있다. 예를 들어, 기관 서버 시스템(130)의 기관 서버로 사용되는 컴퓨팅 장치(500)의 경우, HSM은 기관 키 쌍의 비밀 기관 키(SAK)와 같은 하나 또는 다수의 비밀 키를 저장하도록 요구될 수 있다. 당해 전문가라면 HSM이 비밀 키들을 저장할 필요가 없으며 다른 보안 채비(security arrangements)가 적용 가능할 수도 있다는 것을 이해할 것이다. 예를 들어, 컴퓨팅 장치는 클라우드 기반의 HSM에 접속할 수 있다.
펌웨어는 전자 장치(100)에 안전하게 제공될 수 있다. 펌웨어는, 예를 들어, 기관 서버 시스템(130)에서 펌웨어에 서명하고, 서명 전후에 상기 펌웨어를 KMS(120)에서 암호화하고, 그 다음에 상기 서명된 암호화 펌웨어를 프로그래밍 하우스(180)로 전송하여 전자 장치(100)에 프로그램 되도록 함으로써 안전하게 제공될 수 있다.
상기 펌웨어는 전자 장치가 등록되어 있는 KMS(120)의 식별자, 및 트러스트 체인을 구축하기 위한 하나 또는 다수의 루트 인증서들을 포함할 수 있다. 펌웨어가 전자 장치(100)에 안전하게 제공된 후, 전자 장치(100)는 등록(enrolment)을 시작할 수 있다.
도 7 내지 도 9와 관련하여, 전자 장치(100)에 임시 등록 디바이스 인증서를 제공하는 방법들이 기술된다. 더욱이, 도 10 내지 도 12와 관련하여, 전자 장치에 디바이스 인증서(예를 들어, IoT 허브와 연결하기 위해 한 번 배치되면 사용될 수 있는)를 제공하는 방법들이 기술된다. 디바이스 인증서에 대한 신뢰가 구축되기 위해서는 전자 장치에 OEM에 대한 하나 또는 다수의 루트 인증서들이 제공될 필요가 있다.
하나 또는 다수의 루트 인증서들은 제조 시점에서 전자 장치(100)에 설치되거나, 추가 보안을 위해 등록 전에 안전하게 설치된 펌웨어와 함께 또는 펌웨어의 일부로서 전자 장치(100)에 제공될 수 있다.
도 6a는 공개 키 인프라(public key infrastructure)에 의해 제공되는 신뢰 체인의 예를 도시한다. 상기 공개 키 인프라는 메시지들의 소스를 확인하는 데 사용할 수 있는 인증서들(1002,1012,1024)의 계층 구조에 의해 표현된다. 각 인증서는 해당 개체가 보유한 개인 키에 해당하는 공개 키를 포함한다. 상기 인증서에는 키에 대한 정보, 그의 소유자(주체라 칭함)의 신원에 대한 정보, 인증서의 내용을 검증한 개체(발행자라 칭함)의 전자서명 등이 포함된다. 신뢰 체인에 대한 신뢰는 궁극적으로 루트 인증서(1002)와 연관된 루트 인증서 기관(certificate authority: CA)으로부터 도출된다. 루트 인증서(1002)는 전형적으로 루트 기관(1004)의 식별자/식별된 명칭, 루트 기관(1006)의 공개 키 및 루트 기관(1010)의 서명을 포함하되, 상기 서명은 루트 공개 키(1006)에 해당하는 비밀 키(1008)를 사용하여 서명된다.
인증 기관은 트리 구조의 형태로 복수의 인증서들을 발행할 수 있다. 루트 인증서(1002)는 그 트리의 최상위 인증서이며, 그것의 개인 키(1008)는 하위 인증서에 서명하는 데 사용된다. 도 6a에 도시된 바와 같이, 루트 비밀 키(1008)는 중간/하위 인증서(1012)에 서명하는 데 사용될 수 있다. 상기 중간 인증서(1012)는 중개자/발행자의 식별자/식별된 명칭(1014), 중개자(1020)의 공개 키, 루트 기관(1018)의 신원, 및 루트 기관(1016)의 서명을 포함한다. 루트 기관(1018)의 식별자로부터, 루트 공개 키(1006)가 발견될 수 있는 적절한 루트 인증서(1002)를 결정함으로써 중간 인증서(1012)의 진실성이 확인될 수 있다. 루트 공개 키(1006)는 중간 인증서(1012)에 서명하는 데 사용되는 루트 비밀 키(1008)에 해당하므로, 루트 공개 키(1006)를 이용하여 중간 인증서(1012)의 루트 서명(1016)을 복호화하고 추가 검사를 수행할 수 있다. 상기 중간 인증서는 그 중간 인증서(1012)와 연관된 발행자/중개자가 추가 인증서에 서명하도록 승인되는지 여부와 같은 추가 정보를 포함할 수 있다. 상기 중간자가 발행자 공개 키(1020)와 연관된 발행자 비밀 키(1022)를 사용하여 하위 인증서에 서명할 권한이 부여된다면, 발행자 비밀 키(1022)를 사용하여 서명된 임의의 인증서에 대한 신뢰는 궁극적으로 루트 인증서(1002)와 연관된 루트 인증서 기관에서 유래하는 신뢰 체인으로부터 도출될 수 있다.
도 6a에서의 발행자 비밀 키(1022)는 전자 장치와 관련된 엔드 인증서(end certificate)(1024)에 서명하는데 사용된다. 일반적으로, 엔드 인증서는 그 엔드 인증서가 연관된 당사자가 신뢰 체인에서 추가 인증서들에 서명할 자격이 없음을 보여준다. 종료 디바이스 인증서(1024)는 그 인증서(1024)가 발행된 전자 장치(1026)의 식별자, 엔드 인증서(1012)를 인증한 발행자의 식별자, 전자 장치에 대응하는 공개 키(1032), 발행자(1028)의 서명 및 발행자가 인증한 임의의 추가 정보/메타데이터(1036)를 포함한다. 따라서, 상기 엔드 인증서(1024)는, 공개 키(1032)가, 루트 인증서 기관으로부터 유래하는 신뢰 체인으로, 엔드 디바이스 인증서(1024)에 의해 식별된 개체(1026)와 연관된다는 것을 인증한다. 전자 디바이스 공개 키(1032)와 연관된 전자 디바이스 비밀 키(1034)가 존재한다.
물론, 도 6a에는 3 개의 인증서가 도시되어 있지만, 상기 체인은 여러 개의 중간 인증서들을 갖춰 더 길 수 있다.
인증서 체인의 인증서들은 추가 정보를 포함할 수 있다. 예를 들어, 인증서는 버전 번호, 일련 번호, 서명 알고리즘 ID, 사용된 공개 키 알고리즘에 대한 정보 등을 포함할 수 있다. 인증서는 유효기간을 포함할 수 있다. 공개 키 인증서에는 여러 가지 알려진 표준 형식이 있는데, 그 중 가장 흔하게 사용되는 형식은 X.509이다. X.509 인증서는 TLS/SSL을 포함한 많은 프로토콜에서 사용되며 본 명세서에 기술된 방법들과 함께 사용될 수 있다.
종래에는, OEM이 장치를 제조할 때, 그들은 암호화되지 않은 형태로 해당 전자 장치에 주입되는 비밀 정보에 의존한다. 예를 들어, 비밀 키가 해당 장치에 주입될 필요가 있다. 더욱이, 추가의 인증서 정보가 전형적으로 또한 해당 장치, 예를 들어, 엔드 인증서(1024)에 제공된다. 제조사가 장치에 비밀 키 및 엔드 인증서(1024)를 제공한다면, 몇 가지 단점이 존재한다. 첫째, OEM 또는 IoT 허브와 같은 다운스트림 당사자는 그 비밀 키가 해당 장치에 안전하게 제공되었으며 어떤 다른 당사자에게 알려지지 않았다는 것을 신뢰할 필요가 있을 것이다. 둘째, OEM과 같은 다운스트림 당사자는 제조사에 대한 신뢰를 바탕으로 신뢰의 체인을 신뢰해야 할 수 있으며, 이는 예를 들어, 펌웨어 업데이트를 다룰 때 보안에 영향을 초래할 수 있다. 대안적으로, 임시 등록 인증서가 제조 중에 장치에 제공될 수 있다. 임시 등록 인증서는 해당 장치에 주입된 비밀 키와 연관된 공개 키를 포함할 수 있으며, 그럼으로써 해당 장치를 그 공개 키와 연관시킬 수 있고, 서비스에 등록하기 위한 어떤 유한한 유효기간을 포함할 수 있다. 그러나 임시 등록 디바이스 인증서 및 관련 비밀 키를 제공하는 것은 전형적으로 보안 시설을 요구한다.
대조적으로, 상이한 접근법이 이제 설명될 것이다. 특히, 도 7 내지 도 9 및 첨부된 텍스트는 전자 장치에 임시 등록 디바이스 인증서를 제공하는 예시적인 방법들을 기술하고, 도 10 내지 도 12 및 첨부된 텍스트는, 배치할 준비가 된, 전자 장치에 엔드 디바이스 인증서를 제공하는 예시적인 방법들을 설명한다. 기술된 예들에 있어, OEM(160)은 이들이 배치된 전자 장치에 있어서의 신뢰에 기초하는 최종적인 인증 기관이라는 것을 확신할 수 있다.
도 6a, 도 6c 및 도 6d는 본 명세서에 기술된 예들에 있어 사용할 수 있는 3 개의 인증서 체인을 도시한다. 예시적인 목적으로만 도 1을 참조하면, 루트 인증서들(1038, 1044, 1058)은 모두 OEM(160)과 연관될 수 있다. 즉, 상기 OEM(160)은 루트 인증서들(1038, 1044, 1058)과 연관된 루트 인증서 기관일 수 있다. 본 명세서에서는 세 개의 인증서 체인이 기술되어 있지만, 다른 시나리오도 예상되며, 예를 들어, 단일 루트 인증서는 다른 모든 인증서가 그로부터 파생하는 루트 인증서일 수 있다. 상기 OEM에 의해 제조되는 전자 장치(100)에는 적절한 루트 인증서가 제공될 수 있으며, 이를 통해 전자 장치(100)가 장치에 제공되는 소프트웨어 또는 통신에 대해 확증할 수 있도록 신뢰 체인이 구축될 수 있다.
설명의 편의를 위해, 도 6a 내지 6d의 인증서 체인들은 도 1의 당사자들을 참조하여 설명되며, OEM(160)은 세 체인 모두의 루트 인증서와 관련된 인증 기관이다. 그러나, 당해 전문가라면 다른 시나리오들도 적용 가능하다는 것을 인식할 것이다.
도 6b는 일 예에 따른 인증서 체인을 도시한다. 도 6b의 인증서 체인에 대해서는 아래에서 추가로 사용 시 설명될 것이다. 도 6b에서, 임시 등록 신뢰 루트 인증서(1038)("TE_OEM_Root"로 라벨링 됨)은 OEM(160)에만 알려진 적절한 비밀 키를 사용하여 자체 서명된다. 임시 등록 발행 인증서(1040)("TE_OEM_IC"로 라벨링 됨)는 루트 인증서(1038)에 의해 인증된다. 즉, 임시 등록 신뢰 루트 인증서(1038)에서 식별된 공개 키와 연관된 비밀 키가 임시 등록 발행 인증서(1040)에 서명하는 데 사용된다. 임시 등록 디바이스 인증서(1042)("TE_Dev_Cert"로 라벨링 됨)는 임시 등록 발행 인증서(1040)에 의해 인증된다. 즉, 임시 등록 발행 인증서(1040)에서 식별된 공개 키와 연관된 비밀 키가 임시 등록 디바이스 인증서(1042)에 서명하는 데 사용된다.
도 7과 관련하여 논의될 바와 같이, OEM(160)은 임시 등록 신뢰 루트 인증서(1038)가 연관된 인증 기관일 수 있고, 상기 OEM 또는 KMS(120)(OEM 소유의)은 연관된 비밀 키를 소유한다. 임시 등록 발행 인증서(1040)와 연관된 비밀 키는 KMS(120)의 소유일 수 있다. 상기 OEM의 임시 등록(TE) PKI는 임시 등록 디바이스 인증서를 발행하는 데 사용되며, 이는 등록 프로토콜 동안 전자 장치로 하여금 KMS에 인증할 수 있도록 할 것이다. 이러한 인증서들은 다른 목적으로 사용되어서는 안 되며, 따라서 임시 등록 신뢰 루트 인증서(1038) 및 임시 등록 발행 인증서(1040)는 KMS를 벗어날 필요가 없다.
도 6c는 일 예에 따른 인증서 체인을 도시한다. 도 6c의 인증서 체인에 대해서는 아래에서 추가로 사용 시 설명한다. 도 6c에서, 기본 신뢰 루트 인증서(1044)("OEM_ROOT"로 라벨링 됨)는 적절한 비밀 키를 사용하여 자체 서명된다. 도 6c에는 3개의 중간 인증서들(1046, 1050, 1054)이 도시되어 있다.
상기 OEM의 기본 PKI에 대한 트러스트 앵커(trust anchor)는 자체 서명된 기본 신뢰 루트 인증서(trusted root certificate)(1038)이며, 등록 중 KMS(120)로부터 외부에서 사용되는 모든 인증서를 발행하는 데 사용된다. 기본 신뢰 루트 인증서(1038) 아래에는 다수의 발행 인증서들이 존재한다.
보안 연결 발행 인증서(1054)는 기본 신뢰 루트 인증서(1044)와 연관된 루트 비밀 키에 의해 서명된다. 후술하는 예들에 있어, 보안 연결 그 자체는 TLS 연결이며, 이에 따라 보안 연결 발행 인증서(1054)는 도 6c에서 "IC_TLS"로 라벨링 된다. 상기 보안 연결 발행 인증서(1054)와 연관된 발행자 비밀 키는 보안 연결 인증서(1056)("KMS_TLS_Cert"로 라벨링 됨)에 서명하는 데 사용된다. 후술하는 예들에 있어, 보안 연결 인증서(1056)는 KMS(120)에 의해 TLS 서버 인증 동안 전자 장치(100)에 인증하기 위해 사용된다.
도 6c는 기본 신뢰 루트 인증서(1044)로부터 파생된 2 개의 추가적인 중간 인증서(1046, 1050)들을 도시한다. 중간 인증서들(1046, 1050)(각각 "IC_A" 및 "IC_B"로 라벨링됨)는 장치별로 지정된 정책들과 관련된 파생적인 디바이스 인증서들을 인증하는 데 사용된다. 예를 들어, IC_A(1046)는 IoT 장치의 제1 클래스에 대한 보안 정책에 기초하여 제1 클래스의 IoT 장치(예를 들어, 토스터)에 대한 디바이스 인증서를 인증하는 데 사용될 수 있고, IC_B(1050)는 IoT 장치의 제2 클래스에 대한 보안 정책에 기초하여 제2 클래스의 IoT 장치(예를 들어, 조명용 전구)에 대한 디바이스 인증서를 인증하는 데 사용될 수 있다. 이것은, 어떤 발행 인증서가 그것을 서명하는 데에 사용되었는지 확인함으로써 소정의 유형의 장치들이 그들의 인증서로부터 식별될 수 있기 때문에, 보안 정책을 시행함에 있어 유용할 수 있다.
상기 중간 인증서(IC_A 및 IC_B)에 의해 서명된 장치들에 대한 최종 인증서는 또한 도 6c에 도시되어 있다 (각각 "Dev_Cert_A"(1048) 및 "Dev_Cert_B"(1052)로 라벨링 됨). 아래 예들에서 알 수 있듯이, 디바이스 인증서(1048)는 전자 장치(100)가 자신의 IoT 허브(170)에 인증하는 데 사용될 수 있다.
당해 전문가라면, 디바이스 인증서 발급을 위한 두 개의 중간 인증서(1046, 1050)가 도 6c에 도시되어 있지만, 더 많거나 더 적은 중간 발행 인증서가 기본 신뢰 루트 인증서(1044)로부터 파생될 수 있다는 것을 인식할 것이다.
도 6d는 일 예에 따른 인증서 체인을 도시한다. 도 6d에서 펌웨어 루트 인증서(1058)("OEM_Firmware"로 라벨링 됨)는 인증 기관에 의해 자체 서명된다. 펌웨어 서명 인증서(1060)("Firm_SC"로 라벨링 됨)는 그 루트 인증서의 파생물이다.
펌웨어 서명 인증서(1060)는 전자 장치(100)에 주입되는 펌웨어를 서명하는데 사용될 수 있다. 펌웨어 서명 PKI는 기본 및 임시 등록 PKI와는 별도의 루트를 갖는다. 이것은, OEM(160)은 펌웨어 서명 인증서를 사용하여 임의의 메시지, 인증서 등에 서명할 수 있고, 이 PKI를 분리하여 유지하면 (우발적으로 또는 악의적으로) 등록 보안을 손상시키는 서명에 펌웨어 PKI를 사용할 수 없음을 보장하기 때문이다.
당해 전문가라면 도 6b, 도 6c 및 도 6d의 PKI에 대한 전술한 설명에 사용된 인증서의 이름이 상기한 3 개의 PKI를 구별하는 데만 사용된다는 것을 이해할 것이다.
상기 전자 장치(100) 또는 KMS(120)은 인증서를 검증할 때는 언제나, 가능한 많은 유용한 속성들(예컨대, 주제 이름, 사용 제한, 발급 당사자의 이름 등)을 확인해야 한다. 전자 장치들이 이것을 할 수 있기 위해서는, 그들의 펌웨어가, KMS(120)의 식별자 및 다른 인증서에 대해 어떤 명칭 구조를 기대해야 할지와 같은, 이러한 확인을 하는데 필요한 정보를 갖고 있어야 한다. 전자 장치들은 가능한 한 체인의 모든 서명들을 확인하고, 체인의 중간 인증서가 인증서 발행 권한을 갖는지 확인하고(예를 들어, 손상된 장치를 그의 디바이스 인증서를 사용하여 인증서를 발급하려는 것을 방지하고), 모든 인증서가 만료되지 않았는지 확인해야 한다(그것들이 그 시간에 접속한다면).
도 7은 전자 장치(100)에 임시 등록 디바이스 인증서(1042)를 제공하는 예시적인 방법을 도시한다.
전자 장치(100)는 PUF(450)를 갖는 보안 모듈(110)을 포함하며, 상기 보안 모듈(110)은 PUF에 대한 제1 도전 및 응답에 기초하여 등록 키 쌍(EPK, ESK)을 설정하도로 구성되며, 상기 등록 키 쌍은 등록 공개 키(EPK) 및 등록 비밀 키(ESK)를 포함한다. 일 예에서, 상기 보안 모듈은 PUF(450)에 대한 제1 도전에 기초하여 등록 공개 키(EPK) 및 PUF(450)에 대한 제1 도전에 대한 응답에 기초하여 등록 비밀 키를 설정하도록 구성될 수 있다.
이러한 교환의 목적은 전자 장치(100)이 자신의 EPK에 대해 임시 등록 디바이스 인증서(1042)를 요청하고 발급받는 것이다. 상기 장치는 이것을 사용하여 도 10과 관련하여 아래에 자세히 설명된 제2 핸드쉐이킹(handshake)에서 KMS(120)에 인증한다. 이 예세서의 KMS(120)은 자신이 소유한 디바이스 식별자들(즉, 그것이 등록한 해당 디바이스 식별자들)에 해당하는 EPK들에 대한 인증서만 단지 발급할 것이다. KMS(120)는 또한 그것의 최종 디바이스 인증서(이 예에서는 Dev_Cert_A 1048)를 발행하는 데 궁극적으로 사용될 발행 인증서(IC_A 1046)를 전자 장치에 전송할 것이며, 전자 장치(100)는 그것을 KMS(120)에 의해 발급된 후속 인증서들을 검증하기 위해 저장할 것이다.
상기 전자 장치(100)는 그 전자 장치(100) 상의 펌웨어에 설치된 URL에 의해 식별된 KMS(120)에 대한 TLS 연결을 개시한다(1102). 핸드쉐이킹 중에, KMS(120)는 KMS_TLS_Cert 1056 및 TLS 발행 인증서 IC_TLS 1054를 제시하여 클라이언트에게 인증(1104에서)하고, 전자 장치(100)가 기본 루트 인증서(1044)(이전에는 전자 장치(100)에 설치되었음)로부터 TLS 인증서(1056)로의 체인을 구축할 수 있게 한다. 전자 장치(100)는 TLS 연결에 대한 신뢰 체인을 검증한다(1106). 전자 장치(100)는 기본 신뢰 루트 인증서(1044)로 시작하는 인증서 체인들만 수용한다. 전자 장치(100)는 인증서(1056)에서의 주체 명칭이 자신의 펌웨어에 포함된 KMS 식별자와 동일한지 확인한다. 가능하다면, 전자 장치(100)는 TLS 인증서(1056)가 TLS 발행 인증서(1054)에 의해 서명된 것을 확인해야 한다. 인증에 실패하면, 상기 장치는 그 연결을 종료한다. 클라이언트 인증이 요청되면, 상기 장치(100)는 적합한 인증서가 없음을 나타내며, KMS(120)에 인증하지 않는다.
OEM의 키들 중 어느 것도 손상되지 않았다고 가정하면, 이 단계는 전자 장치(100)가 그 장치의 펌웨어에서 KMS 식별자와 연관된 실제 KMS(120)와 소통하고 있음을 입증한다. 전자 장치(100)는 TLS 내의 주제의 명칭이 예상되는 것과 일치하는지 확인해야 하며, 그렇지 않으면 전자 장치(100)는 기본 신뢰 루트 인증서(1044)에 의해 서명된 임의의 인증서로부터의 연결을 받아들이는 것에 취약할 수 있고, 따라서, 예를 들어, 손상된 장치와 소통할 수도 있다. 동일한 주체 명칭을 가진 어떠한 다른 인증서도 발급되지 않도록 보장되어야 하며, 그렇지 않을 경우 이러한 인증서를 소유한 당사자는 그 인증서를 사용하여 KMS(120)를 전자 장치(100)로 사칭할 수 있다.
1106에서 TLS 연결이 확인되면, 전자 장치(100)와 KMS(120) 사이에 안전한 TLS 통신 채널이 개방된다(1108).
전자 장치(100)는 1110에서 인증서 서명 요청(Certificate Signing Request: CSR)을 생성한다. 공개 키 인프라(PKI) 시스템에서, CSR은 디지털 신원 증명서를 신청하기 위해 신청자로부터 공개 키 인프라의 등록 기관에 전송된 메시지이다. 이것은 일반적으로 인증서가 발급되어야 하는 공개 키, 식별 정보(EPK에 기초한 도메인 명칭 또는 디바이스 식별자와 같은) 및 무결성 보호(예를 들어, 디지털 서명)를 포함한다. CSR의 가장 흔한 형식은 PKCS #10 규격이며, 또 다른 형식은 서명된 공개 키(Signed Public Key) 및 Challenge SPKAC 형식이다.
1110에서, 등록 공개 키(EPK)를 디바이스 식별자와 연관시키기 위한 CSR이 생성된다. 상술한 바와 같이, 디바이스 식별자는 EPK(f(EPK))의 함수이며, 이러한 논의를 위해 디바이스 식별자는 EPK, H(EPK)의 해시(hash)를 포함한다. 따라서, CSR에서 공개 키는 EPK로 식별되고, 주체 명칭/식별된 명칭/식별자는 H(EPK)로 식별된다. 예견하면, 상기 요청된 인증서는 후속하는 TLS 핸드쉐이크 동안 전자 장치(100)에 의해 KMS(120)에 인증하는 데 사용될 것이다. 상기 CSR은 1112에서 KMS(120)으로 전송된다.
상기 CSR은 CSR에 대한 서명 형태의 등록 비밀 키 ESK에 대한 소유 증명을 포함한다. 그러나, 이것이 반드시 TLS 연결의 다른 끝단에서 전자 장치(100)에 의해 CSR이 계산되었다는 것을 KMS(120)에 증명하는 것은 아니다; 만일 공격자가 어떻든 장치에 의해 계산된 이전 CSR을 학습할 수 있다면(이들은 TLS 연결 하에서 암호화되어 전송되기 때문에 가능성은 낮음), 그들은 이것을 별도의 연결로 KMS(120)에 재전송할 수 있을 것이다. 그러나 공격자가 이러한 공격을 실행할 수 있을지라도, 그들은 해당 EPK를 모르기 때문에 반환된 인증서를 사용할 수는 없다.
KMS(120)는, CSR을 수신하면, 여러 번의 확인을 수행한다.
KMS(120)는, 1114에서, CSR의 주제 필드에 제공된 디바이스 식별자를 데이터베이스에 대해 확인하여 KMS(120)가 그 디바이스 식별자와 연관된 전자 장치(100)에 대한 인증서에 서명할 권한이 있는지, 즉 다시 말해, KMS(120)가 해당 디바이스 식별자를 "소유"하고 있는지 검증한다. 적절한 데이터베이스는 KMS(120) 상에서 로컬로 유지되거나 또는 기관 서버 시스템(130)에 대한 요청을 통해 접속될 수 있다.
KMS(120)는, 1116에서, CSR의 공개 키 필드의 등록 공개 키(EPK)가 주체 명칭 필드의 디바이스 식별자에 해싱(hasing)되는 것을 추가로 확인한다. 즉, KMS는 디바이스 식별자 DeviceID=H(EPK)임을 검증한다.
1114 및 1116에서의 확인은 임의의 순서로 또는 동시에 수행될 수 있다. 둘 중 하나의 확인이 실패하면, KMS(120)는 연결을 종료한다. 만약 그들이 성공한다면, KMS(120)는 EPK를 디바이스 식별자와 연관시킨다 - KMS(120)는 데이터베이스의 디바이스 식별자에 대한 엔트리에 EPK를 추가한다.
CSR의 공개 키가 데이터베이스의 디바이스 식별자 중 하나에 해당하는지 확인하는 것이 중요하며, 그렇지 않으면, 공격자가 임의의 키 쌍에 대한 인증서를 요청할 수 있다. 이러한 확인 과정을 부과하는 것은 인증서가 KMS(120)가 소유한 디바이스 식별자들 중 하나에 해시하는 공개 키들에 대해서만 요청될 수 있음을 의미한다. 공격자가 KMS(120)로 하여금 디바이스 식별자의 기초가 되는 실제 EPK가 아닌 다른 임의의 공개 키에 대한 인증서를 발급하게 할 수 있는 유일한 방법은, 동일한 디바이스 식별자에게 해시하는 상이한 EPK를 찾을 수 있는 경우이다. 이는 공격자가 해시 함수에서 충돌을 찾아내는 것을 필요로 하는데, 이는 정의상 매우 어려운 작업이다.
일단 모든 검사가 완료되면, KMS(120)는 임시 등록 디바이스 인증서(1042)에 서명한다("TE_Dev_Cert"라고 라벨링 됨). 상기 임시 등록 디바이스 인증서(1042)는 주체 명칭으로서 디바이스 식별자, 공개 키로서 EPK, 및 유효기간을 포함한다. 상기한 TE_Dev_Cert(1042)는 임시 등록 발행 인증서(TE_OEM_IC)(1040)와 연관된 비밀 키에 의해 서명된다.
전술한 바와 같이, OEM은 제조 중 KMS 소유의 전자 장치(100)에 의해 생성된 EPK에 대한 인증서들만 단지 요청할 수 있도록 효과적으로 제한되며, 실제 장치 이외의 어떤 당사자도 해당 ESK를 알지 못한다. 이와 같이, 상기 임시 등록 디바이스 인증서(1042)는 실제 전자 장치(100)를 제외한 모든 당사자에게 무용지물이 되어야 한다. 상기 임시 등록 디바이스 인증서(1042)는 등록에만 사용되는 임시 크리덴셜(자격 증명)로서의 사용을 강제하는 것을 돕기 위해 짧은 유효기간을 갖는다. 예를 들어, 그 유효기간은 5분 이하일 수 있다.
해당하는 일단의 장치들과 관련된 보안 정책에 의해 지정된 발행 인증서 IC_A(1046) 및 서명된 TE_Dev_Cert(1042)는 모두 1122에서 전자 장치(100)에 통신 된다.
상기한 TLS 연결은 1124에서 종료된다.
그런 다음, 전자 장치(100)는 수신된 크리덴셜(1126)을 확인하고(1122), 성공하면 TE_Dev_Cert(1042) 및 IC_A(1046)를 설치한다(1128).
전자 장치(100)는 핸드쉐이크(handshake)에서 제공된 발행 인증서 IC_A(1046)을 검증한다. 전자 장치(100)는 주체 명칭 필드가 예상한 것과 일치하는지, 발행 인증서 IC_A(1046)가 인증서를 발급하기 위해 사용될 수 있는지 확인하고, 기본 신뢰 루트 인증서(1044)를 사용하여 발행 인증서 IC_A(1046)에 대한 서명을 검증한다. 추가된 보안을 위해, 전자 장치(100)는 발행 인증서 IC_A가 중간 CA가 아닌 기본 신뢰 루트 인증서(1044)에 의해 직접 서명된 경우에만 그것을 받아들여야 한다. 가능하다면, 상기 수행된 확인들이 전자 장치(100)가 어떤 하나의/상기 실제 장치 발행 인증서만을 수락하기에 충분하다는 것이 보장되어야 하며, 특히 이것들은 TLS 발행 인증서(1054)와 그에 의해 발급된 인증서를 거부해야 하며, 또한 어떤 디바이스 인증서들 및 디바이스 인증서에 의해 발급된 어떠한 인증서도 거부해야 한다. 상기 확인이 통과되면, 전자 장치(100)는 발행 인증서 IC_A(1046)를 설치함으로써, 그것이 OEM(160)에 의해 발급된 후속 인증서들을 인증하는 데 사용할 수 있다.
전자 장치(100)는 KMS의 실제 발행 인증서들 중 하나가 아닌 모든 인증서 (이상적으로는, 이것이 시간에 앞서 미리 알려진 경우 해당 장치에 대한 특정 발행 인증서)를 거부해야 한다.
전자 장치(100)는 또한 TE_Dev_Cert(1042) 내의 디바이스 ID 및 EPK가 전자 장치(100)에 속하는 것과 일치하는지 확인한다. 이것은 TE_Dev_Cert(1042)가 다음 핸드쉐이크에서 인증에 사용하기에 적합함을 보증한다.
이러한 확인들 중 어느 하나가 실패하면, 전자 장치(100)는 등록을 중단시킨다.
이 예에서, KMS(120)이 전자 장치(100)에 인증한 TLS 채널을 통해 TE_Dev_Cert(1042)가 수신됨에 따라, TE_Dev_Cert(1042)는 KMS(120)에 의해 승인을 받은 것으로 암묵적으로 신뢰될 수 있다. 따라서, 전자 장치는 TE_Dev_Cert(1042)가 특정한 임시 등록 루트 인증서인 TE_OEM_ROOT(1038)의 파생물인지 확인할 필요가 없다. 바람직하게는, 이것은 TE_OEM_ROOT(1038) 또는 발행 인증서 TE_OEM_IC(1040) 중 어느 것도 KMS(120)를 벗어날 필요조차 없음을 의미한다. 다만, 다른 예에서, 임시 등록 루트 인증서(1038)는 OEM 펌웨어의 일부로서 장치에 미리 설치될 수 있고, KMS(120)는 또한 보안 연결을 통해 임시 등록 발행 인증서(1040)를 전송함으로써, 전자 장치가 임시 등록 디바이스 인증서(1042)에 대한 신뢰 체인을 구축할 수 있도록 할 수 있다.
도 7의 교환이 수행된 후, 전자 장치(100)는 EPK가 전자 장치(100)과 연관되어 있음을 인증하는 임시 등록 디바이스 인증서(1042)를 소지하고 있다. 상기 임시 등록 디바이스 인증서(1042)는 또한 전자 장치가 KMS와 추가 교환을 수행할 수 있는 유효기간을 제공한다. 상기 EPK는 예를 들어, 기관 서버(130) 등에 의해 이 단계에서 널리 알려져 있다. 전자 장치(100)는 또한 후속 교환에서 발급된 디바이스 인증서(1048)를 검증하는 데 사용될 수 있는 발행 인증서(1046)를 보유하고 있다.
바람직하게는, 어떠한 보안 정보도 상기 장치에 주입될 필요없이 임시 등록 디바이스 인증서가 그 장치에 제공된다. 보안 정보를 주입하려면 그 전자 장치에 비밀 정보를 주입하기 위한 보안 시설 및/또는 제3자가 안전하게 상기 정보를 주입할 수 있는 능력에 대한 신뢰가 필요하다. 보안 시설은 비용이 많이 들고 관리가 어려우며, 새로운 위협에 대한 강력한 대응을 보장하기 위해 보안 절차의 지속적인 유지 및 평가가 필요하다. 일반적으로, 키를 생성하고 저장하기 위한 하드웨어 보안 모듈(HSM)이 필요할 수 있고, 전자 장치에 키를 주입하기 위한 통합형 키 주입 시스템이 필요할 수 있으며, 그렇다 하더라도 HSM 및/또는 보안 시설이 손상된다면, 상기 주입된 정보의 무결성은 보장될 수 없다. 따라서, 보안 정보가 주입될 필요성을 회피하는 것은 전자 장치의 관리의 용이성을 제공하고, 정보의 무결성이 보장되는 상태에서 더욱 안전하다.
도 8은 전자 장치(100)에 의한 성능을 위한 일반적인 방법(1200)의 흐름도를 도시한다. 전자 장치(100)는 물리적 복제방지 기능(Physical Unclonable Function: PUF)(450)을 갖는 보안 모듈(110)을 포함하되, 상기 보안 모듈은 상기 PUF에 대한 제1 도전 및 응답에 기초하여 등록 키 쌍(EPK, ESK)을 설정하도록 구성되며, 상기 등록 키 쌍은 등록 공개 키(EPK) 및 등록 비밀 키(ESK)를 포함한다. 일 예로, 상기 보안 모듈(110)은 상기 PUF(450)에 대한 제1 도전에 기초하여 등록 공개 키(EPK)를 설정하고 및 상기 PUF(450)에 대한 제1 도전에 대한 응답에 기초하여 등록 비밀 키(ESK)를 설정하도록 구성될 수 있다. 전자 장치(100)는 임시 등록 신뢰 루트 인증서(1038)가 설치된 하나 또는 다수의 메모리들을 더 포함한다.
상기 방법(1200)은, 1210에서, 보안 연결을 통해 디바이스 식별자 및 EPK를 포함하는 인증서 서명 요청(CSR)을 EPK가 디바이스 식별자와 연관되는 것을 인증하는 인증서를 위해 서버로 전송하는 동작을 포함하되, 여기서 상기 CSR은 ESK를 사용하여 서명되고, 상기 디바이스 식별자는 EPK의 함수에 기초한다. 상기 보안 연결은 TLS 연결을 포함할 수 있다. 예컨대, 상기 보안 연결은 키 관리 서버(120)와의 TLS 연결을 포함할 수 있다.
상기 방법(1200)은, 1220에서, 보안 연결을 통해, EPK가 디바이스 식별자와 연관됨을 인증하고 유효기간을 포함하는 임시 등록 디바이스 인증서(1042)를 수신하는 동작을 더 포함한다.
상기 유효기간은 보안 연결의 타단에서 당사자와 추가적인 안전한 연결이 설정될 수 있는 시간 기간을 규정할 수 있다.
전자 장치(100)의 상기 하나 또는 다수의 메모리들은 또한 그에 설치된 기본 신뢰 루트 인증서(1044)를 구비할 수 있고, 상기 방법(1200)은 기본 신뢰 루트 인증서(1044)로부터 파생된 발행 인증서(1046)를 수신하는 동작을 포함할 수 있다. 상기 방법은 발행 인증서(1046)가 상기 기본 신뢰 루트 인증서(1044)로부터 직접 파생되는 것임을 검증하는 동작을 더 포함할 수 있다.
상기 방법(1200)은, 1230에서, 임시 등록 디바이스 인증서(1042)를 메모리에 설치하는 동작을 더 포함한다. KMS(120)가 전자 장치(100)에 인증된 후, 임시 등록 디바이스 인증서가 보안 채널을 통해 수신된 경우, 상기 임시 등록 디바이스 인증서(1042)는 KMS로부터 온 것으로 전자 장치에 의해 신뢰받을 수 있다. 다만, 다른 예들에 있어, 임시 등록 루트 인증서(1038)는 OEM 펌웨어의 일부로서 디바이스 상에 미리 설치되거나, 또는 통신 채널을 통해 전자 장치에 의해 수신될 수도 있다.
도 9는 방법(1300)의 흐름도를 도시한다. 상기 방법은 예를 들어, 키 관리 서버(120)에 의해 수행될 수 있다.
1310에서, 상기 방법(1300)은 EPK가 디바이스 식별자와 연관되어 있음을 인증하는 인증서를 위해 전자 장치에 의해 설정된 등록 키 쌍의 등록 공개 키(EPK) 및 디바이스 식별자를 포함하는 인증서 서명 요청 (CSR)을 수신하는 동작을 포함하고, 상기 디바이스 식별자는 EPK의 함수에 기초한다.
1320에서, 상기 방법(1300)은 서버가 인증서에 서명할 수 있는 디바이스 식별자의 데이터베이스에 대해 디바이스 식별자를 확인하도록 야기하는 동작을 포함한다. 예로서, 데이터베이스는 로컬로 저장될 수 있으며, 이경우 도 7과 관하여 설명된 시나리오에서 예상하는 바와 같이, 그 데이터베이스가 직접 참조될 수 있다. 그러나, 다른 예들에 있어, 데이터베이스는, 예를 들어, 기관 서버(130)와 함께 원격 서버에 위치할 수도 있고, 이 경우 디바이스 식별자를 데이터베이스에 대해 확인하도록 요청이 이루어질 수도 있다.
1330에서, 상기 방법(1300)은 디바이스 식별자가 EPK의 함수인지 확인하기 위해 디바이스 식별자의 검사를 수행하도록 하는 단계를 더 포함한다. 서버는 디바이스 식별자가 EPK의 함수인지 또는 다른 컴퓨팅 장치와 통신하여 디바이스 식별자가 EPK의 함수인지 직접 평가할 수 있다. 일부 예들에서, 상기 함수는 암호 해시 함수일 수 있다.
1340에서, 상기 방법(1300)은 EPK가 데이터베이스 내의 디바이스 식별자와 연관되도록 하는 동작을 포함한다. 예로서, 상기 데이터베이스는 로컬로 저장될 수 있으며, 이 경우, 도 7과 관련하여 설명된 시나리오에서 예상된 바와 같이, 데이터베이스가 직접 수정될 수 있다. 그러나, 다른 예들에 있어, 데이터베이스는, 예를 들어, 기관 서버(130)와 함께 원격 서버에 위치할 수 있고, 이 경우 디바이스 식별자를 데이터베이스의 EPK와 연관시키도록 요청이 이루어질 수도 있다.
1350에서, 상기 방법(1300)은 EPK가 디바이스 식별자와 연관되어 있음을 증명하고 유효기간을 포함하는 임시 등록 디바이스 인증서에 서명하는 동작을 포함한다.
1360에서, 상기 방법(1300)은 디바이스 식별자에 의해 식별된 전자 장치에 대해 보안 연결을 통해 상기 서명된 임시 등록 디바이스 인증서의 전송을 개시하는 동작을 포함한다. 상기 서명된 임시 등록 인증서는 디바이스 식별자에 의해 식별된 전자 장치로 직접 전송되거나, 또는 보안 연결을 통해 전자 장치(100)로의 전진 방향 전송을 위해 다른 컴퓨팅 장치로 전달될 수 있다.
상기 방법은 전자 장치에 발행 인증서(1046)의 통신을 개시하는 동작을 더 포함할 수 있다.
도 10은 전자 장치(100)를 등록하는 방법을 예시한다. 상기 전자 장치(100)는 물리적 복제방지 기능(PUF)(450)를 갖는 보안 모듈(110)을 포함한다. 상기 보안 모듈(110)은 PUF에 대한 제1 도전 및 응답에 기초하여 등록 키 쌍(EPK, ESK)을 설정하도록 구성되고, 상기 등록 키 쌍은 등록 공개 키(EPK) 및 등록 비밀 키(ESK)를 포함한다. 일 예에서, 상기 보안 모듈(110)은 PUF(450)에 대한 제1 도전에 기초하여 등록 공개 키(EPK)를 설정하고, PUF(450)에 대한 제1 도전에 대한 응답에 기초하여 등록 비밀 키(ESK)를 설정하도록 구성될 수 있다. 상기 전자 장치(100)는 제2 도전 및 응답에 기초하여 디바이스 키 쌍(DPK, DSK)을 설정하도록 구성되며, 상기 디바이스 키 쌍은 디바이스 공개 키(DPK) 및 디바이스 비밀 키(DSK)를 포함한다. 전자 장치(100)는 기본 신뢰 루트 인증서(1044)(예를 들어, 도 6c의 "OEM_ROOT")가 설치된 하나 또는 다수의 메모리들을 더 포함한다.
이러한 방식으로, 전자 장치(100)와 KMS(120)는 서로를 상호 인증하고, 전자 장치(100)는 이들이 IoT 허브(170)와 통신하기 위해 사용할 디바이스 공개 키(DPK)에 대한 인증서를 요청한다.
전자 장치(100)는, 1402에서, KMS(120)와의 TLS 연결을 개시한다. 핸드쉐이킹 동안, KMS(120)는 보안 연결 인증서("KMS_TLS_Cert")(1056) 및 보안 연결 발행 인증서("IC_TLS")(1054)를 제시함으로써(1404에서) 전자 장치(100)에 다시 인증한다.
전자 장치(100)는, 도 7과 관련하여 상술한 바와 같이, 이 인증서에 대한 모든 확인들, 특히 주체 명칭을 주의 깊게 확인하는 동작을 수행해야 한다. 이는 전자 장치(100)가 펌웨어에서 KMS 식별자와 연관된 KMS(120)와 대화하고 있음을 증명한다.
만일 KMS 인증이 성공한다면, 상기 전자 장치(100)는, 1406에서, 이전 거래 시 수신한, 그것의 임시 등록 디바이스 인증서(1046)를 제시하고, TLS 클라이언트 인증을 수행함으로써, 서버에 인증한다. KMS(120)는 임시 등록 발행 인증서(1040)("TE_OEM_IC")에 의해 서명된 임시 등록 디바이스 인증서만을 수용한다. 1408에서, KMS(120)는 임시 등록 디바이스 인증서에 대한 확인을 수행한다.
클라이언트 인증 성공은 전자 장치(100)가 임시 등록 디바이스 인증서(1042)에서 등록 공개 키(EPK)에 대응하는 등록 비밀 키(ESK)를 알고 있음을 증명한다. 인증서 발급 시 KMS(120)에 의한 확인은 디바이스 식별자들이 자신들이 소유한 장치들에 해당하는 것을 보장하고, 임시 등록 디바이스 인증서(1042)의 등록 공개 키는 해당 인증서에서 명명된 디바이스 식별자로 해시되기 때문에, 어떤 장치 쌍도 충돌하는 ID를 갖지 않고 공격자는 해시 함수에서 충돌을 발견할 수 없었다고 전제하면(두 이벤트들 모두 매우 작은 확률로 발생함), 이것은 그 전자 장치(100)가 임시 등록 디바이스 인증서(1042)에서의 EPK에 해당하는 ESK를 아는 H( EPK )에 의해 부여된 식별자를 가진 고유 장치임을 KMS(120)에 증명한다.
임시 등록 서명 키가 손상되면, 공격자는 그들이 KMS(120)에 TLS 클라이언트 인증을 성공적으로 완료할 수 있도록 하는 기지의 키 쌍들에 대한 임의 인증서를 발행할 수 있으나, 이 경우는 후술하는 KMS(120)에 의해 수행된 확인에 의해 적발될 것이다.
양 당사자가 인증되면, 안전한 TLS 통신 채널이 개방된다(1410).
전자 장치(100)는, 1412에서, 디바이스 공개 키(DPK)에 대한 인증서 서명 요청(Certificate Signing Request: CSR)을 생성한다. CSR에서의 주체 명칭은 EPK, H(EPK)의 암호 해시인 디바이스 식별자(도면에서 "DeviceID"로 라벨링 됨)와 같다. 전자 장치(100)는, 1414에서, CSR을 KMS(120)로 전송한다.
CSR에서의 점유의 증명은 전자 장치(100)가 CSR 내의 디바이스 공개 키(DPK)에 대응하는 디바이스 비밀 키(DSK)를 알고 있다는 어느 정도의 보장을 KMS(120)에 제공한다. 향후 CSR 아래에 채널 결합(channel binding) 정보가 포함될 수 있다면, 이는 TLS 연결의 클라이언트 끝단에 있는 전자 장치(100)가 DPK에 대응하는 DSK를 알고 있음을 증명할 것이다.
KMS(120)는, CSR을 수신한 후, 여러 번의 확인을 수행한다.
KMS(120)는, 1416에서, 임시 등록 디바이스 인증서(1042)가 유효기간 내에 있으며, 임시 등록 디바이스 인증서(1042)에 서명하는 데 사용된 서명이 올바르게 검증되는지 확인한다.
KMS(120)는, 1418에서, 임시 등록 디바이스 인증서(1042)의 디바이스 식별자가 KMS의 데이터베이스의 엔트리에 해당하는지 추가로 확인한다. 이는 TE 발행 비밀 키(TE_OEM_IC 인증서 1040과 관련됨)의 타협에 대해 완화한다. 그러한 이벤트가 발생하면, 공격자는 임의의 유효한 임시 등록 디바이스 인증서(1042)를 발행할 수 있다. 그러나, KMS가 소유한 세트 밖에 있는 디바이스 식별자에 대한 임시 등록 디바이스 인증서는 이러한 확인에 후속하여 거부될 것이다. 이것은 공격자가 KMS에 의해 소유된 디바이스 식별자에 대한 악의적인 임시 등록 디바이스 인증서들만 발급할 수 있다는 것을 의미하며, 이것은 다음 확인 과정에서 완화된다.
KMS(120)는, 1420에서, 임시 등록 디바이스 인증서(1042)의 디바이스 식별자가 H( EPK )와 동일한지 확인하며, 여기서 EPK는 임시 등록 디바이스 인증서(1042)의 공개 키 필드에 존재한다.
모든 악성 인증서는 임시 등록 디바이스 인증서의 디바이스 식별자에 대해 해시하는 EPK를 가져야 한다(이것은 이전의 확인에 의하면 KMS에 속하는 디바이스 식별자에 해당함). TLS 클라이언트 인증이 이러한 인증서로 성공하려면, 공격자가 장치의 ESK를 손상시켰거나(이 경우 장치는 어쨌든 완전히 손상됨), 또는 임시 등록 디바이스 인증서(1042)에서 EPK 이외의 공개 키가 사용될 수 있음을 의미하는 해시 함수에서의 충돌을 발견하였을 것이다(양호한 충돌 방지 해시 함수에 대해서는 불가능함).
1416, 1418, 1420에서의 확인 절차들은 보안 채널이 개방되기 전에 1408에서 선택적으로 수행될 수 있다.
KMS는, 1422에서, 임시 등록 디바이스 인증서(1042)의 디바이스 식별자가 CSR의 디바이스 식별자와 동일한지 확인한다. CSR에서의 주체 명칭이 임시 등록 디바이스 인증서(1042)에서의 그것과 일치하는지 확인하는 동작은 인증 전자 장치(100)의 신원을 발급된 인증서의 신원을 연계하기 위해 필요하다. 이는 전자 장치(100)가 다른 디바이스 식별자에 대한 인증서를 요청하고, 그 인증서를 이용하여 해당하는 타 장치를 사칭하는 것을 방지하기 위함이다.
1424에서, KMS(120)는 주어진 디바이스 식별자와 관련된 보안 정책을 그것의 데이터베이스에서 검색하고, CSR 내의 세부 사항이 KMS의 보안 정책에 부합하도록 인증서 수명, 키 사용 등에 기초하여 필요한 모든 확인을 수행한다.
KMS(120)는, 모든 확인이 성공적이면, 정책과 관련된 발행 인증서("IC_A")(1046)의 비밀 키를 이용하여 CSR 내의 상세 내용에 따라 전자 장치(100)에 디바이스 인증서(1048)를 발급한다.
새로 생성된 상기 디바이스 인증서(1048)는, 1426에서, IoT 허브 엔드포인트 및 IoT 루트 인증서와 함께 전자 디바이스(100)로 전송된다. 디바이스 인증서(1048)는 또한 IoT 허브(170)로 전송된다. 전자 장치(100)는 이제 그들의 IoT 허브(170)에 연결하기 위해 필요한 모든 정보를 갖는다.
전자 장치(100)가 자신의 IoT 허브(170)에 인증할 수 있으려면, 디바이스 인증서(1048)에 서명한 발행 인증서(1046)가 이전에 IoT 허브(170)에 등록되어 있어야 한다. 모든 디바이스 발행 인증서 IC_A, IC_B 등은 전자 장치 연결 전에 IoT 허브(170)에 등록된다.
1430에서 TLS 연결이 종료된다.
1432에서, 전자 장치(100)는 이전에 설치된 발행 인증서 IC_A(1046)를 이용하여 그것이 전송된 디바이스 인증서(1048)를 검증한다. 전자 장치(100)는 디바이스 인증서(1048)가 이전에 설치된 발행 인증서(1046)에 의해 발행되었음을 확인하고, 그것은 어떤 다른 인증서에 의해 발행된 디바이스 인증서를 수락해서는 안 된다.
전자 장치(100)는 디바이스 인증서(1048)의 주체 명칭과 공개 키가 예상된 그대로 인 것(즉, 주체가 디바이스 식별자 H(EPK)이고, 공개 키가 DPK인 것)을 확인한다. 추가적인 보안을 위해, 전자 장치(100)는 가능한 경우에 유효기간 시작일과 종료일이 불규칙성(과거인 유효기간의 시작일, 또는 만료된 디바이스 인증서(1048)와 같은)을 표시하지 않는다는 것을 확인해야 한다. 인증서(1048)가 갱신된 경우(따라서 공개 키는 변경되지 않음), 전자 장치(100)는, 예를 들어, 유효기간 시작일이 그것의 이전의 인증서에 있는 것과 다르다는 것을 확인하여 KMS(120)를 사칭한 공격자가 전자 장치의 이전 인증서를 반환하지 않았다는 어느 정도의 보장을 제공할 수 있다.
전자 장치(100)는 연결을 종료하고, 검증에 실패하면, 선택적으로 상세 정보를 제공하는 에러 메시지를 야기해야 한다.
이 단계는 전자 장치(100)가 현재 신뢰받는 발행 인증서 IC_A(1046)에 의해 유효한 디바이스 인증서(1048)를 발급받았고, 그 내용이 전자 장치(100)가 기대하는 그대로임을 보장하기 위해 사용된다. 어떤 공격자가 TLS 키(KMS_TLS_Cert 인증서(1056)에 대하여)를 손상시켰지만 발급 비밀 키(IC_A 인증서(1046)에 대하여)를 손상시키지 않은 경우, 그것들은 전자 장치(100)에 KMS(120)을 사칭할 수 있지만 그 전자 장치(100)에 대해 유효한 새 디바이스 인증서(1048)을 발급할 수 없다. 전자 장치(100)는 수신된 인증서의 세부사항을 면밀하게 확인하여, 그들이 적합한 인증서를 받았음을 보장하고, KMS(120)를 사칭하였으나 발급 비밀을 알지 못한 공격자가 전자 장치(100)를 속여서 이미 발급된 디바이스 인증서를 수락하도록 만들려고 하는지 탐지하여야 한다.
바람직하게는, 도 10의 방법 이후, 전자 장치는 디바이스 공개 키(DPK)가 디바이스 식별자(H(EPK))와 연관되어 있음을 인증하기 위한 유효한 디바이스 인증서(1048)를 소유하고 있다. 디바이스 인증서(1048)에 있어서의 신뢰는 OEM(160)과 연관된 기본 루트 인증서(1044)로부터 유도된다.
도 11은 전자 장치(100)에 의한 성능을 위한 일반적인 방법(1500)의 흐름도를 나타낸다. 전자 장치는 물리적 복제방지 기능(PUF)(450)을 갖는 보안 모듈(110)(100)을 포함한다. 상기 보안 모듈(110)은 PUF에 대한 제1 도전 및 응답에 기초하여, 등록 공개 키(EPK) 및 등록 비밀 키(ESK)를 포함하는 등록 키 쌍(EPK, ESK)을 설정하도록 구성된다. 일 예에서, 상기 보안 모듈(110)은 PUF(450)에 대한 제1 도전에 기초하여 등록 공개 키(EPK)를 설정하고 및 PUF에 대한 상기 제1 도전에 대한 응답에 기초하여 등록 비밀 키(ESK)를 설정하도록 구성될 수 있다. 전자 장치(100)는 PUF에 대한 제1 도전 및 응답에 기초하여 디바이스 키 쌍(DPK, DSK)을 설정하도록 구성되고, 상기 디바이스 키 쌍은 디바이스 공개 키(DPK) 및 디바이스 비밀 키(DSK)를 포함한다. 전자 장치(100)는 기본 신뢰 루트 인증서(1044)가 설치된 하나 또는 다수의 메모리들을 더 포함한다.
1510에서, 상기 방법(1500)은, 보안 연결을 통해, DPK가 디바이스 식별자와 연관되는 것을 인증하는 인증서(1048)에 대하여 인증서 서명 요청(CSR)을 서버로 전송하고, 여기서 상기 CSR은 DSK를 사용하여 서명된다. 상기 CSR은 상기 DPK 및 디바이스 식별자를 포함한다. 상기 디바이스 식별자는 EPK의 함수에 기초한다.
1520에서, 상기 방법(1500)은, 보안 연결을 통해, DPK를 디바이스 식별자와 연관시키는 디바이스 인증서(1048)를 수신하는 동작을 포함한다.
1530에서, 상기 방법(1500)은 디바이스 인증서(1048)가 기본 신뢰 루트 인증서(1044)의 파생물임을 검증하는 동작을 포함한다. 전자 장치(100)는 디바이스 인증서(1048)의 주체 명칭과 공개 키가 예상대로 인 것(즉, 주체가 디바이스 식별자 H(EPK)이고 공개 키가 DPK인 것)을 더 확인할 수 있다. 추가적인 보안을 위해, 전자 장치(100)는 유효기간 시작일과 종료일이 불규칙성(과거인 유효기간의 시작일, 또는 만료된 디바이스 인증서(1048)와 같은)을 표시하지 않는다는 것을 확인할 수 있다. 인증서(1048)가 갱신(따라서 공개 키가 변경되지 않음)된 경우, 전자 장치(100)는 유효기간 시작일이 이전 인증서에서의 그것과 다른 것을 확인하여 공격자가 전자 장치의 이전의 인증서를 반환하지 않았음을 어느 정도 보장할 수 있다.
1540에서, 상기 방법(1500)은, 검증에 응답하여, 디바이스 인증서(1048)를 메모리에 설치하는 동작을 포함한다.
도 12는 방법(1600)의 흐름도를 나타낸다. 이 방법은, 하나 또는 다수의 컴퓨팅 장치(즉, 키 관리 서버 시스템)를 포함할 수 있는, 키 관리 서버(120)와 같은 컴퓨팅 장치에 의한 성능에 적합하다.
1610에서, 상기 방법(1600)은 디바이스 키 쌍의 디바이스 공개 키(DPK)가 디바이스 식별자와 연관되어 있음을 인증하는 인증서에 대한 인증서 서명 요청(CSR)을 수신하는 동작을 포함한다. 상기 CSR은 디바이스 식별자 및 DPK를 포함하며, 디바이스 키 쌍의 디바이스 비밀 키(DSK)를 사용하여 서명된다. 디바이스 식별자는 전자 장치에 속하는 것으로 알려진 등록 키 쌍의 등록 공개 키의 함수에 기반한다.
KMS(120)는 전자 장치(100)로부터 보안 연결을 통해 CSR을 수신하거나, 전자 장치(100)로부터 보안 연결을 통해 CSR을 수신한 키 관리 서버 시스템의 다른 서버로부터 CSR을 수신할 수 있다.
1620에서, 상기 방법(1600)은 서버가 인증서에 서명할 수 있는 디바이스 식별자의 데이터베이스에 대해 디바이스 식별자를 확인하도록 야기하는 동작을 포함한다. 예를 들어, 데이터베이스는 로컬로 저장될 수 있으며, 이 경우에 도 10과 관련하여 설명된 시나리오에서 예상된 바와 같이, 데이터베이스가 직접 참조될 수 있다. 그러나, 다른 예들에 있어, 데이터베이스는, 예를 들어, 기관 서버(130)와 함께 원격 서버에 위치할 수 있고, 이 경우 디바이스 식별자를 데이터베이스에 대해 확인하도록 하는 요청이 이루어질 수 있다.
1630에서, 상기 방법(1600)은 디바이스 식별자가 전자 장치를 식별하는 것으로 알려져 있는지 검증하기 위해 디바이스 식별자의 확인이 수행되도록 야기하는 동작을 포함한다. 예를 들어, KMS(120)는 그 KMS(120)가 디바이스 식별자를 소유하고 있는지, 디바이스 식별자가 EPK의 함수인지, CSR의 디바이스 식별자가 이전에 발급된 임시 등록 디바이스 인증서(1042)의 디바이스 식별자와 동일한지 검증하기 위한 확인이 수행되도록 할 수 있다.
1640에서, 상기 방법(1600)은 CSR에 기초하여 디바이스 인증서(1048)에 서명하는 동작을 포함하며, 여기서 디바이스 인증서(1048)는 전자 장치에 알려진 기본 신뢰 루트 인증서의 파생물이다.
1650에서, 상기 방법은 디바이스 식별자에 의해 식별된 전자 장치에 보안 연결을 통해 디바이스 인증서(1048)의 전송을 개시하는 동작을 포함한다. 상기 방법은 상기 전자 장치가 상기 연관된 IoT 허브와 통신할 수 있도록 IoT 허브의 IoT 루트 인증서, 및 URL과 같은 엔드포인트의 전송을 개시하는 동작을 더 포함할 수 있다. 상기 방법은 디바이스 인증서(1048)를 IoT 허브(170)에 통신하는 동작을 더 포함할 수 있다.
도 13은 몇몇 예에 따른 컴퓨터 판독 가능 매체(1700)를 도시한다.
컴퓨터 판독 가능 매체(1700)는 유닛들을 저장하되, 각 유닛은, 실행될 때, 프로세서(1720) 또는 다른 처리/컴퓨팅 장치 또는 기기가 특정 동작을 수행하도록 하는 명령들(1710)을 포함한다.
예를 들어, 상기 명령들(1710)은, 프로세서(1720)로 하여금, 보안 연결을 통해, 디바이스 식별자 및 등록 공개 키(EPK)를 포함하는 인증서 서명 요청(CSR)을 EPK가 디바이스 식별자와 연관되는 것을 인증하는 인증서를 위해 서버로 전송하도록 할 수 있으며, 여기서 CSR은 등록 비밀 키(ESK)를 사용하여 서명되고, 디바이스 식별자는 EPK의 함수에 기초한다. 상기 명령들(1710)은 프로세서(1720)로 하여금 보안 연결을 통해 EPK가 디바이스 식별자와 연관됨을 인증하고 유효기간을 포함하는 임시 등록 디바이스 인증서를 수신하도록 야기할 수 있다. 상기 명령들(1710)은 프로세서(1720)로 하여금 임시 등록 디바이스 인증서를 메모리에 설치하도록 야기할 수 있다.
예를 들어, 상기 명령들(1710)은 프로세서(1720)로 하여금 EPK가 디바이스 식별자와 연관되어 있음을 인증하는 인증서를 위해 전자 장치에 의해 설정된 등록 키 쌍의 등록 공개 키(EPK)와 디바이스 식별자를 포함하는 인증서 서명 요청(CSR)을 수신하게 할 수 있으며, 여기서, 상기 디바이스 식별자는 EPK의 함수에 기초한다. 상기 명령들(1710)은 추가로 프로세서(1720)로 하여금 서버가 인증서에 서명할 수 있는 디바이스 식별자들의 데이터베이스에 대해 디바이스 식별자가 확인되도록 할 수 있다. 상기 명령들(1710)은 추가로 프로세서(1720)로 하여금 상기 디바이스 식별자가 EPK의 함수인지 검증하기 위해 디바이스 식별자의 확인이 수행되도록 야기할 수 있다. 상기 명령들(1710)은 추가로 프로세서(1720)로 하여금 EPK가 데이터베이스 내의 디바이스 식별자와 연관되도록 할 수 있다. 상기 명령들(1710)은 추가로 프로세서(1720)로 하여금 EPK가 디바이스 식별자와 연관됨을 인증하고 유효기간을 포함하는 임시 등록 디바이스 인증서에 서명하도록 할 수 있다. 명령어들(1710)은 추가로 프로세서(1720)로 하여금 디바이스 식별자에 의해 식별된 전자 장치와의 안전한 연결을 통해 상기 서명된 임시 등록 디바이스 인증서의 전송을 개시하도록 할 수 있다.
예를 들어, 상기 명령들(1710)은 프로세서(1720)로 하여금, 보안 연결을 통해, 등록 공개 키 (EPK)의 기능에 기초한 디바이스 식별자를 포함하는 디바이스 공개 키(DPK)에 대한 인증서 서명 요청(CSR)을 DPK가 디바이스 식별자와 연관되어 있음을 인증하는 인증서를 위해 서버로 전송하도록 할 수 있으며, 여기서 상기 CSR은 디바이스 비밀 키(DSK)를 사용하여 서명된다. 상기 명령들(1710)은 추가로 프로세서(1720)로 하여금 보안 연결을 통해 DPK와 디바이스 식별자를 연관시키는 디바이스 인증서를 수신하도록 할 수 있다. 상기 명령들(1710)은 추가로 프로세서(1720)로 하여금 디바이스 인증서가 기본 신뢰 루트 인증서의 파생물임을 검증하도록 할 수 있다. 상기 명령들(1710)은 추가로, 상기 검증에 응답하여, 프로세서(1720)로 하여금 메모리에 디바이스 인증서를 설치하도록 할 수 있다.
예를 들어, 상기 명령들(1710)은 프로세서(1720)로 하여금 전자 장치에 의해 설정된 디바이스 키 쌍의 디바이스 공개 키(DPK)에 대한 인증서 서명 요청 (CSR)을 수신하게 할 수 있으며, 상기 CSR은 상기 CSR은 DPK가 디바이스 식별자와 연관되어 있음을 인증하기 위한 것으로서, 전자 장치에 의해 설정된 등록 키 쌍의 등록 공개 키(EPK)의 함수에 기초한 디바이스 식별자를 포함한다. 상기 명령들(1710)은 추가로 프로세서(1720)로 하여금 상기 프로세서(1720)가 인증서에 서명할 수 있는 디바이스 식별자들의 데이터베이스에 대해 디바이스 식별자가 확인되게 할 수 있다. 상기 명령들(1710)은 추가로 프로세서(1720)로 하여금 디바이스 식별자가 전자 장치를 식별하는 것으로 알려지는지 검증하기 위해 상기 디바이스 식별자의 확인이 수행되도록 할 수 있다. 상기 명령들(1710)은 프로세서(1720)로 하여금 CSR에 기초하여 디바이스 인증서에 서명하게 할 수 있으며, 여기서 상기 디바이스 인증서는 기본 신뢰 루트 인증서의 파생물이다. 상기 명령들(1710)은 프로세서(1720)로 하여금 디바이스 식별자에 의해 식별된 전자 장치와의 보안 연결을 통해 디바이스 인증서의 전송을 개시하도록 할 수 있다.
하나 또는 다수의 컴퓨터 판독 가능 매체(들)의 임의의 조합이 활용될 수 있다. 상기 컴퓨터 판독 가능 매체는 컴퓨터 판독 가능 신호 매체 또는 컴퓨터 판독 가능 저장 매체일 수 있다. 컴퓨터로 판독 가능한 저장 매체는, 예를 들면, 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 장치, 기기, 또는 이들의 임의의 적절한 조합일 수 있으나, 이들에 한정되는 것은 아니다. 컴퓨터 판독 가능 매체의 보다 구체적인 예들(불완전한 목록임)은 다음을 포함할 수 있다: 하나 또는 다수의 배선들을 갖는 전기적 연결, 휴대용 컴퓨터 디스켓, 하드 디스크, RAM(random access memory), ROM(read-only memory), 소거 가능한 프로그램가능 판독-전용 메모리(EPROM 또는 플래시 메모리), 광섬유, 휴대용 CDROM(portable compact disc read-only memory), 광 저장 장치, 자기 저장 장치, 또는 이들의 임의의 적절한 조합. 본 문서의 맥락에서, 컴퓨터 판독 가능한 저장 매체는, 명령 실행 시스템, 장치, 또는 기기에 의해 또는 이들과 조합하여 사용하기 위한 프로그램을 포함하거나, 저장할 수 있는 임의의 유형의 매체일 수 있다.
컴퓨터 판독 가능한 신호 매체는, 예를 들면, 기저대역에서 또는 반송파의 일부로서 컴퓨터 판독 가능한 프로그램 코드가 그에 구체화된 전파된 데이터 신호를 포함할 수 있다. 이러한 전파된 신호는 전자기적, 광학적, 또는 이들의 임의의 적절한 조합을 포함하는 다양한 형태 중 어느 것을 취할 수 있지만, 이들에 한정되지 않는다. 컴퓨터 판독 가능한 신호 매체는 컴퓨터 판독 가능 저장 매체가 아니며, 명령 실행 시스템, 장치, 또는 기기에 의해 또는 그와 결부하여 사용되기 위한 프로그램을 통신, 전파, 또는 전달할 수 있는 임의의 컴퓨터 판독 가능 매체일 수 있다.
컴퓨터 판독 가능 매체에 구현된 컴퓨터 코드는 무선, 유선, 광섬유 케이블, 무선주파수(RF) 등을 포함하는 임의의 적절한 매체 또는 이들의 임의의 적절한 조합을 이용하여 전송될 수 있으나, 이에 한정되는 것은 아니다.
본 발명의 양태들을 위한 동작들을 수행하기 위한 컴퓨터 프로그램 코드는 Java™, Smalltalk™, C++ 등과 같은 객체 지향 프로그래밍 언어, 및 "C" 프로그래밍 언어 또는 유사한 프로그래밍 언어들과 같은 종래의 절차적 프로그래밍 언어들을 포함하는 또는 다수의 프로그래밍 언어들의 임의의 조합으로 작성될 수 있다. 상기 프로그램 코드는 전체적으로 사용자의 컴퓨터 상에서, 부분적으로 사용자의 컴퓨터 상에서, 독립형 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터 상에서, 그리고 부분적으로 원격 컴퓨터 상에서, 또는 전체적으로 원격 컴퓨터 또는 서버 상에서 실행될 수 있다. 후자의 시나리오의 경우, 원격 컴퓨터는 LAN(local area network) 또는 WAN(wide area network)을 포함하는 임의의 유형의 네트워크를 통하여 사용자의 컴퓨터와 연결되거나, 외부 컴퓨터와 연결될 수 있다(예를 들어, 인터넷 서비스 제공업체를 이용하여 인터넷을 통하여).
본 명세서에 기재된 방법들의 많은 변형 예는 당해 전문가에게 명백할 것이다.
본 명세서에 개시된 특징들(첨부한 청구항, 요약서 및 도면을 포함한다)은 달리 명시적인 언급이 없는 한, 동일 또는 유사한 목적을 수행하는 대안적 특징들로 대체될 수 있다. 따라서, 달리 명시적인 언급이 없는 한, 개시된 각각의 특징은 동등하거나 유사한 특징들의 단지 일반적인 일련의 예이다.
본 발명은 전술한 임의의 실시예들의 세부 사항으로 한정되지 않는다. 본 발명은 본 발명에 개시된 특징들(첨부된 청구항, 요약서 및 도면을 포함한다) 중 어떤 신규한 특징, 신규한 조합, 또는 그렇게 개시된 모든 방법 또는 과정의 단계들 중의 어떤 신규한 특징, 또는 신규한 조합에까지 확장된다. 또한, 청구범위는 단지 전술한 실시예들만 커버하는 것으로 해석되어서는 안 될 것이며, 해당 청구범위 내에 속하는 모든 실시예들을 포괄하는 것으로 해석되어야 할 것이다.

Claims (25)

  1. 전자 장치에 있어서,
    물리적 복제방지 기능(PUF)을 갖는 보안 모듈로서, 상기 PUF에 대한 제1 도전 및 응답에 기초하여, 등록 공개 키(EPK) 및 등록 비밀 키(ESK)를 포함하는 등록 키 쌍(EPK, ESK)을 설정하도록 구성되는 상기 보안 모듈;
    하나 또는 다수의 메모리들; 및
    프로세서를 포함하고,
    상기 프로세서는:
    보안 연결을 통해, 인증서 서명 요청(CSR)을 상기 EPK가 상기 디바이스 식별자와 연관됨을 인증하는 인증서를 위하여 서버로 전송하도록 구성되고, 여기서 상기 CSR는,
    상기 디바이스 식별자, 및
    상기 EPK를 포함하고;
    상기 CSR은 ESK를 이용해 서명되고, 상기 디바이스 식별자는 상기 EPK의 함수에 기초하며;
    상기 보안 연결을 통해, 상기 EPK가 상기 디바이스 식별자와 연관됨을 인증하고 유효기간을 포함하는 임시 등록 디바이스 인증서(temporary enrolment device certificate)를 수신하도록 구성되고; 및
    상기 임시 등록 디바이스 인증서를 메모리에 설치하도록 구성되는, 전자 장치.
  2. 제1항에 있어서,
    상기 하나 또는 다수의 메모리들은 그에 설치된 기본 신뢰 루트 인증서(primary trusted root certificate)를 구비하고, 상기 프로세서는:
    상기 보안 연결을 통해, 발행 인증서를 수신하도록 더 구성되며, 상기 발행 인증서는 상기 기본 신뢰 루트 인증서의 파생물인, 전자 장치.
  3. 제2항에 있어서, 상기 프로세서는:
    상기 발행 인증서가 상기 기본 신뢰 루트 인증서로부터 직접 파생되는지 검증하고; 및
    상기 검증에 응답하여, 상기 발행 인증서를 메모리에 설치하도록 더 구성되는, 전자 장치.
  4. 제2항 또는 제3항에 있어서, 상기 프로세서는:
    상기 기본 신뢰 루트 인증서의 파생물인, 보안 연결 발행 인증서 및 보안 연결 인증서를 상기 서버로부터 수신하고;
    상기 기본 신뢰 루트 인증서를 이용하여 상기 보안 연결 인증서를 검증하고; 및
    상기 검증에 응답하여, 상기 서버에 대해 보안 연결을 설정하도록 더 구성되는, 전자 장치.
  5. 제4항에 있어서,
    상기 보안 연결 인증서를 검증하는 동작은 상기 보안 연결 인증서가 상기 기본 신뢰 루트 인증서의 파생물임을 확인하는 동작 및, 선택적으로, 상기 보안 연결 인증서에 포함된 서버 식별자를 상기 전자 장치의 상기 하나 또는 다수의 메모리들에 저장된 서버 식별자에 비교하는 동작을 포함하는, 전자 장치.
  6. 제5항에 있어서,
    상기 프로세서는 상기 전자 장치의 상기 하나 또는 다수의 메모리들에 저장된 서버 식별자에 의해 식별된 상기 서버에 대해 보안 연결을 개시하도록 더 구성되는, 전자 장치.
  7. 제2항 내지 제6항 중의 어느 한 항에 있어서,
    상기 장치는, 상기 PUF에 대한 제2 도전 및 응답에 기초하여, 디바이스 공개 키(DPK) 및 디바이스 비밀 키(DSK)를 포함하는 디바이스 키 쌍(DPK, DSK)을 설정하도록 더 구성되고;
    상기 프로세서는:
    제2 보안 연결을 통해, 상기 DPK가 상기 디바이스 식별자와 관련됨을 인증하는 인증서를 위한 제2 인증서 서명 요청(CSR)을 서버로 전송하되, 상기 제2 CSR은,
    상기 DPK, 및
    상기 디바이스 식별자를 포함하고;
    상기 제2 CSR은 DSK를 이용하여 서명되고;
    상기 제2 보안 연결을 통해, 상기 DPK를 상기 디바이스 식별자와 연관시키는 디바이스 인증서를 수신하고;
    상기 디바이스 인증서가 상기 기본 신뢰 루트 인증서의 파생물임을 검증하고; 및
    상기 검증에 응답하여, 상기 디바이스 인증서를 메모리에 설치하도록 더 구성되는, 전자 장치.
  8. 임의의 선행하는 항에 있어서,
    상기 디바이스 식별자는 상기 EPK의 해시 함수에 기초하는, 전자 장치.
  9. 임의의 선행하는 항에 있어서,
    상기 임시 등록 디바이스 인증서의 유효기간은 10분 미만인, 전자 장치.
  10. 임의의 선행하는 항에 있어서,
    상기 하나 또는 다수의 메모리들은 그에 설치된 임시 등록 신뢰 루트 인증서를 구비하고;
    상기 프로세서는, 상기 임시 등록 디바이스 인증서를 수신한 후, 상기 임시 등록 신뢰 루트 인증서를 이용하여 상기 임시 등록 디바이스 인증서를 검증하도록 더 구성되고; 및
    상기 임시 등록 디바이스 인증서를 설치하는 동작은 상기 검증에 응답하는 것인, 전자 장치.
  11. 전자 장치에 의한 성능을 위한 방법에 있어서, 상기 전자 장치는:
    물리적 복제방지 기능(PUF)을 갖는 보안 모듈을 포함하고, 상기 보안 모듈은 상기 PUF에 대한 제1 도전 및 응답에 기반하여 등록 키 쌍(EPK, ESK)을 설정하도록 구성되고, 상기 등록 키 쌍은 등록 공개 키(EPK) 및 등록 비밀 키(ESK)를 포함하는 상기 보안 모듈; 및
    하나 또는 다수의 메모리들 더 포함하고, 상기 방법은:
    보안 연결을 통해, 상기 EPK가 디바이스 식별자와 관련됨을 인증하는 인증서를 위해 인증서 서명 요청(CSR)을 서버로 전송하는 동작을 포함하고, 상기 CSR은,
    상기 디바이스 식별자, 및
    상기 EPK를 포함하고,
    상기 CSR은 ESK를 사용하여 서명되며, 상기 디바이스 식별자는 상기 EPK의 함수에 기초하며;
    상기 보안 연결을 통해, 상기 EPK가 상기 디바이스 식별자와 연관됨을 인증하고 유효기간을 포함하는 임시 등록 디바이스 인증서를 수신하는 동작; 및
    상기 임시 등록 디바이스 인증서를 메모리에 설치하는 동작을 더 포함하는, 방법.
  12. 서버에 있어서,
    전자 장치에 의해 설정된 등록 키 쌍의 등록 공개 키(EPK) 및 디바이스 식별자를 포함하는 인증서 서명 요청(CSR)을 수신하되, 상기 CSR은 상기 EPK가 디바이스 식별자와 연관되어 있음을 인증하는 인증서를 위한 것으로서, 상기 디바이스 식별자는 EPK의 함수에 기초하고;
    상기 서버가 인증서에 서명할 수 있는 디바이스 식별자들의 데이터베이스에 대하여 상기 디바이스 식별자가 확인되도록 하고;
    상기 디바이스 식별자가 상기 EPK의 함수임을 인증하기 위해, 상기 디바이스 식별자의 확인이 수행되도록 하고;
    상기 EPK가 데이터베이스 내의 디바이스 식별자와 연관되도록 하고;
    상기 EPK가 상기 디바이스 식별자와 연관됨을 인증하고 유효기간을 포함하는 임시 등록 디바이스 인증서에 서명하고; 및
    상기 디바이스 식별자에 의해 식별된 상기 전자 장치에 대한 보안 연결을 통해 상기 서명된 임시 등록 디바이스 인증서의 전송을 개시하도록 구성되는, 서버.
  13. 제12항에 있어서,
    상기 서버는, 상기 보안 연결을 통해 발행 인증서를 전송하도록 더 구성되고, 상기 발행 인증서는 상기 전자 장치에 알려진 기본 신뢰 루트 인증서의 파생물인, 서버.
  14. 제13항에 있어서,
    상기 서버는, 상기 디바이스 식별자에 기초하여, 상기 기본 신뢰 루트 인증서의 파생물인 다수의 발행 인증서들로부터 상기 보안 연결을 통해 전송할 발행 인증서를 선택하도록 더 구성되는, 서버.
  15. 제12항 내지 제14항 중의 어느 한 항에 있어서,
    상기 보안 연결을 통해 전송되는 발행 인증서는 디바이스 식별자와 관련된 보안 정책에 기초하는, 서버.
  16. 제12항 내지 제15항 중의 어느 한 항에 있어서,
    데이터베이스에 대해 전자 장치의 디바이스 식별자가 확인되도록 하는 동작은, CSR에 수신된 디바이스 식별자가 데이터베이스에 이미 저장되어 있는지 확인을 수행하도록 하는 동작을 포함하며, 상기 서버는 상기 수신된 디바이스 식별자가 데이터베이스에 이미 저장되어 있는 경우 상기 임시 등록 디바이스 인증서에 서명하도록 권한이 부여되는, 서버.
  17. 제12항 내지 제16항 중의 어느 한 항에 있어서,
    상기 디바이스 식별자가 EPK의 함수임을 인증하기 위해 디바이스 식별자의 확인이 수행되도록 하는 동작은, 상기 디바이스 식별자가 EPK의 해시 함수에 기초하고 있음을 인증하기 위한 상기 디바이스 식별자의 확인이 수행되도록 하는 동작을 포함하는, 서버.
  18. 제12항 내지 제17항 중의 어느 한 항에 있어서,
    상기 임시 등록 디바이스 인증서의 유효기간은 10분 미만인, 서버.
  19. 제12항 내지 제18항 중의 어느 한 항에 있어서,
    상기 서버는 보안 연결 발행 인증서 및 보안 연결 인증서의 상기 전자 장치로의 전송하는 것을 개시하도록 더 구성되며, 상기 보안 연결 발행 인증서 및 보안 연결 인증서는 전자 장치에 알려진 기본 신뢰 루트 인증서의 파생물인, 서버.
  20. 제13항 내지 제22항 중의 어느 한 항에 있어서, 상기 서버는:
    임시 등록 디바이스 인증서를 수신하고;
    상기 디바이스 식별자 및 상기 전자 장치에 의해 설정된 디바이스 키 쌍의 디바이스 공개 키(DPK)를 포함하는 제2 CSR을 수신하고, 여기서 상기 제2 CSR은 상기 DPK가 상기 디바이스 식별자와 연관됨을 인증하는 인증서를 위한 것이며;
    상기 제2 CSR의 디바이스 식별자가 상기 서버가 인증서에 서명할 수 있는 디바이스 식별자들의 데이터베이스에 대하여 확인되도록 하고;
    상기 제2 CSR의 디바이스 식별자가 상기 수신된 임시 등록 디바이스 인증서에서 지정된 디바이스 식별자와 일치하는지 확인하기 위해, 상기 제2 CSR의 디바이스 식별자에 대한 확인을 수행하도록 하고;
    상기 CSR에 기초하여, 디바이스 인증서에 서명하고, 상기 디바이스 인증서는 상기 전자 장치에 알려져 있는 기본 신뢰 루트 인증서의 파생물이고; 및
    상기 디바이스 식별자에 의해 식별된 전자 장치에 대해 제2 보안 연결을 통해 상기 디바이스 인증서의 전송을 개시하도록 더 구성되는, 서버.
  21. 제20항에 있어서,
    상기 서버는, 상기 디바이스 인증서의 전송을 개시하기 전에, 상기 제2 CSR의 디바이스 식별자가 상기 EPK의 함수임을 확인하기 위해, 상기 제2 CSR의 디바이스 식별자의 확인이 수행되도록 하는, 서버.
  22. 서버에서의 방법에 있어서,
    디바이스 식별자 및 전자 장치에 의해 설정된 등록 키 쌍의 등록 공개 키(EPK)를 포함하는 인증서 서명 요청(CSR)을 수신하는 동작으로서, 상기 CSR은 EPK가 디바이스 식별자와 연관되어 있음을 인증하는 인증서를 위한 것이며, 상기 디바이스 식별자는 EPK의 함수에 기초하는, 동작;
    상기 서버가 인증서에 서명할 수 있는 디바이스 식별자들의 데이터베이스에 대하여 상기 디바이스 식별자를 확인하도록 하는 동작;
    상기 디바이스 식별자가 상기 EPK의 함수임을 인증하기 위해 상기 디바이스 식별자의 확인이 수행되도록 하는 동작;
    상기 EPK가 데이터베이스 내의 디바이스 식별자와 연관되도록 하는 동작;
    상기 EPK가 디바이스 식별자와 연관됨을 인증하고 유효기간을 포함하는 임시 등록 디바이스 인증서에 서명하는 동작; 및
    상기 디바이스 식별자에 의해 식별된 전자 장치에 대해 보안 연결을 통해 상기 서명된 임시 등록 디바이스 인증서의 전송을 개시하는 동작을 포함하는, 방법.
  23. 시스템에 있어서,
    상기 시스템은 전자 장치를 포함하고, 상기 전자 장치는:
    물리적 복제방지 기능(physical unclonable function: PUF)을 갖는 보안 모듈을 포함하고, 상기 보안 모듈은 상기 PUF에 대한 제1 도전 및 응답에 기반하여 등록 키 쌍(EPK, ESK)을 설정하고, 상기 등록 키 쌍은 등록 공개 키(EPK) 및 등록 비밀 키(ESK)를 포함하는 상기 보안 모듈;
    하나 또는 다수의 메모리들; 및
    프로세서를 포함하고;
    상기 프로세서는:
    보안 연결을 통해, 상기 EPK가 디바이스 식별자와 관련됨을 인증하는 인증서에 대하여 인증서 서명 요청(CSR)을 상기 하나 또는 다수의 서버들 중의 어느 하나로 전송하고, 상기 CSR은,
    상기 디바이스 식별자, 및
    상기 EPK를 포함하고,
    상기 CSR은 상기 ESK를 사용하여 서명되고, 상기 디바이스 식별자는 EPK의 함수에 기초하고;
    상기 보안 연결을 통해, 상기 EPK가 상기 디바이스 식별자와 연관됨을 인증하고 유효기간을 포함하는 임시 등록 디바이스 인증서를 수신하고; 및
    상기 검증에 응답하여, 상기 임시 등록 디바이스 인증서를 메모리에 설치하도록 구성되고; 및
    상기 시스템은 하나 또는 다수의 서버들을 포함하되, 상기 하나 또는 다수의 서버들은:
    상기 보안 연결을 통해, 상기 전자 장치로부터, 상기 디바이스 식별자와 연관됨을 인증하는 인증서에 대하여 상기 디바이스 식별자 및 상기 EPK를 포함하는 CSR을 상기 EPK가 수신하고;
    상기 하나 또는 다수의 서버들이 인증서에 서명할 수 있는 디바이스 식별자들의 데이터베이스에 대하여 상기 디바이스 식별자를 확인하고;
    상기 디바이스 식별자가 상기 EPK의 함수임을 인증하기 위해 상기 디바이스 식별자를 확인하고;
    상기 EPK를 데이터베이스 내의 디바이스 식별자와 연관시키고;
    상기 EPK가 상기 디바이스 식별자와 연관됨을 인증하고 상기 유효기간을 포함하는 상기 임시 등록 디바이스 인증서에 서명하고; 및
    상기 서명된 임시 등록 디바이스 인증서를 보안 연결을 통해 전자 장치로 전송하도록 구성되는, 시스템.
  24. 전자 장치의 컴퓨팅 장치의 프로세서에 의해 실행될 때, 제11항에 따른 방법을 상기 프로세서가 실행하도록 야기하는, 그에 저장된 명령들을 갖는 컴퓨터 판독 가능 매체.
  25. 전자 장치의 컴퓨팅 장치의 프로세서에 의해 실행될 때, 제22항에 따른 방법을 상기 프로세서가 실행하도록 야기하는, 그에 저장된 명령들을 갖는 컴퓨터 판독 가능 매체.
KR1020237036835A 2021-04-12 2022-04-12 임시 신뢰점 등록 및 디바이스-구속형 공개 키 등록 KR20240045161A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB2105185.9 2021-04-12

Publications (1)

Publication Number Publication Date
KR20240045161A true KR20240045161A (ko) 2024-04-05

Family

ID=

Similar Documents

Publication Publication Date Title
US10382485B2 (en) Blockchain-assisted public key infrastructure for internet of things applications
CN110770695B (zh) 物联网(iot)设备管理
US11849029B2 (en) Method of data transfer, a method of controlling use of data and cryptographic device
US11070542B2 (en) Systems and methods for certificate chain validation of secure elements
US10437985B2 (en) Using a second device to enroll a secure application enclave
US9912485B2 (en) Method and apparatus for embedding secret information in digital certificates
EP3425842B1 (en) Communication system and communication method for certificate generation
US8397281B2 (en) Service assisted secret provisioning
US20220116230A1 (en) Method for securely providing a personalized electronic identity on a terminal
US20140013116A1 (en) Apparatus and method for performing over-the-air identity provisioning
CN110771087B (zh) 私钥更新
JP2024513521A (ja) 組み込みデバイスの安全な信頼の起点登録及び識別管理
KR20240045161A (ko) 임시 신뢰점 등록 및 디바이스-구속형 공개 키 등록
KR20240045162A (ko) 임베디드 장치들의 안전한 신뢰 루트 등록 및 신원 관리
JP2024513526A (ja) ルートオブトラスト登録及びデバイス拘束された公開鍵登録
KR20240045160A (ko) 신뢰 루트(Root-of-Trust) 기반의 보안을 갖는 암호화되고 인증된 펌웨어 제공 방법 및 시스템
JP2024516126A (ja) 信頼の起点に基づくセキュリティを備えた暗号化及び認証されたファームウェアプロビジョニング
KR20170111809A (ko) 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법