KR102295471B1 - METHOD AND SYSTEM FOR AUTHENTICATING TOKEN FOR IoT DEVICE BASED ON PRIVATE BLOCKCHAIN - Google Patents

METHOD AND SYSTEM FOR AUTHENTICATING TOKEN FOR IoT DEVICE BASED ON PRIVATE BLOCKCHAIN Download PDF

Info

Publication number
KR102295471B1
KR102295471B1 KR1020190166115A KR20190166115A KR102295471B1 KR 102295471 B1 KR102295471 B1 KR 102295471B1 KR 1020190166115 A KR1020190166115 A KR 1020190166115A KR 20190166115 A KR20190166115 A KR 20190166115A KR 102295471 B1 KR102295471 B1 KR 102295471B1
Authority
KR
South Korea
Prior art keywords
user
authentication
end unit
request
api
Prior art date
Application number
KR1020190166115A
Other languages
Korean (ko)
Other versions
KR20210074938A (en
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 KR1020190166115A priority Critical patent/KR102295471B1/en
Publication of KR20210074938A publication Critical patent/KR20210074938A/en
Application granted granted Critical
Publication of KR102295471B1 publication Critical patent/KR102295471B1/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/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • 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/133Protocols for remote procedure calls [RPC]
    • H04L67/2814
    • H04L67/40
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • 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

Abstract

본 개시는, 프라이빗 블록체인 기반 IoT 디바이스의 토큰 인증 및 인가 시스템을 제공한다. 이 시스템은, 사용자 단말기로부터 입력된 사용자 등록 요청, 사용자 인증 요청 및 디바이스 인증 요청 중 적어도 하나를 수신하고, 상기 요청의 실행 결과를 출력하는 사용자 인터페이스를 포함하는 프론트엔드부, 및 상기 프론트엔드부로부터 상기 요청을 수신하여, 사용자 등록, 사용자 인증 및 디바이스 인증 중 적어도 하나를 실행하는 백엔드부를 포함한다. 상기 백엔드부는, 사용자 등록, 사용자 인증 및 디바이스 인증을 실행할 수 있는 스마트 컨트랙트를 포함하는 복수의 블록체인 노드, 및 상기 사용자 등록, 사용자 인증 및 디바이스 인증의 실행을 위한 API(application programming interface)를 제공하는 API 노드를 포함하며, 상기 API 노드는, 상기 요청에 응답하여, 상기 API를 이용하여 상기 사용자 등록, 사용자 인증 및 디바이스 인증 중 적어도 하나의 실행 결과를 제공한다.The present disclosure provides a token authentication and authorization system for a private blockchain-based IoT device. The system includes a front-end unit including a user interface for receiving at least one of a user registration request, a user authentication request, and a device authentication request inputted from a user terminal, and outputting a result of executing the request, and from the front-end unit and a backend unit that receives the request and executes at least one of user registration, user authentication, and device authentication. The backend unit provides a plurality of blockchain nodes including a smart contract capable of executing user registration, user authentication and device authentication, and an API (application programming interface) for executing the user registration, user authentication and device authentication. an API node, wherein, in response to the request, the API node provides an execution result of at least one of the user registration, user authentication, and device authentication using the API.

Description

프라이빗 블록체인 기반 IoT 디바이스의 토큰 인증 및 인가 방법 및 시스템{METHOD AND SYSTEM FOR AUTHENTICATING TOKEN FOR IoT DEVICE BASED ON PRIVATE BLOCKCHAIN}Token authentication and authorization method and system for private blockchain-based IoT devices

본 발명은 프라이빗 블록체인 기반의 IoT 디바이스의 토큰 인증 및 인가 방법 시스템에 관한 것으로, 보다 구체적으로, 분산 원장에 기반하여 사용자 등록 및 인증을 실행하고, 인증 및 등록된 사용자 정보에 기초하여 IoT 디바이스 및 플랫폼에 대한 인증서를 발행하는 방법 및 시스템에 관한 것이다.The present invention relates to a token authentication and authorization method system for a private blockchain-based IoT device, and more specifically, to execute user registration and authentication based on a distributed ledger, and to an IoT device and an IoT device based on authentication and registered user information A method and system for issuing a certificate for a platform.

블록체인(blockchain) 기술은, 네트워크 통신상에서 이루어지는 거래내용을 신뢰성 있고 안전한 방법으로 기록하고 저장하는 기술이다. 블록체인 네트워크는, 디지털화된 자산이나 거래내역(transaction)의 교환이 가능한 분산 환경의 시스템으로, 공유된 장부(ledger)를 이용하여 P2P(peer-to-peer) 네트워크에서 발생되는 전자적 거래 내역의 이력을 기록한다. 블록체인 네트워크는 탈중앙화된 또는 분산된 합의 프로토콜(decentralized consensus mechanism)을 이용한다. 특히, 네트워크 상의 모든 검증 노드(validating node)는 동일한 거래내역에 대해 동일한 (또는 합의된) 합의 알고리즘을 실행함으로써 그 거래내역을 승인(또는 비승인)한다. 블록체인 P2P 네트워크는, 이러한 탈중앙화된 구조와 합의 알고리즘을 이용하기 때문에, 제3자에 의한 거래내역의 위변조가 사실상 불가능하게 되어, 거래 내역의 신뢰성과 투명성을 보장할 수 있다.Blockchain technology is a technology that records and stores transaction details made over network communication in a reliable and secure way. A blockchain network is a system in a distributed environment that allows the exchange of digitized assets or transactions, and uses a shared ledger to record electronic transaction history generated in a peer-to-peer (P2P) network. record Blockchain networks use a decentralized or decentralized consensus mechanism. In particular, all validating nodes on the network approve (or disapprove) the transaction by executing the same (or agreed upon) consensus algorithm on the same transaction. Since the blockchain P2P network uses such a decentralized structure and consensus algorithm, it is virtually impossible to forge or falsify the transaction details by a third party, thereby guaranteeing the reliability and transparency of the transaction details.

블록체인은, 일반 사용자들에게 공개된 퍼블릭 블록체인(public blockchain)과 한정된 사용자들만 엑세스 가능한 프라이빗 블록체인(private blockchain)으로 구분될 수 있다. 일반적으로, 퍼블릭 블록체인은 규모가 크고 블록 생성과 참조에 많은 비용과 시간이 소요되는 문제점이 있다. 이러한 문제점을 해소하기 위해, 제한된 수의 노드에 의한 거래만 기록되어 속도가 빠르고 수수료가 발생되지 않는 프라이빗 블록체인을 사용하기도 한다.The blockchain can be divided into a public blockchain that is open to general users and a private blockchain that can only be accessed by limited users. In general, public blockchains are large and have a problem that it takes a lot of time and money to create and reference blocks. In order to solve this problem, only transactions by a limited number of nodes are recorded, so a private blockchain is used that is fast and does not generate fees.

한편, 사물 인터넷(IoT, Internet of Thing)은 사물 또는 그 주변의 데이터를 센서 등과 같은 제한된 리소스를 갖는 장치를 이용하여 수집하고, 수집된 데이터를 무선 네트워크를 통해 송수신하는 기술이나 환경을 말하며, 여러 분야에 적용되어 사용되고 있다. 예를 들어, IoT 디바이스와 플랫폼은, 스마트 공장, 의료 시설, 자율주행 자동차, 금융 결제 서비스 등과 같이 다양한 분야에서 주변 데이터를 수집 및 분석하여 특정 서비스를 제공하는 목적으로 사용될 수 있다.On the other hand, the Internet of Things (IoT) refers to a technology or environment that collects data of objects or their surroundings using devices with limited resources such as sensors, and transmits and receives the collected data through a wireless network. applied and used in the field. For example, IoT devices and platforms may be used for the purpose of providing specific services by collecting and analyzing surrounding data in various fields such as smart factories, medical facilities, autonomous vehicles, and financial payment services.

하지만 IoT 디바이스와 플랫폼이 개방된 인터넷망과 같은 무선 네트워크에 연결되는 경우, 네트워크에 연결된 IoT 디바이스는 악의적인 공격의 대상이 될 수 있다. 따라서, 사물 인터넷에 연결된 디바이스들의 보안 문제를 해결하기 위해 IoT 디바이스 및 사용자의 인증 및 등록이 필요할 수 있다. However, when IoT devices and platforms are connected to a wireless network such as an open Internet network, IoT devices connected to the network can be targeted for malicious attacks. Accordingly, authentication and registration of IoT devices and users may be required to solve security problems of devices connected to the Internet of Things.

IoT 디바이스 및 플랫폼은, 사물이나 그 주변 데이터를 수집하고 분석하여 특정 서비스(예를 들어, 빅데이터 분석, 스마트 공장 및 자동차의 제어, 의료 기기의 동작 분석과 모니터링 등)를 제공하기 위해 사용된다. 그러나, 인터넷과 같이 개방된 무선 네트워크에 연결된 IoT 디바이스와 플랫폼은, 해킹과 같은 외부 공격에 대한 보안 취약점을 가질 수 있으며, IoT 플랫폼을 통한 디바이스의 등록 및 인증과 이를 위한 관리자 또는 사용자의 권한 확인 및 인증 절차를 안전하게 실행할 수 있는 방법이 필요하다. IoT devices and platforms are used to provide specific services (eg, big data analysis, smart factory and vehicle control, operation analysis and monitoring of medical devices, etc.) by collecting and analyzing data of objects or their surroundings. However, IoT devices and platforms connected to an open wireless network such as the Internet may have security vulnerabilities against external attacks such as hacking, and device registration and authentication through the IoT platform and authorization of an administrator or user for this purpose and We need a way to safely execute the authentication process.

본 개시는, 위와 같은 종래기술의 문제점을 해결하기 위해, IoT 플랫폼에서 디바이스의 등록 및 인증과 이를 위한 관리자 또는 사용자의 권한 확인 및 인증 절차를 프라이빗 블록체인을 이용하여 실행할 수 있는 방법 및 시스템을 제공한다.In order to solve the problems of the prior art, the present disclosure provides a method and system for registering and authenticating a device in an IoT platform and executing an administrator or user's authorization check and authentication procedure for this using a private block chain do.

본 개시의 일 실시예에 따르면, 프라이빗 블록체인 기반 IoT 디바이스의 토큰 인증 및 인가 시스템은, 사용자 단말기로부터 입력된 사용자 등록 요청, 사용자 인증 요청 및 디바이스 인증 요청 중 적어도 하나를 수신하고, 상기 요청의 실행 결과를 출력하는 사용자 인터페이스를 포함하는 프론트엔드부; 및 상기 프론트엔드부로부터 상기 요청을 수신하여, 사용자 등록, 사용자 인증 및 디바이스 인증 중 적어도 하나를 실행하는 백엔드부를 포함하며, 상기 백엔드부는, 사용자 등록, 사용자 인증 및 디바이스 인증을 실행할 수 있는 스마트 컨트랙트를 포함하는 복수의 블록체인 노드, 및 상기 사용자 등록, 사용자 인증 및 디바이스 인증의 실행을 위한 API(application programming interface)를 제공하는 API 노드를 포함하며, 상기 API 노드는, 상기 요청에 응답하여, 상기 API를 이용하여 상기 사용자 등록, 사용자 인증 및 디바이스 인증 중 적어도 하나의 실행 결과를 제공한다.According to an embodiment of the present disclosure, the token authentication and authorization system of the private blockchain-based IoT device receives at least one of a user registration request, a user authentication request, and a device authentication request input from a user terminal, and executes the request a front-end unit including a user interface for outputting a result; and a back-end unit that receives the request from the front-end unit and executes at least one of user registration, user authentication, and device authentication, wherein the back-end unit includes a smart contract capable of executing user registration, user authentication, and device authentication. A plurality of blockchain nodes comprising: an API node providing an API (application programming interface) for executing the user registration, user authentication, and device authentication, wherein the API node is is used to provide execution results of at least one of the user registration, user authentication, and device authentication.

본 개시의 다른 실시예에 따르면, 프라이빗 블록체인 기반 IoT 디바이스의 토큰 인증 및 인가 방법은, 프론트엔드부에 의해, 사용자 단말기로부터 입력된 사용자 등록 요청, 사용자 인증 요청 및 디바이스 인증 요청 중 적어도 하나를 수신하는 단계; 백엔드부에 의해, 상기 프론트엔드부로부터 상기 요청을 수신하면, 사용자 등록, 사용자 인증 및 디바이스 인증 중 적어도 하나를 실행하는 단계를 포함하며, 상기 백엔드부는, 사용자 등록, 사용자 인증 및 디바이스 인증을 실행할 수 있는 스마트 컨트랙트를 포함하는 복수의 블록체인 노드, 및 상기 사용자 등록, 사용자 인증 및 디바이스 인증의 실행을 위한 API(application programming interface)를 제공하는 API 노드를 포함한다.According to another embodiment of the present disclosure, in a token authentication and authorization method of a private blockchain-based IoT device, receiving at least one of a user registration request, a user authentication request, and a device authentication request input from a user terminal by a front-end unit to do; and executing, by the backend unit, at least one of user registration, user authentication, and device authentication when receiving the request from the frontend unit, wherein the backend unit may execute user registration, user authentication and device authentication It includes a plurality of blockchain nodes including smart contracts, and an API node that provides an application programming interface (API) for executing the user registration, user authentication, and device authentication.

본 개시의 다양한 실시예들에 따르면, 제한된 사용자에게 접근 권한이 주어지는 프라이빗 블록체인을 이용하여 IoT 플랫폼에서 디바이스의 등록 및 인증과 이를 위한 관리자 또는 사용자의 권한 확인 및 인증 절차를 실행함으로써, IoT 플랫폼의 보안성과 안전성이 개선될 수 있다.According to various embodiments of the present disclosure, by executing the registration and authentication of a device in the IoT platform using a private block chain in which access rights are given to a restricted user, and an administrator or user authorization check and authentication procedure for this, the IoT platform Security and safety can be improved.

도 1은 본 개시의 일 실시예에 따른 프라이빗 블록체인 기반 IoT 디바이스의 토큰 인증 및 인가 시스템의 구성을 나타내는 도면이다.
도 2는 본 개시의 일 실시예에 따른 프라이빗 블록체인 기반 IoT 디바이스의 토큰 인증 및 인가 시스템에서 구성요소들 사이의 통신 방법을 나타내는 도면이다.
도 3은 본 개시의 일 실시예에 따른 프라이빗 블록체인 노드의 구성을 나타내는 도면이다.
도 4는 본 개시의 일 실시예에 따른 프라이빗 블록체인 기반 IoT 디바이스의 토큰 인증 및 인가 시스템의 상세구성을 나타내는 도면이다.
도 5는 본 개시의 일 실시예에 따른 프라이빗 블록체인 기반 IoT 디바이스의 토큰 인증 및 인가 시스템에서의 사용자 및 디바이스 인증 및 제어 절차를 나타내는 도면이다.
도 6은 본 개시의 일 실시예에 따른 프라이빗 블록체인 기반 IoT 디바이스의 토큰 인증 및 인가 시스템에서의 사용자 등록 방법을 나타내는 도면이다.
도 7은 본 개시의 일 실시예에 따른 프라이빗 블록체인 기반 IoT 디바이스의 토큰 인증 및 인가 시스템에서의 사용자 인증 방법을 나타내는 도면이다.
도 8은 본 개시의 일 실시예에 따른 프라이빗 블록체인 기반 IoT 디바이스의 토큰 인증 및 인가 시스템에서의 IoT 디바이스 또는 플랫폼의 인증 방법을 나타내는 도면이다.
1 is a diagram illustrating the configuration of a token authentication and authorization system of a private blockchain-based IoT device according to an embodiment of the present disclosure.
2 is a diagram illustrating a communication method between components in a token authentication and authorization system of a private blockchain-based IoT device according to an embodiment of the present disclosure.
3 is a diagram illustrating the configuration of a private blockchain node according to an embodiment of the present disclosure.
4 is a diagram illustrating a detailed configuration of a token authentication and authorization system of a private blockchain-based IoT device according to an embodiment of the present disclosure.
5 is a diagram illustrating a user and device authentication and control procedure in a token authentication and authorization system of a private blockchain-based IoT device according to an embodiment of the present disclosure.
6 is a diagram illustrating a user registration method in a token authentication and authorization system of a private blockchain-based IoT device according to an embodiment of the present disclosure.
7 is a diagram illustrating a user authentication method in a token authentication and authorization system of a private blockchain-based IoT device according to an embodiment of the present disclosure.
8 is a diagram illustrating an authentication method of an IoT device or platform in a token authentication and authorization system of a private blockchain-based IoT device according to an embodiment of the present disclosure.

이하, 본 개시의 실시를 위한 구체적인 내용을 첨부된 도면을 참조하여 상세히 설명한다. 다만, 이하의 설명에서는 본 개시의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다. Hereinafter, specific contents for carrying out the present disclosure will be described in detail with reference to the accompanying drawings. However, in the following description, if there is a risk of unnecessarily obscuring the subject matter of the present disclosure, detailed descriptions of well-known functions or configurations will be omitted.

첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응하는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다. In the accompanying drawings, identical or corresponding components are assigned the same reference numerals. In addition, in the description of the embodiments below, overlapping description of the same or corresponding components may be omitted. However, even if descriptions regarding components are omitted, it is not intended that such components are not included in any embodiment.

개시된 실시예의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다.Advantages and features of the disclosed embodiments, and methods of achieving them, will become apparent with reference to the embodiments described below in conjunction with the accompanying drawings. However, the present disclosure is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only the present embodiments allow the present disclosure to be complete, and those of ordinary skill in the art to which the present disclosure pertains. It is only provided to fully inform the person of the scope of the invention.

본 개시에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시예에 대해 구체적으로 설명하기로 한다. Terms used in the present disclosure will be briefly described, and the disclosed embodiments will be described in detail.

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

본 개시에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다. 또한 복수의 표현은 문맥상 명백하게 복수인 것으로 특정하지 않는 한, 단수의 표현을 포함한다.Expressions in the singular in this disclosure include plural expressions unless the context clearly dictates the singular. Also, the plural expression includes the singular expression unless the context clearly dictates the plural.

본 개시의 전체에서 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. In the context of the present disclosure, when a part 'includes' a certain component, it means that other components may be further included, rather than excluding other components, unless otherwise stated.

본 개시에서, 용어 '모듈(module)' 또는 '부'(part 또는 portion)은 소프트웨어 구성요소, 하드웨어 구성요소 또는 이들의 조합을 의미하며, '모듈' 또는 '부'는 특정 역할이나 기능을 수행하기 위해 구성될 수 있다. 그렇지만 '모듈' 또는 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '모듈' 또는 '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 따라서, 일 예로서 '모듈' 또는 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 본 개시에서 설명되는 구성요소들과 '모듈' 또는 '부'들은 그 내부에서 제공되는 기능은 더 작은 수의 구성요소들 및 '모듈' 또는 '부'들로 결합되거나 추가적인 구성요소들과 '모듈' 또는 '부'들로 더 분리될 수 있다.In the present disclosure, the term 'module' or 'part' (part or portion) means a software component, a hardware component, or a combination thereof, and 'module' or 'unit' performs a specific role or function can be configured to However, 'module' or 'unit' is not meant to be limited to software or hardware. A 'module' or 'unit' may be configured to reside in an addressable storage medium, or may be configured to execute one or more processors. Thus, as an example, 'module' or 'unit' refers to components such as software components, object-oriented software components, class components and task components, processes, functions, properties, Includes procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables. Components and 'modules' or 'units' described in the present disclosure may be combined with a smaller number of components and 'modules' or 'units', or additional components and 'modules' ' or 'parts'.

본 개시에서의 용어 '프라이빗 블록체인(private blockchain)'은, 일반 사용자들이 제한없이 접근 가능한 퍼블릭 블록체인(public blockchain)과 대비되는 것으로, 한정된 사용자들에게만 접근 권한이 주어지는 블록체인 네트워크 또는 플랫폼을 지칭할 수 있다. 또한, '블록체인 플랫폼(blockchain platform)'은 하나 이상의 블록체인 노드들이 네트워크로 연결되어 구성된 블록체인 네트워크를 지칭할 수 있다. 예를 들어, 블록체인 플랫폼은 블록체인 네트워크에 의해 사용자 또는 IoT 디바이스의 등록 및 삭제, 인증 및 인가, 제어 등의 기능의 적어도 일부를 실행하는 시스템을 나타낼 수 있다.In the present disclosure, the term 'private blockchain' refers to a blockchain network or platform in which access is granted only to limited users, as opposed to a public blockchain that general users can access without restrictions. can do. In addition, a 'blockchain platform' may refer to a blockchain network composed of one or more blockchain nodes connected by a network. For example, a blockchain platform may represent a system that executes at least some of functions such as registration and deletion of users or IoT devices, authentication and authorization, and control by a blockchain network.

본 개시에서, 'IoT 디바이스' 또는 '디바이스'는 사물 인터넷에 연결되어 환경 데이터를 수집, 처리 및 전송하는 센서, 휴대용 컴퓨터, 웨어러블 컴퓨터 등과 같은 경량의 하드웨어 장치를 지칭할 수 있다. 예를 들어, 디바이스는 스마트 홈, 스마트 팩토리, 스마트 시티에 설치되어 주변의 다양한 환경 데이터 (예를 들어, 온도, 습도, 소음, 영상 데이터 등)를 센싱하고 수집하여 네트워크를 통해 IoT 플랫폼에 전송하는 컴퓨팅 장치를 포함할 수 있으나, 이에 한정되는 것은 아니다.In the present disclosure, an 'IoT device' or a 'device' may refer to a lightweight hardware device such as a sensor, a portable computer, a wearable computer, etc. that is connected to the Internet of Things to collect, process, and transmit environmental data. For example, a device is installed in a smart home, smart factory, or smart city to sense and collect various surrounding environmental data (e.g., temperature, humidity, noise, image data, etc.) and transmit it to the IoT platform through the network. It may include, but is not limited to, a computing device.

본 개시에서 'IoT 플랫폼'은 디바이스들의 하드웨어 연결, 디바이스들 사이의 통신 프로토콜 처리, 디바이스 및 사용자용 보안과 인증 제공, 디바이스들이 수집하는 데이터의 취합, 분석 및 시각화, 이상의 기능을 다른 웹 서비스와 통합하는 기능을 실행할 수 있는 소프트웨어, 미들웨어, 펌웨어, 하드웨어 또는 이들의 결합을 의미할 수 있다.In the present disclosure, the 'IoT platform' integrates the functions of hardware connection of devices, communication protocol processing between devices, providing security and authentication for devices and users, collection, analysis and visualization of data collected by devices, and other functions with other web services. It may mean software, middleware, firmware, hardware, or a combination thereof that can execute a function.

본 개시에서, '시스템'은 하나 이상의 IoT 디바이스, IoT 플랫폼, 블록체인 네트워크 또는 이들 중 어느 하나 이상이 결합된 형태를 포함하는 구성을 지칭할 수 있으며, 예를 들어, 하나 이상의 컴퓨팅 장치, 서버 장치, 또는 클라우드 서비스를 제공하는 분산된 컴퓨팅 장치를 지칭할 수 있으나, 이에 한정되는 것은 아니다.In the present disclosure, a 'system' may refer to a configuration including one or more IoT devices, IoT platforms, block chain networks, or a combination of any one or more thereof, for example, one or more computing devices, server devices , or may refer to a distributed computing device that provides a cloud service, but is not limited thereto.

도 1은 본 개시의 일 실시예에 따른 프라이빗 블록체인 기반 IoT 디바이스의 토큰 인증 및 인가 시스템의 구성을 나타내는 도면이다.1 is a diagram showing the configuration of a token authentication and authorization system of a private blockchain-based IoT device according to an embodiment of the present disclosure.

도시된 바와 같이, 시스템(100)은 사용자 단말기(110), IoT 플랫폼(120), 블록체인 플랫폼(130) 및 복수의 IoT 디바이스(140)를 포함할 수 있다. 사용자 단말기(110)는 시스템(100) 또는 이 시스템(100)에 연결된 IoT 디바이스들(140)을 사용, 모니터링 및 관리하는 사용자 또는 관리자가 이용하는 컴퓨팅 장치일 수 있다. 예를 들어, 사용자 단말기(110)는, 스마트폰, 테블릿 PC, 데스트탑 PC, 랩탑 PC 등과 같은 컴퓨팅 장치일 수 있으나, 이에 한정되는 것은 아니다. 사용자 단말기(110)는 IoT 플랫폼(120) 또는 블록체인 플랫폼(130)과 HTTP 통신 프로토콜을 통해 연결될 수 있으며, 웹 기반 사용자 인터페이스를 통해 사용자 및 디바이스 등록 및 인증 요청을 입력하거나 그 결과를 수신할 수 있다.As shown, the system 100 may include a user terminal 110 , an IoT platform 120 , a blockchain platform 130 , and a plurality of IoT devices 140 . The user terminal 110 may be a computing device used by a user or an administrator who uses, monitors, and manages the system 100 or the IoT devices 140 connected to the system 100 . For example, the user terminal 110 may be a computing device such as a smart phone, a tablet PC, a desktop PC, a laptop PC, and the like, but is not limited thereto. The user terminal 110 may be connected to the IoT platform 120 or the blockchain platform 130 through an HTTP communication protocol, and may input user and device registration and authentication requests through a web-based user interface or receive the result. have.

일 실시예에서, 사용자 단말기(110)는 사용자(예를 들어, IoT 디바이스 관리자)의 인증 및 인가를 위한 사용자 인터페이스의 제공, IoT 디바이스의 추가 및 제어와 같은 디바이스 관리 인터페이스의 제공, IoT 디바이스가 수집한 데이터의 모니터링 및 검색, 응용 애플리케이션 제작을 위한 oneM2M 표준을 만족하는 API 제공 등의 기능을 제공할 수 있다.In an embodiment, the user terminal 110 provides a user interface for authentication and authorization of a user (eg, an IoT device manager), provides a device management interface such as addition and control of an IoT device, and an IoT device collects It can provide functions such as monitoring and retrieval of one data, and providing an API that meets the oneM2M standard for application creation.

IoT 플랫폼(120)은, IoT 디바이스(140)과 같은 IoT 자원들의 연결 및 관리 기능을 제공할 수 있다. 일 실시예에서, IoT 플랫폼(120)은 IoT 디바이스들(140)을 통해 수집된 데이터의 수정, 삭제, 분석, 공유 등의 관리 기능, IoT 프로토콜(예를 들어, MQTT(Message Queuing Telemetry Transport), CoAP(Constrained Application Protocol)과 같은 경량 메시지 프로토콜, HTTP 프로토콜 등)을 통한 데이터의 통신 지원, IoT 보안 기능, oneM2M 표준을 만족하는 API를 통한 IoT 플랫폼의 인터페이스 제공 기능 등을 제공할 수 있다.The IoT platform 120 may provide a function of connecting and managing IoT resources such as the IoT device 140 . In an embodiment, the IoT platform 120 includes a management function such as modification, deletion, analysis, and sharing of data collected through the IoT devices 140, an IoT protocol (eg, MQTT (Message Queuing Telemetry Transport), It can provide data communication support through lightweight message protocol such as CoAP (Constrained Application Protocol), HTTP protocol, etc.), IoT security function, and IoT platform interface provision function through API that satisfies oneM2M standard.

블록체인 플랫폼(130)은, 복수의 블록체인 노드들이 상호 연결되어 구성된 블록체인 네트워크를 포함할 수 있다. 예를 들어, 복수의 블록체인 노드들은 피투피(peer-to-peer) 네트워크 형태로 연결될 수 있으며, 여기서 네트워크는 Wi-fi 등과 같은 무선 네트워크, LAN과 같은 유선 네트워크 또는 이들의 조합을 포함할 수 있다. The blockchain platform 130 may include a blockchain network in which a plurality of blockchain nodes are interconnected. For example, a plurality of blockchain nodes may be connected in the form of a peer-to-peer network, where the network may include a wireless network such as Wi-fi, a wired network such as a LAN, or a combination thereof. .

일 실시예에서 블록체인 플랫폼(130)은, 블록체인 네트워크를 통한 사용자 및 디바이스의 인증 및 인가, 권한 설정, 접근 제어 등의 기능을 제공할 수 있다. 또한, 블록체인 플랫폼(130)은, 사용자 계정 상태의 저장 및 추적, 해킹 방지 등과 같은 보안 기능을 제공할 수도 있다. 예를 들어, 블록체인 플랫폼(130)은, 사용자의 회원 가입 시 API 노드를 통해 메인 인증의 요청을 전송하고 SMTP를 통해 인증 코드를 메일로 전송할 수 있다. 또한, 블록체인 플랫폼(130)은 API 노드로써 프론트엔드(front-end)의 기능들(예를 들어, 사용자 회원 가입, 사용자 로그인, IoT 디바이스 및 플랫폼의 추가 및 제어 등)에 대한 요청을 처리할 수 있다. 또한, 블록체인 플랫폼(130)은 사용자 단말기(110)가 IoT 디바이스 및 플랫폼의 추가 및 제어 등 관리를 위한 요청 전송을 위해 API 서버에 접속할 수 있도록 API(application programming interface)를 제공할 수 있다.In one embodiment, the block chain platform 130 may provide functions such as authentication and authorization of users and devices through a block chain network, authority setting, access control, and the like. In addition, the blockchain platform 130 may provide security functions such as storage and tracking of user account status, and prevention of hacking. For example, the blockchain platform 130 may transmit a request for main authentication through an API node when a user joins a membership, and may transmit an authentication code by mail through SMTP. In addition, as an API node, the blockchain platform 130 may process requests for front-end functions (eg, user membership registration, user login, addition and control of IoT devices and platforms, etc.). can In addition, the blockchain platform 130 may provide an application programming interface (API) so that the user terminal 110 can access the API server to transmit a request for management such as addition and control of IoT devices and platforms.

IoT 디바이스(140)는, 환경 데이터를 획득, 수집, 저장 및 전송할 수 있는 입출력 장치, 메모리 및 프로세서를 포함하는 경량 하드웨어 장치일 수 있다. IoT 디바이스(140)은 디바이스의 하드웨어적 특성을 활용한 물리적 복제불가 기능(physically unclonable function)을 이용하여 디바이스 고유의 특성값(즉, 디바이스 DNA)을 획득하는 기능을 포함할 수 있다.The IoT device 140 may be a lightweight hardware device including an input/output device capable of acquiring, collecting, storing, and transmitting environmental data, a memory, and a processor. The IoT device 140 may include a function of acquiring a device-specific characteristic value (ie, device DNA) using a physically unclonable function utilizing the hardware characteristic of the device.

도 2는 본 개시의 일 실시예에 따른 프라이빗 블록체인 기반 IoT 디바이스의 토큰 인증 및 인가 시스템에서 구성요소들 사이의 통신 방법을 나타내는 도면이다.2 is a diagram illustrating a communication method between components in a token authentication and authorization system of a private blockchain-based IoT device according to an embodiment of the present disclosure.

도시된 바와 같이, 사용자 단말기(110)는 IoT 플랫폼(120) 또는 블록체인 플랫폼(130)과 웹 기반 통신 프로토콜(예를 들어, HTTP 프로토콜)을 통해 데이터를 송수신할 수 있다. As shown, the user terminal 110 may transmit and receive data through the IoT platform 120 or the block chain platform 130 and a web-based communication protocol (eg, HTTP protocol).

IoT 플랫폼(122)은, IoT 디바이스(140)들과의 연결 및 관리 기능, IoT 디바이스들(140)을 통해 수집된 데이터의 수정, 삭제, 분석, 공유 등의 관리 기능, HTTP 프로토콜과 경량 메시지 프로토콜(MQTT 프로토콜) 사이의 변환 등의 통신 기능을 제공하는 API를 제공 및 실행하는 API 서버(122)를 포함할 수 있다. IoT 플랫폼(122)는 API 서버(122)를 통해 IoT 디바이스들(140)과 경량 메시지 프로토콜을 사용하여 연결될 수 있다.The IoT platform 122 includes a connection and management function with the IoT devices 140 , a management function such as modification, deletion, analysis, and sharing of data collected through the IoT devices 140 , an HTTP protocol and a lightweight message protocol It may include an API server 122 that provides and executes an API that provides communication functions such as conversion between (MQTT protocol). The IoT platform 122 may be connected to the IoT devices 140 through the API server 122 using a lightweight message protocol.

한편, 블록체인 플랫폼(130)은 사용자 단말기(110)가 블록체인 네트워크에 접속하기 위해 권한 또는 멤버쉽을 보유해야 하는 프라이빗 블록체인으로 구성될 수 있다. 사용자 단말기(110)는 블록체인 플랫폼(130)에서 사전에 설정한 규칙 또는 접속 권한의 요건을 만족할 때만 블록체인 네트워크의 임의의 블록체인 노드(134)에 연결될 수 있다.On the other hand, the blockchain platform 130 may be configured as a private blockchain in which the user terminal 110 must have authority or membership in order to access the blockchain network. The user terminal 110 can be connected to any block chain node 134 of the block chain network only when it meets the requirements of rules or access rights set in advance in the block chain platform 130 .

블록체인 플랫폼(130)은, 블록체인 노드들(134)에 더하여 API 노드(132)를 추가로 포함할 수 있다. API 노드(132)는 외부에서 블록체인 플랫폼(130)을 접속하는 사용자 단말기(110)와 API를 통한 통신을 실행하여 블록체인 노드들(134)에게 스마트 컨트랙트(smart contract)를 요청하여 제공받거나 실행하도록 제어할 수 있다.The blockchain platform 130 may further include an API node 132 in addition to the blockchain nodes 134 . The API node 132 performs communication through the API with the user terminal 110 that connects the block chain platform 130 from the outside to request and receive or execute a smart contract from the block chain nodes 134 . can be controlled to do so.

한편, API 노드(132)는 사용자 단말기(110)에게 블록체인 노드(134)에 접근할 수 있는 API(application programming interface)를 제공할 수 있다. API 노드(132)로부터 API를 제공받은 사용자 단말기(110)는 API를 통해 API 노드(132)에 접근할 수 있으나, 블록체인 노드(134)에 직접 접근할 수 없다. 이와 같이 사용자 단말기(110)가 블록체인 노드(134)에 직접 접근하는 대신에 API 노드(132)를 통해 블록체인 네트워크에 접근할 수 있도록 구성함으로써, 블록체인 노드(134)에서 저장 및 관리하는 IoT 디바이스 등록 및 인증 관련 데이터에 대한 보안을 강화할 수 있다. API 노드(132)는 블록체인 노드(134)와 RPC 통신을 수행하여, 블록체인의 스마트 컨트랙트를 요청할 수 있다.Meanwhile, the API node 132 may provide the user terminal 110 with an application programming interface (API) that can access the blockchain node 134 . The user terminal 110 provided with the API from the API node 132 may access the API node 132 through the API, but cannot directly access the block chain node 134 . As such, by configuring the user terminal 110 to access the block chain network through the API node 132 instead of directly accessing the block chain node 134, IoT stored and managed by the block chain node 134 It is possible to strengthen the security of data related to device registration and authentication. The API node 132 may request a smart contract of the blockchain by performing RPC communication with the blockchain node 134 .

도 3은 본 개시의 일 실시예에 따른 프라이빗 블록체인 노드의 구성을 나타내는 도면이다.3 is a diagram illustrating the configuration of a private blockchain node according to an embodiment of the present disclosure.

도시된 바와 같이, 블록체인 노드(134)는 하나 이상의 트랜잭션(transaction: tx)(304)과 스마트 컨트랙트(smart contract: sc)(306)에 대해 생성된 블록들이 연결된 분산 원장(distributed ledger)를 포함할 수 있다. 분산 원장의 각 블록의 헤더는 하나 이상의 트랜잭션들과 연관된 이전 블록의 헤더의 해쉬값을 포함할 수 있다. 여기서 트랜잭션은 트랜잭션의 해쉬값들로 이루어질 수 있다.As shown, the blockchain node 134 includes a distributed ledger to which blocks generated for one or more transactions (tx) 304 and smart contract (sc) 306 are connected. can do. The header of each block in the distributed ledger may include a hash value of the header of the previous block associated with one or more transactions. Here, the transaction may be made of hash values of the transaction.

또한, 블록체인 노드(304)에 저장된 분산 원장에는 스마트 컨트랙트(306)에 대해 생성된 블록들이 더 포함될 수 있다. 블록체인 노드(134)는 하나 이상의 스마트 컨트랙트를 저장하는 저장소(302)를 더 포함할 수 있다.In addition, the distributed ledger stored in the blockchain node 304 may further include blocks generated for the smart contract 306 . The blockchain node 134 may further include a storage 302 that stores one or more smart contracts.

도 4는 본 개시의 일 실시예에 따른 프라이빗 블록체인 기반 IoT 디바이스의 토큰 인증 및 인가 시스템의 상세구성을 나타내는 도면이다. 4 is a diagram illustrating a detailed configuration of a token authentication and authorization system of a private blockchain-based IoT device according to an embodiment of the present disclosure.

도시된 바와 갈이 시스템(400)은, HTTP 프로토콜 인터페이스(410), 프론트엔드부(420), 백엔드부(430), 경량 메시지 프로토콜 인터페이스(440) 및 RPC 프로토콜 인터페이스(450)를 포함할 수 있다. 시스템(400)은, 도 1 내지 도 3에 도시된 시스템(100)의 전체 구성 또는 일부 구성을 포함할 수 있다. 일 실시예에서, 시스템(400)의 프론트엔드부(420)는, 시스템(100)의 사용자 단말기(110), IoT 플랫폼(120) 및/또는 블록체인 플랫폼(130)의 일부 구성요소 또는 기능을 포함할 수 있으며, 백엔드부(430)는 IoT 플랫폼(120) 및/또는 블록체인 플랫폼(130)의 일부 구성요소 또는 기능을 포함할 수 있다.As illustrated, the system 400 may include an HTTP protocol interface 410 , a front-end unit 420 , a back-end unit 430 , a lightweight message protocol interface 440 , and an RPC protocol interface 450 . . The system 400 may include all or a part of the system 100 illustrated in FIGS. 1 to 3 . In one embodiment, the front-end unit 420 of the system 400 may implement some components or functions of the user terminal 110 , the IoT platform 120 , and/or the blockchain platform 130 of the system 100 . may be included, and the backend unit 430 may include some components or functions of the IoT platform 120 and/or the blockchain platform 130 .

HTTP 프로토콜 인터페이스(410)는, 사용자 단말기(110)와 API 서버(122) 또는 사용자 단말기(110)와 API 노드(132) 사이의 데이터 통신을 위한 HTTP 프로토콜을 지원할 수 있다. 또한, 경량 메시지 프로토콜 인터페이스(440)는, API 서버(122)와 IoT 디바이스(140) 사이의 데이터 통신을 위한 경량 메시지 프로토콜(예를 들어, MQTT, CoAP 등)를 지원할 수 있다. 또한, RPC 프로토콜 인터페이스(450)는, API 노드(132)와 블록체인 노드(134) 사이의 데이터 통신을 위한 RPC(remote procedure call) 프로토콜을 지원할 수 있다.The HTTP protocol interface 410 may support the HTTP protocol for data communication between the user terminal 110 and the API server 122 or between the user terminal 110 and the API node 132 . In addition, the lightweight message protocol interface 440 may support a lightweight message protocol (eg, MQTT, CoAP, etc.) for data communication between the API server 122 and the IoT device 140 . In addition, the RPC protocol interface 450 may support a remote procedure call (RPC) protocol for data communication between the API node 132 and the blockchain node 134 .

프론트엔드부(420)는, 웹 기반 사용자 인터페이스, 캐쉬 모듈, 토큰 모듈을 포함할 수 있다. 웹 기반 사용자 인터페이스는, 사용자 등록, 사용자 인증 및 디바이스 인증에 관한 데이터 또는 정보를 입력하고, 사용자 등록, 사용자 인증 및 디바이스 인증의 결과를 출력하는 웹 페이지 기반의 사용자 인터페이스를 포함할 수 있다. 캐쉬 모듈은, 사용자 등록, 사용자 인증 및 디바이스 인증에 관한 데이터 또는 정보를 임시 저장하는 캐쉬를 관리할 수 있다. 또한, 토큰 모듈은, 사용자 인증의 실행 결과 생성된 사용자 토큰을 저장할 수 있다.The front-end unit 420 may include a web-based user interface, a cache module, and a token module. The web-based user interface may include a web page-based user interface that inputs data or information related to user registration, user authentication, and device authentication, and outputs results of user registration, user authentication, and device authentication. The cache module may manage a cache for temporarily storing data or information related to user registration, user authentication, and device authentication. Also, the token module may store a user token generated as a result of executing user authentication.

또한, 백엔드부(430)는, 사용자 인증 관리 모듈, IoT 디바이스 인증 관리 모듈 및 API 모듈을 포함할 수 있다. 사용자 인증 관리 모듈은, 사용자가 웹 기반 인터페이스를 통해 입력한 사용자 등록 및 사용자 인증 요청에 따른 검증 코드의 생성 및 발송, 사용자 인증서의 생성과 전송 등을 실행할 수 있다. 또한, IoT 디바이스 인증 관리 모듈은, 사용자가 웹 기반 인터페이스를 통해 입력한 디바이스 인증 요청에 따른 디바이스 인증서의 생성과 전송 등을 실행할 수 있다.Also, the backend unit 430 may include a user authentication management module, an IoT device authentication management module, and an API module. The user authentication management module may execute generation and transmission of a verification code according to a user registration and user authentication request input by a user through a web-based interface, generation and transmission of a user certificate, and the like. Also, the IoT device authentication management module may generate and transmit a device certificate according to a device authentication request input by a user through a web-based interface.

사용자는 프론트엔드부(420)의 웹 기반 사용자 인터페이스를 통해 프라이빗 블록체인 기반의 블록체인 플랫폼(130)에서의 사용자 회원가입 및 로그인 과정을 수행할 수 있다. 사용자가 웹 기반 사용자 인터페이스를 통해 로그인 요청 시, 백엔드부(430)로 요청을 전송하여 블록체인을 통해 인증 절차를 실행할 수 있으며, 인증 절차를 성공적으로 거친 후 인증된 사용자에 대한 특정한 권한을 인가할 수 있다.The user may perform a user membership registration and login process in the private blockchain-based blockchain platform 130 through the web-based user interface of the front-end unit 420 . When a user requests a login through the web-based user interface, the request can be sent to the backend unit 430 to execute the authentication procedure through the block chain, and after successfully passing the authentication procedure, a specific right to the authenticated user can be authorized. can

또한, 사용자는 웹 기반 사용자 인터페이스를 통해 블록체인 네트워크 내 트랜잭션 처리 현황, 스마트 컨트랙트 처리 현황 등 블록체인에 대해 실시간으로 모니터링할 수 있으며, IoT 디바이스 등록 또는 삭제 요청 및 IoT 디바이스에 대한 제어 요청을 수행할 수 있다. 예를 들어, 사용자는 웹 기반 사용자 인터페이스를 통해 IoT 디바이스를 통한 환경 데이터의 수집 상황에 대한 모니터링 정보 요청, IoT 디바이스의 동작 제어와 같은 IoT 디바이스에 대한 제어 요청을 수행할 수 있다.In addition, users can monitor the blockchain in real time, such as the transaction processing status and smart contract processing status, in the blockchain network through the web-based user interface, and perform IoT device registration or deletion requests and control requests for IoT devices. can For example, the user may perform a control request for the IoT device, such as a request for monitoring information on a collection situation of environmental data through the IoT device, and operation control of the IoT device through the web-based user interface.

백엔드부(430)의 사용자 인증 관리 모듈과 IoT 디바이스 인증 관리 모듈은 블록체인 네트워크와 연결되어 있으며, 프론트엔드부(420)에서 요청한 사용자 등록 및 인증, IoT 디바이스의 인증, 등록 또는 삭제 및 IoT 디바이스에 대한 제어 기능을 수행할 수 있다. 일 실시예에서, 사용자 인증 관리 모듈과 IoT 디바이스 인증 관리 모듈은 프론트엔드부(420)의 요청에 대한 사용자 단말기(110)의 권한을 블록체인으로부터 확인할 수 있으며, 사용자 인증, IoT 디바이스 인증 또는 제어 기능의 유효성 검증을 위해 스마트 컨트랙트를 RPC 통신 프로토콜을 통해 블록체인 노드(134)에 요청할 수 있다.The user authentication management module and the IoT device authentication management module of the backend unit 430 are connected to the blockchain network, and the user registration and authentication requested by the frontend unit 420, authentication, registration or deletion of the IoT device, and the IoT device control function can be performed. In an embodiment, the user authentication management module and the IoT device authentication management module may check the authority of the user terminal 110 for the request of the front-end unit 420 from the block chain, user authentication, IoT device authentication or control function A smart contract can be requested from the blockchain node 134 through the RPC communication protocol for validation of

백엔드부(430)의 API 모듈은 REST(representational status transfer)ful HTTP/HTTPs 통신 프로토콜을 사용할 수 있는 API를 제공할 수 있으며, 프론트엔드부(420)로부터 정의된 API 호출 요청을 받아 실행할 수 있다. 또한, 백엔드부(430)의 API 모듈은 속성-값의 쌍 형태로 이루어진 데이터 오브젝트를 전달하기 위한 JSON(Javascript Object Notation)과 Query Language 형식으로 데이터 처리 기능을 실시할 수도 있다.The API module of the backend unit 430 may provide an API capable of using a REST (representational status transfer)ful HTTP/HTTPs communication protocol, and may receive and execute an API call request defined from the frontend unit 420 . Also, the API module of the backend unit 430 may perform a data processing function in JSON (Javascript Object Notation) and Query Language formats for delivering a data object in the form of an attribute-value pair.

본 개시에 있어서 'REST(representational state transfer)ful API'는, 표현적인 상태 전달 기술에 기반한 웹 서비스 API를 지칭할 수 있다. RESTful API는, 예를 들어 블록체인 네트워크 또는 클라우드 서비스에 연결하고 상호 작용할 수 있는 API로서, 실행해야 할 트랜잭션(transaction)을 일련의 더 작은 연산으로 분할하여 실행하도록 구성될 수 있다. 예를 들어, RESTful API는 사용자 정보, IoT 디바이스 정보, 등록 및 인증 정보 등을 포함하는 객체, 파일 또는 블록과 같은 자원을 검색할 수 있는 GET 함수, 자원의 상태를 변경하거나 업데이트하는 PUT 함수, 자원을 생성하는 POST 함수, 및 자원을 삭제하는 DELET 함수를 포함할 수 있다.In the present disclosure, a 'REST (representational state transfer)ful API' may refer to a web service API based on an expressive state transfer technology. A RESTful API is, for example, an API that can connect to and interact with a blockchain network or cloud service, and can be configured to execute a transaction that needs to be executed by splitting it into a series of smaller operations. For example, a RESTful API is a GET function that can retrieve a resource such as an object, file, or block containing user information, IoT device information, registration and authentication information, etc., a PUT function that changes or updates the state of a resource, and a resource It can include a POST function that creates a , and a DELET function that deletes a resource.

본 개시에 있어서 백엔드부(430)의 API 모듈 또는 블록체인 플랫폼(130)의 API 노드(132)가 RESTful API를 사용함으로써, 웹 기반의 사용자 등록 및 인증, IoT 디바이스의 인증과 제어를 효과적으로 처리할 수 있다. 즉, RESTful API는 서비스 로드의 변경을 능동적으로 처리할 수 있도록 확장 가능하며, API에 의한 요청이 시스템 또는 플랫폼의 구성요소의 임의의 인스턴스(instance)에 한정되고 다음 트랜잭션에 의해서는 사용되지 않기 때문에, 웹 서비스 처리에 유용하다. 또한, RESTful API에 실행되는 연산들은 웹 주소(예를 들어 URL)의 디코딩에 의해 처리되기 때문에 클라우드 서비스 또는 블록체인 네트워크에 의한 서비스 제공을 구현하는데 효과적이다.In the present disclosure, the API module of the backend unit 430 or the API node 132 of the block chain platform 130 uses a RESTful API to effectively process web-based user registration and authentication, and authentication and control of IoT devices. can In other words, RESTful APIs are extensible to actively handle changes in service load, and because requests by APIs are limited to arbitrary instances of system or platform components and are not used by subsequent transactions. , useful for web service processing. In addition, since the operations executed in the RESTful API are processed by decoding a web address (eg, URL), it is effective to implement a service provision by a cloud service or a blockchain network.

백엔드부(430)의 API 모듈은 gRPC(gRPC Remote Procedure Calls) 또는 gRPCs 방식과 같은 오픈 소스 원격 프로시저 호출 통신 프로토콜을 사용하여 블록체인 노드들을 연결할 수 있으며, 프로토콜은 영지식 증명(Zero-Knowledge Proof) 기반으로 익명성을 제공할 수 있다. 또한 API 모듈은 사용자에 대한 개인키 암호알고리즘을 기반으로 블록체인 노드들과 사용자 단말기 사이 정보흐름을 제어할 수도 있다.The API module of the backend unit 430 can connect blockchain nodes using an open source remote procedure call communication protocol such as gRPC (gRPC Remote Procedure Calls) or gRPCs, and the protocol is Zero-Knowledge Proof. ) to provide anonymity. In addition, the API module can also control the information flow between the blockchain nodes and the user terminal based on the user's private key encryption algorithm.

도 5는 본 개시의 일 실시예에 따른 프라이빗 블록체인 기반 IoT 디바이스의 토큰 인증 및 인가 시스템에서의 사용자 및 디바이스 인증 및 제어 절차를 나타내는 도면이다.5 is a diagram illustrating a user and device authentication and control procedure in a token authentication and authorization system of a private blockchain-based IoT device according to an embodiment of the present disclosure.

도시된 바와 같이, 시스템(500)에서 사용자 단말기(또는 사용자 애플리케이션)(110)은 블록체인 플랫폼(130)에 사용자 또는 디바이스 인증 또는 제어 요청을 전송할 수 있다(S510). 이 때 사용자 단말기(110)는 HTTP 통신 프로토콜을 사용하여 RESTful API를 호출할 수 있다. 이에 응답하여 블록체인 플랫폼(130)은 사용자 또는 디바이스에 대한 인증 또는 제어 권한을 사용자 단말기(110)에 부여할 수 있다(S520). 이상 절차들(S510, S520)은 이하 도 6 내지 도 8을 참조하여 더 상세히 설명한다.As shown, the user terminal (or user application) 110 in the system 500 may transmit a user or device authentication or control request to the block chain platform 130 (S510). In this case, the user terminal 110 may call the RESTful API using the HTTP communication protocol. In response, the block chain platform 130 may grant authentication or control authority for the user or device to the user terminal 110 (S520). The above procedures ( S510 and S520 ) will be described in more detail below with reference to FIGS. 6 to 8 .

한편, 사용자 단말기(110)는 IoT 디바이스(140)이 수집 또는 관리하는 데이터들에 대한 조회 요청을 IoT 플랫폼(120)에 전송할 수 있다(S530). 이 때 사용자 단말기(110)는 HTTP 통신 프로토콜을 사용하여 RESTful API를 호출할 수 있다. 이에 응답하여 IoT 플랫폼(120)은 IoT 디바이스(140)로부터 요청된 데이터를 제공받아(S540), 사용자 단말기(110)에 반환할 수 있다(S550).Meanwhile, the user terminal 110 may transmit an inquiry request for data collected or managed by the IoT device 140 to the IoT platform 120 ( S530 ). In this case, the user terminal 110 may call the RESTful API using the HTTP communication protocol. In response, the IoT platform 120 may receive the requested data from the IoT device 140 (S540) and return it to the user terminal 110 (S550).

도 6은 본 개시의 일 실시예에 따른 프라이빗 블록체인 기반 IoT 디바이스의 토큰 인증 및 인가 시스템에서의 사용자 등록 방법을 나타내는 도면이다.6 is a diagram illustrating a user registration method in a token authentication and authorization system of a private blockchain-based IoT device according to an embodiment of the present disclosure.

사용자 등록 방법(600)은, 사용자 단말기가 프론트엔드부에 사용자 등록 요청을 전송하는 단계(S602)로 개시될 수 있다. 이에 응답하여 프론트엔드부는 검증 코드 발송 요청을 백엔드부로 전송할 수 있다(S604). 또한, 백엔드부는 해당 검증 코드 발송 요청을 블록체인 네트워크(또는 블록체인 플랫폼)로 전송할 수 있다(S606). The user registration method 600 may be initiated by the user terminal transmitting a user registration request to the front end unit (S602). In response, the front-end unit may transmit a verification code transmission request to the back-end unit (S604). In addition, the backend unit may transmit a request for sending the verification code to the blockchain network (or blockchain platform) (S606).

일 실시예에서, 도 1 내지 도 5를 참조하면, 사용자 단말기(110)는 웹 기반 사용자 인터페이스를 통해 사용자 등록 요청을 입력 및 실행할 수 있다. 예를 들어, 사용자 단말기(110)는, 사용자 등록(또는 회원가입)을 위해, 사용자 이메일 주소, 비밀번호, 공개키 등을 포함하는 사용자 등록 요청을 웹 기반 사용자 인터페이스를 통해 입력할 수 있다. 이에 따라 사용자 단말기(110)는 HTTP 프로토콜을 사용하여 블록체인 플랫폼(130)의 사용자 인증 관리 모듈에 검증 코드 발송 요청을 전송할 수 있다. 사용자 인증 관리 모듈은 해당 검증 코드 발송 요청을 API 모듈(또는 API 노드)에 의해 RPC 프로토콜을 이용하여 블록체인 노드(134)로 전송할 수 있다.1 to 5 , the user terminal 110 may input and execute a user registration request through a web-based user interface. For example, the user terminal 110 may input a user registration request including a user e-mail address, password, public key, etc. through a web-based user interface for user registration (or membership registration). Accordingly, the user terminal 110 may transmit a verification code transmission request to the user authentication management module of the block chain platform 130 using the HTTP protocol. The user authentication management module may transmit the corresponding verification code sending request to the blockchain node 134 using the RPC protocol by the API module (or API node).

다음으로, 블록체인 네트워크는 검증 코드(또는 인증 코드)를 생성할 수 있다(S608). 예를 들어, 검증 코드는 난수 발생기(random number generator) 함수에 의해 생성된 16바이트 크기의 숫자일 수 있다. 일 실시예에서, 도 1 내지 도 5를 참조하면, API 노드(132)는 블록체인 노드(134)에 검증 코드 생성을 위한 스마트 컨트랙트를 요청하여 실행할 수 있다.Next, the blockchain network may generate a verification code (or verification code) (S608). For example, the verification code may be a 16-byte sized number generated by a random number generator function. In one embodiment, referring to FIGS. 1 to 5 , the API node 132 may request and execute a smart contract for generating a verification code from the blockchain node 134 .

검증 코드가 생성되면, 블록체인 네트워크는, 검증 코드의 발송 승인을 백엔드부로 전송한다(S610). 또한 백엔드부는 검증 코드를 프론트엔드부로 발송하고, 검증 코드 입력 페이지의 리다이렉션을 실행한다(S612). 예를 들어, 프론트엔드부는 이메일을 통해 검증 코드를 사용자의 이메일 계정으로 발송하고, 사용자가 이메일을 통해 수신한 검증 코드를 입력할 수 있도록 사용자 단말기 상에 검증 코드 입력 페이지를 표시할 수 있다.When the verification code is generated, the blockchain network transmits an approval for sending the verification code to the backend unit (S610). In addition, the back-end unit sends the verification code to the front-end unit and executes redirection of the verification code input page (S612). For example, the front-end unit may send a verification code to the user's email account through an email, and display a verification code input page on the user terminal so that the user can input the verification code received through the email.

사용자가 사용자 단말기 상에 표시된 검증 코드 입력 페이지에 수신한 검증 코드를 입력하면(S614), 프론트엔드부는 입력된 검증 코드를 백엔드부로 전달할 수 있다(S616). 또한 백엔드부는 전달된 검증 코드에 기초하여 사용자 인증서 발급 요청을 블록체인 네트워크에 전송할 수 있다(S618). When the user inputs the received verification code to the verification code input page displayed on the user terminal (S614), the front-end unit may transmit the input verification code to the back-end unit (S616). In addition, the backend unit may transmit a user certificate issuance request to the blockchain network based on the transmitted verification code (S618).

일 실시예에서, 도 1 내지 도 5를 참조하면, 사용자 단말기(110)는 웹 기반 사용자 인터페이스를 통해 검증 코드의 입력 및 전송을 실행할 수 있다. 이에 따라 사용자 단말기(110)는 HTTP 프로토콜을 사용하여 블록체인 플랫폼(130)의 사용자 인증 관리 모듈에 검증 코드를 전송할 수 있다. 사용자 인증 관리 모듈은 해당 검증 코드에 기초한 사용자 인증서 발급 요청을 API 모듈(또는 API 노드)에 의해 RPC 프로토콜을 이용하여 블록체인 노드(134)로 전송할 수 있다.In an embodiment, referring to FIGS. 1 to 5 , the user terminal 110 may execute input and transmission of a verification code through a web-based user interface. Accordingly, the user terminal 110 may transmit the verification code to the user authentication management module of the block chain platform 130 using the HTTP protocol. The user authentication management module may transmit a user certificate issuance request based on the corresponding verification code to the blockchain node 134 using the RPC protocol by the API module (or API node).

다음으로, 블록체인 네트워크는 인증서를 생성할 수 있다(S620). 예를 들어, 블록체인 네트워크는, 검증 코드에 기초하여 블록체인 네트워크의 초기화 단계에서 생성하였던 ECDSA 기반의 비밀키로, 사용자가 사용자 등록 요청에 포함하여 전송한 공개키를 서명을 하여 인증서를 발행할 수 있다. 일 실시예에서, 도 1 내지 도 5를 참조하면, API 노드(132)는 블록체인 노드(134)에 인증서 생성을 위한 스마트 컨트랙트를 요청하여 실행할 수 있다. 예를 들어, 사용자 인증서는 PKI(Public Key Infrastructure) 기반의 인증 알고리즘에 의해 생성될 수 있다.Next, the blockchain network may generate a certificate (S620). For example, the blockchain network can issue a certificate by signing the public key transmitted by the user including the user registration request with the ECDSA-based private key generated in the initialization stage of the blockchain network based on the verification code. have. In one embodiment, referring to FIGS. 1 to 5 , the API node 132 may request and execute a smart contract for generating a certificate from the blockchain node 134 . For example, the user certificate may be generated by an authentication algorithm based on a public key infrastructure (PKI).

블록체인 네트워크는 생성된 사용자 인증서를 백엔드부에 전송하고(S622), 백엔드부는 수신한 사용자 인증서를 프론트엔드부에 전송한다(S624). 프론트엔드부는 수신한 사용자 인증서를 사용자 단말기에 저장할 수 있다(S626).The blockchain network transmits the generated user certificate to the back-end unit (S622), and the back-end unit transmits the received user certificate to the front-end unit (S624). The front-end unit may store the received user certificate in the user terminal (S626).

도 7은 본 개시의 일 실시예에 따른 프라이빗 블록체인 기반 IoT 디바이스의 토큰 인증 및 인가 시스템에서의 사용자 인증 방법을 나타내는 도면이다.7 is a diagram illustrating a user authentication method in a token authentication and authorization system of a private blockchain-based IoT device according to an embodiment of the present disclosure.

사용자 인증 방법(700)은, 사용자 단말기가 프론트엔드부에 사용자 인증/인가 요청을 전송하는 단계(S602)로 개시될 수 있다. 예를 들어, 사용자 단말기는, 사용자 이메일 주소, 비밀번호, 요청 시간 데이터를 조합하여 비밀키로 암호화 및 해시 후 생성된 해시 메세지 데이터를 포함하는 사용자 인증 요청을 프론트엔드부에 전송할 수 있다. 이에 응답하여 프론트엔드부는 사용자 인증 요청을 백엔드부로 전송할 수 있다(S704). 또한, 백엔드부는 해당 사용자 인증 요청을 블록체인 네트워크(또는 블록체인 플랫폼)로 전송할 수 있다(S706). The user authentication method 700 may be initiated by the user terminal transmitting a user authentication/authorization request to the front-end unit (S602). For example, the user terminal may transmit a user authentication request including hash message data generated after encryption and hashing with a secret key by combining user email address, password, and request time data to the front end unit. In response, the front-end unit may transmit a user authentication request to the back-end unit (S704). Also, the backend unit may transmit the corresponding user authentication request to the blockchain network (or blockchain platform) (S706).

일 실시예에서, 도 1 내지 도 5를 참조하면, 사용자 단말기(110)는 웹 기반 사용자 인터페이스를 통해 사용자 인증/인가 요청을 입력 및 실행할 수 있다. 이에 따라 사용자 단말기(110)는 HTTP 프로토콜을 사용하여 블록체인 플랫폼(130)의 사용자 인증 관리 모듈에 사용자 인증 요청을 전송할 수 있다. 사용자 인증 관리 모듈은 해당 사용자 인증 요청을 API 모듈(또는 API 노드)에 의해 RPC 프로토콜을 이용하여 블록체인 노드(134)로 전송할 수 있다.1 to 5 , the user terminal 110 may input and execute a user authentication/authorization request through a web-based user interface. Accordingly, the user terminal 110 may transmit a user authentication request to the user authentication management module of the block chain platform 130 using the HTTP protocol. The user authentication management module may transmit the corresponding user authentication request to the blockchain node 134 using the RPC protocol by the API module (or API node).

다음으로, 블록체인 네트워크는 해시 메세지를 통한 사용자 인증을 실행할 수 있다(S708). 예를 들어, 해시 메세지는 이메일과 비밀번호, 요청시간 데이터를 포함하고 있으며, SHA256 기반으로 해시되어 있고, ECDSA 기반으로 암호화될 수 있다. 해시 메세지를 블록체인 노드에 전달하면, 사용자 등록 요청 시 입력한 공개키를 활용하여 복호화 가능하며, 사용자 이메일 주소와 비밀번호, 요청시간 데이터를 통해 사용자 인증 및 데이터의 유효성 검증을 수행할 수 있다. 일 실시예에서, 도 1 내지 도 5를 참조하면, API 노드(132)는 블록체인 노드(134)에 해시 메세지를 통한 사용자 인증을 위한 스마트 컨트랙트를 요청하여 실행할 수 있다.Next, the blockchain network may execute user authentication through a hash message (S708). For example, the hash message includes email, password, and request time data, is hashed based on SHA256, and may be encrypted based on ECDSA. If the hash message is delivered to the blockchain node, it can be decrypted using the public key entered at the time of user registration request, and user authentication and data validation can be performed through the user's email address, password, and request time data. In one embodiment, referring to FIGS. 1 to 5 , the API node 132 may request and execute a smart contract for user authentication through a hash message to the blockchain node 134 .

블록체인 네트워크는, 사용자 인증의 실행 결과 사용자 토큰을 생성하여 백엔드부로 전송한다(S710). 또한 백엔드부는 사용자 토큰을 프론트엔드부로 전송하고(S712), 프론트엔드부는 해당 사용자 토큰을 사용자 단말기에 전송한다(S714). 이와 같이 생성된 사용자 토큰은, 사용자가 시스템에 로그인 이후 사용자 단말기에 의해 수행되는 모든 API 호출 시(예를 들어, IoT 플랫폼 등록/삭제, IoT 디바이스 등록/삭제 등) 필요한 입력 파라미터로 사용되며, 다른 입력 파라미터들(등록/삭제를 위한 요청 내용)과 함께 블록체인 플랫폼으로 전달된다. 또한, 블록체인 노드는 전달되는 토큰을 통해 요청되는 API의 유효성을 검증할 수 있다.The blockchain network generates a user token as a result of executing user authentication and transmits it to the backend unit (S710). In addition, the back-end unit transmits the user token to the front-end unit (S712), and the front-end unit transmits the corresponding user token to the user terminal (S714). The user token generated in this way is used as an input parameter necessary for all API calls performed by the user terminal after the user logs into the system (eg, IoT platform registration/deletion, IoT device registration/deletion, etc.) It is transmitted to the blockchain platform together with input parameters (request contents for registration/deletion). In addition, the blockchain node can validate the requested API through the passed token.

도 8은 본 개시의 일 실시예에 따른 프라이빗 블록체인 기반 IoT 디바이스의 토큰 인증 및 인가 시스템에서의 IoT 디바이스 또는 플랫폼의 인증 방법을 나타내는 도면이다.8 is a diagram illustrating an authentication method of an IoT device or platform in a token authentication and authorization system of a private blockchain-based IoT device according to an embodiment of the present disclosure.

IoT 디바이스 또는 플랫폼의 인증 방법(800)은, 사용자 단말기가 프론트엔드부에 IoT 디바이스 추가 요청을 전송하는 단계(S802)로 개시될 수 있다. 이에 응답하여 프론트엔드부는 디바이스 추가 요청을 백엔드부로 전송할 수 있다(S804). 이에 응답하여, 백엔드부는 사용자 정보 기반의 인증서 발급 요청을 블록체인 네트워크(또는 블록체인 플랫폼)로 전송할 수 있다(S806). 예를 들어, 디바이스 추가 요청에는, 사용자 토큰 및 사용자 메일 주소, 등록된 플랫폼 ID, IoT 플랫폼에 등록되어 있는 IoT 디바이스의 ID, 디바이스 구분을 위한 이름, 위치정보, 디바이스 설명, 영상 데이터 수집을 위한 카메라 IP 주소, IoT 디바이스의 공개키 데이터를 포함할 수 있다. 이러한 디바이스 추가 요청의 파라미터들은, API를 통해 블록체인 플랫폼으로 전달될 수 있다.The authentication method 800 of the IoT device or platform may be initiated by the user terminal transmitting an IoT device addition request to the front-end unit (S802). In response, the front-end unit may transmit a device addition request to the back-end unit (S804). In response, the backend unit may transmit a request for issuing a certificate based on user information to the blockchain network (or blockchain platform) (S806). For example, in the device addition request, a user token and user email address, a registered platform ID, an IoT device ID registered in the IoT platform, a name for device identification, location information, device description, and a camera for video data collection It may include an IP address and public key data of the IoT device. The parameters of the device addition request may be transmitted to the blockchain platform through the API.

일 실시예에서, 도 1 내지 도 5를 참조하면, 사용자 단말기(110)는 웹 기반 사용자 인터페이스를 통해 디바이스 추가 요청을 입력 및 실행할 수 있다. 이에 따라 사용자 단말기(110)는 HTTP 프로토콜을 사용하여 블록체인 플랫폼(130)의 디바이스 인증 관리 모듈에 디바이스 추가 요청을 전송할 수 있다. 디바이스 인증 관리 모듈은 해당 디바이스 추가 요청에 응답하여 사용자 정보 기반의 인증서 발급 요청을 API 모듈(또는 API 노드)에 의해 RPC 프로토콜을 이용하여 블록체인 노드(134)로 전송할 수 있다. 1 to 5 , the user terminal 110 may input and execute a device addition request through a web-based user interface. Accordingly, the user terminal 110 may transmit a device addition request to the device authentication management module of the block chain platform 130 using the HTTP protocol. The device authentication management module may transmit a user information-based certificate issuance request to the blockchain node 134 using the RPC protocol by the API module (or API node) in response to the device addition request.

다음으로, 블록체인 네트워크는 디바이스 인증서를 생성할 수 있다(S808). 일 실시예에서, 도 1 내지 도 5를 참조하면, API 노드(132)는 블록체인 노드(134)에 인증서 생성을 위한 스마트 컨트랙트를 요청하여 실행할 수 있다. 예를 들어, 디바이스 인증서는 PKI(Public Key Infrastructure) 기반의 인증 알고리즘에 의해 생성될 수 있다. 구체적으로, 디바이스 인증서는, 디바이스 추가 요청 시 입력되는 공개키 데이터를 사용하며, 공개키 데이터를 블록체인 네트워크의 비밀키로 서명하여 생성될 수 있다.Next, the blockchain network may generate a device certificate (S808). In one embodiment, referring to FIGS. 1 to 5 , the API node 132 may request and execute a smart contract for generating a certificate from the blockchain node 134 . For example, the device certificate may be generated by a public key infrastructure (PKI)-based authentication algorithm. Specifically, the device certificate may be generated by using public key data input when a device addition request is made, and signing the public key data with the private key of the blockchain network.

블록체인 네트워크는 생성된 디바이스 인증서를 백엔드부에 전송하고(S810), 백엔드부는 수신한 디바이스 인증서를 프론트엔드부에 전송한다(S812). 프론트엔드부는 수신한 디바이스 인증서를 사용자 단말기에 저장할 수 있다(S814).The blockchain network transmits the generated device certificate to the back-end unit (S810), and the back-end unit transmits the received device certificate to the front-end unit (S812). The front-end unit may store the received device certificate in the user terminal (S814).

이상 설명한 다양한 실시예들에 따르면, 제한된 사용자에게 접근 권한이 주어지는 프라이빗 블록체인을 이용하여 사용자 등록, 사용자 인증 및 디바이스 인증 절차를 실행함으로써, IoT 플랫폼의 보안성과 안전성이 개선될 수 있다.According to the various embodiments described above, the security and safety of the IoT platform can be improved by executing user registration, user authentication, and device authentication procedures using a private block chain in which access is granted to a restricted user.

사용자 단말기가 사용자 등록 또는 사용자 및 디바이스의 인증을 실행하는 경우, 사용자 단말기는 웹 기반의 사용자 인터페이스를 HTTP 통신 프로토콜을 사용하여 블록체인 네트워크의 API 노드를 통해 블록체인 노드에서 제공하는 사용자 등록, 사용자 인증 및 디바이스 인증 등의 기능을 이용할 수 있다. 이와 같이 사용자 단말기는 기존의 웹 기반의 인터페이스와 통신 프로토콜을 이용하여 필요한 서비스를 제공받을 수 있으며, 블록체인 네트워크에 접근하기 위한 추가의 통신 방식이나 인터페이스를 필요로 하지 않는다. API 노드는 사용자 단말기로부터 수신한 사용자 등록, 사용자 및 디바이스 인증 요청에 기초하여 블록체인 네트워크에 접근할 때는, RPC 통신 프로토콜을 이용하여 블록체인 노드에 접근할 수 있다. 따라서, 블록체인 네트워크의 API 노드는 외부 디바이스와 블록체인 노드 사이의 통신 프로토콜 변환과 데이터 연동을 구현함으로써 시스템의 보안성을 유지하면서 효율적인 데이터 통신이 이루어질 수 있다.When the user terminal executes user registration or user and device authentication, the user terminal provides a web-based user interface through the API node of the blockchain network using the HTTP communication protocol. and functions such as device authentication. In this way, the user terminal can receive necessary services using the existing web-based interface and communication protocol, and does not require an additional communication method or interface to access the block chain network. When the API node accesses the blockchain network based on the user registration, user and device authentication requests received from the user terminal, it can access the blockchain node using the RPC communication protocol. Therefore, the API node of the blockchain network implements the communication protocol conversion and data interworking between the external device and the blockchain node, so that efficient data communication can be achieved while maintaining the security of the system.

이상 설명된 다양한 실시예에 따른 시스템은, 서버 컴퓨터, 데스크탑 컴퓨터, 랩탑 컴퓨터, 컴퓨터의 외부에 설치된 모뎀이나 내부에 설치된 모뎀 또는 무선 채널을 통해 통신하는 디바이스 등과 같은 다양한 타입들의 컴퓨팅 장치들을 나타낼 수도 있다. 본원에 설명된 임의의 컴퓨팅 장치들은, 이상 설명한 시스템의 구성요소들 사이의 데이터 통신을 제공하는 방법의 실행에 필요한 명령들 및 데이터를 저장하기 위한 메모리, 뿐만 아니라 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합들을 가질 수도 있다. The system according to the various embodiments described above may represent various types of computing devices, such as a server computer, a desktop computer, a laptop computer, a modem installed outside or inside the computer, or a device communicating through a wireless channel. . Any of the computing devices described herein include a memory for storing instructions and data necessary for the execution of the method for providing data communication between the components of the system described above, as well as hardware, software, firmware, or a combination thereof. You may have combinations.

본원에 기술된 기법들은 다양한 수단에 의해 구현될 수도 있다. 예를 들어, 이러한 기법들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수도 있다. 본원의 개시와 연계하여 설명된 다양한 예시 적인 논리적 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합들로 구현될 수도 있음을 당업자들은 더 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호교환성을 명확하게 설명하기 위해, 다양한 예시 적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들이 그들의 기능성의 관점에서 일반적으로 위에서 설명되었다. 그러한 기능이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는 지의 여부는, 특정 애플리케이션 및 전체 시스템에 부과되는 설계 제약들에 따라 달라진다. 당업자들은 각각의 특정 애플리케이션을 위해 다양한 방식들로 설명된 기능을 구현할 수도 있으나, 그러한 구현 결정들은 본 개시의 범위로부터 벗어나게 하는 것으로 해석되어서는 안된다. The techniques described herein may be implemented by various means. For example, these techniques may be implemented in hardware, firmware, software, or a combination thereof. Those skilled in the art will further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.

하드웨어 구현에서, 기법들을 수행하는 데 이용되는 프로세싱 유닛들은, 하나 이상의 ASIC들, DSP들, 디지털 신호 프로세싱 디바이스들 (digital signal processing devices; DSPD들), 프로그램가능 논리 디바이스들 (programmable logic devices; PLD들), 필드 프로그램가능 게이트 어레이들 (field programmable gate arrays; FPGA들), 프로세서들, 제어기들, 마이크로제어기들, 마이크로프로세서들, 전자 디바이스들, 본원에 설명된 기능들을 수행하도록 설계된 다른 전자 유닛들, 컴퓨터, 또는 이들의 조합 내에서 구현될 수도 있다. In a hardware implementation, the processing units used to perform the techniques include one or more ASICs, DSPs, digital signal processing devices (DSPDs), programmable logic devices (PLDs). ), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, electronic devices, other electronic units designed to perform the functions described herein; It may be implemented in a computer, or a combination thereof.

따라서, 본원의 개시와 연계하여 설명된 다양한 예시 적인 논리 블록들, 모듈들, 및 회로들은 범용 프로세서, DSP, ASIC, FPGA나 다른 프로그램 가능 논리 디바이스, 이산 게이트나 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본원에 설명된 기능들을 수행하도록 설계된 것들의 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안에서, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들면, DSP와 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 연계한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성의 조합으로써 구현될 수도 있다. Accordingly, the various illustrative logic blocks, modules, and circuits described in connection with the present disclosure may include general purpose processors, DSPs, ASICs, FPGAs or other programmable logic devices, discrete gate or transistor logic, discrete hardware components, or It may be implemented or performed in any combination of those designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, eg, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in association with a DSP core, or any other such configuration.

펌웨어 및/또는 소프트웨어 구현에 있어서, 기법들은 랜덤 액세스 메모리 (random access memory; RAM), 판독 전용 메모리 (read-only memory; ROM), 불휘발성 RAM (non-volatile random access memory; NVRAM), PROM (programmable read-only memory), EPROM (erasable programmable read-only memory), EEPROM (electrically erasable PROM), 플래시 메모리, 컴팩트 디스크 (compact disc; CD), 자기 또는 광학 데이터 스토리지 디바이스 등과 같은 컴퓨터 판독가능 매체 상에 저장된 명령들로써 구현될 수도 있다. 명령들은 하나 이상의 프로세서들에 의해 실행 가능할 수도 있고, 프로세서(들)로 하여금 본원에 설명된 기능의 특정 양태들을 수행하게 할 수도 있다. For firmware and/or software implementations, the techniques include random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), PROM ( on computer-readable media such as programmable read-only memory), erasable programmable read-only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, compact disc (CD), magnetic or optical data storage devices, etc. It may be implemented as stored instructions. The instructions may be executable by one or more processors, and may cause the processor(s) to perform certain aspects of the functionality described herein.

소프트웨어로 구현되면, 상기 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독 가능한 매체 상에 저장되거나 또는 컴퓨터 판독 가능한 매체를 통해 전송될 수도 있다. 컴퓨터 판독가능 매체들은 한 장소에서 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하여 컴퓨터 저장 매체들 및 통신 매체들 양자를 포함한다. 저장 매체들은 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 매체들일 수도 있다. 비제한적인 예로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 또는 소망의 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 이송 또는 저장하기 위해 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 칭해진다. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. Storage media may be any available media that can be accessed by a computer. By way of non-limiting example, such computer readable medium may contain RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or desired program code in the form of instructions or data structures. may include any other medium that can be used for transport or storage to a computer and can be accessed by a computer. Also, any connection is properly termed a computer-readable medium.

예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선 (DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 전송되면, 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 매체의 정의 내에 포함될 수 있다. 본원에서 사용된 디스크 (disk)와 디스크 (disc)는, CD, 레이저 디스크, 광 디스크, DVD (digital versatile disc), 플로피디스크, 및 블루레이 디스크를 포함하며, 여기서 디스크들 (disks) 은 보통 자기적으로 데이터를 재생하고, 반면 디스크들 (discs) 은 레이저를 이용하여 광학적으로 데이터를 재생한다. 위의 조합들도 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다. For example, if the software is transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, wireless, and microwave, the coaxial cable , fiber optic cable, twisted pair, digital subscriber line, or wireless technologies such as infrared, radio, and microwave may be included within the definition of a medium. As used herein, disk and disk include CD, laser disk, optical disk, digital versatile disc (DVD), floppy disk, and Blu-ray disk, where disks are usually magnetic Data is reproduced optically, while discs reproduce data optically using a laser. Combinations of the above should also be included within the scope of computer-readable media.

소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 이동식 디스크, CD-ROM, 또는 공지된 임의의 다른 형태의 저장 매체 내에 상주할 수도 있다. 예시 적인 저장 매체는, 프로세가 저장 매체로부터 정보를 판독하거나 저장 매체에 정보를 기록할 수 있도록, 프로세서에 커플링 될 수 있다. 대안으로, 저장 매체는 프로세서에 통합될 수도 있다. 프로세서와 저장 매체는 ASIC 내에 존재할 수도 있다. ASIC은 유저 단말 내에 존재할 수도 있다. 대안으로, 프로세서와 저장 매체는 유저 단말에서 개별 컴포넌트들로써 존재할 수도 있다. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium may be coupled to the processor such that the processor can read information from, or write information to, the storage medium. Alternatively, the storage medium may be integrated into the processor. The processor and storage medium may reside within the ASIC. The ASIC may exist in the user terminal. Alternatively, the processor and the storage medium may exist as separate components in the user terminal.

비록 예시 적인 구현예들이 하나 이상의 독립형 컴퓨터 시스템의 맥락에서 현재 개시된 주제의 양태들을 활용하는 것을 언급할 수도 있으나, 본 주제는 그렇게 제한되지 않고, 오히려 네트워크나 분산 컴퓨팅 환경과 같은 임의의 컴퓨팅 환경과 연계하여 구현될 수도 있다. 또 나아가, 현재 개시된 주제의 양상들은 복수의 프로세싱 칩들이나 디바이스들에서 또는 그들에 걸쳐 구현될 수도 있고, 스토리지는 복수의 디바이스들에 걸쳐 유사하게 영향을 받게 될 수도 있다. 이러한 디바이스들은 PC들, 네트워크 서버들, 및 핸드헬드 디바이스들을 포함할 수도 있다. Although example implementations may refer to utilizing aspects of the presently disclosed subject matter in the context of one or more stand-alone computer systems, the subject matter is not so limited, but rather in connection with any computing environment, such as a network or distributed computing environment. may be implemented. Still further, aspects of the presently disclosed subject matter may be implemented in or across a plurality of processing chips or devices, and storage may be similarly affected across the plurality of devices. Such devices may include PCs, network servers, and handheld devices.

이 명세서에서 언급된 방법은 특정 실시예들을 통하여 설명되었지만, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽힐 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 실시예들을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.Although the method mentioned in this specification has been described through specific embodiments, it may be implemented as computer-readable code on a computer-readable recording medium. The computer-readable recording medium includes all types of recording devices in which data readable by a computer system is stored. Examples of the computer-readable recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage device. In addition, the computer-readable recording medium is distributed in a computer system connected through a network, so that the computer-readable code can be stored and executed in a distributed manner. And, functional programs, codes, and code segments for implementing the embodiments can be easily inferred by programmers in the art to which the present invention pertains.

본 명세서에서는 본 개시가 일부 실시예들과 관련하여 설명되었지만, 본 발명이 속하는 기술분야의 통상의 기술자가 이해할 수 있는 본 개시의 범위를 벗어나지 않는 범위에서 다양한 변형 및 변경이 이루어질 수 있다는 점을 알아야 할 것이다. 또한, 그러한 변형 및 변경은 본 명세서에 첨부된 특허청구의 범위 내에 속하는 것으로 생각되어야 한다.Although the present disclosure has been described in connection with some embodiments herein, it should be understood that various modifications and changes can be made without departing from the scope of the present disclosure as understood by those skilled in the art to which the present invention pertains. something to do. Further, such modifications and variations are intended to fall within the scope of the claims appended hereto.

100: IoT 디바이스의 토큰 인증 및 인가 시스템
110: 사용자 단말기
120: IoT 플랫폼
130: 블록체인 플랫폼
140: IoT 디바이스
100: Token authentication and authorization system of IoT device
110: user terminal
120: IoT platform
130: Blockchain Platform
140: IoT device

Claims (20)

프라이빗 블록체인 기반 IoT 디바이스의 토큰 인증 및 인가 시스템으로서,
사용자 단말기로부터 입력된 사용자 등록 요청, 사용자 인증 요청 및 디바이스 인증 요청 중 적어도 하나를 수신하고, 상기 요청의 실행 결과를 출력하는 사용자 인터페이스를 포함하는 프론트엔드부; 및
상기 프론트엔드부로부터 상기 요청을 수신하여, 사용자 등록, 사용자 인증 및 디바이스 인증 중 적어도 하나를 실행하는 백엔드부를 포함하며,
상기 백엔드부는, 사용자 등록, 사용자 인증 및 디바이스 인증을 실행할 수 있는 스마트 컨트랙트를 포함하는 복수의 프라이빗 블록체인 노드, 및 상기 사용자 등록, 사용자 인증 및 디바이스 인증의 실행을 위한 API(application programming interface)를 제공하는 API 노드를 포함하며,
상기 API 노드는, 상기 요청에 응답하여, 상기 API를 이용하여 상기 사용자 등록, 사용자 인증 및 디바이스 인증 중 적어도 하나의 실행 결과를 제공하며,
상기 API 노드는, 상기 프론트엔드부로부터 전송된 상기 요청에 대응하여, 상기 프라이빗 블록체인 노드들 중 어느 하나로 상기 사용자 등록, 사용자 인증 및 디바이스 인증 중 적어도 하나의 실행을 위한 스마트 컨트랙트를 RPC 프로토콜을 통해 요청하고,
상기 프라이빗 블록체인 노드는, 상기 API 노드로부터 전송된 스마트 컨트랙트 요청에 응답하여, 상기 사용자 등록을 위한 검증 코드의 생성, 상기 사용자 인증을 위한 사용자 토큰의 생성, 및 상기 디바이스 인증을 위한 디바이스 인증서의 생성 중 적어도 하나를 실행하는,
시스템.
A token authentication and authorization system for a private blockchain-based IoT device, comprising:
a front-end unit including a user interface for receiving at least one of a user registration request, a user authentication request, and a device authentication request inputted from a user terminal, and outputting a result of executing the request; and
and a back-end unit receiving the request from the front-end unit and executing at least one of user registration, user authentication, and device authentication,
The backend unit provides a plurality of private blockchain nodes including smart contracts capable of executing user registration, user authentication and device authentication, and an application programming interface (API) for executing the user registration, user authentication and device authentication. contains an API node that
The API node, in response to the request, provides an execution result of at least one of the user registration, user authentication, and device authentication using the API,
The API node, in response to the request sent from the front-end unit, creates a smart contract for executing at least one of the user registration, user authentication, and device authentication to any one of the private blockchain nodes through the RPC protocol. request,
The private blockchain node generates a verification code for user registration, a user token for user authentication, and a device certificate for device authentication, in response to a smart contract request sent from the API node. to run at least one of
system.
제1항에 있어서,
상기 프론트엔드부는 상기 요청을 상기 API 노드로 HTTP 프로토콜을 통해 전송하는, 시스템.
According to claim 1,
The system of claim 1, wherein the front-end unit sends the request to the API node through an HTTP protocol.
삭제delete 삭제delete 제1항에 있어서,
상기 프라이빗 블록체인 노드가 상기 사용자 등록을 위한 검증 코드를 생성한 경우, 상기 백엔드부는, 상기 검증 코드를 상기 사용자 단말기의 사용자에게 이메일로 발송하고, 상기 사용자 단말기를 통해 상기 검증 코드를 입력할 수 있는 웹페이지의 리다이렉션을 실행하는, 시스템.
According to claim 1,
When the private blockchain node generates a verification code for user registration, the backend unit may send the verification code to the user of the user terminal by e-mail and input the verification code through the user terminal. A system that triggers the redirection of a webpage.
제5항에 있어서,
상기 사용자 단말기가 상기 검증 코드를 입력 받으면, 상기 프론트엔드부는 상기 검증 코드를 상기 백엔드부로 전송하고, 상기 백엔드부는 상기 검증 코드에 기초하여 사용자 인증서 발급을 상기 API 노드를 통해 상기 복수의 프라이빗 블록체인 노드 중 어느 하나로 전송하여 상기 사용자 인증서를 생성하는, 시스템.
6. The method of claim 5,
When the user terminal receives the verification code, the front-end unit transmits the verification code to the back-end unit, and the back-end unit issues a user certificate based on the verification code through the API node. to generate the user certificate by sending it to any one of the
제6항에 있어서,
상기 백엔드부는, 상기 사용자 인증서를 상기 프론트엔드부에 전송하고, 상기 프론트엔드부는 상기 사용자 인증서를 상기 사용자 단말기에 전송하여 저장하도록 구성되는, 시스템.
7. The method of claim 6,
The back-end unit is configured to transmit the user certificate to the front-end unit, and the front-end unit is configured to transmit and store the user certificate to the user terminal.
제1항에 있어서,
상기 프라이빗 블록체인 노드가 상기 사용자 인증을 위한 사용자 토큰을 생성한 경우, 상기 프라이빗 블록체인 노드는 해시 메세지를 통해 상기 사용자 인증을 실행하여 상기 사용자 토큰을 생성하며, 상기 백엔드부는, 상기 사용자 토큰을 상기 프론트엔드부에 전송하고, 상기 프론트엔드부는 상기 사용자 토큰을 상기 사용자 단말기에 전송하는, 시스템.
According to claim 1,
When the private blockchain node generates a user token for user authentication, the private blockchain node executes the user authentication through a hash message to generate the user token, and the backend unit sends the user token to the send to a front-end, wherein the front-end sends the user token to the user terminal.
제1항에 있어서,
상기 프라이빗 블록체인 노드가 상기 디바이스 인증을 위한 디바이스 인증서를 생성한 경우, 상기 백엔드부는, 상기 디바이스 인증서를 상기 프론트엔드부에 전송하고, 상기 프론트엔드부는 상기 디바이스 인증서를 상기 사용자 단말기에 전송하여 저장하도록 구성되는, 시스템.
According to claim 1,
When the private blockchain node generates a device certificate for device authentication, the back-end unit transmits the device certificate to the front-end unit, and the front-end unit transmits and stores the device certificate to the user terminal. constituted, system.
제1항에 있어서,
상기 사용자 인터페이스는, 웹 기반의 사용자 인터페이스인, 시스템.
According to claim 1,
wherein the user interface is a web-based user interface.
제1항에 있어서,
상기 API는 REST(representational state transfer)ful API인, 시스템.
According to claim 1,
The API is a REST (representational state transfer)ful API.
프라이빗 블록체인 기반 IoT 디바이스의 토큰 인증 및 인가 방법으로서,
프론트엔드부에 의해, 사용자 단말기로부터 입력된 사용자 등록 요청, 사용자 인증 요청 및 디바이스 인증 요청 중 적어도 하나를 수신하는 단계;
백엔드부에 의해, 상기 프론트엔드부로부터 상기 요청을 수신하면, 사용자 등록, 사용자 인증 및 디바이스 인증 중 적어도 하나를 실행하는 단계 - 상기 백엔드부는, 사용자 등록, 사용자 인증 및 디바이스 인증을 실행할 수 있는 스마트 컨트랙트를 포함하는 복수의 프라이빗 블록체인 노드, 및 상기 사용자 등록, 사용자 인증 및 디바이스 인증의 실행을 위한 API(application programming interface)를 제공하는 API 노드를 포함함 -;
상기 API 노드에 의해, 상기 프론트엔드부로부터 전송된 상기 요청에 대응하여, 상기 프라이빗 블록체인 노드들 중 어느 하나로 상기 사용자 등록, 사용자 인증 및 디바이스 인증 중 적어도 하나의 실행을 위한 스마트 컨트랙트를 RPC 프로토콜을 통해 요청하는 단계를 포함하고,
상기 백엔드부에 의해, 상기 프론트엔드부로부터 상기 요청을 수신하면, 사용자 등록, 사용자 인증 및 디바이스 인증 중 적어도 하나를 실행하는 단계는,
상기 프라이빗 블록체인 노드에 의해, 상기 API 노드로부터 전송된 스마트 컨트랙트 요청에 응답하여, 상기 사용자 등록을 위한 검증 코드의 생성, 상기 사용자 인증을 위한 사용자 토큰의 생성, 및 상기 디바이스 인증을 위한 디바이스 인증서의 생성 중 적어도 하나를 실행하는 단계를 포함하는,
방법.
A token authentication and authorization method for a private blockchain-based IoT device, comprising:
receiving, by the front-end unit, at least one of a user registration request, a user authentication request, and a device authentication request inputted from a user terminal;
When receiving the request from the front-end by the back-end unit, executing at least one of user registration, user authentication, and device authentication - The back-end unit, a smart contract capable of executing user registration, user authentication and device authentication a plurality of private blockchain nodes including: an API node that provides an API (application programming interface) for executing the user registration, user authentication, and device authentication;
By the API node, in response to the request sent from the front-end unit, a smart contract for executing at least one of the user registration, user authentication, and device authentication to any one of the private blockchain nodes RPC protocol including making a request through
When receiving the request from the front-end unit by the back-end unit, executing at least one of user registration, user authentication, and device authentication comprises:
By the private blockchain node, in response to a smart contract request sent from the API node, generation of a verification code for user registration, generation of a user token for user authentication, and device certificate for device authentication performing at least one of generating,
Way.
제12항에 있어서,
상기 프론트엔드부에 의해, 상기 요청을 상기 API 노드로 HTTP 프로토콜을 통해 전송하는 단계를 더 포함하는, 방법.
13. The method of claim 12,
sending, by the front-end unit, the request to the API node via HTTP protocol.
삭제delete 삭제delete 제12항에 있어서,
상기 백엔드부에 의해, 상기 프론트엔드부로부터 상기 요청을 수신하면, 사용자 등록, 사용자 인증 및 디바이스 인증 중 적어도 하나를 실행하는 단계는,
상기 프라이빗 블록체인 노드가 상기 사용자 등록을 위한 검증 코드를 생성한 경우, 상기 백엔드부에 의해, 상기 검증 코드를 상기 사용자 단말기의 사용자에게 이메일로 발송하고, 상기 사용자 단말기를 통해 상기 검증 코드를 입력할 수 있는 웹페이지의 리다이렉션을 실행하는 단계를 더 포함하는, 방법.
13. The method of claim 12,
When receiving the request from the front-end unit by the back-end unit, executing at least one of user registration, user authentication, and device authentication comprises:
When the private blockchain node generates the verification code for user registration, the backend unit sends the verification code to the user of the user terminal by e-mail, and enters the verification code through the user terminal. The method further comprising the step of executing a redirection of a webpage capable of being
제16항에 있어서,
상기 사용자 단말기가 상기 검증 코드를 입력 받으면, 상기 프론트엔드부에 의해, 상기 검증 코드를 상기 백엔드부로 전송하고, 상기 백엔드부는 상기 검증 코드에 기초하여 사용자 인증서 발급을 상기 API 노드를 통해 상기 복수의 프라이빗 블록체인 노드 중 어느 하나로 전송하여 상기 사용자 인증서를 생성하는 단계를 더 포함하는, 방법.
17. The method of claim 16,
When the user terminal receives the verification code, the front-end unit transmits the verification code to the back-end unit, and the back-end unit issues a user certificate based on the verification code through the API node. The method further comprising sending to one of the blockchain nodes to generate the user certificate.
제12항에 있어서,
상기 백엔드부에 의해, 상기 프론트엔드부로부터 상기 요청을 수신하면, 사용자 등록, 사용자 인증 및 디바이스 인증 중 적어도 하나를 실행하는 단계는,
상기 프라이빗 블록체인 노드가 상기 사용자 인증을 위한 사용자 토큰을 생성한 경우, 상기 프라이빗 블록체인 노드에 의해, 해시 메세지를 통해 상기 사용자 인증을 실행하여 상기 사용자 토큰을 생성하는 단계; 및
상기 백엔드부에 의해, 상기 사용자 토큰을 상기 프론트엔드부에 전송하여, 상기 프론트엔드부가 상기 사용자 토큰을 상기 사용자 단말기에 전송하도록 하는 단계를 포함하는, 방법.
13. The method of claim 12,
When receiving the request from the front-end unit by the back-end unit, executing at least one of user registration, user authentication, and device authentication comprises:
when the private blockchain node generates a user token for user authentication, executing the user authentication through a hash message by the private blockchain node to generate the user token; and
sending, by the back-end unit, the user token to the front-end unit, causing the front-end unit to transmit the user token to the user terminal.
제12항에 있어서,
상기 백엔드부에 의해, 상기 프론트엔드부로부터 상기 요청을 수신하면, 사용자 등록, 사용자 인증 및 디바이스 인증 중 적어도 하나를 실행하는 단계는,
상기 프라이빗 블록체인 노드가 상기 디바이스 인증을 위한 디바이스 인증서를 생성한 경우, 상기 백엔드부에 의해, 상기 디바이스 인증서를 상기 프론트엔드부에 전송하여, 상기 프론트엔드부가 상기 디바이스 인증서를 상기 사용자 단말기에 전송하여 저장하도록 하는 단계를 포함하는, 방법.
13. The method of claim 12,
When receiving the request from the front-end unit by the back-end unit, executing at least one of user registration, user authentication, and device authentication comprises:
When the private blockchain node generates a device certificate for device authentication, the back-end unit transmits the device certificate to the front-end unit, and the front-end unit transmits the device certificate to the user terminal. A method comprising the step of causing to store.
컴퓨팅 장치의 하나 이상의 프로세서에 의해 실행되도록 구성되는 하나 이상의 프로그램을 저장하는 컴퓨터 판독가능 저장매체로서,
상기 하나 이상의 프로그램은, 제12항, 제13항, 제16항 내지 제19항 중 어느 한 항의 방법을 수행하기 위한 명령어들을 포함하는, 컴퓨터 판독가능 저장매체.
A computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computing device, comprising:
The one or more programs, comprising instructions for performing the method of any one of claims 12, 13, 16 to 19, a computer-readable storage medium.
KR1020190166115A 2019-12-12 2019-12-12 METHOD AND SYSTEM FOR AUTHENTICATING TOKEN FOR IoT DEVICE BASED ON PRIVATE BLOCKCHAIN KR102295471B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190166115A KR102295471B1 (en) 2019-12-12 2019-12-12 METHOD AND SYSTEM FOR AUTHENTICATING TOKEN FOR IoT DEVICE BASED ON PRIVATE BLOCKCHAIN

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190166115A KR102295471B1 (en) 2019-12-12 2019-12-12 METHOD AND SYSTEM FOR AUTHENTICATING TOKEN FOR IoT DEVICE BASED ON PRIVATE BLOCKCHAIN

Publications (2)

Publication Number Publication Date
KR20210074938A KR20210074938A (en) 2021-06-22
KR102295471B1 true KR102295471B1 (en) 2021-08-31

Family

ID=76600660

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190166115A KR102295471B1 (en) 2019-12-12 2019-12-12 METHOD AND SYSTEM FOR AUTHENTICATING TOKEN FOR IoT DEVICE BASED ON PRIVATE BLOCKCHAIN

Country Status (1)

Country Link
KR (1) KR102295471B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102523571B1 (en) * 2021-07-13 2023-04-19 주식회사 헤세그 Method and system of using special purpose token on blockchain network for decentralized identification
CN115225372B (en) * 2022-07-18 2024-02-13 镁佳(北京)科技有限公司 MQTT client access method, system and device and electronic equipment
KR102508781B1 (en) * 2022-11-29 2023-03-10 주식회사 스마트엠투엠 Method and system for generating api gateway for calling smart contract

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102026225B1 (en) * 2017-01-19 2019-09-27 주식회사 케이티 Apparatus for managing data using block chain and method thereof
KR102088952B1 (en) * 2018-02-20 2020-03-13 주식회사 페이게이트 System and method for relaying cryptocurrency

Also Published As

Publication number Publication date
KR20210074938A (en) 2021-06-22

Similar Documents

Publication Publication Date Title
US11943224B2 (en) Blockchain-based admission processes for protected entities
Ammi et al. Customized blockchain-based architecture for secure smart home for lightweight IoT
CA3015695C (en) Systems and methods for distributed data sharing with asynchronous third-party attestation
US11763305B1 (en) Distributed ledger for device management
US11102190B2 (en) Method and system for blockchain based cyber protection of network entities
US20200021446A1 (en) Secure de-centralized domain name system
KR102295471B1 (en) METHOD AND SYSTEM FOR AUTHENTICATING TOKEN FOR IoT DEVICE BASED ON PRIVATE BLOCKCHAIN
US9268933B2 (en) Privacy broker
US11539526B2 (en) Method and apparatus for managing user authentication in a blockchain network
KR20190039077A (en) Biometric identification and verification between IoT devices and applications
KR102116235B1 (en) Method and server for managing user identity using blockchain network, and method and terminal for verifying user using user identity based on blockchain network
US20140058945A1 (en) Anonymous payment brokering
US20160359846A1 (en) Service providing method, service requesting method, information processing device, and client device
US20180218364A1 (en) Managing distributed content using layered permissions
US20150067772A1 (en) Apparatus, method and computer-readable storage medium for providing notification of login from new device
WO2022246997A1 (en) Service processing method and apparatus, server, and storage medium
KR102089912B1 (en) Method and system for managing mobile devices based on private blockchain
CN112702419B (en) Data processing method, device, equipment and storage medium based on block chain
Janani et al. A security framework to enhance IoT device identity and data access through blockchain consensus model
JP7174730B2 (en) Terminal device, information processing method and information processing program
Megala et al. A Review on Blockchain-Based Device Authentication Schemes for IoT
WO2023215103A1 (en) Hot wallet protection using a layer-2 blockchain network
KR20230089559A (en) Blockchain-based fido authentication system

Legal Events

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