KR102437864B1 - 펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법 - Google Patents

펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법 Download PDF

Info

Publication number
KR102437864B1
KR102437864B1 KR1020210186743A KR20210186743A KR102437864B1 KR 102437864 B1 KR102437864 B1 KR 102437864B1 KR 1020210186743 A KR1020210186743 A KR 1020210186743A KR 20210186743 A KR20210186743 A KR 20210186743A KR 102437864 B1 KR102437864 B1 KR 102437864B1
Authority
KR
South Korea
Prior art keywords
firmware
data
firmware data
mac
value
Prior art date
Application number
KR1020210186743A
Other languages
English (en)
Inventor
방성철
신영규
김승겸
김윤구
고재찬
이상규
Original Assignee
주식회사 유니온플레이스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 유니온플레이스 filed Critical 주식회사 유니온플레이스
Priority to KR1020210186743A priority Critical patent/KR102437864B1/ko
Application granted granted Critical
Publication of KR102437864B1 publication Critical patent/KR102437864B1/ko
Priority to PCT/KR2022/015323 priority patent/WO2023120906A1/ko
Priority to US18/127,340 priority patent/US20230236820A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • 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
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Information Transfer Between Computers (AREA)
  • Computing Systems (AREA)

Abstract

적어도 제1 장치 및 제2 장치를 포함하는 멀티캐스트 그룹 내의 상기 제1 장치에 의해서 수행되며, 복수의 펌웨어 데이터를 포함하는 펌웨어를 수신하는 방법으로서, (a) 상기 복수의 펌웨어 데이터에 대한 제1 메타 정보를 상기 제2 장치로부터 수신하는 단계; (b) 상기 제1 메타 정보를 기초로, 상기 복수의 펌웨어 데이터 중 상기 제1 장치에 상기 펌웨어를 적용하기 위해서 사용될 하나 이상의 펌웨어 데이터에 대한 제2 메타 정보를 생성하는 단계; 및 (c) 상기 제2 메타 정보를 기초로, 상기 펌웨어를 제공하는 장치 또는 상기 제2 장치로부터 상기 하나 이상의 펌웨어 데이터를 수신하는 단계를 포함하고, 상기 제1 메타 정보는, 상기 복수의 펌웨어 데이터 각각에 대해서, 버전 정보 및 분할 정보를 포함하는 이력 정보를 적어도 포함하고, 상기 제2 메타 정보는 상기 하나 이상의 펌웨어 데이터 각각에 대해서, 상기 이력 정보를 적어도 포함하는 것인 방법이 제공된다.

Description

펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법{METHOD OF RECEIVING FIRMWARE AND METHOD OF TRANSMITTING FIRMWARE}
본 개시(開示)는 멀티캐스트 그룹 내의 장치가 펌웨어를 수신하는 방법 및 펌웨어를 제공하는 장치가 멀티캐스트 그룹 내의 복수의 장치로 펌웨어를 전송하는 방법에 관한 것이다.
다양한 장치들이 네트워크에 연결될 수 있다. 이하 본 명세서에서, 통신 기능 및 컴퓨팅 기능을 구비한 장치를 간단히 "컴퓨팅 장치" 또는 "장치"라고 지칭한다.
장치의 펌웨어를 업데이트하기 위해서, 예컨대 FOTA(Firmware over the air) 규격이 사용될 수 있다. FOTA를 이용하면, 장치는 무선 네트워크를 통해서 장치의 펌웨어를 다운로드하고 업데이트할 수 있다.
한편 복수의 장치는 멀티캐스트 그룹을 구성할 수 있다. 데이터를 전송하는 장치(이하 "송신기"라고도 지칭됨)는 멀티캐스트 그룹 내의 복수의 장치로 데이터를 멀티캐스트 방식을 이용하여 전송할 수 있다. 멀티캐스트 방식에는, 멀티캐스트 그룹에 대해서 설정되는 멀티캐스트 주소가 이용된다.
멀티캐스트 그룹 내의 복수의 장치는 펌웨어를 업데이트하기 위해서 펌웨어를 제공하는 장치와 순차적으로 유니캐스트 방식을 이용하여 통신한다. 예컨대, 멀티캐스트 그룹 내에 제1 장치 내지 제n 장치(n은 2이상 자연수)가 존재하는 경우, 펌웨어를 제공하는 장치는, 예컨대 제1 장치에 펌웨어를 제공한 후 다음 장치에 펌웨어를 제공하는 방식으로, 제1 장치 내지 제n 장치에 순차적으로 유니캐스트 방식을 이용하여 펌웨어를 제공한다. 특히 멀티캐스트 그룹 내의 복수의 장치가 실질적으로 동일한 구성을 가지는 경우, 즉 펌웨어가 동일한 경우에도, 복수의 장치는 펌웨어를 업데이트하기 위해서 펌웨어를 제공하는 장치와 순차적으로 유니캐스트 방식을 이용하여 통신한다. 따라서, 멀티캐스트 그룹 내의 복수의 장치가 펌웨어를 업데이트하기까지는 많은 시간이 걸린다. 또한 멀티캐스트 네트워크 내의 통신 부하도 증가한다.
이를 개선하기 위해서, 주식회사 주빅스에 의해서 출원되고 등록된 한국등록특허 제10-1757417호(특허문헌 1)에 따르면, 브로드캐스트 방식과 유니캐스트 방식을 함께 이용하는 펌웨어 업데이트 방법이 개시된다.
한국등록특허 제10-1757417호에 따르면, 게이트웨이는 상위 장치(즉, 본원의 펌웨어를 제공하는 장치)로부터 펌웨어를 수신하고, 펌웨어를 복수의 이미지로 분할하고, 복수의 이미지 각각에 시퀀스 넘버를 부여하고, 복수의 이미지를 복수의 장치로 브로드캐스트 방식을 이용하여 전송한다. 또한 복수의 장치 중 하나 이상의 장치가 복수의 이미지 중 하나 이상의 이미지를 수신하지 못한 경우, 게이트웨이는 시퀀스 넘버를 기초로 하나 이상의 장치에 의해 수신되지 못한 하나 이상의 이미지를 하나 이상의 장치로 유니캐스트 방식을 이용하여 전송한다.
그러나 한국등록특허 제10-1757417호에 따르면, 펌웨어를 제공하는 장치와는 별도로 게이트웨이가 추가적으로 이용되며, 게이트웨이는 게이트웨이에 직접적으로 연결된 한정된 구역 내의 복수의 장치에게만 펌웨어를 제공할 수 있다. 따라서, 적용 대상이 제한된다.
또한 한국등록특허 제10-1757417호에 따르면, 복수의 장치에 브로드캐스트 방식을 이용하여 펌웨어가 전송되므로, 보안이 취약하다. 보다 구체적으로, 한국등록특허 제10-1757417호에 따르면, 펌웨어의 체크섬을 이용하여 펌웨어가 정상적으로 전송되는 지를 확인한다. 그러나 복수의 장치 중 어느 하나의 장치가 예컨대 해킹과 같은 공격에 의해서 비정상적으로 동작하고, 비정상적으로 동작하는 장치가 정상적인 펌웨어 대신에 위변조(tamper)된 펌웨어를 복수의 장치 중의 다른 장치에게로 브로드캐스트 방식을 이용하여 전송하는 경우라도, 복수의 장치 각각은 펌웨어가 위변조되었는지를 확인하기 어렵다.
또한, 한국등록특허 제10-1757417호에 따르면 복수의 장치 중 어느 하나의 장치가 펌웨어를 수신하지 못한 경우, 다시 게이트웨이로부터 유니캐스트 방식을 이용하여 펌웨어를 수신하여야 한다. 따라서, 멀티캐스트 네트워크 내의 통신 부하도 증가한다.
예컨대, 복수의 장치 중 어느 하나의 장치가 예컨대 전원이 꺼져 있거나 대기 상태인 경우 또는 멀티캐스트 그룹에 신규 장치가 조인(join)하는 경우, 해당 장치는 게이트웨이로부터 전달되는 펌웨어를 수신하지 못한다.
따라서, 해당 장치는 다시 게이트웨이로부터 유니캐스트 방식을 이용하여 펌웨어를 전체적으로 다시 수신하여야 한다.
1. 한국등록특허 제10-1757417호.
본원에서 설명되는 기술의 목적은 펌웨어의 이력 정보를 기초로 펌웨어를 제공하는 장치로부터 또는 주변의 장치로부터 펌웨어의 적어도 일부를 획득할 수 있고, MAC 및 MAC 연쇄값을 이용하여, 펌웨어 데이터가 위변조되었는지 및 펌웨어 데이터의 순서를 여부를 용이하게 확인할 수 있고, 펌웨어 데이터 중 미수신된 데이터에 대해서, 유니캐스트 방식 또는 멀티캐스트 방식을 이용하여 다시 수신할 수 있는 것인 펌웨어를 수신하는 방법을 제공하는 데 있다.
본원에서 설명되는 기술의 다른 목적은 멀티캐스트 방식을 이용하여 펌웨어를 전송하더라도 MAC 및 MAC 연쇄값을 이용하여 펌웨어의 위변조를 방지할 수 있도록 전송할 수 있고, 펌웨어의 이력 정보를 이용하는 것에 의해서, 펌웨어를 수신하는 장치에서 이력 정보를 기초로 펌웨어를 적용하기 위해서 필요한 데이터만을 전송할 수 있으므로, 통신 부하를 최소화할 수 있는 것인 펌웨어를 전송하는 방법을 제공하는 데 있다.
상기 기술적 과제를 달성하기 위하여, 본원에서 설명되는 기술의 일 형태에 따르면, 적어도 제1 장치 및 제2 장치를 포함하는 멀티캐스트 그룹 내의 상기 제1 장치에 의해서 수행되며, 복수의 펌웨어 데이터를 포함하는 펌웨어를 수신하는 방법으로서, (a) 상기 복수의 펌웨어 데이터에 대한 제1 메타 정보를 상기 제2 장치로부터 수신하는 단계; (b) 상기 제1 메타 정보를 기초로, 상기 복수의 펌웨어 데이터 중 상기 제1 장치에 상기 펌웨어를 적용하기 위해서 사용될 하나 이상의 펌웨어 데이터에 대한 제2 메타 정보를 생성하는 단계; 및 (c) 상기 제2 메타 정보를 기초로, 상기 펌웨어를 제공하는 장치 또는 상기 제2 장치로부터 상기 하나 이상의 펌웨어 데이터를 수신하는 단계를 포함하고, 상기 제1 메타 정보는, 상기 복수의 펌웨어 데이터 각각에 대해서, 버전 정보 및 분할 정보를 포함하는 이력 정보를 적어도 포함하고, 상기 제2 메타 정보는 상기 하나 이상의 펌웨어 데이터 각각에 대해서, 상기 이력 정보를 적어도 포함하는 것인 방법이 제공된다.
본원에서 설명되는 기술의 다른 일 형태에 따르면, 펌웨어를 제공하는 장치에 의해서 수행되며, 펌웨어를 멀티캐스트 그룹 내의 복수의 장치로 전송하는 방법으로서,
(a) 상기 펌웨어의 제1 펌웨어 데이터 내지 제n 펌웨어 데이터(단 n은 2이상의 자연수)에 각각 대응하는 제1 데이터 내지 제n 데이터를 상기 멀티캐스트 그룹 내의 상기 복수의 장치로 멀티캐스트 방식을 이용하여 전송하는 단계; (b) 상기 제1 데이터 내지 제n 데이터를 저장하는 단계; (c) 상기 멀티캐스트 그룹 내의 하나 이상의 장치로부터 상기 제1 데이터 내지 제n 데이터 중 제i 데이터(단 i는 1이상 n이하의 자연수)에 대한 전송 요청을 수신하는 단계; 및 (d) 상기 제i 데이터를 멀티캐스트 방식 또는 유니캐스트 방식을 이용하여 상기 하나 이상의 장치로 전송하는 단계를 포함하고, 상기 제i 데이터는, 제i 펌웨어 데이터의 버전 정보 및 분할 정보를 포함하는 이력 정보, MAC 연쇄값, 길이 정보, 상기 제i 펌웨어 데이터 및 MAC을 포함하고, 상기 제i 펌웨어 데이터의 상기 MAC은, 상기 제i 펌웨어 데이터의 상기 MAC 연쇄값, 상기 길이 정보 및 상기 제i 펌웨어 데이터를 제1 MAC 생성 알고리즘을 이용하여 연산하여 생성되고, 상기 제i 데이터의 상기 MAC 연쇄값은, 상기 i가 1이 아닌 경우, 제(i-1) 펌웨어 데이터의 MAC 연쇄값과 상기 제i 펌웨어 데이터를 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되는 것인 방법
이 제공된다.
본원에서 설명되는 기술에 따르면, 펌웨어의 이력 정보를 기초로 펌웨어를 제공하는 장치로부터 또는 주변의 장치로부터 펌웨어의 적어도 일부를 획득할 수 있다. 또한 MAC 및 MAC 연쇄값을 이용하여, 펌웨어 데이터가 위변조되었는지 및 펌웨어 데이터의 순서를 여부를 용이하게 확인할 수 있다. 또한 펌웨어 데이터 중 미수신된 데이터에 대해서, 유니캐스트 방식 또는 멀티캐스트 방식을 이용하여 다시 수신할 수 있다.
또한 본원에서 설명되는 기술에 따르면, 멀티캐스트 방식을 이용하여 펌웨어를 전송하더라도 MAC 및 MAC 연쇄값을 이용하여 펌웨어의 위변조를 방지할 수 있도록 전송할 수 있다. 또한 펌웨어의 이력 정보를 이용하는 것에 의해서, 펌웨어를 수신하는 장치에서 이력 정보를 기초로 펌웨어를 적용하기 위해서 필요한 데이터만을 전송할 수 있으므로, 통신 부하를 최소화할 수 있다.
도 1은 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법의 예시적인 흐름도.
도 2는 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법을 실행하는 장치의 예시적인 구성을 나타내는 도면.
도 3은 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법이 적용되는 시스템 환경의 예를 나타내는 도면.
도 4는 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법에 있어서, 제1 메타 정보의 예시적인 구성을 나타내는 도면.
도 5는 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법에 있어서, 제2 메타 정보의 예시적인 구성을 나타내는 도면.
도 6은 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법에 있어서, 펌웨어 데이터를 수신하는 단계의 예시적인 흐름도.
도 7은 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법에 있어서, 제i 데이터의 예시적인 구성을 나타내는 도면.
도 8은 본원에서 설명되는 기술의 제2 실시예에 따른 펌웨어를 전송하는 방법의 예시적인 흐름도.
이하, 본원에서 설명되는 기술에 따른 펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법의 실시예를 첨부한 도면을 참조로 보다 구체적으로 설명한다. 한편 본원에서 설명되는 기술의 실시예를 설명하기 위한 도면들에서, 설명의 편의를 위해서 실제 구성 중 일부만을 도시하거나 일부를 생략하여 도시하거나 변형하여 도시하거나 또는 축척이 다르게 도시될 수 있다.
<제1 실시예>
도 1은 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법의 예시적인 흐름도이고, 도 2는 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법을 실행하는 장치의 예시적인 구성을 나타내는 도면이고, 도 3은 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법이 적용되는 시스템 환경의 예를 나타내는 도면이다.
우선 도 2를 참조하여, 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법을 실행하는 장치(100)를 설명한다.
도 2를 참조하면, 펌웨어를 수신하는 방법을 실행하는 장치(100)는, 통신 인터페이스(110)와, 연산 처리부(130)와, 저장부(150)를 포함할 수 있다.
장치(100)는 예컨대 데이터 획득 기능과 컴퓨팅 기능과 통신 기능을 구비한 컴퓨팅 장치를 이용하여 구현될 수 있다. 예컨대, 장치(100)는, 멀티캐스트 그룹 내에 배치되는 센서와 같은 컴퓨팅 장치를 포함할 수 있다.
통신 인터페이스(110)는 유무선 통신 방식을 기초로 하는 통신 인터페이스이다. 통신 인터페이스(110)는 통신 칩과 같은 반도체 소자에 의해서 구현될 수 있다. 예컨대 통신 인터페이스(110)는 유니캐스트 방식 또는 멀티캐스트 방식을 이용하여 데이터를 수신할 수 있다.
연산 처리부(130)는 예컨대 CPU(Central Processing Unit), ASIC(Application Specific Integrated Circuit)과 같은 반도체 소자에 의해서 구현될 수 있다.
연산 처리부(130)는 예컨대 복수의 반도체 소자를 이용하여 구현될 수 있다.
예컨대, 연산 처리부(130)는 제어 기능을 수행하는 제1 반도체 소자, 데이터의 인코딩/디코딩을 수행하는 제2 반도체 소자 및 데이터의 암호화/복호화를 수행하는 제3 반도체 소자를 이용하여 구현될 수도 있다.
연산 처리부(130)는 후술하는 제1 실시예에 따른 펌웨어를 수신하는 방법을 실행하며, 제1 실시예에 따른 펌웨어를 수신하는 방법을 실행하기 위해서 통신 인터페이스(110)와 저장부(150)를 제어할 수도 있다.
저장부(150)는 데이터를 저장한다. 저장부(150)는 예컨대 반도체 메모리와 같은 반도체 소자에 의해서 구현될 수 있다. 저장부(150)에는 제1 실시예에 따른 펌웨어를 수신하는 방법을 실행하는 도중에 사용되거나 생성되는 정보가 저장될 수 있다.
다음으로, 도 3을 참조하여, 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법이 적용되는 시스템 환경의 예를 설명한다.
도 3을 참조하면, 복수의 장치, 즉 장치(100-1) 내지 장치(100-x)(단 x는 2이상의 정수)가 네트워크 내에 배치된다.
장치(100-1) 내지 장치(100-x) 각각은, 장치(100)의 통신 인터페이스(110)와, 연산 처리부(130)와, 저장부(150)에 대응하는 구성을 공통적으로 포함한다.
장치(100-1) 내지 장치(100-x) 중 적어도 하나는 후술하는 제1 메타 정보를 저장할 수 있다. 장치(100-1) 내지 장치(100-x) 중 적어도 하나는 후술하는 제i 데이터를 더 저장할 수도 있다.
이하 장치(100-1) 내지 장치(100-x) 중 후술하는 제1 메타 정보를 저장하는 장치를 "제2 장치"라고도 지칭한다.
이하 장치(100-1) 내지 장치(100-x) 중 멀티캐스트 그룹 내에 신규로 조인하거나, 전원이 꺼져 있다가 켜진 장치, 대기 상태에서 정상 상태로 변경된 장치를 "제1 장치" 또는 단순히 "장치(100)"라고도 지칭한다.
펌웨어를 제공하는 장치(200)는 복수의 장치, 즉 장치(100-1) 내지 장치(100-x)로 펌웨어를 전송하는 장치이다. 펌웨어를 제공하는 장치(200)는 이하 "장치(200)"이라고도 지칭된다. 장치(200)는, 통신 인터페이스(미도시)와, 연산 처리부(미도시)와, 저장부(미도시)를 포함하는 컴퓨팅 장치에 의해서 구현될 수 있다. 장치(200)의 상세한 구성에 대해서는 장치(100)에 대한 설명을 참조할 수 있으므로 생략한다.
장치(100-1) 내지 장치(100-x)는 멀티캐스트 그룹(300)을 구성한다.
예컨대 장치(200)는, 멀티캐스트 그룹(300)에 대해서 설정되는 멀티캐스트 주소를 이용하여, 즉 멀티캐스트 방식을 이용하여 데이터를 장치(100-1) 내지 장치(100-x)에 전송할 수 있다. 또한, 장치(200)는 복수의 장치 중 어느 하나, 예컨대 장치(100-1)에 설정된 주소를 이용하여, 즉 유니캐스트 방식을 이용하여 데이터를 장치(100-1)에 전송할 수도 있다.
라우터(400)는 장치(200)와 멀티캐스트 그룹(300) 사이에 배치되며, 데이터를 장치(100-1) 내지 장치(100-x)로 전송한다.
이하, 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법을 구체적으로 설명한다.
도 1을 참조하면, 장치(100)(즉 제1 장치)는 복수의 펌웨어 데이터에 대한 제1 메타 정보를 제2 장치로부터 수신한다(단계 S110).
도 4는 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법에 있어서, 제1 메타 정보의 예시적인 구성을 나타내는 도면이다.
도 4를 참조하면, 제1 메타 정보는, 복수의 펌웨어 데이터 각각에 대해서, 버전 정보 및 분할 정보를 포함하는 이력 정보를 적어도 포함한다.
버전 정보는 예컨대 펌웨어의 버전 별로 설정된다.
예컨대 도 4를 참조하면, 펌웨어는 버전 1.0에 대해서 3개의 펌웨어 데이터가 존재하고, 버전 2.0에 대해서 2개의 펌웨어 데이터가 존재하고, 버전 3.0에 대해서 4개의 펌웨어 데이터가 존재하는 것을 나타낸다.
바람직하게는, 버전 2.0에 해당하는 2개의 펌웨어 데이터는 버전 1.0의 펌웨어(즉 3개의 데이터)를 기초로 버전 2.0의 펌웨어를 구성하기 위한 추가적인 데이터를 나타낼 수 있고, 버전 3.0에 해당하는 4개의 펌웨어 데이터는 버전 2.0의 펌웨어(즉 3개의 데이터)를 기초로 버전 3.0의 펌웨어를 구성하기 위한 추가적인 데이터를 나타낼 수 있다. 따라서, 예컨대 장치(100) 내에 이미 버전 1.0의 펌웨어가 저장되고 버전 3.0의 펌웨어로 업데이트하는 경우, 장치(100)는 버전 1.0의 펌웨어로부터 버전 2.0의 펌웨어를 구성하기 위한 추가적인 데이터 및 버전 2.0의 펌웨어로부터 버전 3.0의 펌웨어를 구성하기 위한 추가적인 데이터만을 수신한 후, 버전 1.0의 펌웨어를 버전 3.0의 펌웨어로 업데이트할 수 있다.
또는 버전 2.0에 해당하는 2개의 펌웨어 데이터는 그 자체적으로 버전 2.0의 펌웨어를 구성할 수도 있고, 버전 3.0에 해당하는 4개의 펌웨어 데이터는 그 자체적으로 버전 3.0의 펌웨어를 구성할 수 있다.
분할 정보는 각 버전에 대응해서 데이터가 몇 개로 분할되어 있는지를 나타낸다. 분할 정보는 예컨대 일련 번호와 분할 개수를 포함할 수 있다.
예컨대 버전 1.0에 대해서 설정된 "0103"은 버전 1.0의 펌웨어에 대해서 3개의 펌웨어 데이터로 분할되고, 그 일련 번호가 "01"이라는 것을 나타낸다. 버전 1.0에 대해서 설정된 "0303"은 버전 1.0의 펌웨어에 대해서 3개의 펌웨어 데이터로 분할되고, 그 일련 번호가 "03"이라는 것을 나타낸다. 분할 정보는 분할 개수만을 포함할 수도 있다. 즉 일련 번호는 생략될 수도 있다.
제1 메타 정보는 각 펌웨어 데이터의 MAC(message authentication code) 연쇄값(chaining value) 및 길이 정보를 더 포함할 수 있다. 길이 정보는 예컨대 각 펌웨어 데이터의 페이로드 길이 및 패딩 길이를 포함할 수 있다.
MAC 연쇄값 및 길이 정보에 대해서는 후술한다.
예컨대 제2 장치는 멀티캐스트 방식을 이용하여, 예컨대 UDP(User Datagram Protocol)를 이용하여, 장치(100)로 제1 메타 정보를 전송할 수 있다.
장치(100)는 UDP를 이용하여 전송되는 제1 메타 정보를 수신할 수 있다.
다음으로, 장치(100)는 제1 메타 정보를 기초로, 복수의 펌웨어 데이터 중 장치(100)에 펌웨어를 적용하기 위해서 사용될 하나 이상의 펌웨어 데이터에 대한 제2 메타 정보를 생성한다(단계 S120).
예컨대, 장치(100)는 장치(100) 내에 미리 저장된 펌웨어의 버전 정보와 단계 S110을 통하여 수신된 제1 메타 정보의 이력 정보에 포함된 버전 정보를 비교하여, 하나 이상의 펌웨어 데이터에 대한 제2 메타 정보를 생성할 수 있다.
예컨대, 장치(100)는 장치(100) 내에 미리 저장된 펌웨어의 버전 정보가 1.0이고 제1 메타 정보의 이력 정보에 포함된 버전 정보가 3.0인 경우, 도 4에 도시된 제1 메타 정보 중에서 버전 2.0에 해당하는 2개의 펌웨어 데이터는 그 자체적으로 버전 2.0의 펌웨어를 구성할 수도 있고, 버전 3.0에 해당하는 4개의 펌웨어 데이터를 수신해야 한다.
따라서, 예컨대 도 5에 도시된 바와 같이, 제2 메타 정보를 생성한다.
도 5는 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법에 있어서, 제2 메타 정보의 예시적인 구성을 나타내는 도면이다.
제2 메타 정보는 하나 이상의 펌웨어 데이터 각각에 대해서, 이력 정보를 적어도 포함한다. 또한 제2 메타 정보는 각 펌웨어 데이터의 MAC 연쇄값 및 길이 정보를 더 포함할 수 있다.
제2 메타 정보의 상세한 구성은 제1 메타 정보의 상세한 구성과 실질적으로 동일하므로, 상세한 설명을 생략한다.
다음으로, 장치(100)는 제2 메타 정보를 기초로, 펌웨어를 제공하는 장치(200) 또는 제2 장치로부터 하나 이상의 펌웨어 데이터를 수신한다(단계 S130).
예컨대, 장치(100)는 하나 이상의 펌웨어 데이터에 대한 전송 요청을 펌웨어를 제공하는 장치(200)로 전송하고, 하나 이상의 펌웨어 데이터를 펌웨어를 제공하는 장치(200)로부터 수신할 수 있다.
한편, 장치(100)는 먼저 제2 장치로부터 하나 이상의 펌웨어 데이터를 수신 가능한지 확인할 수 있다.
즉, 제2 장치가 하나 이상의 펌웨어 데이터를 저장하고 있고 하나 이상의 펌웨어를 장치(100)에 제공 가능하다면, 장치(100)는 제2 장치로부터 하나 이상의 펌웨어 데이터를 수신하는 것이 바람직하다.
따라서, 예컨대 장치(100)는 하나 이상의 펌웨어 데이터를 제공 가능한 지에 대한 확인 요청을 제2 장치로 전송한다. 장치(100)는 제2 장치로부터 하나 이상의 펌웨어 데이터를 제공 가능하다는 응답을 수신하면, 하나 이상의 펌웨어 데이터에 대한 전송 요청을 제2 장치로 전송하고, 제2 장치로부터 하나 이상의 펌웨어 데이터를 제공 가능하지 않다는 응답을 수신하면, 하나 이상의 펌웨어 데이터에 대한 전송 요청을 펌웨어를 제공하는 장치(200)로 전송한다.
제2 장치가 하나 이상의 펌웨어 데이터를 저장하고 있고 하나 이상의 펌웨어를 장치(100)에 제공 가능하다면, 장치(100)는 펌웨어를 제공하는 장치(200)의 개입 없이도 하나 이상의 펌웨어를 제2 장치로부터 수신할 수 있다.
이하 단계 S130에서, 하나 이상의 펌웨어 데이터를 수신하는 과정을 보다 구체적으로 설명한다.
도 6은 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법에 있어서, 펌웨어 데이터를 수신하는 단계의 예시적인 흐름도이다.
하나 이상의 펌웨어 데이터는 제1 펌웨어 데이터 내지 제n 펌웨어 데이터(n은 2이상의 자연수)를 포함할 수 있다.
이하 하나 이상의 펌웨어 데이터 중의 제i 펌웨어 데이터(단 i는 1이상 n이하의 자연수)를 수신하는 과정을 상세하게 설명한다.
장치(100)는 우선, 제i 펌웨어 데이터에 대응하는 제i 데이터를 수신한다(단계 S210).
제i 데이터는 예컨대 펌웨어를 제공하는 장치(200)로부터 유니캐스트 방식 또는 멀티캐스트 방식을 이용하여 전송될 수 있다.
즉, 멀티캐스트 그룹 내의 장치 중 하나 이상의 장치로 제i 데이터를 전송하는 경우, 펌웨어를 제공하는 장치(200)는 멀티캐스트 방식을 이용하여 제i 데이터를 장치(100)로 전송할 수 있다.
또는 장치(100)에만 제i 데이터를 전송하는 경우, 펌웨어를 제공하는 장치(200)는 유니캐스트 방식을 이용하여 제i 데이터를 장치(100)로 전송할 수 있다.
제2 장치 역시 유니캐스트 방식 또는 멀티캐스트 방식을 이용하여 제i 데이터를 전송할 수 있다.
도 7은 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법에 있어서, 제i 데이터의 예시적인 구성을 나타내는 도면이다.
도 7을 참조하면, 제i 데이터 내에는 제i 펌웨어 데이터의 이력 정보, 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보(보다 구체적으로, 페이로드 길이 및 패딩 길이), 제i 펌웨어 데이터 및 MAC이 포함된다.
이력 정보에 대한 설명은 전술한 설명을 참조할 수 있으므로 생략한다.
제i 펌웨어 데이터의 MAC 연쇄값은 제i 펌웨어 데이터의 순서를 인증하기 위한 정보이다.
길이 정보(보다 구체적으로, 페이로드 길이 및 패딩 길이)는 제i 펌웨어 데이터 내의 페이로드와 패딩의 길이에 대한 정보이다. 제i 펌웨어 데이터는 페이로드만을 포함할 수 있지만, 패딩을 더 포함할 수 있다.
제i 펌웨어 데이터의 MAC은 제i 펌웨어 데이터의 MAC 연쇄값, 제i 펌웨어 데이터의 길이 정보 및 제i 펌웨어 데이터를 인증하기 위한 정보이다.
도 7에 도시된 제i 데이터의 예시적인 구성은 설명을 위한 것이며, 본원에서 설명되는 기술의 제1 실시예는 이에 한정되지 않는다.
다음으로, 장치(100)는 제i 데이터로부터, 제i 펌웨어 데이터의 이력 정보, 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보(보다 구체적으로, 페이로드 길이 및 패딩 길이), 제i 펌웨어 데이터 및 MAC을 획득한다(단계 S220).
다음으로, 장치(100)는 제i 펌웨어 데이터의 MAC을, 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보 및 제i 펌웨어 데이터를 제1 MAC 생성 알고리즘을 이용하여 연산하여 생성된 값과 비교하여, 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보 및 제i 펌웨어 데이터를 인증한다(단계 S230).
제1 MAC 생성 알고리즘은 예컨대 해시 함수와 같은 기능을 이용하여 구현될 수 있다.
단계 S220에서 획득한 제i 펌웨어 데이터의 MAC과 단계 S230에서 획득한 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보 및 제i 펌웨어 데이터를 제1 MAC 생성 알고리즘을 이용하여 연산하여 생성된 값이 동일하다면, 장치(100)는 단계 S220에서 획득한 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보 및 제i 펌웨어 데이터가 위변조되지 않았다고 판단할 수 있다.
단계 S220에서 획득한 제i 펌웨어 데이터의 MAC과 단계 S230에서 획득한 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보 및 제i 펌웨어 데이터를 제1 MAC 생성 알고리즘을 이용하여 연산하여 생성된 값이 다르다면, 장치(100)는 단계 S220에서 획득한 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보 및 제i 펌웨어 데이터가 위변조되었다고 판단할 수 있다.
다음으로, 장치(100)는 제i 펌웨어 데이터의 MAC 연쇄값과 제2 MAC 생성 알고리즘을 이용하여 제i 펌웨어 데이터의 순서를 인증한다(단계 S240).
제1 펌웨어 데이터의 MAC 연쇄값은 초기값으로 설정될 수 있다. 그 경우, 장치(100)는 제i 펌웨어 데이터의 MAC 연쇄값이 초기값이라면, 제i 펌웨어 데이터가 제1 펌웨어 데이터라는 것을 확인할 수 있다. i가 1이 아닌 경우, 즉 제i 펌웨어 데이터의 MAC 연쇄값이 초기값이 아닌 경우, 장치(100)는 제i 펌웨어 데이터의 MAC 연쇄값을 제(i-1) 펌웨어 데이터의 MAC 연쇄값과 제i 펌웨어 데이터를 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되는 값과 비교하여 제i 펌웨어 데이터의 순서를 인증한다.
제2 MAC 생성 알고리즘은 예컨대 해시 함수와 같은 기능을 이용하여 구현될 수 있다.
제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보 및 제i 펌웨어 데이터를 인증하기 위해서 사용되는 제1 MAC 생성 알고리즘과 제i 펌웨어 데이터의 순서를 인증하기 위해서 사용되는 제2 MAC 생성 알고리즘은 동일한 것이 바람직하지만, 서로 다를 수도 있다.
제1 펌웨어 데이터의 MAC 연쇄값이 초기값인 것을 알고 있으므로, 제2 펌웨어 데이터의 MAC 연쇄값 내지 제n 펌웨어 데이터의 MAC 연쇄값을 기초로 제2 펌웨어 데이터 내지 제n 펌웨어 데이터의 순서를 인증할 수 있다.
즉, 예컨대 i=2인 경우, 장치(100)는 단계 S220에서 획득한 제2 펌웨어 데이터의 MAC 연쇄값을 단계 S240에서 생성한 제1 펌웨어 데이터의 MAC 연쇄값과 제2 펌웨어 데이터를 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되는 값과 비교한다.
단계 S120에서 획득한 제2 펌웨어 데이터의 MAC 연쇄값과 단계 S240에서 생성한 제1 펌웨어 데이터의 MAC 연쇄값과 제2 펌웨어 데이터를 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되는 값이 동일하다면, 제2 펌웨어 데이터가 제1 펌웨어 데이터의 다음 순서라고 판단할 수 있다.
단계 S120에서 획득한 제2 펌웨어 데이터의 MAC 연쇄값을 제1 펌웨어 데이터의 MAC 연쇄값과 제2 펌웨어 데이터를 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되는 값이 동일하지 않다면, 제2 펌웨어 데이터가 제1 펌웨어 데이터의 다음 순서가 아니라고 판단할 수 있다. 또는 장치(100)는 제2 펌웨어 데이터 또는 제1 펌웨어 데이터의 MAC 연산값 중 적어도 하나가 위변조되었다고 판단할 수도 있다.
한편 제1 펌웨어 데이터의 MAC 연쇄값은 초기값과 제1 펌웨어 데이터를 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되는 값으로 설정될 수 있다. i가 1이 아닌 경우, 장치(100)는 전술한 바와 마찬가지로 제i 펌웨어 데이터의 MAC 연쇄값을 제(i-1) 펌웨어 데이터의 MAC 연쇄값과 제i 펌웨어 데이터를 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되는 값과 비교하여 제i 펌웨어 데이터의 순서를 인증한다. 또한 장치(100)는 i가 1인 경우라도, 제1 펌웨어 데이터의 MAC 연쇄값을 초기값과 제1 펌웨어 데이터를 상기 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되는 값과 비교하여 제1 펌웨어 데이터의 순서를 인증할 수 있다. 즉, 제1 펌웨어 데이터가 복수로 분할된 펌웨어의 첫 번째 데이터라는 것을 인증할 수 있다.
이와 같이 단계 S230과 단계 240을 통하여, 장치(100)는 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보 및 제i 펌웨어 데이터를 인증할 수 있고, 제i 펌웨어 데이터의 순서를 인증할 수 있다. 따라서 예컨대 제i 데이터의 일부를 위변조하는 방식으로 위변조된 데이터가 장치(100)로 전송되더라도, 장치(100)는 제i 데이터(보다 구체적으로는 제i 펌웨어 데이터)가 위변조된 지 여부를 용이하게 확인할 수 있다.
특히 장치(100)는 MAC 및 MAC 연쇄값 모두를 이용하여 제i 데이터(보다 구체적으로는 제i 펌웨어 데이터)가 위변조된 지 여부를 용이하게 확인할 수 있다.
한편 제1 실시예는 단계 S230 다음에 단계 S240이 수행되는 것을 기초로 설명하였지만, 본원에서 설명되는 기술의 제1 실시예는 이에 한정되지 않는다. 예컨대 단계 S240이 먼저 수행되고 다음에 단계 S230이 수행될 수도 있고, 단계 S230과 단계 S240이 동시에 또는 병렬적으로 수행될 수도 있다.
이와 같이 단계 S110 내지 S130을 통하여 펌웨어를 적용하기 위해서 사용될 하나 이상의 펌웨어 데이터가 수신되면, 장치(100)는 펌웨어를 업데이트할 수 있다.
다시 도 1을 참조하면, 장치(100)는 제2 장치로 제1 메타 정보에 대한 전송 요청을 전송할 수 있다(단계 S140).
즉 장치(100)가 멀티캐스트 그룹 내에 신규로 조인하거나, 전원이 꺼져 있다가 켜지거나, 대기 상태에서 정상 상태로 변경된 경우, 장치(100)는 제2 장치로 제1 메타 정보에 대한 전송 요청을 전송할 수 있다.
단계 S140에 대응하여, 제2 장치는 제1 메타 정보를 장치(100)로 전송하며, 장치(100)는 단계 S110을 통하여 제1 메타 정보를 수신할 수 있다.
다시 도 1을 참조하면, 장치(100)는 미리 지정된 암호화 키로 제1 펌웨어 데이터 내지 제n 펌웨어 데이터를 복호화할 수 있다(단계 S150).
즉, 제1 펌웨어 데이터 내지 제n 펌웨어 데이터는 암호화된 것일 수 있다.
따라서, 장치(100)는 단계 S130을 수행하는 것에 의해서 획득한 제1 펌웨어 데이터 내지 제n 펌웨어 데이터를 미리 지정된 암호화 키 및 암호화 알고리즘을 이용하여 복호화하고, 그 후 제1 펌웨어 데이터 내지 제n 펌웨어 데이터를 이용하여 펌웨어를 업데이트할 수 있다.
다시 도 1을 참조하면, 장치(100)는 단계 S130을 수행하더라도 제1 데이터 내지 제n 데이터 중에서 수신하지 못한 데이터가 있다면, 수신하지 못한 데이터에 대한 재전송 요청을 펌웨어를 전송하는 장치(200)로 전송할 수 있다(단계 S160).
예컨대, 제1 데이터 내지 제n 데이터 중에서 제3 데이터를 수신하지 못했다면, 장치(100)는 제3 데이터에 대한 재전송 요청을 생성하고 생성된 재전송 요청을 펌웨어를 전송하는 장치(200)로 전송한다.
다음으로, 장치(100)는 장치(200)로부터 유니캐스트 방식으로 재전송되거나 장치(100)를 포함하는 제2 멀티캐스트 그룹으로 멀티캐스트 방식을 이용하여 재전송되는 데이터를 수신한다(단계 S170).
장치(200)는 예컨대 제3 데이터를 유니캐스트 방식을 이용하여 장치(100)에 재전송할 수 있다. 또는 예컨대 장치(100-1) 내지 장치(100-x) 중에서 장치(100)를 포함하는 하나 이상의 장치에 대해서 제3 데이터를 재전송해야 한다면, 장치(200)는 하나 이상의 장치를 포함하는 멀티캐스트 그룹(즉, 제2 멀티캐스트 그룹)으로 멀티캐스트 방식을 이용하여 제3 데이터를 재전송할 수 있다.
이상에서 설명한 바와 같이 제1 실시예에 따르면, 펌웨어의 이력 정보를 기초로 펌웨어를 제공하는 장치로부터 또는 주변의 장치로부터 펌웨어의 적어도 일부를 획득할 수 있다. 또한 MAC 및 MAC 연쇄값을 이용하여, 펌웨어 데이터가 위변조되었는지 및 펌웨어 데이터의 순서를 여부를 용이하게 확인할 수 있다. 펌웨어 데이터 중 미수신된 데이터에 대해서, 장치는 유니캐스트 방식 또는 멀티캐스트 방식을 이용하여 다시 수신할 수 있다.
<제2 실시예>
도 8은 본원에서 설명되는 기술의 제2 실시예에 따른 펌웨어를 전송하는 방법의 예시적인 흐름도이다.
제2 실시예 중에서 제1 실시예를 참조할 수 있는 구성에 대해서는 상세한 설명을 생략한다.
도 8을 참조하면, 펌웨어를 제공하는 장치(200)는 펌웨어의 제1 펌웨어 데이터 내지 제n 펌웨어 데이터(단 n은 2이상의 자연수)에 각각 대응하는 제1 데이터 내지 제n 데이터를 멀티캐스트 그룹(300) 내의 복수의 장치로 멀티캐스트 방식을 이용하여 전송한다(단계 S310).
예컨대 도 4의 제1 메타 정보를 참조하여 단계 S310을 설명한다.
버전 1.0에 대해서 예컨대 데이터 #1 내지 데이터 #3의 3개의 데이터가 존재하고, 버전 2.0에 대해서 예컨대 데이터 #4 내지 데이터 #5의 2개의 데이터가 존재하고, 버전 3.0에 대해서 예컨대 데이터 #6 내지 데이터 #9의 4개의 데이터가 존재한다고 가정하자.
예컨대 버전 1.0의 펌웨어를 획득하면, 펌웨어를 제공하는 장치(200)는 데이터 #1 내지 데이터 #3의 3개의 데이터를 멀티캐스트 그룹(300) 내의 복수의 장치로 멀티캐스트 방식을 이용하여 전송한다.
그 후, 예컨대 버전 2.0의 펌웨어를 획득하면, 펌웨어를 제공하는 장치(200)는 데이터 #4 내지 데이터 #5의 2개의 데이터를 멀티캐스트 그룹(300) 내의 복수의 장치로 멀티캐스트 방식을 이용하여 전송한다.
그 후, 예컨대 버전 3.0의 펌웨어를 획득하면, 장치(200)는 데이터 #6 내지 데이터 #9의 4개의 데이터를 멀티캐스트 그룹(300) 내의 복수의 장치로 멀티캐스트 방식을 이용하여 전송한다.
전술한 각 버전의 펌웨어는 예컨대 개발자가 펌웨어를 작성하고, 펌웨어를 제공하는 장치(200)로 업로드된 후 수행된다.
다음으로, 장치(200)는 제1 데이터 내지 제n 데이터를 저장한다(단계 S320).
다음으로, 장치(200)는 멀티캐스트 그룹(300) 내의 하나 이상의 장치로부터 제1 데이터 내지 제n 데이터 중 제i 데이터(단 i는 1이상 n이하의 자연수)에 대한 전송 요청을 수신한다(S330).
다음으로, 장치(200)는 제i 데이터를 멀티캐스트 방식 또는 유니캐스트 방식을 이용하여 하나 이상의 장치로 전송한다(S340).
예컨대 장치(100)에만 제i 데이터를 전송하는 경우, 장치(200)는 제i 데이터를 유니캐스트 방식을 이용하여 장치(100)에 재전송할 수 있다. 또는 예컨대 장치(100)를 포함하는 하나 이상의 장치에 대해서 제i 데이터를 재전송해야 한다면, 장치(200)는 하나 이상의 장치를 포함하는 멀티캐스트 그룹(즉, 제2 멀티캐스트 그룹)으로 멀티캐스트 방식을 이용하여 제i 데이터를 재전송할 수 있다.
이하, 제i 데이터의 구조에 대해서 상세히 설명한다. 제1 데이터 내지 제n 데이터의 구조는 제i 데이터의 구조와 실질적으로 동일하므로, 상세한 설명을 생략한다
제i 데이터는 제i 펌웨어 데이터의 버전 정보 및 분할 정보를 포함하는 이력 정보, MAC 연쇄값, 길이 정보, 상기 제i 펌웨어 데이터 및 MAC을 포함한다.
제i 데이터 내의 이력 정보는 전술한 제1 실시예를 참조할 수 있으므로 상세한 설명을 생략한다.
제i 펌웨어 데이터의 MAC은, 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보 및 제i 펌웨어 데이터를 제1 MAC 생성 알고리즘을 이용하여 연산하여 생성된다,
제i 데이터의 상기 MAC 연쇄값은, 상기 i가 1이 아닌 경우, 제(i-1) 펌웨어 데이터의 MAC 연쇄값과 상기 제i 펌웨어 데이터를 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성된다.
제i 펌웨어 데이터의 MAC은 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보 및 제i 펌웨어 데이터를 제1 MAC 생성 알고리즘을 이용하여 연산하여 생성될 수 있다.
제1 펌웨어 데이터의 MAC 연쇄값은 초기값과 제1 펌웨어 데이터를 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되거나, 초기값으로 설정될 수 있다.
제1 MAC 생성 알고리즘과 상기 제2 MAC 생성 알고리즘은 동일할 수 있다.
한편 도 8을 참조하면, 장치(200)는 미리 지정된 암호화 키로 제1 펌웨어 데이터 내지 제n 펌웨어 데이터를 암호화할 수 있다(단계 S350).
이상에서 설명한 바와 같이 제2 실시예에 따르면, 펌웨어를 제공하는 장치는 펌웨어 데이터를 멀티캐스트 그룹 내의 장치로 멀티캐스트 방식을 이용하여 전송할 수 있다. 또한 멀티캐스트 방식을 이용하더라도 MAC 및 MAC 연쇄값을 추가함으로써, 멀티캐스트 그룹 내의 각 장치는 MAC 및 MAC 연쇄값을 이용하여, 펌웨어 데이터가 위변조되었는지 및 분할된 펌웨어 데이터의 순서를 여부를 용이하게 확인할 수 있다. 또한, 펌웨어를 제공하는 장치는 재전송 요청에 대응하여 멀티캐스트 그룹 내의 하나 이상의 장치로 펌웨어 데이터 중 적어도 일부를 유니캐스트 방식 또는 멀티캐스트 방식을 이용하여 재전송할 수 있다.
<다른 실시예>
비록 본원에서 설명되는 기술의 실시예가 구체적으로 설명되었지만 이는 단지 본원에서 설명되는 기술을 예시적으로 설명한 것에 불과한 것으로, 본원에서 설명되는 기술이 속하는 기술 분야에서 통상의 지식을 가지는 자라면 본원에서 설명되는 기술의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 변형이 가능할 것이다.
예컨대 전술한 제i 데이터의 구성은 예시적인 것일 뿐이므로, 다양한 변경이 가능하다.
예컨대, 본원에서 설명되는 기술은 멀티캐스트 그룹 내에서 펌웨어를 수신하는 장치 및 멀티캐스트 그룹 내의 복수의 장치로 펌웨어를 제공하는 장치에도 적용될 수도 있다.
예컨대 본원에서 설명되는 기술에 따른 펌웨어를 수신하는 장치는, (a) 복수의 펌웨어 데이터에 대한 제1 메타 정보를 멀티캐스트 그룹 내의 제2 장치로부터 수신하는 처리; (b) 상기 제1 메타 정보를 기초로, 상기 복수의 펌웨어 데이터 중 상기 제1 장치에 상기 펌웨어를 적용하기 위해서 사용될 하나 이상의 펌웨어 데이터에 대한 제2 메타 정보를 생성하는 처리; 및 (c) 상기 제2 메타 정보를 기초로, 상기 펌웨어를 제공하는 장치 또는 상기 제2 장치로부터 상기 하나 이상의 펌웨어 데이터를 수신하는 처리를 수행하는 연산 처리부를 포함할 수 있다.
예컨대 본원에서 설명되는 기술에 따른 펌웨어를 제공하는 장치는, (a) 펌웨어의 제1 펌웨어 데이터 내지 제n 펌웨어 데이터(단 n은 2이상의 자연수)에 각각 대응하는 제1 데이터 내지 제n 데이터를 멀티캐스트 그룹 내의 상기 복수의 장치로 멀티캐스트 방식을 이용하여 전송하는 처리; (b) 상기 제1 데이터 내지 제n 데이터를 저장하는 처리; (c) 상기 멀티캐스트 그룹 내의 하나 이상의 장치로부터 상기 제1 데이터 내지 제n 데이터 중 제i 데이터(단 i는 1이상 n이하의 자연수)에 대한 전송 요청을 수신하는 처리; 및 (d) 상기 제i 데이터를 멀티캐스트 방식 또는 유니캐스트 방식을 이용하여 상기 하나 이상의 장치로 전송하는 단계를 수행하는 연산 처리부를 포함할 수 있다.
본원에서 설명되는 기술의 제1 실시예 및 제2 실시예를 참조로 설명된 특징들은 펌웨어를 수신하는 장치 및 펌웨어를 제공하는 장치에 마찬가지로 적용될 수 있다.
따라서 본 명세서에 설명된 실시예들은 본원에서 설명되는 기술을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본원에서 설명되는 기술의 사상과 범위가 한정되는 것은 아니다. 본원에서 설명되는 기술의 권리 범위는 아래의 청구범위에 의해 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술은 본원에서 설명되는 기술의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.
본원에서 설명되는 기술에 따르면, 펌웨어의 이력 정보를 기초로 펌웨어를 제공하는 장치로부터 또는 주변의 장치로부터 펌웨어의 적어도 일부를 획득할 수 있다. 또한 MAC 및 MAC 연쇄값을 이용하여, 펌웨어 데이터가 위변조되었는지 및 펌웨어 데이터의 순서를 여부를 용이하게 확인할 수 있다. 또한 펌웨어 데이터 중 미수신된 데이터에 대해서, 유니캐스트 방식 또는 멀티캐스트 방식을 이용하여 다시 수신할 수 있다.
또한 본원에서 설명되는 기술에 따르면, 멀티캐스트 방식을 이용하여 펌웨어를 전송하더라도 MAC 및 MAC 연쇄값을 이용하여 펌웨어의 위변조를 방지할 수 있도록 전송할 수 있다. 또한 펌웨어의 이력 정보를 이용하는 것에 의해서, 펌웨어를 수신하는 장치에서 이력 정보를 기초로 펌웨어를 적용하기 위해서 필요한 데이터만을 전송할 수 있으므로, 통신 부하를 최소화할 수 있다.
100: 장치 110: 통신 인터페이스
130: 연산 처리부 150: 저장부
200: 펌웨어를 제공하는 장치 300: 멀티캐스트 그룹
400: 라우터

Claims (18)

  1. 적어도 제1 장치 및 제2 장치를 포함하는 멀티캐스트 그룹 내의 상기 제1 장치에 의해서 수행되며, 복수의 펌웨어 데이터를 포함하는 펌웨어를 수신하는 방법으로서,
    (a) 상기 복수의 펌웨어 데이터에 대한 제1 메타 정보를 상기 제2 장치로부터 수신하는 단계;
    (b) 상기 제1 메타 정보를 기초로, 상기 복수의 펌웨어 데이터 중 상기 제1 장치에 상기 펌웨어를 적용하기 위해서 사용될 제1 펌웨어 데이터 내지 제n 펌웨어 데이터(n은 2이상의 자연수)에 대한 제2 메타 정보를 생성하는 단계;
    (c) 상기 제2 메타 정보를 기초로, 상기 펌웨어를 제공하는 장치 또는 상기 제2 장치로부터 상기 제1 펌웨어 데이터 내지 제n 펌웨어 데이터를 수신하는 단계
    를 포함하고,
    상기 제1 메타 정보는, 상기 복수의 펌웨어 데이터 각각에 대해서, 버전 정보 및 분할 정보를 포함하는 이력 정보를 적어도 포함하고,
    상기 제2 메타 정보는 상기 제1 펌웨어 데이터 내지 제n 펌웨어 데이터 각각에 대해서, 상기 이력 정보를 적어도 포함하고,
    상기 단계 (c)는,
    (c-3) 상기 제1 펌웨어 데이터 내지 제n 펌웨어 데이터 중의 제i 펌웨어 데이터(단 i는 1이상 n이하의 자연수)에 대해서, (c-3-1) 상기 제i 펌웨어 데이터에 대응하는 제i 데이터를 수신하는 단계; (c-3-2) 상기 제i 데이터로부터, 상기 제i 펌웨어 데이터의 상기 이력 정보, MAC(message authentication code) 연쇄값(chaining value), 길이 정보, 상기 제i 펌웨어 데이터 및 MAC을 획득하는 단계; (c-3-3) 상기 제i 펌웨어 데이터의 MAC을 상기 제i 펌웨어 데이터의 상기 MAC 연쇄값, 상기 길이 정보 및 상기 제i 펌웨어 데이터를 제1 MAC 생성 알고리즘을 이용하여 연산하여 생성된 값과 비교하여, 상기 제i 펌웨어 데이터의 상기 MAC 연쇄값, 상기 길이 정보 및 상기 제i 펌웨어 데이터를 인증하는 단계; 및 (c-3-4) 상기 제i 펌웨어 데이터의 상기 MAC 연쇄값과 제2 MAC 생성 알고리즘을 이용하여 상기 제i 펌웨어 데이터의 순서를 인증하는 단계를 수행하는 단계
    를 포함하는 것인 방법.
  2. 제1항에 있어서,
    (d) 상기 단계 (a) 전에, 상기 제2 장치로 상기 제1 메타 정보에 대한 전송 요청을 전송하는 단계
    를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 단계 (a)는, (a-1) 상기 제2 장치로부터 멀티캐스트 방식을 이용하여 전송되는 상기 제1 메타 정보를 수신하는 단계
    를 더 포함하는 것인 방법.
  4. 제1항에 있어서,
    상기 단계 (b)는, (b-1) 상기 제1 장치에 미리 저장된 펌웨어의 버전 정보와 상기 제1 메타 정보의 상기 이력 정보에 포함된 상기 버전 정보를 비교하여, 상기 제1 펌웨어 데이터 내지 제n 펌웨어 데이터에 대한 상기 제2 메타 정보를 생성하는 단계
    를 포함하는 것인 방법.
  5. 제1항에 있어서,
    상기 단계 (c)는,
    (c-1) 상기 제2 장치로부터 상기 제1 펌웨어 데이터 내지 제n 펌웨어 데이터를 수신 가능한지 확인하는 단계; 및
    (c-2) 상기 제2 장치로부터 상기 제1 펌웨어 데이터 내지 제n 펌웨어 데이터를 수신 가능하면, 상기 제1 펌웨어 데이터 내지 제n 펌웨어 데이터에 대한 전송 요청을 상기 제2 장치로 전송하고, 상기 제2 장치로부터 상기 제1 펌웨어 데이터 내지 제n 펌웨어 데이터를 수신 가능하지 않으면, 상기 제1 펌웨어 데이터 내지 제n 펌웨어 데이터에 대한 전송 요청을 상기 펌웨어를 제공하는 장치로 전송하는 단계
    를 포함하는 것인 방법.
  6. 삭제
  7. 제1항에 있어서,
    상기 제1 펌웨어 데이터의 상기 MAC 연쇄값은 초기값으로 설정되고,
    상기 단계 (c-3-4)는, 상기 i가 1이 아닌 경우, 상기 제i 펌웨어 데이터의 상기 MAC 연쇄값을 제(i-1) 펌웨어 데이터의 MAC 연쇄값과 상기 제i 펌웨어 데이터를 상기 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되는 값과 비교하여 상기 제i 펌웨어 데이터의 순서를 인증하는 단계
    를 포함하는 것인 방법.
  8. 제1항에 있어서,
    상기 제1 펌웨어 데이터의 상기 MAC 연쇄값은 초기값과 상기 제1 펌웨어 데이터를 상기 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되는 값이고,
    상기 단계 (c-3-4)는, 상기 i가 1이 아닌 경우, 상기 제i 펌웨어 데이터의 상기 MAC 연쇄값을 제(i-1) 펌웨어 데이터의 MAC 연쇄값과 상기 제i 펌웨어 데이터를 상기 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되는 값과 비교하여 상기 제i 펌웨어 데이터의 순서를 인증하는 단계를 포함하는 것인 방법.
  9. 제8항에 있어서,
    상기 단계 (c-3-4)는, 상기 제1 펌웨어 데이터의 상기 MAC 연쇄값을 상기 초기값과 상기 제1 펌웨어 데이터를 상기 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되는 값과 비교하여 상기 제1 펌웨어 데이터의 순서를 인증하는 단계를 포함하는 것인 방법.
  10. 제1항에 있어서,
    상기 제1 MAC 생성 알고리즘과 상기 제2 MAC 생성 알고리즘은 동일한 것인 방법.
  11. 제1항에 있어서,
    상기 제i 데이터는 유니캐스트 방식 또는 멀티캐스트 방식을 이용하여 전송되는 것인 방법.
  12. 제1항에 있어서,
    (e) 미리 지정된 암호화 키로 상기 제1 펌웨어 데이터 내지 상기 제n 펌웨어 데이터를 복호화하는 단계
    를 더 포함하는 것인 방법.
  13. 제1항에 있어서,
    (f) 상기 제1 데이터 내지 상기 제n 데이터 중 수신하지 못한 데이터에 대한 재전송 요청을 상기 펌웨어를 제공하는 장치로 전송하는 단계;
    (g) 상기 펌웨어를 제공하는 장치로부터 유니캐스트 방식을 이용하여 재전송되거나 상기 제1 장치를 포함하는 제2 멀티캐스트 그룹으로 멀티캐스트 방식을 이용하여 재전송되는 상기 데이터를 수신하는 단계
    를 더 포함하는 방법.
  14. 펌웨어를 제공하는 장치에 의해서 수행되며, 펌웨어를 멀티캐스트 그룹 내의 복수의 장치로 전송하는 방법으로서,
    (a) 상기 펌웨어의 제1 펌웨어 데이터 내지 제n 펌웨어 데이터(단 n은 2이상의 자연수)에 각각 대응하는 제1 데이터 내지 제n 데이터를 상기 멀티캐스트 그룹 내의 상기 복수의 장치로 멀티캐스트 방식을 이용하여 전송하는 단계;
    (b) 상기 제1 데이터 내지 제n 데이터를 저장하는 단계;
    (c) 상기 멀티캐스트 그룹 내의 하나 이상의 장치로부터 상기 제1 데이터 내지 제n 데이터 중 제i 데이터(단 i는 1이상 n이하의 자연수)에 대한 전송 요청을 수신하는 단계; 및
    (d) 상기 제i 데이터를 멀티캐스트 방식 또는 유니캐스트 방식을 이용하여 상기 하나 이상의 장치로 전송하는 단계
    를 포함하고,
    상기 제i 데이터는,
    제i 펌웨어 데이터의 버전 정보 및 분할 정보를 포함하는 이력 정보, MAC 연쇄값, 길이 정보, 상기 제i 펌웨어 데이터 및 MAC을 포함하고,
    상기 제i 펌웨어 데이터의 상기 MAC은, 상기 제i 펌웨어 데이터의 상기 MAC 연쇄값, 상기 길이 정보 및 상기 제i 펌웨어 데이터를 제1 MAC 생성 알고리즘을 이용하여 연산하여 생성되고,
    상기 제i 데이터의 상기 MAC 연쇄값은, 상기 i가 1이 아닌 경우, 제(i-1) 펌웨어 데이터의 MAC 연쇄값과 상기 제i 펌웨어 데이터를 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되는 것인 방법.
  15. 제14항에 있어서,
    상기 제1 펌웨어 데이터의 상기 MAC 연쇄값은 초기값과 상기 제1 펌웨어 데이터를 상기 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되는 것인 방법.
  16. 제14항에 있어서,
    상기 제1 펌웨어 데이터의 상기 MAC 연쇄값은 초기값으로 설정되는 것인 방법.
  17. 제14항에 있어서,
    상기 제1 MAC 생성 알고리즘과 상기 제2 MAC 생성 알고리즘은 동일한 것인 방법.
  18. 제14항에 있어서,
    (e) 상기 단계 (a) 이전에, 미리 지정된 암호화 키로 상기 제1 펌웨어 데이터 내지 상기 제n 펌웨어 데이터를 암호화하는 단계
    를 더 포함하는 것인 방법.
KR1020210186743A 2021-12-24 2021-12-24 펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법 KR102437864B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210186743A KR102437864B1 (ko) 2021-12-24 2021-12-24 펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법
PCT/KR2022/015323 WO2023120906A1 (ko) 2021-12-24 2022-10-12 펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법
US18/127,340 US20230236820A1 (en) 2021-12-24 2023-03-28 Method for receiving firmware and method for transmitting firmware

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210186743A KR102437864B1 (ko) 2021-12-24 2021-12-24 펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법

Publications (1)

Publication Number Publication Date
KR102437864B1 true KR102437864B1 (ko) 2022-08-30

Family

ID=83114565

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210186743A KR102437864B1 (ko) 2021-12-24 2021-12-24 펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법

Country Status (3)

Country Link
US (1) US20230236820A1 (ko)
KR (1) KR102437864B1 (ko)
WO (1) WO2023120906A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102524379B1 (ko) * 2022-12-05 2023-04-21 주식회사 유니온플레이스 궤도 비히클 관제를 위한 데이터 처리 장치
KR102524377B1 (ko) * 2022-11-25 2023-04-21 주식회사 유니온플레이스 비히클 관제를 위한 비히클 데이터의 통신 방법
WO2023120906A1 (ko) * 2021-12-24 2023-06-29 주식회사 유니온플레이스 펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100521785B1 (ko) * 2002-12-06 2005-10-14 한국전자통신연구원 무선 상에서의 이동통신 단말기 프로그램 제공 시스템 및그 방법
KR20100065150A (ko) * 2007-08-27 2010-06-15 알카텔-루센트 유에스에이 인코포레이티드 네트워크와 통신하는 이동 장비에 의해 수행되는 방법 및 이동 장비와 통신하는 네트워크에 의해 수행되는 방법
KR20140011502A (ko) * 2012-06-18 2014-01-29 엘지전자 주식회사 멀티캐스트 시스템 및 서비스 방법
KR101757417B1 (ko) 2017-04-19 2017-07-12 주식회사 주빅스 무선통신에서의 통신노드 펌웨어 업데이트 방법
KR102111449B1 (ko) * 2018-10-23 2020-05-15 주식회사 시옷 저전력 무선네트워크를 이용한 펌웨어 업데이트 방법
KR20200067265A (ko) * 2018-09-07 2020-06-12 고려대학교 산학협력단 실시간 데이터 전송을 위한 블록 암호 장치 및 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102437864B1 (ko) * 2021-12-24 2022-08-30 주식회사 유니온플레이스 펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100521785B1 (ko) * 2002-12-06 2005-10-14 한국전자통신연구원 무선 상에서의 이동통신 단말기 프로그램 제공 시스템 및그 방법
KR20100065150A (ko) * 2007-08-27 2010-06-15 알카텔-루센트 유에스에이 인코포레이티드 네트워크와 통신하는 이동 장비에 의해 수행되는 방법 및 이동 장비와 통신하는 네트워크에 의해 수행되는 방법
KR20140011502A (ko) * 2012-06-18 2014-01-29 엘지전자 주식회사 멀티캐스트 시스템 및 서비스 방법
KR101757417B1 (ko) 2017-04-19 2017-07-12 주식회사 주빅스 무선통신에서의 통신노드 펌웨어 업데이트 방법
KR20200067265A (ko) * 2018-09-07 2020-06-12 고려대학교 산학협력단 실시간 데이터 전송을 위한 블록 암호 장치 및 방법
KR102111449B1 (ko) * 2018-10-23 2020-05-15 주식회사 시옷 저전력 무선네트워크를 이용한 펌웨어 업데이트 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023120906A1 (ko) * 2021-12-24 2023-06-29 주식회사 유니온플레이스 펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법
KR102524377B1 (ko) * 2022-11-25 2023-04-21 주식회사 유니온플레이스 비히클 관제를 위한 비히클 데이터의 통신 방법
KR102524379B1 (ko) * 2022-12-05 2023-04-21 주식회사 유니온플레이스 궤도 비히클 관제를 위한 데이터 처리 장치

Also Published As

Publication number Publication date
WO2023120906A1 (ko) 2023-06-29
US20230236820A1 (en) 2023-07-27

Similar Documents

Publication Publication Date Title
US11146400B2 (en) Methods for verifying data integrity
KR102437864B1 (ko) 펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법
CN110073634B (zh) 数据转换系统及方法
CN108599925B (zh) 一种基于量子通信网络的改进型aka身份认证系统和方法
US7620824B2 (en) Data communicating apparatus, data communicating method, and program
US8069470B1 (en) Identity and authentication in a wireless network
US20080162934A1 (en) Secure transmission system
KR102028092B1 (ko) 신뢰 양자 서명 장치 및 방법
KR20180119201A (ko) 인증 시스템을 위한 전자 장치
WO2010024379A1 (ja) 通信システム、送信側及び受信又は転送側の通信装置、データ通信方法、データ通信プログラム
JP5766780B2 (ja) デバイス間暗号通信方法及びこれを用いたデータ通信方法
WO2018101488A1 (ja) セキュアネットワーク通信方法
JP6693577B2 (ja) 暗号鍵配信システム、鍵配信ecu、鍵配信プログラム、及び暗号鍵配信方法
US20220209946A1 (en) Key revocation for edge devices
KR20150135032A (ko) Puf를 이용한 비밀키 업데이트 시스템 및 방법
US11716367B2 (en) Apparatus for monitoring multicast group
US20230027422A1 (en) Systems, apparatus, and methods for generation, packaging, and secure distribution of symmetric quantum cypher keys
US20230229776A1 (en) Method for receiving firmware and method for transmitting firmware
Agosta et al. Cyber-security analysis and evaluation for smart home management solutions
US10608822B2 (en) Efficient calculation of message authentication codes for related data
WO2010032391A1 (ja) 完全性検証のための通信システム、通信装置、及びそれらを用いた通信方法及びプログラム
JP4631423B2 (ja) メッセージの認証方法と該認証方法を用いたメッセージ認証装置およびメッセージ認証システム
US20020138732A1 (en) Methods, systems and computer program products for providing digital signatures in a network environment
JP4464187B2 (ja) 送受信システム
KR20220130494A (ko) 블록체인 기반 IoT 보안 방법 및 장치

Legal Events

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