KR102135727B1 - Internet of things blockchain system using token and multi-phase authentication method usign the system - Google Patents

Internet of things blockchain system using token and multi-phase authentication method usign the system Download PDF

Info

Publication number
KR102135727B1
KR102135727B1 KR1020190005767A KR20190005767A KR102135727B1 KR 102135727 B1 KR102135727 B1 KR 102135727B1 KR 1020190005767 A KR1020190005767 A KR 1020190005767A KR 20190005767 A KR20190005767 A KR 20190005767A KR 102135727 B1 KR102135727 B1 KR 102135727B1
Authority
KR
South Korea
Prior art keywords
gateway
token
authentication
iot
iot node
Prior art date
Application number
KR1020190005767A
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 KR1020190005767A priority Critical patent/KR102135727B1/en
Application granted granted Critical
Publication of KR102135727B1 publication Critical patent/KR102135727B1/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/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

The present invention relates to an Internet of things (IoT) blockchain system using a token and a multi-phase authentication method using the same. According to an embodiment of the present invention, an IoT blockchain system comprises: an IoT node which requests issuance of a token for authentication between devices in an IoT environment; and a gateway which generates token information according to the request of the IoT node and performs authentication for the IoT node based on the token information. The IoT node and the gateway share a one-to-one correspondence of secret parameter values. A plurality of gateways constitute a blockchain network. The plurality of gateways may share the token information through the blockchain network.

Description

토큰을 활용한 IoT 블록체인 시스템 및 이를 이용한 다단계 인증 방법{INTERNET OF THINGS BLOCKCHAIN SYSTEM USING TOKEN AND MULTI-PHASE AUTHENTICATION METHOD USIGN THE SYSTEM}IoT blockchain system using token and multi-level authentication method using it{INTERNET OF THINGS BLOCKCHAIN SYSTEM USING TOKEN AND MULTI-PHASE AUTHENTICATION METHOD USIGN THE SYSTEM}

본 발명은 토큰을 활용한 IoT 블록체인 시스템 및 이를 이용한 다단계 인증 방법에 관한 것으로, 더욱 상세하게는 다수의 게이트웨이들이 블록체인 네트워크를 구성하여 토큰 정보를 공유하고 IoT 환경 내의 장치들에 토큰을 발급하여 상호 인증을 수행할 수 있도록 하는 시스템 및 인증 방법에 관한 것이다. The present invention relates to an IoT blockchain system using a token and a multi-level authentication method using the token. More specifically, multiple gateways configure a blockchain network to share token information and issue tokens to devices in the IoT environment. It relates to a system and an authentication method that enable mutual authentication.

IoT(Internet of Things)는 각종 센서가 부착되어있는 사물에 통신 기술을 사용하여 인터넷에 연결하는 기술이다. IoT는 스마트 팜, 스마트 팩토리, 스마트 헬스, 스마트 홈 등에 적용되며, 초연결 사회를 가속화 시키고 있다. IoT 기술은 빠르게 발전하고 있지만, IoT 장치의 경량화로 인하여 낮은 전력량, 적은 계산 능력 및 적은 메모리 등의 제한적인 하드웨어 사양을 가지고 있다.The Internet of Things (IoT) is a technology that connects to the Internet using communication technology on objects to which various sensors are attached. IoT is applied to smart farms, smart factories, smart health, and smart homes, and is accelerating hyper-connected society. IoT technology is evolving rapidly, but due to the weight reduction of IoT devices, it has limited hardware specifications such as low power consumption, low computing power, and low memory.

IoT 장치는 이기종의 네트워크들이나 표준이 적용되므로, 다양한 보안 위협에 노출되어 있다. 최근에는 IoT 환경에서 인증, 접근 제어 등을 위해 토큰을 이용한 시스템 연구들이 국내외에서 진행되고 있다. IoT devices are exposed to various security threats because heterogeneous networks or standards are applied. Recently, system research using tokens for authentication, access control, etc. in the IoT environment has been conducted at home and abroad.

하지만 기존의 토큰을 이용한 방식의 시스템은 중앙 서버가 토큰을 관리하는 중앙 집중적인 특성을 가지고 있다. 중앙 집중적인 시스템은 중앙 서버의 보안이 취약할 경우 네트워크 전체의 보안에 영향을 미칠 수 있으며, 투명성을 보장하지 않아 중앙 서버에 대한 신뢰성이 확보되지 않을 경우, 시스템 운영 상 어려움이 생기는 단일 지점 장애(Single Point of Failure) 문제점을 가지고 있어 확장성이 특징인 IoT 환경에는 적합하지 않다. However, the system using the existing token has a centralized characteristic in which the central server manages the token. A centralized system can affect the security of the entire network when the security of the central server is weak, and a single point of failure that can cause difficulties in system operation if the reliability of the central server is not secured because transparency is not guaranteed. It has a single point of failure) and is not suitable for IoT environments characterized by scalability.

대한민국 공개특허공보 제10-2018-0066693호 (2018.06.19)Republic of Korea Patent Publication No. 10-2018-0066693 (2018.06.19)

본 발명은 전술한 바와 같은 문제점을 해결하기 위한 것으로서, 중앙 서버를 대신하여 다수의 게이트웨이들이 블록체인 네트워크를 구성하고, 인증을 위한 토큰의 무결성 및 신뢰성을 보장함으로써, 상호 인증, 기밀성, 가용성, 비밀 유지, 확장성, 공격 대처와 같은 IoT 환경에서 요구되는 보안사항들을 만족시킬 수 있는 시스템 및 인증 방법을 제공함에 목적이 있다.The present invention is to solve the problems as described above, a plurality of gateways on behalf of the central server constitutes a blockchain network, and by ensuring the integrity and reliability of the token for authentication, mutual authentication, confidentiality, availability, confidentiality The aim is to provide a system and authentication method that can satisfy security requirements required in IoT environments such as maintenance, scalability, and attack response.

본 발명의 일 실시 예에 따른 토큰을 활용한 IoT 블록체인 시스템은, IoT 환경에서의 장치 간의 인증을 위한 토큰의 발급을 요청하는 IoT 노드 및 IoT 노드의 요청에 따라 토큰 정보를 생성하고, 토큰 정보에 기초하여 IoT 노드에 대한 인증을 수행하는 게이트웨이를 포함하며, IoT 노드 및 게이트웨이는 일대일로 대응되는 비밀 파라미터 값을 공유하고, 복수개의 게이트웨이들은 블록체인 네트워크를 구성하며, 복수개의 게이트웨이들은 블록체인 네트워크를 통해 토큰 정보를 공유할 수 있다.The IoT blockchain system using the token according to an embodiment of the present invention generates token information according to the request of the IoT node and the IoT node requesting the issuance of a token for authentication between devices in the IoT environment, and the token information It includes a gateway that performs authentication on the IoT node based on, the IoT node and the gateway share a one-to-one corresponding secret parameter value, a plurality of gateways constitute a blockchain network, and a plurality of gateways are a blockchain network Token information can be shared through.

본 발명의 일 실시 예에 따른 IoT 노드는 토큰의 발급을 요청하기 위해 난수값을 생성하고, 난수값에 기반한 파라미터 값들을 포함하는 등록 요청 메시지를 생성하며, 게이트웨이는 등록 요청 메시지에 포함된 파라미터 값들을 분석함으로써, 토큰 정보의 생성을 위한 IoT 노드의 인증을 수행할 수 있다.The IoT node according to an embodiment of the present invention generates a random number value to request the issuance of a token, generates a registration request message including parameter values based on the random number value, and the gateway parameter value included in the registration request message By analyzing them, it is possible to perform authentication of the IoT node for generation of token information.

본 발명의 일 실시 예에 따르면, 토큰 정보에는, 발급된 토큰, IoT 노드 및 게이트웨이를 식별하기 위한 아이디 정보, IoT 노드 및 게이트웨이의 상호 인증을 위한 파라미터 값 및 토큰을 발급한 게이트웨이를 보장하기 위한 시그니처 값이 포함될 수 있다.According to an embodiment of the present invention, the token information includes the issued token, ID information for identifying the IoT node and the gateway, parameter values for mutual authentication of the IoT node and the gateway, and a signature for guaranteeing the gateway that issued the token. Values may be included.

본 발명의 일 실시 예에 따른 토큰 정보를 생성한 게이트웨이는 토큰 정보에 포함된 아이디 정보들, 파라미터 값들 및 시그니처 값과 비밀 파라미터 값을 트랜잭션으로 생성하고, 생성된 트랜잭션을 블록체인 네트워크의 타 게이트웨이로 브로드캐스트(Broadcast)할 수 있다.The gateway that generates token information according to an embodiment of the present invention generates ID information, parameter values, signature value, and secret parameter value included in the token information as a transaction, and the generated transaction as another gateway of the blockchain network. It can be broadcast.

본 발명의 일 실시 예에 따른 IoT 노드는 토큰 정보를 포함하는 인증 요청 메시지를 생성하여 게이트웨이로 전송하고, 게이트웨이는 블록체인 네트워크를 통해 토큰 정보를 검증하는 제 1 인증을 수행하며, 제 1 인증이 완료되면, IoT 노드는 데이터 처리를 위한 데이터 메시지를 생성하여 게이트웨이로 전송하고, 게이트웨이는 데이터 메시지에 기초하여 제 1 인증이 완료된 IoT 노드인지 여부를 검증하는 제 2 인증을 수행할 수 있다.The IoT node according to an embodiment of the present invention generates an authentication request message including token information and transmits it to a gateway, and the gateway performs a first authentication to verify token information through a blockchain network, and the first authentication is When complete, the IoT node generates a data message for data processing and transmits it to the gateway, and the gateway can perform a second authentication to verify whether the first authentication is the completed IoT node based on the data message.

본 발명의 일 실시 예에 따른 인증 요청 메시지의 생성 시, IoT 노드는 제 2 인증을 위한 세션 파라미터 값을 생성하기 위한 난수값을 생성하고, 게이트웨이에 의해 토큰 정보에 대한 검증이 완료되면, IoT 노드 및 게이트웨이 각각은 난수값을 기초로 세션 파라미터 값을 생성할 수 있다.When generating an authentication request message according to an embodiment of the present invention, the IoT node generates a random number value for generating a session parameter value for second authentication, and when verification of token information is completed by the gateway, the IoT node Each of the gateways may generate a session parameter value based on a random number value.

본 발명의 일 실시 예에 따른 게이트웨이는 IoT 노드 및 게이트웨이에서 각각 생성된 세션 파라미터 값을 비교함으로써, 제 1 인증이 완료된 IoT 노드인지 여부를 판단할 수 있다.The gateway according to an embodiment of the present invention may determine whether the first authentication has been completed by comparing the IoT node and the session parameter values respectively generated by the gateway.

본 발명의 일 실시 예에 따른 토큰을 활용한 IoT 블록체인 시스템을 이용한 다단계 인증 방법은, IoT 노드가 게이트웨이로 IoT 환경에서의 장치 간의 인증을 위한 토큰의 발급을 요청하는 단계, 게이트웨이가 IoT 노드의 요청에 따라 토큰 정보를 생성하고, IoT 노드로 생성된 토큰 정보를 전송하는 단계, IoT 노드가 토큰 정보를 포함하는 인증 요청 메시지를 생성하여 게이트웨이로 전송하고, 게이트웨이는 블록체인 네트워크를 통해 토큰 정보를 검증하는 제 1 인증을 수행하는 단계 및 제 1 인증이 완료되면, IoT 노드가 데이터 처리를 위한 데이터 메시지를 생성하여 게이트웨이로 전송하고, 게이트웨이는 데이터 메시지에 기초하여 제 1 인증이 완료된 IoT 노드인지 여부를 검증하는 제 2 인증을 수행하는 단계를 포함하되, IoT 노드 및 게이트웨이는 일대일로 대응되는 비밀 파라미터 값을 공유할 수 있다.In the multi-step authentication method using an IoT blockchain system using a token according to an embodiment of the present invention, the IoT node requests the issuance of a token for authentication between devices in the IoT environment as a gateway, the gateway of the IoT node Generating token information according to the request, transmitting the token information generated to the IoT node, the IoT node generates an authentication request message containing the token information and transmits it to the gateway, and the gateway transmits the token information through the blockchain network Step of performing the first authentication to verify and when the first authentication is completed, the IoT node generates a data message for data processing and transmits it to the gateway, and the gateway is an IoT node that has completed the first authentication based on the data message. Comprising the step of performing a second authentication to verify, IoT nodes and gateways may share the corresponding secret parameter value on a one-to-one basis.

본 발명의 일 실시 예에 따른 토큰의 발급을 요청하는 단계에서는, IoT 노드가 토큰의 발급을 요청하기 위해 난수값을 생성하고, 난수값에 기반한 파라미터 값들을 포함하는 등록 요청 메시지를 생성할 수 있다.In the step of requesting the issuance of the token according to an embodiment of the present invention, the IoT node may generate a random number value to request the issuance of the token, and may generate a registration request message including parameter values based on the random number value. .

본 발명의 일 실시 예에 따른 토큰 정보를 생성하고, 토큰 정보를 전송하는 단계에서는, 게이트웨이가 등록 요청 메시지에 포함된 파라미터 값들을 분석함으로써, 토큰 정보의 생성을 위한 IoT 노드의 인증을 수행할 수 있다.In the step of generating token information according to an embodiment of the present invention and transmitting the token information, the gateway may analyze the parameter values included in the registration request message to perform authentication of the IoT node for generation of token information. have.

본 발명의 일 실시 예에 따른 토큰 정보를 생성하고, 토큰 정보를 전송하는 단계에서는, 토큰 정보를 생성한 게이트웨이가 토큰 정보에 포함된 아이디 정보들, 파라미터 값들 및 시그니처 값과 비밀 파라미터 값을 트랜잭션으로 생성하고, 생성된 트랜잭션을 블록체인 네트워크의 타 게이트웨이로 브로드캐스트(Broadcast)할 수 있다.In the step of generating token information and transmitting the token information according to an embodiment of the present invention, the gateway that generated the token information uses the ID information, parameter values, signature value and secret parameter value included in the token information as a transaction. You can create and broadcast the generated transaction to other gateways in the blockchain network.

본 발명의 일 실시 예에 따른 제 1 인증을 수행하는 단계에서는, 인증 요청 메시지의 생성 시, IoT 노드가 제 2 인증을 위한 세션 파라미터 값을 생성하기 위한 난수값을 생성하고, 게이트웨이에 의해 토큰 정보에 대한 검증이 완료되면, IoT 노드 및 게이트웨이 각각은 난수값을 기초로 세션 파라미터 값을 생성할 수 있다.In the step of performing the first authentication according to an embodiment of the present invention, when generating an authentication request message, the IoT node generates a random number value for generating a session parameter value for the second authentication, and token information by the gateway When the verification for is completed, each of the IoT node and the gateway may generate a session parameter value based on the random number value.

본 발명의 일 실시 예에 따른 제 2 인증을 수행하는 단계에서는, 게이트웨이가 IoT 노드 및 게이트웨이에서 각각 생성된 세션 파라미터 값을 비교함으로써, 제 1 인증이 완료된 IoT 노드인지 여부를 판단할 수 있다.In the step of performing the second authentication according to an embodiment of the present invention, it is possible to determine whether the first authentication is the completed IoT node by comparing the gateway parameter values generated by the gateway and the IoT node, respectively.

한편, 본 발명의 일 실시 예에 의하면, 전술한 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.On the other hand, according to an embodiment of the present invention, it is possible to provide a recording medium readable by a computer recording a program for executing the above-described method on a computer.

본 발명의 일 실시 예로서 제공되는 시스템 및 이를 이용한 인증 방법에 따르면, 다수의 게이트들로 블록체인 네트워크를 구성하여 토큰을 활용한 다단계 인증을 수행함으로써, IoT 환경의 투명성과 신뢰성을 확보하고, 단일 지점 장애의 문제점을 해결할 수 있으며, 안정성과 보안성을 담보하면서도 IoT 환경의 특징인 확장성을 유지할 수 있다.According to the system provided as an embodiment of the present invention and an authentication method using the same, by constructing a blockchain network with a plurality of gates to perform multi-level authentication using tokens, securing transparency and reliability of the IoT environment, and single It can solve the problem of branch failure and maintain the scalability characteristic of IoT environment while ensuring stability and security.

또한, 인증 과정에서 전술한 토큰에 대한 신뢰성이 확보되므로, IoT 환경의 장치들은 토큰의 발급이 수행되기만 하면 토큰의 재발급받지 않고도 게이트웨이와 지속적으로 인증을 수행할 수 있으며, 블록체인 네트워크 상의 타 게이트웨이들과도 손쉽게 인증을 수행할 수 있다.In addition, since the reliability of the above-described token is secured during the authentication process, devices in the IoT environment can continuously perform authentication with the gateway without re-issuance of the token as long as the token issuance is performed, and other gateways on the blockchain network. Transient authentication can be easily performed.

도 1은 본 발명의 일 실시 예에 따른 토큰을 활용한 IoT 블록체인 시스템의 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 토큰을 활용한 IoT 블록체인 시스템의 인증 과정을 나타낸 개념도이다.
도 3은 본 발명의 일 실시 예에 따른 토큰을 활용한 IoT 블록체인 시스템의 토큰 발급 과정을 나타낸 개념도이다.
도 4는 본 발명의 일 실시 예에 따른 토큰을 활용한 IoT 블록체인 시스템의 토큰 발급 과정을 나타낸 시퀀스 다이어그램이다.
도 5는 본 발명의 일 실시 예에 따른 토큰을 활용한 IoT 블록체인 시스템의 토큰 정보를 나타낸 블록도이다.
도 6은 본 발명의 일 실시 예에 따른 토큰을 활용한 IoT 블록체인 시스템의 트랜잭션 구조를 나타낸다.
도 7은 본 발명의 일 실시 예에 따른 토큰을 활용한 IoT 블록체인 시스템의 제 1 인증 과정을 나타낸 개념도이다.
도 8은 본 발명의 일 실시 예에 따른 토큰을 활용한 IoT 블록체인 시스템의 제 1 인증 과정을 나타낸 시퀀스 다이어그램이다.
도 9는 본 발명의 일 실시 예에 따른 토큰을 활용한 IoT 블록체인 시스템의 제 2 인증 과정을 나타낸 시퀀스 다이어그램이다.
도 10 및 도 11은 본 발명의 본 발명의 일 실시 예에 따른 토큰을 활용한 IoT 블록체인 시스템의 중간자 공격 시나리오를 나타낸 소스코드이다.
도 12는 본 발명의 일 실시 예에 따른 토큰을 활용한 IoT 블록체인 시스템의 보안성 검증 시나리오를 나타낸 소스코드 및 결과이다.
도 13은 본 발명의 일 실시 예에 따른 토큰을 활용한 IoT 블록체인 시스템을 이용한 다단계 인증 방법의 순서도이다.
1 is a block diagram of an IoT blockchain system using a token according to an embodiment of the present invention.
2 is a conceptual diagram showing an authentication process of an IoT blockchain system using a token according to an embodiment of the present invention.
3 is a conceptual diagram showing a token issuing process of an IoT blockchain system using a token according to an embodiment of the present invention.
4 is a sequence diagram showing a token issuing process of an IoT blockchain system using a token according to an embodiment of the present invention.
5 is a block diagram showing token information of an IoT blockchain system using a token according to an embodiment of the present invention.
6 shows a transaction structure of an IoT blockchain system using tokens according to an embodiment of the present invention.
7 is a conceptual diagram illustrating a first authentication process of an IoT blockchain system using a token according to an embodiment of the present invention.
8 is a sequence diagram illustrating a first authentication process of an IoT blockchain system using a token according to an embodiment of the present invention.
9 is a sequence diagram showing a second authentication process of an IoT blockchain system using a token according to an embodiment of the present invention.
10 and 11 are source codes showing a man-in-the-middle attack scenario of an IoT blockchain system using tokens according to an embodiment of the present invention.
12 is a source code and a result showing a security verification scenario of an IoT blockchain system using a token according to an embodiment of the present invention.
13 is a flowchart of a multi-step authentication method using an IoT blockchain system using tokens according to an embodiment of the present invention.

본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.Terms used in the specification will be briefly described, and the present invention will be described in detail.

본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다. The terminology used in the present invention has been selected, while considering the functions in the present invention, general terms that are currently widely used are selected, but this may vary according to the intention or precedent of a person skilled in the art or the appearance of new technologies. In addition, in certain cases, some terms are arbitrarily selected by the applicant, and in this case, their meanings will be described in detail in the description of the applicable invention. Therefore, the term used in the present invention should be defined based on the meaning of the term and the contents of the present invention, rather than a simple term name.

명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "노드" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 명세서 전체에서 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, "그 중간에 다른 구성을 사이에 두고" 연결되어 있는 경우도 포함한다.When a certain part of the specification "includes" a certain component, this means that other components may be further included instead of excluding other components unless otherwise specified. In addition, terms such as “node” described in the specification mean a unit that processes at least one function or operation, which may be implemented in hardware or software, or a combination of hardware and software. In addition, when a part is "connected" to another part in the specification, this includes not only "directly connected" but also "connected with other components in between".

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시 예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art to which the present invention pertains may easily practice. However, the present invention can be implemented in many different forms and is not limited to the embodiments described herein. In addition, in order to clearly describe the present invention in the drawings, parts irrelevant to the description are omitted, and like reference numerals are assigned to similar parts throughout the specification.

이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시 예에 따른 토큰(10)을 활용한 IoT 블록체인 시스템의 블록도이며, 도 2는 본 발명의 일 실시 예에 따른 토큰(10)을 활용한 IoT 블록체인 시스템의 인증 과정을 나타낸 개념도이다. 1 is a block diagram of an IoT blockchain system using a token 10 according to an embodiment of the present invention, and FIG. 2 is an IoT blockchain system using a token 10 according to an embodiment of the present invention It is a conceptual diagram showing the authentication process.

도 1을 참조하면, 본 발명의 일 실시 예에 따른 토큰(10)을 활용한 IoT 블록체인 시스템은, IoT 환경에서의 장치 간의 인증을 위한 토큰(10)의 발급을 요청하는 IoT 노드(100) 및 IoT 노드(100)의 요청에 따라 토큰 정보를 생성하고, 토큰 정보에 기초하여 IoT 노드(100)에 대한 인증을 수행하는 게이트웨이(200)를 포함할 수 있다.Referring to FIG. 1, an IoT blockchain system using a token 10 according to an embodiment of the present invention, an IoT node 100 requesting issuance of a token 10 for authentication between devices in an IoT environment And a gateway 200 generating token information according to the request of the IoT node 100 and performing authentication for the IoT node 100 based on the token information.

예를 들어, IoT 노드(100)는 IoT 환경에서 데이터를 송수신하기 위한 디바이스 주체로서, 와이파이(Wi-Fi), 블루투스(Bluetooth) 등의 무선 통신이 가능하며, 사용자에 의해 제어가 가능한 디바이스를 통칭한다. 게이트웨이(200)는 복수의 디바이스와 근거리 통신망(Local area network, LAN) 등이 상호 접속될 수 있도록 하는 중계 디바이스를 통칭한다.For example, the IoT node 100 is a device subject for transmitting and receiving data in an IoT environment, and is capable of wireless communication such as Wi-Fi, Bluetooth, and a device that can be controlled by a user. do. The gateway 200 is a relay device that allows a plurality of devices and a local area network (LAN) to be interconnected.

도 1 및 도 2를 참조하면, 본 발명의 일 실시 예에 따른 토큰(10)을 활용한 IoT 블록체인 시스템은, IoT 환경의 중앙 서버를 대신하여 복수개의 게이트웨이들(200)이 블록체인 네트워크를 구성하며, 복수개의 게이트웨이들(200)은 블록체인 네트워크를 통해 토큰 정보를 공유할 수 있다. 1 and 2, in the IoT blockchain system using the token 10 according to an embodiment of the present invention, a plurality of gateways 200 replace the blockchain network on behalf of the central server of the IoT environment. Configuration, the plurality of gateways 200 may share token information through a blockchain network.

이때, 블록체인이란, 거래 정보를 기록한 원장(ledger)을 모든 구성원이 각자 분산 보관하고 새로운 거래가 발생할 때 장부를 똑같이 업데이트하여 개념적으로는 익명성과 보안성이 강력한 디지털 공공장부 또는 분산원장이라 말할 수 있다.At this time, the blockchain can be said to be a digital public ledger or distributed ledger that is conceptually strong in anonymity and security by keeping the ledger that records transaction information distributed by each member and updating the ledger when a new transaction occurs. .

블록체인은 각 블록들이 연결되어 있는 구조를 가지고 있다. 블록은 헤더 부분과 바디(boby)부분으로 이루어져 있으며, 헤더 부분은 이전 블록의 해시 값을 가지고 있어 체인을 구성할 수 있도록 한다. 바디 부분은 거래 정보를 저장하여 구성원들이 거래 정보를 공유할 수 있도록 한다.Blockchain has a structure in which each block is connected. The block consists of a header part and a body part, and the header part has a hash value of the previous block, so that a chain can be formed. The body part stores transaction information so that members can share transaction information.

블록체인 네트워크는 각 구성원들 간의 트랜잭션(transaction)을 통해 전술한 블록(i.e. 거래 정보를 기록한 원장)을 생성하고, 생성된 블록들을 공유하는 집합체를 의미한다. 본 발명의 일 실시 예로 구성되는 블록체인 네트워크의 블록 및 트랜잭션의 구조는 도 6과 함께 보다 자세하게 후술하도록 한다.The blockchain network means an aggregate that creates the above-mentioned block (i.e. ledger that records transaction information) through transactions between members, and shares the generated blocks. The structure of the block and transaction of the blockchain network configured as an embodiment of the present invention will be described in more detail with reference to FIG. 6.

이와 같은 블록체인 네트워크를 통한 토큰 정보의 공유를 통해 토큰(10)에 대한 무결성을 보장하고, 블록체인 네트워크 상의 모든 게이트웨이들(200)이 토큰(10)을 신뢰하도록 할 수 있다. 또한, 전술한 바와 같이 블록체인 네트워크 상의 모든 게이트웨이들(200)이 토큰(10)을 신뢰하게 되면(i.e. 토큰(10)에 대한 신뢰성을 확보하게 되면), IoT 노드(100)에서 발급된 토큰(10)을 계속적으로 재사용하여 게이트웨이(200)와의 인증 과정을 수행할 수 있다. 즉, IoT 노드(100)의 인증을 위해 매번 토큰(10)을 생성하고 발급받지 않고도, 한번만 토큰(10)을 발급받고 나면 효율적으로 IoT 노드(100)의 인증 과정이 수행될 수 있다. Through the sharing of token information through the blockchain network, integrity of the token 10 is guaranteed, and all gateways 200 on the blockchain network can trust the token 10. In addition, as described above, when all the gateways 200 on the blockchain network trust the token 10 (ie, to secure the reliability of the token 10), the token issued from the IoT node 100 ( 10) The authentication process with the gateway 200 may be performed by continuously reusing it. That is, the authentication process of the IoT node 100 can be efficiently performed once the token 10 is issued once, without generating and issuing the token 10 every time for the authentication of the IoT node 100.

이하에서는 도 3 내지 도 9를 참조하여 IoT 블록체인 인증 시스템의 인증 과정을 보다 자세히 설명하도록 한다.Hereinafter, an authentication process of the IoT blockchain authentication system will be described in more detail with reference to FIGS. 3 to 9.

(1) IoT 노드(100)의 등록 단계에서는, 장치의 인증을 수행하기 위해 게이트웨이(200)에서 등록 토큰(10)을 발급하고, 블록체인 네트워크를 구성하는 게이트웨이(200)에서 발급한 등록 토큰(10)의 정보를 브로드캐스트하는 과정을 설명한다. (2) IoT 노드(100)의 제 1 인증 단계에서는, 등록 토큰(10)을 통하여 인증을 수행하고 IoT 노드(100) 및 게이트웨이(200) 상호 간의 세션 파라미터 값을 생성하는 과정을 설명한다. (3) IoT 노드(100)의 제 2 인증 단계에서는, IoT 노드(100) 및 게이트웨이(200)가 생성한 세션 파라미터를 이용하여 메시지 인증과 무결성 보장 기능을 수행하는 과정을 설명한다.(1) In the registration step of the IoT node 100, the registration token 10 is issued by the gateway 200 to perform authentication of the device, and the registration token issued by the gateway 200 constituting the blockchain network ( The process of broadcasting the information in 10) will be described. (2) In the first authentication step of the IoT node 100, a process of performing authentication through the registration token 10 and generating a session parameter value between the IoT node 100 and the gateway 200 will be described. (3) In the second authentication step of the IoT node 100, a process of performing message authentication and integrity guarantee function using a session parameter generated by the IoT node 100 and the gateway 200 will be described.

(1) IoT 노드의 등록 단계(1) IoT node registration step

도 3은 본 발명의 일 실시 예에 따른 토큰(10)을 활용한 IoT 블록체인 시스템의 토큰(10) 발급 과정을 나타낸 개념도이다.3 is a conceptual diagram illustrating a process for issuing a token 10 of an IoT blockchain system using a token 10 according to an embodiment of the present invention.

본 발명의 일 실시 예에 따르면, IoT 노드(100)가 IoT 환경에서 타 장치와 통신을 하기 위해서는 먼저 게이트웨이(200)와의 장치 인증이 필요하다. 이를 위해서는, IoT 노드(100)가 게이트웨이(200)에 등록된 토큰(10)을 소유하고 있어야 하는데, 도 3과 같이 IoT 노드(101)는 토큰(10)을 소유하기 위해서 게이트웨이(200)에 등록을 요청할 수 있다. 즉, IoT 노드(100)의 등록 요청은 IoT 환경에서의 장치 간의 인증을 위한 토큰(10) 발급을 요청하는 것을 말한다.According to an embodiment of the present invention, in order for the IoT node 100 to communicate with other devices in the IoT environment, device authentication with the gateway 200 is required first. To this end, the IoT node 100 must own the token 10 registered in the gateway 200. As shown in FIG. 3, the IoT node 101 registers with the gateway 200 to own the token 10. You can request. That is, the registration request of the IoT node 100 refers to requesting the issuance of the token 10 for authentication between devices in the IoT environment.

본 발명의 일 실시 예에 따른 시스템에서 프로토콜의 표기법은 하기 [표 1]을 따를 수 있다. 이하에서는 하기 [표 1] 에 따라 정의된 표기법에 따라 인증 과정을 설명하도록 한다.In the system according to an embodiment of the present invention, the notation of the protocol may follow [Table 1]. Hereinafter, the authentication process will be described according to the notation defined according to [Table 1].

[표 1][Table 1]

Figure 112019005454912-pat00001
Figure 112019005454912-pat00001

도 4는 본 발명의 일 실시 예에 따른 토큰(10)을 활용한 IoT 블록체인 시스템의 토큰(10) 발급 과정을 나타낸 시퀀스 다이어그램이며, 도 5는 본 발명의 일 실시 예에 따른 토큰(10)을 활용한 IoT 블록체인 시스템의 토큰 정보를 나타낸 블록도이다.4 is a sequence diagram showing a process of issuing a token 10 of an IoT blockchain system using a token 10 according to an embodiment of the present invention, and FIG. 5 is a token 10 according to an embodiment of the present invention It is a block diagram showing token information of IoT blockchain system using.

본 발명의 일 실시 예에 따른 IoT 노드(100)는 IoT 노드(100) 각각을 식별하기 위한 아이디 정보 NID(3)를 포함하며, 게이트웨이(200)는 게이트웨이(200) 각각을 식별하기 위한 아이디 정보 GID(2)를 포함할 수 있다. 또한, 본 발명의 일 실시 예에 따른 시스템의 구축 단계에서 IoT 노드(100) 및 게이트웨이(200)는 일대일로 대응되는 비밀 파라미터 값 Xgn을 공유할 수 있다. The IoT node 100 according to an embodiment of the present invention includes ID information NID 3 for identifying each IoT node 100, and the gateway 200 ID information for identifying each of the gateway 200 It may include a GID (2). In addition, in the construction stage of the system according to an embodiment of the present invention, the IoT node 100 and the gateway 200 may share the secret parameter value Xgn corresponding to the one-to-one.

본 발명의 일 실시 예에 따른 비밀 파라미터 값 Xgn은 토큰(10) 생성을 위해 하나의 IoT 노드(100)에 대응되는 하나의 게이트웨이(200)가 서로 공유하고 있는 파라미터 값을 말한다. 이러한 비밀 파라미터 값 Xgn을 활용하여 게이트웨이(200)는 정당한 IoT 노드(100)가 토큰(10) 발급을 요청했는지 여부, IoT 노드(100)는 정당한 게이트웨이(200)가 보낸 토큰(10)인지 여부를 확인할 수 있다.The secret parameter value Xgn according to an embodiment of the present invention refers to a parameter value shared by one gateway 200 corresponding to one IoT node 100 to generate a token 10. By utilizing the secret parameter value Xgn, the gateway 200 determines whether the legitimate IoT node 100 has requested to issue the token 10, and the IoT node 100 determines whether the legitimate gateway 200 has sent the token 10. Can be confirmed.

도 4를 참조하면, 본 발명의 일 실시 예에 따른 IoT 노드(100)는 먼저 난수값 r을 생성하고, 전송할 아이디 정보 NID(3)의 무결성을 보장하기 위한 파라미터값 MI를 생성할 수 있다. 다음으로, IoT 노드(100)는 생성된 난수값 r을 게이트웨이(200)로 안전하게 전송하기 위해 파라미터 값 MN을 생성하고, 파라미터값 MI를 게이트웨이(200)로 안전하게 전송하기 위해서 파라미터 값 RMI를 생성할 수 있다. IoT 노드(100)는 전술한 파라미터 값들을 포함하는 등록 요청 메시지를 생성할 수 있으며, 생성된 등록 요청 메시지를 게이트웨이(200)로 전송함으로써 토큰(10) 발급을 요청(i.e. 등록을 요청)할 수 있다.Referring to FIG. 4, the IoT node 100 according to an embodiment of the present invention may first generate a random number value r, and generate a parameter value MI to ensure the integrity of the ID information NID 3 to be transmitted. Next, the IoT node 100 generates a parameter value MN to safely transmit the generated random number r to the gateway 200, and a parameter value RMI to safely transmit the parameter value MI to the gateway 200. Can. The IoT node 100 may generate a registration request message including the above-described parameter values, and request to issue a token 10 (ie, request registration) by transmitting the generated registration request message to the gateway 200. have.

도 4를 참조하면, 본 발명의 일 실시 예에 따른 게이트웨이(200)는 IoT 노드(100)로부터 전송된 등록 요청 메시지에서 타임스탬프를 확인한 다음 등록 요청 메시지에 포함된 난수값 r과 대비되는 난수값 r'을 추출할 수 있다. 또한, 게이트웨이(200)는 파라미터 값 RMI와 MN으로부터 파라미터 값 MI를 추출하고, 비밀 파라미터 값 Xgn과 추출한 난수값 r'로 파라미터 값 MI'를 생성할 수 있다.Referring to FIG. 4, the gateway 200 according to an embodiment of the present invention checks a timestamp in a registration request message transmitted from the IoT node 100 and then compares a random number value r included in the registration request message r'can be extracted. In addition, the gateway 200 may extract the parameter value MI from the parameter values RMI and MN, and generate the parameter value MI' with the secret parameter value Xgn and the extracted random number value r'.

본 발명의 일 실시 예에 따른 게이트웨이(200)는 파라미터 값 MI와 파라미터 값 MI'를 비교하여 IoT 노드(100)의 인증을 수행할 수 있다. 즉, 게이트웨이(200)는 IoT 노드(100)로부터 전송된 등록 요청 메시지에 포함된 파라미터 값들을 분석하여 비교함으로써, 정당한 IoT 노드(100)로부터 토큰(10) 발급이 요청되었는지 여부를 판단할 수 있다. 전술한 과정에 따라 IoT 노드(100)에 대한 정상적인 인증이 완료되면(i.e. 정당한 IoT 노드(100)로부터 토큰(10) 발급이 요청된 것으로 판단되면), 게이트웨이(200)는 정상적인 등록을 허가하는 토큰 정보를 생성하고, IoT 노드(100)로 토큰(10)과 함께 등록 허가 메시지를 전송할 수 있다.The gateway 200 according to an embodiment of the present invention may perform authentication of the IoT node 100 by comparing the parameter value MI and the parameter value MI'. That is, the gateway 200 analyzes and compares parameter values included in the registration request message transmitted from the IoT node 100 to determine whether token 10 issuance is requested from the legitimate IoT node 100. . When the normal authentication for the IoT node 100 is completed according to the above-described process (ie, if it is determined that the token 10 is issued from the legitimate IoT node 100), the gateway 200 is a token that allows normal registration. It is possible to generate information and transmit a registration permission message together with the token 10 to the IoT node 100.

이때, 도 5를 참조하면, 본 발명의 일 실시 예에 따른 토큰 정보에는 본 발명의 일 실시 예에 따르면, 토큰 정보에는, 발급된 토큰(10)을 식별하기 위한 토큰 아이디 정보 TID(1), IoT 노드(100)를 식별하기 위한 아이디 정보 NID(3), 게이트웨이(200)를 식별하기 위한 아이디 정보 GID(2), IoT 노드(100) 및 게이트웨이(200)의 상호 인증을 위한 파라미터 값 e(4) 및 파라미터 값 x(5), 토큰(10)을 발급한 게이트웨이(200)를 보장하기 위한 시그니처 값 S(6)가 포함될 수 있다.5, according to an embodiment of the present invention, token information according to an embodiment of the present invention includes token ID information TID (1) for identifying the issued token 10, ID information for identifying the IoT node 100 NID (3), ID information for identifying the gateway 200 GID (2), parameter values for mutual authentication of the IoT node 100 and the gateway 200 e( 4) and a parameter value x(5), a signature value S(6) for ensuring the gateway 200 that issued the token 10 may be included.

도 4를 참조하면, 본 발명의 일 실시 예에 따른 IoT 노드(100)는 게이트웨이(200)로부터 등록 허가 메시지를 전송받으면, 등록 허가 메시지에서 타임스탬프를 확인한 다음 토큰 정보에 포함된 파라미터 값 e(4)와 x를 이용하여 파라미터 값 y를 추출할 수 있다. 또한, IoT 노드(100)는 등록 요청 시에 생성한 파라미터 값 MI와 비밀 파라미터 값 Xgn을 이용하여 파라미터 값 y'을 생성할 수 있다. Referring to FIG. 4, when the IoT node 100 according to an embodiment of the present invention receives a registration permission message from the gateway 200, checks a timestamp in the registration permission message, and then displays the parameter value e( 4) and x can be used to extract the parameter value y. In addition, the IoT node 100 may generate the parameter value y'using the parameter value MI and the secret parameter value Xgn generated at the time of the registration request.

본 발명의 일 실시 예에 따른 IoT 노드(100)는 파라미터 값 y와 파라미터 값 y'를 비교하여 정당한 게이트웨이(200)가 보낸 토큰(10)임을 확인하고, 토큰 정보를 저장할 수 있다. 즉, IoT 노드(100)는 게이트웨이(200)로부터 전송된 토큰 정보 및 등록 허가 메시지에 포함된 파라미터 값들을 분석하여 비교함으로써, 정당한 게이트웨이(200)로부터 토큰(10)이 발급되었는지 여부를 판단할 수 있다.The IoT node 100 according to an embodiment of the present invention may compare the parameter value y and the parameter value y'to confirm that the token 10 is sent by the legitimate gateway 200 and store token information. That is, the IoT node 100 may determine whether the token 10 has been issued from the legitimate gateway 200 by analyzing and comparing the token information transmitted from the gateway 200 and the parameter values included in the registration permission message. have.

도 6은 본 발명의 일 실시 예에 따른 토큰(10)을 활용한 IoT 블록체인 시스템의 트랜잭션 구조를 나타낸다.6 shows the transaction structure of the IoT blockchain system using the token 10 according to an embodiment of the present invention.

본 발명의 일 실시 예에 따른 토큰 정보를 생성한 게이트웨이(200)는 토큰 정보에 포함된 아이디 정보들(1,2,3), 파라미터 값들(4,5) 및 시그니처 값(6)과 비밀 파라미터 값을 트랜잭션으로 생성하고, 생성된 트랜잭션을 블록체인 네트워크의 타 게이트웨이(200)로 브로드캐스트(Broadcast)할 수 있다. 즉, 게이트웨이(200)는 블록체인 네트워크 상의 타 게이트웨이들(200)과 토큰 정보를 공유할 수 있으며, 이를 통해 토큰(10)에 대한 신뢰성을 확보함으로써, IoT 노드(100)가 네트워크 상의 다른 게이트웨이들(200)과도 인증을 수행할 수도록 할 수 있다.The gateway 200 that generates token information according to an embodiment of the present invention includes ID information (1,2,3), parameter values (4,5) and signature value (6) and secret parameters included in the token information. Values can be generated as transactions, and the generated transactions can be broadcast to other gateways 200 in the blockchain network. That is, the gateway 200 can share token information with other gateways 200 on the blockchain network, thereby securing the reliability of the token 10, thereby allowing the IoT node 100 to other gateways on the network. It may be possible to perform the authentication with the (200) transient.

도 6을 참조하면, 본 발명의 일 실시 예에 따른 IoT 노드(100)의 등록 토큰(10)을 발급한 게이트웨이(200)는 블록체인을 형성하고 있는 다른 게이트웨이들(200)에게 발행한 토큰 정보에 포함된 토큰 아이디 정보 TID(1), 게이트웨이 아이디 정보 GID(2), IoT 노드 아이디 정보 NID(3), 파라미터 값들(4,5), 시그니처 값 S(6)와 함께 제 1 인증 단계에서 사용될 비밀 파라미터 값 Xgn를 트랜잭션 형태로 구성하여 브로드캐스트할 수 있다. 이를 통해 블록체인 네트워크를 구성하는 게이트웨이들(200)은 어떤 IoT 노드(100)가 등록되었고, 어떠한 토큰(10)을 IoT 노드(100)가 소유하고 있는지를 공유할 수 있다.Referring to FIG. 6, the gateway 200 issuing the registration token 10 of the IoT node 100 according to an embodiment of the present invention is token information issued to other gateways 200 forming a blockchain Token ID information included in TID(1), gateway ID information GID(2), IoT node ID information NID(3), parameter values (4,5), and signature value S(6) to be used in the first authentication step The secret parameter value Xgn can be configured and broadcast in the form of a transaction. Through this, the gateways 200 constituting the blockchain network can share which IoT node 100 is registered and which token 10 is owned by the IoT node 100.

(2) IoT 노드의 제 1 인증 단계(2) the first authentication step of the IoT node

도 7은 본 발명의 일 실시 예에 따른 토큰(10)을 활용한 IoT 블록체인 시스템의 제 1 인증 과정을 나타낸 개념도이며, 도 8은 본 발명의 일 실시 예에 따른 토큰(10)을 활용한 IoT 블록체인 시스템의 제 1 인증 과정을 나타낸 시퀀스 다이어그램이다.7 is a conceptual diagram showing a first authentication process of an IoT blockchain system using a token 10 according to an embodiment of the present invention, and FIG. 8 is using a token 10 according to an embodiment of the present invention It is a sequence diagram showing the first authentication process of the IoT blockchain system.

본 발명의 일 실시 예에 따르면, IoT 노드(100)와 게이트웨이(200) 간의 장치 인증이 완료되면, IoT 노드(100)의 데이터 송수신 과정에서의 보안을 위해서 IoT 노드(100)와 게이트웨이(200) 상호 간의 진위 여부를 확인하는 제 1 인증 과정이 필요하다. 도 7을 참조하면, 제 1 인증 단계는 IoT 노드(101)가 등록 토큰(10)을 이용하여 블록체인 네트워크를 구성하는 일 게이트웨이(200)에 인증을 요청하고, 블록체인 네트워크에서 IoT 노드(101)와 게이트웨이(200) 간의 장치 인증을 수행하는 과정으로 이해될 수 있다.According to an embodiment of the present invention, when device authentication between the IoT node 100 and the gateway 200 is completed, the IoT node 100 and the gateway 200 for security in the process of transmitting and receiving data of the IoT node 100 A first certification process is needed to confirm the authenticity of each other. Referring to FIG. 7, in the first authentication step, the IoT node 101 requests authentication to one gateway 200 constituting a blockchain network using the registration token 10, and the IoT node 101 in the blockchain network ) And the gateway 200 may be understood as a process of performing device authentication.

도 8을 참조하면, 본 발명의 일 실시 예에 따른 IoT 노드(100)는 먼저 난수값 r을 게이트웨이(200)로 안전하게 전송하기 위해 파라미터 값 MN을 생성하고, 세선 파라미터 값 SP를 생성하기 위한 난수값 n을 생성할 수 있다. IoT 노드(100)는 생성된 난수값 n을 게이트웨이(200)로 안전하게 전송하기 위해 파리미터 값 IN을 생성할 수 있으며, 전술한 파라미터 값들을 포함하는 인증 요청 메시지를 생성할 수 있다. IoT 노드(100)는 생성된 인증 요청 메시지를 게이트웨이(200)로 전송함으로써 제 1 인증을 요청할 수 있다. 이때, 인증 요청 메시지에는 IoT 노드(100)가 발급받은 토큰 정보가 포함될 수 있다.Referring to FIG. 8, the IoT node 100 according to an embodiment of the present invention first generates a parameter value MN to safely transmit the random number value r to the gateway 200, and a random number for generating a thin line parameter value SP You can generate the value n. The IoT node 100 may generate a parameter value IN to safely transmit the generated random number n to the gateway 200, and may generate an authentication request message including the above-described parameter values. The IoT node 100 may request the first authentication by sending the generated authentication request message to the gateway 200. At this time, the authentication request message may include token information issued by the IoT node 100.

도 8을 참조하면, 본 발명의 일 실시 예에 따른 게이트웨이(200)는 IoT 노드(100)로부터 전송된 인증 요청 메시지에서 타임스탬프를 확인한 다음 IoT 노드(100)로부터 전송된 등록 토큰 정보를 블록체인 네트워크를 통해 검증할 수 있다. 이때, 블록체인 네트워크를 통한 검증은 게이트웨이(200)가 IoT 노드(100)의 비밀 파라미터 값 Xgn을 검색함으로써 수행될 수 있다. 또한, 인증 요청 메시지에 포함된 파라미터 값들로부터 난수값 r과 n을 추출하고, 추출된 난수값 r과 n을 사용하여 난수값 m을 생성할 수 있다.Referring to FIG. 8, the gateway 200 according to an embodiment of the present invention checks a timestamp in an authentication request message transmitted from the IoT node 100 and then blocks the registration token information transmitted from the IoT node 100 It can be verified through the network. At this time, verification through the blockchain network may be performed by the gateway 200 searching for the secret parameter value Xgn of the IoT node 100. In addition, random values r and n may be extracted from parameter values included in the authentication request message, and random numbers m may be generated using the extracted random values r and n.

게이트웨이(200)는 토큰 정보의 검증을 완료하고 난수값 m을 생성하고 난 다음, 세션 파라미터 값 SP를 생성하고 저장할 수 있다. 여기서 세션 파라미터 값 SP란, 후술할 IoT 노드(100)의 제 2 인증 단계에서 사용되는 파라미터 값으로서, 게이트웨이(200)와 IoT 노드(100)가 제 1 인증을 통해 공유하게 되는 파라미터 값을 말한다. 이와 같이 세션 파라미터 값 SP가 생성되고 나면, 게이트웨이(200)는 난수값 m을 안전하게 전송하기 위한 파라미터 값 GM을 생성하고, 전술한 파라미터 값 GM 및 [표 1]의 파라미터 값 Z 등을 포함하는 인증 완료 메시지를 IoT 노드(100)로 전송할 수 있다.After completing the verification of the token information and generating the random number value m, the gateway 200 may generate and store the session parameter value SP. Here, the session parameter value SP is a parameter value used in the second authentication step of the IoT node 100 to be described later, and refers to a parameter value shared by the gateway 200 and the IoT node 100 through the first authentication. After the session parameter value SP is generated as described above, the gateway 200 generates a parameter value GM for safely transmitting the random number value m, and authentication including the parameter value GM and the parameter value Z of [Table 1]. The completion message may be transmitted to the IoT node 100.

도 8을 참조하면, 본 발명의 일 실시 예에 따른 IoT 노드(100)는 게이트웨이(200)로부터 전송된 인증 완료 메시지에서 타임스탬프를 확인한 다음, 파라미터 값 Z와 토큰 정보와 타임스탬프를 이용하여 생성된 파라미터 값 Z'를 비교함으로써, 정당한 게이트웨이(200)로부터 전송된 메시지임을 확인할 수 있다. 정당한 게이트웨이(200)로부터 전송된 메시지인 경우, IoT 노드(100)는 인증 완료 메시지로부터 파라미터 값 m을 추출할 수 있으며, 파라미터 값 m과 n을 이용하여 세션 파라미터 값 SP를 생성하고 저장할 수 있다.Referring to FIG. 8, the IoT node 100 according to an embodiment of the present invention checks a timestamp in an authentication completion message transmitted from the gateway 200 and then generates it using the parameter value Z, token information, and timestamp By comparing the parameter value Z', it can be confirmed that it is a message transmitted from the legitimate gateway 200. In the case of the message transmitted from the legitimate gateway 200, the IoT node 100 may extract the parameter value m from the authentication completion message, and generate and store the session parameter value SP using the parameter values m and n.

전술한 과정을 통해 중앙 서버 없이도 자체적으로 IoT 노드(100)와 게이트웨이(200)의 상호 인증 과정에 해당하는 제 1 인증 단계를 수행할 수 있다. 이때, IoT 노드(100)와 게이트웨이(200)는 제 1 인증 단계를 통해 주고받은 난수값을 기초로 세션 파라미터 값을 생성할 수 있으며, 이는 후술할 제 2 인증 단계에서 사용될 수 있다.Through the above-described process, the first authentication step corresponding to the mutual authentication process of the IoT node 100 and the gateway 200 may be performed by itself without a central server. At this time, the IoT node 100 and the gateway 200 may generate a session parameter value based on the random number value exchanged through the first authentication step, which may be used in the second authentication step described later.

(3) IoT 노드의 제 2 인증 단계(3) 2nd authentication stage of IoT node

도 9는 본 발명의 일 실시 예에 따른 토큰(10)을 활용한 IoT 블록체인 시스템의 제 2 인증 과정을 나타낸 시퀀스 다이어그램이다.9 is a sequence diagram showing a second authentication process of the IoT blockchain system using the token 10 according to an embodiment of the present invention.

본 발명의 일 실시 예에 따른 제 1 인증 단계가 완료되면, IoT 노드(100)는 게이트웨이(200)와 데이터를 송수신하는 통신을 시작할 수 있다. 이때, IoT 노드(100)와 게이트웨이(200)는 전송할 데이터와 제 1 인증 단계에서 생성된 세션 파라미터 값을 이용하여 서로만이 생성할 수 있는 해시 데이터를 생성할 수 있다. 이러한 해시 데이터를 이용하여 IoT 노드(100)와 게이트웨이(200)는 인증이 완료된 장치임을 상호 확인함과 동시에 데이터를 송수신할 수 있으며, 이러한 과정을 제 2 인증 단계라고 말한다.When the first authentication step according to an embodiment of the present invention is completed, the IoT node 100 may start communication to transmit and receive data to and from the gateway 200. At this time, the IoT node 100 and the gateway 200 may use the data to be transmitted and the session parameter values generated in the first authentication step to generate hash data that can be generated only by each other. Using this hash data, the IoT node 100 and the gateway 200 can mutually confirm that the authentication is completed and transmit and receive data at the same time, and this process is referred to as a second authentication step.

도 9를 참조하면, 본 발명의 일 실시 예에 따른 IoT 노드(100)는 세션 파라미터 값 SP를 이용하여 메시지의 인증과 무결성을 보장하는 파라미터 값 D를 생성할 수 있으며, 파라미터 값 D와 데이터를 포함하는 데이터 메시지를 게이트웨이(200)로 전송할 수 있다.Referring to FIG. 9, the IoT node 100 according to an embodiment of the present invention may generate a parameter value D that guarantees the authentication and integrity of a message using the session parameter value SP, and the parameter value D and data. The included data message may be transmitted to the gateway 200.

도 9를 참조하면, 본 발명의 일 실시 예에 따른 게이트웨이(200)는 IoT 노드(100)로부터 전송된 데이터 메시지에서 타임스탬프를 확인한 다음, IoT 노드(100)로부터 데이터와 게이트웨이(200)가 보유한 세션 파라미터 값 SP를 이용하여 파라미터 값 D에 대비되는 파라미터 값 D'를 생성할 수 있다. 게이트웨이(200)는 파라미터값 D와 파라미터 값 D'를 비교하여 정당한 IoT 노드(100)에 의한 메시지임을 확인할 수 있다. 즉, 게이트웨이(200)는 파라미터 값 D와 파라미터 값 D'가 서로 다를 경우에는 정당하지 않은 IoT 노드(i.e. 제 1 인증이 완료되지 않은 IoT 노드)에 의한 메시지인 것으로 판단하고, 동일한 경우에는 정당한 IoT 노드(100)(i.e. 제 1 인증이 완료된 IoT 노드(100))에 의한 메시지인 것으로 판단할 수 있다.Referring to FIG. 9, the gateway 200 according to an embodiment of the present invention checks a timestamp in a data message transmitted from the IoT node 100 and then holds the data and the gateway 200 from the IoT node 100 Using the session parameter value SP, a parameter value D'that is compared to the parameter value D can be generated. The gateway 200 compares the parameter value D and the parameter value D'and confirms that the message is from the legitimate IoT node 100. That is, when the parameter value D and the parameter value D'are different from each other, the gateway 200 determines that the message is caused by an invalid IoT node (ie, an IoT node in which the first authentication has not been completed). It may be determined to be a message by the node 100 (ie, the IoT node 100 in which the first authentication is completed).

전술한 바에 따라 제 1 인증이 완료된 IoT 노드(100)에 의한 메시지인 것으로 판단되면, 게이트웨이(200)는 IoT 노드(100)에 대한 컨트롤 메시지와 메시지 인증 및 무결성을 보장하는 파라미터값 MCM을 생성하여 IoT 노드(100)로 전송할 수 있다.If it is determined that the first authentication is a message by the IoT node 100, the gateway 200 generates a control message for the IoT node 100 and a parameter value MCM that guarantees message authentication and integrity. It can be transmitted to the IoT node 100.

도 9를 참조하면, 본 발명의 일 실시 예에 따른 IoT 노드(100)는 게이트웨이(200)로부터 전송된 컨트롤 메시지에서 타임스탬프를 확인한 다음, 게이트웨이(200)로부터 데이터와 IoT 노드(100)가 보유한 세션 파라미터 값 SP를 이용하여 파라미터 값 MCM에 대비되는 파라미터 값 MCM'를 생성할 수 있다. IoT 노드(100)는 파라미터값 MCM와 파라미터 값 MCM'를 비교하여 정당한 게이트웨이(200)에 의한 메시지임을 확인할 수 있다.Referring to FIG. 9, the IoT node 100 according to an embodiment of the present invention checks a timestamp in a control message transmitted from the gateway 200 and then holds the data and the IoT node 100 from the gateway 200 The session parameter value SP may be used to generate a parameter value MCM' that is in contrast to the parameter value MCM. The IoT node 100 compares the parameter value MCM and the parameter value MCM' and confirms that the message is by the legitimate gateway 200.

전술한 바에 따른 제 2 인증 단계를 통해 IoT 노드(100)와 게이트웨이(200) 간의 데이터 송수신 과정에서도 제 1 인증이 완료된 정당한 장치에 의한 데이터 송수신인지 여부를 확인할 수 있으며, 메시지 자체의 무결성을 보장할 수 있다.Through the second authentication step according to the above, it is possible to check whether or not data is transmitted and received by a legitimate device that has completed the first authentication in the process of transmitting and receiving data between the IoT node 100 and the gateway 200, and guarantees the integrity of the message itself. Can.

이하에서는 도 10 내지 도 12를 참조하여 본 발명의 일 실시 예에 따른 시스템에 대한 공격 시나리오를 통해 보안 위협에 대한 안정성을 확인한 결과를 구체적으로 살펴보도록 한다.Hereinafter, with reference to FIGS. 10 to 12, the result of confirming the stability of the security threat through the attack scenario for the system according to an embodiment of the present invention will be described in detail.

도 10 및 도 11은 본 발명의 본 발명의 일 실시 예에 따른 토큰(10)을 활용한 IoT 블록체인 시스템의 중간자 공격 시나리오를 나타낸 소스코드이다.10 and 11 are source codes showing a man-in-the-middle attack scenario of the IoT blockchain system using the token 10 according to an embodiment of the present invention.

IoT 환경은 무선 통신을 이용하기 때문에 공격자가 IoT 환경 내의 두 장치 사이에서 위장하여 데이터를 도청하거나 조작하는 중간자 공격에 취약하다. 이러한 중간자 공격에 본 발명의 일 실시 예에 따른 시스템이 안전한지를 확인하기 위해서 중간자 공격에 대한 시나리오를 적용한 시뮬레이션을 진행하였다.Because the IoT environment uses wireless communication, an attacker is vulnerable to a man-in-the-middle attack by spoofing or manipulating data disguised as two devices in the IoT environment. In order to confirm whether the system according to an embodiment of the present invention is safe for such man-in-the-middle attack, a simulation in which a scenario for man-in-the-middle attack is applied was performed.

도 10의 (a)를 참조하면, 공격자는 IoT 노드로 위장하고 등록 요청 메시지를 위조하여 게이트웨이(200)로 전송하는 공격을 시도하였다. 하지만, 공격자의 위장 IoT 노드와 본 발명의 일 실시 예에 따른 게이트웨이(200)는 서로 공유하고 있는 비밀 파라미터 값 Xgn이 달라 파라미터 값 MI가 불일치하게 되므로, 중간자에 의한 공격을 막을 수 있다.Referring to (a) of FIG. 10, an attacker attempted an attack that disguised as an IoT node and forged a registration request message to transmit to the gateway 200. However, since the attacker's disguised IoT node and the gateway 200 according to an embodiment of the present invention have different secret parameter values Xgn shared with each other, the parameter values MI are inconsistent, thereby preventing an attack by an intermediate person.

도 10의 (b)를 참조하면, 공격자는 게이트웨이로 위장하고 등록 토큰(10)과 등록 허가 메시지를 위조하여 IoT 노드(100)로 전송하는 공격을 시도하였다. 하지만, 본 발명의 일 실시 예에 따른 IoT 노드(100)와 공격자의 위장 게이트웨이는 서로 공유하고 있는 비밀 파라미터 값 Xgn 및 난수값 r이 달라 파라미터 값 y가 불일치하게 되므로, 중간자에 의한 공격을 막을 수 있다.Referring to (b) of FIG. 10, an attacker attempted an attack that disguised as a gateway and forged the registration token 10 and the registration permission message and transmitted it to the IoT node 100. However, the IoT node 100 and the attacker's camouflage gateway according to an embodiment of the present invention have different secret parameter values Xgn and random number r, which are different from each other, so that the parameter values y are inconsistent, thereby preventing an attack by a man. have.

도 11의 (a)를 참조하면, 공격자는 등록 토큰(10)을 위조하고 위조된 등록 토큰(10)을 게이트웨이(200)로 전송하여 등록이 완료된 IoT 노드로 위장하는 공격을 시도하였다. 하지만, 본 발명의 일 실시 예에 따르면, 위조된 등록 토큰(10)을 전송받은 게이트웨이(200)에서 블록체인 네트워크를 통해 토큰 정보를 확인하고, 블록체인 네트워크를 통해 확인된 토큰 정보에 의해 위조된 토큰인 것을 확인함으로써, 중간자에 의한 공격을 막을 수 있다.Referring to (a) of FIG. 11, an attacker attempted an attack disguised as an IoT node for which registration has been completed by forging the registration token 10 and transmitting the forged registration token 10 to the gateway 200. However, according to an embodiment of the present invention, the gateway 200 receiving the forged registration token 10 checks the token information through the blockchain network, and is forged by the token information confirmed through the blockchain network. By confirming that it is a token, it is possible to prevent an attack by an intermediate person.

도 11의 (b) 및 (c)를 참조하면, 공격자는 IoT 노드(100)와 게이트웨이(200) 사이에서 데이터 메시지를 도청하고 변조하는 공격을 시도하였다. 하지만, 본 발명의 일 실시 예에 따른 메시지 인증과 무결성을 보장하는 해시 데이터 값에 해당하는 파라미터 값 D를 통해 게이트웨이(200)가 데이터 변조 여부를 확인함으로써 중간자에 의한 공격을 막을 수 있다.Referring to (b) and (c) of FIG. 11, an attacker attempted an attack that intercepts and modulates a data message between the IoT node 100 and the gateway 200. However, it is possible to prevent an attack by a man-in-the-middle by checking whether the data is falsified by the gateway 200 through a parameter value D corresponding to a hash data value that guarantees message authentication and integrity according to an embodiment of the present invention.

전술한 바와 같이 본 발명의 일 실시 예에 따른 시스템은 등록 및 인증의 전 과정에 걸쳐 IoT 환경에서 일어날 수 있는 중간자 공격을 효과적으로 방지할 수 있다.As described above, the system according to an embodiment of the present invention can effectively prevent man-in-the-middle attacks that may occur in the IoT environment throughout the entire process of registration and authentication.

도 12는 본 발명의 일 실시 예에 따른 토큰(10)을 활용한 IoT 블록체인 시스템의 보안성 검증 시나리오를 나타낸 소스코드 및 결과이다.12 is a source code and a result showing a security verification scenario of an IoT blockchain system using a token 10 according to an embodiment of the present invention.

본 발명의 일 실시 예에 따른 보안성 검증은 시스템의 프로토콜 절차들을 캐스퍼(Casper) 언어로 명세하고 FDR의 정형적 검증을 통해 수행되었다. 도 12의 (a)를 통해 나타낸 캐스퍼 언어에서의 프로토콜 설명(Protocol Description)은 프로토콜의 전체적인 절차를 명세한다. The security verification according to an embodiment of the present invention was performed through formal verification of the FDR by specifying protocol procedures of the system in Casper language. The protocol description in the Casper language shown through (a) of FIG. 12 specifies the overall procedure of the protocol.

도 12의 (b)를 통해 나타낸 캐스퍼 언어에서의 프로토콜 사양(Specification)은 프로토콜의 요구사항을 기술하는 부분이다. 도 12의 (b)를 참조하면, Secret은 IoT 노드(100)가 비밀 파라미터 값 Xgn과 난수값 r을 게이트웨이(200)와 공유하고 있음을 나타낸다. 또한, Agreement는 IoT 노드(100)가 데이터, 난수값 m 및 r을 통해 게이트웨이(200)를 인증하고 있음을 나타낸다.The protocol specification in the Casper language shown through (b) of FIG. 12 is a part for describing the requirements of the protocol. Referring to (b) of FIG. 12, Secret indicates that the IoT node 100 shares the secret parameter value Xgn and the random number value r with the gateway 200. In addition, the Agreement indicates that the IoT node 100 authenticates the gateway 200 through data, random values m and r.

도 12의 (c)는 캐스퍼 언어를 통해 프로토콜을 명세하고 CSP로 컴파일을 완료한 후 FDR을 이용하여 검증한 결과를 나타낸다. 도 12의 (c)를 참조하면, Specification에서 기술한 각 부분에 대하여 안전함을 의미하는 "Finished: Passed" 가 출력되었음을 확인할 수 있다.12(c) shows the result of verifying the protocol using the FDR after specifying the protocol through the Casper language and completing the compilation with CSP. Referring to (c) of FIG. 12, it can be confirmed that “Finished: Passed” is output, which means that it is safe for each part described in the specification.

도 13은 본 발명의 일 실시 예에 따른 토큰(10)을 활용한 IoT 블록체인 시스템을 이용한 다단계 인증 방법의 순서도이다.13 is a flowchart of a multi-step authentication method using an IoT blockchain system utilizing a token 10 according to an embodiment of the present invention.

도 13을 참조하면, 본 발명의 일 실시 예에 따른 토큰(10)을 활용한 IoT 블록체인 시스템을 이용한 다단계 인증 방법은, IoT 노드(100)가 게이트웨이(200)로 IoT 환경에서의 장치 간의 인증을 위한 토큰(10)의 발급을 요청하는 단계(S100), 게이트웨이(200)가 IoT 노드(100)의 요청에 따라 토큰 정보를 생성하고, IoT 노드(100)로 생성된 토큰 정보를 전송하는 단계(S200), IoT 노드(100)가 토큰 정보를 포함하는 인증 요청 메시지를 생성하여 게이트웨이(200)로 전송하고, 게이트웨이(200)는 블록체인 네트워크를 통해 토큰 정보를 검증하는 제 1 인증을 수행하는 단계(S300) 및 제 1 인증이 완료되면, IoT 노드(100)가 데이터 처리를 위한 데이터 메시지를 생성하여 게이트웨이(200)로 전송하고, 게이트웨이(200)는 데이터 메시지에 기초하여 제 1 인증이 완료된 IoT 노드(100)인지 여부를 검증하는 제 2 인증을 수행하는 단계(S400)를 포함하되, IoT 노드(100) 및 게이트웨이(200)는 일대일로 대응되는 비밀 파라미터 값을 공유할 수 있다.Referring to FIG. 13, in the multi-level authentication method using an IoT blockchain system using a token 10 according to an embodiment of the present invention, the IoT node 100 authenticates between devices in an IoT environment as a gateway 200 Requesting the issuance of the token 10 for S100, the gateway 200 generating token information according to the request of the IoT node 100, and transmitting the token information generated to the IoT node 100 (S200), the IoT node 100 generates an authentication request message including token information and transmits it to the gateway 200, and the gateway 200 performs the first authentication for verifying the token information through the blockchain network When the step S300 and the first authentication are completed, the IoT node 100 generates a data message for data processing and transmits it to the gateway 200, and the gateway 200 completes the first authentication based on the data message. It includes a step (S400) of performing a second authentication to verify whether the IoT node 100, IoT node 100 and the gateway 200 may share the corresponding secret parameter value on a one-to-one basis.

본 발명의 일 실시 예에 따른 토큰(10)의 발급을 요청하는 단계(S100)에서는, IoT 노드(100)가 토큰(10)의 발급을 요청하기 위해 난수값을 생성하고, 난수값에 기반한 파라미터 값들을 포함하는 등록 요청 메시지를 생성할 수 있다.In the step of requesting the issuance of the token 10 according to an embodiment of the present invention (S100), the IoT node 100 generates a random number value to request the issuance of the token 10, and a parameter based on the random number value A registration request message including values may be generated.

본 발명의 일 실시 예에 따른 토큰 정보를 생성하고, 토큰 정보를 전송하는 단계(S200)에서는, 게이트웨이(200)가 등록 요청 메시지에 포함된 파라미터 값들을 분석함으로써, 토큰 정보의 생성을 위한 IoT 노드(100)의 인증을 수행할 수 있다.In the step of generating token information according to an embodiment of the present invention and transmitting token information (S200), the gateway 200 analyzes parameter values included in the registration request message, thereby generating an IoT node for generating token information The authentication of (100) can be performed.

본 발명의 일 실시 예에 따른 토큰 정보를 생성하고, 토큰 정보를 전송하는 단계(S200)에서는, 토큰 정보를 생성한 게이트웨이(200)가 토큰 정보에 포함된 아이디 정보들(1,2,3), 파라미터 값들(4,5) 및 시그니처 값(6)과 비밀 파라미터 값을 트랜잭션으로 생성하고, 생성된 트랜잭션을 블록체인 네트워크의 타 게이트웨이(200)로 브로드캐스트할 수 있다.In step S200 of generating token information and transmitting token information according to an embodiment of the present invention, the gateway 200 that generated the token information includes ID information (1, 2, 3) included in the token information. , The parameter values (4,5) and the signature value (6) and the secret parameter value can be generated as a transaction, and the generated transaction can be broadcast to other gateways (200) in the blockchain network.

본 발명의 일 실시 예에 따른 제 1 인증을 수행하는 단계(S3100)에서는, 인증 요청 메시지의 생성 시, IoT 노드(100)가 제 2 인증을 위한 세션 파라미터 값을 생성하기 위한 난수값을 생성하고, 게이트웨이(200)에 의해 토큰 정보에 대한 검증이 완료되면, IoT 노드(100) 및 게이트웨이(200) 각각은 난수값을 기초로 세션 파라미터 값을 생성할 수 있다.In the step of performing the first authentication according to an embodiment of the present invention (S3100), when generating an authentication request message, the IoT node 100 generates a random number value for generating a session parameter value for the second authentication, , When verification of the token information is completed by the gateway 200, each of the IoT node 100 and the gateway 200 may generate a session parameter value based on a random number value.

본 발명의 일 실시 예에 따른 제 2 인증을 수행하는 단계(S400)에서는, 게이트웨이(200)가 IoT 노드(100) 및 게이트웨이(200)에서 각각 생성된 세션 파라미터 값을 비교함으로써, 제 1 인증이 완료된 IoT 노드(100)인지 여부를 판단할 수 있다.In the step (S400) of performing the second authentication according to an embodiment of the present invention, the first authentication is performed by the gateway 200 comparing the session parameter values generated by the IoT node 100 and the gateway 200, respectively. It may be determined whether or not the IoT node 100 is completed.

본 발명의 일 실시 예에 따른 방법과 관련하여서는 전술한 시스템에 대한 내용이 적용될 수 있다. 따라서, 방법과 관련하여, 전술한 시스템에 대한 내용과 동일한 내용에 대하여는 설명을 생략하였다.With respect to the method according to an embodiment of the present invention, the contents of the above-described system may be applied. Therefore, with respect to the method, descriptions of contents identical to those of the above-described system are omitted.

한편, 본 발명의 일 실시 예에 의하면, 전술한 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다. 다시 말해서, 전술한 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터 판독 가능 매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 방법에서 사용된 데이터의 구조는 컴퓨터 판독 가능 매체에 여러 수단을 통하여 기록될 수 있다. 본 발명의 다양한 방법들을 수행하기 위한 실행 가능한 컴퓨터 프로그램이나 코드를 기록하는 기록 매체는, 반송파(carrier waves)나 신호들과 같이 일시적인 대상들은 포함하는 것으로 이해되지는 않아야 한다. 상기 컴퓨터 판독 가능 매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, DVD 등)와 같은 저장 매체를 포함할 수 있다.On the other hand, according to an embodiment of the present invention, it is possible to provide a recording medium readable by a computer recording a program for executing the above-described method on a computer. In other words, the method described above can be written in a program executable on a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable medium. Further, the structure of the data used in the above-described method can be recorded on a computer-readable medium through various means. A recording medium that records an executable computer program or code for performing various methods of the present invention should not be understood as including temporary objects such as carrier waves or signals. The computer-readable medium may include a storage medium such as a magnetic storage medium (eg, ROM, floppy disk, hard disk, etc.), optical read media (eg, CD-ROM, DVD, etc.).

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above description of the present invention is for illustration only, and those skilled in the art to which the present invention pertains can understand that the present invention can be easily modified into other specific forms without changing the technical spirit or essential features of the present invention. will be. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as distributed may be implemented in a combined form.

본 발명의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is indicated by the following claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and equivalent concepts should be interpreted to be included in the scope of the present invention. .

1: 토큰 아이디 정보 2: 게이트웨이 아이디 정보
3: IoT 노드 아이디 정보 4: 파라미터 값 e
5: 파라미터 값 x 6: 시그니처 값
10: 토큰
100: IoT 노드
200: 게이트웨이
1: Token ID information 2: Gateway ID information
3: IoT node ID information 4: parameter value e
5: parameter value x 6: signature value
10: token
100: IoT node
200: gateway

Claims (14)

토큰을 활용한 IoT 블록체인 시스템에 있어서,
IoT 환경에서의 장치 간의 인증을 위한 토큰의 발급을 요청하는 IoT 노드; 및
상기 IoT 노드의 요청에 따라 토큰 정보를 생성하고, 상기 토큰 정보에 기초하여 상기 IoT 노드에 대한 인증을 수행하는 게이트웨이를 포함하며,
상기 IoT 노드 및 게이트웨이에 대하여, 상기 IoT 노드는 게이트웨이로부터 수신한 토큰이 정당한 게이트웨이가 보낸 토큰인지 여부를 확인하고, 상기 게이트웨이는 정당한 IoT 노드가 토큰 발급을 요청하였는지 여부를 확인할 수 있도록, 일대일로 대응되는 비밀 파라미터 값을 공유하고,
복수개의 게이트웨이들은 블록체인 네트워크를 구성하며, 상기 복수개의 게이트웨이들은 상기 블록체인 네트워크를 통해 상기 토큰 정보를 공유하는 것을 특징으로 하는 IoT 블록체인 시스템.
In the IoT blockchain system using tokens,
An IoT node requesting the issuance of a token for authentication between devices in an IoT environment; And
It generates a token information according to the request of the IoT node, and includes a gateway for authenticating the IoT node based on the token information,
Regarding the IoT node and the gateway, the IoT node checks whether the token received from the gateway is a token sent by a legitimate gateway, and the gateway responds one-to-one so as to check whether a legitimate IoT node has requested to issue a token. Shared secret parameter values,
A plurality of gateways constitute a blockchain network, and the plurality of gateways share the token information through the blockchain network, an IoT blockchain system.
제 1 항에 있어서,
상기 IoT 노드는 상기 토큰의 발급을 요청하기 위해 난수값을 생성하고, 상기 난수값에 기반한 파라미터 값들을 포함하는 등록 요청 메시지를 생성하며,
상기 게이트웨이는 상기 등록 요청 메시지에 포함된 파라미터 값들을 분석함으로써, 상기 토큰 정보의 생성을 위한 IoT 노드의 인증을 수행하는 것을 특징으로 하는 IoT 블록체인 시스템.
According to claim 1,
The IoT node generates a random number value to request the issuance of the token, and generates a registration request message including parameter values based on the random number value,
The gateway is an IoT blockchain system characterized by performing authentication of an IoT node for generation of the token information by analyzing parameter values included in the registration request message.
제 1 항에 있어서,
상기 토큰 정보에는,
상기 발급된 토큰, IoT 노드 및 게이트웨이를 식별하기 위한 아이디 정보, 상기 IoT 노드 및 게이트웨이의 상호 인증을 위한 파라미터 값 및 상기 토큰을 발급한 게이트웨이를 보장하기 위한 시그니처 값이 포함되는 것을 특징으로 하는 IoT 블록체인 시스템.
According to claim 1,
In the token information,
IoT block characterized by including the issued token, ID information for identifying the IoT node and the gateway, parameter values for mutual authentication of the IoT node and the gateway, and a signature value for guaranteeing the gateway that issued the token. Chain system.
제 3 항에 있어서,
상기 토큰 정보를 생성한 게이트웨이는 상기 토큰 정보에 포함된 아이디 정보들, 파라미터 값들 및 시그니처 값과 상기 비밀 파라미터 값을 트랜잭션으로 생성하고, 상기 생성된 트랜잭션을 상기 블록체인 네트워크의 타 게이트웨이로 브로드캐스트(Broadcast)하는 것을 특징으로 하는 IoT 블록체인 시스템.
The method of claim 3,
The gateway that generated the token information generates ID information, parameter values and signature values and the secret parameter value included in the token information as a transaction, and broadcasts the generated transaction to other gateways of the blockchain network ( Broadcast) IoT blockchain system.
제 1 항에 있어서,
상기 IoT 노드는 상기 토큰 정보를 포함하는 인증 요청 메시지를 생성하여 상기 게이트웨이로 전송하고, 상기 게이트웨이는 상기 블록체인 네트워크를 통해 상기 토큰 정보를 검증하는 제 1 인증을 수행하며,
상기 제 1 인증이 완료되면, 상기 IoT 노드는 데이터 처리를 위한 데이터 메시지를 생성하여 상기 게이트웨이로 전송하고, 상기 게이트웨이는 상기 데이터 메시지에 기초하여 상기 제 1 인증이 완료된 IoT 노드인지 여부를 검증하는 제 2 인증을 수행하는 것을 특징으로 하는 IoT 블록체인 시스템.
According to claim 1,
The IoT node generates an authentication request message including the token information and transmits it to the gateway, and the gateway performs a first authentication to verify the token information through the blockchain network,
When the first authentication is completed, the IoT node generates a data message for data processing and transmits it to the gateway, and the gateway is configured to verify whether the first authentication is the completed IoT node based on the data message. 2 IoT blockchain system characterized by performing authentication.
제 5 항에 있어서,
상기 인증 요청 메시지의 생성 시, 상기 IoT 노드는 제 2 인증을 위한 세션 파라미터 값을 생성하기 위한 난수값을 생성하고,
상기 게이트웨이에 의해 상기 토큰 정보에 대한 검증이 완료되면, 상기 IoT 노드 및 게이트웨이 각각은 상기 난수값을 기초로 상기 세션 파라미터 값을 생성하는 것을 특징으로 하는 IoT 블록체인 시스템.
The method of claim 5,
When generating the authentication request message, the IoT node generates a random number value for generating a session parameter value for the second authentication,
When the verification of the token information is completed by the gateway, each of the IoT node and the gateway generates the session parameter value based on the random number value.
제 6 항에 있어서,
상기 게이트웨이는 상기 IoT 노드 및 게이트웨이에서 각각 생성된 세션 파라미터 값을 비교함으로써, 상기 제 1 인증이 완료된 IoT 노드인지 여부를 판단하는 것을 특징으로 하는 IoT 블록체인 시스템.
The method of claim 6,
The gateway is an IoT blockchain system characterized by determining whether the first authentication is an completed IoT node by comparing session parameter values generated by the IoT node and the gateway, respectively.
토큰을 활용한 IoT 블록체인 시스템을 이용한 다단계 인증 방법에 있어서,
IoT 노드가 게이트웨이로 IoT 환경에서의 장치 간의 인증을 위한 토큰의 발급을 요청하는 단계;
상기 게이트웨이가 상기 IoT 노드의 요청에 따라 토큰 정보를 생성하고, 상기 IoT 노드로 상기 생성된 토큰 정보를 전송하는 단계;
상기 IoT 노드가 상기 토큰 정보를 포함하는 인증 요청 메시지를 생성하여 상기 게이트웨이로 전송하고, 상기 게이트웨이는 블록체인 네트워크를 통해 상기 토큰 정보를 검증하는 제 1 인증을 수행하는 단계; 및
상기 제 1 인증이 완료되면, 상기 IoT 노드가 데이터 처리를 위한 데이터 메시지를 생성하여 상기 게이트웨이로 전송하고, 상기 게이트웨이는 상기 데이터 메시지에 기초하여 상기 제 1 인증이 완료된 IoT 노드인지 여부를 검증하는 제 2 인증을 수행하는 단계를 포함하되,
상기 IoT 노드 및 게이트웨이에 대하여, 상기 IoT 노드는 게이트웨이로부터 수신한 토큰이 정당한 게이트웨이가 보낸 토큰인지 여부를 확인할 수 있고, 상기 게이트웨이는 정당한 IoT 노드가 토큰 발급을 요청하였는지 여부를 확인할 수 있도록 일대일로 대응되는 비밀 파라미터 값을 공유하는 것을 특징으로 하는 다단계 인증 방법.
In the multi-level authentication method using the IoT blockchain system using tokens,
An IoT node requesting a gateway to issue a token for authentication between devices in an IoT environment;
Generating, by the gateway, token information at the request of the IoT node, and transmitting the generated token information to the IoT node;
Generating, by the IoT node, an authentication request message including the token information and transmitting it to the gateway, the gateway performing a first authentication verifying the token information through a blockchain network; And
When the first authentication is completed, the IoT node generates a data message for data processing and transmits it to the gateway, and the gateway is configured to verify whether the first authentication is the completed IoT node based on the data message. 2 including performing the authentication,
With respect to the IoT node and the gateway, the IoT node can check whether the token received from the gateway is a token sent by a legitimate gateway, and the gateway responds one-to-one to confirm whether a legitimate IoT node has requested to issue a token. Multi-factor authentication method characterized in that it shares the secret parameter value.
제 8 항에 있어서,
상기 토큰의 발급을 요청하는 단계에서는,
상기 IoT 노드가 상기 토큰의 발급을 요청하기 위해 난수값을 생성하고, 상기 난수값에 기반한 파라미터 값들을 포함하는 등록 요청 메시지를 생성하며,
상기 토큰 정보를 생성하고, 상기 토큰 정보를 전송하는 단계에서는,
상기 게이트웨이가 상기 등록 요청 메시지에 포함된 파라미터 값들을 분석함으로써, 상기 토큰 정보의 생성을 위한 IoT 노드의 인증을 수행하는 것을 특징으로 하는 다단계 인증 방법.
The method of claim 8,
In the step of requesting the issuance of the token,
The IoT node generates a random number value to request the issuance of the token, and generates a registration request message including parameter values based on the random number value,
In the step of generating the token information, and transmitting the token information,
A multi-step authentication method, characterized in that the gateway performs authentication of an IoT node for generation of the token information by analyzing parameter values included in the registration request message.
제 8 항에 있어서,
상기 토큰 정보에는,
상기 발급된 토큰, IoT 노드 및 게이트웨이를 식별하기 위한 아이디 정보, 상기 IoT 노드 및 게이트웨이의 상호 인증을 위한 파라미터 값 및 상기 토큰을 발급한 게이트웨이를 보장하기 위한 시그니처 값이 포함되는 것을 특징으로 하는 다단계 인증 방법.
The method of claim 8,
In the token information,
Multi-factor authentication characterized by including the issued token, ID information for identifying the IoT node and the gateway, parameter values for mutual authentication of the IoT node and the gateway, and a signature value for guaranteeing the gateway that issued the token. Way.
제 10 항에 있어서,
상기 토큰 정보를 생성하고, 상기 토큰 정보를 전송하는 단계에서는,
상기 토큰 정보를 생성한 게이트웨이가 상기 토큰 정보에 포함된 아이디 정보들, 파라미터 값들 및 시그니처 값과 상기 비밀 파라미터 값을 트랜잭션으로 생성하고, 상기 생성된 트랜잭션을 상기 블록체인 네트워크의 타 게이트웨이로 브로드캐스트(Broadcast)하는 것을 특징으로 하는 다단계 인증 방법.
The method of claim 10,
In the step of generating the token information, and transmitting the token information,
The gateway that generated the token information generates ID information, parameter values and signature values and the secret parameter value included in the token information as transactions, and broadcasts the generated transactions to other gateways of the blockchain network ( Broadcast) multi-factor authentication method.
제 8 항에 있어서,
상기 제 1 인증을 수행하는 단계에서는,
상기 인증 요청 메시지의 생성 시, 상기 IoT 노드가 제 2 인증을 위한 세션 파라미터 값을 생성하기 위한 난수값을 생성하고,
상기 게이트웨이에 의해 상기 토큰 정보에 대한 검증이 완료되면, 상기 IoT 노드 및 게이트웨이 각각은 상기 난수값을 기초로 상기 세션 파라미터 값을 생성하는 것을 특징으로 하는 다단계 인증 방법.
The method of claim 8,
In the step of performing the first authentication,
When generating the authentication request message, the IoT node generates a random number value for generating a session parameter value for the second authentication,
When verification of the token information is completed by the gateway, each of the IoT node and the gateway generates the session parameter value based on the random number value.
제 12 항에 있어서,
상기 제 2 인증을 수행하는 단계에서는,
상기 게이트웨이가 상기 IoT 노드 및 게이트웨이에서 각각 생성된 세션 파라미터 값을 비교함으로써, 상기 제 1 인증이 완료된 IoT 노드인지 여부를 판단하는 것을 특징으로 하는 다단계 인증 방법.
The method of claim 12,
In the step of performing the second authentication,
A multi-step authentication method characterized in that the gateway determines whether the first authentication has been completed by comparing the session parameter values generated by the IoT node and the gateway, respectively.
제 8 항 내지 제 13 항 중 어느 한 항의 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
A computer-readable recording medium in which a program for implementing the method of any one of claims 8 to 13 is recorded.
KR1020190005767A 2019-01-16 2019-01-16 Internet of things blockchain system using token and multi-phase authentication method usign the system KR102135727B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190005767A KR102135727B1 (en) 2019-01-16 2019-01-16 Internet of things blockchain system using token and multi-phase authentication method usign the system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190005767A KR102135727B1 (en) 2019-01-16 2019-01-16 Internet of things blockchain system using token and multi-phase authentication method usign the system

Publications (1)

Publication Number Publication Date
KR102135727B1 true KR102135727B1 (en) 2020-07-20

Family

ID=71831764

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190005767A KR102135727B1 (en) 2019-01-16 2019-01-16 Internet of things blockchain system using token and multi-phase authentication method usign the system

Country Status (1)

Country Link
KR (1) KR102135727B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150112361A (en) * 2014-03-27 2015-10-07 한국전자통신연구원 Method for setting sensor node and setting security in sensor network, and sensor network system including the same
KR20170017455A (en) * 2015-08-07 2017-02-15 주식회사 엘지씨엔에스 Mutual authentication method between mutual authentication devices based on session key and token, mutual authentication devices
KR20180046777A (en) * 2016-10-28 2018-05-09 목포대학교산학협력단 The method and apparatus for providing service based on capability token in internet of things environment
KR20180066693A (en) 2016-12-09 2018-06-19 (주)포스트미디어 SYSTEM FOR COMMUNICATION USING INTERNET of THINGS
WO2018234990A1 (en) * 2017-06-20 2018-12-27 nChain Holdings Limited System and method of multi-round token distribution using a blockchain network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150112361A (en) * 2014-03-27 2015-10-07 한국전자통신연구원 Method for setting sensor node and setting security in sensor network, and sensor network system including the same
KR20170017455A (en) * 2015-08-07 2017-02-15 주식회사 엘지씨엔에스 Mutual authentication method between mutual authentication devices based on session key and token, mutual authentication devices
KR20180046777A (en) * 2016-10-28 2018-05-09 목포대학교산학협력단 The method and apparatus for providing service based on capability token in internet of things environment
KR20180066693A (en) 2016-12-09 2018-06-19 (주)포스트미디어 SYSTEM FOR COMMUNICATION USING INTERNET of THINGS
WO2018234990A1 (en) * 2017-06-20 2018-12-27 nChain Holdings Limited System and method of multi-round token distribution using a blockchain network

Similar Documents

Publication Publication Date Title
Javaid et al. Blockpro: Blockchain based data provenance and integrity for secure iot environments
CN111429254B (en) Business data processing method and device and readable storage medium
US20220245724A1 (en) Securing distributed electronic wallet shares
US11386420B2 (en) Contextual authentication of an electronic wallet
Yavari et al. An improved blockchain-based authentication protocol for IoT network management
CN110569674B (en) Authentication method and device based on block chain network
Zhang et al. Emerging security threats and countermeasures in IoT
US20190034919A1 (en) Securing Electronic Wallet Transactions
US20190034917A1 (en) Tracking an Electronic Wallet Using Radio Frequency Identification (RFID)
CN113194469B (en) 5G unmanned aerial vehicle cross-domain identity authentication method, system and terminal based on block chain
KR102580509B1 (en) Computer-implemented system and method enabling secure storage of large-scale blockchains through multiple storage nodes
CN110288480B (en) Private transaction method and device for blockchain
Zhong et al. Distributed blockchain‐based authentication and authorization protocol for smart grid
CN109359464B (en) Wireless security authentication method based on block chain technology
JP7440026B2 (en) Decentralized authentication method
CN111539718B (en) Block chain cross-chain identity authentication method based on side chain
US20200244457A1 (en) Blockchain intelligent security implementation
Kumar et al. Design of peer-to-peer protocol with sensible and secure IoT communication for future internet architecture
Xu et al. Authentication-based vehicle-to-vehicle secure communication for VANETs
Puthal et al. Decision tree based user-centric security solution for critical IoT infrastructure
CN111339509A (en) Block chain cross-chain identity authentication method based on side chain
Hussain et al. An efficient and reliable user access protocol for Internet of Drones
Liou et al. T-auth: A novel authentication mechanism for the IoT based on smart contracts and PUFs
US11240661B2 (en) Secure simultaneous authentication of equals anti-clogging mechanism
US20230254302A1 (en) Authentication of device in network using cryptographic certificate

Legal Events

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