KR20220142086A - BLOCKCHAIN-BASED IoT DEVICE FIRMWARE SUPPLY SYSTEM AND FIRMWARE UPDATE METHOD USING THE SAME - Google Patents

BLOCKCHAIN-BASED IoT DEVICE FIRMWARE SUPPLY SYSTEM AND FIRMWARE UPDATE METHOD USING THE SAME Download PDF

Info

Publication number
KR20220142086A
KR20220142086A KR1020210048413A KR20210048413A KR20220142086A KR 20220142086 A KR20220142086 A KR 20220142086A KR 1020210048413 A KR1020210048413 A KR 1020210048413A KR 20210048413 A KR20210048413 A KR 20210048413A KR 20220142086 A KR20220142086 A KR 20220142086A
Authority
KR
South Korea
Prior art keywords
firmware
contract
iot
firmware update
information
Prior art date
Application number
KR1020210048413A
Other languages
Korean (ko)
Other versions
KR102564488B1 (en
Inventor
최현수
Original Assignee
최현수
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 최현수 filed Critical 최현수
Priority to KR1020210048413A priority Critical patent/KR102564488B1/en
Publication of KR20220142086A publication Critical patent/KR20220142086A/en
Application granted granted Critical
Publication of KR102564488B1 publication Critical patent/KR102564488B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y40/00IoT characterised by the purpose of the information processing
    • G16Y40/40Maintenance of things

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Medical Informatics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

The present invention is to provide a blockchain-based IoT device firmware supply system in which an Internet of Things (IoT) device is connected through a blockchain node, and only firmware verified by the blockchain node can be updated. A firmware update method according to the present invention comprises: a firmware update contract step of creating a firmware update contract, verifying a firmware file on a blockchain network, and sharing contract details for a new firmware on all blockchain networks; and a firmware update execution step of, after the firmware update contract is stored in all blockchain ledgers, executing firmware binary distribution based on the corresponding contract and updating on the IoT device.

Description

블록체인 기반 IoT 기기 펌웨어 공급 시스템 및 이를 이용하는 펌웨어 업데이트 방법{BLOCKCHAIN-BASED IoT DEVICE FIRMWARE SUPPLY SYSTEM AND FIRMWARE UPDATE METHOD USING THE SAME}Blockchain-based IoT device firmware supply system and firmware update method using the same

본 발명은 블록체인 기반 IoT 기기 펌웨어 공급 시스템 및 이를 이용하는 펌웨어 업데이트 방법에 관한 것으로서, 더욱 상세하게는 사물인터넷 디바이스(IoT Device)가 블록체인 노드를 통하여 연결되고, 블록체인 노드에 의하여 검증된 펌웨어만 업데이트 가능하도록 하는 블록체인 기반 IoT 기기 펌웨어 공급 시스템 및 이를 이용하는 펌웨어 업데이트 방법에 관한 것이다.The present invention relates to a blockchain-based IoT device firmware supply system and a firmware update method using the same, and more particularly, to an IoT device connected through a blockchain node, and only firmware verified by the blockchain node. It relates to a blockchain-based IoT device firmware supply system that enables update, and a firmware update method using the same.

최근 각종 디바이스, 객체들이 네트워크 등을 통해 서로 연결된 사물 인터넷(Internet of Things)이 확산됨에 따라, 다양한 사물인터넷 장치(Device)가 출시되고 사물인터넷 기술의 확산이 빠르게 이루어지고 있는 현실이다. Recently, as the Internet of Things (IoT), in which various devices and objects are connected to each other through networks, has spread, various Internet of Things (IoT) devices have been released and the Internet of Things (IoT) technology is rapidly spreading.

그러나 인터넷에 연결되는 기기 수는 계속 증가하는데, 이를 효율적으로 통합 관리할 체계가 없다면 큰 혼란이 야기될 수 있다.However, the number of devices connected to the Internet continues to increase, and if there is no system to efficiently integrate and manage them, it can cause great confusion.

이에 사물인터넷 기술을 기반으로 한 '초연결 시대'의 도래가 머지않은 현실에서 '기하급수적으로 불어나는 사물인터넷 기기들을 어떻게 관리할 것인가'하는 문제가 대두되고 있다. Accordingly, the issue of 'how to manage the exponentially increasing IoT devices' is emerging in the near future of the 'hyper-connected era' based on IoT technology.

또한, 사물인터넷 디바이스는 내부에 펌웨어가 장착되며, 펌웨어는 기기운용에 가장 기본적인 소프트웨어를 탑재하게 된다. 이러한 펌웨어는 동일한 사물인터넷 기기 사이에서 무결성 검증이 이루어져야 하고, 버전이 업그레이드 될 때 마다 업데이트 되어야 할 필요성을 가진다. 또한, 사물인터넷 디바이스에서 펌웨어를 업데이트하는 기능은 업데이트 도중에 발생할 수 있는 장애로부터 안전하도록 설계되어야 하며, 사물인터넷 디바이스 제조업체의 부적절한 장치 관리 및 펌웨어 배포에 있어서 IoT 환경에 해를 끼치지 않는 보안 네트워크의 구성이 요구되는 것을 의미한다.In addition, the IoT device is equipped with firmware inside, and the firmware is loaded with the most basic software for device operation. Such firmware needs to be verified for integrity between the same IoT devices and needs to be updated whenever the version is upgraded. In addition, the function to update the firmware in the IoT device should be designed to be safe from failures that may occur during the update. This means that it is required.

그러므로 사회 곳곳에 퍼져있는 사물인터넷 기기를 포괄적으로 업데이트하고 또 보안 위협으로부터 실시간으로 보호할 수 있는 기술 개발이 요구되고 있다.Therefore, there is a need to develop a technology that can comprehensively update IoT devices spread throughout society and protect them from security threats in real time.

상기와 같은 문제점을 해결하기 위한 종래의 기술로서 대한민국 공개특허공고 제10-2010-0120110호(2010.11.12.)에서 무선 메쉬 네트워크에서의 협력적 무선 펌웨어 업데이트 장치 및 방법을 제공하고 있다. As a prior art for solving the above problems, Korean Patent Publication No. 10-2010-01201110 (2010.11.12.) provides an apparatus and method for cooperative wireless firmware update in a wireless mesh network.

이러한 상기 종래의 기술은 무선 메쉬 네트워크에서의 협력적 무선 펌웨어 업데이트 장치 및 방법에 관한 것으로서, 무선 메쉬 네트워크에서의 각 노드가 커널, 네트워크 스택, 응용 프로토콜 등의 공통적으로 사용하는 바이너리 정보를 이용하여 기지국에서 타겟 노드까지 원본 이미지 대신 차분 스크립트를 전송하는 방식으로 노드간 협력을 통한 펌웨어 업데이트를 수행함으로서 대역폭을 절약하면서도 보다 안정적으로 펌웨어의 업데이트 및 유지 관리가 가능하도록 하고 있다.The prior art relates to a cooperative wireless firmware update apparatus and method in a wireless mesh network, and each node in the wireless mesh network uses binary information such as a kernel, a network stack, and an application protocol in common to a base station. By transmitting the difference script instead of the original image from the node to the target node, the firmware update is performed through cooperation between nodes, thereby saving bandwidth and enabling more stable firmware update and maintenance.

그러나 상기 종래의 기술의 경우, 데이터의 대역폭을 줄이는 것이 목적이고 사물인터넷 기기들이 서버-클라이언트 방식에 의해 펌웨어의 업데이트를 수행하고 있어, 사용자가 직접 조작하여 인증 서버를 통해 수행해야하므로 항상 서버를 거쳐서 펌웨어 업데이트가 수행되어야 하는 번거로운 문제점을 가진다. 또한, 펌웨어의 무결성 검증은 항상 서버에 접속한 상태의 펌웨어 업데이트 상태에서만 수행되므로, 사물인터넷기기 사이에서의 자체적인 무결성 검증을 수행하지 못하고, 무결성 검증 시에도 서버에 과부하가 발생하는 단점이 있다.However, in the case of the prior art, the purpose is to reduce the bandwidth of data, and since the IoT devices are performing firmware update by the server-client method, the user must directly manipulate and perform it through the authentication server. There is a cumbersome problem that a firmware update must be performed. In addition, since the integrity verification of the firmware is performed only in the firmware update state in a state of being always connected to the server, there is a disadvantage that the integrity verification cannot be performed between IoT devices and the server is overloaded even during the integrity verification.

본 발명은 전술한 종래기술의 문제점을 해결하기 위해 도출된 것으로, 본 발명의 목적은, 사물인터넷 장치(IoT Device)가 게이트웨이를 거쳐 블록체인 네트워크를 통하여 연결되고, 블록체인 노드에 의하여 검증된 펌웨어만 업데이트 가능하도록 하는 블록체인 기반 IoT 기기 펌웨어 공급 시스템 및 이를 이용하는 펌웨어 업데이트 방법을 제공하기 위한 것이다.The present invention was derived to solve the problems of the prior art described above, and an object of the present invention is to connect an IoT device through a blockchain network through a gateway, and firmware verified by a blockchain node. An object of the present invention is to provide a blockchain-based IoT device firmware supply system that enables only updating, and a firmware update method using the same.

또한, 본 발명은 요청 IoT 장치로 펌웨어 바이너리를 안전하게 배포하기 위해 블록체인 기반 환경에서 블록체인 기술의 합의 프로토콜을 사용하여 펌웨어의 정보를 확인하고, 업데이트 진행을 위한 펌웨어 무결성을 검증하여 IoT 장치에 펌웨어가 공급되도록 하는 것이다.In addition, the present invention uses the consensus protocol of blockchain technology in a blockchain-based environment to safely distribute firmware binaries to the requesting IoT device, and verifies the firmware integrity for the update process to verify the firmware information on the IoT device. to be supplied.

상기 기술적 과제를 해결하기 위한 본 발명의 일 측면에 따른 블록체인 기반 IoT 기기 펌웨어 공급 시스템은 하나 이상의 펌웨어 제조사에 의해 관리되고 운용되는 하나 이상의 펌웨어 배포 서버, 상기 펌웨어 배포 서버에서 제공하는 펌웨어에 대한 관련 정보를 제공받아 펌웨어 업데이트 계약 블록을 생성하여 블록체인 네트워크의 다른 검증 노드에 배포하는 공급업체 에이전트, 상기 공급업체 에이전트로부터 펌웨어 업데이트에 대한 계약 정보의 검증과정이 이루어진 계약 정보를 수신하고 사물인터넷상의 IoT 게이트웨이와의 연결하는 역할을 수행하는 IoT 에이전트, 사물인터넷 네트워크에 연결된 IoT 장치의 데이터를 수집하고 상기 IoT 에이전트의 펌웨어 업데이트 계약 사항의 정보를 요청하여, IoT 장치의 펌웨어 정보와 블록체인 네트워크상에서 이루어진 계약 사항에 따른 펌웨어 정보를 비교하여 IoT 장치의 펌웨어 업데이트를 요청하는 IoT 게이트웨이 및 상기 IoT 게이트웨이에 하나 이상 연결되어 운영되는 IoT 장치를 포함하여 이루어지는 특징이 있다.A blockchain-based IoT device firmware supply system according to an aspect of the present invention for solving the above technical problem is related to one or more firmware distribution servers managed and operated by one or more firmware manufacturers, and firmware provided by the firmware distribution server A supplier agent that receives information and generates a firmware update contract block and distributes it to other verification nodes in the blockchain network. The IoT agent that performs the role of connecting with the gateway, collects data of IoT devices connected to the Internet of Things network, and requests information on the firmware update contract of the IoT agent, and contracts with the firmware information of the IoT device and the block chain network It has a characteristic comprising an IoT gateway that requests firmware update of an IoT device by comparing firmware information according to the items, and an IoT device connected to and operated at least one IoT gateway.

또한, 본 발명의 상기 공급업체 에이전트와 IoT 에이전트는 블록체인 네트워크 내의 노드 역할을 하며, 하나 이상의 상기 공급업체 에이전트는 상기 블록체인 네트워크상에서 채굴 및 검증 프로세스에 참여하는 검증 노드로 동작되고, 상기 IoT 에이전트는 채굴 및 검증 프로세스에는 참여하지 않으며, 블록체인 네트워크 내의 상기 공급업체 에이전트에서 검증 완료된 펌웨어 업데이트 계약 정보를 수신하고 IoT 에이전트의 로컬 원장에 저장된 데이터와 이를 동기화하는 역할만을 수행하는 것을 특징으로 할 수 있다.In addition, the supplier agent and the IoT agent of the present invention serve as a node in a blockchain network, and one or more of the supplier agents operate as a verification node participating in a mining and verification process on the blockchain network, and the IoT agent does not participate in the mining and verification process, but receives the verified firmware update contract information from the supplier agent in the blockchain network and performs only the role of synchronizing it with the data stored in the IoT agent's local ledger. .

또한, 상기 기술적 과제를 해결하기 위한 본 발명의 일 측면에 따른 블록체인 기반 IoT 기기 펌웨어 공급 시스템을 이용하는 펌웨어 업데이트 방법은 펌웨어 업데이트 계약을 생성하고 펌웨어 파일을 블록체인 네트워크에서 검증하여 모든 블록체인 네트워크에서 신규 펌웨어에 대한 계약 사항을 공유하는 펌웨어 업데이트 계약 단계와 펌웨어 업데이트 계약이 모든 블록체인 원장에 저장된 후 해당 계약을 기반으로 펌웨어 바이너리 배포가 실행되어 IoT 장치에서 업데이트되는 펌웨어 업데이트 실행 단계로 이루어지는 특징이 있다.In addition, the firmware update method using the blockchain-based IoT device firmware supply system according to an aspect of the present invention for solving the above technical problem creates a firmware update contract and verifies the firmware file in the blockchain network in all blockchain networks. It is characterized in that it consists of a firmware update contract stage that shares the contract details for new firmware and a firmware update execution stage where the firmware update contract is stored in all blockchain ledgers, then firmware binary distribution is executed based on the contract and updated in IoT devices. .

이때 본 발명의 상기 펌웨어 업데이트 계약 단계는 신규 펌웨어 업데이트 정보를 펌웨어 배포 서버에 저장되는 신규 펌웨어 저장 단계, 상기 펌웨어 배포 서버는 블록체인 네트워크상의 공급업체 에이전트에 펌웨어 업데이트 계약 작성을 발행하는 계약 작성 요청 단계, 공급업체 에이전트에서 신규 펌웨어 업데이트 계약 사항을 생성하고 새로 생성된 계약 내에 신규 펌웨어 정보를 기록하는 계약 작성 및 정보 기록 단계, 공급업체 에이전트는 신규 생성된 펌웨어 업데이트 계약을 확인하고 모든 블록체인 네트워크상의 검증 노드에 검증을 요청하기 하기 위해 작업 블록을 배포하는 계약 요구 배포 단계, 블록체인 네트워크상의 각 공급업체 에이전트에서 상기 작업 블록의 작업증명(Proofof-Work)의 확인 메커니즘을 사용하여 펌웨어 업데이트 계약 정보를 확인하고 펌웨어의 무결성을 확인하는 계약 무결성 검증 단계. 신규 펌웨어 업데이트 계약의 검증이 완료되면, 모든 검증 노드는 새로 작성된 계약의 검증 상태를 업데이트하고 검증 결과에 대해 다른 모든 노드에 공유하는 계약 검증결과 공유 단계 및 검증 노드에 의해 확인된 모든 펌웨어 업데이트 계약을 수집하여 모든 블록체인 네트워크의 작업 블록이 갱신되는 계약 원장 기록 단계를 포함하여 이루어질 수 있다.In this case, the firmware update contract step of the present invention is a new firmware storage step in which new firmware update information is stored in a firmware distribution server, and the firmware distribution server is a contract creation request step in which the firmware update contract is issued to a vendor agent on a block chain network. , contract creation and information recording stage in which the supplier agent creates a new firmware update contract and records the new firmware information in the newly created contract, the supplier agent checks the newly created firmware update contract and verifies it on all blockchain networks Contract request distribution stage, which distributes a work block to request verification to a node, verifying the firmware update contract information using the proof-of-work verification mechanism of the work block at each vendor agent on the blockchain network and contract integrity verification step to verify the integrity of the firmware. When the verification of the new firmware update contract is completed, all verification nodes update the verification status of the newly created contract and share the verification result with all other nodes about the verification result. This can be accomplished including the contract ledger record step in which the working blocks of all blockchain networks are updated by collecting them.

또한, 본 발명의 상기 펌웨어 업데이트 실행 단계는 블록체인 네트워크상에서 신규 펌웨어 업데이트 계약이 검증된 후에 이루어지며, 블록체인에 기록된 신규 펌웨어 업데이트에 대한 알림을 IoT 에이전트와 연동하는 모든 IoT 게이트웨이로 전송하는 신규 펌웨어 정보 알림 단계, 신규 펌웨어 업데이트에 대한 알림을 수신한 IoT 게이트웨이가 신규 펌웨어 업데이트와 관련된 정보를 해당 IoT 게이트웨이가 관리하는 모든 IoT 장치의 정보로 확인하는 IoT 장치 정보 확인 단계, IoT 장치에서 신규 펌웨어 파일을 다운로드하기 위하여 풀(Pull) 방식으로 IoT 에이전트에 요청하는 IoT 장치 요청 전달 단계, IoT 게이트웨이로부터 펌웨어 업데이트 요청을 받고, IoT 게이트웨이로부터 수신된 펌웨어 업데이트 요청과 일치하는 펌웨어 업데이트 계약의 요구 사항을 확인하는 신규 펌웨어 계약 사항 확인 단계, 요청된 펌웨어 바이너리의 URI 정보를 IoT 게이트웨이로 전송하는 신규 펌웨어 URI 전송 단계, IoT 게이트웨이에서 요청된 펌웨어 바이너리를 다운로드하기 위한 요청을 펌웨어 배포 서버로 전송하는 신규 펌웨어 다운로드 요청 단계, 펌웨어 배포 서버에 저장된 URI의 위치에서 해당 IoT 게이트웨이로 펌웨어 바이너리 파일을 전송하는 신규 펌웨어 다운로드 단계, IoT 게이트웨이에서 수신한 펌웨어 파일을 확인하고 IoT 장치로 전달하는 신규 펌웨어 전송 단계 및 IoT 장치에서 상기 펌웨어에 대한 펌웨어 확인 및 업데이트를 하는 단계를 포함하여 이루어지는 것을 특징으로 할 수 있다.In addition, the firmware update execution step of the present invention is performed after the new firmware update contract is verified on the blockchain network, and a new firmware update notification recorded in the blockchain is transmitted to all IoT gateways that work with the IoT agent. Firmware information notification step, IoT device information verification step in which the IoT gateway, which has received a notification of the new firmware update, checks the information related to the new firmware update as information of all IoT devices managed by the IoT gateway, the new firmware file in the IoT device IoT device request delivery step that requests the IoT agent in a pull method to download New firmware contract confirmation step, new firmware URI transmission step of transmitting the URI information of the requested firmware binary to the IoT gateway, new firmware download request step of sending a request for downloading the requested firmware binary from the IoT gateway to the firmware distribution server , a new firmware download step of transmitting the firmware binary file from the location of the URI stored in the firmware distribution server to the corresponding IoT gateway, a new firmware transmission step of checking the firmware file received from the IoT gateway and delivering it to the IoT device, and the firmware from the IoT device It may be characterized in that it comprises the step of checking and updating the firmware for the.

전술한 본 발명은 블록체인 기반 IoT 기기 펌웨어 공급 시스템 및 이를 이용하는 펌웨어 업데이트 방법에 관한 것으로서, 본 발명은 분산 개념을 기반으로 구축되는 블록체인 네트워크를 이용하여 펌웨어 업데이트 프로세스를 진행함으로서, IoT 환경에 대한 중앙 집중식 네트워크 모델의 단점을 해소하는 효과가 있다.The present invention described above relates to a blockchain-based IoT device firmware supply system and a firmware update method using the same. The present invention performs a firmware update process using a blockchain network built based on a distributed concept, It has the effect of resolving the shortcomings of the centralized network model.

또한, 본 발명은 합법적인 IoT 장치 공급업체가 배포한 새로운 펌웨어를 안전하게 확인하고 펌웨어를 최종 IoT 장치에 안전하게 배포하여 IoT 장치에 대한 해킹 등 보안 위협으로부터 실시간으로 보호할 수 있는 효과가 있다.In addition, the present invention has the effect of safely checking the new firmware distributed by a legitimate IoT device supplier and safely distributing the firmware to the final IoT device to protect it from security threats such as hacking on the IoT device in real time.

도 1은 본 발명의 일실시예에 따른 블록체인 기반 IoT 기기 펌웨어 공급 시스템의 구성을 보여주는 예시도이다.
도 2는 상기 도 1의 블록체인 기반 IoT 기기 펌웨어 공급 시스템의 구성을 블록화하여 확대한 예시도이다.
도 3은 본 발명의 일실시예에 따른 블록체인 기반 IoT 기기의 펌웨어 업데이트 방법을 도시한 흐름도이다.
1 is an exemplary diagram showing the configuration of a blockchain-based IoT device firmware supply system according to an embodiment of the present invention.
FIG. 2 is an enlarged exemplary view of the block chain-based IoT device firmware supply system of FIG. 1 by blocking the configuration.
3 is a flowchart illustrating a firmware update method of a blockchain-based IoT device according to an embodiment of the present invention.

본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.The terms or words used in the present specification and claims should not be construed as being limited to their ordinary or dictionary meanings, and the inventor may properly define the concept of the term in order to best describe his invention. Based on the principle that there is, it should be interpreted as meaning and concept consistent with the technical idea of the present invention.

따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.Therefore, the configuration shown in the embodiments and drawings described in the present specification is only the most preferred embodiment of the present invention and does not represent all the technical spirit of the present invention, so various equivalents that can replace them at the time of the present application It should be understood that there may be water and variations.

이하 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명하면 아래와 같다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일실시예에 따른 블록체인 기반 IoT 기기 펌웨어 공급 시스템의 구성을 보여주는 예시도이고, 도 2는 상기 도 1의 블록체인 기반 IoT 기기 펌웨어 공급 시스템의 구성을 좀 더 자세히 확장하여 블록화한 예시도이다.1 is an exemplary diagram showing the configuration of a blockchain-based IoT device firmware supply system according to an embodiment of the present invention, and FIG. 2 is a more detailed expansion of the configuration of the blockchain-based IoT device firmware supply system of FIG. It is an example diagram in block form.

본 발명의 상기 IoT 기기 펌웨어 공급 시스템은 하나 이상의 펌웨어 제조사에 의해 관리되고 운용되는 하나 이상의 펌웨어 배포 서버(100), 블록체인 네트워크상에서 노드를 구성하는 블록체인 네트워크 참여 노드로서 공급업체 에이전트(200)와 IoT 에이전트(300), 사물인터넷 네트워크를 구성하는 IoT 게이트웨이(400)와 IoT 장치(500)를 포함하는 구성 엔티티(entity)로 이루어진다.The IoT device firmware supply system of the present invention includes one or more firmware distribution servers 100 managed and operated by one or more firmware manufacturers, a supplier agent 200 as a block chain network participating node constituting a node on a block chain network, and It consists of an IoT agent 300, an IoT gateway 400 constituting an Internet of Things network, and a configuration entity including the IoT device 500 .

먼저 상기 펌웨어 배포 서버(Vendor repositor)(100)는 펌웨어 바이너리(또는 펌웨어 이미지) 및 상기 펌웨어에 대한 관련 정보뿐 만아니라 정보 시스템의 프로그램이나 데이터 같은 각종 자원과 자원간의 세부 정보를 포함하여 관리하는 자원 관리 데이터베이스라 볼 수 있다.First, the firmware distribution server (Vendor repositor) 100 includes not only the firmware binary (or firmware image) and related information about the firmware, but also various resources such as programs and data of the information system and resources to manage, including detailed information between resources. It can be viewed as a management database.

이때 상기 펌웨어 배포 서버(100)는 공급업체 에이전트(200)를 이용하여 펌웨어를 푸쉬(PUSH) 방식으로 블록체인 네트워크에 계시하도록 블록체인 네트워크상의 하나 이상의 공급업체 에이전트와 연동하여 상기 펌웨어 관련 정보를 제공하는 서버이다. 상기 펌웨어 배포 서버(100)는 공급업체 에이전트(200)와 보안 채널을 통행 연결된다.At this time, the firmware distribution server 100 provides the firmware-related information by interworking with one or more vendor agents on the block chain network to reveal the firmware to the block chain network in a PUSH method using the supplier agent 200 is a server that The firmware distribution server 100 is connected to the vendor agent 200 through a secure channel.

상기 공급업체 에이전트(200)는 상기 펌웨어 배포 서버(100)에서 제공하는 펌웨어에 대한 관련 정보를 제공받아 펌웨어 업데이트 계약을 생성하여 블록체인 네트워크의 다른 노드에 배포하는 노드로서의 역할을 하며, 각각의 공급업체 에이전트는 블록체인 네트워크상에서 배포되는 펌웨어 업데이트 계약에 대한 트랜잭션을 확인하여 검증을 수행하는 검증노드의 역할도 수행하는 노드이다. The supplier agent 200 serves as a node that receives information about the firmware provided by the firmware distribution server 100, creates a firmware update contract, and distributes it to other nodes of the block chain network, and each supplier The vendor agent is a node that also serves as a verification node that verifies and verifies the transaction for the firmware update contract distributed on the blockchain network.

즉 상기 공급업체 에이전트(200)는 펌웨어 배포 서버(100) 단과 연결되고 블록체인 네트워크상에서 노드(Nodes)를 구성하며, 컨센서스에 참여하는 마이너(채굴자, Miners)의 역할을 가진다. 그러므로 각각의 공급업체 에이전트(200)는 상기 블록체인 네트워크상의 검증 노드라 볼 수 있다.That is, the supplier agent 200 is connected to the firmware distribution server 100, configures nodes on the block chain network, and has the role of miners (miners) participating in consensus. Therefore, each supplier agent 200 can be viewed as a verification node on the blockchain network.

그리고 상기 IoT 에이전트(300)는 IoT 장치(500)가 운영되는 사물인터네 네트워크와 연동하는 블록체인 노드로서, 상기 공급업체 에이전트(200)로부터 펌웨어 업데이트에 대한 트랜잭션의 계약 정보를 수신하고, 신규 펌웨어 업데이트 버전이 있는지 확인하여, 펌웨어 업데이트에 대한 사물인터넷상의 IoT 게이트웨이(400)와의 연결하는 역할을 수행하는 노드이다. 이에 상기 IoT 에이전트(300)는 하나 이상의 IoT 게이트웨이(400)와 보안 채널을 통하여 연결된다.And the IoT agent 300 is a block chain node interworking with the IoT network in which the IoT device 500 operates, and receives contract information of a transaction for firmware update from the supplier agent 200, and updates the new firmware It is a node that checks whether there is a version, and serves to connect with the IoT gateway 400 on the Internet of Things for firmware update. Accordingly, the IoT agent 300 is connected to one or more IoT gateways 400 through a secure channel.

이때 상기 IoT 에이전트(300)는 채굴 및 검증 프로세스에는 참여하지 않으며, 블록체인 네트워크 내의 상기 공급업체 에이전트(200)에서 검증 완료된 펌웨어 업데이트 계약 정보 또는 펌웨어 업데이트 정보를 수신하고 IoT 에이전트(300)의 로컬 원장에 저장된 데이터와 이를 동기화하는 역할만을 수행한다.At this time, the IoT agent 300 does not participate in the mining and verification process, and receives the verified firmware update contract information or firmware update information from the supplier agent 200 in the blockchain network, and receives the local ledger of the IoT agent 300 . It only plays the role of synchronizing the data stored in the .

또한, 본 발명에서의 IoT 게이트웨이(400)는 사물인터넷 네트워크에 연결된 IoT 장치(500)의 펌웨어 정보 및 관련 데이터를 수집하고 연결된 외부 네트워크와의 인터페이스를 제공하며, 상기 블록체인 네트워크의 IoT 에이전트(300)에 의한 펌웨어 업데이트 정보를 제공받아 IoT 장치(500)에 펌웨어 업데이트를 제공하는 장치이다. 예를 들어 IoT 게이트웨이(400)는 스마트 환경에서 WiFi 라우터와 같은 IoT 장치용 게이트웨이에서 블록체인 네트워크의 IoT 에이전트와 연동하는 프로그램이 추가로 동작될 수 있다.In addition, the IoT gateway 400 in the present invention collects firmware information and related data of the IoT device 500 connected to the IoT network and provides an interface with a connected external network, and the IoT agent 300 of the blockchain network ) is a device that provides firmware update to the IoT device 500 by receiving firmware update information. For example, in the IoT gateway 400, a program interworking with an IoT agent of a blockchain network may be additionally operated in a gateway for IoT devices such as a WiFi router in a smart environment.

상기 IoT 게이트웨이(400)는 등록된 IoT 장치(500)에 대한 제조업체, 모델 및 설치된 펌웨어 버전과 같은 정보를 저장하는 사물인터넷의 게이트웨이 역할을 수행하는 디바이스로서, 각각의 상기 IoT 게이트웨이는 상기 IoT 에이전트(400)에 저장되어 있는 지갑 주소(Wallet)에 저장되어 있는 공개 주소(또는 지갑 주소)로 식별된다.The IoT gateway 400 is a device serving as a gateway of the IoT that stores information such as a manufacturer, model, and installed firmware version of the registered IoT device 500, and each IoT gateway is the IoT agent ( 400) is identified by the public address (or wallet address) stored in the wallet address (Wallet) stored in the wallet address (Wallet).

이에 상기 IoT 게이트웨이(400)는 IoT 장치(500)의 펌웨어 정보와 IoT 에이전트에서 인식한 블록체인 네트워크의 수신된 계약의 펌웨어 업데이트 요구 사항과 일치하는 IoT 장치를 찾으면 펌웨어의 이진 파일을 다운로드하기 위한 자세한 정보를 관련 IoT 에이전트로 보낸다.Accordingly, when the IoT gateway 400 finds an IoT device that matches the firmware information of the IoT device 500 and the firmware update requirement of the received contract of the blockchain network recognized by the IoT agent, detailed instructions for downloading the firmware binary file It sends information to the relevant IoT agent.

