KR20080039046A - Firmware update device and method - Google Patents
Firmware update device and method Download PDFInfo
- Publication number
- KR20080039046A KR20080039046A KR1020060106703A KR20060106703A KR20080039046A KR 20080039046 A KR20080039046 A KR 20080039046A KR 1020060106703 A KR1020060106703 A KR 1020060106703A KR 20060106703 A KR20060106703 A KR 20060106703A KR 20080039046 A KR20080039046 A KR 20080039046A
- Authority
- KR
- South Korea
- Prior art keywords
- firmware
- file
- signature
- authenticated
- update
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Description
도 1은 종래의 펌웨어 업데이트 방법을 도시한 플로우차트이다.1 is a flowchart illustrating a conventional firmware update method.
도 2는 본 발명의 일 실시예에 따른 펌웨어 업데이트 장치를 도시한 블록 다이어그램이다.2 is a block diagram illustrating a firmware update apparatus according to an embodiment of the present invention.
도 3은 도 2에 도시된 펌웨어 업데이트 장치의 구체적 구성을 도시한 블록 다이어그램이다.3 is a block diagram showing a specific configuration of the firmware update apparatus shown in FIG.
도 4는 본 발명의 일 실시예에 따른 펌웨어를 도시한 도면이다.4 is a diagram illustrating firmware according to an embodiment of the present invention.
도 5는 본 발명의 일 실시예에 따른 펌웨어 업데이트 방법을 도시한 플로우차트이다.5 is a flowchart illustrating a firmware update method according to an embodiment of the present invention.
도 6은 본 발명의 일 실시예에 따른 임베디드 시스템 내의 펌웨어 업데이트 방법을 도시한 플로우 차트이다.6 is a flowchart illustrating a firmware update method in an embedded system according to an exemplary embodiment of the present invention.
본 발명은 펌웨어(firmware)에 관한 것으로, 보다 상세하게는 펌웨어를 업데이트하는 장치 및 방법에 관한 것이다.The present invention relates to firmware, and more particularly, to an apparatus and a method for updating firmware.
임베디드 시스템이라 함은 일반적인 컴퓨터가 아닌 각종 전자제품이나 정보기기 등에 설치되어 있는 마이크로프로세서에 미리 정해진 특정한 기능만을 수행하는 S/W를 내장시킨 시스템을 말한다.The embedded system refers to a system in which S / W that performs only a predetermined specific function is embedded in a microprocessor installed in various electronic products or information devices, not a general computer.
즉, 임베디드 시스템은 산업 및 군사용 제어기기, 디지털 정보 가전기기, 자동 센서 장비 등의 기능을 다양화하고 부가가치를 높이기 위한 핵심 시스템으로, 일상 생활 속에서 쉽게 접할 수 있는 휴대폰, TV, 세탁기, DVD 플레이어, MP3 플레이어, 캠코더, 디지털 카메라 등과 같은 가전 기기가 있다. 뿐만 아니라, 승강기, 항공기, 의료기기, 기차, 통신 장비(교환기, 라우터 등)도 임베디드 시스템에 포함된다.In other words, the embedded system is a core system for diversifying functions and increasing added value of industrial and military control devices, digital information appliances, automatic sensor equipment, etc., which are easily accessible in everyday life such as mobile phones, TVs, washing machines, and DVD players. Consumer electronics devices such as MP3 players, camcorders, digital cameras and the like. In addition, elevators, aircraft, medical devices, trains and telecommunications equipment (exchangers, routers, etc.) are included in embedded systems.
통상적으로 다양한 기능을 수행하는 시스템, 특히 임베디드 시스템은 해당 기능을 수행하기 위한 펌웨어를 내장한다. 펌웨어는 일반적으로 롬(ROM), 즉 플래시 메모리에 저장된 하드웨어를 제어하는 마이크로 프로그램을 의미한다. 프로그램이라는 관점에서 소프트웨어와 동일하지만, 하드웨어와 밀접한 관계를 가지고 있다는 점에서 펌웨어는 일반 응용 소프트웨어와 구분되며, 소프트웨어와 하드웨어의 특성을 모두 가지고 있다고 할 수 있다. Typically, systems that perform a variety of functions, particularly embedded systems, have built-in firmware to perform those functions. Firmware generally refers to a microprogram that controls hardware stored in ROM, or flash memory. It is the same as software in terms of a program, but firmware is distinguished from general application software in that it is closely related to hardware, and can be said to have both software and hardware characteristics.
예를 들어, 어떤 기능을 발휘하는 하드웨어를 만든다고 할 때, 그것을 제어하는 모든 회로를 하드웨어로만 만든다면, 그 구조도 매우 복잡해지고 심지어는 논리적인 표현을 하기 어려운 부분도 발생한다. 이런 경우 상당부분을 소프트웨어로 대체하되, 그 소프트웨어가 저장된 기억 장치를 하드웨어의 중심부분으로 구성하면, 매우 간단하면서도 적은 비용으로 문제를 해결할 수 있게 된다. 이렇게 만든 하드웨어적인 소프트웨어를 펌웨어라고 한다. For example, if you make hardware that functions, if you make all the circuits that control it in hardware, the structure becomes very complicated and even difficult to express logically. In this case, a large part of the software can be replaced, but if the storage device where the software is stored is configured as a central part of the hardware, the problem can be solved very simply and at low cost. The hardware software thus created is called firmware.
펌웨어는 운영 체제(Operating System)와 같은 대규모의 프로그램을 사용하기 보다는 소규모의 단일 프로그램을 탑재하기 위해 많이 사용된다. 이와 같이 펌웨어는 소규모의 프로그램이기 때문에, 펌웨어 자체의 오류 개선이나 시스템의 성능 향상, 기능 추가 등의 목적으로 수시로 업데이트 될 수 있다.Firmware is often used to load a single, small program rather than a large program, such as an operating system. Thus, since the firmware is a small program, the firmware can be updated from time to time for the purpose of improving the error of the firmware itself, improving the performance of the system, or adding a function.
이하에서는 첨부도면을 참조하여 상술한 펌웨어를 업데이트하기 위한 종래의 방법에 대해 살펴본다.Hereinafter, a conventional method for updating the above-described firmware will be described with reference to the accompanying drawings.
도 1은 종래의 펌웨어 업데이트 방법을 도시한 플로우차트이다.1 is a flowchart illustrating a conventional firmware update method.
단계 110에서는 시스템의 제어부가 사용자로부터 펌웨어 업데이트 실행 명령을 받는다. 단계 120에서는 사용자가 업데이트할 펌웨어를 다운로드한다.In
이러한 종래의 펌웨어 업데이트 방법은 시스템의 펌웨어를 임의로 추출, 수정하여 기기의 본연의 목적을 벗어나 악의적으로 사용될 수 있는 여지가 있다. 예를 들어, 저작권이 있는 컨텐츠를 보호해야할 시스템의 펌웨어를 수정하여, 컨텐츠 보호에 해가 되게 할 수 있는 문제점이 있다.Such a conventional firmware update method may leave the system's firmware arbitrarily and may be used maliciously beyond the original purpose of the device. For example, there is a problem that can modify the firmware of the system to protect the copyrighted content, which may harm the content protection.
따라서, 전술한 문제점을 해결하기 위한 본 발명의 목적은, 인증된 펌웨어만을 다운로드하는 펌웨어 업데이트 장치 및 방법을 제공하는 데 있다.Accordingly, an object of the present invention for solving the above problems is to provide a firmware update apparatus and method for downloading only the authenticated firmware.
또한 본 발명은 인증된 펌웨어만을 시스템에 장착하여, 시스템의 오용을 막고, 무단으로 펌웨어 내의 컨텐츠를 저장 또는 배포하는 것을 막기 위한 것이며, 컨텐츠의 훼손으로 인해 시스템의 제조 회사가 컨텐츠 저작권자로부터 책임을 요구 하는 불미스러운 일을 미연에 방지하는 것을 목적으로 한다.In addition, the present invention is to prevent the misuse of the system, and to prevent unauthorized storage or distribution of the contents in the firmware by mounting only the authorized firmware in the system, and the manufacturer of the system demands responsibility from the contents copyright holder due to the damage of the contents. It aims to prevent unpleasant things to be done.
상기 기술적 과제는 본 발명에 따른 시스템의 펌웨어 업데이트 장치에 있어서, 업데이트 실행 명령을 받은 펌웨어의 인증 여부를 판단하여, 인증된 펌웨어만 다운로드 하는 제어부; 및 상기 제어부에 의해서, 상기 인증된 펌웨어가 저장되는 메모리부를 포함하는 것을 특징으로 하는 펌웨어 업데이트 장치에 의해 달성된다.According to an aspect of the present invention, there is provided an apparatus for updating a firmware of a system according to an embodiment of the present invention, comprising: a control unit for determining whether or not to authenticate an firmware that receives an update execution command and downloading only the authenticated firmware; And a memory unit in which the authenticated firmware is stored by the controller.
상기 제어부는 상기 펌웨어에 포함된 인증용 서명을 이용하여 인증 여부를 판단하는 것이 바람직하다.The control unit may determine whether to authenticate using an authentication signature included in the firmware.
상기 펌웨어 업데이트 장치는 상기 펌웨어의 인증 여부를 판단하기 위한 공개키(public key)를 더 포함하며, 상기 제어부는 상기 다운로드할 펌웨어의 파일코드 상의 인증용 서명과, 상기 공개키를 이용하여 계산된 서명을 비교하여, 상기 펌웨어의 파일코드 상의 인증용 서명과 상기 계산된 서명이 일치하는 경우에만, 상기 펌웨어를 다운로드하는 것이 바람직하다. The firmware update apparatus further includes a public key for determining whether the firmware is authenticated, and the controller is configured to use a signature for authentication on a file code of the firmware to be downloaded and a signature calculated using the public key. In comparison, it is preferable to download the firmware only when the signature for authentication on the file code of the firmware and the calculated signature match.
한편, 상기 기술적 과제는, 본 발명의 다른 분야에 따라, 시스템의 펌웨어 업데이트 방법에 있어서, 펌웨어 업데이트 실행 명령을 받는 단계; 상기 업데이트 명령받은 펌웨어 파일의 인증 여부를 판단하는 단계; 및 상기 다운로드할 펌웨어 파일이 인증된 것인 경우에, 상기 펌웨어 파일을 다운로드하는 단계로 구성되는 것을 특징으로 하는 펌웨어 업데이트 방법에 의해서도 달성된다.On the other hand, the technical problem, according to another field of the present invention, in the firmware update method of the system, receiving a firmware update execution command; Determining whether the firmware file received the update command is authenticated; And downloading the firmware file if the firmware file to be downloaded is authenticated.
상기 업데이트 명령받은 펌웨어 파일의 인증 여부를 판단하는 단계는, 상기 펌웨어 포함된 인증용 서명을 이용하여 상기 펌웨어 파일의 인증 여부를 판단하는 단계를 포함하는 것이 바람직하다.The determining of whether the firmware file received the update command is authenticated may include determining whether the firmware file is authenticated using an authentication signature included in the firmware.
상기 업데이트 명령받은 펌웨어 파일의 인증 여부를 판단하는 단계는, 상기 다운로드할 펌웨어의 파일 코드 상의 인증용 서명과, 공개키를 이용하여 계산된 서명이 일치하는지 판단하는 단계를 포함하며, 상기 다운로드 단계는 상기 다운로드할 펌웨어의 파일 코드 상의 인증용 서명과 상기 계산된 서명이 일치하는 경우에 상기 펌웨어 파일을 다운로드하는 단계로 구성되는 것이 바람직하다.Determining whether or not the update command firmware file is authenticated, includes determining whether the authentication signature on the file code of the firmware to be downloaded and the signature calculated using the public key match. And downloading the firmware file when the authentication signature on the file code of the firmware to be downloaded and the calculated signature match.
한편, 본 발명의 다른 분야에 따라, 펌웨어에 있어서, 펌웨어 업데이트 실행시, 펌웨어 업데이트 장치에 의해서 상기 펌웨어 파일의 인증 여부를 판단하기 위해 이용되는 인증용 서명을 포함하는 펌웨어에 의해서도 달성된다.On the other hand, according to another field of the present invention, in the firmware, when the firmware update is executed, it is also achieved by the firmware including an authentication signature used to determine whether the firmware file is authenticated by the firmware updater.
도 2는 본 발명의 일 실시예에 따른 펌웨어 업데이트 장치를 도시한 블록 다이어그램이다.2 is a block diagram illustrating a firmware update apparatus according to an embodiment of the present invention.
본 발명에 의한 펌웨어 업데이트 장치는 제어부(210) 및 메모리부(220)를 포함한다.The firmware updater according to the present invention includes a
제어부(210)는 펌웨어 업데이트 실행 명령을 받고, 업데이트 실행 명령을 받은 펌웨어가 인증된 펌웨어인지를 판단한다. 이때, 인증된 펌웨어인지의 판단은 다운로드할 펌웨어의 인증용 서명과, 인증과정에서 나온 계산된 서명이 일치하는지 여부를 판단하는 것에 의해 수행될 수 있다. 제어부(210)는 다운로드할 펌웨어가 인증된 것인 경우에만, 이를 다운로드한다.The
메모리부(220)는 인증된 펌웨어가 저장되는 장소이다. 메모리부(220)는 보통 플래시 메모리와 RAM으로 구성된다.The
플래시 메모리는 다운로드할 펌웨어가 인증된 것으로 판단되면, 상기 제어부(210)에 의해서 펌웨어를 저장하는 곳이다. 플래시 메모리는 일반적으로, 제어부의 동작 코드 및 데이터, 데이터를 관리하는 파일 시스템 등이 저장되어 있다. 보통 펌웨어의 업데이트를 수행하는 펌웨어 업데이트 프로그램도 플래시 메모리에 저장되어 있다. 플래시 메모리는 비휘발성 메모리로서, 다른 비휘발성 메모리로 대체될 수 있다. If it is determined that the firmware to be downloaded is authenticated, the flash memory is a place for storing the firmware by the
RAM은 펌웨어의 업데이트 시, 펌웨어 다운로드 동작을 위한 코드 및 데이터가 저장되는 장소이다. 시스템의 동작 코드는 플래시 메모리에 저장되어 있으며, 시스템과 구동 시에, 시스템 동작 코드 중에서 필요한 코드 및 데이터를 RAM으로 로드한다. 펌웨어의 업데이트 시에도, 펌웨어 다운로드 동작을 위한 코드 및 데이터를 플래시 메모리로부터 로드하여, RAM에 저장한다. 이때, RAM은 휘발성 메모리로서, 다른 휘발성 메모리로 대체될 수 있다.The RAM is a place where codes and data for a firmware download operation are stored when updating firmware. The operation code of the system is stored in the flash memory. When the system and the drive are executed, the necessary code and data among the system operation codes are loaded into the RAM. Even during the firmware update, the code and data for the firmware download operation are loaded from the flash memory and stored in the RAM. In this case, the RAM is a volatile memory and may be replaced with another volatile memory.
도 3은 도 2에 도시된 펌웨어 업데이트 장치의 구체적인 구성을 도시한 블록 다이어그램이다.3 is a block diagram showing a specific configuration of the firmware update apparatus shown in FIG.
본 발명의 일 실시예에 따른 펌웨어 업데이트 장치는 제어부(210) 메모리부(220), 사용자 인터페이스부(350) 및 외부 인터페이스부(360)를 포함한다.The firmware update apparatus according to an embodiment of the present invention includes a
임베디드 시스템에 전원이 들어오면, 제어부(210)의 CPU(310)는 플래시 메모리(330)에 저장되어 있는 동작 코드 및 데이터를 RAM(340)에 로드하여, 코드에 들어 있는 명령어를 수행하게 된다.When the embedded system is powered on, the
제어부(210)의 CPU(310)가 사용자 인터페이스부(350)를 통해서, 사용자로부 터 펌웨어 업데이트 명령을 받으면, 우선 플래시 메모리(320)에 저장되어 있는 펌웨어 다운로딩 실행 코드 및 데이터를 RAM(340)에 로드한다. 플래시 메모리(320)에는 제어부(210)의 전반적인 동작 및 데이터가 저장되어 있는데, 펌웨어 업데이트 실행 프로그램도 함께 저장되어 있는 것이 일반적이다.When the
다음으로, CPU(310)는 다운로드할 펌웨어가 인증된 펌웨어인지 여부를 판단한다. 인증된 펌웨어인지의 판단은 다운로드할 펌웨어의 파일코드 상의 인증용 서명과, 공개키(public key)(320)를 통해 계산된 서명을 비교하는 것에 의해서 수행될 수 있다. 공개키(320)는 파일을 전송하는 측과 수신하는 측 모두가 이용가능한 가능한 키로서, 펌웨어 업데이트 장치의 제어부(210) 또는 메모리부(220)에 포함되거나, 도 3에서처럼 제어부(210) 및 메모리부(220)와는 별도로 펌웨어 업데이트 장치를 구성할 수 있다. 또한 공개키(320)는 펌웨어 파일과 함께 외부로부터 제공받을 수 있다.Next, the
데이터 등을 안전하게 주고 받을 수 있게 하기 위해서 PKI(Public Key Infrastructure) 시스템이 사용되는데, PKI는 공개키 알고리즘을 통해서 암호화 또는 복호화하는 보안시스템 환경을 말한다. 이 환경에서는 한 쌍의 키가 사용되어 보안 유지를 도와주는데, 여기서 말하는 한 쌍의 키는 비대칭 암호화 알고리즘의 키 쌍을 의미하는 것으로 각각 암호화 및 복호화에 사용되는 비밀키(private key)와 공개키(public key)이다. 다시 말해서, 암호화에 사용하는 비밀키와 해독에 사용하는 공개키를 구분하여 두 개의 키로 사용하는 방식이다. Public key infrastructure (PKI) is used to securely send and receive data. PKI refers to a security system environment that encrypts or decrypts through a public key algorithm. In this environment, a pair of keys are used to help maintain security, where a pair of keys refers to a key pair of asymmetric encryption algorithms, which are used for encryption and decryption, respectively. public key). In other words, the secret key used for encryption and the public key used for decryption are distinguished and used as two keys.
펌웨어 파일을 제공하는 자, 즉 펌웨어를 만든 자는 비밀키를 이용하여 다운 로드할 펌웨어 파일의 서명을 생성할 수 있다. 비밀키는 펌웨어를 만들어 제공하는 사람만이 가지기 때문에, 펌웨어 파일의 서명은 해당 펌웨어의 제조자측만이 만들 수 있다. 따라서, 권한이 없는 사람이 임의적으로 파일의 내용을 바꾸고 그에 맞는 서명으로 변경하려고 할 수 없다.The person who provides the firmware file, that is, the creator of the firmware, can generate a signature of the firmware file to download using the secret key. Since the private key is owned by the person who makes and provides the firmware, the signature of the firmware file can only be created by the manufacturer of the firmware. Thus, an unauthorized person cannot arbitrarily change the contents of a file and attempt to change the signature accordingly.
제어부(210)의 CPU(310)는 외부 인터페이스부(360)를 통해 펌웨어 파일 제공자로부터 다운로드할 펌웨어 파일을 우선 읽는다. CPU(310)는 펌웨어 파일을 읽으면서, 공개키(320)를 이용하여 새로운 서명을 계산한다. 다음으로 CPU(310)는 외부 인터페이스부(360)를 통해 제공받은 펌웨어 파일 코드 상의 인증용 서명과, 공개키(320)를 이용하여 계산된 서명이 일치하는지 비교한다. 이 비교 과정에서는 PKI 방식에 의해서, 오직 인증된 펌웨어 파일이 가지는 인증용 서명만이 계산된 서명과 동일한 값을 가질 수 있다.The
다운로드할 펌웨어가 인증된 것으로 판단되면, 즉 펌웨어 파일 코드 상의 인증용 서명과 계산된 서명이 일치하면, 제어부(210)에 의해서 펌웨어가 플래시 메모리(330)에 저장된다. 플래시 메모리(330)에 펌웨어를 저장한 다음에는, CPU(310)는 시스템 실행을 위해서 재부팅 과정을 거치게 된다.When it is determined that the firmware to be downloaded is authenticated, that is, when the signature for authentication on the firmware file code and the calculated signature match, the firmware is stored in the
다운로드할 펌웨어가 인증된 것이 아닌 경우에는, 즉 펌웨어 파일 코드 상의 인증용 서명과 계산된 서명이 일치하지 않는 경우에는, CPU(310)는 사용자 인터페이스부(350)를 통해서 사용자에게 해당 펌웨어가 인증된 것이 아님을 알릴 수 있다. 통지를 받은 사용자는 사용자 인터페이스부(350)를 통해서 펌웨어의 다운로드를 취소하거나 재다운로드를 지시할 수 있다.If the firmware to be downloaded is not authenticated, i.e., if the signature for authentication on the firmware file code and the calculated signature do not match, the
도 4는 본 발명의 일 실시예에 따른 펌웨어의 예를 도시한 도면이다.4 is a diagram illustrating an example of firmware according to an embodiment of the present invention.
펌웨어 내에는 인증용 서명이 포함되어 있는데, 이 인증용 서명과, 공개키(320)를 이용해 계산된 서명과의 일치여부를 비교하여 펌웨어 파일이 인증된 것인지 판단한다.In the firmware, a signature for authentication is included. It is determined whether the firmware file is authenticated by comparing the authentication signature with a signature calculated using the
펌웨어는 주로 이미지 파일의 형태를 포함한다. 임베디드 시스템에서는 실행할 프로그램 코드를 만들면, 이 코드를 마이크로컴퓨터 또는 PC가 사용할 수 있도록 컴파일할 때, 컴파일러(compiler)가 주로 이미지 파일을 만든다. 따라서 임베디드 시스템에서 펌웨어 파일을 시스템의 저장장치, 즉 플래시 메모리(330)로 다운로드할 때의 파일은 주로 이미지 파일이 된다.Firmware mainly includes the form of image files. In an embedded system, when you write program code to run, when you compile this code for use by a microcomputer or PC, the compiler produces an image file. Therefore, in the embedded system, when the firmware file is downloaded to the storage device of the system, that is, the
펌웨어에는 공개키가 포함될 수도 있다. 그러나, 펌웨어 포함된 공개키는 해당 펌웨어의 업데이트를 위한 공개키가 아니라, 다음 번 펌웨어 업데이트시에 사용된 공개키이다. 그 이유는 인증된 펌웨어인 경우에만 다운로드가 가능하므로, 인증된 펌웨어인지 여부가 결정되지 않은 상태에서, 인증 여부를 판단하기 위한 공개키로서 해당 펌웨어에 포함된 공개키를 사용할 수 없기 때문이다. The firmware may include a public key. However, the public key included in the firmware is not a public key for updating the corresponding firmware, but a public key used in the next firmware update. The reason is that since the download is possible only in the case of an authenticated firmware, it is not possible to use a public key included in the firmware as a public key for determining whether or not the firmware is authenticated.
도 5는 본 발명의 일 실시예에 따른 펌웨어 업데이트 방법을 도시한 플로우차트이다.5 is a flowchart illustrating a firmware update method according to an embodiment of the present invention.
단계 510에서는 사용자로부터 펌웨어 업데이트 실행 명령을 받는다. 펌웨어는 소규모의 프로그램이으로, 펌웨어 자체의 오류 개선이나 시스템의 성능 향상, 기능 추가 등의 목적으로 수시로 업데이트 될 수 있는 특징이 있다. In
단계 520에서는 업데이트 실행 명령을 받은 펌웨어 파일이 인증된 것인지여 부를 판단한다. 펌웨어를 업데이트하는 데 필요한 프로그램이 플래시 메모리(330)에 저장되어 있는데, 업데이트 명령을 받은 시스템은 플래시 메모리(330)에 저장되어 있는 업데이트에 필요한 다운로드 프로그램을 RAM(340)에 로드한다. 다음으로 외부 인터페이스(360)를 통해서 다운로드할 펌웨어 파일을 읽으면서, 펌웨어 파일이 인증된 것인지를 우선적으로 판단하게 된다.In
단계 530에서는 펌웨어 파일이 인증된 것인 경우에 한해서, 펌웨어 파일을 시스템에 다운로드한다. 다운로드된 펌웨어는 플래시 메모리(330)에 저장된다. 펌웨어 파일이 인증된 것이 아닌 경우에는 사용자에게 이를 통지하고 다운로드를 수행하지 않는다.In
도 6은 본 발명의 일 실시예에 따른 임베디드 시스템 내의 펌웨어 업데이트 방법을 도시한 플로우 차트이다.6 is a flowchart illustrating a firmware update method in an embedded system according to an exemplary embodiment of the present invention.
단계 610에서는 임베디드 시스템의 전원이 켜지고, 하드웨어 초기화를 거쳐서 플래시 메모리(330)에 있는 코드 및 데이터가 RAM(340)으로 로드된다. 임베디드 시스템은 시스템을 동작시키는 소프트웨어를 하드웨어에 내장하여 특수한 기능만을 가진 시스템으로, PC와는 달리 특정한 요구사항을 가지고 있으며, 미리 정의된 작업만을 수행한다. PC는 하드디스크와 같은 대용량 저장장치에 운영 체제를 내장하고 있지만 임베디드 시스템은 OS와 응용프로그램들이 플래시 메모리(330)에 주로 이미지의 형태로 저장되어 있다가, 부팅과 동시에 RAM 디스크를 만들고, RAM 디스크 상에 이를 로드하여 프로그램이 구성되고 구동되는 시스템이다. 따라서, 임베디드 시스템의 부팅시, 플래시 메모리(330)에 있는 코드 이미지 등이 RAM(340)에 로 드되고, 그 코드에 있는 명령어를 수행한다.In
단계 620에서는, 사용자로부터 사용자 인터페이스(350)를 통해서 펌웨어의 업데이트를 실행하라는 명령을 받는다. In
단계 630에서는 CPU가 펌웨어 업데이트 실행에 필요한 코드 및 데이터 등을 플래시 메모리(330)로부터 RAM(340)으로 로드한다. 플래시 메모리(330)에는 시스템의 전반적인 동작 코드 및 데이터, 파일 시스템이 저장되어 있으며, 펌웨어 업데이트에 필요한 다운로드 프로그램도 저장되어 있다. 따라서, 플래시 메모리(330)에 저장되어 있는 펌웨어 업데이트 실행에 필요한 코드 및 데이터를 RAM(340)으로 로드하여, 펌웨어 다운로드를 위한 준비를 한다.In
단계 640에서는 RAM(340)에 로드된 코드를 이용하여, 외부 인터페이스부(360)를 통해서 다운로드할 펌웨어 파일을 읽는다. 업데이트 명령을 받은 펌웨어 파일을 바로 다운로드하여, 플래시 메모리(330)에 저장하는 것이 아니라, 다운로드할 펌웨어 파일이 인증된 것인지를 판단하기 위해서, 우선적으로 펌웨어 파일을 판독한다. 펌웨어 파일의 판독 시, 펌웨어 파일 코드 상의 인증용 서명을 파악할 수 있다. 펌웨어 파일 코드 상의 인증용 서명은 펌웨어를 제공하는 측에서 비밀키를 이용하여 암호화한 서명으로, 펌웨어 파일이 인증된 것인지 판단하는 과정에서 사용된다.In
단계 650에서는 공개키(320)를 이용하여 서명을 계산한다. 공개키(320)는 별도의 구성요소로 펌웨어 업데이트 장치에 포함되거나, RAM(340) 또는 플래시 메모리(330)와 같은 메모리부(220)에 저장되어 있을 수 있다. 계산된 서명은 펌웨어 파 일이 인증된 것인지를 판단하는 단계에서 사용될 것으로, 다운로드할 펌웨어 파일과 공개키(320)를 이용하여 생성될 수 있다.In
단계 660에서는 단계 640에서 파악된 다운로드할 펌웨어 파일 코드 상의 인증용 서명과 단계 650에서 계산된 서명이 일치하는지 판단한다. 이 비교 과정에서는 PKI 방식에 의해서, 오직 인증된 펌웨어 파일이 가지는 인증용 서명만이 계산된 서명과 동일한 값을 가질 수 있는데, PKI 시스템이란 공개키 알고리즘을 통해서 암호화 또는 복호화하는 보안시스템 환경을 말한다. 단계 660은 PKI를 통해서 다운로드할 펌웨어 파일이 인증된 펌웨어 파일인지를 판단하는 단계이다.In
단계 670에서는 다운로드할 펌웨어 파일 코드 상의 인증용 서명과 계산된 서명이 일치하는 경우에, 플래시 메모리(330)에 펌웨어 다운로드를 수행한다. In
단계 680에서는 시스템이 새로운 명령어를 실행하는 과정으로 들어가기 위해서 재부팅을 한다.In
단계 690에서는 다운로드할 펌웨어 파일 코드 상의 인증용 서명과 계산된 서명이 일치하지 않는 경우에, 다운로드를 수행하지 않고, 사용자 인터페이스부(350)를 통해서 사용자에게 이를 통지한다. 통지를 받은 사용자는 사용자 인터페이스부(350)를 통해서 펌웨어의 다운로드를 취소하거나 재다운로드를 지시할 수 있다.In step 690, if the signature for authentication on the firmware file code to be downloaded and the calculated signature do not match, the user is notified of the user through the
본 발명의 실시예에서 임베디드 시스템이 플래시 메모리(330)와 RAM(340)을 구비하는 것으로 기재하였지만, 본 발명이 플래시 메모리(330)와 RAM(340)이 아닌, 비휘발성 메모리와 휘발성 메모리에 적용될 수 있음은 당업자에게 명백하다.Although an embodiment of the present invention describes an embedded system having a
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으 로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. Meanwhile, the above-described embodiments of the present invention can be written as a program that can be executed in a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다. The computer-readable recording medium may be a magnetic storage medium (for example, a ROM, a floppy disk, a hard disk, etc.), an optical reading medium (for example, a CD-ROM, a DVD, etc.) and a carrier wave (for example, the Internet). Storage medium).
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다. So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.
전술한 바와 같이 본 발명에 따르면, 인증된 펌웨어만을 다운로드할 수 있어, 시스템이 본연의 목적을 벗어나 악의적인 목적으로 사용되는 것을 차단할 수 있다.As described above, according to the present invention, only authorized firmware can be downloaded, thereby preventing the system from being used for malicious purposes beyond its original purpose.
또한 본 발명은 인증된 펌웨어만을 시스템에 장착하여, 무단으로 펌웨어 내의 컨텐츠를 저장 또는 배포하는 것을 막을 수 있으며, 컨텐츠의 훼손으로 인해 시스템의 제조 회사가 컨텐츠 저작권자로부터 책임을 요구하는 불미스러운 일을 미연 에 방지할 수 있다.In addition, the present invention can prevent the unauthorized storage or distribution of the contents of the firmware by installing only the authorized firmware in the system, and the unavoidable task of requiring the manufacturer of the system to take responsibility from the contents copyright holder due to the damage of the contents. To prevent it.
Claims (8)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020060106703A KR20080039046A (en) | 2006-10-31 | 2006-10-31 | Firmware update device and method |
| PCT/KR2007/004142 WO2008054058A1 (en) | 2006-10-31 | 2007-08-29 | Apparatus and method for updating firmware |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020060106703A KR20080039046A (en) | 2006-10-31 | 2006-10-31 | Firmware update device and method |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR20080039046A true KR20080039046A (en) | 2008-05-07 |
Family
ID=39344384
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020060106703A Withdrawn KR20080039046A (en) | 2006-10-31 | 2006-10-31 | Firmware update device and method |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR20080039046A (en) |
| WO (1) | WO2008054058A1 (en) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101029758B1 (en) * | 2008-12-31 | 2011-04-19 | 노틸러스효성 주식회사 | How to remotely update the firmware |
| KR101527779B1 (en) * | 2014-01-13 | 2015-06-10 | 현대자동차주식회사 | In-vehicle apparatus for efficient reprogramming and method for controlling there of |
| WO2015094160A1 (en) * | 2013-12-16 | 2015-06-25 | Hewlett-Packard Development Company, L.P. | Firmware authentication |
| KR20160072384A (en) * | 2014-12-12 | 2016-06-23 | 한국정보통신주식회사 | Banking system, integrity check method for firmware of a banking system |
| US9779246B2 (en) | 2012-07-20 | 2017-10-03 | Oberthur Technologies | System and method for updating an operating system for a smart card or other secure element |
| CN112241306A (en) * | 2020-10-21 | 2021-01-19 | 海光信息技术股份有限公司 | Firmware data loading method and device, secure processor, chip and electronic equipment |
| CN112328279A (en) * | 2020-11-02 | 2021-02-05 | 宁波和利时信息安全研究院有限公司 | System firmware file upgrading method, device and system |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2010014109A1 (en) * | 2008-08-01 | 2010-02-04 | Hewlett-Packard Development Company, L.P. | Verifying firmware |
| US8856536B2 (en) | 2011-12-15 | 2014-10-07 | GM Global Technology Operations LLC | Method and apparatus for secure firmware download using diagnostic link connector (DLC) and OnStar system |
| ITVI20120034A1 (en) * | 2012-02-09 | 2013-08-10 | Bentel Security S R L | DEVICE AND METHOD FOR THE MANAGEMENT OF ELECTRONIC BUILDING INSTALLATIONS |
| US8966248B2 (en) | 2012-04-06 | 2015-02-24 | GM Global Technology Operations LLC | Secure software file transfer systems and methods for vehicle control modules |
| CN110532735B (en) * | 2018-05-23 | 2023-04-18 | 霍尼韦尔环境自控产品(天津)有限公司 | Firmware upgrading method |
| US20210216306A1 (en) * | 2020-01-09 | 2021-07-15 | Myomega Systems Gmbh | Secure deployment of software on industrial control systems |
| CN112433742B (en) * | 2020-11-26 | 2024-12-17 | 中电金融设备系统(深圳)有限公司 | Secure firmware updating method, apparatus, device and storage medium |
| US12197631B2 (en) | 2020-12-30 | 2025-01-14 | Micron Technology, Inc. | Security management of ferroelectric memory device |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7069452B1 (en) * | 2000-07-12 | 2006-06-27 | International Business Machines Corporation | Methods, systems and computer program products for secure firmware updates |
| US7017040B2 (en) * | 2003-12-04 | 2006-03-21 | Intel Corporation | BIOS update file |
| KR20050089123A (en) * | 2004-03-03 | 2005-09-07 | (주)그로웰텔레콤 | A mobile communication device and a system and method for firmware download service thereof |
| US20050229171A1 (en) * | 2004-04-07 | 2005-10-13 | Henry Steven G | Distributing upgrades |
| US20060143600A1 (en) * | 2004-12-29 | 2006-06-29 | Andrew Cottrell | Secure firmware update |
-
2006
- 2006-10-31 KR KR1020060106703A patent/KR20080039046A/en not_active Withdrawn
-
2007
- 2007-08-29 WO PCT/KR2007/004142 patent/WO2008054058A1/en not_active Ceased
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101029758B1 (en) * | 2008-12-31 | 2011-04-19 | 노틸러스효성 주식회사 | How to remotely update the firmware |
| US9779246B2 (en) | 2012-07-20 | 2017-10-03 | Oberthur Technologies | System and method for updating an operating system for a smart card or other secure element |
| WO2015094160A1 (en) * | 2013-12-16 | 2015-06-25 | Hewlett-Packard Development Company, L.P. | Firmware authentication |
| KR101527779B1 (en) * | 2014-01-13 | 2015-06-10 | 현대자동차주식회사 | In-vehicle apparatus for efficient reprogramming and method for controlling there of |
| KR20160072384A (en) * | 2014-12-12 | 2016-06-23 | 한국정보통신주식회사 | Banking system, integrity check method for firmware of a banking system |
| CN112241306A (en) * | 2020-10-21 | 2021-01-19 | 海光信息技术股份有限公司 | Firmware data loading method and device, secure processor, chip and electronic equipment |
| CN112241306B (en) * | 2020-10-21 | 2023-06-09 | 海光信息技术股份有限公司 | Firmware data loading method and device, secure processor, chip and electronic equipment |
| CN112328279A (en) * | 2020-11-02 | 2021-02-05 | 宁波和利时信息安全研究院有限公司 | System firmware file upgrading method, device and system |
| CN112328279B (en) * | 2020-11-02 | 2023-04-14 | 宁波和利时信息安全研究院有限公司 | System firmware file upgrading method, device and system |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2008054058A1 (en) | 2008-05-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10931451B2 (en) | Securely recovering a computing device | |
| US8291480B2 (en) | Trusting an unverified code image in a computing device | |
| US8254568B2 (en) | Secure booting a computing device | |
| KR101190479B1 (en) | Ticket authorized secure installation and boot | |
| CN102279760B (en) | Device booting with an initial protection component | |
| CN102693379B (en) | Protection operating system Configuration Values | |
| US9189605B2 (en) | Protected computing environment | |
| CN109416720B (en) | Maintaining operating system secrets across resets | |
| US8392724B2 (en) | Information terminal, security device, data protection method, and data protection program | |
| WO2008054058A1 (en) | Apparatus and method for updating firmware | |
| US20080289038A1 (en) | Method and apparatus for checking integrity of firmware | |
| KR100746012B1 (en) | How and devices to safely update and boot code images | |
| KR20090005390A (en) | Authorisation of the installation of a software version | |
| CN102630320A (en) | Information processing device and method for preventing unauthorized application cooperation | |
| US8656190B2 (en) | One time settable tamper resistant software repository | |
| US20160004859A1 (en) | Method and system for platform and user application security on a device | |
| JP2007150929A (en) | Portable telephone system, method of preventing software used therefor from being illegally rewritten, and program therefor |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20061031 |
|
| PG1501 | Laying open of application | ||
| PC1203 | Withdrawal of no request for examination | ||
| WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |