KR20240000161A - Method, device and system for dds communication - Google Patents

Method, device and system for dds communication Download PDF

Info

Publication number
KR20240000161A
KR20240000161A KR1020220076755A KR20220076755A KR20240000161A KR 20240000161 A KR20240000161 A KR 20240000161A KR 1020220076755 A KR1020220076755 A KR 1020220076755A KR 20220076755 A KR20220076755 A KR 20220076755A KR 20240000161 A KR20240000161 A KR 20240000161A
Authority
KR
South Korea
Prior art keywords
node
domain
nodes
authentication
information
Prior art date
Application number
KR1020220076755A
Other languages
Korean (ko)
Inventor
김동호
이동훈
허태성
Original Assignee
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Priority to KR1020220076755A priority Critical patent/KR20240000161A/en
Priority to PCT/KR2023/008241 priority patent/WO2023249320A1/en
Publication of KR20240000161A publication Critical patent/KR20240000161A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/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/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • 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/0442Network 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 wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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
    • 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
    • H04L9/3213Cryptographic 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 using tickets or tokens, e.g. Kerberos
    • 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/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/121Timestamp

Abstract

DDS 통신 방법이 개시된다. 본 발명에 따른 DDS 통신 방법은, 게이트웨이에 접속하여 DDS 통신에 참여하려는 복수의 노드로부터, 식별 정보 및 도메인 ID를 포함하는 노드 정보를 수신하는 단계, 상기 복수의 노드 중 동일한 도메인 ID를 가지는 노드들에, 상기 도메인 ID를 가지는 노드들의 노드 정보 및 상기 도메인 ID에 상응하는 그룹 키를 전송하는 단계, 상기 게이트웨이가, 상기 도메인 ID를 가지는 노드들이 패킷을 교환하기 위한 네트워크를 구성하는 단계, 및, 상기 게이트웨이가, 상기 도메인 ID를 가지는 특정 노드로부터 상기 그룹 키를 이용하여 생성된 인증 정보를 수신하고, 상기 인증 정보를 이용하여 인증을 수행하고, 상기 인증에 성공하면 상기 특정 노드로부터 수신되는 패킷을 상기 도메인 ID를 가지는 다른 노드에 전송하는 단계를 포함한다.A DDS communication method is disclosed. The DDS communication method according to the present invention includes receiving node information including identification information and domain ID from a plurality of nodes that want to connect to a gateway and participate in DDS communication, and nodes having the same domain ID among the plurality of nodes. transmitting node information of nodes having the domain ID and a group key corresponding to the domain ID; configuring, by the gateway, a network for nodes having the domain ID to exchange packets; and, The gateway receives authentication information generated using the group key from a specific node having the domain ID, performs authentication using the authentication information, and, if the authentication is successful, sends the packet received from the specific node to the It includes transmitting to another node having a domain ID.

Description

DDS 통신 방법, 장치 및 시스템 {METHOD, DEVICE AND SYSTEM FOR DDS COMMUNICATION}DDS communication method, device and system {METHOD, DEVICE AND SYSTEM FOR DDS COMMUNICATION}

본 발명은, 5G, LTE 등의 대규모 네트워크 환경에서 DDS 통신을 제공하기 위한, DDS 통신 방법, 장치 및 시스템에 관한 것이다.The present invention relates to a DDS communication method, device, and system for providing DDS communication in a large-scale network environment such as 5G and LTE.

데이터 분산 서비스(Data Distribution Service, DDS)(이하, DDS라 함)는 분산 환경에서 실시간 통신을 위한 발간(publish) - 구독(subscribe) 방식의 통신 프로토콜을 제공한다. 발간 - 구독 방식은 성능, 확장성 그리고 가용성 측면에서 강점을 가지며, 국방, 교통, 의료, 로봇 등 다양한 분야에서 사용되고 있다. 일 예로, 로봇의 운영체제로 많이 쓰이는 ROS2에서는 기본 통신 미들웨어로 DDS를 사용한다.Data Distribution Service (DDS) (hereinafter referred to as DDS) provides a publish-subscribe communication protocol for real-time communication in a distributed environment. The publication-subscription method has strengths in terms of performance, scalability, and availability, and is used in various fields such as defense, transportation, medicine, and robotics. For example, ROS2, which is widely used as an operating system for robots, uses DDS as the basic communication middleware.

일반적인 DDS 통신 방법에서는, 분산 환경에서 실시간으로 데이터를 배포하기 위해, 자동으로 참여자(Participant)를 찾아내는 오토 디스커버리(Auto-Discovery) 기능을 사용한다. 오토 디스커버리(Auto-Discovery) 기능은, 참여자가 멀티캐스트(Multicast)로 PDP(Participant Discovery Protocol)라는 메시지를 주기적으로 전송함으로써 데이터를 배포할 다른 참여자를 찾아내는 기능이다.In a typical DDS communication method, an auto-discovery function is used to automatically find participants to distribute data in real time in a distributed environment. The Auto-Discovery function is a function where participants find other participants to distribute data to by periodically transmitting a PDP (Participant Discovery Protocol) message through multicast.

오토 디스커버리(Auto-Discovery) 기능은, 멀티캐스트(Multicast)로 자동으로 다른 참여자들을 찾아 연결할 수 있는 장점을 제공한다. 다만 참여자가 추가되면 될수록 패킷 수가 크게 증가하므로 효율적으로 확장하기 어려운, 즉 가용성에 대한 문제가 있으며, 또한 멀티캐스트가 지원되지 않은 환경에서 사용이 불가능하다는 문제점이 있다The Auto-Discovery function provides the advantage of automatically finding and connecting to other participants through multicast. However, as more participants are added, the number of packets increases significantly, so it is difficult to expand efficiently, that is, there is a problem with availability, and there is also a problem that it cannot be used in an environment where multicast is not supported.

또한 참여자들이 자동으로 데이터 배포에 참여하도록 하는 오토 디스커버리(Auto-Discovery) 기능은, 조작된 디스커버리 패킷을 이용한 Network Flooding 공격, Network Reflection Attack(반사공격) 등의 DDoS 공격이 가능하다는 문제가 있다.Additionally, the Auto-Discovery function, which allows participants to automatically participate in data distribution, has the problem that DDoS attacks such as Network Flooding attacks and Network Reflection Attacks using manipulated discovery packets are possible.

따라서 현재의 DDS 통신은, 국방, 교통, 의료, 로봇 등의 한정적이고 폐쇄적인 시스템에서만 사용되고 있을 뿐, 5G, LTE 등의 개방적이고 큰 규모를 가지는 네트워크 환경에서는 적용하기가 어렵다는 문제가 있다.Therefore, the current DDS communication is only used in limited and closed systems such as national defense, transportation, medicine, and robots, but there is a problem that it is difficult to apply in open and large-scale network environments such as 5G and LTE.

본 발명은 상술한 문제점을 해결하기 위한 것으로, 본 발명의 목적은, 5G, LTE 등의 대규모 네트워크 환경에서 DDS 통신을 제공하기 위한, DDS 통신 방법, 장치 및 시스템을 제공하기 위함이다.The present invention is intended to solve the above-mentioned problems, and the purpose of the present invention is to provide a DDS communication method, device, and system for providing DDS communication in a large-scale network environment such as 5G and LTE.

본 발명에 따른 DDS 통신 방법은, 게이트웨이에 접속하여 DDS 통신에 참여하려는 복수의 노드로부터, 식별 정보 및 도메인 ID를 포함하는 노드 정보를 수신하는 단계, 상기 복수의 노드 중 동일한 도메인 ID를 가지는 노드들에, 상기 도메인 ID를 가지는 노드들의 노드 정보 및 상기 도메인 ID에 상응하는 그룹 키를 전송하는 단계, 상기 게이트웨이가, 상기 도메인 ID를 가지는 노드들이 패킷을 교환하기 위한 네트워크를 구성하는 단계, 및, 상기 게이트웨이가, 상기 도메인 ID를 가지는 특정 노드로부터 상기 그룹 키를 이용하여 생성된 인증 정보를 수신하고, 상기 인증 정보를 이용하여 인증을 수행하고, 상기 인증에 성공하면 상기 특정 노드로부터 수신되는 패킷을 상기 도메인 ID를 가지는 다른 노드에 전송하는 단계를 포함한다.The DDS communication method according to the present invention includes receiving node information including identification information and domain ID from a plurality of nodes that want to connect to a gateway and participate in DDS communication, and nodes having the same domain ID among the plurality of nodes. transmitting node information of nodes having the domain ID and a group key corresponding to the domain ID; configuring, by the gateway, a network for nodes having the domain ID to exchange packets; and, The gateway receives authentication information generated using the group key from a specific node having the domain ID, performs authentication using the authentication information, and, if the authentication is successful, sends the packet received from the specific node to the It includes transmitting to another node having a domain ID.

이 경우 상기 식별 정보는, 상기 참여자 단말의 식별 정보를 포함하고, 상기 참여자 단말의 식별 정보는, 단말기 고유 식별 번호(IMEI)일 수 있다.In this case, the identification information includes identification information of the participant terminal, and the identification information of the participant terminal may be a terminal unique identification number (IMEI).

한편 상기 식별 정보 및 도메인 ID를 포함하는 노드 정보를 수신하는 단계는, 상기 식별 정보 및 상기 참여자 단말에서 생성되는 노드들에 순차적으로 부여되는 인스턴스 ID를 이용하여 상기 노드 정보를 전송한 노드를 인증하는 단계를 포함할 수 있다.Meanwhile, the step of receiving node information including the identification information and domain ID includes authenticating the node that transmitted the node information using the identification information and instance IDs sequentially assigned to nodes generated in the participant terminal. May include steps.

한편 상기 도메인 ID를 가지는 노드들의 노드 정보 및 상기 도메인 ID에 상응하는 그룹 키를 전송하는 단계는, 상기 도메인 ID와 상응하는 도메인에 새로운 노드가 참여하면, 상기 그룹 키를 갱신하고 상기 갱신된 그룹 키를 상기 도메인 ID를 가지는 노드들에 전송하는 단계를 포함할 수 있다.Meanwhile, the step of transmitting node information of nodes having the domain ID and a group key corresponding to the domain ID includes updating the group key when a new node participates in the domain corresponding to the domain ID, and updating the group key with the updated group key. It may include transmitting to nodes having the domain ID.

한편 상기 도메인 ID를 가지는 노드들의 노드 정보 및 상기 도메인 ID에 상응하는 그룹 키를 전송하는 단계는, 상기 도메인 ID와 상응하는 도메인에 새로운 노드가 참여하면, 상기 새로운 노드의 노드 정보를 상기 도메인 ID를 가지는 노드들에 전송하는 단계를 포함할 수 있다.Meanwhile, in the step of transmitting node information of nodes having the domain ID and a group key corresponding to the domain ID, when a new node joins the domain corresponding to the domain ID, the node information of the new node is transmitted to the domain ID. Branching may include transmitting to nodes.

한편 상기 도메인 ID를 가지는 노드들이 패킷을 교환하기 위한 네트워크를 구성하는 단계는, 상기 동일한 도메인 ID를 가지는 노드들만 패킷을 교환하고 다른 도메인 ID를 가지는 노드들과의 패킷 교환이 차단되도록 상기 네트워크를 구성하는 단계를 포함할 수 있다.Meanwhile, the step of configuring a network for nodes having the same domain ID to exchange packets involves configuring the network so that only nodes having the same domain ID exchange packets and packet exchange with nodes having different domain IDs is blocked. It may include steps.

이 경우 상기 도메인 ID를 가지는 노드들의 노드 정보 및 상기 도메인 ID에 상응하는 그룹 키를 전송하는 단계는, 인증에 성공한 노드에 해당 노드가 접속할 인터페이스 정보를 전송하는 단계를 포함하고, 상기 동일한 도메인 ID를 가지는 노드들만 패킷을 교환하고 다른 도메인 ID를 가지는 노드들과의 패킷 교환이 차단되도록 상기 네트워크를 구성하는 단계는, 상기 동일한 도메인 ID를 가지는 노드들이 접속할 인터페이스들을 가상으로 연결하는 터널을 생성하는 단계를 포함할 수 있다.In this case, the step of transmitting node information of nodes having the domain ID and a group key corresponding to the domain ID includes transmitting interface information for the node to connect to the node that has successfully authenticated, and transmitting the same domain ID to the node. The step of configuring the network so that only nodes with the same domain ID exchange packets and packet exchange with nodes with different domain IDs is blocked includes the step of creating a tunnel that virtually connects interfaces to which nodes with the same domain ID will connect. It can be included.

한편 상기 인증 정보는, 상기 특정 노드가 상기 게이트웨이에 접속할 때 상기 특정 노드로부터 수신하는 인증 코드를 포함할 수 있다.Meanwhile, the authentication information may include an authentication code received from the specific node when the specific node connects to the gateway.

이 경우 상기 인증 코드는, 상기 특정 노드의 노드 정보 및 상기 특정 노드가 보유하는 그룹 키를 이용하여 생성되고, 상기 인증을 수행하는 단계는, 상기 게이트웨이가 보유한, 상기 도메인 ID에 상응하는 그룹 키 및 상기 특정 노드의 노드 정보를 이용하여, 상기 특정 노드로부터 수신된 상기 인증 코드를 인증하는 단계를 포함할 수 있다.In this case, the authentication code is generated using node information of the specific node and a group key held by the specific node, and the step of performing the authentication includes a group key corresponding to the domain ID held by the gateway and It may include authenticating the authentication code received from the specific node using node information of the specific node.

한편 상기 인증 정보는, 상기 특정 노드가 상기 도메인 ID를 가지는 노드들에 패킷을 전송할 때, 상기 패킷과 함께 상기 특정 노드로부터 수신되는 인증 토큰을 포함할 수 있다.Meanwhile, the authentication information may include an authentication token received from the specific node along with the packet when the specific node transmits a packet to nodes having the domain ID.

이 경우 상기 인증 토큰은, 상기 특정 노드의 노드 정보 및 상기 특정 노드가 보유하는 그룹 키를 이용하여 생성되고, 상기 인증을 수행하는 단계는, 상기 게이트웨이가 보유한, 상기 도메인 ID에 상응하는 그룹 키 및 상기 특정 노드의 노드 정보를 이용하여, 상기 특정 노드로부터 수신된 상기 인증 토큰을 인증하는 단계를 포함할 수 있다.In this case, the authentication token is generated using node information of the specific node and a group key held by the specific node, and the step of performing the authentication includes a group key corresponding to the domain ID held by the gateway and It may include authenticating the authentication token received from the specific node using node information of the specific node.

이 경우 상기 인증 토큰은, 타임 스탬프 및 시퀀스 넘버 중 적어도 하나를 더 포함할 수 있다.In this case, the authentication token may further include at least one of a time stamp and a sequence number.

한편 상기 인증에 성공하면 상기 특정 노드로부터 수신되는 패킷을 상기 도메인 ID를 가지는 다른 노드에 전송하는 단계는, 상기 도메인 ID를 가지는 노드들에 상기 게이트웨이의 공개 키를 전송하는 단계, 및, 상기 인증 토큰에 대한 인증이 성공하면, 상기 인증 토큰을 상기 게이트웨이의 개인 키로 암호화한 이중 암호화 토큰을 생성하는 단계를 포함할 수 있다.Meanwhile, if the authentication is successful, transmitting the packet received from the specific node to another node having the domain ID includes transmitting the public key of the gateway to the nodes having the domain ID, and, the authentication token. If authentication is successful, it may include generating a double encryption token by encrypting the authentication token with the private key of the gateway.

이 경우 상기 인증에 성공하면 상기 특정 노드로부터 수신되는 패킷을 상기 도메인 ID를 가지는 다른 노드에 전송하는 단계는, 상기 인증 토큰과 함께 수신된 상기 패킷에 상기 이중 암호화 토큰을 삽입하여 상기 도메인 ID를 가지는 다른 노드에 전송하는 단계를 포함할 수 있다.In this case, if the authentication is successful, the step of transmitting the packet received from the specific node to another node having the domain ID includes inserting the double encryption token into the packet received with the authentication token and having the domain ID. It may include transmitting to another node.

한편 DDS 통신 시스템은, 게이트웨이에 접속하여 DDS 통신에 참여하려는 복수의 노드로부터 식별 정보 및 도메인 ID를 포함하는 노드 정보를 수신하고, 상기 복수의 노드 중 동일한 도메인 ID를 가지는 노드들에, 상기 도메인 ID를 가지는 노드들의 노드 정보 및 상기 도메인 ID에 상응하는 그룹 키를 전송하는 제어 서버, 및, 상기 도메인 ID를 가지는 노드들이 패킷을 교환하기 위한 네트워크를 구성하고, 상기 도메인 ID를 가지는 특정 노드로부터 상기 그룹 키를 이용하여 생성된 인증 정보를 수신하고, 상기 인증 정보를 이용하여 인증을 수행하고, 상기 인증에 성공하면 상기 특정 노드로부터 수신되는 패킷을 상기 도메인 ID를 가지는 다른 노드에 전송하는 게이트웨이를 포함한다.Meanwhile, the DDS communication system receives node information including identification information and domain ID from a plurality of nodes that want to connect to the gateway and participate in DDS communication, and sends the domain ID to nodes having the same domain ID among the plurality of nodes. A control server that transmits node information of nodes having and a group key corresponding to the domain ID, and nodes having the domain ID configure a network for exchanging packets, and the group is transferred from a specific node having the domain ID. It includes a gateway that receives authentication information generated using a key, performs authentication using the authentication information, and, when the authentication is successful, transmits a packet received from the specific node to another node having the domain ID. .

이 경우 상기 식별 정보는, 상기 참여자 단말의 식별 정보를 포함하고, 상기 참여자 단말의 식별 정보는, 단말기 고유 식별 번호(IMEI)일 수 있다.In this case, the identification information includes identification information of the participant terminal, and the identification information of the participant terminal may be a terminal unique identification number (IMEI).

한편 상기 제어 서버는, 상기 식별 정보 및 상기 참여자 단말에서 생성되는 노드들에 순차적으로 부여되는 인스턴스 ID를 이용하여 상기 노드 정보를 전송한 노드를 인증할 수 있다.Meanwhile, the control server can authenticate the node that transmitted the node information using the identification information and an instance ID sequentially assigned to nodes generated in the participant terminal.

한편 상기 제어 서버는, 상기 도메인 ID와 상응하는 도메인에 새로운 노드가 참여하면, 상기 그룹 키를 갱신하고 상기 갱신된 그룹 키를 상기 도메인 ID를 가지는 노드들에 전송할 수 있다.Meanwhile, when a new node joins the domain corresponding to the domain ID, the control server may update the group key and transmit the updated group key to nodes having the domain ID.

한편 상기 제어 서버는, 상기 도메인 ID와 상응하는 도메인에 새로운 노드가 참여하면, 상기 새로운 노드의 노드 정보를 상기 도메인 ID를 가지는 노드들에 전송할 수 있다.Meanwhile, when a new node joins the domain corresponding to the domain ID, the control server may transmit node information of the new node to nodes having the domain ID.

한편 DDS 통신 장치는, 복수의 노드가 접속 가능한 복수의 인터페이스를 제공하는 게이트웨이, 상기 게이트웨이에 접속하여 DDS 통신에 참여하려는 복수의 노드로부터, 식별 정보 및 도메인 ID를 포함하는 노드 정보를 수신하는 통신부, 및, 상기 복수의 노드 중 동일한 도메인 ID를 가지는 노드들에, 상기 도메인 ID를 가지는 노드들의 노드 정보 및 상기 도메인 ID에 상응하는 그룹 키를 상기 통신부를 통하여 전송하는 제어부를 포함하고, 상기 게이트웨이는, 상기 도메인 ID를 가지는 노드들이 패킷을 교환하기 위한 네트워크를 구성하고, 상기 도메인 ID를 가지는 특정 노드로부터 상기 그룹 키를 이용하여 생성된 인증 정보를 수신하고, 상기 인증 정보를 이용하여 인증을 수행하고, 인증에 성공하면 상기 특정 노드로부터 수신되는 패킷을 상기 도메인 ID를 가지는 다른 노드에 전송할 수 있다.Meanwhile, the DDS communication device includes a gateway that provides a plurality of interfaces to which a plurality of nodes can connect, a communication unit that receives node information including identification information and domain ID from a plurality of nodes that want to connect to the gateway and participate in DDS communication; and a control unit that transmits node information of nodes having the domain ID and a group key corresponding to the domain ID to nodes having the same domain ID among the plurality of nodes through the communication unit, and the gateway is, Nodes having the domain ID configure a network for exchanging packets, receive authentication information generated using the group key from a specific node having the domain ID, and perform authentication using the authentication information, If authentication is successful, the packet received from the specific node can be transmitted to another node with the domain ID.

본 발명에 따르면, DDS 통신 시스템에서 생성하는 정책을 기반으로 동일 도메인에 참여한 노드들 간의 데이터 교환을 지원함으로써, 오토 디스커버리(Auto-Discovery) 기능을 이용하지 않고도 그리고 멀티캐스트가 지원되지 않은 환경에서도 DDS 통신을 가능하게 할 수 있으며, 참여자 단말이나 노드의 수가 증가하더라도 패킷의 수가 기하급수적으로 증가하는 것을 방지할 수 있다. 이에 따라 종래의 DDS 통신 방식에 비해 가용성 및 확장성에서 확연한 장점을 나타내며, 특히 5G, LTE 등의 개방적이고 큰 규모를 가지는 네트워크 환경에서도 DDS 통신을 가능하게 하는 장점이 있다. According to the present invention, by supporting data exchange between nodes participating in the same domain based on the policy created in the DDS communication system, DDS can be implemented without using the Auto-Discovery function and even in an environment where multicast is not supported. It can enable communication and prevent the number of packets from increasing exponentially even if the number of participant terminals or nodes increases. Accordingly, it has clear advantages in availability and scalability compared to conventional DDS communication methods, and has the advantage of enabling DDS communication even in open and large-scale network environments such as 5G and LTE.

도 1은 본 발명에 따른 DDS 통신 시스템을 설명하기 위한 블록도이다.
도 2는 본 발명에 따른, DDS 통신 시스템의 DDS 통신 방법을 설명하기 위한 순서도이다.
도 3은 DDS 통신 시스템 및 노드들의 전체적인 동작을 설명하기 위한 순서도이다. 도 2 및 도 3을 함께 참고하여 설명한다.
도 4는 본 발명에 따른, 노드를 인증하는 방법을 설명하기 위한 도면이다.
도 5는 게이트웨이가 네트워크를 구성하는 방법을 설명하기 위한 도면이다.
도 6은 본 발명에 따른, 노드가 게이트웨이에 최초에 접속할 때 수행되는 1차 인증 과정을 설명하기 위한 도면이다.
도 7은 본 발명에 따른, 노드가 다른 노드에 패킷을 전송할 때 수행되는 2차 인증 과정을 설명하기 위한 도면이다.
도 8은 본 발명의 또 다른 실시 예에 따른 DDS 통신 장치를 설명하기 위한 도면이다.
Figure 1 is a block diagram for explaining a DDS communication system according to the present invention.
Figure 2 is a flowchart for explaining the DDS communication method of the DDS communication system according to the present invention.
Figure 3 is a flowchart for explaining the overall operation of the DDS communication system and nodes. The description will be made with reference to FIGS. 2 and 3 together.
Figure 4 is a diagram for explaining a method for authenticating a node according to the present invention.
Figure 5 is a diagram to explain how a gateway configures a network.
Figure 6 is a diagram illustrating the primary authentication process performed when a node first connects to a gateway according to the present invention.
Figure 7 is a diagram illustrating a secondary authentication process performed when a node transmits a packet to another node according to the present invention.
Figure 8 is a diagram for explaining a DDS communication device according to another embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Hereinafter, embodiments disclosed in the present specification will be described in detail with reference to the attached drawings. However, identical or similar components will be assigned the same reference numbers regardless of reference numerals, and duplicate descriptions thereof will be omitted. The suffixes “module” and “part” for components used in the following description are given or used interchangeably only for the ease of preparing the specification, and do not have distinct meanings or roles in themselves. Additionally, in describing the embodiments disclosed in this specification, if it is determined that detailed descriptions of related known technologies may obscure the gist of the embodiments disclosed in this specification, the detailed descriptions will be omitted. In addition, the attached drawings are only for easy understanding of the embodiments disclosed in this specification, and the technical idea disclosed in this specification is not limited by the attached drawings, and all changes included in the spirit and technical scope of the present invention are not limited. , should be understood to include equivalents or substitutes.

제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms containing ordinal numbers, such as first, second, etc., may be used to describe various components, but the components are not limited by the terms. The above terms are used only for the purpose of distinguishing one component from another.

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

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions include plural expressions unless the context clearly dictates otherwise. In this application, terms such as “comprise” or “have” are intended to designate the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, but are not intended to indicate the presence of one or more other features. It should be understood that this does not exclude in advance the possibility of the existence or addition of elements, numbers, steps, operations, components, parts, or combinations thereof.

본 발명을 구현함에 있어서 설명의 편의를 위하여 구성요소를 세분화하여 설명할 수 있으나, 이들 구성요소가 하나의 장치 또는 모듈 내에 구현될 수도 있고, 혹은 하나의 구성요소가 다수의 장치 또는 모듈들에 나뉘어져서 구현될 수도 있다. In implementing the present invention, the components may be subdivided for convenience of explanation, but these components may be implemented in one device or module, or one component may be divided into multiple devices or modules. It can also be implemented.

DDS통신은 복잡한 네트워크를 단순화한 네트워크 미들웨어로서, 참여자들 상호간의 응답을 다루기 위해 설계된다. 그리고 본 발명에서는, 단순화한 DDS 미들웨어 설계를 소프트웨어 정의 경계 기반으로 확장 설계하여, 5G 또는 LTE를 포함하는 대규모 네트워크 환경에서 DDS 통신을 지원하는 DDS 통신 시스템을 제공한다.DDS communication is network middleware that simplifies complex networks and is designed to handle responses between participants. In addition, the present invention provides a DDS communication system that supports DDS communication in a large-scale network environment including 5G or LTE by expanding the simplified DDS middleware design based on a software-defined boundary.

도 1은 본 발명에 따른 DDS 통신 시스템을 설명하기 위한 블록도이다.Figure 1 is a block diagram for explaining a DDS communication system according to the present invention.

본 발명에 따른 DDS 통신 시스템은, 게이트웨이(100) 및 제어 서버(200)를 포함하고, 다수의 노드 간 통신을 지원할 수 있다.The DDS communication system according to the present invention includes a gateway 100 and a control server 200 and can support communication between multiple nodes.

게이트웨이(100)는 다수의 참여자 단말(1110, 1120, 1130)과 연결되어, 참여자 단말과 데이터를 송/수신할 수 있다. 여기서 참여자 단말은 통신 사업자가 제공하는 통신 서비스(5G 또는 LTE 등의 이동 통신 서비스, 인터넷 서비스 등)에 가입된 단말(또는 서버)일 수 있다.The gateway 100 is connected to a plurality of participant terminals 1110, 1120, and 1130 and can transmit/receive data to and from the participant terminals. Here, the participant terminal may be a terminal (or server) subscribed to a communication service (mobile communication service such as 5G or LTE, Internet service, etc.) provided by a communication service provider.

다수의 참여자 단말(1110, 1120, 1130)에서는 노드가 구동될 수 있으며, 하나의 참여자 단말에서는 하나 또는 복수의 노드가 구동될 수 있다. 일 예로, 참여자 단말은 스마트폰, PC 등의 장치(하드웨어)를 의미한다면, 노드는 장치(하드웨어)에서 구동되는 운영체제, 애플리케이션, 프로세스, 프로그램 등을 의미할 수 있다. DDS 통신 시스템에서 데이터를 송신 및 수신하는 주체는 노드로써, 게이트웨이(100)는 참여자 단말에서 구동되는 노드와 데이터를 송/수신할 수 있다.Nodes may be driven in a plurality of participant terminals 1110, 1120, and 1130, and one or more nodes may be driven in one participant terminal. For example, while a participant terminal refers to a device (hardware) such as a smartphone or PC, a node may refer to an operating system, application, process, program, etc. that runs on the device (hardware). In the DDS communication system, the entity that transmits and receives data is the node, and the gateway 100 can transmit/receive data with the node running on the participant terminal.

제어 서버(200)는 게이트웨이(100)에 연결된 다수의 노드들 및 게이트웨이(100)와 통신할 수 있다. 또한 제어 서버(200)는, 오토 디스커버리(Auto-Discovery) 없이도, 동일한 도메인에 참여하는 노드들 간의 통신을 지원하고, 보안성을 향상시키기 위한 정책을 생성할 수 있다. 이러한 정책은 DDS 통신 시스템에 연결되는 다수의 노드 및 게이트웨이(100)에 배포되고, 다수의 노드 각각은 제어 서버(200)에서 생성된 정책에 기반하여 동일한 도메인에 참여하는 다른 노드와 데이터를 송/수신 할 수 있다.The control server 200 may communicate with the gateway 100 and a plurality of nodes connected to the gateway 100. Additionally, the control server 200 can support communication between nodes participating in the same domain and create policies to improve security even without auto-discovery. These policies are distributed to a plurality of nodes and gateways 100 connected to the DDS communication system, and each of the plurality of nodes transmits/transmits data to other nodes participating in the same domain based on the policy generated by the control server 200. can receive

한편 제어 서버(200)는 외부 장치와 통신하기 위한 통신부, 제어 서버의 전반적인 동작을 제어하는 제어부, 및, 제어 서버의 동작을 위한 프로그램 또는 명령어를 저장하는 메모리를 포함할 수 있다.Meanwhile, the control server 200 may include a communication unit for communicating with an external device, a control unit for controlling the overall operation of the control server, and a memory for storing programs or commands for operating the control server.

게이트웨이(100)는, 게이트웨이(100)에 연결된 다수의 노드들의 통신 경로를 설정할 수 있다. 구체적으로 게이트웨이(100)는, 제어 서버(200)에서 생성된 정책에 기반하여, 동일한 도메인에 속하는 노드들이 패킷을 교환하기 위한 네트워크를 구성할 수 있다. 즉 게이트웨이(100)는 게이트웨이(100)에 연결된 다수의 노드들 중 동일한 도메인에 속하는 노드들끼리 패킷을 교환할 수 있는 터널을 생성할 수 있다. 그리고 이러한 터널은, 포트간의 물리적인 연결에 의해서가 아닌, 제어 서버(200)에서 생성된 정책에 기반하여 게이트웨이(100)가 논리적으로 생성하는 것으로, 가상 터널이라 명칭될 수 있다.The gateway 100 can set communication paths for multiple nodes connected to the gateway 100. Specifically, the gateway 100 may configure a network for nodes belonging to the same domain to exchange packets, based on the policy created by the control server 200. That is, the gateway 100 can create a tunnel through which packets can be exchanged between nodes belonging to the same domain among a plurality of nodes connected to the gateway 100. And this tunnel is logically created by the gateway 100 based on a policy created in the control server 200 rather than by a physical connection between ports, and may be called a virtual tunnel.

도 2는 본 발명에 따른, DDS 통신 시스템의 DDS 통신 방법을 설명하기 위한 순서도이다.Figure 2 is a flowchart for explaining the DDS communication method of the DDS communication system according to the present invention.

본 발명에 따른 DDS 통신 시스템의 DDS 통신 방법은, 게이트웨이에 접속하여 DDS 통신에 참여하려는 복수의 노드로부터, 노드의 식별 정보 및 도메인 ID를 포함하는 노드 정보를 수신하는 단계(S210), 복수의 노드 중 동일한 도메인 ID를 가지는 노드들에, 도메인 ID를 가지는 노드들의 노드 정보 및 도메인 ID에 상응하는 그룹 키를 전송하는 단계(S220), 게이트웨이가, 도메인 ID를 가지는 노드들이 패킷을 교환하기 위한 네트워크를 구성하는 단계(S230), 및, 게이트웨이가, 도메인 ID를 가지는 특정 노드로부터 그룹 키를 이용하여 생성된 인증 정보를 수신하고, 인증 정보를 이용하여 인증을 수행하고, 인증에 성공하면 특정 노드로부터 수신되는 패킷을 도메인 ID를 가지는 다른 노드에 전송하는 단계(S240)를 포함할 수 있다.The DDS communication method of the DDS communication system according to the present invention includes receiving node information including identification information and domain ID of the node from a plurality of nodes that want to connect to the gateway and participate in DDS communication (S210), a plurality of nodes A step of transmitting node information of nodes having domain IDs and a group key corresponding to the domain ID to nodes having the same domain ID (S220), where the gateway establishes a network for nodes having domain IDs to exchange packets. Configuring step (S230), and the gateway receives authentication information generated using a group key from a specific node having a domain ID, performs authentication using the authentication information, and receives the authentication information from the specific node when authentication is successful. It may include transmitting the packet to another node having the domain ID (S240).

도 3은 DDS 통신 시스템 및 노드들의 전체적인 동작을 설명하기 위한 순서도이다. 도 2 및 도 3을 함께 참고하여 설명한다.Figure 3 is a flowchart for explaining the overall operation of the DDS communication system and nodes. The description will be made with reference to FIGS. 2 and 3 together.

인증을 위해, 노드(1210)는 제어 서버(200)에 노드 정보를 전송할 수 있다(S305). 여기서 노드 정보는 참여자 단말의 식별 정보 및 참여자 단말에서 구동하는 노드의 식별 정보를 포함하는 식별 정보를 포함할 수 있다.For authentication, node 1210 may transmit node information to the control server 200 (S305). Here, the node information may include identification information including identification information of the participant terminal and identification information of the node running on the participant terminal.

구체적으로 참여자 단말의 식별 정보는, 통신 서비스를 이용하는 참여자 단말에 고유하게 부여되는 것으로, 예를 들어 참여자 단말의 식별 정보는 참여자 단말의 범용 고유 식별자(universally unique identifier , UUID)일 수 있다. 한편 앞서 설명한 바와 같이, DDS 통신 시스템은 5G 또는 LTE를 포함하는 대규모 네트워크 환경에서 DDS 통신을 지원할 수 있으며, 이 경우 참여자 단말의 범용 고유 식별자(universally unique identifier , UUID)에는 단말기 고유 식별 번호(International Mobile Equipment Identity , IMEI)가 사용될 수 있다.Specifically, the identification information of the participant terminal is uniquely assigned to the participant terminal using the communication service. For example, the identification information of the participant terminal may be a universally unique identifier (UUID) of the participant terminal. Meanwhile, as previously explained, the DDS communication system can support DDS communication in a large-scale network environment including 5G or LTE. In this case, the universally unique identifier (UUID) of the participant terminal includes the terminal unique identification number (International Mobile Equipment Identity (IMEI) may be used.

한편 노드의 식별 정보는, 호스트 ID 및 앱 ID 중 적어도 하나를 포함할 수 있다. 여기서 호스트 ID는 노드가 구동 중인 참여자 단말에 고유하게 부여되는 것으로, 예를 들어 MAC주소, IPv4주소, 범용 고유 식별자(universally unique identifier , UUID) 등을 포함할 수 있다. 또한 앱 ID는, 참여자 단말에서 구동하는 노드를 식별하기 위한 것으로, 예를 들어 운영 체제(리눅스, 유닉스, 윈도우 등)에서 관리하는 프로세스 ID인 앱 ID(App ID)일 수 있다.Meanwhile, the identification information of the node may include at least one of a host ID and an app ID. Here, the host ID is uniquely assigned to the participant terminal on which the node is running, and may include, for example, a MAC address, IPv4 address, universally unique identifier (UUID), etc. Additionally, the App ID is used to identify a node running on a participant terminal, and may be, for example, an App ID, which is a process ID managed by an operating system (Linux, Unix, Windows, etc.).

한편 노드 정보는 도메인 ID를 더 포함할 수 있다. 여기서 도메인 ID는 노드가 참여할 도메인의 식별 정보로써, 제어 서버(200)는 도메인 ID를 기준으로 노드 간 통신을 지원하게 된다.Meanwhile, node information may further include a domain ID. Here, the domain ID is identification information of the domain in which the node will participate, and the control server 200 supports communication between nodes based on the domain ID.

한편 노드 정보는 인스턴스 ID를 더 포함할 수 있다. 여기서 인스턴스 ID(Instance ID)는 참여자 단말에서 생성되는(구동을 시작하는) 노드들에 순차적으로 부여되는 것이다. 예를 들어 참여자 단말은 처음 노드를 생성하는 경우 해당 노드에 0x01의 인스턴스 ID를 부여하고, 두번째 노드를 생성하는 경우 해당 노드에 0x02의 인스턴스 ID를 부여할 수 있다.Meanwhile, node information may further include an instance ID. Here, the instance ID is sequentially assigned to nodes that are created (starting operation) in the participant terminal. For example, when a participant terminal creates a node for the first time, it may give that node an instance ID of 0x01, and when it creates a second node, it may grant an instance ID of 0x02 to that node.

다음으로, 제어 서버(200)는 게이트웨이(100)에 접속하여 DDS 통신에 참여하려는 복수의 노드로부터, 식별 정보 및 도메인 ID를 포함하는 노드 정보를 수신할 수 있다(S210). Next, the control server 200 may connect to the gateway 100 and receive node information including identification information and domain ID from a plurality of nodes that want to participate in DDS communication (S210).

구체적으로, 제어 서버(200)는 노드 및 참여자 단말을 신뢰하지 않으므로 엄격한 인증을 수행한다. 따라서 제어 서버(200)는, IP나 포트(Port)를 이용하는 대신, 식별 정보를 이용하여 인증을 수행할 수 있다.Specifically, the control server 200 performs strict authentication because it does not trust the nodes and participant terminals. Therefore, the control server 200 can perform authentication using identification information instead of using IP or port.

이 경우 제어부(120)는 참여자 단말의 식별 정보 및 노드의 식별 정보를 이용하여 노드 정보를 전송한 노드를 인증할 수 있다(S310). 이와 관련해서는 도 4를 참고하여 설명한다.In this case, the control unit 120 can authenticate the node that transmitted the node information using the identification information of the participant terminal and the identification information of the node (S310). This will be explained with reference to Figure 4.

도 4는 본 발명에 따른, 노드를 인증하는 방법을 설명하기 위한 도면이다.Figure 4 is a diagram for explaining a method for authenticating a node according to the present invention.

제어 서버(200)는 참여자 단말의 식별 정보를 제어 서버(200)에 미리 등록된 참여자 단말의 식별 정보와 비교하고, 일치하는 경우 참여자 단말의 식별 정보가 인증된 것으로 결정할 수 있다(S410). 또한 제어 서버(200)는 수신된 노드의 식별 정보를 제어 서버(200)에 미리 등록된 복수의 노드들의 식별 정보와 비교하고, 일치하는 경우 노드의 식별 정보가 인증된 것으로 결정할 수 있다(S420). 그리고 노드의 식별 정보와 참여자 단말의 식별 정보가 인증되면, 제어 서버(200)는 해당 노드 정보를 전송한 노드에 대한 인증이 성공한 것으로 결정할 수 있다.The control server 200 may compare the identification information of the participant terminal with the identification information of the participant terminal pre-registered in the control server 200, and if they match, determine that the identification information of the participant terminal is authenticated (S410). Additionally, the control server 200 may compare the received identification information of the node with the identification information of a plurality of nodes pre-registered in the control server 200, and if they match, determine that the identification information of the node is authenticated (S420). . And when the identification information of the node and the identification information of the participant terminal are authenticated, the control server 200 may determine that the authentication of the node that transmitted the corresponding node information was successful.

또한, 노드 정보에 인스턴스 ID가 더 포함되는 경우, 제어 서버(200)는 참여자 단말의 식별 정보, 노드의 식별 정보 및 참여자 단말에서 생성되는 노드들에 순차적으로 부여되는 인스턴스 ID를 이용하여 노드 정보를 전송한 노드를 인증할 수 있다(S430). In addition, when the node information further includes an instance ID, the control server 200 provides the node information using the identification information of the participant terminal, the node identification information, and the instance ID sequentially assigned to the nodes generated in the participant terminal. The transmitting node can be authenticated (S430).

구체적으로 제어 서버(200)는, 인스턴스 ID의 증감을 확인하여 노드를 인증할 수 있다. 더욱 구체적으로, 제어 서버(200)는 하나의 참여자 단말로부터 수신되는 노드들의 노드 정보(앱 ID 및 인스턴스 ID)를 메모리에 저장하고, 먼저 수신된 노드 정보 내 인스턴스 ID 및 현재 수신된 노드 정보 내 인스턴스 ID를 이용하여 해당 노드를 인증할 수 있다. Specifically, the control server 200 can authenticate the node by checking the increase or decrease in the instance ID. More specifically, the control server 200 stores node information (app ID and instance ID) of nodes received from one participant terminal in memory, and selects the instance ID in the previously received node information and the instance in the currently received node information. You can authenticate the node using the ID.

예를 들어 도 4를 참고하면, 제어 서버(200)는, 특정 참여자 단말(참여자 단말 #1)에서 첫번째로 구동된 노드(노드 #1)로부터 1이라는 인스턴스 ID를 포함하는 제1 노드 정보를 수신하고, 수신된 제1 노드 정보를 메모리에 저장할 수 있다. 다음으로 제어 서버(200)는 동일한 참여자 단말(참여자 단말 #1)에서 새롭게 구동된 노드(노드 #2)로부터 2라는 인스턴스 ID를 포함하는 제2 노드 정보를 수신할 수 있다. 또한 인스턴스 ID는 1씩 증가하도록 미리 설정되어 있으며, 제어 서버(200)는 미리 설정된 증감량(1씩 증가)를 알고 있다. 이 경우 제어 서버(200)는 제1 노드 정보가 1이라는 인스턴스 ID를 포함하고, 제2 노드 정보가 2라는 인스턴스 ID를 포함하며, 인스턴스 ID가 1이 증가했다는 것을 이용하여, 새롭게 구동된 노드(노드 #2)에 대한 인증이 성공한 것으로 결정할 수 있다.For example, referring to FIG. 4, the control server 200 receives first node information including an instance ID of 1 from the node (node #1) first driven in a specific participant terminal (participant terminal #1). And, the received first node information can be stored in memory. Next, the control server 200 may receive second node information including an instance ID of 2 from a newly operated node (node #2) in the same participant terminal (participant terminal #1). Additionally, the instance ID is preset to increase by 1, and the control server 200 knows the preset increase/decrease amount (increase by 1). In this case, the control server 200 uses the fact that the first node information includes an instance ID of 1, the second node information includes an instance ID of 2, and the instance ID is increased by 1, to create a newly driven node ( It can be determined that authentication for node #2) was successful.

반면에 미리 설정된 증감량(예를 들어 1씩 증가)과 상이한 노드 정보가 수신되는 경우, 제어 서버(200)는 해당 노드에 대한 인증이 실패한 것으로 결정할 수 있다.On the other hand, if node information that is different from the preset increase/decrease amount (for example, increases by 1) is received, the control server 200 may determine that authentication for the corresponding node has failed.

한편 특정 참여자 단말(참여자 단말 #1)의 식별 정보나 호스트 ID를 탈취한 해커(해커 #1)가, 탈취한 정보를 포함하는 제3 노드 정보를 제어 서버(200)에 전송한다고 가정한다. 다만 해커(해커 #1)는 특정 참여자 단말(참여자 단말 #1)에서의 인스턴스 ID는 알 수 없기 때문에 정확한 인스턴스 ID를 노드 정보에 포함시키지 못하며, 제어 서버(200)는 제3 노드 정보를 이용하여 해커에 대한 인증이 실패한 것으로 결정할 수 있다. 또한 제어 서버(200) 제3 노드 정보를 블랙리스트로써 메모리에 저장할 수 있다.Meanwhile, assume that a hacker (hacker #1) who has stolen the identification information or host ID of a specific participant terminal (participant terminal #1) transmits third node information including the stolen information to the control server 200. However, since the hacker (hacker #1) cannot know the instance ID of a specific participant terminal (participant terminal #1), the correct instance ID cannot be included in the node information, and the control server 200 uses the third node information to It may be determined that authentication for the hacker has failed. Additionally, the control server 200 third node information can be stored in memory as a blacklist.

도 2 및 도 3으로 다시 돌아가서, 노드 정보를 전송한 노드에 대한 인증이 성공하면, 제어 서버(200)는 해당 노드가 참여하는 도메인의 그룹 키를 갱신할 수 있다(S310). 구체적으로 제어 서버(200)는, 노드(1210)가 전송한 노드 정보에 특정 도메인 ID가 포함되면, 특정 도메인 ID와 상응하는 도메인에 새로운 노드(1210)가 참여한 것으로 판단하고, 특정 도메인 ID에 상응하는 그룹 키를 갱신할 수 있다. 즉 도메인에서 사용되는 그룹 키는 해당 도메인에 노드가 새롭게 참여할 때마다 갱신될 수 있다.Returning to FIGS. 2 and 3, if authentication of the node transmitting node information is successful, the control server 200 may update the group key of the domain in which the node participates (S310). Specifically, if the node information transmitted by the node 1210 includes a specific domain ID, the control server 200 determines that the new node 1210 has participated in the domain corresponding to the specific domain ID, and You can update the group key. In other words, the group key used in the domain can be updated whenever a new node joins the domain.

다만 이에 한정되지 않으며, 도메인 ID에 상응하는 그룹키는 주기적으로 갱신되는 방식으로 구현될 수도 있다. 또한 노드(1210)가 특정 도메인에 처음으로 참여하는 경우, 제어 서버(200)는 해당 도메인 ID에 상응하는 그룹 키를 새롭게 생성할 수 있다.However, it is not limited to this, and the group key corresponding to the domain ID may be implemented in such a way that it is periodically updated. Additionally, when the node 1210 participates in a specific domain for the first time, the control server 200 may generate a new group key corresponding to the domain ID.

한편 노드에 대한 인증이 성공하면, 제어 서버(200)는 인증에 성공한 노드(1210)에게 제1 정책 정보를 전송할 수 있다(S315). 여기서 제1 정책 정보는 해당 노드가 접속 가능한, 게이트웨이의 인터페이스 정보를 포함할 수 있다. 또한 인터페이스 정보는 게이트웨이의 IP 및 포트를 포함할 수 있다.Meanwhile, if authentication of the node is successful, the control server 200 may transmit first policy information to the node 1210 that succeeded in authentication (S315). Here, the first policy information may include gateway interface information that the corresponding node can access. Additionally, the interface information may include the IP and port of the gateway.

한편 제어 서버(200)는 게이트웨이(100)에 제2 정책 정보를 전송할 수 있다(S320). 여기서 제2 정책 정보는, 갱신된(또는 새롭게 생성된) 그룹 키와, 인증에 성공한 노드(1210)의 노드 정보를 포함할 수 있다. 제어 서버(200)가 게이트웨이(100)에 전송하는 노드 정보는, 인증에 성공한 노드의 참여자 단말의 식별 정보, 노드의 식별 정보, 도메인 ID를 포함할 수 있으며, 추가적으로 인증에 성공한 노드의 IP를 더 포함할 수 있다.Meanwhile, the control server 200 may transmit second policy information to the gateway 100 (S320). Here, the second policy information may include an updated (or newly created) group key and node information of the node 1210 that successfully authenticated. The node information that the control server 200 transmits to the gateway 100 may include identification information of the participant terminal of the node that successfully authenticated, identification information of the node, and domain ID, and may additionally include the IP of the node that successfully authenticated. It can be included.

한편 제어 서버(200)는 인증에 성공한 노드(1210)에게 제3 정책 정보를 전송할 수 있다. 구체적으로 제어 서버(200)는, 게이트웨이에 접속하여 DDS 통신에 참여하려는 복수의 노드 중 동일한 도메인 ID를 가지는 노드들에, 동일한 도메인 ID를 가지는 노드들의 노드 정보 및 동일한 도메인 ID에 상응하는 그룹 키를 전송할 수 있다(S220, S325, S330). 예를 들어 제1 노드 내지 제100 노드가 존재하며, 제1 노드 내지 제30 노드가 제1 도메인 ID를 가지고 제1 도메인에 참여하려 하는 경우, 제어 서버(200)는 제1 노드에 제2 내지 제29 노드의 노드 정보 및 제1 도메인에 상응하는 그룹 키를 전송하고, 제30 노드에 제1 내지 제29 노드의 노드 정보 및 제1 도메인에 상응하는 그룹 키를 전송할 수 있다.Meanwhile, the control server 200 may transmit third policy information to the node 1210 that has successfully authenticated. Specifically, the control server 200 provides node information of the nodes with the same domain ID and a group key corresponding to the same domain ID to nodes with the same domain ID among a plurality of nodes that want to connect to the gateway and participate in DDS communication. Can be transmitted (S220, S325, S330). For example, if there are 1st to 100th nodes, and the 1st to 30th nodes try to join the first domain with the first domain ID, the control server 200 connects the 2nd to 30th nodes to the first node. The node information of the 29th node and the group key corresponding to the first domain may be transmitted, and the node information of the 1st to 29th nodes and the group key corresponding to the first domain may be transmitted to the 30th node.

한편 제어 서버(200)가 전송하는 다른 노드의 노드 정보는, 인증에 성공한 노드의 참여자 단말의 식별 정보, 노드의 식별 정보, 도메인 ID를 포함할 수 있으며, 추가적으로 인증에 성공한 노드의 IP를 더 포함할 수 있다.Meanwhile, the node information of other nodes transmitted by the control server 200 may include identification information of the participant terminal of the node that successfully authenticated, node identification information, and domain ID, and may additionally include the IP of the node that successfully authenticated. can do.

한편 제어 서버(200)는 새롭게 갱신되는 정보만을 게이트웨이(100) 또는 노드에 전송할 수도 있다. 예를 들어 특정 도메인에 새로운 노드가 참여하는 경우, 제어 서버(200)는 새로운 노드의 노드 정보를, 새로운 노드와 동일한 도메인 ID를 가지는 노드들에 전송할 수 있다. 또한 앞서 설명한 바와 같이, 그룹 키는 새로운 노드가 도메인에 참여할 때 갱신될 수 있으며, 제어 서버(200)는 도메인에 새로운 노드가 참여한 경우에 갱신된 그룹 키를 해당 도메인 ID를 가지는 노드들에 전송할 수 있다. 예를 들어 제1 노드 내지 제29 노드가 속해있는 제1 도메인에 제30 노드가 새롭게 참여하는 경우, 제어 서버(200)는 제1 도메인의 그룹 키를 갱신하고, 게이트웨이(100) 및 제1 노드 내지 제29 노드에 제30 노드의 노드 정보 및 갱신된 그룹 키를 전송할 수 있다. 다만 새롭게 참여한 제30 노드에는, 제1 내지 29 노드의 노드 정보 및 갱신된 그룹 키가 전송되어야 한다.Meanwhile, the control server 200 may transmit only newly updated information to the gateway 100 or the node. For example, when a new node participates in a specific domain, the control server 200 may transmit node information of the new node to nodes having the same domain ID as the new node. Also, as described above, the group key can be updated when a new node joins the domain, and the control server 200 can transmit the updated group key to nodes with the corresponding domain ID when a new node joins the domain. there is. For example, when the 30th node newly joins the first domain to which the 1st to 29th nodes belong, the control server 200 updates the group key of the first domain, and the gateway 100 and the first node The node information and the updated group key of the 30th node can be transmitted to the 29th to 29th nodes. However, the node information of the 1st to 29th nodes and the updated group key must be transmitted to the newly joined 30th node.

한편 게이트웨이(100)에 연결되어 통신에 참여하는 복수의 노드 및 제어 서버(200)는 앞서 설명한 동작을 수행할 수 있다. 이에 따라 제어 서버(200)는 복수의 노드로부터 노드 정보를 수신하여 노드에 대한 인증을 수행하고, 인증에 성공한 노드에게 해당 노드가 접속 가능한 인터페이스 정보 및 생성된(갱신된) 그룹 키를 전송하며, 게이트웨이(100)에 인증에 성공한 노드의 노드 정보 및 생성된(갱신된) 그룹 키를 전송할 수 있다. 이에 따라 게이트웨이(100)에는 게이트웨이(100)에 연결되어 통신에 참여하는 복수의 노드의 노드 정보 및 도메인 별 그룹 키가 저장될 수 있으며, 새로운 노드가 참여할 때마다 저장된 정보가 갱신될 수 있다. 또한 인증에 성공한 노드들에는, 동일한 도메인 ID를 가지는 다른 노드들의 노드 정보 및 도메인 ID에 상응하는 그룹 키가 저장될 수 있으며, 새로운 노드가 참여할 때마다 저장된 정보가 갱신될 수 있다.Meanwhile, a plurality of nodes and control servers 200 connected to the gateway 100 and participating in communication can perform the operations described above. Accordingly, the control server 200 receives node information from a plurality of nodes, performs authentication for the node, and transmits information on the interface to which the node can access and a generated (updated) group key to the node that has successfully authenticated, The node information of the node that successfully authenticated and the generated (updated) group key can be transmitted to the gateway 100. Accordingly, the gateway 100 can store node information and group keys for each domain of a plurality of nodes connected to the gateway 100 and participating in communication, and the stored information can be updated each time a new node participates. Additionally, node information of other nodes having the same domain ID and group key corresponding to the domain ID may be stored in nodes that have successfully authenticated, and the stored information may be updated whenever a new node participates.

한편 인증에 성공한 노드의 노드 정보 및 그룹 키가 수신되면, 게이트웨이(100)는 동일한 도메인 ID를 가지는 노드들이 패킷을 교환하기 위한 네트워크를 구성할 수 있다(S230). 이와 관련해서는 도 5를 참고하여 설명한다.Meanwhile, when the node information and group key of the successfully authenticated node are received, the gateway 100 can configure a network for nodes having the same domain ID to exchange packets (S230). This will be explained with reference to FIG. 5 .

도 5는 게이트웨이가 네트워크를 구성하는 방법을 설명하기 위한 도면이다.Figure 5 is a diagram to explain how a gateway configures a network.

게이트웨이(100)는 도메인 ID를 기준으로 네트워크 정책을 갱신할 수 있다. 네트워크 패킷 정책은 라우팅 및 스위칭 중 적어도 하나에 대한 정책과 방화벽 정책을 포함할 수 있다. 또한 네트워크 정책을 갱신한다는 것은, 새롭게 참여한 노드의 노드 정보에 기반하여, 동일한 도메인 ID를 가지는 노드들만 패킷을 교환하고 다른 도메인 ID를 가지는 노드들과의 패킷 교환이 차단되도록 네트워크를 구성하는 것을 의미할 수 있다.The gateway 100 may update the network policy based on the domain ID. The network packet policy may include a policy for at least one of routing and switching and a firewall policy. In addition, updating the network policy means configuring the network so that only nodes with the same domain ID exchange packets and packet exchange with nodes with different domain IDs is blocked, based on the node information of the newly joined node. You can.

더욱 구체적으로 게이트웨이(100)는 5 tuple(출발지 IP, 출발지 포트, 목적지 IP, 목적지 포트, 프로토콜) 및 도메인 ID를 이용하여 네트워크 정책을 설정할 수 있다. 도 5a에서는 게이트웨이(100)의 물리적인 구성도를 도시하였으며, 게이트웨이(100)는 게이트웨이에 접속하여 DDS 통신에 참여하려는 복수의 노드(510, 520, 530, 540)가 각각 접속할 수 있는 복수의 인터페이스(111, 112, 113, 114)를 포함할 수 있다. 이 경우 게이트웨이(100)는, 도 5b에서 도시한 바와 같이, 동일한 도메인(560)에 참여한 노드들(510, 520, 540)(즉, 동일한 도메인 ID를 가지는 노드들)이 패킷을 교환하기 위한 네트워크를 구성할 수 있다. 여기서 구성되는 네트워크는 가상 네트워크로써, 네트워크는 IPSec VPN, SSL VPN, Open vSwitch등의 가상 네트워크를 생성할 수 있는 표준 기술이 사용될 수 있다.More specifically, the gateway 100 can set a network policy using 5 tuples (source IP, source port, destination IP, destination port, protocol) and domain ID. Figure 5a shows the physical configuration of the gateway 100, and the gateway 100 has a plurality of interfaces that can be accessed by a plurality of nodes 510, 520, 530, and 540 that want to participate in DDS communication by connecting to the gateway. It may include (111, 112, 113, 114). In this case, the gateway 100 is a network for the nodes 510, 520, and 540 participating in the same domain 560 (i.e., nodes with the same domain ID) to exchange packets, as shown in FIG. 5B. can be configured. The network constructed here is a virtual network, and standard technologies that can create virtual networks such as IPSec VPN, SSL VPN, and Open vSwitch can be used.

즉 게이트웨이(100)는, 동일한 도메인 ID를 가지는 노드들(510, 520, 540)에 전송된 인터페이스 정보에 기초하여, 동일한 도메인 ID를 가지는 노드들(510, 520, 540)이 접속한 인터페이스들(111, 112, 114)을 가상으로 연결하는 터널을 생성할 수 있다. 이와 같은 터널은 동일한 도메인 ID를 가지는 노드들(510, 520, 540)이 접속한 인터페이스들(111, 112, 114) 간의 통신을 지원하며, 다른 도메인 ID를 가지는 노드가 접속한 인터페이스(113)와의 통신을 차단한다. 즉 도메인 ID를 기반으로 동일한 도메인 ID를 가지는 노드들이 가상 터널링으로 맺어지기 때문에, 동일한 도메인 ID를 가지는 노드들이 동일한 네트워크로 구성됨으로써 효율적인 DDS 통신이 가능하다.That is, the gateway 100, based on the interface information transmitted to the nodes 510, 520, and 540 with the same domain ID, interfaces ( A tunnel that virtually connects 111, 112, and 114) can be created. This tunnel supports communication between interfaces 111, 112, and 114 connected by nodes 510, 520, and 540 with the same domain ID, and with the interface 113 connected by nodes with different domain IDs. Block communication. That is, since nodes with the same domain ID are connected through virtual tunneling based on the domain ID, efficient DDS communication is possible by configuring nodes with the same domain ID on the same network.

다시 도 2 및 도 3으로 돌아가서, 게이트웨이(100)는, 동일한 도메인 ID를 가지는 특정 노드로부터 그룹 키를 이용하여 생성된 인증 정보를 수신하고, 인증 정보를 이용하여 인증을 수행하고, 인증에 성공하면 특정 노드로부터 수신되는 패킷을 동일한 도메인 ID를 가지는 다른 노드에 전송할 수 있다(S240).Returning to FIGS. 2 and 3, the gateway 100 receives authentication information generated using a group key from a specific node having the same domain ID, performs authentication using the authentication information, and, if authentication is successful, A packet received from a specific node can be transmitted to another node with the same domain ID (S240).

S240에서 수행되는 인증은, 노드가 게이트웨이에 최초에 접속할 때 수행되는 1차 인증 및 노드가 게이트웨이를 통하여 다른 노드에 패킷을 전송할 때 수행되는 2차 인증을 포함할 수 있다. 먼저 도 2 및 도 3과 함께 도 6을 참고하여 1차 인증 과정을 설명한다.Authentication performed in S240 may include primary authentication performed when the node first connects to the gateway and secondary authentication performed when the node transmits a packet to another node through the gateway. First, the first authentication process will be described with reference to FIG. 6 along with FIGS. 2 and 3.

도 6은 본 발명에 따른, 노드가 게이트웨이에 최초에 접속할 때 수행되는 1차 인증 과정을 설명하기 위한 도면이다. Figure 6 is a diagram illustrating the primary authentication process performed when a node first connects to a gateway according to the present invention.

현재 게이트웨이(100)에는, 제1 노드(510)의 노드 정보, 제1 노드가 속하는 도메인의 그룹 키가 전송되어 있는 상태이다(S610). 또한 게이트웨이(100)에는, 제1 노드와 동일한 도메인에 참여한 노드들의 노드 정보가 전송되어 있는 상태이다.Currently, the node information of the first node 510 and the group key of the domain to which the first node belongs are transmitted to the gateway 100 (S610). Additionally, node information on nodes participating in the same domain as the first node is transmitted to the gateway 100.

또한 제1 노드(510)에는, 제1 노드(510)가 접속 가능한 게이트웨이의 인터페이스 정보, 제1 노드(510)와 동일한 도메인 ID를 가지는 다른 노드의 노드 정보, 동일한 도메인 ID에 대응하는 그룹 키(제1 노드가 속하는 도메인의 그룹 키)가 전송되어 있는 상태이다(S620).In addition, the first node 510 includes interface information of a gateway to which the first node 510 can connect, node information of another node having the same domain ID as the first node 510, and a group key corresponding to the same domain ID ( The group key of the domain to which the first node belongs is being transmitted (S620).

한편 제1 노드(510)는 게이트웨이(100)에 인증 코드를 전송할 수 있다(S335, S630). 구체적으로 제1 노드(510)는 제1 노드의 노드 정보 및 제1 노드가 보유하는 그룹 키(제1 노드가 속하는 도메인의 그룹 키)를 이용하여 인증 코드를 생성할 수 있다. 예를 들어 인증 코드는, 호스트 ID, 앱 ID, 도메인 ID 및 그룹 키를 이용하여 생성될 수 있다. 이 경우 제1 노드(510)는 제어 서버(200)로부터 수신한 인터페이스 정보(IP 및 포트)를 이용하여 해당 인터페이스에 접속하고, 접속한 인터페이스를 통하여 게이트웨이에 인증 코드를 전송할 수 있다.Meanwhile, the first node 510 may transmit an authentication code to the gateway 100 (S335, S630). Specifically, the first node 510 may generate an authentication code using node information of the first node and a group key (group key of the domain to which the first node belongs) held by the first node. For example, an authentication code can be generated using a host ID, app ID, domain ID, and group key. In this case, the first node 510 can connect to the corresponding interface using the interface information (IP and port) received from the control server 200 and transmit an authentication code to the gateway through the connected interface.

여기서 인증 코드는 제1 노드(510)의 노드 정보 및 제1 노드가 보유하는 그룹 키를 조합하여 생성되는 메시지 인증 코드(MAC : Message Authentication Code)로써, 예를 들어 HMAC(Hashed MAC)일 수 있다. 이 경우 제1 노드(510)는 제1 노드(510)의 노드 정보를 제1 노드가 보유하는 그룹 키로 암호화 하여 인증 코드를 생성할 수 있다.Here, the authentication code is a message authentication code (MAC) generated by combining node information of the first node 510 and a group key held by the first node, and may be, for example, HMAC (Hashed MAC). . In this case, the first node 510 may generate an authentication code by encrypting the node information of the first node 510 with a group key held by the first node.

또한 제1 노드(510)는 노드 정보 및 그룹 키와 함께, 현재 시간을 나타내는 타임 스탬프를 추가적으로 이용하여 인증 코드를 생성할 수 있다. 타임 스탬프는 리플레이 어택(Replay Attack)을 방지하는데 사용될 수 있다.Additionally, the first node 510 may generate an authentication code by additionally using a time stamp indicating the current time along with node information and group key. Timestamps can be used to prevent replay attacks.

한편 게이트웨이(100)는 제1 노드(510)로부터 인증 코드를 수신할 수 있다. 현재 1차 인증 과정을 설명하고 있는 중으로, 게이트웨이(100)는 제1 노드(510)가 게이트웨이(100)에 접속할 때 제1 노드(510)로부터 인증 코드를 수신할 수 있다.Meanwhile, the gateway 100 may receive an authentication code from the first node 510. Currently explaining the primary authentication process, the gateway 100 may receive an authentication code from the first node 510 when the first node 510 connects to the gateway 100.

또한 게이트웨이(100)는 제1 노드(510)로부터 수신한 인증 정보(인증 코드)를 이용하여 제1 노드(510)에 대한 인증을 수행할 수 있다(S340, S640). 구체적으로 게이트웨이(100)는, 게이트웨이가 보유한, 도메인 ID(제1 노드가 속하는 도메인의 도메인 ID)에 상응하는 그룹키 및 제1 노드의 노드 정보를 이용하여, 제1 노드(510)로부터 수신된 인증 코드를 인증할 수 있다.Additionally, the gateway 100 may perform authentication on the first node 510 using authentication information (authentication code) received from the first node 510 (S340, S640). Specifically, the gateway 100 uses the node information of the first node and a group key corresponding to the domain ID (domain ID of the domain to which the first node belongs) held by the gateway to receive information from the first node 510. You can authenticate the authentication code.

구체적으로 게이트웨이(100)는, 특정 도메인 ID(제1 노드가 속하는 도메인의 도메인 ID)을 가지는 노드들의 노드 정보를 저장할 수 있다. 그리고 게이트웨이(100)는, 제1 노드(510)로부터 수신된 인증 코드를 게이트웨이가 보유한 그룹 키(제1 노드가 속하는 도메인의 그룹 키)를 이용하여 복호화하여 제1 노드(510)의 노드 정보를 추출할 수 있다. 또한 게이트웨이(100)는 추출된 노드 정보를 게이트웨이가 보유한 제1 노드의 노드 정보와 비교하고, 일치하는 경우 제1 노드(510)에 대한 인증이 성공한 것으로 결정할 수 있다.Specifically, the gateway 100 may store node information of nodes having a specific domain ID (domain ID of the domain to which the first node belongs). And the gateway 100 decrypts the authentication code received from the first node 510 using the group key (group key of the domain to which the first node belongs) held by the gateway to obtain node information of the first node 510. It can be extracted. Additionally, the gateway 100 may compare the extracted node information with the node information of the first node held by the gateway, and if they match, determine that authentication for the first node 510 was successful.

반면에 게이트웨이가 보유한 그룹 키를 이용한 복호화가 불가능하거나, 제1 노드(510)가 전송한 노드 정보가 게이트웨이가 보유한 노드 정보와 일치하지 않거나, 인증 코드에 포함되는 타임 스탬프로부터 기 설정된 시간 이상이 경과한 경우, 게이트웨이는 제1 노드(510)에 대한 인증이 실패한 것으로 결정할 수 있다. 인증이 실패한 경우, 제1 노드(510)는 DDS 통신에 참여할 수 없다.On the other hand, decryption using the group key held by the gateway is not possible, the node information transmitted by the first node 510 does not match the node information held by the gateway, or more than a preset time has elapsed from the time stamp included in the authentication code. In one case, the gateway may determine that authentication for the first node 510 failed. If authentication fails, the first node 510 cannot participate in DDS communication.

한편 제1 노드(510)에 대한 인증에 성공하면, 게이트웨이(100)는 제1 노드(510)에 게이트웨이의 공개 키를 전송할 수 있다(S345, S650). 게이트웨이(100)는, 제1 노드(510) 뿐만 아니라 인증에 성공하는 다른 노드에도, 게이트웨이의 공개 키를 전송할 수 있다. Meanwhile, if authentication with the first node 510 is successful, the gateway 100 may transmit the gateway's public key to the first node 510 (S345, S650). The gateway 100 may transmit the public key of the gateway not only to the first node 510 but also to other nodes that succeed in authentication.

다음은 노드가 게이트웨이를 통하여 다른 노드에 패킷을 전송할 때 수행되는 2차 인증 과정을 도 2 및 도 3과 함께 도 7을 참고하여 설명한다.Next, the secondary authentication process performed when a node transmits a packet to another node through a gateway will be described with reference to FIG. 7 along with FIGS. 2 and 3.

도 7은 본 발명에 따른, 노드가 다른 노드에 패킷을 전송할 때 수행되는 2차 인증 과정을 설명하기 위한 도면이다. Figure 7 is a diagram illustrating a secondary authentication process performed when a node transmits a packet to another node according to the present invention.

제1 노드(510)는 제1 노드의 노드 정보 및 제1 노드가 보유하는 그룹 키(제1 노드가 속하는 도메인의 그룹 키)를 이용하여 인증 토큰을 생성할 수 있다. 예를 들어 인증 토큰은, 호스트 ID, 앱 ID, 도메인 ID 및 그룹 키를 이용하여 생성될 수 있다. The first node 510 may generate an authentication token using node information of the first node and a group key (group key of the domain to which the first node belongs) held by the first node. For example, an authentication token can be generated using a host ID, app ID, domain ID, and group key.

여기서 인증 토큰은 제1 노드(510)의 노드 정보 및 제1 노드가 보유하는 그룹 키를 조합하여 생성되는 메시지 인증 코드(MAC : Message Authentication Code)로써, 예를 들어 HMAC(Hashed MAC)일 수 있다. 이 경우 제1 노드(510)는 제1 노드(510)의 노드 정보를 제1 노드가 보유하는 그룹 키로 암호화 하여 인증 토큰을 생성할 수 있다.Here, the authentication token is a message authentication code (MAC) generated by combining node information of the first node 510 and a group key held by the first node, and may be, for example, HMAC (Hashed MAC). . In this case, the first node 510 may generate an authentication token by encrypting the node information of the first node 510 with a group key held by the first node.

또한 제1 노드(510)는 노드 정보 및 그룹 키와 함께, 시퀀스 넘버(Sequence Number)를 추가적으로 이용하여 인증 토큰을 생성할 수 있다. 시퀀스 넘버는 리플레이 어택(Replay Attack)을 방지하는데 사용될 수 있다. 다만 이에 한정되지 않으며, 인증 토큰은 타임 스탬프 및 시퀀스 넘버 중 적어도 하나를 포함할 수 있다.Additionally, the first node 510 may generate an authentication token by additionally using a sequence number along with node information and group key. Sequence numbers can be used to prevent replay attacks. However, it is not limited to this, and the authentication token may include at least one of a time stamp and a sequence number.

한편 제1 노드(510)는 동일한 도메인 ID를 가지는 노드들에 전송할 데이터를 포함하는 패킷을 생성할 수 있다. 또한 제1 노드(510)는 생성된 인증 토큰을, 데이터를 포함하는 패킷에 삽입하여 게이트웨이(100)에 전송할 수 있다. 즉 제1 노드(510)는 DDS 통신을 위한 패킷과 함께 인증 토큰을 전송할 수 있으며(S350, S710), 이 경우 인증 토큰은 패킷에 삽입될 수 있다.Meanwhile, the first node 510 may generate a packet containing data to be transmitted to nodes having the same domain ID. Additionally, the first node 510 may insert the generated authentication token into a packet containing data and transmit it to the gateway 100. That is, the first node 510 may transmit an authentication token along with a packet for DDS communication (S350, S710), and in this case, the authentication token may be inserted into the packet.

한편 게이트웨이(100)는 제1 노드(510)로부터 인증 토큰을 수신할 수 있다. 구체적으로 게이트웨이(100)는, 제1 노드(510)가 동일한 도메인 ID를 가지는 노드들에 패킷을 전송할 때, 제1 노드로부터 패킷과 함께 인증 토큰을 수신할 수 있다.Meanwhile, the gateway 100 may receive an authentication token from the first node 510. Specifically, when the first node 510 transmits a packet to nodes having the same domain ID, the gateway 100 may receive an authentication token along with the packet from the first node.

또한 게이트웨이(100)는 제1 노드(510)로부터 수신한 인증 정보(인증 토큰)를 이용하여 제1 노드(510)에 대한 인증을 수행할 수 있다. 구체적으로 게이트웨이(100)는, 게이트웨이가 보유한, 도메인 ID(제1 노드가 속하는 도메인의 도메인 ID)에 상응하는 그룹키 및 제1 노드의 노드 정보를 이용하여, 제1 노드(510)로부터 수신된 인증 토큰을 인증할 수 있다.Additionally, the gateway 100 may perform authentication for the first node 510 using authentication information (authentication token) received from the first node 510. Specifically, the gateway 100 uses the node information of the first node and a group key corresponding to the domain ID (domain ID of the domain to which the first node belongs) held by the gateway to receive information from the first node 510. Authentication tokens can be authenticated.

구체적으로 게이트웨이(100)는, 제1 노드(510)로부터 수신된 인증 토큰을 게이트웨이가 보유한 그룹 키(제1 노드가 속하는 도메인의 그룹 키)로 복호화하여 제1 노드(510)의 노드 정보를 추출할 수 있다. 또한 게이트웨이(100)는 추출된 노드 정보를 게이트웨이가 보유한 제1 노드의 노드 정보와 비교하고, 일치하는 경우 제1 노드(510)에 대한 인증이 성공한 것으로 결정할 수 있다.Specifically, the gateway 100 extracts node information of the first node 510 by decrypting the authentication token received from the first node 510 with a group key (group key of the domain to which the first node belongs) held by the gateway. can do. Additionally, the gateway 100 may compare the extracted node information with the node information of the first node held by the gateway, and if they match, determine that authentication for the first node 510 was successful.

반면에 게이트웨이가 보유한 그룹 키를 이용한 복호화가 불가능하거나, 제1 노드(510)가 전송한 노드 정보가 게이트웨이가 보유한 노드 정보와 일치하지 않거나, 인증 토큰에 포함되는 타임 스탬프로부터 기 설정된 시간 이상이 경과하거나, 시퀀스 넘버에 오류가 발생하는 경우, 게이트웨이(100)는 인증 토큰과 함께 수신된 패킷에 대한 인증이 실패한 것으로 결정할 수 있다. 인증이 실패한 경우, 게이트웨이(100)는 해당 패킷을 전송하지 않고, 제어 서버(200)에 제1 노드(510)가 참여하는 도메인의 그룹 키를 갱신할 것을 요청할 수 있다.On the other hand, decryption using the group key held by the gateway is not possible, the node information transmitted by the first node 510 does not match the node information held by the gateway, or more than a preset time has elapsed from the time stamp included in the authentication token. Alternatively, if an error occurs in the sequence number, the gateway 100 may determine that authentication for the packet received with the authentication token has failed. If authentication fails, the gateway 100 may not transmit the packet and may request the control server 200 to update the group key of the domain in which the first node 510 participates.

한편 인증 토큰에 대한 인증이 성공하면, 게이트웨이(100)는 인증 토큰을 게이트웨이의 개인 키로 암호화한 이중 암호화 토큰을 생성할 수 있다(S355, S720). 또한 게이트웨이(100)는 이중 암호화 토큰을 제1 노드(510)가 전송한 패킷과 함께, 제1 노드(510)와 동일한 도메인 ID를 가지는 다른 노드들에 전송할 수 있다(S360, S730). 이 경우 게이트웨이(100)는 인증 토큰과 함께 수신된 패킷에 이중 암호화 토큰을 삽입하여, 제1 노드(510)와 동일한 도메인 ID를 가지는 다른 노드에 전송할 수 있다.Meanwhile, if authentication of the authentication token is successful, the gateway 100 may generate a double encryption token by encrypting the authentication token with the gateway's private key (S355, S720). Additionally, the gateway 100 may transmit the double encryption token along with the packet transmitted by the first node 510 to other nodes having the same domain ID as the first node 510 (S360, S730). In this case, the gateway 100 may insert a double encryption token into the packet received along with the authentication token and transmit it to another node having the same domain ID as the first node 510.

한편 인증에 성공한 노드들에는 게이트웨이의 공개 키가 배포된 상태이며, 따라서 제1 노드가 참여한 도메인의 도메인 ID를 가지는 다른 노드(1220, 520)에도 게이트웨이의 공개 키가 전송된 상태이다. Meanwhile, the gateway's public key is distributed to nodes that have successfully authenticated, and accordingly, the gateway's public key is also transmitted to other nodes (1220, 520) that have the domain ID of the domain in which the first node participated.

그리고 다른 노드(1220, 520)는 게이트웨이(100)로부터 패킷 및 이중 암호화 토큰을 수신할 수 있다. 또한 다른 노드(1220, 520)는 게이트웨이의 공개 키, 자신이 속한 도메인의 그룹 키, 자신과 동일한 도메인 ID를 가지는 노드의 노드 정보를 이용하여 이중 암호화 토큰을 인증할 수 있다(S365, S740).And other nodes 1220 and 520 may receive packets and double encryption tokens from the gateway 100. Additionally, other nodes 1220 and 520 can authenticate the double encryption token using the public key of the gateway, the group key of the domain to which it belongs, and the node information of the node having the same domain ID as the node (S365, S740).

구체적으로 다른 노드(1220, 520)는 게이트웨이의 공개 키를 이용하여 이중 암호화 토큰을 복호화함으로써 이중 암호화 토큰을 인증하고 인증 토큰을 추출할 수 있다. 다음으로 다른 노드(1220, 520)는 자신이 보유한, 도메인 ID에 상응하는 그룹 키 및 제1 노드의 노드 정보를 이용하여 인증 토큰을 인증할 수 있다. 또한 인증 토큰 내 제1 노드의 노드 정보가 다른 노드(1220, 520)가 보유한 제1 노드의 노드 정보와 일치하는 경우, 다른 노드(1220, 520)는 이중 암호화 토큰과 함께 수신된 데이터를 읽거나 저장할 수 있다.Specifically, other nodes 1220 and 520 can authenticate the dual encryption token and extract the authentication token by decrypting the dual encryption token using the gateway's public key. Next, the other nodes 1220 and 520 may authenticate the authentication token using the group key corresponding to the domain ID and the node information of the first node. Additionally, if the node information of the first node in the authentication token matches the node information of the first node held by the other nodes (1220, 520), the other nodes (1220, 520) read the data received along with the double encryption token or You can save it.

반면에 다른 노드(1220, 520)가 보유한 게이트웨이의 공개 키를 이용한 복호화가 불가능하거나, 다른 노드(1220, 520)가 보유한 그룹 키를 이용한 복호화가 불가능하거나, 제1 노드(510)가 전송한 노드 정보가 다른 노드(1220, 520)가 보유한 노드 정보와 일치하지 않거나, 인증 토큰에 포함되는 타임 스탬프로부터 기 설정된 시간 이상이 경과하거나. 인증 토큰에 포함되는 시퀀스 넘버에 오류가 발생하는 경우, 다른 노드(1220, 520)는 이중 암호화 토큰에 대한 인증이 실패한 것으로 결정할 수 있다. 인증이 실패한 경우, 제1 노드(510)는 이중 암호화 토큰과 함께 수신된 데이터를 읽거나 저장할 수 없으며, 제어 서버(200)에 다른 노드(1220, 520)가 참여하는 도메인의 그룹 키를 갱신할 것을 요청할 수 있다.On the other hand, decryption using the public key of the gateway held by other nodes (1220, 520) is impossible, decryption is impossible using the group key held by other nodes (1220, 520), or the node transmitted by the first node (510) The information does not match the node information held by other nodes (1220, 520), or more than a preset time has elapsed from the time stamp included in the authentication token. If an error occurs in the sequence number included in the authentication token, the other nodes 1220 and 520 may determine that authentication for the dual encryption token has failed. If authentication fails, the first node 510 cannot read or store the data received with the double encryption token, and the other nodes 1220 and 520 cannot update the group key of the participating domain on the control server 200. You can request it.

한편 다른 노드(1220)도 제1 노드(1210)에 패킷을 전송할 수 있다. 즉 다른 노드(1220)는 다른 노드(1220)의 노드 정보 및 다른 노드(1220)가 보유한 그룹 키를 이용하여 인증 토큰을 생성하고, DDS 통신을 위한 패킷과 함께 인증 토큰을 전송할 수 있다(S370).Meanwhile, another node 1220 may also transmit a packet to the first node 1210. That is, the other node 1220 can generate an authentication token using the node information of the other node 1220 and the group key held by the other node 1220, and transmit the authentication token along with a packet for DDS communication (S370). .

이 경우 게이트웨이(100)는 다른 노드(1220)로부터 인증 토큰을 수신하고, 인증 토큰을 인증한 후 자신의 개인 키를 이용하여 이중 암호화 토큰을 생성할 수 있다(S375). 또한 게이트웨이(100)는 생성된 이중 암호화 토큰을 다른 노드(1220)와 동일한 도메인 ID를 가지는 제1 노드(1210)에 전송할 수 있다(S380). 제1 노드(1210)는 게이트웨이(100)로부터 패킷 및 이중 암호화 토큰을 수신할 수 있다. 또한 제1 노드(1210)는, 제1 노드(1210)가 보유한. 게이트웨이의 공개 키, 제1 노드(1210)가 속하는 도메인의 그룹 키 및 다른 노드(1220)의 노드 정보를 이용하여 이중 암호화 토큰을 인증할 수 있다(S385).In this case, the gateway 100 may receive an authentication token from another node 1220, authenticate the authentication token, and then generate a double encryption token using its private key (S375). Additionally, the gateway 100 may transmit the generated double encryption token to the first node 1210 having the same domain ID as the other node 1220 (S380). The first node 1210 may receive a packet and a double encryption token from the gateway 100. Also, the first node 1210 is owned by the first node 1210. The double encryption token can be authenticated using the public key of the gateway, the group key of the domain to which the first node 1210 belongs, and the node information of the other node 1220 (S385).

한편 앞선 실시 예에서는 게이트웨이(100)가 자신의 개인 키를 이용하여 이중 암호화 토큰을 생성하고, 노드는 게이트웨이(100)로부터 수신한 공개 키를 이용하여 이중 암호화 토큰을 복호화 하는 것으로 설명하였으나 이에 한정되지 않으며, 노드는 게이트웨이(100)로부터 수신한 공유 키를 이용하여 이중 암호화 토큰을 복호화할 수도 있다. 구체적으로 게이트웨이(100)는 사전에 게이트웨이(100)의 공개 키를 노드들에 배포한 상태에서, 자신의 개인 키로 암호화한 공유 키를 노드들에 배포할 수 있다. 이 경우 노드들은 미리 배포된 공개 키를 이용하여 암호화한 공유 키를 복호화 함으로써 공유 키를 획득할 수 있다. 그리고 노드들은 공유키를 이용하여 이중 암호화 토큰을 복호화 할 수 있다. 이와 같이 공유 키를 이용하는 경우, 공개 키 기반 암호화/복호화에서 발생할 수 있는 성능 저하를 방지할 수 있다,Meanwhile, in the previous embodiment, it was explained that the gateway 100 generates a double encryption token using its own private key, and the node decrypts the double encryption token using the public key received from the gateway 100, but it is not limited to this. Alternatively, the node may decrypt the double encryption token using the shared key received from the gateway 100. Specifically, the gateway 100 may distribute the shared key encrypted with its own private key to the nodes while distributing the public key of the gateway 100 to the nodes in advance. In this case, nodes can obtain the shared key by decrypting the encrypted shared key using a pre-distributed public key. And nodes can decrypt the double-encrypted token using the shared key. When using a shared key in this way, performance degradation that may occur in public key-based encryption/decryption can be prevented.

도 8은 본 발명의 또 다른 실시 예에 따른 DDS 통신 장치를 설명하기 위한 도면이다.Figure 8 is a diagram for explaining a DDS communication device according to another embodiment of the present invention.

도 1 내지 도 7에서는, 제어 서버(200) 및 게이트웨이(100)를 포함하는 DDS 통신 시스템을 설명하였다. 다만 이에 한정되지 않으며, DDS 통신 시스템은 하나의 장치로 구현될 수 있다. 따라서 DDS 통신 장치(800)는 앞서 설명한 DDS 통신 시스템의 동작을 수행할 수 있다.1 to 7 illustrate a DDS communication system including a control server 200 and a gateway 100. However, it is not limited to this, and the DDS communication system can be implemented as a single device. Therefore, the DDS communication device 800 can perform the operations of the DDS communication system described above.

구체적으로 DDS 통신 장치(800)는 통신부(810), 제어부(820), 메모리(830) 및 게이트웨이(840)를 포함할 수 있다.Specifically, the DDS communication device 800 may include a communication unit 810, a control unit 820, a memory 830, and a gateway 840.

통신부(810)는 외부 장치와 통신하기 위한 통신 회로를 포함하고, 게이트웨이(840)에 접속하여 DDS 통신에 참여하려는 복수의 노드와 데이터를 송/수신할 수 있다. 통신부(810)는, 게이트웨이에 접속하여 DDS 통신에 참여하려는 복수의 노드로부터, 식별 정보 및 도메인 ID를 포함하는 노드 정보를 수신할 수 있다. 또한 통신부(810)는, 제어부(820)의 제어 하에, 복수의 노드 중 동일한 도메인 ID를 가지는 노드들에, 동일한 도메인 ID를 가지는 노드들의 노드 정보 및 동일한 도메인 ID에 상응하는 그룹 키를 전송할 수 있다.The communication unit 810 includes a communication circuit for communicating with an external device, and can connect to the gateway 840 to transmit/receive data with a plurality of nodes that want to participate in DDS communication. The communication unit 810 may receive node information including identification information and domain ID from a plurality of nodes that want to connect to the gateway and participate in DDS communication. Additionally, the communication unit 810, under the control of the control unit 820, may transmit node information of the nodes having the same domain ID and a group key corresponding to the same domain ID to nodes having the same domain ID among the plurality of nodes. .

제어부(820)는 DDS 통신 장치(800)의 전반적인 동작을 제어할 수 있다. 또한 제어부(820)는 정책을 생성하여 복수의 노드에 배포하고, 노드로부터 수신되는 인증 정보(인증 코드, 인증 토큰)를 인증하고, 인증 토큰을 DDS 통신 장치(800)의 개인 키로 암호화 하여 이중 암호화 토큰을 생성하고, 생성된 이중 암호화 토큰을 패킷과 함께 노드에 전송할 수 있다.The control unit 820 can control the overall operation of the DDS communication device 800. Additionally, the control unit 820 creates a policy and distributes it to a plurality of nodes, authenticates authentication information (authentication code, authentication token) received from the nodes, and encrypts the authentication token with the private key of the DDS communication device 800 to perform double encryption. You can generate a token and send the generated double encryption token to the node along with the packet.

메모리(830)는 DDS 통신 장치(800)의 동작을 위한 프로그램 또는 명령어를 저장할 수 있다. 또한 메모리(830)는 복수의 노드의 노드 정보, 도메인 별 그룹 키, 도메인 별 노드 정보, 게이트웨이(840)의 개인 키 등을 저장할 수 있다.The memory 830 may store programs or commands for operating the DDS communication device 800. Additionally, the memory 830 may store node information of a plurality of nodes, group keys for each domain, node information for each domain, private key of the gateway 840, etc.

한편 게이트웨이(840)는 게이트웨이(840)의 동작을 제어하는 게이트웨이 제어부 및 게이트웨이(840)의 동작을 위한 프로그램 또는 명령어를 저장하는 게이트웨이 메모리를 포함할 수 있다. 한편 게이트웨이 제어부 및 게이트웨이 메모리는 별도로 구비되지 않을 수 있으며, 이 경우 앞서 설명한 제어부(820) 및 메모리(830)가 각각 게이트웨이 제어부 및 게이트웨이 메모리로 사용될 수 있다.Meanwhile, the gateway 840 may include a gateway control unit that controls the operation of the gateway 840 and a gateway memory that stores programs or commands for the operation of the gateway 840. Meanwhile, the gateway control unit and gateway memory may not be provided separately, in which case the control unit 820 and memory 830 described above may be used as the gateway control unit and gateway memory, respectively.

한편 게이트웨이(840)는 복수의 노드가 접속 가능한 복수의 인터페이스를 더 포함할 수 있다. 또한 게이트웨이(840)는 동일한 도메인 ID를 가지는 노드들이 접속한 인터페이스들을 가상으로 연결하는 터널을 생성함으로써, 동일한 도메인 ID를 가지는 노드들이 패킷을 교환하기 위한 네트워크를 구성할 수 있다. 또한 게이트웨이(840)는 동일한 도메인 ID를 가지는 특정 노드로부터 그룹 키를 이용하여 생성된 인증 정보를 수신하고, 인증 정보를 이용하여 인증을 수행하고, 인증에 성공하면 특정 노드로부터 수신되는 패킷을 동일한 도메인 ID를 가지는 다른 노드에 전송할 수 있다.Meanwhile, the gateway 840 may further include a plurality of interfaces to which a plurality of nodes can access. Additionally, the gateway 840 can configure a network for nodes with the same domain ID to exchange packets by creating a tunnel that virtually connects interfaces connected by nodes with the same domain ID. In addition, the gateway 840 receives authentication information generated using a group key from a specific node having the same domain ID, performs authentication using the authentication information, and, if authentication is successful, sends the packet received from the specific node to the same domain. It can be transmitted to another node with an ID.

이와 같이 본 발명에 따르면, DDS 통신 시스템에서 생성하는 정책을 기반으로 동일 도메인에 참여한 노드들 간의 데이터 교환을 지원함으로써, 오토 디스커버리(Auto-Discovery) 기능을 이용하지 않고도 그리고 멀티캐스트가 지원되지 않은 환경에서도 DDS 통신을 가능하게 할 수 있으며, 참여자 단말이나 노드의 수가 증가하더라도 패킷의 수가 기하급수적으로 증가하는 것을 방지할 수 있다. 이에 따라 종래의 DDS 통신 방식에 비해 가용성 및 확장성에서 확연한 장점을 나타내며, 특히 5G, LTE 등의 개방적이고 큰 규모를 가지는 네트워크 환경에서도 DDS 통신을 가능하게 하는 장점이 있다. 이에 따라 대규모 통신망에 적용할 때 문제점이 발생하는 DDS 표준을 소프트웨어 정의 경계 기반으로 확장 설계하여, 5G, LTE 등의 대규모 무선 네트워크 환경에서 DDS 통신을 사용하는 단말 중심의 개방 네트워크 통신 시스템을 제공할 수 있다.According to the present invention, by supporting data exchange between nodes participating in the same domain based on the policy created in the DDS communication system, an environment in which multicast is not supported and without using the auto-discovery function DDS communication can also be enabled, and the number of packets can be prevented from increasing exponentially even if the number of participant terminals or nodes increases. Accordingly, it has clear advantages in availability and scalability compared to conventional DDS communication methods, and has the advantage of enabling DDS communication even in open and large-scale network environments such as 5G and LTE. Accordingly, by designing the DDS standard, which causes problems when applied to large-scale communication networks, to be expanded based on software-defined boundaries, it is possible to provide a terminal-centered open network communication system using DDS communication in large-scale wireless network environments such as 5G and LTE. there is.

또한 본 발명에 따르면, 제어 서버와 게이트웨이의 동작이 기존의 오토 디스커버리(Auto-Discovery) 기능을 대체하기 때문에 조작된 디스커버리(Discovery) 패킷 전송이 불가능하다는 장점이 있으며, 참여자를 찾는 행위가 없기 때문에 Network Flooding 공격도 방지 할 수 있는 장점이 있다. In addition, according to the present invention, since the operation of the control server and gateway replaces the existing auto-discovery function, it has the advantage that it is impossible to transmit a manipulated discovery packet, and since there is no act of searching for a participant, the network It has the advantage of preventing flooding attacks.

또한 본 발명에 따르면, 다수의 노드들을, IP 및 포트 기반으로 인증하는 대신, ID 기반의 신원 확인과 고차원의 인증 기술을 적용함으로써, 대규모 무선 네트워크 환경에 연결된 다수의 단말들을 유연하고 효과적으로 인증할 수 있는 장점이 있다.Additionally, according to the present invention, by applying ID-based identity verification and high-level authentication technology instead of authenticating multiple nodes based on IP and port, multiple terminals connected to a large-scale wireless network environment can be flexibly and effectively authenticated. There is an advantage.

또한 본 발명에 따르면, 동일한 도메인 ID를 가지는 노드들의 데이터 교환을 지원하는 게이트웨이가 노드로부터 수신된 인증 정보를 인증함으로써, 노드가 해킹을 당하였는지, 동일한 도메인 ID 별로 패킷을 송/수신하고 있는지, 리플레이 공격(Replay Attack)이 있는지 등을 검증하여 무결성 있는 DDS 통신을 지원할 수 있는 장점이 있다.Additionally, according to the present invention, a gateway that supports data exchange between nodes with the same domain ID authenticates the authentication information received from the node, thereby determining whether the node has been hacked and whether packets are being transmitted/received by the same domain ID. It has the advantage of being able to support integrity DDS communication by verifying whether there is a replay attack.

또한 본 발명에 따르면 게이트웨이의 개인키로 인증 토큰을 암호화 하는 이중 암호화 과정을 거침으로써, 게이트웨이를 통과하였고, 게이트웨이에 의해 무결성을 검증 받은 패킷임을 인증할 수 있다. 이중 암호화 토큰으로 패킷 송신자(노드)의 신원 확인과 패킷 전달자(게이트웨이)의 신원 확인을 동시에 할 수 있기 때문에, 해커나 다른 침입자의 공격을 효과적으로 방지할 수 있는 장점이 있다.Additionally, according to the present invention, by going through a double encryption process of encrypting the authentication token with the gateway's private key, it is possible to authenticate that the packet has passed through the gateway and whose integrity has been verified by the gateway. Since the double encryption token can simultaneously verify the identity of the packet sender (node) and the packet forwarder (gateway), it has the advantage of effectively preventing attacks by hackers or other intruders.

전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 상기 컴퓨터는 제어부를 포함할 수도 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니 되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.The above-described present invention can be implemented as computer-readable code on a program-recorded medium. Computer-readable media includes all types of recording devices that store data that can be read by a computer system. Examples of computer-readable media include HDD (Hard Disk Drive), SSD (Solid State Disk), SDD (Silicon Disk Drive), ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc. There is. Additionally, the computer may include a control unit. Accordingly, the above detailed description should not be construed as restrictive in all respects and should be considered illustrative. The scope of the present invention should be determined by reasonable interpretation of the appended claims, and all changes within the equivalent scope of the present invention are included in the scope of the present invention.

Claims (20)

게이트웨이에 접속하여 DDS 통신에 참여하려는 복수의 노드로부터, 식별 정보 및 도메인 ID를 포함하는 노드 정보를 수신하는 단계;
상기 복수의 노드 중 동일한 도메인 ID를 가지는 노드들에, 상기 도메인 ID를 가지는 노드들의 노드 정보 및 상기 도메인 ID에 상응하는 그룹 키를 전송하는 단계;
상기 게이트웨이가, 상기 도메인 ID를 가지는 노드들이 패킷을 교환하기 위한 네트워크를 구성하는 단계; 및
상기 게이트웨이가, 상기 도메인 ID를 가지는 특정 노드로부터 상기 그룹 키를 이용하여 생성된 인증 정보를 수신하고, 상기 인증 정보를 이용하여 인증을 수행하고, 상기 인증에 성공하면 상기 특정 노드로부터 수신되는 패킷을 상기 도메인 ID를 가지는 다른 노드에 전송하는 단계;를 포함하는
DDS 통신 방법.
Receiving node information including identification information and domain ID from a plurality of nodes that want to connect to the gateway and participate in DDS communication;
transmitting node information of nodes having the domain ID and a group key corresponding to the domain ID to nodes having the same domain ID among the plurality of nodes;
Configuring, by the gateway, a network for nodes having the domain ID to exchange packets; and
The gateway receives authentication information generated using the group key from a specific node having the domain ID, performs authentication using the authentication information, and, if the authentication is successful, sends a packet received from the specific node. Transmitting to another node having the domain ID; including
DDS communication method.
제 1항에 있어서,
상기 식별 정보는, 상기 참여자 단말의 식별 정보를 포함하고,
상기 참여자 단말의 식별 정보는, 단말기 고유 식별 번호(IMEI)인
DDS 통신 방법.
According to clause 1,
The identification information includes identification information of the participant terminal,
The identification information of the participant terminal is the terminal unique identification number (IMEI).
DDS communication method.
제 1항에 있어서,
상기 식별 정보 및 도메인 ID를 포함하는 노드 정보를 수신하는 단계는,
상기 식별 정보 및 상기 참여자 단말에서 생성되는 노드들에 순차적으로 부여되는 인스턴스 ID를 이용하여 상기 노드 정보를 전송한 노드를 인증하는 단계;를 포함하는
DDS 통신 방법.
According to clause 1,
The step of receiving node information including the identification information and domain ID,
Authenticating the node that transmitted the node information using the identification information and an instance ID sequentially assigned to nodes generated in the participant terminal; comprising;
DDS communication method.
제 1항에 있어서,
상기 도메인 ID를 가지는 노드들의 노드 정보 및 상기 도메인 ID에 상응하는 그룹 키를 전송하는 단계는,
상기 도메인 ID와 상응하는 도메인에 새로운 노드가 참여하면, 상기 그룹 키를 갱신하고 상기 갱신된 그룹 키를 상기 도메인 ID를 가지는 노드들에 전송하는 단계;를 포함하는
DDS 통신 방법.
According to clause 1,
The step of transmitting node information of nodes having the domain ID and a group key corresponding to the domain ID is,
When a new node participates in the domain corresponding to the domain ID, updating the group key and transmitting the updated group key to nodes having the domain ID; comprising
DDS communication method.
제 1항에 있어서,
상기 도메인 ID를 가지는 노드들의 노드 정보 및 상기 도메인 ID에 상응하는 그룹 키를 전송하는 단계는,
상기 도메인 ID와 상응하는 도메인에 새로운 노드가 참여하면, 상기 새로운 노드의 노드 정보를 상기 도메인 ID를 가지는 노드들에 전송하는 단계;를 포함하는
DDS 통신 방법.
According to clause 1,
The step of transmitting node information of nodes having the domain ID and a group key corresponding to the domain ID is,
When a new node participates in the domain corresponding to the domain ID, transmitting node information of the new node to nodes having the domain ID; comprising
DDS communication method.
제 1항에 있어서,
상기 도메인 ID를 가지는 노드들이 패킷을 교환하기 위한 네트워크를 구성하는 단계는,
상기 동일한 도메인 ID를 가지는 노드들만 패킷을 교환하고 다른 도메인 ID를 가지는 노드들과의 패킷 교환이 차단되도록 상기 네트워크를 구성하는 단계;를 포함하는
DDS 통신 방법.
According to clause 1,
The step of configuring a network for nodes having the domain ID to exchange packets is,
Configuring the network so that only nodes having the same domain ID exchange packets and packet exchange with nodes having different domain IDs is blocked;
DDS communication method.
제 6항에 있어서,
상기 도메인 ID를 가지는 노드들의 노드 정보 및 상기 도메인 ID에 상응하는 그룹 키를 전송하는 단계는,
인증에 성공한 노드에 해당 노드가 접속할 인터페이스 정보를 전송하는 단계;를 포함하고,
상기 동일한 도메인 ID를 가지는 노드들만 패킷을 교환하고 다른 도메인 ID를 가지는 노드들과의 패킷 교환이 차단되도록 상기 네트워크를 구성하는 단계는,
상기 동일한 도메인 ID를 가지는 노드들이 접속할 인터페이스들을 가상으로 연결하는 터널을 생성하는 단계;를 포함하는
DDS 통신 방법.
According to clause 6,
The step of transmitting node information of nodes having the domain ID and a group key corresponding to the domain ID is,
Transmitting information about the interface to which the node will connect to the node that has successfully authenticated,
The step of configuring the network so that only nodes with the same domain ID exchange packets and packet exchange with nodes with different domain IDs is blocked,
Comprising: creating a tunnel virtually connecting interfaces to which nodes having the same domain ID will connect;
DDS communication method.
제 1항에 있어서,
상기 인증 정보는,
상기 특정 노드가 상기 게이트웨이에 접속할 때 상기 특정 노드로부터 수신하는 인증 코드를 포함하는
DDS 통신 방법.
According to clause 1,
The authentication information is,
Containing an authentication code received from the specific node when the specific node connects to the gateway
DDS communication method.
제 8항에 있어서,
상기 인증 코드는,
상기 특정 노드의 노드 정보 및 상기 특정 노드가 보유하는 그룹 키를 이용하여 생성되고,
상기 인증을 수행하는 단계는,
상기 게이트웨이가 보유한, 상기 도메인 ID에 상응하는 그룹 키 및 상기 특정 노드의 노드 정보를 이용하여, 상기 특정 노드로부터 수신된 상기 인증 코드를 인증하는 단계;를 포함하는
DDS 통신 방법.
According to clause 8,
The authentication code is,
Generated using node information of the specific node and a group key held by the specific node,
The steps for performing the authentication are:
Authenticating the authentication code received from the specific node using a group key corresponding to the domain ID and node information of the specific node held by the gateway, comprising:
DDS communication method.
제 1항에 있어서,
상기 인증 정보는,
상기 특정 노드가 상기 도메인 ID를 가지는 노드들에 패킷을 전송할 때, 상기 패킷과 함께 상기 특정 노드로부터 수신되는 인증 토큰을 포함하는
DDS 통신 방법.
According to clause 1,
The authentication information is,
When the specific node transmits a packet to nodes having the domain ID, it includes an authentication token received from the specific node along with the packet.
DDS communication method.
제 10항에 있어서,
상기 인증 토큰은,
상기 특정 노드의 노드 정보 및 상기 특정 노드가 보유하는 그룹 키를 이용하여 생성되고,
상기 인증을 수행하는 단계는,
상기 게이트웨이가 보유한, 상기 도메인 ID에 상응하는 그룹 키 및 상기 특정 노드의 노드 정보를 이용하여, 상기 특정 노드로부터 수신된 상기 인증 토큰을 인증하는 단계;를 포함하는
DDS 통신 방법.
According to clause 10,
The authentication token is,
Generated using node information of the specific node and a group key held by the specific node,
The steps for performing the authentication are:
Authenticating the authentication token received from the specific node using the group key corresponding to the domain ID and node information of the specific node held by the gateway; comprising:
DDS communication method.
제 11항에 있어서,
상기 인증 토큰은, 타임 스탬프 및 시퀀스 넘버 중 적어도 하나를 더 포함하는
DDS 통신 방법.
According to clause 11,
The authentication token further includes at least one of a timestamp and a sequence number.
DDS communication method.
제 11항에 있어서,
상기 인증에 성공하면 상기 특정 노드로부터 수신되는 패킷을 상기 도메인 ID를 가지는 다른 노드에 전송하는 단계는,
상기 도메인 ID를 가지는 노드들에 상기 게이트웨이의 공개 키를 전송하는 단계; 및
상기 인증 토큰에 대한 인증이 성공하면, 상기 인증 토큰을 상기 게이트웨이의 개인 키로 암호화한 이중 암호화 토큰을 생성하는 단계;를 포함하는
DDS 통신 방법.
According to clause 11,
If the authentication is successful, the step of transmitting the packet received from the specific node to another node having the domain ID is,
transmitting the public key of the gateway to nodes having the domain ID; and
If authentication of the authentication token is successful, generating a double encryption token by encrypting the authentication token with the private key of the gateway; comprising:
DDS communication method.
제 13항에 있어서,
상기 인증에 성공하면 상기 특정 노드로부터 수신되는 패킷을 상기 도메인 ID를 가지는 다른 노드에 전송하는 단계는,
상기 인증 토큰과 함께 수신된 상기 패킷에 상기 이중 암호화 토큰을 삽입하여 상기 도메인 ID를 가지는 다른 노드에 전송하는 단계;를 포함하는
DDS 통신 방법.
According to clause 13,
If the authentication is successful, the step of transmitting the packet received from the specific node to another node having the domain ID is,
Inserting the double encryption token into the packet received together with the authentication token and transmitting it to another node having the domain ID; comprising
DDS communication method.
게이트웨이에 접속하여 DDS 통신에 참여하려는 복수의 노드로부터 식별 정보 및 도메인 ID를 포함하는 노드 정보를 수신하고, 상기 복수의 노드 중 동일한 도메인 ID를 가지는 노드들에, 상기 도메인 ID를 가지는 노드들의 노드 정보 및 상기 도메인 ID에 상응하는 그룹 키를 전송하는 제어 서버; 및
상기 도메인 ID를 가지는 노드들이 패킷을 교환하기 위한 네트워크를 구성하고, 상기 도메인 ID를 가지는 특정 노드로부터 상기 그룹 키를 이용하여 생성된 인증 정보를 수신하고, 상기 인증 정보를 이용하여 인증을 수행하고, 상기 인증에 성공하면 상기 특정 노드로부터 수신되는 패킷을 상기 도메인 ID를 가지는 다른 노드에 전송하는 게이트웨이;를 포함하는
DDS 통신 시스템.
Receive node information including identification information and domain ID from a plurality of nodes that want to connect to the gateway and participate in DDS communication, and send node information of nodes having the domain ID to nodes having the same domain ID among the plurality of nodes. and a control server transmitting a group key corresponding to the domain ID. and
Nodes having the domain ID configure a network for exchanging packets, receive authentication information generated using the group key from a specific node having the domain ID, and perform authentication using the authentication information, A gateway that transmits the packet received from the specific node to another node having the domain ID if the authentication is successful;
DDS communication system.
제 15항에 있어서,
상기 식별 정보는, 상기 참여자 단말의 식별 정보를 포함하고,
상기 참여자 단말의 식별 정보는, 단말기 고유 식별 번호(IMEI)인
DDS 통신 시스템.
According to clause 15,
The identification information includes identification information of the participant terminal,
The identification information of the participant terminal is the terminal unique identification number (IMEI).
DDS communication system.
제 15항에 있어서,
상기 제어 서버는,
상기 식별 정보 및 상기 참여자 단말에서 생성되는 노드들에 순차적으로 부여되는 인스턴스 ID를 이용하여 상기 노드 정보를 전송한 노드를 인증하는
DDS 통신 시스템.
According to claim 15,
The control server is,
Authenticating the node that transmitted the node information using the identification information and the instance ID sequentially assigned to the nodes generated in the participant terminal
DDS communication system.
제 15항에 있어서,
상기 제어 서버는,
상기 도메인 ID와 상응하는 도메인에 새로운 노드가 참여하면, 상기 그룹 키를 갱신하고 상기 갱신된 그룹 키를 상기 도메인 ID를 가지는 노드들에 전송하는
DDS 통신 시스템.
According to clause 15,
The control server is,
When a new node participates in the domain corresponding to the domain ID, the group key is updated and the updated group key is transmitted to nodes having the domain ID.
DDS communication system.
제 15항에 있어서,
상기 제어 서버는,
상기 도메인 ID와 상응하는 도메인에 새로운 노드가 참여하면, 상기 새로운 노드의 노드 정보를 상기 도메인 ID를 가지는 노드들에 전송하는
DDS 통신 시스템.
According to clause 15,
The control server is,
When a new node joins the domain corresponding to the domain ID, the node information of the new node is transmitted to nodes having the domain ID.
DDS communication system.
복수의 노드가 접속 가능한 복수의 인터페이스를 제공하는 게이트웨이;
상기 게이트웨이에 접속하여 DDS 통신에 참여하려는 복수의 노드로부터, 식별 정보 및 도메인 ID를 포함하는 노드 정보를 수신하는 통신부; 및
상기 복수의 노드 중 동일한 도메인 ID를 가지는 노드들에, 상기 도메인 ID를 가지는 노드들의 노드 정보 및 상기 도메인 ID에 상응하는 그룹 키를 상기 통신부를 통하여 전송하는 제어부;를 포함하고,
상기 게이트웨이는,
상기 도메인 ID를 가지는 노드들이 패킷을 교환하기 위한 네트워크를 구성하고,
상기 도메인 ID를 가지는 특정 노드로부터 상기 그룹 키를 이용하여 생성된 인증 정보를 수신하고, 상기 인증 정보를 이용하여 인증을 수행하고, 인증에 성공하면 상기 특정 노드로부터 수신되는 패킷을 상기 도메인 ID를 가지는 다른 노드에 전송하는
DDS 통신 장치.
A gateway providing a plurality of interfaces to which a plurality of nodes can connect;
a communication unit that receives node information including identification information and domain ID from a plurality of nodes that want to connect to the gateway and participate in DDS communication; and
A control unit transmitting node information of nodes having the domain ID and a group key corresponding to the domain ID to nodes having the same domain ID among the plurality of nodes through the communication unit,
The gateway is,
Nodes with the domain ID configure a network to exchange packets,
Authentication information generated using the group key is received from a specific node having the domain ID, authentication is performed using the authentication information, and if authentication is successful, a packet received from the specific node is sent to the node having the domain ID. transmitting to other nodes
DDS communication device.
KR1020220076755A 2022-06-23 2022-06-23 Method, device and system for dds communication KR20240000161A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220076755A KR20240000161A (en) 2022-06-23 2022-06-23 Method, device and system for dds communication
PCT/KR2023/008241 WO2023249320A1 (en) 2022-06-23 2023-06-15 Dds communication method, device and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220076755A KR20240000161A (en) 2022-06-23 2022-06-23 Method, device and system for dds communication

Publications (1)

Publication Number Publication Date
KR20240000161A true KR20240000161A (en) 2024-01-02

Family

ID=89380187

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220076755A KR20240000161A (en) 2022-06-23 2022-06-23 Method, device and system for dds communication

Country Status (2)

Country Link
KR (1) KR20240000161A (en)
WO (1) WO2023249320A1 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5014608B2 (en) * 2005-09-30 2012-08-29 富士通株式会社 Group communication method, utilization device and management device
KR101999291B1 (en) * 2017-07-26 2019-07-11 한전케이디엔주식회사 Electric vehicle charging infrastructure system using data distribution service
KR102021117B1 (en) * 2017-08-25 2019-09-11 한전케이디엔 주식회사 Dds communication middleware platform in power system field
KR20210064530A (en) * 2019-11-26 2021-06-03 한국전자통신연구원 Method for sharing information using group key based on attribute and apparatus using the same
IL275954A (en) * 2020-07-09 2022-02-01 Google Llc Anonymous event attestation with group signatures

Also Published As

Publication number Publication date
WO2023249320A1 (en) 2023-12-28

Similar Documents

Publication Publication Date Title
EP2779589B1 (en) Changing dynamic group VPN member reachability information
US7234063B1 (en) Method and apparatus for generating pairwise cryptographic transforms based on group keys
US9461975B2 (en) Method and system for traffic engineering in secured networks
EP2716003B1 (en) System and method for authenticating components in a network
US7809354B2 (en) Detecting address spoofing in wireless network environments
US8510812B2 (en) Computerized system and method for deployment of management tunnels
US20230119242A1 (en) Dynamic establishment and termination of vpn tunnels between spokes
US11799844B2 (en) Secure communication network
US20160036794A1 (en) Determining whether to use a local authentication server
JP2016051921A (en) Communication system
JP2016063233A (en) Communication control device
US9118588B2 (en) Virtual console-port management
US20210218581A1 (en) Computing device and method for performing a secure neighbor discovery
US11368325B2 (en) System for communication on a network
Liyanage et al. Secure hierarchical virtual private LAN services for provider provisioned networks
CN111031012B (en) Method for realizing security authentication of DDS domain participant
US20230179582A1 (en) Centralized management of private networks
JP2018174550A (en) Communication system
KR20240000161A (en) Method, device and system for dds communication
US11671451B1 (en) Server/client resolution for link level security protocol
Hauser et al. P4sec: Automated Deployment of 802.1 X, IPsec, and MACsec Network Protection in P4-Based SDN
CN112887968B (en) Network equipment management method, device, network management equipment and medium
CN116915486A (en) Cloud service communication system
Niazi et al. Group Encrypted Transport VPN (Get VPN) Design and Implementation Guide
JP2017201832A (en) Communication control device and communication device