KR20210067208A - 네트워크 시스템 및 그것의 메시지 보안 방법 - Google Patents

네트워크 시스템 및 그것의 메시지 보안 방법 Download PDF

Info

Publication number
KR20210067208A
KR20210067208A KR1020190156578A KR20190156578A KR20210067208A KR 20210067208 A KR20210067208 A KR 20210067208A KR 1020190156578 A KR1020190156578 A KR 1020190156578A KR 20190156578 A KR20190156578 A KR 20190156578A KR 20210067208 A KR20210067208 A KR 20210067208A
Authority
KR
South Korea
Prior art keywords
terminal
encryption key
payload
topic
producer
Prior art date
Application number
KR1020190156578A
Other languages
English (en)
Other versions
KR102265611B1 (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 KR1020190156578A priority Critical patent/KR102265611B1/ko
Priority to PCT/KR2020/013707 priority patent/WO2021107389A1/ko
Publication of KR20210067208A publication Critical patent/KR20210067208A/ko
Application granted granted Critical
Publication of KR102265611B1 publication Critical patent/KR102265611B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0471Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/065Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/067Network architectures or network communication protocols for network security for supporting key management in a packet data network using one-time keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명의 실시예에 따른 네트워크 시스템은 토픽을 생성하는 생산자 단말, 상기 토픽을 구독하는 구독자 단말, 및 상기 구독자 단말 및 상기 생산자 단말과 통신하며, 상기 생산자 단말로부터 암호화된 토픽과 암호화된 페이로드가 포함된 메시지를 수신하면, 상기 암호화된 토픽을 상기 생산자 단말과 공유하는 제 2 토픽 암호키를 이용하여 복호화하여 복호화된 토픽을 구독 중인 구독자 단말을 확인하고, 상기 구독자 단말과 공유하는 제 1 토픽 암호키를 이용하여 상기 토픽을 암호화하여 상기 암호화된 페이로드와 함께 상기 구독자 단말로 전송하는 브로커 단말을 포함한다.

Description

네트워크 시스템 및 그것의 메시지 보안 방법{NETWORK SYSTEM AND METHOD FOR PERFORMING MESSAGE SECURITY THEREOF}
본 명세서에서 개시되는 실시예들은 네트워크 시스템 및 그것의 메시지 보안 방법에 관한 것이다. 보다 상세하게는, 생산자와 구독자 사이를 중계하는 브로커에 의한 메시지의 유출이나 조작을 방지할 수 있도록 메시지 보안을 높일 수 있는 네트워크 시스템 및 그것의 메시지 보안 방법에 관한 것이다.
기존에 경량의 구독/생산(Pub(Publish)/Sub(Subsribe)) 메시지 프로토콜로 메시지 큐잉 텔레메트리 트랜스포트(MQTT: Message Queueing Telemetry Transport) 프로토콜이 사용되고 있다. MQTT 프로토콜은 기계 대 기계(M2M: Machine to Machine)와 사물 인터넷(IoT: Internet of Thing) 환경에서 사용을 위해 만들어 졌다. 이러한, MQTT 프로토콜은 저전력, 낮은 대역폭 환경에서도 사용할 수 있도록 설계된 프로토콜이다.
이러한 MQTT 프로토콜은 메시지를 발행(publishing)하고, 관심있는 주제를 구독(subscribe) 하는 것을 기본 원칙으로 동작한다. 이를 위해, MQTT 프로토콜을 이용하는 네트워크에서는 구독자 단말에서 관심있는 토픽을 구독하면, 생산자 단말에서 토픽과 관련된 메시지를 생성하여 구독자 단말로 전달할 수 있다.
관련하여 선행기술문헌인 한국공개특허 제10-2018-0105917호에서는 웨어러블 데이터를 생성하는 웨어러블 디바이스, 웨어러블 데이터를 수신하여 네트워크 상으로 분배하는 웨어러블 브로커, 웨어러블 데이터를 제공받는 사용자 단말을 포함한 웨어러블 정보 서비스 시스템을 기재한다.
선행기술문헌에서와 같이 MQTT를 활용하는 시스템에서는 데이터 전송의 중간 과정에 위치한 브로커에 의한 데이터 유출이나 조작과 같은 상황을 고려하지 않는다. 이로 인해, 생산자 단말과 구독자 단말 간에 헬스 케어 정보와 같은 민감 정보를 교환할 경우, 생산자 단말이나 구독자 단말은 브로커 등에 의한 데이터 유출이나 조작에 대한 위험을 감수해야 하는 문제점이 있었다.
따라서, 근래에는 이러한 문제점을 해결하기 위한 장치 및 방법이 요구되고 있는 실정이다.
한편, 전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
본 명세서에서 개시되는 실시예들은, 생산자와 구독자 사이를 중계하는 브로커에 의한 메시지 유출이나 조작을 방지할 수 있는 네트워크 시스템 및 그것의 메시지 보안 방법을 제시하는 데에 목적이 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 일 실시예에 따르면, 네트워크 시스템은, 토픽을 생성하는 생산자 단말, 상기 토픽을 구독하는 구독자 단말, 및 상기 구독자 단말 및 상기 생산자 단말과 통신하며, 상기 생산자 단말로부터 암호화된 토픽과 암호화된 페이로드가 포함된 메시지를 수신하면, 상기 암호화된 토픽을 상기 생산자 단말과 공유하는 제 2 토픽 암호키를 이용하여 복호화하여 복호화된 토픽을 구독 중인 구독자 단말을 확인하고, 상기 구독자 단말과 공유하는 제 1 토픽 암호키를 이용하여 상기 토픽을 암호화하여 상기 암호화된 페이로드와 함께 상기 구독자 단말로 전송하는 브로커 단말을 포함한다.
다른 실시예에 따르면, 네트워크 시스템에서 수행되는 메시지 보안 방법은, 브로커 단말이, 토픽을 구독하는 구독자 단말과 세션을 설정하는 단계, 상기 브로커 단말이, 상기 토픽을 생성하는 생산자 단말과 세션을 설정하는 단계, 상기 브로커 단말이, 상기 생산자 단말로부터 암호화된 토픽과 암호화된 페이로드가 포함된 메시지를 수신하면, 상기 암호화된 토픽을 상기 생산자 단말과 공유하는 제 2 토픽 암호키를 이용하여 복호화하는 단계, 및 상기 브로커 단말이, 상기 복호화된 토픽을 구독 중인 구독자 단말을 확인하고, 상기 구독자 단말과 공유하는 제 1 토픽 암호키를 이용하여 상기 토픽을 암호화하여 상기 암호화된 페이로드와 함께 상기 구독자 단말로 전송하는 단계를 포함한다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 생산자와 구독자 사이를 중계하는 브로커에 의한 메시지 유출이나 조작을 방지할 수 있는 네트워크 시스템 및 그것의 메시지 보안 방법을 제시할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 일 실시예에 따른 네트워크 시스템을 도시한 도면이다.
도 2는 일 실시예에 따른 네트워크 시스템의 동작을 도시한 순서도이다.
도 3은 일 실시예에 따른 구독자 단말의 동작을 도시한 순서도이다.
도 4는 일 실시예에 따른 브로커 단말의 동작을 도시한 순서도이다.
도 5 내지 도 6은 일 실시예에 따른 생산자 단말의 동작을 도시한 순서도이다.
아래에서는 첨부한 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 아래에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여, 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략하였다. 그리고, 도면에서 실시예들의 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐 아니라, '그 중간에 다른 구성을 사이에 두고 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성이 어떤 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들을 더 포함할 수도 있음을 의미한다.
네트워크 시스템은 생산자 단말과 구독자 단말, 즉 생산자와 구독자 모델을 이용하여 통신을 하는 시스템을 의미한다. 이러한 네트워크 시스템은 발행 구독 기반의 메시지 프로토콜에 기반하여 동작할 수 있으며, 예를 들어, 경량의 구독/생산(Pub(Publish)/Sub(Subsribe)) 메시지 프로토콜로 메시지 큐잉 텔레메트리 트랜스포트(MQTT: Message Queueing Telemetry Transport) 프로토콜이 적용될 수 있다. 이러한, 네트워크 시스템은 스마트 팩토리 또는 스마트 홈과 같은 프록시를 활용할 수 있는 시스템을 모두 포함할 수 있다.
이하 첨부된 도면을 참고하여 실시예들을 상세히 설명하기로 한다.
도 1은 일 실시예에 따른 네트워크 시스템을 도시한 도면이다.
도 1에 도시된 바와 같이, 네트워크 시스템(100)은 구독자 단말(110), 브로커 단말(120), 생산자 단말(130) 및 마스터 단말(140)을 포함할 수 있다.
구독자 단말(110)은 생산자 단말(130)에서 생성되는 토픽을 구독하기 위해 브로커 단말과 연결될 수 있으며, 메시지를 중계하는 브로커 단말(120)을 통해 생산자 단말(130)에서 생성된 메시지를 수신할 수 있다. 여기서, 메시지는 토픽과 토픽에 대응되는 페이로드를 포함할 수 있으며, 각각 암호화되어 있다.
한편, 브로커 단말(120)은 구독자 단말(110) 및 생산자 단말(130)과 통신할 수 있다. 브로커 단말(120)은 통신을 위해 구독자 단말(110) 및 생산자 단말(130) 각각과 세션을 설정할 수 있다. 이를 통해, 브로커 단말(120)은 구독자 단말(110)에 의해 구독 요청된 토픽에 관련된 페이로드를 생산자 단말(130)로부터 수신하면, 해당 토픽에 관련된 페이로드를 구독자 단말로 제공할 수 있다.
브로커 단말(120)은 구독자 단말(110)과 세션 설정 시 제 1 토픽 암호키(20)를 생성할 수 있으며, 생산자 단말(130)과 세션 설정 시 제 2 토픽 암호키(30)를 생성할 수 있다. 이때, 구독자 단말(110)에서도 세션 설정 시 제 1 토픽 암호키(20)를 생성할 수 있으며, 생산자 단말(130)에서도 세션 설정 시 제 2 토픽 암호키(30)를 생성할 수 있다.
생산자 단말(130)은 페이로드를 암호화하기 위한 페이로드 암호키(40)를 생성할 수 있다. 이때, 생산자 단말(130)은 동일 계층에서 그룹키를 하나로 관리하여 사용하는 경우, 마스터 단말(140)로부터 그룹키를 수신할 수 있다. 생산자 단말(130)은 그룹키를 페이로드 암호키(40)로 설정하거나, 그룹키를 사용하여 페이로드 암호키(40)를 생성할 수도 있다. 생산자 단말(130)은 페이로드 암호키를 이용하여 페이로드를 암호화할 수 있으며, 제 2 토픽 암호키(30)를 이용하여 토픽을 암호화할 수 있다. 이를 통해, 생산자 단말(130)은 암호화한 토픽과 암호화된 페이로드를 포함한 메시지를 생성할 수 있다. 생산자 단말(130)은 메시지를 브로커 단말로 전송할 수 있다.
한편, 마스터 단말(140)은 동일 계층의 그룹키가 하나로 통일되어 관리되는 경우, 그룹키를 관리할 수 있다. 마스터 단말(140)은 그룹키가 통일되어 관리되지 않고, 생산자 단말 각각에서 개별적인 페이로드 암호키를 생성하는 경우, 네트워크 시스템(10)에 포함되지 않을 수도 있다. 마스터 단말(140)은 브로커 단말(120)과 세션 설정을 하여 그룹키를 생산자 단말(130)로 제공할 수 있으며, 생산자 단말(130)과 직접 통신이 가능한 경우, 브로커 단말(120)을 경유하지 않고도 직접 그룹키를 생산자 단말(130)로 제공할 수도 있다.
브로커 단말(120)은 생산자 단말(130)로부터 메시지를 수신할 수 있다. 브로커 단말(120)은 메시지에서 암호화된 토픽과 암호화된 페이로드를 분류할 수 있으며, 암호화된 토픽을 제 2 토픽 암호키(30)로 복호화할 수 있다. 브로커 단말(120)은 복호화한 토픽을 해당 토픽을 구독 중인 구독자 단말을 확인할 수 있다. 브로커 단말(120)은 복호화된 토픽을 제 1 토픽 암호키(20)로 암호화하여 암호화된 페이로드와 함께 해당 토픽을 구독 중인 구독자 단말(110)로 전달할 수 있다.
구독자 단말(110)은 수신된 메시지를 암호키를 이용하여 복호화할 수 있으며, 암호화된 토픽을 제 1 토픽 암호키(20)를 사용하여 토픽을 복호화하고, 암호화된 페이로드를 페이로드 암호키(40)를 사용하여 복호화할 수 있다. 구독자 단말(110)은 페이로드 암호키(40)를 생산자 단말(130)과 공개키를 서로 교환하여 생성한 일회용 암호키로 암호화한 상태로 수신하고, 이를 일회용 암호키로 복호화하여 획득할 수 있다.
이와 같이, 브로커 단말(120)은 구독자 단말(110)과 생산자 단말(130) 사이에 전송되는 메시지 내의 암호화된 토픽과 암호화된 페이로드 중에서 암호화된 토픽을 확인하면, 메시지 내용에 대한 확인 없이도 메시지를 전달할 수 있기 때문에 브로커에서 메시지 내용을 볼 수 없게 구독자 단말(110)과 생산자 단말(130) 간에 전송되는 메시지를 암호화하여 전달할 수 있다.
이를 통해, 구독자 단말(110)과 브로커 단말(120) 또는 브로커 단말(120)과 생산자 단말(130) 사이에 토픽 암호키(20, 30)를 서로 공유하고, 구독자 단말(110)과 생산자 단말(130) 사이에 실제 데이터 즉, 페이로드를 암호화하기 위한 페이로드 암호키(40)를 공유하여 사용할 수 있다.
이를 통해, 세션이 설정된 브로커 단말(120)에서 토픽을 확인하여 전송할 수 있어, 메시지 보안이 가능하다. 더욱이, 구독자 단말(110)과 생산자 단말(130) 사이에 전송되는 페이로드는 브로커 단말(120)에 의해 확인이 불가능하기 때문에 브로커 단말(120)에 의해 페이로드가 유출되거나 조작될 수 없어 메시지 보안을 높일 수 있다.
도 2는 일 실시예에 따른 네트워크 시스템의 동작을 도시한 순서도이다.
도 2에 도시된 바와 같이, 네트워크 시스템은 구독자 단말(110), 브로커 단말(120), 및 생산자 단말(130)을 포함한다.
구독자 단말(110)은 브로커 단말(120)로 세션 설정을 요청할 수 있다(S211). 이때, 구독자 단말은 공개키, 예를 들어, 디피-헬만(DH: Diffe-Hellman) 공개키를 생성할 수 있다. 구독자 단말(110)은 세션 설정의 요청 시, 공개키(DH공개키), 서명, 인증서를 함께 전송할 수 있다.
브로커 단말(120)은 구독자 단말(110)로 세션 설정의 요청에 대한 응답을 할 수 있다(S213). 브로커 단말(120)은 세션 설정 요청에 따라 수신된 구독자 단말(110)의 공개키(DH공개키), 서명 및 인증서를 저장할 수 있다. 브로커 단말은 세션 설정 응답 시, 브로커 단말(120) 자신의 인증서를 구독자 단말로 제공할 수 있다.
이와 같이, 구독자 단말(110)은 특정 토픽을 구독하기 위해 브로커 단말(120)과 핸드쉐이크(handshake)를 수행할 수 있다.
이를 통해, 구독자 단말(110)과 브로커 단말(120)은 세션 설정을 할 수 있다(S215). 구독자 단말(110)과 브로커 단말(120)은 예를 들어, 전송계층보안(TLS: Transport Layer Security) 세션을 설정할 수 있다. 구독자 단말(110)과 브로커 단말(120)은 세션 설정 시 세션키를 생성할 수 있다. 이때, 생성된 세션키가 브로커 단말(120)과 구독자 단말(110) 각각에서 토픽의 암호화 또는 복호화를 위한 제 1 토픽 암호키(20)로 사용될 수 있다.
구독자 단말(110)은 브로커 단말(120)로 특정 토픽에 대한 구독을 위한 연결 요청을 할 수 있다(S217). 또한, 브로커 단말(120)은 구독자 단말(110)의 연결 요청에 대한 연결 응답을 할 수 있다(S219).
구독자 단말(110)은 브로커 단말(120)로 구독을 원하는 특정 토픽에 대한 구독 요청할 수 있다(S221). 브로커 단말(120)은 구독자 단말(110)로 구독 요청에 대한 구독 응답을 할 수 있다(S223). 이와 같이, 구독자 단말(110)은 브로커 단말(120) 간에 특정 토픽에 대한 구독 요청을 하고, 구독 요청에 대응되는 구독 응답을 받으면, 구독자 단말(110)은 자신이 원하는 특정 토픽에 대한 메시지 메시지를 수신할 준비를 완료할 수 있다.
한편, 생산자 단말(130)은 자신이 생성하는 토픽에 대해 전송할 메시지가 있으면, 브로커 단말(120)로 세션 설정을 요청할 수 있다(S225). 생산자 단말(130)은 토픽을 생성하면서 페이로드 암호키(40)를 생성할 수 있으며, 페이로드 시퀀스 번호를 0으로 초기화할 수 있다. 여기서, 페이로드 시퀀스 번호는 메시지 전송 시 카운트되는 정보로서, 구독자 단말(110)에서 페이로드를 검증하고, 메시지의 조작이나 순서 변경 여부를 확인하기 위해 사용될 수 있다.
브로커 단말(120)은 생산자 단말(130)로 세션 설정의 요청에 대한 응답을 할 수 있다(S227). 이때, 브로커 단말(120)은 구독자 단말로부터 수신한 공개키(DH공개키), 서명 및 인증서를 생산자 단말(130)로 전달할 수 있다.
이와 같이, 생산자 단말(130)은 토픽에 관련한 메시지를 전송하기 위해 브로커 단말(120)과 핸드쉐이크를 수행할 수 있다.
이를 통해, 생산자 단말(130)과 브로커 단말(120)은 세션 설정을 할 수 있다(S229). 생산자 단말(130)과 브로커 단말(120)은 예를 들어, 전송계층보안(TLS: Transport Layer Security) 세션을 설정할 수 있다. 생산자 단말(130)과 브로커 단말(120)은 세션 설정 시 세션키를 생성할 수 있다. 이때, 생성된 세션키가 생산자 단말(130)과 브로커 단말(120) 각각에서 토픽의 암호화 또는 복호화를 위한 제 2 토픽 암호키(30)로 사용될 수 있다.
생산자 단말(130)은 구독자 단말(110)의 인증서를 수신하면, 서명을 검증하고 생산자 단말(130)에서 생성한 토픽에 대한 참여 여부를 판단할 수 있다.
생산자 단말(130)은 구독자 단말(110)을 해당 토픽에 참여 가능한 구독자 단말로 판단한 경우, 구독자 인증을 완료하기 위해 브로커 단말(120)로 구독자 인증 메시지를 전송할 수 있다(S231). 브로커 단말(120)은 수신한 구독자 인증 메시지를 구독자 단말(110)로 전송하여 구독자 인증을 완료할 수 있다(S233).
또한, 생산자 단말(130)은 구독자 단말(110)과 키 교환 알고리즘에 기초하여 구독자 단말(110)에서 전송한 공개키(DH공개키)로 일회용 암호키(50)를 생성할 수 있다. 일회용 암호키(50)는 페이로드 암호키(40)를 암호화하여 구독자 단말(110)로 전달하기 위한 암호키로 사용되며, 페이로드 시퀀스 번호의 암호화에도 사용될 수 있다. 이러한, 일회용 암호키(50)는 페이로드 암호키(40)의 전달을 위해 한 번만 사용될 수 있다.
생산자 단말(130)은 메시지를 생성하고, 생성된 메시지를 브로커 단말(120)로 전송할 수 있다(S235). 이때, 생산자 단말(130)은 토픽을 제 2 암호키(30)로 암호화하고, 토픽에 관련된 페이로드를 페이로드 암호키(40)로 암호화하여 메시지를 생성할 수 있다. 생산자 단말(130)은 메시지를 이용하여 일회용 암호키로 암호화한 페이로드 암호키와 페이로드 시퀀스 번호를 함께 전송할 수 있다. 또한 생산자 단말(130)은 생산자 단말(130)의 DH 공개키, 서명 및 인증서도 메시지와 함께 브로커 단말(120)로 전송할 수 있다.
이후, 생산자 단말(130)은 메시지 전송 시, 페이로드에 현재 페이로드 시퀀스 번호를 부여하고, 페이로드와 페이로드 시퀀스 번호를 페이로드 암호키로 암호화하여 브로커 단말(120)로 전달할 수 있다.
브로커 단말(120)은 생산자 단말(130)의 메시지를 구독자 단말(110)로 전송할 수 있다(S237). 이때, 브로커 단말(120)은 생산자 단말(130)의 메시지에서 암호화된 토픽과 암호화된 페이로드를 분류하고, 제 2 토픽 암호키(30)로 복호화할 수 있다. 이를 통해, 브로커 단말(120)은 복호화된 토픽을 사용하여 해당 토픽을 구독 중인 구독자 단말(110)을 확인할 수 있다. 브로커 단말(120)은 토픽을 제 1 토픽 암호키(20)로 암호화하여 암호화된 페이로드와 함께 확인된 구독자 단말(110)로 전송할 수 있다.
구독자 단말(110)은 브로커 단말(120)로부터 페이로드 암호키를 포함한 메시지를 수신하면, 키 교환 알고리즘에 기초하여 생산자 단말(130)에서 전송한 공개키로 일회용 암호키(50)를 생성하고, 생성된 일회용 암호키(50)로 암호화된 페이로드 암호키(40)와 암호화된 페이로드 시퀀스 번호를 복호화할 수 있다.
구독자 단말(110)은 복호화한 페이로드 암호키(40)로 메시지에 포함된 암호화된 페이로드를 복호화할 수 있다. 또한, 구독자 단말(110)은 메시지에 포함된 토픽을 브로커 단말(120)과 세션 설정 시 생성된 제 1 토픽 암호키(20)를 이용하여 복호화할 수 있다.
또한, 구독자 단말(110)은 페이로드 시퀀스 번호를 페이로드 암호키(40)로 복호화할 수 있다. 이러한, 페이로드 시퀀스 번호는 구독자 단말(110)에서 메시지의 조작이나 순서 변경 등을 확인하는 데이터 검증에 이용할 수 있다. 구독자 단말(110)은 메시지의 검증이 완료되면, 구독 요청한 토픽에 대응되는 메시지를 수신할 수 있다.
한편, 생산자 단말(130)은 페이로드 암호키(40)를 소정 주기를 간격으로 업데이트, 즉 변경하여 메시지 보안을 강화할 수도 있다. 생산자 단말(130)은 페이로드 암호키(40)를 변경하기 위한 신규 페이로드 암호키(60)를 생성할 수 있다. 생산자 단말(130)은 신규 페이로드 암호키(60)를 구독자 단말(110)로 전달하기 위해, 메시지 내에 키 업데이트 플래그 정보를 활성화(예를 들면, 비트값 0 -> 1 등으로 변경)하고, 기존 페이로드 암호키(40)로 신규 페이로드 암호키(60)를 암호화할 수 있다. 이때, 생산자 단말(130)은 전송할 페이로드가 존재하면, 신규 페이로드 암호키(60)로 페이로드를 암호화하여 브로커 단말(120)로 전송할 수 있다(S239).
브로커 단말(120)은 생산자 단말(130)의 메시지를 구독자 단말(110)로 전송할 수 있다(S241). 이때, 브로커 단말(120)은 생산자 단말(130)의 메시지에서 암호화된 토픽을 추출하여 제 2 토픽 암호키(30)로 복호화할 수 있고, 토픽을 제 1 토픽 암호키(20)로 암호화하여 암호화된 페이로드와 함께 구독자 단말(110)로 전송할 수 있다.
구독자 단말(110)은 메시지 내에서 키 업데이트 플래그를 확인하여 키가 업데이트된 것을 확인할 수 있다. 구독자 단말(110)은 기존 페이로드 암호키(40)를 이용하여 신규 페이로드 암호키(60)를 복호화할 수 있고, 신규 페이로드 암호키(60)로 메시지에 포함된 암호화된 페이로드를 복호화할 수 있다. 또한, 구독자 단말(110)은 암호화된 메시지에 포함된 암호화된 토픽을 제 1 토픽 암호키(20)를 이용하여 복호화할 수 있다.
이와 같이, 생산자 단말(130)과 구독자 단말(120)은 소정 주기를 간격으로 페이로드 암호키를 변경하여 페이로드를 암호화 및 복호화할 수 있다.
도 3은 일 실시예에 따른 구독자 단말의 동작을 도시한 순서도이다.
도 3에 도시된 바와 같이, 구독자 단말(110)은 브로커 단말(120)과 핸드쉐이크를 수행하여 세션을 설정할 수 있다(S310). 구독자 단말(110)은 세션 설정 시 생성한 세션키를 수신되는 메시지의 토픽을 복호화하기 위한 제 1 토픽 암호키로 사용할 수 있다.
구독자 단말(110)은 메시지 수신을 원하는 토픽에 대한 구독 요청을 브로커 단말(120)로 전송할 수 있다(S320).
구독자 단말(110)은 브로커 단말(120)로부터 메시지를 수신하였는지 판단할 수 있다(S330).
S330단계의 판단결과, 메시지를 수신하지 못하면, 구독자 단말(110)은 S340단계로 진행하여 메시지 수신을 위해 소정 시간 대기할 수 있다.
S330단계의 판단결과, 메시지를 수신하면, 구독자 단말(110)은 S340단계로 진행할 수 있다.
구독자 단말(110)은 메시지를 복호화하여 메시지를 확인할 수 있다. 이때, 구독자 단말은 메시지 내 암호화된 토픽을 제 1 토픽 암호키로 복호화할 수 있다. 또한, 구독자 단말(110)은 메시지 내 암호화된 페이로드를 페이로드 암호키로 복호화할 수 있다.
이때, 구독자 단말(110)은 페이로드 암호키를 수신하면, 키 교환 알고리즘을 이용하여 생산자 단말(130)에서 전송한 공개키(DH공개키)를 이용하여 일회용 암호키를 생성하고, 암호화된 페이로드 암호키를 일회용 암호키로 복호화하여 획득할 수 있다.
또한, 구독자 단말(110)은 키 업데이트 플래그를 통해 페이로드 암호키의 변경을 확인하면, 기존 페이로드 암호키로 암호화된 신규 페이로드 암호키를 복호화하여 신규 페이로드 암호키를 획득할 수도 있다.
이와 같이, 구독자 단말(110)은 페이로드 암호키 또는 신규 페이로드 암호키를 획득하면, 암호화된 페이로드를 복호화할 수 있다.
구독자 단말(110)은 동작을 종료할지 확인할 수 있다(S350).
S350단계의 확인 결과, 동작을 종료하지 않는 경우, 구독자 단말(110)은 S330단계로 진행하여 다음 메시지의 수신을 대기할 수 있다. 하지만, 구독자 단말(110)은 필요에 따라 다른 단계로 진행할 수도 있다.
S350단계의 확인 결과, 동작을 종료하는 경우, 구독자 단말(110)은 동작을 종료할 수 있다.
도 4는 일 실시예에 따른 브로커 단말의 동작을 도시한 순서도이다.
도 4에 도시된 바와 같이, 브로커 단말(120)은 구독자 단말(110)과 세션을 설정할 수 있다(S410). 브로커 단말(120)은 세션 설정 시 생성한 세션키를 구독자 단말(110)로 전송할 메시지의 토픽을 암호화하기 위한 제 2 토픽 암호키로 사용할 수 있다.
브로커 단말(120)은 구독자 단말(110)에서 구독을 원하는 특정 토픽에 대해 구독자 단말(110)과 구독 설정을 할 수 있다(S420).
브로커 단말(120)은 생산자 단말(130)로부터 세션 설정 요청이 존재하는지 확인할 수 있다(S430).
S430단계의 확인결과, 생산자 단말(130)로부터 세션 설정 요청이 존재하지 않으면, 브로커 단말(120)은 소정 시간 대기 후 S430단계로 진행하여 세션 설정 요청이 존재하는지 확인할 수 있다.
S430단계의 확인결과, 생산자 단말(130)로부터 세션 설정 요청이 존재하면, 브로커 단말(120)은 S440단계로 진행할 수 있다.
브로커 단말(120)은 생산자 단말(130)과 세션 설정을 할 수 있다(S440). 브로커 단말(120)은 세션 설정 시 생성한 세션키를 생산자 단말(130)로부터 수신한 메시지의 토픽을 복호화하기 위한 제 2 토픽 암호키로 사용할 수 있다.
브로커 단말(120)은 생산자 단말(130)로부터 메시지가 수신되었는지 판단할 수 있다(S450).
S450단계의 판단결과, 생산자 단말(130)로부터 메시지가 수신되지 않으면, 브로커 단말(120)은 소정 시간 대기 후, S450 단계로 진행하여 생산자 단말(130)로부터의 메시지의 수신을 판단할 수 있다.
S450단계의 판단결과, 생산자 단말(130)로부터 메시지가 수신되면, 브로커 단말(120)은 S460단계로 진행할 수 있다.
브로커 단말(120)은 메시지 내의 암호화된 토픽을 제 2 토픽 암호키로 복호화하고, 복호화된 토픽을 제 1 토픽 암호키로 암호화할 수 있다(S460).
브로커 단말(120)은 제 1 토픽 암호키로 암호화된 토픽과 메시지 내의 암호화된 페이로드를 포함한 메시지를 구독자 단말(110)로 전송할 수 있다(S470).
브로커 단말(120)은 동작을 종료할지 확인할 수 있다(S480).
S480단계의 확인 결과, 동작을 종료하지 않는 경우, 브로커 단말(120)은 S450단계로 진행하여 다음 메시지의 수신을 대기할 수 있다. 하지만, 브로커 단말(120)은 필요에 따라 다른 단계로 진행할 수도 있다.
S480단계의 확인 결과, 동작을 종료하는 경우, 브로커 단말(120)은 동작을 종료할 수 있다.
도 5 내지 도 6은 일 실시예에 따른 생산자 단말의 동작을 도시한 순서도이다.
도 5에 도시된 바와 같이, 생산자 단말(130)은 세션을 설정할 수 있다(S511). 생산자 단말(130)은 토픽에 대해 전송할 메시지가 존재하는 경우에 세션을 설정할 수 있다.
생산자 단말(130)은 그룹키를 사용할지 확인할 수 있다(S513). 이러한 그룹키는 페이로드 전송을 위해 동일 계층에서 하나로 통일되어 관리될 수 있다. 이때, 생산자 단말(130)은 그룹키를 관리하는 마스터 단말, 즉 마스터 노드로부터 그룹키를 수신해야 한다. 이로 인해, 생산자 단말(130)은 네트워크 시스템에 새롭게 진입하는 경우, 토픽을 생성하면서 그룹키를 사용하거나 자신의 고유의 페이로드 암호키를 사용할지를 결정할 수 있다.
S513단계의 확인결과, 그룹키를 사용하지 않는 경우, 생산자 단말(130)은 S525단계로 진행할 수 있다.
S513단계의 확인결과, 그룹키를 사용하는 경우, 생산자 단말(130)은 S515단계로 진행한다. 예를 들어, '/building/5thfloor/temperature'의 토픽을 등록하려는 생산자 단말(130)이 /building/5thfloor 키를 사용할 수도 있다.
생산자 단말(130)은 그룹키를 사용하는 경우, 마스터 단말로부터 그룹키를 수신하기 위해 그룹키를 탐색할 수 있다(S515).
생산자 단말(130)은 그룹키 탐색에 따라 미리 설정된 소정 시간 내에 그룹키를 수신하였는지 판단할 수 있다(S517).
S517단계의 판단결과, 미리 설정된 소정 시간 내에 그룹키를 수신하면, 생산자 단말(130)은 S519단계로 진행할 수 있다.
생산자 단말(130)은 그룹키를 사용하여 페이로드 암호키를 생성하고 S525단계로 진행할 수 있다. 예를 들어, 생산자 단말(130)은 그룹키를 페이로드 암호키로 직접 사용할 수 있지만, 그룹키를 이용하여 페이로드 암호키를 생성할 수도 있다.
S517단계의 판단결과, 미리 설정된 소정 시간 내에 그룹키를 수신하지 못하면, 생산자 단말(130)은 S521단계로 진행할 수 있다. 생산자 단말(130)은 마스터 단말로부터 그룹키를 전달받아야 한다. 하지만, MQTT 프로토콜의 경우, 생산자 단말(130)이 마스터 단말과 실시간으로 통신을 수행하는 것이 불가능하기 때문에 그룹키를 전달받기 어려운 상황에서 임시 페이로드 키를 생성하여 사용할 수도 있다.
생산자 단말(130)은 임시 페이로드 키를 생성할 수 있다(S521)
생산자 단말(130)은 임시 페이로드 키를 사용하여 페이로드 암호키를 생성하고, S521단계로 진행할 수 있다(S523). 생산자 단말(130)은 이후 그룹키를 수신하면, 도 2의 S239 내지 S241 단게에서 설명된 페이로드 암호키 업데이트 동작을 수행하여 임시 페이로드 키로 생성한 페이로드 암호키를 그룹키를 이용하여 생성한 페이로드 암호키로 전환하여 사용할 수 있다.
생산자 단말(130)은 브로커 단말(120)로부터 구독자 인증 요청을 수신하였는지 확인할 수 있다(S525).
S525단계의 판단결과, 구독자를 인증하지 못한 경우, 생산자 단말(130)은 S535단계로 진행할 수 있다.
S525단계의 판단결과, 구독자를 인증한 경우, 생산자 단말(130)은 S527단계로 진행할 수 있다.
생산자 단말(130)은 토픽과 페이로드를 암호화하여 메시지를 생성할 수 있다. 생산자 단말(130)은 그룹키를 이용하지 않는 경우, 토픽을 생성하면서, 페이로드 암호키를 생성할 수 있다. 이때, 생산자 단말(130)은 페이로드 시퀀스 번호도 0으로 초기화할 수 있다. 생산자 단말(130)은 토픽은 브로커 단말과 세션 설정 시 생성한 토픽 암호키로 암호화하고, 페이로드는 페이로드 암호키로 암호화할 수 있다.
또한, 생산자 단말(130)은 구독자 단말(110)로부터 수신한 공개키를 이용하여 일회용 암호키를 생성할 수 있다. 생산자 단말(130)은 일회용 암호키로 페이로드 암호키를 암호화할 수 있다.
생산자 단말(130)은 메시지를 브로커 단말로 전송할 수 있다(S529). 생산자 단말(130)은 페이로드 암호키를 생산자 단말로 전송하면, 다음 메시지 전송 시 페이로드 암호키를 전달할 필요가 없다.
하지만, 생산자 단말(130)은 소정 주기 등이 도래하여 페이로드 암호키를 업데이트할지를 확인할 수 있다(S531).
S531단계의 판단결과, 페이로드 암호키를 업데이트하지 않는 경우, 생산자 단말(130)은 S527단계로 진행하여 메시지를 생성할 수 있다.
S531단계의 판단결과, 페이로드 암호키를 업데이트하는 경우, 생산자 단말(130)은 S533단계로 진행할 수 있다.
생산자 단말(130)은 신규 페이로드 암호키를 생성하고, 신규 페이로드 암호키를 기존 페이로드 암호키로 암호화할 수 있다(S533). 신규 페이로드 암호키가 생성되면, 생산자 단말(130)은 전송할 페이로드가 존재하면, 신규 페이로드 암호키로 전송할 페이로드를 암호화할 수 있다.
생산자 단말(130)은 암호화된 신규 페이로드 암호키를 포함하여 페이로드 암호키가 업데이트된 메시지를 브로커 단말(120)을 통해 구독자 단말(110)로 전송할 수 있다.
생산자 단말(130)은 동작을 종료할지 확인할 수 있다(S537).
S537단계의 확인 결과, 동작을 종료하지 않는 경우, 생산자 단말(130)은 S527단계로 진행하여 메시지를 생성할 수 있다. 하지만, 생산자 단말(130)은 은 필요에 따라 다른 단계로 진행할 수도 있다.
S527단계의 확인 결과, 동작을 종료하는 경우, 브로커 단말(120)은 동작을 종료할 수 있다.
본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field programmable gate array) 또는 ASIC 와 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램특허 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다.
구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로부터 분리될 수 있다.
뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU 들을 재생시키도록 구현될 수도 있다
또한 본 발명의 일 실시예에 따르는 메시지 보안 방법은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(또는 컴퓨터 프로그램 제품)으로 구현될 수도 있다. 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다. 또한 컴퓨터 프로그램은 유형의 컴퓨터 판독가능 기록매체(예를 들어, 메모리, 하드디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)에 기록될 수 있다.
따라서 본 발명의 일실시예에 따르는 메시지 보안 방법은 상술한 바와 같은 컴퓨터 프로그램이 컴퓨팅 장치에 의해 실행됨으로써 구현될 수 있다. 컴퓨팅 장치는 프로세서와, 메모리와, 저장 장치와, 메모리 및 고속 확장포트에 접속하고 있는 고속 인터페이스와, 저속 버스와 저장 장치에 접속하고 있는 저속 인터페이스 중 적어도 일부를 포함할 수 있다. 이러한 성분들 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 머더보드에 탑재되거나 다른 적절한 방식으로 장착될 수 있다.
여기서 프로세서는 컴퓨팅 장치 내에서 명령어를 처리할 수 있는데, 이런 명령어로는, 예컨대 고속 인터페이스에 접속된 디스플레이처럼 외부 입력, 출력 장치상에 GUI(Graphic User Interface)를 제공하기 위한 그래픽 정보를 표시하기 위해 메모리나 저장 장치에 저장된 명령어를 들 수 있다. 다른 실시예로서, 다수의 프로세서 및(또는) 다수의 버스가 적절히 다수의 메모리 및 메모리 형태와 함께 이용될 수 있다. 또한 프로세서는 독립적인 다수의 아날로그 및(또는) 디지털 프로세서를 포함하는 칩들이 이루는 칩셋으로 구현될 수 있다.
또한 메모리는 컴퓨팅 장치 내에서 정보를 저장한다. 일례로, 메모리는 휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 다른 예로, 메모리는 비휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 또한 메모리는 예컨대, 자기 혹은 광 디스크와 같이 다른 형태의 컴퓨터 판독 가능한 매체일 수도 있다.
그리고 저장장치는 컴퓨팅 장치에게 대용량의 저장공간을 제공할 수 있다. 저장 장치는 컴퓨터 판독 가능한 매체이거나 이런 매체를 포함하는 구성일 수 있으며, 예를 들어 SAN(Storage Area Network) 내의 장치들이나 다른 구성도 포함할 수 있고, 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 혹은 테이프 장치, 플래시 메모리, 그와 유사한 다른 반도체 메모리 장치 혹은 장치 어레이일 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 네트워크시스템 110: 구독자 단말
120: 브로커 단말 130: 생산자 단말
140: 마스터 단말

Claims (15)

  1. 토픽을 생성하는 생산자 단말;
    상기 토픽을 구독하는 구독자 단말; 및
    상기 구독자 단말 및 상기 생산자 단말과 통신하며, 상기 생산자 단말로부터 암호화된 토픽과 암호화된 페이로드가 포함된 메시지를 수신하면, 상기 암호화된 토픽을 상기 생산자 단말과 공유하는 제 2 토픽 암호키를 이용하여 복호화하여 복호화된 토픽을 구독 중인 구독자 단말을 확인하고, 상기 구독자 단말과 공유하는 제 1 토픽 암호키를 이용하여 상기 토픽을 암호화하여 상기 암호화된 페이로드와 함께 상기 구독자 단말로 전송하는 브로커 단말을 포함하는 네트워크 시스템
  2. 제 1 항에 있어서,
    상기 생산자 단말은,
    상기 암호화된 페이로드를 복호화하는 페이로드 암호키를 생성하고, 상기 구독자 단말과 공개키를 교환하여 일회용 암호키를 생성하고, 상기 페이로드 암호키를 상기 일회용 암호키로 암호화하여 상기 구독자 단말로 전달하는 네트워크 시스템.
  3. 제 2 항에 있어서,
    상기 구독자 단말은,
    상기 생산자 단말과 공개키를 교환하여 일회용 암호키를 생성하고, 상기 생산자 단말로부터 암호화된 페이로드 암호키를 수신하면, 상기 일회용 암호키를 사용하여 상기 페이로드 암호키를 복호화하는 네트워크 시스템.
  4. 제 2 항에 있어서,
    상기 생산자 단말은,
    상기 페이로드 암호키를 소정 주기를 간격으로 신규 페이로드 암호키를 생성하고, 상기 신규 페이로드 암호키가 생성되면, 기존 페이로드 암호키로 상기 신규 페이로드 암호키를 암호화하여 상기 구독자 단말로 전달하는 네트워크 시스템.
  5. 제 4 항에 있어서,
    상기 구독자 단말은,
    암호화된 신규 페이로드 암호키를 수신하면, 기존 페이로드 암호키로 상기 신규 페이로드 암호키를 복호화하여 암호화된 페이로드의 복호화에 사용하는 네트워크 시스템.
  6. 제 1 항에 있어서,
    상기 브로커 단말은,
    상기 구독자 단말과 세션을 설정하고, 상기 세션의 설정 시 상기 제 1 토픽 암호키를 생성하는 네트워크 시스템.
  7. 제 1 항에 있어서,
    상기 브로커 단말은,
    상기 생산자 단말과 세션을 설정하고, 상기 세션의 설정 시 상기 제 2 토픽 암호키를 생성하는 네트워크 시스템.
  8. 제 1 항에 있어서,
    상기 네트워크 시스템은,
    그룹키를 관리하는 마스터 단말을 더 포함하고,
    상기 생산자 단말은,
    상기 네트워크 시스템에 신규로 접속 시, 그룹키를 탐색하여 상기 마스터 단말로부터 소정 시간 이내에 그룹키를 수신하면, 상기 그룹키를 사용하여 상기 암호화된 페이로드를 복호화하기 위한 페이로드 암호키를 생성하고,
    상기 마스터 단말로부터 소정 시간 이내에 그룹키를 수신하지 못하면, 임시 그룹키를 생성하고, 상기 임시 그룹키를 사용하여 상기 페이로드 암호키를 생성하는 네트워크 시스템.
  9. 네트워크 시스템에서 수행되는 메시지 보안 방법에 있어서,
    브로커 단말이, 토픽을 구독하는 구독자 단말과 세션을 설정하는 단계;
    상기 브로커 단말이, 상기 토픽을 생성하는 생산자 단말과 세션을 설정하는 단계;
    상기 브로커 단말이, 상기 생산자 단말로부터 암호화된 토픽과 암호화된 페이로드가 포함된 메시지를 수신하면, 상기 암호화된 토픽을 상기 생산자 단말과 공유하는 제 2 토픽 암호키를 이용하여 복호화하는 단계; 및
    상기 브로커 단말이, 상기 복호화된 토픽을 구독 중인 구독자 단말을 확인하고, 상기 구독자 단말과 공유하는 제 1 토픽 암호키를 이용하여 상기 토픽을 암호화하여 상기 암호화된 페이로드와 함께 상기 구독자 단말로 전송하는 단계를 포함하는 메시지 보안 방법.
  10. 제 9 항에 있어서,
    상기 생산자 단말이, 상기 암호화된 페이로드를 복호화하는 페이로드 암호키를 생성하고, 상기 구독자 단말과 공개키를 교환하여 일회용 암호키를 생성하는 단계;
    상기 구독자 단말이, 상기 생산자 단말과 공개키를 교환하여 일회용 암호키를 생성하는 단계;
    상기 생산자 단말이, 상기 페이로드 암호키를 상기 일회용 암호키로 암호화하여 상기 구독자 단말로 전달하는 단계; 및
    상기 구독자 단말이, 상기 생산자 단말로부터 암호화된 페이로드 암호키를 수신하면, 상기 일회용 암호키를 사용하여 상기 페이로드 암호키를 복호화하는 단계를 더 포함하는 메시지 보안 방법.
  11. 제 10 항에 있어서,
    상기 생산자 단말이, 상기 페이로드 암호키를 소정 주기를 간격으로 신규 페이로드 암호키를 생성하고, 상기 신규 페이로드 암호키가 생성되면, 기존 페이로드 암호키로 상기 신규 페이로드 암호키를 암호화하여 상기 구독자 단말로 전달하는 단계를 더 포함하는 메시지 보안 방법.
  12. 제 11 항에 있어서,
    상기 구독자 단말로 전달하는 단계 이후에,
    상기 구독자 단말이, 암호화된 신규 페이로드 암호키를 수신하면, 기존 페이로드 암호키로 상기 신규 페이로드 암호키를 복호화하여 암호화된 페이로드의 복호화에 사용하는 단계를 더 포함하는 메시지 보안 방법.
  13. 제 9 항에 있어서,
    상기 구독자 단말과 세션을 설정하는 단계는,
    상기 브로커 단말이, 상기 구독자 단말과 상기 세션의 설정 시 상기 제 1 토픽 암호키를 생성하는 단계를 포함하는 메시지 보안 방법.
  14. 제 9 항에 있어서,
    상기 생산자 단말과 세션을 설정하는 단계는,
    상기 브로커 단말이, 상기 생산자 단말과 상기 세션의 설정 시 상기 제 2 토픽 암호키를 생성하는 단계를 포함하는 메시지 보안 방법.
  15. 제 9 항에 있어서,
    상기 생산자 단말이, 상기 네트워크 시스템에 신규로 접속 시, 그룹키를 탐색하여 마스터 단말로부터 소정 시간 이내에 그룹키를 수신하면, 상기 그룹키를 사용하여 상기 암호화된 페이로드를 복호화하는 페이로드 암호키를 생성하고,
    상기 마스터 단말로부터 소정 시간 이내에 그룹키를 수신하지 못하면, 임시 그룹키를 생성하고, 상기 임시 그룹키를 사용하여 상기 페이로드 암호키를 생성하는 단계를 더 포함하는 메시지 보안 방법.
KR1020190156578A 2019-11-29 2019-11-29 네트워크 시스템 및 그것의 메시지 보안 방법 KR102265611B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190156578A KR102265611B1 (ko) 2019-11-29 2019-11-29 네트워크 시스템 및 그것의 메시지 보안 방법
PCT/KR2020/013707 WO2021107389A1 (ko) 2019-11-29 2020-10-08 네트워크 시스템 및 그것의 메시지 보안 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190156578A KR102265611B1 (ko) 2019-11-29 2019-11-29 네트워크 시스템 및 그것의 메시지 보안 방법

Publications (2)

Publication Number Publication Date
KR20210067208A true KR20210067208A (ko) 2021-06-08
KR102265611B1 KR102265611B1 (ko) 2021-06-15

Family

ID=76129353

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190156578A KR102265611B1 (ko) 2019-11-29 2019-11-29 네트워크 시스템 및 그것의 메시지 보안 방법

Country Status (2)

Country Link
KR (1) KR102265611B1 (ko)
WO (1) WO2021107389A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102508524B1 (ko) 2021-11-09 2023-03-09 펜타시큐리티시스템 주식회사 데이터 구독 시스템에서의 암호화 키 관리 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120087550A (ko) * 2011-01-28 2012-08-07 오픈스택 주식회사 암호 통신 방법 및 이를 이용한 암호 통신 시스템
KR101760376B1 (ko) * 2015-11-26 2017-07-24 고려대학교 산학협력단 안전한 메신저 서비스를 제공하는 단말 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160050766A (ko) * 2014-10-31 2016-05-11 삼성에스디에스 주식회사 메시지 통신 장치 및 방법
KR102028151B1 (ko) * 2017-04-07 2019-10-02 주식회사트러스트홀딩스 장치 인증키를 이용한 데이터 암호화 방법 및 시스템
KR20190007336A (ko) * 2017-07-12 2019-01-22 주식회사 코스콤 보안채널 생성 방법 및 그 장치와 이를 이용한 보안정보의 송수신 방법 및 그 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120087550A (ko) * 2011-01-28 2012-08-07 오픈스택 주식회사 암호 통신 방법 및 이를 이용한 암호 통신 시스템
KR101760376B1 (ko) * 2015-11-26 2017-07-24 고려대학교 산학협력단 안전한 메신저 서비스를 제공하는 단말 및 방법

Also Published As

Publication number Publication date
KR102265611B1 (ko) 2021-06-15
WO2021107389A1 (ko) 2021-06-03

Similar Documents

Publication Publication Date Title
US11431484B2 (en) Blockchain transaction privacy enhancement through broadcast encryption
US10412061B2 (en) Method and system for encrypted communications
US9537918B2 (en) File sharing with client side encryption
KR102113440B1 (ko) 디바이스들에 대한 동적 그룹 멤버십
CN110392889B (zh) 用于区块链网络的基于现场可编程门阵列的可信执行环境
US11316677B2 (en) Quantum key distribution node apparatus and method for quantum key distribution thereof
US7978858B2 (en) Terminal device, group management server, network communication system, and method for generating encryption key
CN111460453A (zh) 机器学习训练方法、控制器、装置、服务器、终端和介质
DE112017002070T5 (de) Technologien für die Vorrichtungsinbetriebnahme
US20210119781A1 (en) Systems and methods for re-using cold storage keys
US20170149748A1 (en) Secure Group Messaging and Data Steaming
US20160323100A1 (en) Key generation device, terminal device, and data signature and encryption method
US20180351737A1 (en) Communication apparatus, communication system, key sharing method, and computer program product
US11677718B1 (en) File sharing over secure connections
US11569989B2 (en) Blockchain system for hardening quantum computing security
CN109345242B (zh) 基于区块链的密钥存储、更新方法、装置、设备和介质
CN113261024A (zh) 用于利用区块链技术路由到网状网络内容的方法
US11606193B2 (en) Distributed session resumption
JP2018509048A (ja) セキュア実行環境通信
US20200175505A1 (en) System and method for creating a secure mesh network utilizing the blockchain
WO2020082226A1 (en) Method and system for transferring data in a blockchain system
US20170359172A1 (en) Security for monitoring and detection systems
KR102265611B1 (ko) 네트워크 시스템 및 그것의 메시지 보안 방법
US11411741B2 (en) Secure data transmission method
US20140181508A1 (en) Communication device and computer program product

Legal Events

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