KR20210092218A - 실링 및 검증을 통한 디바이스 인증 - Google Patents

실링 및 검증을 통한 디바이스 인증 Download PDF

Info

Publication number
KR20210092218A
KR20210092218A KR1020217015587A KR20217015587A KR20210092218A KR 20210092218 A KR20210092218 A KR 20210092218A KR 1020217015587 A KR1020217015587 A KR 1020217015587A KR 20217015587 A KR20217015587 A KR 20217015587A KR 20210092218 A KR20210092218 A KR 20210092218A
Authority
KR
South Korea
Prior art keywords
rot
information
production
key
processor
Prior art date
Application number
KR1020217015587A
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 KR20210092218A publication Critical patent/KR20210092218A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

본 개시물은, 디바이스(1)의 RoT(2)에 의해 관리되는 디바이스(1)의 보안 기능을 보안 소유자에 의해 가능하게 하는 디바이스 정보를 디바이스(1)에 실링하고, 또한 디바이스(1)를 시스템(10)에 부트스트랩하고, 마지막으로 RoT(2)와 디바이스(1)의 디바이스 정보의 조합을 인증하는 방법에 관한 것이다. 이 방법은 디바이스(1) 생산 흐름에 미치는 영향을 최소화한다.

Description

실링 및 검증을 통한 디바이스 인증
본 개시물은 일반적으로 디바이스를 인증하는 기술에 관한 것이다. 보다 구체적으로, 본 개시물은 신뢰점(Root-of-Trust)(RoT)을 포함하고 보안 소유자(security owner)의 시스템에 의해 인증될 수 있는 사물 인터넷(Internet of Things)(IoT) 디바이스에 관한 것이다.
IoT는 물리적 디바이스들, 어플라이언스들 또는 전자기기 또는 소프트웨어에 내장된 아이템들의 네트워크로서, 이들 객체가 인적 상호작용 없이 데이터를 교환할 수 있게 한다. 권고 ITU-T Y.2060은 IoT를, 기존의 및 진화하는 상호 운용 가능한 정보 및 통신 기술을 기반으로 물리적 사물과 가상의 사물을 상호 연결함으로써 고급 서비스를 가능하게 하는, 정보 사회를 위한 글로벌 인프라로 정의한다. 'IoT'라는 용어에서의 '사물(thing)'은 식별되어 통신 네트워크에 통합될 수 있는 물리적 세계― 물리적 사물들 ― 또는 정보 세계― 가상의 사물들 ―의 객체로 간주된다. 이 정의에서, 물리적 사물은 물리적 세계에 존재하며 감지, 작동 및 연결될 수 있다. 물리적 사물의 예로는 주변 환경, 산업용 로봇, 상품 및 전기 장비가 있다. 이 정의에서, 가상의 사물은 정보 세계에 존재하며 저장, 처리 및 액세스될 수 있다. 가상의 사물의 예로는 멀티미디어 콘텐츠 및 애플리케이션 소프트웨어가 있다.
ITU-T Y.2060에서, IoT 디바이스는 필수적인 통신 기능과 선택적인 감지, 작동, 데이터 캡처, 데이터 저장 및/또는 데이터 처리 기능을 갖춘 장비로 간주된다. IoT 디바이스는 통상적으로 다른 디바이스와 통신한다: 즉, 게이트웨이를 경유한 통신 네트워크를 통해 통신하거나, 게이트웨이 없이 통신 네트워크를 통해 통신하거나, 또는 통신 네트워크를 사용하지 않고 직접 통신할 수 있다. 또한, 통신 시나리오들의 조합이 가능하다; 예를 들어, 디바이스가 애드-혹(ad-hoc) 네트워크와 같은 로컬 네트워크, 즉, 디바이스들 사이 및 디바이스들과 게이트웨이 사이에 로컬 연결을 제공하는 네트워크를 통한 직접 통신에 이어, 로컬 네트워크 게이트웨이를 경유한 통신 네트워크를 통한 통신을 사용해서 다른 디바이스와 통신할 수 있다.
통신 네트워크는 IoT 디바이스에 의해 캡처되는 데이터를 애플리케이션 및 기타 디바이스들에 전송할 수 있을 뿐만 아니라, 애플리케이션으로부터의 명령을 디바이스에 전송할 수 있다. 통신 네트워크는 통상적으로 안정적이고 효율적인 데이터 전송 기능을 제공한다. IoT 네트워크 인프라는 종래의 TCP/IP 기반 네트워크와 같은 기존의 네트워크 및/또는 차세대 네트워크(NGN)와 같은 진화하는 네트워크를 통해 실현될 수 있다.
IoT 디바이스는, 예컨대 시스템 온 칩(system on a chip)(SoC) 형태로 집적 회로를 중심으로 구축될 수 있다. 이러한 SoC는, 디바이스에 의해 항상 신뢰받으며 디바이스의 크리덴셜(credentials) 및 소프트웨어에 대한 강력한 보호를 제공하기 위해 하드웨어 기반으로 제공되는 일련의 기능인 신뢰점(Root-of-Trust)(RoT)을 포함할 수 있다. RoT는 통상적으로 통합된 보안 요소(Secure Element)에서 구현된다. RoT를 디바이스의 SoC에 내장하지 않고 디바이스의 통합된 보안 요소에서 구현하는 것이 가능하다. RoT는 일반적으로 신뢰할 수 있는 실행 환경(TEE)보다 더욱 신뢰할 수 있는 것이다.
RoT는 데이터를 칩 상의 다른 디바이스들과 안전하게 공유할 수 있다. RoT는 SoC 내에서 서로 다른 호스트 CPU에서 실행되는 클라이언트 애플리케이션을 대신하여 비밀(secret)을 생성, 저장 및 사용하기에 안전한 환경을 제공한다. RoT는 보안 모듈, 암호 코어 등으로 구성될 수 있다.
IoT 디바이스는, 예를 들어 특정 기능을 활성화하기 위해 연결된 디바이스의 강력한 인증을 필요로 하는 특정 시스템에 연결될 수 있다. 이러한 인증은 통상적으로 디바이스와 시스템 사이의 강력한 암호 인증 프로토콜 설정에서 사용된 디바이스에 내장되는 고유한 디바이스별 비밀에 의존한다. 예를 들어, 시스템은 IoT 플랫폼일 수 있다.
이러한 고유한 디바이스별 비밀은 일반적으로 RoT에서 보안되며 일반적으로 SoC 또는 보안 요소 제조 중에 권한설정된다. 시스템은 디바이스에 내장되는 RoT 비밀을 인증한다. 디바이스를 인증하기 위해, 시스템은 고유한 RoT별 비밀을 디바이스에 안전하게 바인딩할 필요가 있다.
예를 들어, 멀린 페어링(Merlin pairing) 또는 TVkey의 디바이스 실링(Device Sealing) 보안 메시지와 같은 다양한 해법이 있다. 멀린 페어링은 제조시에 설정되는 고유 키(unique keys)를 이용한다. 보안 메시지 TVkey는 칩 제조시에 설정되는 비대칭 고유 키를 이용한다.
기존의 해법의 단점은 디바이스의 제조 과정에서 특정한 처리가 필요하다는 점이다. 따라서 이러한 종래 기술을 사용하면 디바이스를 제조하는 데 오래 걸리고 비용이 많이 들며 이러한 디바이스의 전체 생산 흐름에 미치는 영향이 크다.
본 개시물은 종래 기술에 존재하는 상기와 같은 문제를 해결한다.
본 개시물의 양태에 따르면, 디바이스가 시스템에 의해 프로그래밍 및 인증될 수 있는 방법이 제안된다. 디바이스의 신뢰점(Root-Of-Trust)(RoT)에 의해 관리되는 메모리는 디바이스 생산 동안 디바이스의 디바이스 정보를 수신할 수 있다. 디바이스는 시스템에 부트스트랩될 수 있으며, 시스템의 암호 프로토콜에 의해 RoT를 인증하기 위해 RoT 및 프로그래밍된 디바이스 정보에 대한 정보가 제공될 수 있다. 이로 인해 인증된 RoT와 시스템에 알려진 디바이스 정보가 바인딩될 수 있으며, 이를 이용해서 디바이스의 디바이스 생산을 검증할 수 있고, 이로써 바인딩이 시스템에 의해 검증될 수 있게 된다.
이렇게 하면, 디바이스의 제조 과정에서의 특정한 처리가 회피될 수 있다. 즉, 디바이스가 시스템에 의해 프로그래밍 및 인증되기 때문에 제조 시간이 절약된다.
실시형태에 있어서, 디바이스는 하나의 또는 다수의 SoC를 가질 수 있고 RoT는 각각의 SoC에 대한 디바이스 정보의 프로그래밍을 관리할 수 있다. 디바이스 정보는 SoC(들)는 물론 디바이스와도 관련될 수 있다. 디바이스와 관련되는 경우, 정보는 예를 들어 모듈에 대한 정보이거나, 또는 CPU(들) 또는 애플리케이션(들)에 대한 정보일 수 있다. 한 당사자가 디바이스를 공급할 수 있고, 다른 당사자가 디바이스를 소유할 수 있기 때문에, 모듈 제조자 및 모듈/디바이스 소유자가 될 수 있다. 따라서, 정보가 내장된 모듈 및 해당 모듈의 소유자 각각에 대한 정보의 프로그래밍을 관리할 필요가 있지만, 반드시 다른 SoC일 필요는 없다.
이렇게 하면, 디바이스의 설계가 더욱 다양해지고, 디바이스의 RoT를 사용하는 것만으로 서로 다른 SoC에 대하여 인증을 수행할 수 있다.
실시형태에 있어서, RoT는 디바이스의 SoC들 중 어느 하나에 내장될 필요가 없다.
이렇게 하면, 디바이스의 설계 및 생산이 더욱 다양해진다.
실시형태에 있어서, RoT는 디바이스 생산 동안 디바이스의 각각의 SoC와 전용 바인딩 키에 합의할 수 있으며, 이는 RoT와 디바이스를 암호 방식으로 바인딩하는 데 사용될 수 있다.
이렇게 하면, RoT와 디바이스가 서로 암호 방식으로 바인딩될 수 있다. 키 합의는 순방향 보안성을 유지하기 위해 디피-헬먼(Diffie-Hellman) 키 교환을 사용하는 암호 기법의 문제일 수 있다.
실시형태에 있어서, 디바이스 키는 디바이스와 RoT 사이의 통신을 암호화하는 데 사용될 수 있다.
이렇게 하면, 디바이스와 RoT가 안전한 방식으로 서로 정보를 송수신할 수 있다.
실시형태에 있어서, 디바이스 정보의 프로그래밍은 영구적인 방식으로 수행될 수 있다.
이렇게 하면, 디바이스 정보가 디바이스에 영구적으로 저장되며 쉽게 손실되지 않는다.
실시형태에 있어서, RoT는 시스템에 한 번만 부트스트랩하도록 구성될 수 있다.
이렇게 하면, 시스템에 대한 부트스트랩이 한 번만 발생하므로, 특정 부트스트랩이 이전에 수행된 부트스트랩과 충돌을 일으키지 않는다. 또한, 시스템과 디바이스 사이의 원치 않는 통신량이 제한된다.
실시형태에 있어서, 방법은 RoT의 디바이스 생산에 대한 정보를 보안 소유자에게 보고하는 단계로 더 구성될 수 있다.
이렇게 하면, 보안 소유자가 특정 디바이스에 배치되는 특정 RoT의 디바이스 생산에 대한 더 많은 정보를 이용할 수 있다.
실시형태에 있어서, 디바이스의 디바이스 생산 검증은 부트스트랩된 RoT가 디바이스 생산 동안 보고되었는지의 여부를 검증하는 것을 포함할 수 있다.
이렇게 하면, 보안 소유자가 디바이스의 출처를 보다 쉽게 확인할 수 있다.
실시형태에 있어서, 검증은 시스템에 대한 디바이스의 부트스트랩 동안 강제될 수 있다.
이렇게 하면, 시스템이 디바이스를 인증할 때 시스템에 의한 디바이스 정보의 검증이 수행된다. 이로 인해, 인증 프로세스가 더욱 양호해진다.
실시형태에 있어서, 검증은 보고된 디바이스 생산 정보를 시스템이 수신한 후에 수행될 수 있다.
이렇게 하면, 검증 프로세스가 보고된 디바이스 생산 정보를 시스템이 수신하는 시간에 덜 의존하게 된다. 실시형태에 있어서, 부트스트랩된 정보 및 보고된 디바이스 생산 정보는 RoT의 보안 소유자에게 보고될 수 있다. 이렇게 하면, 보안 소유자가 어떤 디바이스 생산 정보가 디바이스 부트스트랩된 정보에 대응하는지를 결정할 수 있다. 다시 말해, 보안 소유자가 어느 생산된 디바이스가 어느 인증된 디바이스에 속하는지를 결정할 수 있다.
실시형태에 있어서, RoT에 대한 정보는 RoT의 공개 아이디(public id)로 구성될 수 있다. 보고될 최소 정보는 RoT의 공개 식별자이다. 기타 정보는 선택 사항이다. 따라서 RoT의 타입이 디바이스 생산지가 서로 다른 상이한 디바이스 소유자들에 의해 공유될 경우: 생산지가 서로 다른 각각의 디바이스 소유자가 자신의 디바이스에 내장된 RoT의 공개 식별자를 보고하여, 한 디바이스 소유자가 다른 디바이스 소유자의 RoT를 요구할 수 없도록 할 수 있다. RoT의 타입이 단일의 디바이스 소유자에 의해서만 사용되면, 보안을 위한 보고는 필요하지 않다. 그렇지 않으면, 보안을 위해 디바이스 소유자별 RoT 공개 아이디 보고가 필수이다.
이렇게 하면, 특정 디바이스에 배치된 특정 RoT가 결정될 수 있다.
본 개시물의 다른 양태에 따르면, 설명된 실시형태들 중 어느 하나에 따른 방법의 단계들을 수행하도록 구성되는 프로세서를 포함할 수 있는 디바이스가 제안된다.
본 개시물의 다른 양태에 따르면, 설명된 실시형태들 중 어느 하나에 따른 방법의 단계들을 수행하도록 구성되는 집적 회로를 포함할 수 있는 디바이스가 제안된다.
실시형태에 있어서, 디바이스는 사물 인터넷 디바이스일 수 있다.
본 개시물의 다른 양태에 따르면, 컴퓨터 판독 가능한 비일시적 저장 매체에 구현될 수 있는 컴퓨터 프로그램 제품이 제안되고, 컴퓨터 프로그램 제품은, 프로세서에 의한 실행시에, 프로세서로 하여금 설명된 실시형태들 중 어느 하나에 따른 방법의 단계들을 수행하게 할 수 있는 컴퓨터 실행 가능 명령어를 포함할 수 있다.
본 개시물의 다른 양태에 따르면, 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 프로세서에 의한 실행시에, 프로세서로 하여금 설명된 실시형태들 중 어느 하나에 따른 방법의 단계들을 수행하게 할 수 있는 컴퓨터 판독 가능한 비일시적 저장 매체가 제안된다.
이하, 실시형태들을 보다 상세하게 설명한다. 그러나, 이들 실시형태는 본 개시물에 대한 보호 범위를 제한하는 것으로 해석되지 않을 수 있음을 이해해야 한다.
이제, 상응하는 참조 기호들이 상응하는 부분들을 나타내는 첨부된 개략적인 도면을 참조하여 실시형태들을 단지 예로서 설명한다.
도 1은 디바이스의 생산, 인증 및 검증 프로세스의 예시적인 실시형태를 도시하고;
도 2는 RoT가 SoC에 내장된 디바이스의 예시적인 실시형태를 도시하고;
도 3은 RoT가 SoC에 내장되지 않은 디바이스의 예시적인 실시형태를 도시하고;
도 4는 다수의 SoC를 갖는 디바이스의 예시적인 실시형태를 도시하고;
도 5는 디바이스 생산에 의한 생산 정보가 보안 소유자에게 송신되지 않는 디바이스의 생산, 인증 및 검증 프로세스의 예시적인 실시형태를 도시한다.
도면은 단지 예시의 목적만을 위한 것이며, 청구항들에 의해 규정되는 범위 또는 보호를 제한하는 역할을 하지 않는다.
하기의 실시예들에서 클라이언트 디바이스를 참조하는 경우, 본 개시물이 클라이언트 디바이스에서의 애플리케이션으로 제한되지 않는다는 점을 이해해야 한다.
도 1은 디바이스(1)의 생산, 인증 및 검증 프로세스의 예시적인 실시형태를 도시한다.
RoT 생산(100) 동안 보안 소유자(11)는 RoT(2)에 프로그래밍(201)될 수 있는 RoT 공개 아이디 및 RoT 키를 RoT(2)에 제공(200)할 수 있다. RoT 공개 아이디는, 나중에 디바이스(1)가 연결될 시스템(10)과 교환될 수 있는 RoT(2)에 대한 정보의 일례이다. 이는 디바이스(1)에 배치되는 특정 RoT를 식별하는 데 사용될 수 있다. RoT 키는 예를 들어 RoT(2)와 디바이스(1) 또는 시스템(10)을 암호 방식으로 바인딩하는 데 사용될 수 있는 암호 키의 일례일 수 있다.
보안 소유자(11)는 디바이스 생산(101) 동안에도 RoT(2)에 대한 정보를 RoT(2)에 제공할 수 있다. RoT(2)에 대한 정보는 RoT(2)에 영구적으로 프로그래밍되거나, 또는 RoT(2)가 관리하는 메모리 유닛에 제공될 수 있다.
디바이스 생산(101) 동안, RoT(2)가 배치된 특정 디바이스(1)에 대한 디바이스 정보는 RoT(2)에 또는 RoT(2)가 관리하는 보안 메모리 유닛(4)에 실링(202)될 수 있다. 이 보안 메모리 유닛(4)은 RoT(2)의 일부일 수 있거나 또는 별도의 메모리 유닛(4)일 수 있다. 실링은 디바이스 정보를 RoT(2)에 또는 RoT(2)가 관리하는 보안 메모리 유닛(4)에 영구적으로 프로그래밍하는 것으로 구성될 수 있다.
특정 디바이스(1)의 디바이스 정보에는 제조자 정보, 모델 정보, 브랜드 정보, 버전 번호 및 일련 번호, 통상적으로 UUID(Universal Unique Identifier) 형태의 디바이스 추상 식별자가 포함될 수 있지만, 이것으로 제한되는 것은 아니다.
도 2는 RoT(2)가 SoC(3)에 내장된 디바이스(1)의 예시적인 실시형태를 도시한다. 이 실시형태에서 RoT(2)가 관리하는 보안 메모리 유닛(4)은 RoT(2)의 외부에 묘사되어 있지만, RoT(2)의 일부일 수도 있다.
도 3은 RoT(2)가 SoC(3)에 내장되지 않은 디바이스(1)의 예시적인 실시형태를 도시한다. RoT(2)는 디바이스(1)의 일부일 수 있거나, 또는 디바이스(1)의 외부에 제공될 수 있다.
도 3의 실시형태에 있어서, RoT(2)와 SoC(3) 사이의 통신(30)은, 예를 들어 통신을 암호화함으로써 보안되는 것이 필요할 수 있다. 이 암호화된 통신(30)을 가능하게 하기 위해, RoT(2)는 실링 절차 동안, 예를 들어 단 한번만, 예를 들어 상호 인증에 의해, 통상적으로 키 합의 암호 프로토콜을 사용하는 고유한 디바이스별 키를 사용하는 것에 합의(203)할 수 있다. 이 디바이스 키는 디바이스(1)에 저장되며 RoT(2)와 디바이스(1)를 암호 방식으로 바인딩하는 데 사용된다. RoT(2)와 디바이스(1) 사이의 통신을 암호화할 수 있는 방법의 예로서는, RoT(2)와 디바이스(1) 사이의 상호 인증을 사용하는 표준 또는 독점 공개 키 기반의 보안 채널이 있다. 상호 인증은 제조시에 수행될 수 있으며, 공유된 협상된 비밀은 RoT(2)의 메모리와 디바이스(1)의 메모리 모두에 프로그래밍될 수 있다.
다음으로, 디바이스(1)의 생산 시설은 디바이스(1)의 디바이스 생산에 사용되는 RoT(2)에 대한 정보 목록, 예를 들어 RoT 공개 아이디를 보안 소유자(11)에게 보고(204)할 수 있다. 이 정보는 나중에, 시스템(10)에 부트스트랩된 RoT(2)가 보고되어 생산 시설에 의해 생산되었는지를 검증하는 데 사용될 수 있다. 이 정보는, 예를 들어 생산 로그에 포함될 수 있다. 생산 로그에는, 예를 들어 RoT 공개 아이디와 함께 디바이스 정보가 포함될 수 있거나, 또는 RoT 공개 아이디와 함께 디바이스 일련 번호가 포함될 수도 있다.
다음으로, 생산된 디바이스(1)가 시스템(10)에 부트스트랩될 수 있다. 이는 디바이스 생산(101) 직후에, 또는 디바이스(1)가 소비자에게 판매된 후에 수행될 수 있다. 이렇게 하면, 디바이스(1) 및 디바이스(1)의 RoT(2)의 부트스트랩핑 및 인증이 생산 프로세스(100, 101)와는 별도로 수행될 수 있으며, 그에 따라 디바이스 생산 흐름에 미치는 영향이 최소화된다.
디바이스(1)가 시스템(10)에 부트스트랩될 때, 실링 프로세스(202) 동안 실링된 디바이스 정보와 함께 RoT(2)에 대한 정보, 예를 들어 RoT 공개 아이디, 타입 또는 버전 번호를 시스템(10)에 제공(205)할 수 있다. 디바이스 정보는 디바이스 제조자, 예컨대 브랜드 또는 타입에 의해 정의될 수 있다. 디바이스 정보는 시스템(10)에 의해 정의되어 디바이스 제조자에게 반환되는 고유 식별자일 수 있다. 이러한 정보 전송은, 예를 들어 사전-공유된 비밀에 기초한 표준 또는 독점 보안 채널을 사용하여 보안된 방식으로 수행될 수 있다. 예를 들어, 디피-헬먼(Diffie-Hellman) 키 교환을 사용하여 보안 채널을 설정할 수 있다. 이에 대해서는 아래에서 더욱 자세하게 설명한다.
예를 들어 디바이스(1)가 보안 링크를 초기화하도록 프롬프트된 후에, 디바이스(1)는 키의 개인적인 부분, 즉 개인 디바이스 키 및 키의 공개적인 부분, 즉 공개 디바이스 키로 구성된 랜덤 키 쌍을 생성한다. 이것이 일반적으로 랜덤 키 쌍이다. 개인 디바이스 키는 암호화 목적으로 한 번만 사용되는 논스(nonce), 숫자 또는 비트 문자열일 수 있다. 공개 디바이스 키는 개인 디바이스 키에 기초하여 계산될 수 있다. 이는 일반적으로 디바이스(1)의 더욱 안전한 부분에서 수행된다.
디바이스(1)는 공개 디바이스 키를 시스템(10)에 전송한다. 이 전송은 디바이스(1)의 안전한 부분을 통해 직접 이루어질 수 있거나, 또는 디바이스(1)의 덜 안전한 다른 부분을 통해 진행될 수 있다. 디바이스(1)는 또한 자신의 고유 ID를 시스템(10)에 전송할 수도 있다. 시스템(10)은 디바이스(1)에 속하는 이 고유 ID를 확인하여 시스템(10)과의 보안 링크를 설정하려는 디바이스(1)의 신원을 검증할 수 있으며, 고유 ID가 실제 생산된 칩에 속하는지를 검증할 수 있다. 또한, 디바이스(1)는 서명으로 전송에 서명할 수 있다. 이는 인증, 부인 방지(non-repudiation) 및 메시지가 전송 후에 변경되지 않았는지를 확인하는 데 사용될 수 있다.
전송을 수신하면, 시스템(10)은 전송의 파라미터를 확인한다. 이는 예를 들어 디바이스(1)에 의해 전송된 서명 또는 고유 ID를 확인하는 것을 의미한다.
다음으로, 시스템(10)은 키의 개인적인 부분― 개인 서버 키 ― 및 키의 공개적인 부분― 공개 서버 키 ―으로 구성된 키 쌍을 생성한다. 이것은 랜덤 키 쌍일 수 있다. 개인 서버 키는 논스일 수 있으며, 공개 서버 키는 개인 서버 키에 기초하여 계산될 수 있다.
다음으로, 시스템(10)은 공개 디바이스 키 및 개인 서버 키에 기초하여 보안 링크 키를 계산할 수 있다. 이 보안 링크 키는 시스템(10)과 디바이스(1) 사이에 형성될 보안 링크를 보증하는 데 사용될 수 있다.
시스템(10)은, 보안 링크 키의 계산시에, 공개 서버 키를 디바이스(1)에 전송한다. 이 전송은 디바이스(1)의 덜 안전한 부분을 통해 수행될 수 있거나, 또는 디바이스(1)의 더 안전한 부분에 대하여 직접 수행될 수 있다. 시스템(10)은 또한 전송을 통해 송신된 공개 서버 키가 실제로 시스템(10)에 의해 소유된 것임을 증명하는 데 사용된 그 서버 인증서를 전송할 수도 있다. 또한, 시스템(10)은 서명으로 전송에 서명할 수 있다.
전송을 수신하면, 디바이스(1)는 서명, 서버 인증서와 같은 전송 파라미터를 확인하고, 디바이스(1)의 개인 키 및 시스템(10)의 공개 키에 기초하여 보안 링크 키를 계산한다. 이제, 디바이스(1)와 시스템(10)이 모두 보안 링크 키에 합의한다. 이 키는 디바이스(1)와 시스템(10) 사이에서 보안 링크를 통해 전송되는 데이터를 암호화 및 복호하는 데 사용될 수 있다.
시스템(10)은 강력한 암호 인증 프로토콜 및 비밀을 사용하여 RoT(2)를 인증할 수 있다. 이러한 프로토콜 및 비밀의 예에는 TLS 또는 DTLS PKI, RAW 인증서 또는 상호 인증을 사용하는 임의의 PKI 스킴이 포함될 수 있다. 이렇게 하면, 시스템(10)은 RoT(2)를 시스템(10)이 신뢰할 수 있는지의 여부를 검증할 수 있다. 이러한 방식으로, 보안 시스템은 신뢰할 수 있는 RoT 비밀과 디바이스(1)의 디바이스 정보 사이의 바인딩을 수신할 수 있다. RoT(2)는, 수신된 데이터, 예를 들어 실링 디바이스(1) 정보 및 RoT 정보가 암호 방식으로 인증된 RoT(2)로부터의 것이라는 점을 시스템(10)이 인증했을 때 신뢰될 수 있다. 시스템에 대한 부트스트랩(205)은 예를 들어 RoT(2)에 의해 한 번만 수행될 수 있다.
다음으로, 시스템(10)은 부트스트랩된 RoT(2)가 생산 시설에 의해 보고(204)되었는지의 여부를 검증(206)할 수 있다. 이 검증(206)은 부트스트랩(205) 동안 강제될 수 있거나 또는 생산 로그를 시스템(10)이 수신한 후에 수행될 수 있다. 이러한 방식으로, 시스템(10)은 시스템(10)에 부트스트랩된 RoT(2)가 실제로 생산 시설에 의해 생산되었는지를 검증할 수 있다. 이 검증은 디바이스의 메모리에 대한 특정 측정을 수행하여 부트스트랩된 디바이스 타입의 유효한 패턴에 대응한다는 것을 검증함으로써 수행될 수 있다. RoT 비밀은 RoT(2)를 인증하는 데 사용될 수 있다. 또한, 시스템(10)은 디바이스(1)의 디바이스 정보를 사용하여 시스템(10)에 부트스트랩된 RoT(2)가 실제로 해당 특정 디바이스(1)에 배치되었는지를 검증할 수 있다. 이 검증(206) 동안, RoT 공개 아이디는 RoT(2)가 생산 시설에 의해 보고되었는지를 검증하기 위해 디바이스 제조 정보와 예를 들어 RoT 비밀 사이의 링크로서 사용될 수 있다.
검증(206) 이후에, RoT(2) 및 디바이스(1) 고유 바인딩이 시스템(10)의 데이터베이스에 인증된 것으로 보고될 수 있다.
또한, 생산 시설이 디바이스(1)의 생산에 사용되는 RoT 공개 아이디 목록을 보고하지 않을 수도 있다. 예를 들어, 시스템(10)의 보안 소유자가 이미 RoT 공개 아이디를 RoT(2)에 제공하여 이미 알고 있을 수 있다. 더욱이, 예를 들어 디바이스(1)를 설치하는 동안 RoT 공개 아이디가 현장에서 보고될 수 있다. RoT 공개 아이디는, 예를 들어 메모리 공간이 디바이스와 일치하는지를 확인함으로써 현장에서 원격 증명에 의해 보고 및 검증될 수도 있다.
부트스트랩(205)으로부터 부트스트랩된 정보 및 생산 정보(204)는 RoT(2)를 사용하는 시스템(10) 전체에 걸친 일관성을 검증하기 위해 RoT 보안 소유자(11)에게 보고될 수 있다.
따라서, 상기 방법은 정확한 디바이스 정보의 실링(202)을 위해, 그리고 생산 로그(204)를 정확하게 보고하기 위해 디바이스 생산 시설을 신뢰하는 것을 필요로 한다. 이 방법은 가능한 많은 공격을 저지할 수 있다.
첫째, 'legit device upgrade(합법적인 디바이스 업그레이드)'라고 불리는 공격이 방어될 수 있다. 이 공격에서는, 합법적인 RoT(2)가 있는 합법적인 디바이스(1)가 다른 합법적인 디바이스(1)인 척할 수 있다. 통상적으로, 저급 디바이스(1)가 고급 디바이스(1)로서 부트스트랩(205)하려고 시도한다. 디바이스 정보가 신뢰할 수 있는 환경의 RoT(2)에서 실링(202)되고 부트스트랩(205) 동안 시스템에 안전하게 보고되기 때문에, 저급 디바이스(1)는 생산 후에 고급 디바이스(1)인 척할 수 없다.
둘째, 'non-legit device(비-합법적인 디바이스)'라고 불리는 공격이 방어된다. 이 공격에서는, 합법적인 RoT(2)가 있는 비-합법적인 디바이스(1)가 합법적인 디바이스(1)인 척할 수 있다. 통상적으로, 비-합법적인 디바이스(1)는 시스템(10)의 유효한 RoT(2)를 사용하여 합법적인 시스템(10)에서 부트스트랩(205)할 수 있다. 부트스트랩된 RoT(2)에 대한 정보, 예를 들어 그 RoT 공개 아이디가 합법적인 생산 시설(100, 101)에 의해 보고(204)되지 않았음을 시스템(10)이 검출할 경우 검증 단계(206) 동안 비-합법적인 디바이스(1)가 검출되게 된다.
셋째, 'clone device(클론 디바이스)'라고 불리는 공격이 방어된다. 이 공격에서는, RoT(2)가 합법적인 디바이스(1)의 SoC(3)의 외부에 있을 때, 비-합법적인 디바이스(1)가 합법적인 디바이스(1)의 RoT(2)를 사용할 수 있다. 실링 절차(202) 동안, 고유한 디바이스별 키가 디바이스(1)에 설치(203)되어 공격자가 해당 비밀 키를 또한 복제하도록 강제할 수 있다.
넷째, 'clone RoT(클론 RoT)'라고 불리는 공격도 방어된다. 이 공격에서는, 클론 RoT(2)가 합법적인 RoT(2)의 비밀을 사용하여 시스템에 부트스트랩(205)하려고 한다. 단일의 RoT(2)가 다수의 부트스트랩(205)을 시도할 경우에 검증 단계(206) 동안 클론 RoT(2)가 검출될 수 있다. 시스템은 부트스트랩(205)을 거부하고 추가 조사를 위해 RoT(2)에 태그를 달 수 있다. 이렇게 하면, 보안 소유자가 특정 RoT(2)가 한 번만 부트스트랩하는지를 확인함으로써 RoT(2)의 일관성을 검증하여, 특정 RoT(2)의 복제를 방지할 수 있다.
도 4는 다수의 SoC(3)를 갖는 디바이스(1)의 예시적인 실시형태를 도시한다.
이 실시형태에 있어서, 디바이스(1)의 RoT(2)는 하나 또는 다수의 생산 시설로 다수의 실링 절차를 관리할 수 있다. 따라서 위에서 설명한 방법은 디바이스(1)마다 다수의 SoC(3)도 지원한다.
도 5는 디바이스 생산에 의한 생산 정보가 보안 소유자에게 송신되지 않는 디바이스(1)의 생산, 인증 및 검증 프로세스의 예시적인 실시형태를 도시한다.
이 시스템(10)의 한 가지 장점은 생산 정보가 부분적이거나 누락된 경우에도 시스템(10)이 기능을 유지하고 부분적으로 안전하다는 점이다. 완전하게 인증되지 않은 디바이스(1)를 인증하기 위해 사후-검증 프로세스(207)가 수행될 수 있다. 이는 많은 수의 디바이스(1)를 관리하는 시스템(10)에 대하여 특히 유용하다. 이러한 사후-검증 프로세스(207)는 예를 들어 RoT(2)에 의해 수행되는 디바이스 메모리 영역의 안전한 원격 측정을 포함할 수 있다. 이는 RoT(2)가 SoC(3)에 통합될 때 특히 효율적이다.
하나 이상의 실시형태는 컴퓨터 시스템과 함께 사용하기 위한 컴퓨터 프로그램 제품으로 구현될 수 있다. 프로그램 제품의 프로그램(들)은 본 명세서에서 설명된 방법들을 포함하여 실시형태들의 기능을 정의할 수 있고, 다양한 컴퓨터 판독 가능 저장 매체에 포함될 수 있다. 컴퓨터 판독 가능 저장 매체는 비일시적 저장 매체일 수 있다. 예시적인 컴퓨터 판독 가능 저장 매체는: (i) 정보가 영구적으로 저장될 수 있는 쓰기 불가능한 저장 매체(예컨대, CD-ROM 드라이브에 의해 판독 가능한 CD-ROM 디스크, ROM 칩 또는 임의의 타입의 솔리드-스테이트 비휘발성 반도체 메모리와 같은 컴퓨터 내의 읽기 전용 메모리 디바이스); 및 (ii) 변경 가능한 정보가 저장될 수 있는 쓰기 가능한 저장 매체, 예컨대 하드 디스크 드라이브 또는 임의의 타입의 솔리드-스테이트 랜덤 액세스 반도체 메모리, 플래시 메모리를 포함하지만, 이것으로 제한되는 것은 아니다.
상기 실시형태들 중 둘 이상이 적절하게 조합될 수 있다.

