USPatent applicationPatented

Apparatus and method for verifying integrity of firmware of embedded system

Granted 28 Apr 2015 · 1 office action

Current assignee: Electronics And Telecommunications Research Institute · originally Electronics and Telecommunications Research Institute

Law firm: Law firm · Log in to unlock

Attorney: Attorney · Log in to unlock

Inventors: Jin-Ha Hwang, Bon-Seok Koo, Sang-Woo Park, Jae-Woo Han +4 · Examiner: David Pearson · AU 2438 · TC 2400

Life of the application

9 dated events
⤢ drag to zoom20142016201820202022202420262028203020322034ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

An apparatus and method for verifying the integrity of firmware of an embedded system is provided. The apparatus for verifying the integrity of firmware of an embedded system includes a target integrity code obtainment unit for obtaining a target integrity code of firmware of the embedded system. A source integrity code obtainment unit obtains a source integrity code of source firmware. An integrity determination unit determines whether integrity of the firmware of the embedded system is maintained, by using the target integrity code and the source integrity code.

Description

7 parts
›CROSS REFERENCE TO RELATED APPLICATION

This application claims the benefit of Korean Patent Application No. 10-2012-0138417, filed on Nov. 30, 2012, which is hereby incorporated by reference in its entirety into this application.

›BACKGROUND OF THE INVENTION

1. Technical Field

The present invention relates generally to the verification of the integrity of firmware of an embedded system and, more particularly, to an apparatus and method for verifying the integrity of firmware of an embedded system based on the comparison of integrity codes.

2. Description of the Related Art

Damage from the hacking of an Operating System (OS) is an increasingly common problem. Even in the case of an embedded system, damage from firmware forgery may be caused, similarly to the hacking of the OS. In particular, if, among embedded systems, network components, such as a router, a switch, a printer, and a scanner, are targeted by firmware forgery, damage as serious as that which results from the hacking of the OS may be caused.

Generally, an apparatus for verifying the integrity of firmware of an embedded system is configured in a server-client structure, and is problematic in that forgery may occur during a procedure for receiving a program from a server.

Korean Patent Application Publication No. 2006-0119967 discloses technology for storing an integrity verification program from a server in an embedded system that is a client, receiving a response from the integrity verification program, and then verifying integrity.

However, the above conventional technology merely presents technology for simply receiving a response from the integrity verification program, and neither discloses nor suggests a detailed configuration for comparing the integrity code of the firmware of the embedded system with the integrity code of source firmware. Further, the conventional technology presents technology for merely storing the integrity verification program in the embedded system, and neither discloses nor suggests a detailed configuration for storing a program for calculating an integrity code in the execution memory of the embedded system. Furthermore, the conventional technology does not describe a configuration that can be applied even to an embedded system incapable of accessing a network, by utilizing communication interfaces such as a Universal Serial Bus (USB), a Universal Asynchronous Receiver/Transmitter (UART), and the Ethernet.

Therefore, new technology for verifying the integrity of firmware of an embedded system is required which can determine whether the firmware of the embedded system is the latest version and has been forged, by comparing the integrity code of the firmware of the embedded system with the integrity code of source firmware, can solve the problem of program forgery occurring in a server-client structure by storing a program for calculating an integrity code in the execution memory of the embedded system and by utilizing the integrity code calculated by executing the program, and can perform integrity verification even on an embedded system incapable of accessing a network, by utilizing communication interfaces such as a USB, a UART, and the Ethernet.

›SUMMARY OF THE INVENTION

Accordingly, the present invention has been made keeping in mind the above problems occurring in the prior art, and an object of the present invention is to enable integrity verification in such a way as to determine whether the firmware of an embedded system is the latest version and has been forged, by comparing the integrity code of the embedded system with the integrity code of source firmware.

Another object of the present invention is to solve the problem of program forgery occurring in a server-client structure and to enable integrity verification with higher security by storing a program for calculating an integrity code in the execution memory of an embedded system and by utilizing the integrity code calculated by executing the program.

A further object of the present invention is to enable integrity verification to be performed even on an embedded system incapable of accessing a network, by utilizing communication interfaces such as a USB, a UART, and the Ethernet.

In accordance with an aspect of the present invention to accomplish the above objects, there is provided an apparatus for verifying integrity of firmware of an embedded system, including a target integrity code obtainment unit for obtaining a target integrity code of firmware of the embedded system; a source integrity code obtainment unit for obtaining a source integrity code of source firmware; and an integrity determination unit for determining whether integrity of the firmware of the embedded system is maintained, by using the target integrity code and the source integrity code.

Preferably, the target integrity code obtainment unit may store a program for calculating an integrity code in execution memory of the embedded system, and obtain the target integrity code calculated by executing the program.

Preferably, the target integrity code obtainment unit may determine whether a checksum of the program is normal and store the program in the execution memory if it is determined that the checksum of the program is normal.

Preferably, the target integrity code obtainment unit may include a communication interface for transmitting an execution signal for the program to the embedded system and receiving the target integrity code from the embedded system.

Preferably, the communication interface may include one or more of a Universal Serial Bus (USB), a Universal Asynchronous Receiver/Transmitter (UART), and an Ethernet.

Preferably, the apparatus may further include a screen display unit for displaying information about whether the integrity of the firmware of the embedded system is maintained on a screen.

Preferably, the target integrity code obtainment unit may include a program database for storing and updating the program, and the source integrity code obtainment unit may include a firmware database for storing and updating the source firmware.

Preferably, the firmware database may store and update the source integrity code of the source firmware.

Preferably, the integrity determination unit may compare the target integrity code with the source integrity code, and determine in different manners whether the integrity is maintained depending on whether the target integrity code is found to be identical to the source integrity code as a result of the comparison.

Preferably, the integrity determination unit may determine that the integrity is maintained if the target integrity code is found to be identical to the source integrity code as a result of the comparison, and determine that the integrity is not maintained if the target integrity code is not found to be identical to the source integrity code as a result of the comparison.

In accordance with another aspect of the present invention to accomplish the above objects, there is provided a method for verifying integrity of firmware of an embedded system, including obtaining a target integrity code of firmware of the embedded system; obtaining a source integrity code of source firmware; and determining whether integrity of the firmware of the embedded system is maintained, by using the target integrity code and the source integrity code.

Preferably, obtaining the target integrity code may be configured to store a program for calculating an integrity code in execution memory of the embedded system, and obtain the target integrity code calculated by executing the program.

Preferably, obtaining the target integrity code may be configured to determine whether a checksum of the program is normal, and store the program in the execution memory if it is determined that the checksum of the program is normal.

Preferably, obtaining the target integrity code may be configured to include a communication interface for transmitting an execution signal for the program to the embedded system and receiving the target integrity code from the embedded system.

Preferably, the communication interface may include one or more of a Universal Serial Bus (USB), a Universal Asynchronous Receiver/Transmitter (UART), and an Ethernet.

Preferably, the method may further include displaying information about whether the integrity of the firmware of the embedded system is maintained on a screen.

Preferably, obtaining the target integrity code may be configured to include a program database for storing and updating the program, and obtaining the source integrity code may be configured to include a firmware database for storing and updating the source firmware.

Preferably, the firmware database may store and update the source integrity code of the source firmware.

Preferably, determining whether the integrity of the firmware of the embedded system is maintained may be configured to compare the target integrity code with the source integrity code, and determine in different manners whether the integrity is maintained depending on whether the target integrity code is found to be identical to the source integrity code as a result of the comparison.

Preferably, determining whether the integrity of the firmware of the embedded system is maintained may be configured to determine that the integrity is maintained if the target integrity code is found to be identical to the source integrity code as a result of the comparison, and determine that the integrity is not maintained if the target integrity code is not found to be identical to the source integrity code as a result of the comparison.

›BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objects, features and advantages of the present invention will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings, in which:

FIG. 1 is a block diagram showing an apparatus for verifying the integrity of firmware of an embedded system according to an embodiment of the present invention;

FIG. 2 is a diagram showing an embodiment of a system to which the apparatus for verifying the integrity of firmware of the embedded system according to the present invention is applied;

FIG. 3 is an operating flowchart showing a method for verifying the integrity of firmware of an embedded system according to an embodiment of the present invention; and

FIG. 4 is an operating flowchart showing a target integrity code obtainment step shown in FIG. 3 .

›DESCRIPTION OF THE PREFERRED EMBODIMENTS · 1 of 3

The present invention will be described in detail below with reference to the accompanying drawings. In the following description, redundant descriptions and detailed descriptions of known functions and elements that may unnecessarily make the gist of the present invention obscure will be omitted. Embodiments of the present invention are provided to fully describe the present invention to those having ordinary knowledge in the art to Which the present invention pertains. Accordingly, in the drawings, the shapes and sizes of elements may be exaggerated for the sake of clearer description.

Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the attached drawings.

FIG. 1 is a block diagram showing an apparatus for verifying the integrity of firmware of an embedded system according to an embodiment of the present invention.

Referring to FIG. 1 , the apparatus for verifying the integrity of firmware of an embedded system 220 (see FIG. 2 ) according to an embodiment of the present invention includes a target integrity code obtainment unit 110 , a source integrity code obtainment unit 120 , an integrity determination unit 130 , and a screen display unit 140 .

The target integrity code obtainment unit 110 obtains the target integrity code of the embedded system 220 .

Here, the embedded system 220 denotes any of various systems including firmware, and may include any one of, for example, a camcorder, a scanner, a printer, a router, a facsimile, and a smart device.

The integrity code ma y include a Hash-based Message Authentication Code (HMAC).

The target integrity code obtainment unit 110 may store a program for calculating an integrity code in the execution memory of the embedded system 220 , and may obtain a target integrity code calculated by executing the program.

In this case, the target integrity code obtainment unit 110 may determine whether the checksum of the program is normal, and may store the program in the execution memory if it is determined that the checksum of the program is normal.

The checksum may be the sum of all data values of the program.

As described above, the apparatus for verifying the integrity of the firmware of the embedded system 220 according to the embodiment of the present invention stores the program in the execution memory and utilizes the target integrity code calculated by executing the program, thus solving the problem of program forgery occurring in a server-client structure and enabling integrity verification with higher security to be performed.

The target integrity code obtainment unit 110 may include a communication interface 230 (see FIG. 2 ) for transmitting an execution signal for the program to the embedded system 220 and for receiving the target integrity code from the embedded system 220 .

The communication interface 230 may include one or more of a Universal Serial Bus (USB), a Universal Asynchronous Receiver/Transmitter (UART), and the Ethernet.

As described above, the apparatus for verifying the integrity of the firmware of the embedded system 220 according to the embodiment of the present invention can verify the integrity of even an embedded system 220 incapable of accessing the network, by utilizing the communication interface 230 .

Further, the target integrity code obtainment unit 110 may include a program database (DB) for storing and updating the program.

The source integrity code obtainment unit 120 obtains the source integrity code of source firmware.

In this case, the source integrity code obtainment unit 120 may include a firmware DB for storing and updating the source firmware.

The firmware DB may store and update the source integrity code of the source firmware.

The integrity determination unit 130 determines whether the integrity of the firmware of the embedded system 220 is maintained, by using the target integrity code and the source integrity code.

In this case, the integrity determination unit 130 may compare the target integrity code with the source integrity code and may determine in different manners whether the integrity is maintained depending on whether the target integrity code is found to be identical to the source integrity code as a result of the comparison.

If the target integrity code is found to be identical to the source integrity code as a result of the comparison, the integrity determination unit 130 may determine that the integrity is maintained, whereas if the target integrity code is not found to be identical to the source integrity code as a result of the comparison, the integrity determination unit 130 may determine that the integrity is not maintained.

As described above, the apparatus for verifying the integrity of the firmware of the embedded system 220 according to the embodiment of the present invention may perform integrity verification in such a way as to determine whether the firmware of the embedded system 220 is the latest version and has been forged, by comparing the target integrity code with the source integrity code.

The screen display unit 140 displays information about whether the integrity of the firmware of the embedded system 220 is maintained on a screen.

FIG. 2 is a diagram showing an embodiment of a system to which the apparatus for verifying the integrity of firmware of the embedded system 220 according to the present invention is applied.

Referring to FIG. 2 , the system to which the apparatus for verifying the integrity of the firmware of the embedded system 220 according to the present invention is applied includes an external device 210 , the embedded system 220 , and a communication interface 230 .

The external device 210 includes the apparatus for verifying the integrity of the firmware of the embedded system 220 according to the present invention.

The apparatus for verifying the integrity of the firmware of the embedded system 220 according to the present invention may include a target integrity code obtainment unit 110 , a source integrity code obtainment unit 120 , and an integrity determination unit 130 .

›DESCRIPTION OF THE PREFERRED EMBODIMENTS · 2 of 3

The target integrity code obtainment unit 110 obtains the target integrity code of the firmware of the embedded system 220 .

The integrity code may include Hash-based Message Authentication Code (HMAC).

In this case, the target integrity code obtainment unit 110 may store a program for calculating an integrity code in the execution memory of the embedded system 220 and may obtain the target integrity code calculated by executing the program.

Further, the target integrity code obtainment unit 110 may determine whether the checksum of the program is normal, and store the program in the execution memory if it is determined that the checksum of the program is normal.

Here, the checksum may be the sum of all data values of the program.

The target integrity code obtainment unit 110 includes the communication interface 230 for transmitting an execution signal for the program to the embedded system 220 and receiving the target integrity code from the embedded system 220 .

Further, the target integrity code obtainment unit 110 may include a program DB for storing and updating the program.

The source integrity code obtainment unit 120 obtains the source integrity code of source firmware.

In this case, the source integrity code obtainment unit 120 may include a firmware DB for storing and updating the source firmware.

The firmware DB may store and update the source integrity code of the source firmware.

The integrity determination unit 130 determines whether the integrity of the firmware of the embedded system 220 is maintained, by using the target integrity code and the source integrity code.

In this case, the integrity determination unit 130 may compare the target integrity code with the source integrity code and may determine in different manners whether the integrity is maintained depending on whether the target integrity code is found to be identical to the source integrity code as a result of the comparison.

In detail, if the target integrity code is found to be identical to the source integrity code as a result of the comparison, the integrity determination unit 130 may determine that the integrity is maintained, whereas if the target integrity code is not found to be identical to the source integrity code as a result of the comparison, the integrity determination unit 130 may determine that the integrity is not maintained.

The embedded system 220 denotes any of various systems including firmware, and may include any one of a camcorder, a scanner, a printer, a router, a facsimile, and a smart device.

The communication interface 230 may include one or more of a USB, a UART, and the Ethernet.

As described above, the apparatus for verifying the integrity of the firmware of the embedded system 220 according to the embodiment of the present invention may verify the integrity of an embedded system 220 incapable of accessing the network, by utilizing the communication interface 230 .

FIG. 3 is an operating flowchart showing a method for verifying the integrity of firmware of the embedded system 220 according to an embodiment of the present invention.

Referring to FIG. 3 , in the method for verifying the integrity of the firmware of the embedded system 220 according to an embodiment of the present invention, the target integrity code of the firmware of the embedded system is obtained at step S 310 .

In this case, the embedded system 220 denotes any of various systems including firmware, and may include any one of, for example, a camcorder, a scanner, a printer, a router, a facsimile, and a smart device.

The integrity code may include a Hash-based Message Authentication Code (HMAC).

In this case, step S 310 may be configured to store a program for calculating an integrity code in the execution memory of the embedded system 220 , and obtain the target integrity code calculated by executing the program.

Here, step S 310 may be configured to determine whether the checksum of the program is normal, and store the program in the execution memory if the checksum of the program is normal.

The checksum may be the sum of all data values of the program.

As described above, the method for verifying the integrity of the firmware of the embedded system 220 according to the embodiment of the present invention may store the program in the execution memory, and utilize the target integrity code calculated by executing the program, thus solving the problem of program forgery occurring in a server-client structure and enabling integrity verification with higher security to be performed.

Further, step S 310 may be configured to include a communication interface 230 for transmitting an execution signal for the program to the embedded system 220 and receiving the target integrity code from the embedded system 220 .

Here, the communication interface 230 may include one or more of a USB, a UART, and the Ethernet.

In this way, the method for verifying the integrity of the firmware of the embedded system 220 according to the embodiment of the present invention may verify the integrity of even an embedded system 220 incapable of accessing the network, by utilizing the communication interface 230 .

Further, step S 310 may be configured to include a program DB for storing and updating the program.

Next, in the method for verifying the integrity of the firmware of the embedded system 220 according to the embodiment of the present invention, the source integrity code of source firmware is obtained at step S 320 .

In this case, step S 320 may be configured to include a firmware DB for storing and updating the source firmware.

The firmware DB may store and update the source integrity code of the source firmware.

Next, in the method for verifying the integrity of the firmware of the embedded system 220 according to the embodiment of the present invention, it is determined whether the integrity of the firmware of the embedded system is maintained, by using the target integrity code and the source integrity code at step S 330 .

In this case, step S 330 may be configured to compare the target integrity code with the source integrity code, and determine in different manners whether the integrity is maintained depending on whether the target integrity code is found to be identical to the source integrity code as a result of the comparison.

›DESCRIPTION OF THE PREFERRED EMBODIMENTS · 3 of 3

In detail, step S 330 may be configured to, if the target integrity code is found to be identical to the source integrity code as a result of the comparison, determine that the integrity is maintained, and if the target integrity code is not found to be identical to the source integrity code as a result of the comparison, determine that the integrity is not maintained.

In this way, the method for verifying the integrity of the firmware of the embedded system 220 according to the embodiment of the present invention may perform integrity verification in such a way as to determine whether the firmware of the embedded system 220 is the latest version and has been forged, by comparing the target integrity code with the source integrity code.

Next, in the method for verifying the integrity of the firmware of the embedded system 220 according to the embodiment of the present invention, information about whether the integrity of the firmware of the embedded system 220 is maintained is displayed on the screen at step S 340 .

FIG. 4 is an operating flowchart showing the target integrity code obtainment step S 310 shown in FIG. 3 .

Referring to FIG. 4 , at the target integrity code obtainment step S 310 shown in FIG. 3 , it is determined whether the checksum of a program for calculating an integrity code is normal at step S 311 .

Here, the checksum may be the sum of all data values of the program.

Further, at the target integrity code obtainment step S 310 shown in FIG. 3 , the program is stored in the execution memory of the embedded system 220 at step S 312 .

Next, at the target integrity code obtainment step S 310 shown in FIG. 3 , the target integrity code calculated by executing the program is received at step S 313 .

As described above, the method for verifying the integrity of the firmware of the embedded system 220 according to the embodiment of the present invention may store the program in the execution memory, and utilize the target integrity code calculated by executing the program, thus solving the problem of program forgery occurring in a server-client structure, and enabling integrity verification with higher security to be performed.

As described above, the present invention can perform integrity verification in such a way as to determine whether the firmware of an embedded system is the latest version and has been forged, by comparing the integrity code of the embedded system with the integrity code of source firmware.

Further, the present invention can solve the problem of program forgery occurring in a server-client structure and can perform integrity verification with higher security by storing a program for calculating an integrity code in the execution memory of an embedded system and by utilizing the integrity code calculated by executing the program.

Furthermore, the present invention can perform integrity verification even on an embedded system incapable of accessing a network, by utilizing communication interfaces such as a USB, a UART, and the Ethernet.

As described above, in the apparatus and method for verifying the integrity of firmware of an embedded system according to the present invention, the configurations and schemes in the above-described embodiments are not limitedly applied, and some or all of the above embodiments can be selectively combined and configured so that various modifications are possible.

Claims as granted

14 claims

Log in to read the claims of this application.

Log in to unlock

Classifications

3 codes
IPC · International Patent Classification
Section G — Physics
  • G06F21/57
  • G06F21/64
USPC · US Patent Classification
726/30

Claim changes

Soon
Coming soonHow the claims changed between publication and grant

See which claims were amended, added or cancelled during examination, with every added and removed word marked.

AmendedAddedCancelledUnchanged

The published claims of this application are not paired with the granted ones in what we hold.

File wrapper

⤢ drag to zoomJul 2013Oct 2013Jan 2014Apr 2014Jul 2014Oct 2014Jan 2015Apr 2015USPTOApplicantNon-final rejectionResponse after non-finalNotice of allowance
USPTOApplicanthover for detail · click to open
Pendency
1.8 y
653 days filing → grant
Office actions
1
non-final + final
Responses
1
no RCE
Examiner
David Pearson
art unit 2438 · TC 2400
Citations: 8 back · 1 forward

See the full prosecution history — every USPTO and applicant action on this file, in order.

Log in to unlock

Documents

Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.

Log in to unlock

Chain of title

⤢ drag to zoom20142016201820202022202420262028203020322034Owner 1Owner 2
Titlehover for detail · click to open

See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.

Log in to unlock