KR102266654B1 - Mqtt-sn 프로토콜의 보안을 위한 mqtt-sn 보안 관리 방법 및 시스템 - Google Patents

Mqtt-sn 프로토콜의 보안을 위한 mqtt-sn 보안 관리 방법 및 시스템 Download PDF

Info

Publication number
KR102266654B1
KR102266654B1 KR1020190149781A KR20190149781A KR102266654B1 KR 102266654 B1 KR102266654 B1 KR 102266654B1 KR 1020190149781 A KR1020190149781 A KR 1020190149781A KR 20190149781 A KR20190149781 A KR 20190149781A KR 102266654 B1 KR102266654 B1 KR 102266654B1
Authority
KR
South Korea
Prior art keywords
topic
mqtt
terminal
security management
entities
Prior art date
Application number
KR1020190149781A
Other languages
English (en)
Other versions
KR20210061801A (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 KR1020190149781A priority Critical patent/KR102266654B1/ko
Publication of KR20210061801A publication Critical patent/KR20210061801A/ko
Application granted granted Critical
Publication of KR102266654B1 publication Critical patent/KR102266654B1/ko

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/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
    • H04L67/2809
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • 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/321Cryptographic 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 a third party or a trusted authority
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3242Cryptographic 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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/3297Cryptographic 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 time stamps, e.g. generation of time stamps

Abstract

MQTT-SN 프로토콜의 보안을 위한 MQTT-SN 보안 관리 방법 및 시스템이 개시된다. MQTT-SN 프로토콜의 보안을 위한 MQTT-SN 보안 관리 서버가 수행하는 MQTT-SN 보안 관리 방법은 MQTT-SN 프로토콜의 보안을 위한 디바이스 인증서를 생성하고 MQTT-SN 엔티티들에 디바이스 인증서를 송신하는 단계; 상기 MQTT-SN 엔티티들 간의 통신과 연관된 토픽 및 토픽 인증서를 생성하여 MQTT-SN 엔티티들 중 발행자 단말에 토픽 인증서를 송신하는 단계; 상기 토픽에 대한 개인키를 생성하여 MQTT-SN 엔티티들 중 구독자 단말에 송신하는 단계; 및 상기 MQTT-SN 엔티티들을 등록하는 단계를 포함하고, 상기 MQTT-SN 엔티티들은 발행자 단말, 구독자 단말 및 브로커 단말을 포함할 수 있다.

Description

MQTT-SN 프로토콜의 보안을 위한 MQTT-SN 보안 관리 방법 및 시스템{METHOD AND SYSTEM FOR MQTT-SN SECURITY MANAGEMENT FOR SECURITY OF MQTT-SN PROTOCOL}
본 발명은 MQTT-SN 프로토콜의 보안을 위한 MQTT-SN 보안 관리 방법 및 시스템에 관한 것으로서, 보다 구체적으로는 MQTT-SN 보안 관리 서버를 이용하여 MQTT-SN 프로토콜의 보안 관리를 수행하는 기술에 관한 것이다.
MQTT(Message Queuing Telemetry Transport) 프로토콜은 복수의 발행자 단말, 복수의 구독자 단말 및 브로커 단말 3가지 주체에 의하여 수행되는 통신 프로토콜이다. 발행자 단말은 브로커 단말에 특정 토픽에 대한 데이터를 송신하고, 구독자 단말은 브로커 단말을 통해 특정 토픽에 대한 데이터를 수신한다.
MQTT 프로토콜은 최근 IoT 통신 환경에 적합한 통신 기술로서 연구가 활발히 이루어지고 있다. MQTT-SN(MQTT-Sensor Network) 프로토콜은 MQTT 프로토콜을 리소스 제약이 있는 센서 네트워크에 적용한 프로토콜이다. MQTT-SN 프로토콜을 통한 통신은 리소스 제약으로 인하여 여러 보안 문제들이 발생할 수 있다.
종전의 MQTT-SN 프로토콜은 보안 문제를 해결하기 위해 SSL(Secure Socket Layer)/TLS(transport layer security)를 이용한 보안 방법을 적용한다. 그러나 이 경우 브로커 단말이 해킹되었을 때, 발행자 단말의 메시지가 해킹될 수 있다는 문제점이 있다.
본 발명은 MQTT-SN 프로토콜의 보안을 위한 MQTT-SN 보안 관리 방법 및 시스템을 제공한다. 본 발명의 MQTT-SN 보안 관리 방법에 따르면, 상호 인증(mutual authentication), 접근 제어(access control) 및 데이터 보안(data security)이 보장될 뿐만 아니라 브로커 단말에서 단말의 메시지를 읽을 수 없게 되어, 엔드-투-엔드(End-to-end) 보안이 강화된다.
또한, 본 발명은 ECQV(Elliptic Curve Qu-Vanstone) 인증서를 기반으로 하기 때문에, MQTT-SN 프로토콜의 환경과 같이 리소스 제약이 있는 환경에서도 적용될 수 있는 방법 및 시스템을 제공한다.
본 발명의 일실시예에 따른 MQTT-SN 프로토콜의 보안을 위한 MQTT-SN 보안 관리 서버가 수행하는 MQTT-SN 보안 관리 방법은 MQTT-SN 프로토콜의 보안을 위한 디바이스 인증서를 생성하고 MQTT-SN 엔티티들에 디바이스 인증서를 송신하는 단계; 상기 MQTT-SN 엔티티들 간의 통신과 연관된 토픽 및 토픽 인증서를 생성하여 MQTT-SN 엔티티들 중 발행자 단말에 토픽 인증서를 송신하는 단계; 상기 토픽에 대한 개인키를 생성하여 MQTT-SN 엔티티들 중 구독자 단말에 송신하는 단계; 및 상기 MQTT-SN 엔티티들을 등록하는 단계를 포함하고, 상기 MQTT-SN 엔티티들은 발행자 단말, 구독자 단말 및 브로커 단말을 포함할 수 있다.
상기 디바이스 인증서를 송신하는 단계는 MQTT-SN 엔티티들에 대해 각각 랜덤으로 값을 생성하는 단계; 상기 생성된 값을 이용하여 상기 MQTT-SN의 엔티티들의 디바이스 인증서 및 상기 MQTT-SN의 엔티티들에 대한 개인키를 생성하는 단계; 및 상기 MQTT-SN 엔티티들의 디바이스 인증서 및 상기 MQTT-SN의 엔티티들에 대한 개인키를 MQTT-SN 엔티티들에 전달하는 단계를 포함할 수 있다.
상기 디바이스 인증서를 송신하는 단계는 각 MQTT-SN 엔티티에 대한 개인키 및 상기 MQTT-SN 보안 관리 서버의 공개키를 생성하는 단계; 및 상기 MQTT-SN 엔티티에 대한 개인키 및 상기 MQTT-SN 보안 관리 서버의 공개키를 MQTT-SN 엔티티들에 송신하는 단계를 포함할 수 있다.
상기 발행자 단말에 토픽 인증서를 송신하는 단계는 상기 토픽에 대해 랜덤으로 값을 생성하는 단계; 및 상기 생성된 값을 이용하여 상기 토픽에 대한 토픽 인증서를 생성하고, 상기 토픽 인증서를 발행자에 전송하는 단계를 포함할 수 있다.
상기 구독자 단말에 송신하는 단계는, 상기 토픽 인증서에 대해 랜덤으로 값을 생성하는 단계; 및 상기 생성된 값을 이용하여 상기 토픽에 대한 개인키를 생성하고, 상기 토픽에 대한 개인키를 구독자에 송신하는 단계를 포함할 수 있다.
상기 MQTT-SN 엔티티들 로부터 상기 송신한 디바이스 인증서를 수신하는 단계; 및 상기 디바이스 인증서를 송신한 MQTT-SN 엔티티들과 무선 통신을 위한 보안 채널을 생성하는 단계를 포함할 수 있다.
상기 디바이스 인증서 및 토픽 인증서는 ECQV(Elliptic Curve Qu-Vanstone) 인증서를 이용하여 생성되는 인증서일 수 있다.
본 발명의 일실시예에 따른 MQTT-SN 프로토콜의 보안을 위한 MQTT-SN 엔티티 중 발행자 단말이 수행하는 MQTT-SN 보안 관리 방법은, 메시지의 무결성을 보장하기 위한 타임 스탬프 및 메시지 무결성 코드를 생성하는 단계; 상기 발행자 단말의 아이디, 제1항의 MQTT-SN 보안 관리 서버로부터 수신한 디바이스 인증서, 타임 스탬프 및 메시지 무결성 코드를 포함하는 연결 메시지를 브로커 단말에 송신하는 단계; 상기 브로커 단말로부터 상기 송신한 타임 스탬프 및 메시지 무결성 코드를 포함하는 연결 응답 메시지를 수신하는 단계; 발행하고자 하는 토픽의 토픽 네임 및 상기 메시지 무결성 코드를 포함하는 등록 메시지를 송신하는 단계; 상기 브로커 단말로부터 상기 토픽의 토픽 아이디 및 상기 메시지 무결성 코드를 포함하는 등록 응답 메시지를 수신하는 단계; 상기 토픽에 대한 토픽 데이터를 암호화하는 단계; 수신한 토픽 아이디, 상기 암호화된 데이터 및 메시지 무결성 코드를 포함하는 발행 메시지를 송신하는 단계; 및 상기 브로커 단말로부터 상기 토픽 아이디 및 상기 메시지 무결성 코드를 포함하는 발행 응답 메시지를 수신하는 단계를 포함할 수 있다.
상기 토픽에 대한 토픽 데이터를 암호화하는 단계는, 제1항의 MQTT-SN 보안 관리 서버로부터 수신한 토픽의 인증서를 이용하여 상기 토픽의 공개키를 결정하는 단계; 상기 토픽의 공개키 및 제1항의 MQTT-SN 보안 관리 서버로부터 수신한 디바이스 인증서에 기초하여 상기 토픽에 대응하는 토픽 키를 생성하는 단계; 및 상기 토픽 키를 사용하여 상기 토픽 데이터를 암호화를 수행하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 MQTT-SN 프로토콜의 보안을 위한 MQTT-SN 엔티티 중 브로커 단말이 발행자 단말과 통신하는 과정에서 수행하는 MQTT-SN 보안 관리 방법은, 발행자 단말로부터 상기 발행자 단말의 아이디, 제1항의 MQTT-SN 보안 관리 서버로부터 수신한 디바이스 인증서, 타임 스탬프 및 메시지 무결성 코드를 포함하는 연결 메시지를 수신하는 단계; 상기 수신한 타임 스탬프 및 메시지 무결성 코드를 포함하는 연결 응답 메시지를 상기 발행자 단말에 송신하는 단계; 상기 발행자 단말로부터 상기 발행자 단말이 발행하고자 하는 토픽의 토픽 네임 및 상기 메시지 무결성 코드를 포함하는 등록 메시지를 수신하는 단계; 상기 수신한 발행자 단말의 아이디를 이용하여 상기 발행자 단말을 인증하고 상기 토픽 네임에 대한 토픽 아이디를 생성하는 단계; 상기 생성한 토픽 아이디 및 상기 메시지 무결성 코드를 포함하는 등록 응답 메시지를 상기 발행자 단말에 송신하는 단계; 상기 발행자 단말로부터 상기 토픽 아이디, 상기 토픽에 대한 암호화된 토픽 데이터 및 상기 메시지 무결성 코드를 포함하는 발행 메시지를 수신하는 단계; 상기 토픽 아이디 및 상기 메시지 무결성 코드를 포함하는 발행 응답 메시지를 상기 발행자 단말에 송신하는 단계를 포함할 수 있다.
상기 토픽 아이디를 생성하는 단계 제1항의 MQTT-SN 보안 관리 서버가 브로커 단말의 등록 과정에서 생성한 접근 제어 리스트 및 상기 수신한 발행자 단말의 아이디를 이용하여 상기 발행자 단말을 인증하는 단계를 포함하고, 상기 접근 제어 리스트는, 토픽 마다 토픽을 발행하는 발행자 단말의 아이디 및 토픽을 구독하는 구독자 단말의 아이디 정보를 포함할 수 있다.
본 발명의 일실시예에 따른 MQTT-SN 프로토콜의 보안을 위한 MQTT-SN 엔티티 중 구독자 단말이 수행하는 MQTT-SN 보안 관리 방법은, 메시지의 무결성을 보장하기 위한 타임 스탬프 및 메시지 무결성 코드를 생성하는 단계; 상기 구독자 단말의 아이디, 제1항의 MQTT-SN 보안 관리 서버로부터 수신한 디바이스 인증서, 타임 스탬프 및 메시지 무결성 코드를 포함하는 연결 메시지를 브로커 단말에 송신하는 단계; 상기 브로커 단말로부터 상기 송신한 타임 스탬프 및 메시지 무결성 코드를 포함하는 연결 응답 메시지를 수신하는 단계; 구독하고자 하는 토픽의 토픽 네임 및 상기 메시지 무결성 코드를 포함하는 구독 메시지를 상기 브로커 단말에 송신하는 단계; 상기 브로커 단말로부터 상기 토픽의 토픽 아이디 및 상기 메시지 무결성 코드를 포함하는 구독 응답 메시지를 수신하는 단계; 상기 브로커 단말로부터 상기 토픽 아이디, 상기 토픽에 대한 암호화된 토픽 데이터 및 상기 메시지 무결성 코드를 포함하는 발행 메시지를 수신하는 단계; 및 상기 토픽 아이디 및 상기 메시지 무결성 코드를 포함하는 발행 응답 메시지를 상기 브로커 단말에 송신하는 단계를 포함할 수 있다.
상기 발행 메시지를 수신하는 단계는, 상기 암호화된 토픽 데이터에서 제8항의 발행자 단말의 디바이스 인증서를 추출하는 단계; 상기 발행자 단말의 디바이스 인증서를 이용하여 상기 발행자 단말의 공개키를 결정하는 단계; 상기 토픽의 개인키 및 상기 공개키에 기초하여 상기 토픽에 대응하는 토픽 키를 생성하는 단계; 및 상기 토픽 키를 사용하여 상기 암호화된 토픽 데이터를 복호화하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 MQTT-SN 프로토콜의 보안을 위한 MQTT-SN 엔티티 중 브로커 단말이 구독자 단말과 통신하는 과정에서 수행하는 MQTT-SN 보안 관리 방법은, 구독자 단말로부터 상기 구독자 단말의 아이디, 제1항의 MQTT-SN 보안 관리 서버로부터 수신한 디바이스 인증서, 타임 스탬프 및 메시지 무결성 코드를 포함하는 연결 메시지를 수신하는 단계; 상기 수신한 타임 스탬프 및 메시지 무결성 코드를 포함하는 연결 응답 메시지를 상기 구독이자 단말에 송신하는 단계; 상기 구독자 단말로부터 상기 구독자 단말이 구독하고자 하는 토픽의 토픽 네임 및 상기 메시지 무결성 코드를 포함하는 구독 메시지를 수신하는 단계; 상기 수신한 구독자 단말의 아이디를 이용하여 상기 구독자 단말을 인증하고 상기 토픽 네임에 대한 토픽 아이디 및 상기 메시지 무결성 코드를 포함하는 구독 응답 메시지를 상기 구독자 단말에 송신하는 단계; 상기 토픽 아이디, 상기 토픽에 대한 토픽 데이터 및 상기 메시지 무결성 코드를 포함하는 발행 메시지를 상기 구독자 단말에 송신하는 단계; 상기 구독자 단말로부터 상기 토픽 아이디 및 상기 메시지 무결성 코드를 포함하는 발행 응답 메시지를 수신하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 MQTT-SN 프로토콜의 보안을 위한 MQTT-SN 보안 관리 방법 및 시스템이 제공된다. 본 발명의 MQTT-SN 보안 관리 방법에 따르면, 상호 인증(mutual authentication), 접근 제어(access control) 및 데이터 보안(data security)이 보장될 뿐만 아니라 브로커 단말에서 단말의 메시지를 읽을 수 없게 되어, 엔드-투-엔드(End-to-end) 보안이 강화될 수 있다.
또한, 본 발명의 일실시예에 따르면 ECQV(Elliptic Curve Qu-Vanstone) 인증서를 기반으로 하기 때문에, MQTT-SN 프로토콜의 환경과 같이 리소스 제약이 있는 환경에서도 적용될 수 있다.
도 1은 본 발명의 일실시예에 따른 MQTT-SN 프로토콜의 구조도를 도시한 도면이다.
도 2은 본 발명의 일실시예에 따른 MQTT-SN 보안 관리 방법을 수행하는 MQTT-SN 엔티티들의 구조도를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 MQTT-SN 보안 관리 방법의 플로우 차트를 도시한 도면이다.
도 4은 본 발명의 일실시예에 따른 MQTT-SN 보안 관리 서버가 MQTT-SN 엔티티들에게 디바이스 인증서를 송신하는 과정을 도시한 도면이다.
도 5은 본 발명의 일실시예에 따른 MQTT-SN 보안 관리 서버가 발행자 단말 및 구독자 단말에 토픽 관련 데이터를 송신하는 과정을 도시한 도면이다.
도 6은 본 발명의 일실시예에 따른 리키잉 프로토콜의 구조도를 도시한 도면이다.
도 7은 본 발명의 일실시예에 따른 전력 소모 실험 결과를 도시한 도면이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 본 발명의 일실시예에 따른 MQTT-SN 프로토콜의 구조도를 도시한 도면이다.
MQTT(Message Queuing Telemetry Transport) 및 MQTT-SN(MQTT-Sensor Network) 프로토콜은 복수의 발행자(Publisher) 단말, 복수의 구독자(Subscriber) 단말 및 브로커(Broker) 단말 3가지 주체에 의하여 수행된다. MQTT-SN 프로토콜은 발행자 단말이나 구독자 단말의 리소스 제약이 있는 경우에도 MQTT 통신을 할 수 있도록 정의된 MQTT 프로토콜이다.
발행자 단말에서 특정 토픽(Topic)에 대한 데이터를 브로커 단말에 발행하면, 브로커 단말은 그 특정 토픽을 구독하고 있는 구독자 단말에 특정 토픽에 대한 토픽 데이터를 발행한다. 이 때, 발행된 특정 토픽에 대하여 복수의 구독자 단말은 구독을 할 수 있다. 브로커 단말은 특정 토픽을 구독하고 있는 복수의 구독자 단말에 특정 토픽에 대한 토픽 데이터를 발행할 수 있다.
토픽은 임의의 길이를 가진 토픽 네임에 의하여 식별될 수 있다. 도 1은 MQTT/MQTT-SN의 구조 및 프로토콜을 도시한 도면이다. 도 1에서처럼 MQTT-SN은 발행자 단말들과 구독자 단말들은 일종의 센서 디바이스로서 리소스 제약을 갖고 있다. 그리고 발행자 단말들과 구독자 단말들은 프로토콜 트랜스레이터(Tranlator)의 한 종류인 MQTT-SN 게이트웨이(Gateway)를 통해 브로커 단말과 연결된다.
MQTT-SN 프로토콜은 발행자 단말들과 MQTT-SN 게이트웨이 사이에서 적용되고, 구독자 단말들과 MQTT-SN 게이트웨이 사이에 적용된다. 그러나, MQTT 프로토콜은 MQTT-SN 게이트웨이와 브로커 단말 사이에 적용된다.
그러나 후술하는 본 발명에서 MQTT-SN 프로토콜은 MQTT-SN 게이트웨이와 브로커 단말이 통합된 것을 가정한다. 따라서, 본 발명에서 MQTT-SN 프로토콜은 발행자 단말들, 구독자 단말들 및 브로커 단말 사이에 적용된다.
일례로, 발행자 단말3(101)3은 먼저 브로커 단말과 메시지를 교환함으로써 연결을 맺는다. 이 때, 발행자 단말3(101)은 자신의 아이디를 포함한 메시지(connect)를 송신하고, 브로커 단말은 연결 성공에 대한 응답을 포함한 메시지(connack)를 보낸다.
발행자 단말3(101)은 특정 토픽에 대한 토픽 데이터를 발행하기 위해 특정 토픽을 포함하는 메시지(register)를 브로커 단말에 송신한다. 브로커 단말은 수신한 특정 토픽에 대응하는 토픽 아이디를 생성하고, 토픽 아이디를 포함하는 메시지(regack)를 발행자 단말3(101)에 송신한다.
브로커 단말에서 토픽 아이디를 할당하는 이유는 사람이 읽을 수 있는 토픽 네임은 용량이 크기 때문이다. 따라서 브로커 단말은 사람이 읽을 수 있는 토픽 네임 대신에 컴팩트한 2바이트 토픽 아이디를 사용한다.
발행자 단말3(101)과 브로커 단말의 연결이 맺어진 경우, 발행자 단말3(101)은 수신한 토픽 아이디로 식별되는 특정 토픽에 대한 토픽 데이터를 브로커 단말에 발행할 수 있다. 발행자 단말3(101)은 브로커 단말에 할당 받은 토픽 아이디와 특정 토픽에 대한 토픽 데이터를 포함하는 메시지(publish)를 송신하고, 브로커 단말은 동일한 토픽 아이디와 특정 토픽에 대한 토픽 데이터를 수신했다는 응답을 포함한 메시지(puback)를 발행자 단말3(101)에 송신한다.
토픽 데이터를 발행하는데 적용 가능한 4가지 레벨의 QoS(Quality of Service)가 있다. 본 발명에서 QoS 레벨은 1로 가정한다. QoS 레벨 1은 토픽 데이터가 적어도 한번 이상 브로커 단말에게 발행되는 것을 의미한다. 따라서, 타임 아웃(timeout) 및 재전송 매커니즘이 발행자 단말3과 브로커 단말의 메시지 교환시에 적용될 수 있다.
브로커 단말은 적어도 하나의 구독자 단말에서 특정 토픽에 대한 구독을 끝낼 때까지 그 토픽에 대한 토픽 데이터를 저장한다. 브로커가 저장하고 있는 특정 토픽에 대한 토픽 데이터를 얻기 위해서 구독자 단말은 브로커 단말과 먼저 연결을 맺어야 한다.
구독자 단말2(102)은 자신의 아이디를 포함한 메시지(connect)를 송신하고, 브로커 단말은 연결 성공에 대한 응답을 포함한 메시지(connack)를 보냄으로써 구독자 단말2(102)과 브로커 단말의 연결이 맺어진다.
구독자 단말2(102)은 특정 토픽을 포함하는 메시지(subscribe)를 브로커 단말에 송신한다. 브로커 단말은 특정 토픽에 할당한 토픽 아이디와 응답을 포함하는 메시지(suback)를 구독자 단말2(102)에 송신한다. 할당된 토픽 아이디로 그 토픽에 대한 토픽 데이터가 브로커 단말로 발행될 때 마다, 브로커 단말은 그 토픽에 대한 토픽 데이터를 그 토픽의 구독자에 발행한다.
브로커 단말은 브로커 단말에 할당받은 토픽 아이디와 특정 토픽에 대한 토픽 데이터를 포함하는 메시지(publish)를 송신하고, 구독자 단말2(102)은 동일한 토픽 아이디와 특정 토픽에 대한 토픽 데이터를 수신했다는 응답을 포함한 메시지(puback)를 브로커 단말에 송신한다. 브로커 단말과 구독자 단말2(102)의 publish 및 puback 메시지 교환은 브로커 단말과 구독자 단말2(102)의 연결이 끊어질 때까지 계속 발생할 수 있다.
도 2은 본 발명의 일실시예에 따른 MQTT-SN 보안 관리 방법을 수행하는 MQTT-SN 엔티티들의 구조도를 도시한 도면이다.
본원발명의 MQTT-SN 프로토콜은 보안 관리 서버(MQTT Security Management Server)라는 새로운 주체가 포함된다. MQTT-SN 보안 관리 서버는 프로세서를 포함한다. MQTT-SN 보안 관리 서버(201)는 접근 제어 및 인증 기관(Credential Authority)의 역할을 수행한다.
MQTT-SN 보안 관리 서버(201)는 MQTT-SN 엔티티들(발행자 단말, 구독자 단말, 브로커 단말) 간의 안전한 MQTT-SN 통신을 위해 각 MQTT-SN 엔티티들에 디바이스 인증서 및 MQTT-SN 엔티티들의 개인키 등을 송신하는 등의 보안 부트스트랩(bootstrap)을 위한 초기화 작업(202-204)을 수행한다.
또한, MQTT-SN 보안 관리 서버(201)는 엔드-투-엔트(end-to-end) 보안을 보장하기 위해 토픽 인증서를 생성하고 송신하는 작업(202, 203)을 수행한다. 그리고 나서 MQTT-SN 보안 관리 서버(201)는 발행자 단말, 구독자 단말 및 브로커 단말의 등록 작업(202-204)을 수행한다.
MQTT-SN 보안 관리 서버(201)는 리소스가 제약을 가지는 발행자 단말 및 구독자 단말과 브로커 단말에 디바이스 인증서(certificate)를 발행한다. 또한, MQTT-SN 보안 관리 서버(201)는 발행자 단말, 구독자 단말과 같은 클라이언트를 위해 파인-그레인드(fine-grained)한 접근 제어를 정의하고 수행한다.
MQTT-SN 보안 관리 서버(201)는 발행자 단말, 구독자 단말 및 브로커 단말 간의 안전한 MQTT-SN 통신을 하기 위해 디바이스 인증서를 각 MQTT-SN 엔티티들에게 송신한다.
각 MQTT-SN 엔티티들은 MQTT-SN 보안 관리 서버(201)로부터 수신한 디바이스 인증서를 설치한다. 이 때, 디바이스 인증서는 ECQV (Elliptic Curve Qu-Vanstone) 인증서를 기반으로 한다.
발행자가 발행할 데이터의 토픽들은 MQTT-SN 보안 관리 서버(201)에서 미리 생성된다. MQTT-SN 보안 관리 서버(201)는 토픽 마다 그 토픽을 발행하는 발행자 단말들의 아이디 정보, 그 토픽을 구독하는 구독자 단말들의 아이디 정보를 저장하는 접근 제어 리스트를 관리한다.
MQTT-SN 보안 관리 서버(201)는 브로커가 파인-그레인드한 접근 제어를 수행하도록 하기 위해 브로커 단말의 등록 작업(204)에서 접근 제어 리스트를 브로커 단말에 송신한다.
일례로, 임의의 토픽1을 발행하지 않는 발행자 단말은 토픽1에 대한 접근 제어 리스트에 저장되어 있지 않기 때문에 브로커 단말에 토픽1에 대한 데이터를 발행할 수 없다. 또한, 토픽1을 구독하지 않는 구독자 단말은 토픽1에 대한 데이터를 구독할 수 없다.
본 발명에서 각 발행자 단말은 하나의 토픽에 대해서만 데이터를 발행할 수 있다. 다만, 하나 이상의 발행자 단말이 각자 하나의 토픽에 대해 데이터를 발행하는 것은 가능하다. 반면에 구독자 단말은 동시에 여러 토픽을 구독할 수 있다.
MQTT-SN 보안 관리 서버(201)는 EQCV 인증서에 기초한 토픽 인증서를 각각의 토픽 마다 생성한다. 또한, MQTT-SN 보안 관리 서버(201)는 토픽에 대한 개인키를 생성하여 토픽 인증서의 토픽과 동일한 토픽을 발행하는 발행자 단말에 송신한다.
또한, MQTT-SN 보안 관리 서버(201)는 토픽에 대한 개인키를 토픽 인증서의 토픽과 동일한 토픽을 구독하는 구독자 단말들에 송신한다. 따라서, 토픽에 대한 개인키로 암호화된 토픽 데이터는 토픽에 대한 개인키를 갖고 있지 않은 브로커 단말에서 열람할 수 없다.
도 3은 본 발명의 일실시예에 따른 MQTT-SN 보안 관리 방법의 플로우 차트를 도시한 도면이다.
단계(301)에서, MQTT-SN 보안 관리 서버(201)는 디바이스 인증서를 생성하여 MQTT-SN 엔티티들(발행자 단말, 구독자 단말, 브로커 단말)에 디바이스 인증서를 송신한다. 본 발명의 MQTT-SN 프토토콜의 보안 부트스트랩(bootstrap)을 위한 초기화 작업에 해당한다.
디바이스 인증서는 ECQV 인증서를 기반으로 한다. ECQV 인증서를 기반으로 하기 때문에 디바이스 인증서는 저장 용량, 전력 및 대역폭과 같은 리소스에 제약이 있는 환경에서도 사용될 수 있다.
단계(302)에서, MQTT-SN 보안 관리 서버(201)는 MQTT-SN 엔티티들 간의 통신과 연관된 토픽 및 토픽의 인증서를 생성하여 발행자 단말에 송신한다. MQTT-SN 보안 관리 서버(201)는 발행자가 발행하는 각각의 토픽마다 토픽 인증서를 생성한다. 토픽 인증서를 통해 발행자 단말과 구독자 단말 사이의 엔드-투-엔드 보안이 보장될 수 있다.
단계(303)에서, MQTT-SN 보안 관리 서버(201)는 토픽에 대한 개인키를 구독자 단말에 송신한다. MQTT-SN 보안 관리 서버(201)는 그 토픽을 구독하는 구독자 단말들에 대하여만 그 토픽에 대한 개인키를 송신한다. 따라서, 그 토픽을 구독하지 않고 있는 외부 기기나 다른 구독자 단말은 그 토픽에 대한 개인키로 암호화된 토픽 데이터를 열람할 수 없게 된다.
단계(304)에서, MQTT-SN 보안 관리 서버(201)는 MQTT-SN 엔티티들을 등록한다. MQTT-SN 보안 관리 서버(201)는 MQTT-SN 엔티티들에게 송신했던 디바이스 인증서를 수신한다.
디바이스 인증서를 송신한 MQTT-SN 엔티티는 검증된 MQTT-SN 엔티티이므로 MQTT-SN 보안 관리 서버(201)는 검증된 MQTT-SN 엔티티와 통신할 수 있는 채널을 생성한다. 따라서 본 발명의 MQTT-SN 프로토콜은 MQTT-SN 보안 관리 서버(201)로부터 검증된 MQTT-SN 엔티티들만 통신할 수 있다.
도 4은 본 발명의 일실시예에 따른 MQTT-SN 보안 관리 서버가 MQTT 엔티티들에게 디바이스 인증서를 송신하는 과정을 도시한 도면이다.
도 4에서
Figure 112019119464032-pat00001
는 각각 브로커 단말의 아이디, i번째 발행자 단말의 아이디, j번째 구독자 단말의 아이디를 의미한다. 도 4에서 MQTT-SN 보안 관리 서버는 AC(Access Controller), CA(Certificate Authority)의 2가지 구성 요소를 포함한다. AC, CA는 모두 MQTT-SN 보안 관리 서버가 포함하고 있는 프로세서에 의해 수행되는 구성 요소이다.
다만, MQTT-SN 보안 관리 서버가 수행하는 접근 제어 역할과, 인증 기관 역할을 구분하여 설명하기 위해 AC와 CA를 추가 적인 구성 요소로 포함하였다. 즉, 도 4에서 MQTT-SN 보안 관리 서버는 AC에 대한 인증서(
Figure 112019119464032-pat00002
)와 그 인증서의 개인키(
Figure 112019119464032-pat00003
), CA의 개인키(
Figure 112019119464032-pat00004
) 및 아래 수학식 1을 통해 결정된 CA의 공개키(
Figure 112019119464032-pat00005
)를 생성한다. 본 발명에서 사용되는 개인키 및 공개키는 Elliptic Curve Diffie-Hellman (ECDH)의 개인키 및 공개키 원리를 이용한다.
Figure 112019119464032-pat00006
위 수학식 1에서 G는 후술하는 방법으로 결정된다. 수학식 2를 만족하는 임의의 유한체인 타원 곡선 (
Figure 112019119464032-pat00007
)이 존재할 때, 타원 곡선 도메인의 파라미터(parameter)들은
Figure 112019119464032-pat00008
이다.
Figure 112019119464032-pat00009
위 수학식 2에서
Figure 112019119464032-pat00010
는 유한체(finite field)를 의미한다. p는 소수이다. n은 타원 타원 곡선 차수의 가장 큰 소수인 제수(a large prime divisor of the order of the curve)이다.
Figure 112019119464032-pat00011
는 n 차수를 가진 베이스-포인트 생성기이다.
MQTT-SN 보안 관리 서버는 각 MQTT-SN 엔티티에 대응하는 ECQV 인증서를 생성한다. 먼저 MQTT-SN 보안 관리 서버는 1부터 n-1에 속하는 임의의 실수를 MQTT-SN 엔티티 별로 생성한 값(
Figure 112019119464032-pat00012
)을 이용하여 아래 수학식 3을 통해 도 4의
Figure 112019119464032-pat00013
를 계산한다.
Figure 112019119464032-pat00014
MQTT-SN 보안 관리 서버는 계산된
Figure 112019119464032-pat00015
를 이용하여 아래 수학식 4를 통해 MQTT-SN 엔티티 별 디바이스 인증서(
Figure 112019119464032-pat00016
)를 생성한다.
Figure 112019119464032-pat00017
MQTT-SN 보안 관리 서버는 CA에 대응하여 1부터 n-1에 속하는 임의의 실수 인
Figure 112019119464032-pat00018
를 생성한다. MQTT-SN 보안 관리 서버는
Figure 112019119464032-pat00019
를 이용하여 아래 수학식 5를 통해 MQTT-SN 엔티티 별 서명(
Figure 112019119464032-pat00020
)을 생성한다. 생성된 서명(
Figure 112019119464032-pat00021
)은 아래 수학식 6을 통해 MQTT-SN 엔티티들의 개인키(
Figure 112019119464032-pat00022
) 생성에 이용된다.
Figure 112019119464032-pat00023
Figure 112019119464032-pat00024
수학식 6에서 연산자
Figure 112019119464032-pat00025
은 연결연산자(concatenation)를 의미한다. 함수
Figure 112019119464032-pat00026
은 암호화 해시 함수(cryptographic hash function)를 의미한다.
MQTT-SN 엔티티들의 공개키(
Figure 112019119464032-pat00027
)는 수학식 1을 응용하여
Figure 112019119464032-pat00028
Figure 112019119464032-pat00029
의 곱 연산을 통해 결정될 수 있다. MQTT-SN 보안 관리 서버는 위 과정을 통해 생성한 MQTT-SN 엔티티들에 대응하는 개인키(
Figure 112019119464032-pat00030
), 디바이스 인증서(
Figure 112019119464032-pat00031
) 및 공개키(
Figure 112019119464032-pat00032
)를 MQTT-SN 엔티티들에 송신한다.
일례로, MQTT-SN 보안 관리 서버는 발행자 단말에 대응하는 개인키, 디바이스 인증서 및 공개키를 발행자 단말에 송신한다. 송신된 개인키, 디바이스 인증서 및 공개키는 발행자 단말에 설치된다.
MQTT-SN 엔티티는 수신한 공개키를 수신한 디바이스 인증서 및 CA의 공개키를 이용하여 아래 수학식 7에 의해서도 계산할 수 있다.
Figure 112019119464032-pat00033
본 발명에서 디바이스 인증서 및 CA의 공개키(
Figure 112019119464032-pat00034
)를 이용하여 위 수학식 7의 연산을 수행하는 함수(
Figure 112019119464032-pat00035
)를 정의한다.
도 5은 본 발명의 일실시예에 따른 MQTT-SN 보안 관리 서버가 발행자 단말 및 구독자 단말에 토픽 관련 데이터를 송신하는 과정을 도시한 도면이다.
토픽 인증서는 특정 토픽을 발행하는 발행자와 그 특정 토픽을 구독하는 구독자 간의 앤드-투-앤드 보안을 보장하기 위해 본 발명에서 이용된다. 대부분의 과정은 도 4에서 MQTT-SN 보안 관리 서버가 MQTT-SN 엔티티들에 개인키, 디바이스 인증서 및 공개키를 송신하는 과정과 유사하다.
다만, 토픽 인증서를 생성 및 토픽의 개인키 생성 과정에서 디바이스 인증서 및 MQTT-SN 엔티티의 개인키 생성 과정과 차이가 있다. 구체적으로, 토픽 인증서는 아래 수학식 8에 의한 연산을 통해 생성된다.
Figure 112019119464032-pat00036
여기서
Figure 112019119464032-pat00037
는 특정 토픽 t에 대한 토픽 인증서를 의미한다.
Figure 112019119464032-pat00038
은 특정 토픽의 번호를 의미한다. 토픽을 구독하는 구독자 단말이나 토픽을 발행하는 발행자 단말의 변동 사항이 있을 때마다 토픽 인증서가 새롭게 필요하기 때문에
Figure 112019119464032-pat00039
은 동일한 토픽에 대해서 새롭게 토픽 인증서를 생성할 때 구분하기 위함이다.
Figure 112019119464032-pat00040
은 특정 토픽 t에 대응하여 생성된 1부터 n-1에 속하는 임의의 실수를 의미한다.
Figure 112019119464032-pat00041
는 위 수학식 3을 응용하여
Figure 112019119464032-pat00042
Figure 112019119464032-pat00043
의 연산을 통해 얻어진 결과이다.
Figure 112019119464032-pat00044
는 CA에 대응하여 생성된 1부터 n-1에 속하는 임의의 실수를 의미한다.
특정 토픽 t에 대한 개인키를 생성하기 위해 사용되는 서명(
Figure 112019119464032-pat00045
)은 CA의 개인키, 특정 토픽 t에 대한 토픽 인증서 및
Figure 112019119464032-pat00046
를 이용하여 아래 수학식 9를 통해 결정된다. 또한, 수학식 10을 통해 생성된 서명을 이용하여 특정 토픽 t에 대한 개인키가 결정될 수 있다.
Figure 112019119464032-pat00047
Figure 112019119464032-pat00048
수학식 9, 10에서
Figure 112019119464032-pat00049
은 특정 토픽 t의 토픽 네임을 의미한다. 특정 토픽 t에 대한 토픽 인증서는 토픽 네임(
Figure 112019119464032-pat00050
)과 함께 특정 토픽 t에 대한 데이터를 발행하는 발행자 단말들(
Figure 112019119464032-pat00051
)에 송신된다. 또한, 특정 토픽 t에 대한 개인키(
Figure 112019119464032-pat00052
)는 토픽 네임(
Figure 112019119464032-pat00053
)과 함께 특정 토픽 t를 구독하는 구독자 단말들(
Figure 112019119464032-pat00054
)에 송신된다.
일례로, 특정 토픽 t를 발행하는 발행자 단말들 및 특정 토픽 t를 구독하는 구독자 단말들의 변동사항이 없을 때, 특정 토픽 t를 발행하는 발행자 단말은 CA에 대한 공개키(
Figure 112019119464032-pat00055
), 수신한 토픽 인증서 및 토픽의 공개키를 이용하여 수학식 7의 연산을 수행하는 함수(
Figure 112019119464032-pat00056
)를 통해 특정 토픽 t에 대한 토픽의 공개키를 계산할 수 있다.
토픽의 공개키를 이용하여 토픽에 대한 토픽 데이터를 발행하는 발행자 단말의 그룹 및 특정 토픽을 구독하는 구독자 단말의 집합 간의 공유되는 토픽 키가 생성될 수 있다. 토픽 키는 발행자가 발행할 데이터를 암호화 하는데 이용할 수 있다. 토픽 키는 ECDH 키를 기초로한다.
일례로, 특정 토픽 t에 대한 데이터를 발행하는 발행자 단말들(
Figure 112019119464032-pat00057
)과 특정 토픽 t를 구독하는 구독자 단말들(
Figure 112019119464032-pat00058
)이 있을 때, 발행자 단말의 집합은 각각 발행자 단말의 개인키, 디바이스 인증서, CA의 공개키(
Figure 112019119464032-pat00059
)를 갖는다.
발행자 단말들은 아래 수학식11을 통해 특정 토픽에 대한 공개키 및 발행자 단말의 개인키를 이용하여 특정 토픽 t에 대한 각자의 토픽 키를 생성할 수 있다.
Figure 112019119464032-pat00060
수학식 11에서
Figure 112019119464032-pat00061
은 키 유도 함수를 의미한다.
Figure 112019119464032-pat00062
Figure 112019119464032-pat00063
는 특정 토픽 t에 대한 발행자 단말1(
Figure 112019119464032-pat00064
)의 토픽 키, 발행자 단말2(
Figure 112019119464032-pat00065
)의 토픽 키를 의미한다.
Figure 112019119464032-pat00066
는 발행자 단말1(
Figure 112019119464032-pat00067
)과 특정 토픽 t를 구독하는 구독자 단말들(
Figure 112019119464032-pat00068
)사이에 공유된다.
또한,
Figure 112019119464032-pat00069
는 발행자 단말2(
Figure 112019119464032-pat00070
)와 특정 토픽 t를 구독하는 구독자 단말들(
Figure 112019119464032-pat00071
)사이에 공유된다. 구독자 단말에서 토픽 키를 얻는 방법은 후술한다.
MQTT-SN 보안 관리 서버는 본 발명의 MQTT-SN 프로토콜을 수행하는 발행자 단말, 구독자 단말 및 브로커 단말을 등록한다. 클라이언트(구독자 단말 및 발행자 단말)의 등록 과정은 MQTT-SN 보안 관리 서버의 AC와 클라이언트에 의해 수행된다.
또한, 브로커 단말의 등록 과정은 MQTT-SN 보안 관리 서버의 AC와 브로커 단말에 의해 수행된다. 클라이언트의 등록 과정과 브로커 단말의 등록 과정은 DTLS(Datagram Transport Layer Security)를 통해 보호된다. 본 발명의 디바이스 인증서는 DLTS의 PSK(Pre-Shared Key)를 이용하기 위함이다.
클라이언트의 등록 과정은 다음의 프로토콜 1에 따라 클라이언트 및 AC에 의하여 수행된다. 프로토콜 1은 AC가 토픽의 네임 및 토픽 인증서/개인키를 클라이언트에게 안전하게 송신하기 위함이다.
Figure 112019119464032-pat00072
프로토콜 1의
Figure 112019119464032-pat00073
에서 X는 클라이언트를 의미하고, 발행자 단말 및 구독자 단말 중 하나이다. 클라이언트는 MQTT-SN 보안 관리 서버의 AC에 자신의 아이디, 디바이스 인증서(
Figure 112019119464032-pat00074
)를 송신한다. 또한, 클라이언트는 1회성으로 사용될 임의의 수(
Figure 112019119464032-pat00075
)를 생성하여 MQTT-SN 보안 관리 서버의 AC에 송신한다.
프로토콜 1의
Figure 112019119464032-pat00076
에서 AC는 자신의 아이디, 디바이스 인증서(
Figure 112019119464032-pat00077
)를 클라이언트에 송신한다. 또한, AC도 1회성으로 사용될 임의의 수(
Figure 112019119464032-pat00078
)를 생성하여 클라이언트에 송신한다. 프로토콜 1의
Figure 112019119464032-pat00079
,
Figure 112019119464032-pat00080
에서 AC와 클라이언트 간의 ECQV 인증서가 공유된다.
이를 통해, 클라이언트는 CA의 공개키, AC의 디바이스 인증서, 수학식 7의 연산을 수행하는 함수에 입력(
Figure 112019119464032-pat00081
Figure 112019119464032-pat00082
)함으로써 AC의 공개키(
Figure 112019119464032-pat00083
)를 계산할 수 있다. 또한, AC도 위 함수를 이용하여 X의 공개키를 계산(
Figure 112019119464032-pat00084
Figure 112019119464032-pat00085
)할 수 있다.
프로토콜 1의
Figure 112019119464032-pat00086
에서, AC와 클라이언트는 아래 수학식 12와 키 유도 함수(
Figure 112019119464032-pat00087
)를 이용하여 공통 PSK를 계산할 수 있다.
Figure 112019119464032-pat00088
프로토콜 1의
Figure 112019119464032-pat00089
에서, AC와 클라이언트는 통신을 위한 보안 채널을 생성하기 위해 위 PSK를 이용한 DTLS 핸드세이크(handshake)를 수행한다. AC와 클라이언트는 DTLS 핸드세이크로 생성된 보안 채널을 통해 통신할 수 있다.
프로토콜 1의
Figure 112019119464032-pat00090
는 AC가 i번째 발행자 단말에 송신하는 과정이고, 프로토콜 1의
Figure 112019119464032-pat00091
는 AC가 j번째 구독자 단말에 송신하는 과정이다.
Figure 112019119464032-pat00092
에서 AC는 특정 토픽 t에 대한 토픽 인증서, 특정 토픽 t의 토픽 네임을 특정 토픽 t에 대한 데이터를 발행하는 i번째 발행자 단말에 전달한다.
또한, AC는 특정 토픽t에 대한 데이터를 발행하는 발행자 단말들 간에 공유되는 그룹키(
Figure 112019119464032-pat00093
)를 i번째 발행자 단말에 송신한다. AC는 브로커 단말의 아이디(
Figure 112019119464032-pat00094
),IP 주소(
Figure 112019119464032-pat00095
), 포트 번호(
Figure 112019119464032-pat00096
) 및 디바이스 인증서(
Figure 112019119464032-pat00097
)를 포함한 정보(
Figure 112019119464032-pat00098
)를 i번째 발행자 단말에 송신한다.
그 이후, 프로토콜 1의
Figure 112019119464032-pat00099
에서 AC는 j번째 구독자 단말이 구독할 수 있는 모든 토픽의 토픽 네임을 포함하는 토픽 리스트(
Figure 112019119464032-pat00100
Figure 112019119464032-pat00101
) 및 발행자 단말에 송신한 브로커 단말의 정보(
Figure 112019119464032-pat00102
) 를 j번째 구독자 단말에 송신한다.
브로커 단말의 등록 과정은 다음의 프로토콜 2에 따라 클라이언트 및 AC에 의하여 수행된다.
Figure 112019119464032-pat00103
프로토콜 2의
Figure 112019119464032-pat00104
에서 B는 브로커 단말을 의미한다. 브로커 단말은 MQTT-SN 보안 관리 서버의 AC에 자신의 아이디, 디바이스 인증서(
Figure 112019119464032-pat00105
)를 송신한다. 또한, 브로커 단말은 1회성으로 사용될 임의의 수(
Figure 112019119464032-pat00106
)를 생성하여 MQTT-SN 보안 관리 서버의 AC에 송신한다.
프로토콜 2의
Figure 112019119464032-pat00107
에서 AC는 자신의 아이디, 디바이스 인증서(
Figure 112019119464032-pat00108
)를 브로커 단말에 송신한다. 또한, AC도 1회성으로 사용될 임의의 수(
Figure 112019119464032-pat00109
)를 생성하여 브로커 단말에 송신한다.
Figure 112019119464032-pat00110
,
Figure 112019119464032-pat00111
에서 AC와 브로커 단말 간의 ECQV 인증서가 공유된다.
이를 통해, 브로커 단말은 CA의 공개키, AC의 디바이스 인증서, 수학식 7의 연산을 수행하는 함수에 입력(
Figure 112019119464032-pat00112
Figure 112019119464032-pat00113
)함으로써 AC의 공개키(
Figure 112019119464032-pat00114
)를 계산할 수 있다. 또한, AC도 위 함수를 이용하여 B의 공개키를 계산(
Figure 112019119464032-pat00115
Figure 112019119464032-pat00116
Figure 112019119464032-pat00117
)할 수 있다.
프로토콜 2의
Figure 112019119464032-pat00118
에서, AC와 브로커 단말은 아래 수학식 13와 키 유도 함수(
Figure 112019119464032-pat00119
)를 이용하여 공통 PSK를 계산할 수 있다.
Figure 112019119464032-pat00120
프로토콜 2의
Figure 112019119464032-pat00121
에서, AC와 브로커 단말은 통신을 위한 보안 채널을 생성하기 위해 위 PSK를 이용한 DTLS 핸드세이크(handshake)를 수행한다. AC와 브로커 단말은 DTLS 핸드세이크로 생성된 보안 채널을 통해 통신할 수 있다.
프로토콜 2의
Figure 112019119464032-pat00122
에서 AC는 접근 제어 리스트 (Access Control List,
Figure 112019119464032-pat00123
)를 생성된 보안 채널을 통해 송신한다. 접근 제어 리스트(
Figure 112019119464032-pat00124
)는 모든 토픽 각각의 토픽 네임(
Figure 112019119464032-pat00125
), 그 토픽에 대한 데이터를 발행하는 발행자 단말들의 아이디(
Figure 112019119464032-pat00126
), 그 토픽을 구독하는 구독자 단말들의 아이디(
Figure 112019119464032-pat00127
)가 포함되어 있다.
클라이언트 등록 과정과 브로커 단말의 등록 과정은 모두 초기에 한번만 수행된다. 따라서, 클라이언트 및 AC는 각각
Figure 112019119464032-pat00128
를 저장하고 있고, 브로커 단말과 AC는 각각
Figure 112019119464032-pat00129
를 저장하고 있다.
MQTT-SN 보안 관리 서버를 통한 보안 초기화 작업, 토픽 인증서를 생성하고 송신하는 작업 및 MQTT-SN 엔티티 등록 작업이 마치면, 발행자 단말, 구독자 단말, 브로커 단말은 후술하는 본 발명의 MQTT-SN 프로토콜에 따라 통신한다.
일례로, i번째 발행자 단말(
Figure 112019119464032-pat00130
)이 특정 토픽 t에 대한 데이터를 발행하고, j번째 구독자 단말(
Figure 112019119464032-pat00131
)이 특정 토픽 t를 구독한다. i번째 발행자 단말(
Figure 112019119464032-pat00132
)은 MQTT-SN 보안 관리 서버로부터 수신한 i번째 발행자 단말(
Figure 112019119464032-pat00133
)의 개인키, i번째 발행자 단말의 디바이스 인증서(
Figure 112019119464032-pat00134
), CA의 공개키(
Figure 112019119464032-pat00135
), 특정 토픽 t의 토픽 인증서(
Figure 112019119464032-pat00136
), 특정 토픽 t의 토픽 네임(
Figure 112019119464032-pat00137
) 및 브로커 단말에 대한 정보(
Figure 112019119464032-pat00138
)를 저장하고 있다.
본 발명에 따른 데이터 발행 과정은 아래 프로토콜 3에 따라 i번째 발행자 단말(
Figure 112019119464032-pat00139
) 및 브로커 단말(
Figure 112019119464032-pat00140
)에 의하여 수행된다.
Figure 112019119464032-pat00141
프로토콜 3에서
Figure 112019119464032-pat00142
는 i번째 발행자 단말에서 생성한 세션 키를 의미한다. i번째 발행자 단말은 CA의 개인키, 브로커 단말의 인증서, 브로커 단말의 아이디를 수학식 7의 연산을 수행하는 함수에 입력(
Figure 112019119464032-pat00143
) 함으로써 브로커 단말의 공개키(
Figure 112019119464032-pat00144
)를 얻을 수 있다.
i번째 발행자 단말은 브로커 단말의 공개키(
Figure 112019119464032-pat00145
), 현재 시간에 대한 타임 스탬프(
Figure 112019119464032-pat00146
) 및 자신의 개인키(
Figure 112019119464032-pat00147
)를 이용하여 아래 수학식 14를 통해 세션 키(
Figure 112019119464032-pat00148
)를 생성할 수 있다. 타임 스탬프는 i번째 발행자 단말에서 생성된다. 수학식 14에서
Figure 112019119464032-pat00149
은 키 유도 함수를 의미한다.
Figure 112019119464032-pat00150
프로토콜 3의
Figure 112019119464032-pat00151
에서,
Figure 112019119464032-pat00152
는 메시지 무결성 코드를 의미한다.
Figure 112019119464032-pat00153
Figure 112019119464032-pat00154
를 통해 계산될 수 있다.
Figure 112019119464032-pat00155
은 메시지의 무결성을 보장하기 위해 사용된다.
프로토콜 3의
Figure 112019119464032-pat00156
에서, 브로커 단말은 i번째 발행자 단말의 아이디(
Figure 112019119464032-pat00157
), i번째 발행자 단말의 디바이스 인증서(
Figure 112019119464032-pat00158
), i번째 발행자 단말에서 생성한 타임 스탬프(
Figure 112019119464032-pat00159
) 및
Figure 112019119464032-pat00160
로 계산되는 메시지 무결성 코드(
Figure 112019119464032-pat00161
)을 포함하는 연결 메시지(connect)를 i번째 발행자 단말로부터 수신한다.
브로커 단말은 수학식 7의 연산을 수행하는 함수에 CA의 공개키, i번째 발행자 단말의 디바이스 인증서 및 i번째 발행자 단말의 아이디를 입력(
Figure 112019119464032-pat00162
)함으로써 이용하여 i번째 발행자 단말의 공개키(
Figure 112019119464032-pat00163
)를 얻을 수 있다. 브로커 단말은 i번째 발행자 단말의 공개키를 이용하여 아래 수학식 15를 통해 i번째 발행자 단말로부터 수신한 세션 키와 동일한 세션 키를 얻을 수 있다.
Figure 112019119464032-pat00164
따라서, 브로커 단말은 수신한 세션 키를 통해 수신한 메시지가 유효한지를 판단할 수 있다. 예를 들어, 통신 과정에서 i번째 발행자 단말이 송신한 메시지가 변조된 경우 그 메시지에 포함된 세션 키도 변형되기 때문에, 브로커 단말에서 생성한 세션 키와 달라진다. 따라서 브로커 단말은 수신한 메시지가 변조되었음을 알 수 있다.
프로토콜 3의
Figure 112019119464032-pat00165
에서, 브로커 단말은 수신한 타임 스탬프(
Figure 112019119464032-pat00166
) 및 메시지 무결성 코드(
Figure 112019119464032-pat00167
)를 포함하는 연결 응답 메시지(connack)를 i번째 발행자 단말에 송신한다.
프로토콜 3의
Figure 112019119464032-pat00168
에서, i번째 발행자 단말은 특정 토픽 t대한 토픽 데이터를 발행하기 위해 특정 토픽 t의 토픽 네임(
Figure 112019119464032-pat00169
) 및 메시지 무결성 코드(
Figure 112019119464032-pat00170
)를 포함하는 등록 메시지(register)를 브로커 단말에 송신한다.
프로토콜 3의
Figure 112019119464032-pat00171
에서, 브로커 단말은 수신한 토픽 네임(
Figure 112019119464032-pat00172
)에 대응하는 토픽 아이디(
Figure 112019119464032-pat00173
)를 생성하고, 생성한 토픽 아이디와 메시지 무결성 코드를 포함하는 등록 응답 메시지(regack)를 i번째 발행자 단말에 송신한다.
프로토콜 3의
Figure 112019119464032-pat00174
에서, i번째 발행자 단말은 특정 토픽 t에 대한 데이터를 암호화한다. 그리고, i번째 발행자 단말은 암호화한 보안 데이터(
Figure 112019119464032-pat00175
), 수신한 특정 토픽 t의 토픽 아이디(
Figure 112019119464032-pat00176
) 및 메시지 무결성 코드(
Figure 112019119464032-pat00177
)를 포함하는 발행 메시지(publish)를 브로커 단말에 송신한다.
i번째 발행자 단말은 MQTT-SN 보안 관리 서버로부터 송신한 특정 토픽 t의 인증서 및 CA의 공개키를 이용하여 특정 토픽 t의 공개키(
Figure 112019119464032-pat00178
)를 얻을 수 있다. 또한, i번째 발행자 단말은 특정 토픽 t의 공개키 및 자신의 개인키를 이용하여 특정 토픽 t에 대한 i번째 발행자 단말의 토픽 키(
Figure 112019119464032-pat00179
)를 계산할 수 있다.
i번째 발행자 단말은 계산한 토픽 키를 이용하여 수학식 16의 보안 데이터를 생성한다.
Figure 112019119464032-pat00180
보안 데이터는 i번째 발행자 단말의 아이디(
Figure 112019119464032-pat00181
) 및 i번째 발행자 단말의 디바이스 인증서(
Figure 112019119464032-pat00182
)를 포함한다. 수학식 15에서
Figure 112019119464032-pat00183
는 i번째 발행자 단말이 특정 토픽 t에 대해 발행하고자 하는 데이터를 토픽 키로 암호화한 것이다.
또한, 수학식 16에서
Figure 112019119464032-pat00184
은 i번째 발행자 단말에서 생성한 토픽 키로 계산되는 메시지 무결성 코드이다.
Figure 112019119464032-pat00185
Figure 112019119464032-pat00186
도 보안 데이터에 포함되고, 브로커 단말에 송신된다.
프로토콜 3의
Figure 112019119464032-pat00187
에서, 발행 메시지를 수신한 브로커 단말은 MQTT-SN 서버로부터 수신한 ACL을 통해 i번째 발행자 단말이 유효한지 판단한다. 또한, 무결성 메시지 코드(
Figure 112019119464032-pat00188
)를 생성하여 메시지 무결성을 판단한다.
프로토콜 3의
Figure 112019119464032-pat00189
에서, 브로커 단말은 발행 메시지 및 i번째 발행자 단말이 유효한 것으로 판단되면, 보안 데이터를 저장하고, 특정 토픽 t의 토픽 아이디 및 메시지 무결성 코드를 포함하는 발행 응답 메시지(puback)을 i번째 발행자 단말에 송신한다.
본 발명에 따른 데이터 구독 과정은 아래 프로토콜 4에 따라 j번째 구독자 단말(
Figure 112019119464032-pat00190
) 및 브로커 단말(
Figure 112019119464032-pat00191
)에 의하여 수행된다.
Figure 112019119464032-pat00192
프로토콜 4에서
Figure 112019119464032-pat00193
는 j번째 구독자 단말에서 생성한 세션 키를 의미한다. j번째 구독자 단말은 CA의 개인키, 브로커 단말의 인증서, 브로커 단말의 아이디를 수학식 7의 연산을 수행하는 함수에 입력(
Figure 112019119464032-pat00194
) 함으로써 브로커 단말의 공개키(
Figure 112019119464032-pat00195
)를 얻을 수 있다.
j번째 구독자 단말은 브로커 단말의 공개키(
Figure 112019119464032-pat00196
), 현재 시간에 대한 타임 스탬프(
Figure 112019119464032-pat00197
) 및 자신의 개인키(
Figure 112019119464032-pat00198
)를 위 수학식 14를 적용함으로써 세션 키(
Figure 112019119464032-pat00199
)를 생성할 수 있다. 타임 스탬프는 j번째 구독자 단말에서 생성된다.
프로토콜 4의
Figure 112019119464032-pat00200
에서, 브로커 단말은 j번째 구독자 단말의 아이디(
Figure 112019119464032-pat00201
), j번째 구독자 단말의 디바이스 인증서(
Figure 112019119464032-pat00202
), j번째 구독자 단말에서 생성한 타임 스탬프(
Figure 112019119464032-pat00203
) 및
Figure 112019119464032-pat00204
로 계산되는 메시지 무결성 코드(
Figure 112019119464032-pat00205
)을 포함하는 연결 메시지(connect)를 j번째 구독자 단말로부터 수신한다.
브로커 단말은 프로토콜 3에서와 j번째 구독자 단말의 디바이스 인증서를 이용하여 j번째 구독자 단말의 공개키를 구할 수 있고, j번째 구독자 단말의 공개키를 통해 세션 키(
Figure 112019119464032-pat00206
)를 생성할 수 있다.
프로토콜 4의
Figure 112019119464032-pat00207
에서, 브로커 단말은 수신한 타임 스탬프(
Figure 112019119464032-pat00208
) 및 메시지 무결성 코드(
Figure 112019119464032-pat00209
)를 포함하는 연결 응답 메시지(connack)를 j번째 구독자 단말에 송신한다.
프로토콜 4의
Figure 112019119464032-pat00210
에서, j번째 구독자 단말은 특정 토픽 t를 구독하기 위해 특정 토픽 t의 토픽 네임(
Figure 112019119464032-pat00211
) 및 메시지 무결성 코드(
Figure 112019119464032-pat00212
)를 포함하는 구독 메시지(subscribe)를 브로커 단말에 송신한다.
프로토콜 4의
Figure 112019119464032-pat00213
에서, 브로커 단말은 수신한 토픽 네임(
Figure 112019119464032-pat00214
)에 대응하는 토픽 아이디(
Figure 112019119464032-pat00215
) 및 메시지 무결성 코드를 포함하는 구독 응답 메시지(suback)를 j번째 구독자 단말에 송신한다.
프로토콜 4의
Figure 112019119464032-pat00216
에서, 브로커 단말은 프로토콜 3을 통해 i번째 발행자 단말로부터 수신한 토픽 t의 보안 데이터(
Figure 112019119464032-pat00217
)를 j번째 구독자 단말에 송신한다. 또한, 브로커 단말은 토픽 t의 토픽 아이디 및 메시지 무결성 코드를 j번째 구독자 단말에 송신한다.
j번째 구독자 단말은 수신한 보안 데이터에서 i번째 발행자 단말의 디바이스 인증서를 얻을 수 있다. j번째 구독자 단말은 i번째 발행자 단말의 디바이스 인증서를 아래 수학식 17에 이용하여 토픽 키(
Figure 112019119464032-pat00218
)를 얻을 수 있다.
Figure 112019119464032-pat00219
j번째 구독자 단말은 토픽 키를 이용하여 특정 토픽 t에 대한 암호화된 데이터를 얻을 수 있다.
도 6은 본 발명의 일실시예에 따른 리키잉 프로토콜의 구조도를 도시한 도면이다.
구독자 단말이 특정 토픽(t)에 대해 더 이상 구독을 하지 않는 경우, 그 구독자가 더 이상 구독할 수 없도록 그 구독자 단말이 갖고 있는 토픽에 대한 개인키는 변경되어야 한다.
MQTT-SN 보안 관리 서버는 특정 토픽(t)에 대한 토픽 데이터를 발행하는 발행자 단말 및 특정 토픽(t)를 구독하는 구독자 단말 중 위 구독자 단말을 제외한 구독자 단말에 대해서 다시 인증 과정을 거치는 리키잉(re-keying) 프로토콜을 수행한다.
MQTT-SN 보안 관리 서버의 AC는 특정 토픽을 구독하는 구독자 단말의 변동이 생길 때마다 ACL을 업데이트하고 브로커 단말에 업데이트된 ACL을 송신한다.
그리고, MQTT-SN 보안 관리 서버의 AC는 데이터의 암호화에 이용되는 토픽 키는 토픽의 개인키와 공개키를 이용하여 업데이트한다. 토픽의 개인키는 그 토픽을 구독하는 구독자 단말들에게 공유되기 때문에, 구독자 단말의 변동이 생긴 경우, AC는 토픽의 새로운 개인키를 변동된 구독자 단말에 송신해야 한다.
게다가, 새로운 토픽의 공개키는 그 토픽에 대한 데이터를 발행하는 발행자 단말들에게 송신되어야 한다.
도 6에서 사용되는 문자나 기호는 위에서 기술한 바와 같다.
도 6은 특정 토픽9에 대해서 ACL이 다음과 같이 구성된 경우이다.
Figure 112019119464032-pat00220
Figure 112019119464032-pat00221
즉, 토픽 9에 대해 데이터를 발행하는 발행자 단말들
Figure 112019119464032-pat00222
과 토픽 9를 구독하는 구독자 단말들
Figure 112019119464032-pat00223
이 존재한다.
도 6에서
Figure 112019119464032-pat00224
Figure 112019119464032-pat00225
과정을 통해 각 발행자 단말들 및 구독자 단말들은 디바이스 인증서와 각자의 개인키를 송신 받고, 토픽 9에 대한 개인키가 구독자 단말들에 송신되고, 토픽 9에 대한 인증서가 발행자 단말에 송신되었다.
또한, 도 6에서
Figure 112019119464032-pat00226
Figure 112019119464032-pat00227
과정을 통해 MQTT-SN 보안 관리 서버의 AC가 각 발행자 단말들 및 구독자 단말들의 등록 과정을 마친 상황이다.
도 6에서
Figure 112019119464032-pat00228
과정을 통해 발행자 단말들과 구독자 단말들은 동일한 토픽 키를 소유한다. 이 때, 구독자 단말들 중
Figure 112019119464032-pat00229
가 토픽 9를 구독하지 않게 되어 토픽 9를 구독하는 구독자 단말들에 변동이 생겼다고 가정한다.
AC는 토픽 9의 새로운 토픽 인증서(
Figure 112019119464032-pat00230
) 및 토픽 9의 새로운 공개키 및 개인키
Figure 112019119464032-pat00231
를 생성한다. 도 6에서
Figure 112019119464032-pat00232
과정을 통해 AC는 새로운 토픽 인증서를 발행자 단말들
Figure 112019119464032-pat00233
에 송신한다.
또한, AC는 토픽 9의 개인키를 남은 구독자 단말들
Figure 112019119464032-pat00234
에 유니캐스트(unicast)로 송신한다. 도 6에서
Figure 112019119464032-pat00235
과정을 통해 발행자 단말들과 구독자 단말들 간에 새로운 세션 키(
Figure 112019119464032-pat00236
)가 공유된다.
도 6의
Figure 112019119464032-pat00237
과정에서 AC는 아래 프로토콜 5에 따라 새로운 토픽 인증서를 발행자 단말들
Figure 112019119464032-pat00238
에 송신한다.
Figure 112019119464032-pat00239
프로토콜 5의
Figure 112019119464032-pat00240
에서 AC는 업데이트 요청 메시지(updateReq)를 발행자 단말들
Figure 112019119464032-pat00241
에 멀티캐스트(multicast) 방식으로 송신한다. 업데이트 요청 메시지는 토픽 9에 대한 새로운 토픽 증명서, 토픽 9의 토픽 네임 및 발행자 단말들
Figure 112019119464032-pat00242
간에 공유되는 그룹 키를 이용하여 생성한 메시지 무결성 코드를 포함한다.
프로토콜 5의
Figure 112019119464032-pat00243
에서 발행자 단말은 업데이트 요청 응답 메시지(updateRsp)를 AC에 송신한다. 업데이트 요청 응답 메시지는 발행자 단말에 저장된
Figure 112019119464032-pat00244
로 계산되는 메시지 무결성 코드
Figure 112019119464032-pat00245
를 포함한다. AC는 모든 발행자 단말들로부터 업데이트 요청 응답 메시지를 수신할 때까지 업데이트 요청 메시지를 멀티캐스팅 해야 한다.
도 6의
Figure 112019119464032-pat00246
과정에서 AC는 아래 프로토콜 6에 따라 새로운 토픽 인증서를 구독자 단말들
Figure 112019119464032-pat00247
에 송신한다.
Figure 112019119464032-pat00248
AC는 토픽 9에 대한 새로운 개인키를 생성하고, 새로운 개인키를 유니캐스트 방식으로 각 구독자 단말들에 송신한다. 유니캐스트 방식은 1:1 방식의 통신 방식을 의미한다.
프로토콜 6의
Figure 112019119464032-pat00249
에서, AC와 구독자 단말은 프로토콜 1에 따라 PSK를 이용하여 통신을 위한 보안 채널을 생성한다.
프로토콜 6의
Figure 112019119464032-pat00250
,
Figure 112019119464032-pat00251
에서 AC가 토픽 9의 새로운 개인키 및 토픽 9의 토픽 네임을 포함하는 업데이트 요청 메시지를 송신하고, 구독자 단말은 업데이트 응답 메시지를 AC에 송신한다.
기존에 MQTT-SN 통신의 보안 방법에 따르면, 어떠한 클라이언트도 특정 데이터를 발행하거나 구독하는 것이 가능하다. 그러나 본원발명은 ACL를 통해 특정 토픽 별로 구독자 단말과 발행자 단말은 관리하기 때문에 아무 클라이언트나 특정 토픽에 대한 데이터를 발행하거나 구독할 수 없다.
도 7은 본 발명의 일실시예에 따른 전력 소모 실험 결과를 도시한 도면이다.
도 7은 프로토콜 3에 따른 발행자 단말과 브로커 간의 통신 과정의 전력 소모를 보안 요소가 없는 MQTT-SN과 비교한 결과를 나타낸다. 도 7의 (a)는 보안 요소가 없는 MQTT-SN의 전력 소모량을 측정한 결과를 나타내는 그래프이다.
또한, 도 7의 (b)는 본원발명에 따른 MQTT-SN의 전력 소모량을 측정한 결과를 나타내는 그래프이다. Cooja's Powertrace를 이용하여 프로토콜 3의 connect / connack / register / regack / publish / puback 과정에서 발행하는 전력의 소모를 측정하였다.
본 발명에서 보안 관련 요소들이 추가되었기 때문에 전체적인 전력 소모는 상대적으로 보안 요소가 없는 MQTT-SN 보다 높다.
그러나 발행 메시지의 수가 많아질수록 한 메시지에 소모되는 발행자 단말이나 브로커 단말에 포함된 프로세서가 수행하는 평균 계산 양은 적어진다. 특히 프로토콜 3의 connect 단계에서 ECC(Elliptic-curve cryptography) 동작이 수행되기 때문에 전력 소모가 크다.
한편, 본 발명에 따른 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성되어 마그네틱 저장매체, 광학적 판독매체, 디지털 저장매체 등 다양한 기록 매체로도 구현될 수 있다.
본 명세서에 설명된 각종 기술들의 구현들은 디지털 전자 회로조직으로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어로, 또는 그들의 조합들로 구현될 수 있다. 구현들은 데이터 처리 장치, 예를 들어 프로그램가능 프로세서, 컴퓨터, 또는 다수의 컴퓨터들의 동작에 의한 처리를 위해, 또는 이 동작을 제어하기 위해, 컴퓨터 프로그램 제품, 즉 정보 캐리어, 예를 들어 기계 판독가능 저장 장치(컴퓨터 판독가능 매체) 또는 전파 신호에서 유형적으로 구체화된 컴퓨터 프로그램으로서 구현될 수 있다. 상술한 컴퓨터 프로그램(들)과 같은 컴퓨터 프로그램은 컴파일된 또는 인터프리트된 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 독립형 프로그램으로서 또는 모듈, 구성요소, 서브루틴, 또는 컴퓨팅 환경에서의 사용에 적절한 다른 유닛으로서 포함하는 임의의 형태로 전개될 수 있다. 컴퓨터 프로그램은 하나의 사이트에서 하나의 컴퓨터 또는 다수의 컴퓨터들 상에서 처리되도록 또는 다수의 사이트들에 걸쳐 분배되고 통신 네트워크에 의해 상호 연결되도록 전개될 수 있다.
컴퓨터 프로그램의 처리에 적절한 프로세서들은 예로서, 범용 및 특수 목적 마이크로프로세서들 둘 다, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 요소들은 명령어들을 실행하는 적어도 하나의 프로세서 및 명령어들 및 데이터를 저장하는 하나 이상의 메모리 장치들을 포함할 수 있다. 일반적으로, 컴퓨터는 데이터를 저장하는 하나 이상의 대량 저장 장치들, 예를 들어 자기, 자기-광 디스크들, 또는 광 디스크들을 포함할 수 있거나, 이것들로부터 데이터를 수신하거나 이것들에 데이터를 송신하거나 또는 양쪽으로 되도록 결합될 수도 있다. 컴퓨터 프로그램 명령어들 및 데이터를 구체화하는데 적절한 정보 캐리어들은 예로서 반도체 메모리 장치들, 예를 들어, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM) 등을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로조직에 의해 보충되거나, 이에 포함될 수 있다.
또한, 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용매체일 수 있고, 컴퓨터 저장매체 및 전송매체를 모두 포함할 수 있다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 장치 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 장치들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.
한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 자명한 것이다.
101: 발행자 단말
102: 구독자 단말

Claims (14)

  1. MQTT-SN 프로토콜의 보안을 위한 MQTT-SN 보안 관리 서버가 수행하는 MQTT-SN 보안 관리 방법은,
    MQTT-SN 프로토콜의 보안을 위한 디바이스 인증서를 생성하고 MQTT-SN 엔티티들에 디바이스 인증서를 송신하는 단계;
    상기 MQTT-SN 엔티티들 간의 통신과 연관된 토픽 및 토픽 인증서를 생성하여 MQTT-SN 엔티티들 중 발행자 단말에 토픽 인증서를 송신하는 단계;
    상기 토픽에 대한 개인키를 생성하여 MQTT-SN 엔티티들 중 구독자 단말에 송신하는 단계; 및
    상기 MQTT-SN 엔티티들을 등록하는 단계를 포함하고,
    상기 MQTT-SN 엔티티들은 발행자 단말, 구독자 단말 및 브로커 단말을 포함하는,
    MQTT-SN 보안 관리 서버의 MQTT-SN 보안 관리 방법.
  2. 제1항에 있어서,
    상기 디바이스 인증서를 송신하는 단계는,
    MQTT-SN 엔티티들에 대해 각각 랜덤으로 값을 생성하는 단계;
    상기 생성된 값을 이용하여 상기 MQTT-SN의 엔티티들의 디바이스 인증서 및 상기 MQTT-SN의 엔티티들에 대한 개인키를 생성하는 단계; 및
    상기 MQTT-SN 엔티티들의 디바이스 인증서 및 상기 MQTT-SN의 엔티티들에 대한 개인키를 MQTT-SN 엔티티들에 전달하는 단계를 포함하는 MQTT-SN 보안 관리 서버의 MQTT-SN 보안 관리 방법.
  3. 제1항에 있어서,
    상기 디바이스 인증서를 송신하는 단계는,
    각 MQTT-SN 엔티티에 대한 개인키 및 상기 MQTT-SN 보안 관리 서버의 공개키를 생성하는 단계; 및
    상기 MQTT-SN 엔티티에 대한 개인키 및 상기 MQTT-SN 보안 관리 서버의 공개키를 MQTT-SN 엔티티들에 송신하는 단계를 포함하는 MQTT-SN 보안 관리 서버의 MQTT-SN 보안 관리 방법.
  4. 제1항에 있어서,
    상기 발행자 단말에 토픽 인증서를 송신하는 단계는,
    상기 토픽에 대해 랜덤으로 값을 생성하는 단계; 및
    상기 생성된 값을 이용하여 상기 토픽에 대한 토픽 인증서를 생성하고, 상기 토픽 인증서를 발행자에 전송하는 단계를 포함하는 MQTT-SN 보안 관리 서버의 MQTT-SN 보안 관리 방법.
  5. 제1항에 있어서,
    상기 구독자 단말에 송신하는 단계는,
    상기 토픽 인증서에 대해 랜덤으로 값을 생성하는 단계; 및
    상기 생성된 값을 이용하여 상기 토픽에 대한 개인키를 생성하고, 상기 토픽에 대한 개인키를 구독자에 송신하는 단계를 포함하는 MQTT-SN 보안 관리 서버의 MQTT-SN 보안 관리 방법.
  6. 제1항에 있어서,
    상기 MQTT-SN 엔티티들을 등록하는 단계는,
    상기 MQTT-SN 엔티티들 로부터 상기 송신한 디바이스 인증서를 수신하는 단계; 및
    상기 디바이스 인증서를 송신한 MQTT-SN 엔티티들과 무선 통신을 위한 보안 채널을 생성하는 단계를 포함하는 MQTT-SN 보안 관리 서버의 MQTT-SN 보안 관리 방법.
  7. 제1항에 있어서,
    상기 디바이스 인증서 및 토픽 인증서는 ECQV(Elliptic Curve Qu-Vanstone) 인증서를 이용하여 생성되는 인증서인,
    MQTT-SN 보안 관리 서버의 MQTT-SN 보안 관리 방법.
  8. MQTT-SN 프로토콜의 보안을 위한 MQTT-SN 엔티티 중 발행자 단말이 수행하는 MQTT-SN 보안 관리 방법은,
    메시지의 무결성을 보장하기 위한 타임 스탬프 및 메시지 무결성 코드를 생성하는 단계;
    상기 발행자 단말의 아이디, 제1항의 MQTT-SN 보안 관리 서버로부터 수신한 디바이스 인증서, 타임 스탬프 및 메시지 무결성 코드를 포함하는 연결 메시지를 브로커 단말에 송신하는 단계;
    상기 브로커 단말로부터 상기 송신한 타임 스탬프 및 메시지 무결성 코드를 포함하는 연결 응답 메시지를 수신하는 단계;
    발행하고자 하는 토픽의 토픽 네임 및 상기 메시지 무결성 코드를 포함하는 등록 메시지를 송신하는 단계;
    상기 브로커 단말로부터 상기 토픽의 토픽 아이디 및 상기 메시지 무결성 코드를 포함하는 등록 응답 메시지를 수신하는 단계;
    상기 토픽에 대한 토픽 데이터를 암호화하는 단계;
    수신한 토픽 아이디, 상기 암호화된 데이터 및 메시지 무결성 코드를 포함하는 발행 메시지를 송신하는 단계; 및
    상기 브로커 단말로부터 상기 토픽 아이디 및 상기 메시지 무결성 코드를 포함하는 발행 응답 메시지를 수신하는 단계
    를 포함하는 발행자 단말의 MQTT-SN 보안 관리 방법.
  9. 제8항에 있어서,
    상기 토픽에 대한 토픽 데이터를 암호화하는 단계는,
    제1항의 MQTT-SN 보안 관리 서버로부터 수신한 토픽의 인증서를 이용하여 상기 토픽의 공개키를 결정하는 단계;
    상기 토픽의 공개키 및 제1항의 MQTT-SN 보안 관리 서버로부터 수신한 디바이스 인증서에 기초하여 상기 토픽에 대응하는 토픽 키를 생성하는 단계; 및
    상기 토픽 키를 사용하여 상기 토픽 데이터를 암호화를 수행하는 단계를 포함하는 발행자 단말의 MQTT-SN 보안 관리 방법.
  10. MQTT-SN 프로토콜의 보안을 위한 MQTT-SN 엔티티 중 브로커 단말이 발행자 단말과 통신하는 과정에서 수행하는 MQTT-SN 보안 관리 방법은,
    발행자 단말로부터 상기 발행자 단말의 아이디, 제1항의 MQTT-SN 보안 관리 서버로부터 수신한 디바이스 인증서, 타임 스탬프 및 메시지 무결성 코드를 포함하는 연결 메시지를 수신하는 단계;
    상기 수신한 타임 스탬프 및 메시지 무결성 코드를 포함하는 연결 응답 메시지를 상기 발행자 단말에 송신하는 단계;
    상기 발행자 단말로부터 상기 발행자 단말이 발행하고자 하는 토픽의 토픽 네임 및 상기 메시지 무결성 코드를 포함하는 등록 메시지를 수신하는 단계;
    상기 수신한 발행자 단말의 아이디를 이용하여 상기 발행자 단말을 인증하고 상기 토픽 네임에 대한 토픽 아이디를 생성하는 단계;
    상기 생성한 토픽 아이디 및 상기 메시지 무결성 코드를 포함하는 등록 응답 메시지를 상기 발행자 단말에 송신하는 단계;
    상기 발행자 단말로부터 상기 토픽 아이디, 상기 토픽에 대한 암호화된 토픽 데이터 및 상기 메시지 무결성 코드를 포함하는 발행 메시지를 수신하는 단계;
    상기 토픽 아이디 및 상기 메시지 무결성 코드를 포함하는 발행 응답 메시지를 상기 발행자 단말에 송신하는 단계
    를 포함하는 브로커 단말의 MQTT-SN 보안 관리 방법.
  11. 제10항에 있어서,
    상기 토픽 아이디를 생성하는 단계는
    제1항의 MQTT-SN 보안 관리 서버가 브로커 단말의 등록 과정에서 생성한 접근 제어 리스트 및 상기 수신한 발행자 단말의 아이디를 이용하여 상기 발행자 단말을 인증하는 단계를 포함하고,
    상기 접근 제어 리스트는,
    토픽 마다 토픽을 발행하는 발행자 단말의 아이디 및 토픽을 구독하는 구독자 단말의 아이디 정보를 포함하는 브로커 단말의 MQTT-SN 보안 관리 방법.
  12. MQTT-SN 프로토콜의 보안을 위한 MQTT-SN 엔티티 중 구독자 단말이 수행하는 MQTT-SN 보안 관리 방법은,
    메시지의 무결성을 보장하기 위한 타임 스탬프 및 메시지 무결성 코드를 생성하는 단계;
    상기 구독자 단말의 아이디, 제1항의 MQTT-SN 보안 관리 서버로부터 수신한 디바이스 인증서, 타임 스탬프 및 메시지 무결성 코드를 포함하는 연결 메시지를 브로커 단말에 송신하는 단계;
    상기 브로커 단말로부터 상기 송신한 타임 스탬프 및 메시지 무결성 코드를 포함하는 연결 응답 메시지를 수신하는 단계;
    구독하고자 하는 토픽의 토픽 네임 및 상기 메시지 무결성 코드를 포함하는 구독 메시지를 상기 브로커 단말에 송신하는 단계;
    상기 브로커 단말로부터 상기 토픽의 토픽 아이디 및 상기 메시지 무결성 코드를 포함하는 구독 응답 메시지를 수신하는 단계;
    상기 브로커 단말로부터 상기 토픽 아이디, 상기 토픽에 대한 암호화된 토픽 데이터 및 상기 메시지 무결성 코드를 포함하는 발행 메시지를 수신하는 단계; 및
    상기 토픽 아이디 및 상기 메시지 무결성 코드를 포함하는 발행 응답 메시지를 상기 브로커 단말에 송신하는 단계
    를 포함하는 구독자 단말의 MQTT-SN 보안 관리 방법.
  13. 제12항에 있어서,
    상기 발행 메시지를 수신하는 단계는,
    상기 암호화된 토픽 데이터에서 제8항의 발행자 단말의 디바이스 인증서를 추출하는 단계;
    상기 발행자 단말의 디바이스 인증서를 이용하여 상기 발행자 단말의 공개키를 결정하는 단계;
    상기 토픽의 개인키 및 상기 공개키에 기초하여 상기 토픽에 대응하는 토픽 키를 생성하는 단계; 및
    상기 토픽 키를 사용하여 상기 암호화된 토픽 데이터를 복호화하는 단계를 포함하는 구독자 단말의 MQTT-SN 보안 관리 방법.
  14. MQTT-SN 프로토콜의 보안을 위한 MQTT-SN 엔티티 중 브로커 단말이 구독자 단말과 통신하는 과정에서 수행하는 MQTT-SN 보안 관리 방법은,
    구독자 단말로부터 상기 구독자 단말의 아이디, 제1항의 MQTT-SN 보안 관리 서버로부터 수신한 디바이스 인증서, 타임 스탬프 및 메시지 무결성 코드를 포함하는 연결 메시지를 수신하는 단계;
    상기 수신한 타임 스탬프 및 메시지 무결성 코드를 포함하는 연결 응답 메시지를 상기 구독자 단말에 송신하는 단계;
    상기 구독자 단말로부터 상기 구독자 단말이 구독하고자 하는 토픽의 토픽 네임 및 상기 메시지 무결성 코드를 포함하는 구독 메시지를 수신하는 단계;
    상기 수신한 구독자 단말의 아이디를 이용하여 상기 구독자 단말을 인증하고 상기 토픽 네임에 대한 토픽 아이디 및 상기 메시지 무결성 코드를 포함하는 구독 응답 메시지를 상기 구독자 단말에 송신하는 단계;
    상기 토픽 아이디, 상기 토픽에 대한 토픽 데이터 및 상기 메시지 무결성 코드를 포함하는 발행 메시지를 상기 구독자 단말에 송신하는 단계;
    상기 구독자 단말로부터 상기 토픽 아이디 및 상기 메시지 무결성 코드를 포함하는 발행 응답 메시지를 수신하는 단계
    를 포함하는 브로커 단말의 MQTT-SN 보안 관리 방법.
KR1020190149781A 2019-11-20 2019-11-20 Mqtt-sn 프로토콜의 보안을 위한 mqtt-sn 보안 관리 방법 및 시스템 KR102266654B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190149781A KR102266654B1 (ko) 2019-11-20 2019-11-20 Mqtt-sn 프로토콜의 보안을 위한 mqtt-sn 보안 관리 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190149781A KR102266654B1 (ko) 2019-11-20 2019-11-20 Mqtt-sn 프로토콜의 보안을 위한 mqtt-sn 보안 관리 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20210061801A KR20210061801A (ko) 2021-05-28
KR102266654B1 true KR102266654B1 (ko) 2021-06-18

Family

ID=76140348

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190149781A KR102266654B1 (ko) 2019-11-20 2019-11-20 Mqtt-sn 프로토콜의 보안을 위한 mqtt-sn 보안 관리 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR102266654B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114172973B (zh) * 2021-11-30 2023-12-19 深圳市国电科技通信有限公司 一种基于mqtt协议和698协议的数据转换处理方法及电子设备
CN114338037A (zh) * 2021-12-27 2022-04-12 浪潮云信息技术股份公司 一种mqtt服务组件动态生成证书的方法及装置
CN114500070B (zh) * 2022-02-10 2023-07-18 上海蓝长自动化科技有限公司 一种基于秘密分享算法的mqtt协议安全通信方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190173951A1 (en) 2017-12-01 2019-06-06 GM Global Technology Operations LLC Vehicle communication using publish-subscribe messaging protocol

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190173951A1 (en) 2017-12-01 2019-06-06 GM Global Technology Operations LLC Vehicle communication using publish-subscribe messaging protocol

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Niruntasukrat, Aimaschana, et al. "Authorization Mechanism for MQTT-based Internet of Things." 2016 IEEE International Conference on Communications Workshops (ICC). IEEE, 2016.
Park, Chang-Seop. "A Secure and Efficient ECQV Implicit Certificate Issuance Protocol for the Internet of Things Applications." IEEE Sensors Journal 17.7 (2016): 2215-2223.
Shin, SeongHan, et al. "A Security Framework for MQTT." 2016 IEEE Conference on Communications and Network Security (CNS). IEEE, 2016

Also Published As

Publication number Publication date
KR20210061801A (ko) 2021-05-28

Similar Documents

Publication Publication Date Title
JP7119040B2 (ja) データ伝送方法、装置およびシステム
US20210385201A1 (en) Systems and methods for secure multi-party communications using aproxy
US20200295952A1 (en) Mutual authentication of confidential communication
US11316677B2 (en) Quantum key distribution node apparatus and method for quantum key distribution thereof
US10951423B2 (en) System and method for distribution of identity based key material and certificate
CN106063183B (zh) 用于云辅助密码学的方法和装置
US7774594B2 (en) Method and system for providing strong security in insecure networks
US8761401B2 (en) System and method for secure key distribution to manufactured products
CN107659406B (zh) 一种资源操作方法及装置
AU2011305477B2 (en) Shared secret establishment and distribution
US20080141027A1 (en) System and method of providing security
KR102266654B1 (ko) Mqtt-sn 프로토콜의 보안을 위한 mqtt-sn 보안 관리 방법 및 시스템
EP3633949A1 (en) Method and system for performing ssl handshake
US11838409B2 (en) Method and apparatus for transferring data in a publish-subscribe system
Rizzardi et al. Analysis on functionalities and security features of Internet of Things related protocols
US20220006652A1 (en) Method and architecture for securing and managing networks of embedded systems with optimised public key infrastructure
EP3624394B1 (en) Establishing a protected communication channel through a ttp
JP2022545809A (ja) 暗号鍵生成のためのセキュアな環境
KR101165350B1 (ko) 유비쿼터스 컴퓨팅 네트워크 환경에서 커뮤니티 컴퓨팅을 위한 디바이스 멤버 인증방법
CN114338091A (zh) 数据传输方法、装置、电子设备及存储介质
CN115529128B (zh) 基于sd-wan的端端协商通信方法、终端设备、服务器
Hsu et al. ECDSA Certificate Enrollment and Authentication for SCEP Protocol in Smart Grid PKI
Yeun et al. Secure software download for programmable mobile user equipment
CN115883183A (zh) 一种工控系统的跨域安全互联方法及装置

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant