KR101756719B1 - 로그인을 지원하기 위한 방법 및 이를 사용한 인증 지원 서버 - Google Patents
로그인을 지원하기 위한 방법 및 이를 사용한 인증 지원 서버 Download PDFInfo
- Publication number
- KR101756719B1 KR101756719B1 KR1020160051940A KR20160051940A KR101756719B1 KR 101756719 B1 KR101756719 B1 KR 101756719B1 KR 1020160051940 A KR1020160051940 A KR 1020160051940A KR 20160051940 A KR20160051940 A KR 20160051940A KR 101756719 B1 KR101756719 B1 KR 101756719B1
- Authority
- KR
- South Korea
- Prior art keywords
- hash value
- specific user
- value
- specific
- information
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0861—Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H04L9/3223—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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 digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3265—Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
본 발명의 일 태양에 따르면, 로그인을 지원하기 위한 방법에 있어서, (a) 기존에 인증 지원 서버가 제1 특정 해쉬값 및 상기 제1 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값을 소정의 데이터 구조로서 데이터베이스에 등록하고 있는 상태에서, 상기 인증 지원 서버가, 인증 정보 사용 요청으로서 (1) 특정 사용자의 public key 및 (2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득하는 단계, 및 (b) 상기 (1) 및 (2)에 대한 해쉬값인 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값은 상기 소정의 데이터 구조를 참조로 하여 결정됨 - 을 연산함으로써 생성되는 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 인증 지원 서버가, 상기 특정 사용자의 public key를 생체 인증 서버에 전송하거나 상기 생체 인증 서버가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 (i) 상기 생체 인증 서버가 random nonce를 생성하거나 생성하도록 지원하고, (ii) 상기 특정 사용자에 대한 로그인 행위로서 상기 특정 사용자의 생체 정보가 획득되면, 상기 random nonce를 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하거나 검증하도록 지원하며, (iii) 상기 검증 결과에 대한 메시지를 전송하거나 전송하도록 지원하는 단계를 포함하는 방법이 제공된다.
Description
본 발명은 로그인을 지원하기 위한 방법 및 이를 사용한 인증 지원 서버 에 관한 것으로, 좀더 상세하게는, 기존에 인증 지원 서버가 제1 특정 해쉬값 및 상기 제1 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값을 소정의 데이터 구조로서 데이터베이스에 등록하고 있는 상태에서, 인증 정보 사용 요청으로서 (1) 특정 사용자의 public key 및 (2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득하고, 상기 (1) 및 (2)에 대한 해쉬값인 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값은 상기 소정의 데이터 구조를 참조로 하여 결정됨 - 을 연산함으로써 생성되는 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 특정 사용자의 public key를 생체 인증 서버에 전송하거나 상기 생체 인증 서버가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 (i) 상기 생체 인증 서버가 random nonce를 생성하거나 생성하도록 지원하고, (ii) 상기 특정 사용자에 대한 로그인 행위로서 상기 특정 사용자의 생체 정보가 획득되면, 상기 random nonce를 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하거나 검증하도록 지원하며, (iii) 상기 검증 결과에 대한 메시지를 전송하거나 전송하도록 지원하는 프로세스를 수행하는, 로그인을 지원하기 위한 방법 및 이를 사용한 인증 지원 서버에 관한 것이다.
생체 인증 기술이란 지문, 홍채, 얼굴, 음성 등 개인의 고유한 생체 정보를 이용하여 인증을 수행하는 기술을 말한다. 생체 인증 기술은 고유한 생체 정보를 이용하므로 보안성이 높고 편리한 바, 최근 FIDO(Fast Identity Online)와 같은 생체 인증 기술을 접목한 사용자 인증 기술이 각광을 받고 있다.
한편, 최근 가상 화폐의 블록체인 기술은 블록체인 상에 기록된 거래 내역의 위/변조가 불가능하므로 보안성이 중요시되는 금융산업분야에서 주목을 받고 있다.
이에 발명자는 좀더 안전하게 금융 거래를 할 수 있도록 생체 인증 기술에 블록체인 기술을 접목시켜 PKI 기반으로 인증 정보를 생성하고 블록체인 상에 등록하여 관리할 수 있는 기술을 발명한 바 있다.
다만, 인증 정보를 등록할 필요가 있는 모든 경우에 블록체인에 접근하여 기록을 하는 것은 비효율적일 수 있다. 특히, transaction 요청이 많아졌을 때, 서비스 제공의 bottle neck 현상이 발생될 수 있고, 매번 transaction fee를 지불해야 하므로 서비스 운영에 많은 비용이 들 수 있는 우려가 있다.
이에 발명자는 상기 발명을 보완하여 위/변조가 불가능하고 실시간으로 인증 정보를 기록할 수 있는 장점을 살리면서도 서비스 요청이 몰릴 경우에도 빠른 서비스 속도를 보장하고 비용도 절감할 수 있는 인증 정보를 등록할 수 있는 시스템을 발명하였다. 특히, 본 시스템은 소정의 데이터 구조를 통해 등록된 인증 정보를 이용하여 로그인을 지원할 수 있다.
본 발명은 상술한 문제점들을 모두 해결하는 것을 그 목적으로 한다.
본 발명은 인증 지원 서버가 인증 정보 사용 요청으로서 (i) 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득하는 경우, 이에 대한 해쉬값인 특정 해쉬값 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연삼함으로써 생성되는 제1 대표 해쉬값 또는 이를 가공한 값이 기존에 소정의 데이터 구조 상에서 이와 동일한 방식으로 산출되어 데이터베이스에 등록된 제2 대표 해쉬값 또는 이를 가공한 값과 대응되는지 확인하고, 대응되는 경우, 생체 인증 서버에 의해 생성된 random nonce를 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증한 결과 정보를 제공함으로써 로그인을 지원하는 것을 다른 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.
본 발명의 일 태양에 따르면, 로그인을 지원하기 위한 방법에 있어서, (a) 기존에 인증 지원 서버가 제1 특정 해쉬값 및 상기 제1 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값을 소정의 데이터 구조로서 데이터베이스에 등록하고 있는 상태에서, 상기 인증 지원 서버가, 인증 정보 사용 요청으로서 (1) 특정 사용자의 public key 및 (2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득하는 단계, 및 (b) 상기 (1) 및 (2)에 대한 해쉬값인 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값은 상기 소정의 데이터 구조를 참조로 하여 결정됨 - 을 연산함으로써 생성되는 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 인증 지원 서버가, 상기 특정 사용자의 public key를 생체 인증 서버에 전송하거나 상기 생체 인증 서버가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 (i) 상기 생체 인증 서버가 random nonce를 생성하거나 생성하도록 지원하고, (ii) 상기 특정 사용자에 대한 로그인 행위로서 상기 특정 사용자의 생체 정보가 획득되면, 상기 random nonce를 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하거나 검증하도록 지원하며, (iii) 상기 검증 결과에 대한 메시지를 전송하거나 전송하도록 지원하는 단계를 포함하는 방법이 제공된다.
본 발명의 다른 태양에 따르면, 로그인을 지원하기 위한 인증 지원 서버에 있어서, 기존에 인증 지원 서버가 제1 특정 해쉬값 및 상기 제1 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값을 소정의 데이터 구조로서 데이터베이스에 등록하고 있는 상태에서, 인증 정보 사용 요청으로서 (1) 특정 사용자의 public key 및 (2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득하는 통신부, 및 상기 (1) 및 (2)에 대한 해쉬값인 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값은 상기 소정의 데이터 구조를 참조로 하여 결정됨 - 을 연산함으로써 생성되는 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 특정 사용자의 public key를 생체 인증 서버에 전송하거나 상기 생체 인증 서버가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 (i) 상기 생체 인증 서버가 random nonce를 생성하거나 생성하도록 지원하고, (ii) 상기 특정 사용자에 대한 로그인 행위로서 상기 특정 사용자의 생체 정보가 획득되면, 상기 random nonce를 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하거나 검증하도록 지원하며, (iii) 상기 검증 결과에 대한 메시지를 전송하거나 전송하도록 지원하는 프로세서를 포함하는 인증 지원 서버가 제공된다.
본 발명에 의하면, 다음과 같은 효과가 있다.
또한, 본 발명은 인증 지원 서버가 인증 정보 사용 요청으로서 (i) 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득하는 경우, 이에 대한 해쉬값인 특정 해쉬값 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연삼함으로써 생성되는 제1 대표 해쉬값 또는 이를 가공한 값이 기존에 소정의 데이터 구조 상에서 이와 동일한 방식으로 산출되어 데이터베이스에 등록된 제2 대표 해쉬값 또는 이를 가공한 값과 대응되는지 확인하고, 대응되는 경우, 생체 인증 서버에 의해 생성된 random nonce를 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증한 결과 정보를 제공함으로써 로그인을 지원할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 인증 정보를 생성하고 등록하는 인증 지원 서버의 구성을 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 인증 정보의 생성 및 등록 과정을 도시한 시퀀스다이어그램이다.
도 3은 본 발명의 일 실시예에 따른 인증 정보에 대한 파기 과정을 도시한 시퀀스다이어그램이다.
도 4는 본 발명의 다른 실시예에 따른 로그인 시 인증 정보를 사용하는 과정을 도시한 시퀀스다이어그램이다.
도 5는 본 발명의 또 다른 실시예에 따른 거래시 인증 정보를 사용하는 과정을 도시한 시퀀스다이어그램이다.
도 6 및 7은 본 발명의 일 실시예에 따라 생성된 머클 트리의 예를 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 인증 정보의 생성 및 등록 과정을 도시한 시퀀스다이어그램이다.
도 3은 본 발명의 일 실시예에 따른 인증 정보에 대한 파기 과정을 도시한 시퀀스다이어그램이다.
도 4는 본 발명의 다른 실시예에 따른 로그인 시 인증 정보를 사용하는 과정을 도시한 시퀀스다이어그램이다.
도 5는 본 발명의 또 다른 실시예에 따른 거래시 인증 정보를 사용하는 과정을 도시한 시퀀스다이어그램이다.
도 6 및 7은 본 발명의 일 실시예에 따라 생성된 머클 트리의 예를 도시한 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
도 1은 본 발명의 일 실시예에 따른 인증 정보를 생성하고 등록하는 인증 지원 서버의 구성을 도시한 블록도이고, 도 2는 본 발명의 일 실시예에 따른 인증 정보의 생성 및 등록 과정을 도시한 시퀀스다이어그램이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 인증 정보를 생성하고 등록하는 인증 지원 서버(100)는 프로세서(110) 및 통신부(120)를 포함한다.
프로세서(110)는, 은행 서버(400)로부터 인증 정보에 대한 등록 요청을 받은 생체 인증 서버(300)로부터 (i) 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값이 획득되면, 상기 public key의 등록 여부를 확인하는 구성이다. 생체 인증 서버(300)는 생체 정보를 통해 사용자 인증을 수행하는 장치로서, 예를 들어, FIDO 서버가 될 수 있다.
도 2를 참조하면, 인증 정보를 생성하고 등록하는 과정은 사용자 단말(500)에서 특정 사용자의 public key가 생성되어 은행 서버(400)에 전달되는 과정부터 시작될 수 있다(S202). 이때, private key의 생성도 이루어질 수 있다. 특정 사용자는 미리 은행에 방문하여 특정 사용자 정보를 등록해 놓을 수 있고, 이를 통해 특정 사용자에 대해 인증이 이루어질 수 있다. 일 예로, 특정 사용자의 인증은, 상기 특정 사용자의 public key 외에 상기 특정 사용자 정보의 해쉬값이 획득되면, 상기 은행 서버(400)가 기 보유하고 있는 상기 특정 사용자 정보에 대한 해쉬값과 비교하여 서로 대응되는지에 따라 인증이 이루어질 수 있다. 여기서, 특정 사용자 정보는, 상기 특정 사용자의 이름(N), 생년월일(B), 휴대폰 번호(#), 이메일(E) 중 적어도 일부를 포함하여 해당 사용자를 식별할 수 있는 정보일 수 있다. 특정 사용자가 인증이 되면, 은행 서버(400)는, 상기 특정 사용자 정보의 해쉬값인 Uhash를 생체 인증 서버(300)에 전송할 수 있다(S204). 이때, 특정 사용자의 public key도 함께 전송이 이루어질 수 있다. Uhash를 이용하여 user id가 생성되는 경우, Uhash 대신에, 상기 user id 및 상기 Uhash의 해쉬값인 Idhash가 전송될 수도 있다. Idhash는 SHA256hash일 수 있다. 생체 인증 서버(300)는, (i) 상기 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값으로서 상기 Uhash 또는 상기 Uhash를 가공한 값을 인증 지원 서버(100)로 전송할 수 있다(S206). 이 경우 마찬가지로 Uhash를 가공한 값은, 상기 Uhash를 이용하여 user id가 생성되는 경우, 상기 user id 및 상기 Uhash의 해쉬값인 Idhash일 수 있다. 프로세서(110)는, 이렇게 (i) 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값이 획득되면, 로컬 데이터베이스(미도시)에서 상기 public key의 등록 여부를 확인한다(S208). 참고로, 사용자 단말(500)은 사용자 입/출력을 수행할 수 있는 단말 장치로서, 스마트폰, PC, 태블릿 PC, 기타 사용자 입/출력이 가능한 전자 장치 중 어느 하나가 될 수 있다.
통신부(120)는, 생체 인증 서버(300) 또는 데이터베이스(200)와 통신하는 구성이다. 여기서, 데이터베이스(200)는 가상화폐의 블록체인일 수 있다.
상기 확인 결과, 상기 public key가 등록 상태이면(S210), 이미 인증 정보가 등록되어 있다는 의미이므로, 통신부(120)는, 생체 인증 서버(300)에 error 메시지를 전송할 수 있다(S212). error 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)로 전달된다.
이와 달리, 상기 확인 결과, 상기 public key가 미등록 상태이면, (i) 상기 특정 사용자의 public key 및 (ii) 상기 해쉬값 또는 이를 가공한 값을 output으로 하는 transaction을 생성하여 데이터베이스에 전송할 수 있다(S214, S216). 구체적으로, 상기 통신부(120)는, 상기 확인 결과, 상기 public key가 미등록 상태이면, (i) 상기 특정 사용자의 public key 및 (ii) 상기 해쉬값 또는 이를 가공한 값을 output1으로 하고(op_msg1 = pubkey:IDhash), 소정의 액수의 가상 화폐를 output2로 하는 transaction을 생성하여 데이터베이스에 전송할 수 있다. output2는 후술하는 바와 같이 인증 정보 파기용으로 사용될 수 있다. 즉, output2를 입력값으로 하는 새로운 transaction을 생성하여 데이터베이스(200)에 전송함으로써 인증 정보에 대한 파기가 이루어질 수 있다.
또한, 통신부(120)는, 상기 transaction이 상기 데이터베이스(200) 상에 기록된 위치 정보를 나타내는 transaction ID를 획득하며(S218), 상기 생체 인증 서버(300)에 (i) 상기 public key 및 (ii) 상기 해쉬값 또는 이를 가공한 값이 정상적으로 등록되었음을 알리는 메시지를 전달(S220)할 수 있다. 상기 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)에 전달된다.
통신부(120)는 다양한 통신 기술로 구현될 수 있다. 즉, 와이파이(WIFI), WCDMA(Wideband CDMA), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), HSPA(High Speed Packet Access), 모바일 와이맥스(Mobile WiMAX), 와이브로(WiBro), LTE(Long Term Evolution), 블루투스(bluetooth), 적외선 통신(IrDA, infrared data association), NFC(Near Field Communication), 지그비(Zigbee), 무선랜 기술 등이 적용될 수 있다. 또한, 인터넷과 연결되어 서비스를 제공하는 경우 인터넷에서 정보전송을 위한 표준 프로토콜인 TCP/IP를 따를 수 있다.
한편, 프로세서(110)는, transaction ID, 특정 사용자 정보의 해쉬값 또는 이를 가공한 값, 특정 사용자의 public key를 로컬 데이터베이스(미도시)에 저장할 수 있다.
프로세서(110)는, 통신부(120) 및 다른 구성요소 간의 데이터의 흐름을 제어하는 기능을 수행한다. 즉, 프로세서(110)는 인증 지원 서버(100)의 각 구성요소 간의 데이터의 흐름을 제어함으로써, 통신부(120) 및 다른 구성요소에서 각각 고유 기능을 수행하도록 제어한다.
프로세서(110)는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 어플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.
이하에서는 인증 정보에 대한 파기를 수행하는 인증 지원 서버(100)의 구성 및 동작에 대해서 설명한다. 이하에서 설명하는 인증 정보에 대한 파기를 수행하는 인증 지원 서버는 전술한 인증 지원 서버(100)와 별도의 장치로 구성될 수도 있으나, 설명의 편의를 위해 동일한 장치인 것으로 설명한다.
도 3은 본 발명의 일 실시예에 따른 인증 정보에 대한 파기 과정을 도시한 시퀀스다이어그램이다.
프로세서(110)는, 인증 정보 생성 및 등록 과정과 마찬가지로 은행 서버(400)로부터 인증 정보에 대한 파기 요청을 받은 생체 인증 서버(300)로부터 특정 사용자의 public key가 획득되면, 상기 public key의 등록 여부를 확인한다(S308). public key의 등록 여부를 확인하기 이전의 과정은 인증 정보를 생성하고 등록하는 과정과 유사하게 이루어진다.
우선, 사용자 단말(500)에서 특정 사용자의 public key가 은행 서버(400)에 전달되는 과정부터 시작될 수 있다(S302). 만일 사용자 단말(500)에 복수의 사용자의 public key가 저장되어 있을 경우, 사용자의 선택에 의해 선택된 public key가 은행 서버(400)에 전달될 수 있다. 또한, 지문 정보, 안면 정보, 홍채 정보 등과 같은 생체 정보의 입력에 의해 public key가 선택될 수도 있을 것이다. 은행 서버(400)는 특정 사용자에 대해 인증을 수행한다. 그리고, 특정 사용자가 인증이 되면, 은행 서버(400)는, 상기 특정 사용자 정보의 해쉬값인 Uhash를 생체 인증 서버(300)에 전송할 수 있다(S304). 이때, 특정 사용자의 public key도 함께 전송이 이루어질 수 있다. 물론, 전술한 것처럼 Uhash 대신에, Idhash가 전송될 수도 있다. 생체 인증 서버(300)는, (i) 상기 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값으로서 상기 Uhash 또는 상기 Uhash를 가공한 값을 인증 지원 서버(100)로 전송할 수 있다(S306). 이 경우 마찬가지로 Uhash를 가공한 값은, Idhash일 수 있다. 프로세서(110)는, 이렇게 (i) 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값이 획득되면, 로컬 데이터베이스에서 상기 public key의 등록 여부를 확인할 수 있다(S308).
통신부(120)는, 상기 확인 결과, 상기 public key가 미등록 상태이면, 인증 정보가 등록되지 않았다는 것이므로, error 메시지를 전송할 수 있다(S312). error 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)로 전달될 수 있다.
통신부(120)는, 상기 확인 결과, 상기 public key가 등록 상태이면, 상기 public key에 대응되는 transaction ID를 이용하여 데이터베이스(200)로부터 상기 transaction ID에 대응되는 특정 transaction의 출력값을 획득하고(S314, S316), 상기 출력값의 적어도 일부를 입력값으로 하는 새로운 transaction을 생성하도록 지원하여 상기 데이터베이스(200)에 전송할 수 있다(S328). 구체적으로, 통신부(120)는, 상기 출력값인 소정의 가상화폐의 적어도 일부를 입력값으로 하는 unsigned transaction을 생성하고 이를 상기 인증 지원 서버(100)의 private key로 서명하여 signed transaction을 생성함으로써 상기 새로운 transaction을 생성하도록 지원할 수 있다. 통신부(120)는, 상기 새로운 transaction이 상기 데이터베이스(200) 상에 기록된 위치 정보를 나타내는 transaction ID를 획득하고(S330), 인증 정보에 대한 파기 사실을 상기 생체 인증 서버(300)에 알릴 수 있다(S332). 알림 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)로 전달될 수 있다.
다만, 이와 같은 작업을 수행하기에 앞서, 통신부(120)는, 인증 정보의 상태 정보를 확인하고 에러 메시지를 전송할 수도 있다. 즉, 상기 확인 결과, 상기 public key가 등록 상태이면, 통신부(120)는, 상기 public key에 대응되는 transaction ID를 이용하여 상기 데이터베이스(200)로부터 상기 transaction ID에 대응되는 상기 특정 transaction의 출력값으로서 public key 및 인증 정보의 상태 정보를 획득할 수 있고(S316), 상기 데이터베이스(200)로부터 획득된 public key가 상기 생체 인증 서버(300)로부터 획득된 public key와 대응되지 않거나(S320) 상기 인증 정보의 상태 정보를 참조한 결과 상기 인증 정보가 소정의 상태인 것으로 판단되면(S324), 상기 생체 인증 서버(300)에 에러 메시지를 전송할 수 있다(S322, S326). 에러 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)에 전달될 수 있다. 상기 상태는 파기 상태 또는 계약 상의 소정의 조건을 만족하는 상태일 수 있다.
이하에서는 인증 정보를 사용하는 인증 지원 서버의 구성 및 동작에 대해서 설명한다. 이하에서 설명하는 인증 지원 서버는 전술한 인증 지원 서버(100)와 별도의 장치로 구성될 수도 있으나, 설명의 편의를 위해 동일한 장치인 것으로 설명한다.
도 4는 본 발명의 다른 실시예에 따른 로그인 시 인증 정보를 사용하는 과정을 도시한 시퀀스다이어그램이다.
도 4를 참조하면, 프로세서(110)는, 은행 서버(400)로부터 인증 정보 사용 요청을 받은 생체 인증 서버(300)로부터 특정 사용자의 public key가 획득되면, 상기 public key의 등록 여부를 확인할 수 있다(S408).
public key의 등록 여부를 확인하기 이전의 과정은 인증 정보를 생성하고 등록하는 과정, 인증 정보를 파기하는 과정과 유사하게 이루어지므로 중복 설명은 생략한다.
통신부(120)는, 상기 확인 결과, 상기 public key가 미등록 상태이면(S410), 사용할 수 있는 인증 정보가 없는 것이므로 error 메시지를 생체 인증 서버(300)에 전송한다(S412). 이 경우, 생체 인증 서버(300)는 은행 서버(400)로 error 메시지를 전달하고, 은행 서버(400)는 사용자 단말(500)로 error 메시지를 전달할 수 있다.
통신부(120)는, 상기 확인 결과, 상기 public key가 등록 상태이면, 상기 특정 사용자의 public key를 상기 생체 인증 서버(300)에 전송하거나(S428) 상기 생체 인증 서버(300)가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 (i) 상기 생체 인증 서버(300)가 random nonce를 생성하고, (ii) 상기 특정 사용자의 생체 정보가 획득되면, 상기 random nonce를 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하며(S438), (iii) 상기 검증 결과에 대한 메시지를 상기 은행 서버(400)로 전송하도록 지원할 수 있다(S444).
좀더 구체적으로 설명하면, 통신부(120)는, 상기 확인 결과, 상기 public key가 등록 상태이면, 상기 특정 사용자의 public key를 상기 생체 인증 서버(300)에 전송하거나(S428) 상기 생체 인증 서버(300)가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 할 수 있고, 생체 인증 서버(300)는 random nonce를 생성할 수 있다. 생체 인증 서버(300)는 생성된 random nonce를 은행 서버(400)로 전달할 수 있다(S430). 은행 서버(400)는 전달받은 random nonce를 사용자 단말(500)로 전달할 수 있다(S432). 사용자 단말(500)은 random nonce를 전달받은 후, 상기 특정 사용자의 생체 정보를 획득할 수 있고(예를 들어, 지문 입력을 받는 과정이 이루어질 수 있다.), 사용자 단말(500)은 상기 random nonce를 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명하여 다시 은행 서버(400)로 전달할 수 있다(S434). 은행 서버(400)는 전달받은 상기 random nonce를 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 다시 생체 인증 서버(300)로 전달한다(S436). 생체 인증 서버(300)는 상기 random nonce를 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증한다(S438). 검증 결과가 참이 아니면(S440), 생체 인증 서버(300)는 상기 특정 사용자가 입력한 생체 정보가 맞지 않음을 나타내는 메시지를 전송할 수 있다(S442). 이 메시지는 은행 서버(400)를 통해 최종적으로 사용자 단말(500)에 전달된다. 반면, 검증 결과가 참이면, 생체 인증 서버(300)는 검증이 성공했음을 나타내는 메시지를 전송할 수 있으며, 로그인이 정상적으로 수행되도록 할 수 있다(S444). 참고로 사용자의 생체 정보는, 홍채 정보, 지문 정보, 안면 정보 중 적어도 일부일 수 있다.
다만, 이와 같은 작업을 수행하기에 앞서, 통신부(120)는, 인증 정보의 상태 정보를 확인하고 에러 메시지를 전송할 수도 있다. 즉, public key의 등록 여부 확인 결과, 상기 public key가 등록 상태이면, 통신부(120)는, 상기 public key에 대응되는 transaction ID를 이용하여 상기 데이터베이스(200)로부터 상기 transaction ID에 대응되는 상기 특정 transaction의 출력값으로서 public key 및 인증서의 상태 정보를 획득하고(S416), 상기 데이터베이스(200)로부터 획득된 public key가 상기 생체 인증 서버(300)로부터 획득된 public key와 대응되지 않거나(S420) 상기 인증 정보의 상태 정보를 참조한 결과 상기 인증 정보가 소정의 상태인 것으로 판단되면(S424), 상기 생체 인증 서버(300)에 에러 메시지를 전송할 수 있다(S422, S426). 에러 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)로 전달된다. 상기 상태는 파기 상태 또는 계약의 소정의 조건을 만족하는 상태일 수 있다.
도 5는 본 발명의 또 다른 실시예에 따른 거래시 인증 정보를 사용하는 과정을 도시한 시퀀스다이어그램이다.
도 5를 참조하면, 프로세서(110)는, 은행 서버(400)로부터 인증 정보 사용 요청을 받은 생체 인증 서버(300)로부터 특정 사용자의 public key가 획득되면, 상기 public key의 등록 여부를 확인할 수 있다(S514).
public key의 등록 여부를 확인하기 이전의 과정은 인증 정보를 생성하고 등록하는 과정, 인증 정보를 파기하는 과정과 유사하게 이루어질 수 있으므로 중복 설명은 생략한다.
상기 확인 결과, 상기 public key가 미등록 상태이면(S516), 상기 통신부(120)는, 상기 생체 인증 서버(300)로 등록되지 않은 public key임을 나타내는 에러 메시지를 전송할 수 있다(S518). 에러 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)로 전달될 수 있다.
반면, 상기 확인 결과, 상기 public key가 등록 상태이면, 통신부(120)는, 상기 특정 사용자의 public key를 상기 생체 인증 서버(300)에 전송하거나(S534) 상기 생체 인증 서버(300)가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 (i) 상기 생체 인증 서버(300)가, 거래 정보의 해쉬값(Thash) 또는 이를 가공한 값을 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하며(S536), (ii) 상기 검증 결과에 대한 메시지를 상기 은행 서버(400)로 전송하도록 지원할 수 있다(S538, S540).
좀더 구체적으로 설명하면, 은행 서버(400)는 거래 정보의 해쉬값(Thash=hash(Transaction)) 또는 이를 가공한 값을 생성할 수 있고(S504), 이를 사용자 단말(500)에 전달할 수 있다(S506). 이때, 특정 사용자의 생체 정보가 획득되면, 사용자 단말(500)은 거래 정보의 해쉬값(Thash) 또는 이를 가공한 값을 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값(A)을 은행 서버(400)로 전송할 수 있다(S508). 그리고, 은행 서버(400)는 상기 A를 생체 인증 서버(300)로 전송할 수 있다. 이 때, 특정 사용자의 public key, Thash, Idhash 등이 함께 전달될 수 있다. 물론, 특정 사용자의 public key, Idhash 등은 이전에 전송이 이루어질 수도 있다. 즉, 도 5에 도시된 것처럼 생체 인증 서버(300)에 Thash와 Idhash가 함께 전달이 이루어지고, 생체 인증 서버(300)에서 인증 지원 서버(100)로 public key와 Idhash의 전달이 이루어진 후 public key의 등록 확인이 이루어질 수도 있으나, Thash의 생성과 전달은 public key 전달 및 등록 확인, Idhash 전달과는 별도로 이루어질 수도 있다.
한편, 상기 (ii)에서, 상기 검증 결과가 거짓이면(S538), 상기 통신부(120)는, 상기 특정 사용자가 입력한 생체 정보가 맞지 않음을 나타내는 메시지를 전송할 수 있다(S540). 상기 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)에 전달된다.
다만, 이와 같은 작업을 수행하기에 앞서, 통신부(120)는, 인증 정보의 상태 정보를 확인하고 에러 메시지를 전송할 수도 있다. 즉, public key의 등록 여부 확인 결과, 상기 public key가 등록 상태이면, 상기 public key에 대응되는 transaction ID를 이용하여 데이터베이스(200)로부터 상기 transaction ID에 대응되는 상기 특정 transaction의 출력값으로서 public key 및 인증 정보의 상태 정보를 획득하고(S522), 상기 데이터베이스(200)로부터 획득된 public key가 상기 생체 인증 서버(300)로부터 획득된 public key와 대응되지 않거나(S526) 상기 인증 정보의 상태 정보를 참조한 결과 상기 인증 정보가 소정의 상태인 것으로 판단되면(S530), 상기 생체 인증 서버(300)에 에러 메시지를 전송할 수 있다(S528, S532). 에러 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)에 전달된다. 상기 상태는 파기 상태 또는 계약 상의 소정의 조건을 만족하는 상태일 수 있다.
한편, 통신부(120)는, 상기 거래 정보의 해쉬값 또는 이를 가공한 값을 상기 private key로 서명한 값(X1) 또는 이에 대한 해쉬값(X2)을 상기 데이터베이스(200)에 기록하도록 전송할 수 있다(S544). 이는 거래시 부인 방지를 위해 거래 정보를 데이터베이스(200)에 기록하는 것이다.
통신부(120)는, 상기 X1 또는 X2가 상기 데이터베이스(200) 상에 기록된 위치 정보를 나타내는 transaction ID를 획득하고(S546), 상기 획득된 transaction ID를 상기 생체 인증 서버(300)로 전송할 수 있다(S548). transaction ID는 은행 서버(400)를 거쳐 사용자 단말(500)로 전달될 수 있다.
이상과 같은 본 발명의 다양한 실시예에 따른 인증 지원 서버(100)는 생체 인증 기술에 블록체인 기술을 접목시켜 PKI 기반으로 인증서를 생성하고 블록체인 상에 등록하여 사용 및 관리할 수 있는 기술을 제공한다.
한편, 인증 정보를 등록할 필요가 있는 모든 경우에 데이터베이스(200)에 접근하여 기록을 하는 것은 비효율적일 수 있다. 특히, transaction 요청이 많아졌을 때, 서비스 제공의 bottle neck 현상이 발생될 수 있고, 매번 transaction fee를 지불해야 하므로 서비스 운영에 많은 비용이 들 수 있는 우려가 있다.
이하에서는 위/변조가 불가능하고 실시간으로 인증 정보를 등록할 수 있는 장점을 살리면서도 서비스 요청이 몰릴 경우에도 빠른 서비스 속도를 보장하고 비용도 절감할 수 있는 인증 정보를 등록 및 파기할 수 있는 시스템을 설명한다. 이러한 시스템은 전술한 실시예와 달리 인증 지원 서버(100)에 의해 관리되는 별도의 데이터 구조를 이용한다. 이하에서 설명하는 인증 지원 서버는 전술한 인증 지원 서버(100)와 별도의 장치로 구성될 수도 있으나, 설명의 편의를 위해 동일한 장치인 것으로 설명한다.
전술한 실시예와 마찬가지로 통신부(120)는 인증 정보에 대한 등록 요청을 받은 생체 인증 서버(300)로부터 (i) 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득할 수 있다.
이때, 상기 특정 사용자의 public key는 사용자 단말(500)에서 생성되어 은행 서버(400)에 전달되고, 상기 특정 사용자가 인증되어 상기 은행 서버(400)로부터 상기 특정 사용자 정보의 해쉬값인 Uhash가 상기 생체 인증 서버(300)에 전송되면, 상기 생체 인증 서버(300)로부터 (i) 상기 public key 및 (ii) 상기 Uhash 또는 상기 Uhash를 가공한 값이 상기 인증 지원 서버(100)로 전송될 수 있다(도 2 및 이에 대한 설명 참조). 특정 사용자의 인증 방법에 대해서는 전술한 실시예에서 설명했으므로 중복 설명은 생략한다. Uhash를 이용하여 user id가 생성되는 경우, Uhash 대신에, 상기 user id 및 상기 Uhash의 해쉬값인 Idhash가 전송될 수도 있다. Idhash는 SHA256hash일 수 있다. 또한, 전술한 실시예와 마찬가지로 Uhash를 가공한 값은, 상기 Uhash를 이용하여 user id가 생성되는 경우, 상기 user id 및 상기 Uhash의 해쉬값인 Idhash일 수 있다.
프로세서(110)는, 상기 (i) 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값이 획득되면, 상기 public key의 등록 여부를 확인할 수 있다. 그리고, 상기 확인 결과, 상기 public key가 미등록 상태이고 소정의 앵커링 조건이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은, (i) 상기 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값에 대한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 소정의 데이터 구조로서 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다.
특정 해쉬값과 적어도 하나의 이웃 해쉬값의 연산은 다양한 함수에 의해 수행될 수 있다. 특정 해쉬값을 input 이라고 나타내고, 적어도 하나의 이웃 해쉬값을 x1, x2, …, xn이라고 나타낼 때, 대표 해쉬값 t는 다음 수학식과 같이 나타낼 수 있다.
<수학식>
t = hash(function(input, x1, x2, …, xn))
이때 인증 지원 서버(100)는 상기 특정 해쉬값과 상기 적어도 하나의 이웃 해쉬값을 소정의 데이터 구조로 저장하여 관리할 수 있다. 여기서, 데이터 구조는 다양할 수 있는데, 일 예로 머클 트리(merkle tree) 구조가 될 수도 있다. 이 경우, 상기 특정 해쉬값과 적어도 하나의 이웃 해쉬값의 연산은 머클 트리(merkle tree)를 통해 이루어질 수 있다.
즉, 프로세서(110)는 상기 특정 해쉬값이 특정 리프 노드에 할당된 머클 트리(merkle tree)를 생성하거나 생성하도록 지원할 수 있고, 상기 확인 결과, 상기 public key가 미등록 상태이고 상기 소정의 앵커링 조건이 만족되면, 상기 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다.
좀더 구체적으로 설명하면, 이 경우 (x1) 프로세서(110)는, (i) 상기 특정 해쉬값과 (ii) 상기 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 상기 연산값에 대한 해쉬값을 상기 노드의 부모 노드에 할당하거나 할당하도록 지원할 수 있다. (x2) 만일, 상기 부모 노드가 상기 머클 트리의 루트 노드이면, 상기 부모 노드에 할당된 해쉬값이 상기 대표 해쉬값이 된다. (x3) 반면, 상기 부모 노드가 상기 머클 트리의 루트 노드가 아니면, 프로세서(110)는, 상기 부모 노드에 할당된 해쉬값을 상기 특정 해쉬값으로 하여 상기 (x1) 내지 (x3)를 반복하여 수행한다.
그리고, 프로세서(110)는 최종적으로 머클 트리의 루트 노드에 할당된 해쉬값을 대표 해쉬값으로서 데이터베이스(200)에 등록하거나 등록하도록 지원한다. 이때, 대표 해쉬값을 가공한 값이 등록될 수도 있다. 예를 들어, 대표 해쉬값에 hex 연산이 수행된 결과값이 등록될 수 있다.
한편, 상기 인증 지원 서버(100)가 상기 특정 해쉬값과 상기 적어도 하나의 이웃 해쉬값을 소정의 제1 데이터 구조로 저장하고, 이후 상기 제1 데이터 구조와 동일한 형태의 제2 데이터구조를 저장하여 관리하는 경우, 상기 제1 데이터 구조와 상기 제2 데이터 구조는 체인 형태로 연결될 수 있다.
특히, 상술한 예에서와 같이 상기 제1 데이터 구조 및 상기 제2 데이터 구조가 머클 트리인 경우, 상기 제1 데이터 구조의 루트값 또는 상기 루트값의 해쉬값이 상기 제2 데이터 구조의 첫번째 리프 노드에 할당될 수 있다. 또한, 제2 데이터 구조를 생성할 때는 제1 데이터 구조에 대한 검증이 이루어짐으로써 데이터 integrity가 좀더 보장될 수 있다.
또한, 체인 형태로 연결된 적어도 하나의 머클 트리 중 첫번째 머클 트리의 경우, 상기 첫번째 머클 트리의 첫번째 리프 노드에는 텍스트, 숫자, 또는 기호로 이루어진 소정의 메시지 데이터의 해쉬값 또는 이를 가공한 값이 할당될 수 있다. 예를 들어, 머클 트리 생성시 인증 지원 서버(100)에 의해 최초로 부여된 입력 메시지의 해쉬값이 할당될 수 있다.
도 6 및 7은 본 발명의 일 실시예에 따라 생성된 머클 트리의 예를 도시한 도면이다.
도 6에서는 리프 노드의 개수가 4(22)개인 머클 트리가 도시된다. 도시된 머클 트리는 첫번째 머클 트리이기 때문에(tree_id=0), 첫번째 리프 노드인 h1 노드에는 소정의 메시지 데이터 “Coinplug 2016-01-01”의 해쉬값(triplesha256digest(coinplug_unique_message))이 할당되었음을 알 수 있다. 인증 정보에 대한 등록 요청이 있는 경우, 프로세서(110)는 현재 구성 중인 머클 트리의 가장 마지막 리프 노드의 다음 리프 노드를 생성하여 (i) 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값의 해쉬값(특정 해쉬값) 또는 이를 가공한 값을 할당하거나 할당하도록 지원한다. 예를 들어, 도 6의 머클 트리에서 이전 단계에서 두번째 리프 노드인 h1 노드까지 값 할당이 완료된 경우, 다음 리프 노드인 h2 노드를 생성하여 특정 해쉬값 또는 특정 해쉬값을 가공한 값(triplesha256digest(input2))을 할당할 수 있다. 또한, 프로세서(110)는 (i) 특정 해쉬값과 (ii) 상기 특정 해쉬값이 할당된 세번째 리프 노드인 h2 노드의 형제 노드인 h3 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원할 수 있다. 상기 연산값에 대한 해쉬값은 h2 노드와 h3 노드의 부모 노드(h23 노드)에 할당된다. 부모 노드(h23 노드)가 머클 트리의 루트 노드가 아니므로 프로세서(110)는 상기 h23 노드에 할당된 해쉬값을 상기 특정 해쉬값으로 하여 상기 과정을 반복하여 수행할 수 있다. 즉, h23 노드에 할당된 해쉬값을 특정 해쉬값으로 하고, h23 노드에 할당된 해쉬값과 h01 노드에 할당된 해쉬값을 연산하여 h23 노드와 h01 노드의 부모 노드(h0123 노드)에 할당할 수 있다. 이때, h0123 노드가 머클 트리의 루트 노드이므로 프로세서(110)는, h0123 노드에 할당된 해쉬값을 가공한 값(hex(h{node_index}))을 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다.
한편, 전술한 소정의 앵커링 조건이란, (i) 소정의 개수만큼의 (i-1) 상기 특정 사용자의 public key 및 (i-2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값이 획득되는 조건, (ii) 소정 시간이 경과하는 조건, (iii) 블록 체인에서 블록이 생성되는 조건, (iv) 서비스 특성에 대한 조건 중 적어도 하나를 포함할 수 있다.
예를 들어, 프로세서(110)는 소정 시간 단위로 전술한 머클 트리의 루트값을 생성할 수 있다(상기 (ii) 조건). 이 경우 프로세서(110)는 소정의 시간이 경과되면 그때까지의 입력값을 이용하여 머클 트리를 생성하고 머클 트리의 루트값을 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다.
그런데, 이 경우에는 소정 시간이 경과하였음에도 머클 트리의 특정 해쉬값이 할당된 노드의 형제 노드에 값이 할당되지 않을 수 있다. 이처럼 소정의 조건이 만족되었음에도 상기 특정 해쉬값이 할당된 노드의 형제 노드에 해쉬값이 할당되어 있지 않은 경우, 프로세서(110)는, 상기 형제 노드에 소정의 해쉬값을 할당하거나 할당하도록 지원하여 전술한 방식으로 머클 트리의 루트값이 산출되도록 할 수 있다. 예를 들어, 프로세서(110)는 상기 특정 해쉬값을 복제하여 상기 형제 노드에 할당하거나 할당하도록 지원할 수 있다.
한편, 상기 서비스 특성이란, 인증 정보 등록 요청을 한 사용자(회사)가 지급한 비용 정보, 인증 정보 등록이 이루어지는 시간대 정보, 인증 정보 등록 서비스가 이루어지는 지역 정보, 인증 정보 등록 요청을 한 회사 타입 정보 중 적어도 일부가 될 수 있다. 다만, 여기서 기재한 것에 한정할 것은 아니고, 통상적으로 인정되는 차등적 서비스가 제공될 수 있는 다양한 조건 정보를 포함할 수 있다.
한편, 새로운 머클 트리 생성이 시작되고, 인증 정보의 등록 요청이 없는 상태에서 상기 소정의 조건(예를 들어, 시간 조건)이 만족되면, 상기 프로세서(110)는, 소정의 메시지 데이터(임의의 메시지 데이터)가 첫번째 리프 노드와 두번째 리프 노드에 할당된 머클 트리를 생성하거나 생성하도록 지원하고, 상기 머클 트리의 루트값 또는 이를 가공한 값을 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다. 이 경우에는 리프 노드 2개짜리 머클 트리가 생성될 수 있는 것이다. 물론, 2개짜리로 한정되는 것은 아닐 것이다.
한편, 전술한 것처럼 인증 지원 서버(100)가 상기 특정 해쉬값과 상기 적어도 하나의 이웃 해쉬값을 소정의 제1 데이터 구조로 저장하고, 이후 상기 제1 데이터 구조와 동일한 형태의 제2 데이터구조를 저장하여 관리하는 경우, 상기 제1 데이터 구조와 상기 제2 데이터 구조는 체인 형태로 연결될 수 있다. 특히, 상기 제1 데이터 구조 및 상기 제2 데이터 구조가 머클 트리인 경우, 상기 제1 데이터 구조의 루트값 또는 상기 루트값의 해쉬값이 상기 제2 데이터 구조의 첫번째 리프 노드에 할당될 수 있다.
도 7은 본 발명의 일 실시예에 따라 상기 제2 데이터 구조로서 생성된 머클 트리를 도시한 도면이다.
도 7을 참조하면, 도 6의 머클 트리(tree_id=0)의 루트값(hex(h0123))이 새로운 머클 트리의 첫번째 리프 노드(h4 노드)에 할당되었음을 알 수 있다(triplesha256digest(input4)). 본 발명은 이와 같이 트랜잭션 발생시 생성되는 복수의 데이터 구조를 연결함으로써 중간에 데이터가 변조가 발생되는 경우라도 쉽게 트래킹이 가능하여 데이터 integrity를 향상시키는 장점을 가진다.
한편, 상기 확인 결과, 상기 public key가 등록 상태이면, 이미 인증 정보가 등록되어 있다는 의미이므로, 통신부(120)는, 생체 인증 서버(300)에 error 메시지를 전송할 수 있다. error 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)로 전달될 수 있다. 물론, 사용자 단말(500)로 직접 전달될 수도 있다.
한편, 상기 특정 해쉬값은, (i) 상기 특정 사용자의 public key, (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값 및 (iii) 소정의 액수의 가상 화폐에 대한 해쉬값일 수도 있다. 이 경우, (iii) 소정의 액수의 가상 화폐는 인증 정보에 대한 파기 여부를 나타내는데 사용될 수 있다.
또한, 프로세서(110)는, 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값, 상기 특정 사용자의 public key를 로컬 데이터베이스에 저장할 수 있다.
통신부(120)는, 대표 해쉬값 또는 대표 해쉬값을 가공한 값이 데이터베이스(200) 상에 등록이 되면, 데이터베이스(200)상에 기록된 위치 정보를 나타내는 transaction ID를 획득하며, 상기 생체 인증 서버(300)에 (i) 상기 public key 및 (ii) 상기 해쉬값 또는 이를 가공한 값이 정상적으로 등록되었음을 알리는 메시지를 전달할 수 있다. 상기 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)에 전달될 수 있다. 물론, 직접 사용자 단말(500)이나 은행 서버(400)로 전달될 수도 있다.
이하에서는 인증 지원 서버(100)가 인증 정보에 대한 파기를 수행하는 방법에 대해서 설명한다.
전술한 실시예와 마찬가지로 통신부(120)는 인증 정보에 대한 파기 요청을 받은 생체 인증 서버(300)로부터 (i) 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득한다. public key의 등록 여부를 확인하기 이전의 과정에 대해서는 전술하였으므로 중복 설명은 생략한다(도 3 및 이에 대한 설명 참조).
프로세서(110)는, (i) 상기 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득되면, 상기 public key의 등록 여부를 확인한다. 그리고, 상기 확인 결과, 상기 public key가 등록 상태이고, 소정의 앵커링 조건이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은, (i) 상기 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값에 대한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 소정의 데이터 구조로서 데이터베이스(200)에 등록하거나 등록하도록 지원하여 상기 인증 정보에 대한 파기를 수행할 수 있다.
이처럼 인증 정보에 대한 파기 과정은 전술한 인증 정보 등록 과정과 유사하게 이루어진다. 이 경우 구체적인 인증 정보에 대한 파기 과정은 인증 정보 등록 과정과 동일하므로 중복 설명은 생략한다. 또한, 소정의 데이터 구조는 전술한 바와 같이 머클 트리가 될 수 있다. 따라서, 특정 해쉬값이 상기 소정의 데이터 구조에 기록된 순서에 따라서 등록과 파기를 구분할 수 있다. 즉, 데이터 구조에 첫번째로 기록된 특정 해쉬값은 인증 정보의 등록을 나타내고, 두번째로 기록된 특정 해쉬값은 인증 정보의 파기를 나타낼 수 있다.
이 경우, 상기 획득된 (i) 상기 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값이 기 등록된 소정의 값과 대응되는 경우, 상기 public key가 등록된 것으로 판단되어, 프로세서(110)가, 상기 소정의 앵커링 조건 만족 여부에 따라 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 상기 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다.
또한, 상기 public key의 등록 여부는 로컬 데이터베이스에서 확인할 수 있다. 즉, 상기 public key가 로컬 데이터베이스에 등록된 상태인 경우, 상기 소정의 앵커링 조건이 만족되면, 상기 프로세서(110)는, 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산하여 생성되는 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 상기 데이터베이스(120)에 등록하거나 등록하도록 지원하여 상기 인증 정보에 대한 파기를 수행할 수 있다.
특히, 상기 소정의 데이터구조가 머클 트리인 경우, (i) 상기 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값이 머클 트리(merkle tree)의 소정의 리프 노드에 할당되어 등록된 상태인 경우, 상기 소정의 앵커링 조건이 만족되면, 상기 프로세서(110)는, 상기 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 상기 데이터베이스(200)에 등록하거나 등록하도록 지원하여 상기 인증 정보에 대한 파기를 수행할 수 있다.
반면, 상기 public key가 미등록 상태이거나 머클 트리(merkle tree)의 적어도 두 개의 리프 노드에 할당되어 등록된 상태인 경우, 통신부(120)는, 상기 생체 인증 서버(300)에 에러 메시지를 전송할 수 있다. public key가 머클 트리(merkle tree)의 적어도 두 개의 리프 노드에 할당되어 등록된 경우에는 인증 정보에 대해 등록과 파기가 모두 이루어져 인증 정보가 현재 파기 상태이기 때문이다. 에러 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)로 전달될 수 있다.
이하에서는 상술한 인증 정보를 사용하여 로그인을 지원할 수 있는 인증 지원 장치(100)의 구성 및 동작을 설명한다. 이하에서 설명하는 인증 지원 서버는 전술한 인증 지원 서버(100)와 별도의 장치로 구성될 수도 있으나, 설명의 편의를 위해 동일한 장치인 것으로 설명한다.
기존에 인증 지원 서버(100)가 제1 특정 해쉬값 및 상기 제1 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값을 소정의 데이터 구조로서 데이터베이스(200)에 등록하고 있는 상태에서, 통신부(120)는, 인증 정보 사용 요청으로서 (1) 특정 사용자의 public key 및 (2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득할 수 있다. 여기서, 제1 특정 해쉬값, 제1 대표 해쉬값은 전술한 특정 해쉬값, 대표 해쉬값에 대응된다.
한편, 상기 특정 사용자의 public key가 은행 서버(400)에 전달되고, 상기 특정 사용자가 인증되어 상기 은행 서버(400)로부터 특정 사용자 정보의 해쉬값인 Uhash가 상기 생체 인증 서버(300)에 전송되면, 상기 생체 인증 서버(300)로부터 (i) 상기 public key 및 (ii) 상기 Uhash 또는 상기 Uhash를 가공한 값이 상기 인증 지원 서버(100)로 전송될 수 있다. 이에 대해서는 전술한 실시예에서 설명하였으므로 중복 설명은 생략한다(도 4 및 이에 대한 설명 참조).
프로세서(110)는, 상기 (1) 및 (2)에 대한 해쉬값인 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값은 상기 소정의 데이터 구조를 참조로 하여 결정됨 - 을 연산함으로써 생성되는 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스(200)에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 특정 사용자의 public key를 생체 인증 서버(300)에 전송하거나 상기 생체 인증 서버(300)가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 (i) 상기 생체 인증 서버(300)가 random nonce를 생성하거나 생성하도록 지원하고, (ii) 상기 특정 사용자에 대한 로그인 행위로서 상기 특정 사용자의 생체 정보가 획득되면, 상기 random nonce를 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하거나 검증하도록 지원하며, (iii) 상기 검증 결과에 대한 메시지를 전송하거나 전송하도록 지원할 수 있다.
상기 (ii)에서, 상기 random nonce에 대해 사용자 단말(500)에 의해 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명이 이루어져 은행 서버(400)를 거쳐 상기 생체 인증 서버(300)로 전달될 수 있다.
또한, 상기 (iii)에서 상기 검증 결과가 거짓이면, 상기 프로세서(110)는, 상기 특정 사용자가 입력한 생체 정보가 맞지 않아 로그인을 불허함을 나타내는 메시지를 전송하도록 지원할 수 있다.
제2 특정 해쉬값에 대해서는 전술한 제1 특정 해쉬값에 대한 설명이 동일하게 적용될 수 있다. 즉, 제2 특정 해쉬값과 적어도 하나의 이웃 해쉬값의 연산은 다양한 함수에 의해 수행될 수 있다. 이에 대해서는 전술하였으므로 설명을 생략한다.
한편, 상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스(200)에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되지 않거나 로컬 데이터베이스에 저장된 상기 (1) 및 (2)에 대한 인증 정보의 상태 정보를 참조한 결과 상기 인증 정보가 소정의 상태인 것으로 판단되면, 상기 통신부(120)는 상기 생체 인증 서버(300)에 에러 메시지를 전송할 수 있다. 예를 들어, 상기 인증 정보가 파기 상태인 경우, 통신부(120)는 상기 생체 인증 서버(300)에 에러 메시지를 전송할 수 있다.
또한, 상기 (1) 및 (2)가 머클 트리(merkle tree)의 적어도 두 개의 리프 노드에 할당된 경우, 통신부(120)는, 이를 상기 인증 정보가 파기된 것으로 판단하여 상기 생체 인증 서버(300)에 에러 메시지를 전송할 수 있다.
프로세서(110)는, 인증 정보 사용 요청이 획득되면, 소정의 transaction ID를 참조하고, 상기 transaction ID를 사용하여 상기 데이터베이스(200)로부터 OP 메시지를 획득하거나 획득하도록 지원할 수 있다. 또한, 상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 OP 메시지에 포함된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 특정 사용자의 public key를 상기 생체 인증 서버(300)에 전송하거나 상기 생체 인증 서버(300)가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 상기 (i) 내지 (iii)을 수행할 수 있다.
한편, 상기 제2 대표 해쉬값은, 상기 제2 특정 해쉬값이 특정 리프 노드에 할당된 머클 트리(merkle tree)에서 상기 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성될 수 있다.
상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되는지 확인하는 과정에서 프로세서(110)는 새로운 머클 트리를 생성하거나 생성하도록 지원할 수 있는데, 여기에는 전술한 인증 정보 등록 과정에서 생성된 머클 트리가 이용될 수 있다. 즉, 프로세서(110)는 (y1) (i) 상기 제2 특정 해쉬값과 (ii) 기존에 생성된 머클 트리에서 상기 제2 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 상기 연산값에 대한 해쉬값을 새로운 머클 트리에서 상기 노드의 부모 노드에 할당하거나 할당하도록 지원할 수 있다. 또한, (y2) 상기 부모 노드가 상기 새로운 머클 트리의 루트 노드이면, 상기 부모 노드에 할당된 해쉬값을 상기 제2 대표 해쉬값으로서 상기 OP 메시지에 포함된 값과 비교하거나 비교하도록 지원하고, (y3) 상기 부모 노드가 상기 새로운 머클 트리의 루트 노드가 아니면, 상기 부모 노드에 할당된 해쉬값을 상기 제2 특정 해쉬값으로 하여 상기 (y1) 내지 (y3)를 반복하여 수행할 수 있다.
프로세서(110)는, 최종적으로 생성된 머클 트리의 루트값 또는 이를 가공한 값이 상기 OP 메시지에 포함된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, (1) 특정 사용자의 public key 및 (2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값이 검증된 것으로 판단하거나 판단하도록 지원할 수 있다.
이처럼 본 발명은 인증 정보 등록 단계에서 nm(=N)개의 리프 노드를 가지는 머클 트리가 생성이 되면, 인증 정보 사용 단계에서 머클 트리의 높이(lognN=m)만큼의 연산만을 수행함으로써 빠르게 사용자 검증을 수행하여 인증 정보를 사용할 수 있다.
이하에서는 상술한 인증 정보를 사용하여 거래를 지원할 수 있는 인증 지원 장치(100)의 구성 및 동작을 설명한다. 이하에서 설명하는 인증 지원 서버는 전술한 인증 지원 서버(100)와 별도의 장치로 구성될 수도 있으나, 설명의 편의를 위해 동일한 장치인 것으로 설명한다. 참고로, 하기의 실시예에서 제1 특정 해쉬값, 제2 특정 해쉬값, 제1 대표 해쉬값, 제2 대표 해쉬값이라는 용어를 전술한 실시예와 혼용하였으나, 각 실시예별로 구별되는 것임을 밝혀둔다.
통신부(120)는, 기존에 상기 인증 지원 서버(100)가 제1 특정 해쉬값 및 상기 제1 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값을 소정의 데이터 구조로서 데이터베이스에 등록하고 있는 상태에서, 인증 정보 사용 요청으로서 (1) 특정 사용자의 public key 및 (2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득할 수 있다. 여기서, 제1 특정 해쉬값, 제1 대표 해쉬값은 전술한 특정 해쉬값, 대표 해쉬값에 대응된다.
한편, 상기 특정 사용자의 public key가 은행 서버(400)에 전달되고, 상기 특정 사용자가 인증되어 상기 은행 서버(400)로부터 특정 사용자 정보의 해쉬값인 Uhash가 상기 생체 인증 서버(300)에 전송되면, 상기 생체 인증 서버(300)로부터 (i) 상기 public key 및 (ii) 상기 Uhash 또는 상기 Uhash를 가공한 값이 상기 인증 지원 서버(100)로 전송될 수 있다. 이에 대해서는 전술한 실시예에서 설명하였으므로 중복 설명은 생략한다(도 5 및 이에 대한 설명 참조).
프로세서(110)는, 상기 (1) 및 (2)에 대한 해쉬값인 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값은 상기 소정의 데이터 구조를 참조로 하여 결정됨 - 을 연산함으로써 생성되는 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스(200)에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 특정 사용자의 public key를 상기 생체 인증 서버(300)에 전송하거나 상기 생체 인증 서버(300)가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 (i) 상기 생체 인증 서버(300)가, 거래 정보의 해쉬값 또는 이를 가공한 값을 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하거나 검증하도록 지원하며, (ii) 상기 검증 결과에 대한 메시지를 전송하거나 전송하도록 지원할 수 있다.
상기 (i)에서, 상기 거래 정보의 해쉬값 또는 이를 가공한 값은 은행 서버(400)에 의해 생성되고, 상기 거래 정보의 해쉬값 또는 이를 가공한 값이 사용자 단말(500)에 전달되어 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명이 이루어져 상기 은행 서버(400)를 거쳐 상기 생체 인증 서버(300)로 전달될 수 있다(도 5 및 이에 대한 설명 참조).
상기 (ii)에서, 상기 검증 결과가 거짓이면, 상기 프로세서(110)는, 상기 특정 사용자가 입력한 생체 정보가 맞지 않아 거래를 불허함을 나타내는 메시지를 전송하도록 지원할 수 있다. 상기 메시지는 사용자 단말(500), 은행 서버(400), 생체 인증 서버(300) 중 적어도 하나에 전송될 수 있다. 물론, 사용자 단말(500)로 직접 전송될 수도 있다.
제2 특정 해쉬값에 대해서는 전술한 제1 특정 해쉬값에 대한 설명이 동일하게 적용될 수 있다. 즉, 제2 특정 해쉬값과 적어도 하나의 이웃 해쉬값의 연산은 다양한 함수에 의해 수행될 수 있다. 이에 대해서는 전술하였으므로 설명을 생략한다.
한편, (i) 상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스(200)에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되지 않거나, (ii) 로컬 데이터베이스에 저장된 상기 (1) 및 (2)에 대한 인증 정보의 상태 정보를 참조한 결과 상기 인증 정보가 소정의 상태인 것으로 판단되면, 상기 통신부(120)는 상기 생체 인증 서버(300)에 에러 메시지를 전송할 수 있다. 예를 들어, 상기 인증 정보가 파기 상태인 경우, 통신부(120)는 상기 생체 인증 서버(300)에 에러 메시지를 전송할 수 있다.
또한, 상기 (1) 및 (2)가 머클 트리(merkle tree)의 적어도 두 개의 리프 노드에 할당된 경우, 상기 프로세서(110)는, 이를 상기 인증 정보가 파기된 것으로 판단하여 상기 생체 인증 서버(300)에 에러 메시지를 전송하도록 지원할 수 있다.
프로세서(110)는, 인증 정보 사용 요청이 획득되면, 소정의 transaction ID를 참조하고, 상기 transaction ID를 사용하여 상기 데이터베이스(200)로부터 OP 메시지를 획득하거나 획득하도록 지원할 수 있다. 또한, 상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 OP 메시지에 포함된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 특정 사용자의 public key를 상기 생체 인증 서버(300)에 전송하거나 상기 생체 인증 서버(300)가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 상기 (i) 내지 (ii)을 수행할 수 있다.
한편, 상기 제2 대표 해쉬값은, 상기 제2 특정 해쉬값이 특정 리프 노드에 할당된 머클 트리(merkle tree)에서 상기 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성될 수 있다.
상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되는지 확인하는 과정에서 프로세서(110)는 새로운 머클 트리를 생성하거나 생성하도록 지원할 수 있는데, 여기에는 전술한 인증 정보 등록 과정에서 생성된 머클 트리가 이용될 수 있다. 즉, 프로세서(110)는 (z1) (i) 상기 제2 특정 해쉬값과 (ii) 기존에 생성된 머클 트리에서 상기 제2 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 상기 연산값에 대한 해쉬값을 새로운 머클 트리에서 상기 노드의 부모 노드에 할당하거나 할당하도록 지원할 수 있다. 또한, (z2) 상기 부모 노드가 상기 새로운 머클 트리의 루트 노드이면, 상기 부모 노드에 할당된 해쉬값을 상기 제2 대표 해쉬값으로서 상기 OP 메시지에 포함된 값과 비교하거나 비교하도록 지원하고, (z3) 상기 부모 노드가 상기 새로운 머클 트리의 루트 노드가 아니면, 상기 부모 노드에 할당된 해쉬값을 상기 제2 특정 해쉬값으로 하여 상기 (z1) 내지 (z3)를 반복하여 수행할 수 있다.
프로세서(110)는, 최종적으로 생성된 머클 트리의 루트값 또는 이를 가공한 값이 상기 OP 메시지에 포함된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, (1) 특정 사용자의 public key 및 (2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값이 검증된 것으로 판단하거나 판단하도록 지원할 수 있다.
이처럼 본 발명은 인증 정보 등록 단계에서 nm(=N)개의 리프 노드를 가지는 머클 트리가 생성이 되면, 인증 정보 사용 단계에서 머클 트리의 높이(lognN=m)만큼의 연산만을 수행함으로써 빠르게 사용자 검증을 수행하여 인증 정보를 사용할 수 있다.
한편, 상기 프로세서(110)는, 상기 검증 결과가 참이고, 소정의 앵커링 조건이 만족되면, 제3 특정 해쉬값 - 상기 제3 특정 해쉬값은, 상기 거래 정보의 해쉬값 또는 이를 가공한 값을 상기 private key로 서명한 값에 대한 해쉬값임 - 및 상기 제3 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제3 대표 해쉬값 또는 상기 제3 대표 해쉬값을 가공한 값을 상기 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다. 이는 거래시 부인 방지를 위해 거래 정보를 데이터베이스(200)에 기록하기 위함이다.
이 경우, 상기 통신부(120)는, 상기 제3 대표 해쉬값 또는 상기 제3 대표 해쉬값을 가공한 값이 상기 데이터베이스(200) 상에 기록된 위치 정보를 나타내는 transaction ID를 획득하고, 상기 획득된 transaction ID를 상기 생체 인증 서버(300)로 전송할 수 있다.
한편, 이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.
100 : 인증 지원 서버
200 : 데이터베이스
300 : 생체 인증 서버
400 : 은행 서버
500 : 사용자 단말
110 : 프로세서
120 : 통신부
200 : 데이터베이스
300 : 생체 인증 서버
400 : 은행 서버
500 : 사용자 단말
110 : 프로세서
120 : 통신부
Claims (18)
- 로그인을 지원하기 위한 방법에 있어서,
(a) 기존에 인증 지원 서버가 제1 특정 해쉬값 및 상기 제1 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값을 소정의 데이터 구조로서 데이터베이스에 등록하고 있는 상태에서, 상기 인증 지원 서버가, 인증 정보 사용 요청으로서 (1) 특정 사용자의 public key 및 (2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득하는 단계, 및
(b) 상기 (1) 및 (2)에 대한 해쉬값인 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값은 상기 소정의 데이터 구조를 참조로 하여 결정됨 - 을 연산함으로써 생성되는 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면,
상기 인증 지원 서버가, 상기 특정 사용자의 public key를 생체 인증 서버에 전송하거나 상기 생체 인증 서버가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 (i) 상기 생체 인증 서버가 random nonce를 생성하거나 생성하도록 지원하고, (ii) 상기 특정 사용자에 대한 로그인 행위로서 상기 특정 사용자의 생체 정보가 획득되면, 상기 random nonce를 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하거나 검증하도록 지원하며, (iii) 상기 검증 결과에 대한 메시지를 전송하거나 전송하도록 지원하는 단계를 포함하는 방법. - 제1항에 있어서,
상기 (b) 단계에서,
상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되지 않거나
로컬 데이터베이스에 저장된 상기 (1) 및 (2)에 대한 인증 정보의 상태 정보를 참조한 결과 상기 인증 정보가 소정의 상태인 것으로 판단되면, 상기 인증 지원 서버는 상기 생체 인증 서버에 에러 메시지를 전송하는 것을 특징으로 하는 방법. - 제2항에 있어서,
상기 (1) 및 (2)가 머클 트리(merkle tree)의 적어도 두 개의 리프 노드에 할당된 경우, 상기 인증 지원 서버는, 이를 상기 인증 정보가 파기된 것으로 판단하여 상기 생체 인증 서버에 에러 메시지를 전송하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 (iii)에서,
상기 검증 결과가 거짓이면, 상기 특정 사용자가 입력한 생체 정보가 맞지 않아 로그인을 불허함을 나타내는 메시지를 전송하도록 지원하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 (ii)에서,
상기 random nonce에 대해 사용자 단말에 의해 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명이 이루어져 은행 서버를 거쳐 상기 생체 인증 서버로 전달되는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 (a) 단계는,
상기 특정 사용자의 public key가 은행 서버에 전달되고, 상기 특정 사용자가 인증되어 상기 은행 서버로부터 특정 사용자 정보의 해쉬값인 Uhash가 상기 생체 인증 서버에 전송되면, 상기 생체 인증 서버로부터 (i) 상기 public key 및 (ii) 상기 Uhash 또는 상기 Uhash를 가공한 값이 상기 인증 지원 서버로 전송되는 단계를 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 (a) 단계는,
(a1) 상기 인증 정보 사용 요청이 획득되면, 상기 인증 지원 서버가, 소정의 transaction ID를 참조하는 단계, 및
(a2) 상기 인증 지원 서버가, 상기 transaction ID를 사용하여 상기 데이터베이스로부터 OP 메시지를 획득하는 단계를 포함하고,
상기 (b) 단계에서,
상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 OP 메시지에 포함된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 인증 지원 서버가, 상기 특정 사용자의 public key를 상기 생체 인증 서버에 전송하거나 상기 생체 인증 서버가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 상기 (i) 내지 (iii)을 수행하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 제2 대표 해쉬값은,
상기 제2 특정 해쉬값이 특정 리프 노드에 할당된 머클 트리(merkle tree)에서 상기 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 것을 특징으로 하는 방법. - 제8항에 있어서,
(x1) 상기 인증 지원 서버는, (i) 상기 제2 특정 해쉬값과 (ii) 상기 제2 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 상기 연산의 결과인 연산값에 대한 해쉬값을 상기 노드의 부모 노드에 할당하거나 할당하도록 지원하며,
(x2) 상기 부모 노드가 상기 머클 트리의 루트 노드이면, 상기 부모 노드에 할당된 해쉬값을 상기 제2 대표 해쉬값으로서 상기 데이터베이스로부터 획득된 OP 메시지에 포함된 값과 비교하거나 비교하도록 지원하고,
(x3) 상기 부모 노드가 상기 머클 트리의 루트 노드가 아니면, 상기 부모 노드에 할당된 해쉬값을 상기 제2 특정 해쉬값으로 하여 상기 (x1) 내지 (x3)를 반복하여 수행하는 것을 특징으로 하는 방법. - 로그인을 지원하기 위한 인증 지원 서버에 있어서,
기존에 인증 지원 서버가 제1 특정 해쉬값 및 상기 제1 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값을 소정의 데이터 구조로서 데이터베이스에 등록하고 있는 상태에서, 인증 정보 사용 요청으로서 (1) 특정 사용자의 public key 및 (2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득하는 통신부, 및
상기 (1) 및 (2)에 대한 해쉬값인 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값은 상기 소정의 데이터 구조를 참조로 하여 결정됨 - 을 연산함으로써 생성되는 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 특정 사용자의 public key를 생체 인증 서버에 전송하거나 상기 생체 인증 서버가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 (i) 상기 생체 인증 서버가 random nonce를 생성하거나 생성하도록 지원하고, (ii) 상기 특정 사용자에 대한 로그인 행위로서 상기 특정 사용자의 생체 정보가 획득되면, 상기 random nonce를 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하거나 검증하도록 지원하며, (iii) 상기 검증 결과에 대한 메시지를 전송하거나 전송하도록 지원하는 프로세서를 포함하는 인증 지원 서버. - 제10항에 있어서,
상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되지 않거나
로컬 데이터베이스에 저장된 상기 (1) 및 (2)에 대한 인증 정보의 상태 정보를 참조한 결과 상기 인증 정보가 소정의 상태인 것으로 판단되면, 상기 통신부는 상기 생체 인증 서버에 에러 메시지를 전송하는 것을 특징으로 하는 인증 지원 서버. - 제11항에 있어서,
상기 (1) 및 (2)가 머클 트리(merkle tree)의 적어도 두 개의 리프 노드에 할당된 경우, 상기 통신부는, 이를 상기 인증 정보가 파기된 것으로 판단하여 상기 생체 인증 서버에 에러 메시지를 전송하는 것을 특징으로 하는 인증 지원 서버. - 제10항에 있어서,
상기 (iii)에서,
상기 검증 결과가 거짓이면, 상기 프로세서는, 상기 특정 사용자가 입력한 생체 정보가 맞지 않아 로그인을 불허함을 나타내는 메시지를 전송하도록 지원하는 것을 특징으로 하는 인증 지원 서버. - 제10항에 있어서,
상기 (ii)에서,
상기 random nonce에 대해 사용자 단말에 의해 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명이 이루어져 은행 서버를 거쳐 상기 생체 인증 서버로 전달되는 것을 특징으로 하는 인증 지원 서버. - 제10항에 있어서,
상기 특정 사용자의 public key가 은행 서버에 전달되고, 상기 특정 사용자가 인증되어 상기 은행 서버로부터 특정 사용자 정보의 해쉬값인 Uhash가 상기 생체 인증 서버에 전송되면, 상기 생체 인증 서버로부터 (i) 상기 public key 및 (ii) 상기 Uhash 또는 상기 Uhash를 가공한 값이 상기 인증 지원 서버로 전송되는 것을 특징으로 하는 인증 지원 서버. - 제10항에 있어서,
상기 프로세서는,
상기 인증 정보 사용 요청이 획득되면, 소정의 transaction ID를 참조하고, 상기 transaction ID를 사용하여 상기 데이터베이스로부터 OP 메시지를 획득하도록 지원하며, 상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 OP 메시지에 포함된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 특정 사용자의 public key를 상기 생체 인증 서버에 전송하거나 상기 생체 인증 서버가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 상기 (i) 내지 (iii)을 수행하는 것을 특징으로 하는 인증 지원 서버. - 제10항에 있어서,
상기 제2 대표 해쉬값은,
상기 제2 특정 해쉬값이 특정 리프 노드에 할당된 머클 트리(merkle tree)에서 상기 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 것을 특징으로 하는 인증 지원 서버. - 제17항에 있어서,
(x1) 상기 프로세서는, (i) 상기 제2 특정 해쉬값과 (ii) 상기 제2 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 상기 연산의 결과인 연산값에 대한 해쉬값을 상기 노드의 부모 노드에 할당하거나 할당하도록 지원하며,
(x2) 상기 부모 노드가 상기 머클 트리의 루트 노드이면, 상기 부모 노드에 할당된 해쉬값을 상기 제2 대표 해쉬값으로서 상기 데이터베이스로부터 획득된 OP 메시지에 포함된 값과 비교하거나 비교하도록 지원하고,
(x3) 상기 부모 노드가 상기 머클 트리의 루트 노드가 아니면, 상기 부모 노드에 할당된 해쉬값을 상기 제2 특정 해쉬값으로 하여 상기 (x1) 내지 (x3)를 반복하여 수행하는 것을 특징으로 하는 인증 지원 서버.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160051940A KR101756719B1 (ko) | 2016-04-28 | 2016-04-28 | 로그인을 지원하기 위한 방법 및 이를 사용한 인증 지원 서버 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160051940A KR101756719B1 (ko) | 2016-04-28 | 2016-04-28 | 로그인을 지원하기 위한 방법 및 이를 사용한 인증 지원 서버 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101756719B1 true KR101756719B1 (ko) | 2017-07-12 |
Family
ID=59352775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160051940A KR101756719B1 (ko) | 2016-04-28 | 2016-04-28 | 로그인을 지원하기 위한 방법 및 이를 사용한 인증 지원 서버 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101756719B1 (ko) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190114435A (ko) * | 2018-03-30 | 2019-10-10 | 주식회사 코인플러그 | 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버 |
KR20190114434A (ko) * | 2018-03-30 | 2019-10-10 | 주식회사 코인플러그 | 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버 |
KR20190114425A (ko) * | 2018-03-30 | 2019-10-10 | 주식회사 코인플러그 | 블록체인 기반의 통합 로그인 방법, 단말 및 이를 이용한 서버 |
KR20190114423A (ko) * | 2018-03-30 | 2019-10-10 | 주식회사 코인플러그 | 블록체인 기반의 통합 로그인 방법, 단말 및 이를 이용한 서버 |
KR20190114433A (ko) * | 2018-03-30 | 2019-10-10 | 주식회사 코인플러그 | 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버 |
CN113872769A (zh) * | 2021-09-29 | 2021-12-31 | 天翼物联科技有限公司 | 基于puf的设备认证方法、装置、计算机设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101575687B1 (ko) | 2015-09-07 | 2015-12-21 | 권봉균 | 생체인식 본인인증 방법 |
-
2016
- 2016-04-28 KR KR1020160051940A patent/KR101756719B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101575687B1 (ko) | 2015-09-07 | 2015-12-21 | 권봉균 | 생체인식 본인인증 방법 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190114435A (ko) * | 2018-03-30 | 2019-10-10 | 주식회사 코인플러그 | 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버 |
KR20190114434A (ko) * | 2018-03-30 | 2019-10-10 | 주식회사 코인플러그 | 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버 |
KR20190114425A (ko) * | 2018-03-30 | 2019-10-10 | 주식회사 코인플러그 | 블록체인 기반의 통합 로그인 방법, 단말 및 이를 이용한 서버 |
KR20190114423A (ko) * | 2018-03-30 | 2019-10-10 | 주식회사 코인플러그 | 블록체인 기반의 통합 로그인 방법, 단말 및 이를 이용한 서버 |
KR20190114433A (ko) * | 2018-03-30 | 2019-10-10 | 주식회사 코인플러그 | 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버 |
KR102181601B1 (ko) | 2018-03-30 | 2020-11-23 | 주식회사 코인플러그 | 블록체인 기반의 통합 로그인 방법, 단말 및 이를 이용한 서버 |
KR102181600B1 (ko) | 2018-03-30 | 2020-11-23 | 주식회사 코인플러그 | 블록체인 기반의 통합 로그인 방법, 단말 및 이를 이용한 서버 |
KR102192382B1 (ko) | 2018-03-30 | 2020-12-17 | 주식회사 코인플러그 | 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버 |
KR102192370B1 (ko) | 2018-03-30 | 2020-12-28 | 주식회사 코인플러그 | 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버 |
KR102254499B1 (ko) | 2018-03-30 | 2021-05-21 | 주식회사 코인플러그 | 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버 |
CN113872769A (zh) * | 2021-09-29 | 2021-12-31 | 天翼物联科技有限公司 | 基于puf的设备认证方法、装置、计算机设备及存储介质 |
CN113872769B (zh) * | 2021-09-29 | 2024-02-20 | 天翼物联科技有限公司 | 基于puf的设备认证方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101780635B1 (ko) | 인증 정보의 생성, 등록, 파기 방법 및 인증 지원 서버 | |
KR101773073B1 (ko) | 거래를 지원하기 위한 방법 및 이를 사용한 인증 지원 서버 | |
KR101773074B1 (ko) | 거래를 지원하기 위한 방법 및 이를 사용한 인증 지원 서버 | |
KR101762245B1 (ko) | 로그인을 지원하기 위한 방법 및 이를 사용한 인증 지원 서버 | |
KR101766303B1 (ko) | 인증 정보의 생성, 등록, 파기 방법 및 인증 지원 서버 | |
KR101756719B1 (ko) | 로그인을 지원하기 위한 방법 및 이를 사용한 인증 지원 서버 | |
US20220321359A1 (en) | Methods and systems for ownership verification using blockchain | |
US10592872B2 (en) | Secure registration and authentication of a user using a mobile device | |
KR102413638B1 (ko) | 인증 서비스 시스템 및 방법 | |
EP3430563B1 (en) | Validation cryptogram for interaction | |
KR102383021B1 (ko) | 인증 장치의 등록을 위한 향상된 보안 | |
KR102358546B1 (ko) | 장치에 대해 클라이언트를 인증하기 위한 시스템 및 방법 | |
WO2018177093A1 (zh) | 区块链处理方法、记账节点、验证节点及存储介质 | |
US9521548B2 (en) | Secure registration of a mobile device for use with a session | |
US20180300507A1 (en) | Method and server for authenticating and verifying file | |
KR102284396B1 (ko) | 생체 정보 기반의 pki 키 생성 방법 및 이를 이용한 키 생성 장치 | |
JP6377679B2 (ja) | 制御方法、情報処理システム、コンピュータ及び制御プログラム | |
KR20190063796A (ko) | 블록체인 시스템을 위한 생체 정보 기반의 인증 장치 및 방법 | |
JP2023503607A (ja) | 自動デジタル証明書検証のための方法およびデバイス | |
CN110233850A (zh) | 基于联盟链的注册方法、应用服务器、用户端以及系统 | |
KR101767534B1 (ko) | 근거리 무선 통신 기반의 카드를 이용하여 본인 인증 서비스를 제공하는 방법 및 이를 이용한 카드, 인증용 단말, 인증 지원 서버 및 본인 인증 서버 | |
KR101818601B1 (ko) | 근거리 무선 통신 기반의 카드를 이용하여 본인 인증 서비스를 제공하는 방법 및 이를 이용한 카드, 인증용 단말, 인증 지원 서버 및 본인 인증 서버 | |
WO2020031429A1 (ja) | 端末装置、認証サーバ、端末装置の制御方法、認証方法及びプログラム | |
KR101829731B1 (ko) | 주주명부를 등록하고 주식 소유권 이전을 기록하는 방법 및 서버 | |
JP5919497B2 (ja) | ユーザ認証システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GRNT | Written decision to grant |