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

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

Info

Publication number
KR20210061801A
KR20210061801A KR1020190149781A KR20190149781A KR20210061801A KR 20210061801 A KR20210061801 A KR 20210061801A KR 1020190149781 A KR1020190149781 A KR 1020190149781A KR 20190149781 A KR20190149781 A KR 20190149781A KR 20210061801 A KR20210061801 A KR 20210061801A
Authority
KR
South Korea
Prior art keywords
topic
mqtt
terminal
security management
issuer
Prior art date
Application number
KR1020190149781A
Other languages
English (en)
Other versions
KR102266654B1 (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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)

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 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 pat00002
)와 그 인증서의 개인키(
Figure pat00003
), CA의 개인키(
Figure pat00004
) 및 아래 수학식 1을 통해 결정된 CA의 공개키(
Figure pat00005
)를 생성한다. 본 발명에서 사용되는 개인키 및 공개키는 Elliptic Curve Diffie-Hellman (ECDH)의 개인키 및 공개키 원리를 이용한다.
Figure pat00006
위 수학식 1에서 G는 후술하는 방법으로 결정된다. 수학식 2를 만족하는 임의의 유한체인 타원 곡선 (
Figure pat00007
)이 존재할 때, 타원 곡선 도메인의 파라미터(parameter)들은
Figure pat00008
이다.
Figure pat00009
위 수학식 2에서
Figure pat00010
는 유한체(finite field)를 의미한다. p는 소수이다. n은 타원 타원 곡선 차수의 가장 큰 소수인 제수(a large prime divisor of the order of the curve)이다.
Figure pat00011
는 n 차수를 가진 베이스-포인트 생성기이다.
MQTT-SN 보안 관리 서버는 각 MQTT-SN 엔티티에 대응하는 ECQV 인증서를 생성한다. 먼저 MQTT-SN 보안 관리 서버는 1부터 n-1에 속하는 임의의 실수를 MQTT-SN 엔티티 별로 생성한 값(
Figure pat00012
)을 이용하여 아래 수학식 3을 통해 도 4의
Figure pat00013
를 계산한다.
Figure pat00014
MQTT-SN 보안 관리 서버는 계산된
Figure pat00015
를 이용하여 아래 수학식 4를 통해 MQTT-SN 엔티티 별 디바이스 인증서(
Figure pat00016
)를 생성한다.
Figure pat00017
MQTT-SN 보안 관리 서버는 CA에 대응하여 1부터 n-1에 속하는 임의의 실수 인
Figure pat00018
를 생성한다. MQTT-SN 보안 관리 서버는
Figure pat00019
를 이용하여 아래 수학식 5를 통해 MQTT-SN 엔티티 별 서명(
Figure pat00020
)을 생성한다. 생성된 서명(
Figure pat00021
)은 아래 수학식 6을 통해 MQTT-SN 엔티티들의 개인키(
Figure pat00022
) 생성에 이용된다.
Figure pat00023
Figure pat00024
수학식 6에서 연산자
Figure pat00025
은 연결연산자(concatenation)를 의미한다. 함수
Figure pat00026
은 암호화 해시 함수(cryptographic hash function)를 의미한다.
MQTT-SN 엔티티들의 공개키(
Figure pat00027
)는 수학식 1을 응용하여
Figure pat00028
Figure pat00029
의 곱 연산을 통해 결정될 수 있다. MQTT-SN 보안 관리 서버는 위 과정을 통해 생성한 MQTT-SN 엔티티들에 대응하는 개인키(
Figure pat00030
), 디바이스 인증서(
Figure pat00031
) 및 공개키(
Figure pat00032
)를 MQTT-SN 엔티티들에 송신한다.
일례로, MQTT-SN 보안 관리 서버는 발행자 단말에 대응하는 개인키, 디바이스 인증서 및 공개키를 발행자 단말에 송신한다. 송신된 개인키, 디바이스 인증서 및 공개키는 발행자 단말에 설치된다.
MQTT-SN 엔티티는 수신한 공개키를 수신한 디바이스 인증서 및 CA의 공개키를 이용하여 아래 수학식 7에 의해서도 계산할 수 있다.
Figure pat00033
본 발명에서 디바이스 인증서 및 CA의 공개키(
Figure pat00034
)를 이용하여 위 수학식 7의 연산을 수행하는 함수(
Figure pat00035
)를 정의한다.
도 5은 본 발명의 일실시예에 따른 MQTT-SN 보안 관리 서버가 발행자 단말 및 구독자 단말에 토픽 관련 데이터를 송신하는 과정을 도시한 도면이다.
토픽 인증서는 특정 토픽을 발행하는 발행자와 그 특정 토픽을 구독하는 구독자 간의 앤드-투-앤드 보안을 보장하기 위해 본 발명에서 이용된다. 대부분의 과정은 도 4에서 MQTT-SN 보안 관리 서버가 MQTT-SN 엔티티들에 개인키, 디바이스 인증서 및 공개키를 송신하는 과정과 유사하다.
다만, 토픽 인증서를 생성 및 토픽의 개인키 생성 과정에서 디바이스 인증서 및 MQTT-SN 엔티티의 개인키 생성 과정과 차이가 있다. 구체적으로, 토픽 인증서는 아래 수학식 8에 의한 연산을 통해 생성된다.
Figure pat00036
여기서
Figure pat00037
는 특정 토픽 t에 대한 토픽 인증서를 의미한다.
Figure pat00038
은 특정 토픽의 번호를 의미한다. 토픽을 구독하는 구독자 단말이나 토픽을 발행하는 발행자 단말의 변동 사항이 있을 때마다 토픽 인증서가 새롭게 필요하기 때문에
Figure pat00039
은 동일한 토픽에 대해서 새롭게 토픽 인증서를 생성할 때 구분하기 위함이다.
Figure pat00040
은 특정 토픽 t에 대응하여 생성된 1부터 n-1에 속하는 임의의 실수를 의미한다.
Figure pat00041
는 위 수학식 3을 응용하여
Figure pat00042
Figure pat00043
의 연산을 통해 얻어진 결과이다.
Figure pat00044
는 CA에 대응하여 생성된 1부터 n-1에 속하는 임의의 실수를 의미한다.
특정 토픽 t에 대한 개인키를 생성하기 위해 사용되는 서명(
Figure pat00045
)은 CA의 개인키, 특정 토픽 t에 대한 토픽 인증서 및
Figure pat00046
를 이용하여 아래 수학식 9를 통해 결정된다. 또한, 수학식 10을 통해 생성된 서명을 이용하여 특정 토픽 t에 대한 개인키가 결정될 수 있다.
Figure pat00047
Figure pat00048
수학식 9, 10에서
Figure pat00049
은 특정 토픽 t의 토픽 네임을 의미한다. 특정 토픽 t에 대한 토픽 인증서는 토픽 네임(
Figure pat00050
)과 함께 특정 토픽 t에 대한 데이터를 발행하는 발행자 단말들(
Figure pat00051
)에 송신된다. 또한, 특정 토픽 t에 대한 개인키(
Figure pat00052
)는 토픽 네임(
Figure pat00053
)과 함께 특정 토픽 t를 구독하는 구독자 단말들(
Figure pat00054
)에 송신된다.
일례로, 특정 토픽 t를 발행하는 발행자 단말들 및 특정 토픽 t를 구독하는 구독자 단말들의 변동사항이 없을 때, 특정 토픽 t를 발행하는 발행자 단말은 CA에 대한 공개키(
Figure pat00055
), 수신한 토픽 인증서 및 토픽의 공개키를 이용하여 수학식 7의 연산을 수행하는 함수(
Figure pat00056
)를 통해 특정 토픽 t에 대한 토픽의 공개키를 계산할 수 있다.
토픽의 공개키를 이용하여 토픽에 대한 토픽 데이터를 발행하는 발행자 단말의 그룹 및 특정 토픽을 구독하는 구독자 단말의 집합 간의 공유되는 토픽 키가 생성될 수 있다. 토픽 키는 발행자가 발행할 데이터를 암호화 하는데 이용할 수 있다. 토픽 키는 ECDH 키를 기초로한다.
일례로, 특정 토픽 t에 대한 데이터를 발행하는 발행자 단말들(
Figure pat00057
)과 특정 토픽 t를 구독하는 구독자 단말들(
Figure pat00058
)이 있을 때, 발행자 단말의 집합은 각각 발행자 단말의 개인키, 디바이스 인증서, CA의 공개키(
Figure pat00059
)를 갖는다.
발행자 단말들은 아래 수학식11을 통해 특정 토픽에 대한 공개키 및 발행자 단말의 개인키를 이용하여 특정 토픽 t에 대한 각자의 토픽 키를 생성할 수 있다.
Figure pat00060
수학식 11에서
Figure pat00061
은 키 유도 함수를 의미한다.
Figure pat00062
Figure pat00063
는 특정 토픽 t에 대한 발행자 단말1(
Figure pat00064
)의 토픽 키, 발행자 단말2(
Figure pat00065
)의 토픽 키를 의미한다.
Figure pat00066
는 발행자 단말1(
Figure pat00067
)과 특정 토픽 t를 구독하는 구독자 단말들(
Figure pat00068
)사이에 공유된다.
또한,
Figure pat00069
는 발행자 단말2(
Figure pat00070
)와 특정 토픽 t를 구독하는 구독자 단말들(
Figure 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 pat00072
프로토콜 1의
Figure pat00073
에서 X는 클라이언트를 의미하고, 발행자 단말 및 구독자 단말 중 하나이다. 클라이언트는 MQTT-SN 보안 관리 서버의 AC에 자신의 아이디, 디바이스 인증서(
Figure pat00074
)를 송신한다. 또한, 클라이언트는 1회성으로 사용될 임의의 수(
Figure pat00075
)를 생성하여 MQTT-SN 보안 관리 서버의 AC에 송신한다.
프로토콜 1의
Figure pat00076
에서 AC는 자신의 아이디, 디바이스 인증서(
Figure pat00077
)를 클라이언트에 송신한다. 또한, AC도 1회성으로 사용될 임의의 수(
Figure pat00078
)를 생성하여 클라이언트에 송신한다. 프로토콜 1의
Figure pat00079
,
Figure pat00080
에서 AC와 클라이언트 간의 ECQV 인증서가 공유된다.
이를 통해, 클라이언트는 CA의 공개키, AC의 디바이스 인증서, 수학식 7의 연산을 수행하는 함수에 입력(
Figure pat00081
Figure pat00082
)함으로써 AC의 공개키(
Figure pat00083
)를 계산할 수 있다. 또한, AC도 위 함수를 이용하여 X의 공개키를 계산(
Figure pat00084
Figure pat00085
)할 수 있다.
프로토콜 1의
Figure pat00086
에서, AC와 클라이언트는 아래 수학식 12와 키 유도 함수(
Figure pat00087
)를 이용하여 공통 PSK를 계산할 수 있다.
Figure pat00088
프로토콜 1의
Figure pat00089
에서, AC와 클라이언트는 통신을 위한 보안 채널을 생성하기 위해 위 PSK를 이용한 DTLS 핸드세이크(handshake)를 수행한다. AC와 클라이언트는 DTLS 핸드세이크로 생성된 보안 채널을 통해 통신할 수 있다.
프로토콜 1의
Figure pat00090
는 AC가 i번째 발행자 단말에 송신하는 과정이고, 프로토콜 1의
Figure pat00091
는 AC가 j번째 구독자 단말에 송신하는 과정이다.
Figure pat00092
에서 AC는 특정 토픽 t에 대한 토픽 인증서, 특정 토픽 t의 토픽 네임을 특정 토픽 t에 대한 데이터를 발행하는 i번째 발행자 단말에 전달한다.
또한, AC는 특정 토픽t에 대한 데이터를 발행하는 발행자 단말들 간에 공유되는 그룹키(
Figure pat00093
)를 i번째 발행자 단말에 송신한다. AC는 브로커 단말의 아이디(
Figure pat00094
),IP 주소(
Figure pat00095
), 포트 번호(
Figure pat00096
) 및 디바이스 인증서(
Figure pat00097
)를 포함한 정보(
Figure pat00098
)를 i번째 발행자 단말에 송신한다.
그 이후, 프로토콜 1의
Figure pat00099
에서 AC는 j번째 구독자 단말이 구독할 수 있는 모든 토픽의 토픽 네임을 포함하는 토픽 리스트(
Figure pat00100
Figure pat00101
) 및 발행자 단말에 송신한 브로커 단말의 정보(
Figure pat00102
) 를 j번째 구독자 단말에 송신한다.
브로커 단말의 등록 과정은 다음의 프로토콜 2에 따라 클라이언트 및 AC에 의하여 수행된다.
Figure pat00103
프로토콜 2의
Figure pat00104
에서 B는 브로커 단말을 의미한다. 브로커 단말은 MQTT-SN 보안 관리 서버의 AC에 자신의 아이디, 디바이스 인증서(
Figure pat00105
)를 송신한다. 또한, 브로커 단말은 1회성으로 사용될 임의의 수(
Figure pat00106
)를 생성하여 MQTT-SN 보안 관리 서버의 AC에 송신한다.
프로토콜 2의
Figure pat00107
에서 AC는 자신의 아이디, 디바이스 인증서(
Figure pat00108
)를 브로커 단말에 송신한다. 또한, AC도 1회성으로 사용될 임의의 수(
Figure pat00109
)를 생성하여 브로커 단말에 송신한다.
Figure pat00110
,
Figure pat00111
에서 AC와 브로커 단말 간의 ECQV 인증서가 공유된다.
이를 통해, 브로커 단말은 CA의 공개키, AC의 디바이스 인증서, 수학식 7의 연산을 수행하는 함수에 입력(
Figure pat00112
Figure pat00113
)함으로써 AC의 공개키(
Figure pat00114
)를 계산할 수 있다. 또한, AC도 위 함수를 이용하여 B의 공개키를 계산(
Figure pat00115
Figure pat00116
Figure pat00117
)할 수 있다.
프로토콜 2의
Figure pat00118
에서, AC와 브로커 단말은 아래 수학식 13와 키 유도 함수(
Figure pat00119
)를 이용하여 공통 PSK를 계산할 수 있다.
Figure pat00120
프로토콜 2의
Figure pat00121
에서, AC와 브로커 단말은 통신을 위한 보안 채널을 생성하기 위해 위 PSK를 이용한 DTLS 핸드세이크(handshake)를 수행한다. AC와 브로커 단말은 DTLS 핸드세이크로 생성된 보안 채널을 통해 통신할 수 있다.
프로토콜 2의
Figure pat00122
에서 AC는 접근 제어 리스트 (Access Control List,
Figure pat00123
)를 생성된 보안 채널을 통해 송신한다. 접근 제어 리스트(
Figure pat00124
)는 모든 토픽 각각의 토픽 네임(
Figure pat00125
), 그 토픽에 대한 데이터를 발행하는 발행자 단말들의 아이디(
Figure pat00126
), 그 토픽을 구독하는 구독자 단말들의 아이디(
Figure pat00127
)가 포함되어 있다.
클라이언트 등록 과정과 브로커 단말의 등록 과정은 모두 초기에 한번만 수행된다. 따라서, 클라이언트 및 AC는 각각
Figure pat00128
를 저장하고 있고, 브로커 단말과 AC는 각각
Figure pat00129
를 저장하고 있다.
MQTT-SN 보안 관리 서버를 통한 보안 초기화 작업, 토픽 인증서를 생성하고 송신하는 작업 및 MQTT-SN 엔티티 등록 작업이 마치면, 발행자 단말, 구독자 단말, 브로커 단말은 후술하는 본 발명의 MQTT-SN 프로토콜에 따라 통신한다.
일례로, i번째 발행자 단말(
Figure pat00130
)이 특정 토픽 t에 대한 데이터를 발행하고, j번째 구독자 단말(
Figure pat00131
)이 특정 토픽 t를 구독한다. i번째 발행자 단말(
Figure pat00132
)은 MQTT-SN 보안 관리 서버로부터 수신한 i번째 발행자 단말(
Figure pat00133
)의 개인키, i번째 발행자 단말의 디바이스 인증서(
Figure pat00134
), CA의 공개키(
Figure pat00135
), 특정 토픽 t의 토픽 인증서(
Figure pat00136
), 특정 토픽 t의 토픽 네임(
Figure pat00137
) 및 브로커 단말에 대한 정보(
Figure pat00138
)를 저장하고 있다.
본 발명에 따른 데이터 발행 과정은 아래 프로토콜 3에 따라 i번째 발행자 단말(
Figure pat00139
) 및 브로커 단말(
Figure pat00140
)에 의하여 수행된다.
Figure pat00141
프로토콜 3에서
Figure pat00142
는 i번째 발행자 단말에서 생성한 세션 키를 의미한다. i번째 발행자 단말은 CA의 개인키, 브로커 단말의 인증서, 브로커 단말의 아이디를 수학식 7의 연산을 수행하는 함수에 입력(
Figure pat00143
) 함으로써 브로커 단말의 공개키(
Figure pat00144
)를 얻을 수 있다.
i번째 발행자 단말은 브로커 단말의 공개키(
Figure pat00145
), 현재 시간에 대한 타임 스탬프(
Figure pat00146
) 및 자신의 개인키(
Figure pat00147
)를 이용하여 아래 수학식 14를 통해 세션 키(
Figure pat00148
)를 생성할 수 있다. 타임 스탬프는 i번째 발행자 단말에서 생성된다. 수학식 14에서
Figure pat00149
은 키 유도 함수를 의미한다.
Figure pat00150
프로토콜 3의
Figure pat00151
에서,
Figure pat00152
는 메시지 무결성 코드를 의미한다.
Figure pat00153
Figure pat00154
를 통해 계산될 수 있다.
Figure pat00155
은 메시지의 무결성을 보장하기 위해 사용된다.
프로토콜 3의
Figure pat00156
에서, 브로커 단말은 i번째 발행자 단말의 아이디(
Figure pat00157
), i번째 발행자 단말의 디바이스 인증서(
Figure pat00158
), i번째 발행자 단말에서 생성한 타임 스탬프(
Figure pat00159
) 및
Figure pat00160
로 계산되는 메시지 무결성 코드(
Figure pat00161
)을 포함하는 연결 메시지(connect)를 i번째 발행자 단말로부터 수신한다.
브로커 단말은 수학식 7의 연산을 수행하는 함수에 CA의 공개키, i번째 발행자 단말의 디바이스 인증서 및 i번째 발행자 단말의 아이디를 입력(
Figure pat00162
)함으로써 이용하여 i번째 발행자 단말의 공개키(
Figure pat00163
)를 얻을 수 있다. 브로커 단말은 i번째 발행자 단말의 공개키를 이용하여 아래 수학식 15를 통해 i번째 발행자 단말로부터 수신한 세션 키와 동일한 세션 키를 얻을 수 있다.
Figure pat00164
따라서, 브로커 단말은 수신한 세션 키를 통해 수신한 메시지가 유효한지를 판단할 수 있다. 예를 들어, 통신 과정에서 i번째 발행자 단말이 송신한 메시지가 변조된 경우 그 메시지에 포함된 세션 키도 변형되기 때문에, 브로커 단말에서 생성한 세션 키와 달라진다. 따라서 브로커 단말은 수신한 메시지가 변조되었음을 알 수 있다.
프로토콜 3의
Figure pat00165
에서, 브로커 단말은 수신한 타임 스탬프(
Figure pat00166
) 및 메시지 무결성 코드(
Figure pat00167
)를 포함하는 연결 응답 메시지(connack)를 i번째 발행자 단말에 송신한다.
프로토콜 3의
Figure pat00168
에서, i번째 발행자 단말은 특정 토픽 t대한 토픽 데이터를 발행하기 위해 특정 토픽 t의 토픽 네임(
Figure pat00169
) 및 메시지 무결성 코드(
Figure pat00170
)를 포함하는 등록 메시지(register)를 브로커 단말에 송신한다.
프로토콜 3의
Figure pat00171
에서, 브로커 단말은 수신한 토픽 네임(
Figure pat00172
)에 대응하는 토픽 아이디(
Figure pat00173
)를 생성하고, 생성한 토픽 아이디와 메시지 무결성 코드를 포함하는 등록 응답 메시지(regack)를 i번째 발행자 단말에 송신한다.
프로토콜 3의
Figure pat00174
에서, i번째 발행자 단말은 특정 토픽 t에 대한 데이터를 암호화한다. 그리고, i번째 발행자 단말은 암호화한 보안 데이터(
Figure pat00175
), 수신한 특정 토픽 t의 토픽 아이디(
Figure pat00176
) 및 메시지 무결성 코드(
Figure pat00177
)를 포함하는 발행 메시지(publish)를 브로커 단말에 송신한다.
i번째 발행자 단말은 MQTT-SN 보안 관리 서버로부터 송신한 특정 토픽 t의 인증서 및 CA의 공개키를 이용하여 특정 토픽 t의 공개키(
Figure pat00178
)를 얻을 수 있다. 또한, i번째 발행자 단말은 특정 토픽 t의 공개키 및 자신의 개인키를 이용하여 특정 토픽 t에 대한 i번째 발행자 단말의 토픽 키(
Figure pat00179
)를 계산할 수 있다.
i번째 발행자 단말은 계산한 토픽 키를 이용하여 수학식 16의 보안 데이터를 생성한다.
Figure pat00180
보안 데이터는 i번째 발행자 단말의 아이디(
Figure pat00181
) 및 i번째 발행자 단말의 디바이스 인증서(
Figure pat00182
)를 포함한다. 수학식 15에서
Figure pat00183
는 i번째 발행자 단말이 특정 토픽 t에 대해 발행하고자 하는 데이터를 토픽 키로 암호화한 것이다.
또한, 수학식 16에서
Figure pat00184
은 i번째 발행자 단말에서 생성한 토픽 키로 계산되는 메시지 무결성 코드이다.
Figure pat00185
Figure pat00186
도 보안 데이터에 포함되고, 브로커 단말에 송신된다.
프로토콜 3의
Figure pat00187
에서, 발행 메시지를 수신한 브로커 단말은 MQTT-SN 서버로부터 수신한 ACL을 통해 i번째 발행자 단말이 유효한지 판단한다. 또한, 무결성 메시지 코드(
Figure pat00188
)를 생성하여 메시지 무결성을 판단한다.
프로토콜 3의
Figure pat00189
에서, 브로커 단말은 발행 메시지 및 i번째 발행자 단말이 유효한 것으로 판단되면, 보안 데이터를 저장하고, 특정 토픽 t의 토픽 아이디 및 메시지 무결성 코드를 포함하는 발행 응답 메시지(puback)을 i번째 발행자 단말에 송신한다.
본 발명에 따른 데이터 구독 과정은 아래 프로토콜 4에 따라 j번째 구독자 단말(
Figure pat00190
) 및 브로커 단말(
Figure pat00191
)에 의하여 수행된다.
Figure pat00192
프로토콜 4에서
Figure pat00193
는 j번째 구독자 단말에서 생성한 세션 키를 의미한다. j번째 구독자 단말은 CA의 개인키, 브로커 단말의 인증서, 브로커 단말의 아이디를 수학식 7의 연산을 수행하는 함수에 입력(
Figure pat00194
) 함으로써 브로커 단말의 공개키(
Figure pat00195
)를 얻을 수 있다.
j번째 구독자 단말은 브로커 단말의 공개키(
Figure pat00196
), 현재 시간에 대한 타임 스탬프(
Figure pat00197
) 및 자신의 개인키(
Figure pat00198
)를 위 수학식 14를 적용함으로써 세션 키(
Figure pat00199
)를 생성할 수 있다. 타임 스탬프는 j번째 구독자 단말에서 생성된다.
프로토콜 4의
Figure pat00200
에서, 브로커 단말은 j번째 구독자 단말의 아이디(
Figure pat00201
), j번째 구독자 단말의 디바이스 인증서(
Figure pat00202
), j번째 구독자 단말에서 생성한 타임 스탬프(
Figure pat00203
) 및
Figure pat00204
로 계산되는 메시지 무결성 코드(
Figure pat00205
)을 포함하는 연결 메시지(connect)를 j번째 구독자 단말로부터 수신한다.
브로커 단말은 프로토콜 3에서와 j번째 구독자 단말의 디바이스 인증서를 이용하여 j번째 구독자 단말의 공개키를 구할 수 있고, j번째 구독자 단말의 공개키를 통해 세션 키(
Figure pat00206
)를 생성할 수 있다.
프로토콜 4의
Figure pat00207
에서, 브로커 단말은 수신한 타임 스탬프(
Figure pat00208
) 및 메시지 무결성 코드(
Figure pat00209
)를 포함하는 연결 응답 메시지(connack)를 j번째 구독자 단말에 송신한다.
프로토콜 4의
Figure pat00210
에서, j번째 구독자 단말은 특정 토픽 t를 구독하기 위해 특정 토픽 t의 토픽 네임(
Figure pat00211
) 및 메시지 무결성 코드(
Figure pat00212
)를 포함하는 구독 메시지(subscribe)를 브로커 단말에 송신한다.
프로토콜 4의
Figure pat00213
에서, 브로커 단말은 수신한 토픽 네임(
Figure pat00214
)에 대응하는 토픽 아이디(
Figure pat00215
) 및 메시지 무결성 코드를 포함하는 구독 응답 메시지(suback)를 j번째 구독자 단말에 송신한다.
프로토콜 4의
Figure pat00216
에서, 브로커 단말은 프로토콜 3을 통해 i번째 발행자 단말로부터 수신한 토픽 t의 보안 데이터(
Figure pat00217
)를 j번째 구독자 단말에 송신한다. 또한, 브로커 단말은 토픽 t의 토픽 아이디 및 메시지 무결성 코드를 j번째 구독자 단말에 송신한다.
j번째 구독자 단말은 수신한 보안 데이터에서 i번째 발행자 단말의 디바이스 인증서를 얻을 수 있다. j번째 구독자 단말은 i번째 발행자 단말의 디바이스 인증서를 아래 수학식 17에 이용하여 토픽 키(
Figure pat00218
)를 얻을 수 있다.
Figure 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 pat00220
Figure pat00221
즉, 토픽 9에 대해 데이터를 발행하는 발행자 단말들
Figure pat00222
과 토픽 9를 구독하는 구독자 단말들
Figure pat00223
이 존재한다.
도 6에서
Figure pat00224
Figure pat00225
과정을 통해 각 발행자 단말들 및 구독자 단말들은 디바이스 인증서와 각자의 개인키를 송신 받고, 토픽 9에 대한 개인키가 구독자 단말들에 송신되고, 토픽 9에 대한 인증서가 발행자 단말에 송신되었다.
또한, 도 6에서
Figure pat00226
Figure pat00227
과정을 통해 MQTT-SN 보안 관리 서버의 AC가 각 발행자 단말들 및 구독자 단말들의 등록 과정을 마친 상황이다.
도 6에서
Figure pat00228
과정을 통해 발행자 단말들과 구독자 단말들은 동일한 토픽 키를 소유한다. 이 때, 구독자 단말들 중
Figure pat00229
가 토픽 9를 구독하지 않게 되어 토픽 9를 구독하는 구독자 단말들에 변동이 생겼다고 가정한다.
AC는 토픽 9의 새로운 토픽 인증서(
Figure pat00230
) 및 토픽 9의 새로운 공개키 및 개인키
Figure pat00231
를 생성한다. 도 6에서
Figure pat00232
과정을 통해 AC는 새로운 토픽 인증서를 발행자 단말들
Figure pat00233
에 송신한다.
또한, AC는 토픽 9의 개인키를 남은 구독자 단말들
Figure pat00234
에 유니캐스트(unicast)로 송신한다. 도 6에서
Figure pat00235
과정을 통해 발행자 단말들과 구독자 단말들 간에 새로운 세션 키(
Figure pat00236
)가 공유된다.
도 6의
Figure pat00237
과정에서 AC는 아래 프로토콜 5에 따라 새로운 토픽 인증서를 발행자 단말들
Figure pat00238
에 송신한다.
Figure pat00239
프로토콜 5의
Figure pat00240
에서 AC는 업데이트 요청 메시지(updateReq)를 발행자 단말들
Figure pat00241
에 멀티캐스트(multicast) 방식으로 송신한다. 업데이트 요청 메시지는 토픽 9에 대한 새로운 토픽 증명서, 토픽 9의 토픽 네임 및 발행자 단말들
Figure pat00242
간에 공유되는 그룹 키를 이용하여 생성한 메시지 무결성 코드를 포함한다.
프로토콜 5의
Figure pat00243
에서 발행자 단말은 업데이트 요청 응답 메시지(updateRsp)를 AC에 송신한다. 업데이트 요청 응답 메시지는 발행자 단말에 저장된
Figure pat00244
로 계산되는 메시지 무결성 코드
Figure pat00245
를 포함한다. AC는 모든 발행자 단말들로부터 업데이트 요청 응답 메시지를 수신할 때까지 업데이트 요청 메시지를 멀티캐스팅 해야 한다.
도 6의
Figure pat00246
과정에서 AC는 아래 프로토콜 6에 따라 새로운 토픽 인증서를 구독자 단말들
Figure pat00247
에 송신한다.
Figure pat00248
AC는 토픽 9에 대한 새로운 개인키를 생성하고, 새로운 개인키를 유니캐스트 방식으로 각 구독자 단말들에 송신한다. 유니캐스트 방식은 1:1 방식의 통신 방식을 의미한다.
프로토콜 6의
Figure pat00249
에서, AC와 구독자 단말은 프로토콜 1에 따라 PSK를 이용하여 통신을 위한 보안 채널을 생성한다.
프로토콜 6의
Figure pat00250
,
Figure 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 true KR20210061801A (ko) 2021-05-28
KR102266654B1 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)

Cited By (3)

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

Cited By (4)

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

Also Published As

Publication number Publication date
KR102266654B1 (ko) 2021-06-18

Similar Documents

Publication Publication Date Title
JP7119040B2 (ja) データ伝送方法、装置およびシステム
US20210385201A1 (en) Systems and methods for secure multi-party communications using aproxy
US11909870B2 (en) ECDHE key exchange for mutual authentication using a key server
JP7011646B2 (ja) 量子通信及びトラステッドコンピューティングに基づくデータセキュリティのための方法及びシステム
US20220006627A1 (en) Quantum key distribution node apparatus and method for quantum key distribution thereof
US9294274B2 (en) Technologies for synchronizing and restoring reference templates
US7979696B2 (en) System and method of providing security
CN107659406B (zh) 一种资源操作方法及装置
CN109314705B (zh) 使用组加密密钥的用于大规模可伸缩动态多点虚拟私有网络的系统、装置和方法
AU2016287732A1 (en) Mutual authentication of confidential communication
US20170149748A1 (en) Secure Group Messaging and Data Steaming
EP3633949A1 (en) Method and system for performing ssl handshake
KR102266654B1 (ko) Mqtt-sn 프로토콜의 보안을 위한 mqtt-sn 보안 관리 방법 및 시스템
US12003629B2 (en) Secure server digital signature generation for post-quantum cryptography key encapsulations
KR20130098368A (ko) 공유 비밀 확립 및 분배
US20180262352A1 (en) Secure Authentication of Remote Equipment
Rizzardi et al. Analysis on functionalities and security features of Internet of Things related protocols
WO2018161862A1 (zh) 私钥生成方法、设备以及系统
US20220294613A1 (en) Method and apparatus for transferring data in a publish-subscribe system
US20220006652A1 (en) Method and architecture for securing and managing networks of embedded systems with optimised public key infrastructure
CN110912685A (zh) 建立受保护通信信道
US10798069B2 (en) Secure virtual personalized network
CN111884988A (zh) 数据的安全传输方法
CN113206815A (zh) 用于加解密的方法、可编程交换机和计算机程序产品
KR101165350B1 (ko) 유비쿼터스 컴퓨팅 네트워크 환경에서 커뮤니티 컴퓨팅을 위한 디바이스 멤버 인증방법

Legal Events

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