KR101796690B1 - Firmware integrity verification system based on block chain and the method thereof - Google Patents

Firmware integrity verification system based on block chain and the method thereof Download PDF

Info

Publication number
KR101796690B1
KR101796690B1 KR1020160080833A KR20160080833A KR101796690B1 KR 101796690 B1 KR101796690 B1 KR 101796690B1 KR 1020160080833 A KR1020160080833 A KR 1020160080833A KR 20160080833 A KR20160080833 A KR 20160080833A KR 101796690 B1 KR101796690 B1 KR 101796690B1
Authority
KR
South Korea
Prior art keywords
firmware
verification
node
nodes
general
Prior art date
Application number
KR1020160080833A
Other languages
Korean (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 KR1020160080833A priority Critical patent/KR101796690B1/en
Application granted granted Critical
Publication of KR101796690B1 publication Critical patent/KR101796690B1/en

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

The present invention relates to a blockchain-based firmware integrity verification system and a method thereof, which allow an internet-of-things device to implement integrity about firmware by itself and verify integrity of firmware and perform updates by obtaining a reliable verifier through a blockchain of a P2P method. The blockchain-based firmware integrity verification system includes: a plurality of common nodes which performs verification of firmware by requesting verification of the firmware; a plurality of verification nodes which performs firmware verification of common nodes according to verification requests about firmware of the plurality of common nodes; and a firmware update server which performs verification for firmware of the common nodes and the verification nodes. The plurality of common nodes and the plurality of verification nodes form a blockchain network. The plurality of common nodes performs firmware verification or updates through one of the verification nodes or a plurality of different common nodes. And firmware updates are performed through the firmware update server when firmware versions of the plurality of common nodes are higher than firmware versions of the plurality of verification nodes or a plurality of different common nodes.

Description

블록체인 기반의 펌웨어 무결성 검증 시스템 및 그 방법{FIRMWARE INTEGRITY VERIFICATION SYSTEM BASED ON BLOCK CHAIN AND THE METHOD THEREOF}[0001] FIRMWARE INTEGRITY VERIFICATION SYSTEM BASED ON BLOCK CHAIN AND THE METHOD THEREOF [0002]

본 발명은 사물인터넷 기기의 펌웨어 무결성 검증에 관한 것으로서, 더욱 상세하게는 사물인터넷 기기가 자체적으로 펌웨어에 대한 무결성을 수행하고 P2P 방식의 블록체인으로 신뢰성 있는 검증자를 획득하는 것에 의해 펌웨어의 무결성을 검증하고 업데이트를 수행할 수 있도록 하는 블록체인 기반의 펌웨어 무결성 검증 시스템 및 그 방법에 관한 것이다.The present invention relates to firmware integrity verification of object Internet devices, and more particularly, it relates to a method and system for verifying the integrity of a firmware by performing integrity of firmware itself and obtaining a reliable verifier in a P2P block chain The present invention relates to a block chain-based firmware integrity verification system and a method thereof.

사물인터넷(IoT, Internet of Things)은 글로벌 네트워크 인프라를 기반으로 하는 새로운 인터넷 기반의 정보아키텍쳐로 RFID(Radio Frequency Identification) 태그와 리더기, NFC(Near Field Communication) 장치, 임베디드 센서/액츄에이터 노드와 같은 디바이스 기술의 활성화를 가져왔다.Internet of Things (IOT) is a new Internet-based information architecture based on global network infrastructure. It is used for RFID (Radio Frequency Identification) tags and readers, Near Field Communication (NFC) devices, embedded sensor / Technology.

가트너 조사에 따르면 202년까지 약 260억대의 사물인터넷 기기가 설치될 것으로 예측되었다. 이러한 사물인터넷기기는 내부에 펌웨어를 장착하며, 펌웨어는 기기운용에 가장 기본적인 소프트웨어를 탑재하게 된다. 이러한 펌웨어는 동일한 사물인터넷 기기 사이에서 무결성 검증이 이루어져야 하고, 버전이 업그레이드 될 때 마다 업데이트 되어야 할 필요성을 가진다. 또한, 사물인터넷기기에서 펌웨어를 업데이트하는 기능은 업데이트 도중에 발생할 수 있는 장애로부터 안전하도록 설계되어야 한다.According to the Gartner survey, about 26 billion units of Internet devices will be installed by the year 202. These objects Internet devices are equipped with firmware inside, and the firmware is equipped with the most basic software for device operation. This firmware needs to be integrity checked between the same object Internet devices and needs to be updated each time the version is upgraded. In addition, the function of updating the firmware in the object Internet device should be designed so as to be safe from a failure that may occur during the update.

이러한 필요성에 따라 대한민국등록특허 10-0729525호는 펌웨어의 분할 차분 및 단말기의 임시메모리를 사용하고, 업데이트 상태를 설정하여 업데이트 도중에 통신 두절 등의 에러가 발생하였을 경우 재부팅 이후에 중단 시점 이후부터 계속하여 업데이트가 진행될 수 있도록 하는 펌웨어 업데이트 방법 및 시스템을 개시한다.According to this necessity, Korean Patent Registration No. 10-0729525 uses the division difference of the firmware and the temporary memory of the terminal, sets an update state, and if an error such as communication disconnection occurs during updating, And a firmware update method and system for allowing an update to proceed.

대한민국등록특허 10-0862971호는 게이트웨이에서 싱크 노드로 업데이트시킬 펌웨어를 전송하는 단계, 최상위 노드로부터 최하위 노드까지 무선 통신을 이용하여 순차적으로 상기 펌웨어를 전송하며, 펌웨어를 전송받은 각 노드는 상기 펌웨어를 자신의 메모리에 기록하는 단계, 상기 모든 노드들의 펌웨어의 기록이 완료된 경우, 각 노드들은 부트 프로그램을 구동시켜 상기 메모리에 저장된 펌웨어를 프로그램 메모리에 쓰는 단계, 상기 각 노드들은 상기 펌웨어를 실행하여 주변의 노드들과 통신하여 새로운 네트워크를 구성하는 단계를 수행하는 것에 의해 펌웨어를 수거함이 없이 펌웨어의 업데이트를 수행할 수 있도록 하는 무선 센서 네트워크의 노드들에 대한 펌웨어 업데이트 방법을 개시한다.Korean Patent Registration No. 10-0862971 discloses a method for transmitting firmware from a gateway to a sink node, the firmware being sequentially transmitted from a highest node to a lowest node using wireless communication, Writing the firmware in its own memory; when writing of the firmware of all the nodes is completed, each node drives a boot program to write the firmware stored in the memory to a program memory, and each node executes the firmware, Discloses a firmware update method for nodes of a wireless sensor network that enables firmware updates to be performed without collecting firmware by communicating with nodes and configuring a new network.

대한민국등록특허 10-0951622호는 (a) 상기 신규 노드가, 자신의 수신상태에서 자신의 주위 일정 거리 내에 위치한 이웃노드를 검색하는 단계; (b) 상기 신규 노드가, 상기 검색된 이웃노드 중 부모노드를 설정하는 단계; (c) 상기 다수개의 노드들이 상기 무선센서 네트워크에 신규 노드를 합류시키기 위한 합류 수신 상태를 포함하는 경우, 상기 설정된 부모노드 및 상기 신규 노드가 상기 합류 수신 상태를 이용하여 제1 통신링크를 설정하는 단계; (d) 상기 설정된 제1 통신링크를 통하여 상기 부모노드의 펌웨어를 상기 신규 노드로 전송하는 단계; 및 (e) 상기 신규 노드가, 상기 부모 노드로부터 전송된 펌웨어를 수신한 경우, 상기 수신한 펌웨어로 기존의 펌웨어를 업데이트하고 상기 업데이트된 펌웨어를 구동하여 상기 무선 네트워크로 합류하는 단계;를 수행하는 것에 의해 무선센서 네트워크에 신규 노드가 합류되는 경우, 공장으로 수거하지 않고 바로 현장에서 신규 노드의 펌웨어 업데이트를 수행할 수 있도록 하는 무선 센서 네트워크의 노드에 대한 펌웨어 업데이트 방법을 개시한다.Korean Patent Registration No. 10-0951622 discloses a method in which (a) the new node searches neighbor nodes located within its own surrounding distance in its receiving state; (b) the new node establishes a parent node among the retrieved neighbor nodes; (c) when the plurality of nodes include a join reception state for joining a new node to the wireless sensor network, the set parent node and the new node establish a first communication link using the join reception state step; (d) transmitting the firmware of the parent node to the new node through the established first communication link; And (e) when the new node receives the firmware transmitted from the parent node, updating the existing firmware with the received firmware and driving the updated firmware to join the wireless network Discloses a firmware update method for a node of a wireless sensor network that allows a new node's firmware update to be performed immediately in the field without collecting it to the factory when a new node joins the wireless sensor network.

대한민국등록특허 10-1029758호는 헤더에 첵섬값을 저장하여 서로 비교한 후 첵섬값이 일치하지 않는 경우 서버에 접속하여 펌웨어를 업데이트 하도록 하는 펌웨어의 원격 업데이트 방법을 개시한다.Korean Patent Registration No. 10-1029758 discloses a firmware remote update method for storing checksum values in a header and comparing them with each other, and for connecting firmware to the server when the checksum values do not match.

이와 같이, 종래기술의 경우, 사물인터넷 기기들이 서버 - 클라이언트 방식에 의해 펌웨어의 업데이터를 수행하고 있어, 사용자가 직접 조작하여 인증서버를 통해 수행해야하므로 항상 서버를 거쳐서 펌웨어 업데이트가 수행되어야 하는 번거로운 문제점을 가진다.As described above, in the conventional technology, since the object Internet devices are performing the updater of the firmware by the server-client method and the user must directly perform the operation through the authentication server, it is troublesome to always perform the firmware update through the server .

또한, 펌웨어의 무결성 검증은 항상 서버에 접속한 상태의 펌웨어 업데이트 상태에서만 수행되므로, 사물인터넷 기기 사이에서의 자체적인 무결성 검증을 수행하지 못하고, 무결성 검증 시에도 서버에 과부하가 발생하는 문제점을 가진다.In addition, since integrity verification of the firmware is always performed only in a firmware update state in which the server is connected, there is a problem that it is impossible to perform its own integrity verification between object Internet devices and an overload occurs in the server even when integrity verification is performed.

또한, 종래기술의 경우, 사물인터넷 기기의 수가 급증하는 경우 펌웨어의 업데이트 시 서버의 과부하가 발생하게 되어 제때에 펌웨어의 업데이트가 수행되지 못하는 문제점이 발생한다.Also, in the case of the related art, when the number of Internet devices is rapidly increased, the server is overloaded when the firmware is updated, and the firmware can not be updated in time.

대한민국등록특허 10-0729525호Korean Patent No. 10-0729525 대한민국등록특허 10-0862971호Korean Patent No. 10-0862971 대한민국등록특허 10-0951622호Korean Patent No. 10-0951622 대한민국등록특허 10-1029758호Korean Patent No. 10-1029758

따라서 본 발명은 상술한 종래기술의 문제점을 해결하기 위한 것으로서, 사물인터넷기기가 스스로 무결성을 검증한 후 P2P방식의 블록체인 기반으로 서버의 접속을 최소화하며 펌웨어에 대한 업데이트를 수행할 수 있도록 하는 블록체인 기반의 펌웨어 무결성 검증 시스템 및 그 방법을 제공하는 것을 목적으로 한다.SUMMARY OF THE INVENTION Accordingly, the present invention has been made keeping in mind the above problems occurring in the prior art, and it is an object of the present invention to provide a method, And to provide a chain-based firmware integrity verification system and method therefor.

상술한 목적을 달성하기 위한 본 발명의 블록체인 기반의 펌웨어 무결성 검증 시스템은,According to an aspect of the present invention, there is provided a system for verifying firmware integrity of a block chain,

펌웨어의 검증을 요청하여 펌웨어에 대한 검증을 수행하는 다수의 일반노드;A plurality of general nodes for performing verification of firmware by requesting verification of firmware;

상기 다수의 일반노드들의 펌웨어에 대한 검증요청에 따라 일반노드들의 펌웨어 검증을 수행하는 다수의 검증노드; 및A plurality of verification nodes for performing firmware verification of general nodes according to a verification request for the firmware of the plurality of general nodes; And

상기 다수의 일반노드와 검증노드들의 펌웨어에 대한 검증을 수행하는 펌웨어업데이트서버;를 포함하고,And a firmware update server for performing verification of the firmware of the plurality of general nodes and the verification nodes,

상기 다수의 일반노드와 다수의 검증노드는 블록체인 네트워크를 구성하며,The plurality of general nodes and the plurality of verification nodes constitute a block-chain network,

상기 다수의 일반노드는 다른 다수의 일반노드 또는 다수의 검증노드 중 하나의 노드를 통해 펌웨어 검증 또는 업데이트를 수행하고, 다수의 일반노드의 펌웨어 버전이 다른 다수의 일반노드 또는 다수의 검증노드의 펌웨어 버전보다 높은 경우 상기 펌웨어업데이트서버를 통해 펌웨어 업데이트를 수행하도록 구성되는 것을 특징으로 한다.The plurality of generic nodes performing firmware verification or updating through one of the plurality of general nodes or the plurality of verification nodes and performing firmware verification or updating through firmware of a plurality of general nodes or a plurality of verification nodes, And to perform firmware update through the firmware update server when the version is higher than the version.

상기 블록체인 기반의 펌웨어 무결성 검증 시스템은,Wherein the block chain-based firmware integrity verification system comprises:

일반노드가 8개 이상이고, 검증노드는 2개 이상으로 구성되는 것을 특징을 한다. It is characterized in that there are eight or more general nodes and two or more verification nodes.

상기 일반노드는,The general node,

다른 일반노드의 검증요청을 수신하는 경우 다른 일반노드의 펌웨어에 대한 검증을 수행하도록 구성될 수 있다.And to perform verification for the firmware of another ordinary node when receiving a verification request of another general node.

상기 다수의 일반노드, 다수의 검증노드 사이의 펌웨어 검증은, 펌웨어 파일을 입력으로 하는 해시 연산의 결과 값인 검증자를 비교하여 수행되도록 구성될 수 있다.The firmware verification between the plurality of general nodes and the plurality of verification nodes may be configured to be performed by comparing a verifier that is a result value of a hash operation inputting a firmware file.

상기 검증노드는 상기 펌웨어업데이트서버의 주기적인 검증노드 관리에 의해 최신 버전의 펌웨어로 업데이트되는 것을 특징으로 한다. And the verification node is updated with the latest version of firmware by the periodic verification node management of the firmware update server.

상기 블록체인 네트워크에서 전송되는 블록은,Wherein the block transmitted in the block-

블록사이즈와 펌웨어버전과 이전블록헤더해시와 머클루트를 가지는 블록헤더; 및A block header with block size and firmware version, previous block header hash and merge root; And

정상적인 검증이 이루어진 횟수를 나타내는 검증카운터(verification counter, 4바이트), 머클루트를 계산하기 위한 트리구조로서 블록 데이터의 무결성을 보장하는 머클트리(Merkle tree), 검증작업에 대한 로그 정보를 저장하는 검증로그(verification log), 디바이스 모델명과 펌웨어 버전과 검증자(verifier)를 포함하는 검증자정보(information of verifier)(40바이트)를 포함하는 블록바디;를 포함하여 구성될 수 있다.A verification counter (4 bytes) indicating the number of times the normal verification has been performed, a Merkle tree for ensuring the integrity of the block data as a tree structure for calculating the Merkle root, a verification A block body including a verification log, a device model name and firmware version, and an information of verifier (40 bytes) including a verifier.

상기 블록체인 기반의 펌웨어 무결성 검증 시스템에서,In the block chain-based firmware integrity verification system,

데이터 보안은 ECC (Elliptic Curve Cryptography) 보안 알고리즘을 이용하여 수행되며, 일반노드(ni)들은 재사용 공격을 방지하기 위해 검증 요청 시마다 새로운 키 쌍을 생성하여 검증을 수행하는 것을 특징으로 한다.Data security is performed using an ECC (Elliptic Curve Cryptography) security algorithm, and the generic nodes (ni) perform a verification by generating a new key pair at every verification request to prevent a reuse attack.

상기 블록체인 기반의 펌웨어 무결성 검증 시스템에서,In the block chain-based firmware integrity verification system,

데이터 무결성은 ECC 기반 디지털 서명인 ECDSA(Elliptic Curve Digital Signature Algorithm)가 적용될 수 있다.Data integrity can be applied to the ECDSA (Elliptic Curve Digital Signature Algorithm), which is an ECC-based digital signature.

상기 블록체인 기반의 펌웨어 무결성 검증 시스템에서,In the block chain-based firmware integrity verification system,

펌웨어의 업데이트 시 일반노드들과 검증노드들의 디바이스와 펌웨어업데이트서버 간의 데이터 암호화는 ECDH(Elliptic Curve Diffie-Hellman) 키 교환 알고리즘에 의해 생성된 임시 비밀키를 이용하여 수행될 수 있다.The data encryption between the generic nodes and the devices of the validation nodes and the firmware update server at the time of updating the firmware can be performed using the temporary secret key generated by the ECDH (Elliptic Curve Diffie-Hellman) key exchange algorithm.

상술한 목적을 달성하기 위한 본 발명의 블록체인 기반의 펌웨어 무결성 검증 방법은,According to another aspect of the present invention, there is provided a method for verifying firmware integrity of a block chain,

펌웨어의 검증을 요청하여 펌웨어에 대한 검증을 수행하는 다수의 일반노드;A plurality of general nodes for performing verification of firmware by requesting verification of firmware;

상기 다수의 일반노드들의 펌웨어에 대한 검증요청에 따라 일반노드들의 펌웨어 검증을 수행하는 다수의 검증노드; 및 상기 다수의 검증노드들의 펌웨어에 대한 검증을 수행하는 펌웨어업데이트서버;를 포함하고, 상기 다수의 일반노드와 다수의 검증노드들은 블록체인 네트워크를 구성하는 펌웨어 검증 시스템의 펌웨어 검증 방법에 있어서,A plurality of verification nodes for performing firmware verification of general nodes according to a verification request for the firmware of the plurality of general nodes; And a firmware update server for verifying the firmware of the plurality of verification nodes, wherein the plurality of general nodes and the plurality of verification nodes comprise a block chain network,

펌웨어업데이트서버가 펌웨어의 업데이트를 위해 검증노드들의 펌웨어를 최신 버전의 펌웨어로 업데이트 하는 검증노드관리과정;A verification node management process in which the firmware update server updates the firmware of the verification nodes to the latest version of the firmware to update the firmware;

업데이트가 필요한 일반노드(ni)가 펌웨어의 검증 요청을 위해 검증요청 메시지를 블록체인 네트워크 상에서 브로드캐스트하는 검증요청과정;A verification request process in which a general node (ni) requiring an update broadcasts a verification request message on a block-chain network for verification request of the firmware;

검증 요청 메시지를 브로드캐스트한 후 수신되는 응답 메시지를 통해 최초 수신 노드가 검증노드인지 일반노드인지를 판단하는 최초수신노드판단과정;A first receiving node determining step of determining whether a first receiving node is a verification node or a general node through a response message received after broadcasting a verification request message;

상기 최초수신노드판단과정의 판단결과 최초수신노드가 검증노드인 경우, 검증 요청 일반노드(ni)는 검증노드가 전송한 응답메시지 내의 펌웨어 버전정보를 이용하여 자신의 펌웨어 버전이 최신펌웨어인지를 판단한 후, 최신펌웨어인 경우 검증노드와 무결성 검증을 수행하고, 최신펌웨어가 아닌 경우 펌웨어업데이트서버를 통해 펌웨어업데이트를 수행하는 검증노드기반검증과정; 및If the first receiving node is a verification node as a result of the determination in the first receiving node determination process, the verification request general node ni uses the firmware version information in the response message transmitted by the verification node to determine whether its firmware version is the latest firmware A verification node-based verification process of performing integrity verification with a verification node when the firmware is latest firmware and firmware update through a firmware update server when the firmware is not the latest firmware; And

상기 최초수신노드판단과정의 판단결과 최초수신노드가 일반노드인 경우, 검증 요청 일반노드(ni)는 응답메시지에 포함된 펌웨어 버전(v')과 자신의 펌웨어 버전(v)를 비교하여, v > v'인 경우에는 응답메시지를 송신한 일반노드(nj)로 펌웨어 업데이트를 알려 일반노드(nj)가 펌웨어업데이트서버를 통해 펌웨어 업데이트를 수행하도록 하고, v = v'인 경우 검증 요청 일반노드(ni)와 응답메시지를 송신한 일반노드(nj) 각각의 펌웨어 파일을 해시 연산한 결과 값인 검증자를 비교하여 일치하는 경우 처리과정을 종료하고, 불일치하는 경우 검증 요청 일반노드(ni)가 펌웨어업데이트서버를 통해 펌웨어 업데이트를 수행하며, v < v'인 경우 검증 요청 일반노드(ni)가 펌웨어업데이트서버를 통해 펌웨어 업데이트를 수행하는 일반노드기반검증과정;을 포함하여 이루어진다.If the first receiving node is a general node as a result of the first receiving node determination process, the verification request general node ni compares the firmware version v 'included in the response message with its firmware version v, > v ', inform the firmware update to the general node (nj) that sent the response message, and let the general node (nj) perform the firmware update through the firmware update server. If v = v' ni) and the general node (nj) that transmitted the response message are compared with each other, and when the match is found to be inconsistent, the verification request general node (ni) And a general node-based verification process in which the verification request general node (ni) performs firmware update through the firmware update server when v < v ' It is.

상기 검증노드기반검증과정은,The verification node-based verification process includes:

최초수신노드판단과정(S300)의 판단결과 최초수신노드가 검증노드(vi)인 경우, 수신된 응답 메시지의 펌웨어 버전 정보를 이용하여 검증요청 일반노드(ni)의 펌웨어 버전이 최신펌웨어 버전(vnew)인지를 판단하는 최신펌웨어사용판단과정;If the first receiving node is the verification node vi, the firmware version of the verification request general node ni is updated to the latest firmware version vnew using the firmware version information of the received response message ) Of the latest firmware;

최신펌웨어사용판단과정(S410)의 판단결과 검증요청 일반노드(ni)의 펌웨어가 최신 펌웨어 버전(vnew)인 경우 검증노드(vi)로부터 펌웨어 파일에 해시 연산을 수행한 검증자를 수신한 후 자신의 펌웨어 파일에 해시 연산을 수행한 검증자와 비교하여 일치 여부를 판단하는 제1무결성검증과정; 및If the firmware of the verification request general node ni is the latest firmware version vnew as a result of the determination in the latest firmware use decision process S410, after receiving the verifier that has performed the hash operation on the firmware file from the verification node vi, A first integrity verification process of comparing a firmware file with a verifier that has performed a hash operation to determine whether the firmware file matches or not; And

상기 최신펌웨어사용판단과정의 판단결과 검증 요청 노드의 디바이스의 펌웨어가 최신버전이 아닌 경우, 또는 제1무결성검증과정의 처리결과 무결성이 없는 경우 상기 일반노드(ni)가 펌웨어업데이트서버에 접속하여 펌웨어 업데이트를 수행하는 제1업데이트과정;을 포함하여 이루어진다.If the firmware of the device of the verification request node is not the latest version as a result of the determination of the latest firmware use determination process or if the result of the first integrity verification process is not integrity, the general node ni accesses the firmware update server, And a first update process for performing the update.

상술한 구성의 본 발명은, 사물인터넷 네트워크에서 디바이스들의 펌웨어 무결성 검증 및 업데이트를 자동화함으로써 펌웨어 무결성 검증 및 업데이트를 현저히 용이하게 수행할 수 있도록 하는 효과를 제공한다.The present invention with the above-described configuration provides the effect of enabling firmware integrity verification and update to be performed remarkably easily by automating firmware integrity verification and updating of devices in the object Internet network.

또한, 본 발명은 사물인터넷 네트워크에 블록체인 네트워크를 적용하는 것에 의해 다수의 노드들의 펌웨어의 검증을 보장하게 되며, 암호화를 적용하는 것에 의해 보안적으로 안전한 최신의 펌웨어를 획득할 수 있도록 하여 시스템의 안정성을 현저히 향상시키는 효과를 제공한다.In addition, the present invention ensures the verification of firmware of a plurality of nodes by applying a block-chain network to the object Internet network, and it is possible to acquire secure latest safe firmware by applying encryption, Thereby providing an effect of significantly improving stability.

또한, 본 발명은 사물인터넷 네트워크를 펌웨어업데이트서버를 통하지 않는 분산적인 P2P 네트워크를 적용하는 것에 의해 펌웨어업데이트서버의 과부하를 방지하는 효과를 제공한다.In addition, the present invention provides an effect of preventing overload of the firmware update server by applying a distributed P2P network not through the firmware update server to the object Internet network.

또한, 본 발명은 펌웨어 검증을 자동으로 수행하도록 함으로써, 펌웨어의 변조 유무를 신속하게 탐지할 수 있도록 하는 효과를 제공한다.In addition, the present invention provides the effect of automatically detecting whether the firmware is tampering by automatically performing firmware verification.

또한, 본 발명은 사물인터넷 네트워크의 펌웨어 업데이트를 위한 사용자의 별도 조작을 필요로 하지 않으며, 신뢰성 있는 펌웨어 검증 및 업데이트를 제공하고, 블록체인의 장점인 오픈 소스로서 제3의 신뢰기관이 필요로 하지 않아 경제성을 높이고, 정보를 다수가 공동으로 소유하는 것에 의해 해킹을 불가능하게 하는 안정성 높이며, 다수의 참여에 의해 자동 실행되므로 신속성을 높이는 효과를 제공한다.Further, the present invention does not require a separate operation of the user to update the firmware of the object Internet network, provides reliable firmware verification and update, and requires a third trust institution as an open source which is an advantage of the block chain It improves the economic efficiency, increases the stability that makes hacking impossible by the common ownership of information, and it is automatically executed by a large number of participants, thus providing the effect of improving the promptness.

도 1은 본 발명의 실시예에 따르는 블록체인 기반의 펌웨어 무결성 검증 시스템의 구성도.
도 2는 상기 블록체인 네트워크(100)를 구성하는 일반노드와 검증노드의을 나타내는 도면.
도 3은 일반노드(ni)와 펌웨어업데이트서버(200) 사이의 ECDH 키 교환 절차를 나타내는 도면.
도 4는 본원 발명의 실시예에 따르는 블록 체인을 이용한 펌웨어 검증 방법의 처리과정을 나타내는 순서도.
도 5는 상술한 제1무결성검증과정(S420)에서의 메시지 송수신을 나타내는 도면.
도 6은 상기 제1업데이트과정(S430)의 일반노드(ni)와 펌웨어업데이트서버(200) 사이의 메시지 송수신을 나타내는 도면.
도 7은 상술한 일반노드업데이트과정(S530)에서 송수신되는 메시지를 나타내는 도면.
도 8은 제2무결성검증과정(S540)에서의 메시지 송수신을 나타내는 도면.
도 9는 제2업데이트과정(S550)에서의 메시지 송수신을 나타내는 도면.
1 is a block diagram of a block chain-based firmware integrity verification system according to an embodiment of the present invention;
FIG. 2 is a diagram showing a general node and a verification node constituting the block-chain network 100; FIG.
3 is a diagram illustrating an ECDH key exchange procedure between the general node ni and the firmware update server 200;
4 is a flowchart illustrating a process of a firmware verification method using a block chain according to an embodiment of the present invention.
5 is a diagram showing a message transmission / reception in the first integrity verification procedure (S420).
6 is a diagram showing a message transmission / reception between the general node ni and the firmware update server 200 in the first update process S430.
7 is a diagram illustrating a message transmitted and received in the general node update procedure (S530).
8 is a diagram showing a message transmission / reception in the second integrity verification procedure (S540);
9 is a diagram showing a message transmission / reception in the second update process (S550);

하기에서 본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.In the following description of the present invention, detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.

본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원서에 상세하게 설명하고자 한다. 그러나 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명은 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 또한, 본 명세서에서 단어 "예시적인" 은 "예로서, 일례로서, 또는 예증으로서 역할을 한다."라는 것을 의미하기 위해 이용된다. "예시적"으로서 본 명세서에서 설명된 임의의 양태들은 다른 양태들에 비해 반드시 선호되거나 또는 유리하다는 것으로서 해석되어야 하는 것만은 아니다.The embodiments according to the concept of the present invention can make various changes and have various forms, so that specific embodiments are illustrated in the drawings and described in detail in this specification or the application. It is to be understood, however, that the intention is not to limit the embodiments according to the concepts of the invention to the specific forms of disclosure, and that the invention includes all modifications, equivalents and alternatives falling within the spirit and scope of the invention. Also, the word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any aspect described herein as "exemplary " is not necessarily to be construed as preferred or advantageous over other aspects.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.

본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises ", or" having ", or the like, specify that there is a stated feature, number, step, operation, , Steps, operations, components, parts, or combinations thereof, as a matter of principle.

이하, 본 발명의 실시예를 나타내는 첨부 도면을 참조하여 본 발명을 더욱 상세하게 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings showing embodiments of the present invention.

본 발명의 실시예의 설명에서의 용어의 정의는 다음의 표와 같다.Definitions of terms in the description of the embodiment of the present invention are shown in the following table.

Figure 112016062440647-pat00001
Figure 112016062440647-pat00001

도 1은 본 발명의 실시예에 따르는 블록체인 기반의 펌웨어 무결성 검증 시스템의 구성도이다.1 is a block diagram of a block-chain-based firmware integrity verification system according to an embodiment of the present invention.

도 1과 같이, 상기 펌웨어 무결성 검증 시스템은, 펌웨어의 검증을 요청하여 펌웨어에 대한 검증을 수행하는 다수의 일반노드(ni), 상기 다수의 일반노드(ni)들의 펌웨어에 대한 검증요청에 따라 일반노드들의 펌웨어 검증을 수행하는 다수의 검증노드(vi); 및 상기 다수의 검증노드들의 펌웨어에 대한 검증을 수행하는 펌웨어업데이트서버(200)를 포함하여 블록체인 네트워크(100)를 구성한다.As shown in FIG. 1, the firmware integrity verification system includes a plurality of general nodes ni for performing verification of firmware by requesting verification of firmware, A plurality of verification nodes vi for performing firmware verification of the nodes; And a firmware update server 200 for performing verification of the firmware of the plurality of verification nodes.

상술한 펌웨어 무결성 검증 시스템은, 네트워크 내 노드들이 블록체인으로 연결되어 있으며, 노드 간 네트워크는 최소한의 요구 조건을 충족하도록 구성된다. 최소한의 요구 조건의 예로는 같은 디바이스를 사용하는 일반노드가 최소 8개 이상이고, 검증노드는 2개 이상의 조건일 수 있다. 이는 펌웨어 무결성 검증을 위한 네트워크의 최소 사양이다.In the above-described firmware integrity verification system, the nodes in the network are connected in a block chain, and the inter-node network is configured to meet a minimum requirement. An example of a minimum requirement is a minimum of eight generic nodes using the same device, and a verification node may be a condition of two or more. This is the minimum specification of the network for firmware integrity verification.

상기 일반노드(ni)들은 펌웨어 검증을 요청하여 펌웨어 검증을 수행함은 물론, 다른 일반노드(ni)의 펌웨어 검증 요청을 수신하는 경우 다른 일반노드(ni)의 펌웨어 검증을 수행하도록 구성된다.The general nodes ni are configured to perform firmware verification by requesting firmware verification and firmware verification of another general node ni when receiving a firmware verification request of another general node ni.

상기 검증노드(vi)는 다수의 사물인터넷 기기의 디바이스 펌웨어 검증을 위해 임의로 블록체인 네트워크(100) 내에 존재하도록 구성된 노드들이다. 네트워크 내에 여러 개의 검증노드(vi)가 존재하며, 항상 디바이스 모델명에 대응하는 최신 펌웨어 검증자를 저장한다. 이 때 검증자는 크기가 작기 때문에 검증노드(vi)는 서버 수준의 성능을 요하지 않는다. 상술한 구성의 검증노드(vi)의 최신 펌웨어 검증자는 펌웨어업데이트서버(200)가 주기적으로 업데이트 하며, 이때 펌웨어업데이트서버(200)와 검증노드(vi)는 안전한 채널을 가지고 있어 암호화 통신을 수행한다.The verification node vi is a node configured to exist in the block-chaining network 100 arbitrarily for device firmware verification of a plurality of object Internet devices. There are multiple verification nodes vi in the network and always store the latest firmware verifier corresponding to the device model name. Since the validator is small in size, the validation node (vi) does not require server-level performance. The latest firmware verifier of the verification node vi of the above-mentioned configuration is periodically updated by the firmware update server 200, and the firmware update server 200 and the verification node vi have a secure channel to perform the encrypted communication .

상술한 구성의 검증노드(vi)들은 사물인터넷 기기 벤더들 또는 정부가 관리를 수행하게 되며, 이 경우 펌웨어업데이트서버(200)에 의해 검증노드들(vi)들에 대한 관리가 수행된다.The verification nodes vi in the above-described configuration are managed by the object Internet appliance vendors or the government. In this case, the management of the verification nodes vi is performed by the firmware update server 200. [

상기 검증노드(vi)들을 하나의 벤더가 관리하는 경우에는 해당 벤더가 판매하는 디바이스들의 펌웨어만을 검증 및 업데이트하는 관리를 수행하게 된다. 이와 달리, 검증노드(vi)들을 다수의 벤더 또는 정부가 관리하는 경우에는 펌웨어업데이트서버(200)는 다수의 벤더가 판매하는 디바이스들의 펌웨어를 모두 검증 및 업데이트를 수행한다. 이때 펌웨어업데이트서버(200)는 벤더 별, 정부 기관별로 다수가 구성될 수 있다.When the verification nodes vi are managed by one vendor, the verification is performed to verify and update the firmware of the devices sold by the vendor. On the other hand, when the verification nodes vi are managed by a plurality of vendors or the government, the firmware update server 200 performs verification and update of firmware of devices sold by a plurality of vendors. At this time, the firmware update server 200 may be configured by a plurality of vendors or government agencies.

상기 검증자는 다수의 사물인터넷 기기의 디바이스 펌웨어 무결성 검증을 위한 값이다. 구체적으로 상기 검증자는 펌웨어 파일을 입력으로 검증 알고리즘(예: SHA-2)에 따라 연산한 해시 값이 된다. 일예로 일반노드 ni가 사용하는 현재의 펌웨어 파일이 fv인 경우 fv에 대한 검증자는 해시 연산이 적용된 H(fv)가 된다. 이때 해시 연산 결과 값의 크기는 항상 일정하며, 256 바이트 등일 수 있다. 펌웨어 파일이 단일 파일이 아닐 경우에는 각각의 파일을 접합하여 해시 연산의 입력값으로 사용하게 된다. 이때 펌웨어 파일의 개수가 2개 이상인 경우에도 검증자의 크기는 일정하게 유지된다. 상술한 바와 같이, 펌웨어의 검증을 위해 펌웨어 파일이 아닌 검증자를 생성함으로써 통신 데이터양을 현저히 줄일 수 있다.The verifier is a value for verifying device firmware integrity of a plurality of object Internet devices. Specifically, the verifier is a hash value calculated based on a verification algorithm (e.g., SHA-2) as the input of the firmware file. For example, if the current firmware file used by the general node ni is fv, the verifier for fv is H (fv) to which the hash operation is applied. At this time, the size of the hash operation result value is always constant, and it may be 256 bytes or the like. If the firmware file is not a single file, each file is joined and used as the input value of the hash operation. At this time, even if the number of firmware files is two or more, the size of the verifier is kept constant. As described above, the amount of communication data can be significantly reduced by generating a verifier, not a firmware file, for verification of the firmware.

도 2는 상기 블록체인 네트워크(100)를 구성하는 일반노드와 검증노드의 블록(110)을 나타내는 도면이다. FIG. 2 is a block diagram showing a general node and a verification node block 110 constituting the block-chain network 100. FIG.

도 2와 같이, 상기 블록(110)은 블록헤더(111)와 블록바디(115)를 포함하여 구성된다.As shown in FIG. 2, the block 110 includes a block header 111 and a block body 115.

상기 블록헤더(111)는 72바이트로 구성되고, 블록사이즈(4바이트), 버전(4바이트), 이전블록헤더해시(Previous block header hash)(32바이트), 머클루트(Merkle Root)(32바이트) 정보를 포함한다.The block header 111 is composed of 72 bytes and includes a block size (4 bytes), a version (4 bytes), a previous block header hash (32 bytes), a Merkle Root 32 Byte) information.

상기 블록바디(115)는 검증카운터(verification counter, 4바이트), 머클트리(Merkle tree)(가변길이), 검증로그(verification log)(가변길이), 디바이스 모델명과 펌웨어 버전과 검증자(verifier)를 포함하는 검증자정보(information of verifier)(40바이트)를 포함한다.The block body 115 includes a verification counter (4 bytes), a Merkle tree (variable length), a verification log (variable length), a device model name, a firmware version, and a verifier. (40 bytes) of information of the verifier.

상기 검증카운터는 정상적인 검증이 이루어진 횟수를 나타내는 것으로서 일반노드(ni)들에만 존재하며, 검증노드(vi)의 경우에는 0으로 고정된다.The verification counter indicates the number of times that normal verification has been performed, and is present only in the general nodes (ni), and is fixed to 0 in the case of the verification node (vi).

상기 머클트리는 머클루트를 계산하기 위한 트리구조로서, 블록 데이터의 무결성을 보장한다. 트리를 구성하는 리프노드는 각 블록을 해시(예: SHA-256) 연산한 값으로 구성된다. 또한 머클트리는 저장 공간 재확보 기능을 가지고 있어 머클트리의 용량이 무한정 늘어나지 않도록 관리한다.The merge tree is a tree structure for calculating the merge route and ensures the integrity of the block data. A leaf node constituting a tree consists of a value obtained by calculating a hash (for example, SHA-256) of each block. In addition, Mercury Tree has a function of reserving storage space so that the capacity of Mercury Tree is not infinitely increased.

상기 검증로그는 검증작업에 대한 로그 정보를 저장하는 것으로, 검증 시각, 검증을 요청한 노드, 검증에 참여한 노드 정보를 포함한다. 이때 검증 시각은 그 시간에 검증이 성공적으로 완료되었음을 증명할 때 쓰인다. 검증에 성공한 노드는 네트워크 내의 모든 노드에게 검증 내역을 브로드캐스트(broadcast)한다. 이러한 검증 내역 정보에는 검증을 요청한 노드의 서명이 포함된다. 각 노드들은 이전 블록 헤더의 해시 값을 서로 연관시켜 체인으로 구성된다.The verification log stores log information for a verification operation, and includes verification time, a node requesting verification, and node information involved in verification. The verification time is used to verify that the verification was successfully completed at that time. A node that has successfully verified broadcasts the verification history to all nodes in the network. This verification history information includes the signature of the node that requested the verification. Each node is composed of chains by associating the hash values of the previous block header with each other.

상기 디바이스 모델명은 각각의 사물인터넷 기기에 장착되는 디바이스의 모델명 정보를 가진다.The device model name has model name information of a device mounted on each of the object Internet devices.

상기 펌웨어 버전은 디바이스에 대응하는 펌웨어 버전을 저장한다. 검증노드(vi)들은 디바이스 모델명에 대응하는 최신 펌웨어 버전을 저장하며, 일반노드(ni)들은 노드가 사용하는 펌웨어 버전을 저장한다.The firmware version stores the firmware version corresponding to the device. The verification nodes vi store the latest firmware version corresponding to the device model name, and the general nodes ni store the firmware version used by the node.

검증자는 일반노드(ni) 또는 검증노드(vi)의 펌웨어 파일을 해시 연산한 결과 값이다. 검증노드(vi)는 디바이스 명에 대응하는 최신 버전의 펌웨어 파일이 저장된다. 일반노드(ni)에는 자신이 사용하는 버전의 펌웨어 파일이 저장된다.The verifier is the result of hashing the firmware file of the general node (ni) or the verification node (vi). The verification node vi stores the latest version firmware file corresponding to the device name. The general node (ni) stores the firmware file of the version used by the general node (ni).

상술한 블록체인 기반의 펌웨어 무결성 검증 시스템의 데이터 보안은 ECC (Elliptic Curve Cryptography) 보안 알고리즘을 이용하여 수행될 수 있다.The data security of the above-described block chain-based firmware integrity verification system can be performed using an ECC (Elliptic Curve Cryptography) security algorithm.

상기 ECC 보안 알고리즘은 타원 곡선상의 점을 이용하여 키 쌍을 생성하는 공개키 암호화 방식이다. 타원 곡선 방정식의 일반적인 형태는 y2 = x3+ax+b이다. 이때 개인키를 k라 하면 타원 곡선상의 임의의 한 점 P에서의 공개키 K=kP이다. 이러한 ECC 보안 알고리즘은 전수 공격을 통해 키를 얻거나, 공개키를 통해 개인키를 유추하는 것이 어려워 보안성을 높인다.The ECC security algorithm is a public key cryptosystem in which key pairs are generated using points on an elliptic curve. The general form of an elliptic curve equation is y 2 = x 3 + ax + b. In this case, k is the public key K = kP at an arbitrary point P on the elliptic curve. This ECC security algorithm increases the security because it is difficult to obtain the key through the attack or to guess the private key through the public key.

이 경우 데이터의 암호화는 ECC를 적용한 공개키 암호화 방식을 사용한다. 검증자의 크기가 매우 작으므로 공개키로 충분히 암호화하여 전송이 가능하다. SHA-256을 사용할 경우 검증자의 크기는 256비트가 된다. 일반노드(ni)들은 검증을 요청할 때마다 새로운 키 쌍을 생성하는 것에 의해 재사용 공격을 방지한다.In this case, the data is encrypted using a public key encryption method using ECC. Since the size of the verifier is very small, it can be sufficiently encrypted with the public key. When SHA-256 is used, the size of the validator is 256 bits. Common nodes (ni) prevent replay attacks by generating new key pairs each time they request verification.

데이터의 무결성은 ECC 기반 디지털 서명인 ECDSA(Elliptic Curve Digital Signature Algorithm)가 적용된다. 노드들은 자신이 사용하고 있는 디바이스의 펌웨어의 검증자를 보낼 때 자신의 개인키로 서명하여 보낸다. 이를 위해 네트워크에 참여한 모든 노드는 서명 검증이 가능하다.ECDSA (Elliptic Curve Digital Signature Algorithm), which is an ECC-based digital signature, is applied to the integrity of data. Nodes are signed with their own private key when they send the verifier of the firmware of the device they are using. To do this, all nodes participating in the network are able to verify the signature.

업데이트 시 노드(일반노드, 검증노드)들의 디바이스와 서버간의 데이터 암호화는 ECDH(Elliptic Curve Diffie-Hellman) 키 교환 알고리즘에 의해 생성된 임시 비밀키에 의해 수행된다.In the update, data encryption between the device and the server of the node (general node, verification node) is performed by a temporary secret key generated by an Elliptic Curve Diffie-Hellman (ECDH) key exchange algorithm.

도 3은 일반노드(ni)와 펌웨어업데이트서버(200) 사이의 ECDH 키 교환 절차를 나타내는 도면이다.3 is a diagram illustrating an ECDH key exchange procedure between the general node ni and the firmware update server 200. As shown in FIG.

일반노드(ni)들과 펌웨어업데이트서버(200) 사이의 펌웨어 업데이트가 수행되는 경우, 필요한 경우 노드들의 디바이스와 펌웨어업데이트서버(200)는 타원곡선 상의 초기점 P를 선택할 때 같은 타원 곡선 E를 사용한다. 이에 의해 이산대수 문제에 의해 보안성이 보장된다. When the firmware update between the general nodes ni and the firmware update server 200 is performed, the devices of the nodes and the firmware update server 200 use the same elliptic curve E when selecting the initial point P on the elliptic curve do. As a result, the security is ensured by the discrete logarithm problem.

일반노드(ni)와 펌웨어업데이트서버(200)의 사이의 업데이트의 수행을 위해서는 ECDH 키 교환 알고리즘을 사용한다. 구체적으로. 도 3과 같이, 일반노드(ni)와 펌웨어업데이트서버(200)의 사이의 업데이트의 수행을 위해서 같은 타원 곡선 E가 선택된 후 타원 E 상의 초기점 P가 선택된다. 그리고 개인키(private key) a를 가지는 일반노드(ni)는 공개키(public key) aP를 펌웨어업데이트서버(200)로 전송하고, 개인키 b를 가지는 펌웨어업데이트서버(200)는 공개키 bP를 일반노드(ni)로 전송한다. 이 후 일반노드(ni)와 펌웨어업데이트서버(200)는 비밀키 abP를 생성하여 비밀키에 의한 데이터 교환을 수행하는 것에 의해 일반노드(ni)와 펌웨어업데이트서버(200) 사이에 업데이트가 수행된다.An ECDH key exchange algorithm is used to perform update between the general node (ni) and the firmware update server (200). Specifically. As shown in FIG. 3, an initial point P on the ellipse E is selected after the same elliptic curve E is selected for updating between the general node ni and the firmware update server 200. The general node ni having the private key a transmits the public key aP to the firmware update server 200 and the firmware update server 200 having the private key b transmits the public key bP To the general node (ni). Thereafter, the general node ni and the firmware update server 200 generate the secret key abP and exchange data by the secret key, thereby performing update between the general node ni and the firmware update server 200 .

도 4는 본원 발명의 실시예에 따르는 블록 체인을 이용한 펌웨어 검증 방법의 처리과정을 나타내는 순서도이다.4 is a flowchart illustrating a process of a firmware verification method using a block chain according to an embodiment of the present invention.

도 4와 같이, 상기 블록 체인을 이용한 펌웨어 검증 방법은, 검증노드관리과정(S100), 검증요청과정(S200), 최초수신노드판단과정(S300), 검증노드기반검증과정(S400) 및 일반노드기반검증과정(S500)을 포함하여 구성된다.4, the firmware verification method using the block chain includes a verification node management process S100, a verification request process S200, a first receiving node determination process S300, a verification node-based verification process S400, Based verification process (S500).

다수의 일반노드(ni)들과 검증노드(vi)들로 구성되는 블록체인 네트워크(100)가 구성된 후, 펌웨어 업데이트를 위해 펌웨어업데이트서버(200)는 검증노드(vi)들의 펌웨어를 최신의 펌웨어로 업데이트 하는 검증노드관리과정(S100)이 수행된다.After the block-chain network 100 composed of a plurality of general nodes ni and verification nodes vi is configured, the firmware update server 200 updates the firmware of the verification nodes vi to the latest firmware (S100) is performed.

구체적으로, 검증노드(vi)들은 사물인터넷 기기 벤더들 또는 정부가 관리를 수행하게 되며, 이 경우 펌웨어업데이트서버(200)를 구성하여 검증노드들(vi)들에 대한 관리가 수행된다. 상기 검증노드(vi)들을 하나의 벤더가 관리하는 경우에는 해당 벤더가 판매하는 디바이스들의 펌웨어만을 검증 및 업데이트하는 관리를 수행하게 된다. 이와 달리, 검증노드(vi)들을 다수의 벤더 또는 정부가 관리하는 경우에는 펌웨어업데이트서버(200)는 다수의 벤더가 판매하는 디바이스들의 펌웨어를 모두 검증 및 업데이트를 수행한다. 이때 펌웨어업데이트서버(200)는 벤더 별, 정부 기관별로 다수가 구성될 수 있다.Specifically, the verification nodes vi are managed by the object Internet device vendors or the government. In this case, the firmware update server 200 is configured to manage the verification nodes vi. When the verification nodes vi are managed by one vendor, the verification is performed to verify and update the firmware of the devices sold by the vendor. On the other hand, when the verification nodes vi are managed by a plurality of vendors or the government, the firmware update server 200 performs verification and update of firmware of devices sold by a plurality of vendors. At this time, the firmware update server 200 may be configured by a plurality of vendors or government agencies.

다음으로, 업데이트가 필요한 일반노드(ni)은 펌웨어의 검증 요청을 위해 검증요청 메시지를 블록체인 네트워크 상에서 브로드캐스트하는 검증요청과정(S200)이 수행된다. 이때 검증요청 메시지는 Verify_req[PUni||IDni||D||v||r]로 표시된다. 여기서, PUni은 검증을 요청하는 일반노드(ni)의 공개키이고, D는 일반노드(ni)가 사용하는 디바이스 모델명이며, v는 펌웨어 버전이고, r은 검증을 요청하는 일반노드(ni)가 만드는 난수이다.Next, a general node (ni) requiring updating is subjected to a verification request process (S200) in which a verification request message is broadcast on a block-chain network for verification request of the firmware. At this time, the verification request message is expressed as Verify_req [PUni || IDni || D || v || r]. Where PUni is the public key of the generic node ni requesting verification, D is the device model name used by the generic node ni, v is the firmware version and r is the generic node ni requesting verification It is a random number to make.

다음으로, 검증요청 일반노드(ni)는 검증요청을 최초로 받은 노드로부터 수신되는 응답을 이용하여 최초수신 노드가 검증노드(vi)인지 일반노드(nj)인지를 판별하는 최초수신노드판단과정(S300)수행한다. 여기서 검증노드(vi)의 응답메시지는 일반노드(ni)의 펌웨어 버전이 v인 경우에는 Verify_res[E(PUni, D||v||r+1||IDvi)||PUvi]이고, 펌웨어 버전이 최신펌웨어버전 vnew인 경우에는 Verify_res[E(PUni, D||vnew||r+1||IDvi)||PUvi]이 된다. 또한, 일반노드(nj)의 경우에는 펌웨어 버전에 관계없이 검증에 참여할 수 있도록 함으로써 블록체인 내의 다른 노드들에게 verify_join[IDni||IDnj||D]와 같이 브로드캐스트하고, 6개 이상의 다른 일반 노드들에게 참여여부가 확인 되면, ni의 검증요청 메시지에 대한 응답메시지는 Verify_res[E(PUni, D||v'||r+1||IDnj)||PUnj] 이 된다.Next, the verification request general node ni uses the response received from the node that originally received the verification request to determine whether the first receiving node is the verification node vi or the general node nj ). Here, the response message of the verification node vi is Verify_res [E (PUni, D || v || r + 1 || IDvi) || PUvi] when the firmware version of the general node (ni) is v, In the case of the latest firmware version vnew, Verify_res [E (PUni, D || vnew || r + 1 || IDvi) || PUvi]. Also, in the case of the general node (nj), it can participate in the verification regardless of the firmware version, thereby broadcasting to other nodes in the block chain as verify_join [IDni || IDnj || D] (PUni, D || v '|| r + 1 || IDnj) || PUnj], the response message to the ni validation request message becomes Verify_res [E

최초수신노드판단과정(S300)의 판단결과 응답메시지가 검증노드(vi)로부터 수신되는 경우에는 검증노드기반검증과정(S400)을 수행하고, 일반노드(nj)로부터 수신되는 경우에는 일반노드기반검증과정(S500)을 수행한다.If the response message is received from the verification node vi as a result of the determination in the initial receiving node determination step S300, the verification node-based verification process S400 is performed. If the response message is received from the general node nj, (S500) is performed.

검증노드기반검증과정(S400)은 도 4와 같이, 최신펌웨어사용판단과정(S410), 제1무결성검증과정(S420) 및 제1업데이트과정(S430)을 포함하여 이루어진다.The verification node-based verification process (S400) includes a latest firmware usage determination process (S410), a first integrity verification process (S420), and a first update process (S430), as shown in FIG.

최초수신노드판단과정(S300)의 판단결과 최초수신노드가 검증노드(vi)인 경우, 수신된 응답 메시지의 펌웨어 버전 정보를 이용하여 검증요청 일반노드(ni)의 펌웨어 버전이 최신 웨어 버전(vnew)인지를 판단하는 최신펌웨어사용판단과정(S410)을 수행한다.If the first receiving node is a verification node vi, the firmware version of the verification request general node ni is updated to the latest firmware version vnew using the firmware version information of the received response message (Step S410).

도 5는 상술한 제1무결성검증과정(S420)에서의 메시지 송수신을 나타내는 도면이다.5 is a diagram showing a message transmission / reception in the first integrity verification procedure (S420).

최신펌웨어사용판단과정(S410)의 판단결과 검증요청 일반노드(ni)의 펌웨어가 최신 펌웨어 버전(vnew)인 경우 제1무결성검증과정(S420)이 수행된다. 제1무결성검증과정(S420)에서는 응답 메시지 안의 IDvi를 확인한 후 자신의 펌웨어 파일(fv)에 대한 해시 연산을 수행하여 검증자 H(fv)을 생성한 후 암호화 및 서명을 추가한 검증 요청 메시지를 응답한 검증노드(vi)로 전송한다. 이때 전송되는 검증 요청 메시지는 Verifier_req[E(PUvi, H(fv))||signi]이 된다. 검증노드(vi)는 검증요청 일반노드(ni)의 검증 요청 메시지에서 서명을 검증한 후 일반노드(ni)로 최신펌웨어 검증자 H(fvnew)를 암호화 및 서명한 검증요청응답 메시지(Verifier_res)를 전송한다. 이때의 검증요청응답 메시지는 Verifier_res[E(PUni, H(fvnew))||ts||Sigvi]이다. 검증요청 일반노드(ni)는 자신의 검증자 H(fv)와 검증노드(vi)의 검증자 H(fvnew)를 비교하여 일치하는 경우 무결성 있는 것으로 판단하고 일치하지 않는 경우 무결성이 없는 것으로 판단한다. 무결성이 있는 것으로 판단된 경우 검증 요청 일반노드(ni)은 검증 내역을 업데이트하고 네트워크 내 모든 노드에게 브로드캐스트한다.If the firmware of the verification request general node ni is the latest firmware version (vnew), the first integrity verification process (S420) is performed as a result of the determination of the latest firmware usage decision process (S410). In the first integrity verification process (S420), after verifying the IDvi in the response message, a hash operation is performed on the firmware file (fv) to generate a verifier H (fv), and a verification request message And transmits it to the verifying node vi. At this time, the transmitted verification request message is Verifier_req [E (PUvi, H (fv)) | signi]. The verification node vi verifies the signature in the verification request message of the verification request general node ni and sends a verification request response message Verifier_res encrypted and signed with the latest firmware verifier H (fvnew) to the general node ni send. The verification request response message at this time is Verifier_res [E (PUni, H (fvnew)) || ts || Sigvi]. The verification request general node ni compares its verifier H (fv) with the verifier H (fvnew) of the verification node vi and judges that there is integrity if there is no match, and determines that there is no integrity if it does not match . If it is determined that there is integrity, the verification request general node (ni) updates the verification history and broadcasts to all nodes in the network.

다음으로, 상기 최신펌웨어사용판단과정(S410)의 판단결과 검증 요청 노드의 디바이스의 펌웨어가 최신버전이 아닌 경우, 또는 제1무결성검증과정(S420)의 처리결과 무결성이 없는 경우, 제1업데이트과정(S430)이 수행된다. If it is determined in step S410 that the firmware of the device of the verification request node is not the latest version or if the integrity of the first integrity verification process is not found, (S430) is performed.

도 6은 상기 제1업데이트과정(S430)의 일반노드(ni)와 펌웨어업데이트서버(200) 사이의 메시지 송수신을 나타내는 도면이다. 6 is a diagram illustrating a message transmission / reception between the general node ni and the firmware update server 200 in the first update process S430.

일반노드(ni)는 최신 버전의 펌웨어 업데이트가 필요한 경우, 펌웨어업데이트서버(200)에게 업데이트 요청 메시지를 전송한다. 이때 업데이트 요청 메시지는 Update_req[IDni||D||vnew||PUni||Signi]이다.The general node ni sends an update request message to the firmware update server 200 when a firmware update of the latest version is required. At this time, the update request message is Update_req [IDni || D || vnew || PUni || Signi].

일반노드(ni)로부터 업데이트 요청 메시지를 수신한 펌웨어업데이트서버(Server, 200)은 일반노드(ni)의 서명(Signi)을 검증한 후 도 3의 처리과정에 의해 일반노드(ni)와 펌웨어업데이트서버(200) 사이의 임시비밀키(SKni-si)를 생성하고, 펌웨어 파일을 암호화한 후 일반노드(ni)로 전송한다. 이때 전송되는 펌웨어 메시지는 Update_firmfile[E(SKni-si, fvnew||IDsi)||vnew||Sigsi||PUsi]이다. 펌웨어 메시지를 수신한 일반노드(ni)는 펌웨어업데이트서버(200)의 서명(Sigsi)를 검증한 후 펌웨어 파일을 업데이트 하고 서버에게 펌웨어 업데이트 완료를 공지한다. 이때의 펌웨어 업데이트 완료 메시지는 Update_finished[E(SKni-si, IDni||vnew)||ts]이다.The firmware update server (Server 200) receiving the update request message from the general node ni verifies the signature of the general node ni and then updates the normal node ni and the firmware update Generates a temporary secret key SKni-si between the server 200, encrypts the firmware file, and transmits it to the general node ni. The firmware message transmitted at this time is Update_firmfile [E (SKni-si, fvnew || IDsi) || vnew || Sigsi || PUsi]. Upon receiving the firmware message, the general node ni verifies the signature (Sigsi) of the firmware update server 200, updates the firmware file, and informs the server of the firmware update completion. At this time, the firmware update completion message is Update_finished [E (SKni-si, IDni || vnew) || ts].

다시 도 4를 참조하면, 상기 일반노드기준검증과정(S500)은 참여노드수판단과정(S510), 펌웨어버전비교과정(S520), 일반노드업데이트과정(S530), 제2무결성검증과정(S540) 및 제2업데이트과정(S550)을 포함하여 이루어진다.Referring to FIG. 4 again, the general node reference verification step S500 includes a step S510 of determining a number of participating nodes, a step S520 of comparing a firmware version, a step S530 of updating a general node, And a second updating process (S550).

구체적으로, 검증 요청 일반노드(ni)로부터 검증요청 메시지를 수신한 일반노드(nj)들이 검증에 참여할 다른 노드들을 모집하는 메시지를 네트워크에 브로드캐스트 하고, 일정 개수 이상(일 예로 6개 이상)의 노드들이 검증에 참여하였는지를 판단하고, 일정 개수 이상의 노드들이 참여한 경우, 디바이스 D를 사용하는 일반노드(nj)가 검증 요청에 대하여 자신의 디바이스 모델명(D), 펌웨어 버전(v'), 난수(r+1), 디바이스 ID(IDnj), 일반노드(ni)의 공개키(PUni)를 포함하는 응답 메시지를 송신하는 참여노드수판단과정(S510)을 수행한다. 이때 송신되는 응답 메시지는 verify_res[E(PUni, D||v'||r+1||IDnj)||PUnj]이다. 참여노드수판단과정(S510)의 판단 결과 참여노드가 설정 개수 이하인 경우에는 S200 과정으로 복귀하여 처리과정을 다시 수행한다.Specifically, the general node (nj) receiving the verification request message from the verification request general node (ni) broadcasts a message to the network recruiting other nodes to participate in the verification, and transmits a message to a certain number or more (D), a firmware version (v '), and a random number (r') in response to a verification request when a predetermined number or more of nodes participate in the verification. 1), a device ID (IDnj), and a public key (PUni) of the general node (ni). The response message transmitted at this time is verify_res [E (PUni, D || v '|| r + 1 || IDnj) || PUnj]. If it is determined that the number of participating nodes is equal to or less than the set number, the process returns to S200 and the process is performed again.

이와 달리, 참여노드수판단과정(S510)의 판단 결과 참여노드가 설정 개수 이상인 경우에는, 검증 요청 일반노드(ni)가 검증 응답 일반노드(nj)들로부터 수신한 응답메시지에 포함된 펌웨어의 버전 v'과 자신의 펌웨어 버전 v를 비교하는 펌웨어버전비교과정(S520)을 수행한다.Alternatively, if it is determined in step S510 that the number of participating nodes is equal to or larger than the number of participating nodes, the version of the firmware included in the response message received from the verification response generic node nj by the verification request general node ni v 'and its own firmware version v (S520).

펌웨어버전비교과정(S520)의 비교결과 v > v'인 경우에는 일반노드업데이트과정(S530)를 수행한다. 도 7은 상술한 일반노드업데이트과정(S530)에서 송수신되는 메시지를 나타내는 도면이다. 일반노드업데이트과정(S530)에서 검증 요청 일반노드(ni)는 응답 메시지를 송신한 일반노드(nj)로 펌웨어업데이트가 필요함을 알리고, 응답 메시지를 송신한 일반노드(nj)는 펌웨어업데이트서버(200)로 펌웨어 업데이트를 요청한다. 이때, 펌웨어업데이트가 필요함을 알리는 메시지는 Update_notice[IDni||v']이고, 펌웨어업데이트서버(200)로의 업데이트 요청 메시지는 Update_req[IDnj||D||Signj||PUnj]이다. 펌웨어업데이트서버(200)는 수신된 업데이트 요청 메시지의 서명을 검증한 후, 일반노드(nj)의 공개키인 PUnj를 이용하여 도 3의 처리과정에 의해 일반노드(nj)와 펌웨어업데이트서버(200) 사이의 비밀키를 생성하여 펌웨어 파일을 암호화 한 후 일반노드(nj)로 전송한다.If the comparison result of the firmware version comparison process (S520) is v > v ', the general node update process (S530) is performed. 7 is a diagram illustrating a message transmitted and received in the general node update procedure (S530). In the normal node update step S530, the general node ni notifies the general node nj that the response message is sent that the firmware update is necessary, and the general node nj that has sent the response message transmits the response message to the firmware update server 200 ) To request a firmware update. At this time, the message indicating that the firmware update is required is Update_notice [IDni || v '], and the update request message to the firmware update server 200 is Update_req [IDnj || D || Signj || PUnj]. The firmware update server 200 verifies the signature of the received update request message and transmits the update request message to the general node nj and the firmware update server 200 by using the public key PUnj of the general node nj, ), Encrypts the firmware file, and transmits it to the general node (nj).

이와 달리, 펌웨어버전비교과정(S520)의 비교결과 v = v'인 경우에는 펌웨어 파일이 서로 동일한지를 판단하는 제2무결성검증과정(S540)을 수행한다. 도 8은 제2무결성검증과정(S540)에서의 메시지 송수신을 나타내는 도면이다. Otherwise, if the comparison result of the firmware version comparison process (S520) is v = v ', the second integrity verification process (S540) for determining whether the firmware files are identical to each other is performed. 8 is a diagram showing a message transmission / reception in the second integrity verification procedure (S540).

응답 일반노드(nj)의 펌웨어 버전(v')이 자신의 펌웨어 버전(v)과 일치하는 것을 확인한 일반노드(ni)는 자신의 펌웨어 파일로 검증자 H(fv)를 생성한 후 암호화하여 전송한다. 이때 전송되는 메시지는 Verifier_req[E(PUnj, H(fv))||Signi]이다. 응답 일반노드(nj)는 일반노드(ni)의 서명을 검증한 후 자신이 가지고 있는 검증자 H(fv')를 암호화하여 일반노드(ni)에 전송한다. 이 경우의 응답 일반노드(nj)에서 전송되는 메시지는 Verifier_res[E(PUni, H(fv')||ts||Signj) 이다. 검증 요청 일반노드(ni)은 수신된 메시지에 포함된 H(fv)과 H(fv')를 비교하여 일치하는 경우 무결성이 있는 것으로 판단하고, 일치하지 않는 경우에는 제2업데이트과정(S550)를 수행하도록 한다.The general node (ni) which confirms that the firmware version (v ') of the response common node (nj) matches the firmware version (v) of its own generates the verifier H (fv) do. The message to be transmitted at this time is Verifier_req [E (PUnj, H (fv)) | Signi]. The response general node nj verifies the signature of the general node ni and encrypts its verifier H (fv ') and transmits it to the general node ni. In this case, the message transmitted from the general node nj is Verifier_res [E (PUni, H (fv ') || ts || Signj). The verification request general node ni compares H (fv) and H (fv ') included in the received message and determines that there is integrity if there is a match, and a second update process (S550) if it does not match .

상술한 펌웨어버전비교과정(S520)의 판단결과 v < v'이거나, 제2무결성검증과정(S540)에서 무결성이 없는 경우에는, 일반노드(ni)가 펌웨어업데이트서버(200)를 통해 펌웨어 업데이트를 수행하는 제2업데이트과정(S550)을 수행한다.If it is determined that v <v 'as a result of the above-described firmware version comparison process (S520), or if there is no integrity in the second integrity verification process (S540), the normal node ni updates the firmware through the firmware update server 200 And performs a second update process (S550).

도 9는 제2업데이트과정(S550)에서의 메시지 송수신을 나타내는 도면이다. FIG. 9 is a diagram showing message transmission / reception in the second update process (S550).

도 9와 같이, v < v'인 경우 일반노드(ni)는 펌웨어업데이트서버(200)로 펌웨어 업데이트 메시지를 송신한다. 이때 송신되는 메시지는 검증 요청 일반노드의 ID(IDni)와 디바이스 모델명(D)과 검증 요청 일반노드(ni)의 공개키(PUni) 및 서명(Signi)을 포함하는 Update_req[IDni||D||PUni||Signi]이다.As shown in FIG. 9, when v <v ', the general node ni transmits a firmware update message to the firmware update server 200. At this time, the transmitted message includes Update_req [IDni || D || IDn] including the ID (IDni) of the verification request general node, the public key (PUni) and the signature of the device model name (D) PUni || Signi].

일반노드(ni)로부터 업데이트 요청 메시지를 수신한 펌웨어업데이트서버(200)는 서명(Signi)을 검증한 후 일반노드(ni)의 공개키(PUni)을 이용하여 임시비밀키 SKni-si를 생성하고, 이를 이용해 펌웨어 파일을 암호화하여 ni에게 전송한다. 이때 전송되는 메시지는 임시비밀키(SKni-si)로 암호화된 펌웨어파일(fnew), 펌웨어업데이트서버(200)의 ID(IDsi), 펌웨어의 버전(vnew) 및 서명(Sigsi)을 포함하는 Update_firmfile[E(SKni-si, fnew||IDsi)||vnew||Sigsi||PUsi)이다. 메시지를 수신한 일반노드(ni)는 서명을 검증한 후 펌웨어 업데이트를 수행하고 펌웨어업데이트서버(200)로 업데이트 완료를 공지한다. 이때의 메시지는 Update_finished[E(SKni-si, IDni||vnew)||ts]이다.Upon receiving the update request message from the general node ni, the firmware update server 200 verifies the signature and generates the temporary secret key SKni-si using the public key PUni of the general node ni , And encrypts the firmware file using this to transmit to ni. At this time, the transmitted message includes Update_firmfile [fnew] including the firmware file fnew encrypted with the temporary secret key SKni-si, the ID of the firmware update server 200, the version vnew of the firmware, E (SKni-si, fnew || IDsi) || vnew || Sigsi || PUsi). After receiving the message, the general node ni verifies the signature, performs firmware update, and informs the firmware update server 200 of the update completion. The message at this time is Update_finished [E (SKni-si, IDni || vnew) || ts].

상기에서 설명한 본 발명의 기술적 사상은 바람직한 실시예에서 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술적 분야의 통상의 지식을 가진 자라면 본 발명의 기술적 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. It will be apparent to those skilled in the art that various modifications may be made without departing from the scope of the present invention. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.

100: 블록체인 네트워크 200: 펌웨어업데이트서버
ni: 일반노드 vi: 검증노드
100: block chain network 200: firmware update server
ni: general node vi: validation node

Claims (12)

펌웨어의 검증을 요청하여 펌웨어에 대한 검증을 수행하는 다수의 일반노드;
상기 다수의 일반노드들의 펌웨어에 대한 검증요청에 따라 일반노드들의 펌웨어 검증을 수행하는 다수의 검증노드; 및
상기 다수의 일반노드와 검증노드들의 펌웨어에 대한 검증을 수행하는 펌웨어업데이트서버;를 포함하고,
상기 다수의 일반노드와 다수의 검증노드는 블록체인 네트워크를 구성하며,
상기 다수의 일반노드는 다른 다수의 일반노드 또는 다수의 검증노드 중 하나의 노드를 통해 펌웨어 검증 또는 업데이트를 수행하고, 다수의 일반노드의 펌웨어 버전이 다른 다수의 일반노드 또는 다수의 검증노드의 펌웨어 버전보다 높은 경우 상기 펌웨어업데이트서버를 통해 펌웨어 업데이트를 수행하도록 구성되며,
상기 일반노드는,
다른 일반노드의 펌웨어 업데이트 요청 메시지를 수신하는 경우 다른 일반노드에 대한 펌웨어 무결성 검증을 수행하도록 구성되며,
상기 펌웨어 업데이트 요청 메시지를 구성하는 블록은,
블록사이즈, 버전, 이전블록헤더해시(Previous block header hash), 머클루트(Merkle Root) 정보를 포함하여 구성되는 블록헤더; 및
검증카운터(verification counter), 머클트리(Merkle tree)(가변길이), 검증로그(verification log)(가변길이), 디바이스 모델명과 펌웨어 버전과 검증자(verifier)를 포함하는 검증자정보(information of verifier)를 포함하는 블록바디;를 포함하여 구성되는 블록체인 기반의 펌웨어 무결성 검증 시스템.
A plurality of general nodes for performing verification of firmware by requesting verification of firmware;
A plurality of verification nodes for performing firmware verification of general nodes according to a verification request for the firmware of the plurality of general nodes; And
And a firmware update server for performing verification of the firmware of the plurality of general nodes and the verification nodes,
The plurality of general nodes and the plurality of verification nodes constitute a block-chain network,
The plurality of generic nodes performing firmware verification or updating through one of the plurality of general nodes or the plurality of verification nodes and performing firmware verification or updating through firmware of a plurality of general nodes or a plurality of verification nodes, Version to perform firmware update via the firmware update server,
The general node,
And to perform firmware integrity verification for other general nodes when receiving a firmware update request message of another general node,
Wherein the block configuring the firmware update request message comprises:
A block header comprising block size, version, previous block header hash, and Merkle Root information; And
Verification information including a verification counter, a Merkle tree (variable length), a verification log (variable length), a device model name and firmware version and a verifier And a block body including the block body and the block body.
청구항 1에 있어서,
일반노드가 8개 이상이고, 검증노드는 2개 이상으로 구성되는 블록체인 기반의 펌웨어 무결성 검증 시스템.
The method according to claim 1,
Firmware integrity verification system based on block chain consisting of more than 8 general nodes and more than 2 verification nodes.
삭제delete 삭제delete 청구항 1에 있어서,
상기 다수의 일반노드와 다수의 검증노드 또는 다수의 일반노드 사이의 펌웨어 검증은, 펌웨어 파일을 입력으로 하는 해시 연산의 결과 값인 검증자를 비교하여 수행되는 블록체인 기반의 펌웨어 무결성 검증 시스템.
The method according to claim 1,
Wherein the firmware verification between the plurality of general nodes and the plurality of verification nodes or the plurality of general nodes is performed by comparing a verifier that is a result value of a hash operation that receives a firmware file as input.
청구항 1에 있어서,
상기 검증노드는 상기 펌웨어업데이트서버의 주기적인 검증노드 관리에 의해 최신 버전의 펌웨어로 업데이트되는 블록체인 기반의 펌웨어 무결성 검증 시스템.
The method according to claim 1,
Wherein the verification node is updated with the latest version of firmware by periodic verification node management of the firmware update server.
청구항 1에 있어서, 상기 블록체인 네트워크에서 전송되는 블록은,
블록사이즈와 펌웨어버전과 이전블록헤더해시와 머클루트(Merkle Root)를 가지는 블록헤더; 및
정상적인 검증이 이루어진 횟수를 나타내는 검증카운터(verification counter, 4바이트), 머클루트를 계산하기 위한 트리구조로서 블록 데이터의 무결성을 보장하는 머클트리(Merkle tree), 검증작업에 대한 로그 정보를 저장하는 검증로그(verification log), 디바이스 모델명과 펌웨어 버전과 검증자(verifier)를 이루어지는 검증자정보(information of verifier)(40바이트)를 포함하는 블록바디;를 포함하여 구성되는 블록체인 기반의 펌웨어 무결성 검증 시스템.
The method of claim 1, wherein blocks transmitted in the block-
A block header with block size and firmware version, previous block header hash and Merkle Root; And
A verification counter (4 bytes) indicating the number of times the normal verification has been performed, a Merkle tree for ensuring the integrity of the block data as a tree structure for calculating the Merkle root, a verification A block body including a verification log, a block body including a device model name, a firmware version, and an information of verifier (40 bytes) constituting a verifier, .
청구항 1에 있어서,
데이터 보안은 ECC (Elliptic Curve Cryptography) 보안 알고리즘을 이용하여 수행되며, 일반노드(ni)들은 재사용 공격을 방지하기 위해 검증 요청 시마다 새로운 키 쌍을 생성하여 검증을 수행하는 블록체인 기반의 펌웨어 무결성 검증 시스템.
The method according to claim 1,
Data integrity is performed using ECC (Elliptic Curve Cryptography) security algorithm. In order to prevent reuse attack, general node (ni) is a block chain based firmware integrity verification system .
청구항 1에 있어서,
데이터 무결성은 ECC 기반 디지털 서명인 ECDSA(Elliptic Curve Digital Signature Algorithm)가 적용되는 블록체인 기반의 펌웨어 무결성 검증 시스템.
The method according to claim 1,
Data integrity is a block chain-based firmware integrity verification system to which ECC-based digital signature Elliptic Curve Digital Signature Algorithm (ECDSA) is applied.
청구항 1에 있어서,
펌웨어의 업데이트 시 일반노드들과 검증노드들의 디바이스와 펌웨어업데이트서버 간의 데이터 암호화는 ECDH(Elliptic Curve Diffie-Hellman) 키 교환 알고리즘에 의해 생성된 임시 비밀키를 이용하여 수행되는 블록체인 기반의 펌웨어 무결성 검증 시스템.
The method according to claim 1,
When updating the firmware, the data encryption between the generic nodes and the devices of the validation nodes and the firmware update server is performed by the block chain based firmware integrity check performed using the temporary secret key generated by the ECDH (Elliptic Curve Diffie-Hellman) system.
펌웨어의 검증을 요청하여 펌웨어에 대한 검증을 수행하는 다수의 일반노드;
상기 다수의 일반노드들의 펌웨어에 대한 검증요청에 따라 일반노드들의 펌웨어 검증을 수행하는 다수의 검증노드; 및 상기 다수의 검증노드들의 펌웨어에 대한 검증을 수행하는 펌웨어업데이트서버;를 포함하고, 상기 다수의 일반노드와 다수의 검증노드들은 블록체인 네트워크를 구성하는 펌웨어 검증 시스템의 펌웨어 검증 방법에 있어서,
펌웨어업데이트서버가 펌웨어의 업데이트를 위해 검증노드들의 펌웨어를 최신 버전의 펌웨어로 업데이트 하는 검증노드관리과정;
업데이트가 필요한 일반노드(ni)가 펌웨어의 검증 요청을 위해 검증요청 메시지를 블록체인 네트워크 상에서 브로드캐스트하는 검증요청과정;
검증 요청 메시지를 브로드캐스트한 후 수신되는 응답 메시지를 통해 최초 수신 노드가 검증노드인지 일반노드인지를 판단하는 최초수신노드판단과정;
상기 최초수신노드판단과정의 판단결과 최초수신노드가 검증노드인 경우, 검증 요청 일반노드(ni)는 검증노드가 전송한 응답메시지 내의 펌웨어 버전정보를 이용하여 자신의 펌웨어 버전이 최신펌웨어인지를 판단한 후, 최신펌웨어인 경우 검증노드와 무결성 검증을 수행하고, 최신펌웨어가 아닌 경우 펌웨어업데이트서버를 통해 펌웨어업데이트를 수행하는 검증노드기반검증과정; 및
상기 최초수신노드판단과정의 판단결과 최초수신노드가 일반노드(nj)인 경우, 검증 요청 일반노드(ni)는 응답메시지에 포함된 펌웨어 버전(v')과 자신의 펌웨어 버전(v)를 비교하여, v > v'인 경우에는 응답메시지를 송신한 일반노드(nj)로 펌웨어 업데이트를 알려 일반노드(nj)가 펌웨어업데이트서버를 통해 펌웨어 업데이트를 수행하도록 하고, v = v'인 경우 검증 요청 일반노드(ni)와 응답메시지를 송신한 일반노드(nj) 각각의 펌웨어 파일을 해시 연산한 결과 값인 검증자를 비교하여 일치하는 경우 처리과정을 종료하고, 불일치하는 경우 검증 요청 일반노드(ni)가 펌웨어업데이트서버를 통해 펌웨어 업데이트를 수행하며, v < v'인 경우 검증 요청 일반노드(ni)가 펌웨어업데이트서버를 통해 펌웨어 업데이트를 수행하는 일반노드기반검증과정;을 포함하는 블록체인 기반의 펌웨어 무결성 검증 시스템.
A plurality of general nodes for performing verification of firmware by requesting verification of firmware;
A plurality of verification nodes for performing firmware verification of general nodes according to a verification request for the firmware of the plurality of general nodes; And a firmware update server for verifying the firmware of the plurality of verification nodes, wherein the plurality of general nodes and the plurality of verification nodes comprise a block chain network,
A verification node management process in which the firmware update server updates the firmware of the verification nodes to the latest version of the firmware to update the firmware;
A verification request process in which a general node (ni) requiring an update broadcasts a verification request message on a block-chain network for verification request of the firmware;
A first receiving node determining step of determining whether a first receiving node is a verification node or a general node through a response message received after broadcasting a verification request message;
If the first receiving node is a verification node as a result of the determination in the first receiving node determination process, the verification request general node ni uses the firmware version information in the response message transmitted by the verification node to determine whether its firmware version is the latest firmware A verification node-based verification process of performing integrity verification with a verification node when the firmware is latest firmware and firmware update through a firmware update server when the firmware is not the latest firmware; And
If the first receiving node is a general node nj as a result of the first receiving node determination process, the verification request general node ni compares the firmware version v 'included in the response message with its firmware version v If v> v ', the firmware update is informed to the general node (nj) that sent the response message, and the general node (nj) performs the firmware update through the firmware update server. If v = v' If a match is found, the verification process is terminated. In the case of discrepancy, the verification request general node (ni) compares the verifier, which is a result obtained by hashing the firmware file of the general node (ni) and the general node A general node-based verification process for performing firmware update through a firmware update server, and for verifying v <v ', a verification request general node ni performs a firmware update through a firmware update server; Chain-based firmware integrity verification system.
청구항 11에 있어서, 상기 검증노드기반검증과정은,
최초수신노드판단과정(S300)의 판단결과 최초수신노드가 검증노드(vi)인 경우, 수신된 응답 메시지의 펌웨어 버전 정보를 이용하여 검증요청 일반노드(ni)의 펌웨어 버전이 최신펌웨어 버전(vnew)인지를 판단하는 최신펌웨어사용판단과정;
최신펌웨어사용판단과정(S410)의 판단결과 검증요청 일반노드(ni)의 펌웨어가 최신 펌웨어 버전(vnew)인 경우 검증노드(vi)로부터 펌웨어 파일에 해시 연산을 수행한 검증자를 수신한 후 자신의 펌웨어 파일에 해시 연산을 수행한 검증자와 비교하여 일치 여부를 판단하는 제1무결성검증과정; 및
상기 최신펌웨어사용판단과정의 판단결과 검증 요청 노드의 디바이스의 펌웨어가 최신버전이 아닌 경우, 또는 제1무결성검증과정의 처리결과 무결성이 없는 경우 상기 일반노드(ni)가 펌웨어업데이트서버에 접속하여 펌웨어 업데이트를 수행하는 제1업데이트과정;을 포함하는 블록체인 기반의 펌웨어 무결성 검증 시스템.
12. The method of claim 11,
If the first receiving node is the verification node vi, the firmware version of the verification request general node ni is updated to the latest firmware version vnew using the firmware version information of the received response message ) Of the latest firmware;
If the firmware of the verification request general node ni is the latest firmware version vnew as a result of the determination in the latest firmware use decision process S410, after receiving the verifier that has performed the hash operation on the firmware file from the verification node vi, A first integrity verification process of comparing a firmware file with a verifier that has performed a hash operation to determine whether the firmware file matches or not; And
If the firmware of the device of the verification request node is not the latest version as a result of the determination of the latest firmware use determination process or if the result of the first integrity verification process is not integrity, the general node ni accesses the firmware update server, And a first update process for performing a firmware update process for updating firmware.
KR1020160080833A 2016-06-28 2016-06-28 Firmware integrity verification system based on block chain and the method thereof KR101796690B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160080833A KR101796690B1 (en) 2016-06-28 2016-06-28 Firmware integrity verification system based on block chain and the method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160080833A KR101796690B1 (en) 2016-06-28 2016-06-28 Firmware integrity verification system based on block chain and the method thereof

Publications (1)

Publication Number Publication Date
KR101796690B1 true KR101796690B1 (en) 2017-11-10

Family

ID=60386669

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160080833A KR101796690B1 (en) 2016-06-28 2016-06-28 Firmware integrity verification system based on block chain and the method thereof

Country Status (1)

Country Link
KR (1) KR101796690B1 (en)

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108182581A (en) * 2017-12-29 2018-06-19 北京欧链科技有限公司 A kind of bookkeeping methods and device of block chain
CN109361645A (en) * 2018-08-23 2019-02-19 泰链(厦门)科技有限公司 The common authentication method of block chain task, medium, device and block catenary system
KR20190061679A (en) * 2017-11-28 2019-06-05 (주)유엠로직스 A forgery detection system of a firmware based on a reputation analysis and a method
KR20190068042A (en) * 2017-12-08 2019-06-18 한국전자통신연구원 Method and apparatus for generating blocks in node on a block-chain network
KR20190074577A (en) * 2017-12-20 2019-06-28 동국대학교 경주캠퍼스 산학협력단 Method and system for sharing information of learning experience
KR102002488B1 (en) 2019-04-02 2019-07-23 주식회사 한국정보보호경영연구소 Document Acquisition System Using Off-Chain Distributed Storage Based on Block chain
KR102036618B1 (en) 2019-01-31 2019-10-28 주식회사그린존시큐리티 Integrity vertfication chain for verifying integrity of device and method for verifying integrity of device using the same
KR102146914B1 (en) * 2019-04-23 2020-08-21 경기대학교 산학협력단 Blockchain-based firmware management system
KR102154354B1 (en) * 2019-08-09 2020-09-09 고려대학교 산학협력단 Mining pool management server suppressing self mining strategy of competitive miming pool and operation method therof
WO2020241995A1 (en) * 2019-05-24 2020-12-03 광주과학기술원 Transaction verification system for blockchain, and transaction verification method for blockchain
US20200388091A1 (en) * 2019-06-07 2020-12-10 Volvo Car Corporation Secure installation of approved parts using blockchain
KR20210057149A (en) * 2019-08-29 2021-05-20 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 Smart contract-based data processing method, device and storage medium
CN113678399A (en) * 2019-03-25 2021-11-19 美光科技公司 Local ledger chain for secure updates
KR102336698B1 (en) * 2020-06-15 2021-12-08 주식회사 씽스토리 Method for verifying validity of firmware, firmware management apparatus for performing the same, internet of things device for updating firmware and system for including the same
CN113811910A (en) * 2019-05-31 2021-12-17 Mts株式会社 Behavior information proving method based on block chain
EP3718036A4 (en) * 2017-11-30 2021-12-22 Mocana Corporation System and method for recording device lifecycle transactions as versioned blocks in a blockchain network using a transaction connector and broker service
CN114168176A (en) * 2021-12-15 2022-03-11 四川启睿克科技有限公司 Block chain-based cross-manufacturer equipment upgrading system and method
KR20220035189A (en) * 2019-07-23 2022-03-21 모셔널 에이디 엘엘씨 Blockchain Ledger Verification and Service
KR102382278B1 (en) 2021-06-18 2022-04-04 (주)에스엔시 Apparatus for aluminium windows
KR20220063591A (en) * 2020-11-10 2022-05-17 포항공과대학교 산학협력단 Publicly verifiable blockchain wallet key custody method and apparatus thereof
KR20220142086A (en) * 2021-04-14 2022-10-21 최현수 BLOCKCHAIN-BASED IoT DEVICE FIRMWARE SUPPLY SYSTEM AND FIRMWARE UPDATE METHOD USING THE SAME
US11595217B2 (en) 2018-12-06 2023-02-28 Digicert, Inc. System and method for zero touch provisioning of IoT devices
US11728976B1 (en) * 2022-12-22 2023-08-15 Alchemy Insights, Inc. Systems and methods for efficiently serving blockchain requests using an optimized cache
US11750711B1 (en) 2022-12-22 2023-09-05 Alchemy Insights, Inc. Systems and methods for adaptively rate limiting client service requests at a blockchain service provider platform
US11769143B1 (en) 2022-12-22 2023-09-26 Alchemy Insights, Inc. System and method for high performance providing fresh NFT metadata
US11811955B1 (en) 2022-12-23 2023-11-07 Alchemy Insights, Inc. Systems and methods for improving reliability in blockchain networks using sharding
US11816021B1 (en) 2022-12-22 2023-11-14 Alchemy Insights, Inc. System and method for intelligent testing of blockchain applications using a shadow system
US11914616B1 (en) 2022-12-16 2024-02-27 Alchemy Insights, Inc. Systems and methods for creating a consistent blockchain including block commitment determinations

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013145026A1 (en) * 2012-03-30 2013-10-03 富士通株式会社 Network system, node, verification node, and communication method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013145026A1 (en) * 2012-03-30 2013-10-03 富士通株式会社 Network system, node, verification node, and communication method

Cited By (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102020793B1 (en) * 2017-11-28 2019-11-04 (주)유엠로직스 A forgery detection system of a firmware based on a reputation analysis and a method
KR20190061679A (en) * 2017-11-28 2019-06-05 (주)유엠로직스 A forgery detection system of a firmware based on a reputation analysis and a method
US11403402B2 (en) 2017-11-30 2022-08-02 Digicert, Inc. System and method for recording device lifecycle transactions as versioned blocks in a blockchain network using a transaction connector and broker service
EP3718036A4 (en) * 2017-11-30 2021-12-22 Mocana Corporation System and method for recording device lifecycle transactions as versioned blocks in a blockchain network using a transaction connector and broker service
KR102417067B1 (en) * 2017-12-08 2022-07-05 한국전자통신연구원 Method and apparatus for generating blocks in node on a block-chain network
KR20190068042A (en) * 2017-12-08 2019-06-18 한국전자통신연구원 Method and apparatus for generating blocks in node on a block-chain network
KR102005161B1 (en) * 2017-12-20 2019-07-29 동국대학교 경주캠퍼스 산학협력단 Method and system for sharing information of learning experience
KR20190074577A (en) * 2017-12-20 2019-06-28 동국대학교 경주캠퍼스 산학협력단 Method and system for sharing information of learning experience
CN108182581A (en) * 2017-12-29 2018-06-19 北京欧链科技有限公司 A kind of bookkeeping methods and device of block chain
CN108182581B (en) * 2017-12-29 2020-08-11 北京欧链科技有限公司 Accounting method and device for block chain
CN109361645B (en) * 2018-08-23 2021-03-23 泰链(厦门)科技有限公司 Block chain task common authentication method, medium, device and block chain system
CN109361645A (en) * 2018-08-23 2019-02-19 泰链(厦门)科技有限公司 The common authentication method of block chain task, medium, device and block catenary system
US11595217B2 (en) 2018-12-06 2023-02-28 Digicert, Inc. System and method for zero touch provisioning of IoT devices
KR102036618B1 (en) 2019-01-31 2019-10-28 주식회사그린존시큐리티 Integrity vertfication chain for verifying integrity of device and method for verifying integrity of device using the same
US11791984B2 (en) 2019-03-25 2023-10-17 Micron Technology, Inc. Local ledger block chain for secure updates
EP3949251A4 (en) * 2019-03-25 2022-12-21 Micron Technology, Inc. Local ledger block chain for secure updates
CN113678399A (en) * 2019-03-25 2021-11-19 美光科技公司 Local ledger chain for secure updates
KR102002488B1 (en) 2019-04-02 2019-07-23 주식회사 한국정보보호경영연구소 Document Acquisition System Using Off-Chain Distributed Storage Based on Block chain
KR102146914B1 (en) * 2019-04-23 2020-08-21 경기대학교 산학협력단 Blockchain-based firmware management system
WO2020241995A1 (en) * 2019-05-24 2020-12-03 광주과학기술원 Transaction verification system for blockchain, and transaction verification method for blockchain
CN113811910A (en) * 2019-05-31 2021-12-17 Mts株式会社 Behavior information proving method based on block chain
US11922741B2 (en) * 2019-06-07 2024-03-05 Volvo Car Corporation Secure installation of approved parts using blockchain
US20200388091A1 (en) * 2019-06-07 2020-12-10 Volvo Car Corporation Secure installation of approved parts using blockchain
KR20220035189A (en) * 2019-07-23 2022-03-21 모셔널 에이디 엘엘씨 Blockchain Ledger Verification and Service
KR102633612B1 (en) 2019-07-23 2024-02-02 모셔널 에이디 엘엘씨 Blockchain ledger verification and service
KR102154354B1 (en) * 2019-08-09 2020-09-09 고려대학교 산학협력단 Mining pool management server suppressing self mining strategy of competitive miming pool and operation method therof
US11733991B2 (en) 2019-08-29 2023-08-22 Tencent Technology (Shenzhen) Company Limited Data processing method based on intelligent contract, device, and storage medium
KR102577139B1 (en) * 2019-08-29 2023-09-08 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 Smart contract-based data processing methods, devices, and storage media
KR20210057149A (en) * 2019-08-29 2021-05-20 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 Smart contract-based data processing method, device and storage medium
KR102336698B1 (en) * 2020-06-15 2021-12-08 주식회사 씽스토리 Method for verifying validity of firmware, firmware management apparatus for performing the same, internet of things device for updating firmware and system for including the same
KR102426078B1 (en) * 2020-11-10 2022-07-27 포항공과대학교 산학협력단 Publicly verifiable blockchain wallet key custody method and apparatus thereof
KR20220063591A (en) * 2020-11-10 2022-05-17 포항공과대학교 산학협력단 Publicly verifiable blockchain wallet key custody method and apparatus thereof
KR102564488B1 (en) * 2021-04-14 2023-08-11 주식회사 애즈랜드 BLOCKCHAIN-BASED IoT DEVICE FIRMWARE SUPPLY SYSTEM AND FIRMWARE UPDATE METHOD USING THE SAME
KR20220142086A (en) * 2021-04-14 2022-10-21 최현수 BLOCKCHAIN-BASED IoT DEVICE FIRMWARE SUPPLY SYSTEM AND FIRMWARE UPDATE METHOD USING THE SAME
KR102382278B1 (en) 2021-06-18 2022-04-04 (주)에스엔시 Apparatus for aluminium windows
CN114168176A (en) * 2021-12-15 2022-03-11 四川启睿克科技有限公司 Block chain-based cross-manufacturer equipment upgrading system and method
US11914616B1 (en) 2022-12-16 2024-02-27 Alchemy Insights, Inc. Systems and methods for creating a consistent blockchain including block commitment determinations
US11750711B1 (en) 2022-12-22 2023-09-05 Alchemy Insights, Inc. Systems and methods for adaptively rate limiting client service requests at a blockchain service provider platform
US11728976B1 (en) * 2022-12-22 2023-08-15 Alchemy Insights, Inc. Systems and methods for efficiently serving blockchain requests using an optimized cache
US11769143B1 (en) 2022-12-22 2023-09-26 Alchemy Insights, Inc. System and method for high performance providing fresh NFT metadata
US11816021B1 (en) 2022-12-22 2023-11-14 Alchemy Insights, Inc. System and method for intelligent testing of blockchain applications using a shadow system
US11823088B1 (en) 2022-12-22 2023-11-21 Alchemy Insights, Inc. System and method for retrieval and verification of NFT ownership
US11811955B1 (en) 2022-12-23 2023-11-07 Alchemy Insights, Inc. Systems and methods for improving reliability in blockchain networks using sharding

Similar Documents

Publication Publication Date Title
KR101796690B1 (en) Firmware integrity verification system based on block chain and the method thereof
CN112104517B (en) Data processing method based on block chain network and related device
CN110912707B (en) Block chain-based digital certificate processing method, device, equipment and storage medium
US8792860B2 (en) Mobile certificate distribution in a PKI
US9467432B2 (en) Method and device for generating local interface key
US20210176075A1 (en) Cryptographic communication system and cryptographic communication method based on blockchain
US11101978B2 (en) Establishing and managing identities for constrained devices
CN110463137A (en) Reduce the handshake communication of bandwidth
US20120114123A1 (en) Method for securely broadcasting sensitive data in a wireless network
KR20120055683A (en) Methods and apparatus for deriving, communicating and/or verifying ownership of expressions
US10693879B2 (en) Methods, devices and management terminals for establishing a secure session with a service
CN101815294B (en) Access authentication method, equipment and system of P2P (peer-to-peer) network
CN109905877B (en) Message verification method of communication network system, communication method and communication network system
CN108574699B (en) Communication connection method and system, Internet of things equipment system and storage medium
US20210021432A1 (en) Secure device on-boarding, ownership transfer, proof-of-ownership, and mutual authentication system
US7376721B2 (en) System for inhibiting installing a radio configuration file onto a software defined radio device unless the file is compatible with the device
KR100722253B1 (en) Method and sensor certification system being suitable to sensor network environment
CN114297678A (en) Operation method, device, equipment and storage medium of union chain system
JP2019161580A (en) Data transmission device, data transmission/reception system, data reception device, data transmission method, and program
CN112020849A (en) Method for verifying a node
WO2019165330A1 (en) System and methods for proof of network element
CN108932425B (en) Offline identity authentication method, authentication system and authentication equipment
CN108183925B (en) IoT-based narrowband communication method
CN110971426A (en) Method for constructing group session, client and storage medium
CN116204914A (en) Trusted privacy computing method, device, equipment and storage medium

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant