KR20190033411A - Internet-of-things module - Google Patents

Internet-of-things module Download PDF

Info

Publication number
KR20190033411A
KR20190033411A KR1020180023572A KR20180023572A KR20190033411A KR 20190033411 A KR20190033411 A KR 20190033411A KR 1020180023572 A KR1020180023572 A KR 1020180023572A KR 20180023572 A KR20180023572 A KR 20180023572A KR 20190033411 A KR20190033411 A KR 20190033411A
Authority
KR
South Korea
Prior art keywords
firmware
boot
version
security
area
Prior art date
Application number
KR1020180023572A
Other languages
Korean (ko)
Other versions
KR102392474B1 (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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

According to an embodiment of the present invention, an Internet-of-Things module comprises: a memory unit having a booting region storing booting firmware and first security information, and a security region storing a firmware release version and second security information; and a processor unit comparing the first security information with the second security information when the booting firmware is executed, and determining whether to perform a booting process by comparing a booting firmware version with the firmware release version. Accordingly, a secure booting function utilizing a security block of a memory is realized, and the Internet-of-Things module is provided to securely manage firmware.

Description

사물인터넷 모듈{INTERNET-OF-THINGS MODULE}INTERNET-OF-THINGS MODULE}

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

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

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

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

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

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

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

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

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

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

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

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

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

사물인터넷 모듈을 구입하여 사물인터넷 디바이스들을 생산, 판매하는 디바이스 제조사들이 다양하고, 디바이스 제조사가 생산하는 사물인터넷 디바이스의 물량이 서로 다르기 때문에, 모듈 제조사가 각 디바이스 제조사들 고유의 보안 키를 탑재하여 사물인터넷 모듈을 제조하는 것은 현실적으로 어려울 수 있다. 모듈 제조사는 공통의 보안 키를 이용하여 부팅 펌웨어 및 운영 체제 등에 대한 보안 기능을 구현할 수 있는데, 동일한 사물인터넷 모듈을 탑재한 사물인터넷 디바이스들 사이에서, 부팅 펌웨어를 이용한 해킹의 위험이 존재할 수 있다.Since there are a variety of device manufacturers that manufacture and sell object Internet devices by purchasing the Internet module of things, and the volume of the object Internet devices produced by the device manufacturers are different from each other, the module manufacturer installs a security key unique to each device manufacturer Manufacturing internet modules can be difficult in reality. The module manufacturer can implement a security function for the boot firmware and operating system using a common security key. There may be a risk of hacking using the boot firmware among the object internet devices equipped with the same object Internet module.

이러한 문제를 해결하기 위하여 의도적으로 일부 회로를 사용 불가능하게 하는 eFuse 등의 방법을 이용할 수 있으나, 상대적으로 저비용으로 생산되고 회로 영역에 여유가 많지 않은 사물인터넷 모듈의 특성 상, eFuse를 적용하기는 쉽지 않을 수 있다. 본 발명의 일 실시예에서는, 사물인터넷 모듈에 탑재된 메모리의 보안 영역을 이용하여 보안 부팅 및 펌웨어 롤백 보호 기능을 제공할 수 있다. 따라서, 모듈 제조사가 디바이스 제조사들마다 서로 다른 보안 키를 적용하지 않아도 보안 부팅 기능을 구현할 수 있으며, 해킹의 위험을 낮춘 사물인터넷 모듈을 제공할 수 있다.In order to solve this problem, it is possible to use a method such as eFuse which disables some circuits intentionally. However, it is easy to apply eFuse due to the characteristics of the object Internet module, which is produced at a relatively low cost and has not enough margin in the circuit area . In one embodiment of the present invention, security boot and firmware rollback protection functions can be provided using a security area of a memory mounted on the object Internet module. Accordingly, a module manufacturer can implement a secure boot function without applying different security keys for each device manufacturer, and can provide an object Internet module that reduces the risk of hacking.

