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

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

Info

Publication number
WO2023120852A1
WO2023120852A1 PCT/KR2022/010519 KR2022010519W WO2023120852A1 WO 2023120852 A1 WO2023120852 A1 WO 2023120852A1 KR 2022010519 W KR2022010519 W KR 2022010519W WO 2023120852 A1 WO2023120852 A1 WO 2023120852A1
Authority
WO
WIPO (PCT)
Prior art keywords
firmware
data
mac
firmware data
value
Prior art date
Application number
PCT/KR2022/010519
Other languages
English (en)
French (fr)
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 US18/127,420 priority Critical patent/US20230229776A1/en
Publication of WO2023120852A1 publication Critical patent/WO2023120852A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • 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
    • 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
    • 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
    • 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

Definitions

  • the present disclosure relates to a method for a device within a multicast group to receive firmware and a method for transmitting firmware to multiple devices within a multicast group.
  • devices can be connected to the network.
  • devices having communication and computing capabilities are simply referred to as “computing devices” or “devices.”
  • the FOTA Firmware over the air
  • a device can download and update its firmware over a wireless network.
  • a plurality of devices may configure a multicast group.
  • a device that transmits data (hereinafter also referred to as a "transmitter”) may transmit data to a plurality of devices within a multicast group using a multicast method.
  • a multicast address set for a multicast group is used.
  • a plurality of devices in the multicast group sequentially communicate with a device providing firmware using a unicast method in order to update firmware. For example, when there are first to nth devices (n is a natural number greater than or equal to 2) in the multicast group, the device providing firmware provides, for example, firmware to the first device and then provides firmware to the next device. , the firmware is sequentially provided to the first device to the n-th device using a unicast method.
  • the plurality of devices in the multicast group have substantially the same configuration, that is, even when the firmware is the same, the plurality of devices sequentially communicate with the device providing the firmware using a unicast method to update the firmware. Therefore, it takes a lot of time for a plurality of devices in the multicast group to update their firmware.
  • the communication load in the multicast network also increases.
  • Patent Document 1 a firmware update method using both a broadcast method and a unicast method is disclosed.
  • a gateway receives firmware from an upper device (ie, a device providing the firmware of the present application), divides the firmware into a plurality of images, and assigns a sequence number to each of the plurality of images. and transmits a plurality of images to a plurality of devices using a broadcast method.
  • the gateway uses a unicast method to transmit one or more images that have not been received by one or more devices to one or more devices based on the sequence number. and send it
  • a gateway is additionally used separately from a device providing firmware, and the gateway can provide firmware only to a plurality of devices within a limited area directly connected to the gateway. Therefore, the application target is limited.
  • Patent Document 1 Korean Patent Registration No. 10-1757417.
  • An object of the technology described herein is to provide a method for receiving firmware that can easily check whether or not the firmware has been forged even when the firmware is received using a multicast method.
  • Another object of the technology described herein is to provide a method for transmitting firmware capable of preventing forgery of the firmware even when the firmware is transmitted using a multicast method.
  • a method performed by a device in a multicast group and receiving firmware includes (a) using a multicast method from a device providing firmware.
  • receiving i-th data (where i is a natural number greater than or equal to 1 and less than or equal to n) among the first to n-th data (where n is a natural number greater than or equal to 2) transmitted by the method;
  • MAC message authentication code
  • MAC message authentication code
  • a method performed by a device providing firmware and transmitting firmware to a plurality of devices in a multicast group comprising: (a) based on the firmware, first firmware data; Generating through n-th firmware data (where n is a natural number of 2 or greater); (b) generating partition information of the firmware, MAC chain value of the ith firmware data (where i is a natural number between 1 and less than n), length information, and ith data including the ith firmware data and the MAC.
  • the MAC of the i-th firmware data is the MAC chain of the i-th firmware data.
  • value, the length information, and the i-th firmware data are calculated using a first MAC generation algorithm, and the MAC chain value of the i-th firmware data is, when i is not 1, the (i-1th) ) is generated by calculating a MAC chain value of firmware data and the i-th firmware data using a second MAC generation algorithm.
  • the technology described herein even if the firmware is received using a multicast method, it is possible to easily check whether the firmware has been forged or altered. In addition, even a device with low processing performance can receive firmware data using a multicast method. In addition, according to the technology described herein, even if the firmware is transmitted using a multicast method, forgery and alteration of the firmware can be prevented. can transmit
  • FIG. 1 is an exemplary flow diagram of a method of receiving firmware according to a first embodiment of the technology described herein;
  • Fig. 2 shows an exemplary configuration of an apparatus executing a method for receiving firmware according to a first embodiment of the technology described herein;
  • FIG. 3 is a diagram showing an example of a system environment to which a method for receiving firmware according to a first embodiment of the technology described herein is applied.
  • FIG. 4 is a diagram showing an exemplary configuration of i-th data in a method for receiving firmware according to a first embodiment of the technology described herein;
  • FIG. 5 is another exemplary flow diagram of a method of receiving firmware according to a first embodiment of the technology described herein;
  • FIG. 6 is an exemplary flow diagram of a method for transferring firmware according to a second embodiment of the technology described herein.
  • FIG. 1 is an exemplary flowchart of a method for receiving firmware according to a first embodiment of the technology described herein
  • FIG. 2 is an apparatus executing the method for receiving firmware according to the first embodiment of the technology described herein
  • Figure 3 is a diagram showing an example of a system environment to which the method for receiving firmware according to the first embodiment of the technology described herein is applied.
  • FIG. 2 an apparatus 100 executing a method for receiving firmware according to a first embodiment of the technology described herein will be described.
  • an apparatus 100 executing a method of receiving firmware may include a communication interface 110 , an arithmetic processing unit 130 , and a storage unit 150 .
  • Device 100 may be implemented using, for example, a computing device having a data acquisition function, a computing function, and a communication function.
  • device 100 may include a computing device, such as a sensor, disposed within a multicast group.
  • the communication interface 110 is a communication interface based on a wired/wireless communication method.
  • the communication interface 110 may be implemented by a semiconductor device such as a communication chip.
  • the communication interface 110 may receive data using a unicast method or a multicast method.
  • the arithmetic processing unit 130 may be implemented by, for example, a semiconductor device such as a central processing unit (CPU) or an application specific integrated circuit (ASIC).
  • a semiconductor device such as a central processing unit (CPU) or an application specific integrated circuit (ASIC).
  • the arithmetic processing unit 130 may be implemented using, for example, a plurality of semiconductor devices.
  • the arithmetic processing unit 130 may be implemented using a first semiconductor element that performs a control function, a second semiconductor element that encodes/decodes data, and a third semiconductor element that encrypts/decrypts data. .
  • the operation processing unit 130 executes a method for receiving firmware according to the first embodiment, which will be described later, and uses the communication interface 110 and the storage unit 150 to execute the method for receiving firmware according to the first embodiment. can also be controlled.
  • the storage unit 150 stores data.
  • the storage unit 150 may be implemented by a semiconductor device such as, for example, a semiconductor memory.
  • a plurality of devices that is, a device 100-1 to a device 100-x (where x is an integer of 2 or greater) are deployed in a network.
  • Each of the devices 100-1 to 100-x includes components corresponding to the communication interface 110, the arithmetic processing unit 130, and the storage unit 150 of the device 100 in common.
  • each of devices 100 - 1 to 100 - n may be referred to as device 100 .
  • the device 200 that provides firmware is a device that transmits firmware to a plurality of devices, that is, devices 100-1 to 100-x.
  • the device 200 providing firmware is also referred to as “device 200” hereinafter.
  • the device 200 may be implemented by a computing device including a communication interface (not shown), an arithmetic processing unit (not shown), and a storage unit (not shown).
  • a communication interface not shown
  • an arithmetic processing unit not shown
  • a storage unit not shown
  • the description of the device 100 may be referred to, so it is omitted.
  • the devices 100-1 to 100-x constitute the multicast group 300.
  • the device 200 may transmit data to the devices 100-1 to 100-x using a multicast address set for the multicast group 300, that is, using a multicast scheme.
  • the device 200 may transmit data to the device 100-1 using an address set in any one of a plurality of devices, for example, the device 100-1, that is, using a unicast method.
  • the router 400 is disposed between the device 200 and the multicast group 300, and transmits data to devices 100-1 to 100-x.
  • the device 100 is configured to transmit i-th data (where i is 1 or greater than n) among first data to n-th data (where n is a natural number greater than or equal to 2) transmitted from the device 200 using a multicast method.
  • the following natural numbers) are received (step S110).
  • the firmware is divided into a plurality of firmware data (first to n-th firmware data) in the device 200, and the first to n-th firmware data are converted into first data to n-th data, and the device ( 100) is sent.
  • the device 200 transmits first through n-th data using User Datagram Protocol (UDP).
  • UDP User Datagram Protocol
  • the device 100 receives i-th data among first data to n-th data transmitted using UDP.
  • the device 100 obtains partition information of the firmware, MAC chain value of the i-th firmware data, length information, i-th firmware data, and MAC from the i-th data received in step S110 (step S120).
  • FIG. 4 is a diagram showing an exemplary configuration of i-th data in the method for receiving firmware according to the first embodiment of the technology described herein.
  • the i-th data includes segmentation information of firmware, a MAC chain value of the i-th firmware data, length information (more specifically, a payload length and a padding length), i-th firmware data, and a MAC. .
  • step S120 the ith data is analyzed to obtain segmentation information of the firmware, MAC chain value of the ith firmware data, length information (more specifically, payload length and padding length), ith firmware data, and MAC.
  • the partition information of the firmware is information indicating how many pieces the firmware is divided into. For example, if the firmware is divided into n pieces of data from the first firmware data to the nth firmware data, the partition information of the firmware may be "n".
  • the division information of the firmware may further include a serial number of the ith firmware data. For example, if the firmware is divided into n pieces of data from the first firmware data to the n-th firmware data and the serial number of the i-th firmware data is i, the partition information of the firmware may include “i” and “n”. For example, if the partition information of the firmware is expressed as "0103", "01" at the front indicates that the serial number of the ith firmware data is "1", and "03" at the end indicates that the firmware is the first to nth firmware data. Indicates that the firmware data is divided into n pieces of data.
  • the MAC chain value of the ith firmware data is information for authenticating the sequence of the ith firmware data.
  • the length information (more specifically, payload length and padding length) is information about the lengths of the payload and padding in the i-th firmware data.
  • the ith firmware data may include only the payload, but may further include padding.
  • the MAC of the i-th firmware data is a MAC chain value of the i-th firmware data, length information of the i-th firmware data, and information for authenticating the i-th firmware data.
  • the exemplary configuration of the i-th data shown in FIG. 4 is for illustration only, and the first embodiment of the technology described herein is not limited thereto.
  • the device 100 uses the MAC chain value of the i-th firmware data obtained in step S120, the MAC chain value of the i-th firmware data obtained in step S120, the length information, and the i-th firmware data by using the first MAC generation algorithm. Compared with the value generated by the calculation, the MAC chain value of the i-th firmware data obtained in step S120, the length information, and the i-th firmware data are authenticated (step S130).
  • the first MAC generation algorithm may be implemented using a function such as a hash function, for example.
  • the device 100 may determine that the MAC chain value of the i-th firmware data obtained in step S120, the length information, and the i-th firmware data are not forged or altered.
  • the device 100 may determine that the MAC chain value of the i-th firmware data obtained in step S120, the length information, and the i-th firmware data are forged or altered.
  • the device 100 authenticates the order of the i-th firmware data by using the MAC chain value of the i-th firmware data acquired in step S120 and the second MAC generating algorithm (step S140).
  • Step S140 will be described in more detail as follows.
  • a MAC chain value of the first firmware data may be set to an initial value.
  • the device 100 may confirm that the i-th firmware data is the first firmware data.
  • i is not 1, that is, when the MAC chain value of the ith firmware data is not an initial value
  • the device 100 sets the MAC chain value of the ith firmware data to the MAC chain value of the (i-1)th firmware data.
  • the order of the i-th firmware data is authenticated by comparing the i-th firmware data with a value generated by calculating the second MAC generation algorithm.
  • the second MAC generation algorithm may be implemented using a function such as a hash function, for example.
  • the first MAC generation algorithm used to authenticate the MAC chain value, length information, and ith firmware data of the i-th firmware data and the second MAC generation algorithm used to authenticate the order of the i-th firmware data are the same. , may be different.
  • the order of the second firmware data to the n-th firmware data can be authenticated based on the MAC chain value of the second firmware data to the MAC chain value of the n-th firmware data.
  • the device 100 converts the MAC chain value of the second firmware data obtained in step S120 to the MAC chain value of the first firmware data and the second firmware data using the second MAC generation algorithm. Compare with the value produced by the operation.
  • the second firmware data It may be determined that the first firmware data is in the next order.
  • the second firmware data It may be determined that is not the next order of the first firmware data.
  • the second firmware data obtained in step S120. If the value generated by calculating the MAC chain value of the first firmware data and the MAC chain value of the second firmware data using the second MAC generation algorithm is the same, the device 100 determines that the second firmware data is the first firmware data. It can be verified that is the next sequence of .
  • the device ( 100) may determine that at least one of the MAC operation value of the second firmware data or the first firmware data is forged.
  • the MAC chain value of the first firmware data may be set to a value generated by calculating the initial value and the first firmware data using the second MAC generation algorithm.
  • the device 100 uses the second MAC generation algorithm to convert the MAC chain value of the ith firmware data to the MAC chain value of the (i-1)th firmware data and the ith firmware data, as described above.
  • the order of the i-th firmware data is authenticated by comparing with the value generated by the operation.
  • the device 100 compares the initial value of the MAC chain value of the first firmware data with a value generated by calculating the first firmware data using the second MAC generation algorithm to generate the first firmware data. You can verify the order of data. That is, it may be authenticated that the first firmware data is the first data of the divided firmware.
  • the device 100 may authenticate the MAC chain value of the i-th firmware data, the length information, and the i-th firmware data, and may authenticate the order of the i-th firmware data. Therefore, for example, even if the forged data is transmitted to the device 100 by forging a part of the i-th data, the device 100 can easily determine whether the i-th data (more specifically, the i-th firmware data) is forged or altered. You can check.
  • the device 100 can easily check whether the i-th data (more specifically, the i-th firmware data) has been forged or altered using both the MAC and the MAC chain value.
  • step S140 is performed after step S130, but the first embodiment of the technology described herein is not limited thereto.
  • step S140 may be performed first and step S130 may be performed next, or steps S130 and step S140 may be performed simultaneously or in parallel.
  • the device 100 obtains firmware by combining the first firmware data to the n-th firmware data obtained by performing steps S110 to S140 (step S150).
  • the first to n-th firmware data may be encrypted.
  • the device 100 may obtain firmware by decrypting and combining the first to n-th firmware data using a predetermined encryption key and an encryption algorithm in step S150.
  • various data may be stored in the storage unit 150.
  • the third data may be stored in the storage unit 150 . That is, the storage unit 150 may act as a buffer.
  • the firmware may be obtained by combining them in step S150. Also, the firmware itself obtained in step S150 may be stored in the storage unit 150 .
  • FIG. 5 is another exemplary flow diagram of a method for receiving firmware according to a first embodiment of the technology described herein.
  • the device 100 transmits a request for retransmission of data not received even after performing steps S110 to S140 to the device 200 transmitting the firmware (step S160 ).
  • the device 100 For example, if third data is not received among the first to n-th data, the device 100 generates a request to retransmit the third data and transmits the generated request to the device 200 that transmits the firmware.
  • the device 100 receives data retransmitted from the device 200 using the unicast method or retransmitted using the multicast method to the second multicast group (step S170).
  • the device 200 may retransmit the third data to the device 100 using a unicast method, for example. Or, for example, if the third data needs to be retransmitted for one or more devices among devices 100-1 to 100-x, for example, devices 100-1, 100-2, and 100-3.
  • Device 200 is a multicast group (ie, a second multicast group) including devices 100-1, 100-2, and 100-3, using a multicast scheme to generate a third multicast group. retransmit the data.
  • firmware may be obtained through steps S120 to S150.
  • a device in a multicast group can receive firmware data transmitted using a multicast method.
  • the device can easily check whether the firmware data has been forged or altered and whether the order of the divided firmware data is determined using the MAC and the MAC chain value.
  • the device may receive it again using a unicast method or a multicast method.
  • FIG. 6 is an exemplary flow diagram of a method for transferring firmware according to a second embodiment of the technology described herein.
  • the device 200 providing firmware generates first firmware data to nth firmware data (where n is a natural number equal to or greater than 2) based on the firmware (step S210).
  • the device 200 may generate first through n-th firmware data by dividing the firmware.
  • the device 200 may generate first through n-th firmware data by dividing the firmware and encrypting the firmware with a predetermined encryption key.
  • the device 200 transmits the partition information of the firmware, the MAC chain value of the ith firmware data (where i is a natural number between 1 and less than n), the length information, the ith firmware data, and the ith data including the MAC. Generate (step S220).
  • the MAC of the i-th firmware data may be generated by calculating the MAC chain value of the i-th firmware data, the length information, and the i-th firmware data using a first MAC generating algorithm.
  • the MAC chain value of the ith firmware data may be generated by calculating the MAC chain value of the (i ⁇ 1)th firmware data and the ith firmware data using the second MAC generation algorithm.
  • the MAC chain value of the first firmware data may be generated by calculating the initial value and the first firmware data using a second MAC generation algorithm. Alternatively, the MAC chain value of the first firmware data may be set to an initial value.
  • the first MAC generation algorithm and the second MAC generation algorithm may be the same or different.
  • the partition information of the firmware, the MAC chain value of the ith firmware data (where i is a natural number between 1 and less than n), the length information, the ith firmware data, and the MAC can be referred to the first embodiment described above, so they are omitted. .
  • the device 200 transmits the ith data generated in step S220 to a plurality of devices in the multicast group using a multicast method (step S230).
  • devices 100 - 1 to 100 - x constitute a multicast group 300 .
  • step S230 the device 200 transmits the i-th data to, for example, devices 100-1 to 100-x using a multicast method.
  • the method for transmitting firmware according to the second embodiment of the technology described herein may further include steps S240 and S250.
  • the device 200 receives a retransmission request for the i-th data from at least one device among a plurality of devices (step S240).
  • the device 200 transmits the i-th data to a plurality of devices in the multicast group using a multicast method in step S23. However, since the i-th data is transmitted using the multicast method, at least one device in the multicast group 300 may not be able to receive the i-th data. At least one device among devices 100-1 to 100-x in the multicast group 300, for example, device 100-1, device 100-2, and device 100-3 is i When data is not received, each of the devices 100-1, 100-2, and 100-3 transmits a request to retransmit the ith data (ie, a retransmission request) to the device 200. and the device 200 receives the retransmission request.
  • a request ie, a retransmission request
  • the device 200 retransmits the i-th data to the at least one device using a unicast method or retransmits the i-th data to a second multicast group including the at least one device using a multicast method. Do (step S250).
  • the device 200 when the device 200 receives a retransmission request only from the device 100-1 among the devices 100-1 to 100-x in the multicast group 300, the device 200 receives the ith data is retransmitted to the device 100-1 using a unicast method.
  • the device 200 is transmitted from the device 100-1, device 100-2 and device 100-3 among the devices 100-1 to 100-x in the multicast group 300.
  • the device 200 Upon receiving the retransmission request, the device 200 transmits the ith data to a multicast group including the devices 100-1, 100-2, and 100-3, that is, the second multicast group. It is retransmitted using the multicast method.
  • a device providing firmware may transmit firmware data to a device within a multicast group using a multicast method.
  • the device providing the firmware may retransmit at least some of the firmware data to one or more devices in the multicast group using a unicast method or a multicast method in response to the retransmission request.
  • the techniques described herein may also be applied to devices that receive firmware within a multicast group and devices that provide firmware to a plurality of devices within a multicast group.
  • a device for receiving firmware includes: (a) the i-th of the first data to the n-th data (where n is a natural number of 2 or greater) transmitted using a multicast method from the device providing the firmware; processing of receiving data (where i is a natural number of 1 or more and n or less); (b) processing of obtaining, from the i-th data, division information of the firmware, a MAC chain value, length information, the i-th firmware data, and a MAC; (c) comparing the MAC of the i-th firmware data with a value generated by calculating the MAC chain value of the i-th firmware data, the length information, and the i-th firmware data using a first MAC generation algorithm; processing of authenticating the MAC chain value of the i-th firmware data, the length information, and the i-th firmware data; (d) processing of authenticating the sequence of the i-th firmware data by using the MAC chain value of the i-th firmware
  • an apparatus for providing firmware includes: (a) processing of generating first to n-th firmware data (where n is a natural number of 2 or greater) based on the firmware; (b) processing of generating partition information of the firmware, MAC chain value of the i-th firmware data (where i is a natural number of 1 or more and less than or equal to n), length information, and i-th data including the i-th firmware data and MAC ; and (c) an arithmetic processing unit configured to transmit the i-th data to the plurality of devices in the multicast group using a multicast method.

Landscapes

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

Abstract

멀티캐스트 그룹 내의 장치에 의해서 수행되며, 펌웨어를 수신하는 방법으로서, (a) 펌웨어를 제공하는 장치로부터 멀티캐스트 방식을 이용하여 전송되는 제1 데이터 내지 제n 데이터(단 n은 2이상의 자연수) 중의 제i 데이터(단 i는 1이상 n이하의 자연수)를 수신하는 단계; (b) 제i 데이터로부터, 상기 펌웨어의 분할 정보, MAC(message authentication code) 연쇄값(chaining value), 길이 정보, 제i 펌웨어 데이터 및 MAC을 획득하는 단계; (c) 상기 제i 펌웨어 데이터의 MAC을 상기 제i 펌웨어 데이터의 상기 MAC 연쇄값, 상기 길이 정보 및 상기 제i 펌웨어 데이터를 제1 MAC 생성 알고리즘을 이용하여 연산하여 생성된 값과 비교하여, 상기 제i 펌웨어 데이터의 상기 MAC 연쇄값, 상기 길이 정보 및 상기 제i 펌웨어 데이터를 인증하는 단계; (d) 상기 제i 펌웨어 데이터의 상기 MAC 연쇄값과 제2 MAC 생성 알고리즘을 이용하여 상기 제i 펌웨어 데이터의 순서를 인증하는 단계; 및 (e) 상기 단계 (a) 내지 상기 단계 (d)를 수행하는 것에 의해서 획득되는 제1 펌웨어 데이터 내지 제n 펌웨어 데이터를 결합하여 상기 펌웨어를 획득하는 단계를 포함하는 방법이 제공된다.

Description

펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법
본 개시(開示)는 멀티캐스트 그룹 내의 장치가 펌웨어를 수신하는 방법 및 멀티캐스트 그룹 내의 복수의 장치로 펌웨어를 전송하는 방법에 관한 것이다.
다양한 장치들이 네트워크에 연결될 수 있다. 이하 본 명세서에서, 통신 기능 및 컴퓨팅 기능을 구비한 장치를 간단히 "컴퓨팅 장치" 또는 "장치"라고 지칭한다.
장치의 펌웨어를 업데이트하기 위해서, 예컨대 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)된 펌웨어를 복수의 장치 중의 다른 장치에게로 브로드캐스트 방식을 이용하여 전송하는 경우라도, 복수의 장치 각각은 펌웨어가 위변조되었는지를 확인하기 어렵다.
[선행기술문헌]
[특허문헌]
(특허문헌 1) 한국등록특허 제10-1757417호.
본원에서 설명되는 기술의 목적은 멀티캐스트 방식을 이용하여 펌웨어를 수신하더라도 펌웨어의 위변조 여부를 용이하게 확인할 수 있는 펌웨어를 수신하는 방법을 제공하는 데 있다.
본원에서 설명되는 기술의 다른 목적은 멀티캐스트 방식을 이용하여 펌웨어를 전송하더라도 펌웨어의 위변조를 방지할 수 있도록 전송할 수 있는 펌웨어를 전송하는 방법을 제공하는 데 있다.
상기 기술적 과제를 달성하기 위하여, 본원에서 설명되는 기술의 일 형태에 따르면, 멀티캐스트 그룹 내의 장치에 의해서 수행되며, 펌웨어를 수신하는 방법으로서, (a) 펌웨어를 제공하는 장치로부터 멀티캐스트 방식을 이용하여 전송되는 제1 데이터 내지 제n 데이터(단 n은 2이상의 자연수) 중의 제i 데이터(단 i는 1이상 n이하의 자연수)를 수신하는 단계; (b) 제i 데이터로부터, 상기 펌웨어의 분할 정보, MAC(message authentication code) 연쇄값(chaining value), 길이 정보, 제i 펌웨어 데이터 및 MAC을 획득하는 단계; (c) 상기 제i 펌웨어 데이터의 MAC을 상기 제i 펌웨어 데이터의 상기 MAC 연쇄값, 상기 길이 정보 및 상기 제i 펌웨어 데이터를 제1 MAC 생성 알고리즘을 이용하여 연산하여 생성된 값과 비교하여, 상기 제i 펌웨어 데이터의 상기 MAC 연쇄값, 상기 길이 정보 및 상기 제i 펌웨어 데이터를 인증하는 단계; (d) 상기 제i 펌웨어 데이터의 상기 MAC 연쇄값과 제2 MAC 생성 알고리즘을 이용하여 상기 제i 펌웨어 데이터의 순서를 인증하는 단계; 및 (e) 상기 단계 (a) 내지 상기 단계 (d)를 수행하는 것에 의해서 획득되는 제1 펌웨어 데이터 내지 제n 펌웨어 데이터를 결합하여 상기 펌웨어를 획득하는 단계를 포함하는 방법이 제공된다.
본원에서 설명되는 기술의 다른 일 형태에 따르면, 펌웨어를 제공하는 장치에 의해서 수행되며, 펌웨어를 멀티캐스트 그룹 내의 복수의 장치로 전송하는 방법으로서, (a) 상기 펌웨어를 기초로, 제1 펌웨어 데이터 내지 제n 펌웨어 데이터(단 n은 2이상의 자연수)를 생성하는 단계; (b) 상기 펌웨어의 분할 정보, 제i 펌웨어 데이터(단, i는 1이상 n이하의 자연수)의 MAC 연쇄값, 길이 정보, 상기 제i 펌웨어 데이터 및 MAC을 포함하는 제i 데이터를 생성하는 단계; 및 (c) 상기 제i 데이터를 상기 멀티캐스트 그룹 내의 상기 복수의 장치로 멀티캐스트 방식을 이용하여 전송하는 단계를 포함하고, 상기 제i 펌웨어 데이터의 상기 MAC은 상기 제i 펌웨어 데이터의 상기 MAC 연쇄값, 상기 길이 정보 및 상기 제i 펌웨어 데이터를 제1 MAC 생성 알고리즘을 이용하여 연산하여 생성되고, 상기 제i 펌웨어 데이터의 상기 MAC 연쇄값은, 상기 i가 1이 아닌 경우, 제(i-1) 펌웨어 데이터의 MAC 연쇄값과 상기 제i 펌웨어 데이터를 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되는 것인 방법이 제공된다.
본원에서 설명되는 기술에 따르면, 멀티캐스트 방식을 이용하여 펌웨어를 수신하더라도 펌웨어의 위변조 여부를 용이하게 확인할 수 있다. 또한 연산 처리 성능이 낮은 장치에서도, 멀티캐스트 방식을 이용하여 펌웨어 데이터를 수신할 수 있다.또한 본원에서 설명되는 기술에 따르면, 멀티캐스트 방식을 이용하여 펌웨어를 전송하더라도 펌웨어의 위변조를 방지할 수 있도록 전송할 수 있다.
도 1은 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법의 예시적인 흐름도.
도 2는 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법을 실행하는 장치의 예시적인 구성을 나타내는 도면.
도 3은 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법이 적용되는 시스템 환경의 예를 나타내는 도면.
도 4는 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법에 있어서, 제i 데이터의 예시적인 구성을 나타내는 도면.
도 5는 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법의 다른 예시적인 흐름도.
도 6은 본원에서 설명되는 기술의 제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)는 예컨대 반도체 메모리와 같은 반도체 소자에 의해서 구현될 수 있다.
다음으로, 도 3을 참조하여, 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법이 적용되는 시스템 환경의 예를 설명한다.
도 3을 참조하면, 복수의 장치, 즉 장치(100-1) 내지 장치(100-x)(단 x는 2이상의 정수)가 네트워크 내에 배치된다.
장치(100-1) 내지 장치(100-x) 각각은, 장치(100)의 통신 인터페이스(110)와, 연산 처리부(130)와, 저장부(150)에 대응하는 구성을 공통적으로 포함한다. 이하의 설명에서, 장치(100-1) 내지 장치(100-n) 각각은 장치(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)는 장치(200)로부터 멀티캐스트 방식을 이용하여 전송되는 제1 데이터 내지 제n 데이터(단 n은 2이상의 자연수) 중의 제i 데이터(단 i는 1이상 n이하의 자연수)를 수신한다(단계 S110). 펌웨어는 장치(200)에서 복수의 펌웨어 데이터(제1 내지 제n 펌웨어 데이터)로 분할되며, 제1 내지 제n 펌웨어 데이터는 제1 데이터 내지 제n 데이터로 변환되어 멀티캐스트 방식을 이용하여 장치(100)로 전송된다.
예컨대, 장치(200)는 UDP(User Datagram Protocol)를 이용하여 제1 데이터 내지 제n 데이터를 전송한다. 장치(100)는 UDP를 이용하여 전송되는 제1 데이터 내지 제n 데이터 중의 제i 데이터를 수신한다.
장치(100)가 UDP를 이용하여 제i 데이터를 수신하는 구체적인 과정은 설명을 생략한다.
다음으로, 장치(100)는 단계 S110에서 수신된 제i 데이터로부터, 펌웨어의 분할 정보, 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보, 제i 펌웨어 데이터 및 MAC을 획득한다(단계 S120).
도 4는 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법에 있어서, 제i 데이터의 예시적인 구성을 나타내는 도면이다.
도 4에 도시되듯이, 제i 데이터 내에는 펌웨어의 분할 정보, 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보(보다 구체적으로, 페이로드 길이 및 패딩 길이), 제i 펌웨어 데이터 및 MAC이 포함된다.
단계 S120에서는, 제i 데이터를 해석하여, 펌웨어의 분할 정보, 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보(보다 구체적으로, 페이로드 길이 및 패딩 길이), 제i 펌웨어 데이터 및 MAC을 획득한다.
펌웨어의 분할 정보는 펌웨어가 몇 개로 분할되었는지를 나타내는 정보이다. 예컨대 펌웨어가 제1 펌웨어 데이터 내지 제n 펌웨어 데이터의 n개의 데이터로 분할되었다면, 펌웨어의 분할 정보는 "n"일 수 있다.
또한 펌웨어의 분할 정보는 제i 펌웨어 데이터의 일련 번호를 더 포함할 수 있다. 예컨대, 펌웨어가 제1 펌웨어 데이터 내지 제n 펌웨어 데이터의 n개의 데이터로 분할되고 제i 펌웨어 데이터의 일련 번호가 i라면, 펌웨어의 분할 정보는 "i" 및 "n"을 포함할 수 있다. 예컨대 펌웨어의 분할 정보가 "0103"과 같이 표현되면, 앞부분의 "01"은 제i 펌웨어 데이터의 일련 번호가 "1"이라는 것을 나타내고, 뒷부분의 "03"은 펌웨어가 제1 펌웨어 데이터 내지 제n 펌웨어 데이터의 n개의 데이터로 분할되었다는 것을 나타낸다.
제i 펌웨어 데이터의 MAC 연쇄값은 제i 펌웨어 데이터의 순서를 인증하기 위한 정보이다.
길이 정보(보다 구체적으로, 페이로드 길이 및 패딩 길이)는 제i 펌웨어 데이터 내의 페이로드와 패딩의 길이에 대한 정보이다. 제i 펌웨어 데이터는 페이로드만을 포함할 수 있지만, 패딩을 더 포함할 수 있다.
제i 펌웨어 데이터의 MAC은 제i 펌웨어 데이터의 MAC 연쇄값, 제i 펌웨어 데이터의 길이 정보 및 제i 펌웨어 데이터를 인증하기 위한 정보이다.
도 4에 도시된 제i 데이터의 예시적인 구성은 설명을 위한 것이며, 본원에서 설명되는 기술의 제1 실시예는 이에 한정되지 않는다.
다음으로, 장치(100)는 단계 S120에서 획득한 제i 펌웨어 데이터의 MAC을 단계 S120에서 획득한 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보 및 제i 펌웨어 데이터를 제1 MAC 생성 알고리즘을 이용하여 연산하여 생성된 값과 비교하여, 단계 S120에서 획득한 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보 및 제i 펌웨어 데이터를 인증한다(단계 S130).
제1 MAC 생성 알고리즘은 예컨대 해시 함수와 같은 기능을 이용하여 구현될 수 있다.
단계 S120에서 획득한 제i 펌웨어 데이터의 MAC과 단계 S120에서 획득한 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보 및 제i 펌웨어 데이터를 제1 MAC 생성 알고리즘을 이용하여 연산하여 생성된 값이 동일하다면, 장치(100)는 단계 S120에서 획득한 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보 및 제i 펌웨어 데이터가 위변조되지 않았다고 판단할 수 있다.
단계 S120에서 획득한 제i 펌웨어 데이터의 MAC과 단계 S120에서 획득한 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보 및 제i 펌웨어 데이터를 제1 MAC 생성 알고리즘을 이용하여 연산하여 생성된 값이 다르다면, 장치(100)는 단계 S120에서 획득한 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보 및 제i 펌웨어 데이터가 위변조되었다고 판단할 수 있다.
다음으로, 장치(100)는 단계 S120에서 획득한 제i 펌웨어 데이터의 MAC 연쇄값과 제2 MAC 생성 알고리즘을 이용하여 제i 펌웨어 데이터의 순서를 인증한다(단계 S140).
단계 S140을 보다 상세히 설명하면 다음과 같다.
제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)는 단계 S120에서 획득한 제2 펌웨어 데이터의 MAC 연쇄값을 제1 펌웨어 데이터의 MAC 연쇄값과 제2 펌웨어 데이터를 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되는 값과 비교한다.
단계 S120에서 획득한 제2 펌웨어 데이터의 MAC 연쇄값을 제1 펌웨어 데이터의 MAC 연쇄값과 제2 펌웨어 데이터를 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되는 값이 동일하다면, 제2 펌웨어 데이터가 제1 펌웨어 데이터의 다음 순서라고 판단할 수 있다.
단계 S120에서 획득한 제2 펌웨어 데이터의 MAC 연쇄값을 제1 펌웨어 데이터의 MAC 연쇄값과 제2 펌웨어 데이터를 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되는 값이 동일하지 않다면, 제2 펌웨어 데이터가 제1 펌웨어 데이터의 다음 순서가 아니라고 판단할 수 있다.
한편, 예컨대 전술한 바와 같이, 펌웨어의 분할 정보에 제i 펌웨어 데이터의 일련 번호가 포함되고, 따라서 제2 펌웨어 데이터가 제1 펌웨어 데이터의 다음 순서로 지정된 경우, 단계 S120에서 획득한 제2 펌웨어 데이터의 MAC 연쇄값을 제1 펌웨어 데이터의 MAC 연쇄값과 제2 펌웨어 데이터를 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되는 값이 동일하다면, 장치(100)는 제2 펌웨어 데이터가 제1 펌웨어 데이터의 다음 순서라는 것을 인증할 수 있다. 그러나, 단계 S120에서 획득한 제2 펌웨어 데이터의 MAC 연쇄값을 제1 펌웨어 데이터의 MAC 연쇄값과 제2 펌웨어 데이터를 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성되는 값이 동일하지 않다면, 장치(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 펌웨어 데이터가 복수로 분할된 펌웨어의 첫 번째 데이터라는 것을 인증할 수 있다.
이와 같이 단계 S130과 단계 S140을 통하여, 장치(100)는 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보 및 제i 펌웨어 데이터를 인증할 수 있고, 제i 펌웨어 데이터의 순서를 인증할 수 있다. 따라서 예컨대 제i 데이터의 일부를 위변조하는 방식으로 위변조된 데이터가 장치(100)로 전송되더라도, 장치(100)는 제i 데이터(보다 구체적으로는 제i 펌웨어 데이터)가 위변조된 지 여부를 용이하게 확인할 수 있다.
특히 장치(100)는 MAC 및 MAC 연쇄값 모두를 이용하여 제i 데이터(보다 구체적으로는 제i 펌웨어 데이터)가 위변조된 지 여부를 용이하게 확인할 수 있다.
한편 제1 실시예는 단계 S130 다음에 단계 S140이 수행되는 것을 기초로 설명하였지만, 본원에서 설명되는 기술의 제1 실시예는 이에 한정되지 않는다. 예컨대 단계 S140이 먼저 수행되고 다음에 단계 S130이 수행될 수도 있고, 단계 S130과 단계 S140이 동시에 또는 병렬적으로 수행될 수도 있다.
다음으로, 장치(100)는 단계 S110 내지 단계 S140을 수행하는 것에 의해서 획득되는 제1 펌웨어 데이터 내지 제n 펌웨어 데이터를 결합하여 펌웨어를 획득한다(단계 S150).
한편 제1 펌웨어 데이터 내지 제n 펌웨어 데이터는 암호화된 것일 수 있다.
따라서, 장치(100)는 단계 S150에서 제1 펌웨어 데이터 내지 제n 펌웨어 데이터를 미리 지정된 암호화 키 및 암호화 알고리즘을 이용하여 복호화하고 결합하여, 펌웨어를 획득할 수도 있다.
단계 S110 내지 단계 S140을 수행하는 과정에서 저장부(150)에는 다양한 데이터가 저장될 수 있다. 예컨대, 제1 데이터가 수신된 후, 그 다음으로 수신되어야 할 제2 데이터가 수신되지 않고 제3 데이터가 수신된다면, 제3 데이터는 저장부(150)에 저장될 수 있다. 즉 저장부(150)는 버퍼로서 작용할 수 있다. 또한 제1 펌웨어 데이터 내지 제n 펌웨어 데이터 각각이 저장부(150)에 임시로 저장된 후, 단계 S150에서 결합하여 펌웨어를 획득할 수도 있다. 또한 단계 S150에서 획득한 펌웨어 자체가 저장부(150)에 저장될 수도 있다.
도 5는 본원에서 설명되는 기술의 제1 실시예에 따른 펌웨어를 수신하는 방법의 다른 예시적인 흐름도이다.
도 5를 참조하면, 장치(100)는 단계 S110 내지 단계 S140을 수행하더라도 수신하지 못한 데이터를 재전송하는 요청을 펌웨어를 전송하는 장치(200)로 전송한다(단계 S160).
예컨대, 제1 데이터 내지 제n 데이터 중에서 제3 데이터를 수신하지 못했다면, 장치(100)는 제3 데이터를 재전송하라는 요청을 생성하고 생성된 요청을 펌웨어를 전송하는 장치(200)로 전송한다.
다음으로, 장치(100)는 장치(200)로부터 유니캐스트 방식으로 재전송되거나 제2 멀티캐스트 그룹으로 멀티캐스트 방식을 이용하여 재전송되는 데이터를 수신한다(단계 S170).
장치(200)는 예컨대 제3 데이터를 유니캐스트 방식을 이용하여 장치(100)에 재전송할 수 있다. 또는 예컨대 장치(100-1) 내지 장치(100-x) 중에서 하나 이상의 장치, 예컨대 장치(100-1), 장치(100-2) 및 장치(100-3)에 대해서 제3 데이터를 재전송해야 한다면, 장치(200)는 장치(100-1), 장치(100-2) 및 장치(100-3)를 포함하는 멀티캐스트 그룹(즉, 제2 멀티캐스트 그룹)으로 멀티캐스트 방식을 이용하여 제3 데이터를 재전송한다.
장치(100)가 단계 S170을 통하여 데이터를 수신하면, 단계 S120 내지 S150을 통하여 펌웨어를 획득할 수 있다.
이상에서 설명한 바와 같이 제1 실시예에 따르면, 멀티캐스트 그룹 내의 장치는 멀티캐스트 방식을 이용하여 전송되는 펌웨어 데이터를 수신할 수 있다. 또한, 멀티캐스트 방식을 이용하더라도, 장치는 MAC 및 MAC 연쇄값을 이용하여, 펌웨어 데이터가 위변조되었는지 및 분할된 펌웨어 데이터의 순서를 여부를 용이하게 확인할 수 있다. 또한, 펌웨어 데이터 중 미수신된 데이터에 대해서, 장치는 유니캐스트 방식 또는 멀티캐스트 방식을 이용하여 다시 수신할 수 있다.
<제2 실시예>
도 6은 본원에서 설명되는 기술의 제2 실시예에 따른 펌웨어를 전송하는 방법의 예시적인 흐름도이다.
제2 실시예 중에서 제1 실시예를 참조할 수 있는 구성에 대해서는 상세한 설명을 생략한다.
도 6을 참조하면, 펌웨어를 제공하는 장치(200)는 펌웨어를 기초로, 제1 펌웨어 데이터 내지 제n 펌웨어 데이터(단 n은 2이상의 자연수)를 생성한다(단계 S210).
예컨대 장치(200)는 펌웨어를 분할하여 제1 펌웨어 데이터 내지 제n 펌웨어 데이터를 생성할 수 있다.
또는 예컨대 장치(200)는 펌웨어를 분할하고 미리 지정된 암호화 키로 암호화하여 제1 펌웨어 데이터 내지 제n 펌웨어 데이터를 생성할 수도 있다.
다음으로, 장치(200)는 펌웨어의 분할 정보, 제i 펌웨어 데이터(단, i는 1이상 n이하의 자연수)의 MAC 연쇄값, 길이 정보, 제i 펌웨어 데이터 및 MAC을 포함하는 제i 데이터를 생성한다(단계 S220).
제i 펌웨어 데이터의 MAC은 제i 펌웨어 데이터의 MAC 연쇄값, 길이 정보 및 제i 펌웨어 데이터를 제1 MAC 생성 알고리즘을 이용하여 연산하여 생성될 수 있다.
제i 펌웨어 데이터의 MAC 연쇄값은, i가 1이 아닌 경우, 제(i-1) 펌웨어 데이터의 MAC 연쇄값과 제i 펌웨어 데이터를 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성될 수 있다.
제1 펌웨어 데이터의 MAC 연쇄값은 초기값과 제1 펌웨어 데이터를 제2 MAC 생성 알고리즘을 이용하여 연산하여 생성될 수 있다. 또는 제1 펌웨어 데이터의 상기 MAC 연쇄값은 초기값으로 설정될 수도 있다.
제1 MAC 생성 알고리즘과 제2 MAC 생성 알고리즘은 동일할 수도 있지만, 다를 수도 있다.
펌웨어의 분할 정보, 제i 펌웨어 데이터(단, i는 1이상 n이하의 자연수)의 MAC 연쇄값, 길이 정보, 제i 펌웨어 데이터 및 MAC에 대해서는 전술한 제1 실시예를 참조할 수 있으므로 생략한다.
다음으로, 장치(200)는 단계 S220에서 생성된 제i 데이터를 멀티캐스트 그룹 내의 복수의 장치로 멀티캐스트 방식을 이용하여 전송한다(단계 S230).
전술한 바와 같이, 도 3을 참조하면, 장치(100-1) 내지 장치(100-x)는 멀티캐스트 그룹(300)을 구성한다.
단계 S230에서, 장치(200)는 제i 데이터를 예컨대 장치(100-1) 내지 장치(100-x)로 멀티캐스트 방식을 이용하여 전송한다.
한편, 본원에서 설명되는 기술의 제2 실시예에 따른 펌웨어를 전송하는 방법은 단계 S240 및 단계 S250을 더 포함할 수 있다.
장치(200)는 복수의 장치 중 적어도 하나의 장치로부터 상기 제i 데이터에 대한 재전송 요청을 수신한다(단계 S240).
장치(200)는 단계 S23에서 제i 데이터를 멀티캐스트 그룹 내의 복수의 장치로 멀티캐스트 방식을 이용하여 전송한다. 하지만 제i 데이터가 멀티캐스트 방식을 이용하여 전송되므로, 멀티캐스트 그룹(300) 내의 적어도 하나의 장치는 제i 데이터를 수신하지 못할 수도 있다. 멀티캐스트 그룹(300) 내의 장치(100-1) 내지 장치(100-x) 중에서 적어도 하나의 장치, 예컨대 장치(100-1), 장치(100-2) 및 장치(100-3)가 제i 데이터를 수신하지 못한 경우, 장치(100-1), 장치(100-2) 및 장치(100-3) 각각은 제i 데이터를 재전송해달라는 요청(즉, 재전송 요청)을 장치(200)로 전송하고, 장치(200)는 재전송 요청을 수신한다.
다음으로, 장치(200)는 제i 데이터를 적어도 하나의 장치로 유니캐스트 방식을 이용하여 재전송하거나, 제i 데이터를 적어도 하나의 장치를 포함하는 제2 멀티캐스트 그룹으로 멀티캐스트 방식을 이용하여 재전송한다(단계 S250).
예컨대 장치(200)가 멀티캐스트 그룹(300) 내의 장치(100-1) 내지 장치(100-x) 중 장치(100-1)로부터만 재전송 요청을 수신한 경우, 장치(200)는 제i 데이터를 장치(100-1)로 유니캐스트 방식을 이용하여 재전송한다.
또는 예컨대, 장치(200)가 멀티캐스트 그룹(300) 내의 장치(100-1) 내지 장치(100-x) 중 장치(100-1), 장치(100-2) 및 장치(100-3)으로부터 재전송 요청을 수신한 경우, 장치(200)는 제i 데이터를 장치(100-1), 장치(100-2) 및 장치(100-3)를 포함하는 멀티캐스트 그룹, 즉 제2 멀티캐스트 그룹으로 멀티캐스트 방식을 이용하여 재전송한다.
이상에서 설명한 바와 같이 제2 실시예에 따르면, 펌웨어를 제공하는 장치는 펌웨어 데이터를 멀티캐스트 그룹 내의 장치로 멀티캐스트 방식을 이용하여 전송할 수 있다. 또한 멀티캐스트 방식을 이용하더라도 MAC 및 MAC 연쇄값을 추가함으로써, 멀티캐스트 그룹 내의 각 장치는 MAC 및 MAC 연쇄값을 이용하여, 펌웨어 데이터가 위변조되었는지 및 분할된 펌웨어 데이터의 순서를 여부를 용이하게 확인할 수 있다. 또한, 펌웨어를 제공하는 장치는 재전송 요청에 대응하여 멀티캐스트 그룹 내의 하나 이상의 장치로 펌웨어 데이터 중 적어도 일부를 유니캐스트 방식 또는 멀티캐스트 방식을 이용하여 재전송할 수 있다.
<다른 실시예>
비록 본원에서 설명되는 기술의 실시예가 구체적으로 설명되었지만 이는 단지 본원에서 설명되는 기술을 예시적으로 설명한 것에 불과한 것으로, 본원에서 설명되는 기술이 속하는 기술 분야에서 통상의 지식을 가지는 자라면 본원에서 설명되는 기술의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 변형이 가능할 것이다.
예컨대 전술한 제i 데이터의 구성은 예시적인 것일 뿐이므로, 다양한 변경이 가능하다.
예컨대, 본원에서 설명되는 기술은 멀티캐스트 그룹 내에서 펌웨어를 수신하는 장치 및 멀티캐스트 그룹 내의 복수의 장치로 펌웨어를 제공하는 장치에도 적용될 수도 있다.
예컨대 본원에서 설명되는 기술에 따른 펌웨어를 수신하는 장치는, (a) 펌웨어를 제공하는 장치로부터 멀티캐스트 방식을 이용하여 전송되는 제1 데이터 내지 제n 데이터(단 n은 2이상의 자연수) 중의 제i 데이터(단 i는 1이상 n이하의 자연수)를 수신하는 처리; (b) 제i 데이터로부터, 상기 펌웨어의 분할 정보, MAC 연쇄값, 길이 정보, 상기 제i 펌웨어 데이터 및 MAC을 획득하는 처리; (c) 상기 제i 펌웨어 데이터의 MAC을 상기 제i 펌웨어 데이터의 상기 MAC 연쇄값, 상기 길이 정보 및 상기 제i 펌웨어 데이터를 제1 MAC 생성 알고리즘을 이용하여 연산하여 생성된 값과 비교하여, 상기 제i 펌웨어 데이터의 상기 MAC 연쇄값, 상기 길이 정보 및 상기 제i 펌웨어 데이터를 인증하는 처리; (d) 상기 제i 펌웨어 데이터의 상기 MAC 연쇄값과 제2 MAC 생성 알고리즘을 이용하여 상기 제i 펌웨어 데이터의 순서를 인증하는 처리; 및 (e) 상기 처리 (a) 내지 상기 처리 (d)를 수행하는 것에 의해서 획득되는 제1 펌웨어 데이터 내지 제n 펌웨어 데이터를 결합하여 상기 펌웨어를 획득하는 처리를 수행하는 연산 처리부를 포함할 수 있다.
예컨대 본원에서 설명되는 기술에 따른 펌웨어를 제공하는 장치는, (a) 상기 펌웨어를 기초로, 제1 펌웨어 데이터 내지 제n 펌웨어 데이터(단 n은 2이상의 자연수)를 생성하는 처리; (b) 상기 펌웨어의 분할 정보, 제i 펌웨어 데이터(단, i는 1이상 n이하의 자연수)의 MAC 연쇄값, 길이 정보, 상기 제i 펌웨어 데이터 및 MAC을 포함하는 제i 데이터를 생성하는 처리; 및 (c) 상기 제i 데이터를 상기 멀티캐스트 그룹 내의 상기 복수의 장치로 멀티캐스트 방식을 이용하여 전송하는 처리를 수행하는 연산 처리부를 포함할 수 있다.
본원에서 설명되는 기술의 제1 실시예 및 제2 실시예를 참조로 설명된 특징들은 펌웨어를 수신하는 장치 및 펌웨어를 제공하는 장치에 마찬가지로 적용될 수 있다.
따라서 본 명세서에 설명된 실시예들은 본원에서 설명되는 기술을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본원에서 설명되는 기술의 사상과 범위가 한정되는 것은 아니다. 본원에서 설명되는 기술의 권리 범위는 아래의 청구범위에 의해 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술은 본원에서 설명되는 기술의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.
본원에서 설명되는 기술에 따르면, 멀티캐스트 방식을 이용하여 펌웨어를 수신하더라도 펌웨어의 위변조 여부를 용이하게 확인할 수 있다. 또한 연산 처리 성능이 낮은 장치에서도, 멀티캐스트 방식을 이용하여 펌웨어 데이터를 수신할 수 있다. 또한 본원에서 설명되는 기술에 따르면, 멀티캐스트 방식을 이용하여 펌웨어를 전송하더라도 펌웨어의 위변조를 방지할 수 있도록 전송할 수 있다.

Claims (18)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/127,420 US20230229776A1 (en) 2021-12-21 2023-03-28 Method for receiving firmware and method for transmitting firmware

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2021-0183354 2021-12-21
KR1020210183354A KR102411841B1 (ko) 2021-12-21 2021-12-21 펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/127,420 Continuation US20230229776A1 (en) 2021-12-21 2023-03-28 Method for receiving firmware and method for transmitting firmware

Publications (1)

Publication Number Publication Date
WO2023120852A1 true WO2023120852A1 (ko) 2023-06-29

Family

ID=82217141

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/010519 WO2023120852A1 (ko) 2021-12-21 2022-07-19 펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법

Country Status (3)

Country Link
US (1) US20230229776A1 (ko)
KR (1) KR102411841B1 (ko)
WO (1) WO2023120852A1 (ko)

Families Citing this family (1)

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

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 고려대학교 산학협력단 실시간 데이터 전송을 위한 블록 암호 장치 및 방법
KR102411841B1 (ko) * 2021-12-21 2022-06-22 주식회사 유니온플레이스 펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 주식회사 시옷 저전력 무선네트워크를 이용한 펌웨어 업데이트 방법
KR102411841B1 (ko) * 2021-12-21 2022-06-22 주식회사 유니온플레이스 펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법

Also Published As

Publication number Publication date
US20230229776A1 (en) 2023-07-20
KR102411841B1 (ko) 2022-06-22

Similar Documents

Publication Publication Date Title
WO2023120906A1 (ko) 펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법
US11134100B2 (en) Network device and network system
US7457410B2 (en) Transmission/reception system
WO2011021883A2 (en) Method and apparatus for reducing overhead for integrity check of data in wireless communication system
WO2018151390A1 (ko) 사물 인터넷 장치
WO2021003975A1 (zh) 网关接口测试方法、终端设备、存储介质及装置
WO2010128747A1 (ko) 지그비 무선 통신 프로토콜상에서의 보안성 강화 방법 및 장치
WO2023120852A1 (ko) 펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법
WO2018000674A1 (zh) 网络连接方法、网络连接装置和终端
WO2012093900A2 (en) Method and device for authenticating personal network entity
WO2019221419A1 (ko) 하드웨어 보안 모듈
JP3263877B2 (ja) 暗号ゲートウェイ装置
WO2022235007A1 (ko) 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
JP2017121091A (ja) Ecu、及び車用ネットワーク装置
WO2019182377A1 (ko) 블록체인 기반 암호화폐의 트랜잭션에 이용되는 주소 정보 생성 방법, 전자 장치 및 컴퓨터 판독 가능한 기록 매체
WO2018062613A1 (ko) 스마트미터의 일괄 파라미터 설정을 위한 원격 관리 시스템 및 그 방법
WO2015178597A1 (ko) Puf를 이용한 비밀키 업데이트 시스템 및 방법
WO2022059897A1 (ko) 푸시-투-토크 장치
JP2018182767A (ja) Ecu、ネットワーク装置、及び車用ネットワーク装置
WO2023113168A1 (ko) 데이터의 보안 통신 방법
WO2016111407A1 (ko) 단말 세션의 복원 기능을 구비한 네트워크 통신 방법
WO2020242062A1 (ko) 멀티캐스트 그룹 내의 구독자에게 키 데이터를 전송하는 디바이스
WO2018004114A2 (ko) 프록시 서비스 제공을 위한 프록시 인증시스템 및 인증방법
CN111586017A (zh) 通信用户认证的方法和装置
WO2020067734A1 (ko) 넌어드레스 네트워크 장비 및 이를 이용한 통신 보안 시스템

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22911492

Country of ref document: EP

Kind code of ref document: A1