KR102198178B1 - 블록체인을 이용한 세션키 수립 방법 - Google Patents

블록체인을 이용한 세션키 수립 방법 Download PDF

Info

Publication number
KR102198178B1
KR102198178B1 KR1020180132351A KR20180132351A KR102198178B1 KR 102198178 B1 KR102198178 B1 KR 102198178B1 KR 1020180132351 A KR1020180132351 A KR 1020180132351A KR 20180132351 A KR20180132351 A KR 20180132351A KR 102198178 B1 KR102198178 B1 KR 102198178B1
Authority
KR
South Korea
Prior art keywords
blockchain
agent
random number
encryption
virtual
Prior art date
Application number
KR1020180132351A
Other languages
English (en)
Other versions
KR20200049282A (ko
Inventor
이종혁
이성범
Original Assignee
상명대학교 천안산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 상명대학교 천안산학협력단 filed Critical 상명대학교 천안산학협력단
Priority to KR1020180132351A priority Critical patent/KR102198178B1/ko
Publication of KR20200049282A publication Critical patent/KR20200049282A/ko
Application granted granted Critical
Publication of KR102198178B1 publication Critical patent/KR102198178B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/006Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 발명은 인포테인먼트 시스템의 제1 디바이스와 제2 디바이스 사이의 암호화 세션키 수립 방법으로, 제1 디바이스가 디바이스 제조사의 블록체인 네트워크에 세션키 생성에 사용되는 제1 가상 아이디와 제1 공개키를 포함하는 암호화 정보를 등록하는 방법과, 제1 디바이스가 제2 디바이스에 암호화 통신 수립 요청시 제2 디바이스가 제1 디바이스 제조사의 블록체인 네트워크를 통해 제1 디바이스를 인증하고, 블록체인에 저장된 암호화 정보를 획득하여 세션키 생성에 이용하고, 생성된 세션키를 제1 디바이스에 전달하여 세션키를 수립하는 방법으로 구성된다.

Description

블록체인을 이용한 세션키 수립 방법{SESSION KEY ESTABLISHMENT METHOD USING BLOCKCHAIN}
암호화 통신을 위한 세션키 수립 방법에 관한 것으로, 보다 상세하게는 신뢰 실행 환경(Trusted Execution Environment) 기반의 인포테인먼트 장치 사이에 블록체인을 활용하여 암호화 세션키를 수립하는 방법에 대한 발명이 개시된다.
최근 차량과 IT 기술 간 융합이 가속화 되면서 스마트 카와 관련된 기술이 발전하고 있다. 스마트 카 기술 중 하나인 인포테인먼트(Infotainment) 기술들이 활발히 연구되고 있으며, 인포테인먼트 시스템을 탑재한 차량의 수도 점차적으로 증가하고 있다.
인포테인먼트는 정보(Information)와 오락(Entertainment)의 합성어로 차량 내에서 차량의 정보(예, 타이어 공기압, 엔진 온도 등)와 오락(예, 영화, 음악)을 한번에 즐길 수 있는 시스템이다. 차량 인포테인먼트 기술은 GENIVI에서 표준화를 진행 하였다.
인포테인먼트 시스템에서 주요한 요소는 HMI(Human Machine Interface)와 TCU(Telematics Control Unit)가 있다. TCU는 차량의 내부와 외부의 통신을 중재하는 장비이고, HMI는 사용자들이 차량 인포테인먼트를 활용할 수 있도록 하는 장비이다. 인포테인먼트 시스템에 새로운 디바이스가 연결되기 위해서는 TCU를 통해 연결이 가능하다. 연결된 디바이스들은 인포테인먼트 시스템에서 할당한 서비스만 이용할 수 있게 된다. 디바이스가 할당된 서비스 이외의 서비스를 이용하게 되면 차량의 정보를 악용하여 차량의 사고를 유발할 수 있게 된다.
이러한 인포테인먼트 기술은 추가적인 디바이스를 차량에 연결하여 서비스를 확장하여 사용할 수 있다. 시스템에 연결된 다수의 디바이스들은 각 디바이스별 할당된 서비스들을 제공받게 된다. 그러나 인포테인먼트 시스템의 취약점들이 계속해서 알려지고 있으며, 최근에는 공격자가 인포테인먼트 시스템을 장악하여 핸들 조작이 가능함을 시연하기도 하였다. 이 시연은 차량 내부 통신과정에서의 안전하지 않은 세션을 통해 차량 핸들을 조작하는 것이 가능함을 보여주었다. 차량 내에서 인포테인먼트 시스템의 역할이 커지고 있고 이에 따른 보안성도 커져야 필요성이 대두되고 있다.
2008년 사토시 나카모토가 제안한 비트코인은 블록체인 기술을 이용한 대표적인 암호화폐이다. 비트코인은 기존 서버-클라이언트 구조가 아닌 피어-피어 구조에서 제 3자의 개입이 없고, 사용자간 신뢰 관계가 없이 안전하게 암호화폐 거래가 가능한 플랫폼이다. 비트코인의 주요 기술인 블록체인은 피어-피어 구조에서 암호화폐 거래내역을 안전하게 저장할 수 있도록 하는 기술이다. 사용자들은 자신의 개인키로 서명한 거래(Transaction)를 브로드캐스팅하고, 마이닝 노드는 거래들을 합의 알고리즘을 통해서 블록으로 생성한다. 생성 된 블록은 도 2와 같이 체인 형식으로 유지된다. 이때 데이터 무결성 제공을 위해 해시함수와 데이터 체이닝 기법을 활용한다. 또한 데이터에 대한 신뢰성을 제공하기 위해 공개키 기반의 전자 서명을 사용한다.
블록체인의 주요 기술인 합의 알고리즘은 노드들 간에 무결성, 신뢰성을 제공하는 블록을 생성하기 위한 알고리즘이다. 이 알고리즘은 특정 조건을 만족하는 노드가 블록을 생성하고 블록체인에 블록을 연결한다. 대표적인 합의 알고리즘은 작업증명(Proof of Work, PoW), 지분증명(Proof of Stake, PoS), 위임된 지분증명(Delegated Proof of Stake, DPoS)가 있다. 또한 블록을 생성, 검증 하는 주체에 따라 퍼블릭, 프라이빗, 컨소시엄 형태로 유형 분류가 가능하다. 퍼블릭 블록체인(Public Blockchain)은 블록체인에 참여하는 모든 노드가 운영주체가 될 수 있는 유형이다. 운영주체는 블록체인 네트워크에서 거래를 쓰기, 읽기, 저장할 수 있고, 합의 알고리즘을 통해 블록을 생성할 수 있는 노드를 의미 한다. 프라이빗 블록체인(Private Blockchain)은 특정 중앙 기관에서 블록체인을 관리하는 형태의 블록체인이다. 중앙 기관에서 지정한 특정 운영주체가 블록체인 네트워크에서 거래를 쓰기, 읽기, 저장할 수 있고, 합의 알고리즘을 통해 블록을 생성한다. 컨소시엄 블록체인(Consortium Blockchain)은 블록체인 네트워크에서 컨소시엄 멤버를 선출하여 거래를 쓰기, 읽기, 저장하고, 합의 알고리즘을 통해 블록을 생성하는 유형이다.
이러한 블록체인 기술이 암호화폐에 그치지 않고 다른 분야에도 활용되고 있고, 인포테인먼트 시스템에서도 블록체인 기술을 활용하는 방안이 검토될 수 있다.
본 발명의 목적은 차량에 설치된 인포테인먼트 시스템의 디바이스 간에 안전하게 통신할 수 있는 방법을 제공함에 있다.
본 발명의 또 다른 목적은 분산된 환경에서 공증기관에 연결하지 않고도 디바이스를 안전하게 인증할 수 있는 방법을 제공함에 있다.
과제를 해결하기 위한 본 발명은 인포테인먼트 시스템의 제1 디바이스와 제2 디바이스 사이의 암호화 세션키 수립 방법으로, 제1 디바이스가 디바이스 제조사의 블록체인 네트워크에 세션키 생성에 사용되는 제1 가상 아이디와 제1 공개키를 포함하는 암호화 정보를 등록하는 방법과, 제1 디바이스가 제2 디바이스에 암호화 통신 수립 요청시 제2 디바이스가 제1 디바이스 제조사의 블록체인 네트워크를 통해 제1 디바이스를 인증하고, 블록체인에 저장된 암호화 정보를 획득하여 세션키 생성에 이용하고, 생성된 세션키를 제1 디바이스에 전달하여 세션키를 수립하는 방법을 포함한다.
본 발명의 일 양상에 따르면 인포테인먼트 시스템의 제1 디바이스 및 제2 디바이스는 신뢰 실행 환경(TEE)을 포함하고, TEE의 보안 영역(Secure World)에서 암호화와 관련된 작업을 수행한다. 각 디바이스를 제조한 제조사는 생산된 장비에 대한 정보와 제조사의 공개키/개인키 쌍을 저장하는 제조사 DB와, 제조사 DB에 접근 가능한 DB 에이전트와, 디바이스의 가상 아이디와 공개키를 블록으로 저장하는 블록체인 네트워크와, 블록체인 네트워크에 접근 가능한 블록체인 에이전트를 포함하는 디바이스 관리 시스템을 갖춰 디바이스와 연동하여 인증을 수행하거나 필요한 정보를 디바이스가 획득할 수 있도록 한다.
본 발명의 일 실시예에 따르면 인포테인먼트 시스템의 각 디바이스는 다른 디바이스와 암호화 통신을 위해 제조사의 블록체인에 암호화 정보를 등록한다. 암호화 정보 등록 방법은 암호화 아이디를 생성하는 단계와, 암호화 정보 등록 요청 단계와, 디바이스 자격 검증 요청 단계와, 자격 검증 단계와, 암호화 정보 등록 단계를 포함한다.
본 발명의 또 다른 실시예에 따르면 다른 디바이스와 암호화 통신을 위해 제조사의 블록체인에 암호화 정보를 등록한 제1 디바이스는 암호화 통신을 위해 암호화 세션키를 수립한다. 암호화 세션키 수립 방법은 제1 디바이스가 세션 수립 절차를 개시하는 단계와, 제2 디바이스가 제1 디바이스의 인증을 요청하는 단계, 제2 디바이스가 세션키를 생성하는 단계와, 제2 디바이스가 세션키를 분배하는 단계, 제1 디바이스가 세션키를 획득하는 단계를 포함한다.
본 발명에 의하면 차량에 설치된 인포테인먼트 시스템의 디바이스가 신뢰 실행 환경을 기반으로 하여 Secure Storage, RoT, Secure Boot 등을 활용하여 펌웨어를 관리하고, 공개키 기반의 키 교환 알고리즘을 사용하여 세션키를 수립하므로 디바이스 간에 안전하게 통신할 수 있는 효과를 달성할 수 있다.
또한 본 발명에 의하면 블록체인을 활용하여 디바이스 인증을 수행하므로 분산된 환경에서 공증기관에 연결하지 않고도 디바이스를 안전하게 인증할 수 있는 효과를 달성할 수 있다.
도 1은 일 양상에 따른 디바이스의 신뢰 실행 환경의 예시로 TrustZone의 구조를 도시한 것이다.
도 2는 일 양상에 따른 암호화 세션키 수립을 위한 디바이스와 제조사 디바이스 관리 시스템의 네트워크 모델을 개념적으로 도시한 것이다.
도 3은 일 실시 예에 따른 제조사 디바이스 관리 시스템의 블록체인에 디바이스의 암호화 정보를 등록하는 절차를 도시한 것이다.
도 4는 또 다른 실시 예에 따른 제조사 디바이스 관리 시스템의 블록체인에 디바이스의 암호화 정보를 등록하는 절차를 도시한 것이다.
도 5는 또 다른 실시 예에 따른 제조사 디바이스 관리 시스템의 블록체인에 디바이스의 암호화 정보를 등록하는 절차를 도시한 것이다.
도 6은 또 다른 실시 예에 따라 디바이스의 암호화 정보를 등록을 위한 디바이스와 제조사 디바이스 관리 시스템의 노드 사이의 정보 전달 과정을 도시한 것이다.
도 7은 또 다른 실시 예에 따라 제1 디바이스와 제2 디바이스 사이의 세션키 수립 절차를 도시한 것이다.
도 8은 또 다른 실시 예에 따라 제1 디바이스와 제2 디바이스 사이의 세션키 수립 절차를 도시한 것이다.
도 9는 또 다른 실시 예에 따라 제1 디바이스와 제2 디바이스 사이의 세션키 수립을 위한 디바이스와 제조사 디바이스 관리 시스템의 노드 사이의 정보 전달 과정을 도시한 것이다.
전술한, 그리고 추가적인 양상들은 첨부된 도면을 참조하여 설명하는 실시 예들을 통해 구체화된다. 각 실시 예들의 구성 요소들은 다른 언급이나 상호간에 모순이 없는 한 실시 예 내에서 다양한 조합이 가능한 것으로 이해된다. 블록도의 각 블록은 어느 경우에 있어서 물리적인 부품을 표현할 수 있으나 또 다른 경우에 있어서 하나의 물리적인 부품의 기능의 일부 혹은 복수의 물리적인 부품에 걸친 기능의 논리적인 표현일 수 있다. 때로는 블록 혹은 그 일부의 실체는 프로그램 명령어들의 집합(set)일 수 있다. 이러한 블록들은 전부 혹은 일부가 하드웨어, 소프트웨어 혹은 이들의 결합에 의해 구현될 수 있다.
일 실시 예에 따른 제1 디바이스(100)와 제2 디바이스(200) 사이의 암호화 세션키 수립을 위한 암호화 정보 등록 방법은 암호화 아이디를 생성하는 단계와, 암호화 정보 등록 요청 단계와, 디바이스 자격 검증 요청 단계와, 자격 검증 단계와, 암호화 정보 등록 단계를 포함한다.
제1 디바이스(100)와 제2 디바이스(200)는 인포테인먼트 시스템의 디바이스로 신뢰 실행 환경을 포함한다.
신뢰 실행 환경(Trusted Execution Environment, TEE)은 실행 환경을 분리하여 안전한 실행환경을 제공하는 기술이다. 일반적인 어플리케이션이 실행되는 일반 영역(Normal World 또는 Non-Secure World)와 신뢰할 수 있는 어플리케이션이 실행되는 보안 영역(Secure World)로 구성된다. Global Platform에서는 두 영역 간 통신을 위한 API에 대해 표준을 정의하고 있다. 민감한 데이터는 보안 영역에 저장되고, 일반 영역의 권한이 있는 어플리케이션만이 API를 통해 민감한 데이터에 접근이 가능하다. 신뢰 실행 환경은 구현에 따라 구조가 달라질 수 있다. 대표적인 구현은 ARM TrustZone과 Intel SGX가 있다.
도 1은 일 양상에 따른 디바이스의 신뢰 실행 환경의 예시로 TrustZone의 구조를 도시한 것이다. 신뢰 실행 환경을 구현한 솔루션인 ARM TrustZone은 ARM Trusted Firmware을 통하여 두 영역간의 통신을 중재한다. 또한 RoT(Root of Trust)를 제공 하기 위해 CryptoCell을 활용한다. ARM TrustZone은 두 영역을 분리하고 안전하게 운용하기 위해 일반 영역과 보안 영역 간의 통신에 Global Platform에서 정의한 API를 활용한다. ARM TrustZone은 ARM Trusted Firmware에서 Non-Secure(NS) bits를 이용하여 두 영역 사이의 통신을 중재한다. 보안 영역에서 실행되는 어플리케이션은 일반 영역에 존재하는 네트워크 인터페이스를 통하여 외부 인터넷과 통신할 수 있다. 이때 생길 수 있는 보안 문제는 Transport Layer Security(TLS)를 통해 보호된다. ARM TrustZone은 부팅 전 펌웨어에 대한 공격을 방어하기 위한 기술인 Secure Boot를 지원한다. Secure Boot는 부팅 시 부트로더가 펌웨어의 무결성 검증을 하고 난 후 펌웨어를 로드하여 펌웨어 변조 공격을 방어할 수 있다. 또한 ARM TrustZone은 하드웨어 적으로 보안 기술을 제공하는 RoT를 제공하기 위해 CryptoCell을 활용한다. CryptoCell의 대표적인 기능으로는 난수 생성기(Random Number Generator, RNG)와, Crypto Engine(즉, Cryptography, Hash function)을 제공한다. 하드웨어적으로 보안 모듈을 제공함으로써 공격에 강한 안전한 실행환경을 제공할 수 있다.
제1 디바이스(100)는 차량의 인포테인먼트 디바이스로 오디오, 헤드 유닛 또는 TCU(Telematics Control Unit) 등일 수 있다. 제1 디바이스의 제조사는 디바이스를 생산할 때 디바이스의 신뢰 실행 환경의 Secure Storage에 제조사의 공개키와 디바이스의 고유 값을 저장한다. 디바이스의 고유 값은 제조사에서 디바이스를 유일하게 식별할 수 있는 아이디이다. 발명의 양상에 따라서는 256 bit의 길이를 갖는 영문과 숫자의 조합으로 구성될 수 있다.
도 2는 일 양상에 따른 암호화 세션키 수립을 위한 디바이스와 제조사 디바이스 관리 시스템의 네트워크 모델을 개념적으로 도시한 것이다. 도 2에 도시된 것과 같이 디바이스(100, 200)를 제조한 제조사는 블록체인을 활용하여 세션키 수립을 지원하기 위해서는 DB 에이전트(320, 420)와, 제조사 DB(330, 430)와, 블록체인 에이전트(310, 410)와, 제1 블록체인 네트워크(340, 440)를 포함하는 디바이스 관리 시스템(300, 400)을 구축한다.
제조사 DB(330, 430)는 제조사에 의해 생산된 디바이스의 고유 값과 제조사의 공개키 및 개인키 쌍을 포함하는 정보를 저장하는 데이터베이스로 제조사 마다 독립적으로 운용된다.
DB 에이전트(320, 420)는 제조사 DB에 접근할 수 있는 노드이다. 암호화 정보 등록 방법에서 블록체인 에이전트와 인터페이스되어 블록체인 에이전트의 요청을 처리하며 제조사 DB에서 필요한 정보를 획득한다.
블록체인 네트워크(340, 440)는 디바이스의 가상 아이디와 공개키를 블록으로 저장하는 블록체인이다. 발명의 양상에 따라서는 프라이빗 블록체인일 수 있다. 다만, 이에 한정되는 것은 아니며 컨소시엄 블록체인 또는 퍼블릭 블록체인일 수 있다. 블록체인 네트워크의 블록에 저장되는 정보는 디바이스의 가상 아이디와 공개키 외에 후술할 제조사 개인키로 특정 정보를 서명한 서명을 포함할 수 있다.
블록체인 에이전트(310, 410)는 블록체인 네트워크에 접근 가능한 노드이다. 블록체인 네트워크(340, 440)에 연결되어 채굴(Mining)을 수행하지 않지만 블록체인의 블록을 저장하고 있고, 트랜잭션을 발생시킬 수 있다. 즉, 블록체인 에이전트(310, 410)는 디바이스(100, 200)의 가상 아이디와 공개키를 블록체인에 저장하기 위해 트랜잭션을 발생시킬 수 있다.
각기 다른 인포테인먼트 디바이스 제조사가 제조한 제1 디바이스(100)와 제2 디바이스(200) 사이의 암호화 세션키 수립을 위해 블록체인에 디바이스의 가상 아이디와 공개키를 포함하는 암호화 정보 등록하기 위해 먼저 제1 디바이스(100)가 신뢰 실행 환경의 보안 영역(Secure World)에서 제1 공개키, 제1 개인키, 제1 난수 및 제1 가상 아이디를 생성한다. 제1 디바이스(100)는 신뢰 실행 환경의 보안 영역(Secure World)에서 난수 생성기와 암호화 엔진을 통해 제1 난수와, 제1 공개키 및 제1 개인키를 생성하여 Secure Storage에 저장한다. 또한, 제1 디바이스(100)는 디바이스를 유일하게 식별할 수 있는 가상 아이디인 제1 가상 아이디를 256 bit의 길이를 갖는 값으로 생성할 수 있다. 발명의 양상에 따라서는 Secure Storage에 저장된 제1 고유 값과, 제1 공개키와, 제1 개인키의 조합을 암호화 해시하여 256 bit 길이의 제1 가상 아이디를 생성할 수 있다.
블록체인에 디바이스의 암호화 정보를 등록하는 방법에 있어서, 암호화 아이디를 생성하는 단계는 제1 디바이스(100)가 제1 디바이스(100)와 연관된 제1 고유 값, 제1 공개키 및 제1 난수를 제1 디바이스 제조사의 공개키로 암호화하여 제1 암호화 아이디를 생성하는 단계이다. 제조사 디바이스 관리 시스템(300, 400)에서 제1 디바이스(100)를 검증할 때 제1 고유 값을 사용하는 데 이를 암호화하여 전달하기 위해 제1 암호화 아이디 생성시 제1 고유 값을 포함한다.
블록체인에 디바이스의 암호화 정보를 등록하는 방법에 있어서, 암호화 정보 등록 요청 단계는 제1 디바이스(100)가 제1 가상 아이디, 제1 공개키, 제1 암호화 아이디 및 제1 난수를 제1 블록체인 에이전트(310)로 전송하여 등록을 요청하는 단계이다.
블록체인에 디바이스의 암호화 정보를 등록하는 방법에 있어서, 디바이스 자격 검증 요청 단계는 제1 블록체인 에이전트(310)가 제1 가상 아이디, 제1 공개키 및 제1 암호화 아이디를 제1 DB 에이전트(320)로 전송하여 제1 디바이스(100)의 자격 검증을 요청하는 단계이다.
블록체인에 디바이스의 암호화 정보를 등록하는 방법에 있어서, 자격 검증 단계는 제1 DB 에이전트(320)가 제1 암호화 아이디를 제1 디바이스 제조사의 개인키로 복호화하여 추출한 제1 고유 값을 제1 제조사 DB(330)에서 검색한 제1 고유 값과 일치하는지 비교하여 제1 디바이스(100)의 자격을 검증하는 단계이다. 발명의 양상에 따라서는 제1 DB 에이전트(320)가 복호화하여 추출한 제1 고유 값을 키로 하여 제1 제조사 DB(330)를 검색하여 일치하는 디바이스가 존재하면 자격이 검증된 것으로 인정할 수 있다.
블록체인에 디바이스의 암호화 정보를 등록하는 방법에 있어서, 암호화 정보 등록 단계는 제1 블록체인 에이전트(310)가 제1 가상 아이디 및 제1 공개키를 포함하는 블록체인 트랜잭션을 제1 블록체인 네트워크(340)로 전송하여 등록하는 단계이다.
도 3은 일 실시 예에 따른 제조사 디바이스 관리 시스템의 블록체인에 디바이스의 암호화 정보를 등록하는 절차를 도시한 것이다. 도 3을 참조하여 암호화 정보를 등록하는 절차를 설명하면, 제1 디바이스(100)가 제1 공개키, 제1 개인키, 제1 난수 및 제1 가상 아이디를 생성하고(S1000), 제1 디바이스(100)가 제1 디바이스(100)와 연관된 제1 고유 값, 제1 공개키 및 제1 난수를 제1 디바이스 제조사의 공개키로 암호화하여 제1 암호화 아이디를 생성하고(S1020), 제1 디바이스(100)가 제1 가상 아이디, 제1 공개키, 제1 암호화 아이디 및 제1 난수를 제1 블록체인 에이전트(310)로 전송하여 등록을 요청하고(S1040), 제1 블록체인 에이전트(310)가 제1 가상 아이디, 제1 공개키 및 제1 암호화 아이디를 제1 DB 에이전트(320)로 전송하여 제1 디바이스(100)의 자격 검증을 요청하고(S1060), 제1 DB 에이전트(320)가 제1 암호화 아이디를 제1 디바이스 제조사의 개인키로 복호화하여 추출한 제1 고유 값을 제1 제조사 DB(330)에서 검색한 제1 고유 값과 일치하는지 비교하여 제1 디바이스(100)의 자격을 검증하고(S1080), 제1 블록체인 에이전트(310)가 제1 가상 아이디 및 제1 공개키를 포함하는 블록체인 트랜잭션을 제1 블록체인 네트워크(340)로 전송하여 등록한다(S1100).
또 다른 실시 예에 따른 제1 디바이스(100)와 제2 디바이스(200) 사이의 암호화 세션키 수립을 위한 암호화 정보 등록 방법은 암호화 아이디를 생성하는 단계와, 암호화 정보 등록 요청 단계와, 디바이스 자격 검증 요청 단계와, 자격 검증 단계와, 암호화 정보 등록 단계를 포함하고, 서명 전달 단계를 더 포함할 수 있다.
이 실시 예에 따른 블록체인에 디바이스의 암호화 정보를 등록하는 방법에 있어서 추가되는 단계인 서명 전달 단계는 제1 DB 에이전트(320)가 제1 가상 아이디 및 제1 공개키를 제1 디바이스 제조사의 개인키로 암호화하여 제1 서명을 생성하고, 제1 서명과 제1 난수를 제1 블록체인 에이전트(310)로 전송하여 서명을 전달하는 단계이다.
이때 암호화 정보 등록 단계에서 제1 블록체인 에이전트(310)가 제1 블록체인 네트워크(340)로 전송하는 블록체인 트랜잭션은 제1 DB 에이전트(320)로부터 수신한 제1 서명을 더 포함할 수 있다. 즉, 제1 디바이스(100)에 대하여 블록체인의 블록에 저장되는 정보는 제1 가상 아이디와, 제1 공개키 외에 제1 서명이 추가될 수 있다.
또 다른 실시 예에 따른 제1 디바이스(100)와 제2 디바이스(200) 사이의 암호화 세션키 수립을 위한 암호화 정보 등록 방법은 암호화 아이디를 생성하는 단계와, 암호화 정보 등록 요청 단계와, 디바이스 자격 검증 요청 단계와, 자격 검증 단계와, 서명 전달 단계와, 암호화 정보 등록 단계를 포함하고, 등록 통지 단계와 등록 확인 단계를 더 포함할 수 있다.
이 실시 예에 따른 블록체인에 디바이스의 암호화 정보를 등록하는 방법에 있어서 추가되는 단계인 등록 통지 단계는 제1 블록체인 에이전트(310)가 블록체인 트랜잭션을 제1 블록체인 네트워크(340)에 등록한 후 제1 서명을 제1 디바이스(100)로 전송하여 등록을 통지하는 단계이다.
이 실시 예에 따른 블록체인에 디바이스의 암호화 정보를 등록하는 방법에 있어서 추가되는 단계인 등록 확인 단계는 제1 디바이스(100)가 제1 서명을 제1 디바이스 제조사의 공개키로 복호화하여 획득한 제1 가상 아이디 및 제1 공개키를 제1 디바이스(100)에 저장된 제1 가상 아이디 및 제1 공개키와 일치하는지 비교하여 등록을 확인하는 단계이다.
또 다른 실시 예에 따른 제1 디바이스(100)와 제2 디바이스(200) 사이의 암호화 세션키 수립을 위한 암호화 정보 등록 방법은 암호화 아이디를 생성하는 단계와, 암호화 정보 등록 요청 단계와, 디바이스 자격 검증 요청 단계와, 자격 검증 단계와, 서명 전달 단계와, 암호화 정보 등록 단계를 포함하고, 제1 난수 비교 단계를 더 포함할 수 있다.
이 실시 예에 따른 블록체인에 디바이스의 암호화 정보를 등록하는 방법에 있어서 추가되는 단계인 제1 난수 비교 단계는 제1 블록체인 에이전트(310)가 제1 DB 에이전트(320)로부터 수신한 제1 난수를 제1 디바이스(100)로부터 수신한 제1 난수와 일치하는지 비교하는 단계이다. 제1 블록체인 에이전트(310)는 제1 디바이스(100)로부터 수신한 제1 난수를 직접 전달하지 않고, 제1 디바이스 제조사의 공개키로 암호화된 제1 암호화 아이디에 포함시켜 전달한다. 따라서, 제1 블록체인 에이전트(310)는 제1 DB 에이전트(320)로부터 제1 암호화 아이디를 복호화하여 추출한 제1 난수를 수신하여 제1 디바이스(100)로부터 수신하여 저장하고 있는 제1 난수와 비교하여 중간자 공격 등을 대비할 수 있다.
또 다른 실시 예에 따른 제1 디바이스(100)와 제2 디바이스(200) 사이의 암호화 세션키 수립을 위한 암호화 정보 등록 방법은 암호화 아이디를 생성하는 단계와, 암호화 정보 등록 요청 단계와, 디바이스 자격 검증 요청 단계와, 자격 검증 단계와, 서명 전달 단계와, 암호화 정보 등록 단계를 포함하고, 블록 정보 수신 단계를 더 포함할 수 있다.
이 실시 예에 따른 블록체인에 디바이스의 암호화 정보를 등록하는 방법에 있어서 추가되는 단계인 블록 정보 수신 단계는 제1 블록체인 에이전트(310)가 제1 블록체인 네트워크(340)로부터 생성된 블록 정보를 수신하여 저장하는 단계이다.
도 4는 또 다른 실시 예에 따른 제조사 디바이스 관리 시스템의 블록체인에 디바이스의 암호화 정보를 등록하는 절차를 도시한 것이다. 도 4를 참조하여 암호화 정보를 등록하는 절차를 설명하면, 제1 디바이스(100)가 제1 공개키, 제1 개인키, 제1 난수 및 제1 가상 아이디를 생성하고(S2000), 제1 디바이스(100)가 제1 디바이스(100)와 연관된 제1 고유 값, 제1 공개키 및 제1 난수를 제1 디바이스 제조사의 공개키로 암호화하여 제1 암호화 아이디를 생성하고(S2020), 제1 디바이스(100)가 제1 가상 아이디, 제1 공개키, 제1 암호화 아이디 및 제1 난수를 제1 블록체인 에이전트(310)로 전송하여 등록을 요청하고(S2040), 제1 블록체인 에이전트(310)가 제1 가상 아이디, 제1 공개키 및 제1 암호화 아이디를 제1 DB 에이전트(320)로 전송하여 제1 디바이스(100)의 자격 검증을 요청하고(S2060), 제1 DB 에이전트(320)가 제1 암호화 아이디를 제1 디바이스 제조사의 개인키로 복호화하여 추출한 제1 고유 값을 제1 제조사 DB(330)에서 검색한 제1 고유 값과 일치하는지 비교하여 제1 디바이스(100)의 자격을 검증하고(S2080), 제1 DB 에이전트(320)가 제1 가상 아이디 및 제1 공개키를 제1 디바이스 제조사의 개인키로 암호화하여 제1 서명을 생성한 후 제1 서명과 제1 난수를 제1 블록체인 에이전트(310)로 전송하여 서명을 전달하고(S2100), 제1 블록체인 에이전트(310)가 제1 DB 에이전트(320)로부터 수신한 제1 난수를 제1 디바이스(100)로부터 수신한 제1 난수와 일치하는지 비교하여 중간자 공격을 방지하고(S2120), 제1 블록체인 에이전트(310)가 제1 가상 아이디, 제1 공개키 및 제1 서명을 포함하는 블록체인 트랜잭션을 제1 블록체인 네트워크(340)로 전송하여 등록하고(S2140), 제1 블록체인 에이전트(310)가 제1 블록체인 네트워크(340)로부터 생성된 블록 정보를 수신하여 저장하고(S2160), 제1 블록체인 에이전트(310)가 블록체인 트랜잭션을 제1 블록체인 네트워크(340)에 등록한 후 제1 서명을 제1 디바이스(100)로 전송하여 등록을 통지하고(S2180), 제1 디바이스(100)가 제1 서명을 제1 디바이스 제조사의 공개키로 복호화하여 획득한 제1 가상 아이디 및 제1 공개키를 제1 디바이스(100)에 저장된 제1 가상 아이디 및 제1 공개키와 일치하는지 비교하여 등록을 확인한다(S2200).
또 다른 실시 예에 따른 제1 디바이스(100)와 제2 디바이스(200) 사이의 암호화 세션키 수립을 위한 암호화 정보 등록 방법은 암호화 아이디를 생성하는 단계와, 암호화 정보 등록 요청 단계와, 디바이스 자격 검증 요청 단계와, 자격 검증 단계와, 서명 전달 단계와, 암호화 정보 등록 단계와, 등록 통지 단계와 등록 확인 단계를 포함하고, 중간자 공격 방지 단계를 더 포함할 수 있다.
이 실시 예에 따른 블록체인에 디바이스의 암호화 정보를 등록하는 방법에 있어서 서명 전달 단계에서 제1 블록체인 에이전트(310)가 제1 서명과 함께 미리 정의된 방식으로 변형한 제1 변형 난수를 전송하여 등록을 통지한다. 발명의 양상에 따라서는 제1 변형 난수는 제1 난수에 1을 추가하여 변형된 난수일 수 있다.
이 실시 예에 따른 블록체인에 디바이스의 암호화 정보를 등록하는 방법에 있어서 추가되는 단계인 중간자 공격 방지 단계는 제1 디바이스(100)가 미리 정의된 방식으로 변형한 제1 변형 난수를 제1 블록체인 에이전트(310)로부터 수신한 제1 변형 난수와 일치하는지 비교하여 중간자 공격을 방지하는 단계이다. 제1 디바이스(100)가 제1 변형 난수가 일치하는 것으로 확인하면 등록 요청이 제대로 전달되어 처리된 것으로 판단할 수 있다.
도 5는 또 다른 실시 예에 따른 제조사 디바이스 관리 시스템의 블록체인에 디바이스의 암호화 정보를 등록하는 절차를 도시한 것이다. 도 5를 참조하여 암호화 정보를 등록하는 절차를 설명하면, 제1 디바이스(100)가 제1 공개키, 제1 개인키, 제1 난수 및 제1 가상 아이디를 생성하고(S3000), 제1 디바이스(100)가 제1 디바이스(100)와 연관된 제1 고유 값, 제1 공개키 및 제1 난수를 제1 디바이스 제조사의 공개키로 암호화하여 제1 암호화 아이디를 생성하고(S3020), 제1 디바이스(100)가 제1 가상 아이디, 제1 공개키, 제1 암호화 아이디 및 제1 난수를 제1 블록체인 에이전트(310)로 전송하여 등록을 요청하고(S3040), 제1 블록체인 에이전트(310)가 제1 가상 아이디, 제1 공개키 및 제1 암호화 아이디를 제1 DB 에이전트(320)로 전송하여 제1 디바이스(100)의 자격 검증을 요청하고(S3060), 제1 DB 에이전트(320)가 제1 암호화 아이디를 제1 디바이스 제조사의 개인키로 복호화하여 추출한 제1 고유 값을 제1 제조사 DB(330)에서 검색한 제1 고유 값과 일치하는지 비교하여 제1 디바이스(100)의 자격을 검증하고(S3080), 제1 DB 에이전트(320)가 제1 가상 아이디 및 제1 공개키를 제1 디바이스 제조사의 개인키로 암호화하여 제1 서명을 생성한 후 제1 서명과 제1 난수를 제1 블록체인 에이전트(310)로 전송하여 서명을 전달하고(S3100), 제1 블록체인 에이전트(310)가 제1 가상 아이디, 제1 공개키 및 제1 서명을 포함하는 블록체인 트랜잭션을 제1 블록체인 네트워크(340)로 전송하여 등록하고(S3120), 제1 블록체인 에이전트(310)가 블록체인 트랜잭션을 제1 블록체인 네트워크(340)에 등록한 후 제1 서명 및 제1 변형 난수를 제1 디바이스(100)로 전송하여 등록을 통지하고(S3140), 제1 디바이스(100)가 제1 변형 난수를 제1 블록체인 에이전트(310)로부터 수신한 제1 변형 난수와 일치하는지 비교하여 중간자 공격을 방지하고(S3160), 제1 디바이스(100)가 제1 서명을 제1 디바이스 제조사의 공개키로 복호화하여 획득한 제1 가상 아이디 및 제1 공개키를 제1 디바이스(100)에 저장된 제1 가상 아이디 및 제1 공개키와 일치하는지 비교하여 등록을 확인한다(S3180).
도 6은 또 다른 실시 예에 따라 디바이스의 암호화 정보를 등록을 위한 디바이스와 제조사 디바이스 관리 시스템의 노드 사이의 정보 전달 과정을 도시한 것이다. 도 6을 참조하여 설명하면, 제1 디바이스(100)의 보안 영역(Secure World)에서 CryptoCell의 난수 생성기(RNG)와 암호화 엔진을 통해 제1 난수(
Figure 112018108043414-pat00001
)와 제1 공개키(
Figure 112018108043414-pat00002
) 및 제1 개인키(
Figure 112018108043414-pat00003
)와, 제1 가상 아이디(
Figure 112018108043414-pat00004
)를 생성하여 CryptoCell의 Secure Storage에 저장하고(S4000), 제1 고유 값(
Figure 112018108043414-pat00005
)과 제1 공개키(
Figure 112018108043414-pat00006
)와 제1 난수(
Figure 112018108043414-pat00007
)를 제1 디바이스 제조사 공개키(
Figure 112018108043414-pat00008
)로 암호화하여 제1 암호화 아이디(
Figure 112018108043414-pat00009
)를 생성한다(S4020). 제1 가상 아이디(
Figure 112018108043414-pat00010
)와, 제1 공개키(
Figure 112018108043414-pat00011
)와, 제1 암호화 아이디(
Figure 112018108043414-pat00012
)와, 제1 난수(
Figure 112018108043414-pat00013
)를 포함하는 메시지(
Figure 112018108043414-pat00014
)를 생성하여(S4040) 제1 블록체인 에이전트(310)에게 전달한다(S4060, S4080). 제1 블록체인 에이전트(310)는 제1 가상 아이디(
Figure 112018108043414-pat00015
)와, 제1 공개키(
Figure 112018108043414-pat00016
)와, 제1 암호화 아이디(
Figure 112018108043414-pat00017
)를 포함하는 메시지(
Figure 112018108043414-pat00018
)를 생성하여(S4100) 제1 DB 에이전트(320)에게 전달한다(S4120).
제1 DB 에이전트(320)는 제1 디바이스 제조사 개인키(
Figure 112018108043414-pat00019
)로 제1 암호화 아이디(
Figure 112018108043414-pat00020
)를 복호화(
Figure 112018108043414-pat00021
)하여 제1 고유 값(
Figure 112018108043414-pat00022
), 제1 공개키(
Figure 112018108043414-pat00023
), 제1 난수(
Figure 112018108043414-pat00024
)를 획득하고(S4140), 제1 제조사 DB(330)에 저장되어 있는 제1 고유 값(
Figure 112018108043414-pat00025
)과 복호화하여 얻어낸 제1 고유 값(
Figure 112018108043414-pat00026
)을 비교한다. 만약 제1 고유 값(
Figure 112018108043414-pat00027
)의 비교 결과 일치하지 않으면 절차를 중단한다. 또한 제1 블록체인 에이전트(310)로부터 수신한 메시지에 포함된 제1 공개키(
Figure 112018108043414-pat00028
)와 제1 암호화 아이디(
Figure 112018108043414-pat00029
)를 복호화하여 얻어낸 제1 공개키(
Figure 112018108043414-pat00030
)를 비교한다. 제1 공개키(
Figure 112018108043414-pat00031
)의 비교 결과 일치하지 않으면 절차를 중단한다(S4160). 제1 가상 아이디(
Figure 112018108043414-pat00032
)와, 제1 공개키(
Figure 112018108043414-pat00033
)를 제1 디바이스 제조사의 개인키(
Figure 112018108043414-pat00034
)로 서명하여 제1 서명(
Figure 112018108043414-pat00035
)을 생성하고(S4180), 제1 서명(
Figure 112018108043414-pat00036
)과 복호화하여 얻어낸 제1 난수(
Figure 112018108043414-pat00037
)를 포함하는 메시지(
Figure 112018108043414-pat00038
)를 생성하여(S4200) 제1 블록체인 에이전트(310)에게 전달한다(S4220).
제1 블록체인 에이전트(310)는 제1 디바이스(100)가 전송한 메시지에 포함된 제1 난수(
Figure 112018108043414-pat00039
)와 제1 DB 에이전트(320)가 전송한 메시지에 포함된 제1 난수(
Figure 112018108043414-pat00040
)를 비교한다. 비교 결과 일치하지 않으면 중간자 공격으로 판단하고 절차를 중단한다(S4240). 제1 가상 아이디(
Figure 112018108043414-pat00041
)와, 제1 공개키(
Figure 112018108043414-pat00042
)와, 제1 서명(
Figure 112018108043414-pat00043
)을 포함하는 트랜잭션으로 작성하여(S4260) 제1 블록체인 네트워크(340)의 채굴 노드에 전달하여 블록체인에 저장될 수 있도록 한다(S4280).
제1 블록체인 네트워크(340)의 채굴 노드는 제1 블록체인 에이전트(310)로부터 수신한 트랜잭션을 블록으로 생성하고(S4300), 생성된 블록의 정보를 제1 블록체인 에이전트(310)로 전달한다(S4320).
제1 블록체인 에이전트(310)는 제1 서명(
Figure 112018108043414-pat00044
)과 제1 난수에 1을 더한 값(
Figure 112018108043414-pat00045
)을 포함하는 메시지(
Figure 112018108043414-pat00046
)를 생성하여(S4360) 제1 디바이스(100)에 전달한다(S4380, S4400).
제1 디바이스(100)는 보안 영역(Secure World)에서 제1 디바이스(100)가 생성하여 1을 더한 값(
Figure 112018108043414-pat00047
)과 수신한 제1 난수 변형 값(제1 난수에 1을 더한 값)을 비교한다. 비교 결과 일치하지 않으면 중간자 공격으로 판단하여 절차를 중단한다(S4420). 제1 디바이스(100)는 제1 서명(
Figure 112018108043414-pat00048
)을 제1 디바이스 제조사의 공개키(
Figure 112018108043414-pat00049
)를 이용하여 복호화(
Figure 112018108043414-pat00050
)하여 제1 가상 아이디(
Figure 112018108043414-pat00051
)와, 제1 공개키(
Figure 112018108043414-pat00052
)를 획득하여(S4440), 자신이 생성한 제1 가상 아이디(
Figure 112018108043414-pat00053
), 제1 공개키(
Figure 112018108043414-pat00054
)를 비교한다. 비교 결과 일치하지 않으면 절차를 중단한다(S4460).
또 다른 실시 예에 따른 제1 디바이스(100)와 제2 디바이스(200) 사이의 암호화 세션키 수립 방법은 세션 수립 절차 개시 단계와, 제1 디바이스(100)의 인증 요청 단계와, 제2 디바이스(200)의 세션키 생성 단계와, 제2 디바이스(200)의 세션키 분배 단계와, 제1 디바이스(100)의 세션키 획득 단계를 포함한다.
제1 디바이스(100)와 제2 디바이스(200)는 인포테인먼트 시스템의 디바이스로 신뢰 실행 환경을 포함한다.
제1 디바이스를 제조한 제조사와 제2 디바이스를 제조한 제조사는 각각 블록체인을 활용하여 세션키 수립을 지원하기 위해서 DB 에이전트(320, 420)와, 제조사 DB(330, 430)와, 블록체인 에이전트(310, 410)와, 블록체인 네트워크(340, 440)를 포함하는 디바이스 관리 시스템(300, 400)을 구축한다.
제1 디바이스(100)와 제2 디바이스(200)가 암호화 세션키를 수립하는 방법에 있어서, 세션 수립 절차 개시 단계는 제1 디바이스(100)가 중간자 공격을 식별하기 위한 제2 난수를 생성하고, 암호화 정보 등록 시 사용된 제1 가상 아이디와 제1 서명을 생성한 제2 난수와 함께 암호화 세션을 수립할 제2 디바이스(200)로 전송하여 세션 수립 절차를 개시하는 단계이다.
제1 디바이스(100)와 제2 디바이스(200)가 암호화 세션키를 수립하는 방법에 있어서, 제1 디바이스(100)의 인증 요청 단계는 제2 디바이스(200)가 제1 가상 아이디 및 제1 서명을 제2 블록체인 에이전트(410)로 전송하여 제1 디바이스(100)의 인증을 요청하는 단계이다. 즉, 제2 디바이스(200)는 제1 디바이스(100)가 세션 수립 절차를 개시하며 전송한 제1 가상 아이디 및 제 1 서명이 제1 블록체인 네트워크(340)에 저장된 정보인지 인증을 요청한다.
제1 디바이스(100)와 제2 디바이스(200)가 암호화 세션키를 수립하는 방법에 있어서, 제2 디바이스(200)의 세션키 생성 단계는 제2 디바이스(200)가 제4 난수를 생성하고, 제1 가상 아이디, 제2 가상 아이디, 제1 공개키, 제2 공개키 및 제4 난수를 암호화 해시를 통해 세션키를 생성하는 단계이다. 암호화 해시 함수의 종류는 한정되지 않는다. 일예로 SHA256이 사용될 수 있다. 제2 디바이스(200)는 매 세션마다 동일한 세션키가 생성되지 않도록 제4 난수를 생성하여 활용한다.
제1 디바이스(100)와 제2 디바이스(200)가 암호화 세션키를 수립하는 방법에 있어서, 제2 디바이스(200)의 세션키 분배 단계는 제2 디바이스(200)가 세션키를 제1 공개키로 암호화한 암호문을 생성하여 제1 디바이스(100)로 전달하여 세션키를 분배하는 단계이다.
제1 디바이스(100)와 제2 디바이스(200)가 암호화 세션키를 수립하는 방법에 있어서, 제1 디바이스(100)의 세션키 획득 단계는 제1 디바이스(100)가 수신한 암호문을 제1 개인키로 복호화하여 세션키를 획득하는 단계이다.
또 다른 실시 예에 따른 제1 디바이스(100)와 제2 디바이스(200) 사이의 암호화 세션키 수립 방법은 세션 수립 절차 개시 단계와, 제1 디바이스(100)의 인증 요청 단계와, 제2 디바이스(200)의 세션키 생성 단계와, 제2 디바이스(200)의 세션키 분배 단계와, 제1 디바이스(100)의 세션키 획득 단계를 포함하고, 제1 디바이스(100)의 인증 요청 전달 단계와, 제1 디바이스(100) 인증 단계를 더 포함할 수 있다.
이 실시 예에 따른 제1 디바이스(100)와 제2 디바이스(200)가 암호화 세션키를 수립하는 방법에 있어서 추가되는 단계인 제1 디바이스(100)의 인증 요청 전달 단계는 제2 블록체인 에이전트(410)가 중간자 공격을 식별하기 위한 제3 난수를 생성하고, 제1 가상 아이디, 제1 서명 및 제3 난수를 제1 블록체인 에이전트(310)로 전송하여 제1 디바이스(100)의 인증을 요청을 전달하는 단계이고, 제1 디바이스(100) 인증 단계는 제1 블록체인 에이전트(310)가 수신한 제1 가상 아이디와 제1 서명을 제1 블록체인 네트워크(340)에 저장되어 있는 제1 가상 아이디와 제1 서명과 비교하여 제1 디바이스(100)를 인증하는 단계이다.
또 다른 실시 예에 따른 제1 디바이스(100)와 제2 디바이스(200) 사이의 암호화 세션키 수립 방법은 세션 수립 절차 개시 단계와, 제1 디바이스(100)의 인증 요청 단계와, 제1 디바이스(100)의 인증 요청 전달 단계와, 제1 디바이스(100) 인증 단계와, 제2 디바이스(200)의 세션키 생성 단계와, 제2 디바이스(200)의 세션키 분배 단계와, 제1 디바이스(100)의 세션키 획득 단계를 포함하고, 제3 변형 난수 전달 단계와, 제3 변형 난수 확인 단계를 더 포함할 수 있다.
이 실시 예에 따른 제1 디바이스(100)와 제2 디바이스(200)가 암호화 세션키를 수립하는 방법에 있어서 추가되는 단계인 제3 변형 난수 전달 단계는 제1 디바이스(100)를 인증한 제1 블록체인 에이전트(310)가 제1 가상 아이디, 제1 공개키 및 미리 정의된 방식으로 변형한 제3 변형 난수를 제2 블록체인 에이전트(410)로 전달하는 단계이다. 발명의 양상에 따라서는 제3 변형 난수는 제3 난수에 1을 더 하여 생성할 수 있다.
이 실시 예에 따른 제1 디바이스(100)와 제2 디바이스(200)가 암호화 세션키를 수립하는 방법에 있어서 추가되는 단계인 제3 변형 난수 확인 단계는 제2 블록체인 에이전트(410)가 미리 정의된 방식으로 변형한 제3 변형 난수를 제1 블록체인 에이전트(310)로부터 수신한 제3 변형 난수와 일치하는지 비교하여 중간자 공격을 방지하는 단계이다.
또 다른 실시 예에 따른 제1 디바이스(100)와 제2 디바이스(200) 사이의 암호화 세션키 수립 방법은 세션 수립 절차 개시 단계와, 제1 디바이스(100)의 인증 요청 단계와, 제1 디바이스(100)의 인증 요청 전달 단계와, 제1 디바이스(100) 인증 단계와, 제3 변형 난수 전달 단계와, 제3 변형 난수 확인 단계와, 제2 디바이스(200)의 세션키 생성 단계와, 제2 디바이스(200)의 세션키 분배 단계와, 제1 디바이스(100)의 세션키 획득 단계를 포함하고, 제1 디바이스(100)의 암호화 정보 전달 단계를 더 포함할 수 있다.
이 실시 예에 따른 제1 디바이스(100)와 제2 디바이스(200)가 암호화 세션키를 수립하는 방법에 있어서 추가되는 단계인 제1 디바이스(100)의 암호화 정보 전달 단계는 제2 블록체인 에이전트(410)가 제1 가상 아이디 및 제1 공개키를 제2 디바이스(200)로 전달하는 단계이다.
도 7은 또 다른 실시 예에 따라 제1 디바이스와 제2 디바이스 사이의 세션키 수립 절차를 도시한 것이다. 도 7을 참조하여 디바이스 사이의 세션키 수립 절차를 설명하면, 제1 디바이스(100)가 중간자 공격을 식별하기 위한 제2 난수를 생성하고, 암호화 정보 등록 시 사용된 제1 가상 아이디와 제1 서명을 생성한 제2 난수와 함께 암호화 세션을 수립할 제2 디바이스(200)로 전송하여 세션 수립 절차를 개시하고(S5000), 제2 디바이스(200)가 제1 가상 아이디 및 제1 서명을 제2 블록체인 에이전트(410)로 전송하여 제1 디바이스(100)의 인증을 요청하고(S5020), 제2 블록체인 에이전트(410)가 중간자 공격을 식별하기 위한 제3 난수를 생성하고, 제1 가상 아이디, 제1 서명 및 제3 난수를 제1 블록체인 에이전트(310)로 전송하여 제1 디바이스(100)의 인증을 요청을 전달하고(S5040), 제1 블록체인 에이전트(310)가 수신한 제1 가상 아이디와 제1 서명을 제1 블록체인 네트워크(340)에 저장되어 있는 제1 가상 아이디와 제1 서명과 비교하여 제1 디바이스(100)를 인증하고(S5060), 제1 디바이스(100)를 인증한 제1 블록체인 에이전트(310)가 제1 가상 아이디, 제1 공개키 및 제3 난수에 1을 더한 제3 변형 난수를 제2 블록체인 에이전트(410)로 전달하고(S5080), 제2 블록체인 에이전트(410)가 제3 난수에 1을 더한 제3 변형 난수를 제1 블록체인 에이전트(310)로부터 수신한 제3 변형 난수와 일치하는지 비교하여 중간자 공격을 방지하고(S5100), 제2 블록체인 에이전트(410)가 제1 가상 아이디 및 제1 공개키를 제2 디바이스(200)로 전달하고(S5120), 제2 디바이스(200)가 제4 난수를 생성하고, 제1 가상 아이디, 제2 가상 아이디, 제1 공개키, 제2 공개키 및 제4 난수를 암호화 해시를 통해 세션키를 생성하고(S5140), 제2 디바이스(200)가 세션키를 제1 공개키로 암호화한 암호문을 생성하여 제1 디바이스(100)로 전달하여 세션키를 분배하고(S5160), 제1 디바이스(100)가 수신한 암호문을 제1 개인키로 복호화하여 세션키를 획득한다(S5180).
또 다른 실시 예에 따른 제1 디바이스(100)와 제2 디바이스(200) 사이의 암호화 세션키 수립 방법은 세션 수립 절차 개시 단계와, 제1 디바이스(100)의 인증 요청 단계와, 제1 디바이스(100)의 인증 요청 전달 단계와, 제1 디바이스(100) 인증 단계와, 제3 변형 난수 전달 단계와, 제3 변형 난수 확인 단계와, 제1 디바이스(100)의 암호화 정보 전달 단계와, 제2 디바이스(200)의 세션키 생성 단계와, 제2 디바이스(200)의 세션키 분배 단계와, 제1 디바이스(100)의 세션키 획득 단계를 포함할 수 있다.
이 실시 예에 따르면, 세션키를 분배하는 단계는 제2 디바이스(200)가 세션키와 미리 정의된 방식으로 변형한 제2 변형 난수를 제1 공개키로 암호화한 암호문을 생성하고, 생성된 암호문을 제1 디바이스(100)로 전달하여 세션키를 분배하는 단계이다.
또 다른 실시 예에 따른 제1 디바이스(100)와 제2 디바이스(200) 사이의 암호화 세션키 수립 방법은 세션 수립 절차 개시 단계와, 제1 디바이스(100)의 인증 요청 단계와, 제1 디바이스(100)의 인증 요청 전달 단계와, 제1 디바이스(100) 인증 단계와, 제3 변형 난수 전달 단계와, 제3 변형 난수 확인 단계와, 제1 디바이스(100)의 암호화 정보 전달 단계와, 제2 디바이스(200)의 세션키 생성 단계와, 제2 디바이스(200)의 세션키 분배 단계와, 제1 디바이스(100)의 세션키 획득 단계를 포함하고, 제2 변형 난수 확인 단계를 더 포함할 수 있다.
이 실시 예에 따른 제1 디바이스(100)와 제2 디바이스(200)가 암호화 세션키를 수립하는 방법에 있어서 추가되는 단계인 제2 변형 난수 확인 단계는 제1 디바이스(100)가 미리 정의된 방식으로 변형한 제2 변형 난수를 수신한 암호문을 복호화하여 획득한 제2 변형 난수와 일치하는지 비교하여 중간자 공격을 방지하는 단계이다.
도 8은 또 다른 실시 예에 따라 제1 디바이스와 제2 디바이스 사이의 세션키 수립 절차를 도시한 것이다. 도 8을 참조하여 디바이스 사이의 세션키 수립 절차를 설명하면, 제1 디바이스(100)가 중간자 공격을 식별하기 위한 제2 난수를 생성하고, 암호화 정보 등록 시 사용된 제1 가상 아이디와 제1 서명을 생성한 제2 난수와 함께 암호화 세션을 수립할 제2 디바이스(200)로 전송하여 세션 수립 절차를 개시하고(S6000), 제2 디바이스(200)가 제1 가상 아이디 및 제1 서명을 제2 블록체인 에이전트(410)로 전송하여 제1 디바이스(100)의 인증을 요청하고(S6020), 제2 블록체인 에이전트(410)가 중간자 공격을 식별하기 위한 제3 난수를 생성하고, 제1 가상 아이디, 제1 서명 및 제3 난수를 제1 블록체인 에이전트(310)로 전송하여 제1 디바이스(100)의 인증을 요청을 전달하고(S6040), 제1 블록체인 에이전트(310)가 수신한 제1 가상 아이디와 제1 서명을 제1 블록체인 네트워크(340)에 저장되어 있는 제1 가상 아이디와 제1 서명과 비교하여 제1 디바이스(100)를 인증하고(S6060), 제1 디바이스(100)를 인증한 제1 블록체인 에이전트(310)가 제1 가상 아이디, 제1 공개키 및 제3 난수에 1을 더한 제3 변형 난수를 제2 블록체인 에이전트(410)로 전달하고(S6080), 제2 블록체인 에이전트(410)가 제3 난수에 1을 더한 제3 변형 난수를 제1 블록체인 에이전트(310)로부터 수신한 제3 변형 난수와 일치하는지 비교하여 중간자 공격을 방지하고(S6100), 제2 블록체인 에이전트(410)가 제1 가상 아이디 및 제1 공개키를 제2 디바이스(200)로 전달하고(S6120), 제2 디바이스(200)가 제4 난수를 생성하고, 제1 가상 아이디, 제2 가상 아이디, 제1 공개키, 제2 공개키 및 제4 난수를 암호화 해시를 통해 세션키를 생성하고(S6140), 제2 디바이스(200)가 세션키 및 제2 난수에 1을 더한 제2 변형 난수를 제1 공개키로 암호화한 암호문을 생성하여 제1 디바이스(100)로 전달하여 세션키를 분배하고(S6160), 제1 디바이스(100)가 제2 난수에 1을 더한 제2 변형 난수를 제2 디바이스(200)로부터 획득한 암호문을 제1 개인키로 복호화하여 획득한 제2 변형 난수와 일치하는지 비교하고(S6180), 제1 디바이스(100)가 수신한 암호문을 제1 개인키로 복호화하여 세션키를 획득한다(S6200).
도 9는 또 다른 실시 예에 따라 제1 디바이스와 제2 디바이스 사이의 세션키 수립을 위한 디바이스와 제조사 디바이스 관리 시스템의 노드 사이의 정보 전달 과정을 도시한 것이다. 도 9를 참조하여 디바이스 사이의 세션키 수립 절차를 설명하면, 제1 디바이스(100)와 제2 디바이스(200, 예, TCU)의 암호화 정보가 각각 제조사 디바이스 관리 시스템(300, 400)의 블록체인에 등록되는 등록 단계가 완료되면 각 디바이스는 다른 장비와 사용자 인증이 가능하다. 제1 디바이스(100)의 보안 영역(Secure World)에서 CryptoCell의 난수 발생기(RNG)을 통해 제2 난수(
Figure 112018108043414-pat00055
)를 생성하고(S7000), 제1 가상 아이디(
Figure 112018108043414-pat00056
)와, 제1 서명(
Figure 112018108043414-pat00057
)과, 제2 난수(
Figure 112018108043414-pat00058
)를 포함하는 메시지(
Figure 112018108043414-pat00059
)를 생성하여(S7020) 제2 디바이스(200, 예, TCU)에 전달한다(S7040, S7060, S7080).
제2 디바이스(200, 예, TCU)는 신뢰 실행 환경의 보안 영역(Secure World)에서 제1 가상 아이디(
Figure 112018108043414-pat00060
)와, 제1 서명(
Figure 112018108043414-pat00061
)을 포함하는 메시지(
Figure 112018108043414-pat00062
)를 생성하여(S7100) 제2 블록체인 에이전트(410)에게 전달하며 인증을 요청한다(S7110, S7120).
제2 블록체인 에이전트(410)는 제3 난수(
Figure 112018108043414-pat00063
)를 생성하고(S7140), 제2 디바이스(200, 예, TCU)로부터 수신한 메시지에 포함된 제1 가상 아이디(
Figure 112018108043414-pat00064
)와 제1 서명(
Figure 112018108043414-pat00065
)에 제3 난수(
Figure 112018108043414-pat00066
)를 포함하는 메시지(
Figure 112018108043414-pat00067
)를 생성하여 제1 블록체인 에이전트(310)로 전송하며 인증 요청을 전달한다(S7160).
제1 블록체인 에이전트(310)는 제2 블록체인 에이전트(410)로부터 전달받은 제1 가상 아이디(
Figure 112018108043414-pat00068
)와, 제1 서명(
Figure 112018108043414-pat00069
)을 제1 블록체인 네트워크(340)에 저장되어 있는 제1 가상 아이디(
Figure 112018108043414-pat00070
)와, 제1 서명(
Figure 112018108043414-pat00071
)과 비교한다(S7180). 비교 결과 일치하면 제1 가상 아이디(
Figure 112018108043414-pat00072
)와 제1 공개키(
Figure 112018108043414-pat00073
)와, 제3 난수에 1을 더하여 변형한 제3 변형 난수(
Figure 112018108043414-pat00074
)를 포함하는 메시지(
Figure 112018108043414-pat00075
)를 생성하여(S7200) 제2 블록체인 에이전트(410)에게 전달하여 인증이 완료되었음을 통지한다(S7220).
제2 블록체인 에이전트(410)는 자신이 생성한 제3 난수에 1을 더해 변형한 제3 변형 난수(
Figure 112018108043414-pat00076
)와 수신한 제3 변형 난수(
Figure 112018108043414-pat00077
)를 비교하여 중간자 공격을 방지한다. 비교 결과 일치하지 않으면 절차를 중단한다(S7240). 제2 블록체인 에이전트(410)는 제1 가상 아이디(
Figure 112018108043414-pat00078
)와 제1 공개키(
Figure 112018108043414-pat00079
)를 제2 디바이스(200, 예, TCU)로 전달한다(S7250, S7260).
제2 디바이스(200, 예, TCU)는 보안 영역(Secure World)에서 제4 난수(
Figure 112018108043414-pat00080
)를 생성하고(S7280), 제1 가상 아이디(
Figure 112018108043414-pat00081
)와, 제2 가상 아이디(
Figure 112018108043414-pat00082
)와, 제1 공개키(
Figure 112018108043414-pat00083
)와, 제2 공개키(
Figure 112018108043414-pat00084
)와, 제4 난수(
Figure 112018108043414-pat00085
)를 CryptoCell의 암호화 엔진의 해시 함수의 입력 값으로 하여, 세션키(
Figure 112018108043414-pat00086
)를 생성한다(S7300). 제2 디바이스(200, 예, TCU)는 제2 난수에 1을 더해 변형한 제2 변형 난수(
Figure 112018108043414-pat00087
)와 함께 생성된 세션키(
Figure 112018108043414-pat00088
)를 제1 공개키(
Figure 112018108043414-pat00089
)로 암호화하여 암호문(
Figure 112018108043414-pat00090
)을 생성하고(S7320) 생성된 암호문을 포함하는 메시지(
Figure 112018108043414-pat00091
)를 제1 디바이스(100)로 전달한다(S7330, S7340, S7350).
제1 디바이스(100)는 제2 디바이스(200, 예, TCU)로부터 수신한 암호문을 제1 개인키(
Figure 112018108043414-pat00092
)로 복호화한다(S7360). 자신이 생성한 제2 난수에 1을 더해 변형한 제2 변형 난수(
Figure 112018108043414-pat00093
)와 제2 디바이스(200, 예, TCU)로부터 수신한 암호문을 복호화하여 획득한 제2 변형 난수(
Figure 112018108043414-pat00094
)와 비교하여 중간자 공격을 방지한다. 비교 결과 일치하지 않으면 절차를 중단한다(S7380). 또한, 제2 디바이스(200, 예, TCU)로부터 수신한 암호문을 복호화하여 획득한 세션키(
Figure 112018108043414-pat00095
)를 이용하여 세션을 수립한다(S7360).
발명의 일 양상에 따른 블록체인을 이용한 세션키 수립 시스템은 인포테인먼트 디바이스와, 디바이스 관리 시스템을 포함한다.
인포테인먼트 디바이스는 신뢰 실행 환경의 보안 영역(Secure World)에서 난수 생성하는 난수 생성 기능, 암호화 및 복호화 기능 및 암호화 해시 기능을 제공하는 보안 모듈을 포함하고, 보안 모듈의 저장 영역에 고유 값과 제조사 공개키를 저장한다.
신뢰 실행 환경(Trusted Execution Environment, TEE)은 실행 환경을 분리하여 안전한 실행환경을 제공하는 기술이다. 일반적인 어플리케이션이 실행되는 일반 영역(Normal World 또는 Non-Secure World)와 신뢰할 수 있는 어플리케이션이 실행되는 보안 영역(Secure World)로 구성된다. Global Platform에서는 두 영역 간 통신을 위한 API에 대해 표준을 정의하고 있다. 민감한 데이터는 보안 영역에 저장되고, 일반 영역의 권한이 있는 어플리케이션만이 API를 통해 민감한 데이터에 접근이 가능하다. 신뢰 실행 환경은 구현에 따라 구조가 달라질 수 있다. 대표적인 구현은 ARM TrustZone과 Intel SGX가 있다.
디바이스 관리 시스템은 타 디바이스와 암호화 통신에 사용되는 세션키 생성에 사용되는 디바이스의 가상 아이디와 디바이스의 공개키를 포함하는 암호화 정보를 저장하는 블록체인 네트워크와, 블록체인에 접근 가능한 노드로 트랜잭션을 발생시켜 암호화 정보를 블록에 저장하는 블록체인 에이전트를 포함한다.
블록체인 네트워크는 디바이스의 가상 아이디와 공개키를 블록으로 저장하는 블록체인이다. 발명의 양상에 따라서는 프라이빗 블록체인일 수 있다. 다만, 이에 한정되는 것은 아니며 컨소시엄 블록체인 또는 퍼블릭 블록체인일 수 있다. 블록체인 네트워크의 블록에 저장되는 정보는 디바이스의 가상 아이디와 공개키 외에 후술할 제조사 개인키로 특정 정보를 서명한 서명을 포함할 수 있다.
블록체인 에이전트는 블록체인 네트워크에 접근 가능한 노드이다. 블록체인 네트워크에 연결되어 채굴(Mining)을 수행하지 않지만 블록체인의 블록을 저장하고 있고, 트랜잭션을 발생시킬 수 있다. 즉, 블록체인 에이전트는 디바이스의 가상 아이디와 공개키를 블록체인에 저장하기 위해 트랜잭션을 발생시킬 수 있다.
발명의 추가적 양상에 따르면 블록체인을 이용한 세션키 수립 시스템의 디바이스 관리 시스템은 제조사 DB와, DB 에이전트를 더 포함할 수 있다.
제조사 DB는 제조사에 의해 생산된 디바이스의 고유 값과 제조사의 공개키 및 개인키 쌍을 포함하는 정보를 저장하는 데이터베이스로 제조사 마다 독립적으로 운용된다.
DB 에이전트는 제조사 DB에 접근할 수 있는 노드이다. 암호화 정보 등록 방법에서 블록체인 에이전트와 인터페이스되어 블록체인 에이전트의 요청을 처리하며 제조사 DB에서 필요한 정보를 획득한다. DB 에이전트는 블록체인에 암호화 정보 등록을 요청한 디바이스가 제조사가 생산한 디바이스인지 검증할 수 있다.
발명의 또 다른 양상에 따르면 블록체인을 이용한 세션키 수립 시스템의 디바이스 관리 시스템의 블록체인 에이전트는 타 제조사 블록체인 에이전트의 디바이스 인증 요청에 따라 블록체인을 검색하여 디바이스를 인증할 수 있다.
이상에서 본 발명을 첨부된 도면을 참조하는 실시 예들을 통해 설명하였지만 이에 한정되는 것은 아니며, 이들로부터 당업자라면 자명하게 도출할 수 있는 다양한 변형 예들을 포괄하도록 해석되어야 한다. 특허청구범위는 이러한 변형 예들을 포괄하도록 의도되었다.
100: 제1 디바이스
200: 제2 디바이스
300: 제1 디바이스 관리 시스템
310: 제1 블록체인 에이전트 320: 제1 DB 에이전트
330: 제1 제조사 DB 340: 제1 블록체인 네트워크
400: 제2 디바이스 관리 시스템
410: 제2 블록체인 에이전트 420: 제2 DB 에이전트
430: 제2 제조사 DB 440: 제2 블록체인 네트워크

Claims (15)

  1. DB 에이전트와, 제조사 DB와, 블록체인 에이전트와, 블록체인 네트워크를 포함하는 디바이스 관리 시스템을 구축하고 있는 각기 다른 인포테인먼트(Infotainment) 디바이스 제조사가 제조한 제1 디바이스와 제2 디바이스 사이의 암호화 세션키 수립을 위해 블록체인에 디바이스의 가상 아이디와 공개키를 포함하는 암호화 정보 등록 방법에 있어서,
    제1 디바이스가 제1 디바이스와 연관된 제1 고유 값, 제1 공개키 및 제1 난수를 제1 디바이스 제조사의 공개키로 암호화하여 제1 암호화 아이디를 생성하는 단계;
    제1 디바이스가 제1 가상 아이디, 제1 공개키, 제1 암호화 아이디 및 제1 난수를 제1 블록체인 에이전트로 전송하여 등록을 요청하는 단계;
    제1 블록체인 에이전트가 제1 가상 아이디, 제1 공개키 및 제1 암호화 아이디를 제1 DB 에이전트로 전송하는 단계;
    제1 DB 에이전트가 제1 암호화 아이디를 제1 디바이스 제조사의 개인키로 복호화하여 추출한 제1 고유 값을 제조사 DB에서 검색한 제1 고유 값과 일치하는지 비교하는 단계;
    제1 블록체인 에이전트가 제1 가상 아이디 및 제1 공개키를 포함하는 블록체인 트랜잭션을 블록체인 네트워크로 전송하는 단계;
    를 포함하는 디바이스 사이의 암호화 세션키 수립을 위해 블록체인에 암호화 정보 등록 방법.
  2. 제 1 항에 있어서, 상기 방법은
    제1 DB 에이전트가 제1 가상 아이디 및 제1 공개키를 제1 디바이스 제조사의 개인키로 암호화하여 제1 서명을 생성하고, 제1 서명과 제1 난수를 제1 블록체인 에이전트로 전송하여 서명을 전달하는 단계;
    를 더 포함하고,
    제1 블록체인 에이전트가 블록체인 네트워크로 전송하는 블록체인 트랜잭션은 제1 서명을 더 포함하는 디바이스 사이의 암호화 세션키 수립을 위해 블록체인에 암호화 정보 등록 방법.
  3. 제 2 항에 있어서, 상기 방법은
    제1 블록체인 에이전트가 블록체인 트랜잭션을 블록체인 네트워크에 등록한 후 제1 서명을 제1 디바이스로 전송하는 단계;
    제1 디바이스가 제1 서명을 제1 디바이스 제조사의 공개키로 복호화하여 획득한 제1 가상 아이디 및 제1 공개키를 제1 디바이스에 저장된 제1 가상 아이디 및 제1 공개키와 일치하는지 비교하는 단계;
    를 더 포함하는 디바이스 사이의 암호화 세션키 수립을 위해 블록체인에 암호화 정보 등록 방법.
  4. 제 2 항에 있어서, 상기 방법은
    제1 블록체인 에이전트가 제1 DB 에이전트로부터 수신한 제1 난수를 제1 디바이스로부터 수신한 제1 난수와 일치하는지 비교하는 단계;
    를 더 포함하는 디바이스 사이의 암호화 세션키 수립을 위해 블록체인에 암호화 정보 등록 방법.
  5. 제 2 항에 있어서, 상기 방법은
    제1 블록체인 에이전트가 블록체인 네트워크로부터 생성된 블록 정보를 수신하여 저장하는 단계;
    를 더 포함하는 디바이스 사이의 암호화 세션키 수립을 위해 블록체인에 암호화 정보 등록 방법.
  6. 제 3 항에 있어서,
    제1 블록체인 에이전트가 제1 서명을 제1 디바이스로 전송하는 단계는 제1 서명과 함께 미리 정의된 방식으로 변형한 제1 변형 난수를 전송하는 단계이고,
    상기 방법은
    제1 디바이스가 미리 정의된 방식으로 변형한 제1 변형 난수를 제1 블록체인 에이전트로부터 수신한 제1 변형 난수와 일치하는지 비교하는 단계;
    를 더 포함하는 디바이스 사이의 암호화 세션키 수립을 위해 블록체인에 암호화 정보 등록 방법.
  7. DB 에이전트와, 제조사 DB와, 블록체인 에이전트와, 블록체인 네트워크를 포함하는 디바이스 관리 시스템을 구축하고 있는 각기 다른 인포테인먼트(Infotainment) 디바이스 제조사가 제조한 제1 디바이스와 제2 디바이스 사이의 암호화 세션키 수립 방법에 있어서
    제1 디바이스가 제2 난수를 생성하고, 제1 가상 아이디, 제1 서명 및 제2 난수를 제2 디바이스로 전송하는 단계;
    제2 디바이스가 제1 가상 아이디 및 제1 서명을 제2 블록체인 에이전트로 전송하여 제1 디바이스의 인증을 요청하는 단계;
    제2 디바이스가 제4 난수를 생성하고, 제1 가상 아이디, 제2 가상 아이디, 제1 공개키, 제2 공개키 및 제4 난수를 암호화 해시를 통해 세션키를 생성하는 단계;
    제2 디바이스가 세션키를 제1 공개키로 암호화한 암호문을 생성하여 제1 디바이스로 전달하는 단계;
    제1 디바이스가 수신한 암호문을 제1 개인키로 복호화하여 세션키를 획득하는 단계;
    를 포함하는 디바이스 사이의 블록체인을 이용한 암호화 세션키 수립 방법.
  8. 제 7 항에 있어서, 상기 방법은
    제2 블록체인 에이전트가 제3 난수를 생성하고, 제1 가상 아이디, 제1 서명 및 제3 난수를 제1 블록체인 에이전트로 전송하는 단계;
    제1 블록체인 에이전트가 수신한 제1 가상 아이디와 제1 서명을 제1 블록체인 네트워크에 저장되어 있는 제1 가상 아이디와 제1 서명과 비교하는 단계;
    를 더 포함하는 디바이스 사이의 블록체인을 이용한 암호화 세션키 수립 방법.
  9. 제 8 항에 있어서, 상기 방법은
    제1 블록체인 에이전트가 제1 가상 아이디, 제1 공개키 및 미리 정의된 방식으로 변형한 제3 변형 난수를 제2 블록체인 에이전트로 전달하는 단계;
    제2 블록체인 에이전트가 미리 정의된 방식으로 변형한 제3 변형 난수를 제1 블록체인 에이전트로부터 수신한 제3 변형 난수와 일치하는지 비교하는 단계;
    를 더 포함하는 디바이스 사이의 블록체인을 이용한 암호화 세션키 수립 방법.
  10. 제 9 항에 있어서, 상기 방법은
    제2 블록체인 에이전트가 제1 가상 아이디 및 제1 공개키를 제2 디바이스로 전달하는 단계;
    를 더 포함하는 디바이스 사이의 블록체인을 이용한 암호화 세션키 수립 방법.
  11. 제 10 항에 있어서,
    세션키를 전달하는 단계는 제2 디바이스가 세션키와 미리 정의된 방식으로 변형한 제2 변형 난수를 제1 공개키로 암호화한 암호문을 생성하고, 생성된 암호문을 제1 디바이스로 전달하는 단계인 디바이스 사이의 블록체인을 이용한 암호화 세션키 수립 방법.
  12. 제 11 항에 있어서, 상기 방법은
    제1 디바이스가 미리 정의된 방식으로 변형한 제2 변형 난수를 수신한 암호문을 복호화하여 획득한 제2 변형 난수와 일치하는지 비교하는 단계;
    를 더 포함하는 디바이스 사이의 블록체인을 이용한 암호화 세션키 수립 방법.
  13. 삭제
  14. 삭제
  15. 삭제
KR1020180132351A 2018-10-31 2018-10-31 블록체인을 이용한 세션키 수립 방법 KR102198178B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180132351A KR102198178B1 (ko) 2018-10-31 2018-10-31 블록체인을 이용한 세션키 수립 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180132351A KR102198178B1 (ko) 2018-10-31 2018-10-31 블록체인을 이용한 세션키 수립 방법

Publications (2)

Publication Number Publication Date
KR20200049282A KR20200049282A (ko) 2020-05-08
KR102198178B1 true KR102198178B1 (ko) 2021-01-04

Family

ID=70678027

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180132351A KR102198178B1 (ko) 2018-10-31 2018-10-31 블록체인을 이용한 세션키 수립 방법

Country Status (1)

Country Link
KR (1) KR102198178B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112231767A (zh) * 2020-10-16 2021-01-15 海尔优家智能科技(北京)有限公司 请求信息的处理方法及装置、存储介质、电子装置
CN113821789B (zh) * 2021-09-26 2023-06-23 北京邮电大学 基于区块链的用户密钥生成方法、装置、设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100217967A1 (en) 2007-08-28 2010-08-26 Abb Research Ltd Real-time communication security for automation networks

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101051973B1 (ko) * 2009-02-09 2011-07-26 이나루티앤티(주) 무선랜 시스템에서 기지국에 접속하는 차량단말을 인증하는방법 및 그 차량단말
KR20180089682A (ko) * 2017-02-01 2018-08-09 삼성전자주식회사 블록체인 기반의 데이터의 무결성을 검증하는 전자 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100217967A1 (en) 2007-08-28 2010-08-26 Abb Research Ltd Real-time communication security for automation networks

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Mohamed Sabt et al., Trusted Execution Environment: What It Is, and What It Is Not, 2015 IEEE Trustcom/BigDataSE/ISPA, 2015.12.03. 57-64pages. 1부.*
박병주 외 2인, 블록체인 기반 IoT 디바이스 인증 스킴, 정보보호학회논문지 27(2), 2017.4, 343-351페이지. 1부.*

Also Published As

Publication number Publication date
KR20200049282A (ko) 2020-05-08

Similar Documents

Publication Publication Date Title
WO2021184882A1 (zh) 验证合约的方法及装置
WO2021184968A1 (zh) 共享集群密钥的方法及装置
JP6454918B2 (ja) 車載コンピュータシステム、車両、管理方法、及びコンピュータプログラム
CN100454274C (zh) 利用验证过的打印机密钥的安全打印
TWI701929B (zh) 密碼運算、創建工作密鑰的方法、密碼服務平台及設備
US7526649B2 (en) Session key exchange
KR102020898B1 (ko) 신뢰 실행 환경 기반 세션키 수립 방법
EP2461564A1 (en) Key transport protocol
US10498712B2 (en) Balancing public and personal security needs
US11212095B2 (en) Allowing restricted external access to devices
US20140096213A1 (en) Method and system for distributed credential usage for android based and other restricted environment devices
KR102177794B1 (ko) 사물인터넷 블록체인 환경에서의 디바이스 분산 인증 방법 및 이를 이용한 디바이스 분산 인증 시스템
CN112351037B (zh) 用于安全通信的信息处理方法及装置
CN116232593B (zh) 多密码模组敏感数据分类分级与保护方法、设备及系统
KR102198178B1 (ko) 블록체인을 이용한 세션키 수립 방법
CN106992978B (zh) 网络安全管理方法及服务器
US11398906B2 (en) Confirming receipt of audit records for audited use of a cryptographic key
CN113726733B (zh) 一种基于可信执行环境的加密智能合约隐私保护方法
CN111740995B (zh) 一种授权认证方法及相关装置
EP3455763B1 (en) Digital rights management for anonymous digital content sharing
WO2017008556A1 (zh) 一种无线接入点和管理平台鉴权的方法和装置
US11405201B2 (en) Secure transfer of protected application storage keys with change of trusted computing base
KR20100043799A (ko) Mtm 기반 모바일 단말기 간의 비밀 데이터 이전 방법
WO2017126322A1 (ja) 車載コンピュータシステム、車両、鍵生成装置、管理方法、鍵生成方法、及びコンピュータプログラム
KR101992325B1 (ko) 신뢰 실행 환경을 이용한 타원 곡선 암호 기반 세션키 수립 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant