KR20200125279A - User Identification Method Using Block Chain and System thereof - Google Patents

User Identification Method Using Block Chain and System thereof Download PDF

Info

Publication number
KR20200125279A
KR20200125279A KR1020190049327A KR20190049327A KR20200125279A KR 20200125279 A KR20200125279 A KR 20200125279A KR 1020190049327 A KR1020190049327 A KR 1020190049327A KR 20190049327 A KR20190049327 A KR 20190049327A KR 20200125279 A KR20200125279 A KR 20200125279A
Authority
KR
South Korea
Prior art keywords
block
request
user terminal
user
blockchain
Prior art date
Application number
KR1020190049327A
Other languages
Korean (ko)
Inventor
허준행
Original Assignee
유한책임회사 빌드업웍스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 유한책임회사 빌드업웍스 filed Critical 유한책임회사 빌드업웍스
Priority to KR1020190049327A priority Critical patent/KR20200125279A/en
Publication of KR20200125279A publication Critical patent/KR20200125279A/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/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • 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/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • 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

Landscapes

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

Abstract

A user authentication system is disclosed. According to the present invention, a user authentication method based on blockchain comprises the steps of: when an integrated authentication server receives a user authentication request from a user terminal, transmitting a blockchain verification request to a blockchain network; transmitting, by the block chain network, a block generation request to the user terminal in a directed acyclic graph (DAG) method, and generating a block upon receiving a reply to the request from the user terminal; receiving, by the block chain network, the generated block and performing a blockchain verification approval corresponding to the blockchain verification request; and controlling, by the integrated authentication server, access rights of the user terminal according to the blockchain verification approval.

Description

블록 체인기반의 사용자 인증 방법, 시스템 {User Identification Method Using Block Chain and System thereof}Blockchain-based user authentication method, system {User Identification Method Using Block Chain and System thereof}

본 발명은 블록 체인 기반의 사용자 인증 방법 및 시스템에 관한 것으로, 보다 상세하게는, 싱글 사인-온 인증시 블록체인에 기록된 블록을 함께 검증하도록하는 사용자 인증 방법 및 시스템에 관한 것이다.The present invention relates to a block chain-based user authentication method and system, and more particularly, to a user authentication method and system for verifying blocks recorded in a block chain together during single sign-on authentication.

최근 IT 기술력의 고도화로 초고속 인터넷 망이 발달하게 되었고 과거 인터넷 환경과는 다른 모습을 보이고 있다. 일상생활에서 다양한 인터넷 서비스를 접할 수 있게 되었으며, 이러한 인터넷 서비스는 우리 생활의 필수요소라 할 수 있다. 많은 사용자가 이용할 수 있는 서비스가 다양해짐에 따라 효용가치도 증가하였다. 또한, 휴대성이 편리한 다양한 스마트 기기들의 발전과 보급으로 인해 더 많은 정보와 서비스들이 웹 기반 형태로 변화되고 있다.The recent advancement of IT technology has led to the development of high-speed Internet networks, which are different from the past Internet environments. Various Internet services can be accessed in everyday life, and these Internet services are essential elements of our daily life. As the services available to many users diversify, the utility value has also increased. In addition, more information and services are being changed to a web-based form due to the development and dissemination of various smart devices that are portable.

하지만, 웹 기반 형태의 서비스들은 각 사용자에게 인증 정보를 요구하게 되고, 정당한 사용자로 인증되었을 경우에만 요청한 서비스들을 제공 받을 수 있다. 이에 따라, 사용자 측면에서 다양한 웹 서비스 별로 개별적인 식별자(ID)와 비밀번호(PW)를 설정하고 기억해야 하는 불편함이 따르게 되었다. 또한, 서비스 업체에서 여러 연계된 서비스들을 제공하게 됨에 따라 중복 사용자들의 인증 정보를 별도로 관리하게 되는 문제점이 발생되었다.However, web-based services require authentication information from each user, and the requested services can be provided only when authenticated as a legitimate user. Accordingly, from the user's perspective, it is inconvenient to set and remember individual identifiers (IDs) and passwords (PW) for various web services. In addition, as a service company provides several linked services, there has been a problem of separately managing authentication information of duplicate users.

이러한 문제점을 극복하기 위해 SSO(Single Sign-On; 이하 SSO) 개념이 등장하였다. SSO란 한 번의 인증 과정을 통해 여러 서비스를 이용 가능하게 하는 것으로 단일 계정 로그인 혹은 단일 인증이라고 한다. 예를 들어 어느 컴퓨터에 로그인한 후 그룹웨어 등의 응용프로그램을 사용할 때에 다시 로그인, 다른 서버 상의 응용프로그램을 사용할 때에도 다시 로그인이 필요한 상황이라면, 사용자는 여러 개의 아이디와 비밀번호를 관리해야 하는 번거로움이 있으나 SSO을 도입한 환경에서는 사용자는 하나의 아이디와 비밀번호로 모든 기능을 사용할 수 있는 편리함이 있다.To overcome this problem, the concept of Single Sign-On (SSO) has emerged. SSO is the use of multiple services through a single authentication process, which is called single account login or single authentication. For example, if a user needs to log in again when using an application program such as groupware after logging in to a computer, or when logging in again when using an application program on another server, the user may have to manage multiple IDs and passwords. In the environment where SSO is introduced, users can use all functions with one ID and password.

다만, SSO 인증의 경우 한 번의 인증을 통해 다양한 서비스들을 이용할 수 있기 때문에, SSO 인증에 사용되는 사용자 인증 정보가 공격자에 의해 해킹 되었을 경우, 공격자가 SSO 인증에 연계된 모든 서비스에 정당한 사용자로서 인증된 세션을 취득할 수 있는 문제가 있다.However, in the case of SSO authentication, since various services can be used through one authentication, if the user authentication information used for SSO authentication is hacked by an attacker, the attacker is authenticated as a legitimate user for all services linked to SSO authentication. There is a problem with acquiring a session.

또한 이를 해결하기 위해 한 번의 인증 시 멀티요소인증기술(Something you only have + you only remember)이 도입되고 있으나, 주요 인증 수단이 집중되어 있는 스마트폰 분실이나 해킹에 대응할 수 없는 한계가 있다.In addition, in order to solve this problem, multi-factor authentication technology (Something you only have + you only remember) is being introduced in one authentication, but there is a limitation in that it cannot cope with the loss or hacking of a smartphone where the main authentication means are concentrated.

공개 한국특허문헌 제10-2018-012028호Published Korean Patent Document No. 10-2018-012028

본 발명은 상술한 문제점을 해결하기 위하여, 블록체인 기술을 활용하여 사용자 인증 정보를 저장함으로써, 인증 정보 프라이버시 및 안정성을 보장되는 블록체인 인증 서버를 이용한 사용자 인증방법을 제공하는데 있다.In order to solve the above-described problem, the present invention is to provide a user authentication method using a blockchain authentication server that ensures the privacy and stability of authentication information by storing user authentication information using a blockchain technology.

상술한 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 블록체인 기반의 사용자 인증 시스템은 사용자 정보를 기초로 인증된 사용자에게 각각이 서비스를 제공하는 복수의 서비스 서버; 상기 인증된 사용자에게 상기 서비스를 제공받는 적어도 하나의 사용자 단말; 적어도 하나의 상기 서비스 서버의 요청에 따라 상기 사용자 정보를 확인 요청하고, 접근 권한 정보에 따라 상기 사용자에 대한 상기 서비스의 접근을 허용하는 통합인증서버; 및 복수의 컴퓨팅 장치를 포함하여, 상기 통합인증서버로부터 상기 사용자 정보의 확인 요청을 받으면, 방향성 비사이클 그래프(DAG : directed acyclic graph)를 이용하여 상기 사용자 단말에 블록생성 요청을 전송하고, 상기 사용자 단말로부터 상기 요청에 회신받으면 블록을 생성하여 상기 통합인증서버로 상기 접근권한 정보를 회신하는 블록체인 네트워크;를 포함한다. In order to solve the above problems, a block chain-based user authentication system according to an embodiment of the present invention includes a plurality of service servers each providing a service to an authenticated user based on user information; At least one user terminal receiving the service from the authenticated user; An integrated authentication server for requesting confirmation of the user information according to a request from at least one service server, and allowing access to the service for the user according to access authority information; And a plurality of computing devices, upon receiving a request for confirmation of the user information from the integrated authentication server, transmitting a block generation request to the user terminal using a directed acyclic graph (DAG), and the user And a block chain network that generates a block upon receiving a reply to the request from the terminal and returns the access right information to the integrated authentication server.

상기 통합인증서버는 상기 사용자 단말로부터 사용자 인증 요청을 수신하면 상기 블록체인 네트워크로 상기 사용자 인증 요청에 포함된 상기 사용자 정보의 확인 요청을 전송하고, 상기 블록체인 네트워크에서 상기 확인 요청에 따른 검증 승인을 수신하면, 적어도 하나의 상기 서비스 서버로 인증 결과를 전송한다. When the integrated authentication server receives a user authentication request from the user terminal, it transmits a confirmation request for the user information included in the user authentication request to the blockchain network, and performs verification approval according to the confirmation request in the blockchain network. Upon receipt, the authentication result is transmitted to at least one of the service servers.

일 실시예에 따라 상기 블록체인 네트워크는 상기 통합인증서버로부터 상기 사용자 인증 요청을 받으면, 상기 사용자 인증 요청을 전송한 상기 사용자 단말로 블록 길이 확인 요청을 전송하고, 상기 사용자 단말로부터 상기 블록 길이를 확인받으면, 복수의 해시 참조자 노드로 블록 해시 요청을 전송하고, 상기 블록 해시 요청으로 상기 해시 참조자 노드에서 생성된 블록 해시에 기초하여 상기 블록을 생성하며, 상기 사용자 단말에서 생성된 상기 블록을 수신하면, 블록 길이를 업데이트하고 상기 통합인증서버로 상기 접근권한 정보를 전송한다.According to an embodiment, when the blockchain network receives the user authentication request from the integrated authentication server, it transmits a block length check request to the user terminal that has transmitted the user authentication request, and checks the block length from the user terminal. Upon receipt, transmits a block hash request to a plurality of hash reference nodes, generates the block based on the block hash generated by the hash reference node with the block hash request, and receives the block generated in the user terminal Then, the block length is updated and the access right information is transmitted to the integrated authentication server.

상기 사용자 단말은 상기 해시 참조자 노드 중 무작위의 적어도 하나로부터 상기 블록 해시를 수신하여 블록 헤더에 기록하며 상기 블록을 생성한다.The user terminal receives the block hash from random at least one of the hash referrer nodes, writes it to a block header, and generates the block.

다른 실시예에 따라 상기 블록체인 네트워크는 상기 사용자 단말로 푸쉬 알림, 문자메세지, 이메일 중 어느 하나로 소정의 시간제한 내 응답을 요하는 상기 블록 생성 요청을 전송할 수 있다.According to another embodiment, the block chain network may transmit the block generation request requesting a response within a predetermined time limit to one of a push notification, a text message, and an email to the user terminal.

상기 블록체인 네트워크는 상기 사용자 단말로부터 상기 블록 생성요청에 따른 승인을 수신하면, 상기 블록을 생성하고 상기 통합인증서버로 상기 접근권한 정보를 전송할 수 있다. When the block chain network receives approval according to the block generation request from the user terminal, it may generate the block and transmit the access permission information to the integrated authentication server.

또다른 실시예에 따라 상기 블록체인 네트워크는 상기 사용자 정보의 확인 요청을 수신하면 상기 사용자 단말로 블록 해시 확인 요청을 전송할 수 있다.According to another embodiment, the blockchain network may transmit a block hash confirmation request to the user terminal upon receiving the user information confirmation request.

상기 블록체인 네트워크는 상기 사용자 단말로부터 상기 블록 해시 확인 요청에 따른 블록 해시를 확인받으면 상기 블록을 생성하고 상기 통합인증서버로 상기 접근권한 정보를 전송할 수 있다.The block chain network may generate the block and transmit the access permission information to the integrated authentication server upon receipt of the block hash according to the block hash confirmation request from the user terminal.

상술한 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 블록체인 기반의 사용자 인증 방법은 통합인증서버가 사용자 단말로부터 사용자 인증 요청을 수신하면, 블록체인 검증 요청을 블록체인 네트워크로 전송하는 단계; 상기 블록체인 네트워크에 포함된 제1 노드는 상기 사용자 단말로 블록체인 검증 요청을 전송하고, 상기 검증 요청에 대한 응신에 기초하여 블록을 생성하는 단계; 상기 블록체인 네트워크에 포함된 제2 노드는 상기 생성된 블록을 수신하여 해시값을 업데이트하는 단계; 상기 제1 노드는 상기 생성된 블록에 기초하여 상기 통합인증서버로 블록체인 검증 승인을 전송하는 단계; 및 상기 통합인증서버는 상기 블록체인 검증 승인에 따라 상기 사용자 단말의 접근 권한을 제어하는 단계를 포함한다.In order to solve the above-described problem, the block chain-based user authentication method according to an embodiment of the present invention is a step of transmitting a block chain verification request to the blockchain network when the integrated authentication server receives a user authentication request from a user terminal. ; The first node included in the blockchain network transmits a blockchain verification request to the user terminal, and generates a block based on a response to the verification request; Updating a hash value by receiving the generated block by a second node included in the blockchain network; Transmitting, by the first node, a block chain verification approval to the integrated authentication server based on the generated block; And controlling, by the integrated authentication server, access rights of the user terminal according to the block chain verification approval.

일 실시예에 따라 상기 제1 노드는 상기 사용자 단말로 문자메세지, 이메일 중 어느 하나로 소정의 시간제한 내 응답을 요하는 상기 블록체인 검증 요청을 전송하고, 상기 사용자 단말은 개인키를 이용하여 상기 블록체인 검증 요청에 상응하는 상기 블록체인 검증 승인을 회신할 수 있다.According to an embodiment, the first node transmits the block chain verification request to the user terminal by either text message or e-mail, requiring a response within a predetermined time limit, and the user terminal uses a private key to The blockchain verification approval corresponding to the chain verification request can be returned.

다른 실시예에 따라 상기 제1 노드는 상기 사용자 단말로 기저장된 해시값을 포함한 상기 블록체인 검증 요청을 전송하고, 상기 사용자 단말은 상기 해시값의 확인결과에 기초하여 상기 블록체인 검증 승인을 회신할 수 있다.According to another embodiment, the first node transmits the block chain verification request including a previously stored hash value to the user terminal, and the user terminal returns the block chain verification approval based on the verification result of the hash value. I can.

상술한 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 블록체인 기반의 사용자 인증 방법은 통합인증서버가 사용자 단말로부터 사용자 인증 요청을 수신하면, 블록 체인 검증 요청을 블록체인 네트워크로 전송하는 단계; 상기 블록체인 네트워크는 방향성 비사이클 그래프(DAG : directed acyclic graph) 방식으로 상기 사용자 단말에 블록생성 요청을 전송하고, 상기 사용자 단말로부터 상기 요청에 회신받으면 블록을 생성하는 단계; 상기 블록체인 네트워크는 상기 생성된 블록을 수신하여 상기 블록 체인 검증 요청에 상응하는 블록 체인 검증 승인을 수행하는 단계; 및 상기 통합인증서버는 상기 블록체인 검증 승인에 따라 상기 사용자 단말의 접근 권한을 제어하는 단계를 포함한다.In order to solve the above-described problem, a block chain-based user authentication method according to an embodiment of the present invention is a step of transmitting a block chain verification request to the blockchain network when the integrated authentication server receives a user authentication request from a user terminal. ; The block chain network transmitting a block generation request to the user terminal in a directed acyclic graph (DAG) method, and generating a block upon receiving a reply to the request from the user terminal; The block chain network receiving the generated block and performing a block chain verification approval corresponding to the block chain verification request; And controlling, by the integrated authentication server, access rights of the user terminal according to the block chain verification approval.

상기 블록을 생성하는 단계는 상기 블록체인 네트워크에 포함된 제1 노드는 상기 블록 체인 검증 요청에 따라 상기 사용자 단말로 블록 길이 확인 요청을 전송하고, 상기 확인 요청에 대한 응신에 기초하여 블록 길이를 확인하는 단계; 상기 제1 노드는 상기 블록 길이가 일치하는 경우, 상기 블록체인 네트워크에 포함된 제2 노드로 블록 해시를 요청하는 단계; 및 상기 사용자 단말은 상기 제2 노드로부터 상기 블록 해시 수신하여 블록 헤더에 기록하고 새로운 블록을 생성하는 단계;를 포함할 수 있다. In the step of generating the block, the first node included in the blockchain network transmits a block length check request to the user terminal according to the block chain verification request, and checks the block length based on a response to the confirmation request. Step to do; The first node requesting a block hash from a second node included in the block chain network when the block lengths match; And receiving, by the user terminal, the block hash from the second node, recording it in a block header, and generating a new block.

본 발명의 블록체인 인증 서버를 이용한 사용자 인증방법에 따르면, 사용자 인증 정보에 대해 복사 또는 위/변조가 어려워지므로, 프라이버시를 제공할 수 있다. According to the user authentication method using the blockchain authentication server of the present invention, it is difficult to copy or forgery/modify user authentication information, and thus privacy can be provided.

또한, 어느 하나의 인증 서버가 문제를 일으키더라도 다른 블록 체인 인증 서버에 저장된 사용자 인증 정보를 활용함으로써 사용자 인증 정보를 안정적으로 관리할 수 있다.In addition, even if any one authentication server causes a problem, user authentication information can be stably managed by utilizing the user authentication information stored in another block chain authentication server.

도 1은 본 발명의 실시예들을 설명하기 위한 블록체인 기반의 사용자 인증 시스템을 나타낸 블록도이다.
도 2는 본 발명의 일 실시예에 따른 사용자, SSO 인증 서버 및 블록체인 인증 서버 간 초기 설정 과정을 도시한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 블록 체인을 이용한 사용자 인증 방법을 도시한 흐름도이다.
도 4는 본 발명의 다른 실시예에 따른 블록 체인을 이용한 사용자 인증 방법을 도시한 흐름도이다.
도 5는 본 발명의 또다른 실시예에 따른 블록 체인을 이용한 사용자 인증 방법을 도시한 흐름도이다.
도 6은 도 5의 실시예를 설명하기 위한 참고도이다.
1 is a block diagram showing a block chain-based user authentication system for explaining embodiments of the present invention.
2 is a flowchart illustrating an initial setup process between a user, an SSO authentication server, and a blockchain authentication server according to an embodiment of the present invention.
3 is a flowchart illustrating a user authentication method using a block chain according to an embodiment of the present invention.
4 is a flowchart illustrating a user authentication method using a block chain according to another embodiment of the present invention.
5 is a flowchart illustrating a user authentication method using a block chain according to another embodiment of the present invention.
6 is a reference diagram for explaining the embodiment of FIG. 5.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.DETAILED DESCRIPTION OF THE INVENTION The detailed description of the present invention to be described below refers to the accompanying drawings, which illustrate specific embodiments in which the present invention may be practiced. These embodiments are described in detail sufficient to enable a person skilled in the art to practice the present invention. It is to be understood that the various embodiments of the present invention are different from each other, but need not be mutually exclusive. For example, specific shapes, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the present invention in relation to one embodiment. In addition, it is to be understood that the location or arrangement of individual components within each disclosed embodiment may be changed without departing from the spirit and scope of the present invention. Accordingly, the detailed description to be described below is not intended to be taken in a limiting sense, and the scope of the present invention, if properly described, is limited only by the appended claims, along with all scopes equivalent to those claimed by the claims. Like reference numerals in the drawings refer to the same or similar functions over several aspects.

블록 체인은 공공 거래 장부라고도 부르며 가상 화폐로 거래할 수 있는 해킹을 막는 기술이다. 블록체인은 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며 거래 때마다 이를 대조해 데이터 위조를 막는 방식을 사용한다. Blockchain, also known as a public transaction ledger, is a technology that prevents hacking that can be traded with virtual currency. Blockchain sends transaction details to all users participating in the transaction, and uses a method to prevent data forgery by collating it with each transaction.

블록 체인은 단순히 가상 화폐에만 적용되지 아니하고, 여러 데이터를 안전하게 보관하는 데에도 적용가능한 기술로서, 데이터베이스의 유지 보수와 보안에 따른 막대한 비용을 줄일 수 있는 효과를 가진 기술이다.Blockchain is a technology that can be applied not only to virtual currency, but also to securely store various data, and has the effect of reducing enormous costs associated with database maintenance and security.

이러한 블록체인 기술은 네트워크로 전달되는 트랜잭션을 수신하는 어느 노드든 블록을 생성할 수 있고, 임의의 노드 하나에서 블록이 채택되는 형태를 가지고 있다. This blockchain technology has a form in which a block can be generated by any node that receives a transaction transmitted to the network, and a block is adopted from one arbitrary node.

원장 블록의 저장은 이전 블록의 해시값을 연속으로 이어서 저장함으로써 중간에 새로운 블록의 삽입이나 원장 블록의 수정을 불가능하게 관리한다. 또한 해당 원장 블록을 합의과정에 참여하는 노드들간에 분산 저장함으로써 분산 거부 공격(DDos)에 대응할 수 있다.In the storage of the ledger block, it is impossible to insert a new block or modify the ledger block by continuously storing the hash value of the previous block. In addition, it is possible to respond to a distributed denial attack (DDos) by storing the corresponding ledger block distributed among nodes participating in the consensus process.

한편, 블록체인 네트워크는 복수의 노드들로 구성된다. 노드는 서로 다른 역할을 수행할 수 있는 3 종류의 노드로 구분할 수 있다.Meanwhile, the blockchain network is composed of a plurality of nodes. Nodes can be divided into three types of nodes that can perform different roles.

먼저 채굴 노드는 ASIC과 같은 강력하고 특수한 하드웨어 위에서 동작하며, 새로운 블록을 가능한 빠르게 채굴하는 것이 목적이다. 채굴 노드는 작업 증명 시스템을 사용하는 블록체인에서만 가능하다. 채굴 작업은 PoW퍼즐을 푸는 일이기 때문이다.First, the mining node operates on powerful and special hardware such as ASIC, and its purpose is to mine new blocks as quickly as possible. Mining nodes are only possible on a blockchain using a proof-of-work system. This is because the mining work is to solve the PoW puzzle.

풀 노드는 채굴 노드에 의해 채굴된 블록의 유효성을 확인하고 트랜잭션을 검증한다. 이 작업을 위해 블록체인의 전체 복제본이 필요하다. 또한 풀 노드는 다른 노드들이 서로를 찾을 수 있도록 돕는, 라우팅 연산을 수행할 수도 있다. 풀 노드는 블록 및 트랜잭션의 유효성을 검사하고 의사결정을 하는 노드로서, 블록체인 네트워크는 많은 풀 노드를 갖는 것이 중요하다.The full node checks the validity of blocks mined by the mining node and verifies the transaction. For this to work, we need a full copy of the blockchain. Full nodes can also perform routing operations, helping other nodes find each other. A full node is a node that checks the validity of blocks and transactions and makes decisions, and it is important for a blockchain network to have many full nodes.

SPV(Simplified Payment Verification) 노드는 블록체인의 전체 복제본을 가지고 있지는 않으나 트랜잭션 검증(일 예로, 어떤 트랜잭션이 특정 주소에서 전송되었는지 확인하는 검증 등)은 가능하다.SPV 노드는 풀 노드로부터 데이터를 얻어오며, 하나의 풀 노드에 여러개의 SPV 노드가 연결될 수 있다. The SPV (Simplified Payment Verification) node does not have a full copy of the blockchain, but it can verify transactions (for example, verifying which transactions were sent from a specific address, etc.). The SPV node gets data from the full node and , Multiple SPV nodes can be connected to one full node.

이하에서는 위와 같은 특성으로 구현된 블록체인 기술을 기반으로 본 발명의 사용자 인증 시스템 및 그 방법에 대해 설명하면 다음과 같다.Hereinafter, the user authentication system and method of the present invention will be described based on the blockchain technology implemented with the above characteristics.

도 1은 본 발명의 실시예들을 실시하기 위한 전체 시스템 구성을 나타낸 블록도이다.1 is a block diagram showing an overall system configuration for implementing embodiments of the present invention.

도 1을 참고하면, 사용자 인증 시스템은 사용자 단말(10), 적어도 하나의 블록체인 인증 서버(100), SSO 인증 서버(200) 및 복수의 서비스 서버(50)를 포함한다.Referring to FIG. 1, the user authentication system includes a user terminal 10, at least one blockchain authentication server 100, an SSO authentication server 200, and a plurality of service servers 50.

사용자 단말(10)은 사용자가 서비스 서버(50)로부터 제공되는 서비스 어플리케이션을 실행하는 전자 장치이다. 사용자 단말(10)은 SSO 인증서버(200)로 어느 하나의 서비스에 대한 사용자 인증 요청을 송신하고, 인증된 경우, 해당 서비스를 해당 서비스 서버(50)로부터 제공받을 수 있다. The user terminal 10 is an electronic device in which a user executes a service application provided from the service server 50. The user terminal 10 transmits a user authentication request for any one service to the SSO authentication server 200 and, if authenticated, may receive a corresponding service from the service server 50.

일 예로 사용자 단말(10)은 블록체인 인증서버(100)로부터 검증 블록 생성 요청을 수신한다. 이때 사용자 단말(10)은 검증 블록을 생성할 수 있다.For example, the user terminal 10 receives a request to generate a verification block from the blockchain authentication server 100. At this time, the user terminal 10 may generate a verification block.

다른 예로 사용자 단말(10)은 블록체인 인증서버(100)로부터 블록 길이 확인 요청을 수신한다. 이때 사용자 단말(10)은 현재 블록 길이를 확인하여 회신할 수 있다.As another example, the user terminal 10 receives a block length confirmation request from the blockchain authentication server 100. At this time, the user terminal 10 may check the current block length and reply.

실시예에 따라 사용자 단말(10)은 채굴노드 또는 비채굴노드일 수 있다. Depending on the embodiment, the user terminal 10 may be a mining node or a non-mining node.

사용자 단말(10)은 모바일 컴퓨터, PDA/EDA, 휴대 전화,스마트폰, 태블릿, 유무선 통신 기능을 가진 휴대용 게임기, 디지털 카메라, 개인 내비게이션 등의 모든 모바일 디바이스를 포함할 수 있다. 또한,사용자 단말(10)은 정보의 송수신을 지원하는 통신부와 정보를 처리하는 프로세서를 포함할 수 있다.The user terminal 10 may include all mobile devices such as a mobile computer, a PDA/EDA, a mobile phone, a smart phone, a tablet, a portable game machine having a wired or wireless communication function, a digital camera, and a personal navigation system. In addition, the user terminal 10 may include a communication unit that supports transmission and reception of information and a processor that processes information.

블록체인 인증 서버(100)는 블록체인으로 연결된 복수의 서버, 즉, 블록체인 네트워크에 속한 복수의 노드 중 어느 하나이다. The blockchain authentication server 100 is any one of a plurality of servers connected by a block chain, that is, a plurality of nodes belonging to a blockchain network.

일 예로 블록 체인 인증 서버(100)는 SSO 인증 서버(200)에서 사용자 인증 정보에 대한 검증 요청을 수신하면, 사용자 단말(10)에 검증 블록 생성 요청을 전송하고, 상기 사용자 인증 정보에 대한 블록을 생성한다. 블록체인 인증 서버(100)는 사용자 단말(10)로부터 검증 블록 생성 요청에 대한 승인을 수신하면, SSO 인증 서버(200)로 검증 승인 알림을 전송한다.As an example, when receiving a verification request for user authentication information from the SSO authentication server 200, the blockchain authentication server 100 transmits a verification block generation request to the user terminal 10, and sends a block for the user authentication information. Generate. When the blockchain authentication server 100 receives approval for the request for generating a verification block from the user terminal 10, it transmits a verification approval notification to the SSO authentication server 200.

다른 예로 블록 체인 인증 서버(100)는 SSO 인증 서버(200)에서 사용자 인증 정보에 대한 검증 요청을 수신하면, 사용자 단말(10)에 블록 길이 확인 요청을 전송하고, 블록 체인 네트워크에 속한 나머지 노드, 즉, 복수의 해시 참조자 노드로 블록 해시 요청을 전송한다. As another example, when receiving a verification request for user authentication information from the SSO authentication server 200, the blockchain authentication server 100 transmits a block length check request to the user terminal 10, and the remaining nodes belonging to the blockchain network, That is, a block hash request is transmitted to a plurality of hash referrer nodes.

만약 임의의 블록체인 인증 서버(100) 하나가 상기 검증 블록 생성 요청 및 상기 검증 승인 알림을 할 수 없는 경우, 즉 주요(Primary) 블록체인 인증 서버에 장애가 발생한 경우, 블록체인 네트워크에 연결된 다른(Secondary) 블록체인 인증 서버가 주요 블록체인 인증 서버의 역할을 대신 수행한다.If any one of the blockchain authentication servers 100 cannot provide the verification block creation request and the verification approval notification, that is, when a failure occurs in the primary blockchain authentication server, the other (Secondary ) The blockchain authentication server takes over the role of the main blockchain authentication server.

SSO 인증 서버(200)는 사용자 단말(10)로부터 인증 요청을 수신하면, 블록체인 인증서버(100)로 사용자 인증 정보에 대한 검증 요청을 전송한다. 블록체인 인증서버(100)에서 검증 승인 알림을 수신하면, 해당 서비스 어플리케이션에 대한 SSO 승인을 한다. 본 명세서에서는 복수의 서비스에 대해 사용자 인증을 제공하는 서버를 SSO 서버 또는 통합인증서버로 지칭할 수 있다.When the SSO authentication server 200 receives an authentication request from the user terminal 10, it transmits a verification request for user authentication information to the blockchain authentication server 100. Upon receiving the verification approval notification from the blockchain authentication server 100, SSO approval for the service application is performed. In the present specification, a server that provides user authentication for a plurality of services may be referred to as an SSO server or an integrated authentication server.

서비스 서버(50)는 사용자가 이용하고자 하는 어느 하나의 서비스 어플리케이션을 제공하는 서버로서, 복수의 독립된 서비스 서버들일 수 있다.The service server 50 is a server that provides any one service application that a user wants to use, and may be a plurality of independent service servers.

블록체인 인증서버(100)와 SSO 인증서버(200) 각각은 전형적으로 컴퓨팅 장치(예를 들어 컴퓨터 프로세서, 메모리, 스토리지, 입력 및 출력 장치, 통신 장치, 네트워크 부착 스토리지 및 스토리지 영역 네트워크와 같은 전자 정보 스토리지 시스템)와 컴퓨터 프로그램의 조합을 이용하여 원하는 시스템 성능을 수행하는 것일 수 있다.Each of the blockchain authentication server 100 and SSO authentication server 200 typically includes electronic information such as computing devices (e.g. computer processors, memory, storage, input and output devices, communication devices, network attached storage, and storage area networks). Storage system) and a computer program may be used to perform desired system performance.

블록체인 인증서버(100)와 SSO 인증서버(200) 각각은 통신부(미도시)와 프로세서(미도시)를 포함할 수 있다. 통신부는 다른 전자 장치와 정보를 송수신하기 위한 구성이다. 프로세서는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data bus)등의 하드웨어 구성을 포함할 수 있다. 또한 운영체제 등의 소프트웨어 프로그램을 더 포함할 수도 있다.Each of the blockchain authentication server 100 and the SSO authentication server 200 may include a communication unit (not shown) and a processor (not shown). The communication unit is a component for transmitting and receiving information with other electronic devices. The processor may include a hardware configuration such as a micro processing unit (MPU) or a central processing unit (CPU), a cache memory, and a data bus. Also, a software program such as an operating system may be further included.

이와 같이 구성된 시스템을 통해 본 발명의 블록체인을 이용한 사용자 인증 방법에 대해 설명하면 다음과 같다.The user authentication method using the block chain of the present invention through the system configured as described above will be described as follows.

도 2는 본 발명의 일 실시예에 따른 사용자, SSO 인증 서버 및 블록체인 인증 서버 간 초기 설정 과정을 도시한 흐름도이다.2 is a flowchart illustrating an initial setup process between a user, an SSO authentication server, and a blockchain authentication server according to an embodiment of the present invention.

도 2를 참고하면, 사용자가 싱글 사인-온(Single Sign On) 인증 방식을 이용하기 위한 사용자 단말(10), SSO 인증서버(200) 및 블록체인 인증서버(100) 간 세션 형성과정에 대한 것이고, 사용자 단말(10)과 서비스 서버(50)간 초기 설정 과정에 대한 것은 아니다.Referring to FIG. 2, a session formation process between the user terminal 10, the SSO authentication server 200, and the blockchain authentication server 100 for a user to use a single sign-on authentication method. , It is not about the initial setting process between the user terminal 10 and the service server 50.

먼저 사용자 단말(10)은 복수의 서비스 어플리케이션에 대한 싱글 사인-온 으로 인증하기 위해 SSO 인증서버(200)에 초기 등록을 한다. 사용자는 사용자 단말(10)에서 이름, 아이디, 패스워드 및 기타 개인 정보를 포함한 사용자 인증 정보를 생성하고(S100) SSO 인증서버(200)로 생성한 사용자 인증 정보를 전송한다.First, the user terminal 10 initially registers with the SSO authentication server 200 in order to authenticate with single sign-on for a plurality of service applications. The user generates user authentication information including a name, ID, password, and other personal information in the user terminal 10 (S100) and transmits the generated user authentication information to the SSO authentication server 200.

SSO 인증서버(200)는 상기 사용자 인증 정보를 기초로, 싱글 사인-온을 위한 아이디 및 패스워드 인증정보를 생성하고(S110), 블록체인 인증서버(100)로 생성된 사용자 인증정보를 전송한다.The SSO authentication server 200 generates ID and password authentication information for single sign-on based on the user authentication information (S110), and transmits the generated user authentication information to the blockchain authentication server 100.

블록체인 인증서버(100, Primary)는 SSO 인증서버(200)로부터 사용자 인증정보를 수신하면, 블록을 생성한다(S120). 생성된 블록은 블록 체인에 연결된 나머지 복수의 블록체인 인증서버(Secondary)로 전송되어, 블록체인 네트워크 내 노드 모두에 저장된다.When the blockchain authentication server 100, Primary, receives user authentication information from the SSO authentication server 200, it generates a block (S120). The generated block is transmitted to a plurality of remaining blockchain authentication servers (Secondary) connected to the blockchain and stored in all nodes in the blockchain network.

블록체인 인증서버(100, Primary)는 생성된 블록에 상응하는 공개키 및 개인키를 사용자 단말(10)로 전송한다.The blockchain authentication server 100 (Primary) transmits the public key and the private key corresponding to the generated block to the user terminal 10.

S100 내지 S120의 최초 인증 설정 과정이 완료되면, 이후 사용자가 원하는 서비스 어플리케이션이 추가될 때마다, 또는 기등록된 서비스 어플리케이션에 대한 사용자 인증이 발생할 때마다, 즉 인증이 필요한 서비스 서버가 필요할 때마다 블록체인 네트워크 내 모든 노드들의 블록도 업데이트된다. 이에 대해서는 도 2 내지 도 6에서 각각 상세히 설명한다.When the initial authentication setting process of S100 to S120 is completed, a block whenever a service application desired by a user is added thereafter, or whenever a user authentication occurs for a previously registered service application, that is, whenever a service server requiring authentication is required. Blocks of all nodes in the chain network are also updated. This will be described in detail in FIGS. 2 to 6 respectively.

도 3은 본 발명의 일 실시예에 따른 블록 체인을 이용한 사용자 인증 방법을 도시한 흐름도이다. 3 is a flowchart illustrating a user authentication method using a block chain according to an embodiment of the present invention.

도 3에 도시된 사용자 인증 방법은 한 명의 사용자가 복수개의 사용자 단말(10)을 이용하여 어느 하나의 서비스에 인증을 원할 경우의 실시예이다. The user authentication method shown in FIG. 3 is an embodiment when a user wants to authenticate to any one service using a plurality of user terminals 10.

사용자가 사용자 단말(10)을 통해 서비스 어플리케이션에 대한 사용자 인증을 요청하면(S201), SSO 인증서버는 수신된 사용자 인증 요청에 기초하여(S202), 블록 체인 네트워크로 블록체인 생성 요청을 전송한다(S203). 이때 SSO 인증서버는 수신된 사용자 인증 요청으로부터 사용자의 아이디 및 패스워드를 추출할 수 있다.When the user requests user authentication for the service application through the user terminal 10 (S201), the SSO authentication server transmits a block chain creation request to the blockchain network based on the received user authentication request (S202) ( S203). In this case, the SSO authentication server may extract the user's ID and password from the received user authentication request.

블록 체인 네트워크는 제1 노드(Primary)에서 상기 블록 체인 생성 요청에 기초하여, 사용자 단말로 블록 체인 검증 요청을 전송한다. 이때 블록 체인 검증 요청은 푸쉬알림, 문자메세지, 이메일 중 어느 하나로 소정의 시간제한 내 응답을 요하도록, 사용자 단말로 전송될 수 있다.The blockchain network transmits a block chain verification request to the user terminal based on the block chain creation request from the first node (Primary). At this time, the block chain verification request may be transmitted to the user terminal to request a response within a predetermined time limit with any one of a push notification, a text message, and an email.

사용자 단말은 푸쉬알림, 문자메세지, 이메일 중 어느 하나로 소정 시간제한 내 제1 노드로 블록체인 검증 결과를 회신한다. 즉, 블록 생성 권한을 승인하거나 거부하는 응답을 할 수 있다. 블록체인 검증 결과는 사용자 단말에 저장된 개인키로 승인할 수 있다(S204).The user terminal returns the blockchain verification result to the first node within a predetermined time limit with any one of push notification, text message, and email. In other words, it is possible to respond to approve or reject the block creation authority. The blockchain verification result may be approved with a private key stored in the user terminal (S204).

블록체인 네트워크의 제1 노드는 사용자 단말의 응답에 따라 블록 생성 권한을 얻은 경우, 트랜잭션 발생한 것이므로 블록을 생성한다(S205).When the first node of the blockchain network obtains the block creation authority according to the response of the user terminal, since a transaction has occurred, it generates a block (S205).

한편, 블록 체인 네트워크는 제2 노드(Secondary, 해시 참조자 노드)에서, 상기 사용자 단말로부터 사용자 인증 요청을 수신하면, 이에 대한 제1 노드가 원장 생성 권한을 얻지 못한 경우(fail), 제1 노드와 동일한 역할을 똑같이 수행할 수 있다.On the other hand, when the blockchain network receives a user authentication request from the user terminal at the second node (Secondary, hash referrer node), the first node fails to obtain the right to create the ledger for the first node. It can perform the same role in the same way.

제1 노드에서 블록이 생성되면, 제2 노드들, 즉, 해시 참조자 그룹은 생성된 블록을 수신한다(S206).When a block is generated in the first node, the second nodes, that is, the hash reference group, receive the generated block (S206).

SSO인증서버는 제1 노드에서 생성된 블록에 기초하여, 사용자 인증 요청에 대한 싱글사인온(SSO) 승인을 하고, 서비스에 대한 접근권한을 제어한다(S207). 상기 SSO 승인 및 접근권한 제어에 대한 결과, 즉, 인증승인은 서비스 서버에도 제공하여(S208), 사용자가 사용자 단말에서 서비스 서버로부터 서비스를 제공받게 할 수 있다.The SSO authentication server approves single sign-on (SSO) for the user authentication request based on the block generated in the first node, and controls access rights to the service (S207). The result of the SSO approval and access authority control, that is, authentication approval is also provided to the service server (S208), so that the user can receive a service from the service server in the user terminal.

도 4는 본 발명의 다른 실시예에 따른 블록 체인을 이용한 사용자 인증 방법을 도시한 흐름도이다.4 is a flowchart illustrating a user authentication method using a block chain according to another embodiment of the present invention.

도 4에 도시된 사용자 인증 방법은 고정 디바이스에서 사용자가 로그인하는 것으로서, 부족한 네트워크 환경에서 사용자 인증을 사용하는 경우의 실시예이다. The user authentication method illustrated in FIG. 4 is an embodiment in which a user logs in from a fixed device, and uses user authentication in a poor network environment.

사용자가 사용자 단말(10)을 통해 서비스 어플리케이션에 대한 사용자 인증을 요청하면(S301), SSO 인증서버는 수신된 사용자 인증 요청에 기초하여(S302), 블록 체인 네트워크로 블록 해시 검증 확인 요청을 전송한다(S303). 이때 SSO 인증서버는 수신된 사용자 인증 요청으로부터 사용자의 아이디 및 패스워드를 추출할 수 있다.When the user requests user authentication for the service application through the user terminal 10 (S301), the SSO authentication server transmits a block hash verification confirmation request to the blockchain network based on the received user authentication request (S302). (S303). In this case, the SSO authentication server may extract the user's ID and password from the received user authentication request.

블록 체인 네트워크는 제1 노드(Primary)에서 상기 블록 해시 검증 확인에 기초하여, 사용자 단말로 블록 체인 검증 요청을 전송한다. 이때 블록 체인 네트워크는 기존 블록 해시 연결값을 통해 사용자 단말에게 검증을 요청할 수 있다.The blockchain network transmits a block chain verification request to a user terminal based on the block hash verification verification from a first node (Primary). At this time, the blockchain network can request verification from the user terminal through the existing block hash connection value.

사용자 단말은 상기 검증 요청에 대해, 사용자 단말이 알고 있는 블록 해시값과 비교함으로써 블록 해시를 확인하여 제1 노드로 블록체인 검증 결과를 회신한다. 즉, 블록 생성 권한을 승인하거나 거부하는 응답을 할 수 있다(S304).The user terminal checks the block hash by comparing the verification request with a block hash value known to the user terminal, and returns a block chain verification result to the first node. That is, a response to approve or reject the block creation authority may be performed (S304).

블록체인 네트워크의 제1 노드는 사용자 단말의 응답에 따라 블록 생성 권한을 얻은 경우, 트랜잭션 발생한 것이므로 블록을 생성한다(S305).When the first node of the blockchain network obtains the block creation authority according to the response of the user terminal, since a transaction has occurred, it generates a block (S305).

한편, 블록 체인 네트워크는 제2 노드(Secondary, 해시 참조자 노드)에서, 상기 사용자 단말로부터 사용자 인증 요청을 수신하면, 이에 대한 제1 노드가 원장 생성 권한을 얻지 못한 경우(fail), 제1 노드와 동일한 역할을 똑같이 수행할 수 있다.On the other hand, when the blockchain network receives a user authentication request from the user terminal at the second node (Secondary, hash referrer node), the first node fails to obtain the right to create the ledger for the first node. It can perform the same role in the same way.

제1 노드에서 블록이 생성되면, 제2 노드들, 즉, 해시 참조자 그룹은 생성된 블록을 수신한다(S306).When a block is generated at the first node, the second nodes, that is, the hash reference group, receive the generated block (S306).

SSO인증서버는 제1 노드에서 생성된 블록에 기초하여, 사용자 인증 요청에 대한 싱글사인온(SSO) 승인을 하고, 서비스에 대한 접근권한을 제어한다(S307). 상기 SSO 승인 및 접근권한 제어에 대한 결과, 즉, 인증승인은 서비스 서버에도 제공하여(S309), 사용자가 사용자 단말에서 서비스 서버로부터 서비스를 제공받게 할 수 있다(S308)The SSO authentication server approves a single sign-on (SSO) for a user authentication request based on a block generated in the first node, and controls access rights to the service (S307). The result of SSO approval and access authority control, that is, authentication approval, is also provided to the service server (S309), so that the user can receive a service from the service server at the user terminal (S308).

도 5는 본 발명의 또다른 실시예에 따른 블록 체인을 이용한 사용자 인증 방법을 도시한 흐름도이고, 도 6은 도 5의 실시예를 설명하기 위한 참고도이다.5 is a flowchart illustrating a user authentication method using a block chain according to another embodiment of the present invention, and FIG. 6 is a reference diagram for explaining the embodiment of FIG. 5.

도 5에 도시된 사용자 인증 방법은 복수의 사용자 단말을 SPV노드, 즉 해시 참조자 노드로 사용하여 사용자 인증하는 경우의 실시예이다. The user authentication method shown in FIG. 5 is an embodiment of user authentication using a plurality of user terminals as SPV nodes, that is, hash referrer nodes.

도 5를 참고하면, 사용자 A가 제1 사용자 단말(node A)을 통해 서비스 어플리케이션에 대한 사용자 인증을 요청하면(S401), SSO 인증서버는 수신된 사용자 인증 요청에 기초하여(S402), 블록 체인 네트워크로 블록체인 검증 요청으로서, 블록 길이 검증 확인 요청을 전송한다(S403). 이때 SSO 인증서버는 수신된 사용자 인증 요청으로부터 사용자 A의 아이디 및 패스워드를 추출할 수 있다.Referring to FIG. 5, when user A requests user authentication for a service application through a first user terminal (node A) (S401), the SSO authentication server is based on the received user authentication request (S402), As a block chain verification request to the network, a block length verification verification request is transmitted (S403). In this case, the SSO authentication server may extract the user A's ID and password from the received user authentication request.

블록 체인 네트워크의 제1 노드는 제1 사용자 단말로 블록 길이 확인 요청을 전송한다. 이때 블록체인 검증은 블록 길이 비교를 통해 가능하다.The first node of the blockchain network transmits a block length check request to the first user terminal. At this time, blockchain verification is possible through block length comparison.

제1 사용자 단말은 기저장된 블록 길이를 확인한다(S404). 예를 들어 제1 사용자 단말이 알고 있는 블록 길이는 10이라 하자.The first user terminal checks a pre-stored block length (S404). For example, assume that the block length known to the first user terminal is 10.

블록 체인 네트워크의 제1 노드는 다른 사용자 단말로 블록 해시를 요청한다(S405). 다른 사용자 단말은 해시 참조자 노드로서, 제1 노드의 요청에 응답한다(S406). The first node of the blockchain network requests a block hash from another user terminal (S405). The other user terminal is a hash referrer node and responds to the request of the first node (S406).

제1 사용자 단말은 적어도 하나 이상의 해시 참조자 노드(제2 사용자 단말(node B), 제3 사용자 단말(node C) 등)로부터 블록 해시를 무작위로 수신한다. 그리고 수신된 블록 해시를 블록 헤더에 기록하여 블록을 비순환으로 연결하며, 블록을 생성한다(S407). 도 6을 참고하면, 어느 하나의 해시 참조자 노드는 앞 블록의 블록해시가 아닌, 무작위의 1개 이상의 블록 해시를 블록 헤더에 기록한다. 즉, 비방향성으로 사용자 인증 히스토리가 블록에 기록되는 것이다. 제1 사용자 단말이 저장한 블록 길이는 하나 증가한다. 상기 예에서 제1 사용자 단말은 블록 길이를 10에서 11로 업데이트 한다. The first user terminal randomly receives a block hash from at least one hash referrer node (a second user terminal (node B), a third user terminal (node C), etc.). Then, the received block hash is recorded in the block header to connect the blocks in an acyclic manner, and a block is generated (S407). Referring to FIG. 6, any one hash referrer node records at least one random block hash in the block header, not the block hash of the previous block. In other words, user authentication history is recorded in a block in a non-directional manner. The block length stored by the first user terminal is increased by one. In the above example, the first user terminal updates the block length from 10 to 11.

즉, 블록체인 인증서버와 인증을 요청한 제1 사용자 단말은 블록을 함께 쌓기 때문에 같은 블록 길이로 검증이 가능한 효과가 있다.In other words, since the block chain authentication server and the first user terminal requesting authentication stack blocks together, it is possible to verify the same block length.

만약 비방향성이 아닌, 방향성을 가지고 사용자 인증 히스토리가 기록될 경우, 즉, 프라이빗 블록체인에서 블록의 연결성을 통해 인증이 이루어지는 경우, 블록의 변경을 통해 보안성이 훼손될 가능성이 있다. 그러나, 블록체인 인증서버와 인증을 요청한 제1 사용자 단말은 블록을 함께 쌓기 때문에 같은 블록 길이로 검증이 가능한 효과가 있다.If the user authentication history is recorded with directionality rather than non-direction, that is, if authentication is performed through the connectivity of blocks in a private blockchain, there is a possibility that security is compromised through block changes. However, since the block chain authentication server and the first user terminal requesting authentication stack blocks together, there is an effect that verification with the same block length is possible.

SSO 서버는 제1 노드에서 수신된 블록에 기초하여, 사용자 인증 요청에 대한 싱글사인온(SSO) 승인을 하고, 서비스에 대한 접근권한을 제어한다(S411). 상기 SSO 승인 및 접근권한 제어에 대한 결과, 즉, 사용자가 사용자 단말에서 서비스 서버로부터 서비스를 제공받게 할 수 있다(S412). The SSO server approves single sign-on (SSO) for the user authentication request based on the block received from the first node, and controls access rights to the service (S411). As a result of the SSO approval and access authority control, that is, the user may be provided with a service from the service server in the user terminal (S412).

이상에서 설명한 바와 같이, 본 발명의 블록체인 인증 서버를 이용한 사용자 인증방법에 따르면, SSO 인증 뿐만 아니라 블록을 이용한 인증까지 수행하게 됨으로써, 사용자 인증의 보안성을 향상시킬 수 있다. 즉, 블록은 사용자가 사용자 인증을 수행할 때마다 계속 새로 생성되므로, 공격자가 사용자 인증 정보를 알게 되더라도, 검증하려는 블록이 매번 달라지게 되어 제3자에게 유출되더라도 제3자는 유효한 정보로 활용할 수 없다.As described above, according to the user authentication method using the blockchain authentication server of the present invention, not only SSO authentication but also authentication using a block is performed, thereby improving the security of user authentication. In other words, blocks are continuously created every time a user performs user authentication, so even if an attacker learns user authentication information, even if the block to be verified changes every time and leaks to a third party, the third party cannot use it as valid information. .

또한, 본 발명의 블록체인 인증 서버를 이용한 사용자 인증방법에 따르면, 사용자 인증 정보에 대해 복사 또는 위/변조가 어려워지므로, 프라이버시를 제공할 수 있다. In addition, according to the user authentication method using the blockchain authentication server of the present invention, it is difficult to copy or forgery/modify user authentication information, and thus privacy can be provided.

또한, 어느 하나의 인증 서버가 문제를 일으키더라도 다른 블록 체인 인증 서버에 저장된 사용자 인증 정보를 활용함으로써 사용자 인증 정보를 안정적으로 관리할 수 있다.In addition, even if any one authentication server causes a problem, user authentication information can be stably managed by utilizing the user authentication information stored in another block chain authentication server.

이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. The embodiments according to the present invention described above may be implemented in the form of program instructions that can be executed through various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded in the computer-readable recording medium may be specially designed and configured for the present invention, or may be known and usable to those skilled in the computer software field. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magnetic-optical media such as floptical disks. media), and a hardware device specially configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of the program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform processing according to the present invention, and vice versa.

이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.In the above, the present invention has been described by specific matters such as specific elements and limited embodiments and drawings, but this is provided only to help a more general understanding of the present invention, and the present invention is not limited to the above embodiments. , Anyone with ordinary knowledge in the technical field to which the present invention pertains can make various modifications and variations from these descriptions.

따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위 뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention is limited to the above-described embodiments and should not be defined, and all modifications that are equivalently or equivalent to the claims as well as the claims to be described later fall within the scope of the spirit of the present invention. I would say.

10 : 사용자 단말
100 : 블록체인 인증서버
200 : SSO 인증서버
50 : 서비스 서버
10: user terminal
100: Blockchain authentication server
200: SSO authentication server
50: service server

Claims (13)

사용자 정보를 기초로 인증된 사용자에게 각각이 서비스를 제공하는 복수의 서비스 서버;
상기 인증된 사용자에게 상기 서비스를 제공받는 적어도 하나의 사용자 단말;
적어도 하나의 상기 서비스 서버의 요청에 따라 상기 사용자 정보를 확인 요청하고, 접근 권한 정보에 따라 상기 사용자에 대한 상기 서비스의 접근을 허용하는 통합인증서버; 및
복수의 컴퓨팅 장치를 포함하여, 상기 통합인증서버로부터 상기 사용자 정보의 확인 요청을 받으면, 방향성 비사이클 그래프(DAG : directed acyclic graph)를 이용하여 상기 사용자 단말에 블록생성 요청을 전송하고, 상기 사용자 단말로부터 상기 요청에 회신받으면 블록을 생성하여 상기 통합인증서버로 상기 접근권한 정보를 회신하는 블록체인 네트워크;를 포함하는, 블록체인 기반의 사용자 인증 시스템.
A plurality of service servers each providing a service to an authenticated user based on user information;
At least one user terminal receiving the service from the authenticated user;
An integrated authentication server for requesting confirmation of the user information according to a request of at least one service server, and allowing access to the service for the user according to access authority information; And
Including a plurality of computing devices, upon receiving a request for confirmation of the user information from the integrated authentication server, transmits a block generation request to the user terminal using a directed acyclic graph (DAG), and the user terminal Including, a blockchain-based user authentication system comprising; a block chain network that generates a block upon receiving a reply to the request from and returns the access right information to the integrated authentication server.
제1항에 있어서, 상기 통합인증서버는
상기 사용자 단말로부터 사용자 인증 요청을 수신하면 상기 블록체인 네트워크로 상기 사용자 인증 요청에 포함된 상기 사용자 정보의 확인 요청을 전송하고, 상기 블록체인 네트워크에서 상기 확인 요청에 따른 검증 승인을 수신하면, 적어도 하나의 상기 서비스 서버로 인증 결과를 전송하는 것인, 블록체인 기반의 사용자 인증 시스템.
The method of claim 1, wherein the integrated authentication server
Upon receiving a user authentication request from the user terminal, a request for confirmation of the user information included in the user authentication request is transmitted to the blockchain network, and upon receiving verification approval according to the confirmation request from the blockchain network, at least one To transmit the authentication result to the service server of, Blockchain-based user authentication system.
제1항에 있어서, 상기 블록체인 네트워크는
상기 통합인증서버로부터 상기 사용자 인증 요청을 받으면, 상기 사용자 인증 요청을 전송한 상기 사용자 단말로 블록 길이 확인 요청을 전송하고,
상기 사용자 단말로부터 상기 블록 길이를 확인받으면, 복수의 해시 참조자 노드로 블록 해시 요청을 전송하고,
상기 블록 해시 요청으로 상기 해시 참조자 노드에서 생성된 블록 해시에 기초하여 상기 블록을 생성하며,
상기 사용자 단말에서 생성된 상기 블록을 수신하면, 블록 길이를 업데이트하고 상기 통합인증서버로 상기 접근권한 정보를 전송하는 것인, 블록체인 기반의 사용자 인증 시스템.
The method of claim 1, wherein the blockchain network
When receiving the user authentication request from the integrated authentication server, transmits a block length check request to the user terminal that transmitted the user authentication request,
When the block length is confirmed from the user terminal, a block hash request is transmitted to a plurality of hash referrer nodes,
Generates the block based on the block hash generated by the hash reference node in the block hash request,
Upon receiving the block generated by the user terminal, the block length is updated and the access right information is transmitted to the integrated authentication server.
제3항에 있어서, 상기 사용자 단말은
상기 해시 참조자 노드 중 무작위의 적어도 하나로부터 상기 블록 해시를 수신하여 블록 헤더에 기록하며 상기 블록을 생성하는 것인, 블록체인 기반의 사용자 인증 시스템.
The method of claim 3, wherein the user terminal
Receiving the block hash from at least one of the hash referrer nodes randomly, recording the block hash in a block header, and generating the block.
제1항에 있어서, 상기 블록체인 네트워크는
상기 사용자 단말로 푸쉬 알림, 문자메세지, 이메일 중 어느 하나로 소정의 시간제한 내 응답을 요하는 상기 블록 생성 요청을 전송하는 것인, 블록체인 기반의 사용자 인증 시스템.
The method of claim 1, wherein the blockchain network
To the user terminal to transmit the block generation request that requires a response within a predetermined time limit to any one of a push notification, text message, e-mail, blockchain-based user authentication system.
제5항에 있어서, 상기 블록체인 네트워크는
상기 사용자 단말로부터 상기 블록 생성요청에 따른 승인을 수신하면, 상기 블록을 생성하고 상기 통합인증서버로 상기 접근권한 정보를 전송하는 것인, 블록체인 기반의 사용자 인증 시스템.
The method of claim 5, wherein the blockchain network
When receiving approval according to the block generation request from the user terminal, the block is generated and the access right information is transmitted to the integrated authentication server.
제1항에 있어서, 상기 블록체인 네트워크는
상기 사용자 정보의 확인 요청을 수신하면 상기 사용자 단말로 블록 해시 확인 요청을 전송하는 것인, 블록체인 기반의 사용자 인증 시스템.
The method of claim 1, wherein the blockchain network
When receiving a request for confirmation of the user information, a block hash confirmation request is transmitted to the user terminal.
제7항에 있어서, 상기 블록체인 네트워크는
상기 사용자 단말로부터 상기 블록 해시 확인 요청에 따른 블록 해시를 확인받으면 상기 블록을 생성하고 상기 통합인증서버로 상기 접근권한 정보를 전송하는 것인, 블록체인 기반의 사용자 인증 시스템.
The method of claim 7, wherein the blockchain network
When the block hash according to the block hash confirmation request is confirmed from the user terminal, the block is generated and the access right information is transmitted to the integrated authentication server.
통합인증서버가 사용자 단말로부터 사용자 인증 요청을 수신하면, 블록체인 검증 요청을 블록체인 네트워크로 전송하는 단계;
상기 블록체인 네트워크에 포함된 제1 노드는 상기 사용자 단말로 블록체인 검증 요청을 전송하고, 상기 검증 요청에 대한 응신에 기초하여 블록을 생성하는 단계;
상기 블록체인 네트워크에 포함된 제2 노드는 상기 생성된 블록을 수신하여 해시값을 업데이트하는 단계;
상기 제1 노드는 상기 생성된 블록에 기초하여 상기 통합인증서버로 블록체인 검증 승인을 전송하는 단계; 및
상기 통합인증서버는 상기 블록체인 검증 승인에 따라 상기 사용자 단말의 접근 권한을 제어하는 단계를 포함하는, 블록체인 기반의 사용자 인증 방법.
When the integrated authentication server receives the user authentication request from the user terminal, transmitting a block chain verification request to the block chain network;
The first node included in the blockchain network transmits a blockchain verification request to the user terminal, and generates a block based on a response to the verification request;
Updating a hash value by receiving the generated block by a second node included in the blockchain network;
Transmitting, by the first node, a block chain verification approval to the integrated authentication server based on the generated block; And
The integrated authentication server comprises the step of controlling the access right of the user terminal according to the block chain verification approval, blockchain-based user authentication method.
제9항에 있어서,
상기 제1 노드는 상기 사용자 단말로 문자메세지, 이메일 중 어느 하나로 소정의 시간제한 내 응답을 요하는 상기 블록체인 검증 요청을 전송하고,
상기 사용자 단말은 개인키를 이용하여 상기 블록체인 검증 요청에 상응하는 상기 블록체인 검증 승인을 회신하는 것인, 블록체인 기반의 사용자 인증 방법.
The method of claim 9,
The first node transmits the block chain verification request requiring a response within a predetermined time limit to any one of a text message or e-mail to the user terminal, and
The user terminal using a private key to return the block chain verification approval corresponding to the block chain verification request, Blockchain-based user authentication method.
제9항에 있어서,
상기 제1 노드는 상기 사용자 단말로 기저장된 해시값을 포함한 상기 블록체인 검증 요청을 전송하고,
상기 사용자 단말은 상기 해시값의 확인결과에 기초하여 상기 블록체인 검증 승인을 회신하는 것인, 블록체인 기반의 사용자 인증 방법.
The method of claim 9,
The first node transmits the block chain verification request including a hash value previously stored to the user terminal,
The user terminal is to reply to the blockchain verification approval based on the confirmation result of the hash value, blockchain-based user authentication method.
통합인증서버가 사용자 단말로부터 사용자 인증 요청을 수신하면, 블록 체인 검증 요청을 블록체인 네트워크로 전송하는 단계;
상기 블록체인 네트워크는 방향성 비사이클 그래프(DAG : directed acyclic graph) 방식으로 상기 사용자 단말에 블록생성 요청을 전송하고, 상기 사용자 단말로부터 상기 요청에 회신받으면 블록을 생성하는 단계;
상기 블록체인 네트워크는 상기 생성된 블록을 수신하여 상기 블록 체인 검증 요청에 상응하는 블록 체인 검증 승인을 수행하는 단계; 및
상기 통합인증서버는 상기 블록체인 검증 승인에 따라 상기 사용자 단말의 접근 권한을 제어하는 단계를 포함하는, 블록체인 기반의 사용자 인증 방법.
When the integrated authentication server receives the user authentication request from the user terminal, transmitting a block chain verification request to the block chain network;
The block chain network transmitting a block generation request to the user terminal in a directed acyclic graph (DAG) method, and generating a block upon receiving a reply to the request from the user terminal;
The block chain network receiving the generated block and performing a block chain verification approval corresponding to the block chain verification request; And
The integrated authentication server comprises the step of controlling the access rights of the user terminal according to the block chain verification approval, blockchain-based user authentication method.
제12항에 있어서, 상기 블록을 생성하는 단계는
상기 블록체인 네트워크에 포함된 제1 노드는 상기 블록 체인 검증 요청에 따라 상기 사용자 단말로 블록 길이 확인 요청을 전송하고, 상기 확인 요청에 대한 응신에 기초하여 블록 길이를 확인하는 단계;
상기 제1 노드는 상기 블록 길이가 일치하는 경우, 상기 블록체인 네트워크에 포함된 제2 노드로 블록 해시를 요청하는 단계; 및
상기 사용자 단말은 상기 제2 노드로부터 상기 블록 해시 수신하여 블록 헤더에 기록하고 새로운 블록을 생성하는 단계;를 포함하는 것인, 블록체인 기반의 사용자 인증 방법.
The method of claim 12, wherein generating the block comprises:
The first node included in the blockchain network transmits a block length check request to the user terminal according to the block chain verification request, and checks the block length based on a response to the check request;
The first node requesting a block hash from a second node included in the block chain network when the block lengths match; And
The user terminal receives the block hash from the second node, records it in a block header, and creates a new block.
KR1020190049327A 2019-04-26 2019-04-26 User Identification Method Using Block Chain and System thereof KR20200125279A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190049327A KR20200125279A (en) 2019-04-26 2019-04-26 User Identification Method Using Block Chain and System thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190049327A KR20200125279A (en) 2019-04-26 2019-04-26 User Identification Method Using Block Chain and System thereof

Publications (1)

Publication Number Publication Date
KR20200125279A true KR20200125279A (en) 2020-11-04

Family

ID=73571374

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190049327A KR20200125279A (en) 2019-04-26 2019-04-26 User Identification Method Using Block Chain and System thereof

Country Status (1)

Country Link
KR (1) KR20200125279A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220070921A (en) * 2020-11-23 2022-05-31 부산대학교 산학협력단 Method and system for performing service access control based on blockchain
KR20220160286A (en) * 2021-05-27 2022-12-06 울산대학교 산학협력단 Method and system for providing user information management service based on decentralized identifiers
WO2024091034A1 (en) * 2022-10-26 2024-05-02 주식회사 애니싸인 Authentication system in distributed environment using mobile id checking and facial recognition between user mobile terminals

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180012028A (en) 2016-07-26 2018-02-05 김도훈 Support apparatus for shoes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180012028A (en) 2016-07-26 2018-02-05 김도훈 Support apparatus for shoes

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220070921A (en) * 2020-11-23 2022-05-31 부산대학교 산학협력단 Method and system for performing service access control based on blockchain
KR20220160286A (en) * 2021-05-27 2022-12-06 울산대학교 산학협력단 Method and system for providing user information management service based on decentralized identifiers
WO2024091034A1 (en) * 2022-10-26 2024-05-02 주식회사 애니싸인 Authentication system in distributed environment using mobile id checking and facial recognition between user mobile terminals

Similar Documents

Publication Publication Date Title
CN111429254B (en) Business data processing method and device and readable storage medium
WO2022262078A1 (en) Access control method based on zero-trust security, and device and storage medium
US11870769B2 (en) System and method for identifying a browser instance in a browser session with a server
CN110915183B (en) Block chain authentication via hard/soft token validation
KR102181600B1 (en) Method for sso service through blockchain, and terminal and server using the same
US10944574B2 (en) Method for providing virtual asset service based on decentralized identifier and virtual asset service providing server using them
JP6215934B2 (en) Login verification method, client, server, and system
US9537861B2 (en) Method of mutual verification between a client and a server
WO2021169107A1 (en) Internet identity protection method and apparatus, electronic device, and storage medium
US8037515B2 (en) Methods and apparatus for providing application credentials
US8621216B2 (en) Method, system and device for synchronizing between server and mobile device
CN111066286A (en) Retrieving common data for blockchain networks using high availability trusted execution environments
KR20170106515A (en) Multi-factor certificate authority
KR102252086B1 (en) Method for oauth service through blockchain, and terminal and server using the same
US20210099431A1 (en) Synthetic identity and network egress for user privacy
KR20190114433A (en) Method for oauth service through blockchain, and terminal and server using the same
KR20200125279A (en) User Identification Method Using Block Chain and System thereof
Abdelrazig Abubakar et al. Blockchain-based identity and authentication scheme for MQTT protocol
CN110610418B (en) Transaction state query method, system, device and storage medium based on block chain
KR20210039190A (en) Method for maintaining private information on blockchain network and device thereof
Durán et al. An architecture for easy onboarding and key life-cycle management in blockchain applications
KR102216305B1 (en) Method for sso service through blockchain, and terminal and server using the same
US20240005312A1 (en) Multi-Factor User Authentication Using Blockchain Tokens
CN112242979A (en) IP address prefix authentication method and equipment based on block chain system
CN108886524B (en) Securing remote authentication

Legal Events

Date Code Title Description
E601 Decision to refuse application