KR102392474B1 - Internet-of-things module - Google Patents

Internet-of-things module Download PDF

Info

Publication number
KR102392474B1
KR102392474B1 KR1020180023572A KR20180023572A KR102392474B1 KR 102392474 B1 KR102392474 B1 KR 102392474B1 KR 1020180023572 A KR1020180023572 A KR 1020180023572A KR 20180023572 A KR20180023572 A KR 20180023572A KR 102392474 B1 KR102392474 B1 KR 102392474B1
Authority
KR
South Korea
Prior art keywords
firmware
booting
security
version
area
Prior art date
Application number
KR1020180023572A
Other languages
Korean (ko)
Other versions
KR20190033411A (en
Inventor
김재훈
강보경
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US16/037,554 priority Critical patent/US10810311B2/en
Publication of KR20190033411A publication Critical patent/KR20190033411A/en
Application granted granted Critical
Publication of KR102392474B1 publication Critical patent/KR102392474B1/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
    • 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/55Detecting local intrusion or implementing counter-measures

Abstract

본 발명의 일 실시예에 따른 사물인터넷 모듈은, 부팅 펌웨어와 제1 보안 정보를 저장하는 부팅 영역, 및 펌웨어 배포(release) 버전과 제2 보안 정보를 저장하는 보안 영역을 갖는 메모리 유닛, 및 상기 부팅 펌웨어가 실행되면, 상기 제1 보안 정보 및 상기 제2 보안 정보를 비교하고, 상기 부팅 펌웨어의 버전을 상기 펌웨어 배포 버전과 비교하여 부팅 프로세스의 진행 여부를 판단하는 프로세서 유닛을 포함한다.The IoT module according to an embodiment of the present invention includes a memory unit having a booting area for storing booting firmware and first security information, and a security area for storing a firmware release version and second security information, and the and a processor unit configured to compare the first security information and the second security information when the booting firmware is executed, and to compare the version of the booting firmware with the firmware distribution version to determine whether to proceed with the booting process.

Figure R1020180023572
Figure R1020180023572

Description

사물인터넷 모듈{INTERNET-OF-THINGS MODULE}Internet of Things Module {INTERNET-OF-THINGS MODULE}

본 발명은 사물인터넷 모듈에 관한 것이다.The present invention relates to an IoT module.

통신망에 연결되어 동작하는 사물인터넷의 특성 상, 사물인터넷 모듈의 보안 성능은 매우 중요하다. 그러나 고가의 시스템으로 구현되는 컴퓨터 장치나 모바일 장치와 달리, 일반적인 장치나 사물에 사물인터넷 기능을 부여하기 위하여 생산되는 사물인터넷 모듈은 상대적으로 저가형 시스템으로 구현되므로, 고가의 보안 체계를 갖추기 어려울 수 있다. 또한, 사물인터넷 모듈의 생산업체와, 사물인터넷 모듈을 탑재한 장치를 생산하여 최종 소비자에게 판매하는 주체가 다를 수 있으므로, 사물인터넷 모듈에 저장된 부팅 펌웨어가 해킹되거나 의도치 않게 이전 버전으로 롤백(rollback)되는 등의 문제가 발생할 수 있다.Due to the characteristics of the Internet of Things that are connected to the communication network, the security performance of the IoT module is very important. However, unlike computer devices or mobile devices implemented as expensive systems, IoT modules produced to provide IoT functions to general devices or things are implemented as relatively low-cost systems, so it may be difficult to have an expensive security system. . In addition, since the manufacturer of the IoT module and the entity that produces and sells the device equipped with the IoT module to the end consumer may be different, the boot firmware stored in the IoT module may be hacked or unintentionally rolled back to the previous version. ), etc., may occur.

본 발명의 기술적 사상이 이루고자 하는 과제 중 하나는, 메모리의 보안 블록을 활용하여 보안 부팅(secure booting) 기능을 구현하는 한편, 펌웨어를 안전하게 관리할 수 있는 사물인터넷 모듈을 제공하고자 하는 데에 있다.One of the problems to be achieved by the technical idea of the present invention is to provide an IoT module capable of securely managing firmware while implementing a secure booting function by utilizing a secure block of a memory.

본 발명의 일 실시예에 따른 사물인터넷 모듈은, 부팅 펌웨어와 제1 보안 정보를 저장하는 부팅 영역, 및 펌웨어 배포(release) 버전과 제2 보안 정보를 저장하는 보안 영역을 갖는 메모리 장치, 및 상기 부팅 펌웨어가 실행되면, 상기 제1 보안 정보 및 상기 제2 보안 정보를 비교하고, 상기 부팅 펌웨어의 버전을 상기 펌웨어 배포 버전과 비교하여 부팅 프로세스의 진행 여부를 판단하는 프로세서 유닛을 포함한다.The IoT module according to an embodiment of the present invention includes a memory device having a booting area for storing booting firmware and first security information, and a security area for storing a firmware release version and second security information, and the and a processor unit configured to compare the first security information and the second security information when the booting firmware is executed, and to compare the version of the booting firmware with the firmware distribution version to determine whether to proceed with the booting process.

본 발명의 일 실시예에 따른 사물인터넷 모듈은, 부팅에 필요한 부팅 펌웨어를 저장하는 부팅 영역, 및 상기 부팅 펌웨어의 롤백(rollback) 검사 기능을 제공하기 위한 펌웨어 배포 버전을 저장하는 보안 영역을 갖는 제1 메모리 장치, 상기 보안 영역에 접근하여 상기 펌웨어 배포 버전을 획득하는 보안 부트 로직을 갖는 제2 메모리 장치, 및 상기 부팅 펌웨어의 버전을, 상기 펌웨어 배포 버전과 비교하여 상기 부팅 펌웨어의 롤백 여부를 판단하는 프로세서 유닛을 포함한다.The IoT module according to an embodiment of the present invention includes a device having a boot area for storing booting firmware required for booting, and a security area for storing a firmware distribution version for providing a rollback inspection function of the booting firmware. 1 A memory device, a second memory device having a secure boot logic to obtain the firmware distribution version by accessing the secure area, and a version of the booting firmware are compared with the firmware distribution version to determine whether to rollback the booting firmware It includes a processor unit that

본 발명의 일 실시예에 따른 사물인터넷 모듈은, 부팅 펌웨어를 저장하는 부팅 영역, 및 상기 부팅 영역과 구분되며 소정의 인증 키를 저장하는 보안 영역을 갖는 메모리 장치, 및 내부 회로의 구조로부터 하드웨어 고유 키를 생성하는 하드웨어 고유 키 생성 회로를 포함하며, 상기 부팅 펌웨어가 최초로 실행되면 상기 휘발성 메모리 장치를 통해 상기 하드웨어 고유 키를 상기 인증 키로서 상기 보안 영역에 저장하고, 상기 하드웨어 고유 키를 이용하는 인증 절차를 통해 상기 보안 영역에 대한 접근 권한을 획득하는 프로세서 유닛을 포함한다.The IoT module according to an embodiment of the present invention includes a memory device having a boot region for storing booting firmware, a security region separated from the boot region and storing a predetermined authentication key, and a hardware unique structure from an internal circuit structure. and a hardware-specific key generation circuit for generating a key, wherein when the booting firmware is first executed, the hardware-specific key is stored in the secure area as the authentication key through the volatile memory device, and an authentication procedure using the hardware-specific key and a processor unit configured to obtain an access right to the security area through

본 발명의 일 실시예에 따르면, eFuse나 OTP 등과 같은 별도의 영역 없이 펌웨어의 의도치 않은 롤백 등을 방지함으로써 펌웨어 무결성을 확보할 수 있다. 또한, 펌웨어를 배포하는 과정에서 사물인터넷 모듈에 탑재되었던 공공 키를, 사물인터넷 모듈을 탑재한 사물인터넷 장치를 생산하는 주체인, 사물인터넷 디바이스 제조사의 보안 키로 대체할 수 있다. 따라서, 동일한 사물인터넷 모듈이 탑재된 사물인터넷 장치들 간의 해킹 위험성을 낮출 수 있다. 또한, 메모리 장치의 보안 영역에 저장된 보안 키의 정보를 이용하여, 보안 부팅 기능을 제공할 수 있다.According to an embodiment of the present invention, firmware integrity can be secured by preventing an unintentional rollback of the firmware without a separate area such as eFuse or OTP. In addition, in the process of distributing the firmware, the public key mounted on the IoT module can be replaced with the security key of the IoT device manufacturer, who is the main producer of the IoT device equipped with the IoT module. Accordingly, it is possible to reduce the risk of hacking between IoT devices on which the same IoT module is mounted. In addition, a secure boot function may be provided by using information on the security key stored in the security area of the memory device.

본 발명의 다양하면서도 유익한 장점과 효과는 상술한 내용에 한정되지 않으며, 본 발명의 구체적인 실시 형태를 설명하는 과정에서 보다 쉽게 이해될 수 있을 것이다.Various and advantageous advantages and effects of the present invention are not limited to the above, and will be more easily understood in the course of describing specific embodiments of the present invention.

도 1은 본 발명의 일 실시예에 따른 사물인터넷 모듈로 구현할 수 있는 사물인터넷 시스템을 간단하게 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 사물인터넷 모듈을 탑재한 사물인터넷 디바이스의 제조 과정을 설명하기 위해 제공되는 도면이다.
도 3 내지 도 5는 본 발명의 일 실시예에 따른 사물인터넷 모듈을 간단하게 나타낸 블록도들이다.
도 6 및 도 7은 본 발명의 일 실시예에 따른 사물인터넷 모듈의 동작을 설명하기 위해 제공되는 흐름도들이다.
도 8 및 도 9는 본 발명의 일 실시예에 따른 사물인터넷 모듈의 동작을 설명하기 위한 도면이다.
1 is a diagram schematically illustrating an IoT system that can be implemented with an IoT module according to an embodiment of the present invention.
2 is a diagram provided to explain a manufacturing process of an IoT device equipped with an IoT module according to an embodiment of the present invention.
3 to 5 are block diagrams simply illustrating an IoT module according to an embodiment of the present invention.
6 and 7 are flowcharts provided to explain the operation of the IoT module according to an embodiment of the present invention.
8 and 9 are diagrams for explaining the operation of the IoT module according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 형태들을 다음과 같이 설명한다.Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 사물인터넷 시스템을 간단하게 나타낸 도면이다.1 is a diagram schematically illustrating an Internet of Things system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 사물인터넷 시스템(1)은 통신을 중개하기 위한 사물인터넷 네트워크(2)와, 복수의 사물인터넷 디바이스들(10-40)을 포함할 수 있다. 사물인터넷 네트워크(2)는 복수의 사물인터넷 디바이스들(10-40) 사이의 통신을 중개함과 동시에 데이터베이스(3)를 이용하는 클라우드 서비스 등을 제공할 수 있다. Referring to FIG. 1 , an IoT system 1 according to an embodiment of the present invention may include an IoT network 2 for mediating communication and a plurality of IoT devices 10-40. . The IoT network 2 may provide a cloud service using the database 3 and the like while facilitating communication between the plurality of IoT devices 10 - 40 .

사물인터넷 디바이스들(10-40)은 사물인터넷 네트워크(2)와의 통신 기능을 갖춘 사물인터넷 모듈을 포함할 수 있다. 사물인터넷 모듈은 전반적인 제어 및 연산 기능을 수행하는 프로세서 유닛과, 데이터 저장을 위한 메모리 유닛, 주변 정보를 수집하는 센서 유닛, 및 사물인터넷 네트워크(2)와의 통신을 수행하는 통신 유닛 등을 포함할 수 있다. 일례로, 에어컨(21) 또는 공기청정기(22) 등에 포함되는 사물인터넷 모듈은, 주변의 온도와 습도, 미세먼지 농도 등을 측정하는 센서를 포함할 수 있다. 냉장고(43)는 내부 온도와 습도 등을 측정할 수 있는 센서를 포함할 수 있다.The IoT devices 10 - 40 may include an IoT module having a communication function with the IoT network 2 . The IoT module may include a processor unit that performs overall control and calculation functions, a memory unit for data storage, a sensor unit that collects surrounding information, and a communication unit that communicates with the Internet of Things network (2). there is. For example, the IoT module included in the air conditioner 21 or the air purifier 22 may include a sensor that measures ambient temperature and humidity, fine dust concentration, and the like. The refrigerator 43 may include a sensor capable of measuring internal temperature and humidity.

사물인터넷 네트워크(2)는 일종의 통신망으로서, 사물인터넷 디바이스들(10-40) 사이의 통신을 중개할 수 있다. 일 실시예에서 사물인터넷 네트워크(2)는 데이터베이스(3)를 가질 수 있으며, 데이터베이스(3)는 사물인터넷 시스템(1)에 등록된 사물인터넷 디바이스들(10-40)의 식별 정보 등이 저장될 수 있다. 데이터베이스(3)에 저장되지 않은 식별 정보를 가진 다른 디바이스는, 사물인터넷 시스템(1)에 연동되어 동작할 수 없다. 새로운 디바이스가 사물인터넷 네트워크(2)에 연결되면, 데이터베이스(3)에 저장된 식별 정보와 사물인터넷 네트워크(2)에 연결된 새로운 디바이스의 식별 정보를 비교함으로써, 사물인터넷 네트워크(2)에 연결된 새로운 디바이스를 사물인터넷 시스템(1)에 등록할지 여부를 결정할 수 있다.The IoT network 2 is a kind of communication network and may mediate communication between the IoT devices 10-40. In an embodiment, the IoT network 2 may have a database 3 , in which the database 3 stores identification information of the IoT devices 10-40 registered in the IoT system 1 . can Other devices having identification information not stored in the database 3 may not operate in conjunction with the IoT system 1 . When a new device is connected to the IoT network 2 , the new device connected to the IoT network 2 is identified by comparing the identification information stored in the database 3 with the identification information of the new device connected to the IoT network 2 . It is possible to determine whether to register with the IoT system (1).

일 실시예에서, 사물인터넷 모듈을 생산, 판매하는 모듈 제조사는, 사물인터넷 디바이스들(10-40)을 생산, 판매하는 디바이스 제조사와 다를 수 있다. 즉, 디바이스 제조사는 모듈 제조사로부터 사물인터넷 모듈을 구입하고, 구입한 사물인터넷 모듈을 가공하여 사물인터넷 모듈을 탑재한 다양한 사물인터넷 디바이스들을 제조할 수 있다. 일례로, 도 1에 도시한 사물인터넷 시스템(1)에서, 사물인터넷 디바이스들(10-40) 각각을 생산하는 디바이스 제조사가 모두 다를 수도 있다. In an embodiment, a module manufacturer that produces and sells the IoT module may be different from a device manufacturer that produces and sells the IoT devices 10-40. That is, a device manufacturer may purchase an IoT module from a module manufacturer, process the purchased IoT module, and manufacture various IoT devices equipped with the IoT module. For example, in the IoT system 1 shown in FIG. 1 , device manufacturers that produce each of the IoT devices 10-40 may all be different.

사물인터넷 모듈을 구입하여 사물인터넷 디바이스들을 생산, 판매하는 디바이스 제조사들이 다양하고, 디바이스 제조사가 생산하는 사물인터넷 디바이스의 물량이 서로 다르기 때문에, 모듈 제조사가 각 디바이스 제조사들 고유의 보안 키를 탑재하여 사물인터넷 모듈을 제조하는 것은 현실적으로 어려울 수 있다. 모듈 제조사는 공통의 보안 키를 이용하여 부팅 펌웨어 및 운영 체제 등에 대한 보안 기능을 구현할 수 있는데, 동일한 사물인터넷 모듈을 탑재한 사물인터넷 디바이스들 사이에서, 부팅 펌웨어를 이용한 해킹의 위험이 존재할 수 있다.Since there are various device manufacturers who purchase IoT modules and produce and sell IoT devices, and the quantity of IoT devices produced by device manufacturers is different, module manufacturers install their own security key Manufacturing Internet modules can be difficult in reality. Module manufacturers can implement security functions for booting firmware and operating system by using a common security key, but among IoT devices equipped with the same IoT module, there may be a risk of hacking using the booting firmware.

이러한 문제를 해결하기 위하여 의도적으로 일부 회로를 사용 불가능하게 하는 eFuse 등의 방법을 이용할 수 있으나, 상대적으로 저비용으로 생산되고 회로 영역에 여유가 많지 않은 사물인터넷 모듈의 특성 상, eFuse를 적용하기는 쉽지 않을 수 있다. 본 발명의 일 실시예에서는, 사물인터넷 모듈에 탑재된 메모리의 보안 영역을 이용하여 보안 부팅 및 펌웨어 롤백 보호 기능을 제공할 수 있다. 따라서, 모듈 제조사가 디바이스 제조사들마다 서로 다른 보안 키를 적용하지 않아도 보안 부팅 기능을 구현할 수 있으며, 해킹의 위험을 낮춘 사물인터넷 모듈을 제공할 수 있다.To solve this problem, a method such as eFuse that intentionally disables some circuits can be used. it may not be According to an embodiment of the present invention, secure boot and firmware rollback protection functions may be provided by using the secure area of the memory mounted in the IoT module. Accordingly, a secure boot function can be implemented without a module manufacturer applying a different security key to each device manufacturer, and an IoT module with a reduced risk of hacking can be provided.

도 2는 본 발명의 일 실시예에 따른 사물인터넷 디바이스의 제조 과정을 설명하기 위해 제공되는 도면이다.2 is a diagram provided to explain a manufacturing process of an IoT device according to an embodiment of the present invention.

도 2를 참조하면, 모듈 제조사(50)는 서로 다른 복수의 디바이스 제조사들(61-63)에 사물인터넷 모듈을 판매할 수 있다. 모듈 제조사(50)가 복수의 디바이스 제조사들(61-63)에 판매하는 사물인터넷 모듈은 서로 같을 수 있으며, 동일한 부팅 펌웨어를 가질 수 있다. 일 실시예에서 부팅 펌웨어는 부팅 이미지 형태로 사물인터넷 모듈의 비휘발성 메모리 장치에 저장될 수 있다. 디바이스 제조사들(61-63)은 사물인터넷 모듈을 탑재한 사물인터넷 디바이스를 생산하는 과정에서, 모듈 제조사(50)가 사물인터넷 모듈에 저장한 부팅 펌웨어를 가공할 수 있다.Referring to FIG. 2 , the module manufacturer 50 may sell the IoT module to a plurality of different device manufacturers 61 to 63 . The IoT modules sold by the module manufacturer 50 to the plurality of device manufacturers 61-63 may be identical to each other and may have the same booting firmware. In an embodiment, the booting firmware may be stored in the nonvolatile memory device of the IoT module in the form of a booting image. The device manufacturers 61-63 may process booting firmware stored in the IoT module by the module manufacturer 50 in the process of producing the IoT device equipped with the IoT module.

모듈 제조사(50)가 복수의 디바이스 제조사들(61-63)이 생산하는 사물인터넷 디바이스들 각각에 맞춰서, 보안 부팅 기능을 제공하기 위한 보안 키를 서로 다르게 적용하는 것은 현실적으로 불가능에 가깝다. 따라서 모듈 제조사(50)로부터 같은 사물인터넷 모듈을 구매하여 복수의 디바이스 제조사들(61-63) 각각이 사물인터넷 디바이스들을 생산, 판매할 경우, 특정 사물인터넷 디바이스에 탑재된 사물인터넷 모듈의 부팅 이미지에 의해 다른 사물인터넷 디바이스가 보안 부팅되거나 또는 부팅 펌웨어가 롤백될 가능성이 있다. 예를 들어, A사(61)의 디바이스에 포함된 사물인터넷 모듈의 부팅 이미지로 B사(62)나 C사(63)의 디바이스에 포함된 사물인터넷 모듈이 보안 부팅될 수도 있다. 또는, A사(61)의 디바이스에 포함된 사물인터넷 모듈의 부팅 이미지에 포함된 부팅 펌웨어에 의해, B사(62)나 C사(63)의 디바이스에 포함된 사물인터넷 모듈의 부팅 펌웨어가 이전 버전으로 의도치 않게 롤백될 수 있다.It is practically impossible for the module manufacturer 50 to differently apply a security key for providing a secure boot function according to each of the IoT devices produced by the plurality of device manufacturers 61-63. Therefore, when the same IoT module is purchased from the module manufacturer 50 and each of the plurality of device manufacturers 61-63 produces and sells IoT devices, the boot image of the IoT module mounted on the specific IoT device is displayed. There is a possibility that other IoT devices may be securely booted or the boot firmware may be rolled back. For example, the IoT module included in the device of the company B 62 or the company C 63 may be securely booted as a boot image of the IoT module included in the device of the company A 61 . Alternatively, the boot firmware of the IoT module included in the device of company B 62 or company C 63 is transferred by the boot firmware included in the boot image of the IoT module included in the device of company A 61 . Versions can be rolled back unintentionally.

본 발명의 다양한 실시예들에서는, 사물인터넷 모듈이 프로세서 유닛과 메모리 유닛을 포함할 수 있으며, 메모리 유닛은 소정의 인증 절차를 거쳐야 접근이 가능한 보안 영역을 가질 수 있다. 메모리 유닛의 보안 영역은, 보안 영역에 대한 접근 권한을 확인하기 위한 인증 키와 함께, 보안 부팅을 위한 보안 키의 정보 및 부팅 펌웨어의 배포 버전 등이 저장될 수 있다. 일례로, 상기 인증 키는 하드웨어 고유 키(Hardware Unique Key, HuK)일 수 있으며, 사물인터넷 모듈이 처음 부팅될 때 프로세서 유닛에 의해 생성되어 상기 보안 영역에 주입될 수 있다.In various embodiments of the present disclosure, the IoT module may include a processor unit and a memory unit, and the memory unit may have a secure area accessible only through a predetermined authentication procedure. In the security area of the memory unit, information on a security key for secure booting, a distribution version of booting firmware, etc. may be stored together with an authentication key for confirming an access right to the security area. For example, the authentication key may be a Hardware Unique Key (HuK), and may be generated by the processor unit when the IoT module is first booted and injected into the secure area.

사물인터넷 모듈이 부팅되면, 프로세서 유닛은 메모리 유닛의 부팅 영역에 저장된 부팅 이미지를 읽어와서 부팅 펌웨어를 실행할 수 있다. 동시에, 프로세서 유닛은 부팅 펌웨어의 버전 및 부팅 영역에 저장된 보안 키의 정보를, 보안 영역에 저장된 부팅 펌웨어의 배포 버전 및 보안 키의 정보와 각각 비교할 수 있다. 따라서, 정당하지 않은 루트로 복사된 부팅 이미지 및/또는 부팅 펌웨어에 의한 부팅을 방지할 수 있는 보안 부팅 기능을 제공함과 동시에, 부팅 펌웨어의 의도치 않은 롤백을 차단할 수 있다.When the IoT module is booted, the processor unit may read the boot image stored in the boot area of the memory unit and execute the booting firmware. At the same time, the processor unit may compare the information on the version of the boot firmware and the security key stored in the boot area with the distribution version of the boot firmware and information on the security key stored in the security area, respectively. Accordingly, it is possible to provide a secure boot function capable of preventing booting by booting images and/or booting firmware copied to an illegal route, and at the same time, prevent unintentional rollback of booting firmware.

도 3 내지 도 5는 본 발명의 일 실시예에 따른 사물인터넷 모듈을 간단하게 나타낸 블록도들이다.3 to 5 are block diagrams simply illustrating an IoT module according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시예에 따른 사물인터넷 모듈(70)은 제1 메모리 유닛(71), 제2 메모리 유닛(72), 프로세서 유닛(73), 통신 유닛(74), 및 인터페이스 유닛(75) 등을 포함할 수 있다. 사물인터넷 모듈(70)에 포함된 유닛들(71-75) 각각은 버스(76)를 통해 서로 데이터를 주고받을 수 있다.Referring to FIG. 3 , the IoT module 70 according to an embodiment of the present invention includes a first memory unit 71 , a second memory unit 72 , a processor unit 73 , a communication unit 74 , and an interface unit 75 and the like. Each of the units 71 - 75 included in the IoT module 70 may exchange data with each other through the bus 76 .

제1 메모리 유닛(71)과 제2 메모리 유닛(72)은 서로 다른 메모리 칩에 의해 제공될 수 있다. 제1 메모리 유닛(71)은 비휘발성 메모리 장치일 수 있으며, 제2 메모리 유닛(72)은 휘발성 메모리 장치일 수 있다. 일례로, 제1 메모리 유닛(71)은 eMMC(Embedded Multi Media Card) 또는 NAND 플래시 메모리 등으로 구현될 수 있으며, 제2 메모리 유닛(72)은 동적 메모리 장치(Dynamic Random Access Memory, DRAM)으로 구현될 수 있다.The first memory unit 71 and the second memory unit 72 may be provided by different memory chips. The first memory unit 71 may be a non-volatile memory device, and the second memory unit 72 may be a volatile memory device. For example, the first memory unit 71 may be implemented as an embedded multi media card (eMMC) or NAND flash memory, and the second memory unit 72 may be implemented as a dynamic random access memory (DRAM). can be

프로세서 유닛(73)은 사물인터넷 모듈(70)의 동작 전반을 제어할 수 있다. 사물인터넷 모듈(70)이 턴-온되면, 프로세서 유닛(73)은 직접, 또는 제2 메모리 유닛(72)을 통해 제1 메모리 유닛(71)에 저장된 부팅 이미지를 읽어와서 부팅 펌웨어 및 운영 체제 등을 실행함으로써, 부팅 프로세스를 진행할 수 있다. 상기 부팅 프로세스가 진행되는 동안, 프로세서 유닛(73)은 제1 메모리 유닛(71)의 보안 영역에 저장된 보안 정보 및 펌웨어 배포(release) 버전 등을 이용하여, 부팅 펌웨어가 해킹되었는지 여부를 검사하는 동시에, 상기 부팅 펌웨어의 의도치 않은 롤백을 방지할 수 있다.The processor unit 73 may control overall operations of the IoT module 70 . When the IoT module 70 is turned on, the processor unit 73 reads the boot image stored in the first memory unit 71 directly or through the second memory unit 72, such as booting firmware and the operating system. By executing , you can proceed with the booting process. While the booting process is in progress, the processor unit 73 checks whether the booting firmware has been hacked using security information stored in the secure area of the first memory unit 71 and a firmware release version, etc. , it is possible to prevent an unintentional rollback of the booting firmware.

통신 유닛(74)은 하나 이상의 유/무선 통신 기능을 제공할 수 있다. 일례로 통신 유닛(74)은 WiFi 등과 같은 무선랜, 블루투스(Bluetooth), 지그비(Zigbee) 등의 통신 기능을 제공할 수 있다. 인터페이스 유닛(75)은 카메라 또는 디스플레이 등의 장치와 연결되는 디스플레이 인터페이스, 및/또는 통신 유닛(74)과 연결되는 유선 통신 인터페이스 등을 가질 수 있다. 일례로, 인터페이스 유닛(75)은 MIPI(Mobile Industry Processor Interface)를 디스플레이 인터페이스로 포함할 수 있으며, I2C, UART, I2S 등을 유선 통신 인터페이스로 포함할 수 있다.The communication unit 74 may provide one or more wired/wireless communication functions. For example, the communication unit 74 may provide a communication function such as a wireless LAN such as WiFi, Bluetooth, or Zigbee. The interface unit 75 may have a display interface connected to a device such as a camera or a display, and/or a wired communication interface connected to the communication unit 74 . For example, the interface unit 75 may include a Mobile Industry Processor Interface (MIPI) as a display interface, and may include I2C, UART, I2S, etc. as a wired communication interface.

다음으로 도 4를 참조하면, 본 발명의 일 실시예에 따른 사물인터넷 모듈(100)은 프로세서 유닛(110), 제1 메모리 유닛(120), 및 제2 메모리 유닛(130)을 포함할 수 있다. 일 실시예에서 프로세서 유닛(110)는 중앙 처리 장치(CPU, 111), 하드웨어 고유 키(HuK) 생성 회로(112) 및 메모리 컨트롤러(113) 등을 포함할 수 있으며, 시스템-온-칩(System-On-Chip, SoC) 형태로 구현될 수 있다. 제1 메모리 유닛(120)은 비휘발성 메모리로 구현될 수 있으며, 일 실시예로 eMMC(Embedded Multi Media Card) 또는 NAND 플래시 메모리 등일 수 있다.Next, referring to FIG. 4 , the IoT module 100 according to an embodiment of the present invention may include a processor unit 110 , a first memory unit 120 , and a second memory unit 130 . . In an embodiment, the processor unit 110 may include a central processing unit (CPU) 111 , a hardware unique key (HuK) generation circuit 112 , a memory controller 113 , and the like, and may include a system-on-chip (System). -On-Chip, SoC) can be implemented. The first memory unit 120 may be implemented as a non-volatile memory, and may be an eMMC (Embedded Multi Media Card) or a NAND flash memory, for example.

메모리 컨트롤러(113)는 제2 메모리 유닛(130)의 보안 속성을 설정하기 위한 컨트롤러일 수 있다. 일례로 메모리 컨트롤러(113)는 보안 소프트웨어와 일반 소프트웨어에 의한 논리적 분할을 주변 장치에 적용하기 위한 트러스트존(trustzone) 방식을 이용하는 트러스트존 보호 컨트롤러(TrustZone Protection Controller, TZPC)를 포함할 수 있다. 메모리 컨트롤러(113)에 의해 제2 메모리 유닛(130)의 적어도 일부 영역이 보안 영역으로 할당될 수 있다.The memory controller 113 may be a controller for setting security properties of the second memory unit 130 . For example, the memory controller 113 may include a TrustZone Protection Controller (TZPC) using a trustzone method for applying logical division by security software and general software to peripheral devices. At least a partial area of the second memory unit 130 may be allocated as a security area by the memory controller 113 .

제1 메모리 유닛(120)은 복수의 부팅 영역들(121, 122), 일반적인 사용자 데이터를 저장하는 저장 영역(123), 및 보안 영역(124) 등을 포함할 수 있다. 상기 영역들(121-124)은 제1 메모리 유닛(120)의 제조 단계에서 정의되는 영역들일 수 있다. 보안 영역(124)은, 보안 영역(124)에 대한 접근 권한을 확인하는 데에 필요한 인증 키(125)를 저장할 수 있다. 일 실시예에서 인증 키(125)는 사물인터넷 모듈(100)이 처음 부팅될 때, 프로세서 유닛(110)의 하드웨어 고유 키 생성 회로(112)가 생성하여 주입한 하드웨어 고유 키일 수 있다. 보안 영역(124)은 일반적인 데이터를 저장하는 저장 영역(123)과 달리, 인증 키(125)를 통한 인증 절차를 통과한 경우에만 접근이 가능한 영역일 수 있다. 일 실시예에서 보안 영역(124)은 RPMB(Replay Protected Memory Block)일 수 있다.The first memory unit 120 may include a plurality of booting areas 121 and 122 , a storage area 123 for storing general user data, and a security area 124 . The regions 121-124 may be regions defined in the manufacturing step of the first memory unit 120 . The security area 124 may store an authentication key 125 necessary for confirming an access right to the security area 124 . In an embodiment, the authentication key 125 may be a hardware-specific key generated and injected by the hardware-specific key generation circuit 112 of the processor unit 110 when the IoT module 100 is first booted. Unlike the storage area 123 for storing general data, the security area 124 may be an area accessible only when an authentication procedure through the authentication key 125 is passed. In one embodiment, the security area 124 may be a Replay Protected Memory Block (RPMB).

하드웨어 고유 키 생성 회로(112)는 프로세서 유닛(110)에 포함된 회로 구조로부터 인증 키를 생성할 수 있다. 하드웨어 고유 키는 프로세서 유닛(110)에 포함된 회로 구조의 특징에 기초하여 달라질 수 있으므로, 해킹의 위험성을 크게 낮출 수 있다. 하드웨어 고유 키는 사물인터넷 모듈(100)의 처음으로 부팅될 때 보안 영역(124)에 주입될 수 있으며, 이후 프로세서 유닛(110)이 보안 영역(124)에 저장된 데이터에 대한 접근 권한을 획득하고자 하는 인증 절차에 활용될 수 있다. 사물인터넷 모듈(100)은 모듈 제조사가 생산하여 디바이스 제조사에 판매하며, 디바이스 제조사가 사물인터넷 모듈(100)을 탑재한 사물인터넷 디바이스를 생산하여 최종 소비자(end-user)에게 판매할 수 있다. 따라서, 하드웨어 고유 키가 보안 영역(124)에 주입되는 최초 부팅 동작은, 모듈 제조사 또는 디바이스 제조사에 의해 실행되는 절차일 수 있다.The hardware-specific key generation circuit 112 may generate an authentication key from a circuit structure included in the processor unit 110 . Since the hardware-specific key may vary based on the characteristics of the circuit structure included in the processor unit 110 , the risk of hacking may be greatly reduced. The hardware-specific key may be injected into the security area 124 when the IoT module 100 is booted for the first time, and then the processor unit 110 intends to obtain an access right to the data stored in the security area 124 . It can be used in the authentication process. The IoT module 100 may be produced by a module manufacturer and sold to a device manufacturer, and the device manufacturer may produce an IoT device equipped with the IoT module 100 and sell it to an end-user. Accordingly, the first booting operation in which the hardware-specific key is injected into the secure area 124 may be a procedure executed by the module manufacturer or the device manufacturer.

부팅 영역들(121, 122) 각각은 부트 로더 및 부팅 이미지 등을 저장할 수 있다. 일례로, 부팅 펌웨어는 부팅 이미지 형태로 부팅 영역들(121, 122) 각각에 저장될 수 있다. 또한, 부팅 영역들(121, 122) 중 적어도 하나는 보안 부팅 기능을 제공하기 위한 정보를 제1 보안 정보로서 저장할 수 있다. 일 실시예에서, 사물인터넷 모듈(100)이 부팅될 때 먼저 로딩되는 제1 부팅 영역(121)에 상기 제1 보안 정보가 저장될 수 있다. 예를 들어 제1 보안 정보는 사물인터넷 모듈(100)을 탑재한 사물인터넷 디바이스를 제조하는 디바이스 제조사가 부여한 보안 키의 해쉬 값 등을 포함할 수 있다.Each of the boot areas 121 and 122 may store a boot loader and a boot image. For example, the booting firmware may be stored in each of the booting areas 121 and 122 in the form of a booting image. Also, at least one of the boot regions 121 and 122 may store information for providing a secure boot function as first security information. In an embodiment, the first security information may be stored in the first booting area 121 that is loaded first when the IoT module 100 is booted. For example, the first security information may include a hash value of a security key provided by a device manufacturer that manufactures an IoT device equipped with the IoT module 100 .

한편 보안 영역(124)은, 보안 부팅 기능을 제공하기 위한 정보를 제2 보안 정보로서 저장할 수 있다. 일례로 제2 보안 정보는 하드웨어 보안 모듈(Hardware Security Module, HSM) 등에 의해 부팅 영역들(121, 122)에 부팅 펌웨어가 저장 및 배포(release)될 때 보안 영역(124)에 저장될 수 있다. 제2 보안 정보는 사물인터넷 모듈(100)을 탑재한 사물인터넷 디바이스를 제조하는 디바이스 제조사가 부여한 보안 키의 해쉬 값 등을 포함할 수 있다.Meanwhile, the secure area 124 may store information for providing a secure boot function as second security information. For example, the second security information may be stored in the security area 124 when the boot firmware is stored and released in the boot areas 121 and 122 by a hardware security module (HSM) or the like. The second security information may include a hash value of a security key provided by a device manufacturer that manufactures an IoT device equipped with the IoT module 100 .

앞서 설명한 바와 같이 하나의 모듈 제조사가 생산, 판매하는 사물인터넷 모듈(100)을 이용하여, 복수의 디바이스 제조사들이 다양한 사물인터넷 디바이스들을 생산, 판매할 수 있다. 부팅 영역들(121, 122)에 저장된 부팅 펌웨어는 다른 부팅 펌웨어에 의해 덮어 씌워질 수 있으며, 따라서 보안 부팅 기능이 제공되지 않을 경우 외부에서 복사된 부팅 펌웨어에 의해 사물인터넷 모듈(100)이 부팅될 수 있다. As described above, by using the IoT module 100 produced and sold by one module manufacturer, a plurality of device manufacturers can produce and sell various IoT devices. The booting firmware stored in the booting areas 121 and 122 may be overwritten by other booting firmware. Therefore, if the secure boot function is not provided, the IoT module 100 will be booted by the booting firmware copied from the outside. can

상기와 같은 문제를 해결하기 위해, 본 발명의 일 실시예에서는 부팅 영역들(121, 122) 중 적어도 하나에 저장된 제1 보안 정보가, 보안 영역(124)에 저장된 제2 보안 정보와 일치하는 경우에만 부팅 프로세스를 진행할 수 있다. 제2 보안 정보는 부팅 펌웨어를 배포하는 과정에서 하드웨어 보안 모듈 등을 이용하여 디바이스 제조사가 보안 영역(124)에 저장하는 보안 키의 해쉬 값 등일 수 있으며, 부팅 펌웨어가 배포된 이후에는 보안 영역(124)에 저장된 제2 보안 정보가 변경될 수 없다. 따라서, 부팅 영역들(121, 122)에 저장된 부팅 펌웨어를 다른 펌웨어로 변경하여 사물인터넷 모듈(100)을 부팅하고자 하는 경우, 제1 보안 정보와 제2 보안 정보의 불일치로 인해 부팅 프로세스가 중단될 수 있으며, 결과적으로 외부에서 복사한 부팅 펌웨어를 이용한 해킹의 위험성을 낮출 수 있다.In order to solve the above problem, in an embodiment of the present invention, when the first security information stored in at least one of the boot regions 121 and 122 matches the second security information stored in the security region 124 , Only the boot process can proceed. The second security information may be a hash value of a security key stored in the security area 124 by the device manufacturer using a hardware security module or the like in the process of distributing the booting firmware, and after the booting firmware is distributed, the security area 124 ) stored in the second security information cannot be changed. Accordingly, when the IoT module 100 is booted by changing the booting firmware stored in the booting areas 121 and 122 to another firmware, the booting process may be interrupted due to a mismatch between the first security information and the second security information. As a result, it is possible to lower the risk of hacking using boot firmware copied from the outside.

또한 본 발명의 일 실시예에서는, 부팅 프로세스가 진행되는 동안, 부팅 영역들(121, 122)에 저장된 부팅 펌웨어의 버전을, 보안 영역(124)에 저장된 펌웨어 배포 버전과 비교할 수 있다. 상기 펌웨어 배포 버전은, 디바이스 제조사 등이 하드웨어 보안 모듈 등을 이용하여 배포한 부팅 펌웨어의 버전일 수 있다. 프로세서 유닛(110)은, 부팅 영역들(121, 122)에 저장된 부팅 펌웨어의 버전이 보안 영역(124)에 저장된 펌웨어 배포 버전보다 이전 버전일 경우, 부팅 프로세스를 중단할 수 있다. 따라서, 정당하지 않은 경로를 통해 부팅 영역들(121, 122)에 저장된 부팅 펌웨어에 의한, 펌웨어 롤백을 방지할 수 있다.Also, in an embodiment of the present invention, the version of the boot firmware stored in the boot areas 121 and 122 may be compared with the firmware distribution version stored in the secure area 124 while the booting process is in progress. The firmware distribution version may be a version of boot firmware distributed by a device manufacturer using a hardware security module or the like. When the version of the boot firmware stored in the boot areas 121 and 122 is older than the version of the firmware distribution stored in the security area 124 , the processor unit 110 may stop the booting process. Accordingly, it is possible to prevent firmware rollback by the booting firmware stored in the booting areas 121 and 122 through an illegal path.

다음으로 도 5를 참조하면, 사물인터넷 모듈(200)은 프로세서 유닛(210), 제1 메모리 유닛(220), 제2 메모리 유닛(230) 등을 포함할 수 있다. 앞서 설명한 바와 같이 제1 메모리 유닛(220)은 eMMC, NAND 플래시 메모리 등의 비휘발성 메모리일 수 있다. Next, referring to FIG. 5 , the IoT module 200 may include a processor unit 210 , a first memory unit 220 , a second memory unit 230 , and the like. As described above, the first memory unit 220 may be a nonvolatile memory such as eMMC or NAND flash memory.

프로세서 유닛(210)은 하드웨어 고유 키 생성 회로(211)를 포함할 수 있다. 하드웨어 고유 키 생성 회로(211)가 생성한 하드웨어 고유 키(232)는, 프로세서 유닛(210) 내부에 존재하는 회로의 미세 구조를 반영하여 생성될 수 있다. 따라서, 같은 모듈 제조사가 제조한 사물인터넷 모듈(200) 사이에서도, 하드웨어 고유 키(232)는 서로 다르게 생성될 수 있다.The processor unit 210 may include a hardware unique key generation circuit 211 . The hardware-specific key 232 generated by the hardware-specific key generation circuit 211 may be generated by reflecting the microstructure of a circuit existing inside the processor unit 210 . Accordingly, even between the IoT modules 200 manufactured by the same module manufacturer, the unique hardware key 232 may be generated differently.

하드웨어 고유 키(232)는 사물인터넷 모듈(200)의 최초 부팅시에 제2 메모리 유닛(230)의 보안 영역(231)을 통해 제1 메모리 유닛(220)의 보안 영역(224)에 주입될 수 있다. 앞서 설명한 바와 같이, 제2 메모리 유닛(230)의 보안 영역(231)은 프로세서 유닛(210)에 포함되는 메모리 컨트롤러에 의해 할당되는 영역일 수 있다. 일 실시예에서, 사물인터넷 모듈(200)은 부팅 펌웨어가 저장된 상태로 디바이스 제조사에 판매되는 경우가 일반적이므로, 최초 부팅 작업은 디바이스 제조사가 아닌 모듈 제조사에서 실행될 수 있다. 하드웨어 고유 키(232)는 제1 메모리 유닛(220)의 보안 영역(224)에 주입된 후, 보안 영역(224)에 대한 접근 권한을 판단하기 위한 인증 키(229)로 이용될 수 있다.The hardware unique key 232 may be injected into the security area 224 of the first memory unit 220 through the security area 231 of the second memory unit 230 when the IoT module 200 is initially booted. there is. As described above, the security area 231 of the second memory unit 230 may be an area allocated by the memory controller included in the processor unit 210 . In one embodiment, since the IoT module 200 is generally sold to a device manufacturer in a state in which booting firmware is stored, the initial booting operation may be performed by the module manufacturer rather than the device manufacturer. After the hardware-specific key 232 is injected into the security area 224 of the first memory unit 220 , it may be used as the authentication key 229 for determining the access right to the security area 224 .

한편, 모듈 제조사는 사물인터넷 모듈(200)을 디바이스 제조사에 판매하기 전에, 부팅 영역들(221, 222)에 탑재된 부팅 펌웨어의 정보 및 공통 키의 정보 등을 제1 메모리 영역(220)의 보안 영역(224)에 저장할 수 있다. 공통 키는 모듈 제조사가 생산하는 사물인터넷 모듈(200)에 일률적으로 주입될 수 있으며, 공통 키의 해쉬 값 등이 제1 메모리 영역(220)의 보안 영역(224)에 저장될 수 있다. 한편, 보안 영역(224)에 저장되는 부팅 펌웨어의 정보는 모듈 제조사가 제공한 부팅 펌웨어의 버전 정보를 포함할 수 있다. 보안 영역(224)은 RPMB일 수 있으며, 최초 부팅 시에 프로세서 유닛(210)이 주입한 인증 키(229)를 이용한 인증 절차를 통과해야만 접근이 가능한 영역일 수 있다.Meanwhile, before the module manufacturer sells the IoT module 200 to the device manufacturer, the information of the booting firmware mounted in the booting areas 221 and 222 and the information of the common key are stored in the security of the first memory area 220 . may be stored in area 224 . The common key may be uniformly injected into the IoT module 200 produced by the module manufacturer, and a hash value of the common key may be stored in the security area 224 of the first memory area 220 . Meanwhile, the boot firmware information stored in the security area 224 may include version information of the boot firmware provided by the module manufacturer. The security area 224 may be RPMB, and may be an area accessible only through an authentication procedure using the authentication key 229 injected by the processor unit 210 at the time of initial booting.

모듈 제조사가 주입한 사물인터넷 모듈(200)에 주입한 공통 키는, 사물인터넷 모듈(200)을 탑재한 사물인터넷 디바이스를 제조하는 디바이스 제조사 고유의 보안 키로 대체될 수 있다. 일 실시예에서, 디바이스 제조사는 사물인터넷 디바이스의 개발/생산 과정에서, 고유의 보안 키를 제1 메모리 유닛(220)에 주입할 수 있으며, 모듈 제조사에 의해 부팅 영역들(221, 222)에 저장된 부팅 펌웨어 및 운영 체제를 가공할 수 있다. 부팅 펌웨어 및 운영 체제 등은, 부팅 영역들(221, 222)에 부팅 이미지로 저장될 수 있다.The common key injected into the IoT module 200 injected by the module manufacturer may be replaced with a security key unique to the device manufacturer that manufactures the IoT device equipped with the IoT module 200 . In an embodiment, the device manufacturer may inject a unique security key into the first memory unit 220 during the development/production process of the IoT device, and is stored in the booting areas 221 and 222 by the module manufacturer. It can process boot firmware and operating system. The boot firmware and the operating system may be stored as boot images in the boot regions 221 and 222 .

한편 디바이스 제조사는, 사물인터넷 디바이스를 판매하기 전에, 하드웨어 보안 모듈 등을 이용한 펌웨어 배포 절차를 진행할 수 있다. 일례로 상기 펌웨어 배포 절차에서, 디바이스 제조사 고유의 보안 키의 정보가 제1 보안 정보 및 제2 보안 정보로서 부팅 영역들(221, 222) 및 보안 영역(224)에 각각 저장될 수 있다. 또한 상기 펌웨어 배포 절차에서 부팅 영역들(221, 222)에 저장되는 부팅 펌웨어의 버전이, 펌웨어 배포 버전으로 보안 영역(224)에 저장될 수 있다.Meanwhile, the device manufacturer may proceed with a firmware distribution procedure using a hardware security module or the like before selling the IoT device. For example, in the firmware distribution procedure, information on a device manufacturer's unique security key may be stored in the boot areas 221 and 222 and the security area 224 as first security information and second security information, respectively. In addition, the version of the booting firmware stored in the boot areas 221 and 222 in the firmware distribution procedure may be stored in the security area 224 as the firmware distribution version.

제2 보안 정보와 펌웨어 배포 버전은 보안 영역(224)에 저장되므로, 인증 키(229)로 저장된 하드웨어 고유 키(232)를 이용한 인증 절차 없이는 변경, 삭제될 수 없다. 따라서, 최종 소비자에게 판매된 사물인터넷 디바이스에 탑재된 사물인터넷 모듈(200)은, 보안 영역(229)에 저장된 제2 보안 정보(228)를 부팅 영역들(221, 222)에 저장된 제1 보안 정보(226)와 비교함으로써, 부팅 영역들(221, 222)에 저장된 부팅 펌웨어(225)가 오염되었는지 여부를 판단할 수 있다. 제1 보안 정보(226)가 제2 보안 정보(228)와 일치하지 않으면, 프로세서 유닛(210)은 진행 중인 부팅 프로세스를 중단할 수 있다. Since the second security information and the firmware distribution version are stored in the security area 224 , they cannot be changed or deleted without an authentication procedure using the hardware unique key 232 stored as the authentication key 229 . Accordingly, the IoT module 200 mounted in the IoT device sold to the end consumer converts the second security information 228 stored in the security area 229 to the first security information stored in the booting areas 221 and 222 . By comparing with 226 , it may be determined whether the booting firmware 225 stored in the booting areas 221 and 222 is corrupted. If the first security information 226 does not match the second security information 228 , the processor unit 210 may abort the booting process in progress.

또한 사물인터넷 모듈(200)은, 보안 영역(224)에 저장된 펌웨어 배포 버전(227)을 부팅 영역들(221, 222)에 저장된 부팅 이미지(225)의 펌웨어 버전과 비교함으로써, 부팅 펌웨어가 롤백되었는지 여부를 판단할 수 있다. 제1 보안 정보(226)와 제2 보안 정보(228)가 일치하는 경우에도, 부팅 영역들(221, 222)에 저장된 부팅 이미지의 펌웨어 버전이 보안 영역(224)에 저장된 펌웨어 배포 버전보다 낮으면, 부팅 펌웨어의 롤백을 방지하기 위하여 부팅 프로세스를 중단할 수 있다. 결과적으로 본 발명의 일 실시예에 따른 사물인터넷 모듈(200)은, 정당하지 않은 부팅 펌웨어에 의한 부팅을 방지하는 보안 부팅 기능을 제공함과 동시에, 또한 부팅 펌웨어의 의도치 않은 롤백을 방지할 수 있다.In addition, the IoT module 200 compares the firmware distribution version 227 stored in the security area 224 with the firmware version of the boot image 225 stored in the boot areas 221 and 222 to determine whether the boot firmware is rolled back. can determine whether Even when the first security information 226 and the second security information 228 match, if the firmware version of the boot image stored in the boot regions 221 and 222 is lower than the firmware distribution version stored in the security region 224 , , the boot process can be interrupted to prevent rollback of the boot firmware. As a result, the IoT module 200 according to an embodiment of the present invention can provide a secure boot function that prevents booting by unauthorized booting firmware, and can also prevent unintentional rollback of booting firmware. .

도 6 및 도 7은 본 발명의 일 실시예에 따른 사물인터넷 모듈의 동작을 설명하기 위해 제공되는 흐름도들이다.6 and 7 are flowcharts provided to explain the operation of the IoT module according to an embodiment of the present invention.

우선 도 6을 참조하면, 본 발명의 일 실시예에 따른 사물인터넷 모듈의 동작은 사물인터넷 모듈의 전원이 켜진 후 프로세서 유닛이 최초 부팅 여부를 확인하는 것으로 시작될 수 있다(S10). 일례로 프로세서 유닛은, NAND 플래시 메모리, eMMC 등의 비휘발성 메모리 장치를 포함하는 메모리 유닛 내에 하드웨어 고유 키가 주입되어 있는지 여부에 따라 최초 부팅 여부를 확인할 수 있다. S10 단계에서 최초 부팅인 것으로 확인되면 프로세서 유닛은 하드웨어 고유 키를 생성하여 메모리 유닛 내에 주입할 수 있다. Referring first to FIG. 6 , the operation of the IoT module according to an embodiment of the present invention may start by checking whether the processor unit is booted for the first time after the IoT module is powered on ( S10 ). For example, the processor unit may check whether the first boot is performed according to whether a hardware-specific key is injected into a memory unit including a non-volatile memory device such as a NAND flash memory or an eMMC. If it is confirmed in step S10 that it is the first boot, the processor unit may generate a unique hardware key and inject it into the memory unit.

최초 부팅 여부를 확인한 이후 진행되는 부팅 프로세스에서, 프로세서 유닛은 부팅 펌웨어의 오염 여부를 확인할 수 있다(S20). 일례로, 메모리 유닛은 복수의 부팅 영역들을 가질 수 있으며, 부팅 영역들 중 적어도 하나는 부팅 펌웨어를 부팅 이미지 형태로 저장할 수 있다. 또한 본 발명의 일 실시예에서 부팅 영역들은, 부팅 펌웨어의 오염 여부를 판단하기 위한 제1 보안 정보를 포함할 수 있다. 제1 보안 정보는 부팅 펌웨어와 함께 부팅 영역들에 주입된 보안 키의 해쉬 값 등일 수 있다.In the booting process that is performed after checking whether the booting is the first time, the processor unit may check whether the booting firmware is contaminated (S20). For example, the memory unit may have a plurality of booting areas, and at least one of the booting areas may store booting firmware in the form of a booting image. Also, according to an embodiment of the present invention, the boot regions may include first security information for determining whether the booting firmware is contaminated. The first security information may be a hash value of a security key injected into boot regions together with boot firmware.

프로세서 유닛은 부팅 영역들로부터 읽어온 제1 보안 정보를, 메모리 유닛의 보안 영역에 저장된 제2 보안 정보와 비교하여 부팅 펌웨어의 오염 여부를 확인할 수 있다. 메모리 유닛의 보안 영역은 별도의 인증 절차를 통해서만 접근이 가능한 영역일 수 있으며, 따라서 보안 영역에 저장된 제2 보안 정보는, 부팅 영역들에 저장된 제1 보안 정보와 달리, 사물인터넷 모듈을 탑재한 사물인터넷 디바이스가 최종 소비자에게 판매된 이후에는 변경 및/또는 삭제될 수 없다. 일례로 제2 보안 정보는, 사물인터넷 디바이스를 제조하는 디바이스 제조사에 의해 보안 영역에 주입될 수 있다.The processor unit may check whether the booting firmware is contaminated by comparing the first security information read from the booting areas with the second security information stored in the security area of the memory unit. The security area of the memory unit may be an area accessible only through a separate authentication procedure. Therefore, the second security information stored in the security area, unlike the first security information stored in the boot areas, is a thing equipped with an IoT module After the Internet device is sold to an end consumer, it cannot be changed and/or deleted. For example, the second security information may be injected into the security area by a device manufacturer that manufactures an IoT device.

부팅 펌웨어가 오염되지 않은 것으로 판단되면, 프로세서 유닛은 부팅 펌웨어의 롤백 여부를 확인할 수 있다(S30). 프로세서 유닛은, 메모리 유닛의 보안 영역에 저장된 펌웨어 배포 버전을, 부팅 이미지에 의해 실행된 부팅 펌웨어의 버전과 비교함으로써 부팅 펌웨어의 롤백 여부를 판단할 수 있다. If it is determined that the booting firmware is not corrupted, the processor unit may check whether the booting firmware is rolled back (S30). The processor unit may determine whether to rollback the booting firmware by comparing the firmware distribution version stored in the secure area of the memory unit with the version of the booting firmware executed by the booting image.

보안 영역에 저장된 펌웨어 배포 버전은, 디바이스 제조사가 사물인터넷 디바이스를 최종 소비자에게 판매하기 전에 최종적으로 배포한 부팅 펌웨어의 버전에 해당할 수 있다. 따라서, 펌웨어 배포 버전이 부팅 영역으로부터 로딩된 부팅 펌웨어의 버전보다 최신 버전이면, 부팅 펌웨어의 롤백을 방지하기 위해 프로세서 유닛이 부팅 프로세스를 중단할 수 있다.The firmware distribution version stored in the secure area may correspond to the version of the boot firmware finally distributed by the device manufacturer before the IoT device is sold to the end consumer. Therefore, if the firmware distribution version is newer than the version of the boot firmware loaded from the boot area, the processor unit may stop the booting process to prevent rollback of the boot firmware.

다음으로 도 7을 참조하여 본 발명의 일 실시예에서 따른 사물인터넷 모듈의 부팅 프로세스를 더욱 자세히 설명하기로 한다. 도 7을 참조하면, 본 발명의 일 실시예에 따른 사물인터넷 모듈의 동작 방법은, 프로세서 유닛이 메모리 유닛의 부팅 영역에 저장된 부팅 이미지와 제1 보안 정보를 획득하는 것으로 시작할 수 있다(S11). 부팅 영역을 갖는 메모리 유닛은 비휘발성 메모리 장치로 구현될 수 있으며, 제1 보안 정보는 소정의 보안 키의 해쉬 값 등을 포함할 수 있다.Next, a booting process of the IoT module according to an embodiment of the present invention will be described in more detail with reference to FIG. 7 . Referring to FIG. 7 , the method of operating the IoT module according to an embodiment of the present invention may start with the processor unit acquiring a booting image and first security information stored in a booting area of the memory unit ( S11 ). The memory unit having the boot area may be implemented as a nonvolatile memory device, and the first security information may include a hash value of a predetermined security key, and the like.

프로세서 유닛은 메모리 유닛의 부팅 영역에 직접 접근하거나 또는 휘발성 메모리 장치 등을 통해 부팅 영역에 접근하여 부팅 이미지 및 제1 보안 정보를 획득할 수 있다. 상기 부팅 이미지에 의하여 부팅 펌웨어가 실행될 수 있다. 한편, 프로세서 유닛은, 프로세서 유닛에 내장된 하드웨어 고유 키 생성 회로를 이용하여 하드웨어 고유 키를 생성할 수 있다(S12). 하드웨어 고유 키는 프로세서 유닛에 존재하는 회로의 미세 구조에 기초하여 생성되는 키로서, 하나의 모듈 제조사가 제조한 사물인터넷 모듈들에서도 서로 다른 값을 가질 수 있다.The processor unit may obtain a booting image and first security information by directly accessing the booting area of the memory unit or accessing the booting area through a volatile memory device or the like. The booting firmware may be executed by the booting image. Meanwhile, the processor unit may generate a hardware-specific key by using a hardware-specific key generation circuit built into the processor unit (S12). The hardware-specific key is a key generated based on the microstructure of a circuit present in the processor unit, and may have different values even in IoT modules manufactured by one module manufacturer.

프로세서 유닛은 메모리 유닛에 이미 주입된 하드웨어 고유 키가 있는지 여부를 판단할 수 있다(S13). S13 단계의 판단 결과 메모리 유닛에 이미 주입된 하드웨어 고유 키가 없으면 프로세서 유닛은 사물인터넷 모듈이 처음 부팅된 것으로 판단할 수 있다. 반면 S13 단계의 판단 결과 메모리 유닛에 하드웨어 고유 키가 존재하면, 사물인터넷 모듈을 이전에 부팅한 적이 있었던 것으로 판단할 수 있다.The processor unit may determine whether there is a hardware-specific key already injected into the memory unit ( S13 ). As a result of the determination in step S13, if there is no hardware-specific key already injected into the memory unit, the processor unit may determine that the IoT module is booted for the first time. On the other hand, if the hardware-specific key exists in the memory unit as a result of the determination in step S13, it may be determined that the IoT module has been booted before.

S13 단계에서 사물인터넷 모듈이 처음 부팅된 것으로 판단하면, 프로세서 유닛은 하드웨어 고유 키를 메모리 유닛의 보안 영역에 인증 키로서 주입할 수 있다(S14). 또한, S11 단계에서 획득한 부팅 이미지에 의해 실행되는 부팅 펌웨어의 버전을 펌웨어 배포 버전으로 보안 영역에 저장하는 한편, S11 단계에서 획득한 제1 보안 정보를 제2 보안 정보로서 보안 영역에 저장할 수 있다(S15). 이후 프로세서 유닛은, 부팅 영역들에서 다음 부팅 이미지를 로딩하여 부팅 펌웨어 및/또는 운영 체제 등을 실행함으로써, 부팅 프로세스를 진행할 수 있다(S40).If it is determined in step S13 that the IoT module is booted for the first time, the processor unit may inject a hardware-specific key into the security area of the memory unit as an authentication key (S14). In addition, the version of the booting firmware executed by the boot image obtained in step S11 is stored in the secure area as the firmware distribution version, while the first security information obtained in step S11 may be stored in the secure area as second security information. (S15). Thereafter, the processor unit may load the next booting image from the booting areas and execute the booting firmware and/or the operating system, thereby proceeding the booting process ( S40 ).

일반적으로 사물인터넷 모듈의 최초 부팅은, 사물인터넷 모듈을 생산, 판매하는 모듈 제조사에 의해 실행될 수 있다. 따라서, S15 단계에서 메모리 유닛의 보안 영역에 저장되는 펌웨어 배포 버전은, 모듈 제조사가 가공하여 부팅 영역에 저장한 부팅 펌웨어의 버전일 수 있다. 또한, S15 단계에서 메모리 유닛의 보안 영역에 저장되는 제2 보안 정보는, 모듈 제조사가 생산, 판매하는 사물인터넷 모듈들에 공통적으로 주입되는 공통 키의 해쉬 값일 수 있다. In general, the first booting of the IoT module may be performed by a module manufacturer that produces and sells the IoT module. Accordingly, the firmware distribution version stored in the security area of the memory unit in step S15 may be the version of the boot firmware processed by the module manufacturer and stored in the boot area. In addition, the second security information stored in the security area of the memory unit in step S15 may be a hash value of a common key commonly injected into IoT modules produced and sold by the module manufacturer.

S15 단계에서 메모리 유닛의 보안 영역에 저장된 펌웨어 배포 버전은, 이후 사물인터넷 모듈을 구매하여 사물인터넷 디바이스를 생산하는 디바이스 제조사에 의해, 새로운 버전으로 갱신될 수 있다. 디바이스 제조사는 사물인터넷 디바이스를 생산하는 과정에서 부팅 영역에 저장되어 있던 부팅 펌웨어 및 운영 체제 등을 가공할 수 있다. 디바이스 제조사는 사물인터넷 디바이스를 최종 소비자에게 판매하기 전에, 하드웨어 보안 모듈 등을 이용하여 펌웨어 배포 절차를 진행할 수 있다.The firmware distribution version stored in the security area of the memory unit in step S15 may then be updated to a new version by a device manufacturer that purchases an IoT module and produces an IoT device. Device manufacturers can process the boot firmware and operating system stored in the boot area in the process of producing IoT devices. A device manufacturer may proceed with a firmware distribution procedure using a hardware security module or the like before selling an IoT device to an end consumer.

상기 펌웨어 배포 절차에서, 디바이스 제조사는 최종적으로 가공된 부팅 펌웨어를 메모리 유닛의 부팅 영역들에 저장할 수 있다. 또한, 디바이스 제조사 고유의 보안 키의 해쉬 값을 제1 보안 정보로서 부팅 영역들에 저장할 수 있다. 동시에, 부팅 영역들에 저장된 부팅 펌웨어의 버전이 펌웨어 배포 버전으로서 메모리 유닛의 보안 영역에 저장될 수 있으며, 디바이스 제조사 고유의 보안 키의 해쉬 값이, 메모리 유닛의 보안 영역에 제2 보안 정보로서 저장될 수 있다. In the firmware distribution procedure, the device manufacturer may store the finally processed boot firmware in boot areas of the memory unit. Also, a hash value of a device manufacturer's unique security key may be stored in boot areas as first security information. At the same time, the version of the boot firmware stored in the boot areas may be stored in the security area of the memory unit as the firmware distribution version, and the hash value of the device manufacturer's unique security key is stored as the second security information in the security area of the memory unit can be

펌웨어 배포 버전과 제2 보안 정보 등이 저장되는 메모리 유닛의 보안 영역은, 소정의 명령어 세트를 거치지 않고는 접근이 불가능한 영역, 예를 들어 RPMB일 수 있다. 따라서, 디바이스 제조사가 최종 소비자에게 사물인터넷 디바이스를 판매하기 전에 보안 영역에 저장한 펌웨어 배포 버전 및 제2 보안 정보는, 이후의 유통 과정에서 변경 및/또는 삭제되지 않을 수 있다.The security area of the memory unit in which the firmware distribution version and the second security information are stored may be an area that cannot be accessed without passing through a predetermined instruction set, for example, RPMB. Accordingly, the firmware distribution version and the second security information stored in the security area before the device manufacturer sells the IoT device to the end consumer may not be changed and/or deleted in the subsequent distribution process.

S13 단계에서 사물인터넷 모듈이 처음 부팅되지 않은 것으로 판단하면, 프로세서 유닛은 메모리 유닛의 보안 영역에 저장된 펌웨어 배포 버전과 제2 보안 정보를 읽어올 수 있다(S21). 프로세서 유닛은 S21 단계에서 읽어 온 제2 보안 정보를, S11 단계에서 읽어 온 제1 보안 정보와 비교할 수 있다(S22). S22 단계에서 제1 보안 정보와 제2 보안 정보가 서로 일치하면, 프로세서 유닛은 부팅 영역에서 획득한 부팅 이미지가 오염되지 않은 것으로 판단할 수 있다. 반면, S22 단계에서 제1 보안 정보와 제2 보안 정보가 서로 일치하지 않는 것으로 판단되면, 프로세서 유닛은 부팅 영역에 저장된 부팅 이미지가 오염된 것으로 판단하여 부팅 프로세스를 중단시킬 수 있다(S50).If it is determined in step S13 that the IoT module is not initially booted, the processor unit may read the firmware distribution version and the second security information stored in the security area of the memory unit (S21). The processor unit may compare the second security information read in step S21 with the first security information read in step S11 (S22). If the first security information and the second security information match each other in step S22, the processor unit may determine that the boot image acquired in the boot area is not contaminated. On the other hand, if it is determined in step S22 that the first security information and the second security information do not match each other, the processor unit may determine that the booting image stored in the booting area is corrupted and stop the booting process ( S50 ).

S22 단계의 판단 결과 제1 보안 정보와 제2 보안 정보가 서로 일치하면, 프로세서 유닛은 S11 단계에서 획득한 부팅 이미지에 의해 실행되는 부팅 펌웨어의 버전이, S21 단계에서 읽어온 펌웨어 배포 버전 이상인지 여부를 판단할 수 있다(S31). S31 단계의 판단 결과 S11 단계에서 획득한 부팅 이미지에 의해 실행되는 부팅 펌웨어의 버전이 S21 단계에서 읽어온 펌웨어 배포 버전보다 작으면, 프로세서 유닛은 부팅 펌웨어 롤백의 위험이 있는 것으로 판단할 수 있다. 따라서, 프로세서 유닛은 부팅 프로세스를 중단시킬 수 있다(S50).If it is determined in step S22 that the first security information and the second security information match each other, the processor unit determines whether the version of the boot firmware executed by the boot image obtained in step S11 is greater than or equal to the firmware distribution version read in step S21 can be determined (S31). If it is determined in step S31 that the version of the boot firmware executed by the boot image obtained in step S11 is smaller than the firmware distribution version read in step S21, the processor unit may determine that there is a risk of booting firmware rollback. Accordingly, the processor unit may stop the booting process ( S50 ).

반면 S31 단계의 판단 결과 부팅 이미지에 의해 실행되는 부팅 펌웨어의 버전이 펌웨어 배포 버전 이상이면, 프로세서 유닛은 부팅 펌웨어 롤백의 위험성이 없는 것으로 판단할 수 있다. 따라서, 펌웨어 배포 버전이 부팅 이미지에 의해 실행되는 부팅 펌웨어의 버전보다 작으면, 보안 영역에 저장된 펌웨어 배포 버전을, 부팅 이미지에 의해 실행되는 부팅 펌웨어의 버전으로 업데이트할 수 있다(S32). 이후 프로세서 유닛은, 부팅 영역들에서 순서대로 부팅 이미지들을 로딩하여 다음 부팅 펌웨어 및/또는 운영 체제(OS) 등을 실행함으로써(S33), 부팅 프로세스를 진행할 수 있다(S40).On the other hand, if it is determined in step S31 that the version of the booting firmware executed by the booting image is greater than or equal to the firmware distribution version, the processor unit may determine that there is no risk of booting firmware rollback. Therefore, if the firmware distribution version is smaller than the version of the boot firmware executed by the boot image, the firmware distribution version stored in the secure area may be updated to the version of the boot firmware executed by the boot image ( S32 ). Thereafter, the processor unit may load boot images sequentially from the boot areas and execute the next booting firmware and/or an operating system (OS), etc. (S33), thereby proceeding the booting process (S40).

도 7을 참조하여 설명한 바와 같이, 본 발명에서는 메모리 유닛의 부팅 영역들에서 읽어 온 제1 보안 정보를, 메모리 유닛의 보안 영역에 저장된 제2 보안 정보와 비교하여 부팅 영역에 저장된 부팅 이미지가 오염되었는지 여부를 판단할 수 있다. 또한, 제1 보안 정보와 제2 보안 정보가 일치하는 경우라 해도, 부팅 이미지에 의해 실행되는 부팅 펌웨어의 버전이 보안 영역에 저장된 펌웨어 배포 버전과 같거나 그보다 클 때에만 부팅 프로세스를 계속 진행할 수 있다. 따라서 사용자가 의도하지 않은 부팅 펌웨어의 롤백을 방지할 수 있다.As described with reference to FIG. 7 , in the present invention, the first security information read from the boot regions of the memory unit is compared with the second security information stored in the security region of the memory unit to determine whether the boot image stored in the boot region is contaminated. can determine whether Also, even if the first security information and the second security information match, the booting process can be continued only when the version of the boot firmware executed by the boot image is equal to or greater than the firmware distribution version stored in the security area. . Therefore, it is possible to prevent rollback of the boot firmware unintentionally by the user.

도 8 및 도 9는 본 발명의 일 실시예에 따른 사물인터넷 모듈의 동작을 설명하기 위한 도면이다.8 and 9 are diagrams for explaining the operation of the IoT module according to an embodiment of the present invention.

우선 도 8을 참조하면, 본 발명의 일 실시예에 따른 사물인터넷 모듈(300)은 메모리 유닛의 보안 영역(310)이 제2 보안 정보(311)와 펌웨어 배포 버전(312)을 저장할 수 있다. 제2 보안 정보(311)는 공통 키의 해쉬 값일 수 있으며, 공통 키는 사물인터넷 모듈(300)을 생산, 및/또는 판매하는 모듈 제조사에 의해 메모리의 보안 영역(310)에 저장된 키일 수 있다. 펌웨어 배포 버전(312)은 모듈 제조사가 메모리 유닛의 부팅 영역에 저장한 부팅 펌웨어의 버전일 수 있다.Referring first to FIG. 8 , in the IoT module 300 according to an embodiment of the present invention, the security area 310 of the memory unit may store the second security information 311 and the firmware distribution version 312 . The second security information 311 may be a hash value of a common key, and the common key may be a key stored in the security area 310 of the memory by a module manufacturer that produces and/or sells the IoT module 300 . The firmware distribution version 312 may be a version of the boot firmware stored in the boot area of the memory unit by the module manufacturer.

도 8에 도시한 일 실시예는, 디바이스 제조사가 사물인터넷 모듈을 구매하여 개발 작업을 거친 후, 사물인터넷 디바이스 생산과 함께 펌웨어를 배포하는 과정을 나타낸 것일 수 있다. 도 8을 참조하면, 디바이스 제조사는 사물인터넷 모듈(300)에 새로운 버전의 부팅 펌웨어를 탑재하는 한편, 하드웨어 보안 모듈(400)을 이용하여 보안 영역(310)에 저장되어 있던 제2 보안 정보(311)를, 사물인터넷 모듈(300)이 탑재된 사물인터넷 디바이스의 고유한 제2 보안 정보(311)로 변경할 수 있다. 따라서, 도 8에 도시한 바와 같이 메모리의 보안 영역(310)에 저장된 제2 보안 정보(311)가 변경되고, 펌웨어 배포 버전(312)이 증가할 수 있다.The embodiment shown in FIG. 8 may show a process of distributing firmware together with IoT device production after a device manufacturer purchases an IoT module and undergoes development work. Referring to FIG. 8 , the device manufacturer mounts a new version of booting firmware on the IoT module 300 , while using the hardware security module 400 to use the second security information 311 stored in the security area 310 . ) may be changed to the unique second security information 311 of the IoT device on which the IoT module 300 is mounted. Accordingly, as shown in FIG. 8 , the second security information 311 stored in the security area 310 of the memory may be changed and the firmware distribution version 312 may be increased.

다음으로 도 9를 참조하면, 사물인터넷 모듈(300)이 탑재된 사물인터넷 디바이스가 최종 소비자에게 판매된 이후에도, 여러 가지 필요에 의해 부팅 펌웨어가 업데이트될 수 있다. 도 9를 참조하면, 부팅 펌웨어가 업데이트 되는 경우, 보안 영역(310)에 저장된 펌웨어 배포 버전(312)은 증가할 수 있다. 펌웨어 업데이트에 따라 펌웨어 배포 버전(312)을 덮어쓰기 전에, 부팅 영역에 저장된 보안 키의 해쉬 값을 보안 영역(310)에 저장된 제2 보안 정보(311)와 비교하는 절차 및 부팅 영역에 저장된 부팅 펌웨어의 버전을 보안 영역(310)에 저장된 펌웨어 배포 버전(312)과 비교하는 절차가 펌웨어 업데이트 과정에서 실행될 수 있다. 일례로, 도 9에 도시한 일 실시예에서, 업데이트되는 부팅 펌웨어의 버전이 0.9보다 낮거나, 부팅 펌웨어와 함께 부팅 영역에 저장된 보안 키의 해쉬 값이 제2 보안 정보(311)와 다를 경우, 펌웨어 업데이트가 실행되지 않을 수 있다.Next, referring to FIG. 9 , even after the IoT device equipped with the IoT module 300 is sold to an end consumer, the booting firmware may be updated according to various needs. Referring to FIG. 9 , when booting firmware is updated, the firmware distribution version 312 stored in the secure area 310 may increase. Before overwriting the firmware distribution version 312 according to the firmware update, a procedure of comparing the hash value of the security key stored in the boot area with the second security information 311 stored in the security area 310 and the boot firmware stored in the boot area A procedure of comparing the version of ? with the firmware distribution version 312 stored in the secure area 310 may be executed in the firmware update process. For example, in the embodiment shown in FIG. 9 , when the version of the updated boot firmware is lower than 0.9 or the hash value of the security key stored in the boot area together with the boot firmware is different from the second security information 311 , Firmware update may not be executed.

본 발명은 상술한 실시형태 및 첨부된 도면에 의해 한정되는 것이 아니며 첨부된 청구범위에 의해 한정하고자 한다. 따라서, 청구범위에 기재된 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 당 기술분야의 통상의 지식을 가진 자에 의해 다양한 형태의 치환, 변형 및 변경이 가능할 것이며, 이 또한 본 발명의 범위에 속한다고 할 것이다.The present invention is not limited by the above-described embodiments and the accompanying drawings, but is intended to be limited by the appended claims. Therefore, various types of substitution, modification and change will be possible by those skilled in the art within the scope not departing from the technical spirit of the present invention described in the claims, and it is also said that it falls within the scope of the present invention. something to do.

100, 200, 300: 사물인터넷 모듈
110, 210: 프로세서
120, 220: 제1 메모리 유닛
130, 230: 제2 메모리 유닛
100, 200, 300: IoT module
110, 210: processor
120, 220: first memory unit
130, 230: second memory unit

Claims (20)

부팅 펌웨어와 제1 보안 정보를 저장하는 부팅 영역, 및 펌웨어 배포(release) 버전과 제2 보안 정보를 저장하는 보안 영역을 갖는 메모리 유닛; 및
상기 부팅 펌웨어를 이용하여 부팅 프로세스를 진행하며, 상기 펌웨어 배포 버전과 상기 부팅 펌웨어의 버전을 비교하고 상기 제1 보안 정보를 상기 제2 보안 정보와 비교하여 상기 부팅 프로세스의 진행 여부를 판단하는 프로세서 유닛; 을 포함하고,
상기 프로세서 유닛은, 상기 프로세서 유닛에 포함되는 회로의 구조로부터 결정되는 하드웨어 고유 키(Hardware Unique Key)를 상기 부팅 펌웨어의 최초 실행에서 생성하는 하드웨어 고유 키 생성 회로를 포함하며,
상기 프로세서 유닛은 상기 하드웨어 고유 키를 상기 보안 영역에 저장하고, 상기 보안 영역에 대한 접근 권한을 판단하는 보안 키로 상기 하드웨어 고유 키를 이용하는 사물인터넷 모듈.
a memory unit having a boot area storing boot firmware and first security information, and a security area storing a firmware release version and second security information; and
A processor unit that performs a booting process using the booting firmware, compares the firmware distribution version with a version of the booting firmware, and compares the first security information with the second security information to determine whether to proceed with the booting process ; including,
The processor unit includes a hardware unique key generation circuit that generates a hardware unique key determined from a structure of a circuit included in the processor unit at the first execution of the booting firmware,
The processor unit stores the hardware-specific key in the security area, and the IoT module uses the hardware-specific key as a security key for determining an access right to the security area.
제1항에 있어서,
상기 프로세서 유닛은 상기 부팅 펌웨어가 최초로 실행된 것으로 판단되면, 상기 보안 영역의 상기 펌웨어 배포 버전을, 상기 부팅 영역의 상기 부팅 펌웨어의 버전으로 변경하는 사물인터넷 모듈.
The method of claim 1,
When it is determined that the booting firmware is first executed, the processor unit changes the firmware distribution version of the security area to the version of the booting firmware of the booting area.
제2항에 있어서,
상기 프로세서 유닛은, 상기 부팅 펌웨어가 실행되고 상기 보안 영역에 상기 하드웨어 고유 키가 저장되어 있지 않으면, 상기 부팅 펌웨어가 최초로 실행된 것으로 판단하는 사물인터넷 모듈.
3. The method of claim 2,
The processor unit is an IoT module that determines that the booting firmware is initially executed when the booting firmware is executed and the hardware unique key is not stored in the secure area.
제2항에 있어서,
상기 프로세서 유닛은, 상기 하드웨어 고유 키를 상기 보안 영역과의 데이터 송수신을 위한 인증 수단으로 이용하는 사물인터넷 모듈.
3. The method of claim 2,
The processor unit is an IoT module using the hardware-specific key as an authentication means for data transmission/reception with the security area.
제1항에 있어서,
상기 프로세서 유닛은, 상기 제1 보안 정보와 상기 제2 보안 정보가 서로 다르면, 상기 부팅 프로세스를 중단하는 사물인터넷 모듈.
According to claim 1,
The processor unit is configured to stop the booting process when the first security information and the second security information are different from each other.
제1항에 있어서,
상기 프로세서 유닛은, 상기 부팅 펌웨어의 버전이 상기 펌웨어 배포 버전보다 이전 버전이면, 상기 부팅 프로세스를 중단하는 사물인터넷 모듈.
According to claim 1,
The processor unit is configured to stop the booting process when the version of the booting firmware is older than the firmware distribution version.
제1항에 있어서,
상기 프로세서 유닛은, 상기 부팅 펌웨어의 버전이 상기 펌웨어 배포 버전보다 최신 버전이면, 상기 펌웨어 배포 버전을 상기 부팅 펌웨어의 버전으로 업데이트하는 사물인터넷 모듈.
According to claim 1,
The processor unit is configured to update the firmware distribution version to the boot firmware version when the version of the booting firmware is newer than the firmware distribution version.
제1항에 있어서,
상기 제2 보안 정보는, 상기 사물인터넷 모듈이 탑재된 사물인터넷 디바이스를 제조하는 디바이스 제조사가 주입한 공개 키를 포함하는 사물인터넷 모듈.
According to claim 1,
The second security information is an IoT module including a public key injected by a device manufacturer that manufactures an IoT device on which the IoT module is mounted.
제1항에 있어서,
상기 제1 보안 정보는 상기 부팅 펌웨어와 함께 상기 부팅 영역에 저장된 보안 키의 해쉬 값(hash value)을 포함하며,
상기 제2 보안 정보는 공개 키의 해쉬 값(hash value)을 포함하는 사물인터넷 모듈.
According to claim 1,
The first security information includes a hash value of a security key stored in the booting area together with the booting firmware,
The second security information is an IoT module including a hash value of a public key.
제1항에 있어서,
상기 보안 영역으로부터 상기 펌웨어 배포 버전 및 상기 제2 인증 정보를 획득하여, 보안 모드에서 상기 부팅 펌웨어의 버전 및 상기 제1 인증 정보와 각각 비교하는 보안 부트 로직을 포함하는 동적 메모리 유닛; 를 더 포함하는 사물인터넷 모듈.
According to claim 1,
a dynamic memory unit including secure boot logic to obtain the firmware distribution version and the second authentication information from the secure area and compare them with the version of the booting firmware and the first authentication information, respectively, in a secure mode; IoT module further comprising a.
제10항에 있어서,
상기 프로세서 유닛은, 상기 동적 메모리 유닛을 상기 보안 모드에서 제어하기 위한 동적 메모리 컨트롤러를 포함하는 사물인터넷 모듈.
11. The method of claim 10,
wherein the processor unit includes a dynamic memory controller for controlling the dynamic memory unit in the security mode.
제11항에 있어서,
상기 동적 메모리 컨트롤러는, 트러스트존 보호 제어기(TrustZone Protection Controller, TZPC)를 포함하는 사물인터넷 모듈.
12. The method of claim 11,
The dynamic memory controller is an IoT module including a TrustZone Protection Controller (TZPC).
제10항에 있어서,
상기 프로세서 유닛은, 상기 부팅 펌웨어가 최초로 실행되면, 상기 프로세서 유닛에 포함되는 회로의 구조에 기초하여 생성되는 하드웨어 고유 키를 상기 보안 부트 로직을 통해 상기 보안 영역에 저장하는 사물인터넷 모듈.

11. The method of claim 10,
The processor unit is configured to store, in the secure area through the secure boot logic, a hardware unique key generated based on a structure of a circuit included in the processor unit when the booting firmware is first executed.

삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020180023572A 2017-09-21 2018-02-27 Internet-of-things module KR102392474B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/037,554 US10810311B2 (en) 2017-09-21 2018-07-17 Internet-of-things module

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170121672 2017-09-21
KR20170121672 2017-09-21

Publications (2)

Publication Number Publication Date
KR20190033411A KR20190033411A (en) 2019-03-29
KR102392474B1 true KR102392474B1 (en) 2022-04-29

Family

ID=65898778

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180023572A KR102392474B1 (en) 2017-09-21 2018-02-27 Internet-of-things module

Country Status (1)

Country Link
KR (1) KR102392474B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240036407A (en) 2022-09-13 2024-03-20 최아란 Combination internet of things system and method of providing internet of things service

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102236761B1 (en) * 2020-12-22 2021-04-06 주식회사 유니온플레이스 Internet of things device, and system and method of managing internet of things devices
KR102549872B1 (en) * 2021-12-06 2023-07-05 (주)더프라이밍 Dryer controller

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010244261A (en) * 2009-04-03 2010-10-28 Canon Electronics Inc Information processing apparatus and method
US20110087872A1 (en) * 2009-10-13 2011-04-14 Gaurav Shah Firmware Verified Boot
US20120079287A1 (en) * 2010-03-26 2012-03-29 Maxlinear, Inc. Firmware Authentication and Deciphering for Secure TV Receiver

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150047789A (en) * 2013-10-25 2015-05-06 삼성전자주식회사 Method and device for controlling lock terminal

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010244261A (en) * 2009-04-03 2010-10-28 Canon Electronics Inc Information processing apparatus and method
US20110087872A1 (en) * 2009-10-13 2011-04-14 Gaurav Shah Firmware Verified Boot
US20120079287A1 (en) * 2010-03-26 2012-03-29 Maxlinear, Inc. Firmware Authentication and Deciphering for Secure TV Receiver

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240036407A (en) 2022-09-13 2024-03-20 최아란 Combination internet of things system and method of providing internet of things service

Also Published As

Publication number Publication date
KR20190033411A (en) 2019-03-29

Similar Documents

Publication Publication Date Title
US10810311B2 (en) Internet-of-things module
US8874892B1 (en) Assessing BIOS information prior to reversion
CN104850762B (en) Prevent the undesirable method of the movement of computer, computer program and computer
US9881162B2 (en) System and method for auto-enrolling option ROMS in a UEFI secure boot database
KR101687277B1 (en) Key revocation in system on chip devices
CN105144185B (en) Access control device code and system start code
JP6433198B2 (en) System and method for secure boot ROM patch
KR102392474B1 (en) Internet-of-things module
US20140250290A1 (en) Method for Software Anti-Rollback Recovery
US20110202752A1 (en) Semiconductor device including encryption section, semiconductor device including external interface, and content reproduction method
CN103080904A (en) Providing a multi-phase lockstep integrity reporting mechanism
JP5307196B2 (en) Providing a system integrated with silicon code
US20200065082A1 (en) Memory-efficient upgrade staging
US20130091394A1 (en) Data processing apparatus and validity verification method
CN107567629A (en) Dynamic firmware module loader in credible performing environment container
KR20210091585A (en) Electronic device performing firmware update based on user authentication and operating method thereof
CN109375953B (en) Operating system starting method and device
US10838742B1 (en) Multi-user hidden feature enablement in firmware
KR20220027965A (en) Prevent firmware rollback
US8028142B2 (en) Controller of storage device, storage device, and control method of storage device
US11914717B2 (en) Information handling systems and related methods to cryptographically verify information handling system platform components and track events associated with the platform components
US11307904B2 (en) Configurable peripherals
JP2010009454A (en) Information processing apparatus
JP7341376B2 (en) Information processing device, information processing method, and information processing program
US11816252B2 (en) Managing control of a security processor in a supply chain

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant