KR20190134914A - Communication security method for lora communication device and apparatus using the same - Google Patents
Communication security method for lora communication device and apparatus using the same Download PDFInfo
- Publication number
- KR20190134914A KR20190134914A KR1020180054383A KR20180054383A KR20190134914A KR 20190134914 A KR20190134914 A KR 20190134914A KR 1020180054383 A KR1020180054383 A KR 1020180054383A KR 20180054383 A KR20180054383 A KR 20180054383A KR 20190134914 A KR20190134914 A KR 20190134914A
- Authority
- KR
- South Korea
- Prior art keywords
- application
- command
- key
- security module
- session key
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
본 발명은 로라(LoRa) 통신 디바이스에 대한 통신 보안 기술에 관한 것으로, 특히 LoRa 엔드 디바이스에 대한 중요 정보 저장 및 암호연산을 별도의 하드웨어 보안 모듈에서 수행함으로써 보안성을 향상시킬 수 있는 기술에 관한 것이다.The present invention relates to a communication security technology for a LoRa communication device, and more particularly, to a technology capable of improving security by performing important information storage and encryption operation for a LoRa end device in a separate hardware security module. .
LoRa(Long Range)는 저전력의 넓은 면적 네트워크(Low Power Wide-Area Network(LPWAN))을 위한 솔루션으로서, 높은 전력 비용을 부담하지 않으면서 수 킬로미터의 거리 범위에서 적은 양의 데이터를 주고 받는 기능을 필요로 하는 시스템을 위한 것이다. 도 1에 도시된 LoRa 네트워크를 참조하면, LoRa 솔루션에서 외부에 위치하는 것은 디바이스와 게이트웨이이며, 이들은 네트워크 서버와 통신하게 된다.Long Range (LoRa) is a solution for Low Power Wide-Area Networks (LPWANs) that provides the ability to send and receive small amounts of data over a range of kilometers without incurring high power costs. It's for the system you need. Referring to the LoRa network shown in FIG. 1, in the LoRa solution, externally located devices and gateways, they communicate with a network server.
로라 네트워크의 디바이스들은 보통 외부 시스템을 원격에서 측정하거나 제어하기 위해 사용된다. 이들 디바이스는 통상적으로 저전력이며 하나 또는 여러 개의 게이트웨이들과 통신하게 된다. 이러한 디바이스는 보통 MCU(Micro Controller Unit)에 의해 관리되는 LoRa 트랜시버(Transceiver)를 가지게 된다. 또한, MCU 는 LoRa 트랜시버에게 관리 명령을 보내어 LoRa 네트워크 설정을 구성하거나, 송수신기가 게이트웨이를 통해 네트워크 서버로 전달할 애플리케이션 데이터를 송수신 할 수 있도록 할 수 있다. 이 때, 디바이스는 항상 수신할 수 있지만, "호출 후 수신 대기"구성에서 작동하는 것이 표준이다. Devices in the Laura network are commonly used to remotely measure or control external systems. These devices are typically low power and will communicate with one or several gateways. These devices will usually have a LoRa transceiver managed by a microcontroller unit (MCU). The MCU can also send management commands to the LoRa transceivers to configure LoRa network settings, or allow the transceiver to send and receive application data for delivery to the network server through the gateway. At this point, the device can always receive, but it is standard to operate in a "wait for call after" configuration.
도 1에 도시된 게이트웨이는 개수가 많지 않고, 표준 IP 연결을 사용하여 디바이스에서 받은 데이터를 네트워크 서버로 다시 전송한다. 여러 디바이스는 하나 이상의 게이트웨이와 통신하고, 차례로 단일 네트워크 서버와 통신한다. 즉, 게이트웨이는 자체적으로 보안 기능을 수행하지 않지만 디바이스와 네트워크 서버간에 데이터를 중계하는 전달자 역할을 한다. The gateways shown in FIG. 1 do not have a large number and transmit data received from the device back to the network server using a standard IP connection. Several devices communicate with one or more gateways, which in turn communicate with a single network server. In other words, the gateway does not perform its own security function but acts as a forwarder that relays data between the device and the network server.
이러한 LoRa 네트워크에 있어서, LoRa 보안은 궁극적으로 엔드 디바이스와 어플리케이션 서버 사이에 교환되는 어플리케이션 페이로드에 대한 종단간 암호화를 구현하는 것일 수 있다. LoRaWAN은 이와 같은 종단 간 암호화를 구현하는 소수의 IoT 네트워크 중 하나이다. 따라서 LoRa 보안은 주로 외부에 위치하거나 보안이 취약한 상태에 있는 엔드 디바이스에 대한 보안을 유지하는 것이 중요하다.In such LoRa networks, LoRa security may ultimately be to implement end-to-end encryption of application payloads exchanged between end devices and application servers. LoRaWAN is one of the few IoT networks that implements this end-to-end encryption. Therefore, LoRa security is important to maintain security for end devices that are primarily external or vulnerable.
본 발명의 목적은 LoRa 엔드 디바이스에 대해 높은 보안성과 안전성을 제공함으로써 사용자들이 안심하고 다양한 LoRa 응용 서비스를 이용하는 데에 기여하는 것이다.It is an object of the present invention to provide users with high security and security for LoRa end devices, thereby contributing to users' peace of mind using various LoRa application services.
또한, 본 발명의 목적은 LoRa 프로토콜을 수행하기 위해 필요한 어플리케이션 키 및 두 개의 세션키들을 해킹 및 물리적 탈취 층의 위협으로부터 안전하게 보호하는 것이다.It is also an object of the present invention to secure the application key and two session keys required to perform the LoRa protocol from the threat of hacking and physical takeover layers.
상기한 목적을 달성하기 위한 본 발명에 따른 로라 통신 디바이스의 통신 보안 방법은 로라(LONH RANGE, LORA) 통신 기반의 사물 인터넷(IoT) 디바이스가, 마이크로 컨트롤 유닛(MICRO CONTROL UNIT, MCU)에 의한 명령어를 기반으로 로라(LORA) 프로토콜에 필요한 중요 정보를 하드웨어 보안 모듈에 저장하는 단계; 및 상기 하드웨어 보안 모듈을 기반으로 상기 로라 프로토콜에 의한 통신 데이터를 암호화하는 단계를 포함한다.Communication security method of a Laura communication device according to the present invention for achieving the above object is an IoT (IoT) device based on the (LONH RANGE, LORA) communication, the command by the microcontrol unit (MICRO CONTROL UNIT, MCU) Storing important information required for a LORA protocol in a hardware security module based on the information; And encrypting communication data by the Laura protocol based on the hardware security module.
이 때, 중요 정보는 엔드 디바이스 식별자(END-DEVICE IDENTIFIER, DevEUI), 어플리케이션 식별자(APPLICATION IDENTIFIER, AppEUI), 어플리케이션 키(APPLICATION KEY, AppKey), 네트워크 세션 키(NETWORK SEESSION KEY, NwkSKey) 및 어플리케이션 세션 키(APPLICATION SESSION KEY, AppSKey) 중 적어도 하나를 포함할 수 있다.At this time, the important information includes the end device identifier (END-DEVICE IDENTIFIER, DevEUI), the application identifier (APPLICATION IDENTIFIER, AppEUI), the application key (APPLICATION KEY, AppKey), the network session key (NETWORK SEESSION KEY, NwkSKey), and the application session key. It may include at least one of (APPLICATION SESSION KEY, AppSKey).
이 때, 암호화하는 단계는 상기 하드웨어 보안 모듈이, 상기 네트워크 세션 키 및 상기 어플리케이션 세션 키 중 적어도 하나를 기반으로 상기 통신 데이터를 암호화하여 암호화된 통신 데이터를 생성하는 단계; 및 상기 하드웨어 보안 모듈이, 상기 암호화된 통신 데이터를 상기 마이크로 컨트롤 유닛에게 전달하는 단계를 포함할 수 있다.In this case, the encrypting may include: generating, by the hardware security module, encrypted communication data by encrypting the communication data based on at least one of the network session key and the application session key; And forwarding, by the hardware security module, the encrypted communication data to the micro control unit.
이 때, 저장하는 단계는 상기 마이크로 컨트롤 유닛이, 상기 명령어와 함께 상기 어플리케이션 키를 상기 하드웨어 보안 모듈로 전달하는 단계; 및 상기 하드웨어 보안 모듈이, 상기 마이크로 컨트롤 유닛으로부터 전달된 키 생성 데이터를 상기 어플리케이션 키로 암호화하여 상기 네트워크 세션 키 및 상기 어플리케이션 세션 키를 생성하고, 상기 네트워크 세션 키 및 상기 어플리케이션 세션 키를 저장하는 단계를 포함할 수 있다.In this case, the storing may include: transmitting, by the micro control unit, the application key together with the command to the hardware security module; And generating, by the hardware security module, the network session key and the application session key by encrypting the key generation data transmitted from the micro control unit with the application key, and storing the network session key and the application session key. It may include.
이 때, 암호화하는 단계는 상기 사물 인터넷 디바이스가 상기 로라 프로토콜에 의한 통신을 수행할 때마다 상기 통신 데이터의 암호화를 반복적으로 수행할 수 있다.At this time, the encrypting step may repeatedly encrypt the communication data whenever the IoT apparatus performs communication by the Laura protocol.
이 때, 명령어는 수행할 명령의 종류, 상기 명령어에 포함될 데이터의 크기 및 상기 명령의 종류에 상응하는 데이터를 포함하는 형태일 수 있다.In this case, the command may be a type including a type of command to be executed, a size of data to be included in the command, and data corresponding to the type of the command.
이 때, 명령의 종류는 저장, 로딩, 키 생성 및 암호화 중 어느 하나에 상응할 수 있다.In this case, the type of command may correspond to any one of storage, loading, key generation, and encryption.
이 때, 중요 정보는 상기 하드웨어 보안 모듈의 플래시메모리(FLASHMEMORY)를 기반으로 저장될 수 있다.In this case, the important information may be stored based on the flash memory FLASHMEMORY of the hardware security module.
또한, 본 발명의 일실시예에 따른 로라 통신 기반의 사물 인터넷 디바이스는, 응용 프로그램 및 로라 프로토콜에 대한 처리를 수행하는 마이크로 컨트롤 유닛(MICRO CONTROL UNIT, MCU); 상기 마이크로 컨트롤 유닛에 의한 명령어를 기반으로 로라(LORA) 프로토콜에 필요한 중요 정보를 저장하고, 상기 로라 프로토콜에 의한 통신 데이터를 암호화하는 하드웨어 보안 모듈; 및 디지털 신호를 RF 신호로 변환하는 로라 트랜시버(LORA TRANSCEIVER)를 포함한다.In addition, the Laura communication-based IoT device according to an embodiment of the present invention, the microcontrol unit (MICRO CONTROL UNIT, MCU) for performing processing for the application program and the Laura protocol; A hardware security module that stores important information required for a LARA protocol based on an instruction by the micro control unit, and encrypts communication data according to the LARA protocol; And a LORA TRANSCEIVER for converting a digital signal into an RF signal.
이 때, 중요 정보는 엔드 디바이스 식별자(END-DEVICE IDENTIFIER, DevEUI), 어플리케이션 식별자(APPLICATION IDENTIFIER, AppEUI), 어플리케이션 키(APPLICATION KEY, AppKey), 네트워크 세션 키(NETWORK SEESSION KEY, NwkSKey) 및 어플리케이션 세션 키(APPLICATION SESSION KEY, AppSKey) 중 적어도 하나를 포함할 수 있다.At this time, the important information includes the end device identifier (END-DEVICE IDENTIFIER, DevEUI), the application identifier (APPLICATION IDENTIFIER, AppEUI), the application key (APPLICATION KEY, AppKey), the network session key (NETWORK SEESSION KEY, NwkSKey), and the application session key. It may include at least one of (APPLICATION SESSION KEY, AppSKey).
이 때, 하드웨어 보안 모듈은 상기 네트워크 세션 키 및 상기 어플리케이션 세션 키 중 적어도 하나를 기반으로 상기 통신 데이터를 암호화하여 암호화된 통신 데이터를 생성하고, 상기 암호화된 통신 데이터를 상기 마이크로 컨트롤 유닛에게 전달할 수 있다.At this time, the hardware security module may generate encrypted communication data by encrypting the communication data based on at least one of the network session key and the application session key, and transmit the encrypted communication data to the micro control unit. .
이 때, 하드웨어 보안 모듈은 상기 마이크로 컨트롤 유닛으로부터 상기 명령어와 함께 전달된 상기 어플리케이션 키를 기반으로 상기 마이크로 컨트롤 유닛으로부터 전달된 키 생성 데이터를 암호화하여 상기 네트워크 세션 키 및 상기 어플리케이션 세션 키를 생성하고, 상기 네트워크 세션 키 및 상기 어플리케이션 세션 키를 저장할 수 있다.At this time, the hardware security module encrypts the key generation data transmitted from the micro control unit based on the application key delivered with the command from the micro control unit to generate the network session key and the application session key. The network session key and the application session key may be stored.
이 때, 하드웨어 보안 모듈은 상기 사물 인터넷 디바이스가 상기 로라 프로토콜에 의한 통신을 수행할 때마다 상기 통신 데이터의 암호화를 반복적으로 수행할 수 있다.In this case, the hardware security module may repeatedly encrypt the communication data whenever the IoT apparatus performs communication by the Laura protocol.
이 때, 명령어는 수행할 명령의 종류, 상기 명령어에 포함될 데이터의 크기 및 상기 명령의 종류에 상응하는 데이터를 포함하는 형태일 수 있다.In this case, the command may be a type including a type of command to be executed, a size of data to be included in the command, and data corresponding to the type of the command.
이 때, 명령의 종류는 저장, 로딩, 키 생성 및 암호화 중 어느 하나에 상응할 수 있다.In this case, the type of command may correspond to any one of storage, loading, key generation, and encryption.
이 때, 중요 정보는 상기 하드웨어 보안 모듈의 플래시메모리(FLASHMEMORY)를 기반으로 저장될 수 있다.In this case, the important information may be stored based on the flash memory FLASHMEMORY of the hardware security module.
본 발명에 따르면, LoRa 엔드 디바이스에 대해 높은 보안성과 안전성을 제공함으로써 사용자들이 안심하고 다양한 LoRa 응용 서비스를 이용하는 데에 기여할 수 있다.According to the present invention, by providing high security and safety for LoRa end devices, users can contribute to using various LoRa application services with confidence.
또한, 본 발명은 LoRa 프로토콜을 수행하기 위해 필요한 어플리케이션 키 및 두 개의 세션키들을 해킹 및 물리적 탈취 층의 위협으로부터 안전하게 보호할 수 있다.In addition, the present invention can securely protect the application key and two session keys necessary to perform the LoRa protocol from the threat of hacking and physical takeover layer.
도 1은 LoRa 네트워크의 구성을 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 로라 통신 디바이스의 통신 보안 방법을 나타낸 동작 흐름도이다.
도 3은 본 발명에 따른 명령어의 일 예를 나타낸 도면이다.
도 4 내지 도 12는 본 발명에 따른 명령과 응답의 일 예를 나타낸 도면이다.
도 13은 본 발명의 일실시예에 따른 로라 통신 디바이스의 통신 보안 과정을 상세하게 나타낸 도면이다.
도 14는 본 발명의 일실시예에 따른 로라 통신 기반의 IoT 디바이스를 나타낸 블록도이다.
도 15는 본 발명의 일실시예에 따른 하드웨어 보안 모듈을 나타낸 블록도이다.1 is a diagram illustrating a configuration of a LoRa network.
2 is a flowchart illustrating a communication security method of a Laura communication device according to an exemplary embodiment of the present invention.
3 is a diagram illustrating an example of an instruction according to the present invention.
4 to 12 illustrate examples of commands and responses according to the present invention.
13 is a diagram illustrating in detail the communication security process of the Laura communication device according to an embodiment of the present invention.
14 is a block diagram illustrating a Laura communication based IoT device according to an embodiment of the present invention.
15 is a block diagram illustrating a hardware security module according to an embodiment of the present invention.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings. Here, the repeated description, well-known functions and configurations that may unnecessarily obscure the subject matter of the present invention, and detailed description of the configuration will be omitted. Embodiments of the present invention are provided to more completely describe the present invention to those skilled in the art. Accordingly, the shape and size of elements in the drawings may be exaggerated for clarity.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 2는 본 발명의 일실시예에 따른 로라 통신 디바이스의 통신 보안 방법을 나타낸 동작 흐름도이다.2 is a flowchart illustrating a communication security method of a Laura communication device according to an exemplary embodiment of the present invention.
도 2를 참조하면, 본 발명의 일실시예에 따른 로라 통신 디바이스의 통신 보안 방법은 로라(Long Range, LoRa) 통신 기반의 사물 인터넷(IoT) 디바이스가, 마이크로 컨트롤 유닛(Micro Control Unit, MCU)에 의한 명령어를 기반으로 로라 프로토콜에 필요한 중요 정보를 하드웨어 보안 모듈에게 저장한다(S210).Referring to FIG. 2, a communication security method of a Laura communication device according to an embodiment of the present invention may include a micro control unit (IoT) device based on a Long Range (LoRa) communication. Based on the instruction by the stored critical information required for the Laura protocol to the hardware security module (S210).
본 발명은 사물 인터넷(IoT)을 위한 통신 방식 중 하나인 LoRa 통신에서 LoRa 네트워크를 구성하는 장치 중 하나인 엔드 디바이스(End-Device)의 보안성을 높이기 위한 기술에 관한 것이다. 이를 위해 LoRa 엔드 디바이스에 해당하는 사물 인터넷 디바이스의 중요 정보를 별도의 하드웨어 보안 모듈에 저장함으로써 보안성을 향상시킬 수 있다. The present invention relates to a technique for increasing the security of an end-device, which is one of the devices constituting the LoRa network in LoRa communication, one of communication methods for the Internet of Things (IoT). To this end, security can be improved by storing important information of the IoT device corresponding to the LoRa end device in a separate hardware security module.
이 때, 로라 프로토콜을 처리하는 과정에서 하드웨어 보안 모듈의 기능이 필요한 경우, IoT 디바이스의 마이크로 컨트롤 유닛이 각각의 기능에 따른 명령어를 하드웨어 보안 모듈로 전달함으로써 필요한 기능을 처리할 수 있다. In this case, when a function of a hardware security module is required in the process of processing a Laura protocol, the micro control unit of the IoT device may process a required function by transferring a command according to each function to the hardware security module.
이 때, 명령어는 수행할 명령의 종류, 명령어에 포함될 데이터의 크기 및 명령의 종류에 상응하는 데이터를 포함하는 형태일 수 있다.In this case, the command may be in a form including data corresponding to the type of command to be executed, the size of data to be included in the command, and the type of command.
예를 들어, 명령어는, 도 3에 도시된 것처럼 첫 번째 바이트에 하드웨어 보안 모듈이 제공하는 기능에 해당하는 명령의 종류(310) 또는 명령을 정의할 수 있다. 또한, 두 번째 바이트에는 데이터의 크기(320)를 정의할 수 있고, 세 번째 바이트에 데이터(330)를 포함할 수 있다. 즉, 명령어의 두 번째 바이트가 '2'라고 가정한다면, 세 번째 바이트가 존재함과 동시에 세 번째 바이트에 데이터(330)가 있음을 의미할 수 있다. 만약, 두 번째 바이트가 '0'이라고 가정한다면, 두 번째 바이트 이후에는 데이터가 없으며, 두 번째 바이트로 명령어가 종료됨을 의미할 수 있다.For example, the command may define the
이 때, 중요 정보는 엔드 디바이스 식별자(END-DEVICE IDENTIFIER, DevEUI), 어플리케이션 식별자(APPLICATION IDENTIFIER, AppEUI), 어플리케이션 키(APPLICATION KEY, AppKey), 네트워크 세션 키(NETWORK SEESSION KEY, NwkSKey) 및 어플리케이션 세션 키(APPLICATION SESSION KEY, AppSKey) 중 적어도 하나를 포함할 수 있다.At this time, the important information includes the end device identifier (END-DEVICE IDENTIFIER, DevEUI), the application identifier (APPLICATION IDENTIFIER, AppEUI), the application key (APPLICATION KEY, AppKey), the network session key (NETWORK SEESSION KEY, NwkSKey), and the application session key. It may include at least one of (APPLICATION SESSION KEY, AppSKey).
예를 들어, LoRaWAN 디바이스 또는 LoRa 엔드 디바이스는, 디바이스 인증 과정에서 사용되는 고유한 128비트키인 어플리케이션 키(APPLICATION KEY, AppKey)와 엔드 디바이스 식별자(END-DEVICE IDENTIFIER, DevEUI)로 개별화될 수 있다. For example, a LoRaWAN device or LoRa end device may be individualized into an application key (APPLICATION KEY, AppKey) and an end device identifier (END-DEVICE IDENTIFIER, DevEUI), which are unique 128-bit keys used in the device authentication process.
따라서, 마이크로 컨트롤 유닛은 명령어와 함께 엔드 디바이스 식별자, 어플리케이션 식별자 및 어플리케이션 키를 하드웨어 보안 모듈로 전달할 수 있다.Thus, the micro control unit can communicate the end device identifier, application identifier and application key to the hardware security module with instructions.
예를 들어, 도 4를 참조하면, 엔드 디바이스 식별자(DevEUI) 값을 하드웨어 보안 모듈에 저장하는 과정을 보여주고 있다. 이 때, 마이크로 컨트롤 유닛(MCU)에서는 '0x01 0x08 DevEUI(8 bytes)'의 명령어(410)를 하드웨어 보안 모듈로 보낼 수 있다. 이 때, 명령어(410)에서 첫 번째 바이트에 해당하는 0x01은 엔드 디바이스 식별자(DevEUI)를 저장한다는 명령을 의미할 수 있고, 두 번째 바이트에 해당하는 0x08은 전달되는 데이터가 존재하며, 크기가 8바이트임을 의미할 수 있다. 따라서, 명령어(410)를 받은 하드웨어 보안 모듈은 엔드 디바이스 식별자(DevEUI) 값을 내부에 있는 플래시메모리에 저장한 뒤 저장을 완료하였음을 마이크로 컨트롤 유닛(MCU)에 알리기 위해 '0x00 0x00'의 응답(420)을 마이크로 컨트롤 유닛에게 전달할 수 있다.For example, referring to FIG. 4, a process of storing an end device identifier (DevEUI) value in a hardware security module is illustrated. At this time, the micro control unit (MCU) may send a
다른 예를 들어, 도 5를 참조하면, 도 4의 과정으로 하드웨어 보안 모듈에 저장되어 있는 엔드 디바이스 식별자(DevEUI) 값을 읽어오는 과정을 보여주고 있다. 먼저, 마이크로 컨트롤 유닛(MCU)은 '0x01 0x00'의 명령어(510)를 하드웨어 보안 모듈로 전달할 수 있다. 이 때, 명령어(510)에서 첫 번째 바이트에 해당하는 0x01은 엔드 디바이스 식별자(DevEUI)를 읽는 명령을 의미할 수 있고, 두 번째 바이트에 해당하는 0x00은 전달되는 데이터가 없음을 의미할 수 있다. 이 때, 명령어(510)의 두 번째 바이트가 0x00이므로, 명령어(510)의 첫 번째 바이트가 읽기 명령임을 의미할 수 있다. 이 후, 명령어(510)를 받은 하드웨어 보안 모듈은 내부의 플래시 메모리에 저장되어 있는 엔드 디바이스 식별자(DevEUI) 값을 읽은 후, '0x00 0x08 DevEUI(8 bytes)'의 응답(520)을 마이크로 컨트롤 유닛(MCU)에게 전달할 수 있다. 이 때, 응답(520)의 첫 번째 바이트에 해당하는 0x00은 엔드 디바이스 식별자(DevEUI)를 읽어오는 명령을 정상적으로 수행했음을 의미할 수 있고, 두 번째 바이트에 해당하는 0x08은 전달되는 데이터가 8바이트임을 의미할 수 있다.For another example, referring to FIG. 5, a process of reading an end device identifier (DevEUI) value stored in a hardware security module is shown in FIG. 4. First, the micro control unit (MCU) may transmit a
또 다른 예를 들어, 도 6을 참조하면, 도 4와 유사하게 어플리케이션 식별자(AppEUI) 값을 하드웨어 보안 모듈에 저장하는 과정을 보여주고 있다. 이 때, 마이크로 컨트롤 유닛(MCU)에서는 '0x02 0x08 AppEUI(8 bytes)'의 명령어(610)를 하드웨어 보안 모듈로 보낼 수 있다. 이 때, 명령어(610)에서 첫 번째 바이트에 해당하는 0x02는 어플리케이션 식별자(AppEUI)를 저장한다는 명령을 의미할 수 있고, 두 번째 바이트에 해당하는 0x08은 전달되는 데이터가 존재하며, 크기가 8바이트임을 의미할 수 있다. 따라서, 명령어(610)를 받은 하드웨어 보안 모듈은 어플리케이션 식별자(AppEUI) 값을 내부에 있는 플래시메모리에 저장한 뒤 저장을 완료하였음을 마이크로 컨트롤 유닛(MCU)에 알리기 위해 '0x00 0x00'의 응답(620)을 마이크로 컨트롤 유닛에게 전달할 수 있다.For another example, referring to FIG. 6, similar to FIG. 4, a process of storing an application identifier (AppEUI) value in a hardware security module is illustrated. At this time, the micro control unit (MCU) may send a
또한, 도 7을 참조하면, 도 5와 유사하게 도 6의 과정으로 하드웨어 보안 모듈에 저장되어 있는 어플리케이션 식별자(AppEUI) 값을 읽어오는 과정을 보여주고 있다. 먼저, 마이크로 컨트롤 유닛(MCU)은 '0x02 0x00'의 명령어(710)를 하드웨어 보안 모듈에 전달할 수 있다. 이 때, 명령어(710)의 첫 번째 바이트에 해당하는 0x02은 어플리케이션 식별자(AppEUI)를 읽는 명령을 의미할 수 있고, 두 번째 바이트에 해당하는 0x00은 전달되는 데이터가 없음을 의미할 수 있다. 이 때도 역시, 두 번째 바이트에 해당하는 0x00이므로 첫 번째 바이트가 읽기 명령에 해당함을 의미할 수 있다. 이 후, 명령어(710)를 받은 하드웨어 보안 모듈은 내부의 플래시메모리에 저장되어 있는 어플리케이션 식별자(AppEUI) 값을 읽은 후, '0x00 0x08 AppEUI(8 bytes)'의 응답(720)을 마이크로 컨트롤 유닛(MCU)에게 전달할 수 있다. 이 때, 응답(720)의 첫 번째 바이트에 해당하는 0x00은 어플리케이션 식별자(AppEUI)를 읽어오는 명령을 정상적으로 수행했음을 의미할 수 있고, 두 번째 바이트에 해당하는 0x08은 전달되는 데이터가 8바이트 임을 의미할 수 있다.In addition, referring to FIG. 7, a process of reading an application identifier (AppEUI) value stored in a hardware security module is shown in FIG. 6, similar to FIG. 5. First, the micro control unit (MCU) may transmit a
또 다른 예를 들어, 도 8을 참조하면, 어플리케이션 키(AppKey) 값을 하드웨어 보안 모듈에 저장하는 과정을 보여주고 있다. 이 때, 마이크로 컨트롤 유닛(MCU)에서는 '0x11 0x10 AppKey(16 bytes)'의 명령어(810)를 하드웨어 보안 모듈로 보낼 수 있다. 이 때, 명령어(810)의 첫 번째 바이트에 해당하는 0x11은 어플리케이션 키(AppKey)를 저장한다는 명령을 의미할 수 있고, 두 번째 바이트에 해당하는 0x10은 전달되는 데이터가 존재하며, 크기가 16바이트임을 의미할 수 있다. 따라서, 명령어(810)를 받은 하드웨어 보안 모듈은 어플리케이션 키(AppKey) 값을 내부에 있는 플래시메모리에 저장한 뒤 저장을 완료하였음을 마이크로 컨트롤 유닛(MCU)에게 알리기 위해 '0x00 0x00'의 응답(820)을 마이크로 컨트롤 유닛에게 전달할 수 있다.For another example, referring to FIG. 8, a process of storing an AppKey value in a hardware security module is illustrated. At this time, the micro control unit (MCU) may send a
이 때, 하드웨어 보안 모듈이 마이크로 컨트롤 유닛으로부터 전달된 키 생성 데이터를 어플리케이션 키로 암호화하여 네트워크 세션 키 및 어플리케이션 세션 키를 생성하고, 네트워크 세션 키 및 어플리케이션 세션 키를 저장할 수 있다. At this time, the hardware security module may encrypt the key generation data transmitted from the micro control unit with the application key to generate the network session key and the application session key, and store the network session key and the application session key.
이 때, 네트워크 세션 키는 LoRa MAC 명령 및 응용 프로그램 페이로드의 무결성 보호 및 암호화를 제공하는 세션 키에 상응할 수 있고, 어플리케이션 세션 키는 응용 프로그램 페이로드의 종단 간 암호화를 제공하는 세션 키에 상응할 수 있다.At this point, the network session key may correspond to a session key that provides LoRa MAC command and integrity protection and encryption of the application payload, and the application session key corresponds to a session key that provides end-to-end encryption of the application payload. can do.
예를 들어, 도 9를 참조하면, 하드웨어 보안 모듈에 저장되어 있는 어플리케이션 키(AppKey)를 이용하여 네트워크 세션 키(NwkSKey)를 생성 및 저장하는 과정을 보여주고 있다. 이 때, 마이크로 컨트롤 유닛(MCU)은 '0xA2 0x10 Data(16 bytes)'의 명령어(910)를 하드웨어 보안 모듈로 보낼 수 있다. 이 때, 명령어(910)의 첫 번째 바이트에 해당하는 0xA2은 네트워크 세션 키(NwkSKey)를 생성 및 저장하라는 명령을 의미할 수 있고, 두 번째 바이트에 해당하는 0x10은 전달되는 데이터가 존재하며, 크기가 16바이트임을 의미할 수 있다. 따라서, 명령어(910)를 받은 하드웨어 보안 모듈은 내부 플래시 메모리에 저장되어 있는 어플리케이션 키(AppKey) 값을 이용하여, 마이크로 컨트롤 유닛(MCU)으로부터 입력된 키 생성 데이터를 암호화(AES사용)하여 네트워크 세션 키(NwkSKey)를 생성할 수 있다. 이 후, 하드웨어 보안 모듈은 생성된 네트워크 세션 키(NwkSKey) 값을 내부 플래시 메모리에 저장할 수 있고, 저장을 완료하였음을 마이크로 컨트롤 유닛(MCU)에 알리기 위해 '0x00 0x00'의 응답(920)을 마이크로 컨트롤 유닛(MCU)에게 전달할 수 있다.For example, referring to FIG. 9, a process of generating and storing a network session key NwkSKey using an application key (AppKey) stored in a hardware security module is shown. At this time, the micro control unit (MCU) may send a
다른 예를 들어, 도 10을 참조하면, 하드웨어 보안 모듈에 저장되어 있는 어플리케이션 키(AppKey)를 이용하여 어플리케이션 세션 키(AppSKey)를 생성 및 저장하는 과정을 보여주고 있다. 이 때, 마이크로 컨트롤 유닛(MCU)은 '0xA3 0x10 Data(16 bytes)'의 명령어(1010)를 하드웨어 보안 모듈로 보낼 수 있다. 이 때, 명령어(1010)의 첫 번째 바이트에 해당하는 0xA3는 어플리케이션 세션 키(AppSKey)를 생성 및 저장하라는 명령을 의미할 수 있고, 두 번째 바이트에 해당하는 0x10은 전달되는 데이터가 존재하며, 크기가 16바이트임을 의미할 수 있다. 따라서, 명령어(1010)를 받은 하드웨어 보안 모듈은 내부 플래시 메모리에 저장되어 있는 어플리케이션 키(AppKey) 값을 이용하여, 마이크로 컨트롤 유닛(MCU)로부터 입력된 키 생성 데이터를 암호화(AES사용)하여 어플리케이션 세션 키(AppSKey)를 생성할 수 있다. 이 후, 하드웨어 보안 모듈은 생성된 어플리케이션 세션 키(AppSKey) 값을 내부 플래시 메모리에 저장할 수 있고, 저장을 완료하였음을 마이크로 컨트롤 유닛(MCU)에 알리기 위해 '0x00 0x00'의 응답(1020)을 마이크로 컨트롤 유닛(MCU)에게 전달할 수 있다.For another example, referring to FIG. 10, a process of generating and storing an application session key (AppSKey) using an application key (AppKey) stored in a hardware security module is shown. At this time, the micro control unit (MCU) may send a
이 때, 중요 정보는 하드웨어 보안 모듈의 플래시메모리(Flash Memory)를 기반으로 저장될 수 있다. 즉, 전원이 끊어져도 저장된 정보가 지워지지 않는 비휘발성 기억장치인 플래시메모리(Flash Memory)에 중요 정보를 저장함으로써 전원이 꺼져도 중요 정보가 사라지지 않은 채 유지되도록 할 수 있다.In this case, the important information may be stored based on a flash memory of the hardware security module. That is, by storing important information in a flash memory that is a nonvolatile memory device in which stored information is not erased even when the power is cut off, important information may be maintained without disappearing even when the power is turned off.
또한, 기존의 LoRa 디바이스가 중요 정보를 tamper-resistant가 가능한 장치에 보관하지 않고, 마이크로 컨트롤 유닛(MCU) 내부에 저장 관리함으로써 해킹이나 물리적 탈취의 위협에 노출되었던 문제점을 해결할 수도 있다.In addition, the existing LoRa device can solve the problem of being exposed to the threat of hacking or physical takeover by storing and managing important information inside the micro control unit (MCU) without storing important information in a tamper-resistant device.
이 때, 명령의 종류는 저장, 로딩, 키 생성 및 암호화 중 어느 하나에 상응할 수 있다. In this case, the type of command may correspond to any one of storage, loading, key generation, and encryption.
예를 들어, 도 4, 도 6 및 도 8에서 설명한 예시와 같이 마이크로 컨트롤 유닛(MCU)이 하드웨어 보안 모듈에게 데이터를 전달하면서 저장하는 경우에 전달되는 명령어들의 종류는 저장에 해당할 수 있다. For example, as illustrated in FIGS. 4, 6, and 8, when the micro control unit (MCU) stores data while transmitting data to the hardware security module, the types of instructions transmitted may correspond to storage.
다른 예를 들어, 도 5 및 도 7에서 설명한 예시와 같이 하드웨어 보안 모듈에서 마이크로 컨트롤 유닛(MCU)으로 데이터를 제공하는 경우에 전달되는 명령어들의 종류는 로딩에 해당할 수 있다. For another example, as illustrated in FIGS. 5 and 7, when the hardware security module provides data to the micro control unit (MCU), the types of instructions transmitted may correspond to loading.
또 다른 예를 들어, 도 9 및 도 10에서 설명한 예시와 같이 마이크로 컨트롤 유닛(MCU)이 키 생성 데이터를 전달하면서 네트워크 세션 키(NwkSKey) 또는 어플리케이션 세션 키(AppSKey)의 생성을 요청하는 경우에 전달되는 명령어들의 종류는 키 생성에 해당할 수 있다. 이 때, 생성된 네트워크 세션 키(NwkSKey) 또는 어플리케이션 세션 키(AppSKey)가 하드웨어 보안 모듈에 저장되므로, 이러한 경우의 명령어들의 종류는 키 생성과 동시에 저장에 상응할 수도 있다.For another example, when the micro control unit (MCU) requests generation of a network session key (NwkSKey) or an application session key (AppSKey) while transferring key generation data, as illustrated in the example described with reference to FIGS. 9 and 10. The type of commands to be generated may correspond to key generation. At this time, since the generated network session key (NwkSKey) or application session key (AppSKey) is stored in the hardware security module, the types of instructions in this case may correspond to storage at the same time as key generation.
또한, 본 발명의 일실시예에 따른 로라 통신 디바이스의 통신 보안 방법은 하드웨어 보안 모듈을 기반으로 로라 프로토콜에 의한 통신 데이터를 암호화한다(S220).In addition, the communication security method of the Laura communication device according to an embodiment of the present invention encrypts the communication data by the Laura protocol based on the hardware security module (S220).
이 때, 하드웨어 보안 모듈이 네트워크 세션 키 및 어플리케이션 세션 키 중 적어도 하나를 기반으로 통신 데이터를 암호화하여 암호화된 통신 데이터를 생성할 수 있다. In this case, the hardware security module may generate encrypted communication data by encrypting the communication data based on at least one of the network session key and the application session key.
이 때, 하드웨어 보안 모듈이 암호화된 통신 데이터를 마이크로 컨트롤 유닛에게 전달할 수 있다.At this time, the hardware security module may transmit the encrypted communication data to the micro control unit.
예를 들어, 도 11을 참조하면, 하드웨어 보안 모듈에 저장되어 있는 네트워크 세션 키(NwkSKey)를 이용하여 마이크로 컨트롤 유닛(MCU)으로부터 입력된 평문을 암호화한 후에 출력하는 과정을 보여주고 있다. 이 때, 마이크로 컨트롤 유닛(MCU)은 '0xAB 0x10 평문(16 bytes)'의 명령어(1110)를 하드웨어 보안 모듈로 보낼 수 있다. 이 때, 명령어(1110)의 첫 번째 바이트에 해당하는 0xAB는 네트워크 세션 키(NwkSKey)를 이용하여 입력된 평문을 암호화하는 명령을 의미할 수 있고, 두 번째 바이트에 해당하는 0x10은 전달되는 평문의 크기가 16바이트임을 의미할 수 있다. 따라서, 명령어(1110)를 받은 하드웨어 보안 모듈은 내부 플래시메모리에 저장되어 있는 네트워크 세션 키(NwkSKey) 값을 이용하여 입력된 평문을 암호화(AES사용)할 수 있다. 이 후, 암호문을 생성한 하드웨어 보안 모듈은 '0xA0 0x10 암호문(16 bytes)'의 응답(1120)을 마이크로 컨트롤 유닛(MCU)으로 전달할 수 있다. 이 때, 응답(1120)의 첫 번째 바이트에 해당하는 0xA0는 암호문 생성 명령을 정상적으로 수행했음을 의미할 수 있고, 두 번째 바이트에 해당하는 0x10은 마이크로 컨트롤 유닛(MCU)으로 전달되는 암호문의 크기가 16바이트임을 의미할 수 있다.For example, referring to FIG. 11, a process of encrypting and outputting plain text input from a micro control unit (MCU) using a network session key (NwkSKey) stored in a hardware security module is shown. At this time, the micro control unit (MCU) may send a
다른 예를 들어, 도 12를 참조하면, 하드웨어 보안 모듈에 저장되어 있는 어플리케이션 세션 키(AppSKey)를 이용하여 마이크로 컨트롤 유닛(MCU)으로부터 입력된 평문을 암호화한 후에 출력하는 과정을 보여주고 있다. 이 때, 마이크로 컨트롤 유닛(MCU)은 '0xAC 0x10 평문(16 bytes)'의 명령어(1210)를 하드웨어 보안 모듈로 보낼 수 있다. 이 때, 명령어(1210)의 첫 번째 바이트에 해당하는 0xAC는 어플리케이션 세션 키(AppSKey)를 이용하여 입력된 평문을 암호화하는 명령을 의미할 수 있고, 두 번째 바이트에 해당하는 0x10은 전달되는 평문의 크기가 16바이트임을 의미할 수 있다. 따라서, 명령어(1210)를 받은 하드웨어 보안모듈은 내부 플래시메모리에 저장되어 있는 어플리케이션 세션 키(AppSKey) 값을 이용하여 입력된 평문을 암호화(AES사용)할 수 있다. 이 후, 암호문을 생성한 하드웨어 보안 모듈은 '0xA0 0x10 암호문(16 bytes)'의 응답(1220)을 마이크로 컨트롤 유닛(MCU)으로 전달할 수 있다. 이 때, 응답(1220)의 첫 번째 바이트에 해당하는 0xA0는 암호문 생성 명령을 정상적으로 수행했음을 의미할 수 있고, 두 번째 바이트에 해당하는 0x10은 전달되는 암호문의 크기가 16바이트임을 의미할 수 있다.For another example, referring to FIG. 12, a process of encrypting and outputting plaintext input from a micro control unit (MCU) using an application session key (AppSKey) stored in a hardware security module is shown. At this time, the micro control unit (MCU) may send a
이와 같이 생성된 어플리케이션 키 및 어플리케이션 키를 기반으로 파생된 세션 키들은 하드웨어 보안 모듈에 의해 보안 및 저장됨으로써 해킹이나 물리적 탈취 등의 위협으로부터 안전하게 보호될 수 있다.The session key derived based on the application key and the application key generated in this way can be secured and stored by the hardware security module to be protected from threats such as hacking or physical takeover.
이 때, 도 11 및 도 12의 예시에서와 같이, LoRa 통신 보안은 무결성 보호를 위한 CMAC연산 및 암호화 연산에 AES 암호 알고리즘을 사용할 수 있다.In this case, as in the examples of FIGS. 11 and 12, LoRa communication security may use the AES encryption algorithm for CMAC operation and encryption operation for integrity protection.
이 때, 사물 인터넷 디바이스가 로라 프로토콜에 의한 통신을 수행할 때마다 통신 데이터의 암호화를 반복적으로 수행할 수 있다.At this time, whenever the IoT device performs communication using the Laura protocol, it is possible to repeatedly encrypt communication data.
또한, 도 2에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 로라 통신 디바이스의 통신 보안 방법은 상술한 바와 같이 본 발명의 일실시예에 따른 로라 통신 디바이스의 통신 보안을 위한 과정에서 발생하는 다양한 정보를 별도의 저장 모듈에 저장할 수 있다.In addition, although not shown in Figure 2, the communication security method of the Laura communication device according to an embodiment of the present invention as described above occurs in the process for the communication security of the Laura communication device according to an embodiment of the present invention Various information can be stored in a separate storage module.
이와 같은 로라 통신 디바이스의 통신 보안 방법을 통해 LoRa 엔드 디바이스에 대해 높은 보안성과 안전성을 제공함으로써 사용자들이 안심하고 다양한 LoRa 응용 서비스를 이용하는 데에 기여할 수 있다.This communication security method of Lora communication devices provides high security and safety for LoRa end devices, helping users to use various LoRa application services with confidence.
또한, LoRa 프로토콜을 수행하기 위해 필요한 어플리케이션 키 및 두 개의 세션키들을 해킹 및 물리적 탈취 층의 위협으로부터 안전하게 보호할 수 있다.In addition, the application key and two session keys required to execute the LoRa protocol can be secured from the threat of hacking and physical exploitation layer.
도 13은 본 발명의 일실시예에 따른 로라 통신 디바이스의 통신 보안 과정을 상세하게 나타낸 도면이다.13 is a diagram illustrating in detail the communication security process of the Laura communication device according to an embodiment of the present invention.
도 13을 참조하면, 본 발명의 일실시예에 따른 로라 통신 디바이스의 통신 보안 과정은 먼저, 디바이스 내의 마이크로 컨트롤 유닛(MCU)(1310)이 하드웨어 보안 모듈(1320)에게 중요 정보를 전달하고 저장하도록 명령할 수 있다(S1302).Referring to FIG. 13, a communication security process of a Laura communication device according to an embodiment of the present invention may first allow a micro control unit (MCU) 1310 in a device to transmit and store important information to a
이 때, MCU(1310)는 중요 정보와 함께 중요 정보를 저장하도록 명령하는 명령어를 함께 전달할 수 있다.In this case, the
이 때, 명령어는 수행할 명령의 종류, 명령어에 포함될 데이터의 크기 및 명령의 종류에 상응하는 데이터를 포함하는 형태일 수 있다.In this case, the command may be in a form including data corresponding to the type of command to be executed, the size of data to be included in the command, and the type of command.
이 때, 전달되는 중요 정보는 엔드 디바이스 식별자(END-DEVICE IDENTIFIER, DevEUI), 어플리케이션 식별자(APPLICATION IDENTIFIER, AppEUI), 어플리케이션 키(APPLICATION KEY, AppKey)에 상응할 수 있다.In this case, the important information delivered may correspond to an end device identifier (END-DEVICE IDENTIFIER, DevEUI), an application identifier (APPLICATION IDENTIFIER, AppEUI), an application key (APPLICATION KEY, AppKey).
이 후, MCU(1310)가 하드웨어 보안 모듈(1320)에게 키 생성 데이터를 전달하면서 네트워크 세션 키 또는 어플리케이션 세션 키의 생성을 명령할 수 있다(S1304).Thereafter, the
이 때, MCU(1310)는 키 생성 데이터와 함께 네트워크 세션 키 또는 어플리케이션 세션 키의 생성을 명령하는 명령어를 함께 전달할 수 있다.In this case, the
이 후, 하드웨어 보안 모듈(1320)이 내부 플래시 메모리에 저장된 어플리케이션 키를 이용하여 네트워크 세션 키 또는 어플리케이션 세션 키를 생성할 수 있다(S1306).Thereafter, the
이 때, 어플리케이션 키 값으로 키 생성 데이터를 암호화함으로써 네트워크 세션 키 또는 어플리케이션 세션 키를 생성할 수 있다.At this time, the network session key or the application session key can be generated by encrypting the key generation data with the application key value.
이 후, MCU(1310)가 LoRa 통신을 위한 통신 데이터를 하드웨어 보안 모듈(1320)에게 전달하면(S1308), 하드웨어 보안 모듈(1320)이 네트워크 세션 키 또는 어플리케이션 세션 키를 기반으로 통신 데이터에 상응하는 평문을 암호화할 수 있다(S1310).Thereafter, when the
이 때, MCU(1310)는 통신 데이터와 함께 통신 데이터의 암호화를 명령하는 명령어를 함께 전달할 수 있다.In this case, the
이 후, 하드웨어 보안 모듈(1320)이 암호화된 통신 데이터를 MCU(1310)로 전달하면(S1312), MCU(1310)는 암호화된 통신 데이터를 로라 트랜시버(LoRa Transceiver)(1330)로 전달해(S1314) RF 신호 변환을 수행함으로써(S1316) LoRa 프로토콜 기반의 보안 통신을 수행할 수 있다. Thereafter, when the
도 14는 본 발명의 일실시예에 따른 로라 통신 기반의 IoT 디바이스를 나타낸 블록도이다.14 is a block diagram illustrating a Laura communication based IoT device according to an embodiment of the present invention.
본 발명의 일실시예에 따른 IoT 디바이스는 하드웨어 보안 모듈을 포함한 LoRa 통신 모듈을 구비할 수 있다. 즉, 본 발명의 IoT 디바이스는 크게 3개의 블록으로 구성될 수 있는데, 도 14에 도시된 것처럼 마이크로 컨트롤 유닛(MICRO CONTROL UNIT, MCU)(1410), 하드웨어 보안 모듈(1420) 및 로라 트랜시버(LORA TRANSCEIVER)(1430)를 포함한다.An IoT device according to an embodiment of the present invention may include a LoRa communication module including a hardware security module. That is, the IoT device of the present invention can be largely composed of three blocks, as shown in FIG. 14, a micro control unit (MICRO CONTROL UNIT, MCU) 1410, a
마이크로 컨트롤 유닛(1410)은 응용 프로그램 및 로라 프로토콜에 대한 처리를 수행한다. The
하드웨어 보안 모듈(1420)은 마이크로 컨트롤 유닛(1410)에 의한 명령어를 기반으로 로라 프로토콜에 필요한 중요 정보를 저장하고, 로라 프로토콜에 의한 통신 데이터를 암호화한다.The
먼저, 하드웨어 보안 모듈(1420)은 마이크로 컨트롤 유닛(1410)에 의한 명령어를 기반으로 로라 프로토콜에 필요한 중요 정보를 저장한다.First, the
본 발명은 사물 인터넷(IoT)을 위한 통신 방식 중 하나인 LoRa 통신에서 LoRa 네트워크를 구성하는 장치 중 하나인 엔드 디바이스(End-Device)의 보안성을 높이기 위한 기술에 관한 것이다. 이를 위해 LoRa 엔드 디바이스에 해당하는 사물 인터넷 디바이스의 중요 정보를 별도의 하드웨어 보안 모듈(1420)에 저장함으로써 보안성을 향상시킬 수 있다. The present invention relates to a technique for increasing the security of an end-device, which is one of the devices constituting the LoRa network in LoRa communication, one of communication methods for the Internet of Things (IoT). To this end, security may be improved by storing important information of the IoT device corresponding to the LoRa end device in a separate
이 때, 로라 프로토콜을 처리하는 과정에서 하드웨어 보안 모듈(1420)의 기능이 필요한 경우, IoT 디바이스의 마이크로 컨트롤 유닛(1410)이 각각의 기능에 따른 명령어를 하드웨어 보안 모듈로 전달함으로써 필요한 기능을 처리할 수 있다.In this case, when the function of the
이 때, 명령어는 수행할 명령의 종류, 명령어에 포함될 데이터의 크기 및 명령의 종류에 상응하는 데이터를 포함하는 형태일 수 있다.In this case, the command may be in a form including data corresponding to the type of command to be executed, the size of data to be included in the command, and the type of command.
예를 들어, 명령어는, 도 3에 도시된 것처럼 첫 번째 바이트에 하드웨어 보안 모듈이 제공하는 기능에 해당하는 명령의 종류(310) 또는 명령을 정의할 수 있다. 또한, 두 번째 바이트에는 데이터의 크기(320)를 정의할 수 있고, 세 번째 바이트에 데이터(330)를 포함할 수 있다. 즉, 명령어의 두 번째 바이트가 2라고 가정한다면, 세 번째 바이트가 존재함과 동시에 세 번째 바이트에 데이터(330)가 있음을 의미할 수 있다. 만약, 두 번째 바이트가 0이라고 가정한다면, 두 번째 바이트 이후에는 데이터가 없으며, 두 번째 바이트로 명령어가 종료됨을 의미할 수 있다.For example, the command may define the
이 때, 중요 정보는 엔드 디바이스 식별자(END-DEVICE IDENTIFIER, DevEUI), 어플리케이션 식별자(APPLICATION IDENTIFIER, AppEUI), 어플리케이션 키(APPLICATION KEY, AppKey), 네트워크 세션 키(NETWORK SEESSION KEY, NwkSKey) 및 어플리케이션 세션 키(APPLICATION SESSION KEY, AppSKey) 중 적어도 하나를 포함할 수 있다.At this time, the important information includes the end device identifier (END-DEVICE IDENTIFIER, DevEUI), the application identifier (APPLICATION IDENTIFIER, AppEUI), the application key (APPLICATION KEY, AppKey), the network session key (NETWORK SEESSION KEY, NwkSKey), and the application session key. It may include at least one of (APPLICATION SESSION KEY, AppSKey).
예를 들어, LoRaWAN 디바이스 또는 LoRa 엔드 디바이스는, 디바이스 인증 과정에서 사용되는 고유한 128비트키인 어플리케이션 키(APPLICATION KEY, AppKey)와 엔드 디바이스 식별자(END-DEVICE IDENTIFIER, DevEUI)로 개별화될 수 있다. For example, a LoRaWAN device or LoRa end device may be individualized into an application key (APPLICATION KEY, AppKey) and an end device identifier (END-DEVICE IDENTIFIER, DevEUI), which are unique 128-bit keys used in the device authentication process.
따라서, 마이크로 컨트롤 유닛은 명령어와 함께 엔드 디바이스 식별자, 어플리케이션 식별자 및 어플리케이션 키를 하드웨어 보안 모듈로 전달할 수 있다.Thus, the micro control unit can communicate the end device identifier, application identifier and application key to the hardware security module with instructions.
예를 들어, 도 4를 참조하면, 엔드 디바이스 식별자(DevEUI) 값을 하드웨어 보안 모듈에 저장하는 과정을 보여주고 있다. 이 때, 마이크로 컨트롤 유닛(MCU)에서는 '0x01 0x08 DevEUI(8 bytes)'의 명령어(410)를 하드웨어 보안 모듈로 보낼 수 있다. 이 때, 명령어(410)에서 첫 번째 바이트에 해당하는 0x01은 엔드 디바이스 식별자(DevEUI)를 저장한다는 명령을 의미할 수 있고, 두 번째 바이트에 해당하는 0x08은 전달되는 데이터가 존재하며, 크기가 8바이트임을 의미할 수 있다. 따라서, 명령어(410)를 받은 하드웨어 보안 모듈은 엔드 디바이스 식별자(DevEUI) 값을 내부에 있는 플래시메모리에 저장한 뒤 저장을 완료하였음을 마이크로 컨트롤 유닛(MCU)에 알리기 위해 '0x00 0x00'의 응답(420)을 마이크로 컨트롤 유닛에게 전달할 수 있다.For example, referring to FIG. 4, a process of storing an end device identifier (DevEUI) value in a hardware security module is illustrated. At this time, the micro control unit (MCU) may send a
다른 예를 들어, 도 5를 참조하면, 도 4의 과정으로 하드웨어 보안 모듈에 저장되어 있는 엔드 디바이스 식별자(DevEUI) 값을 읽어오는 과정을 보여주고 있다. 먼저, 마이크로 컨트롤 유닛(MCU)은 '0x01 0x00'의 명령어(510)를 하드웨어 보안 모듈로 전달할 수 있다. 이 때, 명령어(510)에서 첫 번째 바이트에 해당하는 0x01은 엔드 디바이스 식별자(DevEUI)를 읽는 명령을 의미할 수 있고, 두 번째 바이트에 해당하는 0x00은 전달되는 데이터가 없음을 의미할 수 있다. 이 때, 명령어(510)의 두 번째 바이트가 0x00이므로, 명령어(510)의 첫 번째 바이트가 읽기 명령임을 의미할 수 있다. 이 후, 명령어(510)를 받은 하드웨어 보안 모듈은 내부의 플래시 메모리에 저장되어 있는 엔드 디바이스 식별자(DevEUI) 값을 읽은 후, '0x00 0x08 DevEUI(8 bytes)'의 응답(520)을 마이크로 컨트롤 유닛(MCU)에게 전달할 수 있다. 이 때, 응답(520)의 첫 번째 바이트에 해당하는 0x00은 엔드 디바이스 식별자(DevEUI)를 읽어오는 명령을 정상적으로 수행했음을 의미할 수 있고, 두 번째 바이트에 해당하는 0x08은 전달되는 데이터가 8바이트임을 의미할 수 있다.For another example, referring to FIG. 5, a process of reading an end device identifier (DevEUI) value stored in a hardware security module is shown in FIG. 4. First, the micro control unit (MCU) may transmit a
또 다른 예를 들어, 도 6을 참조하면, 도 4와 유사하게 어플리케이션 식별자(AppEUI) 값을 하드웨어 보안 모듈에 저장하는 과정을 보여주고 있다. 이 때, 마이크로 컨트롤 유닛(MCU)에서는 '0x02 0x08 AppEUI(8 bytes)'의 명령어(610)를 하드웨어 보안 모듈로 보낼 수 있다. 이 때, 명령어(610)에서 첫 번째 바이트에 해당하는 0x02는 어플리케이션 식별자(AppEUI)를 저장한다는 명령을 의미할 수 있고, 두 번째 바이트에 해당하는 0x08은 전달되는 데이터가 존재하며, 크기가 8바이트임을 의미할 수 있다. 따라서, 명령어(610)를 받은 하드웨어 보안 모듈은 어플리케이션 식별자(AppEUI) 값을 내부에 있는 플래시메모리에 저장한 뒤 저장을 완료하였음을 마이크로 컨트롤 유닛(MCU)에 알리기 위해 '0x00 0x00'의 응답(620)을 마이크로 컨트롤 유닛에게 전달할 수 있다.For another example, referring to FIG. 6, similar to FIG. 4, a process of storing an application identifier (AppEUI) value in a hardware security module is illustrated. At this time, the micro control unit (MCU) may send a
또한, 도 7을 참조하면, 도 5와 유사하게 도 6의 과정으로 하드웨어 보안 모듈에 저장되어 있는 어플리케이션 식별자(AppEUI) 값을 읽어오는 과정을 보여주고 있다. 먼저, 마이크로 컨트롤 유닛(MCU)은 '0x02 0x00'의 명령어(710)를 하드웨어 보안 모듈에 전달할 수 있다. 이 때, 명령어(710)의 첫 번째 바이트에 해당하는 0x02은 어플리케이션 식별자(AppEUI)를 읽는 명령을 의미할 수 있고, 두 번째 바이트에 해당하는 0x00은 전달되는 데이터가 없음을 의미할 수 있다. 이 때도 역시, 두 번째 바이트에 해당하는 0x00이므로 첫 번째 바이트가 읽기 명령에 해당함을 의미할 수 있다. 이 후, 명령어(710)를 받은 하드웨어 보안 모듈은 내부의 플래시메모리에 저장되어 있는 어플리케이션 식별자(AppEUI) 값을 읽은 후, '0x00 0x08 AppEUI(8 bytes)'의 응답(720)을 마이크로 컨트롤 유닛(MCU)에게 전달할 수 있다. 이 때, 응답(720)의 첫 번째 바이트에 해당하는 0x00은 어플리케이션 식별자(AppEUI)를 읽어오는 명령을 정상적으로 수행했음을 의미할 수 있고, 두 번째 바이트에 해당하는 0x08은 전달되는 데이터가 8바이트 임을 의미할 수 있다.In addition, referring to FIG. 7, a process of reading an application identifier (AppEUI) value stored in a hardware security module is shown in FIG. 6, similar to FIG. 5. First, the micro control unit (MCU) may transmit a
또 다른 예를 들어, 도 8을 참조하면, 어플리케이션 키(AppKey) 값을 하드웨어 보안 모듈에 저장하는 과정을 보여주고 있다. 이 때, 마이크로 컨트롤 유닛(MCU)에서는 '0x11 0x10 AppKey(16 bytes)'의 명령어(810)를 하드웨어 보안 모듈로 보낼 수 있다. 이 때, 명령어(810)의 첫 번째 바이트에 해당하는 0x11은 어플리케이션 키(AppKey)를 저장한다는 명령을 의미할 수 있고, 두 번째 바이트에 해당하는 0x10은 전달되는 데이터가 존재하며, 크기가 16바이트임을 의미할 수 있다. 따라서, 명령어(810)를 받은 하드웨어 보안 모듈은 어플리케이션 키(AppKey) 값을 내부에 있는 플래시메모리에 저장한 뒤 저장을 완료하였음을 마이크로 컨트롤 유닛(MCU)에게 알리기 위해 '0x00 0x00'의 응답(820)을 마이크로 컨트롤 유닛에게 전달할 수 있다.For another example, referring to FIG. 8, a process of storing an AppKey value in a hardware security module is illustrated. At this time, the micro control unit (MCU) may send a
이 때, 하드웨어 보안 모듈(1420)은 마이크로 컨트롤 유닛(1410)으로부터 명령어와 함께 전달된 어플리케이션 키를 기반으로 마이크로 컨트롤 유닛(1410)으로부터 전달된 키 생성 데이터를 암호화하여 네트워크 세션 키 및 어플리케이션 세션 키를 생성하고, 네트워크 세션 키 및 어플리케이션 세션 키를 저장할 수 있다.At this time, the
이 때, 네트워크 세션 키는 LoRa MAC 명령 및 응용 프로그램 페이로드의 무결성 보호 및 암호화를 제공하는 세션 키에 상응할 수 있고, 어플리케이션 세션 키는 응용 프로그램 페이로드의 종단 간 암호화를 제공하는 세션 키에 상응할 수 있다.At this point, the network session key may correspond to a session key that provides LoRa MAC command and integrity protection and encryption of the application payload, and the application session key corresponds to a session key that provides end-to-end encryption of the application payload. can do.
예를 들어, 도 9를 참조하면, 하드웨어 보안 모듈에 저장되어 있는 어플리케이션 키(AppKey)를 이용하여 네트워크 세션 키(NwkSKey)를 생성 및 저장하는 과정을 보여주고 있다. 이 때, 마이크로 컨트롤 유닛(MCU)은 '0xA2 0x10 Data(16 bytes)'의 명령어(910)를 하드웨어 보안 모듈로 보낼 수 있다. 이 때, 명령어(910)의 첫 번째 바이트에 해당하는 0xA2은 네트워크 세션 키(NwkSKey)를 생성 및 저장하라는 명령을 의미할 수 있고, 두 번째 바이트에 해당하는 0x10은 전달되는 데이터가 존재하며, 크기가 16바이트임을 의미할 수 있다. 따라서, 명령어(910)를 받은 하드웨어 보안 모듈은 내부 플래시 메모리에 저장되어 있는 어플리케이션 키(AppKey) 값을 이용하여, 마이크로 컨트롤 유닛(MCU)으로부터 입력된 키 생성 데이터를 암호화(AES사용)하여 네트워크 세션 키(NwkSKey)를 생성할 수 있다. 이 후, 하드웨어 보안 모듈은 생성된 네트워크 세션 키(NwkSKey) 값을 내부 플래시 메모리에 저장할 수 있고, 저장을 완료하였음을 마이크로 컨트롤 유닛(MCU)에 알리기 위해 '0x00 0x00'의 응답(920)을 마이크로 컨트롤 유닛(MCU)에게 전달할 수 있다.For example, referring to FIG. 9, a process of generating and storing a network session key NwkSKey using an application key (AppKey) stored in a hardware security module is shown. At this time, the micro control unit (MCU) may send a
다른 예를 들어, 도 10을 참조하면, 하드웨어 보안 모듈에 저장되어 있는 어플리케이션 키(AppKey)를 이용하여 어플리케이션 세션 키(AppSKey)를 생성 및 저장하는 과정을 보여주고 있다. 이 때, 마이크로 컨트롤 유닛(MCU)은 '0xA3 0x10 Data(16 bytes)'의 명령어(1010)를 하드웨어 보안 모듈로 보낼 수 있다. 이 때, 명령어(1010)의 첫 번째 바이트에 해당하는 0xA3는 어플리케이션 세션 키(AppSKey)를 생성 및 저장하라는 명령을 의미할 수 있고, 두 번째 바이트에 해당하는 0x10은 전달되는 데이터가 존재하며, 크기가 16바이트임을 의미할 수 있다. 따라서, 명령어(1010)를 받은 하드웨어 보안 모듈은 내부 플래시 메모리에 저장되어 있는 어플리케이션 키(AppKey) 값을 이용하여, 마이크로 컨트롤 유닛(MCU)로부터 입력된 키 생성 데이터를 암호화(AES사용)하여 어플리케이션 세션 키(AppSKey)를 생성할 수 있다. 이 후, 하드웨어 보안 모듈은 생성된 어플리케이션 세션 키(AppSKey) 값을 내부 플래시 메모리에 저장할 수 있고, 저장을 완료하였음을 마이크로 컨트롤 유닛(MCU)에 알리기 위해 '0x00 0x00'의 응답(1020)을 마이크로 컨트롤 유닛(MCU)에게 전달할 수 있다.For another example, referring to FIG. 10, a process of generating and storing an application session key (AppSKey) using an application key (AppKey) stored in a hardware security module is shown. At this time, the micro control unit (MCU) may send a
이 때, 중요 정보는 하드웨어 보안 모듈(1420)의 플래시메모리(FLASHMEMORY)를 기반으로 저장될 수 있다. , 전원이 끊어져도 저장된 정보가 지워지지 않는 비휘발성 기억장치인 플래시메모리(Flash Memory)에 중요 정보를 저장함으로써 전원이 꺼져도 중요 정보가 사라지지 않은 채 유지되도록 할 수 있다.In this case, the important information may be stored based on the flash memory FLASHMEMORY of the
또한, 기존의 LoRa 디바이스가 중요 정보를 tamper-resistant가 가능한 장치에 보관하지 않고, 마이크로 컨트롤 유닛(MCU) 내부에 저장 관리함으로써 해킹이나 물리적 탈취의 위협에 노출되었던 문제점을 해결할 수도 있다.In addition, the existing LoRa device can solve the problem of being exposed to the threat of hacking or physical takeover by storing and managing important information inside the micro control unit (MCU) without storing important information in a tamper-resistant device.
이 때, 명령의 종류는 저장, 로딩, 키 생성 및 암호화 중 어느 하나에 상응할 수 있다.In this case, the type of command may correspond to any one of storage, loading, key generation, and encryption.
예를 들어, 도 4, 도 6 및 도 8에서 설명한 예시와 같이 마이크로 컨트롤 유닛(MCU)이 하드웨어 보안 모듈에게 데이터를 전달하면서 저장하는 경우에 전달되는 명령어들의 종류는 저장에 해당할 수 있다. For example, as illustrated in FIGS. 4, 6, and 8, when the micro control unit (MCU) stores data while transmitting data to the hardware security module, the types of instructions transmitted may correspond to storage.
다른 예를 들어, 도 5 및 도 7에서 설명한 예시와 같이 하드웨어 보안 모듈에서 마이크로 컨트롤 유닛(MCU)으로 데이터를 제공하는 경우에 전달되는 명령어들의 종류는 로딩에 해당할 수 있다. For another example, as illustrated in FIGS. 5 and 7, when the hardware security module provides data to the micro control unit (MCU), the types of instructions transmitted may correspond to loading.
또 다른 예를 들어, 도 9 및 도 10에서 설명한 예시와 같이 마이크로 컨트롤 유닛(MCU)이 키 생성 데이터를 전달하면서 네트워크 세션 키(NwkSKey) 또는 어플리케이션 세션 키(AppSKey)의 생성을 요청하는 경우에 전달되는 명령어들의 종류는 키 생성에 해당할 수 있다. 이 때, 생성된 네트워크 세션 키(NwkSKey) 또는 어플리케이션 세션 키(AppSKey)가 하드웨어 보안 모듈에 저장되므로, 이러한 경우의 명령어들의 종류는 키 생성과 동시에 저장에 상응할 수도 있다.For another example, when the micro control unit (MCU) requests generation of a network session key (NwkSKey) or an application session key (AppSKey) while transferring key generation data, as illustrated in the example described with reference to FIGS. 9 and 10. The type of commands to be generated may correspond to key generation. At this time, since the generated network session key (NwkSKey) or application session key (AppSKey) is stored in the hardware security module, the types of instructions in this case may correspond to storage at the same time as key generation.
또한, 하드웨어 보안 모듈(1420)은 로라 프로토콜에 의한 통신 데이터를 암호화할 수 있다.In addition, the
이 때, 하드웨어 보안 모듈(1420)은 네트워크 세션 키 및 어플리케이션 세션 키 중 적어도 하나를 기반으로 통신 데이터를 암호화하여 암호화된 통신 데이터를 생성하고, 암호화된 통신 데이터를 마이크로 컨트롤 유닛(1410)에게 전달할 수 있다.In this case, the
예를 들어, 도 11을 참조하면, 하드웨어 보안 모듈에 저장되어 있는 네트워크 세션 키(NwkSKey)를 이용하여 마이크로 컨트롤 유닛(MCU)으로부터 입력된 평문을 암호화한 후에 출력하는 과정을 보여주고 있다. 이 때, 마이크로 컨트롤 유닛(MCU)은 '0xAB 0x10 평문(16 bytes)'의 명령어(1110)를 하드웨어 보안 모듈로 보낼 수 있다. 이 때, 명령어(1110)의 첫 번째 바이트에 해당하는 0xAB는 네트워크 세션 키(NwkSKey)를 이용하여 입력된 평문을 암호화하는 명령을 의미할 수 있고, 두 번째 바이트에 해당하는 0x10은 전달되는 평문의 크기가 16바이트임을 의미할 수 있다. 따라서, 명령어(1110)를 받은 하드웨어 보안 모듈은 내부 플래시메모리에 저장되어 있는 네트워크 세션 키(NwkSKey) 값을 이용하여 입력된 평문을 암호화(AES사용)할 수 있다. 이 후, 암호문을 생성한 하드웨어 보안 모듈은 '0xA0 0x10 암호문(16 bytes)'의 응답(1120)을 마이크로 컨트롤 유닛(MCU)으로 전달할 수 있다. 이 때, 응답(1120)의 첫 번째 바이트에 해당하는 0xA0는 암호문 생성 명령을 정상적으로 수행했음을 의미할 수 있고, 두 번째 바이트에 해당하는 0x10은 마이크로 컨트롤 유닛(MCU)으로 전달되는 암호문의 크기가 16바이트임을 의미할 수 있다.For example, referring to FIG. 11, a process of encrypting and outputting plain text input from a micro control unit (MCU) using a network session key (NwkSKey) stored in a hardware security module is shown. At this time, the micro control unit (MCU) may send a
다른 예를 들어, 도 12를 참조하면, 하드웨어 보안 모듈에 저장되어 있는 어플리케이션 세션 키(AppSKey)를 이용하여 마이크로 컨트롤 유닛(MCU)으로부터 입력된 평문을 암호화한 후에 출력하는 과정을 보여주고 있다. 이 때, 마이크로 컨트롤 유닛(MCU)은 '0xAC 0x10 평문(16 bytes)'의 명령어(1210)를 하드웨어 보안 모듈로 보낼 수 있다. 이 때, 명령어(1210)의 첫 번째 바이트에 해당하는 0xAC는 어플리케이션 세션 키(AppSKey)를 이용하여 입력된 평문을 암호화하는 명령을 의미할 수 있고, 두 번째 바이트에 해당하는 0x10은 전달되는 평문의 크기가 16바이트임을 의미할 수 있다. 따라서, 명령어(1210)를 받은 하드웨어 보안모듈은 내부 플래시메모리에 저장되어 있는 어플리케이션 세션 키(AppSKey) 값을 이용하여 입력된 평문을 암호화(AES사용)할 수 있다. 이 후, 암호문을 생성한 하드웨어 보안 모듈은 '0xA0 0x10 암호문(16 bytes)'의 응답(1220)을 마이크로 컨트롤 유닛(MCU)으로 전달할 수 있다. 이 때, 응답(1220)의 첫 번째 바이트에 해당하는 0xA0는 암호문 생성 명령을 정상적으로 수행했음을 의미할 수 있고, 두 번째 바이트에 해당하는 0x10은 전달되는 암호문의 크기가 16바이트임을 의미할 수 있다.For another example, referring to FIG. 12, a process of encrypting and outputting plaintext input from a micro control unit (MCU) using an application session key (AppSKey) stored in a hardware security module is shown. At this time, the micro control unit (MCU) may send a
이와 같이 생성된 어플리케이션 키 및 어플리케이션 키를 기반으로 파생된 세션 키들은 하드웨어 보안 모듈에 의해 보안 및 저장됨으로써 해킹이나 물리적 탈취 등의 위협으로부터 안전하게 보호될 수 있다.The session key derived based on the application key and the application key generated in this way can be secured and stored by the hardware security module to be protected from threats such as hacking or physical takeover.
이 때, 도 11 및 도 12의 예시에서와 같이, LoRa 통신 보안은 무결성 보호를 위한 CMAC연산 및 암호화 연산에 AES 암호 알고리즘을 사용할 수 있다.In this case, as in the examples of FIGS. 11 and 12, LoRa communication security may use the AES encryption algorithm for CMAC operation and encryption operation for integrity protection.
이 때, 하드웨어 보안 모듈(1420)은 사물 인터넷 디바이스가 로라 프로토콜에 의한 통신을 수행할 때마다 통신 데이터의 암호화를 반복적으로 수행할 수 있다.In this case, the
로라 트랜시버(1430)는 디지털 신호를 RF 신호로 변환한다.The
이와 같은 로라 통신 기반의 사물 인터넷 디바이스를 이용함으로써 LoRa 엔드 디바이스에 대해 높은 보안성과 안전성을 제공함으로써 사용자들이 안심하고 다양한 LoRa 응용 서비스를 이용하는 데에 기여할 수 있다.The use of such IoT-based IoT devices can provide high security and security for LoRa end devices, helping users to use a variety of LoRa application services with confidence.
또한, LoRa 프로토콜을 수행하기 위해 필요한 어플리케이션 키 및 두 개의 세션키들을 해킹 및 물리적 탈취 층의 위협으로부터 안전하게 보호할 수 있다.In addition, the application key and two session keys required to execute the LoRa protocol can be secured from the threat of hacking and physical exploitation layer.
도 15는 본 발명의 일실시예에 따른 하드웨어 보안 모듈을 나타낸 블록도이다.15 is a block diagram illustrating a hardware security module according to an embodiment of the present invention.
도 15를 참조하면, 본 발명의 일실시예에 따른 하드웨어 보안 모듈(1500)은 로라 프로토콜에서 보호되어야 할 중요 정보를 저장 및 관리하고, 저장된 키를 이용하여 암호화를 수행하는 것을 주요 목적으로 한다. Referring to FIG. 15, the
하드웨어 보안 모듈(1500)은 크게 3개의 기능 블록으로 구성될 수 있다. 즉, 도 15에 도시된 것처럼 명령어 처리 모듈(1510), AES 암호 모듈(1520), 및 중요정보 저장 관리 모듈(1530)로 구성된다.The
명령어 처리 모듈(1510)은 사물 인터넷(IoT) 디바이스의 마이크로 컨트롤 유닛(MCU)에서 보내온 명령어를 처리하거나, 마이크로 컨트롤 유닛(MCU)으로 명령어를 보내는 기능을 담당한다. The
이 때, 하드웨어 보안 모듈(1500)과 마이크로 컨트롤 유닛(MCU)은 물리적으로 UART, I2C, SPI, USB등 다양한 통신 방식을 이용하여 연결될 수 있다.In this case, the
AES 암호 모듈(1520)은 마이크로 컨트롤 유닛(MCU)이 로라 프로토콜을 수행하는 과정에서 데이터 암호화가 필요한 경우에 암호화를 수행하는 기능을 담당한다. 즉, 마이크로 컨트롤 유닛(MCU)이 평문 데이터를 하드웨어 보안 모듈(1500)에게 전달하면, 하드웨어 보안 모듈(1500)은 내부 플래시 메모리(1540)에 저장되어 있는 네트워크 세션 키 또는 어플리케이션 세션 키를 이용하여 암호화 한 후 마이크로 컨트롤 유닛(MCU)에 회신해줄 수 있다.The
이 때, AES 암호 모듈(1520)에서 사용하는 AES 암호의 키 길이는 로라 프로토콜에 정의된 128비트 키 길이를 사용할 수 있다.At this time, the key length of the AES cipher used in the
중요정보 저장관리 모듈(1530)은 로라 프로토콜에서 필요로 하는 중요한 정보를 하드웨어 보안 모듈(1500) 내부에 있는 플래시 메모리(1540)에 저장 및 관리하는 기능을 수행한다. The important information
이 때, 플래시 메모리(1540)에 저장되어 관리되는 중요 정보는 엔드 디바이스 식별자(END-DEVICE IDENTIFIER, DevEUI), 어플리케이션 식별자(APPLICATION IDENTIFIER, AppEUI), 어플리케이션 키(APPLICATION KEY, AppKey), 네트워크 세션 키(NETWORK SEESSION KEY, NwkSKey) 및 어플리케이션 세션 키(APPLICATION SESSION KEY, AppSKey) 중 적어도 하나를 포함할 수 있다.At this time, the important information stored and managed in the
이 때, 전술한 내용은 하나의 일 예를 들어 설명한 것으로, 본 발명은 예시된 사례에 국한되지 않을 수 있다. 즉, 하드웨어 보안 모듈을 이용한 LoRa 프로토콜의 보안과 관련된 기능 수행은 다양한 시나리오로 동작할 수 있다.At this time, the above description is described as an example, the present invention may not be limited to the illustrated case. That is, the performance related to the security of the LoRa protocol using the hardware security module may operate in various scenarios.
이상에서와 같이 본 발명에 따른 로라 통신 디바이스의 통신 보안 방법 및 이를 위한 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.As described above, the communication security method of the Laura communication device and the apparatus for the same according to the present invention are not limited to the configuration and method of the embodiments described as described above, the above embodiments may be variously modified. All or part of each of the embodiments may be configured to be selectively combined so that.
310: 명령의 종류
320: 데이터의 크기
330: 데이터
410, 510, 610, 710, 810, 910, 1010, 1110, 1210: 명령어
420, 520, 620, 720, 820, 920, 1020, 1120, 1220: 응답
1310, 1410: MCU
1320, 1420, 1500: 하드웨어 보안 모듈
1330, 1430: LoRa Transceiver
1400: IoT 디바이스
1510: 명령어 처리 모듈
1520: AES 암호 모듈
1530: 중요정보 저장관리 모듈
1540: 플래시메모리310: Type of command
320: Size of data
330: data
410, 510, 610, 710, 810, 910, 1010, 1110, 1210: command
420, 520, 620, 720, 820, 920, 1020, 1120, 1220: response
1310, 1410: MCU
1320, 1420, 1500: hardware security module
1330, 1430: LoRa Transceiver
1400: IoT devices
1510: instruction processing module
1520: AES cryptographic module
1530: important information storage management module
1540 flash memory
Claims (16)
마이크로 컨트롤 유닛(MICRO CONTROL UNIT, MCU)에 의한 명령어를 기반으로 로라(LORA) 프로토콜에 필요한 중요 정보를 하드웨어 보안 모듈에 저장하는 단계; 및
상기 하드웨어 보안 모듈을 기반으로 상기 로라 프로토콜에 의한 통신 데이터를 암호화하는 단계
를 포함하는 것을 특징으로 하는 로라 통신 디바이스의 통신 보안 방법.Internet of Things (IoT) devices based on LONH RANGE (LORA) communication,
Storing important information necessary for the LORA protocol in a hardware security module based on an instruction by a microcontrol unit (MICRO CONTROL UNIT, MCU); And
Encrypting communication data by the Laura protocol based on the hardware security module
Communication security method of a Laura communication device comprising a.
상기 중요 정보는
엔드 디바이스 식별자(END-DEVICE IDENTIFIER, DevEUI), 어플리케이션 식별자(APPLICATION IDENTIFIER, AppEUI), 어플리케이션 키(APPLICATION KEY, AppKey), 네트워크 세션 키(NETWORK SEESSION KEY, NwkSKey) 및 어플리케이션 세션 키(APPLICATION SESSION KEY, AppSKey) 중 적어도 하나를 포함하는 것을 특징으로 하는 로라 통신 디바이스의 통신 보안 방법.The method according to claim 1,
The important information above
End Device Identifier (END-DEVICE IDENTIFIER, DevEUI), Application Identifier (APPLICATION IDENTIFIER, AppEUI), Application Key (APPLICATION KEY, AppKey), Network Session Key (NETWORK SEESSION KEY, NwkSKey) and Application Session Key (APPLICATION SESSION KEY, AppSKey And at least one of the following methods.
상기 암호화하는 단계는
상기 하드웨어 보안 모듈이, 상기 네트워크 세션 키 및 상기 어플리케이션 세션 키 중 적어도 하나를 기반으로 상기 통신 데이터를 암호화하여 암호화된 통신 데이터를 생성하는 단계; 및
상기 하드웨어 보안 모듈이, 상기 암호화된 통신 데이터를 상기 마이크로 컨트롤 유닛에게 전달하는 단계를 포함하는 것을 특징으로 하는 로라 통신 디바이스의 통신 보안 방법.The method according to claim 2,
The encrypting step
Generating, by the hardware security module, encrypted communication data by encrypting the communication data based on at least one of the network session key and the application session key; And
And delivering, by the hardware security module, the encrypted communication data to the micro control unit.
상기 저장하는 단계는
상기 마이크로 컨트롤 유닛이, 상기 명령어와 함께 상기 어플리케이션 키를 상기 하드웨어 보안 모듈로 전달하는 단계; 및
상기 하드웨어 보안 모듈이, 상기 마이크로 컨트롤 유닛으로부터 전달된 키 생성 데이터를 상기 어플리케이션 키로 암호화하여 상기 네트워크 세션 키 및 상기 어플리케이션 세션 키를 생성하고, 상기 네트워크 세션 키 및 상기 어플리케이션 세션 키를 저장하는 단계를 포함하는 것을 특징으로 하는 로라 통신 디바이스의 통신 보안 방법.The method according to claim 3,
The storing step
Sending, by the micro control unit, the application key with the command to the hardware security module; And
Encrypting, by the hardware security module, key generation data transmitted from the micro control unit with the application key to generate the network session key and the application session key, and storing the network session key and the application session key. And a communication security method for a Laura communication device.
상기 암호화하는 단계는
상기 사물 인터넷 디바이스가 상기 로라 프로토콜에 의한 통신을 수행할 때마다 상기 통신 데이터의 암호화를 반복적으로 수행하는 것을 특징으로 하는 로라 통신 디바이스의 통신 보안 방법.The method according to claim 1,
The encrypting step
And encrypting the communication data repeatedly whenever the IoT device performs communication by the Laura protocol.
상기 명령어는
수행할 명령의 종류, 상기 명령어에 포함될 데이터의 크기 및 상기 명령의 종류에 상응하는 데이터를 포함하는 형태인 것을 특징으로 하는 로라 통신 디바이스의 통신 보안 방법.The method according to claim 1,
The command is
And a type of a command to be executed, a size of data to be included in the command, and data corresponding to the type of the command.
상기 명령의 종류는 저장, 로딩, 키 생성 및 암호화 중 어느 하나에 상응하는 것을 특징으로 하는 로라 통신 디바이스의 통신 보안 방법.The method according to claim 6,
And the type of command corresponds to any one of storage, loading, key generation, and encryption.
상기 중요 정보는
상기 하드웨어 보안 모듈의 플래시메모리(FLASHMEMORY)를 기반으로 저장되는 것을 특징으로 하는 로라 통신 디바이스의 통신 보안 방법.The method according to claim 2,
The important information above
And storing based on a flash memory (FLASHMEMORY) of the hardware security module.
상기 마이크로 컨트롤 유닛에 의한 명령어를 기반으로 로라(LORA) 프로토콜에 필요한 중요 정보를 저장하고, 상기 로라 프로토콜에 의한 통신 데이터를 암호화하는 하드웨어 보안 모듈; 및
디지털 신호를 RF 신호로 변환하는 로라 트랜시버(LORA TRANSCEIVER)
를 포함하는 것을 특징으로 하는 로라 통신 기반의 사물 인터넷(IoT) 디바이스.A micro control unit (MICRO CONTROL UNIT, MCU) that performs processing for applications and Laura protocols;
A hardware security module that stores important information required for a LARA protocol based on an instruction by the micro control unit, and encrypts communication data according to the LARA protocol; And
LORA TRANSCEIVER Converts Digital Signals to RF Signals
Laura communication-based Internet of Things (IoT) device comprising a.
상기 중요 정보는
엔드 디바이스 식별자(END-DEVICE IDENTIFIER, DevEUI), 어플리케이션 식별자(APPLICATION IDENTIFIER, AppEUI), 어플리케이션 키(APPLICATION KEY, AppKey), 네트워크 세션 키(NETWORK SEESSION KEY, NwkSKey) 및 어플리케이션 세션 키(APPLICATION SESSION KEY, AppSKey) 중 적어도 하나를 포함하는 것을 특징으로 하는 로라 통신 기반의 사물 인터넷(IoT) 디바이스.The method according to claim 9,
The important information above
End Device Identifier (END-DEVICE IDENTIFIER, DevEUI), Application Identifier (APPLICATION IDENTIFIER, AppEUI), Application Key (APPLICATION KEY, AppKey), Network Session Key (NETWORK SEESSION KEY, NwkSKey) and Application Session Key (APPLICATION SESSION KEY, AppSKey Laura communication-based Internet of Things (IoT) device, characterized in that it comprises at least one.
상기 하드웨어 보안 모듈은
상기 네트워크 세션 키 및 상기 어플리케이션 세션 키 중 적어도 하나를 기반으로 상기 통신 데이터를 암호화하여 암호화된 통신 데이터를 생성하고, 상기 암호화된 통신 데이터를 상기 마이크로 컨트롤 유닛에게 전달하는 것을 특징으로 하는 로라 통신 기반의 사물 인터넷(IoT) 디바이스.The method according to claim 10,
The hardware security module
And encrypting the communication data based on at least one of the network session key and the application session key to generate encrypted communication data, and transmitting the encrypted communication data to the micro control unit. Internet of Things (IoT) devices.
상기 하드웨어 보안 모듈은
상기 마이크로 컨트롤 유닛으로부터 상기 명령어와 함께 전달된 상기 어플리케이션 키를 기반으로 상기 마이크로 컨트롤 유닛으로부터 전달된 키 생성 데이터를 암호화하여 상기 네트워크 세션 키 및 상기 어플리케이션 세션 키를 생성하고, 상기 네트워크 세션 키 및 상기 어플리케이션 세션 키를 저장하는 것을 특징으로 하는 로라 통신 기반의 사물 인터넷(IoT) 디바이스.The method according to claim 11,
The hardware security module
Encrypting the key generation data transmitted from the micro control unit based on the application key delivered with the command from the micro control unit to generate the network session key and the application session key, and the network session key and the application Laura communication-based Internet of Things (IoT) device, characterized in that for storing a session key.
상기 하드웨어 보안 모듈은
상기 사물 인터넷 디바이스가 상기 로라 프로토콜에 의한 통신을 수행할 때마다 상기 통신 데이터의 암호화를 반복적으로 수행하는 것을 특징으로 하는 로라 통신 기반의 사물 인터넷(IoT) 디바이스.The method according to claim 9,
The hardware security module
An IoT device based on a Laura communication, wherein the IoT device repeatedly encrypts the communication data whenever the IoT device communicates using the Laura protocol.
상기 명령어는
수행할 명령의 종류, 상기 명령어에 포함될 데이터의 크기 및 상기 명령의 종류에 상응하는 데이터를 포함하는 형태인 것을 특징으로 하는 로라 통신 기반의 사물 인터넷(IoT) 디바이스.The method according to claim 9,
The command is
The type of the command to be performed, the size of the data to be included in the command, and the data including the data corresponding to the type of the command characterized in that the Internet of Things (IoT) based IoT device.
상기 명령의 종류는 저장, 로딩, 키 생성 및 암호화 중 어느 하나에 상응하는 것을 특징으로 하는 로라 통신 기반의 사물 인터넷(IoT) 디바이스.The method according to claim 14,
The type of command corresponds to any one of storage, loading, key generation, and encryption.
상기 중요 정보는
상기 하드웨어 보안 모듈의 플래시메모리(FLASHMEMORY)를 기반으로 저장되는 것을 특징으로 하는 로라 통신 기반의 사물 인터넷(IoT) 디바이스.The method according to claim 10,
The important information above
Laura communication-based Internet of Things (IoT) device, characterized in that the storage is stored based on the flash memory (FLASHMEMORY) of the hardware security module.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180054383A KR20190134914A (en) | 2018-05-11 | 2018-05-11 | Communication security method for lora communication device and apparatus using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180054383A KR20190134914A (en) | 2018-05-11 | 2018-05-11 | Communication security method for lora communication device and apparatus using the same |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20190134914A true KR20190134914A (en) | 2019-12-05 |
Family
ID=69002268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180054383A KR20190134914A (en) | 2018-05-11 | 2018-05-11 | Communication security method for lora communication device and apparatus using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20190134914A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112866997A (en) * | 2020-12-31 | 2021-05-28 | 安徽能测能控科技有限公司 | Wireless communication method and system based on LoRa |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101767889B1 (en) | 2016-02-25 | 2017-08-14 | 에스케이텔레콤 주식회사 | Method of identifying terminal and apparatus thereof |
-
2018
- 2018-05-11 KR KR1020180054383A patent/KR20190134914A/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101767889B1 (en) | 2016-02-25 | 2017-08-14 | 에스케이텔레콤 주식회사 | Method of identifying terminal and apparatus thereof |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112866997A (en) * | 2020-12-31 | 2021-05-28 | 安徽能测能控科技有限公司 | Wireless communication method and system based on LoRa |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11438176B2 (en) | Mutually authenticated ECDHE key exchange for a device and a network using multiple PKI key pairs | |
KR101894232B1 (en) | Method and apparatus for cloud-assisted cryptography | |
US9219709B2 (en) | Multi-wrapped virtual private network | |
US20030233573A1 (en) | System and method for securing network communications | |
US20130332724A1 (en) | User-Space Enabled Virtual Private Network | |
JP2017534204A (en) | User plane security for next generation cellular networks | |
CN109218263A (en) | A kind of control method and device | |
US11804972B2 (en) | Fluid meter communicating with an electromechanical valve | |
JP2022513134A (en) | Ensuring secure attachments in size-limited authentication protocols | |
KR101611944B1 (en) | Method for selectively applying data encryption | |
CN113676898A (en) | Method, system and device for determining safety protection | |
CN111181944A (en) | Communication system, information distribution method, device, medium, and apparatus | |
CN112069535B (en) | Dual-system safety intelligent terminal architecture based on access partition physical isolation | |
Jeon et al. | Implementation of a LoRaWAN protocol processing module on an embedded device using Secure Element | |
KR20190134914A (en) | Communication security method for lora communication device and apparatus using the same | |
CN108833612B (en) | Local area network equipment communication method based on ARP protocol | |
KR20190040772A (en) | Apparatus for storing device data in internet of things environment and method for the same | |
KR20190135185A (en) | APPARATUS AND METHOD FOR VERIFYING INTEGRITY OF EXECUTION CODE OF LoRa COMMUNICATION DEVICE | |
US11363455B2 (en) | Near field communication forum data exchange format (NDEF) messages with authenticated encryption | |
Urien | An Innovative Four-Quarter IoT Secure Architecture Based on Secure Element | |
US11032250B2 (en) | Protective apparatus and network cabling apparatus for the protected transmission of data | |
CN111125801A (en) | USB-based automatic switching one-way remote file transmission method and device | |
EP3662640B1 (en) | Data communication with devices having no direct access or only restricted access to communication networks | |
Teaca | Design of an encryption protocol for BLE advertising traffic | |
CN111770099B (en) | Data transmission method and device, electronic equipment and computer readable medium |