KR20200065939A - 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 장치 및 방법 - Google Patents

블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 장치 및 방법 Download PDF

Info

Publication number
KR20200065939A
KR20200065939A KR1020180152901A KR20180152901A KR20200065939A KR 20200065939 A KR20200065939 A KR 20200065939A KR 1020180152901 A KR1020180152901 A KR 1020180152901A KR 20180152901 A KR20180152901 A KR 20180152901A KR 20200065939 A KR20200065939 A KR 20200065939A
Authority
KR
South Korea
Prior art keywords
certificate
user
address
user terminal
blockchain
Prior art date
Application number
KR1020180152901A
Other languages
English (en)
Other versions
KR102209987B1 (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 KR1020180152901A priority Critical patent/KR102209987B1/ko
Publication of KR20200065939A publication Critical patent/KR20200065939A/ko
Application granted granted Critical
Publication of KR102209987B1 publication Critical patent/KR102209987B1/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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic 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/3268Cryptographic 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 validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • 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/0822Key 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 key encryption key
    • 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/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38

Landscapes

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

Abstract

블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 장치 및 방법이 개시된다. 본 발명의 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법은 사용자 단말에서 생성된 사용자 인증서를 포함하는 인증서 등록 요청을 수신하고, 사용자 인증서를 이용하여 사용자 인증서 주소를 생성하고, 사용자 인증서 및 상기 사용자 인증서 주소를 이용하여 인증서 등록 트랜잭션 스크립트를 생성하여 블록체인 노드에 전송하고, 블록체인 노드로부터 트랜잭션 스크립트의 실행 결과를 수신하고, 인증서 등록 요청 결과를 사용자 단말에 전송한다.

Description

블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 장치 및 방법 {APPARATUS AND METHOD FOR CERTIFICATE STATUS MANAGEMENT BASED ON BLOCKCHAIN AND SMART CONTRACT}
본 발명은 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 장치 및 방법에 관한 것으로, 보다 상세하게는 블록체인 및 스마트 컨트랙트를 이용하여 인증서의 등록, 검증 및 폐기 관리를 하는 장치 및 방법에 관한 것이다.
공개 키 기반구조(Public Key Infrastructure; PKI)는 공개 키 암호 방식을 바탕으로 디지털 인증서를 작성, 관리, 배포, 사용, 저장 및 해지하고 공개 키 암호화를 관리하는 데 필요한 일련의 역할, 정책 및 절차를 지칭한다.
블록체인(blockchain)은 관리 대상 데이터를 블록(block)이라고 하는 소규모 데이터들을 P2P(Peer to Peer) 방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장환경에 저장함으로써, 데이터를 임의로 수정하기 어렵게 하고, 데이터의 이력을 확인하기 용이하게 하는 분산 컴퓨팅 기술 기반의 데이터 위변조 방지 기술을 지칭한다.
스마트 컨트랙트(smart contract)는 실행 가능한 바이트 코드(byte code)로 컴파일(compile)되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 코드이고, 실행 시에 특정 조건이 만족되면 미리 정해진 절차를 수행하도록 구성되며, 실행의 결과인 실행 결과값의 무결성은 적어도 하나의 컴퓨팅 장치로부터 산출된 실행 결과 값에 대한 합의(consensus)에 의하여 검증되는 것을 특징으로 하는 개념을 지칭한다.
이와 관련하여, 한국등록특허 제10-1637854호는 "블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법 및 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법"에 관하여 개시하고 있으나, 공인인증서 발급에 있어 별도의 정보유출차단 단말기가 요구되는 점에서 한계가 있다.
본 발명은 사용자 단말에서 생성된 공개 키를 블록체인에 등록하여 사용자 인증서로 활용할 수 있는 인증서 서비스를 제공하는 것을 목적으로 한다.
또한, 본 발명은 인증서의 유효 조건을 스마트 컨트랙트에 의해 검사 함으로써 유효성 검사의 무결성을 보장하는 인증서 서비스를 제공하는 것을 목적으로 한다.
또한, 본 발명은 인증서 관련 정보를 기존에 발급한 기관 외에 다른 기관에 대해서도 등록하는 방법을 제공하여 하나의 인증서 발급으로 블록체인을 이용하는 여러 기관에서 공동으로 사용 가능케 하는 인증서 서비스를 제공하는 것을 목적으로 한다.
또한, 본 발명은 사용자 단말에서 생성된 시드와 서버에 저장된 키를 함께 이용하여 생성된 암호화 키로 사용자 단말에서 생성된 개인 키를 암호화 저장함으로써 보안성이 향상된 인증서 서비스를 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법은 사용자 단말로부터 사용자 단말에서 생성된 사용자 인증서를 포함하는 인증서 등록 요청을 수신하는 단계; 사용자 인증서를 이용하여, 블록체인(blockchain) 상에서 사용자 인증서가 등록되는 위치를 나타내는 사용자 인증서 주소를 생성하는 단계; 사용자 인증서 및 사용자 인증서 주소를 이용하여, 사용자 UTXO(Unspent Transaction Output)를 생성하는 인증서 등록 트랜잭션 스크립트(transaction script)를 생성하고, 인증서 등록 트랜잭션 스크립트를 블록체인 노드(node)에 전송하는 단계; 및 블록체인 노드에 의한 인증서 등록 트랜잭션 스크립트의 실행 결과를 수신하고, 인증서 등록 트랜잭션 스크립트의 실행 결과에 기초하여 인증서 등록 요청 결과를 생성하고, 인증서 등록 요청 결과를 사용자 단말에 전송하는 단계;를 포함한다.
이 때, 사용자 인증서 주소를 생성하는 단계는 사용자 인증서에 포함된 사용자 공개 키 및 미리 생성된 서버 공개 키를 이용하여 다중서명 주소를 생성하는 단계; 및 다중서명 주소를 포함하는 사용자 인증서 주소를 생성하는 단계;를 포함하고, 다중서명 주소 및 사용자 인증서 주소는 사용자 공개 키에 대응되는 사용자 개인 키를 이용하여 생성된 사용자 서명을 이용하여 서명 검증이 가능하고, 서버 공개 키에 대응되는 서버 개인 키를 이용하여 생성된 서버 서명에 의해 서명 검증이 가능한 것일 수 있다.
이 때, 인증서 등록 트랜잭션 스크립트는 미리 생성된 서버 UTXO에 대응되는 서버 서명을 송신자 정보로 포함하고, 다중서명 주소를 수신자 정보로 포함하고, 블록체인 노드에 의한 인증서 등록 트랜잭션 스크립트의 실행에 따라 서버 UTXO가 STXO(Spent Transaction Output)으로 전환되면서 동시에 사용자 UTXO가 생성되는 것일 수 있다.
이 때, 인증서 등록 요청은 사용자에 대응되는 사용자 식별정보 및 사용자 단말에 대응되는 사용자 단말 식별정보를 더 포함하고, 인증서 등록 트랜잭션 스크립트는 사용자 인증서 주소, 사용자 식별정보 및 사용자 단말 식별정보를 인증서 등록 스마트 컨트랙트(smart contract) 함수의 호출 파라미터(parameter)로 더 포함하고, 블록체인 노드에 의한 인증서 등록 트랜잭션 스크립트의 실행에 따라 인증서 등록 스마트 컨트랙트 함수가 호출되어, 사용자 인증서 주소, 사용자 식별정보 및 사용자 단말 식별정보가 매핑되어 인증서 매핑 정보 테이블에 추가되는 것일 수 있다.
이 때, 인증서 매핑 정보 테이블은 사용자 인증서에 대한 데이터 무결성을 검증하기 위해 사용자 인증서 주소 필드, 사용자 식별정보 필드 및 사용자 단말 식별정보 필드 각각에 대해 고유 인덱스(index)가 작성되는 것일 수 있다.
이 때, 인증서 등록 요청 결과는 사용자 인증서 주소를 포함하고, 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법은 사용자 단말로부터 검증 대상 사용자 인증서 주소, 검증 대상 사용자 인증서 및 검증 대상 사용자 단말 식별정보를 포함하는 인증서 폐지 요청을 수신하는 단계; 검증 대상 사용자 인증서에 포함된 사용자 공개 키 및 서버 공개 키를 이용하여 검증 대상 다중서명 주소를 생성하고, 검증 대상 사용자 인증서에 포함된 다중서명 주소와의 동일 여부를 판단하여 다중서명 주소 검증을 수행하는 단계; 검증 대상 사용자 인증서 주소에 대해, 인증서 매핑 정보 테이블에 저장된 검증 대상 사용자 단말 식별정보에 대응되는 사용자 인증서 주소와의 동일 여부를 판단하여 사용자 단말 검증을 수행하는 단계; 다중서명 주소 검증 및 사용자 단말 검증이 완료된 경우, 서버 서명에 의해 서명 검증이 가능한 스크립트를 수신자 정보로 포함하는 미서명 인증서 폐지 트랜잭션 스크립트를 생성하여 사용자 단말에 전송하는 단계; 및 사용자 단말에 의해 미서명 인증서 폐지 트랜잭션 스크립트의 송신자 정보에 사용자 서명이 추가된 인증서 폐지 트랜잭션 스크립트를 수신하여 블록체인 노드에 전송하는 단계; 및 블록체인 노드에 의한 인증서 페지 트랜잭션 스크립트의 실행 결과를 수신하고, 인증서 폐지 트랜잭션 스크립트의 실행 결과에 기초하여 인증서 폐지 요청 결과를 생성하고, 인증서 폐지 요청 결과를 사용자 단말에 전송하는 단계;를 더 포함할 수 있다.
이 때, 미서명 인증서 폐지 트랜잭션 스크립트를 생성하기 전에, 검증 대상 사용자 인증서 주소에 대응되는 사용자 UTXO의 수가 1인지 여부에 기초하여 검증 대상 사용자 인증서의 유효성 검증을 수행하는 단계;를 더 포함할 수 있다.
또한, 상기의 목적을 달성하기 위한 본 발명의 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증관리서버는 사용자 단말로부터 사용자 단말에서 생성된 사용자 인증서를 포함하는 인증서 등록 요청을 수신하는 인증서 등록 요청 수신부; 사용자 인증서를 이용하여, 블록체인(blockchain) 상에서 사용자 인증서가 등록되는 위치를 나타내는 사용자 인증서 주소를 생성하는 사용자 인증서 주소 생성부; 사용자 인증서 및 사용자 인증서 주소를 이용하여, 사용자 UTXO(Unspent Transaction Output)를 생성하는 인증서 등록 트랜잭션 스크립트(transaction script)를 생성하여 인증서 등록 트랜잭션 스크립트를 블록체인 노드(node)에 전송하는 트랜잭션 스크립트 전송부; 및 블록체인 노드에 의한 인증서 등록 트랜잭션 스크립트의 실행 결과를 수신하고, 인증서 등록 트랜잭션 스크립트의 실행 결과에 기초하여 인증서 등록 요청 결과를 생성하고, 인증서 등록 요청 결과를 사용자 단말에 전송하는 요청 결과 전송부;를 포함한다.
이 때, 사용자 인증서 주소 생성부는 사용자 인증서에 포함된 사용자 공개 키 및 미리 생성된 서버 공개 키를 이용하여 다중서명 주소를 생성하고, 다중서명 주소를 포함하는 사용자 인증서 주소를 생성하고, 다중서명 주소 및 사용자 인증서 주소는 사용자 공개 키에 대응되는 사용자 개인 키를 이용하여 생성된 사용자 서명을 이용하여 서명 검증이 가능하고, 서버 공개 키에 대응되는 서버 개인 키를 이용하여 생성된 서버 서명에 의해 서명 검증이 가능한 것일 수 있다.
이 때, 인증서 등록 트랜잭션 스크립트는 미리 생성된 서버 UTXO에 대응되는 서버 서명을 송신자 정보로 포함하고, 다중서명 주소를 수신자 정보로 포함하고, 블록체인 노드에 의한 인증서 등록 트랜잭션 스크립트의 실행에 따라 서버 UTXO가 STXO(Spent Transaction Output)으로 전환되면서 동시에 사용자 UTXO가 생성되는 것일 수 있다.
이 때, 인증서 등록 요청은 사용자에 대응되는 사용자 식별정보 및 사용자 단말에 대응되는 사용자 단말 식별정보를 더 포함하고, 인증서 등록 트랜잭션 스크립트는 사용자 인증서 주소, 사용자 식별정보 및 사용자 단말 식별정보를 인증서 등록 스마트 컨트랙트(smart contract) 함수의 호출 파라미터(parameter)로 더 포함하고, 블록체인 노드에 의한 인증서 등록 트랜잭션 스크립트의 실행에 따라 인증서 등록 스마트 컨트랙트 함수가 호출되어, 사용자 인증서 주소, 사용자 식별정보 및 사용자 단말 식별정보가 매핑되어 인증서 매핑 정보 테이블에 추가되는 것일 수 있다.
이 때, 인증서 매핑 정보 테이블은 사용자 인증서에 대한 데이터 무결성을 검증하기 위해 사용자 인증서 주소 필드, 사용자 식별정보 필드 및 사용자 단말 식별정보 필드 각각에 대해 고유 인덱스(index)가 작성되는 것일 수 있다.
이 때, 인증서 등록 요청 결과는 사용자 인증서 주소를 포함하고, 블록체인 및 스마트 컨트랙트 기반 인증관리서버는 사용자 단말로부터 검증 대상 사용자 인증서 주소, 검증 대상 사용자 인증서 및 검증 대상 사용자 단말 식별정보를 포함하는 인증서 폐지 요청을 수신하는 인증서 폐지 요청 수신부; 및 검증 대상 사용자 인증서에 포함된 사용자 공개 키 및 서버 공개 키를 이용하여 검증 대상 다중서명 주소를 생성하고, 다중서명 주소와의 동일 여부를 판단하여 다중서명 주소 검증을 수행하고, 검증 대상 사용자 인증서 주소에 대해, 인증서 매핑 정보 테이블에 저장된 검증 대상 사용자 단말 식별정보에 대응되는 사용자 인증서 주소와의 동일 여부를 판단하여 사용자 단말 검증을 수행하는 사용자 인증서 검증부;를 더 포함하고, 트랜잭션 스크립트 전송부는 다중서명 주소 검증 및 사용자 단말 검증이 완료된 경우, 서버 서명에 의해 서명 검증이 가능한 스크립트를 수신자 정보로 포함하는 미서명 인증서 폐지 트랜잭션 스크립트를 생성하여 사용자 단말에 전송하고, 사용자 단말에 의해 미서명 인증서 폐지 트랜잭션 스크립트의 송신자 정보에 사용자 서명이 추가된 인증서 폐지 트랜잭션 스크립트를 수신하여 블록체인 노드에 전송하고, 요청 결과 전송부는 블록체인 노드에 의한 인증서 페지 트랜잭션 스크립트의 실행 결과를 수신하고, 인증서 폐지 트랜잭션 스크립트의 실행 결과에 기초하여 인증서 폐지 요청 결과를 생성하고, 인증서 폐지 요청 결과를 사용자 단말에 전송하는 것일 수 있다.
이 때, 사용자 인증서 검증부는 검증 대상 사용자 인증서 주소에 대응되는 사용자 UTXO의 수가 1인지 여부에 기초하여 검증 대상 사용자 인증서의 유효성 검증을 더 수행할 수 있다.
또한, 상기의 목적을 달성하기 위한 본 발명의 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 시스템은 인증된 사용자에게 서비스를 제공하는 적어도 하나의 서비스 제공 단말; 사용자 인증서를 생성하여 인증서 등록을 요청하고, 등록된 사용자 인증서를 서비스 제공 단말에 제공하여 사용자의 인증을 수행하는 적어도 하나의 사용자 단말; 적어도 하나의 사용자 단말로부터 인증서 등록을 요청 받아, 요청에 포함된 사용자 인증서를 이용하여 블록체인(blockchain) 상에서 사용자 인증서가 등록되는 위치를 나타내는 사용자 인증서 주소를 생성하고, 사용자 인증서 및 사용자 인증서 주소를 이용하여, 사용자 UTXO(Unspent Transaction Output)를 생성하는 인증서 등록 트랜잭션 스크립트(transaction script)를 생성하여 인증서 등록 트랜잭션 스크립트를 블록체인(block chain) 노드(node)에 전송하고, 블록체인 노드에 의한 인증서 등록 트랜잭션 스크립트의 실행 결과에 기초하여 등록된 사용자 인증서를 적어도 하나의 사용자 단말에 전송하는 적어도 하나의 인증관리서버; 및 적어도 하나의 인증관리서버를 포함하는 전체 인증관리서버들로부터 수신된 인증서 등록 트랜잭션 스크립트들을 실행하고, 인증서 등록 트랜잭션 스크립트들에 포함된 스마트 컨트랙트(smart contract) 함수를 호출하고, 스마트 컨트랙트 함수의 결과물로 전체 인증관리서버들에 대해 통합된 인증서 상태 데이터를 제공하는 하나의 블록체인 노드;를 포함한다.
본 발명에 따르면, 사용자 단말에서 생성된 공개 키를 블록체인에 등록하여 사용자 인증서로 활용할 수 있는 인증서 서비스를 제공할 수 있다.
또한, 본 발명에 따르면 인증서의 유효 조건을 스마트 컨트랙트에 의해 검사 함으로써 유효성 검사의 무결성을 보장하는 인증서 서비스를 제공할 수 있다.
또한, 본 발명에 따르면 인증서 관련 정보를 기존에 발급한 기관 외에 다른 기관에 대해서도 등록하는 방법을 제공하여 하나의 인증서 발급으로 블록체인을 이용하는 여러 기관에서 공동으로 사용 가능케 하는 인증서 서비스를 제공할 수 있다.
또한, 본 발명에 따르면 사용자 단말에서 생성된 시드와 서버에 저장된 키를 함께 이용하여 생성된 암호화 키로 사용자 단말에서 생성된 개인 키를 암호화 저장함으로써 보안성이 향상된 인증서 서비스를 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 시스템을 나타낸 블록도이다.
도 2는 본 발명의 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법을 나타낸 동작 흐름도이다.
도 3은 본 발명에 따른 인증서 등록 방법의 일 예를 나타낸 동작 흐름도이다.
도 4는 본 발명에 따른 인증서 폐지 방법의 일 예를 나타낸 동작 흐름도이다.
도 5는 본 발명에 따른 인증서 검증 방법의 일 예를 나타낸 동작 흐름도이다.
도 6은 본 발명의 다른 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 시스템을 나타낸 블록도이다.
도 7은 본 발명의 다른 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법을 나타낸 동작 흐름도이다.
도 8은 본 발명에 따른 인증서 등록 방법의 다른 일 예를 나타낸 동작 흐름도이다.
도 9는 본 발명에 따른 인증서 폐지 방법의 다른 일 예를 나타낸 동작 흐름도이다.
도 10은 본 발명의 일 실시예에 따른 사용자 인증에 기초한 암호 키 제공 시스템을 나타낸 블록도이다.
도 11은 본 발명의 일 실시예에 따른 사용자 인증에 기초한 암호 키 제공 방법을 나타낸 동작 흐름도이다.
도 12는 본 발명에 따른 사용자 인증 수단을 이용한 사용자 개인 키 암호화 방법의 일 예를 나타낸 동작 흐름도이다.
도 13은 본 발명에 따른 사용자 인증 수단의 교체 방법의 일 예를 나타낸 동작 흐름도이다.
도 14는 본 발명의 일 실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 시스템을 나타낸 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 시스템은 사용자 단말(110), 인증관리서버(120) 및 블록체인 노드(130)를 포함한다.
사용자 단말(110)은 유무선 통신 환경에서 단말 어플리케이션을 이용할 수 있는 통신 단말기를 의미한다. 예컨대, 사용자 단말(110)은 스마트폰(smart phone)과 같은 휴대용 단말기일 수 있으며, 본 발명의 사상은 이에 제한되지 아니하며, 상술한 바와 같이 단말 어플리케이션을 탑재한 단말은 제한 없이 차용될 수 있다.
사용자 단말(110)에는 특정 서비스를 제공하기 위한 서비스 제공 어플리케이션과, 통합인증 어플리케이션이 탑재될 수 있다.
여기서, 서비스 제공 어플리케이션은 서비스 제공 서버와 통신하여 사용자에게 서비스를 제공하기 위한 어플리케이션일 수 있다. 예컨대, 서비스 제공 어플리케이션은 은행 관련 업무를 제공하기 위한 어플리케이션이고, 서비스 제공 서버는 은행 서버일 수 있다.
통합인증 어플리케이션은 인증관리서버(120)와 통신하여 블록체인 및 스마트 컨트랙트 기반 인증 서비스를 제공하기 위한 어플리케이션일 수 있다.
인증관리서버(120)는 서비스 제공 서버에서 사용자에게 서비스 제공을 위해 사용자 인증이 필요한 경우, 사용자 단말(110)의 통합인증 어플리케이션과 통신하여 사용자 인증을 수행하고, 그 결과를 전송할 수 있다.
또한, 서비스 제공 어플리케이션 및 통합인증 어플리케이션 간에는 인증관리서버(120)로부터 생성된 세션(session) 키를 이용한 보안 구간이 형성될 수 있다.
인증관리서버(120)는 하나의 서비스 제공 서버와 일대일 대응될 수 있다. 예컨대, 복수의 은행 서버들 각각에 일대일 대응되는 인증관리서버가 존재할 수 있다.
선택적 실시예로서, 인증관리서버(120)는 복수의 서비스 제공 서버들과 일대다의 관계로 대응될 수 있다.
또한, 인증관리서버(120)는 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법을 제공하기 위해, 인증서 등록 요청 수신부(122), 사용자 인증서 주소 생성부(124), 트랜잭션 스크립트 전송부(126) 및 요청 결과 전송부(128)를 포함한다.
인증서 등록 요청 수신부(122)는 사용자 단말(110)에서 생성된 사용자 인증서를 포함하는 인증서 등록 요청을 수신한다.
사용자 인증서 주소 생성부(124)는 사용자 인증서를 이용하여 사용자 인증서 주소를 생성한다.
트랜잭션 스크립트 전송부(126)는 사용자 인증서 및 상기 사용자 인증서 주소를 이용하여 인증서 등록 트랜잭션 스크립트(transaction script)를 생성하여 블록체인 노드(130)에 전송한다.
요청 결과 전송부(128)는 블록체인 노드(130)로부터 트랜잭션 스크립트의 실행 결과를 수신하고, 인증서 등록 요청 결과를 상기 사용자 단말에 전송한다.
블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법에 관한 보다 상세한 내용은 도 2 내지 도 5를 참조하여 후술하기로 한다.
인증관리서버(120)는 하나의 서버로 구성될 수도 있고, 물리적으로 분리된 복수의 서버들을 포함하는 개념일 수 있다. 예컨대, 상술한 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법에 관한 내용들은 하나의 서버에 의해 수행될 수도 있으나, 물리적으로 분리된 별도의 복수 서버들에 분할 할당되어 수행될 수도 있다.
블록체인 노드(130)는 인증서 등록 트랜잭션 스크립트를 실행하여, 트랜잭션을 검증하는 트랜잭션 처리부(132), 검증된 트랜잭션을 포함하는 블록을 블록체인에 연결시켜, 사용자 인증서를 블록체인에 저장하는 블록 처리부(134) 및 인증서 등록 트랜잭션 스크립트에 포함된 파라미터(parameter)에 기초하여 스마트 컨트랙트 함수를 호출하고, 스마트 컨트랙트 함수의 리턴(return) 값으로서 인증서 상태 정보를 갱신 및 저장하는 스마트 컨트랙트 처리부(136)를 포함한다.
사용자 단말(110) 및 인증관리서버(120) 또는 인증관리서버(120) 및 블록체인 노드(130)는 통신망을 통해 상호 연결될 수 있다.
통신망은 사용자 단말(110) 및 인증관리서버(120) 또는 인증관리서버(120) 및 블록체인 노드(130) 사이에 데이터를 송수신할 수 있도록 하기 위한 접속 경로를 의미한다. 예컨대, 통신망은 LANs(Local Area Networks), WANs(Wide Area Networks), MANs(Metropolitan Area Networks), ISDNs(Integrated Service Digital Networks) 등의 유선 네트워크나, 무선 LANs, CDMA, 블루투스, 위성 통신 등의 무선 네트워크를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
도 2는 본 발명의 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법을 나타낸 동작 흐름도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법은 인증관리서버가, 사용자 단말로부터 사용자 단말에서 생성된 사용자 인증서를 포함하는 인증서 등록 요청을 수신한다(S210).
여기서, 인증서 등록 요청은 사용자에 대응되는 사용자 식별정보 및 사용자 단말에 대응되는 사용자 단말 식별정보를 더 포함할 수 있다.
여기서, 사용자 식별정보에 대응되는 사용자는 사람 또는 법인일 수 있으며, 사용자가 사람인 경우 사용자 식별정보는 주민등록번호에 대응되는 식별자를 포함하는 정보일 수 있고, 사용자가 법인인 경우 사용자 식별정보는 법인등록번호에 대응되는 식별자를 포함하는 정보일 수 있다.
다음으로, 인증관리서버가, 사용자 인증서를 이용하여, 블록체인(blockchain) 상에서 사용자 인증서가 등록되는 위치를 나타내는 사용자 인증서 주소를 생성한다(S220).
단계(S220)에서, 인증관리서버는 사용자 인증서에 포함된 사용자 공개 키 및 미리 생성된 서버 공개 키를 이용하여 다중서명 주소를 생성할 수 있다.
단계(S220)에서, 인증관리서버는 다중서명 주소를 포함하는 사용자 인증서 주소를 생성할 수 있다.
여기서, 다중서명 주소 및 사용자 인증서 주소는 사용자 공개 키에 대응되는 사용자 개인 키를 이용하여 생성된 사용자 서명을 이용하여 서명 검증이 가능하고, 서버 공개 키에 대응되는 서버 개인 키를 이용하여 생성된 서버 서명에 의해 서명 검증이 가능한 것일 수 있다.
다음으로, 인증관리서버가, 사용자 인증서 및 사용자 인증서 주소를 이용하여, 사용자 UTXO(Unspent Transaction Output)를 생성하는 인증서 등록 트랜잭션 스크립트(transaction script)를 생성하고, 인증서 등록 트랜잭션 스크립트를 블록체인 노드(node)에 전송한다(S230).
여기서, 인증서 등록 트랜잭션 스크립트는 미리 생성된 서버 UTXO에 대응되는 서버 서명을 송신자 정보로 포함하고, 다중서명 주소를 수신자 정보로 포함하는 것일 수 있다.
이에 따라, 블록체인 노드에 의한 인증서 등록 트랜잭션 스크립트가 실행되는 경우, 서버 UTXO가 STXO(Spent Transaction Output)으로 전환되면서 동시에 사용자 UTXO가 생성될 수 있다.
여기서, 인증서 등록 트랜잭션 스크립트는 사용자 인증서 주소, 사용자 식별정보 및 사용자 단말 식별정보를 인증서 등록 스마트 컨트랙트(smart contract) 함수의 호출 파라미터(parameter)로 더 포함할 수 있다.
여기서, 사용자 식별정보는 적어도 하나의 변환 함수를 통해 변환된 형태로 사용될 수 있다. 예컨대, 사용자 식별정보는 서로 다른 두 개의 해쉬 함수를 사용하여 변환된 형태로 사용될 수 있다.
이에 따라, 블록체인 노드에 의한 인증서 등록 트랜잭션 스크립트가 실행되는 경우, 인증서 등록 스마트 컨트랙트 함수가 호출되어, 사용자 인증서 주소, 사용자 식별정보 및 사용자 단말 식별정보가 매핑되어 인증서 매핑 정보 테이블에 추가될 수 있다.
여기서, 인증서 매핑 정보 테이블은 사용자 인증서에 대한 데이터 무결성을 검증하기 위해 사용자 인증서 주소 필드, 사용자 식별정보 필드 및 사용자 단말 식별정보 필드 각각에 대해 고유 인덱스(index)가 작성되는 것일 수 있다.
다음으로, 인증관리서버가, 블록체인 노드에 의한 인증서 등록 트랜잭션 스크립트의 실행 결과를 수신하고, 인증서 등록 트랜잭션 스크립트의 실행 결과에 기초하여 인증서 등록 요청 결과를 생성하고, 인증서 등록 요청 결과를 사용자 단말에 전송한다(S240).
여기서, 인증서 등록 요청 결과는 사용자 인증서 주소를 포함할 수 있다.
비록 도 2에는 도시되지 아니하였으나, 본 발명의 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법은 인증관리서버가, 사용자 단말의 요청에 따라 블록체인에 등록된 사용자 인증서를 폐지시키기 위해 아래 과정을 더 수행할 수 있다.
먼저 인증관리서버는, 사용자 단말로부터 검증 대상 사용자 인증서 주소, 검증 대상 사용자 인증서 및 검증 대상 사용자 단말 식별정보를 포함하는 인증서 폐지 요청을 수신할 수 있다.
또한 인증관리서버는, 검증 대상 사용자 인증서에 포함된 사용자 공개 키 및 서버 공개 키를 이용하여 검증 대상 다중서명 주소를 생성하고, 다중서명 주소와의 동일 여부를 판단하여 다중서명 주소 검증을 수행할 수 있다.
또한 인증관리서버는, 검증 대상 사용자 인증서 주소에 대해, 인증서 매핑 정보 테이블에 저장된 검증 대상 사용자 단말 식별정보에 대응되는 사용자 인증서 주소와의 동일 여부를 판단하여 사용자 단말 검증을 수행할 수 있다.
여기서 인증관리서버는, 검증 대상 사용자 인증서 주소에 대응되는 사용자 UTXO의 수가 1인지 여부에 기초하여 검증 대상 사용자 인증서의 유효성 검증을 더 수행할 수 있다.
또한 인증관리서버는, 다중서명 주소 검증 및 사용자 단말 검증이 완료된 경우, 서버 서명에 의해 서명 검증이 가능한 스크립트를 수신자 정보로 포함하는 미서명 인증서 폐지 트랜잭션 스크립트를 생성하여 사용자 단말에 전송할 수 있다.
또한 인증관리서버는, 사용자 단말에 의해 미서명 인증서 폐지 트랜잭션 스크립트의 송신자 정보에 사용자 서명이 추가된 인증서 폐지 트랜잭션 스크립트를 수신하여 블록체인 노드에 전송할 수 있다.
또한 인증관리서버는, 블록체인 노드에 의한 인증서 페지 트랜잭션 스크립트의 실행 결과를 수신하고, 인증서 폐지 트랜잭션 스크립트의 실행 결과에 기초하여 인증서 폐지 요청 결과를 생성하고, 인증서 폐지 요청 결과를 사용자 단말에 전송할 수 있다.
도 3은 본 발명에 따른 인증서 등록 방법의 일 예를 나타낸 동작 흐름도이다.
특히, 도 3은 사용자 단말(110)이 인증관리서버(120)를 통해 사용자 인증서를 블록체인에 등록시키는 방법의 일 예를 나타낸 것이다.
도 3을 참조하면, 먼저 사용자 단말(110)이 인증관리서버(120)에 요청하여 챌린지(challenge)를 수신하고, 이에 대한 응답으로 사용자 공개 키 및 사용자 공개 키와 쌍을 이루는 사용자 개인 키를 생성한다(S301).
여기서, 사용자 단말(110)은 공개 키 암호 방식을 이용하여 공개 키 및 개인 키 쌍을 생성할 수 있다. 예컨대, 사용자 단말(110)은 RSA(Rivest-Shamir-Adleman) 알고리즘 또는 ECDSA(Elliptic Curve Digital Signature Algorithm)를 통해 공개 키 및 개인 키 쌍을 생성할 수 있으며, 본 발명의 범위가 상술한 알고리즘에 한정되는 것은 아니다.
여기서, 사용자 단말(110)은 단계(S301)에서 사용자 인증서에 사용되는 제1 사용자 키 쌍과, 트랜잭션 스크립트 서명을 위한 제2 사용자 키 쌍을 구분하여 생성할 수 있다. 예컨대, 사용자 단말(110)은 RSA 알고리즘을 이용하여 제1 사용자 키 쌍을 생성하고, ECDSA를 이용하여 제2 사용자 키 쌍을 생성할 수 있으며, RSA 알고리즘을 이용하여 제1 사용자 키 쌍 및 제2 사용자 키 쌍을 모두 생성할 수도 있다. 즉, 두 키 쌍의 생성을 위한 공개 키 암호 방식은 제한 없이 차용될 수 있다.
다음으로, 사용자 단말(110)은 인증관리서버(120)에 사용자 공개 키를 전송하면서 사용자 인증서의 등록을 요청한다(S310).
한편, 인증관리서버(120)는 단계(S310) 전에 공개 키 암호 방식을 이용하여 서버 키 쌍을 생성하고(S302), 서버 키 쌍을 이용하여 서버 UTXO를 생성한다(S303).
인증관리서버(120)는 서버 키 쌍 중 서버 공개 키와 사용자 공개 키를 이용하여 다중서명 주소를 생성하고, 다중서명 주소를 이용하여 사용자 인증서가 블록체인 상에 저장될 위치를 나타내는 사용자 인증서 주소를 생성한다(S320).
여기서, 사용자 인증서 주소는 블록체인 식별자(blockchain ID)에 해당할 수 있다.
또한, 인증관리서버(120)는 사용자 인증서 주소를 이용하여 인증서 등록 트랜잭션 스크립트를 생성한다(S330).
여기서, 인증서 등록 트랜잭션 스크립트는 서버 UTXO에 대응되는 서버 서명을 송신자 정보로 포함하고, 다중서명 주소를 수신자 정보로 포함할 수 있다.
인증관리서버(120)가 인증서 등록 트랜잭션 스크립트를 블록체인 노드(130)에 전송하면(S531), 블록체인 노드(130)가 인증서 등록 트랜잭션 스크립트를 실행한다(S340).
블록체인 노드(130)는 인증서 등록 트랜잭션 스크립트를 실행하면서, 트랜잭션에 대한 서명 검증을 수행하고(S341), 사용자 인증서에 대한 무결성 검증을 수행한다(S342).
단계(S341)에서의 서명 검증은 인증서 등록 트랜잭션 스크립트에 포함된 해제 스크립트(scriptSig, 도 3의 경우에는 서버 서명)를 통해 서버 UTXO에 포함된 잠금 스크립트(scriptPubKey, 도 3의 경우에는 다중서명 주소)가 해제되는지 여부에 따라서 수행될 수 있다.
단계(S342)에서의 무결성 검증은 인증서 매핑 정보 테이블에서, 하나의 사용자 인증서 주소, 하나의 사용자 식별정보 및 하나의 사용자 단말 식별정보는 일대일대일(1:1:1) 관계인지 여부에 따라서 수행될 수 있다.
단계(S341) 및 단계(S342)의 검증들이 모두 완료된 경우, 블록체인 노드(130)는 서버 UTXO를 STXO로 전환시키고, 동시에 사용자 UTXO를 생성시킨다(S350). 여기서, 블록체인 노드(130)는 서버 UTXO에 포함되어 있던 양(amount)과 동일한 양을 갖는 사용자 UTXO를 생성시킨다. 이에 따라, 블록체인 노드(130)는 서버 소유의 자산 일부(서버 UTXO에 포함되어 있던 양만큼)를 사용자에게 할당시킬 수 있다.
블록체인 노드(130)는 트랜잭션 스크립트 실행 결과를 블록체인 노드의 일 저장소인 메모리풀(memory pool)에 임시 저장하고, 트랜잭션 스크립트 실행 결과를 인증관리서버(120)에 전송한다(S360).
인증관리서버(120)는 트랜잭션 스크립트 실행 결과에 따라 등록 요청 결과를 생성하고(S361), 등록 요청 결과를 사용자 단말(110)에 전송한다(S362).
비록 도 3에는 도시되지 아니하였으나, 단계(S362) 이후, 사용자 단말(110)은 등록 요청 결과에 포함된 사용자 인증서 주소를 사용자 단말(110)의 저장소에 저장할 수 있다.
한편, 블록체인 노드(130)에서는 트랜잭션 스트립트의 실행 도중 트랜잭션 스트립트에 스마트 컨트랙트 함수의 호출 파라미터가 포함된 경우, 스마트 컨트랙트 함수를 호출하여 인증서 매핑 정보를 생성한다(S365).
여기서, 스마트 컨트랙트 함수의 결과(return) 값으로, 사용자 인증서 주소, 사용자 식별정보 및 사용자 단말 식별정보가 매핑되어 인증서 매핑 정보 테이블에 추가되며, 사용자 인증서에 대한 무결성 검증이 신속하게 수행될 수 있도록, 사용자 인증서 주소 필드, 사용자 식별정보 필드 및 사용자 단말 식별정보 필드 각각에 대해 고유 인덱스(index)가 작성될 수 있다.
예컨대, 인증서 등록 트랜잭션 스크립트에는 인증서 등록 스마트 컨트랙트 함수의 호출 파라미터가 포함되어 있어, 블록체인 노드(130)가 인증서 등록 트랜잭션 스크립트를 실행하는 도중 인증서 등록 스마트 컨트랙트 함수가 호출되어 사용자 인증서가 블록체인에 등록되었음을 나타내는 정보가 생성될 수 있다.
또한, 블록체인 노드(130)는 메모리풀에 임시 저장된 트랜잭션들을 소정의 주기마다 새로이 마이닝(mining)된 블록에 포함시켜 기존의 블록체인에 연결시킨다(S366).
도 4는 본 발명에 따른 인증서 폐지 방법의 일 예를 나타낸 동작 흐름도이다.
특히, 도 4는 사용자 단말(110)이 인증관리서버(120)를 통해 블록체인에 등록된 사용자 인증서를 폐지시키는 방법의 일 예를 나타낸 것이다.
도 4를 참조하면, 먼저 사용자 단말(110)이 인증관리서버(120)에 사용자 인증서 및 사용자 단말 식별정보를 전송하여 인증서 폐지를 요청한다(S410).
인증관리서버(120)는 사용자 인증서에 포함된 사용자 공개 키 및 서버 공개 키를 이용하여 검증 대상 다중서명 주소를 생성하고, 사용자 인증서에 포함된 다중서명 주소와의 동일 여부를 판단하여 다중서명 주소를 검증한다(S420).
또한, 인증관리서버(120)는 블록체인 노드(130)로부터 사용자 인증서에 포함된 사용자 인증서 주소에 대응되는 사용자 UTXO를 조회하고(S430), 사용자 UTXO의 수가 1인지 여부에 기초하여 인증서 유효성을 검증한다(S431).
또한, 인증관리서버(120)는 블록체인 노드(130)로부터 인증서 매핑 정보를 조회하고(S440), 사용자 인증서에 포함된 사용자 인증서 주소에 대해, 사용자 단말 식별정보에 매핑된 사용자 인증서 주소와의 동일 여부를 판단하여 사용자 단말 검증을 수행한다(S441).
단계(S420), 단계(S431) 및 단계(S441)의 검증들이 모두 완료된 경우, 인증관리서버(120)는 사용자 서명이 수행되지 않은 미서명 인증서 폐지 트랜잭션 스크립트를 생성한다(S450).
인증관리서버(120)가 미서명 인증서 폐지 트랜잭션 스크립트를 사용자 단말(110)에 전송하면(S451), 사용자 단말(110)이 미서명 인증서 폐지 트랜잭션 스크립트에 사용자 개인 키를 이용하여 서명을 수행한다(S460).
사용자 단말(110)이 서명된 인증서 폐지 트랜잭션 스크립트를 인증관리서버(120)를 경유하여 블록체인 노드(130)에 전송하면(S461), 블록체인 노드(130)가 인증서 폐지 트랜잭션 스크립트를 실행한다(S470).
블록체인 노드(130)는 인증서 폐지 트랜잭션 스크립트를 실행하면서, 트랜잭션에 대한 서명 검증을 수행한다(S471).
트랜잭션에 대한 검증이 완료된 경우, 블록체인 노드(130)는 사용자 UTXO를 STXO로 전환시키고, 동시에 서버 UTXO를 생성시킨다(S480). 여기서, 블록체인 노드(130)는 사용자 UTXO에 포함되어 있던 양과 동일한 양을 갖는 서버 UTXO를 생성시킨다. 이에 따라, 블록체인 노드(130)는 사용자에게 할당된 자산을 서버에 반환시킬 수 있다.
블록체인 노드(130)는 트랜잭션 스크립트 실행 결과를 메모리풀에 임시 저장하고, 트랜잭션 스크립트 실행 결과를 인증관리서버(120)에 전송한다(S390).
인증관리서버(120)는 트랜잭션 스크립트 실행 결과에 따라 폐지 요청 결과를 생성하고(S491), 폐지 요청 결과를 사용자 단말(110)에 전송한다(S492).
한편, 블록체인 노드(130)에서는 트랜잭션 스트립트의 실행 도중 트랜잭션 스트립트에 스마트 컨트랙트 함수의 호출 파라미터가 포함된 경우, 스마트 컨트랙트 함수를 호출하여 인증서 매핑 정보를 갱신한다(S495).
여기서, 스마트 컨트랙트 함수의 결과(return) 값으로, 사용자 인증서 주소, 사용자 식별정보 및 사용자 단말 식별정보 중 적어도 하나에 매핑된 정보가 인증서 매핑 정보 테이블에서 삭제될 수 있다.
또한, 블록체인 노드(130)는 메모리풀에 임시 저장된 트랜잭션들을 소정의 주기마다 새로이 마이닝된 블록에 포함시켜 기존의 블록체인에 연결시킨다(S496).
선택적 실시예로서, 인증관리서버(120)가 블록체인에 등록된 사용자 인증서를 폐지시키는 경우, 인증관리서버(120)가 서버 서명이 수행된 인증서 폐지 트랜잭션 스크립트를 생성하여 블록체인 노드(130)에 전송함으로써, 사용자 단말(110)의 개입 없이도 사용자 인증서를 폐지시킬 수 있다.
도 5는 본 발명에 따른 인증서 검증 방법의 일 예를 나타낸 동작 흐름도이다.
특히, 도 5는 사용자 단말(110)이 서비스 제공 서버(125)로부터 서비스를 제공 받기 위해 인증서를 검증 받는 방법의 일 예를 나타낸 것이다.
도 5를 참조하면, 먼저 사용자 단말(110)이 임의의 원문을 생성하고(S510), 원문에 대해 사용자 개인 키를 이용하여 서명을 수행하여 전자 서명을 생성한다(S511).
사용자 단말(110)은 서비스 제공 서버(125)에 사용자 인증을 수행하기 위해 전자 서명과 사용자 인증서를 전송하면서 전자 서명 검증을 요청한다(S520).
서비스 제공 서버(125)는 사용자 인증서에 포함된 사용자 공개 키를 이용하여 전자 서명에 대한 서명 검증을 수행하고(S521), 인증관리서버(120)에 사용자 인증서를 전송하여 인증서 검증을 요청한다(S530).
인증관리서버(120)는 블록체인 노드(130)로부터 사용자 UTXO를 조회하고(S540), 사용자 UTXO의 수가 1인지 여부에 기초하여 인증서 유효성을 검증한다(S541).
인증관리서버(120)는 블록체인 노드(130)로부터 인증서 매핑 정보를 조회하고(S550), 사용자 인증서 주소, 사용자 인증서 주소에 매핑된 사용자 식별정보, 사용자 인증서 주소에 매핑된 사용자 단말 식별정보가 일대일대일(1:1:1) 관계인지 여부에 기초하여 사용자 인증서의 무결성을 검증한다(S551).
단계(S541) 및 단계(S551)의 검증들이 모두 완료된 경우, 인증관리서버(120)는 인증서 검증 결과를 생성하고(S560), 인증서 검증 결과를 서비스 제공 서버(125)에 전송한다(S561).
서비스 제공 서버(125)는 인증서 검증 결과에 기초하여 사용자 단말(110)에 서비스를 제공한다(S570).
도 6은 본 발명의 다른 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 시스템을 나타낸 블록도이다.
특히, 도 6은 블록체인 및 스마트 컨트랙트 기반 복수 인증관리서버에 의한 인증서 상태 관리 시스템의 일 예를 나타낸 것이다.
도 6을 참조하면, 본 발명의 다른 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 시스템은 사용자 단말(110), 제1 인증관리서버(610), 제2 인증관리서버(620) 및 블록체인 노드(130)를 포함한다.
사용자 단말(110) 및 블록체인 노드(130)와 관련하여 도 1에서의 설명과 중복되는 설명은 생략하기로 한다.
제1 인증관리서버(610) 및 제2 인증관리서버(620)는 서로 다른 서비스 제공 서버에 대응되는 서버일 수 있다. 예컨대, 제1 인증관리서버(610)는 제1 은행의 서비스 제공 서버에 대응되고, 제2 인증관리서버(620)는 제2 은행의 서비스 제공 서버에 대응될 수 있다.
제1 인증관리서버(610)는 사용자 단말(110)로부터 사용자 인증서의 최초 등록을 수행한 인증관리서버에 해당하며, 제2 인증관리서버(620)는 사용자 단말(110)로부터 사용자 인증서의 최초 등록을 수행하지 않은 인증관리서버에 해당한다. 예컨대, 제1 인증관리서버(610)는 사용자 인증서를 최초 등록한 제1 은행에 대응되는 서버이고, 제2 인증관리서버(620)는 타행(예컨대, 제1 은행)에서 등록한 사용자 인증서를 제2 은행에 등록하여 사용하고자 하는 경우의 제2 은행에 대응되는 서버일 수 있다.
즉, 제1 인증관리서버(610)는 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법을 제공하기 위해, 인증서 등록 요청 수신부, 사용자 인증서 주소 생성부, 트랜잭션 스크립트 전송부 및 요청 결과 전송부를 포함할 수 있으며, 이에 대한 자세한 설명은 도 1의 인증관리서버(120)가 포함하는 인증서 등록 요청 수신부(122), 사용자 인증서 주소 생성부(124), 트랜잭션 스크립트 전송부(126) 및 요청 결과 전송부(128)에 대한 설명으로 대체한다.
제2 인증관리서버(620)는 블록체인 및 스마트 컨트랙트 기반 복수 인증관리서버에 의한 인증서 상태 관리 방법을 제공하기 위해, 인증기관 등록 요청 수신부(622), 인증기관 등록 수행부(624) 및 요청 결과 전송부(626)를 포함한다.
인증기관 등록 요청 수신부(622)는 사용자 단말(110)에서 생성되어 제1 인증기관에 대해 최초 등록된 사용자 인증서의 사용자 인증서 주소를 포함하는, 제2 인증기관에 대한 인증기관 등록 요청을 수신한다.
여기서, 제1 인증기관 및 제2 인증기관은 각각 인증된 사용자에게 서비스를 제공하기 위한 서비스 제공 서버일 수 있다. 예컨대, 제1 인증기관은 제1 은행에 대응되는 서비스 제공 서버일 수 있고, 제2 인증기관은 제2 은행에 대응되는 서비스 제공 서버일 수 있다.
인증기관 등록 수행부(624)는 사용자 인증서 주소를 이용하여 블록체인 노드(130)로부터 사용자 인증서에 관한 정보를 획득하여 사용자 인증서에 대한 검증을 수행하고, 사용자 인증서 주소 및 사용자 식별정보를 제2 인증기관에 전송한다.
요청 결과 전송부(626)는 제2 인증기관으로부터 등록 결과를 수신하여 사용자 단말(110)에 전송한다.
블록체인 및 스마트 컨트랙트 기반 복수 인증관리서버에 의한 인증서 상태 관리 방법에 관한 보다 상세한 내용은 도 7 내지 도 9를 참조하여 후술하기로 한다.
도 7은 본 발명의 다른 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법을 나타낸 동작 흐름도이다.
특히, 도 7은 블록체인 및 스마트 컨트랙트 기반 복수 인증관리서버에 의한 인증서 상태 관리 방법을 나타낸 것이다.
도 7을 참조하면, 본 발명의 다른 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법은 제2 인증관리서버가, 사용자 단말로부터 사용자 단말에서 생성되어 제1 인증기관에 대해 최초 등록된 사용자 인증서의 블록체인(blockchain) 상의 등록 위치를 나타내는 사용자 인증서 주소를 포함하는, 제1 인증기관과 서로 다른 제2 인증기관에 대한 사용자 인증서의 인증기관 등록 요청을 수신한다(S710).
다음으로, 제2 인증관리서버가, 사용자 인증서 주소를 기초로 블록체인 노드(node)로부터 사용자 인증서 주소에 매핑(mapping)된 사용자 인증서에 관한 정보를 획득하여, 사용자 인증서에 대한 검증을 수행하고, 사용자 인증서 주소 및 사용자 인증서에 대응되는 사용자 식별정보를 제2 인증기관에 전송한다(S720).
단계(S720)에서 제2 인증관리서버는 사용자 식별정보를 사용자 단말 또는 블록체인 노드로부터 획득하여, 이를 제2 인증기관에 전송할 수 있다.
제2 인증관리서버는 사용자 인증서 주소 및 사용자 식별정보를 제2 인증기관에 전송하기 전에, 사용자 인증서 주소 및 제2 인증기관에 대응되는 제2 인증기관 식별정보를 이용하여, 사용자 인증서의 미리 등록된 인증서 매핑 정보 테이블을 갱신하기 위한 인증기관 등록 트랜잭션(transaction) 스크립트(script)를 생성하고, 인증기관 등록 트랜잭션 스크립트를 블록체인 노드에 전송할 수 있다.
이에 따라, 블록체인 노드에 의한 트랜잭션 스크립트가 실행되는 경우 인증기관 등록 스마트 컨트랙트(smart contract) 함수가 호출되어, 사용자 인증서 주소에 제2 인증기관 식별정보가 추가 매핑되도록 인증서 매핑 정보 테이블이 갱신될 수 있다.
여기서, 인증서 매핑 정보 테이블은 사용자 인증서 주소 필드, 사용자 식별정보 필드, 사용자 단말 식별정보 및 인증기관 식별정보 필드를 포함하고, 사용자 인증서에 대한 데이터 무결성을 검증하기 위해 사용자 인증서 주소 필드, 사용자 식별정보 필드 및 사용자 단말 식별정보 필드 각각에 대해 고유 인덱스(index)가 작성될 수 있다.
선택적 실시예로서, 제2 인증관리서버는 인증기관 등록 트랜잭션 스크립트를 블록체인 노드에 전송하기 전에, 사용자 인증서 주소에 대응되는 사용자 UTXO(Unspent Transaction Output)의 수가 1인지 여부에 기초하여 사용자 인증서의 유효성 판단을 수행할 수 있다.
다음으로, 제2 인증관리서버가, 제2 인증기관으로부터 사용자 인증서의 인증기관 등록 결과를 수신하고, 인증기관 등록 결과를 사용자 단말에 전송한다(S730).
비록 도 7에는 도시되지 아니하였으나, 본 발명의 다른 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법은 제2 인증관리서버가, 제2 인증기관의 요청에 따라 블록체인에 등록된 사용자 인증서를 폐지시키기 위해 아래 과정을 더 수행할 수 있다.
먼저 제2 인증관리서버는, 제2 인증기관으로부터 사용자 인증서 주소를 포함하는, 사용자 인증서의 인증서 폐지 요청을 수신할 수 있다.
또한 제2 인증관리서버는, 사용자 인증서 주소를 이용하여, 사용자 인증서가 최초 등록 시 생성된 제1 사용자 UTXO와 서로 다른 제2 사용자 UTXO를 생성하는 제1 인증서 폐지 트랜잭션 스크립트를 생성하여 제1 인증서 폐지 트랜잭션 스크립트를 블록체인 노드에 전송할 수 있다.
여기서, 제1 인증서 폐지 트랜잭션 스크립트는 미리 생성된 제2 인증관리서버 UTXO에 대응되는 제2 인증관리서버 서명을 송신자 정보로 포함하고, 다중서명 주소를 수신자 정보로 포함할 수 있다.
이에 따라, 블록체인 노드에 의한 제1 인증서 폐지 트랜잭션 스크립트의 실행되는 경우, 제2 인증관리서버 UTXO가 STXO로 전환되면서 동시에 제2 사용자 UTXO가 생성될 수 있다.
또한, 블록체인 노드에 의한 제1 인증서 폐지 트랜잭션 스크립트가 실행되는 경우 인증서 폐지 요청 스마트 컨트랙트 함수가 호출되어, 사용자 인증서가 최초 등록된 제1 인증기관에 대응되는 제1 인증관리서버에 폐지 요청 이벤트가 전송될 수 있다.
이 경우, 제1 인증관리서버가 폐지 요청 이벤트에 대응하여 제2 인증서 폐지 트랜잭션 스크립트를 생성하고, 제2 인증서 폐지 트랜잭션 스크립트가 블록체인 노드에 전송될 수 있다.
여기서, 제2 인증서 폐지 트랜잭션 스크립트는 다중서명 주소에 대해 서명 검증이 가능한 제1 인증관리서버 서명을 송신자 정보로 포함하고, 제1 인증관리서버 공개 키 및 제2 인증관리서버 공개 키 각각을 수신자 정보로 포함할 수 있다.
이에 따라, 블록체인 노드에 의한 제2 인증서 폐지 트랜잭션 스크립트가 실행되는 경우 제1 사용자 UTXO 및 제2 사용자 UTXO가 모두 STXO(Spent Transaction Output)로 전환되면서 사용자 인증서가 폐지될 수 있다.
예컨대, 블록체인 노드에 의한 제2 인증서 폐지 트랜잭션 스크립트의 실행에 따라 제1 사용자 UTXO가 STXO로 전환되면서 동시에 제1 인증관리서버에 대응되는 새로운 제1 인증관리서버 UTXO가 생성되고, 제2 사용자 UTXO가 STXO로 전환되면서 동시에 제2 인증관리서버에 대응되는 새로운 제2 인증관리서버 UTXO가 생성될 수 있다.
여기서, 제1 사용자 UTXO는 사용자 인증서에 포함된 사용자 공개 키 및 제1 인증관리서버에서 미리 생성된 제1 인증관리서버 공개 키를 이용하여 생성된 다중서명 주소를 수신자 정보로 포함하는 인증서 등록 트랜잭션 스크립트의 실행 결과로 생성된 것일 수 있다.
도 8은 본 발명에 따른 인증서 등록 방법의 다른 일 예를 나타낸 동작 흐름도이다.
도 8은 사용자 단말(110)이 제1 인증기관에 대해 등록된 사용자 인증서를 이용하여 제2 인증기관으로부터 서비스를 제공 받기 위해, 제2 인증기관에 대해서도 사용자 인증서를 등록하는 방법의 일 예를 나타낸 것이다.
도 8을 참조하면, 먼저 사용자 단말(110)이 제2 인증관리서버(620)에 사용자 인증서 주소를 전송하면서 사용자 인증서의 제2 인증기관에 대한 인증기관 등록을 요청한다(S810).
제2 인증관리서버(620)는 블록체인 노드(130)로부터 사용자 인증서 주소에 대응되는 사용자 UTXO를 조회하고(S820), 사용자 UTXO의 수가 1인지 여부에 기초하여 인증서 유효성을 검증한다(S821).
제2 인증관리서버(620)는 블록체인 노드(130)로부터 인증서 매핑 정보를 조회하고(S830), 사용자 인증서 주소, 사용자 인증서 주소에 매핑된 사용자 식별정보, 사용자 인증서 주소에 매핑된 사용자 단말 식별정보가 일대일대일(1:1:1) 관계인지 여부에 기초하여 사용자 인증서의 무결성을 검증한다(S831).
단계(S821) 및 단계(S831)의 검증들이 모두 완료된 경우, 제2 인증관리서버(620)는 인증기관 등록 트랜잭션 스크립트를 생성하여 블록체인 노드(130)에 전송한다(S840).
블록체인 노드(130)는 인증기관 등록 트랜잭션 스크립트를 실행하여 인증서 매핑 정보를 갱신하고(S841), 이에 따라 사용자 인증서 주소 및 제2 인증기관에 대응되는 기관 식별정보가 매핑되어 인증서 매핑 정보 테이블에 추가될 수 있다.
또한, 제2 인증관리서버(620)가 사용자 인증서 주소 및 사용자 식별정보를 제2 인증기관(625)에 전송한다(S850).
제2 인증기관(625)은 사용자 식별정보를 이용하여 제2 인증기관(625)이 자체 보유하는 고객 번호를 검색하고, 사용자 인증서 주소와 고객 번호를 매핑함으로써 인증기관 등록을 수행한다(S851).
인증기관 등록이 완료된 경우, 제2 인증기관(625)은 인증기관 등록 결과를 제2 인증관리서버(620)를 경유하여 사용자 단말(110)에 전송한다(S860).
도 9는 본 발명에 따른 인증서 폐지 방법의 다른 일 예를 나타낸 동작 흐름도이다.
특히, 도 9는 제2 인증기관(625)이 제2 인증관리서버(620)와 서로 다른 제1 인증관리서버(610)를 통해 블록체인에 등록된 사용자 인증서를 폐지시키는 방법의 일 예를 나타낸 것이다.
도 9를 참조하면, 먼저 사용자로부터 웹 페이지 또는 사용자 단말을 통한 인증서 폐지 요청이 있는 경우, 제2 인증기관(625)이 제2 인증관리서버(620)에 고객 번호에 매핑된 사용자 인증서 주소를 전송하여 인증서 폐지를 요청한다(S910).
한편, 제2 인증관리서버(620)는 단계(S910) 전에 공개 키 암호 방식을 이용하여 제2 인증관리서버 키 쌍을 생성하고(S901), 제2 인증관리서버 키 쌍을 이용하여 제2 인증관리서버 UTXO를 생성한다(S902).
제2 인증관리서버(620)는 블록체인 노드(130)로부터 사용자 인증서 주소에 대응되는 사용자 UTXO를 조회하고(S920), 사용자 UTXO의 수가 1인지 여부에 기초하여 인증서 유효성을 검증한다(S921).
또한, 제2 인증관리서버(620)는 블록체인 노드(130)로부터 인증서 매핑 정보를 조회하고(S930), 제2 인증기관(625)에 대응되는 기관 식별정보에 대해, 사용자 인증서 주소에 매핑된 기관 식별정보와의 동일 여부를 판단하여 인증기관 검증을 수행한다(S931).
단계(S921) 및 단계(S931)의 검증들이 모두 완료된 경우, 제2 인증관리서버(620)는 제2 인증관리서버 개인 키로 서명된 제1 인증서 폐지 트랜잭션 스크립트를 생성한다(S940).
제2 인증관리서버(620)가 제1 인증서 폐지 트랜잭션 스크립트를 블록체인 노드(130)에 전송하면(S941), 블록체인 노드(130)가 제1 인증서 폐지 트랜잭션 스크립트를 실행한다(S950).
여기서, 블록체인 노드(130)는 제1 인증서 폐지 트랜잭션 스크립트를 실행하면서, 트랜잭션에 대한 서명 검증을 수행할 수 있다.
트랜잭션에 대한 검증이 완료된 경우, 블록체인 노드(130)는 제2 인증관리서버 UTXO를 STXO로 전환시키고, 동시에 제2 사용자 UTXO를 생성시킨다(S960).
여기서, 제2 사용자 UTXO는 제1 인증관리서버(610)에 의해 사용자 인증서가 블록체인에 등록되는 단계(S903)에서 생성된 제1 사용자 UTXO와 구분되는 것일 수 있다.
여기서, 블록체인 노드(130)는 제2 인증관리서버 UTXO에 포함되어 있던 양(amount)과 동일한 양을 갖는 제2 사용자 UTXO를 생성시킨다. 이에 따라, 블록체인 노드(130)는 제2 인증관리서버 소유의 자산 일부를 사용자에게 할당시킬 수 있다.
비록 도 9에는 도시되지 아니하였으나, 블록체인 노드(130)는 트랜잭션 스크립트 실행 결과를 메모리풀에 임시 저장하고, 트랜잭션 스크립트 실행 결과를 제2 인증관리서버(620)에 전송할 수 있다.
또한, 블록체인 노드(130)는 메모리풀에 임시 저장된 트랜잭션들을 소정의 주기마다 새로이 마이닝된 블록에 포함시켜 기존의 블록체인에 연결시킬 수 있다.
한편, 블록체인 노드(130)에서는 트랜잭션 스트립트의 실행 도중 트랜잭션 스트립트에 스마트 컨트랙트 함수의 호출 파라미터가 포함된 경우, 스마트 컨트랙트 함수를 호출하여 사용자 인증서 주소를 포함하는 폐지 대상 정보를 생성할 수 있다.
폐지 대상 정보에는 제1 인증관리서버에 대응되는 식별정보, 블록체인에 연결된 현재 블록의 식별정보 및 사용자 인증서 주소가 포함될 수 있다.
또한, 블록체인 노드(130)는 사용자 인증서를 최초 등록한 제1 인증관리서버(610)에 폐지 요청 이벤트(event)를 전송한다(S961).
여기서, 블록체인 노드(130)는 메모리풀에 임시 저장된 트랜잭션들이 블록에 포함되어 블록체인에 연결되는 시점에, 블록에 포함된 폐지 대상 사용자 인증서들을 최초 등록한 인증관리서버들에 폐지 요청 이벤트를 일괄 전송할 수 있다.
제1 인증관리서버(610)는 제1 인증관리서버 개인 키로 서명된 제2 인증서 폐지 트랜잭션 스크립트를 생성한다(S970).
여기서, 제1 인증관리서버(610)는 블록체인 노드(130)로부터 폐지 대상 정보를 조회하고, 폐지 대상 정보에 기초하여 제2 인증서 폐지 트랜잭션 스크립트를 생성할 수 있다.
제1 인증관리서버(610)가 제2 인증서 폐지 트랜잭션 스크립트를 블록체인 노드(130)에 전송하면(S971), 블록체인 노드(130)가 제2 인증서 폐지 트랜잭션 스크립트를 실행한다(S980).
블록체인 노드(130)는 제2 인증서 폐지 트랜잭션 스크립트를 실행하면서, 트랜잭션에 대한 서명 검증을 수행한다(S981).
트랜잭션에 대한 검증이 완료된 경우, 블록체인 노드(130)는 제1 사용자 UTXO 및 제2 사용자 UTXO를 모두 STXO로 전환시키고, 동시에 제1 인증관리서버 UTXO 및 제2 인증관리서버 UTXO를 생성시킨다(S990).
여기서, 제1 인증관리서버 개인 키는 제1 사용자 UTXO 및 제2 사용자 UTXO에 포함된 잠금 스크립트를 해제시키는 해제 스크립트의 역할을 수행하며, 블록체인 노드(130)는 제1 사용자 UTXO에 포함되어 있던 양과 동일한 양을 갖는 제1 인증관리서버 UTXO를 생성시키고, 제2 사용자 UTXO에 포함되어 있단 양과 동일한 양을 갖는 제2 인증관리서버 UTXO를 생성시킨다. 이에 따라, 블록체인 노드(130)는 사용자에게 할당된 자산을 제1 인증관리서버와 제2 인증관리서버에 각각 반환시킬 수 있다.
블록체인 노드(130)는 트랜잭션 스크립트 실행 결과를 메모리풀에 임시 저장하고, 트랜잭션 스크립트 실행 결과를 제1 인증관리서버(610) 및 제2 인증관리서버(620)에 각각 전송한다(S991).
한편, 블록체인 노드(130)에서는 트랜잭션 스트립트의 실행 도중 트랜잭션 스트립트에 스마트 컨트랙트 함수의 호출 파라미터가 포함된 경우, 스마트 컨트랙트 함수를 호출하여 인증서 매핑 정보를 갱신한다(S995).
여기서, 스마트 컨트랙트 함수의 결과(return) 값으로, 사용자 인증서 주소, 사용자 식별정보 및 사용자 단말 식별정보 중 적어도 하나에 매핑된 정보가 인증서 매핑 정보 테이블에서 삭제될 수 있다.
또한, 블록체인 노드(130)는 메모리풀에 임시 저장된 트랜잭션들을 소정의 주기마다 새로이 마이닝된 블록에 포함시켜 기존의 블록체인에 연결시킨다(S996).
도 10은 본 발명의 일 실시예에 따른 사용자 인증에 기초한 암호 키 제공 시스템을 나타낸 블록도이다.
도 10을 참조하면, 본 발명의 일 실시예에 따른 사용자 인증에 기초한 암호 키 제공 시스템은 사용자 단말(110)과 서버(1010)를 포함한다.
사용자 단말(110)과 관련하여 도 1에서의 설명과 중복되는 설명은 생략하기로 한다.
사용자 단말(110)은 공개 키 암호 방식을 이용하여 생성된 사용자 개인 키를 암호화하여 사용자 단말(110)의 저장소에 저장한다.
여기서, 사용자 단말(110)은 암호화된 사용자 개인 키의 복호화를 위해 사용자 인증을 수행하기 위한 적어도 하나의 사용자 인증 수단을 포함한다.
예컨대, 사용자 인증 수단은 PIN(Personal Identification Number) 인증 방식, 패턴 인증 방식 및 생체 인증 방식 중 적어도 하나를 포함할 수 있으며, 본 발명의 범위가 상술한 사용자 인증 방식에 한정되는 것은 아니다.
서버(1010)는 사용자 인증에 기초한 암호 키 제공 방법을 제공하기 위해, 암호 키 발급 요청 수신부(1012), 암호 키 생성부(1014) 및 암호 키 전송부(1016)를 포함한다.
암호 키 발급 요청 수신부(1012)는 사용자 단말(110)로부터 사용자 인증 수단의 수행 결과 값에 대응되는 사용자 단말 시드 값을 포함하는 사용자 암호 키 발급 요청을 수신한다.
암호 키 생성부(1014)는 사용자 단말 시드 값과 서버 시드 값에 기초하여 사용자 암호 키를 생성한다.
암호 키 전송부(1016)는 사용자 암호 키를 사용자 단말(110)에 전송한다.
도 11은 본 발명의 일 실시예에 따른 사용자 인증에 기초한 암호 키 제공 방법을 나타낸 동작 흐름도이다.
도 11을 참조하면, 본 발명의 일 실시예에 따른 사용자 인증에 기초한 암호 키 제공 방법은 서버가, 사용자 단말로부터 사용자 단말에 대응되는 사용자 단말 식별정보 및 사용자 단말에서 지원하는 복수의 사용자 인증 수단들 중 어느 하나인 제1 사용자 인증 수단의 수행 결과 값에 대응되는 제1 사용자 단말 시드(seed) 값을 포함하는 사용자 암호 키 발급 요청을 수신한다(S1110).
다음으로, 서버가, 사용자 단말 식별정보, 제1 사용자 단말 시드 값 및 미리 생성된 서버 시드 값에 기초하여 제1 사용자 암호 키를 생성한다(S1120).
단계(S1120)에서 서버는 사용자 암호 키 발급 요청에 대응하여, 사용자 단말의 요청 횟수를 산출할 수 있다.
단계(S1120)에서 서버는 사용자 단말의 요청 횟수가 미리 설정된 요청 횟수 한도 내인 경우, 제1 사용자 암호 키를 생성할 수 있다.
선택적 실시예로서, 사용자 암호 키 발급 요청은 복수의 사용자 인증 수단들에 대응되는 사용자 인증 수단 식별정보들 중 어느 하나를 더 포함하고, 단계(S1120)에서 서버는 사용자 인증 수단 식별정보에 기초하여, 복수의 사용자 인증 수단들 각각에 대해 개별적으로 요청 횟수를 산출할 수 있다.
여기서, 요청 횟수 한도는 복수의 사용자 인증 수단들 각각에 대해 개별적으로 설정될 수 있다.
예컨대, 요청 횟수 한도는 복수의 사용자 인증 수단들 각각에 대해 미리 설정된 인증 난이도에 기초하여, 제1 인증 난이도로 설정된 제1 사용자 인증 수단에 대응되는 제1 요청 횟수 한도가, 제1 인증 난이도보다 낮은 제2 인증 난이도로 설정된 제2 사용자 인증 수단에 대응되는 제2 요청 횟수 한도보다 높게 설정되는 것일 수 있다.
다음으로, 서버가, 제1 사용자 암호 키를 사용자 단말에 전송한다(S1130).
여기서, 서버 및 사용자 단말 간에는 서버로부터 생성된 세션 키를 이용한 보안 구간이 형성되고, 서버는 보안 구간을 통해 제1 사용자 암호 키를 사용자 단말에 전송할 수 있다.
이에 따라, 사용자 단말에 의해, 사용자 단말에서 생성된 사용자 인증서에 대응되는 사용자 개인 키가 제1 사용자 암호 키로 암호화되어 저장될 수 있다.
단계(S1120)에서 서버는 제1 사용자 인증 수단에 대응되는 요청 횟수가 제1 사용자 인증 수단에 대응되는 요청 횟수 한도 내인 경우, 제1 사용자 암호 키를 생성할 수 있다.
비록 도 11에는 도시되지 아니하였으나, 본 발명의 일 실시예에 따른 사용자 인증에 기초한 암호 키 제공 방법은 사용자 단말의 요청에 따라 사용자 인증 수단을 교체하기 위해 아래 과정을 더 수행할 수 있다.
먼저 서버는, 사용자 단말로부터 사용자 단말 식별정보, 제1 사용자 단말 시드 값 및 복수의 사용자 인증 수단들 중 제1 사용자 인증 수단과 서로 다른 하나인 제2 사용자 인증 수단의 수행 결과 값에 대응되는 제2 사용자 단말 시드 값을 포함하는 사용자 암호 키 교체 요청을 수신할 수 있다.
또한 서버는, 사용자 단말 식별정보, 제1 사용자 단말 시드 값 및 서버 시드 값에 기초하여 제1 사용자 암호 키를 생성하고, 사용자 단말 식별정보, 제2 사용자 단말 시드 값 및 서버 시드 값에 기초하여 제2 사용자 암호 키를 생성할 수 있다.
또한 서버는, 제1 사용자 암호 키 및 제2 사용자 암호 키를 사용자 단말에 전송할 수 있다.
이에 따라, 사용자 단말에 의해, 사용자 개인 키가 제1 사용자 암호 키로 복호화된 후, 제2 사용자 암호 키로 암호화되어 저장될 수 있다.
선택적 실시예로서, 사용자 암호 키 교체 요청은 블록체인(blockchain) 상에서 사용자 인증서가 등록되는 위치를 나타내는 사용자 인증서 주소를 더 포함할 수 있다.
이 경우, 서버는 사용자 인증서 주소에 대응되는 사용자 UTXO(Unspent Transaction Output)의 수에 기초하여 사용자 인증서의 유효성 검증을 수행하고, 유효성 판단 결과, 사용자 인증서가 유효한 경우에 제2 사용자 암호 키를 생성할 수 있다.
여기서 사용자 UTXO는 사용자 인증서를 블록체인 상에 등록하기 위한 트랜잭션(transaction) 스크립트(script)에 대응하여 생성된 제1 사용자 UTXO, 및 사용자 인증서를 블록체인 상에서 폐지된 것으로 상태 전환하기 위한 트랜잭션 스크립트에 대응하여 생성된 제2 사용자 UTXO 중 어느 하나이고, 서버는 사용자 인증서 주소에 대응되는 사용자 UTXO의 수가 1인 경우, 사용자 인증서가 유효한 것으로 판단하고, 사용자 인증서 주소에 대응되는 사용자 UTXO의 수가 0 또는 2인 경우, 사용자 인증서가 유효하지 않은 것으로 판단할 수 있다.
도 12는 본 발명에 따른 사용자 인증 수단을 이용한 사용자 개인 키 암호화 방법의 일 예를 나타낸 동작 흐름도이다.
도 12를 참조하면, 먼저 사용자 단말(110)이 사용자 공개 키 및 사용자 공개 키와 쌍을 이루는 사용자 개인 키를 생성한다(S1201).
다음으로, 사용자 단말(110)이 복수의 사용자 인증 수단들 중 어느 하나에 따라 사용자 인증을 수행하고(S1202), 사용자 인증 수행 결과 값에 대응되는 사용자 단말 시드 값을 생성하고(S1203), 사용자 단말 시드 값을 서버(1010)에 전송하여 사용자 암호 키 발급을 요청한다(S1210).
단계(S1203)에서 사용자 단말(110)은 사용자가 사용자 인증을 수행하기 위해 입력한 고유 값으로부터 사용자 단말 시드 값을 생성할 수 있다. 예컨대, 단계(S1203)에서 사용자 단말(110)은 사용자가 사용자 인증을 수행하기 위해 입력한 고유 값에 해시(hash) 함수를 적용하여 사용자 단말 시드 값을 생성할 수 있다.
한편, 서버(1010)는 단계(S1210) 전에 서버 시드 값을 생성하고, 서버 시드 값에 대해서 암호화를 수행하여 서버(1010)의 저장소에 저장한다(S1203).
여기서, 서버 시드 값에 대해서 화이트박스(whitebox) 암호화가 수행될 수 있으며, 서버 시드 값에 수행되는 암호화 방법이 이에 제한되는 것은 아니다.
서버(1010)는 암호화된 서버 시드 값을 복호화하고, 사용자 단말 시드 값과 서버 시드 값을 함께 이용하여 사용자 암호 키를 생성한다(S1220).
서버(1010)가 사용자 단말(110)에 사용자 암호 키를 전송하면(S1230), 사용자 단말(110)이 사용자 개인 키를 사용자 암호 키로 암호화하여 사용자 단말(110)의 저장소에 저장한다(S1240).
선택적 실시예로서, 사용자 단말(110)에서 사용자 개인 키를 이용하여 서명을 수행하려는 경우, 사용자 개인 키를 암호화 저장할 때 사용한 사용자 인증 수단과 동일한 인증 수단을 통해 사용자 인증을 수행하여 서버(1010)에 사용자 암호 키 발급을 요청하면, 서버(1010)가 사용자 암호 키를 재생성하여 사용자 단말(110)에 전송해주고, 사용자 단말(110)이 사용자 암호 키를 이용하여 사용자 개인 키를 복호화하여 서명을 수행할 수 있다.
선택적 실시예로서, 사용자 암호 키 발급 요청의 요청 횟수 한도는 사용자가 요청할 수 있는 서비스들 각각에 대해 개별적으로 설정될 수 있다.
도 13은 본 발명에 따른 사용자 인증 수단의 교체 방법의 일 예를 나타낸 동작 흐름도이다.
도 13을 참조하면, 먼저 사용자 단말(110)이 기존의 제1 사용자 인증 수단으로 사용자 인증을 수행하고(S1301), 새롭게 사용할 제2 사용자 인증 수단으로 사용자 인증을 수행하여(S1302), 제1 사용자 인증 수단의 수행 결과 값에 대응되는 제1 사용자 단말 시드 값과 제2 사용자 인증 수단의 수행 결과 값에 대응되는 제2 사용자 단말 시드 값을 생성하고(S1303), 제1 사용자 단말 시드 값과 제2 사용자 단말 시드 값을 서버(1010)에 전송하여 사용자 암호 키 교체 요청을 요청한다(S1310).
서버(1010)는 암호화된 서버 시드 값을 복호화하고, 제1 사용자 단말 시드 값과 서버 시드 값을 이용하여 제1 사용자 암호 키를 생성하고, 제2 사용자 단말 시드 값과 서버 시드 값을 이용하여 제2 사용자 암호 키를 생성한다(S1320).
서버(1010)가 사용자 단말(110)에 제1 사용자 암호 키 및 제2 사용자 암호 키를 전송하면(S1330), 사용자 단말(110)이 사용자 개인 키를 제1 사용자 암호 키로 복호화하고(S1340), 다시 사용자 개인 키를 제2 사용자 암호 키로 암호화하여 사용자 단말(110)의 저장소에 저장한다(S1341).
선택적 실시예로서, 도 12의 단계들이 수행되어 사용자 암호 키가 최초로 발급된 경우, 해당 사용자 암호 키 발급을 위해 사용된 사용자 인증 수단은, 인증 수단 추가 방법을 수행하기 위한 기본 인증 수단으로서 저장될 수 있다. 여기서, 인증 수단 추가 방법은 상술한 도 13의 단계들을 동일하게 수행하면서, 기본 인증 수단을 제1 사용자 인증 수단으로 이용함으로써 구현될 수 있다.
도 14는 본 발명의 일 실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
본 발명의 인증관리서버(120), 제1 인증관리서버(610), 제2 인증관리서버(620) 및 서버(1010)는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1100)에서 구현될 수 있다.
도 14를 참조하면, 컴퓨터 시스템(1100)은 버스(1120)를 통하여 서로 통신하는 하나 이상의 프로세서(1110), 메모리(1130), 사용자 인터페이스 입력 장치(1140), 사용자 인터페이스 출력 장치(1150) 및 스토리지(1160)를 포함할 수 있다. 또한, 컴퓨터 시스템(1100)은 네트워크(1180)에 연결되는 네트워크 인터페이스(1170)를 더 포함할 수 있다. 프로세서(1110)는 중앙 처리 장치 또는 메모리(1130)나 스토리지(1160)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1130) 및 스토리지(1160)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1131)이나 RAM(1132)을 포함할 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.
110: 사용자 단말 120: 인증관리서버
122: 인증서 등록 요청 수신부 124: 사용자 인증서 주소 생성부
125: 서비스 제공 서버 126: 트랜잭션 스크립트 전송부
128: 요청 결과 전송부 130: 블록체인 노드
610: 제1 인증관리서버 620: 제2 인증관리서버
622: 인증기관 등록 요청 수신부
624: 인증기관 등록 수행부
625: 제2 인증기관 626: 요청 결과 전송부
1010: 서버 1012: 암호 키 발급 요청 수신부
1014: 암호 키 생성부 1016: 암호 키 전송부
1100: 컴퓨터 시스템 1110: 프로세서
1120: 버스 1130: 메모리
1131: 롬 1132: 램
1140: 사용자 인터페이스 입력 장치
1150: 사용자 인터페이스 출력 장치
1160: 스토리지 1170: 네트워크 인터페이스

Claims (15)

  1. 사용자 단말로부터 상기 사용자 단말에서 생성된 사용자 인증서를 포함하는 인증서 등록 요청을 수신하는 단계;
    상기 사용자 인증서를 이용하여, 블록체인(blockchain) 상에서 상기 사용자 인증서가 등록되는 위치를 나타내는 사용자 인증서 주소를 생성하는 단계;
    상기 사용자 인증서 및 상기 사용자 인증서 주소를 이용하여, 사용자 UTXO(Unspent Transaction Output)를 생성하는 인증서 등록 트랜잭션 스크립트(transaction script)를 생성하고, 상기 인증서 등록 트랜잭션 스크립트를 블록체인 노드(node)에 전송하는 단계; 및
    상기 블록체인 노드에 의한 상기 인증서 등록 트랜잭션 스크립트의 실행 결과를 수신하고, 상기 인증서 등록 트랜잭션 스크립트의 실행 결과에 기초하여 인증서 등록 요청 결과를 생성하고, 상기 인증서 등록 요청 결과를 상기 사용자 단말에 전송하는 단계;
    를 포함하는, 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법.
  2. 청구항 1에 있어서,
    상기 사용자 인증서 주소를 생성하는 단계는
    상기 사용자 인증서에 포함된 사용자 공개 키 및 미리 생성된 서버 공개 키를 이용하여 다중서명 주소를 생성하는 단계; 및
    상기 다중서명 주소를 포함하는 사용자 인증서 주소를 생성하는 단계;를 포함하고,
    상기 다중서명 주소 및 상기 사용자 인증서 주소는
    상기 사용자 공개 키에 대응되는 사용자 개인 키를 이용하여 생성된 사용자 서명을 이용하여 서명 검증이 가능하고, 상기 서버 공개 키에 대응되는 서버 개인 키를 이용하여 생성된 서버 서명에 의해 서명 검증이 가능한 것인, 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법.
  3. 청구항 2에 있어서,
    상기 인증서 등록 트랜잭션 스크립트는
    미리 생성된 서버 UTXO에 대응되는 상기 서버 서명을 송신자 정보로 포함하고, 상기 다중서명 주소를 수신자 정보로 포함하고,
    상기 블록체인 노드에 의한 상기 인증서 등록 트랜잭션 스크립트의 실행에 따라 상기 서버 UTXO가 STXO(Spent Transaction Output)으로 전환되면서 동시에 상기 사용자 UTXO가 생성되는 것인, 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법.
  4. 청구항 3에 있어서,
    상기 인증서 등록 요청은
    사용자에 대응되는 사용자 식별정보 및 상기 사용자 단말에 대응되는 사용자 단말 식별정보를 더 포함하고,
    상기 인증서 등록 트랜잭션 스크립트는
    상기 사용자 인증서 주소, 상기 사용자 식별정보 및 상기 사용자 단말 식별정보를 인증서 등록 스마트 컨트랙트(smart contract) 함수의 호출 파라미터(parameter)로 더 포함하고,
    상기 블록체인 노드에 의한 상기 인증서 등록 트랜잭션 스크립트의 실행에 따라 상기 인증서 등록 스마트 컨트랙트 함수가 호출되어, 상기 사용자 인증서 주소, 상기 사용자 식별정보 및 상기 사용자 단말 식별정보가 매핑되어 인증서 매핑 정보 테이블에 추가되는 것인, 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법.
  5. 청구항 4에 있어서,
    상기 인증서 매핑 정보 테이블은
    상기 사용자 인증서에 대한 데이터 무결성을 검증하기 위해 사용자 인증서 주소 필드, 사용자 식별정보 필드 및 사용자 단말 식별정보 필드 각각에 대해 고유 인덱스(index)가 작성되는 것인, 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법.
  6. 청구항 5에 있어서,
    상기 인증서 등록 요청 결과는
    상기 사용자 인증서 주소를 포함하고,
    상기 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법은
    상기 사용자 단말로부터 검증 대상 사용자 인증서 주소, 검증 대상 사용자 인증서 및 검증 대상 사용자 단말 식별정보를 포함하는 인증서 폐지 요청을 수신하는 단계;
    상기 검증 대상 사용자 인증서에 포함된 사용자 공개 키 및 상기 서버 공개 키를 이용하여 검증 대상 다중서명 주소를 생성하고, 상기 검증 대상 사용자 인증서에 포함된 다중서명 주소와의 동일 여부를 판단하여 다중서명 주소 검증을 수행하는 단계;
    상기 검증 대상 사용자 인증서 주소에 대해, 상기 인증서 매핑 정보 테이블에 저장된 상기 검증 대상 사용자 단말 식별정보에 대응되는 사용자 인증서 주소와의 동일 여부를 판단하여 사용자 단말 검증을 수행하는 단계;
    상기 다중서명 주소 검증 및 사용자 단말 검증이 완료된 경우, 상기 서버 서명에 의해 서명 검증이 가능한 스크립트를 수신자 정보로 포함하는 미서명 인증서 폐지 트랜잭션 스크립트를 생성하여 상기 사용자 단말에 전송하는 단계; 및
    상기 사용자 단말에 의해 상기 미서명 인증서 폐지 트랜잭션 스크립트의 송신자 정보에 상기 사용자 서명이 추가된 인증서 폐지 트랜잭션 스크립트를 수신하여 상기 블록체인 노드에 전송하는 단계; 및
    상기 블록체인 노드에 의한 상기 인증서 페지 트랜잭션 스크립트의 실행 결과를 수신하고, 상기 인증서 폐지 트랜잭션 스크립트의 실행 결과에 기초하여 인증서 폐지 요청 결과를 생성하고, 상기 인증서 폐지 요청 결과를 상기 사용자 단말에 전송하는 단계;
    를 더 포함하는 것인, 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법.
  7. 청구항 6에 있어서,
    상기 미서명 인증서 폐지 트랜잭션 스크립트를 생성하기 전에, 상기 검증 대상 사용자 인증서 주소에 대응되는 사용자 UTXO의 수가 1인지 여부에 기초하여 상기 검증 대상 사용자 인증서의 유효성 검증을 수행하는 단계;
    를 더 포함하는 것인, 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법.
  8. 사용자 단말로부터 상기 사용자 단말에서 생성된 사용자 인증서를 포함하는 인증서 등록 요청을 수신하는 인증서 등록 요청 수신부;
    상기 사용자 인증서를 이용하여, 블록체인(blockchain) 상에서 상기 사용자 인증서가 등록되는 위치를 나타내는 사용자 인증서 주소를 생성하는 사용자 인증서 주소 생성부;
    상기 사용자 인증서 및 상기 사용자 인증서 주소를 이용하여, 사용자 UTXO(Unspent Transaction Output)를 생성하는 인증서 등록 트랜잭션 스크립트(transaction script)를 생성하여 상기 인증서 등록 트랜잭션 스크립트를 블록체인 노드(node)에 전송하는 트랜잭션 스크립트 전송부; 및
    상기 블록체인 노드에 의한 상기 인증서 등록 트랜잭션 스크립트의 실행 결과를 수신하고, 상기 인증서 등록 트랜잭션 스크립트의 실행 결과에 기초하여 인증서 등록 요청 결과를 생성하고, 상기 인증서 등록 요청 결과를 상기 사용자 단말에 전송하는 요청 결과 전송부;
    를 포함하는, 블록체인 및 스마트 컨트랙트 기반 인증관리서버.
  9. 청구항 8에 있어서,
    상기 사용자 인증서 주소 생성부는
    상기 사용자 인증서에 포함된 사용자 공개 키 및 미리 생성된 서버 공개 키를 이용하여 다중서명 주소를 생성하고, 상기 다중서명 주소를 포함하는 사용자 인증서 주소를 생성하고,
    상기 다중서명 주소 및 상기 사용자 인증서 주소는
    상기 사용자 공개 키에 대응되는 사용자 개인 키를 이용하여 생성된 사용자 서명을 이용하여 서명 검증이 가능하고, 상기 서버 공개 키에 대응되는 서버 개인 키를 이용하여 생성된 서버 서명에 의해 서명 검증이 가능한 것인, 블록체인 및 스마트 컨트랙트 기반 인증관리서버.
  10. 청구항 9에 있어서,
    상기 인증서 등록 트랜잭션 스크립트는
    미리 생성된 서버 UTXO에 대응되는 상기 서버 서명을 송신자 정보로 포함하고, 상기 다중서명 주소를 수신자 정보로 포함하고,
    상기 블록체인 노드에 의한 상기 인증서 등록 트랜잭션 스크립트의 실행에 따라 상기 서버 UTXO가 STXO(Spent Transaction Output)으로 전환되면서 동시에 상기 사용자 UTXO가 생성되는 것인, 블록체인 및 스마트 컨트랙트 기반 인증관리서버.
  11. 청구항 10에 있어서,
    상기 인증서 등록 요청은
    사용자에 대응되는 사용자 식별정보 및 상기 사용자 단말에 대응되는 사용자 단말 식별정보를 더 포함하고,
    상기 인증서 등록 트랜잭션 스크립트는
    상기 사용자 인증서 주소, 상기 사용자 식별정보 및 상기 사용자 단말 식별정보를 인증서 등록 스마트 컨트랙트(smart contract) 함수의 호출 파라미터(parameter)로 더 포함하고,
    상기 블록체인 노드에 의한 상기 인증서 등록 트랜잭션 스크립트의 실행에 따라 상기 인증서 등록 스마트 컨트랙트 함수가 호출되어, 상기 사용자 인증서 주소, 상기 사용자 식별정보 및 상기 사용자 단말 식별정보가 매핑되어 인증서 매핑 정보 테이블에 추가되는 것인, 블록체인 및 스마트 컨트랙트 기반 인증관리서버.
  12. 청구항 11에 있어서,
    상기 인증서 매핑 정보 테이블은
    상기 사용자 인증서에 대한 데이터 무결성을 검증하기 위해 사용자 인증서 주소 필드, 사용자 식별정보 필드 및 사용자 단말 식별정보 필드 각각에 대해 고유 인덱스(index)가 작성되는 것인, 블록체인 및 스마트 컨트랙트 기반 인증관리서버.
  13. 청구항 12에 있어서,
    상기 인증서 등록 요청 결과는
    상기 사용자 인증서 주소를 포함하고,
    상기 블록체인 및 스마트 컨트랙트 기반 인증관리서버는
    상기 사용자 단말로부터 검증 대상 사용자 인증서 주소, 검증 대상 사용자 인증서 및 검증 대상 사용자 단말 식별정보를 포함하는 인증서 폐지 요청을 수신하는 인증서 폐지 요청 수신부; 및
    상기 검증 대상 사용자 인증서에 포함된 사용자 공개 키 및 상기 서버 공개 키를 이용하여 검증 대상 다중서명 주소를 생성하고, 상기 다중서명 주소와의 동일 여부를 판단하여 다중서명 주소 검증을 수행하고, 상기 검증 대상 사용자 인증서 주소에 대해, 상기 인증서 매핑 정보 테이블에 저장된 상기 검증 대상 사용자 단말 식별정보에 대응되는 사용자 인증서 주소와의 동일 여부를 판단하여 사용자 단말 검증을 수행하는 사용자 인증서 검증부;
    를 더 포함하고,
    상기 트랜잭션 스크립트 전송부는
    상기 다중서명 주소 검증 및 사용자 단말 검증이 완료된 경우, 상기 서버 서명에 의해 서명 검증이 가능한 스크립트를 수신자 정보로 포함하는 미서명 인증서 폐지 트랜잭션 스크립트를 생성하여 상기 사용자 단말에 전송하고, 상기 사용자 단말에 의해 상기 미서명 인증서 폐지 트랜잭션 스크립트의 송신자 정보에 상기 사용자 서명이 추가된 인증서 폐지 트랜잭션 스크립트를 수신하여 상기 블록체인 노드에 전송하고,
    상기 요청 결과 전송부는
    상기 블록체인 노드에 의한 상기 인증서 페지 트랜잭션 스크립트의 실행 결과를 수신하고, 상기 인증서 폐지 트랜잭션 스크립트의 실행 결과에 기초하여 인증서 폐지 요청 결과를 생성하고, 상기 인증서 폐지 요청 결과를 상기 사용자 단말에 전송하는 것인, 블록체인 및 스마트 컨트랙트 기반 인증관리서버.
  14. 청구항 13에 있어서,
    상기 사용자 인증서 검증부는
    상기 검증 대상 사용자 인증서 주소에 대응되는 사용자 UTXO의 수가 1인지 여부에 기초하여 상기 검증 대상 사용자 인증서의 유효성 검증을 더 수행하는 것인, 블록체인 및 스마트 컨트랙트 기반 인증관리서버.
  15. 인증된 사용자에게 서비스를 제공하는 적어도 하나의 서비스 제공 단말;
    사용자 인증서를 생성하여 인증서 등록을 요청하고, 등록된 사용자 인증서를 상기 서비스 제공 단말에 제공하여 상기 사용자의 인증을 수행하는 적어도 하나의 사용자 단말;
    상기 적어도 하나의 사용자 단말로부터 인증서 등록을 요청 받아, 상기 요청에 포함된 상기 사용자 인증서를 이용하여 블록체인(blockchain) 상에서 상기 사용자 인증서가 등록되는 위치를 나타내는 사용자 인증서 주소를 생성하고, 상기 사용자 인증서 및 상기 사용자 인증서 주소를 이용하여, 사용자 UTXO(Unspent Transaction Output)를 생성하는 인증서 등록 트랜잭션 스크립트(transaction script)를 생성하여 상기 인증서 등록 트랜잭션 스크립트를 블록체인(block chain) 노드(node)에 전송하고, 상기 블록체인 노드에 의한 상기 인증서 등록 트랜잭션 스크립트의 실행 결과에 기초하여 상기 등록된 사용자 인증서를 상기 적어도 하나의 사용자 단말에 전송하는 적어도 하나의 인증관리서버; 및
    상기 적어도 하나의 인증관리서버를 포함하는 전체 인증관리서버들로부터 수신된 상기 인증서 등록 트랜잭션 스크립트들을 실행하고, 상기 인증서 등록 트랜잭션 스크립트들에 포함된 스마트 컨트랙트(smart contract) 함수를 호출하고, 상기 스마트 컨트랙트 함수의 결과물로 상기 전체 인증관리서버들에 대해 통합된 인증서 상태 데이터를 제공하는 하나의 블록체인 노드;
    를 포함하는, 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 시스템.
KR1020180152901A 2018-11-30 2018-11-30 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 장치 및 방법 KR102209987B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180152901A KR102209987B1 (ko) 2018-11-30 2018-11-30 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180152901A KR102209987B1 (ko) 2018-11-30 2018-11-30 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20200065939A true KR20200065939A (ko) 2020-06-09
KR102209987B1 KR102209987B1 (ko) 2021-02-01

Family

ID=71083001

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180152901A KR102209987B1 (ko) 2018-11-30 2018-11-30 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102209987B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102333287B1 (ko) * 2020-07-30 2021-12-01 주식회사 발카리 블록체인 네트워크를 형성하고 있는 복수의 노드 장치들과 연동하여 보안 채팅 서비스를 제공하는 채팅 서비스 서버 및 그 동작 방법
WO2022076036A1 (en) * 2020-10-08 2022-04-14 Conley John P Apparatus and methods to define and use bearer tokens and certified tokens and applications using bearer tokens and certified tokens
WO2022124431A1 (ko) * 2020-12-08 2022-06-16 주식회사 앰진시큐러스 신뢰실행환경 기반의 비대면 신원 생성 및 상호 인증 자동화 방법
KR102517001B1 (ko) * 2022-08-05 2023-04-03 주식회사 더문랩스 블록체인 네트워크 상에서 전자서명 처리 시스템 및 방법
CN116074119A (zh) * 2023-03-07 2023-05-05 天津电力工程监理有限公司 基于区块链的研究型审计双向认证方法、装置及可读介质
CN117254982A (zh) * 2023-11-20 2023-12-19 深圳桑达银络科技有限公司 基于区块链的数字身份验证方法及系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102515723B1 (ko) * 2021-03-15 2023-03-30 주식회사 엠투벤처스 지연 검증을 이용하는 블록체인 기반의 서비스 시스템 및 방법과 서비스 제공 서버 및 이를 위한 컴퓨터 프로그램

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101825320B1 (ko) * 2017-01-26 2018-03-22 (주)에이티솔루션즈 인증서 관리 방법
KR101849917B1 (ko) * 2016-10-13 2018-05-31 주식회사 코인플러그 스마트 컨트랙트 기반의 인증서 서비스를 제공하는 방법 및 이를 이용한 서버
KR101849908B1 (ko) * 2016-10-13 2018-05-31 주식회사 코인플러그 m of n 다중 서명에 의한 인증서 서비스를 제공하는 방법 및 이를 이용한 서버
WO2018162789A1 (en) * 2017-03-06 2018-09-13 Nokia Technologies Oy Secure de-centralized domain name system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101849917B1 (ko) * 2016-10-13 2018-05-31 주식회사 코인플러그 스마트 컨트랙트 기반의 인증서 서비스를 제공하는 방법 및 이를 이용한 서버
KR101849908B1 (ko) * 2016-10-13 2018-05-31 주식회사 코인플러그 m of n 다중 서명에 의한 인증서 서비스를 제공하는 방법 및 이를 이용한 서버
KR101825320B1 (ko) * 2017-01-26 2018-03-22 (주)에이티솔루션즈 인증서 관리 방법
WO2018162789A1 (en) * 2017-03-06 2018-09-13 Nokia Technologies Oy Secure de-centralized domain name system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102333287B1 (ko) * 2020-07-30 2021-12-01 주식회사 발카리 블록체인 네트워크를 형성하고 있는 복수의 노드 장치들과 연동하여 보안 채팅 서비스를 제공하는 채팅 서비스 서버 및 그 동작 방법
WO2022076036A1 (en) * 2020-10-08 2022-04-14 Conley John P Apparatus and methods to define and use bearer tokens and certified tokens and applications using bearer tokens and certified tokens
WO2022124431A1 (ko) * 2020-12-08 2022-06-16 주식회사 앰진시큐러스 신뢰실행환경 기반의 비대면 신원 생성 및 상호 인증 자동화 방법
KR102517001B1 (ko) * 2022-08-05 2023-04-03 주식회사 더문랩스 블록체인 네트워크 상에서 전자서명 처리 시스템 및 방법
CN116074119A (zh) * 2023-03-07 2023-05-05 天津电力工程监理有限公司 基于区块链的研究型审计双向认证方法、装置及可读介质
CN117254982A (zh) * 2023-11-20 2023-12-19 深圳桑达银络科技有限公司 基于区块链的数字身份验证方法及系统
CN117254982B (zh) * 2023-11-20 2024-02-23 深圳桑达银络科技有限公司 基于区块链的数字身份验证方法及系统

Also Published As

Publication number Publication date
KR102209987B1 (ko) 2021-02-01

Similar Documents

Publication Publication Date Title
KR102209987B1 (ko) 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 장치 및 방법
US11038682B2 (en) Communication method, apparatus and system, electronic device, and computer readable storage medium
EP3788523B1 (en) System and method for blockchain-based cross-entity authentication
US11032086B2 (en) Certificate authority master key tracking on distributed ledger
CN108235806B (zh) 安全访问区块链的方法、装置、系统、存储介质及电子设备
CN110537346B (zh) 安全去中心化域名系统
WO2018112946A1 (zh) 注册及授权方法、装置及系统
WO2018120121A1 (zh) 区块链权限控制方法、装置及节点设备
WO2018214133A1 (zh) 基于区块链的fido认证方法、装置及系统
US10447664B2 (en) Information masking using certificate authority
CN109194465B (zh) 用于管理密钥的方法、用户设备、管理设备、存储介质
EP3073667A1 (en) Information delivery system
JP2020523813A (ja) ブロックチェーンネットワークのためのクレデンシャル生成及び分配方法
CN115176441A (zh) 基于身份的公钥生成协议
JP5380583B1 (ja) デバイス認証方法及びシステム
JP2018093434A (ja) トランザクション管理方法、トランザクション管理プログラム及びトランザクション管理装置
WO2019110018A1 (zh) 通信网络系统的消息验证方法、通信方法和通信网络系统
KR20110083886A (ko) 휴대용 단말기에서 다른 휴대용 단말기를 인증하는 장치 및 방법
CN112016923A (zh) 基于区块链的网内跨域身份管理方法、系统以及算力网络
CN114039753A (zh) 一种访问控制方法、装置、存储介质及电子设备
CN114168923B (zh) 一种基于数字证书的群ca证书生成方法和系统
CN117335958A (zh) 一种面向联盟链跨链的身份认证方法
CN112364335B (zh) 标识身份鉴别方法、装置及电子设备和存储介质
CN111709053B (zh) 基于松散耦合交易网络的作业方法及作业装置
KR102209988B1 (ko) 복수 인증기관에 의한 인증서 상태 관리 장치 및 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant