KR102564488B1 - 블록체인 기반 IoT 기기 펌웨어 공급 시스템 및 이를 이용하는 펌웨어 업데이트 방법 - Google Patents

블록체인 기반 IoT 기기 펌웨어 공급 시스템 및 이를 이용하는 펌웨어 업데이트 방법 Download PDF

Info

Publication number
KR102564488B1
KR102564488B1 KR1020210048413A KR20210048413A KR102564488B1 KR 102564488 B1 KR102564488 B1 KR 102564488B1 KR 1020210048413 A KR1020210048413 A KR 1020210048413A KR 20210048413 A KR20210048413 A KR 20210048413A KR 102564488 B1 KR102564488 B1 KR 102564488B1
Authority
KR
South Korea
Prior art keywords
firmware
contract
iot
firmware update
update
Prior art date
Application number
KR1020210048413A
Other languages
English (en)
Other versions
KR20220142086A (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 KR1020210048413A priority Critical patent/KR102564488B1/ko
Publication of KR20220142086A publication Critical patent/KR20220142086A/ko
Application granted granted Critical
Publication of KR102564488B1 publication Critical patent/KR102564488B1/ko

Links

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

본 발명은 사물인터넷 디바이스(IoT Device)가 블록체인 노드를 통하여 연결되고, 블록체인 노드에 의하여 검증된 펌웨어만 업데이트 가능하도록 하는 블록체인 기반 IoT 기기 펌웨어 공급 시스템을 제공하기 위한 것으로서, 본 발명은 펌웨어 업데이트 계약을 생성하고 펌웨어 파일을 블록체인 네트워크에서 검증하여 모든 블록체인 네트워크에서 신규 펌웨어에 대한 계약 사항을 공유하는 펌웨어 업데이트 계약 단계와 펌웨어 업데이트 계약이 모든 블록체인 원장에 저장된 후 해당 계약을 기반으로 펌웨어 바이너리 배포가 실행되어 IoT 장치에서 업데이트되는 펌웨어 업데이트 실행 단계로 이루어지는 특징이 있다.

Description

블록체인 기반 IoT 기기 펌웨어 공급 시스템 및 이를 이용하는 펌웨어 업데이트 방법{BLOCKCHAIN-BASED IoT DEVICE FIRMWARE SUPPLY SYSTEM AND FIRMWARE UPDATE METHOD USING THE SAME}
본 발명은 블록체인 기반 IoT 기기 펌웨어 공급 시스템 및 이를 이용하는 펌웨어 업데이트 방법에 관한 것으로서, 더욱 상세하게는 사물인터넷 디바이스(IoT Device)가 블록체인 노드를 통하여 연결되고, 블록체인 노드에 의하여 검증된 펌웨어만 업데이트 가능하도록 하는 블록체인 기반 IoT 기기 펌웨어 공급 시스템 및 이를 이용하는 펌웨어 업데이트 방법에 관한 것이다.
최근 각종 디바이스, 객체들이 네트워크 등을 통해 서로 연결된 사물 인터넷(Internet of Things)이 확산됨에 따라, 다양한 사물인터넷 장치(Device)가 출시되고 사물인터넷 기술의 확산이 빠르게 이루어지고 있는 현실이다.
그러나 인터넷에 연결되는 기기 수는 계속 증가하는데, 이를 효율적으로 통합 관리할 체계가 없다면 큰 혼란이 야기될 수 있다.
이에 사물인터넷 기술을 기반으로 한 '초연결 시대'의 도래가 머지않은 현실에서 '기하급수적으로 불어나는 사물인터넷 기기들을 어떻게 관리할 것인가'하는 문제가 대두되고 있다.
또한, 사물인터넷 디바이스는 내부에 펌웨어가 장착되며, 펌웨어는 기기운용에 가장 기본적인 소프트웨어를 탑재하게 된다. 이러한 펌웨어는 동일한 사물인터넷 기기 사이에서 무결성 검증이 이루어져야 하고, 버전이 업그레이드 될 때 마다 업데이트 되어야 할 필요성을 가진다. 또한, 사물인터넷 디바이스에서 펌웨어를 업데이트하는 기능은 업데이트 도중에 발생할 수 있는 장애로부터 안전하도록 설계되어야 하며, 사물인터넷 디바이스 제조업체의 부적절한 장치 관리 및 펌웨어 배포에 있어서 IoT 환경에 해를 끼치지 않는 보안 네트워크의 구성이 요구되는 것을 의미한다.
그러므로 사회 곳곳에 퍼져있는 사물인터넷 기기를 포괄적으로 업데이트하고 또 보안 위협으로부터 실시간으로 보호할 수 있는 기술 개발이 요구되고 있다.
상기와 같은 문제점을 해결하기 위한 종래의 기술로서 대한민국 공개특허공고 제10-2010-0120110호(2010.11.12.)에서 무선 메쉬 네트워크에서의 협력적 무선 펌웨어 업데이트 장치 및 방법을 제공하고 있다.
이러한 상기 종래의 기술은 무선 메쉬 네트워크에서의 협력적 무선 펌웨어 업데이트 장치 및 방법에 관한 것으로서, 무선 메쉬 네트워크에서의 각 노드가 커널, 네트워크 스택, 응용 프로토콜 등의 공통적으로 사용하는 바이너리 정보를 이용하여 기지국에서 타겟 노드까지 원본 이미지 대신 차분 스크립트를 전송하는 방식으로 노드간 협력을 통한 펌웨어 업데이트를 수행함으로서 대역폭을 절약하면서도 보다 안정적으로 펌웨어의 업데이트 및 유지 관리가 가능하도록 하고 있다.
그러나 상기 종래의 기술의 경우, 데이터의 대역폭을 줄이는 것이 목적이고 사물인터넷 기기들이 서버-클라이언트 방식에 의해 펌웨어의 업데이트를 수행하고 있어, 사용자가 직접 조작하여 인증 서버를 통해 수행해야하므로 항상 서버를 거쳐서 펌웨어 업데이트가 수행되어야 하는 번거로운 문제점을 가진다. 또한, 펌웨어의 무결성 검증은 항상 서버에 접속한 상태의 펌웨어 업데이트 상태에서만 수행되므로, 사물인터넷기기 사이에서의 자체적인 무결성 검증을 수행하지 못하고, 무결성 검증 시에도 서버에 과부하가 발생하는 단점이 있다.
본 발명은 전술한 종래기술의 문제점을 해결하기 위해 도출된 것으로, 본 발명의 목적은, 사물인터넷 장치(IoT Device)가 게이트웨이를 거쳐 블록체인 네트워크를 통하여 연결되고, 블록체인 노드에 의하여 검증된 펌웨어만 업데이트 가능하도록 하는 블록체인 기반 IoT 기기 펌웨어 공급 시스템 및 이를 이용하는 펌웨어 업데이트 방법을 제공하기 위한 것이다.
또한, 본 발명은 요청 IoT 장치로 펌웨어 바이너리를 안전하게 배포하기 위해 블록체인 기반 환경에서 블록체인 기술의 합의 프로토콜을 사용하여 펌웨어의 정보를 확인하고, 업데이트 진행을 위한 펌웨어 무결성을 검증하여 IoT 장치에 펌웨어가 공급되도록 하는 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 측면에 따른 블록체인 기반 IoT 기기 펌웨어 공급 시스템은 하나 이상의 펌웨어 제조사에 의해 관리되고 운용되는 하나 이상의 펌웨어 배포 서버, 상기 펌웨어 배포 서버에서 제공하는 펌웨어에 대한 관련 정보를 제공받아 펌웨어 업데이트 계약 블록을 생성하여 블록체인 네트워크의 다른 검증 노드에 배포하는 공급업체 에이전트, 상기 공급업체 에이전트로부터 펌웨어 업데이트에 대한 계약 정보의 검증과정이 이루어진 계약 정보를 수신하고 사물인터넷상의 IoT 게이트웨이와의 연결하는 역할을 수행하는 IoT 에이전트, 사물인터넷 네트워크에 연결된 IoT 장치의 데이터를 수집하고 상기 IoT 에이전트의 펌웨어 업데이트 계약 사항의 정보를 요청하여, IoT 장치의 펌웨어 정보와 블록체인 네트워크상에서 이루어진 계약 사항에 따른 펌웨어 정보를 비교하여 IoT 장치의 펌웨어 업데이트를 요청하는 IoT 게이트웨이 및 상기 IoT 게이트웨이에 하나 이상 연결되어 운영되는 IoT 장치를 포함하여 이루어지는 특징이 있다.
또한, 본 발명의 상기 공급업체 에이전트와 IoT 에이전트는 블록체인 네트워크 내의 노드 역할을 하며, 하나 이상의 상기 공급업체 에이전트는 상기 블록체인 네트워크상에서 채굴 및 검증 프로세스에 참여하는 검증 노드로 동작되고, 상기 IoT 에이전트는 채굴 및 검증 프로세스에는 참여하지 않으며, 블록체인 네트워크 내의 상기 공급업체 에이전트에서 검증 완료된 펌웨어 업데이트 계약 정보를 수신하고 IoT 에이전트의 로컬 원장에 저장된 데이터와 이를 동기화하는 역할만을 수행하는 것을 특징으로 할 수 있다.
또한, 상기 기술적 과제를 해결하기 위한 본 발명의 일 측면에 따른 블록체인 기반 IoT 기기 펌웨어 공급 시스템을 이용하는 펌웨어 업데이트 방법은 펌웨어 업데이트 계약을 생성하고 펌웨어 파일을 블록체인 네트워크에서 검증하여 모든 블록체인 네트워크에서 신규 펌웨어에 대한 계약 사항을 공유하는 펌웨어 업데이트 계약 단계와 펌웨어 업데이트 계약이 모든 블록체인 원장에 저장된 후 해당 계약을 기반으로 펌웨어 바이너리 배포가 실행되어 IoT 장치에서 업데이트되는 펌웨어 업데이트 실행 단계로 이루어지는 특징이 있다.
이때 본 발명의 상기 펌웨어 업데이트 계약 단계는 신규 펌웨어 업데이트 정보를 펌웨어 배포 서버에 저장되는 신규 펌웨어 저장 단계, 상기 펌웨어 배포 서버는 블록체인 네트워크상의 공급업체 에이전트에 펌웨어 업데이트 계약 작성을 발행하는 계약 작성 요청 단계, 공급업체 에이전트에서 신규 펌웨어 업데이트 계약 사항을 생성하고 새로 생성된 계약 내에 신규 펌웨어 정보를 기록하는 계약 작성 및 정보 기록 단계, 공급업체 에이전트는 신규 생성된 펌웨어 업데이트 계약을 확인하고 모든 블록체인 네트워크상의 검증 노드에 검증을 요청하기 하기 위해 작업 블록을 배포하는 계약 요구 배포 단계, 블록체인 네트워크상의 각 공급업체 에이전트에서 상기 작업 블록의 작업증명(Proofof-Work)의 확인 메커니즘을 사용하여 펌웨어 업데이트 계약 정보를 확인하고 펌웨어의 무결성을 확인하는 계약 무결성 검증 단계. 신규 펌웨어 업데이트 계약의 검증이 완료되면, 모든 검증 노드는 새로 작성된 계약의 검증 상태를 업데이트하고 검증 결과에 대해 다른 모든 노드에 공유하는 계약 검증결과 공유 단계 및 검증 노드에 의해 확인된 모든 펌웨어 업데이트 계약을 수집하여 모든 블록체인 네트워크의 작업 블록이 갱신되는 계약 원장 기록 단계를 포함하여 이루어질 수 있다.
또한, 본 발명의 상기 펌웨어 업데이트 실행 단계는 블록체인 네트워크상에서 신규 펌웨어 업데이트 계약이 검증된 후에 이루어지며, 블록체인에 기록된 신규 펌웨어 업데이트에 대한 알림을 IoT 에이전트와 연동하는 모든 IoT 게이트웨이로 전송하는 신규 펌웨어 정보 알림 단계, 신규 펌웨어 업데이트에 대한 알림을 수신한 IoT 게이트웨이가 신규 펌웨어 업데이트와 관련된 정보를 해당 IoT 게이트웨이가 관리하는 모든 IoT 장치의 정보로 확인하는 IoT 장치 정보 확인 단계, IoT 장치에서 신규 펌웨어 파일을 다운로드하기 위하여 풀(Pull) 방식으로 IoT 에이전트에 요청하는 IoT 장치 요청 전달 단계, IoT 게이트웨이로부터 펌웨어 업데이트 요청을 받고, IoT 게이트웨이로부터 수신된 펌웨어 업데이트 요청과 일치하는 펌웨어 업데이트 계약의 요구 사항을 확인하는 신규 펌웨어 계약 사항 확인 단계, 요청된 펌웨어 바이너리의 URI 정보를 IoT 게이트웨이로 전송하는 신규 펌웨어 URI 전송 단계, IoT 게이트웨이에서 요청된 펌웨어 바이너리를 다운로드하기 위한 요청을 펌웨어 배포 서버로 전송하는 신규 펌웨어 다운로드 요청 단계, 펌웨어 배포 서버에 저장된 URI의 위치에서 해당 IoT 게이트웨이로 펌웨어 바이너리 파일을 전송하는 신규 펌웨어 다운로드 단계, IoT 게이트웨이에서 수신한 펌웨어 파일을 확인하고 IoT 장치로 전달하는 신규 펌웨어 전송 단계 및 IoT 장치에서 상기 펌웨어에 대한 펌웨어 확인 및 업데이트를 하는 단계를 포함하여 이루어지는 것을 특징으로 할 수 있다.
전술한 본 발명은 블록체인 기반 IoT 기기 펌웨어 공급 시스템 및 이를 이용하는 펌웨어 업데이트 방법에 관한 것으로서, 본 발명은 분산 개념을 기반으로 구축되는 블록체인 네트워크를 이용하여 펌웨어 업데이트 프로세스를 진행함으로서, IoT 환경에 대한 중앙 집중식 네트워크 모델의 단점을 해소하는 효과가 있다.
또한, 본 발명은 합법적인 IoT 장치 공급업체가 배포한 새로운 펌웨어를 안전하게 확인하고 펌웨어를 최종 IoT 장치에 안전하게 배포하여 IoT 장치에 대한 해킹 등 보안 위협으로부터 실시간으로 보호할 수 있는 효과가 있다.
도 1은 본 발명의 일실시예에 따른 블록체인 기반 IoT 기기 펌웨어 공급 시스템의 구성을 보여주는 예시도이다.
도 2는 상기 도 1의 블록체인 기반 IoT 기기 펌웨어 공급 시스템의 구성을 블록화하여 확대한 예시도이다.
도 3은 본 발명의 일실시예에 따른 블록체인 기반 IoT 기기의 펌웨어 업데이트 방법을 도시한 흐름도이다.
본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
이하 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명하면 아래와 같다.
도 1은 본 발명의 일실시예에 따른 블록체인 기반 IoT 기기 펌웨어 공급 시스템의 구성을 보여주는 예시도이고, 도 2는 상기 도 1의 블록체인 기반 IoT 기기 펌웨어 공급 시스템의 구성을 좀 더 자세히 확장하여 블록화한 예시도이다.
본 발명의 상기 IoT 기기 펌웨어 공급 시스템은 하나 이상의 펌웨어 제조사에 의해 관리되고 운용되는 하나 이상의 펌웨어 배포 서버(100), 블록체인 네트워크상에서 노드를 구성하는 블록체인 네트워크 참여 노드로서 공급업체 에이전트(200)와 IoT 에이전트(300), 사물인터넷 네트워크를 구성하는 IoT 게이트웨이(400)와 IoT 장치(500)를 포함하는 구성 엔티티(entity)로 이루어진다.
먼저 상기 펌웨어 배포 서버(Vendor repositor)(100)는 펌웨어 바이너리(또는 펌웨어 이미지) 및 상기 펌웨어에 대한 관련 정보뿐 만아니라 정보 시스템의 프로그램이나 데이터 같은 각종 자원과 자원간의 세부 정보를 포함하여 관리하는 자원 관리 데이터베이스라 볼 수 있다.
이때 상기 펌웨어 배포 서버(100)는 공급업체 에이전트(200)를 이용하여 펌웨어를 푸쉬(PUSH) 방식으로 블록체인 네트워크에 계시하도록 블록체인 네트워크상의 하나 이상의 공급업체 에이전트와 연동하여 상기 펌웨어 관련 정보를 제공하는 서버이다. 상기 펌웨어 배포 서버(100)는 공급업체 에이전트(200)와 보안 채널을 통행 연결된다.
상기 공급업체 에이전트(200)는 상기 펌웨어 배포 서버(100)에서 제공하는 펌웨어에 대한 관련 정보를 제공받아 펌웨어 업데이트 계약을 생성하여 블록체인 네트워크의 다른 노드에 배포하는 노드로서의 역할을 하며, 각각의 공급업체 에이전트는 블록체인 네트워크상에서 배포되는 펌웨어 업데이트 계약에 대한 트랜잭션을 확인하여 검증을 수행하는 검증노드의 역할도 수행하는 노드이다.
즉 상기 공급업체 에이전트(200)는 펌웨어 배포 서버(100) 단과 연결되고 블록체인 네트워크상에서 노드(Nodes)를 구성하며, 컨센서스에 참여하는 마이너(채굴자, Miners)의 역할을 가진다. 그러므로 각각의 공급업체 에이전트(200)는 상기 블록체인 네트워크상의 검증 노드라 볼 수 있다.
그리고 상기 IoT 에이전트(300)는 IoT 장치(500)가 운영되는 사물인터네 네트워크와 연동하는 블록체인 노드로서, 상기 공급업체 에이전트(200)로부터 펌웨어 업데이트에 대한 트랜잭션의 계약 정보를 수신하고, 신규 펌웨어 업데이트 버전이 있는지 확인하여, 펌웨어 업데이트에 대한 사물인터넷상의 IoT 게이트웨이(400)와의 연결하는 역할을 수행하는 노드이다. 이에 상기 IoT 에이전트(300)는 하나 이상의 IoT 게이트웨이(400)와 보안 채널을 통하여 연결된다.
이때 상기 IoT 에이전트(300)는 채굴 및 검증 프로세스에는 참여하지 않으며, 블록체인 네트워크 내의 상기 공급업체 에이전트(200)에서 검증 완료된 펌웨어 업데이트 계약 정보 또는 펌웨어 업데이트 정보를 수신하고 IoT 에이전트(300)의 로컬 원장에 저장된 데이터와 이를 동기화하는 역할만을 수행한다.
또한, 본 발명에서의 IoT 게이트웨이(400)는 사물인터넷 네트워크에 연결된 IoT 장치(500)의 펌웨어 정보 및 관련 데이터를 수집하고 연결된 외부 네트워크와의 인터페이스를 제공하며, 상기 블록체인 네트워크의 IoT 에이전트(300)에 의한 펌웨어 업데이트 정보를 제공받아 IoT 장치(500)에 펌웨어 업데이트를 제공하는 장치이다. 예를 들어 IoT 게이트웨이(400)는 스마트 환경에서 WiFi 라우터와 같은 IoT 장치용 게이트웨이에서 블록체인 네트워크의 IoT 에이전트와 연동하는 프로그램이 추가로 동작될 수 있다.
상기 IoT 게이트웨이(400)는 등록된 IoT 장치(500)에 대한 제조업체, 모델 및 설치된 펌웨어 버전과 같은 정보를 저장하는 사물인터넷의 게이트웨이 역할을 수행하는 디바이스로서, 각각의 상기 IoT 게이트웨이는 상기 IoT 에이전트(400)에 저장되어 있는 지갑 주소(Wallet)에 저장되어 있는 공개 주소(또는 지갑 주소)로 식별된다.
이에 상기 IoT 게이트웨이(400)는 IoT 장치(500)의 펌웨어 정보와 IoT 에이전트에서 인식한 블록체인 네트워크의 수신된 계약의 펌웨어 업데이트 요구 사항과 일치하는 IoT 장치를 찾으면 펌웨어의 이진 파일을 다운로드하기 위한 자세한 정보를 관련 IoT 에이전트로 보낸다.
즉 IoT 게이트웨이(400)는 풀(Pull) 방식으로 IoT 에이전트(300)에게 펌웨어 업데이트 계약 사항의 정보를 요청하여, IoT 장치(500)의 펌웨어 정보와 블록체인 네트워크상에서 이루어진 계약 사항에 따른 펌웨어 정보를 비교하게 된다.
이에 따라 상기 IoT 게이트웨이(400)는 IoT 장치(500)의 펌웨어 정보와 IoT 에이전트(300)에서 인식한 블록체인 네트워크 내의 신규 펌웨어 업데이트 요구 사항과 일치하는 IoT 장치(500)를 찾고, 펌웨어 파일을 다운로드하기 위한 자세한 정보를 관련 IoT 에이전트(300)로 보내게 되는 것이다.
그리고 상기 IoT 장치(500)는 통신 기능이 내장되어 각종 사물인터넷에 환경에서 연결되어 동작하는 센서와 같은 임베디드 디바이스이다.
본 발명은 상술된 구성 엔티티(Entity)가 펌웨어의 효과적인 배포를 위한 목적에 따라 분산 펌웨어의 무결성을 확인하기 위하여 스마트계약(Smart Contract) 및 합의 메커니즘을 사용하는 블록체인 네트워크에서 동작되는 것이다.
도 3은 본 발명의 일실시예에 따른 블록체인 기반 IoT 기기의 펌웨어 업데이트 방법을 도시하는 흐름도이고, 이를 자세히 설명하면 다음과 같다.
이에 본 발명의 블록체인 기반 IoT 기기의 펌웨어 업데이트 방법은 펌웨어 업데이트 계약을 생성하고 펌웨어 파일을 블록체인 네트워크에서 검증하여 모든 블록체인 네트워크에서 신규 펌웨어에 대한 계약 사항을 공유하는 펌웨어 업데이트 계약 단계(S100)와 펌웨어 업데이트 계약이 모든 블록체인 원장에서 갱신되어 저장된 후 해당 계약을 기반으로 펌웨어 바이너리 배포가 실행되어 IoT 장치에서 업데이트되는 펌웨어 업데이트 실행 단계(S200)로 이루어진다.
먼저 상기 펌웨어 업데이트 계약 단계(S100)에서는 신규 펌웨어 저장 단계(S110), 계약 작성 요청 단계(S120), 계약 작성 및 정보 기록 단계(S130), 계약 요구 배포 단계(S140), 계약 무결성 검증 단계(S150). 계약 검증결과 공유 단계(S160) 및 모든 블록체인에 계약 원장 기록 단계(S170)를 포함하여 이루어질 수 있다.
상기 신규 펌웨어 저장 단계(S110)는 펌웨어 제조사가 사물인터넷에 동작하는 특정 IoT 장치에 대한 신규 펌웨어를 개발하고, 펌웨어 바이너리(또는 펌웨어 이미지) 및 펌웨어 버전과 관련된 신규 펌웨어 업데이트 정보를 펌웨어 배포 서버에 저장하는 단계이다.
상기 계약 작성 요청 단계(S120)는 신규 펌웨어 업데이트 정보가 펌웨어 배포 서버에 저장되면, 상기 펌웨어 배포 서버는 블록체인 네트워크상의 공급업체 에이전트에 펌웨어 업데이트 계약 작성을 발행하게 된다.
이는 상기 펌웨어 배포 서버에 상기 신규 펌웨어 업데이트 정보가 저장되면, 블록체인 네트워크상의 공급업체 에이전트에 펌웨어 업데이트를 위한 계약 작성을 요청하는 것으로서, 먼저 펌웨어 배포 서버는 개인 암호키로 서명하고 스마트계약을 사용하여 서명된 이진 파일을 블록체인에 푸시(Push)하여 추가하는 것을 의미한다. 이러한 스마트계약은 펌웨어 배포 서버의 네트워크 주소에서 시작된 펌웨어 업데이트만 허용된다.
이후 상기 계약 작성 및 정보 기록 단계(S130)는 공급업체 에이전트에서 신규 펌웨어 업데이트 계약 사항을 생성하고 새로 생성된 계약 내에 신규 펌웨어 정보를 기록하는 단계이다.
그러면 상기 계약 요구 배포 단계(S140)에서 공급업체 에이전트는 신규 생성된 펌웨어 업데이트 계약을 확인하고 검증을 요청하기 하기 위해 모든 블록체인 네트워크에 신규 생성된 펌웨어 업데이트 계약에 따른 작업 블록을 배포하게 된다.
상기 계약 무결성 검증 단계(S150)는 상기 계약 요구 배포 단계(S140)에서 배포된 펌웨어 업데이트 계약이 블록체인 네트워크에 배포 게시되면 합의 프로토콜을 통해 피어 검증 프로세스를 거치는 단계로서, 블록체인 네트워크상의 각 공급업체 에이전트에서 배포되는 작업 블록의 작업증명(Proofof-Work)의 확인 메커니즘을 사용하여 펌웨어 업데이트 계약 정보를 확인하고 펌웨어 이진 파일의 무결성을 확인하는 단계이다. 이는 블록체인 네트워크의 다른 모든 공급업체 에이전트들인 검증 노드를 통하여 새로 생성된 펌웨어 업데이트 계약을 증명하고 이를 확인하는 단계라 볼 수 있다.
상기 블록체인 네트워크에서 배포되는 작업 블록은, 블록사이즈와 신규 펌웨어 버전과 이전블록헤더해시와 머클루트(Merkle Root)를 가지는 블록헤더 및 정상적인 검증이 이루어진 횟수를 나타내는 검증카운터(verification counter, 4바이트), 머클루트를 계산하기 위한 트리구조로서 블록 데이터의 무결성을 보장하는 머클트리(Merkle tree), 검증작업에 대한 로그 정보를 저장하는 검증로그(verification log), 디바이스 모델명과 펌웨어 버전과 검증자(verifier)를 이루어지는 검증자 정보(information of verifier)(40바이트)를 포함하는 블록바디를 포함하여 구성될 수 있다.
이후 상기 계약 검증결과 공유 단계(S160)는 신규 펌웨어 업데이트 계약의 검증이 완료되면, 모든 검증 노드는 새로 작성된 계약의 검증 상태를 업데이트하고 검증 결과에 대해 다른 모든 노드에 공유하는 단계이다.
그리고 상기 모든 블록체인에 계약 원장 기록 단계(S170)는 상기 계약 검증결과 공유 단계(S160)를 통하여 모든 블록체인 네트워크상에 신구 펌웨어의 계약 사항이 공유되고 검증 상태가 업데이트되며, 검증 노드는 확인된 모든 펌웨어 업데이트 계약을 수집하여 이를 블록체인 원장에 저장하는 단계이다.
이는 모든 블록체인 네트워크상에서 검증 노드에 의해 확인된 모든 펌웨어 업데이트 계약을 수집하여 모든 블록체인 네트워크의 작업 블록이 갱신되는 단계라 볼 수 있다.
상술된 내용과 같이 펌웨어 업데이트 계약 사항과 검증 사항이 모든 블록체인 원장에 저장되며, 이후 해당 계약을 기반으로 펌웨어 바이너리 배포가 실행되는 펌웨어 업데이트 실행 단계(S200)사 수행될 수 있는 것이다.
이에 상기 펌웨어 업데이트 실행 단계(S200)에서는 신규 펌웨어 정보 알림 단계(S210), IoT 장치 정보 확인 단계(S220), IoT 장치 요청 전달 단계(S230), 신규 펌웨어 계약 사항 확인 단계(S240), 신규 펌웨어 URI 전송 단계(S250), 신규 펌웨어 다운로드 요청 단계(S260), 신규 펌웨어 다운로드 단계(S270), 신규 펌웨어 전송 단계(S280) 및 펌웨어 확인 및 업데이트 단계(S290)를 포함하여 이루어질 수 있다.
상기 신규 펌웨어 정보 알림 단계(S210)는 IoT 에이전트에서 새로운 펌웨어 업데이트 계약이 확인되고, 블록체인에 기록된 신규 펌웨어 업데이트에 대한 알림을 상기 IoT 에이전트와 연동하고 관리하는 모든 IoT 게이트웨이로 전송하는 단계이다.
상기 IoT 장치 정보 확인 단계(S220)는 상기 신규 펌웨어 알림 단계(S210)를 통하여 블록체인에 기록된 신규 펌웨어 업데이트에 대한 알림을 수신한 IoT 게이트웨이가 신규 펌웨어 업데이트와 관련된 정보를 해당 IoT 게이트웨이가 관리하는 모든 IoT 장치의 정보로 확인하는 단계이다.
이는 상기 IoT 게이트웨이가 수신한 신규 펌웨어 업데이트에 대한 알림에 따라 IoT 에이전트에게 펌웨어 업데이트 계약 사항의 정보를 요청하고, 신규 펌웨어 업데이트에 계약에 해당하는 IoT 장치의 펌웨어 정보와 블록체인 네트워크상에서 이루어진 계약 사항에 따른 펌웨어 정보를 비교하는 단계이다. 이는 IoT 장치의 펌웨어 정보가 구 버전이 되고, 신규 펌웨어 업데이트에 대한 알림에 따라 신규 펌웨어 정보가 비교되는 과정이라 볼 수 있다.
이에 따라 상기 IoT 장치 요청 전달 단계(S230)는 상기 IoT 게이트웨이에서 IoT 장치의 펌웨어 정보와 IoT 에이전트에서 인식한 블록체인 네트워크 내의 신규 펌웨어 업데이트 요구 사항과 일치하는 IoT 장치를 찾고, 펌웨어 파일을 다운로드하기 위한 자세한 정보를 관련 IoT 에이전트로 풀(Pull) 방식으로 전송 요청하는 단계이다.
이후 상기 신규 펌웨어 계약 사항 확인 단계(S240)에서는 IoT 에이전트에서 IoT 게이트웨이로부터 펌웨어 업데이트 요청을 받고, IoT 게이트웨이로부터 수신된 펌웨어 업데이트 요청과 일치하는 펌웨어 업데이트 계약의 요구 사항을 확인하는 단계이다.
상기 신규 펌웨어 URI 전송 단계(S250)는 블록체인 노드인 IoT 에이전트에서 펌웨어 업데이트 요청과 일치하는 펌웨어 업데이트 계약 요구 사항을 확인하고 요청된 펌웨어 바이너리의 URI 정보를 IoT 게이트웨이로 보내는 단계이다.
상기 신규 펌웨어 다운로드 요청 단계(S260)는 상기 IoT 게이트웨이가 펌웨어 바이너리의 URI를 수신한 후, 상기 IoT 게이트웨이에서 요청된 펌웨어 바이너리를 다운로드하기 위한 요청을 펌웨어 배포 서버로 보내는 단계이다.
상기 신규 펌웨어 다운로드 단계(S270)는 펌웨어 배포 서버에 저장된 URI의 위치에서 해당 IoT 게이트웨이가 보낸 요청을 수신하고, 요청된 펌웨어 바이너리 파일을 요청하는 IoT 게이트웨이로 보내는 단계이다.
이후 상기 신규 펌웨어 확인 및 전송 단계(S280)는 상기 IoT 게이트웨이가 펌웨어의 이진 파일 다운로드를 완료 한 후, IoT 게이트웨이는 펌웨어 이진 파일을 확인하고 이를 관련 IoT 장치로 전달하는 단계이다.
상기 펌웨어 업데이트 단계(S290)는 최종적으로 상기 IoT 장치에서 상기 펌웨어를 확인하고 업데이트하는 단계이다.
결론적으로 본 발명은 사물인터넷 장치(IoT Device)가 IoT 게이트웨이를 통하여 분산 개념을 기반으로 구축되는 블록체인 네트워크에 연결되고, 블록체인 노드에 의하여 검증된 펌웨어만 확인하고 이를 IoT 장치에 공급되도록 하는 일련의 프레임워크를 기반으로 하는 블록체인 기반 IoT 기기 펌웨어 공급 시스템 및 이를 이용하는 펌웨어 업데이트 방법을 제공하는 것임을 알 수 있다.
전술한 바와 같이 본 발명의 상세한 설명에서는 바람직한 실시예들에 관하여 설명하였지만, 본 발명의 기술분야에서 통상의 지식을 가진 사람이라면 하기의 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음은 이해할 수 있을 것이다.
100: 펌웨어 배포 서버 200: 펌웨어 배포 서버
300: IoT 에이전트 400: IoT 게이트웨이
500: IoT 장치

Claims (5)

  1. 삭제
  2. 삭제
  3. 블록체인 기반 IoT 기기 펌웨어 공급 시스템을 이용하는 펌웨어 업데이트 방법에 있어서,
    펌웨어 업데이트 계약을 생성하고 펌웨어 파일을 블록체인 네트워크에서 검증하여 모든 블록체인 네트워크에서 신규 펌웨어에 대한 계약 사항을 공유하는 펌웨어 업데이트 계약 단계와
    펌웨어 업데이트 계약이 모든 블록체인 원장에 저장된 후 해당 계약을 기반으로 펌웨어 바이너리 배포가 실행되어 IoT 장치에서 업데이트되는 펌웨어 업데이트 실행 단계를 포함하고,
    상기 펌웨어 업데이트 계약 단계는,
    신규 펌웨어 업데이트 정보를 펌웨어 배포 서버에 저장되는 신규 펌웨어 저장 단계,
    상기 펌웨어 배포 서버는 블록체인 네트워크상의 공급업체 에이전트에 펌웨어 업데이트 계약 작성을 발행하는 계약 작성 요청 단계,
    공급업체 에이전트에서 신규 펌웨어 업데이트 계약 사항을 생성하고 새로 생성된 계약 내에 신규 펌웨어 정보를 기록하는 계약 작성 및 정보 기록 단계,
    공급업체 에이전트는 신규 생성된 펌웨어 업데이트 계약을 확인하고 모든 블록체인 네트워크상의 검증 노드에 검증을 요청하기 하기 위해 작업 블록을 배포하는 계약 요구 배포 단계,
    블록체인 네트워크상의 각 공급업체 에이전트에서 상기 작업 블록의 작업증명(Proofof-Work)의 확인 메커니즘을 사용하여 펌웨어 업데이트 계약 정보를 확인하고 펌웨어의 무결성을 확인하는 계약 무결성 검증 단계,
    신규 펌웨어 업데이트 계약의 검증이 완료되면, 모든 검증 노드는 새로 작성된 계약의 검증 상태를 업데이트하고 검증 결과에 대해 다른 모든 노드에 공유하는 계약 검증결과 공유 단계 및
    검증 노드에 의해 확인된 모든 펌웨어 업데이트 계약을 수집하여 모든 블록체인 네트워크의 작업 블록이 갱신되는 계약 원장 기록 단계를 포함하고,
    상기 블록체인 네트워크에서 배포되는 상기 작업 블록은, 블록사이즈와 신규 펌웨어 버전과 이전블록헤더해시와 머클루트(Merkle Root)를 가지는 블록헤더 및 정상적인 검증이 이루어진 횟수를 나타내는 검증카운터(verification counter, 4바이트), 머클루트를 계산하기 위한 트리구조로서 블록 데이터의 무결성을 보장하는 머클트리(Merkle tree), 검증작업에 대한 로그 정보를 저장하는 검증로그(verification log), 디바이스 모델명과 펌웨어 버전과 검증자(verifier)를 이루어지는 검증자 정보(information of verifier)(40바이트)를 포함하는 블록바디를 포함하여 이루어지고,
    상기 펌웨어 업데이트 실행 단계는 블록체인 네트워크상에서 신규 펌웨어 업데이트 계약이 검증된 후에 이루어지며,
    상기 펌웨어 업데이트 실행 단계는,
    블록체인에 기록된 신규 펌웨어 업데이트에 대한 알림을 IoT 에이전트와 연동하는 모든 IoT 게이트웨이로 전송하는 신규 펌웨어 정보 알림 단계,
    신규 펌웨어 업데이트에 대한 알림을 수신한 IoT 게이트웨이가 신규 펌웨어 업데이트와 관련된 정보를 해당 IoT 게이트웨이가 관리하는 모든 IoT 장치의 정보로 확인하는 IoT 장치 정보 확인 단계,
    IoT 장치에서 신규 펌웨어 파일을 다운로드하기 위하여 풀(Pull) 방식으로 IoT 에이전트에 요청하는 IoT 장치 요청 전달 단계,
    IoT 게이트웨이로부터 펌웨어 업데이트 요청을 받고, IoT 게이트웨이로부터 수신된 펌웨어 업데이트 요청과 일치하는 펌웨어 업데이트 계약의 요구 사항을 확인하는 신규 펌웨어 계약 사항 확인 단계,
    요청된 펌웨어 바이너리의 URI 정보를 IoT 게이트웨이로 전송하는 신규 펌웨어 URI 전송 단계,
    IoT 게이트웨이에서 요청된 펌웨어 바이너리를 다운로드하기 위한 요청을 펌웨어 배포 서버로 전송하는 신규 펌웨어 다운로드 요청 단계,
    펌웨어 배포 서버에 저장된 URI의 위치에서 해당 IoT 게이트웨이로 펌웨어 바이너리 파일을 전송하는 신규 펌웨어 다운로드 단계,
    IoT 게이트웨이에서 수신한 펌웨어 파일을 확인하고 IoT 장치로 전달하는 신규 펌웨어 전송 단계 및 IoT 장치에서 상기 펌웨어에 대한 펌웨어 확인 및 업데이트를 하는 단계를 포함하여 이루어지는 것을 특징으로 하는 블록체인 기반 IoT 기기 펌웨어 업데이트 방법.
  4. 삭제
  5. 삭제
KR1020210048413A 2021-04-14 2021-04-14 블록체인 기반 IoT 기기 펌웨어 공급 시스템 및 이를 이용하는 펌웨어 업데이트 방법 KR102564488B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210048413A KR102564488B1 (ko) 2021-04-14 2021-04-14 블록체인 기반 IoT 기기 펌웨어 공급 시스템 및 이를 이용하는 펌웨어 업데이트 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210048413A KR102564488B1 (ko) 2021-04-14 2021-04-14 블록체인 기반 IoT 기기 펌웨어 공급 시스템 및 이를 이용하는 펌웨어 업데이트 방법

Publications (2)

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

Family

ID=83805372

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210048413A KR102564488B1 (ko) 2021-04-14 2021-04-14 블록체인 기반 IoT 기기 펌웨어 공급 시스템 및 이를 이용하는 펌웨어 업데이트 방법

Country Status (1)

Country Link
KR (1) KR102564488B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102567514B1 (ko) * 2022-12-16 2023-08-23 부산대학교 산학협력단 블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 방법 및 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101796690B1 (ko) * 2016-06-28 2017-11-10 상명대학교 천안산학협력단 블록체인 기반의 펌웨어 무결성 검증 시스템 및 그 방법
KR101992981B1 (ko) * 2018-12-07 2019-06-25 한전케이디엔 주식회사 IoT 허브와 블록체인을 활용한 IoT 플랫폼 시스템
KR102146914B1 (ko) * 2019-04-23 2020-08-21 경기대학교 산학협력단 블록체인 기반 IoT 기기 펌웨어 배포 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101796690B1 (ko) * 2016-06-28 2017-11-10 상명대학교 천안산학협력단 블록체인 기반의 펌웨어 무결성 검증 시스템 및 그 방법
KR101992981B1 (ko) * 2018-12-07 2019-06-25 한전케이디엔 주식회사 IoT 허브와 블록체인을 활용한 IoT 플랫폼 시스템
KR102146914B1 (ko) * 2019-04-23 2020-08-21 경기대학교 산학협력단 블록체인 기반 IoT 기기 펌웨어 배포 시스템

Also Published As

Publication number Publication date
KR20220142086A (ko) 2022-10-21

Similar Documents

Publication Publication Date Title
US11606677B2 (en) Method for sharing application between terminals, and terminal
US11943376B1 (en) Template based credential provisioning
Lee et al. Blockchain-based secure firmware update for embedded devices in an Internet of Things environment
CN110933163B (zh) 区块链合约部署方法、装置、设备以及存储介质
KR101353725B1 (ko) 무선 네트워크내의 보안 키 관리 방법 및 시스템
JP5096680B2 (ja) ファームウェアコンポーネントのステータスの発行およびファームウェアコンポーネントのアップデート
US20200287726A1 (en) Remote device control
KR102618665B1 (ko) 블록체인을 사용한 버전 이력 관리
US20200285457A1 (en) Asset update service
WO2022121538A1 (zh) 基于区块链的数据同步方法、系统及相关设备
CN110855760A (zh) 一种基于区块链的分布式安全存储系统部署方法
CN111258599A (zh) 固件升级方法、系统和计算机可读存储介质
Kolehmainen Secure firmware updates for iot: A survey
US11876676B2 (en) Network node firmware update
KR102564488B1 (ko) 블록체인 기반 IoT 기기 펌웨어 공급 시스템 및 이를 이용하는 펌웨어 업데이트 방법
CN109120419B (zh) 光网络单元onu版本的升级方法、装置及存储介质
JP2022531040A (ja) データ収集方法、データ収集装置、データ収集デバイスおよびコンピュータ可読記憶媒体
JP7143744B2 (ja) 機器統合システム及び更新管理システム
KR20120111852A (ko) 사물통신에서 원격 소프트웨어를 분리 업그레이드하는 방법 및 장치
CN113497720A (zh) 一种固件服务器、电力物联代理网关及固件远程升级方法
KR101901802B1 (ko) IoT 기반의 다운로드 OTA 서비스 시스템 및 방법
KR101054079B1 (ko) 홈 네트워크 서비스에 사용되는 단말기 소프트웨어의업그레이드 시스템 및 그 방법
JP2017500642A (ja) ポリシー制御機能の管理メカニズムのためのシステム及び方法
CN112182009A (zh) 区块链的数据更新方法及装置、可读存储介质
CN114499835B (zh) 联盟链中的新增节点配置方法及系统

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