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 PDF

Info

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
Application number
KR1020180054383A
Other languages
Korean (ko)
Inventor
전용성
윤승용
주홍일
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020180054383A priority Critical patent/KR20190134914A/en
Publication of KR20190134914A publication Critical patent/KR20190134914A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing 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

Disclosed are a communication security method of a long range (LoRa) communication device and an apparatus therefor. According to an embodiment of the present invention, the communication security method of a LoRa communication device comprises the steps of: storing, by a LoRa communication-based IoT device, important information necessary for a LoRa protocol in a hardware security module based on an instruction by a micro-control unit (MCU); and encrypting communication data by the LoRa protocol based on the hardware security module.

Description

로라 통신 디바이스의 통신 보안 방법 및 이를 위한 장치 {COMMUNICATION SECURITY METHOD FOR LORA COMMUNICATION DEVICE AND APPARATUS USING THE SAME}Communication security method of Laura communication device and apparatus therefor {COMMUNICATION SECURITY METHOD FOR LORA COMMUNICATION DEVICE AND APPARATUS USING THE SAME}

본 발명은 로라(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.

한국 등록 특허 제10-1767889호, 2017년 8월 14일 공고(명칭: 단말 식별 방법 및 이를 위한 장치)Korean Registered Patent No. 10-1767889, issued August 14, 2017 (Name: terminal identification method and apparatus therefor)

본 발명의 목적은 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 type 310 or the command corresponding to the function provided by the hardware security module in the first byte as shown in FIG. 3. In addition, the size of the data 320 may be defined in the second byte, and the data 330 may be included in the third byte. That is, if it is assumed that the second byte of the instruction is '2', it may mean that the third byte exists and the data 330 exists in the third byte. If it is assumed that the second byte is '0', it means that there is no data after the second byte and the instruction ends with the second byte.

이 때, 중요 정보는 엔드 디바이스 식별자(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 command 410 of '0x01 0x08 DevEUI (8 bytes)' to the hardware security module. In this case, 0x01 corresponding to the first byte in the command 410 may mean a command for storing an end device identifier (DevEUI), and 0x08 corresponding to the second byte has data to be transferred and has a size of 8 It can mean a byte. Therefore, the hardware security module receiving the command 410 stores the End Device Identifier (DevEUI) value in the internal flash memory and then responds with a response of '0x00 0x00' to notify the micro control unit (MCU) that the storage is completed. 420 may be delivered to the micro control unit.

다른 예를 들어, 도 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 command 510 of '0x01 0x00' to the hardware security module. In this case, 0x01 corresponding to the first byte in the command 510 may mean a command for reading an end device identifier DevEUI, and 0x00 corresponding to the second byte may mean that no data is transmitted. At this time, since the second byte of the instruction 510 is 0x00, it may mean that the first byte of the instruction 510 is a read command. After that, the hardware security module receiving the command 510 reads the end device identifier (DevEUI) value stored in the internal flash memory, and then returns a response 520 of '0x00 0x08 DevEUI (8 bytes)' to the micro control unit. To the MCU. At this time, 0x00 corresponding to the first byte of the response 520 may mean that the command for reading the end device identifier (DevEUI) has been normally performed, and 0x08 corresponding to the second byte indicates that 8 bytes of data are transmitted. Can mean.

또 다른 예를 들어, 도 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 command 610 of '0x02 0x08 AppEUI (8 bytes)' to the hardware security module. In this case, 0x02 corresponding to the first byte in the command 610 may mean a command for storing an application identifier (AppEUI), and 0x08 corresponding to the second byte has data to be transferred and has 8 bytes in size. May mean. Accordingly, the hardware security module receiving the command 610 stores the application identifier (AppEUI) value in the flash memory therein and then responds with a response of '0x00 0x00' to the micro control unit (MCU). ) Can be transferred to the micro control unit.

또한, 도 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 command 710 of '0x02 0x00' to the hardware security module. At this time, 0x02 corresponding to the first byte of the command 710 may mean a command for reading an application identifier (AppEUI), and 0x00 corresponding to the second byte may mean that no data is transmitted. In this case, too, since 0x00 corresponding to the second byte, it may mean that the first byte corresponds to a read command. Thereafter, the hardware security module receiving the command 710 reads the application identifier (AppEUI) value stored in the internal flash memory, and then returns a response 720 of '0x00 0x08 AppEUI (8 bytes)' to the micro control unit ( To the MCU). At this time, 0x00 corresponding to the first byte of the response 720 may mean that a command for reading an application identifier (AppEUI) has been normally executed, and 0x08 corresponding to the second byte means that data to be transmitted is 8 bytes. can do.

또 다른 예를 들어, 도 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 command 810 of '0x11 0x10 AppKey (16 bytes)' to the hardware security module. At this time, 0x11 corresponding to the first byte of the instruction 810 may mean a command for storing an application key (AppKey), and 0x10 corresponding to the second byte has data to be transferred and has a size of 16 bytes. May mean. Accordingly, the hardware security module receiving the command 810 stores the application key value in the flash memory therein and then responds with a response of '0x00 0x00' to the micro control unit (MCU). ) Can be transferred to the micro control unit.

이 때, 하드웨어 보안 모듈이 마이크로 컨트롤 유닛으로부터 전달된 키 생성 데이터를 어플리케이션 키로 암호화하여 네트워크 세션 키 및 어플리케이션 세션 키를 생성하고, 네트워크 세션 키 및 어플리케이션 세션 키를 저장할 수 있다. 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 command 910 of '0xA2 0x10 Data (16 bytes)' to the hardware security module. At this time, 0xA2 corresponding to the first byte of the instruction 910 may mean a command for generating and storing a network session key (NwkSKey), and 0x10 corresponding to the second byte has data to be delivered and has a size. May mean that 16 bytes. Therefore, the hardware security module receiving the command 910 encrypts the key generation data input from the micro control unit (MCU) using an application key value stored in the internal flash memory (using AES) for a network session. You can create a key (NwkSKey). Thereafter, the hardware security module may store the generated Network Session Key (NwkSKey) value in the internal flash memory, and store the response 920 of '0x00 0x00' in order to notify the micro control unit (MCU) that the saving is completed. To the control unit (MCU).

다른 예를 들어, 도 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 command 1010 of '0xA3 0x10 Data (16 bytes)' to the hardware security module. At this time, 0xA3 corresponding to the first byte of the command 1010 may mean a command for generating and storing an application session key (AppSKey), and 0x10 corresponding to the second byte has data to be delivered and has a size. May mean that 16 bytes. Accordingly, the hardware security module receiving the command 1010 encrypts the key generation data input from the micro control unit (MCU) using an application key value stored in the internal flash memory (using AES), thereby executing an application session. You can create a key (AppSKey). Thereafter, the hardware security module may store the generated application session key (AppSKey) value in the internal flash memory, and store the response 1020 of '0x00 0x00' to the micro control unit (MCU) to indicate that the storing is completed. To the control unit (MCU).

이 때, 중요 정보는 하드웨어 보안 모듈의 플래시메모리(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 command 1110 of '0xAB 0x10 plain text (16 bytes)' to the hardware security module. At this time, 0xAB corresponding to the first byte of the command 1110 may mean a command for encrypting the plain text input using the network session key (NwkSKey), and 0x10 corresponding to the second byte indicates the plain text to be transmitted. It may mean that the size is 16 bytes. Therefore, the hardware security module receiving the command 1110 may encrypt (use AES) the input plain text using the network session key (NwkSKey) value stored in the internal flash memory. Thereafter, the hardware security module that generates the cipher text may transmit a response 1120 of '0xA0 0x10 cipher text (16 bytes)' to the micro control unit (MCU). At this time, 0xA0 corresponding to the first byte of the response 1120 may mean that the ciphertext generation command has been normally executed, and 0x10 corresponding to the second byte indicates the size of the ciphertext transmitted to the micro control unit (MCU). It can mean a byte.

다른 예를 들어, 도 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 command 1210 of '0xAC 0x10 plain text (16 bytes)' to the hardware security module. In this case, 0xAC corresponding to the first byte of the command 1210 may mean a command for encrypting the plain text input by using an application session key (AppSKey), and 0x10 corresponding to the second byte corresponds to the transmitted plaintext. It may mean that the size is 16 bytes. Accordingly, the hardware security module receiving the command 1210 may encrypt the input plain text (using AES) using an application session key value stored in the internal flash memory. Thereafter, the hardware security module that generates the cipher text may transmit a response 1220 of '0xA0 0x10 cipher text (16 bytes)' to the micro control unit (MCU). At this time, 0xA0 corresponding to the first byte of the response 1220 may mean that the ciphertext generation command is normally performed, and 0x10 corresponding to the second byte may mean that the size of the transmitted ciphertext is 16 bytes.

이와 같이 생성된 어플리케이션 키 및 어플리케이션 키를 기반으로 파생된 세션 키들은 하드웨어 보안 모듈에 의해 보안 및 저장됨으로써 해킹이나 물리적 탈취 등의 위협으로부터 안전하게 보호될 수 있다.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 hardware security module 1320. It can be commanded (S1302).

이 때, MCU(1310)는 중요 정보와 함께 중요 정보를 저장하도록 명령하는 명령어를 함께 전달할 수 있다.In this case, the MCU 1310 may transmit a command for instructing to store the important information together with the important information.

이 때, 명령어는 수행할 명령의 종류, 명령어에 포함될 데이터의 크기 및 명령의 종류에 상응하는 데이터를 포함하는 형태일 수 있다.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 may instruct the generation of the network session key or the application session key while transferring the key generation data to the hardware security module 1320 (S1304).

이 때, MCU(1310)는 키 생성 데이터와 함께 네트워크 세션 키 또는 어플리케이션 세션 키의 생성을 명령하는 명령어를 함께 전달할 수 있다.In this case, the MCU 1310 may transmit a command for generating a network session key or an application session key together with the key generation data.

이 후, 하드웨어 보안 모듈(1320)이 내부 플래시 메모리에 저장된 어플리케이션 키를 이용하여 네트워크 세션 키 또는 어플리케이션 세션 키를 생성할 수 있다(S1306).Thereafter, the hardware security module 1320 may generate a network session key or an application session key using the application key stored in the internal flash memory (S1306).

이 때, 어플리케이션 키 값으로 키 생성 데이터를 암호화함으로써 네트워크 세션 키 또는 어플리케이션 세션 키를 생성할 수 있다.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 transmits communication data for LoRa communication to the hardware security module 1320 (S1308), the hardware security module 1320 corresponds to the communication data based on the network session key or the application session key. Plain text can be encrypted (S1310).

이 때, MCU(1310)는 통신 데이터와 함께 통신 데이터의 암호화를 명령하는 명령어를 함께 전달할 수 있다.In this case, the MCU 1310 may transmit a command for instructing encryption of the communication data together with the communication data.

이 후, 하드웨어 보안 모듈(1320)이 암호화된 통신 데이터를 MCU(1310)로 전달하면(S1312), MCU(1310)는 암호화된 통신 데이터를 로라 트랜시버(LoRa Transceiver)(1330)로 전달해(S1314) RF 신호 변환을 수행함으로써(S1316) LoRa 프로토콜 기반의 보안 통신을 수행할 수 있다. Thereafter, when the hardware security module 1320 transmits the encrypted communication data to the MCU 1310 (S1312), the MCU 1310 transmits the encrypted communication data to the LoRa Transceiver 1330 (S1314). By performing RF signal conversion (S1316), secure communication based on LoRa protocol may be performed.

도 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 hardware security module 1420, and a LORA TRANSCEIVER. 1430.

마이크로 컨트롤 유닛(1410)은 응용 프로그램 및 로라 프로토콜에 대한 처리를 수행한다. The micro control unit 1410 performs processing for the application program and the Laura protocol.

하드웨어 보안 모듈(1420)은 마이크로 컨트롤 유닛(1410)에 의한 명령어를 기반으로 로라 프로토콜에 필요한 중요 정보를 저장하고, 로라 프로토콜에 의한 통신 데이터를 암호화한다.The hardware security module 1420 stores important information necessary for the Laura protocol based on an instruction by the micro control unit 1410, and encrypts communication data by the Laura protocol.

먼저, 하드웨어 보안 모듈(1420)은 마이크로 컨트롤 유닛(1410)에 의한 명령어를 기반으로 로라 프로토콜에 필요한 중요 정보를 저장한다.First, the hardware security module 1420 stores important information required for the Laura protocol based on an instruction by the micro control unit 1410.

본 발명은 사물 인터넷(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 hardware security module 1420.

이 때, 로라 프로토콜을 처리하는 과정에서 하드웨어 보안 모듈(1420)의 기능이 필요한 경우, IoT 디바이스의 마이크로 컨트롤 유닛(1410)이 각각의 기능에 따른 명령어를 하드웨어 보안 모듈로 전달함으로써 필요한 기능을 처리할 수 있다.In this case, when the function of the hardware security module 1420 is required in the process of processing the Laura protocol, the microcontrol unit 1410 of the IoT device may transmit a command corresponding to each function to the hardware security module to process the required function. Can be.

이 때, 명령어는 수행할 명령의 종류, 명령어에 포함될 데이터의 크기 및 명령의 종류에 상응하는 데이터를 포함하는 형태일 수 있다.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 type 310 or the command corresponding to the function provided by the hardware security module in the first byte as shown in FIG. 3. In addition, the size of the data 320 may be defined in the second byte, and the data 330 may be included in the third byte. That is, if it is assumed that the second byte of the instruction is 2, it may mean that the third byte exists and the data 330 exists in the third byte. If it is assumed that the second byte is 0, it means that there is no data after the second byte and the instruction ends with the second byte.

이 때, 중요 정보는 엔드 디바이스 식별자(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 command 410 of '0x01 0x08 DevEUI (8 bytes)' to the hardware security module. In this case, 0x01 corresponding to the first byte in the command 410 may mean a command for storing an end device identifier (DevEUI), and 0x08 corresponding to the second byte has data to be transferred and has a size of 8 It can mean a byte. Therefore, the hardware security module receiving the command 410 stores the End Device Identifier (DevEUI) value in the internal flash memory and then responds with a response of '0x00 0x00' to notify the micro control unit (MCU) that the storage is completed. 420 may be delivered to the micro control unit.

다른 예를 들어, 도 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 command 510 of '0x01 0x00' to the hardware security module. In this case, 0x01 corresponding to the first byte in the command 510 may mean a command for reading an end device identifier DevEUI, and 0x00 corresponding to the second byte may mean that no data is transmitted. At this time, since the second byte of the instruction 510 is 0x00, it may mean that the first byte of the instruction 510 is a read command. After that, the hardware security module receiving the command 510 reads the end device identifier (DevEUI) value stored in the internal flash memory, and then returns a response 520 of '0x00 0x08 DevEUI (8 bytes)' to the micro control unit. To the MCU. At this time, 0x00 corresponding to the first byte of the response 520 may mean that the command for reading the end device identifier (DevEUI) has been normally performed, and 0x08 corresponding to the second byte indicates that 8 bytes of data are transmitted. Can mean.

또 다른 예를 들어, 도 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 command 610 of '0x02 0x08 AppEUI (8 bytes)' to the hardware security module. In this case, 0x02 corresponding to the first byte in the command 610 may mean a command for storing an application identifier (AppEUI), and 0x08 corresponding to the second byte has data to be transferred and has 8 bytes in size. May mean. Accordingly, the hardware security module receiving the command 610 stores the application identifier (AppEUI) value in the flash memory therein and then responds with a response of '0x00 0x00' to the micro control unit (MCU). ) Can be transferred to the micro control unit.

또한, 도 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 command 710 of '0x02 0x00' to the hardware security module. At this time, 0x02 corresponding to the first byte of the command 710 may mean a command for reading an application identifier (AppEUI), and 0x00 corresponding to the second byte may mean that no data is transmitted. In this case, too, since 0x00 corresponding to the second byte, it may mean that the first byte corresponds to a read command. Thereafter, the hardware security module receiving the command 710 reads the application identifier (AppEUI) value stored in the internal flash memory, and then returns a response 720 of '0x00 0x08 AppEUI (8 bytes)' to the micro control unit ( To the MCU). At this time, 0x00 corresponding to the first byte of the response 720 may mean that a command for reading an application identifier (AppEUI) has been normally executed, and 0x08 corresponding to the second byte means that data to be transmitted is 8 bytes. can do.

또 다른 예를 들어, 도 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 command 810 of '0x11 0x10 AppKey (16 bytes)' to the hardware security module. At this time, 0x11 corresponding to the first byte of the instruction 810 may mean a command for storing an application key (AppKey), and 0x10 corresponding to the second byte has data to be transferred and has a size of 16 bytes. May mean. Accordingly, the hardware security module receiving the command 810 stores the application key value in the flash memory therein and then responds with a response of '0x00 0x00' to the micro control unit (MCU). ) Can be transferred to the micro control unit.

이 때, 하드웨어 보안 모듈(1420)은 마이크로 컨트롤 유닛(1410)으로부터 명령어와 함께 전달된 어플리케이션 키를 기반으로 마이크로 컨트롤 유닛(1410)으로부터 전달된 키 생성 데이터를 암호화하여 네트워크 세션 키 및 어플리케이션 세션 키를 생성하고, 네트워크 세션 키 및 어플리케이션 세션 키를 저장할 수 있다.At this time, the hardware security module 1420 encrypts the key generation data transmitted from the micro control unit 1410 based on the application key transmitted with the instruction from the micro control unit 1410 to convert the network session key and the application session key. It can generate and store network session key and 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 command 910 of '0xA2 0x10 Data (16 bytes)' to the hardware security module. At this time, 0xA2 corresponding to the first byte of the instruction 910 may mean a command for generating and storing a network session key (NwkSKey), and 0x10 corresponding to the second byte has data to be delivered and has a size. May mean that 16 bytes. Therefore, the hardware security module receiving the command 910 encrypts the key generation data input from the micro control unit (MCU) using an application key value stored in the internal flash memory (using AES) for a network session. You can create a key (NwkSKey). Thereafter, the hardware security module may store the generated Network Session Key (NwkSKey) value in the internal flash memory, and store the response 920 of '0x00 0x00' in order to notify the micro control unit (MCU) that the saving is completed. To the control unit (MCU).

다른 예를 들어, 도 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 command 1010 of '0xA3 0x10 Data (16 bytes)' to the hardware security module. At this time, 0xA3 corresponding to the first byte of the command 1010 may mean a command for generating and storing an application session key (AppSKey), and 0x10 corresponding to the second byte has data to be delivered and has a size. May mean that 16 bytes. Accordingly, the hardware security module receiving the command 1010 encrypts the key generation data input from the micro control unit (MCU) using an application key value stored in the internal flash memory (using AES), thereby executing an application session. You can create a key (AppSKey). Thereafter, the hardware security module may store the generated application session key (AppSKey) value in the internal flash memory, and store the response 1020 of '0x00 0x00' to the micro control unit (MCU) to indicate that the storing is completed. To the control unit (MCU).

이 때, 중요 정보는 하드웨어 보안 모듈(1420)의 플래시메모리(FLASHMEMORY)를 기반으로 저장될 수 있다. , 전원이 끊어져도 저장된 정보가 지워지지 않는 비휘발성 기억장치인 플래시메모리(Flash Memory)에 중요 정보를 저장함으로써 전원이 꺼져도 중요 정보가 사라지지 않은 채 유지되도록 할 수 있다.In this case, the important information may be stored based on the flash memory FLASHMEMORY of the hardware security module 1420. In addition, by storing important information in a flash memory, which 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.

또한, 하드웨어 보안 모듈(1420)은 로라 프로토콜에 의한 통신 데이터를 암호화할 수 있다.In addition, the hardware security module 1420 may encrypt communication data using a Laura protocol.

이 때, 하드웨어 보안 모듈(1420)은 네트워크 세션 키 및 어플리케이션 세션 키 중 적어도 하나를 기반으로 통신 데이터를 암호화하여 암호화된 통신 데이터를 생성하고, 암호화된 통신 데이터를 마이크로 컨트롤 유닛(1410)에게 전달할 수 있다.In this case, the hardware security module 1420 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 1410. have.

예를 들어, 도 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 command 1110 of '0xAB 0x10 plain text (16 bytes)' to the hardware security module. At this time, 0xAB corresponding to the first byte of the command 1110 may mean a command for encrypting the plain text input using the network session key (NwkSKey), and 0x10 corresponding to the second byte indicates the plain text to be transmitted. It may mean that the size is 16 bytes. Therefore, the hardware security module receiving the command 1110 may encrypt (use AES) the input plain text using the network session key (NwkSKey) value stored in the internal flash memory. Thereafter, the hardware security module that generates the cipher text may transmit a response 1120 of '0xA0 0x10 cipher text (16 bytes)' to the micro control unit (MCU). At this time, 0xA0 corresponding to the first byte of the response 1120 may mean that the ciphertext generation command has been normally executed, and 0x10 corresponding to the second byte indicates the size of the ciphertext transmitted to the micro control unit (MCU). It can mean a byte.

다른 예를 들어, 도 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 command 1210 of '0xAC 0x10 plain text (16 bytes)' to the hardware security module. In this case, 0xAC corresponding to the first byte of the command 1210 may mean a command for encrypting the plain text input by using an application session key (AppSKey), and 0x10 corresponding to the second byte corresponds to the transmitted plaintext. It may mean that the size is 16 bytes. Accordingly, the hardware security module receiving the command 1210 may encrypt the input plain text (using AES) using an application session key value stored in the internal flash memory. Thereafter, the hardware security module that generates the cipher text may transmit a response 1220 of '0xA0 0x10 cipher text (16 bytes)' to the micro control unit (MCU). At this time, 0xA0 corresponding to the first byte of the response 1220 may mean that the ciphertext generation command is normally performed, and 0x10 corresponding to the second byte may mean that the size of the transmitted ciphertext is 16 bytes.

이와 같이 생성된 어플리케이션 키 및 어플리케이션 키를 기반으로 파생된 세션 키들은 하드웨어 보안 모듈에 의해 보안 및 저장됨으로써 해킹이나 물리적 탈취 등의 위협으로부터 안전하게 보호될 수 있다.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 hardware security module 1420 may repeatedly encrypt the communication data whenever the IoT apparatus performs communication using the Laura protocol.

로라 트랜시버(1430)는 디지털 신호를 RF 신호로 변환한다.The Laura transceiver 1430 converts the digital signal into an RF signal.

이와 같은 로라 통신 기반의 사물 인터넷 디바이스를 이용함으로써 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 hardware security module 1500 according to an embodiment of the present invention mainly stores and manages important information to be protected in the Laura protocol, and performs encryption using the stored key.

하드웨어 보안 모듈(1500)은 크게 3개의 기능 블록으로 구성될 수 있다. 즉, 도 15에 도시된 것처럼 명령어 처리 모듈(1510), AES 암호 모듈(1520), 및 중요정보 저장 관리 모듈(1530)로 구성된다.The hardware security module 1500 may be composed of three functional blocks. That is, as shown in FIG. 15, the command processing module 1510, the AES encryption module 1520, and the important information storage management module 1530 are configured.

명령어 처리 모듈(1510)은 사물 인터넷(IoT) 디바이스의 마이크로 컨트롤 유닛(MCU)에서 보내온 명령어를 처리하거나, 마이크로 컨트롤 유닛(MCU)으로 명령어를 보내는 기능을 담당한다. The command processing module 1510 is responsible for processing a command sent from a micro control unit (MCU) of the Internet of Things (IoT) device or sending a command to the micro control unit (MCU).

이 때, 하드웨어 보안 모듈(1500)과 마이크로 컨트롤 유닛(MCU)은 물리적으로 UART, I2C, SPI, USB등 다양한 통신 방식을 이용하여 연결될 수 있다.In this case, the hardware security module 1500 and the micro control unit (MCU) may be physically connected using various communication methods such as UART, I2C, SPI, and USB.

AES 암호 모듈(1520)은 마이크로 컨트롤 유닛(MCU)이 로라 프로토콜을 수행하는 과정에서 데이터 암호화가 필요한 경우에 암호화를 수행하는 기능을 담당한다. 즉, 마이크로 컨트롤 유닛(MCU)이 평문 데이터를 하드웨어 보안 모듈(1500)에게 전달하면, 하드웨어 보안 모듈(1500)은 내부 플래시 메모리(1540)에 저장되어 있는 네트워크 세션 키 또는 어플리케이션 세션 키를 이용하여 암호화 한 후 마이크로 컨트롤 유닛(MCU)에 회신해줄 수 있다.The AES encryption module 1520 is responsible for performing encryption when data encryption is required while the micro control unit (MCU) performs the Laura protocol. That is, when the micro control unit (MCU) transmits the plain text data to the hardware security module 1500, the hardware security module 1500 is encrypted using a network session key or an application session key stored in the internal flash memory 1540. You can then reply to the micro control unit (MCU).

이 때, AES 암호 모듈(1520)에서 사용하는 AES 암호의 키 길이는 로라 프로토콜에 정의된 128비트 키 길이를 사용할 수 있다.At this time, the key length of the AES cipher used in the AES cipher module 1520 may use a 128-bit key length defined in the Laura protocol.

중요정보 저장관리 모듈(1530)은 로라 프로토콜에서 필요로 하는 중요한 정보를 하드웨어 보안 모듈(1500) 내부에 있는 플래시 메모리(1540)에 저장 및 관리하는 기능을 수행한다. The important information storage management module 1530 stores and manages important information required by the Laura protocol in the flash memory 1540 inside the hardware security module 1500.

이 때, 플래시 메모리(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 flash memory 1540 includes an end device identifier (END-DEVICE IDENTIFIER, DevEUI), an application identifier (APPLICATION IDENTIFIER, AppEUI), an application key (APPLICATION KEY, AppKey), and a network session key ( NETWORK SEESSION KEY, NwkSKey) and the application session key (APPLICATION SESSION KEY, AppSKey) may include at least one.

이 때, 전술한 내용은 하나의 일 예를 들어 설명한 것으로, 본 발명은 예시된 사례에 국한되지 않을 수 있다. 즉, 하드웨어 보안 모듈을 이용한 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)

로라(LONH RANGE, LORA) 통신 기반의 사물 인터넷(IoT) 디바이스가,
마이크로 컨트롤 유닛(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.
청구항 1에 있어서,
상기 중요 정보는
엔드 디바이스 식별자(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.
청구항 2에 있어서,
상기 암호화하는 단계는
상기 하드웨어 보안 모듈이, 상기 네트워크 세션 키 및 상기 어플리케이션 세션 키 중 적어도 하나를 기반으로 상기 통신 데이터를 암호화하여 암호화된 통신 데이터를 생성하는 단계; 및
상기 하드웨어 보안 모듈이, 상기 암호화된 통신 데이터를 상기 마이크로 컨트롤 유닛에게 전달하는 단계를 포함하는 것을 특징으로 하는 로라 통신 디바이스의 통신 보안 방법.
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.
청구항 3에 있어서,
상기 저장하는 단계는
상기 마이크로 컨트롤 유닛이, 상기 명령어와 함께 상기 어플리케이션 키를 상기 하드웨어 보안 모듈로 전달하는 단계; 및
상기 하드웨어 보안 모듈이, 상기 마이크로 컨트롤 유닛으로부터 전달된 키 생성 데이터를 상기 어플리케이션 키로 암호화하여 상기 네트워크 세션 키 및 상기 어플리케이션 세션 키를 생성하고, 상기 네트워크 세션 키 및 상기 어플리케이션 세션 키를 저장하는 단계를 포함하는 것을 특징으로 하는 로라 통신 디바이스의 통신 보안 방법.
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.
청구항 1에 있어서,
상기 암호화하는 단계는
상기 사물 인터넷 디바이스가 상기 로라 프로토콜에 의한 통신을 수행할 때마다 상기 통신 데이터의 암호화를 반복적으로 수행하는 것을 특징으로 하는 로라 통신 디바이스의 통신 보안 방법.
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.
청구항 1에 있어서,
상기 명령어는
수행할 명령의 종류, 상기 명령어에 포함될 데이터의 크기 및 상기 명령의 종류에 상응하는 데이터를 포함하는 형태인 것을 특징으로 하는 로라 통신 디바이스의 통신 보안 방법.
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.
청구항 6에 있어서,
상기 명령의 종류는 저장, 로딩, 키 생성 및 암호화 중 어느 하나에 상응하는 것을 특징으로 하는 로라 통신 디바이스의 통신 보안 방법.
The method according to claim 6,
And the type of command corresponds to any one of storage, loading, key generation, and encryption.
청구항 2에 있어서,
상기 중요 정보는
상기 하드웨어 보안 모듈의 플래시메모리(FLASHMEMORY)를 기반으로 저장되는 것을 특징으로 하는 로라 통신 디바이스의 통신 보안 방법.
The method according to claim 2,
The important information above
And storing based on a flash memory (FLASHMEMORY) of the hardware security module.
응용 프로그램 및 로라 프로토콜에 대한 처리를 수행하는 마이크로 컨트롤 유닛(MICRO CONTROL UNIT, MCU);
상기 마이크로 컨트롤 유닛에 의한 명령어를 기반으로 로라(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.
청구항 9에 있어서,
상기 중요 정보는
엔드 디바이스 식별자(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.
청구항 10에 있어서,
상기 하드웨어 보안 모듈은
상기 네트워크 세션 키 및 상기 어플리케이션 세션 키 중 적어도 하나를 기반으로 상기 통신 데이터를 암호화하여 암호화된 통신 데이터를 생성하고, 상기 암호화된 통신 데이터를 상기 마이크로 컨트롤 유닛에게 전달하는 것을 특징으로 하는 로라 통신 기반의 사물 인터넷(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.
청구항 11에 있어서,
상기 하드웨어 보안 모듈은
상기 마이크로 컨트롤 유닛으로부터 상기 명령어와 함께 전달된 상기 어플리케이션 키를 기반으로 상기 마이크로 컨트롤 유닛으로부터 전달된 키 생성 데이터를 암호화하여 상기 네트워크 세션 키 및 상기 어플리케이션 세션 키를 생성하고, 상기 네트워크 세션 키 및 상기 어플리케이션 세션 키를 저장하는 것을 특징으로 하는 로라 통신 기반의 사물 인터넷(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.
청구항 9에 있어서,
상기 하드웨어 보안 모듈은
상기 사물 인터넷 디바이스가 상기 로라 프로토콜에 의한 통신을 수행할 때마다 상기 통신 데이터의 암호화를 반복적으로 수행하는 것을 특징으로 하는 로라 통신 기반의 사물 인터넷(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.
청구항 9에 있어서,
상기 명령어는
수행할 명령의 종류, 상기 명령어에 포함될 데이터의 크기 및 상기 명령의 종류에 상응하는 데이터를 포함하는 형태인 것을 특징으로 하는 로라 통신 기반의 사물 인터넷(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.
청구항 14에 있어서,
상기 명령의 종류는 저장, 로딩, 키 생성 및 암호화 중 어느 하나에 상응하는 것을 특징으로 하는 로라 통신 기반의 사물 인터넷(IoT) 디바이스.
The method according to claim 14,
The type of command corresponds to any one of storage, loading, key generation, and encryption.
청구항 10에 있어서,
상기 중요 정보는
상기 하드웨어 보안 모듈의 플래시메모리(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.
KR1020180054383A 2018-05-11 2018-05-11 Communication security method for lora communication device and apparatus using the same KR20190134914A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101767889B1 (en) 2016-02-25 2017-08-14 에스케이텔레콤 주식회사 Method of identifying terminal and apparatus thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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