즉 IoT 게이트웨이(400)는 풀(Pull) 방식으로 IoT 에이전트(300)에게 펌웨어 업데이트 계약 사항의 정보를 요청하여, IoT 장치(500)의 펌웨어 정보와 블록체인 네트워크상에서 이루어진 계약 사항에 따른 펌웨어 정보를 비교하게 된다.That is, the IoT gateway 400 requests the information of the firmware update contract from the IoT agent 300 in a pull method, and provides the firmware information of the IoT device 500 and the firmware information according to the contract made on the block chain network. will be compared

이에 따라 상기 IoT 게이트웨이(400)는 IoT 장치(500)의 펌웨어 정보와 IoT 에이전트(300)에서 인식한 블록체인 네트워크 내의 신규 펌웨어 업데이트 요구 사항과 일치하는 IoT 장치(500)를 찾고, 펌웨어 파일을 다운로드하기 위한 자세한 정보를 관련 IoT 에이전트(300)로 보내게 되는 것이다.Accordingly, the IoT gateway 400 finds the IoT device 500 that matches the firmware information of the IoT device 500 and the new firmware update requirement in the blockchain network recognized by the IoT agent 300, and downloads the firmware file. Detailed information for doing so will be sent to the related IoT agent 300 .

그리고 상기 IoT 장치(500)는 통신 기능이 내장되어 각종 사물인터넷에 환경에서 연결되어 동작하는 센서와 같은 임베디드 디바이스이다. In addition, the IoT device 500 is an embedded device such as a sensor having a communication function built-in and connected to various Internet of Things in an environment.

본 발명은 상술된 구성 엔티티(Entity)가 펌웨어의 효과적인 배포를 위한 목적에 따라 분산 펌웨어의 무결성을 확인하기 위하여 스마트계약(Smart Contract) 및 합의 메커니즘을 사용하는 블록체인 네트워크에서 동작되는 것이다.The present invention is to operate in a blockchain network using a smart contract and consensus mechanism in order to verify the integrity of distributed firmware according to the purpose of the above-described configuration entity for effective distribution of firmware.

도 3은 본 발명의 일실시예에 따른 블록체인 기반 IoT 기기의 펌웨어 업데이트 방법을 도시하는 흐름도이고, 이를 자세히 설명하면 다음과 같다.3 is a flowchart illustrating a firmware update method of a blockchain-based IoT device according to an embodiment of the present invention, which will be described in detail as follows.

이에 본 발명의 블록체인 기반 IoT 기기의 펌웨어 업데이트 방법은 펌웨어 업데이트 계약을 생성하고 펌웨어 파일을 블록체인 네트워크에서 검증하여 모든 블록체인 네트워크에서 신규 펌웨어에 대한 계약 사항을 공유하는 펌웨어 업데이트 계약 단계(S100)와 펌웨어 업데이트 계약이 모든 블록체인 원장에서 갱신되어 저장된 후 해당 계약을 기반으로 펌웨어 바이너리 배포가 실행되어 IoT 장치에서 업데이트되는 펌웨어 업데이트 실행 단계(S200)로 이루어진다.Accordingly, the firmware update method of the blockchain-based IoT device of the present invention creates a firmware update contract and verifies the firmware file in the blockchain network to share the contract details for the new firmware in all blockchain networks (S100) After the firmware update contract is updated and stored in all blockchain ledgers, firmware binary distribution is executed based on the contract, and the firmware update execution step (S200) is performed in which the IoT device is updated.

먼저 상기 펌웨어 업데이트 계약 단계(S100)에서는 신규 펌웨어 저장 단계(S110), 계약 작성 요청 단계(S120), 계약 작성 및 정보 기록 단계(S130), 계약 요구 배포 단계(S140), 계약 무결성 검증 단계(S150). 계약 검증결과 공유 단계(S160) 및 모든 블록체인에 계약 원장 기록 단계(S170)를 포함하여 이루어질 수 있다. First, in the firmware update contract step (S100), the new firmware storage step (S110), the contract creation request step (S120), the contract creation and information recording step (S130), the contract request distribution step (S140), the contract integrity verification step (S150) ). The contract verification result sharing step (S160) and the contract ledger recording step (S170) in all blockchains may be included.

상기 신규 펌웨어 저장 단계(S110)는 펌웨어 제조사가 사물인터넷에 동작하는 특정 IoT 장치에 대한 신규 펌웨어를 개발하고, 펌웨어 바이너리(또는 펌웨어 이미지) 및 펌웨어 버전과 관련된 신규 펌웨어 업데이트 정보를 펌웨어 배포 서버에 저장하는 단계이다.In the new firmware storage step (S110), a firmware manufacturer develops a new firmware for a specific IoT device operating in the Internet of Things, and stores the firmware binary (or firmware image) and new firmware update information related to the firmware version in the firmware distribution server. is a step to

상기 계약 작성 요청 단계(S120)는 신규 펌웨어 업데이트 정보가 펌웨어 배포 서버에 저장되면, 상기 펌웨어 배포 서버는 블록체인 네트워크상의 공급업체 에이전트에 펌웨어 업데이트 계약 작성을 발행하게 된다.In the contract creation request step (S120), when new firmware update information is stored in the firmware distribution server, the firmware distribution server issues the creation of a firmware update contract to the vendor agent on the block chain network.

이는 상기 펌웨어 배포 서버에 상기 신규 펌웨어 업데이트 정보가 저장되면, 블록체인 네트워크상의 공급업체 에이전트에 펌웨어 업데이트를 위한 계약 작성을 요청하는 것으로서, 먼저 펌웨어 배포 서버는 개인 암호키로 서명하고 스마트계약을 사용하여 서명된 이진 파일을 블록체인에 푸시(Push)하여 추가하는 것을 의미한다. 이러한 스마트계약은 펌웨어 배포 서버의 네트워크 주소에서 시작된 펌웨어 업데이트만 허용된다.When the new firmware update information is stored in the firmware distribution server, it requests the vendor agent on the blockchain network to create a contract for firmware update. First, the firmware distribution server signs with a private encryption key and signs using a smart contract. It means adding the binary file by pushing it to the blockchain. These smart contracts only allow firmware updates initiated from the network address of the firmware distribution server.

이후 상기 계약 작성 및 정보 기록 단계(S130)는 공급업체 에이전트에서 신규 펌웨어 업데이트 계약 사항을 생성하고 새로 생성된 계약 내에 신규 펌웨어 정보를 기록하는 단계이다.Thereafter, the contract creation and information recording step ( S130 ) is a step of creating a new firmware update contract in the supplier agent and recording new firmware information in the newly created contract.

그러면 상기 계약 요구 배포 단계(S140)에서 공급업체 에이전트는 신규 생성된 펌웨어 업데이트 계약을 확인하고 검증을 요청하기 하기 위해 모든 블록체인 네트워크에 신규 생성된 펌웨어 업데이트 계약에 따른 작업 블록을 배포하게 된다.Then, in the contract request distribution step (S140), the supplier agent distributes the work block according to the newly created firmware update contract to all blockchain networks in order to confirm and request verification of the newly created firmware update contract.

상기 계약 무결성 검증 단계(S150)는 상기 계약 요구 배포 단계(S140)에서 배포된 펌웨어 업데이트 계약이 블록체인 네트워크에 배포 게시되면 합의 프로토콜을 통해 피어 검증 프로세스를 거치는 단계로서, 블록체인 네트워크상의 각 공급업체 에이전트에서 배포되는 작업 블록의 작업증명(Proofof-Work)의 확인 메커니즘을 사용하여 펌웨어 업데이트 계약 정보를 확인하고 펌웨어 이진 파일의 무결성을 확인하는 단계이다. 이는 블록체인 네트워크의 다른 모든 공급업체 에이전트들인 검증 노드를 통하여 새로 생성된 펌웨어 업데이트 계약을 증명하고 이를 확인하는 단계라 볼 수 있다.The contract integrity verification step (S150) is a step of going through a peer verification process through a consensus protocol when the firmware update contract distributed in the contract request distribution step (S140) is distributed and posted on the block chain network. Each supplier on the block chain network This is the step of verifying the firmware update contract information and verifying the integrity of the firmware binary file using the proof-of-work verification mechanism of the work block distributed from the agent. This can be seen as the stage of verifying and verifying the newly created firmware update contract through the verification node, which is all other vendor agents in the blockchain network.

상기 블록체인 네트워크에서 배포되는 작업 블록은, 블록사이즈와 신규 펌웨어 버전과 이전블록헤더해시와 머클루트(Merkle Root)를 가지는 블록헤더 및 정상적인 검증이 이루어진 횟수를 나타내는 검증카운터(verification counter, 4바이트), 머클루트를 계산하기 위한 트리구조로서 블록 데이터의 무결성을 보장하는 머클트리(Merkle tree), 검증작업에 대한 로그 정보를 저장하는 검증로그(verification log), 디바이스 모델명과 펌웨어 버전과 검증자(verifier)를 이루어지는 검증자 정보(information of verifier)(40바이트)를 포함하는 블록바디를 포함하여 구성될 수 있다.The working block distributed in the blockchain network includes a block size, a new firmware version, a block header having a previous block header hash and a Merkle root, and a verification counter indicating the number of normal verifications (4 bytes). ), a tree structure for calculating the Merkle root that guarantees the integrity of block data, a verification log that stores log information about verification work, a device model name, firmware version, and verifier ( verifier) and may be configured to include a block body including information of verifier (40 bytes).

이후 상기 계약 검증결과 공유 단계(S160)는 신규 펌웨어 업데이트 계약의 검증이 완료되면, 모든 검증 노드는 새로 작성된 계약의 검증 상태를 업데이트하고 검증 결과에 대해 다른 모든 노드에 공유하는 단계이다.Thereafter, the contract verification result sharing step ( S160 ) is a step in which, when verification of the new firmware update contract is completed, all verification nodes update the verification state of the newly created contract and share the verification result with all other nodes.

그리고 상기 모든 블록체인에 계약 원장 기록 단계(S170)는 상기 계약 검증결과 공유 단계(S160)를 통하여 모든 블록체인 네트워크상에 신구 펌웨어의 계약 사항이 공유되고 검증 상태가 업데이트되며, 검증 노드는 확인된 모든 펌웨어 업데이트 계약을 수집하여 이를 블록체인 원장에 저장하는 단계이다.And in the contract ledger recording step (S170) in all the blockchains, the contract details of the old and new firmware are shared on all blockchain networks through the contract verification result sharing step (S160) and the verification status is updated, and the verification node is confirmed This is the stage of collecting all firmware update contracts and storing them on the blockchain ledger.

이는 모든 블록체인 네트워크상에서 검증 노드에 의해 확인된 모든 펌웨어 업데이트 계약을 수집하여 모든 블록체인 네트워크의 작업 블록이 갱신되는 단계라 볼 수 있다.This can be seen as the stage in which the working blocks of all blockchain networks are updated by collecting all firmware update contracts confirmed by the verification nodes on all blockchain networks.

상술된 내용과 같이 펌웨어 업데이트 계약 사항과 검증 사항이 모든 블록체인 원장에 저장되며, 이후 해당 계약을 기반으로 펌웨어 바이너리 배포가 실행되는 펌웨어 업데이트 실행 단계(S200)사 수행될 수 있는 것이다.As described above, firmware update contract details and verification details are stored in all blockchain ledgers, and then firmware update execution step (S200) in which firmware binary distribution is executed based on the contract can be performed.

이에 상기 펌웨어 업데이트 실행 단계(S200)에서는 신규 펌웨어 정보 알림 단계(S210), IoT 장치 정보 확인 단계(S220), IoT 장치 요청 전달 단계(S230), 신규 펌웨어 계약 사항 확인 단계(S240), 신규 펌웨어 URI 전송 단계(S250), 신규 펌웨어 다운로드 요청 단계(S260), 신규 펌웨어 다운로드 단계(S270), 신규 펌웨어 전송 단계(S280) 및 펌웨어 확인 및 업데이트 단계(S290)를 포함하여 이루어질 수 있다.Accordingly, in the firmware update execution step (S200), the new firmware information notification step (S210), the IoT device information check step (S220), the IoT device request delivery step (S230), the new firmware contract details check step (S240), the new firmware URI A transmission step (S250), a new firmware download request step (S260), a new firmware download step (S270), a new firmware transmission step (S280), and a firmware confirmation and update step (S290) may be included.

상기 신규 펌웨어 정보 알림 단계(S210)는 IoT 에이전트에서 새로운 펌웨어 업데이트 계약이 확인되고, 블록체인에 기록된 신규 펌웨어 업데이트에 대한 알림을 상기 IoT 에이전트와 연동하고 관리하는 모든 IoT 게이트웨이로 전송하는 단계이다.The new firmware information notification step S210 is a step in which the IoT agent confirms a new firmware update contract, and transmits a notification about the new firmware update recorded in the block chain to all IoT gateways that interwork with the IoT agent and manage.

상기 IoT 장치 정보 확인 단계(S220)는 상기 신규 펌웨어 알림 단계(S210)를 통하여 블록체인에 기록된 신규 펌웨어 업데이트에 대한 알림을 수신한 IoT 게이트웨이가 신규 펌웨어 업데이트와 관련된 정보를 해당 IoT 게이트웨이가 관리하는 모든 IoT 장치의 정보로 확인하는 단계이다.In the IoT device information confirmation step (S220), the IoT gateway that has received the notification of the new firmware update recorded in the block chain through the new firmware notification step (S210) manages the information related to the new firmware update by the corresponding IoT gateway. This is the step to check with the information of all IoT devices.

이는 상기 IoT 게이트웨이가 수신한 신규 펌웨어 업데이트에 대한 알림에 따라 IoT 에이전트에게 펌웨어 업데이트 계약 사항의 정보를 요청하고, 신규 펌웨어 업데이트에 계약에 해당하는 IoT 장치의 펌웨어 정보와 블록체인 네트워크상에서 이루어진 계약 사항에 따른 펌웨어 정보를 비교하는 단계이다. 이는 IoT 장치의 펌웨어 정보가 구 버전이 되고, 신규 펌웨어 업데이트에 대한 알림에 따라 신규 펌웨어 정보가 비교되는 과정이라 볼 수 있다.According to the notification of the new firmware update received by the IoT gateway, the IoT agent requests the information of the firmware update contract, and the firmware information of the IoT device corresponding to the new firmware update contract and the contract made on the block chain network It is a step of comparing firmware information according to the following. This can be seen as a process in which the firmware information of the IoT device becomes the old version, and the new firmware information is compared according to a notification of a new firmware update.

이에 따라 상기 IoT 장치 요청 전달 단계(S230)는 상기 IoT 게이트웨이에서 IoT 장치의 펌웨어 정보와 IoT 에이전트에서 인식한 블록체인 네트워크 내의 신규 펌웨어 업데이트 요구 사항과 일치하는 IoT 장치를 찾고, 펌웨어 파일을 다운로드하기 위한 자세한 정보를 관련 IoT 에이전트로 풀(Pull) 방식으로 전송 요청하는 단계이다.Accordingly, the IoT device request delivery step (S230) is to find the IoT device that matches the firmware information of the IoT device in the IoT gateway and the new firmware update requirement in the blockchain network recognized by the IoT agent, and download the firmware file. This is the step of requesting to send detailed information to the relevant IoT agent in a pull method.

이후 상기 신규 펌웨어 계약 사항 확인 단계(S240)에서는 IoT 에이전트에서 IoT 게이트웨이로부터 펌웨어 업데이트 요청을 받고, IoT 게이트웨이로부터 수신된 펌웨어 업데이트 요청과 일치하는 펌웨어 업데이트 계약의 요구 사항을 확인하는 단계이다.Thereafter, in the confirmation of the new firmware contract details ( S240 ), the IoT agent receives a firmware update request from the IoT gateway, and checks the requirements of the firmware update contract that match the firmware update request received from the IoT gateway.

상기 신규 펌웨어 URI 전송 단계(S250)는 블록체인 노드인 IoT 에이전트에서 펌웨어 업데이트 요청과 일치하는 펌웨어 업데이트 계약 요구 사항을 확인하고 요청된 펌웨어 바이너리의 URI 정보를 IoT 게이트웨이로 보내는 단계이다.The new firmware URI transmission step ( S250 ) is a step in which the IoT agent, which is a blockchain node, confirms the firmware update contract requirement that matches the firmware update request, and sends URI information of the requested firmware binary to the IoT gateway.

상기 신규 펌웨어 다운로드 요청 단계(S260)는 상기 IoT 게이트웨이가 펌웨어 바이너리의 URI를 수신한 후, 상기 IoT 게이트웨이에서 요청된 펌웨어 바이너리를 다운로드하기 위한 요청을 펌웨어 배포 서버로 보내는 단계이다.The new firmware download request step S260 is a step in which the IoT gateway sends a request for downloading the firmware binary requested from the IoT gateway to the firmware distribution server after receiving the URI of the firmware binary.

상기 신규 펌웨어 다운로드 단계(S270)는 펌웨어 배포 서버에 저장된 URI의 위치에서 해당 IoT 게이트웨이가 보낸 요청을 수신하고, 요청된 펌웨어 바이너리 파일을 요청하는 IoT 게이트웨이로 보내는 단계이다.The new firmware download step S270 is a step of receiving a request sent by the corresponding IoT gateway from the location of the URI stored in the firmware distribution server, and sending the requested firmware binary file to the requesting IoT gateway.

이후 상기 신규 펌웨어 확인 및 전송 단계(S280)는 상기 IoT 게이트웨이가 펌웨어의 이진 파일 다운로드를 완료 한 후, IoT 게이트웨이는 펌웨어 이진 파일을 확인하고 이를 관련 IoT 장치로 전달하는 단계이다.Thereafter, the step of confirming and transmitting the new firmware ( S280 ) is a step in which the IoT gateway checks the firmware binary file and transmits it to the related IoT device after the IoT gateway completes downloading the firmware binary file.

상기 펌웨어 업데이트 단계(S290)는 최종적으로 상기 IoT 장치에서 상기 펌웨어를 확인하고 업데이트하는 단계이다.The firmware update step S290 is a step of finally checking and updating the firmware in the IoT device.

결론적으로 본 발명은 사물인터넷 장치(IoT Device)가 IoT 게이트웨이를 통하여 분산 개념을 기반으로 구축되는 블록체인 네트워크에 연결되고, 블록체인 노드에 의하여 검증된 펌웨어만 확인하고 이를 IoT 장치에 공급되도록 하는 일련의 프레임워크를 기반으로 하는 블록체인 기반 IoT 기기 펌웨어 공급 시스템 및 이를 이용하는 펌웨어 업데이트 방법을 제공하는 것임을 알 수 있다.In conclusion, the present invention is a series of devices in which an IoT device is connected to a blockchain network built based on a distributed concept through an IoT gateway, checks only the firmware verified by the blockchain node, and supplies it to the IoT device. It can be seen that it provides a blockchain-based IoT device firmware supply system based on the framework of , and a firmware update method using the same.

전술한 바와 같이 본 발명의 상세한 설명에서는 바람직한 실시예들에 관하여 설명하였지만, 본 발명의 기술분야에서 통상의 지식을 가진 사람이라면 하기의 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음은 이해할 수 있을 것이다.As described above, in the detailed description of the present invention, preferred embodiments have been described, but those of ordinary skill in the art will not depart from the spirit and scope of the present invention as set forth in the following claims. It will be understood that various modifications and variations of the present invention may be made.

100: 펌웨어 배포 서버 200: 펌웨어 배포 서버
300: IoT 에이전트 400: IoT 게이트웨이
500: IoT 장치
100: firmware distribution server 200: firmware distribution server
300: IoT agent 400: IoT gateway
500: IoT device

Claims (5)

블록체인 기반 IoT 기기 펌웨어 공급 시스템에 있어서,
하나 이상의 펌웨어 제조사에 의해 관리되고 운용되는 하나 이상의 펌웨어 배포 서버,
상기 펌웨어 배포 서버에서 제공하는 펌웨어에 대한 관련 정보를 제공받아 펌웨어 업데이트 계약 블록을 생성하여 블록체인 네트워크의 다른 검증 노드에 배포하는 공급업체 에이전트,
상기 공급업체 에이전트로부터 펌웨어 업데이트에 대한 계약 정보의 검증과정이 이루어진 계약 정보를 수신하고 사물인터넷상의 IoT 게이트웨이와의 연결하는 역할을 수행하는 IoT 에이전트,
사물인터넷 네트워크에 연결된 IoT 장치의 데이터를 수집하고 상기 IoT 에이전트의 펌웨어 업데이트 계약 사항의 정보를 요청하여, IoT 장치의 펌웨어 정보와 블록체인 네트워크상에서 이루어진 계약 사항에 따른 펌웨어 정보를 비교하여 IoT 장치의 펌웨어 업데이트를 요청하는 IoT 게이트웨이 및
상기 IoT 게이트웨이에 하나 이상 연결되어 운영되는 IoT 장치를 포함하여 이루어지는 것을 특징으로 하는 블록체인 기반 IoT 기기 펌웨어 공급 시스템.
In the blockchain-based IoT device firmware supply system,
one or more firmware distribution servers managed and operated by one or more firmware manufacturers;
A vendor agent that receives information about the firmware provided by the firmware distribution server, generates a firmware update contract block, and distributes it to other verification nodes in the blockchain network;
An IoT agent that receives contract information on which a verification process of contract information for firmware update has been performed from the supplier agent and connects with an IoT gateway on the Internet of Things;
By collecting data of IoT devices connected to the Internet of Things network and requesting information on the firmware update contract of the IoT agent, the firmware information of the IoT device and firmware information according to the contract made on the block chain network are compared to the firmware of the IoT device. IoT gateway requesting updates and
A block chain-based IoT device firmware supply system comprising an IoT device operated by being connected to one or more IoT gateways.
청구항 1에 있어서,
상기 공급업체 에이전트와 IoT 에이전트는 블록체인 네트워크 내의 노드 역할을 하며, 하나 이상의 상기 공급업체 에이전트는 상기 블록체인 네트워크상에서 채굴 및 검증 프로세스에 참여하는 검증 노드로 동작되고,
상기 IoT 에이전트는 채굴 및 검증 프로세스에는 참여하지 않으며, 블록체인 네트워크 내의 상기 공급업체 에이전트에서 검증 완료된 펌웨어 업데이트 계약 정보를 수신하고 IoT 에이전트의 로컬 원장에 저장된 데이터와 이를 동기화하는 역할만을 수행하는 것을 특징으로 하는 블록체인 기반 IoT 기기 펌웨어 공급 시스템.
The method according to claim 1,
The supplier agent and IoT agent serve as nodes in a blockchain network, and one or more of the supplier agents operate as validation nodes participating in mining and verification processes on the blockchain network,
The IoT agent does not participate in the mining and verification process, but only receives the firmware update contract information verified from the supplier agent in the blockchain network and synchronizes it with the data stored in the IoT agent's local ledger. Blockchain-based IoT device firmware supply system.
블록체인 기반 IoT 기기 펌웨어 공급 시스템을 이용하는 펌웨어 업데이트 방법에 있어서,
펌웨어 업데이트 계약을 생성하고 펌웨어 파일을 블록체인 네트워크에서 검증하여 모든 블록체인 네트워크에서 신규 펌웨어에 대한 계약 사항을 공유하는 펌웨어 업데이트 계약 단계와
펌웨어 업데이트 계약이 모든 블록체인 원장에 저장된 후 해당 계약을 기반으로 펌웨어 바이너리 배포가 실행되어 IoT 장치에서 업데이트되는 펌웨어 업데이트 실행 단계로 이루어지는 것을 특징으로 하는 블록체인 기반 IoT 기기 펌웨어 업데이트 방법.
In a firmware update method using a blockchain-based IoT device firmware supply system,
The firmware update contract stage, which creates a firmware update contract and verifies the firmware file on the blockchain network, to share the contract details for the new firmware on all blockchain networks;
After the firmware update contract is stored in all blockchain ledgers, the firmware binary distribution is executed based on the contract, and the firmware update execution step of updating the IoT device is a block chain-based IoT device firmware update method.
청구항 3에 있어서,
상기 펌웨어 업데이트 계약 단계는
신규 펌웨어 업데이트 정보를 펌웨어 배포 서버에 저장되는 신규 펌웨어 저장 단계,
상기 펌웨어 배포 서버는 블록체인 네트워크상의 공급업체 에이전트에 펌웨어 업데이트 계약 작성을 발행하는 계약 작성 요청 단계,
공급업체 에이전트에서 신규 펌웨어 업데이트 계약 사항을 생성하고 새로 생성된 계약 내에 신규 펌웨어 정보를 기록하는 계약 작성 및 정보 기록 단계,
공급업체 에이전트는 신규 생성된 펌웨어 업데이트 계약을 확인하고 모든 블록체인 네트워크상의 검증 노드에 검증을 요청하기 하기 위해 작업 블록을 배포하는 계약 요구 배포 단계,
블록체인 네트워크상의 각 공급업체 에이전트에서 상기 작업 블록의 작업증명(Proofof-Work)의 확인 메커니즘을 사용하여 펌웨어 업데이트 계약 정보를 확인하고 펌웨어의 무결성을 확인하는 계약 무결성 검증 단계.
신규 펌웨어 업데이트 계약의 검증이 완료되면, 모든 검증 노드는 새로 작성된 계약의 검증 상태를 업데이트하고 검증 결과에 대해 다른 모든 노드에 공유하는 계약 검증결과 공유 단계 및
검증 노드에 의해 확인된 모든 펌웨어 업데이트 계약을 수집하여 모든 블록체인 네트워크의 작업 블록이 갱신되는 계약 원장 기록 단계를 포함하여 이루어지는 것을 특징으로 하는 블록체인 기반 IoT 기기 펌웨어 업데이트 방법.
4. The method of claim 3,
The firmware update contract step is
A new firmware storage step in which the new firmware update information is stored in the firmware distribution server;
A contract creation request step in which the firmware distribution server issues the creation of a firmware update contract to a vendor agent on a blockchain network;
Contract creation and information recording step of creating a new firmware update contract in the vendor agent and recording the new firmware information in the newly created contract;
Contract request distribution stage, in which the vendor agent verifies the newly created firmware update contract and distributes the working block to request verification to all verification nodes on the blockchain network;
Contract integrity verification step in which each vendor agent on the blockchain network verifies the firmware update contract information and verifies the integrity of the firmware using the proof-of-work verification mechanism of the work block.
When the verification of the new firmware update contract is completed, all verification nodes update the verification status of the newly created contract and share the verification result with all other nodes.
A blockchain-based IoT device firmware update method, comprising a contract ledger recording step in which the working blocks of all blockchain networks are updated by collecting all firmware update contracts confirmed by the verification node.
청구항 3에 있어서,
상기 펌웨어 업데이트 실행 단계는 블록체인 네트워크상에서 신규 펌웨어 업데이트 계약이 검증된 후에 이루어지며,
블록체인에 기록된 신규 펌웨어 업데이트에 대한 알림을 IoT 에이전트와 연동하는 모든 IoT 게이트웨이로 전송하는 신규 펌웨어 정보 알림 단계,
신규 펌웨어 업데이트에 대한 알림을 수신한 IoT 게이트웨이가 신규 펌웨어 업데이트와 관련된 정보를 해당 IoT 게이트웨이가 관리하는 모든 IoT 장치의 정보로 확인하는 IoT 장치 정보 확인 단계,
IoT 장치에서 신규 펌웨어 파일을 다운로드하기 위하여 풀(Pull) 방식으로 IoT 에이전트에 요청하는 IoT 장치 요청 전달 단계,
IoT 게이트웨이로부터 펌웨어 업데이트 요청을 받고, IoT 게이트웨이로부터 수신된 펌웨어 업데이트 요청과 일치하는 펌웨어 업데이트 계약의 요구 사항을 확인하는 신규 펌웨어 계약 사항 확인 단계,
요청된 펌웨어 바이너리의 URI 정보를 IoT 게이트웨이로 전송하는 신규 펌웨어 URI 전송 단계,
IoT 게이트웨이에서 요청된 펌웨어 바이너리를 다운로드하기 위한 요청을 펌웨어 배포 서버로 전송하는 신규 펌웨어 다운로드 요청 단계,
펌웨어 배포 서버에 저장된 URI의 위치에서 해당 IoT 게이트웨이로 펌웨어 바이너리 파일을 전송하는 신규 펌웨어 다운로드 단계,
IoT 게이트웨이에서 수신한 펌웨어 파일을 확인하고 IoT 장치로 전달하는 신규 펌웨어 전송 단계 및 IoT 장치에서 상기 펌웨어에 대한 펌웨어 확인 및 업데이트를 하는 단계를 포함하여 이루어지는 것을 특징으로 하는 블록체인 기반 IoT 기기 펌웨어 업데이트 방법.
4. The method of claim 3,
The firmware update execution step is performed after the new firmware update contract is verified on the blockchain network,
A new firmware information notification step that sends a notification of a new firmware update recorded in the block chain to all IoT gateways that work with the IoT agent;
IoT device information confirmation step, in which the IoT gateway, which has received the notification of the new firmware update, checks the information related to the new firmware update as information of all IoT devices managed by the IoT gateway;
An IoT device request delivery step of requesting the IoT agent in a pull method to download a new firmware file from the IoT device;
A new firmware contract confirmation step of receiving a firmware update request from the IoT gateway, and checking the requirements of the firmware update contract that match the firmware update request received from the IoT gateway;
A new firmware URI transmission step of transmitting the requested firmware binary URI information to the IoT gateway;
A new firmware download request step of sending a request to download the requested firmware binary from the IoT gateway to the firmware distribution server;
A new firmware download step that sends a firmware binary file from the location of the URI stored in the firmware distribution server to the corresponding IoT gateway;
A block chain-based IoT device firmware update method comprising the steps of checking the firmware file received from the IoT gateway and transmitting the new firmware to the IoT device, and checking and updating the firmware for the firmware in the IoT device .
KR1020210048413A 2021-04-14 2021-04-14 BLOCKCHAIN-BASED IoT DEVICE FIRMWARE SUPPLY SYSTEM AND FIRMWARE UPDATE METHOD USING THE SAME KR102564488B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210048413A KR102564488B1 (en) 2021-04-14 2021-04-14 BLOCKCHAIN-BASED IoT DEVICE FIRMWARE SUPPLY SYSTEM AND FIRMWARE UPDATE METHOD USING THE SAME

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210048413A KR102564488B1 (en) 2021-04-14 2021-04-14 BLOCKCHAIN-BASED IoT DEVICE FIRMWARE SUPPLY SYSTEM AND FIRMWARE UPDATE METHOD USING THE SAME

Publications (2)

Publication Number Publication Date
KR20220142086A true KR20220142086A (en) 2022-10-21
KR102564488B1 KR102564488B1 (en) 2023-08-11

Family

ID=83805372

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210048413A KR102564488B1 (en) 2021-04-14 2021-04-14 BLOCKCHAIN-BASED IoT DEVICE FIRMWARE SUPPLY SYSTEM AND FIRMWARE UPDATE METHOD USING THE SAME

Country Status (1)

Country Link
KR (1) KR102564488B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102567514B1 (en) * 2022-12-16 2023-08-23 부산대학교 산학협력단 Method and device for updating iot device software based by blockchain p2p network
EP4374990A1 (en) 2022-10-31 2024-05-29 UniTech3DP Inc. Three-dimensional printing apparatus

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101796690B1 (en) * 2016-06-28 2017-11-10 상명대학교 천안산학협력단 Firmware integrity verification system based on block chain and the method thereof
KR101992981B1 (en) * 2018-12-07 2019-06-25 한전케이디엔 주식회사 IoT Platform System using IoT Herb and Block-Chain
KR102146914B1 (en) * 2019-04-23 2020-08-21 경기대학교 산학협력단 Blockchain-based firmware management system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101796690B1 (en) * 2016-06-28 2017-11-10 상명대학교 천안산학협력단 Firmware integrity verification system based on block chain and the method thereof
KR101992981B1 (en) * 2018-12-07 2019-06-25 한전케이디엔 주식회사 IoT Platform System using IoT Herb and Block-Chain
KR102146914B1 (en) * 2019-04-23 2020-08-21 경기대학교 산학협력단 Blockchain-based firmware management system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4374990A1 (en) 2022-10-31 2024-05-29 UniTech3DP Inc. Three-dimensional printing apparatus
KR102567514B1 (en) * 2022-12-16 2023-08-23 부산대학교 산학협력단 Method and device for updating iot device software based by blockchain p2p network

Also Published As

Publication number Publication date
KR102564488B1 (en) 2023-08-11

Similar Documents

Publication Publication Date Title
CN110933163B (en) Block chain contract deployment method, device, equipment and storage medium
CN110912707B (en) Block chain-based digital certificate processing method, device, equipment and storage medium
CN112104517B (en) Data processing method based on block chain network and related device
US11212665B2 (en) Embedded SIM management system, node device, embedded SIM management method, program, and information registrant device
CN110855791B (en) Block link point deployment method and related equipment
US10523526B2 (en) System and method for managing services and licenses using a blockchain network
KR101353725B1 (en) Methods and system for managing security keys within a wireless network
CN110941679B (en) Contract data processing method, related equipment and medium
KR102618665B1 (en) Version history management using blockchain
CN111133733B (en) Method and system for automatic blockchain deployment based on cloud platform
KR102564488B1 (en) BLOCKCHAIN-BASED IoT DEVICE FIRMWARE SUPPLY SYSTEM AND FIRMWARE UPDATE METHOD USING THE SAME
KR20140019027A (en) Software upgrading system and method, and server and client
KR20200066288A (en) Asset update service
CN110855760A (en) Block chain-based distributed secure storage system deployment method
WO2022072630A1 (en) Providing cryptographically secure post-secrets-provisioning services
CN111258599A (en) Firmware upgrade method, system and computer readable storage medium
JP2024505692A (en) Data processing methods, devices and computer equipment based on blockchain networks
Kolehmainen Secure firmware updates for iot: A survey
JP2023525576A (en) Scope of control of authentication keys for software updates
CN112804354A (en) Method and device for data transmission across chains, computer equipment and storage medium
JP7143744B2 (en) Equipment integration system and update management system
CN110910110A (en) Data processing method and device and computer storage medium
CN105656995A (en) Data sharing method and system based on distributed processing
CN112182009A (en) Data updating method and device of block chain and readable storage medium
US9467299B1 (en) Device for and method of controlled multilevel chain of trust/revision

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant