KR101805310B1 - User apparatus based on trusted platform module and firmware updating method using the same - Google Patents

User apparatus based on trusted platform module and firmware updating method using the same Download PDF

Info

Publication number
KR101805310B1
KR101805310B1 KR1020160089482A KR20160089482A KR101805310B1 KR 101805310 B1 KR101805310 B1 KR 101805310B1 KR 1020160089482 A KR1020160089482 A KR 1020160089482A KR 20160089482 A KR20160089482 A KR 20160089482A KR 101805310 B1 KR101805310 B1 KR 101805310B1
Authority
KR
South Korea
Prior art keywords
version
firmware
update
daemon
boot
Prior art date
Application number
KR1020160089482A
Other languages
Korean (ko)
Inventor
조진성
조성희
김병선
김지훈
황효선
Original Assignee
경희대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 경희대학교 산학협력단 filed Critical 경희대학교 산학협력단
Priority to KR1020160089482A priority Critical patent/KR101805310B1/en
Application granted granted Critical
Publication of KR101805310B1 publication Critical patent/KR101805310B1/en

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/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • 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

Abstract

The present invention relates to a trusted platform module (TPM) based user device and a firmware updating method using the same. The TPM based user device comprises a security boot processor, update daemon, and a TPM. The security boot processor generates a version list which lists information of a previous version of firmware based on a hash value related to a file of the firmware. The update daemon confirms whether or not new update for the firmware exists; performs integrity verification of an update file by receiving the update file of the firmware; checks a version of the update file; and updates or cancels the firmware based on a checking result. The TPM stores the version list. The present invention efficiently responds to an attack of illegally changing firmware images of such as a kernel of a low specification general purpose IoT device, a boot loader, etc.

Description

TPM 기반의 사용자 장치 및 이를 이용한 펌웨어 갱신 방법{USER APPARATUS BASED ON TRUSTED PLATFORM MODULE AND FIRMWARE UPDATING METHOD USING THE SAME}TECHNICAL FIELD [0001] The present invention relates to a TPM-based user device and a firmware updating method using the TPM-based user device.

본 발명은 사용자 장치에서의 안전한 펌웨어 갱신에 관한 것으로서, 보다 상세하게는 TPM 기반의 사용자 장치 및 이를 이용한 펌웨어 갱신 방법에 관한 것이다. The present invention relates to secure firmware update in a user device, and more particularly, to a TPM-based user device and a firmware update method using the same.

펌웨어 업데이트를 진행하는 방법은 크게 디바이스에서 직접 업데이트 서버에 접속하여 업데이트를 진행하는 제1 방식과 디바이스를 PC에 연결하여 사용자가 업데이트 파일을 디바이스에 직접 설치하는 제2 방식으로 분류된다. 제1 방식에서는 해킹의 공격에 대비하여 인증 서버를 사용하는 방안이 제안되었으며, 이 기술은 업데이트 서버에서 디바이스를 검증하고, 인증된 디바이스에서만 복호화 가능한 암호화된 업데이트 파일을 만들어 제공한다. 반면 제2 방식에서는 해킹에 대비하여 별도의 업데이터를 사용하여 디바이스의 업데이트를 진행한다.A method for performing firmware update is divided into a first method of accessing an update server directly from a device and performing an update, and a second method of connecting a device to a PC and installing the update file directly on the device by a user. In the first scheme, a method of using an authentication server in preparation for a hacking attack has been proposed. This technology verifies the device in the update server and creates and provides an encrypted update file that can be decrypted only in the authenticated device. On the other hand, in the second method, a device is updated using a separate updater in preparation for hacking.

범용(COTS; Commercial Off-The-Shelf) IoT(Internet of Things) 디바이스는 오픈소스(Open source) 기반의 인터넷에 연결 가능한 하드웨어 플랫폼을 제공한다. 범용 IoT 디바이스는 시중에서 쉽게 구매될 수 있기 때문에, 사용자는 범용 IoT 디바이스에 다양한 기능을 탑재하는 방식으로 손쉽게 제품을 개발하거나 사용할 수 있다. 범용 IoT 디바이스로서 라즈베리파이, 아두이노, 비글 본 블랙, 에디슨 등이 출시되어 있으며 여러 분야에서 사용되고 있다.The commercial off-the-shelf (COTS) IoT (Internet of Things) device provides a hardware platform that can connect to the Internet based on open source. Because general-purpose IoT devices can be purchased easily on the market, users can easily develop and use products with a variety of functions on general-purpose IoT devices. As general-purpose IoT devices, Raspberry Pie, Arduino, Beagle Bone Black, and Edison are available and used in various fields.

이러한 범용 IoT 디바이스는 보편적으로 소형화 및 저사양으로 제작되기 때문에 일반 PC 환경과는 다르게 보안요소 탑재에 제약이 있고, 업데이트 서버에서 개인화를 지원하지 않기 때문에 다양한 취약점과 위협들이 존재하고 있다. 이러한 보안 위협 중 펌웨어 교체 공격(Firmware replacement attack)은 펌웨어 업데이트 시, 변조된 부트로더, 커널, 루트 파일 시스템 등의 펌웨어를 디바이스에 강제로 업데이트하여 디바이스의 제어권을 획득하고 디바이스 내 저장된 암호화 키 교체/삭제/유출, 타 IoT 디바이스 공격을 위한 진입점으로 악용될 수 있다. 이러한 취약점을 해결하고자 각 부트 단계에 로드되는 이미지의 무결성을 단계적으로 검증하는 방안(Trust chain)이 있지만 취약점이 발견된 적법한 이전 버전의 펌웨어로 업데이트하는 경우, 무결성 검증을 통과할 가능성이 있다.Since these general-purpose IoT devices are generally manufactured in a compact size and low-profile, there are various security vulnerabilities and threats because they are not supported by personalization in the update server. Among these security threats, a firmware replacement attack is a method of forcibly updating the firmware such as a modified boot loader, a kernel, and a root file system at the time of firmware update to acquire control of the device, Deleted / leaked, or used as an entry point for other IoT device attacks. In order to solve these vulnerabilities, there is a method to verify the integrity of the images loaded in each boot step in a step-by-step manner (trust chain). However, if the vulnerability is updated to a legitimate previous version of the firmware, integrity verification may pass.

위와 같은 공격이 실행되어 디바이스의 제어권이 탈취되면 디바이스에 저장된 암호화 키들이 유출될 가능성이 있다. 최근에는 이러한 소프트웨어 기반의 키 관리의 보안성을 강화하기 위해 TPM(Trusted Platform Module)과 같은 보안 하드웨어 모듈을 통해 암호화 키를 관리한다. TPM은 암호화 키, 암호화된 데이터, 암호화 방식 등을 제공하기 위한 목적으로 고안된 하드웨어 디바이스 모듈로서, 주로 개인용 컴퓨터(PC)의 주기판에 부착되며, 부팅 단계에서부터 시스템의 무결성 검증에 이용된다. 그런데, TPM 기반의 사용자 장치에서 펌웨어 업데이트시 보안을 강화하기 위한 방법이 아직까지 게시된 바 없다. 따라서, TPM 기반의 사용자 장치에서 안전한 펌웨어 갱신 방법이 요구된다. If the above attack is executed and the control of the device is taken over, there is a possibility that the encryption keys stored in the device are leaked. Recently, in order to enhance the security of such software-based key management, an encryption key is managed through a security hardware module such as a TPM (Trusted Platform Module). The TPM is a hardware device module designed for the purpose of providing encryption key, encrypted data, encryption method, etc. It is mainly attached to the main board of personal computer (PC) and is used for integrity verification of the system from the booting stage. However, a method for enhancing security in updating firmware in a TPM-based user device has not been published yet. Therefore, a secure firmware update method is required in a TPM-based user device.

본 발명의 기술적 과제는 TPM(Trusted Platform Module)과 같은 보안 하드웨어 모듈을 포함하는 보안 장치 플랫폼에서, 불법적인 펌웨어 변조 또는 교체를 통한 TPM의 악의적 활용을 방지하는, 신뢰성 있는 펌웨어 업데이트 방법 및 장치를 제공함에 있다. A technical object of the present invention is to provide a reliable firmware update method and apparatus in a security device platform including a security hardware module such as a Trusted Platform Module (TPM), to prevent malicious use of the TPM by illegal firmware modulation or replacement. .

본 발명의 다른 기술적 과제는 TPM을 포함하는 디바이스 플랫폼의 펌웨어 갱신 과정에서 기존 버전의 펌웨어 이미지의 설치를 차단하기 위한 사용자 장치 및 방법을 제공함에 있다. Another aspect of the present invention is to provide a user apparatus and method for blocking installation of a firmware image of an existing version in a firmware update process of a device platform including a TPM.

본 발명의 일 양태에 따르면, TPM(Trusted Platform Module) 기반의 사용자 장치를 제공한다. 상기 장치는 펌웨어(firmware)의 파일에 관한 해쉬값(hash value)을 기반으로 상기 펌웨어의 이전 버전의 정보를 리스트화한 버전 리스트(version list)를 생성하는 보안 부트 프로세서(secure boot processor), 상기 펌웨어에 새로운 업데이트가 존재하는지 확인하고, 상기 펌웨어의 업데이트 파일을 수신하여 상기 업데이트 파일의 무결성 검증을 수행하도록 구성되며, 상기 업데이트 파일의 버전에 대한 검사를 수행하고, 상기 검사의 결과를 기반으로 상기 펌웨어의 갱신을 수행하거나 취소하는 단계를 수행하는 갱신 데몬(updater daemon), 및 상기 버전 리스트를 저장하는 TPM을 포함한다. According to one aspect of the present invention, there is provided a Trusted Platform Module (TPM) based user device. The apparatus includes a secure boot processor for generating a version list listing information of a previous version of the firmware based on a hash value of a file of the firmware, Wherein the firmware is configured to check whether a new update exists in the firmware and to perform an integrity check of the update file by receiving an update file of the firmware and to check the version of the update file, An updater daemon that performs steps to perform or cancel firmware updates, and a TPM that stores the version list.

일 측면에서, 상기 펌웨어의 업데이트 파일은 상기 사용자 장치의 부팅에 사용되는 부트로더(bootloader), 커널(kernel), 보안 부트 데몬, 갱신 데몬 중 적어도 하나를 포함할 수 있다. In one aspect, the firmware update file may include at least one of a boot loader, a kernel, a security boot daemon, and an update daemon used for booting the user device.

여기서, 상기 검사는, 상기 부트로더의 버전, 상기 커널의 버전, 상기 보안 부트 데몬의 버전, 상기 갱신 데몬의 버전 중 적어도 하나와, 상기 버전 리스트에 기록된 버전을 비교하는 단계를 포함할 수 있다. Here, the checking may include comparing at least one of the version of the boot loader, the version of the kernel, the version of the security boot daemon, and the version of the update daemon to the version recorded in the version list .

다른 측면에서, 상기 부트로더의 버전, 상기 커널의 버전, 상기 보안 부트 데몬의 버전, 상기 갱신 데몬의 버전 중 적어도 하나가 상기 기록된 버전과 동일하거나 그 이전 버전일 경우, 상기 갱신 데몬은 상기 펌웨어의 업데이트 파일에 기반한 갱신을 취소할 수 있다. In another aspect, when at least one of the version of the boot loader, the version of the kernel, the version of the security boot daemon, and the version of the update daemon is the same or a version older than the recorded version, The update based on the update file of the update file can be canceled.

또 다른 측면에서, 상기 부트로더의 버전, 상기 커널의 버전, 상기 보안 부트 데몬의 버전, 상기 갱신 데몬의 버전 중 적어도 하나가 상기 기록된 버전에 비해 신규 버전일 경우, 상기 갱신 데몬은 상기 펌웨어의 업데이트 파일에 기반한 갱신을 수행할 수 있다. In another aspect, when at least one of the version of the boot loader, the version of the kernel, the version of the security boot daemon, and the version of the update daemon is a newer version than the recorded version, Update based on the update file can be performed.

또 다른 측면에서, 상기 보안 부트 프로세서는 부트로더(bootloader)와 운영체제의 커널(kernel)을 실행하도록 구성되고, 상기 실행된 부트로더의 이미지(image)와 상기 실행된 커널의 이미지를 기반으로 적어도 하나의 무결성 검증(integrigy verification)을 수행하고, 상기 무결성 검증에 기반하여 상기 TPM의 저장공간에 접근하기 위한 SRK(storage root key) 암호를 생성할 수 있다. In yet another aspect, the secure boot processor is configured to execute a boot loader and an operating system kernel, wherein the secure boot processor is configured to execute a boot loader and a kernel of the operating system, And generate a storage root key (SRK) for accessing the storage space of the TPM based on the integrity verification.

또 다른 측면에서, 상기 보안 부트 프로세서는, 시스템 레벨(system level)에서 상기 실행된 커널의 이미지(bootloader image)를 기반으로 제1 무결성 검증을 수행하고, 상기 제1 무결성 검증이 성공으로 판단되면 사용자 레벨(user level)에서 보안 부트 데몬을 실행하고 상기 실행된 부트로더의 이미지를 기반으로 제2 무결성 검증을 수행할 수 있다. In another aspect, the secure boot processor performs a first integrity verification based on a bootloader image of the executed kernel at a system level, and when the first integrity verification is determined to be successful, A security boot daemon may be executed at a user level and a second integrity verification may be performed based on the image of the executed boot loader.

본 발명의 다른 양태에 따르면, TPM(Trusted Platform Module) 기반의 사용자 장치에서 펌웨어(firmware)의 갱신을 수행하는 방법을 제공한다. 상기 방법은 펌웨어의 파일에 관한 해쉬값(hash value)을 기반으로 상기 펌웨어의 이전 버전의 정보를 리스트화한 버전 리스트(version list)를 생성하는 단계, 상기 펌웨어에 새로운 업데이트가 존재하는 경우 상기 펌웨어의 업데이트 파일을 수신하는 단계, 상기 업데이트 파일의 무결성 검증을 수행하는 단계, 상기 무결성 검증을 통과한 경우 상기 업데이트 파일의 버전에 대한 검사를 수행하는 단계, 및 상기 검사의 결과를 기반으로 상기 펌웨어의 갱신을 수행하거나 취소하는 단계를 포함한다. According to another aspect of the present invention, there is provided a method of performing firmware update in a TPM (Trusted Platform Module) based user device. The method includes generating a version list that lists information of a previous version of the firmware based on a hash value of a file of the firmware, Performing an integrity check on the update file, performing an inspection on a version of the update file when the integrity verification is passed, and performing a check on the version of the update file based on the result of the check. And performing or canceling the update.

일 측면에서, 상기 펌웨어의 업데이트 파일은 상기 사용자 장치의 부팅에 사용되는 부트로더(bootloader), 커널(kernel), 보안 부트 데몬, 갱신 데몬 중 적어도 하나를 포함할 수 있다. In one aspect, the firmware update file may include at least one of a boot loader, a kernel, a security boot daemon, and an update daemon used for booting the user device.

여기서, 상기 검사는, 상기 부트로더의 버전, 상기 커널의 버전, 상기 보안 부트 데몬의 버전, 상기 갱신 데몬의 버전 중 적어도 하나와, 상기 버전 리스트에 기록된 버전을 비교하는 단계를 포함할 수 있다. Here, the checking may include comparing at least one of the version of the boot loader, the version of the kernel, the version of the security boot daemon, and the version of the update daemon to the version recorded in the version list .

다른 측면에서, 상기 펌웨어의 업데이트 파일에 기반한 갱신은, 상기 부트로더의 버전, 상기 커널의 버전, 상기 보안 부트 데몬의 버전, 상기 갱신 데몬의 버전 중 적어도 하나가 상기 기록된 버전과 동일하거나 그 이전 버전일 경우에는 수행되지 않을 수 있다. In another aspect, the update based on the update file of the firmware may include updating at least one of the version of the boot loader, the version of the kernel, the version of the secure boot daemon, and the version of the update daemon, Version may not be performed.

또 다른 측면에서, 상기 펌웨어의 업데이트 파일에 기반한 갱신은, 상기 부트로더의 버전, 상기 커널의 버전, 상기 보안 부트 데몬의 버전, 상기 갱신 데몬의 버전 중 적어도 하나가 상기 기록된 버전에 비해 신규 버전일 경우에 수행될 수 있다. In yet another aspect, an update based on the update file of the firmware may include at least one of the version of the boot loader, the version of the kernel, the version of the secure boot daemon, and the version of the update daemon, , ≪ / RTI >

또 다른 측면에서, 상기 업데이트 파일의 무결성 검증은, 상기 수신된 업데이트 파일에 대한 제1 해쉬값과, 상기 수신된 업데이트 파일에 관한 서명과 개발자의 인증서를 통해 계산된 제2 해쉬값을 비교하는 단계를 포함할 수 있다. In yet another aspect, the integrity verification of the update file includes comparing a first hash value for the received update file with a second hash value computed through a signature on the received update file and a developer's certificate . ≪ / RTI >

또 다른 측면에서, 상기 업데이트 파일의 무결성 검증은, 상기 제1 해쉬값과 상기 제2 해쉬값이 같을 경우 통과되고, 다를 경우 통과되지 않을 수 있다. In yet another aspect, integrity verification of the update file may be passed if the first hash value and the second hash value are equal, and may not be passed if the first hash value is different.

또 다른 측면에서, 상기 방법은 상기 펌웨어의 업데이트 파일에 기반한 갱신이 완료되면, 상기 사용자 장치를 재부팅하는 단계, 부트로더(bootloader)와 운영체제의 커널(kernel)을 실행하는 단계, 상기 실행된 부트로더의 이미지(image)와 상기 실행된 커널의 이미지를 기반으로 적어도 하나의 무결성 검증(integrigy verification)을 수행하는 단계, 상기 무결성 검증에 기반하여 상기 TPM의 저장공간에 접근하기 위한 SRK(storage root key) 암호를 생성하는 단계를 더 포함할 수 있다. In another aspect, the method further comprises rebooting the user device when the update based on the firmware update file is completed, executing a boot loader and a kernel of the operating system, Performing at least one integrity check based on an image of the kernel and an image of the executed kernel, generating a storage root key (SRK) for accessing the storage space of the TPM based on the integrity verification, And generating a password.

또 다른 측면에서, 상기 무결성 검증은, 시스템 레벨(system level)에서 상기 실행된 커널의 이미지(bootloader image)를 기반으로 제1 무결성 검증을 수행하는 단계, 및 상기 제1 무결성 검증이 성공으로 판단되면 사용자 레벨(user level)에서 보안 부트 데몬을 실행하고 상기 실행된 부트로더의 이미지를 기반으로 제2 무결성 검증을 수행하는 단계를 포함할 수 있다. In another aspect, the integrity verification includes performing a first integrity verification based on the bootloader image of the executed kernel at a system level, and if the first integrity verification is determined to be successful Executing a security boot daemon at a user level and performing a second integrity verification based on the image of the executed boot loader.

본 발명에 따른 사용자 장치 및 이를 이용한 펌웨어 갱신 방법은 불법적으로 저사양 범용 IoT 디바이스의 커널, 부트로더 등의 펌웨어 이미지를 변경하는 공격에 효율적으로 대응할 수 있다. 또한 불법적인 방법으로는 사용자 장치에 저장되어 있는 암호화된 데이터에 접근할 수 없기 때문에 본 발명은 범용 IoT 디바이스를 사용하는 모든 분야에서 디바이스의 제어권, 데이터 및 개인정보 등을 보호하는 목적으로 널리 활용될 수 있다. The user apparatus and the firmware update method using the user apparatus according to the present invention can efficiently cope with an attack of illegally changing the firmware image of the kernel and the boot loader of the low-end general purpose IoT device. In addition, since the encrypted data stored in the user device can not be accessed illegally, the present invention can be widely used for protecting the control right of the device, data, and personal information in all fields using the general purpose IoT device .

도 1은 본 발명의 실시예에 따른 TPM을 포함하는 사용자 장치의 블록도이다.
도 2는 일 실시예에 따라 펌웨어의 갱신을 순차적으로 수행하는 방법을 개념적으로 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 펌웨어 갱신을 수행하는 구체적인 방법과 알고리즘을 도시한 순서도이다.
1 is a block diagram of a user device including a TPM in accordance with an embodiment of the present invention.
FIG. 2 is a conceptual diagram illustrating a method of sequentially performing firmware update according to an embodiment of the present invention. Referring to FIG.
3 is a flowchart illustrating a specific method and algorithm for performing firmware update according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the present invention. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "~부" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.Throughout the specification, when an element is referred to as "comprising ", it means that it can include other elements as well, without excluding other elements unless specifically stated otherwise. Also, the terms "to" and the like described in the specification mean a unit for processing at least one function or operation, which can be implemented by hardware, software, or a combination of hardware and software.

범용 IoT 디바이스는 보편적으로 소형화 및 저사양으로 제작되기 때문에 일반 PC 환경과는 다르게 보안요소 탑재에 제약이 있고, 해킹 등 다양한 위협에 대한 취약점을 가진다. 보안을 위협하는 예로서 펌웨어 교체(firmware replacement) 및 실행 공격이 있다. 이것은 범용 IoT 디바이스가 시스템 부트(boot) 단계에서 순차적으로 실행되는 부트로더(boot loader), 커널(kernel) 이미지의 무결성(integrity)을 보장하지 않는 취약점을 이용하여, 변조된 이미지로 교체 및 실행하여 시스템 제어권을 탈취하는 것이다. 이 경우 범용 IoT 디바이스는 디바이스 내 저장된 암호화 키 교체/삭제/유출, 타 IoT 디바이스 공격을 위한 진입점으로 악용될 수 있다. Unlike general PC environment, general purpose IoT devices are manufactured with miniaturization and low price, and there are restrictions on mounting security elements, and they have vulnerabilities to various threats such as hacking. Examples of security threats include firmware replacement and execution attacks. This is accomplished by replacing and executing a generic IoT device with a modulated image using a vulnerability that does not guarantee the boot loader, kernel image integrity, which is executed sequentially at the system boot stage And take control of the system. In this case, the general-purpose IoT device can be exploited as an entry point for attacking / deleting / exporting stored encryption keys in the device or attacking other IoT devices.

따라서, 본 실시예에 따른 사용자 장치는 소프트웨어 기반의 키 관리의 보안성을 강화하기 위해 TPM을 포함하며, TPM 기반하에서 펌웨어의 갱신시 추가적인 보안 방법을 수행한다. Accordingly, the user equipment according to the present embodiment includes a TPM for enhancing the security of software-based key management, and performs an additional security method when updating the firmware based on the TPM.

도 1은 본 발명의 실시예에 따른 TPM을 포함하는 사용자 장치의 블록도이다. TPM을 포함하는 사용자 장치는 TPM 기반의 범용 IoT 디바이스를 포함할 수 있으며, TPM 기반의 사용자 플랫폼, TPM 기반의 IoT 디바이스 플랫폼, TPM 기반의 범용 IoT 디바이스 플랫폼 또는 단순히 사용자 장치나 범용 IoT 디바이스라 불릴 수도 있다. 1 is a block diagram of a user device including a TPM in accordance with an embodiment of the present invention. A user device including a TPM may include a TPM-based general purpose IoT device and may be referred to as a TPM-based user platform, a TPM-based IoT device platform, a TPM-based general purpose IoT device platform or simply a user device or a general purpose IoT device have.

도 1을 참조하면, 사용자 장치(user apparatus, 1000)는 보안 부트 프로세서(1010), 운영 체제(1020), 부트로더(1030), 갱신 데몬(1035, updater daemon), TPM(1040)을 포함한다. 사용자 장치(1000)는 메모리(memory) 또는 저장기기(storage device)를 더 포함할 수 있다(도면에 미도시). 상기 메모리 또는 저장기기는 운영 체제(1020), 부트로더(1030), 보안 부트 데몬(daemon), 갱신 데몬(1035) 중 적어도 하나를 저장할 수 있다. 보안 부트 프로세서(1010)는 보안 부트 데몬 또는 갱신 데몬(1035) 그 자체일 수도 있다. 1, a user apparatus 1000 includes a secure boot processor 1010, an operating system 1020, a boot loader 1030, an updater daemon 1035, and a TPM 1040 . The user device 1000 may further include a memory or a storage device (not shown). The memory or storage device may store at least one of an operating system 1020, a boot loader 1030, a secure boot daemon, and an update daemon 1035. The secure boot processor 1010 may be the secure boot daemon or the update daemon 1035 itself.

보안 부트 프로세서(1010)는 부트 실행의 이전 또는 부트 실행의 초기 단계에서 펌웨어의 갱신 절차를 수행하고, 부트 과정에서 부트로더 및 커널 이미지의 무결성을 검증하는 절차를 수행할 수 있다. The secure boot processor 1010 may perform a procedure of performing an update procedure of the firmware before the boot execution or an initial stage of the boot execution and verifying the integrity of the boot loader and the kernel image in the boot process.

우선, 펌웨어의 갱신 절차와 관련하여, 보안 부트 프로세서(1010)는 펌웨어 파일의 해쉬 또는 기타 정보 등을 기반으로 버전 리스트(version list)를 생성하고, 버전 리스트를 TPM(1040)의 저장 공간(1050)에 저장할 수 있다. 여기서, 버전 리스트는 부트로더, 커널 이미지, 보안 부트 데몬, 갱신 데몬 중 적어도 하나에 관한 이전 버전의 정보를 리스트화한 것으로 정의될 수 있다. First, with respect to the firmware update procedure, the secure boot processor 1010 generates a version list based on the hash of the firmware file or other information, and transmits the version list to the storage area 1050 ). ≪ / RTI > Here, the version list can be defined as a list of previous version information about at least one of the boot loader, the kernel image, the security boot daemon, and the update daemon.

갱신 데몬(1035)은 보안 부트 프로세서(1010)의 일부일 수도 있고, 소프트웨어 모듈로서 보안 부트 프로세서(1010)와 별개로 구비될 수 있다. 갱신 데몬(1035)은 펌웨어의 새로운 업데이트가 존재하는지 확인하는 단계, 업데이트 파일이 존재하는 경우 펌웨어의 업데이트 파일을 수신하는 단계, 업데이트 파일의 무결성 검증을 수행하는 단계. 펌웨어의 버전을 검사하는 단계, 검사결과를 기반으로 펌웨어의 갱신을 수행 또는 취소하는 단계를 수행한다. 펌웨어의 버전을 검사하는 단계는, 갱신 데몬(1035)는 수신된 부트로더의 버전, 커널 이미지의 버전, 보안 부트 데몬의 버전, 갱신 데몬의 버전 중 적어도 하나와, 이들의 버전 리스트상에 기록된 버전을 비교하는 단계를 포함할 수 있다. 검사결과, 수신된 펌웨어의 버전이 동일 또는 이전 버전일 경우, 갱신 데몬(1035)은 펌웨어의 갱신을 진행하지 않는다. 즉, 갱신 데몬(1035)는 이전 버전의 펌웨어 설치를 막는다. 반면, 검사결과, 수신된 펌웨어의 버전이 신규 버전일 경우, 갱신 데몬(1035)은 펌웨어의 갱신을 수행한다. The update daemon 1035 may be part of the secure boot processor 1010 and may be provided separately from the secure boot processor 1010 as a software module. The update daemon 1035 checks whether there is a new update of the firmware, receiving the update file of the firmware if the update file exists, and performing the integrity verification of the update file. Checking the firmware version, and performing or canceling the firmware update based on the inspection result. In the step of checking the version of the firmware, the update daemon 1035 updates at least one of the version of the received boot loader, the version of the kernel image, the version of the security boot daemon, and the version of the update daemon, And comparing the versions. If it is determined that the version of the received firmware is the same or a previous version, the update daemon 1035 does not proceed to update the firmware. That is, the update daemon 1035 blocks the installation of the firmware of the previous version. On the other hand, if it is determined that the version of the received firmware is a new version, the update daemon 1035 updates the firmware.

펌웨어의 갱신이 완료되면, 보안 부트 프로세서(1010)는 사용자 장치(1000)를 재부트(reboot)하고 부트로더 및 커널 이미지의 무결성을 검증하는 과정을 수행한다. 구체적으로, 보안 부트 프로세서(1010)는 부트로더(1030)으로부터 해쉬값 #부트로더(1014), 운영 체제(1020)로부터 해쉬값 #OS(1016)를 계산 또는 처리하고, 부트로더와 OS(또는 커널)의 무결성을 식별하는 고유값을 이용하여 SRK 암호(1012)를 추출한다. 고유값은 해쉬값(Hash value)이라 불릴 수 있으며, 이하에서 해쉬값으로 통칭하도록 한다. 보안 부트 프로세서(1010)는 시스템 레벨(system level)에서의 커널 이미지의 제1 무결성 검증과, 사용자 레벨(user level)에서의 부트로더 이미지(1014)의 제2 무결성 검증을 수행하고, 상기 제1 및 제2 무결성 검증을 기반으로 SRK 암호(1012)를 생성한다. 이때, SRK 암호(1012)를 생성 또는 추출하는 연산과정은 제조사, 제품별로 상이하게 설정함으로써 보안성을 높일 수 있다. When the firmware is updated, the secure boot processor 1010 reboots the user device 1000 and verifies the integrity of the boot loader and the kernel image. Specifically, the secure boot processor 1010 computes or processes the hash value # boot loader 1014 from the boot loader 1030, hash value # OS 1016 from the operating system 1020, Kernel) using the eigenvalues that identify the integrity of the SRK ciphers. The eigenvalue may be referred to as a hash value, hereinafter referred to as a hash value. The secure boot processor 1010 performs a first integrity verification of the kernel image at the system level and a second integrity verification of the boot loader image 1014 at the user level, And an SRK cipher 1012 based on the second integrity verification. At this time, the process of generating or extracting the SRK cipher 1012 may be different for each manufacturer and product, thereby enhancing security.

TPM(1040)은 암호화 작업부(1042), 저장공간(storage space, 1050)을 포함한다. TPM(1040)은 사용자 장치(1000)의 부팅 단계에서부터 시스템의 무결성 검증을 수행하기 위한 정보를 보안 부트 프로세서(1010)에 제공한다. The TPM 1040 includes a cryptographic operation unit 1042 and a storage space 1050. The TPM 1040 provides information to the secure boot processor 1010 to perform integrity verification of the system from the booting phase of the user device 1000.

암호화 작업부(1042)는 암호화 키를 생성하는 동작과 같은 암호화 작업을 수행하며, CRYPTO 엔진(Engine)이라 불릴 수도 있다. The encryption operation unit 1042 performs a cryptographic operation such as an operation of generating an encryption key, and may be called a CRYPTO engine (Engine).

저장 공간(1050)은 버전 리스트, 부팅에 사용된 부트로더 및/또는 커널 이미지의 무결성 검증을 위한 서명, 암호화 키, 암호화된 데이터 중 적어도 하나를 보관한다. 그리고 저장 공간(1050)은 보안 부트 프로세서(1010)의 요청에 의해 보안 부트 프로세서(1010)에 해당 정보를 제공할 수 있다. 저장 공간(1050)은 사용자 장치(1000)의 초기 설정 및 구성으로써 구비될 수 있다. 일례로서, 부팅에 사용된 부트로더 및/또는 커널 이미지의 무결성 검증을 위한 서명은 비공개키를 사용하여 제작된 부트로더(1030)와 커널 이미지의 해쉬값에 대한 서명(Sign(PRTPM, H(ImgBL + ImgKN)))을 포함할 수 있다. 여기서, H(A)란 이미지 A의 해쉬값을 의미한다. 다른 예로서, 암호화 키 또는 암호화된 데이터는 서명 생성을 위한 비공개키(PRTPM)와, 서명 검증을 위한 공개키(PUTPM)를 포함할 수 있다. 여기서, 저장 공간(1050)에 보관된 암호화 키를 사용하기 위해서는 SRK(storage root key) 암호(Password)가 필요하며 이는 보안 부트 프로세서(1010)에 의해 획득된다. 한편 저장 공간(1050)은 NV(Non-Volatile) 타입의 저장소일 수 있다. The storage space 1050 stores at least one of a version list, a boot loader used for booting, and / or a signature, an encryption key, and encrypted data for integrity verification of a kernel image. The storage space 1050 may provide the corresponding information to the secure boot processor 1010 at the request of the secure boot processor 1010. The storage space 1050 may be provided as an initial configuration and configuration of the user device 1000. As an example, the signature for verifying the integrity of the boot loader and / or the kernel image used for booting may include a signature (PR TPM , H ((signature)) of the hash value of the kernel image and the boot loader 1030 produced using the private key. Img BL + Img KN ))). Here, H (A) means a hash value of the image A. As another example, the encryption key or the encrypted data may include a private key (PR TPM ) for signature generation and a public key (PU TPM ) for signature verification. Here, in order to use the encryption key stored in the storage space 1050, a storage root key (SRK) password is required, which is acquired by the secure boot processor 1010. Meanwhile, the storage space 1050 may be a non-volatile (NV) type storage.

도 2는 일 실시예에 따라 펌웨어의 갱신을 순차적으로 수행하는 방법을 개념적으로 도시한 도면이다. FIG. 2 is a conceptual diagram illustrating a method of sequentially performing firmware update according to an embodiment of the present invention. Referring to FIG.

도 2를 참조하면, 사용자 장치(1000)는 갱신 데몬을 실행한 뒤(S200), 펌웨어 갱신절차를 수행한다. 펌웨어 갱신 절차는 도 1에서 설명된 갱신 데몬(1035)의 동작을 포함할 수 있다. Referring to FIG. 2, after the user device 1000 executes the update daemon (S200), the firmware update procedure is performed. The firmware update procedure may include the operation of the update daemon 1035 described in FIG.

펌웨어의 갱신이 완료되면, 사용자 장치(1000)는 재부트(reboot)을 실행하고(S210), 부트로더 및 커널 이미지의 무결성을 검증하는 과정을 수행한다. 제1 무결성 검증은 커널 이미지의 무결성 검증을 소프트웨어적으로 수행하는 단계로서 부트로더(1030)에 의해 수행될 수 있다(S220). 만약 커널 이미지의 무결성 검증(integrity verification)이 실패하면, 사용자 장치(1000) 또는 부트로더(1030)는 부팅을 더 이상 진행하지 않는다. 만약, 커널 이미지의 무결성 검증(integrity verification)이 성공하면, 사용자 장치(1000)는 OS 커널을 로드 및 실행하고(S230), 보안 부트 데몬에 의한 제2 무결성 검증을 수행한다(S240). 여기서, 제2 무결성 검증은 단계 S200에서 실행된 부트로더 이미지의 무결성 검증을 소프트웨어적으로 수행하는 단계로서 보안 부트 프로세서(1010) 또는 보안 부트 데몬에 의해 수행될 수 있다. 만약 부트로더 이미지의 무결성 검증(integrity verification)이 실패하면, 사용자 장치(1000) 또는 보안 부트 프로세서(1010)는 부팅을 더 이상 진행하지 않고, SRK 암호도 생성하지 않는다. 만약 부트로더 이미지의 무결성 검증(integrity verification)이 성공하면, 사용자 장치(1000) 또는 보안 부트 프로세서(1010)는 부팅을 계속 진행하며, SRK 암호를 생성하고 TPM(1040)을 정상적으로 사용할 수 있다. When updating of the firmware is completed, the user device 1000 executes a reboot (S210) and verifies the integrity of the boot loader and the kernel image. The first integrity verification may be performed by the boot loader 1030 as a step of performing software verification of the integrity of the kernel image (S220). If the integrity verification of the kernel image fails, the user device 1000 or the boot loader 1030 will not proceed to boot. If the integrity verification of the kernel image is successful, the user device 1000 loads and executes the OS kernel (S230), and performs a second integrity verification by the security boot daemon (S240). Here, the second integrity verification may be performed by the security boot processor 1010 or the security boot daemon as a step of performing integrity verification of the boot loader image executed in step S200. If the integrity verification of the boot loader image fails, the user device 1000 or the secure boot processor 1010 will not proceed to boot and will not generate an SRK password. If the integrity verification of the boot loader image is successful, the user device 1000 or the secure boot processor 1010 can continue booting, generate the SRK password, and use the TPM 1040 normally.

도 3은 본 발명의 일 실시예에 따른 펌웨어 갱신을 수행하는 구체적인 방법과 알고리즘을 도시한 순서도이다. 3 is a flowchart illustrating a specific method and algorithm for performing firmware update according to an embodiment of the present invention.

먼저 펌웨어 갱신의 수행방법에서 사용되는 기술적 용어를 정리하면 다음과 같다. First, the technical terms used in the method of performing firmware update are summarized as follows.

용어Terms 설명Explanation PRa PR a a의 비공개키The private key of a PUa PU a a의 공개키The public key of a Certa Cert a a의 인증서Certificate of a H(X)H (X) X의 해쉬값Hash value of X Sign(PRa, H(X))Sign (PR a , H (X)) 비공개키와 해쉬를 이용한 서명Signing with private key and hash D(PUa, H(X))D (PU a , H (X)) 공개키를 이용한 서명 복호화Signature Decryption Using Public Key ImgImg 이미지 파일Image file ImgKN _Cur Img KN _Cur 부트로더에서 로드한 현재 커널 이미지The current kernel image loaded from the boot loader ImgBL _Cur Img BL _Cur 현재 부트로더 이미지Current boot loader image H(ImgBL)H (Img BL ) TPM에 저장된 부트로더 이미지의 해쉬값The hash value of the boot loader image stored in the TPM. H(ImgKL)H (Img KL ) TPM에 저장된 커널 이미지의 해쉬값The hash value of the kernel image stored in the TPM Va V a a의 버전Version of a FWFW 펌웨어 파일Firmware file

도 3을 참조하면, 사용자 장치(1000)는 펌웨어의 업데이트 리스트를 확인하고(S300), 업데이트 파일이 존재하는지 판단한다(S305). 만약 펌웨어에 관한 새로운 업데이트 파일이 존재하면, 사용자 장치(1000)는 펌웨어에 관한 업데이트 파일을 다운로드한다(S310). 무결성 검증을 위해 다운받은 펌웨어 파일에 대한 제1 해쉬값 H(FW)과, 다운받은 서명과 개발자의 인증서를 통해 제2 해쉬값 H(FWVrf)를 계산한다(S315). Referring to FIG. 3, the user device 1000 checks the firmware update list (S300) and determines whether an update file exists (S305). If a new update file relating to the firmware exists, the user device 1000 downloads the update file related to the firmware (S310). The first hash value H (FW) for the firmware file downloaded for integrity verification and the second hash value H (FW Vrf ) are calculated through the downloaded signature and the certificate of the developer (S315).

그리고 사용자 장치(1000)는 제1 해쉬값과 제2 해쉬값을 비교하여 업데이트 파일의 무결성을 검증한다(S320). 만약, 업데이트 파일이 무결성을 만족하지 않으면, 사용자 장치(1000)는 펌웨어의 갱신 절차를 중단한다(S325). 만약, 업데이트 파일이 무결성을 만족하면, 사용자 장치(1000)는 저장 공간(1050)에 보관된 버전 리스트를 로드한다(S330). Then, the user device 1000 verifies the integrity of the update file by comparing the first hash value with the second hash value (S320). If the update file does not satisfy the integrity, the user device 1000 stops updating the firmware (S325). If the update file satisfies the integrity, the user device 1000 loads the version list stored in the storage space 1050 (S330).

사용자 장치(1000)는 버전 리스트상의 펌웨어의 버전과 다운로드된 업데이트 파일의 버전을 비교한다(S335). 업데이트 파일의 버전이 버전 리스트에 기록된 펌웨어의 버전과 같거나 그 이전 버전일 경우, 사용자 장치(1000)는 펌웨어의 갱신을 중단한다(S340). 즉, 사용자 장치(1000)는 이전 버전의 펌웨어 설치를 막는다. 반면, 업데이트 파일의 버전이 버전 리스트에 기록된 펌웨어의 버전보다 신규 버전일 경우, 사용자 장치(1000)는 펌웨어의 갱신을 수행하고, 기존 버전 리스트에서 새로운 펌웨어의 버전의 정보를 추가하여 버전 리스트의 갱신을 수행한 뒤 재부팅한다(S345). The user device 1000 compares the version of the firmware on the version list with the version of the downloaded update file (S335). If the version of the update file is equal to or earlier than the version of the firmware recorded in the version list, the user device 1000 stops updating the firmware (S340). That is, the user device 1000 prevents the installation of the firmware of the previous version. On the other hand, when the version of the update file is newer than the version of the firmware recorded in the version list, the user device 1000 updates the firmware, adds information of the version of the new firmware in the existing version list, After performing the update, reboot is performed (S345).

재부팅 단계는, 사용자 장치(1000)가 다음 부팅부터 무결성 검증을 수행하기 위해, 서명 Sign(PRTPM, H(ImgBL _new+ImgKN _New))를 생성하고, TPM(1040)의 저장 공간(1050)에 저장하는 단계, 펌웨어의 나머지 업데이트를 실행하고 최종적으로 재부팅을 수행하는 단계를 포함한다. Rebooting step, the user device 1000 to perform the integrity verification from the next start, the signature Sign (PR TPM, H (Img BL _new + Img KN _New)) to generate, store space TPM (1040) (1050 ), Executing the remaining update of the firmware, and finally performing a reboot.

이러한 본 실시예에 따른 사용자 장치(1000) 및 보안 부트의 수행방법은 펌웨어 이미지 교체 공격에 대해 다음의 4가지 측면에서 강화된 보안성을 제공할 수 있다. The user device 1000 and the method of performing the security boot according to the present embodiment can provide enhanced security for the firmware image replacement attack in the following four aspects.

첫째, 이전 버전으로의 커널 이미지 변조 및 교체 공격이 발생하면, 이전 버전의 커널 이미지가 수신된다. 사용자 장치(1000)가 펌웨어의 갱신을 진행할 때, 펌웨어의 버전을 검사하는 과정에서 펌웨어의 버전이 버전 리스트상의 버전에 존재하기 때문에, 사용자 장치(1000)는 펌웨어의 갱신을 중단한다. 따라서, 사용자 장치(1000)의 보안성의 강화된다. 갱신 데몬을 사용하지 않고 커널 이미지를 교체하였을 경우, 부팅 시 부트로더에서 커널을 검증하는 과정을 통과하지 못하여 부팅이 되지 않는다. First, if a kernel image tampering and swapping attack occurs in a previous version, a previous version of the kernel image is received. When the user device 1000 proceeds to update the firmware, the user device 1000 stops updating the firmware since the version of the firmware exists in the version on the version list in the process of checking the version of the firmware. Thus, the security of the user device 1000 is enhanced. If the kernel image is replaced without using the update daemon, the boot loader does not pass the process of verifying the kernel at boot time, and the boot does not work.

둘째, 이전 버전으로의 부트로더 이미지 변조 및 교체 공격이 발생하면, 이전 버전 부트로더가 수신된다. 사용자 장치(1000)가 펌웨어의 갱신을 진행할 때, 펌웨어의 버전을 검사하는 과정에서 펌웨어의 버전이 버전 리스트상의 버전에 존재하기 때문에, 사용자 장치(1000)는 펌웨어의 갱신을 중단한다. 따라서, 사용자 장치(1000)의 보안성의 강화된다. 갱신 데몬을 사용하지 않고 부트로더 이미지를 교체하였을 경우, 부팅과정의 보안 부트 데몬에서 부트로더 무결성 검증에 실패하여 TPM의 SRK 암호가 생성되지 않아 TPM을 사용하지 못한다.Second, if there is a boot loader image modification and replacement attack to the previous version, the previous version boot loader is received. When the user device 1000 proceeds to update the firmware, the user device 1000 stops updating the firmware since the version of the firmware exists in the version on the version list in the process of checking the version of the firmware. Thus, the security of the user device 1000 is enhanced. If the boot loader image is replaced without using the update daemon, the security boot daemon in the boot process fails to verify the boot loader integrity and the TPM's SRK password is not generated and the TPM is not used.

셋째, 이전 버전으로의 부트로더 이미지와 커널 이미지의 변조 및 교체 공격이 발생하면, 사용자 장치(1000)가 펌웨어의 갱신을 진행할 때, 펌웨어의 버전을 검사하는 과정에서 펌웨어의 버전이 버전 리스트상의 버전에 존재하기 때문에, 사용자 장치(1000)는 펌웨어의 갱신을 중단한다. 또한 루트 파일 시스템을 변조 및 교체하여 갱신 데몬을 사용하지 않고 부트로더, 커널 이미지를 교체 하였을 경우, 보안 부트 데몬에서 부트로더, 커널 이미지의 무결성을 검증하는 과정에서 통과하지 못하여 TPM의 SRK 암호가 생성되지 않아 TPM을 사용하지 못한다.Third, when a modification and an attack of the boot loader image and the kernel image in the previous version occur, when the user device 1000 proceeds to update the firmware, the version of the firmware is updated to the version The user device 1000 stops updating the firmware. In addition, if the boot loader and the kernel image are replaced without using the update daemon by modifying and replacing the root file system, the security boot daemon fails to pass the boot loader and the kernel image integrity verification process to generate the SRK password of the TPM The TPM can not be used.

이와 같이 본 발명에 따른 사용자 장치(1000) 및 펌웨어 갱신 수행방법은 이전 버전의 펌웨어 리스트와 업데이트 파일의 버전을 비교하여 이전 버전의 펌웨어 설치를 막을 수 있다. 또한, 시스템에서 제공되는 갱신 데몬을 사용하지 않고 우회적으로 업데이트를 진행하면 사용자 장치(1000)는 부팅을 막거나 TPM의 SRK 암호의 생성을 막기 때문에 키 보호 및 안전한 펌웨어 업데이트와 부팅이 가능하다.As described above, the user device 1000 and the method of performing the firmware update according to the present invention can prevent the installation of the firmware of the previous version by comparing the firmware version of the previous version with the version of the update file. In addition, when the update is bypassed without using the update daemon provided in the system, the user device 1000 can prevent the booting or the generation of the SRK password of the TPM, thereby enabling key protection and secure firmware update and booting.

본 발명에 따를 때, 불법적인 방법으로는 사용자 장치(1000)에 저장되어 있는 암호화된 데이터에 접근할 수 없기 때문에 본 발명은 범용 IoT 디바이스를 사용하는 모든 분야에서 디바이스 및 데이터를 보호하는 목적으로 활용될 수 있다. According to the present invention, because illegal methods can not access the encrypted data stored in the user device 1000, the present invention can be utilized for protecting devices and data in all fields using the general purpose IoT device .

상술한 예시적인 시스템에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당업자라면 순서도에 나타낸 단계들이 배타적이지 않고, 다른 단계가 포함되거나 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.In the above-described exemplary system, the methods are described on the basis of a flowchart as a series of steps or blocks, but the present invention is not limited to the order of the steps, and some steps may occur in different orders . It will also be understood by those skilled in the art that the steps shown in the flowchart are not exclusive and that other steps may be included or that one or more steps in the flowchart may be deleted without affecting the scope of the invention.

Claims (16)

TPM(Trusted Platform Module) 기반의 사용자 장치로서,
펌웨어(firmware)의 파일에 관한 해쉬값(hash value)을 기반으로 상기 펌웨어의 이전 버전의 정보를 리스트화한 버전 리스트(version list)를 생성하는 보안 부트 프로세서(secure boot processor);
상기 펌웨어에 새로운 업데이트가 존재하는지 확인하고, 상기 펌웨어의 업데이트 파일을 수신하여 상기 업데이트 파일의 무결성 검증을 수행하도록 구성되며, 상기 업데이트 파일의 버전에 대한 검사를 수행하고, 상기 검사의 결과를 기반으로 상기 펌웨어의 갱신을 수행하거나 취소하는 단계를 수행하는 갱신 데몬(updater daemon); 및
상기 버전 리스트를 저장하는 TPM을 포함하고,
상기 보안 부트 프로세서는,
부트로더(bootloader)와 운영체제의 커널(kernel)을 실행하도록 구성되고, 상기 실행된 부트로더의 이미지(image)와 상기 실행된 커널의 이미지를 기반으로 적어도 하나의 무결성 검증(integrigy verification)을 수행하고, 상기 무결성 검증에 기반하여 상기 TPM의 저장공간에 접근하기 위한 SRK(storage root key) 암호를 생성하되,
시스템 레벨(system level)에서 상기 실행된 커널의 이미지(bootloader image)를 기반으로 제1 무결성 검증을 수행하고,
상기 제1 무결성 검증이 성공으로 판단되면 사용자 레벨(user level)에서 보안 부트 데몬을 실행하고 상기 실행된 부트로더의 이미지를 기반으로 제2 무결성 검증을 수행하는 것을 특징으로 하는 사용자 장치.
As a TPM (Trusted Platform Module) based user device,
A secure boot processor for generating a version list listing information of a previous version of the firmware based on a hash value of a file of the firmware;
Wherein the firmware is configured to verify whether there is a new update in the firmware and to perform an integrity verification of the update file by receiving an update file of the firmware and to check the version of the update file, An updater daemon for performing or canceling the updating of the firmware; And
And a TPM for storing the version list,
The secure boot processor,
The system is configured to execute a boot loader and an operating system kernel and performs at least one integrity verification based on the executed boot loader image and the executed kernel image, Generating a storage root key (SRK) for accessing a storage space of the TPM based on the integrity verification,
Performing a first integrity verification based on an image of the executed kernel (bootloader image) at a system level,
And if the first integrity verification is determined to be successful, executes a security boot daemon at a user level and performs a second integrity verification based on the executed boot loader image.
제 1 항에 있어서,
상기 펌웨어의 업데이트 파일은 상기 사용자 장치의 부팅에 사용되는 부트로더(bootloader), 커널(kernel), 보안 부트 데몬, 갱신 데몬 중 적어도 하나를 포함하는 것을 특징으로 하는, 사용자 장치.
The method according to claim 1,
Wherein the firmware update file includes at least one of a boot loader, a kernel, a security boot daemon, and an update daemon used for booting the user device.
제 2 항에 있어서, 상기 검사는,
상기 부트로더의 버전, 상기 커널의 버전, 상기 보안 부트 데몬의 버전, 상기 갱신 데몬의 버전 중 적어도 하나와, 상기 버전 리스트에 기록된 버전을 비교하는 단계를 포함함을 특징으로 하는, 사용자 장치.
3. The method of claim 2,
And comparing at least one of the version of the boot loader, the version of the kernel, the version of the security boot daemon, and the version of the update daemon to the version recorded in the version list.
제 3 항에 있어서,
상기 부트로더의 버전, 상기 커널의 버전, 상기 보안 부트 데몬의 버전, 상기 갱신 데몬의 버전 중 적어도 하나가 상기 기록된 버전과 동일하거나 그 이전 버전일 경우, 상기 갱신 데몬은 상기 펌웨어의 업데이트 파일에 기반한 갱신을 취소하는 것을 특징으로 하는, 사용자 장치.
The method of claim 3,
When at least one of the version of the boot loader, the version of the kernel, the version of the security boot daemon, and the version of the update daemon is the same or a version older than the recorded version, the update daemon updates the firmware update file Based update. ≪ Desc / Clms Page number 17 >
제 3 항에 있어서,
상기 부트로더의 버전, 상기 커널의 버전, 상기 보안 부트 데몬의 버전, 상기 갱신 데몬의 버전 중 적어도 하나가 상기 기록된 버전에 비해 신규 버전일 경우, 상기 갱신 데몬은 상기 펌웨어의 업데이트 파일에 기반한 갱신을 수행하는 것을 특징으로 하는, 사용자 장치.
The method of claim 3,
When at least one of the version of the boot loader, the version of the kernel, the version of the security boot daemon, and the version of the update daemon is a new version compared to the recorded version, the update daemon updates To the user device.
삭제delete 삭제delete TPM(Trusted Platform Module) 기반의 사용자 장치에서 펌웨어(firmware)의 갱신을 수행하는 방법으로서,
펌웨어의 파일에 관한 해쉬값(hash value)을 기반으로 상기 펌웨어의 이전 버전의 정보를 리스트화한 버전 리스트(version list)를 생성하는 단계;
상기 펌웨어에 새로운 업데이트가 존재하는 경우 상기 펌웨어의 업데이트 파일을 수신하는 단계;
상기 업데이트 파일의 무결성 검증을 수행하는 단계;
상기 무결성 검증을 통과한 경우 상기 업데이트 파일의 버전에 대한 검사를 수행하는 단계;
상기 검사의 결과를 기반으로 상기 펌웨어의 갱신을 수행하거나 취소하는 단계
상기 펌웨어의 업데이트 파일에 기반한 갱신이 완료되면, 상기 사용자 장치를 재부팅하는 단계;
부트로더(bootloader)와 운영체제의 커널(kernel)을 실행하는 단계;
상기 실행된 부트로더의 이미지(image)와 상기 실행된 커널의 이미지를 기반으로 적어도 하나의 무결성 검증(integrigy verification)을 수행하는 단계; 및
상기 무결성 검증에 기반하여 상기 TPM의 저장공간에 접근하기 위한 SRK(storage root key) 암호를 생성하는 단계를 포함하고,
상기 무결성 검증은,
시스템 레벨(system level)에서 상기 실행된 커널의 이미지(bootloader image)를 기반으로 제1 무결성 검증을 수행하는 단계; 및
상기 제1 무결성 검증이 성공으로 판단되면 사용자 레벨(user level)에서 보안 부트 데몬을 실행하고 상기 실행된 부트로더의 이미지를 기반으로 제2 무결성 검증을 수행하는 단계를 포함함을 특징으로 하는, 방법.
A method for performing firmware update in a TPM (Trusted Platform Module) based user device,
Generating a version list in which information of a previous version of the firmware is listed based on a hash value of a file of the firmware;
Receiving an update file of the firmware when a new update exists in the firmware;
Performing integrity verification of the update file;
Performing a check on the version of the update file when the integrity verification is passed;
Performing or updating the firmware based on a result of the checking step
Rebooting the user device when the updating based on the firmware update file is completed;
Running the bootloader and the operating system kernel;
Performing at least one integrity check based on an image of the executed boot loader and an image of the executed kernel; And
And generating a storage root key (SRK) for accessing the storage space of the TPM based on the integrity verification,
The integrity verification includes:
Performing a first integrity verification based on the bootloader image of the executed kernel at a system level; And
Executing a security boot daemon at a user level and performing a second integrity verification based on the executed boot loader image when the first integrity verification is determined to be successful .
제 8 항에 있어서,
상기 펌웨어의 업데이트 파일은 상기 사용자 장치의 부팅에 사용되는 부트로더(bootloader), 커널(kernel), 보안 부트 데몬, 갱신 데몬 중 적어도 하나를 포함하는 것을 특징으로 하는, 방법.
9. The method of claim 8,
Wherein the update file of the firmware includes at least one of a boot loader, a kernel, a security boot daemon, and an update daemon used for booting the user device.
제 9 항에 있어서, 상기 검사는,
상기 부트로더의 버전, 상기 커널의 버전, 상기 보안 부트 데몬의 버전, 상기 갱신 데몬의 버전 중 적어도 하나와, 상기 버전 리스트에 기록된 버전을 비교하는 단계를 포함함을 특징으로 하는, 방법.
10. The method of claim 9,
And comparing at least one of the version of the boot loader, the version of the kernel, the version of the security boot daemon, and the version of the update daemon with the version recorded in the version list.
제 10 항에 있어서, 상기 펌웨어의 업데이트 파일에 기반한 갱신은,
상기 부트로더의 버전, 상기 커널의 버전, 상기 보안 부트 데몬의 버전, 상기 갱신 데몬의 버전 중 적어도 하나가 상기 기록된 버전과 동일하거나 그 이전 버전일 경우에는 수행되지 않는 것을 특징으로 하는, 방법.
11. The method of claim 10, wherein updating based on the firmware update file comprises:
Is not performed when at least one of the version of the boot loader, the version of the kernel, the version of the secure boot daemon, and the version of the update daemon is the same or a version older than the recorded version.
제 10 항에 있어서, 상기 펌웨어의 업데이트 파일에 기반한 갱신은,
상기 부트로더의 버전, 상기 커널의 버전, 상기 보안 부트 데몬의 버전, 상기 갱신 데몬의 버전 중 적어도 하나가 상기 기록된 버전에 비해 신규 버전일 경우에 수행되는 것을 특징으로 하는, 방법.
11. The method of claim 10, wherein updating based on the firmware update file comprises:
Wherein at least one of the version of the boot loader, the version of the kernel, the version of the secure boot daemon, and the version of the update daemon is a new version compared to the recorded version.
제 10 항에 있어서, 상기 업데이트 파일의 무결성 검증은,
상기 수신된 업데이트 파일에 대한 제1 해쉬값과, 상기 수신된 업데이트 파일에 관한 서명과 개발자의 인증서를 통해 계산된 제2 해쉬값을 비교하는 단계를 포함함을 특징으로 하는, 방법.
11. The method of claim 10, wherein the integrity verification of the update file comprises:
Comparing a first hash value for the received update file with a signature for the received update file and a second hash value computed over the developer's certificate.
제 13 항에 있어서, 상기 업데이트 파일의 무결성 검증은,
상기 제1 해쉬값과 상기 제2 해쉬값이 같을 경우 통과되고, 다를 경우 통과되지 않는 것을 특징으로 하는, 방법.
14. The method of claim 13, wherein the integrity verification of the update file comprises:
Wherein the first hash value and the second hash value are passed if they are equal and not if they are different.
삭제delete 삭제delete
KR1020160089482A 2016-07-14 2016-07-14 User apparatus based on trusted platform module and firmware updating method using the same KR101805310B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160089482A KR101805310B1 (en) 2016-07-14 2016-07-14 User apparatus based on trusted platform module and firmware updating method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160089482A KR101805310B1 (en) 2016-07-14 2016-07-14 User apparatus based on trusted platform module and firmware updating method using the same

Publications (1)

Publication Number Publication Date
KR101805310B1 true KR101805310B1 (en) 2017-12-06

Family

ID=60922418

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160089482A KR101805310B1 (en) 2016-07-14 2016-07-14 User apparatus based on trusted platform module and firmware updating method using the same

Country Status (1)

Country Link
KR (1) KR101805310B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112632562A (en) * 2020-12-28 2021-04-09 四川虹微技术有限公司 Equipment starting method, equipment management method and embedded equipment
KR102288444B1 (en) * 2020-09-18 2021-08-11 스티븐 상근 오 Firmware updating method, apparatus and program of authentication module
KR102336698B1 (en) * 2020-06-15 2021-12-08 주식회사 씽스토리 Method for verifying validity of firmware, firmware management apparatus for performing the same, internet of things device for updating firmware and system for including the same
KR20220001118A (en) 2020-06-29 2022-01-05 단국대학교 산학협력단 A system for remote attestation, os deployment server, attestation target device and method for updating operating system and integrity information simultaneously
WO2022055301A1 (en) * 2020-09-11 2022-03-17 상근 오스티븐 On-boarding method, apparatus, and program for group authenticator
WO2022107991A1 (en) * 2020-11-17 2022-05-27 주식회사 시큐브 Computer device including separated security module, and method for updating security module

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007133860A (en) * 2005-10-12 2007-05-31 Matsushita Electric Ind Co Ltd Program loader with tampering verification function for load-destination information, processor including program loader, data processing device including processor, program loading method, and integrated circuit

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007133860A (en) * 2005-10-12 2007-05-31 Matsushita Electric Ind Co Ltd Program loader with tampering verification function for load-destination information, processor including program loader, data processing device including processor, program loading method, and integrated circuit

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102336698B1 (en) * 2020-06-15 2021-12-08 주식회사 씽스토리 Method for verifying validity of firmware, firmware management apparatus for performing the same, internet of things device for updating firmware and system for including the same
KR20220001118A (en) 2020-06-29 2022-01-05 단국대학교 산학협력단 A system for remote attestation, os deployment server, attestation target device and method for updating operating system and integrity information simultaneously
KR102369874B1 (en) * 2020-06-29 2022-03-03 단국대학교 산학협력단 A system for remote attestation, os deployment server, attestation target device and method for updating operating system and integrity information simultaneously
WO2022055301A1 (en) * 2020-09-11 2022-03-17 상근 오스티븐 On-boarding method, apparatus, and program for group authenticator
KR102288444B1 (en) * 2020-09-18 2021-08-11 스티븐 상근 오 Firmware updating method, apparatus and program of authentication module
WO2022060156A1 (en) * 2020-09-18 2022-03-24 상근 오스티븐 Method, apparatus, and program for updating firmware of authenticator
WO2022107991A1 (en) * 2020-11-17 2022-05-27 주식회사 시큐브 Computer device including separated security module, and method for updating security module
CN112632562A (en) * 2020-12-28 2021-04-09 四川虹微技术有限公司 Equipment starting method, equipment management method and embedded equipment
CN112632562B (en) * 2020-12-28 2024-01-26 四川虹微技术有限公司 Device starting method, device management method and embedded device

Similar Documents

Publication Publication Date Title
KR101805310B1 (en) User apparatus based on trusted platform module and firmware updating method using the same
US11120126B2 (en) Method and system for preventing and detecting security threats
US10142104B2 (en) Securely recovering a computing device
CN109313690B (en) Self-contained encrypted boot policy verification
EP2681689B1 (en) Protecting operating system configuration values
KR101158184B1 (en) Protecting content on client platforms
US8230412B2 (en) Compatible trust in a computing device
US8732445B2 (en) Information processing device, information processing method, information processing program, and integrated circuit
US20130081124A1 (en) Trusting an unverified code image in a computing device
US20070260866A1 (en) Selectively unlocking a core root of trust for measurement (CRTM)
JP2014513348A (en) System and method for processing a request to change a system security database and firmware storage in an integrated extended firmware interface compliant computing device
JP2017021434A (en) Information processor and control method thereof
Löhr et al. Patterns for secure boot and secure storage in computer systems
JP2008537224A (en) Safe starting method and system
KR20170089859A (en) Method and device for providing verifying application integrity
KR101968382B1 (en) User apparatus based on trusted platform module and booting method using the same
US20170262658A1 (en) Method and device for providing verifying application integrity
KR20130114703A (en) Method and apparatus for managing security state transitions
EP3176723A1 (en) Computer system and operating method therefor

Legal Events

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