KR102032032B1 - Dtls based end-to-end security method for internet of things device - Google Patents

Dtls based end-to-end security method for internet of things device Download PDF

Info

Publication number
KR102032032B1
KR102032032B1 KR1020170178185A KR20170178185A KR102032032B1 KR 102032032 B1 KR102032032 B1 KR 102032032B1 KR 1020170178185 A KR1020170178185 A KR 1020170178185A KR 20170178185 A KR20170178185 A KR 20170178185A KR 102032032 B1 KR102032032 B1 KR 102032032B1
Authority
KR
South Korea
Prior art keywords
client
certificate
iot
capability
group
Prior art date
Application number
KR1020170178185A
Other languages
Korean (ko)
Other versions
KR20190084171A (en
Inventor
박창섭
Original Assignee
단국대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 단국대학교 산학협력단 filed Critical 단국대학교 산학협력단
Priority to KR1020170178185A priority Critical patent/KR102032032B1/en
Publication of KR20190084171A publication Critical patent/KR20190084171A/en
Application granted granted Critical
Publication of KR102032032B1 publication Critical patent/KR102032032B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • 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/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Abstract

IoT 디바이스의 보안 동작 방법은 보안 프록시에게 자신에 대한 인증서 발행을 요청하는 단계; 상기 보안 프록시로부터 인증서 및 서명을 수신하고, 인증서 및 서명과 보안 프록시의 공개키를 이용하여 자신의 개인키 및 공개키를 도출하는 단계; 및 인증서 및 클라이언트의 공개키에 기반한 초기 DTLS 핸드쉐이크를 클라이언트와 수행하는 단계를 포함하여 구성될 수 있다. 또한, 상기 초기 DTLS 핸드쉐이크 과정에서 상기 IoT 디바이스와 같은 그룹에 속한 다른 IoT 디바이스와 클라이언트 간의 후속 DTLS 핸드쉐이크에서 사용될 클라이언트의 PSK(pre-shared key) 토큰이 클라이언트에게 제공될 수 있다.The method for secure operation of an IoT device may include requesting a security proxy to issue a certificate for itself; Receiving a certificate and a signature from the security proxy and deriving its private and public keys using the certificate and signature and the public key of the security proxy; And performing an initial DTLS handshake with the client based on the certificate and the client's public key. In addition, the client may be provided with a client's pre-shared key (PSK) token to be used in a subsequent DTLS handshake between the client and another IoT device belonging to the same group as the IoT device during the initial DTLS handshake.

Description

사물 인터넷 디바이스를 위한 DTLS 기반 종단간 보안 방법{DTLS BASED END-TO-END SECURITY METHOD FOR INTERNET OF THINGS DEVICE}DTLS-based END-TO-END SECURITY METHOD FOR INTERNET OF THINGS DEVICE}

본 발명은 사물 인터넷 디바이스와 클라이언트 간의 보안 제공 방법에 관한 것으로, 더욱 상세하게는, 사물 인터넷 디바이스와 클라이언트 장치 간의 비대칭 성능을 고려하여, DTLS(datagram transport layer security) 기반의 종단-대-종단(end-to-end) 보안을 제공하는 방법에 관한 것이다.The present invention relates to a method for providing security between an IoT device and a client, and more particularly, to end-to-end based on datagram transport layer security (DTLS) in consideration of asymmetric performance between the IoT device and a client device. -to-end) on how to provide security.

사물 인터넷(IoT; Internet of Thing)에 대한 관심이 증가함에 따라 보급이 확산되고 기반 제품과 서비스가 빠르게 증가되고 있다. 특히 IoT 운영 환경이 기존 폐쇄적 환경에서 개방적 환경으로 확장되어짐에 따라 개인 및 조직의 민감한 정보까지 다루게 되어 IoT 운영 환경에서의 보안의 중요성은 높아지고 있다. 전통적인 무선 센서 네트워크(WSN; Wireless Sensor Network) 환경에서는 여러 센서 디바이스들을 관리하는 프록시(proxy)가 존재하고, 프록시가 센서 디바이스들의 센싱정보를 수집하면 원격 클라이언트가 프록시에게 정보를 요구하는 방식이기 때문에 클라이언트의 센서 디바이스로의 직접적인 접근이 허용되지 않았다. 센서 디바이스들과 프록시 사이에는 IEEE 802.15.4 보안이나 ZigBee 보안과 같은 링크 계층의 보안이 필요하며 프록시와 클라이언트 사이에는 IPSEC(IP security)이나 TLS(transport layer security)와 같은 네트워크 또는 전송 계층 보안이 요구된다. 따라서 클라이언트와 센서 디바이스 사이에 이음새 없는 보안(Seamless Security)이 적용되지는 않는다. As interest in the Internet of Thing (IoT) has increased, the spread has spread and the foundation products and services have been increasing rapidly. In particular, as the IoT operating environment is extended from the existing closed environment to the open environment, security of the IoT operating environment is increasing as it deals with sensitive information of individuals and organizations. In a traditional wireless sensor network (WSN) environment, there is a proxy that manages multiple sensor devices, and when a proxy collects sensor information, the remote client requests information from the proxy. Direct access to the sensor device was not allowed. Sensor layer and proxy require link layer security such as IEEE 802.15.4 security or ZigBee security, and network or transport layer security such as IPSEC (IPSEC) or transport layer security (TLS) between proxy and client. do. Therefore, seamless security does not apply between the client and the sensor device.

한편, IoT 네트워크 아키텍처 기반의 응용에서는 종단 간(end-to- end) 보안이 필수적이다. IPSEC 및 TLS는 계산, 메모리 및 전력 면에서 자원 제약적인 센서 디바이스에는 적합하지 않기 때문에 종단 간 보안에는 사용될 수 없다. 따라서 IoT 네트워크 아키텍처 기반의 종단 간 보안을 위해서는 센서 디바이스와 클라이언트 사이의 비대칭 성능을 고려한 보안 프로토콜이 요구된다.On the other hand, end-to-end security is essential for applications based on IoT network architecture. IPSEC and TLS cannot be used for end-to-end security because they are not suitable for resource-constrained sensor devices in terms of computation, memory, and power. Therefore, end-to-end security based on IoT network architecture requires a security protocol considering asymmetric performance between sensor device and client.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, IoT 환경에서 IoT 디바이스와 클라이언트 간의 비대칭 성능을 고려한, DTLS 기반의 종단 간 보안 방법으로서, IoT 디바이스의 보안 동작 방법을 제공하는데 있다.An object of the present invention for solving the above problems is to provide a secure operation method of the IoT device as a DTLS-based end-to-end security method in consideration of the asymmetric performance between the IoT device and the client in the IoT environment.

상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, IoT 환경에서 IoT 디바이스와 클라이언트 간의 비대칭 성능을 고려한, DTLS 기반의 종단 간 보안 방법으로서, 클라이언트의 보안 동작 방법을 제공하는데 있다.Another object of the present invention for solving the above problems is to provide a secure operation method of the client as a DTLS-based end-to-end security method, considering the asymmetric performance between the IoT device and the client in the IoT environment.

상기와 같은 문제점을 해결하기 위한 본 발명의 또 다른 목적은, IoT 환경에서 IoT 디바이스와 클라이언트 간의 비대칭 성능을 고려한, DTLS 기반의 종단 간 보안 방법으로서, IoT 디바이스와 클라이언트의 비대칭 성능을 보완하기 위한 보안 프록시(SP; security proxy)의 보안 동작 방법을 제공하는데 있다.Another object of the present invention for solving the above problems is a DTLS-based end-to-end security method in consideration of the asymmetric performance between the IoT device and the client in the IoT environment, security for complementing the asymmetric performance of the IoT device and client It is to provide a security operation method of a proxy (SP).

상기 목적을 달성하기 위한 본 발명은, 적어도 하나의 그룹 중 제1 그룹에 속한 사물 인터넷(IoT) 디바이스들, 상기 제1 그룹에 속한 IoT 디바이스들에 대한 접근 권한을 가진 클라이언트, 및 상기 IoT 디바이스들과 상기 클라이언트 간에 존재하는 보안 프록시(SP; security proxy)를 포함한 IoT 환경에서, 상기 IoT 디바이스들 중 제1 IoT 디바이스(Sx)의 보안 동작 방법으로서, 상기 SP에게 자신에 대한 인증서 발행을 요청하는 단계; 상기 SP로부터 인증서 및 서명을 수신하고, 상기 인증서 및 서명과 상기 SP의 공개키를 이용하여 자신의 개인키 및 공개키를 도출하는 단계; 및 상기 인증서 및 상기 클라이언트의 공개키에 기반한 초기 DTLS 핸드쉐이크를 상기 클라이언트와 수행하는 단계를 포함한다. 상기 초기 DTLS 핸드쉐이크 과정에서 상기 제1그룹에 속한 다른 IoT 디바이스와 상기 클라이언트 간의 후속 DTLS 핸드쉐이크에서 사용될 상기 클라이언트의 PSK(pre-shared key) 토큰이 상기 클라이언트에게 제공될 수 있다. The present invention for achieving the above object, the Internet of Things (IoT) devices belonging to the first group of at least one group, a client having access rights to the IoT devices belonging to the first group, and the IoT devices In an IoT environment including a security proxy (SP) existing between a client and the client, a security operation method of a first IoT device (S x ) among the IoT devices may include requesting issuance of a certificate for the SP. step; Receiving a certificate and a signature from the SP and deriving its own private and public key using the certificate and signature and the public key of the SP; And performing an initial DTLS handshake with the client based on the certificate and the public key of the client. In the initial DTLS handshake process, a PSK (pre-shared key) token of the client to be used in a subsequent DTLS handshake between another IoT device belonging to the first group and the client may be provided to the client.

상기 다른 목적을 달성하기 위한 본 발명은, 적어도 하나의 그룹 중 제1 그룹에 속한 사물 인터넷(IoT) 디바이스들, 상기 제1 그룹에 속한 IoT 디바이스들에 대한 접근 권한을 가진 클라이언트, 및 상기 IoT 디바이스들과 상기 클라이언트 간에 존재하는 보안 프록시(SP; security proxy)를 포함한 IoT 환경에서, 상기 클라이언트의 동작 방법으로서, 상기 SP에게 상기 제1 그룹에 속한 IoT 디바이스들에 대한 접근 권한을 지시하는 캐퍼빌리티 ID의 발급을 요청하고 상기 캐퍼빌리티 ID를 수신하는 단계; 및 상기 제1 그룹에 속한 IoT 디바이스들 중 제1 IoT 디바이스와 상기 제1 IoT 디바이스의 인증서 및 상기 클라이언트의 공개키에 기반한 초기 DTLS 핸드쉐이크를 수행하는 단계를 포함한다. 또한, 상기 초기 DTLS 핸드쉐이크 과정에서 상기 제1그룹에 속한 다른 IoT 디바이스와 상기 클라이언트 간의 후속 DTLS 핸드쉐이크에서 사용될 상기 클라이언트의 PSK(pre-shared key) 토큰이 상기 제1 IoT 디바이스로부터 제공될 수 있다.According to another aspect of the present invention, there is provided an Internet of Things (IoT) devices belonging to a first group of at least one group, a client having access to IoT devices belonging to the first group, and the IoT device. In a IoT environment including a security proxy (SP) existing between the client and the client, a method of operating the client, the capability ID instructing the SP to access the IoT devices belonging to the first group Requesting issuance of a and receiving the capability ID; And performing an initial DTLS handshake based on a certificate of the first IoT device and the first IoT device among the IoT devices belonging to the first group and the public key of the client. In addition, a PSK token of the client to be used in a subsequent DTLS handshake between another IoT device belonging to the first group and the client during the initial DTLS handshake may be provided from the first IoT device. .

상기 또 다른 목적을 달성하기 위한 본 발명은, 적어도 하나의 그룹 중 제1 그룹에 속한 사물 인터넷(IoT) 디바이스들, 상기 제1 그룹에 속한 IoT 디바이스들에 대한 접근 권한을 가진 클라이언트, 및 상기 IoT 디바이스들과 상기 클라이언트 간에 존재하는 보안 프록시(SP; security proxy)를 포함한 IoT 환경에서, 상기 SP의 동작 방법으로서, 상기 클라이언트로부터 상기 제1 IoT 디바이스에 대한 인증서 발행 요청을 수신하고, 상기 제1 IoT 디바이스에게 발행된 인증서 및 서명을 송신하는 단계; 및 상기 SP에게 상기 제1 그룹에 속한 IoT 디바이스들에 대한 접근 권한을 지시하는 캐퍼빌리티 ID의 발급 요청을 수신하고 발급된 캐퍼빌리티 ID를 전달하는 단계를 포함할 수 있다.According to another aspect of the present invention, there is provided an Internet of Things (IoT) devices belonging to a first group of at least one group, a client having access to IoT devices belonging to the first group, and the IoT. In an IoT environment including a security proxy (SP) existing between devices and the client, an operation method of the SP includes receiving a certificate issuance request for the first IoT device from the client, and receiving the first IoT device from the client. Sending the issued certificate and signature to the device; And receiving a request for issuing a capability ID indicating the access right to IoT devices belonging to the first group to the SP and delivering the issued capability ID.

본 발명에 따른 실시예들에서는 안전한 CoAP 응용을 위한 DTLS 기반의 그룹 지향적 종단 간 보안 방법을 제안하였다. CoAP 서버(즉, IoT 디바이스)와 클라이언트 사이의 종단 간 보안 연결의 과정에서 DTLS 핸드쉐이크에 의한 계산 량을 줄이기 위해 '초기 DTLS 핸드쉐이크'를 마치면서 PSK 토큰을 발급하고 '후속 DTLS 핸드쉐이크'에서는 PSK 모드를 사용하여 DTLS 핸드쉐이크에 의해 유발되는 계산량을 감소시켰다. Embodiments according to the present invention proposed a DTLS-based group-oriented end-to-end security method for secure CoAP applications. During the end-to-end secure connection between the CoAP server (i.e. IoT device) and the client, the PSK token is issued at the end of the initial DTLS handshake to reduce the computational amount by the DTLS handshake. The PSK mode was used to reduce the amount of computation caused by the DTLS handshake.

또한, 캐퍼빌리티(capability) ID라는 개념을 기반으로 사전에 IoT 디바이스들을 그룹화 하여 세밀한 접근 제어가 가능하게 하였다. 따라서 다양한 IoT 애플리케이션이 안전하게 그룹 지향적 종단 간 보안의 장점을 확보할 수 있게 된다. 전통적인 무선 센서 네트워크에서 이용되는 프록시를 통한 센서 디바이스에의 간접 접근 방식에서는 서버와 클라이언트만 키 정보를 공유하므로 완벽한 종단 간 보안을 충족 할 수 없었지만, 본 발명의 실시예들을 따르면 프록시는 IoT 디바이스에 대한 접근제어 정보만을 알고 있고 키 정보 같이 민감한 정보는 오로지 서버와 클라이언트 사이에만 공유되는 종단 간 보안을 충족하게 된다.In addition, based on the concept of capability ID, IoT devices are grouped in advance to enable fine-grained access control. As a result, various IoT applications can securely take advantage of group-oriented end-to-end security. Indirect approaches to sensor devices via proxies used in traditional wireless sensor networks could not achieve complete end-to-end security because only the server and client share key information, but according to embodiments of the present invention, the proxy may Only access control information is known and sensitive information such as key information meets end-to-end security that is shared only between the server and client.

도 1은 본 발명의 일 실시예에 따른 DTLS 기반의 종단 간 보안 방법의 기본 원리와 적용 대상이 되는 IoT 환경을 설명하기 위한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 DTLS 기반의 종단 간 보안 방법에서 접근 제어 리스트인 캐퍼빌리티 리스트의 구성 예를 설명하기 위한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 DTLS 기반의 종단 보안 방법에서 사용되는 DTLS 메시지의 구성을 설명하기 위한 개념도이다.
도 4는 본 발명의 일 실시예에 따른 DTLS 기반의 종단 간 보안 방법이 IoT 디바이스에서 수행되는 측면을 설명하기 위한 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 DTLS 기반의 종단 간 보안 방법이 클라이언트에서 수행되는 측면을 설명하기 위한 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 DTLS 기반의 종단 간 보안 방법이 SP에서 수행되는 측면을 설명하기 위한 흐름도이다.
도 7은 제안된 프로토콜과 함께 PSK, RPK, 인증서(ECDSA 탑재 X.509 인증서 및 ECQV 인증서) 모드로 DTLS 핸드쉐이크 지연시간을 측정한 결과를 도시한 그래프이다.
도 8은 6LoWPAN 네트워크 상에서 각각의 보안 모드에 대한 DTLS 핸드쉐이크 왕복지연(Round Trip Delay)을 측정한 결과를 도시한 그래프이다.
1 is a conceptual diagram illustrating a basic principle of an DTLS-based end-to-end security method according to an embodiment of the present invention and an IoT environment to which it is applied.
2 is a conceptual diagram illustrating a configuration example of a capability list as an access control list in a DTLS-based end-to-end security method according to an embodiment of the present invention.
FIG. 3 is a conceptual diagram illustrating a configuration of a DTLS message used in a DTLS-based end security method according to an embodiment of the present invention.
4 is a flowchart illustrating an aspect in which a DTLS-based end-to-end security method is performed in an IoT device according to an embodiment of the present invention.
5 is a flowchart illustrating an aspect in which a DTLS-based end-to-end security method is performed in a client according to an embodiment of the present invention.
6 is a flowchart illustrating an aspect in which a DTLS-based end-to-end security method is performed in an SP according to an embodiment of the present invention.
7 is a graph showing the results of measuring DTLS handshake delay time in PSK, RPK, certificate (ECDSA-equipped X.509 certificate and ECQV certificate) mode together with the proposed protocol.
8 is a graph illustrating a result of measuring DTLS handshake round trip delay for each security mode on a 6LoWPAN network.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. As the invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. In describing the drawings, similar reference numerals are used for similar elements.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. Terms such as first, second, A, and B may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component. The term and / or includes a combination of a plurality of related items or any item of a plurality of related items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

DTLS(datagram transport layer security)는 종단 간 비대칭 성능에 대한 문제를 보완할 수 있는 IoT 보안의 사실상 표준(defacto standard)으로 기능하고 있다. IoT의 응용 계층 프로토콜인 CoAP(constrained application protocol)에서는 DTLS의 보안 모드로 PSK(pre-shared key), RPK(raw public key) 및 인증서 모드를 포함함 세가지 보안 모드를 정의 하고 있다. 각 보안 모드에는 장단점이 존재한다. Datagram transport layer security (DTLS) serves as a defacto standard for IoT security that can complement the problem of end-to-end asymmetric performance. The IoT's application layer protocol, CoAP (constrained application protocol), defines three security modes, including pre-shared key (PSK), raw public key (RPK), and certificate mode. Each security mode has advantages and disadvantages.

먼저, PSK 모드는 성능 면에서 장점이 있지만 IoT 디바이스(즉, CoAP 서버)와 IoT 디바이스에 접속하는 클라이언트(즉, CoAP 클라이언트)가 많아질수록 고유한 대칭키를 미리 배포 하는 것이 쉽지 않다. First of all, PSK mode has advantages in terms of performance, but as more IoT devices (ie, CoAP servers) and more clients (ie, CoAP clients) connect to IoT devices, it is not easy to deploy unique symmetric keys in advance.

반면, RPK와 인증서 모드는 ECDSA(EC-Digital Signature Algorithm) 연산이 필요하기 때문에 IoT 디바이스에서의 계산부하가 PSK 보안 모드보다 상대적으로 높다. 하지만 공개키 기반구조(PKI; public key infrastructure)로 인해서 키 관리가 상대적으로 용이한 측면이 있다. 인증서 모드에서 사용되는 인증서는 X.509를 준용하기 때문에 호환성과 확장성이 높지만, 인증서의 크기가 크고 계산부하가 상대적으로 높기 때문에 자원 제약적인 IoT 디바이스가 활용되는 IoT 환경에서는 적합하지 않다. 결국, 전통적인 인증서보다 상대적으로 더 작은 암시적 인증서인 타원곡선 기반의 ECQV(Elliptic Curve Qu-Vanstone)를 활용하는 것이 유리하다.On the other hand, RPK and certificate modes require ECDSA (EC-Digital Signature Algorithm) operation, so the computational load on IoT devices is relatively higher than that of PSK security mode. However, the key management is relatively easy due to the public key infrastructure (PKI). Certificates used in certificate mode have high compatibility and extensibility because they conform to X.509, but they are not suitable in IoT environments where resource-constrained IoT devices are utilized because of their large size and relatively high computational load. As a result, it is advantageous to utilize an elliptic curve-based Elliptic Curve Qu-Vanstone (ECQV), which is a smaller implicit certificate than a traditional certificate.

본 발명에 따른 일 실시예에서는 CoAP 클라이언트가 미리 할당 된 그룹 내의 CoAP 서버들에 접근 할 수 있는 그룹 지향적 종단 간 보안을 고려한다. 이하에서 설명될 본 발명에 따른 일 실시예의 기술적 특징은 아래와 같다. 각각의 기술적 특징에 대해서는 상술된다.In an embodiment according to the present invention, CoAP client considers group-oriented end-to-end security that can access CoAP servers in a pre-assigned group. Technical features of one embodiment according to the present invention to be described below are as follows. Each technical feature is explained in full detail.

첫째, CoAP 클라이언트와 CoAP 서버 그룹간의 보안연결을 설정한다. 이를 위해 CoAP 서버 및 클라이언트는 각각 ECQV 인증서 및 인증된 RPK를 사용한다. First, establish a secure connection between the CoAP client and the CoAP server group. To do this, the CoAP server and client use ECQV certificates and authenticated RPKs, respectively.

둘째, DTLS 핸드쉐이크로 인한 총 계산량을 감소시키기 위해 DTLS 핸드쉐이크 절차는 '초기 DTLS 핸드쉐이크'와 '후속 DTLS 핸드쉐이크'로 구분되어 수행된다. '초기 DTLS 핸드쉐이크'는 클라이언트가 접속 권한을 가진 그룹에 속한 IoT 디바이스들 중 하나의 IoT 디바이스와 수행되며, 초기 DTLS 핸드쉐이크 절차에서 해당 그룹에 속한 IoT 디바이스들과 후속 DTLS 핸드쉐이크에 사용될 PSK키가 발급된다. 따라서, 동일 그룹 내의 다른 IoT 디바이스와의 후속 DTLS 핸드쉐이크는 PSK 모드로 진행된다. Second, the DTLS handshake procedure is performed by dividing the initial DTLS handshake and the subsequent DTLS handshake to reduce the total calculation amount due to the DTLS handshake. The 'Initial DTLS Handshake' is performed with one of the IoT devices belonging to a group to which the client has access rights, and the PSK key to be used for IoT devices belonging to the group and subsequent DTLS handshakes in the initial DTLS handshake procedure. Is issued. Thus, subsequent DTLS handshakes with other IoT devices in the same group proceed in PSK mode.

셋째, 동일 그룹 내의CoAP 서버들에 대한 세분화된 접근제어 메커니즘(fine-grained access control)을 내재시키기 위해 CoAP 클라이언트에게 보안 프록시(SP; Security Proxy)가 발급하는 '캐퍼빌리티(capability) ID'의 개념을 도입한다.Third, the concept of 'capability ID' issued by Security Proxy (SP) to CoAP clients to embed fine-grained access control for CoAP servers in the same group. Introduce.

일반적인 Normally DTLSDTLS 핸드쉐이크Handshake 과정 process

본 발명의 일 실시예에 따른 DTLS 기반의 종단 간 보안 방법을 설명하기에 앞서 일반적인 DTLS 핸드쉐이크 과정을 먼저 간략히 설명한다.Prior to describing a DTLS-based end-to-end security method according to an embodiment of the present invention, a general DTLS handshake process will first be briefly described.

DTLS 핸드쉐이크 과정은 보안협상(security negotiation), 키교환(key exchange) 그리고 키확인(key confirmation) 단계로 구성된다. 먼저 보안협상 단계에서는 보안 모드(security Mode)와 cipher suit가 결정되고, 추가적으로 Nonce가 교환된다. 보안 모드에 따라 'Pre-Master Secret'이라는 인증키(AK; authentication key)가 도출되고 키교환 단계에서 AK와 Nonce를 이용해 'Master Secret'이라는 세션키(SK; session key)가 도출 된다. 마지막으로 CoAP 서버와 클라이언트는 키확인 단계를 통해 SK를 기반으로 한 상호 인증을 수행한다. The DTLS handshake process consists of security negotiation, key exchange, and key confirmation steps. First, in the security negotiation stage, a security mode and a cipher suit are determined, and additionally, a nonce is exchanged. According to the security mode, an authentication key (AK) called 'Pre-Master Secret' is derived and a session key (SK) called 'Master Secret' is derived using AK and Nonce in the key exchange step. Finally, CoAP server and client perform mutual authentication based on SK through key verification step.

DTLS의 PSK 모드에서의 CoAP 서버는 자신과 통신할 CoAP 클라이언트들과 공유하는 PSK가 탑재된 접근 제어 목록을 유지한다. 따라서, PSK 모드에서는 DTLS 핸드쉐이크를 시작하기 위해서 별도의 방식을 통해 CoAP 서버와 해당 인가된 클라이언트에게 대칭키가 사전 제공되어야 한다. RPK 모드의 CoAP 서버와 클라이언트는 각각 ECDSA 공개키/개인키 쌍을 유지하며 PSK 모드와 같이 별도의 방식을 통해서 서로의 공개키를 획득해야 한다. 이 방식에서도 CoAP 서버는 인가된 클라이언트와 해당 공개키의 접근제어 목록을 구성 할 수 있다. In the PSK mode of DTLS, a CoAP server maintains an access control list with a PSK shared with CoAP clients that will communicate with it. Therefore, in the PSK mode, in order to start the DTLS handshake, the symmetric key should be provided to the CoAP server and the authorized client in a separate manner. CoAP server and client in RPK mode maintain ECDSA public key / private key pair, respectively, and must obtain each other's public key through separate method like PSK mode. In this way, the CoAP server can also construct access control lists for authorized clients and their public keys.

키확인 단계에서의 상호인증은 ECDSA를 기반으로 수행된다. 마지막으로 인증서 모드에서는 ECDSA를 기반으로 하는 X.509 인증서가 사용되며 CoAP 서버와 클라이언트는 ECDSA 공개키/개인키 쌍과 함께 X.509 인증서를 활용하게 된다. Mutual authentication in the key verification phase is performed on the basis of ECDSA. Finally, in certificate mode, X.509 certificates based on ECDSA are used, and CoAP servers and clients use X.509 certificates with ECDSA public / private key pairs.

도 1은 본 발명의 일 실시예에 따른 DTLS 기반의 종단 간 보안 방법의 기본 원리와 적용 대상이 되는 IoT 환경을 설명하기 위한 개념도이다. 1 is a conceptual diagram illustrating a basic principle of an DTLS-based end-to-end security method according to an embodiment of the present invention and an IoT environment to which it is applied.

도 1을 참조하면, 본 발명의 일 실시예에 따른 DTLS 기반의 종단간 접근 제어 방법이 적용되는 IoT 환경은, 다수의 IoT 디바이스들(즉, 각각이 CoAP 서버이며, S1, S2, S3, ..., S7)로 구성된 LoWPAN(low-power wireless personal area network) 네트워크(100)일 수 있으며, 6LBR(6LowPAN border router, 110)을 통해 IPv6 인터넷에 연결되고, IPv6 인터넷을 통해서 클라이언트(CA, 130)에 접속될 수 있다.1, the IoT environment to which the DTLS-based end-to-end access control method according to an embodiment of the present invention is applied, a plurality of IoT devices (that is, each of the CoAP server, S 1 , S 2 , S 3 , ..., S 7 ), which may be a low-power wireless personal area network (LoWPAN) network (100), connected to the IPv6 Internet through a 6LowPAN border router (6LBR), and a client over the IPv6 Internet (C A , 130).

여기서, IoT 디바이스들은 적어도 하나의 서브 그룹(Subj, j=1,2,...,k)으로 그룹화 되고, 특정 IoT 디바이스는 하나의 서브 그룹에만 속하게 된다. 특정 서브 그룹에 속하는 IoT 디바이스들은 동일한 그룹키 GKi를 공유하며 보안 프록시(SP, security proxy, 120)는 LoWPAN 내의 센서 디바이스들(Si, i=1,2,...)을 관리하고 센서 디바이스들과의 대칭키(Ki)를 공유하고 있다고 가정한다. 한편, 도 1에서, 6LBR(110)과 SP(120)가 별도의 구성요소로 도시되어 있으나, 상기 6LBR(110)과 SP(120)는 동일한 구성요소로서 구성될 수 있다.Here, IoT devices are grouped into at least one subgroup (Sub j , j = 1, 2, ..., k), and a specific IoT device belongs to only one subgroup. IoT devices belonging to a specific subgroup share the same group key GK i and a security proxy (SP, 120) manages sensor devices (S i , i = 1, 2, ...) in LoWPAN Assume that you share a symmetric key (K i ) with the devices. Meanwhile, in FIG. 1, although the 6LBR 110 and the SP 120 are illustrated as separate components, the 6LBR 110 and the SP 120 may be configured as the same component.

이하에서는, 본 발명의 일 실시예에 따른 DTLS 기반의 종단 간 보안 방법을 구성하는, (1) SP(120)와 각각의 IoT 디바이스들 간에 수행되는 인증서 발급 절차, (2) SP(120)와 클라이언트(130) 간에 수행되는 캐퍼빌리티(capability) 리스트 및 캐퍼빌리티 ID를 포함한 접근 제어 정보 발행 절차, (3) 클라이언트(130)와 그룹에 속한 하나의 IoT 디바이스(예컨대, S1)와 수행되는 초기 DTLS 핸드쉐이크 절차, 및 (4) 클라이언트(130)와 그룹에 속한 다른 IoT 디바이스들과 수행되는 후속 DTLS 핸드쉐이크 절차의 순으로 설명된다.Hereinafter, (1) a certificate issuance procedure performed between the SP 120 and respective IoT devices, which constitutes a DTLS-based end-to-end security method according to an embodiment of the present invention, and (2) SP 120 and Procedure for issuing access control information including a capability list and a capability ID performed between the client 130 and (3) an initial operation performed with the client 130 and one IoT device belonging to the group (eg, S 1 ). DTLS handshake procedures, and (4) subsequent DTLS handshake procedures performed with the client 130 and other IoT devices in the group.

인증서 발급 절차Certificate Issuance Procedure

먼저, 각각의 IoT 디바이스들은 클라이언트(130)와 ECDH(elliptic curve Diffie-Hellman) 키 교환을 위해 ECQV 인증서를 발급 받게 되는데, 이때 SP(120)는 ECQV 인증서를 발행하는 CA(certificate authority)의 역할을 수행하게 된다.First, each IoT device is issued an ECQV certificate for exchanging an elliptic curve Diffie-Hellman (ECDH) key with the client 130, where the SP 120 serves as a certificate authority (CA) that issues an ECQV certificate. Will be performed.

타원 곡선 E(Fp)는 유한체 Ep(p는 소수) 상에 존재하는

Figure 112017128292613-pat00001
를 만족하는 포인트들의 집합이다. 타원곡선 매개변수는 (p,a,b,G,n)으로 표기하며, G는 차수가
Figure 112017128292613-pat00002
인 베이스 포인트이다. IoT 디바이스에 대한 ECQV 인증서 발급은 다음과 같이 진행될 수 있다. IoT 디바이스(Sx)는 SP(120)에게 인증서를 요청하기 위해
Figure 112017128292613-pat00003
을 생성하며
Figure 112017128292613-pat00004
를 SP(120)에게 전송한다. 이에 응답하여, SP(120)는
Figure 112017128292613-pat00005
를 생성하며, 하기 수학식 1과 같이 Sx의 암시적 인증서(Certx) 및 암시적 서명(s)을 생성할 수 있다.Elliptic curve E (F p ) is on finite body E p (p is prime)
Figure 112017128292613-pat00001
Is a set of points satisfying. Elliptic curve parameters are denoted by (p, a, b, G, n), where G is the degree
Figure 112017128292613-pat00002
Is the base point. Issuance of an ECQV certificate for an IoT device may proceed as follows. IoT device (S x ) to request a certificate from the SP (120)
Figure 112017128292613-pat00003
Generates
Figure 112017128292613-pat00004
To the SP 120. In response, the SP 120
Figure 112017128292613-pat00005
And generate an implicit certificate (Cert x ) and an implicit signature (s) of S x , as shown in Equation 1 below.

Figure 112017128292613-pat00006
Figure 112017128292613-pat00006

Figure 112017128292613-pat00007
Figure 112017128292613-pat00007

SP(120)로부터 인증서(Certx)와 서명(s)를 수신하면, IoT 디바이스(Sx)는 수신된 인증서와 서명을 토대로 자신의 ECDH 개인키 ECDH 개인키

Figure 112017128292613-pat00008
와 ECDH 공개키
Figure 112017128292613-pat00009
를 도출할 수 있다. IoT 디바이스(Sx)의 공개키는 ECQV 인증서와 SP(120)의 공개키 QSP만 주어진다면 하기 수학식 2와 같이 도출이 가능하다.Upon receiving the certificate (Cert x ) and signature (s) from the SP 120, the IoT device (S x ) based on the received certificate and signature, the ECDH private key ECDH private key
Figure 112017128292613-pat00008
And ECDH public keys
Figure 112017128292613-pat00009
Can be derived. The public key of the IoT device S x may be derived as shown in Equation 2 below if only the ECQV certificate and the public key Q SP of the SP 120 are given.

Figure 112017128292613-pat00010
Figure 112017128292613-pat00010

접근 제어(access control) 정보 발행Issuance of access control information

SP(120)는 클라이언트(CA)에 대한 접근 제어 서버 역할도 수행할 수 있다. 즉, 인가된 클라이언트(CA)에게는 접근이 허용되는 IoT 디바이스들이 속한 특정 서브 그룹이 할당되고, 거기에 속하는 IoT 디바이스들에 대한 접근만이 허용된다. 특히, 클라이언트의 역할에 따라서 할당된 서브 그룹 내에서 접근이 허용되는 IoT 디바이스들을 추가적으로 제한 할 수도 있다. 도 1에서는, 서브 그룹(Sub1)에 속한 IoT 디바이스들(S1, S2, S3, S4, S5) 중에서 4개의 IoT 디바이스(S1, S2, S3, S4)가 속한 그룹에 대해서, 클라이언트(CA)가 접근이 가능한 것을 가정하고 있다.SP (120) may perform access control server for the client (C A). That is, the authorized client C A is assigned a specific subgroup to which the IoT devices to which access is allowed are assigned, and only access to IoT devices belonging thereto is allowed. In particular, depending on the role of the client it may further limit the IoT devices that are allowed to access in the assigned subgroup. In FIG. 1, four IoT devices S 1 , S 2 , S 3 , and S 4 are among IoT devices S 1 , S 2 , S 3 , S 4 , and S 5 belonging to a subgroup Sub 1 . for a group of which, it is assumed that access is possible, the client (C a).

이와 같이, 클라이언트(CA)가 접근 가능한 IoT 디바이스들의 리스트(즉, 접근 제어 리스트(access control list))를 클라이언트(CA)의 '캐퍼빌리티 리스트(capability list, CLA)'라 정의할 수 있으며, SP(120)는 클라이언트(CA)의 캐퍼빌리티 리스트(CLA)에 대응하는 캐퍼빌리티 ID(capability I, capIDA)를 발행할 수 있다. As such, the list of IoT devices accessible to the client C A (ie, an access control list) may be defined as a 'capability list (CL A )' of the client C A. In addition, the SP 120 may issue a capability ID (capability I, capID A ) corresponding to the capability list CL A of the client C A.

클라이언트(CA)가 자체적으로 ECDH 개인키 및 공개키 쌍(

Figure 112017128292613-pat00011
)을 가지고 있다고 가정할 때, 클라이언트(CA)는 자신의 캐퍼빌리티 리스트(CLA)에 포함된 하나의 IoT 디바이스와의 '초기DTLS 핸드쉐이크'를 진행할 때에는 해당 IoT 디바이스의 ECQV 인증서 및 인증된 RPK 모드를 사용할 수 있다. 초기 DTLS 핸드쉐이크 과정에서 해당 IoT 디바이스는 PSK 토큰을 생성해서 클라이언트(CA) 에게 발행할 수 있다. 클라이언트(CA)는 캐퍼빌리티 리스트(CLA)에 속한 다른 IoT 디바이스와의 '후속 DTLS 핸드쉐이크'에서는 초기 DTLS 핸드쉐이크 절차에서 발행된 PSK 토큰을 사용해서 센서 디바이스와 간의 핸드쉐이크 계산 복잡도를 줄일 수 있다. Client (C A ) itself establishes an ECDH private and public key pair (
Figure 112017128292613-pat00011
Assuming that the client C A is initiating a 'initial DTLS handshake' with one IoT device included in its capability list (CL A ), the ECQV certificate and authenticated RPK mode is available. During the initial DTLS handshake, the IoT device can generate and issue a PSK token to the client C A. The client C A uses the PSK token issued in the initial DTLS handshake procedure in the 'subsequent DTLS handshake' with another IoT device in the capability list CL A to reduce the complexity of the handshake calculations between the sensor device and the sensor device. Can be.

이와 같은 캐퍼빌리티 리스트와 캐퍼빌리티 ID는 하나의 예로서 다음과 같이 구성될 수 있다.Such a capability list and a capability ID may be configured as follows as an example.

앞서 언급된 바와 같이, 인가된 클라이언트(CA)는 정의된 캐퍼빌리티 리스트(CLA)에 따라 접근이 허용된 IoT 디바이스들에 접근할 수 있다. 캐퍼빌리티 리스트(에 따른 접근 제어를 내재시키기 위해 가 루트 해시노드(root hash node)가 되는 Merkle 트리를 정의할 수 있다.As mentioned above, the authorized client C A may access IoT devices that are allowed access according to the defined capability list CL A. You can define a Merkle tree that becomes the root hash node to embed access control according to the capability list.

도 2는 본 발명의 일 실시예에 따른 DTLS 기반의 종단 간 보안 방법에서 접근 제어 리스트인 캐퍼빌리티 리스트의 구성 예를 설명하기 위한 개념도이다.2 is a conceptual diagram illustrating a configuration example of a capability list as an access control list in a DTLS-based end-to-end security method according to an embodiment of the present invention.

도 2를 참조하면, 트리 상의 각 리프 노드(leaf node)들이 캐퍼빌리티 리스트(CLA)를 구성하는 각 IoT 디바이스들에 대응될 수 있으며, 이를 통해서 포화 이진 트리가 정의될 수 있다. 이때, 클라이언트(CA)의 캐퍼빌리티 리스트에 상응하는 Merkle 트리는 아래와 같은 알고리즘1에 의해서 정의 가능하다.Referring to FIG. 2, each leaf node on the tree may correspond to each IoT device constituting a capability list (CLA), through which a saturated binary tree may be defined. At this time, it can be defined by the Merkle tree algorithm 1 shown below which corresponds to the capper Stability list of clients (C A).

[알고리즘1][Algorithm 1]

주어진 S1, S2, ..., Sl

Figure 112017128292613-pat00012
Given S 1 , S 2 , ..., S l
Figure 112017128292613-pat00012

Figure 112017128292613-pat00013
Figure 112017128292613-pat00013

Figure 112017128292613-pat00014
Figure 112017128292613-pat00015
에 대해서
Figure 112017128292613-pat00016
를 계산
Figure 112017128292613-pat00014
Wow
Figure 112017128292613-pat00015
about
Figure 112017128292613-pat00016
Calculate

리프 노드에서 루트 해시 노드까지의 경로에 있는 노드의 하위 해시 노드들을 서브시디어리(subsidiary) 노드로 정의할 수 있다(예컨대, 도 2에서 h20의 서브시디어리는 h21과 h11이 됨). 이때, AuthA는 리프 노드와 해당 리프노드의 서브시디어리 노드들을 통해 계산이 가능하다(h20이 주어지면 모든 리프 노드에서부터 시작해서 계산하지 않고 h21과 h11를 통해서 계산 할 수 있다). 이를 위해 다음의 함수를 정의한다. 리프 노드(Sx)와 그에 따른 Subsidiaryx로부터

Figure 112017128292613-pat00017
를 통해서 루트 해시 노드가 계산된다(
Figure 112017128292613-pat00018
). AuthA는 클라이언트(CA)가 자신의 캐퍼빌리티 리스트(CLA)에 속한 IoT 디바이스들에 대한 접근 권한이 있음을 지시하는 캐퍼빌리티 ID(CapIDA)를 구성하는데 사용된다. Subordinate hash nodes of a node in the path from the leaf node to the root hash node may be defined as subsidiary nodes (for example, in FIG. 2, the sub-diaries of h 20 become h 21 and h 11 ). . At this time, Auth A can be calculated through the leaf node and subordinate node nodes of the leaf node (if h 20 is given, it can be calculated through h 21 and h 11 without starting from all leaf nodes). To do this, define the following function: From leaf node (Sx) and thus Subsidiary x
Figure 112017128292613-pat00017
The root hash node is computed through
Figure 112017128292613-pat00018
). Auth A is used to construct a Capability ID CapID A indicating that the client C A has access to IoT devices belonging to its Capability List CL A.

캐퍼빌리티 ID의 발급을 위해서는 SP(120)과 클라이언트(CA, 130) 간에 다음과 같은 프로토콜1이 수행될 수 있다. 이때, 하기 프로토콜1은 TLS로 보호되는 것으로 가정할 수 있으나, 클라이언트와 SP 간의 보안연결이 어떻게 설정되는지는 본 발명의 범위를 벗어난다.For the issuance of the capper metastability ID it has the following protocol 1 as can be performed between SP (120) and the client (C A, 130). In this case, the following protocol 1 may be assumed to be protected by TLS, but how the secure connection between the client and the SP is established is outside the scope of the present invention.

[프로토콜 1] [Protocol 1]

Figure 112017128292613-pat00019
Figure 112017128292613-pat00019

Figure 112017128292613-pat00020
Figure 112017128292613-pat00020

프로토콜1에 따라, 클라이언트(CA, 130)는 자신의 ECDH 공개키/개인키 쌍(QA, qA)을 생성하고 SP(120)에게 (CA, Sx, QA)를 전송하여 캐퍼빌리티 ID 발급을 요청할 수 있다. 여기서 IoT 디바이스(Sx)가 클라이언트(CA)가 자신이 접근 권한을 가진 IoT 디바이스들(즉, 캐퍼빌리티 리스트에 속한 IoT 디바이스들) 중에서 최초로 접근하고자 하는 IoT 디바이스에 해당된다. SP(120)는 클라이언트(CA)에게 허용되는 IoT 디바이스들의 목록인 캐퍼빌리티 리스트(CLA)를 결정하고, IoT 디바이스(Sx)가 캐퍼빌리티 리스트(CLA)에 속하는 지를 검사한 이후에 CapIDA=H(Kx, QA, AuthA)를 생성해서 클라이언트(CA)에게 전송한다. Kx는 SP와 Sx사이에 미리 공유된 대칭키이다.According to protocol 1, the client C A 130 generates its ECDH public / private key pair Q A , q A and sends the CA 120 (CA, Sx, QA) to the capability ID. You can request issuance. Herein, the IoT device S x corresponds to an IoT device to which the client C A first attempts to access among IoT devices (ie, IoT devices belonging to a capability list ) to which the client C A has access. The SP 120 determines the capability list CL A , which is a list of IoT devices allowed to the client C A , and after checking whether the IoT device S x belongs to the capability list CL A , Create CapID A = H (K x , Q A , Auth A ) and send it to the client (C A ). K x is a symmetric key shared in advance between SP and S x .

초기 DTLS 핸드쉐이크Initial DTLS Handshake

앞서 설명된 인증서 발급 절차에 의해서 IoT 디바이스(Sx)에 인증서가 발급되고, 접근 제어 정보 발행 절차에 의해서 클라이언트(CA)에게 캐퍼빌리티 ID가 발행되면, IoT 디바이스(Sx)와 클라이언트(CA) 간의 초기 DTLS 핸드쉐이크 과정이 수행된다.If the certificate is issued to the IoT device S x by the certificate issuing procedure described above, and the capability ID is issued to the client C A by the access control information issuing procedure, the IoT device S x and the client C An initial DTLS handshake process between A ) is performed.

클라이언트(CA)가 캐퍼빌리티 리스트(CLA)에 포함된 IoT 디바이스(Sx)에 최초로 접근한다고 가정하고, 양자 간에는 '초기 DTLS 핸드쉐이크'(하기 프로토콜2)가 수행될 수 있다.Assuming that the client CA first accesses the IoT device S x included in the capability list CL A , an 'initial DTLS handshake' (protocol 2) may be performed therebetween.

[프로토콜 2][Protocol 2]

Figure 112017128292613-pat00021
Figure 112017128292613-pat00021

Figure 112017128292613-pat00022
Figure 112017128292613-pat00022

Figure 112017128292613-pat00023
Figure 112017128292613-pat00023

Figure 112017128292613-pat00024
Figure 112017128292613-pat00024

클라이언트(CA)가 생성한 난수(NA)를 받은 IoT 디바이스(Sx)는 NA와 마찬가지로 자체 생성한 난수(Nx)와 앞서 인증서 발급 절차에서 설명된 자신의 ECQV 인증서 Certx를 클라이언트(CA)에게 전송한다. 클라이언트(CA)는 하기 수학식3과 같이 IoT 디바이스(Sx)의 ECDH 공개키(Qx)를 구한 이후에 인증키(authentication key; AKA)와 세션키(session key; SKA)를 도출할 수 있다. Client (C A) IoT device (S x) receiving the generated random number (N A) is N A and likewise the own ECQV certificate Cert x described in the issued earlier and a self-generated random number (N x) certificate process client Send to (C A ). After obtaining the ECDH public key Q x of the IoT device S x , the client C A obtains an authentication key AK A and a session key SK A as shown in Equation 3 below. Can be derived.

Figure 112017128292613-pat00025
Figure 112017128292613-pat00025

Figure 112017128292613-pat00026
Figure 112017128292613-pat00026

IoT 디바이스(Sx)에게 클라이언트(CA)의 공개키 QA와 capIDA, subsidiaryx를 보내면서 MIC(SKA)을 통해 전송 메시지의 무결성을 검증할 수 있다. 이때, IoT 디바이스(Sx) 측에서는 동일한 연산으로

Figure 112017128292613-pat00027
Figure 112017128292613-pat00028
를 계산하고 MIC(SKA)의 무결성을 확인하게 된다.Sending the public key Q A , capID A , and subsidiary x of the client C A to the IoT device S x can verify the integrity of the transmission message through the MIC (SK A ). At this time, the IoT device (S x ) side by the same operation
Figure 112017128292613-pat00027
Wow
Figure 112017128292613-pat00028
We calculate and verify the integrity of MIC (SK A ).

또한,

Figure 112017128292613-pat00029
의 도출을 통해 캐퍼빌리티 ID를 계산하고 클라이언트(CA, 130)으로부터 수신한 캐퍼빌리티 ID와 동일한지 확인한다. 동일하다면 클라이언트(CA)가 IoT 디바이스(Sx)에 접근할 수 있는 권한이 있다는 것이 확인된다. 마지막으로 후술될 '후속 DTLS 핸드쉐이크'에서 사용할 클라이언트(CA)의 PSK 토큰(
Figure 112017128292613-pat00030
)를 클라이언트(CA)에게 전달한다.Also,
Figure 112017128292613-pat00029
Through derivation of the capability ID is calculated and it is checked whether the same as the capability ID received from the client (C A , 130). If it is the same, it is confirmed that the client C A is authorized to access the IoT device S x . Finally, the PSK for client token (C A) used in the "subsequent DTLS handshake" to be described below (
Figure 112017128292613-pat00030
) To the client (C A ).

한편, 하기 표 1은 상술된 프로토콜2(초기 DTLS 핸드쉐이크) 및 후술될 프로토콜3(후속 DTLS 핸드쉐이크)의 설명에서 사용되는 기호들에 대한 설명으로, 프로토콜2 및 프로토콜3과 병행 참조 가능하다.Meanwhile, Table 1 below is a description of symbols used in the description of Protocol 2 (initial DTLS handshake) and Protocol 3 (subsequent DTLS handshake) to be described later, and can be referred to in parallel with Protocol 2 and Protocol 3.

Figure 112017128292613-pat00031
Figure 112017128292613-pat00031

후속 DTLS 핸드쉐이크Subsequent DTLS Handshake

클라이언트(CA)가 자신의 캐퍼빌리티 리스트(CLA)에 속한 IoT 디바이스들 중 하나인 IoT 디바이스(Sx)와 프로토콜2에 따른 초기 DTLS 핸드쉐이크 절차를 수행하여, PSK 토큰를 획득한 경우, 클라이언트(CA)와 상기 캐퍼빌리티 리스트(CLA)에 속한 다른 IoT 디바이스들과의 핸드쉐이크(즉, 후속 DTLS 핸드쉐이크)는 획득된 PSK 토큰에 기반한 PSK 보안 모드로 수행될 수 있다.If the client C A acquires a PSK token by performing an initial DTLS handshake procedure according to protocol 2 with the IoT device S x , which is one of the IoT devices belonging to its capability list CL A , the client Handshake (ie, subsequent DTLS handshake) between (C A ) and other IoT devices belonging to the capability list CL A may be performed in the PSK security mode based on the acquired PSK token.

[프로토콜 3][Protocol 3]

Figure 112017128292613-pat00032
Figure 112017128292613-pat00032

Figure 112017128292613-pat00033
Figure 112017128292613-pat00033

Figure 112017128292613-pat00034
Figure 112017128292613-pat00034

Figure 112017128292613-pat00035
Figure 112017128292613-pat00035

초기 DTLS 핸드쉐이크를 마친 클라이언트(CA)가 접근 권한을 가진 다른 IoT 디바이스에 접근할 경우에는 후속 DTLS 핸드쉐이크가 진행된다. 상호 교환된 난수들과 인증키를 기반으로

Figure 112017128292613-pat00036
를 도출하고
Figure 112017128292613-pat00037
와 Subsidiaryx'를 Sx'에게 전달한다. When the client (C A ), which has completed the initial DTLS handshake, accesses another IoT device with access rights, a subsequent DTLS handshake is performed. Based on the interchanged random numbers and the authentication key
Figure 112017128292613-pat00036
To derive
Figure 112017128292613-pat00037
And Subsidiary x ' to S x '.

Sx'는 Sx와 동일한 서브 집합에 속해 있기 때문에 GKi을 이미 알고 있다. 따라서 Sx'는 AuthA를 계산하고 클라이언트(CA)가 전송했던 pskTKA의 AuthA와 동일한지 확인하며, 동일하다면 CA는 Sx'에 접근 할 수 있는 권한이 있다는 것이 입증된다. Sx' 역시

Figure 112017128292613-pat00038
를 계산하고 마지막 메시지의 전송을 통해 자신에 대한 인증을 수행하게 된다.S x 'already knows GK i because it belongs to the same subset as S x . Therefore, S x is proved that there is a permission to access the 'calculates the Auth A and client (C A) is equal and determine the Auth A pskTK of A, if A is equal to C x S was transmitted. S x '' too
Figure 112017128292613-pat00038
Calculate and authenticate yourself by sending the last message.

도 3은 본 발명의 일 실시예에 따른 DTLS 기반의 종단 보안 방법에서 사용되는 DTLS 메시지의 구성을 설명하기 위한 개념도이다.FIG. 3 is a conceptual diagram illustrating a configuration of a DTLS message used in a DTLS-based end security method according to an embodiment of the present invention.

도 3을 참조하면, 본 발명에서 사용되는 DTLS 메시지들은 총 6개의 메시지 freight들(310 내지 360)로 구성되며 인증서(certificate) 메시지 필드(340-1)를 수정하여 S1의 인증서 Certx과 capIDA가 탑재되며 클라이언트키 교환(clientKey exchange) 메시지 필드(350-1)에 Subsidiaryx을 탑재할 수 있다. 이 후에 동일 서브 집합의 Sx'와 후속 DTLS 핸드쉐이크를 수행 할 때에는 사용될 PSK 토큰가 NewSessionTicket 필드(360-1)에 탑재될 수 있다.Referring to FIG. 3, DTLS messages used in the present invention are composed of a total of six message freights 310 to 360, and by modifying the certificate message field 340-1, the certificate Cert x and capID of S 1 . A is loaded and Subsidiary x can be loaded in the clientKey exchange message field 350-1. Thereafter, the PSK token to be used when performing the subsequent subset of S x 'and the subsequent DTLS handshake may be loaded in the NewSessionTicket field 360-1.

한편, 도 3에서의 단계(①; 310~330)는 보안협상 단계, 단계(②; 340)는 키 교환 단계, 단계(③; 350~460)는 키확인 단계를 의미할 수 있다.On the other hand, step (①; 310 ~ 330) in Figure 3 may be a security negotiation step, step (②; 340) may be a key exchange step, step (③; 350 ~ 460) may mean a key verification step.

이하, 도 4 내지 도 6에서는, 본 발명의 일 실시예에 따른 DTLS 기반의 종단간 보안 방법이 실제로 IoT 디바이스, 클라이언트, SP 상에서 수행되는 과정을 구체적으로 설명하기 위한 흐름도들이다.4 to 6 are flowcharts for describing in detail a process of performing a DTLS-based end-to-end security method on an IoT device, a client, and an SP according to an embodiment of the present invention.

도 4 내지 도 6에서 설명되는 방법들은 적어도 하나의 그룹으로 구성된 IoT 디바이스들, 적어도 하나의 클라이언트, 이들 간을 중재하는 SP로 구성된 IoT 환경을 전제로 하고 있다. 특히, 상기 적어도 하나의 그룹 중 제1 그룹에 속한 IoT 디바이스들 중에서 제1 IoT 디바이스, 상기 적어도 하나의 클라이언트 중 상기 제1 IoT 디바이스에 대한 접근 권한을 가진(즉, 상기 제1 IoT 디바이스를 자신의 캐퍼빌리티 리스트에 포함하고 있는) 클라이언트, 상기 제1 IoT 디바이스와 상기 클라이언트를 중재하는 보안 프록시(SP)의 동작을 설명하고 있다.The methods described in FIGS. 4 to 6 assume an IoT environment composed of at least one group of IoT devices, at least one client, and an SP that mediates between them. Particularly, among the IoT devices belonging to the first group of the at least one group, the first IoT device and the at least one client have access rights to the first IoT device (that is, the first IoT device has its own right). The operation of the client (included in the capability list), the first IoT device and the security proxy (SP) to mediate the client is described.

도 4는 본 발명의 일 실시예에 따른 DTLS 기반의 종단 간 보안 방법이 IoT 디바이스에서 수행되는 측면을 설명하기 위한 흐름도이다.4 is a flowchart illustrating an aspect in which a DTLS-based end-to-end security method is performed in an IoT device according to an embodiment of the present invention.

도 4를 참조하면, 상술된 IoT 환경에서, 상기 IoT 디바이스들 중 제1 IoT 디바이스(Sx)는, 먼저 SP에게 자신에 대한 인증서 발행을 요청하는 단계(S410); 상기 SP로부터 인증서 및 서명을 수신하고, 상기 인증서 및 서명과 상기 SP의 공개키를 이용하여 자신의 개인키 및 공개키를 도출하는 단계(S420); 및 상기 인증서 및 상기 클라이언트의 공개키에 기반한초기 DTLS 핸드쉐이크를 상기 클라이언트와 수행하는 단계(S430)를 포함하여 구성될 수 있다. 이때, 상기 초기 DTLS 핸드쉐이크 과정에서 상기 제1그룹에 속한 다른 IoT 디바이스와 상기 클라이언트 간의 후속 DTLS 핸드쉐이크에서 사용될 상기 클라이언트의 PSK(pre-shared key) 토큰이 상기 클라이언트에게 제공될 수 있다.Referring to FIG. 4, in the above-described IoT environment, a first IoT device S x of the IoT devices may first include requesting a SP to issue a certificate for itself (S410); Receiving a certificate and a signature from the SP and deriving its own private and public key using the certificate and the signature and the public key of the SP (S420); And performing an initial DTLS handshake with the client based on the certificate and the public key of the client (S430). In this case, the client may be provided with a PSK token of the client to be used in a subsequent DTLS handshake between another IoT device belonging to the first group and the client in the initial DTLS handshake process.

이때, 앞서 인증서 발급 절차에서 설명된 바와 같이, SP가 발행하는 인증서는 ECQV(Elliptic Curve Qu-Vanstone) 기반 인증서이며, 상기 서명은 상기 인증서의 제2 역상 저항성 해쉬 함수(second pre-image resistant hash function) 값에 기반하여 생성될 수 있다.At this time, as described in the certificate issuing procedure, the certificate issued by the SP is an Elliptic Curve Qu-Vanstone (ECQV) -based certificate, and the signature is a second pre-image resistant hash function of the certificate. Can be generated based on the value of.

또한, 상기 초기 DTLS 핸드쉐이크는, 상기 클라이언트로부터 난수(NA)를 수신하는 단계; 상기 클라이언트에게 상기 인증서 및 난수(Nx)를 전달하는 단계; 기 클라이언트로부터, 상기 클라이언트의 공개키(QA), 상기 클라이언트의 캐퍼빌리티 ID, 상기 캐퍼빌리티 ID를 검증하기 위한 값, 및 상기 인증서와 상기 SP의 공개키를 이용하여 도출된 인증키(authentication key)와 세션키(session key)의 무결성(integrity) 검증 코드를 수신하는 단계; 인증키와 세션키를 계산하고 계산된 인증키와 세션키의 무결성을 상기 무결성 검증 코드를 이용하여 확인하며, 상기 캐퍼빌리티 ID를 검증하기 위한 값을 이용하여 상기 캐패빌리티 ID를 검증하여, 상기 클라이언트의 상기 제1 그룹에 대한 접근 권한을 확인하는 단계; 및 상기 무결성과 상기 접근 권한이 확인된 경우, 상기 제1그룹에 속한 다른 IoT 디바이스와 상기 클라이언트 간의 후속 DTLS 핸드쉐이크에서 사용될 상기 클라이언트의 PSK(pre-shared key) 토큰을 상기 클라이언트에게 전달하는 단계를 포함하여 구성될 수 있다.The initial DTLS handshake may further include receiving a random number N A from the client; Delivering the certificate and a random number (N x ) to the client; An authentication key derived from an existing client using the public key Q A of the client, the capability ID of the client, a value for verifying the capability ID, and the certificate and the public key of the SP And receiving an integrity verification code of the session key; Computing an authentication key and a session key, confirming the calculated integrity of the authentication key and the session key by using the integrity verification code, and verifying the capability ID by using a value for verifying the capability ID. Confirming access rights for the first group of; And when the integrity and the access right are verified, forwarding the client's pre-shared key (PSK) token to be used in a subsequent DTLS handshake between another IoT device belonging to the first group and the client. It can be configured to include.

한편, 상기 캐퍼빌리티 ID는 상기 제1 그룹에 속한 IoT 디바이스들 각각이 리프 노드(leaf node)에 위치한 Merkle 트리 상에서 정의된 루트 해시 노드(root hash node), 상기 클라이언트의 공개키, 및 상기 SP와 상기 제1 IoT 디바이스간에 미리 공유된 공개키를 이용하여 생성되며, 상기 캐퍼빌리티 ID를 검증하기 위한 값은, 상기 Merkle 트리 상에서 상기 제1 IoT 디바이스의 서브시디어리(subsidiary) 노드 값일 수 있다.Meanwhile, the capability ID includes a root hash node, a public key of the client, and the SP defined in a Merkle tree in which each of IoT devices belonging to the first group is located in a leaf node. The value for verifying the capability ID generated by using a public key shared among the first IoT devices in advance may be a subsidiary node value of the first IoT device on the Merkle tree.

도 5는 본 발명의 일 실시예에 따른 DTLS 기반의 종단 간 보안 방법이 클라이언트에서 수행되는 측면을 설명하기 위한 흐름도이다.5 is a flowchart illustrating an aspect in which a DTLS-based end-to-end security method is performed in a client according to an embodiment of the present invention.

도 5를 참조하면, 상술된 IoT 환경에서, 상기 클라이언트의 동작 방법은 상기 SP에게 상기 제1 그룹에 속한 IoT 디바이스들에 대한 접근 권한을 지시하는 캐퍼빌리티 ID의 발급을 요청하고 상기 캐퍼빌리티 ID를 수신하는 단계(S510); 및 상기 제1 그룹에 속한 IoT 디바이스들 중 제1 IoT 디바이스와 상기 제1 IoT 디바이스의 인증서 및 상기 클라이언트의 공개키에 기반한 초기 DTLS 핸드쉐이크를 수행하는 단계(S520)를 포함할 수 있다. 이때, 상기 초기 DTLS 핸드쉐이크 과정에서 상기 제1그룹에 속한 다른 IoT 디바이스와 상기 클라이언트 간의 후속 DTLS 핸드쉐이크에서 사용될 상기 클라이언트의 PSK (pre-shared key) 토큰이 상기 제1 IoT 디바이스로부터 제공될 수 있다.Referring to FIG. 5, in the above-described IoT environment, the method of operating the client requests the SP for issuance of a capability ID indicating an access right to IoT devices belonging to the first group and sets the capability ID. Receiving step (S510); And performing an initial DTLS handshake based on a certificate of the first IoT device and the first IoT device and the public key of the client, among the IoT devices belonging to the first group (S520). In this case, a pre-shared key (PSK) token of the client to be used in a subsequent DTLS handshake between another IoT device belonging to the first group and the client in the initial DTLS handshake process may be provided from the first IoT device. .

상기 제1 IoT 디바이스의 인증서는 ECQV(elliptic curve Qu-Vanstone) 기반 인증서이며, 상기 서명은 상기 인증서의 제2 역상 저항성 해쉬 함수(second pre-image resistant hash function) 값에 기반하여 생성될 수 있다.The certificate of the first IoT device is an elliptic curve Qu-Vanstone (ECQV) based certificate, and the signature may be generated based on a second pre-image resistant hash function value of the certificate.

상기 초기 DTLS 핸드쉐이크는, 상기 제1 IoT 디바이스에게 난수(NA)를 전달하는 단계; 상기 제1 IoT 디바이스로부터 상기 인증서 및 난수(Nx)를 수신하는 단계; 상기 클라이언트의 공개키(QA), 상기 클라이언트의 캐퍼빌리티 ID, 상기 캐퍼빌리티 ID를 검증하기 위한 값, 및 상기 인증서와 상기 SP의 공개키를 이용하여 도출된 인증키(authentication key) 및 세션키(session key)의 무결성(integrity) 검증 코드를 상기 제1 IoT 디바이스에게 전달하는 단계; 및 상기 인증키 및 세션키의 무결성과 상기 캐퍼빌리티 ID가 지시하는 접근 권한이 확인된 경우, 상기 제1그룹에 속한 다른 IoT 디바이스와 상기 클라이언트 간의 후속 DTLS 핸드쉐이크에서 사용될 상기 클라이언트의 PSK(pre-shared key)키를 상기 제 IoT 디바이스로부터 수신하는 단계를 포함하여 구성될 수 있다.The initial DTLS handshake comprises: passing a random number N A to the first IoT device; Receiving the certificate and random number N x from the first IoT device; A public key (Q A ) of the client, a capability ID of the client, a value for verifying the capability ID, and an authentication key and a session key derived using the certificate and the public key of the SP delivering an integrity verification code of a session key to the first IoT device; And the PSK of the client to be used in a subsequent DTLS handshake between another IoT device belonging to the first group and the client when the integrity of the authentication key and session key and the access authority indicated by the capability ID are confirmed. shared key) key may be received from the first IoT device.

상기 인증키와 세션키의 무결성은 상기 제1 IoT 디바이스에서 계산한 인증키와 세션키의 무결성을 상기 무결성 검증 코드를 이용하여 확인하며, 상기 접근 권한은 상기 캐퍼빌리티 ID를 검증하기 위한 값을 이용하여 상기 캐패빌리티 ID를 검증하여 수행된다. The integrity of the authentication key and the session key confirms the integrity of the authentication key and the session key calculated by the first IoT device using the integrity verification code, and the access right uses a value for verifying the capability ID. By verifying the capability ID.

상기 캐퍼빌리티 ID는 상기 제1 그룹에 속한 IoT 디바이스들 각각이 리프 노드(leaf node)에 위치한 Merkle 트리 상에서 정의된 루트 해시 노드(root hash node) 값, 상기 클라이언트의 공개키, 및 상기 SP와 상기 제1 IoT 디바이스간에 미리 공유된 공개키를 이용하여 생성될 수 있으며, 상기 캐퍼빌리티 ID를 검증하기 위한 값은, 상기 Merkle 트리 상에서 상기 제1 IoT 디바이스의 서브시디어리(subsidiary) 노드 값일 수 있다.The capability ID is a root hash node value defined on a Merkle tree where each of IoT devices belonging to the first group is located in a leaf node, a public key of the client, and the SP and the SP. It may be generated using a public key shared in advance between first IoT devices, and a value for verifying the capability ID may be a subsidiary node value of the first IoT device on the Merkle tree.

도 6은 본 발명의 일 실시예에 따른 DTLS 기반의 종단 간 보안 방법이 SP에서 수행되는 측면을 설명하기 위한 흐름도이다.6 is a flowchart illustrating an aspect in which a DTLS-based end-to-end security method is performed in an SP according to an embodiment of the present invention.

도 6을 참조하면, 상술된 IoT 환경에서, 상기 SP의 동작 방법은 상기 클라이언트로부터 상기 제1 IoT 디바이스에 대한 인증서 발행 요청을 수신하고, 상기 제1 IoT 디바이스에게 발행된 인증서 및 서명을 송신하는 단계(S610); 상기 SP에게 상기 제1 그룹에 속한 IoT 디바이스들에 대한 접근 권한을 지시하는 캐퍼빌리티 ID의 발급 요청을 수신하고 발급된 캐퍼빌리티 ID를 전달하는 단계(S620)를 포함하여 구성될 수 있다.Referring to FIG. 6, in the above-described IoT environment, the method of operating the SP may include receiving a certificate issuance request for the first IoT device from the client and transmitting a certificate and a signature issued to the first IoT device. (S610); Receiving a request for issuance of a capability ID indicating the access right to IoT devices belonging to the first group to the SP, and transmitting the issued capability ID (S620).

상기 인증서는 ECQV(elliptic curve Qu-Vanstone) 기반 인증서이며, 상기 서명은 상기 인증서의 제2 역상 저항성 해쉬 함수(second pre-image resistant hash function) 값에 기반하여 생성될 수 있다.The certificate is an elliptic curve Qu-Vanstone (ECQV) based certificate, and the signature may be generated based on a value of a second pre-image resistant hash function of the certificate.

상기 캐퍼빌리티 ID는 상기 제1 그룹에 속한 IoT 디바이스들 각각이 리프 노드(leaf node)에 위치한 Merkle 트리 상에서 정의된 루트 해시 노드(root hash node), 상기 클라이언트의 공개키, 및 상기 SP와 상기 제1 IoT 디바이스간에 미리 공유된 공개키를 이용하여 생성될 수 있고, 상기 Merkle 트리 상에서 상기 제1 IoT 디바이스의 서브시디어리(subsidiary) 노드 값에 의해서 검증될 수 있다.The capability ID is a root hash node defined on a Merkle tree in which each of IoT devices belonging to the first group is located in a leaf node, a public key of the client, and the SP and the first agent. 1 may be generated using a public key shared in advance between IoT devices, and may be verified by a subsidiary node value of the first IoT device on the Merkle tree.

본 발명에 따른 보안 방법의 안정성Security of the security method according to the invention

본 발명에 따른 DTLS 기반 종단간 보안 방법에서는, IoT 디바이스들은 각각 다른 서브 그룹 중 하나의 그룹에만 속하기 때문에. 클라이언트는 정해진 캐퍼빌리티 리스트에 따라서 하나의 서브 그룹에만 속하는 IoT 디바이스에 접근 할 수 있게 된다. 특히, 클라이언트의 캐퍼빌리티 ID가 SP로부터 발행될 때,

Figure 112017128292613-pat00039
를 통해서 생성되기 때문에
Figure 112017128292613-pat00040
의 안전한 유지관리는 필수적이다. In the DTLS-based end-to-end security method according to the present invention, since IoT devices belong to only one group of different subgroups. Clients can access IoT devices belonging to only one subgroup according to a defined capability list. In particular, when the client's capability ID is issued from the SP,
Figure 112017128292613-pat00039
Because it is generated through
Figure 112017128292613-pat00040
Safe maintenance is essential.

본 발명에서 제안하는 DTLS 핸드쉐이크의 안전성은 캐퍼빌리티 ID를 위조할 수 없다는 사실에 기반을 두고 있다. 공격자(Adversary)가

Figure 112017128292613-pat00041
와 동일한 캐퍼빌리티 리스트에 접근이 가능한
Figure 112017128292613-pat00042
를 생성하기 위해서는
Figure 112017128292613-pat00043
를 통해서 생성이 되어야 한다.
Figure 112017128292613-pat00044
이고
Figure 112017128292613-pat00045
Figure 112017128292613-pat00046
일 때, 공격자는
Figure 112017128292613-pat00047
를 만족하는 ECDH 개인키/공개키
Figure 112017128292613-pat00048
쌍을 찾아내야 하는데,
Figure 112017128292613-pat00049
Figure 112017128292613-pat00050
를 만족하는
Figure 112017128292613-pat00051
를 찾을 수 없는 제2역상 저항성을 가지는 함수이기 때문에 불가능하다. 결국 캐퍼빌리티 ID를 위조하는 것 역시 불가능하게 된다.The safety of the DTLS handshake proposed in the present invention is based on the fact that the capability ID cannot be forged. The adversary
Figure 112017128292613-pat00041
Access to the same capabilities list
Figure 112017128292613-pat00042
In order to generate
Figure 112017128292613-pat00043
It should be created via
Figure 112017128292613-pat00044
ego
Figure 112017128292613-pat00045
Figure 112017128292613-pat00046
When is the attacker
Figure 112017128292613-pat00047
ECDH private key / public key satisfying
Figure 112017128292613-pat00048
I need to find a pair,
Figure 112017128292613-pat00049
Is
Figure 112017128292613-pat00050
To satisfy
Figure 112017128292613-pat00051
This is impossible because it is a function with a second reverse phase resistance that cannot be found. In the end, forging a capability ID is also impossible.

또한, 제안된 프로토콜에서는 IoT 디바이스와 SP사이에 대칭키(

Figure 112017128292613-pat00052
)가 설정된다고 가정하였다. 이 가정의 현실성은 다음과 같이 설명 가능하다. 각 IoT 디바이스들은 LoWPAN에 배치되면서 IPv6 주소 설정을 위해서 6LBR과 6LoWPAN ND(Neighbor Discovery) 프로토콜 그리고 IEEE 802.15.4의 Pan Coordinator와 Join 프로토콜을 수행하게 된다. IoT 디바이스가 LoWPAN에 안전하게 배치되도록 하기 위해서는 결국 센서 디바이스와 PC 또는 6LBR 사이에 초기 보안설정을 위한 보안 부트스트래핑(security booststrapping) 과정이 필요한데 이 과정을 통해서 센서 디바이스와 SP간의 대칭키 설정이 가능하게 된다.Also, in the proposed protocol, the symmetric key (
Figure 112017128292613-pat00052
) Is assumed. The reality of this assumption can be explained as follows. Each IoT device is deployed in LoWPAN and performs 6LBR, 6LoWPAN neighbor discovery (ND) protocol, and Pan Coordinator and Join protocol of IEEE 802.15.4 for IPv6 address setting. In order to securely deploy IoT devices in LoWPAN, a security booststrapping process is required for initial security configuration between the sensor device and the PC or 6LBR. This process enables the symmetric key configuration between the sensor device and the SP. .

본 발명에 따른 보안 방법의 성능 평가Performance evaluation of security method according to the present invention

실험 환경은 Contiki 3.0을 사용하였고 IoT 디바이스는 TI CC2538em 으로 ARM Cortex-M3 Processor (32 MHz)와 512KB Flash, 32KB RAM 그리고 4KM ROM을 지원한다. 6LBR은 Raspberry Pie 2에 CETIC 6lbr을 포팅(porting)해서 구성하였고 TinyDTLS를 CC2538em과 Ubuntu PC에 포팅하였다. cc2538em에서는 난수를 생성할 때 16-bit의 LFSR(Linear Feedback Shift Register)를 사용하는 PRNG(Pseudo Random Number Generator)를 제공한다. 타원곡선 매개변수는 secp256r1로 설정하고, 암호 해시함수는 SHA-256, 메시지 무결성 코드는 AES-CBC-MAC-128 그리고, 키 유도 함수 는 HMAC-SHA-256을 사용한다. The experimental environment used Contiki 3.0 and the IoT device is a TI CC2538em that supports the ARM Cortex-M3 Processor (32 MHz), 512KB Flash, 32KB RAM and 4KM ROM. The 6LBR was configured by porting CETIC 6lbr to Raspberry Pie 2 and porting TinyDTLS to CC2538em and Ubuntu PC. The cc2538em provides a Pseudo Random Number Generator (PRNG) that uses a 16-bit Linear Feedback Shift Register (LFSR) to generate random numbers. The elliptic curve parameter is set to secp256r1, the cipher hash function is SHA-256, the message integrity code is AES-CBC-MAC-128, and the key derivation function is HMAC-SHA-256.

하기 표 2는 다양한 보안모드에서 DTLS 핸드쉐이크에 사용된 cryptographic primitive들의 평균 실행시간을 보여준다.

Figure 112017128292613-pat00053
,
Figure 112017128292613-pat00054
,
Figure 112017128292613-pat00055
,
Figure 112017128292613-pat00056
Figure 112017128292613-pat00057
실행에 사용된 메시지 길이는 32바이트, 키 길이는 16바이트를 기준으로 하였다. ECQV는 단일 스칼라 곱셈을 이용한 실행시간, ECDSAc는 ECDSA 생성시간, ECDSAt는 ECDSA 검증시간 그리고 EnC는 대칭키 암호화 계산시간이다.Table 2 below shows the average execution time of cryptographic primitives used in the DTLS handshake in various security modes.
Figure 112017128292613-pat00053
,
Figure 112017128292613-pat00054
,
Figure 112017128292613-pat00055
,
Figure 112017128292613-pat00056
And
Figure 112017128292613-pat00057
The message length used for execution was based on 32 bytes and the key length was 16 bytes. ECQV is the execution time using single scalar multiplication, ECDSAc is the ECDSA creation time, ECDSAt is the ECDSA verification time, and EnC is the symmetric key encryption calculation time.

PrimitivePrimitive ParameterParameter Execution TimeExecution Time

Figure 112017128292613-pat00058
Figure 112017128292613-pat00058
secp256r1secp256r1 1100.83ms1100.83 ms
Figure 112017128292613-pat00059
Figure 112017128292613-pat00059
secp256r1secp256r1 1150.97ms1150.97 ms
Figure 112017128292613-pat00060
Figure 112017128292613-pat00060
secp256r1secp256r1 1249.09ms1249.09 ms
Figure 112017128292613-pat00061
Figure 112017128292613-pat00061
AES-CTR-128AES-CTR-128 0.38ms0.38ms
Figure 112017128292613-pat00062
Figure 112017128292613-pat00062
SHA-256SHA-256 0.39ms0.39 ms
Figure 112017128292613-pat00063
Figure 112017128292613-pat00063
AES-CBC-MAC-128AES-CBC-MAC-128 0.76ms0.76 ms
Figure 112017128292613-pat00064
Figure 112017128292613-pat00064
HMAC-SHA-256HMAC-SHA-256 6.10ms6.10 ms
Figure 112017128292613-pat00065
Figure 112017128292613-pat00065
16-bit LFSR
with radio ADC
16-bit LFSR
with radio ADC
0.06ms0.06 ms

도 7은 제안된 프로토콜과 함께 PSK, RPK, 인증서(ECDSA 탑재 X.509 인증서 및 ECQV 인증서) 모드로 DTLS 핸드쉐이크 지연시간을 측정한 결과를 도시한 그래프이다.7 is a graph showing the results of measuring DTLS handshake delay time in PSK, RPK, certificate (ECDSA-equipped X.509 certificate and ECQV certificate) mode together with the proposed protocol.

도 3에서의 각 단계(①②③)마다 클라이언트로부터 패킷을 수신, 처리하고 다시 클라이언트에게 패킷을 전송하는 실행시간을 서버 측에서 측정되었다(각 단계는 보안협상, 키교환 및 키확인 단계를 의미). Proposed 1, 2는 각각 초기 및 후속 DTLS 핸드쉐이크를 나타낸다. PSK, ECQV, Proposed 1 및 Proposed 2는 ①과 ②에서 큰 차이가 없다. RPK와 X.509의 경우, ②단계에서의 실행시간은 ECDSA 서명생성 작업으로 인해서 2,282 ms와 2.366 ms 로 측정되며 ③단계에서는 각각 3.391 ms 와 3.987 ms 으로 측정된다. ECQV 인증서 방식에서는 2개의 EC 스칼라 곱셈을 서버와 클라이언트가 각각 수행하지만 제안된 프로토콜에서는 서버에서 1번만 수행되어 소요되는 시간을 단축 시켰다. 그에 따라서 자원 제약적인 센서 디바이스가 가지는 부담도 줄일 수 있기 때문에 ECQV 인증서 방식 보다 Proposed 1이 더 효율적이다. ③에 대해서는 Proposed 2는 PSK와 견줄만한 실행시간을 보여주고 있다. In each step (①②③) in FIG. 3, the execution time of receiving and processing a packet from the client and transmitting the packet to the client was measured at the server side (each step means security negotiation, key exchange, and key verification). Proposed 1 and 2 represent the initial and subsequent DTLS handshake, respectively. PSK, ECQV, Proposed 1 and Proposed 2 do not show much difference in ① and ②. For RPK and X.509, the execution time in step ② is measured as 2,282 ms and 2.366 ms due to ECDSA signature generation, and in step ③ it is measured as 3.391 ms and 3.987 ms, respectively. In the ECQV certificate method, two EC scalar multiplications are performed by the server and the client, respectively, but the proposed protocol reduces the time required by performing only one time on the server. This reduces the burden on resource-constrained sensor devices, making Proposed 1 more efficient than ECQV authentication. As for (3), Proposed 2 shows execution time comparable to PSK.

도 8은 6LoWPAN 네트워크 상에서 각각의 보안 모드에 대한 DTLS 핸드쉐이크 왕복지연(Round Trip Delay)을 측정한 결과를 도시한 그래프이다.8 is a graph illustrating a result of measuring DTLS handshake round trip delay for each security mode on a 6LoWPAN network.

도 8을 참조하면, Proposed 1은 RPK 및 X.509 인증서 보안 모드에 비하여 현저히 짧은 왕복 지연 시간을 가지며, Proposer 2는 PSK 보안 모드에 거의 상응하는 왕복 지연 시간을 가짐을 알 수 있다. 한편, X.509 및 ECQV의 경우 CA와의 인증서 유효성 검사에 대한 지연은 포함되어 있지 않다. Referring to FIG. 8, it can be seen that Proposed 1 has a significantly shorter round-trip delay time compared to RPK and X.509 certificate security modes, and Proposer 2 has a round trip delay time corresponding to the PSK security mode. On the other hand, for X.509 and ECQV, there is no delay in certificate validation with the CA.

본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.The methods according to the invention can be implemented in the form of program instructions that can be executed by various computer means and recorded on a computer readable medium. Computer-readable media may include, alone or in combination with the program instructions, data files, data structures, and the like. The program instructions recorded on the computer readable medium may be those specially designed and constructed for the present invention, or may be known and available to those skilled in computer software.

컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. 또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다. Examples of computer readable media may include hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions may include high-level language code that can be executed by a computer using an interpreter, as well as machine code such as produced by a compiler. The hardware device described above may be configured to operate with at least one software module to perform the operations of the present invention, and vice versa. In addition, the above-described method or apparatus may be implemented by combining all or part of the configuration or function, or may be implemented separately.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. Although described above with reference to a preferred embodiment of the present invention, those skilled in the art will be variously modified and changed within the scope of the invention without departing from the spirit and scope of the invention described in the claims below I can understand that you can.

Claims (18)

적어도 하나의 그룹 중 제1 그룹에 속한 사물 인터넷(IoT) 디바이스들, 상기 제1 그룹에 속한 IoT 디바이스들에 대한 접근 권한을 가진 클라이언트, 및 상기 IoT 디바이스들과 상기 클라이언트 간에 존재하는 보안 프록시(SP; security proxy)를 포함한 IoT 환경에서, 상기 IoT 디바이스들 중 제1 IoT 디바이스(Sx)의 보안 동작 방법으로서,
상기 SP에게 자신에 대한 인증서 발행을 요청하는 단계;
상기 SP로부터 인증서 및 서명을 수신하고, 상기 인증서 및 서명과 상기 SP의 공개키를 이용하여 자신의 개인키 및 공개키를 도출하는 단계; 및
상기 인증서 및 상기 클라이언트의 공개키에 기반한, 인증서 모드로 진행되는 초기 DTLS 핸드쉐이크를 상기 클라이언트와 수행하는 단계를 포함하고,
상기 초기 DTLS 핸드쉐이크 과정에서 상기 제1그룹에 속한 다른 IoT 디바이스와 상기 클라이언트 간의 PSK(pre-shared key) 모드로 진행되는 후속 DTLS 핸드쉐이크에서 사용될 상기 클라이언트의 PSK 토큰이 상기 클라이언트에게 제공되는,
IoT 디바이스의 보안 동작 방법.
Internet of Things (IoT) devices belonging to a first group of at least one group, a client having access to IoT devices belonging to the first group, and a security proxy (SP) existing between the IoT devices and the client a security operation method of a first IoT device Sx among the IoT devices in an IoT environment including a security proxy,
Requesting the SP to issue a certificate for itself;
Receiving a certificate and a signature from the SP and deriving its own private and public key using the certificate and signature and the public key of the SP; And
Performing an initial DTLS handshake with the client in a certificate mode based on the certificate and the public key of the client,
In the initial DTLS handshake process, a PSK token of the client to be used in a subsequent DTLS handshake performed in a pre-shared key (PSK) mode between another IoT device belonging to the first group and the client is provided to the client.
How security works for IoT devices.
청구항 1에 있어서,
상기 인증서는 ECQV(elliptic curve Qu-Vanstone) 기반 인증서인,
IoT 디바이스의 보안 동작 방법.
The method according to claim 1,
The certificate is an ECQV (elliptic curve Qu-Vanstone) based certificate,
How security works for IoT devices.
청구항 2에 있어서,
상기 서명은 상기 인증서의 제2 역상 저항성 해쉬 함수(second pre-image resistant hash function) 값에 기반하여 생성되는,
IoT 디바이스의 보안 동작 방법.
The method according to claim 2,
The signature is generated based on a value of a second pre-image resistant hash function of the certificate,
How security works for IoT devices.
청구항 1에 있어서,
상기 초기 DTLS 핸드쉐이크는,
상기 클라이언트로부터 난수(NA)를 수신하는 단계;
상기 클라이언트에게 상기 인증서 및 난수(Nx)를 전달하는 단계;
상기 클라이언트로부터, 상기 클라이언트의 공개키(QA), 상기 클라이언트의 캐퍼빌리티 ID, 상기 캐퍼빌리티 ID를 검증하기 위한 값, 및 상기 인증서와 상기 SP의 공개키를 이용하여 도출된 인증키(authentication key)와 세션키(session key)의 무결성(integrity) 검증 코드를 수신하는 단계;
인증키와 세션키를 계산하고, 계산된 인증키와 세션키의 무결성을 상기 무결성 검증 코드를 이용하여 확인하며, 상기 캐퍼빌리티 ID를 검증하기 위한 값을 이용하여 상기 캐퍼빌리티 ID를 검증하여, 상기 클라이언트의 상기 제1 그룹에 대한 접근 권한을 확인하는 단계; 및
상기 무결성과 상기 접근 권한이 확인된 경우, 상기 제1그룹에 속한 다른 IoT 디바이스와 상기 클라이언트 간의 후속 DTLS 핸드쉐이크에서 사용될 상기 클라이언트의 PSK(pre-shared key) 토큰을 상기 클라이언트에게 전달하는 단계를 포함하는,
IoT 디바이스의 보안 동작 방법.
The method according to claim 1,
The initial DTLS handshake is
Receiving a random number N A from the client;
Delivering the certificate and a random number (N x ) to the client;
An authentication key derived from the client using the public key Q A of the client, the capability ID of the client, a value for verifying the capability ID, and the certificate and the public key of the SP And receiving an integrity verification code of the session key;
Computing an authentication key and a session key, confirming the calculated integrity of the authentication key and the session key using the integrity verification code, and verifying the capability ID using a value for verifying the capability ID. Checking access rights for the first group of clients; And
If the integrity and the access right are verified, passing the client's pre-shared key (PSK) token to be used in a subsequent DTLS handshake between another IoT device belonging to the first group and the client; doing,
How security works for IoT devices.
청구항 4에 있어서,
상기 캐퍼빌리티 ID는 상기 제1 그룹에 속한 IoT 디바이스들 각각이 리프 노드(leaf node)에 위치한 Merkle 트리 상에서 정의된 루트 해시 노드(root hash node), 상기 클라이언트의 공개키, 및 상기 SP와 상기 제1 IoT 디바이스간에 미리 공유된 공개키를 이용하여 생성되는,
IoT 디바이스의 보안 동작 방법.
The method according to claim 4,
The capability ID is a root hash node defined on a Merkle tree in which each of IoT devices belonging to the first group is located in a leaf node, a public key of the client, and the SP and the first agent. 1 generated using a public key shared in advance between IoT devices,
How security works for IoT devices.
청구항 5에 있어서,
상기 캐퍼빌리티 ID를 검증하기 위한 값은, 상기 Merkle 트리 상에서 상기 제1 IoT 디바이스의 서브시디어리(subsidiary) 노드 값인,
IoT 디바이스의 보안 동작 방법.
The method according to claim 5,
The value for verifying the capability ID is a subsidiary node value of the first IoT device on the Merkle tree,
How security works for IoT devices.
적어도 하나의 그룹 중 제1 그룹에 속한 사물 인터넷(IoT) 디바이스들, 상기 제1 그룹에 속한 IoT 디바이스들에 대한 접근 권한을 가진 클라이언트, 및 상기 IoT 디바이스들과 상기 클라이언트 간에 존재하는 보안 프록시(SP; security proxy)를 포함한 IoT 환경에서, 상기 클라이언트의 동작 방법으로서,
상기 SP에게 상기 제1 그룹에 속한 IoT 디바이스들에 대한 접근 권한을 지시하는 캐퍼빌리티 ID의 발급을 요청하고 상기 캐퍼빌리티 ID를 수신하는 단계; 및
상기 제1 그룹에 속한 IoT 디바이스들 중 제1 IoT 디바이스와 상기 제1 IoT 디바이스의 인증서 및 상기 클라이언트의 공개키에 기반한, 인증서 모드로 진행되는 초기 DTLS 핸드쉐이크를 수행하는 단계를 포함하고,
상기 초기 DTLS 핸드쉐이크 과정에서 상기 제1그룹에 속한 다른 IoT 디바이스와 상기 클라이언트 간의 PSK(pre-shared key) 모드로 진행되는 후속 DTLS 핸드쉐이크에서 사용될 상기 클라이언트의 PSK 토큰이 상기 제1 IoT 디바이스로부터 제공되는,
클라이언트의 보안 동작 방법.
Internet of Things (IoT) devices belonging to a first group of at least one group, a client having access to IoT devices belonging to the first group, and a security proxy (SP) existing between the IoT devices and the client In the IoT environment including a security proxy, as the operating method of the client,
Requesting the SP to issue a capability ID indicating access authority to IoT devices belonging to the first group and receiving the capability ID; And
Performing an initial DTLS handshake in a certificate mode based on a certificate of the first IoT device and the first IoT device and the public key of the client, among the IoT devices belonging to the first group;
In the initial DTLS handshake process, the PSK token of the client to be used in a subsequent DTLS handshake performed in a pre-shared key (PSK) mode between another IoT device belonging to the first group and the client is provided from the first IoT device. felled,
How the client works securely.
청구항 7에 있어서,
상기 제1 IoT 디바이스의 인증서는 ECQV(elliptic curve Qu-Vanstone) 기반 인증서인,
클라이언트의 보안 동작 방법.
The method according to claim 7,
The certificate of the first IoT device is an ECQV (elliptic curve Qu-Vanstone) based certificate,
How the client works securely.
청구항 7에 있어서,
서명은 상기 인증서의 제2 역상 저항성 해쉬 함수(second pre-image resistant hash function) 값에 기반하여 생성되는,
클라이언트의 보안 동작 방법.
The method according to claim 7,
The signature is generated based on the value of the second pre-image resistant hash function of the certificate,
How the client works securely.
청구항 7에 있어서,
상기 초기 DTLS 핸드쉐이크는,
상기 제1 IoT 디바이스에게 난수(NA)를 전달하는 단계;
상기 제1 IoT 디바이스로부터 상기 인증서 및 난수(Nx)를 수신하는 단계;
상기 클라이언트의 공개키(QA), 상기 클라이언트의 캐퍼빌리티 ID, 상기 캐퍼빌리티 ID를 검증하기 위한 값, 및 상기 인증서와 상기 SP의 공개키를 이용하여 도출된 인증키(authentication key) 및 세션키(session key)의 무결성(integrity) 검증 코드를 상기 제1 IoT 디바이스에게 전달하는 단계; 및
상기 인증키 및 세션키의 무결성과 상기 캐퍼빌리티 ID가 지시하는 접근 권한이 확인된 경우, 상기 제1그룹에 속한 다른 IoT 디바이스와 상기 클라이언트 간의 후속 DTLS 핸드쉐이크에서 사용될 상기 클라이언트의 PSK(pre-shared key)키를 상기 제 IoT 디바이스로부터 수신하는 단계를 포함하는,
클라이언트의 보안 동작 방법.
The method according to claim 7,
The initial DTLS handshake is
Delivering a random number N A to the first IoT device;
Receiving the certificate and random number N x from the first IoT device;
A public key (Q A ) of the client, a capability ID of the client, a value for verifying the capability ID, and an authentication key and a session key derived using the certificate and the public key of the SP delivering an integrity verification code of a session key to the first IoT device; And
When the integrity of the authentication key and the session key and the access authority indicated by the capability ID are confirmed, the PSK (pre-shared) of the client to be used in a subsequent DTLS handshake between another IoT device belonging to the first group and the client key) receiving a key from the first IoT device,
How the client works securely.
청구항 10에 있어서,
상기 인증키와 세션키의 무결성은 상기 제1 IoT 디바이스에서 계산한 인증키와 세션키의 무결성을 상기 무결성 검증 코드를 이용하여 확인하며, 상기 접근 권한은 상기 캐퍼빌리티 ID를 검증하기 위한 값을 이용하여 상기 캐퍼빌리티 ID를 검증하여 수행되는,
클라이언트의 보안 동작 방법.
The method according to claim 10,
The integrity of the authentication key and the session key confirms the integrity of the authentication key and the session key calculated by the first IoT device using the integrity verification code, and the access right uses a value for verifying the capability ID. Performing the verification by verifying the capability ID
How the client works securely.
청구항 7에 있어서,
상기 캐퍼빌리티 ID는 상기 제1 그룹에 속한 IoT 디바이스들 각각이 리프 노드(leaf node)에 위치한 Merkle 트리 상에서 정의된 루트 해시 노드(root hash node) 값, 상기 클라이언트의 공개키, 및 상기 SP와 상기 제1 IoT 디바이스간에 미리 공유된 공개키를 이용하여 생성되는,
클라이언트의 보안 동작 방법.
The method according to claim 7,
The capability ID is a root hash node value defined on a Merkle tree where each of IoT devices belonging to the first group is located in a leaf node, a public key of the client, and the SP and the SP. Generated using a public key shared in advance between the first IoT devices,
How the client works securely.
청구항 12에 있어서,
상기 캐퍼빌리티 ID를 검증하기 위한 값은, 상기 Merkle 트리 상에서 상기 제1 IoT 디바이스의 서브시디어리(subsidiary) 노드 값인,
클라이언트의 보안 동작 방법.
The method according to claim 12,
The value for verifying the capability ID is a subsidiary node value of the first IoT device on the Merkle tree,
How the client works securely.
적어도 하나의 그룹 중 제1 그룹에 속한 사물 인터넷(IoT) 디바이스들, 상기 제1 그룹에 속한 IoT 디바이스들에 대한 접근 권한을 가진 클라이언트, 및 상기 IoT 디바이스들과 상기 클라이언트 간에 존재하는 보안 프록시(SP; security proxy)를 포함한 IoT 환경에서, 상기 SP의 동작 방법으로서,
상기 클라이언트로부터 제1 IoT 디바이스에 대한 인증서 발행 요청을 수신하고, 상기 제1 IoT 디바이스에게 발행된 인증서 및 서명을 송신하는 단계; 및
상기 SP에게 상기 제1 그룹에 속한 IoT 디바이스들에 대한 접근 권한을 지시하는 캐퍼빌리티 ID의 발급 요청을 수신하고 발급된 캐퍼빌리티 ID를 전달하는 단계를 포함하며,
상기 캐퍼빌리티 ID는 상기 제1 그룹에 속한 IoT 디바이스들 각각이 리프 노드(leaf node)에 위치한 Merkle 트리 상에서 정의된 루트 해시 노드(root hash node), 상기 클라이언트의 공개키, 및 상기 SP와 상기 제1 IoT 디바이스간에 미리 공유된 공개키를 이용하여 생성되는,
보안 프록시의 보안 동작 방법.
Internet of Things (IoT) devices belonging to a first group of at least one group, a client having access to IoT devices belonging to the first group, and a security proxy (SP) existing between the IoT devices and the client In the IoT environment including a security proxy, the operation method of the SP,
Receiving a certificate issuance request for a first IoT device from the client, and transmitting a certificate and a signature issued to the first IoT device; And
Receiving a request for issuing a capability ID indicating the access right to IoT devices belonging to the first group to the SP and delivering the issued capability ID;
The capability ID is a root hash node defined on a Merkle tree in which each of IoT devices belonging to the first group is located in a leaf node, a public key of the client, and the SP and the first agent. 1 generated using a public key shared in advance between IoT devices,
How secure proxy works.
청구항 14에 있어서,
상기 인증서는 ECQV(elliptic curve Qu-Vanstone) 기반 인증서인,
보안 프록시의 보안 동작 방법.
The method according to claim 14,
The certificate is an ECQV (elliptic curve Qu-Vanstone) based certificate,
How secure proxy works.
청구항 15에 있어서,
상기 서명은 상기 인증서의 제2 역상 저항성 해쉬 함수(second pre-image resistant hash function) 값에 기반하여 생성되는,
보안 프록시의 보안 동작 방법.
The method according to claim 15,
The signature is generated based on a value of a second pre-image resistant hash function of the certificate,
How secure proxy works.
삭제delete 청구항 14에 있어서,
상기 캐퍼빌리티 ID는 상기 Merkle 트리 상에서 상기 제1 IoT 디바이스의 서브시디어리(subsidiary) 노드 값에 의해서 검증되는,
보안 프록시의 보안 동작 방법.
The method according to claim 14,
The capability ID is verified by a subsidiary node value of the first IoT device on the Merkle tree,
How secure proxy works.
KR1020170178185A 2017-12-22 2017-12-22 Dtls based end-to-end security method for internet of things device KR102032032B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170178185A KR102032032B1 (en) 2017-12-22 2017-12-22 Dtls based end-to-end security method for internet of things device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170178185A KR102032032B1 (en) 2017-12-22 2017-12-22 Dtls based end-to-end security method for internet of things device

Publications (2)

Publication Number Publication Date
KR20190084171A KR20190084171A (en) 2019-07-16
KR102032032B1 true KR102032032B1 (en) 2019-11-08

Family

ID=67474278

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170178185A KR102032032B1 (en) 2017-12-22 2017-12-22 Dtls based end-to-end security method for internet of things device

Country Status (1)

Country Link
KR (1) KR102032032B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102062338B1 (en) * 2019-10-10 2020-01-03 김흥중 Closed home IoT service system with authentication and authorization tool for external control
KR102305368B1 (en) * 2019-12-24 2021-09-27 순천향대학교 산학협력단 OAuth-based Secure Access Control System and Method for IoT Environment
KR102263391B1 (en) * 2019-12-24 2021-06-10 한전케이디엔주식회사 Power distribution security device for protection coordination
CN116781421B (en) * 2023-08-18 2023-12-01 广东广宇科技发展有限公司 Network authentication method based on DTLS

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100957821B1 (en) * 2003-12-24 2010-05-13 엔에이치엔(주) Method and Device of Data Encryption

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101688118B1 (en) * 2015-05-13 2016-12-22 주식회사 퓨쳐시스템 Security communication apparatus of internet of things environment and method thereof
KR102560805B1 (en) * 2016-05-30 2023-07-28 주식회사 알티캐스트 Method and apparatus for Providing Security Service of Peer to Peer Data in Internet of Things

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100957821B1 (en) * 2003-12-24 2010-05-13 엔에이치엔(주) Method and Device of Data Encryption

Also Published As

Publication number Publication date
KR20190084171A (en) 2019-07-16

Similar Documents

Publication Publication Date Title
Hammi et al. BCTrust: A decentralized authentication blockchain-based mechanism
Sciancalepore et al. Key management protocol with implicit certificates for IoT systems
Porambage et al. Two-phase authentication protocol for wireless sensor networks in distributed IoT applications
JP6670395B2 (en) System and method for distribution of identity-based key material and certificate
Garcia-Morchon et al. Securing the IP-based internet of things with HIP and DTLS
Saied et al. Lightweight collaborative key establishment scheme for the Internet of Things
KR102032032B1 (en) Dtls based end-to-end security method for internet of things device
Dos Santos et al. A DTLS-based security architecture for the Internet of Things
Li et al. iTLS: Lightweight transport-layer security protocol for IoT with minimal latency and perfect forward secrecy
US20170012778A1 (en) End-To-End Service Layer Authentication
CN105577384B (en) Method for protecting a network
Lavanya et al. Lightweight key agreement protocol for IoT based on IKEv2
JP2023024499A (en) System and method for enabling secure storage of large block chain over multiple storage nodes, which are implemented by computer
Satapathy et al. An ECC based lightweight authentication protocol for mobile phone in smart home
CN104378374A (en) SSL-based method and system for establishing communication
US20170155647A1 (en) Method for setting up a secure end-to-end communication between a user terminal and a connected object
Park et al. A group-oriented DTLS handshake for secure IoT applications
Sciancalepore et al. LICITUS: A lightweight and standard compatible framework for securing layer-2 communications in the IoT
Srikanth et al. An efficient Key Agreement and Authentication Scheme (KAAS) with enhanced security control for IIoT systems
KR101704540B1 (en) A method of managing group keys for sharing data between multiple devices in M2M environment
Khan et al. Resource efficient authentication and session key establishment procedure for low-resource IoT devices
Krishnasrija et al. A lightweight mutual and transitive authentication mechanism for IoT network
Arockia Baskaran et al. Testbed evaluation of Lightweight Authentication Protocol (LAUP) for 6LoWPAN wireless sensor networks
Bianchi et al. Flexible key exchange negotiation for wireless sensor networks
JP5614465B2 (en) Encryption communication device, proxy server, encryption communication device program, and proxy server program

Legal Events

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