도 2는 본 발명의 일 실시예에 따른 사물인터넷 디바이스의 제조 과정을 설명하기 위해 제공되는 도면이다.FIG. 2 is a view for explaining a manufacturing process of an object Internet 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 object Internet module to a plurality of different device manufacturers 61-63. The object Internet modules that the module manufacturer 50 sells to the plurality of device manufacturers 61-63 can be the same and can have the same boot firmware. In one embodiment, the boot firmware may be stored in the non-volatile memory device of the object Internet module in the form of a boot image. The device manufacturers 61-63 can process the boot firmware stored in the object Internet module by the module manufacturer 50 in the process of producing the object Internet device equipped with the object Internet 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 apply different security keys to provide a secure boot function in accordance with each of the object internet devices produced by the plurality of device manufacturers 61-63. Therefore, when the same object Internet module is purchased from the module manufacturer 50 and each of the plurality of device manufacturers 61-63 produces and sells the object Internet devices, the boot image of the object Internet module mounted on the specific object Internet device There is a possibility that another thing Internet device is booted securely or the boot firmware is rolled back. For example, the object Internet module included in the devices of the B company 62 or the C company 63 may be booted securely as the boot image of the object Internet module included in the device of the A company 61. The boot firmware of the object Internet module included in the device of the company B 62 or the device of the company C 63 is transferred by the boot firmware included in the boot image of the object Internet module included in the device of the company A 61 Version may be inadvertently rolled back.

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

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

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

도 3을 참조하면, 본 발명의 일 실시예에 따른 사물인터넷 모듈(70)은 제1 메모리 유닛(71), 제2 메모리 유닛(72), 프로세서 유닛(73), 통신 유닛(74), 및 인터페이스 유닛(75) 등을 포함할 수 있다. 사물인터넷 모듈(70)에 포함된 유닛들(71-75) 각각은 버스(76)를 통해 서로 데이터를 주고받을 수 있다.3, the object Internet 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, An interface unit 75, and the like. Each of the units 71 to 75 included in the object Internet module 70 can exchange data with each other via 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 eMMC (Embedded Multi Media Card) or a NAND flash memory, and the second memory unit 72 may be implemented as a dynamic random access memory .

프로세서 유닛(73)은 사물인터넷 모듈(70)의 동작 전반을 제어할 수 있다. 사물인터넷 모듈(70)이 턴-온되면, 프로세서 유닛(73)은 직접, 또는 제2 메모리 유닛(72)을 통해 제1 메모리 유닛(71)에 저장된 부팅 이미지를 읽어와서 부팅 펌웨어 및 운영 체제 등을 실행함으로써, 부팅 프로세스를 진행할 수 있다. 상기 부팅 프로세스가 진행되는 동안, 프로세서 유닛(73)은 제1 메모리 유닛(71)의 보안 영역에 저장된 보안 정보 및 펌웨어 배포(release) 버전 등을 이용하여, 부팅 펌웨어가 해킹되었는지 여부를 검사하는 동시에, 상기 부팅 펌웨어의 의도치 않은 롤백을 방지할 수 있다.The processor unit 73 can control the overall operation of the object Internet module 70. [ When the object Internet 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, The boot process can be performed. During the boot process, the processor unit 73 checks whether the boot firmware is hacked, using the security information stored in the security area of the first memory unit 71 and the firmware release version or the like , It is possible to prevent unintentional rollback of the boot 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, Zigbee, and the like. 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, and the like 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 플래시 메모리 등일 수 있다.4, object Internet 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 one 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, -On-Chip, SoC). The first memory unit 120 may be implemented as a non-volatile memory, and may be an Embedded Multi Media Card (eMMC) or a NAND flash memory.

메모리 컨트롤러(113)는 제2 메모리 유닛(130)의 보안 속성을 설정하기 위한 컨트롤러일 수 있다. 일례로 메모리 컨트롤러(113)는 보안 소프트웨어와 일반 소프트웨어에 의한 논리적 분할을 주변 장치에 적용하기 위한 트러스트존(trustzone) 방식을 이용하는 트러스트존 보호 컨트롤러(TrustZone Protection Controller, TZPC)를 포함할 수 있다. 메모리 컨트롤러(113)에 의해 제2 메모리 유닛(130)의 적어도 일부 영역이 보안 영역으로 할당될 수 있다.The memory controller 113 may be a controller for setting a security attribute of the second memory unit 130. [ For example, the memory controller 113 may include a TrustZone Protection Controller (TZPC) using a trustzone scheme for applying security software and logical partitioning by general software to peripheral devices. At least a part of the area of the second memory unit 130 can be allocated to the 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 boot areas 121 and 122, a storage area 123 for storing general user data, a security area 124, and the like. The regions 121-124 may be regions defined in the fabrication stage of the first memory unit 120. [ The secure area 124 may store an authentication key 125 required to confirm access rights to the secure area 124. [ In one embodiment, the authentication key 125 may be a hardware unique key generated and injected by the hardware unique key generation circuit 112 of the processor unit 110 when the object Internet module 100 is first booted. Unlike the storage area 123 for storing general data, the security area 124 can be an area that can be accessed only when the authentication process through the authentication key 125 is passed. In one embodiment, the secure area 124 may be a Replay Protected Memory Block (RPMB).

하드웨어 고유 키 생성 회로(112)는 프로세서 유닛(110)에 포함된 회로 구조로부터 인증 키를 생성할 수 있다. 하드웨어 고유 키는 프로세서 유닛(110)에 포함된 회로 구조의 특징에 기초하여 달라질 수 있으므로, 해킹의 위험성을 크게 낮출 수 있다. 하드웨어 고유 키는 사물인터넷 모듈(100)의 처음으로 부팅될 때 보안 영역(124)에 주입될 수 있으며, 이후 프로세서 유닛(110)이 보안 영역(124)에 저장된 데이터에 대한 접근 권한을 획득하고자 하는 인증 절차에 활용될 수 있다. 사물인터넷 모듈(100)은 모듈 제조사가 생산하여 디바이스 제조사에 판매하며, 디바이스 제조사가 사물인터넷 모듈(100)을 탑재한 사물인터넷 디바이스를 생산하여 최종 소비자(end-user)에게 판매할 수 있다. 따라서, 하드웨어 고유 키가 보안 영역(124)에 주입되는 최초 부팅 동작은, 모듈 제조사 또는 디바이스 제조사에 의해 실행되는 절차일 수 있다.The hardware unique key generation circuit 112 can generate an authentication key from the circuit structure included in the processor unit 110. [ The hardware inherent key can be varied based on features of the circuit structure included in the processor unit 110, thus greatly reducing the risk of hacking. The hardware unique key may be injected into the secure area 124 when the first boot of the object Internet module 100 and then the processor unit 110 may attempt to acquire access rights to the data stored in the secure area 124 And can be utilized in the authentication procedure. The object Internet module 100 is produced by the module manufacturer and sold to the device manufacturer. The device manufacturer can produce the object internet device equipped with the object Internet module 100 and sell it to the end-user. Thus, the initial booting operation in which the hardware unique key is injected into the secure area 124 may be a procedure performed by the module manufacturer or 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, a boot image, and the like. In one example, the boot firmware may be stored in each of the boot areas 121 and 122 in the form of a boot image. Also, at least one of the boot areas 121 and 122 may store information for providing a security boot function as first security information. In one embodiment, the first security information may be stored in the first boot area 121, which is loaded first when the object Internet module 100 is booted. For example, the first security information may include a hash value of a security key given by the device manufacturer that manufactures the object Internet device on which the object Internet module 100 is mounted.

한편 보안 영역(124)은, 보안 부팅 기능을 제공하기 위한 정보를 제2 보안 정보로서 저장할 수 있다. 일례로 제2 보안 정보는 하드웨어 보안 모듈(Hardware Security Module, HSM) 등에 의해 부팅 영역들(121, 122)에 부팅 펌웨어가 저장 및 배포(release)될 때 보안 영역(124)에 저장될 수 있다. 제2 보안 정보는 사물인터넷 모듈(100)을 탑재한 사물인터넷 디바이스를 제조하는 디바이스 제조사가 부여한 보안 키의 해쉬 값 등을 포함할 수 있다.Meanwhile, the security area 124 may store information for providing a security boot function as second security information. For example, the second security information may be stored in the secure 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 given by the device manufacturer that manufactures the object Internet device on which the object Internet module 100 is mounted.

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

상기와 같은 문제를 해결하기 위해, 본 발명의 일 실시예에서는 부팅 영역들(121, 122) 중 적어도 하나에 저장된 제1 보안 정보가, 보안 영역(124)에 저장된 제2 보안 정보와 일치하는 경우에만 부팅 프로세스를 진행할 수 있다. 제2 보안 정보는 부팅 펌웨어를 배포하는 과정에서 하드웨어 보안 모듈 등을 이용하여 디바이스 제조사가 보안 영역(124)에 저장하는 보안 키의 해쉬 값 등일 수 있으며, 부팅 펌웨어가 배포된 이후에는 보안 영역(124)에 저장된 제2 보안 정보가 변경될 수 없다. 따라서, 부팅 영역들(121, 122)에 저장된 부팅 펌웨어를 다른 펌웨어로 변경하여 사물인터넷 모듈(100)을 부팅하고자 하는 경우, 제1 보안 정보와 제2 보안 정보의 불일치로 인해 부팅 프로세스가 중단될 수 있으며, 결과적으로 외부에서 복사한 부팅 펌웨어를 이용한 해킹의 위험성을 낮출 수 있다.In order to solve the above problem, in the embodiment of the present invention, when the first security information stored in at least one of the boot areas 121 and 122 matches the second security information stored in the security area 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 a device manufacturer using a hardware security module or the like in the process of distributing the boot firmware. After the boot firmware is distributed, ) Can not be changed. Therefore, when booting the object Internet module 100 by changing the boot firmware stored in the boot areas 121 and 122 to different firmware, the boot process is interrupted due to inconsistency between the first and second security information And as a result, the risk of hacking using externally copied boot firmware can be reduced.

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

다음으로 도 5를 참조하면, 사물인터넷 모듈(200)은 프로세서 유닛(210), 제1 메모리 유닛(220), 제2 메모리 유닛(230) 등을 포함할 수 있다. 앞서 설명한 바와 같이 제1 메모리 유닛(220)은 eMMC, NAND 플래시 메모리 등의 비휘발성 메모리일 수 있다. Next, referring to FIG. 5, the object Internet 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 non-volatile memory such as an eMMC, a NAND flash memory, or the like.

프로세서 유닛(210)은 하드웨어 고유 키 생성 회로(211)를 포함할 수 있다. 하드웨어 고유 키 생성 회로(211)가 생성한 하드웨어 고유 키(232)는, 프로세서 유닛(210) 내부에 존재하는 회로의 미세 구조를 반영하여 생성될 수 있다. 따라서, 같은 모듈 제조사가 제조한 사물인터넷 모듈(200) 사이에서도, 하드웨어 고유 키(232)는 서로 다르게 생성될 수 있다.The processor unit 210 may include a hardware unique key generation circuit 211. [ The hardware inherent key 232 generated by the hardware inherent key generating circuit 211 may be generated by reflecting the microstructure of the circuit existing in the processor unit 210. [ Therefore, even between the object Internet modules 200 manufactured by the same module manufacturer, the hardware inherent key 232 can 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 secure area 224 of the first memory unit 220 through the secure area 231 of the second memory unit 230 at the first boot of the object Internet module 200 have. As described above, the secure 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 thing Internet module 200 is generally sold to the device manufacturer in the state where the boot firmware is stored, the initial booting operation can be executed by the module manufacturer, not by the device manufacturer. The hardware unique key 232 may be used as an authentication key 229 to determine access rights to the secure area 224 after being injected into the secure area 224 of the first memory unit 220. [

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

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

한편 디바이스 제조사는, 사물인터넷 디바이스를 판매하기 전에, 하드웨어 보안 모듈 등을 이용한 펌웨어 배포 절차를 진행할 수 있다. 일례로 상기 펌웨어 배포 절차에서, 디바이스 제조사 고유의 보안 키의 정보가 제1 보안 정보 및 제2 보안 정보로서 부팅 영역들(221, 222) 및 보안 영역(224)에 각각 저장될 수 있다. 또한 상기 펌웨어 배포 절차에서 부팅 영역들(221, 222)에 저장되는 부팅 펌웨어의 버전이, 펌웨어 배포 버전으로 보안 영역(224)에 저장될 수 있다.Meanwhile, the device manufacturer can proceed with the firmware distribution procedure using the hardware security module before selling the object Internet device. For example, in the firmware distribution procedure, the information of the security key unique to the device manufacturer may be stored as the first security information and the second security information in the boot areas 221 and 222 and the security area 224, respectively. Also, the version of the boot firmware stored in the boot areas 221 and 222 in the firmware distribution procedure may be stored in the security area 224 as a 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 secure area 224, they can not be changed or deleted without an authentication procedure using the hardware unique key 232 stored in the authentication key 229. Accordingly, the object Internet module 200 mounted on the object Internet device sold to the end user transmits the second security information 228 stored in the secure area 229 to the first security information 224 stored in the boot areas 221 and 222 It is possible to determine whether the boot firmware 225 stored in the boot areas 221 and 222 is contaminated. If the first security information 226 does not match the second security information 228, the processor unit 210 may stop the boot process in progress.

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

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

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

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

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

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

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

다음으로 도 7을 참조하여 본 발명의 일 실시예에서 따른 사물인터넷 모듈의 부팅 프로세스를 더욱 자세히 설명하기로 한다. 도 7을 참조하면, 본 발명의 일 실시예에 따른 사물인터넷 모듈의 동작 방법은, 프로세서 유닛이 메모리 유닛의 부팅 영역에 저장된 부팅 이미지와 제1 보안 정보를 획득하는 것으로 시작할 수 있다(S11). 부팅 영역을 갖는 메모리 유닛은 비휘발성 메모리 장치로 구현될 수 있으며, 제1 보안 정보는 소정의 보안 키의 해쉬 값 등을 포함할 수 있다.Next, the boot process of the object Internet module according to the embodiment of the present invention will be described in more detail with reference to FIG. Referring to FIG. 7, the operation method of the object Internet module according to an embodiment of the present invention can start by obtaining the boot image and the first security information stored in the boot 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 access the boot area of the memory unit directly or through a volatile memory device or the like to obtain the boot image and the first security information. The boot firmware may be executed by the boot image. On the other hand, the processor unit can generate a hardware inherent key using a hardware inherent key generating circuit built in the processor unit (S12). The hardware unique key is a key generated based on the microstructure of the circuit existing in the processor unit, and may have different values in the object Internet modules manufactured by one module manufacturer.

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

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

일반적으로 사물인터넷 모듈의 최초 부팅은, 사물인터넷 모듈을 생산, 판매하는 모듈 제조사에 의해 실행될 수 있다. 따라서, S15 단계에서 메모리 유닛의 보안 영역에 저장되는 펌웨어 배포 버전은, 모듈 제조사가 가공하여 부팅 영역에 저장한 부팅 펌웨어의 버전일 수 있다. 또한, S15 단계에서 메모리 유닛의 보안 영역에 저장되는 제2 보안 정보는, 모듈 제조사가 생산, 판매하는 사물인터넷 모듈들에 공통적으로 주입되는 공통 키의 해쉬 값일 수 있다. In general, the initial boot of the object Internet module can be executed by the module manufacturer that produces and sells the object Internet 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 stored by the module manufacturer in the boot area. 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 injected commonly to the object Internet modules produced and sold by the module manufacturer.

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

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

펌웨어 배포 버전과 제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 can not be accessed without going 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 object Internet 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 object Internet module is not booted for the first time, 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 coincide with each other in step S22, the processor unit can 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 coincide with each other, the processor unit may determine that the boot image stored in the boot area is contaminated and stop the boot 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 acquired in step S11 is greater than or equal to the firmware distribution version read in step S21 (S31). If it is determined in step S31 that the version of boot firmware executed by the boot image acquired in step S11 is smaller than the version of the firmware that is read in step S21, the processor unit may determine that there is a risk of boot firmware rollback. Thus, the processor unit can interrupt the boot process (S50).

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

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

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

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

도 8에 도시한 일 실시예는, 디바이스 제조사가 사물인터넷 모듈을 구매하여 개발 작업을 거친 후, 사물인터넷 디바이스 생산과 함께 펌웨어를 배포하는 과정을 나타낸 것일 수 있다. 도 8을 참조하면, 디바이스 제조사는 사물인터넷 모듈(300)에 새로운 버전의 부팅 펌웨어를 탑재하는 한편, 하드웨어 보안 모듈(400)을 이용하여 보안 영역(310)에 저장되어 있던 제2 보안 정보(311)를, 사물인터넷 모듈(300)이 탑재된 사물인터넷 디바이스의 고유한 제2 보안 정보(311)로 변경할 수 있다. 따라서, 도 8에 도시한 바와 같이 메모리의 보안 영역(310)에 저장된 제2 보안 정보(311)가 변경되고, 펌웨어 배포 버전(312)이 증가할 수 있다.The embodiment shown in FIG. 8 may be a process in which a device manufacturer purchases a thing Internet module and performs a development work, and then distributes the firmware together with the production of the object Internet device. 8, the device manufacturer mounts a new version of the boot firmware in the object Internet module 300, and uses the hardware security module 400 to update the second security information 311 stored in the security area 310 ) To the second security information 311 unique to the object Internet device on which the object Internet 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 object Internet device 300 on which the object Internet module 300 is mounted is sold to the end user, the boot firmware may be updated according to various needs. Referring to FIG. 9, when the boot firmware is updated, the firmware distribution version 312 stored in the secure area 310 may increase. A procedure for 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 before overwriting the firmware distribution version 312 according to the firmware update, A process of comparing the firmware version 312 with the firmware version 312 stored in the secure area 310 may be executed in the firmware update process. 9, if the version of the boot firmware to be updated is lower than 0.9, or if 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 to the above-described embodiment and the accompanying drawings, but is intended to be limited by the appended claims. It will be apparent to those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. something to do.

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

Claims (20)

부팅 펌웨어와 제1 보안 정보를 저장하는 부팅 영역, 및 펌웨어 배포(release) 버전과 제2 보안 정보를 저장하는 보안 영역을 갖는 메모리 유닛; 및
상기 부팅 펌웨어가 실행되면, 상기 제1 보안 정보 및 상기 제2 보안 정보를 비교하고, 상기 부팅 펌웨어의 버전을 상기 펌웨어 배포 버전과 비교하여 부팅 프로세스의 진행 여부를 판단하는 프로세서 유닛; 을 포함하는 사물인터넷 모듈.
A booting area for storing the boot firmware and the first security information, and a security area for storing the firmware release version and the second security information; And
A processor unit for comparing the first security information and the second security information when the booting firmware is executed and comparing the version of the booting firmware with the firmware distribution version to determine whether or not the booting process progresses; The Internet module includes.
제1항에 있어서,
상기 프로세서 유닛은, 상기 프로세서 유닛에 포함되는 회로의 구조로부터 하드웨어 고유 키(Hardware Unique Key)를 생성하는 하드웨어 고유 키 생성 회로를 포함하는 사물인터넷 모듈.
The method according to claim 1,
Wherein the processor unit includes a hardware unique key generating circuit for generating a hardware unique key from a structure of a circuit included in the processor unit.
제2항에 있어서,
상기 프로세서 유닛은 상기 부팅 펌웨어가 최초로 실행된 것으로 판단되면, 상기 하드웨어 고유 키를 상기 보안 영역에 저장하고, 상기 부팅 펌웨어의 버전을 상기 펌웨어 배포 버전으로 상기 보안 영역에 저장하는 사물인터넷 모듈.
3. The method of claim 2,
Wherein the processor unit stores the hardware unique key in the secure area when the boot firmware is first executed and stores the version of the boot firmware in the secure area with the firmware distribution version.
제3항에 있어서,
상기 프로세서 유닛은, 상기 부팅 펌웨어가 실행되고 상기 보안 영역에 상기 하드웨어 고유 키가 저장되어 있지 않으면, 상기 부팅 펌웨어가 최초로 실행된 것으로 판단하는 사물인터넷 모듈.
The method of claim 3,
Wherein the processor unit determines that the boot firmware is executed first when the boot firmware is executed and the hardware unique key is not stored in the secure area.
제3항에 있어서,
상기 프로세서 유닛은, 상기 하드웨어 고유 키를 상기 보안 영역과의 데이터 송수신을 위한 인증 수단으로 이용하는 사물인터넷 모듈.
The method of claim 3,
Wherein the processor unit uses the hardware inherent key as authentication means for data transmission / reception with the secure area.
제1항에 있어서,
상기 프로세서 유닛은, 상기 제1 보안 정보와 상기 제2 보안 정보가 서로 다르면, 상기 부팅 프로세스를 중단하는 사물인터넷 모듈.
The method according to claim 1,
Wherein the processor unit stops the booting process if the first security information and the second security information are different from each other.
제1항에 있어서,
상기 프로세서 유닛은, 상기 부팅 펌웨어의 버전이 상기 펌웨어 배포 버전보다 이전 버전이면, 상기 부팅 프로세스를 중단하는 사물인터넷 모듈.
The method according to claim 1,
Wherein the processor unit stops the booting process if the version of the boot firmware is a version older than the firmware distribution version.
제1항에 있어서,
상기 프로세서 유닛은, 상기 부팅 펌웨어의 버전이 상기 펌웨어 배포 버전보다 최신 버전이면, 상기 펌웨어 배포 버전을 상기 부팅 펌웨어의 버전으로 업데이트하는 사물인터넷 모듈.
The method according to claim 1,
Wherein the processor unit updates the firmware distribution version with the version of the boot firmware if the version of the boot firmware is newer than the firmware distribution version.
제1항에 있어서,
상기 제2 보안 정보는, 상기 사물인터넷 모듈이 탑재된 사물인터넷 디바이스를 제조하는 디바이스 제조사가 주입한 보안 키의 정보인 사물인터넷 모듈.
The method according to claim 1,
Wherein the second security information is information of a security key injected by a device manufacturer that manufactures the object Internet device on which the object Internet module is mounted.
제9항에 있어서,
상기 제2 보안 정보는 상기 보안 키의 해쉬 값(hash value)을 포함하는 사물인터넷 모듈.
10. The method of claim 9,
And the second security information includes a hash value of the security key.
제1항에 있어서,
상기 보안 영역으로부터 상기 펌웨어 배포 버전 및 상기 제2 인증 정보를 획득하여, 보안 모드에서 상기 부팅 펌웨어의 버전 및 상기 제1 인증 정보와 각각 비교하는 보안 부트 로직을 포함하는 동적 메모리 유닛; 를 더 포함하는 사물인터넷 모듈.
The method according to claim 1,
And a secure boot logic to obtain the firmware distribution version and the second authentication information from the secure area, and to compare the version of the boot firmware and the first authentication information in secure mode, respectively; Further comprising:
제11항에 있어서,
상기 프로세서 유닛은, 상기 동적 메모리 유닛을 상기 보안 모드에서 제어하기 위한 동적 메모리 컨트롤러를 포함하는 사물인터넷 모듈.
12. The method of claim 11,
Wherein the processor unit comprises a dynamic memory controller for controlling the dynamic memory unit in the secure mode.
제12항에 있어서,
상기 동적 메모리 컨트롤러는, 트러스트존 보호 제어기(TrustZone Protection Controller, TZPC)를 포함하는 사물인터넷 모듈.
13. The method of claim 12,
Wherein the dynamic memory controller comprises a TrustZone Protection Controller (TZPC).
제11항에 있어서,
상기 프로세서 유닛은, 상기 부팅 펌웨어가 최초로 실행되면, 상기 프로세서 유닛에 포함되는 회로의 구조에 기초하여 생성되는 하드웨어 고유 키를 상기 보안 부트 로직을 통해 상기 보안 영역에 저장하는 사물인터넷 모듈.
12. The method of claim 11,
Wherein the processor unit stores a hardware unique key generated based on a structure of a circuit included in the processor unit in the secure area through the secure boot logic when the boot firmware is executed for the first time.
제1항에 있어서,
상기 보안 영역은 리플레이 보호된 메모리 블록(Replay Protected Memory Block, RPMB)인 사물인터넷 모듈.
The method according to claim 1,
Wherein the secure area is a Replay Protected Memory Block (RPMB).
부팅에 필요한 부팅 펌웨어를 저장하는 부팅 영역, 및 상기 부팅 펌웨어의 롤백(rollback) 검사 기능을 제공하기 위한 펌웨어 배포 버전을 저장하는 보안 영역을 갖는 제1 메모리 유닛;
상기 보안 영역에 접근하여 상기 펌웨어 배포 버전을 획득하는 보안 부트 로직을 갖는 제2 메모리 유닛; 및
상기 부팅 펌웨어의 버전을, 상기 펌웨어 배포 버전과 비교하여 상기 부팅 펌웨어의 롤백 여부를 판단하는 프로세서 유닛; 을 포함하는 사물인터넷 모듈.
A first memory unit having a boot area for storing boot firmware necessary for booting, and a security area for storing a firmware distribution version for providing a rollback check function of the boot firmware;
A second memory unit having secure boot logic for accessing the secure area to obtain the firmware distribution version; And
A processor unit for comparing the boot firmware version with the firmware distribution version to determine whether the boot firmware is rolled back; The Internet module includes.
제16항에 있어서,
상기 프로세서 유닛은, 상기 부팅 펌웨어의 버전이 상기 펌웨어 배포 버전보다 작으면, 상기 부팅 펌웨어가 롤백된 것으로 판단하고 부팅 프로세스를 종료하는 사물인터넷 모듈.
17. The method of claim 16,
Wherein the processor unit determines that the boot firmware is rolled back and terminates the boot process if the version of the boot firmware is smaller than the firmware distribution version.
제16항에 있어서,
상기 프로세서 유닛은, 상기 부팅 펌웨어의 버전이 상기 펌웨어 배포 버전보다 크면, 상기 부팅 펌웨어가 업데이트된 것으로 판단하고 상기 부팅 펌웨어의 버전으로 상기 보안 영역에 저장된 상기 펌웨어 배포 버전을 업데이트하는 사물인터넷 모듈.
17. The method of claim 16,
Wherein the processor unit determines that the boot firmware is updated if the version of the boot firmware is larger than the firmware distribution version and updates the firmware distribution version stored in the security area with the boot firmware version.
제18항에 있어서,
상기 프로세서 유닛은, 상기 프로세서 유닛에 포함되는 회로의 구조로부터 하드웨어 고유 키를 생성하여 상기 보안 영역에 저장하며,
상기 하드웨어 고유 키를 이용하는 인증 절차를 통해 상기 펌웨어 배포 버전을 상기 부팅 펌웨어의 버전으로 업데이트하는 사물인터넷 모듈.
19. The method of claim 18,
Wherein the processor unit generates a hardware inherent key from a structure of a circuit included in the processor unit and stores the generated hardware inherent key in the secure area,
And updates the firmware distribution version to the version of the boot firmware through an authentication procedure using the hardware unique key.
부팅 펌웨어를 저장하는 부팅 영역, 및 상기 부팅 영역과 구분되며 소정의 인증 키를 저장하는 보안 영역을 갖는 메모리 유닛; 및
내부 회로의 구조로부터 하드웨어 고유 키를 생성하는 하드웨어 고유 키 생성 회로를 포함하며, 상기 부팅 펌웨어가 최초로 실행되면 상기 하드웨어 고유 키를 상기 인증 키로서 상기 보안 영역에 저장하고, 상기 하드웨어 고유 키를 이용하는 인증 절차를 통해 상기 보안 영역에 대한 접근 권한을 획득하는 프로세서 유닛; 을 포함하는 사물인터넷 모듈.
A memory unit having a boot area for storing boot firmware and a security area for storing a predetermined authentication key, which is distinguished from the boot area; And
And a hardware inherent key generation circuit for generating a hardware inherent key from a structure of an internal circuit, wherein when the boot firmware is executed for the first time, the hardware inherent key is stored in the secure area as the authentication key, A processor unit for obtaining access rights to the secure area through a procedure; The Internet module includes.
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
KR20170121672 2017-09-21
KR1020170121672 2017-09-21

Publications (2)

Publication Number Publication Date
KR20190033411A true KR20190033411A (en) 2019-03-29
KR102392474B1 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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022139101A1 (en) * 2020-12-22 2022-06-30 주식회사 유니온플레이스 Internet of things apparatus, internet of things apparatus management system, and method for managing internet of things apparatus
KR20230084926A (en) * 2021-12-06 2023-06-13 ㈜더프라이밍 Dryer controller

Families Citing this family (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

Citations (4)

* 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
KR20150047789A (en) * 2013-10-25 2015-05-06 삼성전자주식회사 Method and device for controlling lock terminal

Patent Citations (4)

* 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
KR20150047789A (en) * 2013-10-25 2015-05-06 삼성전자주식회사 Method and device for controlling lock terminal

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022139101A1 (en) * 2020-12-22 2022-06-30 주식회사 유니온플레이스 Internet of things apparatus, internet of things apparatus management system, and method for managing internet of things apparatus
US11880691B2 (en) 2020-12-22 2024-01-23 Unionplace Co., Ltd. Internet of things (IoT) device, IoT device management system, and method for managing IoT device
KR20230084926A (en) * 2021-12-06 2023-06-13 ㈜더프라이밍 Dryer controller

Also Published As

Publication number Publication date
KR102392474B1 (en) 2022-04-29

Similar Documents

Publication Publication Date Title
US10810311B2 (en) Internet-of-things module
CN105144185B (en) Access control device code and system start code
US8407488B2 (en) Semiconductor device including encryption section, semiconductor device including external interface, and content reproduction method
CN104850762B (en) Prevent the undesirable method of the movement of computer, computer program and computer
CN104995627B (en) Cipher key revocation in system-on-chip apparatus
CN102298529B (en) Providing silicon integrated code for a system
CN103080904B (en) Multistage lock-step integrity report mechanism is provided
JP4568196B2 (en) Processor, computer system and authentication method
US20130254906A1 (en) Hardware and Software Association and Authentication
GB2514771A (en) Methods of securely changing the root key of a chip, and related electronic devices and chips
TW201519100A (en) System and method for auto-enrolling option ROMs in a UEFI secure boot database
KR102392474B1 (en) Internet-of-things module
US11429364B2 (en) Software installation method
KR20210091585A (en) Electronic device performing firmware update based on user authentication and operating method thereof
US20150143484A1 (en) System and method for managing tokens authorizing on-device operations
TWI625672B (en) Updatable integrated-circuit radio
US10742412B2 (en) Separate cryptographic keys for multiple modes
CN114008617A (en) Firmware rollback prevention
WO2016184180A1 (en) Method and apparatus for safe startup of system
US11307904B2 (en) Configurable peripherals
WO2023002635A1 (en) Information processing device, information processing method, and information processing program
JP2020149236A (en) Electronic apparatus and control method for electronic apparatus
US9836295B1 (en) Method and system for secure automated deployment of emulated computer system
US11816252B2 (en) Managing control of a security processor in a supply chain
US11977639B2 (en) Indicating a type of secure boot to endpoint devices by a security processor

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