KR20200123029A - Pki 기반의 일회성 아이디를 사용하여 서비스를 사용하는 방법, 및 이를 사용한 사용자 단말 - Google Patents

Pki 기반의 일회성 아이디를 사용하여 서비스를 사용하는 방법, 및 이를 사용한 사용자 단말 Download PDF

Info

Publication number
KR20200123029A
KR20200123029A KR1020200047023A KR20200047023A KR20200123029A KR 20200123029 A KR20200123029 A KR 20200123029A KR 1020200047023 A KR1020200047023 A KR 1020200047023A KR 20200047023 A KR20200047023 A KR 20200047023A KR 20200123029 A KR20200123029 A KR 20200123029A
Authority
KR
South Korea
Prior art keywords
key
key pair
specific
master
user
Prior art date
Application number
KR1020200047023A
Other languages
English (en)
Other versions
KR102250430B1 (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 PCT/KR2020/005189 priority Critical patent/WO2020214001A1/ko
Publication of KR20200123029A publication Critical patent/KR20200123029A/ko
Application granted granted Critical
Publication of KR102250430B1 publication Critical patent/KR102250430B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/0825Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명에 따르면, PKI 기반의 일회성 아이디를 이용하여 서비스를 이용하는 방법에 있어서, 사용자 단말이, 사용자의 특징 정보를 시드(seed)로 이용한 deterministic 방식에 의하여 생성된 마스터 퍼블릭 키 또는 마스터 퍼블릭 키를 가공한 값을 사용자 마스터 아이디로 생성하여 서버에 등록하며, deterministic 방식에 의해 각각의 고유인덱스를 가지는 제2 키 페어 내지 제n 키 페어 중 특정 고유인덱스를 가지는 특정 키 페어를 선택하거나 생성하고, 특정 키 페어에 대응되는 특정 퍼블릭 키 또는 특정 퍼블릭 키를 가공한 값과, 특정 고유인덱스를 포함하는 일회성 아이디를 생성하여 서버에서 제공되는 서비스를 이용함으로써 서버로 하여금 일회성 아이디가 사용자 마스터 아이디에 매칭됨을 검증할 수 있도록 하는 방법이 제공된다.

Description

PKI 기반의 일회성 아이디를 사용하여 서비스를 사용하는 방법, 및 이를 사용한 사용자 단말{METHOD FOR USING SERVICE WITH ONE TIME ID BASED ON PKI, AND USER TERMINAL USING THE SAME}
본 발명은 PKI 기반의 일회성 아이디를 사용하여 서비스를 사용하는 방법 및 이를 사용한 사용자 단말에 대한 것으로서, 보다 상세하게는, 사용자의 마스터 아이디와 연결된 PKI 기반의 일회성 아이디를 생성하여 서비스를 이용할 수 있도록 하는 방법 및 이를 사용자 단말과, 그에 사용되는 서비스 서버 및 인증 서버에 관한 것이다.
일반적으로 사용자 아이디는 사용자를 나타내는 식별 부호로서, 다양한 방법에 의해 생성되어 이용되고 있다. 일 예로, 사용자가 문자, 숫자, 기호 등의 조합에 의해 생성하거나, 제품 일렬번호 등과 같이 설정된 조건에 따라 사용자 아이디를 생성할 수 있다.
이와 같은 아이디 생성 방법 중 하나로서, 최근에는 PKI 키를 이용한 아이디 생성 방법이 사용되고 있다.
PKI 기반의 아이디는 PKI 키와 연결고리를 가지며, PKI 서명 검증을 통하여 PKI 키의 소유권을 증명함으로써 아이디의 소유권도 증명할 수 있다.
한편, 아이디는 일반적으로 개인정보를 포함하고 있지 않으므로 아이디를 통해서 사용자의 개인정보를 유추하는 것은 불가능하지만, 동일한 아이디를 반복하여 사용하게 될 경우 아이디 사용 패턴을 통하여 사용자를 유추하는 것이 가능한 문제점이 있다.
한 언론사의 기사 ("'주진모 해킹' 남의 일 아니다... 개인정보 보호 만전 기해야", 연합뉴스, https://www.yna.co.kr/view/AKR20200112026500022?input=1195m) 를 보면, 기존의 아이디 및 비밀번호만으로 로그인이 이루어지는 방식에서는, 복수의 서비스에 대하여 동일한 아이디 및 비밀번호를 사용하는 경우 보안이 취약한 어느 서비스로부터 유출된 아이디 및 비밀번호가 악용되어 사용자의 개인정보 유출 피해가 확산될 수 있으며, 유출된 개인정보와 아이디가 결합되어 사용자가 특정될 수 있는 문제가 있음을 확인할 수 있다.
따라서, 이와 같은 문제점을 해결하기 위하여, 일회성 아이디를 생성하고 사용할 수 있는 방법의 필요성이 존재한다.
따라서, 본 발명은 상술한 문제점을 모두 해결하는 것을 그 목적으로 한다.
또한, 본 발명은, 아이디 사용 패턴을 통하여 사용자를 유추하지 못하도록 하는 것을 다른 목적으로 한다.
또한, 본 발명은, PKI 기반의 일회성 아이디를 생성하여 제공하여 주는 것을 다른 목적으로 한다.
또한, 본 발명은, PKI 기반의 일회성 아이디를 이용하여 회원가입 서비스를 제공할 수 있도록 하는 것을 다른 목적으로 한다.
또한, 본 발명은, PKI 기반의 일회성 아이디를 이용하여 사용자를 인증할 수 있도록 하는 것을 다른 목적으로 한다.
상기한 바와 같은 본 발명의 목적을 달성하고, 후술하는 본 발명의 특징적인 효과를 실현하기 위한, 본 발명의 특징적인 구성은 하기와 같다.
본 발명의 일 태양에 따르면, PKI 기반의 일회성 아이디를 이용하여 서비스를 이용하는 방법에 있어서, (a) 사용자 단말이, 사용자의 특징 정보를 시드(seed)로 이용한 deterministic 방식에 의하여 마스터 키 페어 - 상기 마스터 키 페어는 마스터 퍼블릭 키 및 마스터 프라이빗 키를 포함함 - 를 생성하며, 상기 마스터 퍼블릭 키 또는 상기 마스터 퍼블릭 키를 가공한 값을 사용자 마스터 아이디로 결정하고, 상기 사용자 마스터 아이디를 서버로 전송하여 상기 서버로 하여금 상기 전송된 사용자 마스터 아이디를 등록하도록 하는 단계; 및 (b) 일회성 아이디 생성 조건이 만족되면, 상기 사용자 단말이, 상기 마스터 키 페어를 제1 키 페어라고 할 때, (i) 상기 시드를 이용한 상기 deterministic 방식에 의해 각각의 고유인덱스를 가지는 제1 키 페어 내지 제n - 상기 n은 2 이상의 정수임 - 키 페어를 생성한 상태에서 제2 키 페어 내지 제n 키 페어 중 특정 고유인덱스를 가지는 특정 키 페어를 선택하거나, (ii) 상기 시드를 이용한 상기 deterministic 방식에 의해 상기 제2 키 페어 내지 상기 제n 키 페어 중 상기 특정 고유인덱스를 가지는 상기 특정 키 페어를 생성하며, 상기 특정 키 페어에 대응되는 특정 퍼블릭 키 또는 상기 특정 퍼블릭 키를 가공한 값과, 상기 특정 고유인덱스를 포함하는 일회성 아이디를 생성하고, 상기 일회성 아이디를 이용하여 상기 서버에서 제공되는 서비스를 이용함으로써 상기 서버로 하여금 상기 사용자 마스터 아이디와 일회성 아이디에 포함된 상기 특정 고유인덱스를 이용한 상기 deterministic 방식에 의해 상기 일회성 아이디에 대응되는 검증용 특정 퍼블릭 키를 생성하여 상기 일회성 아이디가 상기 사용자 마스터 아이디에 매칭됨을 검증할 수 있도록 하는 단계; 를 포함하는 방법이 제공된다.
일례로서, (c) 상기 일회성 아이디의 사용에 대응하여 상기 서버로부터 서명확인값에 대한 서명 요청이 획득되면, 상기 사용자 단말이, 상기 서명확인값을 상기 마스터 프라이빗 키로 서명한 사용자 서명값을 상기 서버로 전송함으로써 상기 서버로 하여금 상기 서버에 등록된 상기 사용자 마스터 아이디에 대응되는 상기 마스터 퍼블릭 키를 이용하여 상기 서명값을 검증하도록 하거나, 상기 서명확인값을 상기 특정 퍼블릭 키로 서명한 상기 사용자 서명값을 상기 서버로 전송함으로써 상기 서버로 하여금 상기 검증용 특정 퍼블릭 키를 이용하여 상기 사용자 서명값을 검증하도록 하여 상기 일회성 아이디가 상기 마스터 아이디에 매칭됨을 검증하도록 하는 단계;
를 더 포함하는 방법이 제공된다.
일례로서, 상기 deterministic 방식은 hierarchical deterministic 방식을 포함하며, 상기 (b) 단계에서, 상기 사용자 단말은, 상기 마스터 키 페어로서의 상기 제1 키 페어를 뿌리(root)로 하여 n개의 레벨을 가지는 트리 구조로 상기 제2 키 페어 내지 상기 제n 키 페어 각각을 생성하되, 상기 제2 키 페어 내지 상기 제n 키 페어 중 어느 하나인 제k 레벨의 제k 키 페어는 제(k-1) 레벨에서의 제(k-1) 키 페어에 포함된 서브 키 페어들 각각을 부모 키 페어들로 하고, 상기 부모 키 페어들 각각을 참조하여 생성한 자녀 키 페어들을 포함하는 방법이 제공된다.
일례로서, 상기 (b) 단계에서, 상기 사용자 단말은, 상기 마스터 퍼블릭 키 및 상기 일회성 아이디에 대응되는 상기 특정 고유인덱스를 적어도 포함하는 값에 대하여 소정의 해시 연산을 수행하여, 상기 마스터 프라이빗 키를 참조하지 않고 생성될 수 있는 확장 퍼블릭 키 또는 상기 확장 퍼블릭 키를 가공한 값을 이용하여 상기 일회성 아이디를 생성하는 방법이 제공된다.
또한, 본 발명의 다른 태양에 따르면, PKI 기반의 일회성 아이디를 이용하여 서비스를 이용하는 방법에 있어서, (a) 사용자 단말이, 사용자의 특징 정보를 시드(seed)로 이용한 deterministic 방식에 의하여 생성한 마스터 키 페어의 마스터 퍼블릭 키를 이용한 사용자 DID와, 인증 서버에 의해 생성되어 상기 사용자 단말에 저장된 VC(verifiable credential)에 대응되는 VC 아이디가 블록체인 네트워크에 등록된 상태에서, 상기 사용자 단말이, 서비스 앱을 통해 서비스 서버로 회원가입 요청을 함으로써 상기 서비스 서버로 하여금 상기 사용자 단말로 상기 VC를 요청하도록 하며, 상기 서비스 서버로부터의 상기 VC에 대한 요청에 대응하여 DID 앱을 통해 상기 VC를 상기 서비스 서버의 서비스 서버 퍼블릭 키로 암호화한 VP(verifiable presentation)를 생성하고, 상기 마스터 키 페어를 제1 키 페어라고 할 때, (i) 상기 시드를 이용한 상기 deterministic 방식에 의해 각각의 고유인덱스를 가지는 제1 키 페어 내지 제n - 상기 n은 2 이상의 정수임 - 키 페어를 생성한 상태에서 제2 키 페어 내지 제n 키 페어 중 제1 특정 고유인덱스를 가지는 제1 특정 키 페어를 선택하거나, (ii) 상기 시드를 이용한 상기 deterministic 방식에 의해 상기 제2 키 페어 내지 상기 제n 키 페어 중 상기 제1 특정 고유인덱스를 가지는 상기 제1 특정 키 페어를 생성하며, 상기 제1 특정 키 페어에 대응되는 제1 특정 퍼블릭 키를 이용하여 제1 일회성 DID를 생성하는 단계; 및 (b) 상기 사용자 단말이, 상기 DID 앱을 통해 상기 사용자 DID, 상기 제1 일회성 DID, 상기 제1 특정 고유인덱스, 및 상기 VP를 상기 서비스 서버로 전송하거나, 상기 인증 서버로 하여금 상기 서비스 서버로 전송하도록 함으로써 상기 서비스 서버로 하여금 (i) 상기 사용자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 마스터 퍼블릭 키와 상기 VC 아이디를 획득하도록 하며, 상기 마스터 퍼블릭 키와 상기 제1 특정 고유인덱스를 이용하여 상기 제1 일회성 DID를 검증하도록 하고, (ii) 서비스 서버 프라이빗 키를 이용하여 상기 VP로부터 상기 VC를 획득하도록 하며, 상기 VC 아이디를 이용하여 상기 인증 서버로 상기 VC에 대한 검증을 요청하도록 하고, (iii) 상기 인증 서버로부터의 상기 VC에 대한 검증 결과에 대응하여 상기 제1 일회성 DID로 상기 서비스 앱을 통한 상기 회원가입 요청을 승인하는 단계; 를 포함하는 방법이 제공된다.
일례로서, (c) 상기 사용자 단말이, 서비스 앱을 통해 서비스 서버로 인증을 요청함으로써 상기 서비스 서버로 하여금 상기 사용자 단말로 서명확인값을 포함하는 사용자 서명을 요청하도록 하며, 상기 서비스 서버로부터의 상기 사용자 서명에 대한 요청에 대응하여 DID 앱을 통해 (i) (i-1) 상기 서명확인값을 상기 마스터 키 페어의 마스터 프라이빗 키로 서명한 사용자 서명값을 생성하고, 상기 제2 키 페어 내지 상기 제n 키 페어 중 제2 특정 고유인덱스를 가지는 제2 특정 키 페어를 선택하거나, (i-2) 상기 제2 키 페어 내지 상기 제n 키 페어 중 상기 제2 특정 고유인덱스를 가지는 상기 제2 특정 키 페어를 생성하며, 상기 제2 특정 키 페어에 대응되는 제2 특정 퍼블릭 키를 이용하여 제2 일회성 DID를 생성하는 프로세스를 수행하거나 , (ii) (ii-1) 상기 제2 키 페어 내지 상기 제n 키 페어 중 상기 제2 특정 고유인덱스를 가지는 상기 제2 특정 키 페어를 생성하며, 상기 제2 특정 키 페어에 대응되는 제2 특정 퍼블릭 키를 이용하여 제2 일회성 DID를 생성하며, (ii-2) 상기 서명확인값을 상기 제1 특정 퍼블릭 키 또는 상기 제2 특정 퍼블릭 키로 서명한 상기 사용자 서명값을 생성하는 프로세스를 수행하는 단계; 및 (d) 상기 사용자 단말이, 상기 DID 앱을 통해 상기 사용자 DID, 상기 제2 일회성 DID, 상기 제2 특정 고유인덱스, 및 상기 사용자 서명값을 상기 서비스 서버로 전송하거나, 상기 인증 서버로 하여금 상기 서비스 서버로 전송하도록 함으로써 상기 서비스 서버로 하여금 (i) 상기 사용자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 마스터 퍼블릭 키를 획득하도록 하며, 상기 마스터 퍼블릭 키와 상기 제2 특정 고유인덱스를 이용하여 상기 제2 일회성 DID를 검증하도록 하고, (ii) 상기 마스터 퍼블릭 키를 이용하여 상기 사용자 서명값을 검증하도록 하거나, 상기 제1 특정 퍼블릭 키 또는 상기 제2 일회성 DID에 대응되는 검증용 특정 퍼블릭 키를 이용하여 상기 사용자 서명값을 검증하도록 하며, (iii) 상기 제2 일회성 DID와 상기 사용자 서명값이 검증되면 상기 서비스 앱으로부터의 인증 요청을 승인하는 단계; 를 더 포함하는 방법이 제공된다.
일례로서, 상기 deterministic 방식은 hierarchical deterministic 방식을 포함하며, 상기 사용자 단말은, 상기 마스터 키 페어로서의 상기 제1 키 페어를 뿌리(root)로 하여 n개의 레벨을 가지는 트리 구조로 상기 제2 키 페어 내지 상기 제n 키 페어 각각을 생성하되, 상기 제2 키 페어 내지 상기 제n 키 페어 중 어느 하나인 제k 레벨의 제k 키 페어는 제(k-1) 레벨에서의 제(k-1) 키 페어에 포함된 서브 키 페어들 각각을 부모 키 페어들로 하고, 상기 부모 키 페어들 각각을 참조하여 생성한 자녀 키 페어들을 포함하는 방법이 제공된다.
일례로서, 상기 (b) 단계에서, 상기 사용자 단말은, 상기 서비스 서버로 하여금 상기 deterministic 방식에 의해 상기 마스터 퍼블릭 키를 이용하여 상기 제1 특정 고유인덱스에 대응되는 검증용 퍼블릭 키를 생성하도록 하며, 상기 검증용 퍼블릭 키에 대응되는 검증용 DID와 상기 제1 일회성 DID를 비교함으로써 상기 제1 일회성 DID를 검증하도록 하는 방법이 제공된다.
또한, 본 발명의 다른 태양에 따르면, PKI 기반의 일회성 아이디를 이용하여 서비스를 이용하는 사용자 단말에 있어서, 인스트럭션들을 저장하는 적어도 하나의 메모리; 및 상기 인스트럭션들을 실행하기 위해 구성된 적어도 하나의 프로세서; 를 포함하고, 상기 프로세서가, (I) 사용자의 특징 정보를 시드(seed)로 이용한 deterministic 방식에 의하여 마스터 키 페어 - 상기 마스터 키 페어는 마스터 퍼블릭 키 및 마스터 프라이빗 키를 포함함 - 를 생성하며, 상기 마스터 퍼블릭 키 또는 상기 마스터 퍼블릭 키를 가공한 값을 사용자 마스터 아이디로 결정하고, 상기 사용자 마스터 아이디를 서버로 전송하여 상기 서버로 하여금 상기 전송된 사용자 마스터 아이디를 등록하도록 하는 프로세스; 및 (II) 일회성 아이디 생성 조건이 만족되면, 상기 마스터 키 페어를 제1 키 페어라고 할 때, (i) 상기 시드를 이용한 상기 deterministic 방식에 의해 각각의 고유인덱스를 가지는 제1 키 페어 내지 제n - 상기 n은 2 이상의 정수임 - 키 페어를 생성한 상태에서 제2 키 페어 내지 제n 키 페어 중 특정 고유인덱스를 가지는 특정 키 페어를 선택하거나, (ii) 상기 시드를 이용한 상기 deterministic 방식에 의해 상기 제2 키 페어 내지 상기 제n 키 페어 중 상기 특정 고유인덱스를 가지는 상기 특정 키 페어를 생성하며, 상기 특정 키 페어에 대응되는 특정 퍼블릭 키 또는 상기 특정 퍼블릭 키를 가공한 값과, 상기 특정 고유인덱스를 포함하는 일회성 아이디를 생성하고, 상기 일회성 아이디를 이용하여 상기 서버에서 제공되는 서비스를 이용함으로써 상기 서버로 하여금 상기 사용자 마스터 아이디와 일회성 아이디에 포함된 상기 특정 고유인덱스를 이용한 상기 deterministic 방식에 의해 상기 일회성 아이디에 대응되는 검증용 특정 퍼블릭 키를 생성하여 상기 일회성 아이디가 상기 사용자 마스터 아이디에 매칭됨을 검증할 수 있도록 하는 프로세스; 를 수행하는 사용자 단말이 제공된다.
일례로서, (c) 상기 일회성 아이디의 사용에 대응하여 상기 서버로부터 서명확인값에 대한 서명 요청이 획득되면, 상기 프로세서가, 상기 서명확인값을 상기 마스터 프라이빗 키로 서명한 사용자 서명값을 상기 서버로 전송함으로써 상기 서버로 하여금 상기 서버에 등록된 상기 사용자 마스터 아이디에 대응되는 상기 마스터 퍼블릭 키를 이용하여 상기 서명값을 검증하도록 하거나, 상기 서명확인값을 상기 특정 퍼블릭 키로 서명한 상기 사용자 서명값을 상기 서버로 전송함으로써 상기 서버로 하여금 상기 검증용 특정 퍼블릭 키를 이용하여 상기 사용자 서명값을 검증하도록 하여 상기 일회성 아이디가 상기 마스터 아이디에 매칭됨을 검증하도록 하는 프로세스; 를 더 수행하는 사용자 단말이 제공된다.
일례로서, 상기 deterministic 방식은 hierarchical deterministic 방식을 포함하며, 상기 (II) 프로세스에서, 상기 프로세서는, 상기 마스터 키 페어로서의 상기 제1 키 페어를 뿌리(root)로 하여 n개의 레벨을 가지는 트리 구조로 상기 제2 키 페어 내지 상기 제n 키 페어 각각을 생성하되, 상기 제2 키 페어 내지 상기 제n 키 페어 중 어느 하나인 제k 레벨의 제k 키 페어는 제(k-1) 레벨에서의 제(k-1) 키 페어에 포함된 서브 키 페어들 각각을 부모 키 페어들로 하고, 상기 부모 키 페어들 각각을 참조하여 생성한 자녀 키 페어들을 포함하는 사용자 단말이 제공된다.
일례로서, 상기 (II) 프로세스에서, 상기 프로세서는, 상기 마스터 퍼블릭 키 및 상기 일회성 아이디에 대응되는 상기 특정 고유인덱스를 적어도 포함하는 값에 대하여 소정의 해시 연산을 수행하여, 상기 마스터 프라이빗 키를 참조하지 않고 생성될 수 있는 확장 퍼블릭 키 또는 상기 확장 퍼블릭 키를 가공한 값을 이용하여 상기 일회성 아이디를 생성하는 사용자 단말이 제공된다.
또한, 본 발명의 다른 태양에 따르면, PKI 기반의 일회성 아이디를 이용하여 서비스를 이용하는 사용자 단말에 있어서, 인스트럭션들을 저장하는 적어도 하나의 메모리; 및 상기 인스트럭션들을 실행하기 위해 구성된 적어도 하나의 프로세서; 를 포함하고, 상기 프로세서가, (I) 사용자의 특징 정보를 시드(seed)로 이용한 deterministic 방식에 의하여 생성한 마스터 키 페어의 마스터 퍼블릭 키를 이용한 사용자 DID와, 인증 서버에 의해 생성되어 상기 사용자 단말에 저장된 VC(verifiable credential)에 대응되는 VC 아이디가 블록체인 네트워크에 등록된 상태에서, 서비스 앱을 통해 서비스 서버로 회원가입 요청을 함으로써 상기 서비스 서버로 하여금 상기 사용자 단말로 상기 VC를 요청하도록 하며, 상기 서비스 서버로부터의 상기 VC에 대한 요청에 대응하여 DID 앱을 통해 상기 VC를 상기 서비스 서버의 서비스 서버 퍼블릭 키로 암호화한 VP(verifiable presentation)를 생성하고, 상기 마스터 키 페어를 제1 키 페어라고 할 때, (i) 상기 시드를 이용한 상기 deterministic 방식에 의해 각각의 고유인덱스를 가지는 제1 키 페어 내지 제n - 상기 n은 2 이상의 정수임 - 키 페어를 생성한 상태에서 제2 키 페어 내지 제n 키 페어 중 제1 특정 고유인덱스를 가지는 제1 특정 키 페어를 선택하거나, (ii) 상기 시드를 이용한 상기 deterministic 방식에 의해 상기 제2 키 페어 내지 상기 제n 키 페어 중 상기 제1 특정 고유인덱스를 가지는 상기 제1 특정 키 페어를 생성하며, 상기 제1 특정 키 페어에 대응되는 제1 특정 퍼블릭 키를 이용하여 제1 일회성 DID를 생성하는 프로세스; 및 (II) 상기 DID 앱을 통해 상기 사용자 DID, 상기 제1 일회성 DID, 상기 제1 특정 고유인덱스, 및 상기 VP를 상기 서비스 서버로 전송하거나, 상기 인증 서버로 하여금 상기 서비스 서버로 전송하도록 함으로써 상기 서비스 서버로 하여금 (i) 상기 사용자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 마스터 퍼블릭 키와 상기 VC 아이디를 획득하도록 하며, 상기 마스터 퍼블릭 키와 상기 제1 특정 고유인덱스를 이용하여 상기 제1 일회성 DID를 검증하도록 하고, (ii) 서비스 서버 프라이빗 키를 이용하여 상기 VP로부터 상기 VC를 획득하도록 하며, 상기 VC 아이디를 이용하여 상기 인증 서버로 상기 VC에 대한 검증을 요청하도록 하고, (iii) 상기 인증 서버로부터의 상기 VC에 대한 검증 결과에 대응하여 상기 제1 일회성 DID로 상기 서비스 앱을 통한 상기 회원가입 요청을 승인하는 프로세스; 를 수행하는 사용자 단말이 제공된다.
일례로서, (III) 상기 프로세서가, 서비스 앱을 통해 서비스 서버로 인증을 요청함으로써 상기 서비스 서버로 하여금 상기 사용자 단말로 서명확인값을 포함하는 사용자 서명을 요청하도록 하며, 상기 서비스 서버로부터의 상기 사용자 서명에 대한 요청에 대응하여 DID 앱을 통해 (i) (i-1) 상기 서명확인값을 상기 마스터 키 페어의 마스터 프라이빗 키로 서명한 사용자 서명값을 생성하고, 상기 제2 키 페어 내지 상기 제n 키 페어 중 제2 특정 고유인덱스를 가지는 제2 특정 키 페어를 선택하거나, (i-2) 상기 제2 키 페어 내지 상기 제n 키 페어 중 상기 제2 특정 고유인덱스를 가지는 상기 제2 특정 키 페어를 생성하며, 상기 제2 특정 키 페어에 대응되는 제2 특정 퍼블릭 키를 이용하여 제2 일회성 DID를 생성하는 프로세스를 수행하거나, (ii) (ii-1) 상기 제2 키 페어 내지 상기 제n 키 페어 중 상기 제2 특정 고유인덱스를 가지는 상기 제2 특정 키 페어를 생성하며, 상기 제2 특정 키 페어에 대응되는 제2 특정 퍼블릭 키를 이용하여 제2 일회성 DID를 생성하며, (ii-2) 상기 서명확인값을 상기 제1 특정 퍼블릭 키 또는 상기 제2 특정 퍼블릭 키로 서명한 상기 사용자 서명값을 생성하는 프로세스를 수행하는 프로세스; 및 (IV) 상기 프로세서가, 상기 DID 앱을 통해 상기 사용자 DID, 상기 제2 일회성 DID, 상기 제2 특정 고유인덱스, 및 상기 사용자 서명값을 상기 서비스 서버로 전송하거나, 상기 인증 서버로 하여금 상기 서비스 서버로 전송하도록 함으로써 상기 서비스 서버로 하여금 (i) 상기 사용자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 마스터 퍼블릭 키를 획득하도록 하며, 상기 마스터 퍼블릭 키와 상기 제2 특정 고유인덱스를 이용하여 상기 제2 일회성 DID를 검증하도록 하도록 하거나, 상기 제1 특정 퍼블릭 키 또는 상기 제2 일회성 DID에 대응되는 검증용 특정 퍼블릭 키를 이용하여 상기 사용자 서명값을 검증하도록 하고, (ii) 상기 마스터 퍼블릭 키를 이용하여 상기 사용자 서명값을 검증하도록 하며, (iii) 상기 제2 일회성 DID와 상기 사용자 서명값이 검증되면 상기 서비스 앱으로부터의 인증 요청을 승인하는 프로세스; 를 더 수행하는 사용자 단말이 제공된다.
일례로서, 상기 deterministic 방식은 hierarchical deterministic 방식을 포함하며, 상기 프로세서는, 상기 마스터 키 페어로서의 상기 제1 키 페어를 뿌리(root)로 하여 n개의 레벨을 가지는 트리 구조로 상기 제2 키 페어 내지 상기 제n 키 페어 각각을 생성하되, 상기 제2 키 페어 내지 상기 제n 키 페어 중 어느 하나인 제k 레벨의 제k 키 페어는 제(k-1) 레벨에서의 제(k-1) 키 페어에 포함된 서브 키 페어들 각각을 부모 키 페어들로 하고, 상기 부모 키 페어들 각각을 참조하여 생성한 자녀 키 페어들을 포함하는 사용자 단말이 제공된다.
일례로서, 상기 (II) 프로세스에서, 상기 프로세서는, 상기 서비스 서버로 하여금 상기 deterministic 방식에 의해 상기 마스터 퍼블릭 키를 이용하여 상기 제1 특정 고유인덱스에 대응되는 검증용 퍼블릭 키를 생성하도록 하며, 상기 검증용 퍼블릭 키에 대응되는 검증용 DID와 상기 제1 일회성 DID를 비교함으로써 상기 제1 일회성 DID를 검증하도록 하는 사용자 단말이 제공된다.
본 발명에 의하면, 다음과 같은 효과가 있다.
본 발명은, 아이디 사용 패턴을 통하여 사용자를 유추하지 못하도록 하는 효과가 있다.
또한, 본 발명은, PKI 기반의 일회성 아이디를 생성하여 제공하여 주는 효과가 있다.
또한, 본 발명은, PKI 기반의 일회성 아이디를 이용하여 회원가입 서비스를 제공할 수 있도록 하는 효과가 있다.
또한, 본 발명은, PKI 기반의 일회성 아이디를 이용하여 사용자를 인증할 수 있도록 하는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른, PKI 기반의 일회성 아이디를 생성하고 사용하는 사용자 단말을 개략적으로 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른, PKI 기반의 일회성 아이디를 생성하기 위한 deterministic 방식의 키 생성 방법을 개략적으로 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른, PKI 기반의 일회성 아이디를 생성하기 위한 deterministic 방식의 키 생성 방법 중 hierarchical deterministic 방식의 키 생성 방법을 개략적으로 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른, 사용자 DID(Decentralized ID)를 생성하는 과정을 개략적으로 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른, 사용자의 이메일을 사용하여 VC(Verifiable Credential)를 생성하는 과정을 개략적으로 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른, PKI 기반의 일회성 아이디를 사용한 회원가입이 이루어지는 과정을 개략적으로 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 따른, PKI 기반의 일회성 아이디를 사용한 인증이 이루어지는 과정을 개략적으로 나타낸 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다.
또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른, PKI 기반의 일회성 아이디를 생성하고 사용하는 사용자 단말을 개략적으로 나타낸 도면이다.
도 1을 참조하면, PKI 기반의 일회성 아이디를 생성하고 사용하는 사용자 단말(100)는 메모리(110) 및 프로세서(120)를 포함할 수 있다. 이 때, 메모리(110)는, 프로세서(120)의 인스트럭션들을 저장할 수 있는데, 구체적으로, 인스트럭션들은 사용자 단말(100)로 하여금 특정의 방식으로 기능하게 하기 위한 목적으로 생성되는 코드로서, 컴퓨터 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장될 수 있다. 인스트럭션들은 본 발명의 명세서에서 설명되는 기능들을 실행하기 위한 프로세스들을 수행할 수 있다.
그리고, 프로세서(120)는, MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 포함할 수 있다.
또한, 사용자 단말(100)에는, PKI 기반의 일회성 아이디를 사용하여 서비스를 사용하기 위하여 소정의 앱이 설치될 수 있으며, 이는 아래에서 다시 설명하도록 하겠다.
한편, 사용자 단말(100)은 PC(Personal Computer), 모바일 컴퓨터, PDA/EDA, 휴대 전화, 스마트폰, 태블릿, IoT 기기, 서버 등을 포함할 수 있다. 하지만, 장치(100)는 이에 한정되지 않으며, 유무선 통신 기능을 가진 휴대용 게임기, 디지털 카메라, 개인 내비게이션 등과 같이 일회성 아이디를 생성하기 위한 컴퓨팅 연산을 수행할 수 있는 모든 장치를 포함할 수 있다.
이와 같은 사용자 단말(100)를 사용하여 PKI 기반의 일회성 아이디를 생성하기 위해서는, deterministic 방식의 키 생성 방법이 사용될 수 있는데, 이를 도 2를 참조하여 설명하면 다음과 같다.
도 2는 본 발명의 일 실시예에 따른, PKI 기반의 일회성 아이디를 생성하기 위한 deterministic 방식의 키 생성 방법을 개략적으로 나타낸 도면이다.
도 2를 참조하면, 소정의 시드(seed, 200)로부터 마스터 키 페어(201-1)를 생성하고, 생성된 마스터 키(201-1)로부터 파생되는 하위 키(201-2, 201-3, ..., 201-n)들이 생성될 수 있다. 이 때, 시드(seed)는 사용자 특징 정보일 수 있는데, 예를 들어, 사용자의 개인 정보인 성명, 생년월일, 성별, 별명, 전화번호, 이메일 주소, 생체 정보, 행동 특성, 취미, 신체 특징, 생활 패턴 등이 사용될 수 있으나, 이에 한정되는 것은 아니다.
또한, 생성되는 마스터 키 페어(201-1)는 마스터 프라이빗 키 및 마스터 퍼블릭 키를 포함하며, 그로부터 파생되는 하위 키 페어(201-2, 201-3, ..., 201-n) 각각은, 순차적으로 그 각각에 해당되는 고유인덱스를 증가시키면서 바로 전 순서에 생성된 키 페어를 참조하여 생성될 수 있다. 이 때, 하위 키 페어 (201-2, 201-3, ..., 201-n) 각각을 생성하기 위하여 소정의 일방향 해시 함수가 사용될 수 있으나, 특정 해시 함수를 사용하는 것으로 한정되는 것은 아니며, 발명의 실시 조건에 따라 사용되는 해시 함수 등은 달라질 수 있다.
그리고, 생성된 각각의 하위 키(201-2, 201-3, ..., 201-n)는 그 각각에 해당되는 고유인덱스를 가지고 생성됨으로써, 해당 하위 키를 생성하는 데 사용된 특정 시드 또는 마스터 키와, 해당 하위 키에 해당되는 고유인덱스를 참조하여 복원하는 것이 가능하다.
또한, 발명의 일 예로서, 사용자 단말(100)은, 상기 마스터 프라이빗 키를 참조하지 않고 생성될 수 있는 확장 퍼블릭 키 또는 상기 확장 퍼블릭 키를 가공한 값을 이용하여 상기 일회성 아이디를 생성할 수 있다. 즉, 제2 내지 제n 키 페어 각각을 생성함에 있어, 그 각각의 하위 퍼블릭 키를 생성하기 위하여 그에 대응되는 하위 프라이빗 키 페어를 사용할 수도 있으나, 그와는 달리, 마스터 프라이빗 키를 사용하지 않고 마스터 퍼블릭 키로부터 생성될 수 있는 확장 퍼블릭 키를 사용하여 하위 퍼블릭 키를 파생시켜 생성할 수 있으며, 그와 같이 생성된 하위 퍼블릭 키 또는 하위 퍼블릭 키를 가공한 값을 사용하여 일회성 아이디를 생성할 수도 있다. 그렇게 함으로써, 사용자 단말(100)은 마스터 프라이빗 키 또는 하위 프라이빗 키를 사용하지 않고 일회성 아이디를 생성할 수 있게 되어, 일회성 아이디 생성 및 사용 과정에서 프라이빗 키가 노출될 위험을 줄일 수 있다.
상술한 바와 같은 deterministic 키 생성 방식을 사용하여, 일회성 아이디를 다음과 같은 방법으로 생성할 수 있다.
우선, 사용자 단말(100)이, 사용자의 특징 정보를 시드(200)로 이용한 deterministic 방식에 의하여 마스터 키 페어(201-1)를 생성하며, 생성된 마스터 키에 포함된 마스터 퍼블릭 키 및 마스터 프라이빗 키 중에서 마스터 퍼블릭 키 또는 마스터 퍼블릭 키를 가공한 값을 사용자 마스터 아이디로 결정하고, 결정된 사용자 마스터 아이디를 서버로 전송하여, 해당 서버로 하여금 전송된 사용자 마스터 아이디를 등록하도록 할 수 있다.
그런 상태에서, 소정의 일회성 아이디 생성 조건이 만족되면, 사용자 단말(100)이, 마스터 키 페어(201-1)를 제1 키 페어라고 할 때, 시드(200)를 이용한 상기 deterministic 방식에 의해 각각의 고유인덱스를 가지는 제1 키 페어 내지 제n 키 페어를 생성한 상태에서, 제2 키 페어 내지 제n 키 페어(201-2, 201-3, ..., 201-n) 중 특정 고유인덱스를 가지는 특정 키 페어를 선택하거나, 시드(200)를 이용한 상기 deterministic 방식에 의해 상기 제2 키 페어 내지 상기 제n 키 페어(201-2, 201-3, ..., 201-n) 중 상기 특정 고유인덱스를 가지는 상기 특정 키 페어를 생성할 수 있다. 이때, 상기 n은 2 이상의 정수일 수 있다.
그리고 나서, 사용자 단말(100)은, 해당 특정 키 페어에 대응되는 특정 퍼블릭 키 또는 특정 퍼블릭 키를 가공한 값과, 해당 특정 키 페어에 해당되는 특정 고유인덱스를 포함하는 일회성 아이디를 생성하고, 생성된 일회성 아이디를 이용하여 서버에서 제공되는 서비스를 이용함으로써 서버로 하여금 사용자 마스터 아이디와 일회성 아이디에 포함된 특정 고유인덱스를 이용한 deterministic 방식에 의해 일회성 아이디에 대응되는 검증용 특정 퍼블릭 키를 생성하여 일회성 아이디가 상기 사용자 마스터 아이디에 매칭됨을 검증할 수 있도록 할 수 있다. 즉, 서버에 등록된 사용자 마스터 아이디는 마스터 퍼블릭 키를 바탕으로 생성된 것이므로, (i) 사용자 마스터 아이디에 대응되는 마스터 퍼블릭 키 값과 (ii) 일회성 아이디에 해당되는 특정 고유인덱스를 사용하여 동일한 deterministic 방식으로 검증용 특정 퍼블릭 키를 생성하여, 생성된 검증용 특정 퍼블릭 키가 해당 일회성 아이디와 동일함을 확인하여, 해당 일회성 아이디가 사용자 마스터 아이디와 연결되어 있음을 검증할 수 있다.
또한, 발명의 일 예로서, 일회성 아이디의 사용에 대응하여 서버로부터 서명확인값에 대한 서명 요청이 획득되면, 사용자 단말(100)이, 서명확인값을 마스터 프라이빗 키로 서명한 사용자 서명값을 서버로 전송함으로써, 서버로 하여금 서버에 등록된 사용자 마스터 아이디에 대응되는 마스터 퍼블릭 키를 이용하여 서명값을 검증하여 상기 일회성 아이디가 상기 마스터 아이디에 매칭됨을 검증하도록 하거나, 서명확인값을 특정 퍼블릭 키로 서명한 사용자 서명값을 서버로 전송함으로써 서버로 하여금 검증용 특정 퍼블릭 키를 이용하여 사용자 서명값을 검증하도록 할 수 있다. 이 때 사용되는 서명확인값은, 서버에 의해서 임의로 생성된 논스(nounce), 타임 스탬프(timestamp) 등을 포함할 수 있으나, 이에 한정되는 것은 아니며, 발명의 실시 조건에 따라 달라질 수 있다.
다음으로, 발명의 일 예로서, 본 발명에서 키 페어들을 생성하기 위해 사용되는 deterministic 방식은 hierarchical deterministic 방식을 포함할 수 있으며, 이를 도 3을 참조하여 설명하면 다음과 같다.
도 3은 본 발명의 일 실시예에 따른, PKI 기반의 일회성 아이디를 생성하기 위한 deterministic 방식의 키 생성 방법 중 hierarchical deterministic 방식의 키 생성 방법을 개략적으로 나타낸 도면이다.
도 3을 참조하면, 사용자 단말(100)은, 마스터 키 페어로서의 제1 키 페어(210)를 뿌리(root)로 하여 n개의 레벨을 가지는 트리 구조로 제2 키 페어 내지 제n 키 페어 각각을 생성할 수 있는데, 이 때 제2 키 페어 내지 제n 키 페어 중 어느 하나인 제k 레벨의 제k 키 페어는 제(k-1) 레벨에서의 제(k-1) 키 페어에 포함된 서브 키 페어들 각각을 부모 키 페어들로 하고, 상기 부모 키 페어들 각각을 참조하여 생성한 자녀 키 페어들을 포함하여 생성될 수 있다. 이 때 '부모 키 페어', '자녀 키 페어' 및 '손자 키 페어' 등의 용어는 해당 키 페어가 생성된 레벨에 따라 유동적으로 결정되어 사용되는 것이다.
예를 들어, 도 3에서 도시된 바와 같이, 마스터 키 페어(210)가 '부모 키 페어'라면, 그로부터 파생되어 자녀 키 페어(child key, 220-1, 220-2, 220-3, ...), 손자 키 페어(grandchild key, 230-1, 230-2, 230-3, ...)의 순서로 그 레벨이 계속해서 깊어지며 서브 키 페어들이 생성될 수 있으며, 상기 제k 키 페어가 도 3에서 세번째 레벨에 해당되는 키 페어(grandchild key, 230-1, 230-2, 230-3, ...)라면, 바로 위 레벨인 제(k-1) 레벨에서의 제(k-1) 키 페어에 포함된 서브 키 페어들(child key, 220-1, 220-2, 220-3, ...) 각각이 '부모 키 페어'가 되고, 해당 부모 키 페어들 각각을 참조하여 생성된 키 페어들을 포함하여 상기 제k 키 페어가 '자녀 키 페어'로서 생성될 수 있다. 이때, 각각의 키 페어들에 대응되는 인덱스는 레벨별 인덱스로 표현될 수 있다. 일 예로, 제1 레벨의 인덱스는 [1 내지 i]로 표현될 수 있으며, 제2 레벨의 인덱스는 [1 내지 i]/[1 내지 i], 제3 레벨의 인덱스는 [1 내지 i][/[1 내지 i]/[1 내지 i]로 표현될 수 있으며, 같은 방법에 의해 제n 레벨의 인덱스는 [1 내지 i]/[1 내지 i]/.../[1 내지 i]로 표현될 수 있다. 그리고, i는 하나의 부모 키 페어로부터 생성될 수 있는 자녀 키 페어의 개수일 수 있으며, 각각의 레벨 별로 동일하거나 서로 다른 값을 가질 수 있다.
한편, 상기 도 2 및 도 3을 참조한 설명에서는, deterministic 방식 또는 hierarchical deterministic 방식에 의해 생성되는 첫 번째 키 페어를 마스터 키 페어로 설명하였으나, 이와는 달리 기설정된 인덱스에 대응되는 기설정된 키 페어를 마스터 키 페어로 설정할 수도 있다.
다음으로, 아래에서는, 본 발명의 다른 실시예로서, 블록체인 네트워크를 사용하여 PKI 기반의 일회성 아이디를 생성 및 사용하는 방법을 설명하도록 하겠다.
우선, 사용자 DID(Decentralized ID)가 생성되어 블록체인에 저장될 수 있다.
도 4는 본 발명의 일 실시예에 따른, 사용자 DID(Decentralized ID)를 생성하는 과정을 개략적으로 나타낸 도면이다.
도 4를 참조하면, 사용자 단말(100)에 설치된 DID 앱(130)이 마스터 키 페어를 생성(S101) 할 수 있다. 이 때, 상술한 바와 같은 deterministic 방식이 사용될 수 있다.
그리고 나서, DID 앱(130)은 생성된 마스터 프라이빗 키를 사용자 단말(100), 일 예로, 사용자 단말(100)의 SE(secure element)에 저장(S102)하며, 생성된 마스터 퍼블릭 키를 블록체인 네트워크(300)와 연동된 적어도 하나의 노드로 전송하여 사용자 DID의 생성 요청(S103)을 수행할 수 있다.
그러면, 해당 블록체인 네트워크 노드는 전송된 사용자 DID 생성 요청 트랜잭션의 서명을 검증(S104)하고, 사용자 DID를 생성(S105)하여 이를 블록체인 네트워크(300)에 저장(S106)되도록 할 수 있다. 이 때, 사용자 DID는 마스터 퍼블릭 키 또는 마스터 퍼블릭 키를 가공한 값이 될 수 있다. 이때, 블록체인 네트워크(300)는 DID 스마트 컨트랙트를 포함할 수 있으며, 사용자 단말(100)로부터의 사용자 DID 생성 요청(S103)에 대응하여 DID 스마트 컨트랙트를 실행하여 DID 스마트 컨트랙트로 하여금 사용자 DID를 생성하도록 하며, DID document에 사용자 DID를 저장하도록 할 수 있다.
그리고 나서, 해당 블록체인 네트워크 노드로부터 사용자 DID가 전송(S107)되면, 사용자 단말(100)의 DID 앱(130)은 전송된 사용자 DID 를 획득하여 저장(S108)할 수 있다.
다음으로, 발명의 일 예로서, 사용자의 VC(Verifiable Credential)이 생성되어, 블록체인 네트워크(300)에 사용자의 DID와 대응되도록 저장될 수 있다.
도 5는 본 발명의 일 실시예에 따른, 사용자의 이메일을 사용하여 VC(Verifiable Credential)를 생성하는 과정을 개략적으로 나타낸 도면이다.
도 5를 참조하면, 사용자 단말(100)에 설치된 DID 앱(130)은, 사용자로부터 입력된 사용자 이메일 주소가 획득(S201)되면 인증 서버(400)로 VC를 요청(S202)할 수 있다.
그러면, 인증 서버(400)는 사용자 단말(100)의 DID 앱(130)으로 Reference ID를 전달(S203)할 수 있고, 사용자 단말(100)의 DID 앱(130)은 전달된 Reference ID를 저장(S204)할 수 있다. 또한, 인증 서버(400)는 Reference ID를 전달한 다음 또는 Reference ID를 전달할 때, 사용자 이메일 주소로 인증번호를 전송(S205)할 수 있다.
그리고 나서, 해당 인증번호를 사용자가 확인하여 입력한 인증번호 입력값이 획득되면, 사용자 단말(100)의 DID 앱(130)은, 획득된 인증번호 입력값 및 저장된 Reference ID를 인증 서버(400)로 전달(S207)하여, 인증 서버(400)로 하여금 이를 검증(S208)하도록 할 수 있다.
그 결과, 검증이 완료되면, 인증 서버(400)는, VC를 생성(S209)하고, 생성된 VC에 대응되는 VC 아이디를 블록체인 네트워크(300)와 연동된 적어도 하나의 노드로 전송함으로써 저장을 요청(S210)할 수 있다.
그러면, 해당 블록체인 네트워크 노드는 VC 아이디 저장 요청 트랜잭션의 서명을 검증(S211)하고, 사용자 DID에 대응되도록 VC 아이디를 블록체인 네트워크(300)에 저장(S212)되도록 할 수 있고, VC 아이디의 저장에 해당되는 TXID(트랜잭션 아이디)를 인증 서버(400)로 전송(S213)하여, 인증 서버(400)가 전송된 TXID를 저장(S214)할 수 있다. 이 때, 해당 TXID는, 추후 블록체인 네트워크(300)에 VC 아이디가 저장이 완료되었는지의 여부 또는 블록체인 네트워크(300)에서 VC 아이디의 검색 등에 사용될 수 있다.
그리고 나서, 인증 서버(400)는 생성된 VC를 자신의 프라이빗 키로 암호화하여 사용자 단말(100)의 DID 앱으로 전달(S215)하고, 사용자 단말(100)의 DID 앱(130)은 암호화된 VC를 인증 서버(400)의 퍼블릭 키로 복호화(S216)하여 VC를 획득하여 저장(S217)할 수 있다.
참고로, 위에서는 사용자의 이메일 주소를 사용한 VC의 생성 방법을 기술하고 있으나, 그에 한정되는 것은 아니며 VC의 생성 과정에서 사용되는 인증 번호 전송 방법 등의 구체적인 내용은 발명의 실시 조건에 따라 달라질 수 있다.
또한, 상기에서의 사용자의 이메일 주소를 사용한 VC는 예시적으로 기재한 것으로, 이외에도, 사용자의 개인 정보를 VC로 생성할 수 있다. 또한, 사용자의 개인 정보를 직접적으로 VC로 생성하는 것과는 달리, 사용자의 개인 정보를 참조한 특정 조건에 대한 정보를 VC로 생성할 수도 있다. 일 예로, 사용자가 성인임을 인증하기 위한 VC일 경우, 사용자의 개인 정보를 통해 사용자가 성인임을 확인한 후, 사용자의 나이 대신 사용자의 나이가 성인 조건을 만족한다는 정보를 VC로 생성할 수도 있다.
상술한 바와 같은 방법으로 사용자 DID 및 VC 아이디가 블록체인 네트워크(300)에 저장된 상태에서, 사용자에게 일회성 아이디를 사용하여 회원가입 및 인증 서비스가 제공될 수 있다.
구체적으로, 발명의 일 예로서 PKI 기반의 일회성 아이디를 사용한 회원가입이 이루어지는 과정을 도 6를 참조하여 설명하면 다음과 같다.
도 6은 본 발명의 일 실시예에 따른, PKI 기반의 일회성 아이디를 사용한 회원가입이 이루어지는 과정을 개략적으로 나타낸 도면이다.
우선, 사용자 단말(100)이 사용자의 특징 정보를 시드(seed)로 이용한 deterministic 방식에 의하여 생성한 마스터 키 페어의 마스터 퍼블릭 키를 이용한 사용자 DID와, 인증 서버(400)에 의해 생성되어 사용자 단말(100)에 저장된 VC(verifiable credential)에 대응되는 VC 아이디가 블록체인 네트워크(300)에 등록된 상태에서 회원가입 과정이 시작될 수 있다.
그러한 상태에서, 도 6을 참조하면, 사용자 단말(100)이, DID 앱(130)과 함께 설치된 사용자 단말(100)의 서비스 앱(140)을 통해 서비스 서버(500)로 회원가입 요청(S301)을 함으로써, 서비스 서버(500)로 하여금 요청할 VC를 결정(S302)하고 사용자 단말(100)로 상기 VC를 요청(S303)하도록 하며, 이는 사용자 단말(100)의 서비스 앱(140)을 통해 DID 앱(130)으로 전달(S304)될 수 있다.
그러면, 사용자 단말(100)은 서비스 서버(500)로부터의 VC에 대한 요청에 대응하여 DID 앱(130)을 통해 VC를 서비스 서버(500)의 서비스 서버 퍼블릭 키로 암호화한 VP(verifiable presentation)를 생성(S305)할 수 있다.
그리고, 사용자 단말(100)의 DID 앱(130)은 마스터 키 페어를 제1 키 페어라고 할 때, 시드를 이용한 deterministic 방식에 의해 각각의 고유인덱스를 가지는 제1 키 페어 내지 제n 키 페어(이 때, n은 2 이상의 정수임)를 생성한 상태에서 제2 키 페어 내지 제n 키 페어 중 제1 특정 고유인덱스를 가지는 제1 특정 키 페어를 선택하거나, 시드를 이용한 deterministic 방식에 의해 제2 키 페어 내지 제n 키 페어 중 제1 특정 고유인덱스를 가지는 제1 특정 키 페어를 생성하며, 제1 특정 키 페어에 대응되는 제1 특정 퍼블릭 키를 이용하여 제1 일회성 DID를 생성(S306)할 수 있다. 이 때, 상기 deterministic 방식은, hierarchical deterministic 방식일 수 있으며, 이는 위에서 설명한 바와 유사하므로 자세한 설명은 생략한다.
그런 다음, 사용자 단말(100)이, DID 앱(130)을 통해 사용자 DID, 제1 일회성 DID, 제1 특정 고유인덱스, 및 VP를 서비스 서버(500)로 전송하여 주거나, 사용자 DID, 제1 일회성 DID, 제1 특정 고유인덱스, 및 VP를 인증 서버로 전달(S307)하여 인증 서버(400)로 하여금 서비스 서버(500)로 전송(S308)하도록 할 수 있다. 그러면, 서비스 서버(500)는 사용자 단말(100)로부터 전송된 사용자 DID를 이용하여 블록체인 네트워크(300)로부터 마스터 퍼블릭 키와 VC 아이디를 요청(S309)하여 획득(S310)할 수 있다.
이후, 서비스 서버(500)는 블록체인 네트워크(300)로부터 획득한 마스터 퍼블릭 키와 사용자 단말(100)로부터 전송된 제1 특정 고유인덱스를 이용하여 제1 일회성 DID를 검증(S311)할 수 있다. 이 때, 제1 일회성 DID의 검증은, 서비스 서버(500)가 마스터 퍼블릭 키 및 제1 특정 고유인덱스를 이용한 deterministic 방식에 의해 일회성 아이디에 대응되는 검증용 특정 퍼블릭 키를 생성하여 제1 일회성 DID가 사용자 DID에 매칭됨을 검증함으로써 수행될 수 있다. 즉, 사용자 DID는 마스터 퍼블릭 키를 바탕으로 생성된 것이므로, 서비스 서버(500)는 마스터 퍼블릭 키 값과 제1 일회성 DID에 해당되는 제1 특정 고유인덱스를 사용하여 동일한 deterministic 방식으로 검증용 퍼블릭 키 및 이를 바탕으로 한 검증용 DID를 생성할 수 있으며, 생성된 검증용 DID가 해당 제1 일회성 DID와 일치하는지를 확인함으로써, 해당 제1 일회성 DID가 사용자 DID와 연결되어 있음을 검증할 수 있다.
또한, 서비스 서버(500)는 서비스 서버 프라이빗 키를 이용하여 VP를 복호화하여 VC를 획득(S312)할 수 있으며, 블록체인 네트워크(300)로부터 획득한 VC 아이디를 이용하여 인증 서버(400)로 VC에 대한 검증을 요청(S313)하도록 할 수 있다.
그 결과, 인증 서버(400)로부터의 VC에 대한 검증 결과(S314)에 대응하여 서비스 서버(500)는 제1 일회성 DID로 사용자 단말(100)의 서비스 앱(140)을 통한 회원가입 요청을 승인(S315)하여 사용자 단말(100)의 서비스 앱(140)을 통한 회원가입이 완료(S316) 될 수 있다.
다음으로, 발명의 일 예로서, 상술한 바와 같이 사용자의 회원가입이 완료된 상태에서 일회성 아이디를 사용한 인증 서비스가 이루어질 수 있다.
도 7은 본 발명의 일 실시예에 따른, PKI 기반의 일회성 아이디를 사용한 인증이 이루어지는 과정을 개략적으로 나타낸 도면이다.
도 7을 참조하면, 구체적으로, 상술한 바와 같은 회원가입이 완료된 상태에서, 사용자 단말(100)이, 서비스 앱(140)을 통해 서비스 서버(500)로 인증을 요청(S401)할 수 있다.
그러면, 서비스 서버(500)는 서명확인값을 생성(S402)하고, 사용자 단말(100)의 서비스 앱(140)으로 서명확인값을 포함하는 사용자 서명을 요청(S403)할 수 있다.
그리고, 사용자 단말(100)은 서비스 앱(140)을 통해 DID 앱(130)으로 서명확인값을 전달(S404)함으로써 사용자 서명을 요청할 수 있다.
그러면, 사용자 단말(100)의 DID 앱(130)은 서명확인값을 마스터 키 페어의 마스터 프라이빗 키로 서명한 사용자 서명값을 생성(S405)한다. 그리고, 사용자 단말(100)의 DID 앱(130)은 제2 키 페어 내지 제n 키 페어 중 제2 특정 고유인덱스를 가지는 제2 특정 키 페어를 선택하거나, 제2 키 페어 내지 제n 키 페어 중 제2 특정 고유인덱스를 가지는 제2 특정 키 페어를 생성한 다음, 제2 특정 키 페어에 대응되는 제2 특정 퍼블릭 키를 이용하여 제2 일회성 DID를 생성(S406)할 수 있다.
그리고 나서, 사용자 단말(100)이, DID 앱(130)을 통해 사용자 DID, 제2 일회성 DID, 제2 특정 고유인덱스, 및 사용자 서명값을 서비스 서버(500)로 전송하여 주거나, 사용자 DID, 제2 일회성 DID, 제2 특정 고유인덱스, 및 사용자 서명값을 인증 서버(400)로 전달(S407)하여 인증 서버(400)로 하여금 서비스 서버(500)로 전송(S408)하도록 할 수 있다.
그러면, 서비스 서버(500)는 사용자 단말(100)로부터 획득된 사용자 DID를 이용하여 블록체인 네트워크(300)로부터 마스터 퍼블릭 키를 요청(S409)하여 획득(S410)한다.
그리고, 서비스 서버(500)는 블록체인 네트워크(300)로부터 획득된 마스터 퍼블릭 키와 사용자 단말(100)로부터 획득된 제2 특정 고유인덱스를 이용하여 제2 일회성 DID를 검증(S411)하도록 할 수 있다. 이 때, 제2 일회성 DID를 검증하는 방법의 설명은, 위에서 설명한 제1 일회성 DID 검증 방법과 유사하므로 자세한 설명은 생략한다.
또한, 서비스 서버(500)는 마스터 퍼블릭 키를 이용하여 사용자 서명값을 검증(S412)할 수 있다. 즉, 서비스 서버(500)는 서비스 서버 프라이빗 키를 이용하여 사용자 서명값을 복호화하여 사용자 서명값에 포함된 서명확인값을 확인하고, 사용자 서명값으로부터 확인된 서명확인값과 사용자 단말(100)로 전송한 서명확인값이 일치하는지를 확인함으로써 사용자 서명값을 검증할 수 있다.
한편, 상기에서는 사용자 단말(100)이 사용자 서명값을 마스터 프라이빗 키를 이용하여 생성하며, 서비스 서버(500)가 마스터 퍼블릭 키를 이용하여 검증하였으나, 이와는 달리, 제1 특정 퍼블릭 키 또는 제2 특정 퍼블릭 키를 이용할 수도 있다.
즉, 사용자 단말(100)이 제1 일회성 DID에 대응되는 제1 특정 퍼블릭 키 또는 제2 일회성 DID에 대응되는 제2 특정 퍼블릭 키를 이용하여 사용자 사용자 서명값을 생성하며, 서비스 서버(200)는 제1 특정 퍼블릭 키 또는 제2 일회성 DID에 대응되는 검증용 특정 퍼블릭 키를 이용하여 사용자 서명값을 검증할 수도 있다.
그 결과, 제2 일회성 DID와 사용자 서명값이 검증(S413)되면, 사용자 단말(100)은 서비스 서버(500)로 하여금 서비스 앱(140)으로부터의 인증 요청을 승인하도록 하여 인증이 완료(S414)될 수 있다.
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magnetooptical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.
100 : 사용자 단말 110 : 메모리
120 : 프로세서 130 : DID 앱
140 : 서비스 앱 200 : 시드(사용자 특징 정보)
201-1, 201-2, ..., 201-n : deterministic 방식으로 생성된 키 페어
210 : hierarchical deterministic 방식으로 생성된 마스터 키 페어
220-1, 220-2, 220-3, ... : 자녀(child) 키 페어
230-1, 230-2, 230-3, ... : 손자(grandchild) 키 페어
300 : 블록체인 네트워크 400 : 인증 서버
500 : 서비스 서버

Claims (16)

  1. PKI 기반의 일회성 아이디를 이용하여 서비스를 이용하는 방법에 있어서,
    (a) 사용자 단말이, 사용자의 특징 정보를 시드(seed)로 이용한 deterministic 방식에 의하여 마스터 키 페어 - 상기 마스터 키 페어는 마스터 퍼블릭 키 및 마스터 프라이빗 키를 포함함 - 를 생성하며, 상기 마스터 퍼블릭 키 또는 상기 마스터 퍼블릭 키를 가공한 값을 사용자 마스터 아이디로 결정하고, 상기 사용자 마스터 아이디를 서버로 전송하여 상기 서버로 하여금 상기 전송된 사용자 마스터 아이디를 등록하도록 하는 단계; 및
    (b) 일회성 아이디 생성 조건이 만족되면, 상기 사용자 단말이, 상기 마스터 키 페어를 제1 키 페어라고 할 때, (i) 상기 시드를 이용한 상기 deterministic 방식에 의해 각각의 고유인덱스를 가지는 제1 키 페어 내지 제n - 상기 n은 2 이상의 정수임 - 키 페어를 생성한 상태에서 제2 키 페어 내지 제n 키 페어 중 특정 고유인덱스를 가지는 특정 키 페어를 선택하거나, (ii) 상기 시드를 이용한 상기 deterministic 방식에 의해 상기 제2 키 페어 내지 상기 제n 키 페어 중 상기 특정 고유인덱스를 가지는 상기 특정 키 페어를 생성하며, 상기 특정 키 페어에 대응되는 특정 퍼블릭 키 또는 상기 특정 퍼블릭 키를 가공한 값과, 상기 특정 고유인덱스를 포함하는 일회성 아이디를 생성하고, 상기 일회성 아이디를 이용하여 상기 서버에서 제공되는 서비스를 이용함으로써 상기 서버로 하여금 상기 사용자 마스터 아이디와 일회성 아이디에 포함된 상기 특정 고유인덱스를 이용한 상기 deterministic 방식에 의해 상기 일회성 아이디에 대응되는 검증용 특정 퍼블릭 키를 생성하여 상기 일회성 아이디가 상기 사용자 마스터 아이디에 매칭됨을 검증할 수 있도록 하는 단계;
    를 포함하는 방법.
  2. 제1항에 있어서,
    (c) 상기 일회성 아이디의 사용에 대응하여 상기 서버로부터 서명확인값에 대한 서명 요청이 획득되면, 상기 사용자 단말이, 상기 서명확인값을 상기 마스터 프라이빗 키로 서명한 사용자 서명값을 상기 서버로 전송함으로써 상기 서버로 하여금 상기 서버에 등록된 상기 사용자 마스터 아이디에 대응되는 상기 마스터 퍼블릭 키를 이용하여 상기 서명값을 검증하도록 하거나, 상기 서명확인값을 상기 특정 퍼블릭 키로 서명한 상기 사용자 서명값을 상기 서버로 전송함으로써 상기 서버로 하여금 상기 검증용 특정 퍼블릭 키를 이용하여 상기 사용자 서명값을 검증하도록 하여 상기 일회성 아이디가 상기 마스터 아이디에 매칭됨을 검증하도록 하는 단계;
    를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 deterministic 방식은 hierarchical deterministic 방식을 포함하며,
    상기 (b) 단계에서,
    상기 사용자 단말은, 상기 마스터 키 페어로서의 상기 제1 키 페어를 뿌리(root)로 하여 n개의 레벨을 가지는 트리 구조로 상기 제2 키 페어 내지 상기 제n 키 페어 각각을 생성하되, 상기 제2 키 페어 내지 상기 제n 키 페어 중 어느 하나인 제k 레벨의 제k 키 페어는 제(k-1) 레벨에서의 제(k-1) 키 페어에 포함된 서브 키 페어들 각각을 부모 키 페어들로 하고, 상기 부모 키 페어들 각각을 참조하여 생성한 자녀 키 페어들을 포함하는 방법.
  4. 제1항에 있어서,
    상기 (b) 단계에서,
    상기 사용자 단말은, 상기 마스터 퍼블릭 키 및 상기 일회성 아이디에 대응되는 상기 특정 고유인덱스를 적어도 포함하는 값에 대하여 소정의 해시 연산을 수행하여, 상기 마스터 프라이빗 키를 참조하지 않고 생성될 수 있는 확장 퍼블릭 키 또는 상기 확장 퍼블릭 키를 가공한 값을 이용하여 상기 일회성 아이디를 생성하는 방법.
  5. PKI 기반의 일회성 아이디를 이용하여 서비스를 이용하는 방법에 있어서,
    (a) 사용자 단말이, 사용자의 특징 정보를 시드(seed)로 이용한 deterministic 방식에 의하여 생성한 마스터 키 페어의 마스터 퍼블릭 키를 이용한 사용자 DID와, 인증 서버에 의해 생성되어 상기 사용자 단말에 저장된 VC(verifiable credential)에 대응되는 VC 아이디가 블록체인 네트워크에 등록된 상태에서, 상기 사용자 단말이, 서비스 앱을 통해 서비스 서버로 회원가입 요청을 함으로써 상기 서비스 서버로 하여금 상기 사용자 단말로 상기 VC를 요청하도록 하며, 상기 서비스 서버로부터의 상기 VC에 대한 요청에 대응하여 DID 앱을 통해 상기 VC를 상기 서비스 서버의 서비스 서버 퍼블릭 키로 암호화한 VP(verifiable presentation)를 생성하고, 상기 마스터 키 페어를 제1 키 페어라고 할 때, (i) 상기 시드를 이용한 상기 deterministic 방식에 의해 각각의 고유인덱스를 가지는 제1 키 페어 내지 제n - 상기 n은 2 이상의 정수임 - 키 페어를 생성한 상태에서 제2 키 페어 내지 제n 키 페어 중 제1 특정 고유인덱스를 가지는 제1 특정 키 페어를 선택하거나, (ii) 상기 시드를 이용한 상기 deterministic 방식에 의해 상기 제2 키 페어 내지 상기 제n 키 페어 중 상기 제1 특정 고유인덱스를 가지는 상기 제1 특정 키 페어를 생성하며, 상기 제1 특정 키 페어에 대응되는 제1 특정 퍼블릭 키를 이용하여 제1 일회성 DID를 생성하는 단계; 및
    (b) 상기 사용자 단말이, 상기 DID 앱을 통해 상기 사용자 DID, 상기 제1 일회성 DID, 상기 제1 특정 고유인덱스, 및 상기 VP를 상기 서비스 서버로 전송하거나, 상기 인증 서버로 하여금 상기 서비스 서버로 전송하도록 함으로써 상기 서비스 서버로 하여금 (i) 상기 사용자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 마스터 퍼블릭 키와 상기 VC 아이디를 획득하도록 하며, 상기 마스터 퍼블릭 키와 상기 제1 특정 고유인덱스를 이용하여 상기 제1 일회성 DID를 검증하도록 하고, (ii) 서비스 서버 프라이빗 키를 이용하여 상기 VP로부터 상기 VC를 획득하도록 하며, 상기 VC 아이디를 이용하여 상기 인증 서버로 상기 VC에 대한 검증을 요청하도록 하고, (iii) 상기 인증 서버로부터의 상기 VC에 대한 검증 결과에 대응하여 상기 제1 일회성 DID로 상기 서비스 앱을 통한 상기 회원가입 요청을 승인하는 단계;
    를 포함하는 방법.
  6. 제5항에 있어서,
    (c) 상기 사용자 단말이, 서비스 앱을 통해 서비스 서버로 인증을 요청함으로써 상기 서비스 서버로 하여금 상기 사용자 단말로 서명확인값을 포함하는 사용자 서명을 요청하도록 하며, 상기 서비스 서버로부터의 상기 사용자 서명에 대한 요청에 대응하여 DID 앱을 통해 (i) (i-1) 상기 서명확인값을 상기 마스터 키 페어의 마스터 프라이빗 키로 서명한 사용자 서명값을 생성하고, 상기 제2 키 페어 내지 상기 제n 키 페어 중 제2 특정 고유인덱스를 가지는 제2 특정 키 페어를 선택하거나, (i-2) 상기 제2 키 페어 내지 상기 제n 키 페어 중 상기 제2 특정 고유인덱스를 가지는 상기 제2 특정 키 페어를 생성하며, 상기 제2 특정 키 페어에 대응되는 제2 특정 퍼블릭 키를 이용하여 제2 일회성 DID를 생성하는 프로세스를 수행하거나 , (ii) (ii-1) 상기 제2 키 페어 내지 상기 제n 키 페어 중 상기 제2 특정 고유인덱스를 가지는 상기 제2 특정 키 페어를 생성하며, 상기 제2 특정 키 페어에 대응되는 제2 특정 퍼블릭 키를 이용하여 제2 일회성 DID를 생성하며, (ii-2) 상기 서명확인값을 상기 제1 특정 퍼블릭 키 또는 상기 제2 특정 퍼블릭 키로 서명한 상기 사용자 서명값을 생성하는 프로세스를 수행하는 단계; 및
    (d) 상기 사용자 단말이, 상기 DID 앱을 통해 상기 사용자 DID, 상기 제2 일회성 DID, 상기 제2 특정 고유인덱스, 및 상기 사용자 서명값을 상기 서비스 서버로 전송하거나, 상기 인증 서버로 하여금 상기 서비스 서버로 전송하도록 함으로써 상기 서비스 서버로 하여금 (i) 상기 사용자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 마스터 퍼블릭 키를 획득하도록 하며, 상기 마스터 퍼블릭 키와 상기 제2 특정 고유인덱스를 이용하여 상기 제2 일회성 DID를 검증하도록 하고, (ii) 상기 마스터 퍼블릭 키를 이용하여 상기 사용자 서명값을 검증하도록 하거나, 상기 제1 특정 퍼블릭 키 또는 상기 제2 일회성 DID에 대응되는 검증용 특정 퍼블릭 키를 이용하여 상기 사용자 서명값을 검증하도록 하며, (iii) 상기 제2 일회성 DID와 상기 사용자 서명값이 검증되면 상기 서비스 앱으로부터의 인증 요청을 승인하는 단계;
    를 더 포함하는 방법.
  7. 제5항에 있어서,
    상기 deterministic 방식은 hierarchical deterministic 방식을 포함하며,
    상기 사용자 단말은, 상기 마스터 키 페어로서의 상기 제1 키 페어를 뿌리(root)로 하여 n개의 레벨을 가지는 트리 구조로 상기 제2 키 페어 내지 상기 제n 키 페어 각각을 생성하되, 상기 제2 키 페어 내지 상기 제n 키 페어 중 어느 하나인 제k 레벨의 제k 키 페어는 제(k-1) 레벨에서의 제(k-1) 키 페어에 포함된 서브 키 페어들 각각을 부모 키 페어들로 하고, 상기 부모 키 페어들 각각을 참조하여 생성한 자녀 키 페어들을 포함하는 방법.
  8. 제5항에 있어서,
    상기 (b) 단계에서,
    상기 사용자 단말은, 상기 서비스 서버로 하여금 상기 deterministic 방식에 의해 상기 마스터 퍼블릭 키를 이용하여 상기 제1 특정 고유인덱스에 대응되는 검증용 퍼블릭 키를 생성하도록 하며, 상기 검증용 퍼블릭 키에 대응되는 검증용 DID와 상기 제1 일회성 DID를 비교함으로써 상기 제1 일회성 DID를 검증하도록 하는 방법.
  9. PKI 기반의 일회성 아이디를 이용하여 서비스를 이용하는 사용자 단말에 있어서,
    인스트럭션들을 저장하는 적어도 하나의 메모리; 및
    상기 인스트럭션들을 실행하기 위해 구성된 적어도 하나의 프로세서; 를 포함하고,
    상기 프로세서가,
    (I) 사용자의 특징 정보를 시드(seed)로 이용한 deterministic 방식에 의하여 마스터 키 페어 - 상기 마스터 키 페어는 마스터 퍼블릭 키 및 마스터 프라이빗 키를 포함함 - 를 생성하며, 상기 마스터 퍼블릭 키 또는 상기 마스터 퍼블릭 키를 가공한 값을 사용자 마스터 아이디로 결정하고, 상기 사용자 마스터 아이디를 서버로 전송하여 상기 서버로 하여금 상기 전송된 사용자 마스터 아이디를 등록하도록 하는 프로세스; 및 (II) 일회성 아이디 생성 조건이 만족되면, 상기 마스터 키 페어를 제1 키 페어라고 할 때, (i) 상기 시드를 이용한 상기 deterministic 방식에 의해 각각의 고유인덱스를 가지는 제1 키 페어 내지 제n - 상기 n은 2 이상의 정수임 - 키 페어를 생성한 상태에서 제2 키 페어 내지 제n 키 페어 중 특정 고유인덱스를 가지는 특정 키 페어를 선택하거나, (ii) 상기 시드를 이용한 상기 deterministic 방식에 의해 상기 제2 키 페어 내지 상기 제n 키 페어 중 상기 특정 고유인덱스를 가지는 상기 특정 키 페어를 생성하며, 상기 특정 키 페어에 대응되는 특정 퍼블릭 키 또는 상기 특정 퍼블릭 키를 가공한 값과, 상기 특정 고유인덱스를 포함하는 일회성 아이디를 생성하고, 상기 일회성 아이디를 이용하여 상기 서버에서 제공되는 서비스를 이용함으로써 상기 서버로 하여금 상기 사용자 마스터 아이디와 일회성 아이디에 포함된 상기 특정 고유인덱스를 이용한 상기 deterministic 방식에 의해 상기 일회성 아이디에 대응되는 검증용 특정 퍼블릭 키를 생성하여 상기 일회성 아이디가 상기 사용자 마스터 아이디에 매칭됨을 검증할 수 있도록 하는 프로세스; 를 수행하는 사용자 단말.
  10. 제9항에 있어서,
    (c) 상기 일회성 아이디의 사용에 대응하여 상기 서버로부터 서명확인값에 대한 서명 요청이 획득되면, 상기 프로세서가, 상기 서명확인값을 상기 마스터 프라이빗 키로 서명한 사용자 서명값을 상기 서버로 전송함으로써 상기 서버로 하여금 상기 서버에 등록된 상기 사용자 마스터 아이디에 대응되는 상기 마스터 퍼블릭 키를 이용하여 상기 서명값을 검증하도록 하거나, 상기 서명확인값을 상기 특정 퍼블릭 키로 서명한 상기 사용자 서명값을 상기 서버로 전송함으로써 상기 서버로 하여금 상기 검증용 특정 퍼블릭 키를 이용하여 상기 사용자 서명값을 검증하도록 하여 상기 일회성 아이디가 상기 마스터 아이디에 매칭됨을 검증하도록 하는 프로세스; 를 더 수행하는 사용자 단말.
  11. 제9항에 있어서,
    상기 deterministic 방식은 hierarchical deterministic 방식을 포함하며,
    상기 (II) 프로세스에서,
    상기 프로세서는, 상기 마스터 키 페어로서의 상기 제1 키 페어를 뿌리(root)로 하여 n개의 레벨을 가지는 트리 구조로 상기 제2 키 페어 내지 상기 제n 키 페어 각각을 생성하되, 상기 제2 키 페어 내지 상기 제n 키 페어 중 어느 하나인 제k 레벨의 제k 키 페어는 제(k-1) 레벨에서의 제(k-1) 키 페어에 포함된 서브 키 페어들 각각을 부모 키 페어들로 하고, 상기 부모 키 페어들 각각을 참조하여 생성한 자녀 키 페어들을 포함하는 사용자 단말.
  12. 제9항에 있어서,
    상기 (II) 프로세스에서,
    상기 프로세서는, 상기 마스터 퍼블릭 키 및 상기 일회성 아이디에 대응되는 상기 특정 고유인덱스를 적어도 포함하는 값에 대하여 소정의 해시 연산을 수행하여, 상기 마스터 프라이빗 키를 참조하지 않고 생성될 수 있는 확장 퍼블릭 키 또는 상기 확장 퍼블릭 키를 가공한 값을 이용하여 상기 일회성 아이디를 생성하는 사용자 단말.
  13. PKI 기반의 일회성 아이디를 이용하여 서비스를 이용하는 사용자 단말에 있어서,
    인스트럭션들을 저장하는 적어도 하나의 메모리; 및
    상기 인스트럭션들을 실행하기 위해 구성된 적어도 하나의 프로세서; 를 포함하고,
    상기 프로세서가, (I) 사용자의 특징 정보를 시드(seed)로 이용한 deterministic 방식에 의하여 생성한 마스터 키 페어의 마스터 퍼블릭 키를 이용한 사용자 DID와, 인증 서버에 의해 생성되어 상기 사용자 단말에 저장된 VC(verifiable credential)에 대응되는 VC 아이디가 블록체인 네트워크에 등록된 상태에서, 서비스 앱을 통해 서비스 서버로 회원가입 요청을 함으로써 상기 서비스 서버로 하여금 상기 사용자 단말로 상기 VC를 요청하도록 하며, 상기 서비스 서버로부터의 상기 VC에 대한 요청에 대응하여 DID 앱을 통해 상기 VC를 상기 서비스 서버의 서비스 서버 퍼블릭 키로 암호화한 VP(verifiable presentation)를 생성하고, 상기 마스터 키 페어를 제1 키 페어라고 할 때, (i) 상기 시드를 이용한 상기 deterministic 방식에 의해 각각의 고유인덱스를 가지는 제1 키 페어 내지 제n - 상기 n은 2 이상의 정수임 - 키 페어를 생성한 상태에서 제2 키 페어 내지 제n 키 페어 중 제1 특정 고유인덱스를 가지는 제1 특정 키 페어를 선택하거나, (ii) 상기 시드를 이용한 상기 deterministic 방식에 의해 상기 제2 키 페어 내지 상기 제n 키 페어 중 상기 제1 특정 고유인덱스를 가지는 상기 제1 특정 키 페어를 생성하며, 상기 제1 특정 키 페어에 대응되는 제1 특정 퍼블릭 키를 이용하여 제1 일회성 DID를 생성하는 프로세스; 및 (II) 상기 DID 앱을 통해 상기 사용자 DID, 상기 제1 일회성 DID, 상기 제1 특정 고유인덱스, 및 상기 VP를 상기 서비스 서버로 전송하거나, 상기 인증 서버로 하여금 상기 서비스 서버로 전송하도록 함으로써 상기 서비스 서버로 하여금 (i) 상기 사용자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 마스터 퍼블릭 키와 상기 VC 아이디를 획득하도록 하며, 상기 마스터 퍼블릭 키와 상기 제1 특정 고유인덱스를 이용하여 상기 제1 일회성 DID를 검증하도록 하고, (ii) 서비스 서버 프라이빗 키를 이용하여 상기 VP로부터 상기 VC를 획득하도록 하며, 상기 VC 아이디를 이용하여 상기 인증 서버로 상기 VC에 대한 검증을 요청하도록 하고, (iii) 상기 인증 서버로부터의 상기 VC에 대한 검증 결과에 대응하여 상기 제1 일회성 DID로 상기 서비스 앱을 통한 상기 회원가입 요청을 승인하는 프로세스; 를 수행하는 사용자 단말.
  14. 제13항에 있어서,
    (III) 상기 프로세서가, 서비스 앱을 통해 서비스 서버로 인증을 요청함으로써 상기 서비스 서버로 하여금 상기 사용자 단말로 서명확인값을 포함하는 사용자 서명을 요청하도록 하며, 상기 서비스 서버로부터의 상기 사용자 서명에 대한 요청에 대응하여 DID 앱을 통해 (i) (i-1) 상기 서명확인값을 상기 마스터 키 페어의 마스터 프라이빗 키로 서명한 사용자 서명값을 생성하고, 상기 제2 키 페어 내지 상기 제n 키 페어 중 제2 특정 고유인덱스를 가지는 제2 특정 키 페어를 선택하거나, (i-2) 상기 제2 키 페어 내지 상기 제n 키 페어 중 상기 제2 특정 고유인덱스를 가지는 상기 제2 특정 키 페어를 생성하며, 상기 제2 특정 키 페어에 대응되는 제2 특정 퍼블릭 키를 이용하여 제2 일회성 DID를 생성하는 프로세스를 수행하거나, (ii) (ii-1) 상기 제2 키 페어 내지 상기 제n 키 페어 중 상기 제2 특정 고유인덱스를 가지는 상기 제2 특정 키 페어를 생성하며, 상기 제2 특정 키 페어에 대응되는 제2 특정 퍼블릭 키를 이용하여 제2 일회성 DID를 생성하며, (ii-2) 상기 서명확인값을 상기 제1 특정 퍼블릭 키 또는 상기 제2 특정 퍼블릭 키로 서명한 상기 사용자 서명값을 생성하는 프로세스를 수행하는 프로세스; 및 (IV) 상기 프로세서가, 상기 DID 앱을 통해 상기 사용자 DID, 상기 제2 일회성 DID, 상기 제2 특정 고유인덱스, 및 상기 사용자 서명값을 상기 서비스 서버로 전송하거나, 상기 인증 서버로 하여금 상기 서비스 서버로 전송하도록 함으로써 상기 서비스 서버로 하여금 (i) 상기 사용자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 마스터 퍼블릭 키를 획득하도록 하며, 상기 마스터 퍼블릭 키와 상기 제2 특정 고유인덱스를 이용하여 상기 제2 일회성 DID를 검증하도록 하도록 하거나, 상기 제1 특정 퍼블릭 키 또는 상기 제2 일회성 DID에 대응되는 검증용 특정 퍼블릭 키를 이용하여 상기 사용자 서명값을 검증하도록 하고, (ii) 상기 마스터 퍼블릭 키를 이용하여 상기 사용자 서명값을 검증하도록 하며, (iii) 상기 제2 일회성 DID와 상기 사용자 서명값이 검증되면 상기 서비스 앱으로부터의 인증 요청을 승인하는 프로세스; 를 더 수행하는 사용자 단말.
  15. 제13항에 있어서,
    상기 deterministic 방식은 hierarchical deterministic 방식을 포함하며,
    상기 프로세서는, 상기 마스터 키 페어로서의 상기 제1 키 페어를 뿌리(root)로 하여 n개의 레벨을 가지는 트리 구조로 상기 제2 키 페어 내지 상기 제n 키 페어 각각을 생성하되, 상기 제2 키 페어 내지 상기 제n 키 페어 중 어느 하나인 제k 레벨의 제k 키 페어는 제(k-1) 레벨에서의 제(k-1) 키 페어에 포함된 서브 키 페어들 각각을 부모 키 페어들로 하고, 상기 부모 키 페어들 각각을 참조하여 생성한 자녀 키 페어들을 포함하는 사용자 단말.
  16. 제13항에 있어서,
    상기 (II) 프로세스에서,
    상기 프로세서는, 상기 서비스 서버로 하여금 상기 deterministic 방식에 의해 상기 마스터 퍼블릭 키를 이용하여 상기 제1 특정 고유인덱스에 대응되는 검증용 퍼블릭 키를 생성하도록 하며, 상기 검증용 퍼블릭 키에 대응되는 검증용 DID와 상기 제1 일회성 DID를 비교함으로써 상기 제1 일회성 DID를 검증하도록 하는 사용자 단말.
KR1020200047023A 2019-04-19 2020-04-17 Pki 기반의 일회성 아이디를 사용하여 서비스를 사용하는 방법, 및 이를 사용한 사용자 단말 KR102250430B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2020/005189 WO2020214001A1 (ko) 2019-04-19 2020-04-17 Pki 기반의 일회성 아이디를 사용하여 서비스를 사용하는 방법, 및 이를 사용한 사용자 단말

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20190046384 2019-04-19
KR1020190046384 2019-04-19

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020210022886A Division KR20210025547A (ko) 2019-04-19 2021-02-19 Pki 기반의 일회성 아이디를 사용하여 서비스를 사용하는 방법, 및 이를 사용한 사용자 단말

Publications (2)

Publication Number Publication Date
KR20200123029A true KR20200123029A (ko) 2020-10-28
KR102250430B1 KR102250430B1 (ko) 2021-05-11

Family

ID=73017995

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200047023A KR102250430B1 (ko) 2019-04-19 2020-04-17 Pki 기반의 일회성 아이디를 사용하여 서비스를 사용하는 방법, 및 이를 사용한 사용자 단말
KR1020210022886A KR20210025547A (ko) 2019-04-19 2021-02-19 Pki 기반의 일회성 아이디를 사용하여 서비스를 사용하는 방법, 및 이를 사용한 사용자 단말

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020210022886A KR20210025547A (ko) 2019-04-19 2021-02-19 Pki 기반의 일회성 아이디를 사용하여 서비스를 사용하는 방법, 및 이를 사용한 사용자 단말

Country Status (1)

Country Link
KR (2) KR102250430B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102280061B1 (ko) * 2020-12-03 2021-07-22 주식회사 마크애니 블록체인 기반의 did를 이용한 법인 관련 증명서 발급 시스템 및 방법
KR20230078212A (ko) * 2021-11-26 2023-06-02 주식회사 케이사인 Hd 기반의 컴퓨팅 장치 did 발급 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102569265B1 (ko) * 2021-09-06 2023-08-22 건양대학교산학협력단 자율주행 환경에서 블록체인 및 관제서버 기반의 차량간 메시지 전송방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050117478A (ko) * 2003-03-14 2005-12-14 가부시키가이샤 세큐어드 커뮤니케이션즈 상호 인증 방법 및 장치
KR20180079805A (ko) * 2017-01-02 2018-07-11 주식회사 코인플러그 블록체인 기반의 모바일 아이디를 이용하여 사용자를 비대면 인증하는 방법, 단말 및 이를 이용한 서버
US20180288022A1 (en) * 2017-03-31 2018-10-04 Dr. Vijay Madisetti Method and System for Identity and Access Management for Blockchain Interoperability

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050117478A (ko) * 2003-03-14 2005-12-14 가부시키가이샤 세큐어드 커뮤니케이션즈 상호 인증 방법 및 장치
KR20180079805A (ko) * 2017-01-02 2018-07-11 주식회사 코인플러그 블록체인 기반의 모바일 아이디를 이용하여 사용자를 비대면 인증하는 방법, 단말 및 이를 이용한 서버
US20180288022A1 (en) * 2017-03-31 2018-10-04 Dr. Vijay Madisetti Method and System for Identity and Access Management for Blockchain Interoperability

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JONG-HYOUK LEE, 'BIDaaS: Blockchain Based ID As a Service', IEEE Access, Volume: 6, pp. 2274-2278, 2017.12.12.* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102280061B1 (ko) * 2020-12-03 2021-07-22 주식회사 마크애니 블록체인 기반의 did를 이용한 법인 관련 증명서 발급 시스템 및 방법
KR20230078212A (ko) * 2021-11-26 2023-06-02 주식회사 케이사인 Hd 기반의 컴퓨팅 장치 did 발급 방법

Also Published As

Publication number Publication date
KR20210025547A (ko) 2021-03-09
KR102250430B1 (ko) 2021-05-11

Similar Documents

Publication Publication Date Title
AU2013101034A4 (en) Registration and authentication of computing devices using a digital skeleton key
US9830447B2 (en) Method and system for verifying an access request
US10348706B2 (en) Assuring external accessibility for devices on a network
CN1985466B (zh) 使用分发cd按签署组向设备传递直接证据私钥的方法
EP1680884B1 (en) Methods and apparatus for providing application credentials
US10771467B1 (en) External accessibility for computing devices
KR102250430B1 (ko) Pki 기반의 일회성 아이디를 사용하여 서비스를 사용하는 방법, 및 이를 사용한 사용자 단말
US11943345B2 (en) Key management method and related device
EP3206329A1 (en) Security check method, device, terminal and server
CN114021164A (zh) 基于区块链的征信系统隐私保护方法
CN112865981B (zh) 一种令牌获取、验证方法及装置
AU2020204174B2 (en) Assuring external accessibility for devices on a network
US11496287B2 (en) Privacy preserving fully homomorphic encryption with circuit verification
WO2020214001A1 (ko) Pki 기반의 일회성 아이디를 사용하여 서비스를 사용하는 방법, 및 이를 사용한 사용자 단말
JP2013179473A (ja) アカウント生成管理システム、アカウント生成管理サーバ、アカウント生成管理方法及びアカウント生成管理プログラム
Zhu et al. Privacy-preserving and Trusted Keyword Search for Multi-tenancy Cloud
Maass A System for Privacy-Preserving Mobile Health and Fitness Data Sharing: Design, Implementation and Evaluation
CN116886374A (zh) 身份认证方法及云计算服务平台
CN115720137A (zh) 一种信息管理的系统、方法以及装置

Legal Events

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