Claims (15)

  1. 시스템(10)에 의해 디바이스(1)를 프로그래밍 및 인증하는 방법에 있어서,
    디바이스 생산(101) 동안 디바이스(1)의 디바이스 정보를 상기 디바이스(1)의 신뢰점(Root-of-Trust), RoT(2)에 의해 관리되는 메모리(4)에 수신하는 단계,
    상기 디바이스(1)를 상기 시스템(10)에 부트스트랩하는 단계, 및
    상기 RoT(2) 및 상기 디바이스 정보에 대한 정보를 제공하여, 상기 시스템(10)의 암호 프로토콜에 의해 상기 RoT(2)를 인증함으로써 상기 인증된 RoT(2)와 상기 시스템(10)에 알려진 상기 디바이스 정보를 바인딩하고, 상기 디바이스(1)의 상기 디바이스 생산(101)을 검증함으로써 상기 바인딩이 상기 시스템(10)에 의해 검증되도록 하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 디바이스(1)는 하나의 또는 다수의 시스템 온 칩(System on a Chip), SoC(3)를 갖고, 상기 RoT(2)는 각각의 SoC(3)에 대한 디바이스 정보의 프로그래밍을 관리하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서, 상기 RoT(2)는 상기 디바이스(1)의 SoC(3)들 중 어느 하나에 내장되지 않는 것을 특징으로 하는 방법.
  4. 제3항에 있어서, 상기 RoT(2)는 상기 디바이스 생산(101) 동안 상기 디바이스(1)의 각각의 SoC(3)와 전용 바인딩 키― 상기 RoT(2)와 상기 디바이스(1)를 암호 방식으로 바인딩하는 데 사용됨 ―에 합의하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서, 상기 디바이스 키는 상기 디바이스(1)와 상기 RoT(2) 사이의 통신을 암호화하는 데 사용되는 것을 특징으로 하는 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 RoT(2)는 상기 시스템(10)에 한 번만 부트스트랩하도록 구성되는 것을 특징으로 하는 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 RoT(2)의 디바이스 생산(101)에 대한 정보를 보안 소유자(11)에게 보고하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서, 상기 디바이스(1)의 상기 디바이스 생산(101)의 검증은 상기 부트스트랩된 RoT(2)가 디바이스 생산(101) 동안 보고되었는지의 여부를 검증하는 것을 포함하는 것을 특징으로 하는 방법.
  9. 제7항 또는 제8항에 있어서, 상기 검증은 상기 시스템(10)에 대한 상기 디바이스(1)의 부트스트랩 동안 강제되는 것을 특징으로 하는 방법.
  10. 제7항 내지 제9항 중 어느 한 항에 있어서, 상기 부트스트랩된 정보 및 상기 보고된 디바이스 생산(101)에 대한 정보는 상기 RoT(2)의 보안 소유자(11)에게 보고되는 것을 특징으로 하는 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 상기 RoT(2)에 대한 정보는 상기 RoT(2)의 공개 아이디로 구성되는 것을 특징으로 하는 방법.
  12. 프로세서를 포함하는 디바이스(1)에 있어서, 상기 프로세서는 제1항 내지 제11항 중 어느 한 항에 기재된 방법의 단계들을 수행하도록 구성되는 것을 특징으로 하는 디바이스.
  13. 집적 회로를 포함하는 디바이스(1)에 있어서, 상기 집적 회로는 제1항 내지 제11항 중 어느 한 항에 기재된 방법의 단계들을 수행하도록 구성되는 것을 특징으로 하는 디바이스.
  14. 컴퓨터 판독 가능한 비일시적 저장 매체(1)에 구현되는 컴퓨터 프로그램 제품에 있어서, 상기 컴퓨터 프로그램 제품은, 프로세서에 의한 실행시에, 상기 프로세서로 하여금 제1항 내지 제11항 중 어느 한 항에 기재된 방법의 단계들을 수행하게 하는 컴퓨터 실행 가능 명령어를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  15. 컴퓨터 판독 가능한 비일시적 저장 매체(1)에 있어서, 프로세서에 의한 실행시에, 상기 프로세서로 하여금 제1항 내지 제11항 중 어느 한 항에 기재된 방법의 단계들을 수행하게 하는 컴퓨터 실행 가능 명령어를 포함하는 것을 특징으로 하는 컴퓨터 판독 가능한 비일시적 저장 매체.
KR1020217015587A 2018-11-23 2019-11-22 실링 및 검증을 통한 디바이스 인증 KR20210092218A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP18208070 2018-11-23
EP18208070.5 2018-11-23
PCT/EP2019/082308 WO2020104685A1 (en) 2018-11-23 2019-11-22 Device authentication with sealing and verification

Publications (1)

Publication Number Publication Date
KR20210092218A true KR20210092218A (ko) 2021-07-23

Family

ID=64476941

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217015587A KR20210092218A (ko) 2018-11-23 2019-11-22 실링 및 검증을 통한 디바이스 인증

Country Status (7)

Country Link
US (1) US12074870B2 (ko)
EP (1) EP3884637A1 (ko)
JP (2) JP7463365B2 (ko)
KR (1) KR20210092218A (ko)
CN (2) CN116340925A (ko)
SG (1) SG11202105307SA (ko)
WO (1) WO2020104685A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220061956A (ko) * 2019-09-18 2022-05-13 엘지전자 주식회사 차량용 인포테인먼트 장치 및 그의 동작 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114692167A (zh) * 2014-04-15 2022-07-01 麦利尔亚洲新加坡私人有限公司 可信根
US20160134621A1 (en) * 2014-11-12 2016-05-12 Qualcomm Incorporated Certificate provisioning for authentication to a network
US9565172B2 (en) * 2015-06-17 2017-02-07 Telefonaktiebolaget Lm Ericsson (Publ) Method for enabling a secure provisioning of a credential, and related wireless devices and servers
US10129035B2 (en) 2015-08-10 2018-11-13 Data I/O Corporation Device birth certificate
US9902368B2 (en) * 2016-06-03 2018-02-27 Volkswagen Aktiengesellschaft Apparatus, system and method for vehicle access and function control utilizing a portable device
EP3293980A1 (en) * 2016-09-09 2018-03-14 Nagravision S.A. A method to create a secure channel between a host device and an external device
US10740466B1 (en) * 2016-09-29 2020-08-11 Amazon Technologies, Inc. Securing interfaces of a compute node
CN106815494B (zh) * 2016-12-28 2020-02-07 中软信息系统工程有限公司 一种基于cpu时空隔离机制实现应用程序安全认证的方法
WO2022106885A1 (en) * 2020-11-18 2022-05-27 Myomega Systems Gmbh Industrial control system

Also Published As

Publication number Publication date
CN113261255A (zh) 2021-08-13
EP3884637A1 (en) 2021-09-29
CN116340925A (zh) 2023-06-27
JP2024071510A (ja) 2024-05-24
JP2022507826A (ja) 2022-01-18
WO2020104685A1 (en) 2020-05-28
JP7463365B2 (ja) 2024-04-08
US12074870B2 (en) 2024-08-27
CN113261255B (zh) 2023-05-23
SG11202105307SA (en) 2021-06-29
US20220006808A1 (en) 2022-01-06

Similar Documents

Publication Publication Date Title
US10382485B2 (en) Blockchain-assisted public key infrastructure for internet of things applications
WO2018050081A1 (zh) 设备身份认证的方法、装置、电子设备及存储介质
EP3444999B1 (en) Method for generating a public/private key pair and public key certificate for an internet of things device
US10958664B2 (en) Method of performing integrity verification between client and server and encryption security protocol-based communication method of supporting integrity verification between client and server
US11853438B2 (en) Providing cryptographically secure post-secrets-provisioning services
EP2590356B1 (en) Method, device and system for authenticating gateway, node and server
CN101409619B (zh) 闪存卡及虚拟专用网密钥交换的实现方法
US10211979B2 (en) Systems and methods securing an autonomous device
GB2561822A (en) Reduced bandwidth handshake communication
US20210167963A1 (en) Decentralised Authentication
US20230308424A1 (en) Secure Session Resumption using Post-Quantum Cryptography
JP2024071510A (ja) シール及び検証によるデバイス認証
KR20160013135A (ko) 공유 비밀을 암시하는 보안 데이터 채널 인증
JP6666517B2 (ja) 第1の通信デバイスに、第2の通信デバイスを用いて、プロビジョニングする方法
JP7397859B2 (ja) 低電力モードにおけるIoTデバイスのメモリに格納されるデータの保護
EP3340530B1 (en) Transport layer security (tls) based method to generate and use a unique persistent node identity, and corresponding client and server
KR20240045162A (ko) 임베디드 장치들의 안전한 신뢰 루트 등록 및 신원 관리
WO2018172776A1 (en) Secure transfer of data between internet of things devices
US20220050605A1 (en) Remote enforcement of device memory
WO2018076299A1 (zh) 数据传输方法及装置
CN115361147A (zh) 设备注册方法及装置、计算机设备、存储介质
CN115174145B (zh) 设备控制方法及边缘网关设备
GB2560895A (en) Secure transfer of data between internet of things devices
KR20240045161A (ko) 임시 신뢰점 등록 및 디바이스-구속형 공개 키 등록

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal