KR20200065940A - Apparatus and method for certificate status management by multiple certificate authorities - Google Patents

Apparatus and method for certificate status management by multiple certificate authorities Download PDF

Info

Publication number
KR20200065940A
KR20200065940A KR1020180152902A KR20180152902A KR20200065940A KR 20200065940 A KR20200065940 A KR 20200065940A KR 1020180152902 A KR1020180152902 A KR 1020180152902A KR 20180152902 A KR20180152902 A KR 20180152902A KR 20200065940 A KR20200065940 A KR 20200065940A
Authority
KR
South Korea
Prior art keywords
user
certificate
management server
certification authority
authentication management
Prior art date
Application number
KR1020180152902A
Other languages
Korean (ko)
Other versions
KR102209988B1 (en
Inventor
김응수
강동성
김재근
임영빈
김성환
황세영
최상욱
유정석
김지연
강규원
김수범
권연웅
김용석
류지민
이경찬
박진원
황민형
이응호
민경민
이재성
송위창
정시준
김태훈
김양호
송동종
이승희
박준호
이경수
송규성
강석준
박현철
김대현
서준성
황일석
정인평
박성근
조정제
조현우
서성문
최용욱
박현규
기동근
배승민
최종수
현승훈
김미덕
김보화
이영선
이유석
김민호
배정호
윤준혁
이태근
이길민
이영석
윤태희
Original Assignee
사단법인 전국은행연합회
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 사단법인 전국은행연합회 filed Critical 사단법인 전국은행연합회
Priority to KR1020180152902A priority Critical patent/KR102209988B1/en
Publication of KR20200065940A publication Critical patent/KR20200065940A/en
Application granted granted Critical
Publication of KR102209988B1 publication Critical patent/KR102209988B1/en

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/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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • 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

Disclosed are an apparatus and a method for managing a certificate state by multiple certification authorities. According to an embodiment of the present invention, a method for managing a certificate state by multiple certification authorities receives a certification authority registration request for a new certification authority different from the certification authority that initially registered a user certificate from a user terminal, performs verification on the user certificate using a user certificate address, transmits information for registering a certification authority to the new certification authority, receives a certification authority registration result from the new certification authority, and transmits the certification authority registration result to the user terminal.

Description

복수 인증기관에 의한 인증서 상태 관리 장치 및 방법 {APPARATUS AND METHOD FOR CERTIFICATE STATUS MANAGEMENT BY MULTIPLE CERTIFICATE AUTHORITIES}Device and method for managing certificate status by multiple certification authorities {APPARATUS AND METHOD FOR CERTIFICATE STATUS MANAGEMENT BY MULTIPLE CERTIFICATE AUTHORITIES}

본 발명은 복수 인증기관에 의한 인증서 상태 관리 장치 및 방법에 관한 것으로, 보다 상세하게는 복수 인증기관이 하나의 블록체인에 기반하여 공동으로 인증서의 등록, 검증 및 폐기 관리를 하는 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for managing certificate status by multiple certification authorities, and more particularly, to an apparatus and method for multiple certificate authorities to jointly register, verify, and revoke certificates based on one blockchain. will be.

공개 키 기반구조(Public Key Infrastructure; PKI)는 공개 키 암호 방식을 바탕으로 디지털 인증서를 작성, 관리, 배포, 사용, 저장 및 해지하고 공개 키 암호화를 관리하는 데 필요한 일련의 역할, 정책 및 절차를 지칭한다.Public Key Infrastructure (PKI) is a set of roles, policies and procedures required to create, manage, distribute, use, store and revoke digital certificates based on public key cryptography and manage public key cryptography. Refers to.

블록체인(blockchain)은 관리 대상 데이터를 블록(block)이라고 하는 소규모 데이터들을 P2P(Peer to Peer) 방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장환경에 저장함으로써, 데이터를 임의로 수정하기 어렵게 하고, 데이터의 이력을 확인하기 용이하게 하는 분산 컴퓨팅 기술 기반의 데이터 위변조 방지 기술을 지칭한다.Blockchain (blockchain) to modify the data arbitrarily, by storing the managed data in a chain-based distributed data storage environment in the form of a chain based on peer-to-peer (P2P) method to store small data called blocks It refers to a technology for preventing data forgery based on distributed computing technology that makes it difficult and easy to check the history of data.

스마트 컨트랙트(smart contract)는 실행 가능한 바이트 코드(byte code)로 컴파일(compile)되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 코드이고, 실행 시에 특정 조건이 만족되면 미리 정해진 절차를 수행하도록 구성되며, 실행의 결과인 실행 결과값의 무결성은 적어도 하나의 컴퓨팅 장치로부터 산출된 실행 결과 값에 대한 합의(consensus)에 의하여 검증되는 것을 특징으로 하는 개념을 지칭한다.A smart contract is code that is compiled into executable byte code and can be executed on at least one computing device, and is configured to perform a predetermined procedure when certain conditions are satisfied at execution time, The integrity of an execution result value as a result of execution refers to a concept characterized by being verified by consensus on an execution result value calculated from at least one computing device.

이와 관련하여, 한국등록특허 제10-1637854호는 "블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법 및 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법"에 관하여 개시하고 있으나, 공인인증서 발급에 있어 별도의 정보유출차단 단말기가 요구되는 점에서 한계가 있다.In this regard, Korean Registered Patent No. 10-1637854 refers to a "blockchain-based accredited certificate issuance system, a blockchain-based accredited certificate issuance method, and a blockchain-based accredited certificate authentication system. Although it is disclosed in terms of the method for authenticating a certified certificate based on the used blockchain, there is a limitation in that a separate information leakage blocking terminal is required for issuing a certified certificate.

본 발명은 사용자 단말에서 생성된 공개 키를 블록체인에 등록하여 사용자 인증서로 활용할 수 있는 인증서 서비스를 제공하는 것을 목적으로 한다.An object of the present invention is to provide a certificate service that can be used as a user certificate by registering a public key generated in a user terminal to a blockchain.

또한, 본 발명은 인증서의 유효 조건을 스마트 컨트랙트에 의해 검사 함으로써 유효성 검사의 무결성을 보장하는 인증서 서비스를 제공하는 것을 목적으로 한다.In addition, it is an object of the present invention to provide a certificate service that ensures the integrity of validity checking by validating the valid conditions of the certificate by a smart contract.

또한, 본 발명은 인증서 관련 정보를 기존에 발급한 기관 외에 다른 기관에 대해서도 등록하는 방법을 제공하여 하나의 인증서 발급으로 블록체인을 이용하는 여러 기관에서 공동으로 사용 가능케 하는 인증서 서비스를 제공하는 것을 목적으로 한다.In addition, the present invention aims to provide a certificate service that can be jointly used by various institutions using a blockchain by issuing a single certificate by providing a method for registering other information in addition to the authority that has issued the certificate-related information. do.

또한, 본 발명은 사용자 단말에서 생성된 시드와 서버에 저장된 키를 함께 이용하여 생성된 암호화 키로 사용자 단말에서 생성된 개인 키를 암호화 저장함으로써 보안성이 향상된 인증서 서비스를 제공하는 것을 목적으로 한다.In addition, an object of the present invention is to provide a certificate service with improved security by encrypting and storing a private key generated in a user terminal with an encryption key generated by using a seed generated in a user terminal together with a key stored in a server.

상기한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 복수 인증기관에 의한 인증서 상태 관리 방법은 사용자 단말로부터 사용자 단말에서 생성되어 제1 인증기관에 대해 최초 등록된 사용자 인증서의 블록체인(blockchain) 상의 등록 위치를 나타내는 사용자 인증서 주소를 포함하는, 제1 인증기관과 서로 다른 제2 인증기관에 대한 사용자 인증서의 인증기관 등록 요청을 수신하는 단계; 사용자 인증서 주소를 기초로 블록체인 노드(node)로부터 사용자 인증서 주소에 매핑(mapping)된 사용자 인증서에 관한 정보를 획득하여, 사용자 인증서에 대한 검증을 수행하고, 사용자 인증서 주소 및 사용자 인증서에 대응되는 사용자 식별정보를 제2 인증기관에 전송하는 단계; 및 제2 인증기관으로부터 사용자 인증서의 인증기관 등록 결과를 수신하고, 인증기관 등록 결과를 사용자 단말에 전송하는 단계;를 포함한다.A method for managing the status of a certificate by a plurality of certification authorities according to an embodiment of the present invention for achieving the above object is a blockchain of a user certificate generated from a user terminal from a user terminal and registered for the first certification authority for the first time. Receiving a certification authority registration request of a user certificate for a second certification authority different from the first certification authority, including a user certificate address indicating a registration location of the user; Based on the user certificate address, the user obtains information about the user certificate mapped to the user certificate address from the blockchain node, performs verification on the user certificate, and the user corresponding to the user certificate address and user certificate Transmitting identification information to a second certification authority; And receiving the certification authority registration result of the user certificate from the second certification authority, and transmitting the certification authority registration result to the user terminal.

이 때, 사용자 인증서 주소 및 사용자 식별정보를 제2 인증기관에 전송하기 전에, 사용자 인증서 주소 및 제2 인증기관에 대응되는 제2 인증기관 식별정보를 이용하여, 사용자 인증서의 미리 등록된 인증서 매핑 정보 테이블을 갱신하기 위한 인증기관 등록 트랜잭션(transaction) 스크립트(script)를 생성하고, 인증기관 등록 트랜잭션 스크립트를 블록체인 노드에 전송하는 단계;를 더 포함하고, 블록체인 노드에 의한 트랜잭션 스크립트의 실행에 따라 인증기관 등록 스마트 컨트랙트(smart contract) 함수가 호출되어, 사용자 인증서 주소에 제2 인증기관 식별정보가 추가 매핑되도록 인증서 매핑 정보 테이블이 갱신될 수 있다.At this time, before transmitting the user certificate address and user identification information to the second certification authority, the user certificate address and the second certification authority identification information corresponding to the second certification authority are used to pre-register the certificate mapping information of the user certificate. Further comprising the step of generating a certification authority registration transaction script for updating the table, and transmitting the certification authority registration transaction script to the blockchain node, according to execution of the transaction script by the blockchain node. The certification authority registration smart contract function is called, and the certificate mapping information table may be updated so that the second certification authority identification information is additionally mapped to the user certificate address.

이 때, 인증서 매핑 정보 테이블은 사용자 인증서 주소 필드, 사용자 식별정보 필드, 사용자 단말 식별정보 및 인증기관 식별정보 필드를 포함하고, 사용자 인증서에 대한 데이터 무결성을 검증하기 위해 사용자 인증서 주소 필드, 사용자 식별정보 필드 및 사용자 단말 식별정보 필드 각각에 대해 고유 인덱스(index)가 작성될 수 있다.At this time, the certificate mapping information table includes a user certificate address field, a user identification information field, a user terminal identification information and a certification authority identification information field, and a user certificate address field and user identification information to verify data integrity for the user certificate. A unique index may be created for each of the field and the user terminal identification information field.

이 때, 인증기관 등록 트랜잭션 스크립트를 블록체인 노드에 전송하기 전에, 사용자 인증서 주소에 대응되는 사용자 UTXO(Unspent Transaction Output)의 수가 1인지 여부에 기초하여 사용자 인증서의 유효성 판단을 수행하는 단계;를 더 포함할 수 있다.At this time, before transmitting the certification authority registration transaction script to the blockchain node, performing a validity determination of the user certificate based on whether the number of user unspent transaction outputs (UTXO) corresponding to the user certificate address is 1; It can contain.

이 때, 제2 인증기관으로부터 사용자 인증서 주소를 포함하는, 사용자 인증서의 인증서 폐지 요청을 수신하는 단계; 및 사용자 인증서 주소를 이용하여, 사용자 인증서가 최초 등록 시 생성된 제1 사용자 UTXO와 서로 다른 제2 사용자 UTXO를 생성하는 제1 인증서 폐지 트랜잭션 스크립트를 생성하여 제1 인증서 폐지 트랜잭션 스크립트를 블록체인 노드에 전송하는 단계;를 더 포함하고, 블록체인 노드에 의한 제1 인증서 폐지 트랜잭션 스크립트의 실행에 따라 제2 사용자 UTXO가 생성되고, 인증서 폐지 요청 스마트 컨트랙트 함수가 호출되어, 사용자 인증서가 최초 등록된 제1 인증기관에 대응되는 제1 인증관리서버에 폐지 요청 이벤트가 전송되고, 제1 인증관리서버에 의해 생성된 제2 인증서 폐지 트랜잭션 스크립트가 블록체인 노드에 전송되고, 블록체인 노드에 의한 제2 인증서 폐지 트랜잭션 스크립트의 실행에 따라 제1 사용자 UTXO 및 제2 사용자 UTXO가 모두 STXO(Spent Transaction Output)로 전환되면서 사용자 인증서가 폐지될 수 있다.At this time, receiving a certificate revocation request of the user certificate, including the user certificate address from the second certification authority; And a first certificate revocation transaction script that generates a second user UTXO that is different from the first user UTXO generated when the user certificate is initially registered by using the user certificate address, and sends the first certificate revocation transaction script to the blockchain node. Further comprising; the first certificate revocation by the blockchain node, the second user UTXO is generated according to the execution of the transaction script, the certificate revocation request smart contract function is called, the first user certificate is registered first The revocation request event is sent to the first authentication management server corresponding to the certification authority, the second certificate revocation transaction script generated by the first authentication management server is sent to the blockchain node, and the second certificate is revocation by the blockchain node Depending on the execution of the transaction script, both the first user UTXO and the second user UTXO are converted to Spent Transaction Output (STXO), and the user certificate may be revoked.

이 때, 제1 사용자 UTXO는 사용자 인증서에 포함된 사용자 공개 키 및 제1 인증관리서버에서 미리 생성된 제1 인증관리서버 공개 키를 이용하여 생성된 다중서명 주소를 수신자 정보로 포함하는 인증서 등록 트랜잭션 스크립트의 실행 결과로 생성될 수 있다.At this time, the first user UTXO is a certificate registration transaction that includes the user public key included in the user certificate and the multi-signature address generated using the first authentication management server public key previously generated in the first authentication management server as recipient information. It can be created as a result of executing the script.

이 때, 제1 인증서 폐지 트랜잭션 스크립트는 미리 생성된 제2 인증관리서버 UTXO에 대응되는 제2 인증관리서버 서명을 송신자 정보로 포함하고, 다중서명 주소를 수신자 정보로 포함하고, 블록체인 노드에 의한 제1 인증서 폐지 트랜잭션 스크립트의 실행에 따라 제2 인증관리서버 UTXO가 STXO로 전환되면서 동시에 제2 사용자 UTXO가 생성되고, 제2 인증서 폐지 트랜잭션 스크립트는 다중서명 주소에 대해 서명 검증이 가능한 제1 인증관리서버 서명을 송신자 정보로 포함하고, 제1 인증관리서버 공개 키 및 제2 인증관리서버 공개 키 각각을 수신자 정보로 포함하고, 블록체인 노드에 의한 제2 인증서 폐지 트랜잭션 스크립트의 실행에 따라 제1 사용자 UTXO가 STXO로 전환되면서 동시에 제1 인증관리서버에 대응되는 새로운 제1 인증관리서버 UTXO가 생성되고, 제2 사용자 UTXO가 STXO로 전환되면서 동시에 제2 인증관리서버에 대응되는 새로운 제2 인증관리서버 UTXO가 생성될 수 있다.At this time, the first certificate revocation transaction script includes the second authentication management server signature corresponding to the pre-generated second authentication management server UTXO as the sender information, the multi-signature address as the receiver information, and is executed by the blockchain node. According to the execution of the first certificate revocation transaction script, the second authentication management server UTXO is converted to STXO, and at the same time, the second user UTXO is created, and the second certificate revocation transaction script is the first authentication management that enables signature verification for multiple signature addresses. Include the server signature as sender information, include the first authentication management server public key and the second authentication management server public key as recipient information, and the first user according to the execution of the second certificate revocation transaction script by the blockchain node. As the UTXO is converted to STXO, a new first authentication management server UTXO corresponding to the first authentication management server is created, and a second user UTXO is converted to STXO and at the same time a new second authentication management server corresponding to the second authentication management server. UTXO can be generated.

또한, 상기한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 복수 인증기관에 의한 인증서 상태 관리를 제공하는 인증관리서버는 사용자 단말로부터 사용자 단말에서 생성되어 제1 인증기관에 대해 최초 등록된 사용자 인증서의 블록체인(blockchain) 상의 등록 위치를 나타내는 사용자 인증서 주소를 포함하는, 제1 인증기관과 서로 다른 제2 인증기관에 대한 사용자 인증서의 인증기관 등록 요청을 수신하는 인증기관 등록 요청 수신부; 사용자 인증서 주소를 기초로 블록체인 노드(node)로부터 사용자 인증서 주소에 매핑(mapping)된 매핑(mapping)된 사용자 인증서에 관한 정보를 획득하여, 사용자 인증서에 대한 검증을 수행하고, 사용자 인증서 주소 및 사용자 인증서에 대응되는 사용자 식별정보를 제2 인증기관에 전송하는 인증기관 등록 수행부; 및 제2 인증기관으로부터 사용자 인증서의 인증기관 등록 결과를 수신하고, 인증기관 등록 결과를 사용자 단말에 전송하는 요청 결과 전송부;를 포함한다.In addition, an authentication management server that provides certificate status management by a plurality of certification authorities according to an embodiment of the present invention for achieving the above object is generated in the user terminal from the user terminal, the first registered user for the first certification authority A certification authority registration request receiving unit for receiving a certification authority registration request of a user certificate for a second certification authority different from the first certification authority, including a user certificate address indicating a registration location on a blockchain of the certificate; Based on the user certificate address, information about the mapped user certificate mapped to the user certificate address is obtained from the blockchain node to perform verification on the user certificate, and the user certificate address and user A certification authority registration performing unit that transmits user identification information corresponding to the certificate to the second certification authority; And a request result transmission unit for receiving the result of registering the certification authority of the user certificate from the second certification authority and transmitting the certification authority registration result to the user terminal.

이 때, 사용자 인증서 주소 및 사용자 식별정보를 제2 인증기관에 전송하기 전에, 사용자 인증서 주소 및 제2 인증기관에 대응되는 제2 인증기관 식별정보를 이용하여, 사용자 인증서의 미리 등록된 인증서 매핑 정보 테이블을 갱신하기 위한 인증기관 등록 트랜잭션(transaction) 스크립트(script)를 생성하고, 인증기관 등록 트랜잭션 스크립트를 블록체인 노드에 전송하는 트랜잭션 스크립트 전송부;를 더 포함하고, 블록체인 노드에 의한 트랜잭션 스크립트의 실행에 따라 인증기관 등록 스마트 컨트랙트(smart contract) 함수가 호출되어, 사용자 인증서 주소에 제2 인증기관 식별정보가 추가 매핑되도록 인증서 매핑 정보 테이블이 갱신될 수 있다.At this time, before transmitting the user certificate address and user identification information to the second certification authority, the user certificate address and the second certification authority identification information corresponding to the second certification authority are used to pre-register the certificate mapping information of the user certificate. The transaction script transmission unit for generating a certification authority registration transaction script for updating a table and transmitting the certification authority registration transaction script to a blockchain node further includes a transaction script by the blockchain node. According to the execution, the certification authority registration smart contract function is called, and the certificate mapping information table may be updated so that the second certification authority identification information is additionally mapped to the user certificate address.

이 때, 인증서 매핑 정보 테이블은 사용자 인증서 주소 필드, 사용자 식별정보 필드, 사용자 단말 식별정보 및 인증기관 식별정보 필드를 포함하고, 사용자 인증서에 대한 데이터 무결성을 검증하기 위해 사용자 인증서 주소 필드, 사용자 식별정보 필드 및 사용자 단말 식별정보 필드 각각에 대해 고유 인덱스(index)가 작성될 수 있다.At this time, the certificate mapping information table includes a user certificate address field, a user identification information field, a user terminal identification information and a certification authority identification information field, and a user certificate address field and user identification information to verify data integrity for the user certificate. A unique index may be created for each of the field and the user terminal identification information field.

이 때, 인증기관 등록 트랜잭션 스크립트를 블록체인 노드에 전송하기 전에, 사용자 인증서 주소에 대응되는 사용자 UTXO(Unspent Transaction Output)의 수가 1인지 여부에 기초하여 사용자 인증서의 유효성 판단을 수행하는 사용자 인증서 검증부;를 더 포함할 수 있다.At this time, before sending the certification authority registration transaction script to the blockchain node, the user certificate verification unit performs a validity determination of the user certificate based on whether the number of user unspent transaction outputs (UTXO) corresponding to the user certificate address is 1. ; May further include.

이 때, 제2 인증기관으로부터 사용자 인증서 주소를 포함하는, 사용자 인증서의 인증서 폐지 요청을 수신하는 인증서 폐지 요청 수신부;를 더 포함하고, 트랜잭션 스크립트 전송부는 사용자 인증서 주소를 이용하여, 사용자 인증서가 최초 등록 시 생성된 제1 사용자 UTXO와 서로 다른 제2 사용자 UTXO를 생성하는 제1 인증서 폐지 트랜잭션 스크립트를 생성하여 제1 인증서 폐지 트랜잭션 스크립트를 블록체인 노드에 전송하고, 블록체인 노드에 의한 제1 인증서 폐지 트랜잭션 스크립트의 실행에 따라 제2 사용자 UTXO가 생성되고, 인증서 폐지 요청 스마트 컨트랙트 함수가 호출되어, 사용자 인증서가 최초 등록된 제1 인증기관에 대응되는 제1 인증관리서버에 폐지 요청 이벤트가 전송되고, 제1 인증관리서버에 의해 생성된 제2 인증서 폐지 트랜잭션 스크립트가 블록체인 노드에 전송되고, 블록체인 노드에 의한 제2 인증서 폐지 트랜잭션 스크립트의 실행에 따라 제1 사용자 UTXO 및 제2 사용자 UTXO가 모두 STXO(Spent Transaction Output)로 전환되면서 사용자 인증서가 폐지될 수 있다.At this time, further including a certificate revocation request receiving unit for receiving a certificate revocation request of a user certificate, which includes a user certificate address from a second certification authority, and the transaction script transmission unit uses the user certificate address to initially register the user certificate. Generates a first certificate revocation transaction script that generates a second user UTXO that is different from the first user UTXO generated at the time, sends the first certificate revocation transaction script to the blockchain node, and the first certificate revocation transaction by the blockchain node According to the execution of the script, a second user UTXO is generated, a certificate revocation request smart contract function is called, and a revocation request event is transmitted to the first authentication management server corresponding to the first certification authority where the user certificate is initially registered. 1 The second certificate revocation transaction script generated by the authentication management server is transmitted to the blockchain node, and according to the execution of the second certificate revocation transaction script by the blockchain node, both the first user UTXO and the second user UTXO are STXO ( Spent Transaction Output), the user certificate may be revoked.

이 때, 제1 사용자 UTXO는 사용자 인증서에 포함된 사용자 공개 키 및 제1 인증관리서버에서 미리 생성된 제1 인증관리서버 공개 키를 이용하여 생성된 다중서명 주소를 수신자 정보로 포함하는 인증서 등록 트랜잭션 스크립트의 실행 결과로 생성될 수 있다.At this time, the first user UTXO is a certificate registration transaction that includes the user public key included in the user certificate and the multi-signature address generated using the first authentication management server public key previously generated in the first authentication management server as recipient information. It can be created as a result of executing the script.

이 때, 제1 인증서 폐지 트랜잭션 스크립트는 미리 생성된 제2 인증관리서버 UTXO에 대응되는 제2 인증관리서버 서명을 송신자 정보로 포함하고, 다중서명 주소를 수신자 정보로 포함하고, 블록체인 노드에 의한 제1 인증서 폐지 트랜잭션 스크립트의 실행에 따라 제2 인증관리서버 UTXO가 STXO로 전환되면서 동시에 제2 사용자 UTXO가 생성되고, 제2 인증서 폐지 트랜잭션 스크립트는 다중서명 주소에 대해 서명 검증이 가능한 제1 인증관리서버 서명을 송신자 정보로 포함하고, 제1 인증관리서버 공개 키 및 제2 인증관리서버 공개 키 각각을 수신자 정보로 포함하고, 블록체인 노드에 의한 제2 인증서 폐지 트랜잭션 스크립트의 실행에 따라 제1 사용자 UTXO가 STXO로 전환되면서 동시에 제1 인증관리서버에 대응되는 새로운 제1 인증관리서버 UTXO가 생성되고, 제2 사용자 UTXO가 STXO로 전환되면서 동시에 제2 인증관리서버에 대응되는 새로운 제2 인증관리서버 UTXO가 생성될 수 있다.At this time, the first certificate revocation transaction script includes the second authentication management server signature corresponding to the pre-generated second authentication management server UTXO as the sender information, the multi-signature address as the receiver information, and is executed by the blockchain node. According to the execution of the first certificate revocation transaction script, the second authentication management server UTXO is converted to STXO, and at the same time, the second user UTXO is created, and the second certificate revocation transaction script is the first authentication management that enables signature verification for multiple signature addresses. Include the server signature as sender information, include the first authentication management server public key and the second authentication management server public key as recipient information, and the first user according to the execution of the second certificate revocation transaction script by the blockchain node. As the UTXO is converted to STXO, a new first authentication management server UTXO corresponding to the first authentication management server is created, and a second user UTXO is converted to STXO and at the same time a new second authentication management server corresponding to the second authentication management server. UTXO can be generated.

또한, 상기한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 복수 인증기관에 의한 인증서 상태 관리 시스템은 인증된 사용자에게 서비스를 제공하는 적어도 하나의 인증기관; 사용자 인증서를 생성하고, 사용자 인증서를 제1 인증기관을 통해 블록체인(blockchain) 상에 최초 등록하고, 사용자 인증서를 제2 인증기관에 등록하기 위해 인증기관 등록을 요청하여 제2 인증기관에 대해 사용자의 인증을 수행하는 적어도 하나의 사용자 단말; 적어도 하나의 인증기관에 일대일 대응되고, 적어도 하나의 사용자 단말로부터 인증기관 등록을 요청 받아, 블록체인 상에서 사용자 인증서가 등록되는 위치를 나타내는 사용자 인증서 주소를 이용하여 인증서 매핑 정보 테이블을 갱신하기 위한 트랜잭션 스크립트(transaction script)를 생성하여 블록체인 노드(node)에 전송하고, 블록체인 노드로부터 사용자 인증서 주소에 매핑(mapping)된 사용자 식별정보를 획득하고, 사용자 인증서 주소 및 사용자 식별정보를 일대일 대응되는 적어도 하나의 인증기관에 전송하는 적어도 하나의 인증관리서버; 및 적어도 하나의 인증관리서버를 포함하는 전체 인증관리서버들로부터 수신된 트랜잭션 스크립트들을 실행하고, 트랜잭션 스크립트들에 포함된 스마트 컨트랙트(smart contract) 함수를 호출하고, 스마트 컨트랙트 함수의 결과물로 전체 인증관리서버들에 대해 통합된 인증서 상태 데이터를 제공하는 하나의 블록체인 노드;를 포함한다.In addition, a certificate status management system by a plurality of certification authorities according to an embodiment of the present invention for achieving the above object includes at least one certification authority that provides a service to an authenticated user; Create a user certificate, register the user certificate on the blockchain for the first time through the first certification authority, and request the certification authority registration to register the user certificate to the second certification authority. At least one user terminal for performing authentication; A transaction script for one-to-one correspondence with at least one certification authority, requesting certification authority registration from at least one user terminal, and updating a certificate mapping information table using a user certificate address indicating where a user certificate is registered on the blockchain. Creates (transaction script) and transmits it to the blockchain node, acquires user identification information mapped to the user certificate address from the blockchain node, and at least one corresponding one-to-one correspondence of the user certificate address and user identification information. At least one authentication management server to transmit to the authentication authority of the; And executing transaction scripts received from all authentication management servers including at least one authentication management server, calling a smart contract function included in the transaction scripts, and managing the entire authentication as a result of the smart contract function. It includes; one blockchain node that provides integrated certificate status data for servers.

본 발명에 따르면, 사용자 단말에서 생성된 공개 키를 블록체인에 등록하여 사용자 인증서로 활용할 수 있는 인증서 서비스를 제공할 수 있다.According to the present invention, it is possible to provide a certificate service that can be used as a user certificate by registering the public key generated in the user terminal to the blockchain.

또한, 본 발명에 따르면 인증서의 유효 조건을 스마트 컨트랙트에 의해 검사 함으로써 유효성 검사의 무결성을 보장하는 인증서 서비스를 제공할 수 있다.In addition, according to the present invention, it is possible to provide a certificate service that guarantees the integrity of validity checking by validating a valid condition of a certificate by a smart contract.

또한, 본 발명에 따르면 인증서 관련 정보를 기존에 발급한 기관 외에 다른 기관에 대해서도 등록하는 방법을 제공하여 하나의 인증서 발급으로 블록체인을 이용하는 여러 기관에서 공동으로 사용 가능케 하는 인증서 서비스를 제공할 수 있다.In addition, according to the present invention, it is possible to provide a certificate service that can be jointly used by various institutions using a blockchain by issuing a single certificate by providing a method for registering other information in addition to the authority that issued the certificate-related information. .

또한, 본 발명에 따르면 사용자 단말에서 생성된 시드와 서버에 저장된 키를 함께 이용하여 생성된 암호화 키로 사용자 단말에서 생성된 개인 키를 암호화 저장함으로써 보안성이 향상된 인증서 서비스를 제공할 수 있다.In addition, according to the present invention, it is possible to provide a certificate service with improved security by encrypting and storing the private key generated in the user terminal with the encryption key generated by using the seed generated in the user terminal together with the key stored in the server.

도 1은 본 발명의 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 시스템을 나타낸 블록도이다.
도 2는 본 발명의 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법을 나타낸 동작 흐름도이다.
도 3은 본 발명에 따른 인증서 등록 방법의 일 예를 나타낸 동작 흐름도이다.
도 4는 본 발명에 따른 인증서 폐지 방법의 일 예를 나타낸 동작 흐름도이다.
도 5는 본 발명에 따른 인증서 검증 방법의 일 예를 나타낸 동작 흐름도이다.
도 6은 본 발명의 다른 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 시스템을 나타낸 블록도이다.
도 7은 본 발명의 다른 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법을 나타낸 동작 흐름도이다.
도 8은 본 발명에 따른 인증서 등록 방법의 다른 일 예를 나타낸 동작 흐름도이다.
도 9는 본 발명에 따른 인증서 폐지 방법의 다른 일 예를 나타낸 동작 흐름도이다.
도 10은 본 발명의 일 실시예에 따른 사용자 인증에 기초한 암호 키 제공 시스템을 나타낸 블록도이다.
도 11은 본 발명의 일 실시예에 따른 사용자 인증에 기초한 암호 키 제공 방법을 나타낸 동작 흐름도이다.
도 12는 본 발명에 따른 사용자 인증 수단을 이용한 사용자 개인 키 암호화 방법의 일 예를 나타낸 동작 흐름도이다.
도 13은 본 발명에 따른 사용자 인증 수단의 교체 방법의 일 예를 나타낸 동작 흐름도이다.
도 14는 본 발명의 일 실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
1 is a block diagram showing a blockchain and smart contract-based certificate status management system according to an embodiment of the present invention.
2 is an operation flowchart showing a method of managing a certificate state based on a blockchain and a smart contract according to an embodiment of the present invention.
3 is an operation flowchart showing an example of a certificate registration method according to the present invention.
4 is an operation flowchart showing an example of a certificate revocation method according to the present invention.
5 is an operation flowchart showing an example of a method for verifying a certificate according to the present invention.
6 is a block diagram showing a blockchain and smart contract-based certificate status management system according to another embodiment of the present invention.
7 is an operation flowchart showing a method for managing a certificate state based on a blockchain and a smart contract according to another embodiment of the present invention.
8 is an operation flowchart showing another example of a method for registering a certificate according to the present invention.
9 is an operation flowchart showing another example of a certificate revocation method according to the present invention.
10 is a block diagram showing a system for providing an encryption key based on user authentication according to an embodiment of the present invention.
11 is an operation flowchart illustrating a method for providing an encryption key based on user authentication according to an embodiment of the present invention.
12 is an operation flowchart showing an example of a user private key encryption method using a user authentication means according to the present invention.
13 is an operation flowchart showing an example of a method for replacing a user authentication means according to the present invention.
14 is a diagram illustrating a computer system according to an embodiment of the present invention.

본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.If described in detail with reference to the accompanying drawings the present invention. Here, repeated descriptions, well-known functions that may unnecessarily obscure the subject matter of the present invention, and detailed description of the configuration will be omitted. Embodiments of the present invention are provided to more fully describe the present invention to those skilled in the art. Therefore, the shape and size of elements in the drawings may be exaggerated for a more clear description.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part “includes” a certain component, it means that the component may further include other components, not to exclude other components, unless otherwise stated.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 시스템을 나타낸 블록도이다.1 is a block diagram showing a blockchain and smart contract-based certificate status management system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 시스템은 사용자 단말(110), 인증관리서버(120) 및 블록체인 노드(130)를 포함한다.Referring to FIG. 1, a blockchain and smart contract-based certificate status management system according to an embodiment of the present invention includes a user terminal 110, an authentication management server 120, and a blockchain node 130.

사용자 단말(110)은 유무선 통신 환경에서 단말 어플리케이션을 이용할 수 있는 통신 단말기를 의미한다. 예컨대, 사용자 단말(110)은 스마트폰(smart phone)과 같은 휴대용 단말기일 수 있으며, 본 발명의 사상은 이에 제한되지 아니하며, 상술한 바와 같이 단말 어플리케이션을 탑재한 단말은 제한 없이 차용될 수 있다.The user terminal 110 refers to a communication terminal capable of using a terminal application in a wired/wireless communication environment. For example, the user terminal 110 may be a portable terminal such as a smart phone, and the spirit of the present invention is not limited thereto, and the terminal equipped with the terminal application as described above may be borrowed without limitation.

사용자 단말(110)에는 특정 서비스를 제공하기 위한 서비스 제공 어플리케이션과, 통합인증 어플리케이션이 탑재될 수 있다.The user terminal 110 may be equipped with a service providing application for providing a specific service and an integrated authentication application.

여기서, 서비스 제공 어플리케이션은 서비스 제공 서버와 통신하여 사용자에게 서비스를 제공하기 위한 어플리케이션일 수 있다. 예컨대, 서비스 제공 어플리케이션은 은행 관련 업무를 제공하기 위한 어플리케이션이고, 서비스 제공 서버는 은행 서버일 수 있다.Here, the service providing application may be an application for providing a service to a user by communicating with a service providing server. For example, the service providing application is an application for providing a bank related business, and the service providing server may be a bank server.

통합인증 어플리케이션은 인증관리서버(120)와 통신하여 블록체인 및 스마트 컨트랙트 기반 인증 서비스를 제공하기 위한 어플리케이션일 수 있다.The integrated authentication application may be an application for providing a blockchain and smart contract-based authentication service by communicating with the authentication management server 120.

인증관리서버(120)는 서비스 제공 서버에서 사용자에게 서비스 제공을 위해 사용자 인증이 필요한 경우, 사용자 단말(110)의 통합인증 어플리케이션과 통신하여 사용자 인증을 수행하고, 그 결과를 전송할 수 있다.The authentication management server 120 may perform user authentication by communicating with the integrated authentication application of the user terminal 110 when the user authentication is required to provide the service to the user in the service providing server, and transmit the result.

또한, 서비스 제공 어플리케이션 및 통합인증 어플리케이션 간에는 인증관리서버(120)로부터 생성된 세션(session) 키를 이용한 보안 구간이 형성될 수 있다.In addition, a security section using a session key generated from the authentication management server 120 may be formed between the service providing application and the integrated authentication application.

인증관리서버(120)는 하나의 서비스 제공 서버와 일대일 대응될 수 있다. 예컨대, 복수의 은행 서버들 각각에 일대일 대응되는 인증관리서버가 존재할 수 있다.The authentication management server 120 may correspond one-to-one with one service providing server. For example, an authentication management server corresponding to each of the plurality of bank servers may exist one to one.

선택적 실시예로서, 인증관리서버(120)는 복수의 서비스 제공 서버들과 일대다의 관계로 대응될 수 있다.As an optional embodiment, the authentication management server 120 may correspond to a plurality of service providing servers in a one-to-many relationship.

또한, 인증관리서버(120)는 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법을 제공하기 위해, 인증서 등록 요청 수신부(122), 사용자 인증서 주소 생성부(124), 트랜잭션 스크립트 전송부(126) 및 요청 결과 전송부(128)를 포함한다.In addition, the authentication management server 120 is a certificate registration request receiving unit 122, a user certificate address generation unit 124, a transaction script transmission unit 126 and a request to provide a method of managing the status of a certificate based on blockchain and smart contracts And a result transmission unit 128.

인증서 등록 요청 수신부(122)는 사용자 단말(110)에서 생성된 사용자 인증서를 포함하는 인증서 등록 요청을 수신한다.The certificate registration request receiving unit 122 receives a certificate registration request including a user certificate generated by the user terminal 110.

사용자 인증서 주소 생성부(124)는 사용자 인증서를 이용하여 사용자 인증서 주소를 생성한다.The user certificate address generation unit 124 generates a user certificate address using the user certificate.

트랜잭션 스크립트 전송부(126)는 사용자 인증서 및 상기 사용자 인증서 주소를 이용하여 인증서 등록 트랜잭션 스크립트(transaction script)를 생성하여 블록체인 노드(130)에 전송한다.The transaction script transmission unit 126 generates a certificate registration transaction script using a user certificate and the user certificate address and transmits it to the blockchain node 130.

요청 결과 전송부(128)는 블록체인 노드(130)로부터 트랜잭션 스크립트의 실행 결과를 수신하고, 인증서 등록 요청 결과를 상기 사용자 단말에 전송한다.The request result transmission unit 128 receives the execution result of the transaction script from the blockchain node 130 and transmits the result of the certificate registration request to the user terminal.

블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법에 관한 보다 상세한 내용은 도 2 내지 도 5를 참조하여 후술하기로 한다.Block chain and smart contract-based certificate status management method will be described later with reference to FIGS. 2 to 5.

인증관리서버(120)는 하나의 서버로 구성될 수도 있고, 물리적으로 분리된 복수의 서버들을 포함하는 개념일 수 있다. 예컨대, 상술한 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법에 관한 내용들은 하나의 서버에 의해 수행될 수도 있으나, 물리적으로 분리된 별도의 복수 서버들에 분할 할당되어 수행될 수도 있다.The authentication management server 120 may be configured as one server, or may be a concept including a plurality of physically separated servers. For example, the contents of the above-described blockchain and smart contract-based certificate status management method may be performed by one server, or may be performed by being allocated to multiple separate servers that are physically separated.

블록체인 노드(130)는 인증서 등록 트랜잭션 스크립트를 실행하여, 트랜잭션을 검증하는 트랜잭션 처리부(132), 검증된 트랜잭션을 포함하는 블록을 블록체인에 연결시켜, 사용자 인증서를 블록체인에 저장하는 블록 처리부(134) 및 인증서 등록 트랜잭션 스크립트에 포함된 파라미터(parameter)에 기초하여 스마트 컨트랙트 함수를 호출하고, 스마트 컨트랙트 함수의 리턴(return) 값으로서 인증서 상태 정보를 갱신 및 저장하는 스마트 컨트랙트 처리부(136)를 포함한다.The blockchain node 130 executes a certificate registration transaction script, and a transaction processing unit 132 for verifying a transaction, and a block processing unit for connecting a block including the verified transaction to the blockchain, and storing a user certificate in the blockchain ( 134) and a smart contract processing unit 136 that calls a smart contract function based on parameters included in the certificate registration transaction script and updates and stores certificate status information as a return value of the smart contract function. do.

사용자 단말(110) 및 인증관리서버(120) 또는 인증관리서버(120) 및 블록체인 노드(130)는 통신망을 통해 상호 연결될 수 있다.The user terminal 110 and the authentication management server 120 or the authentication management server 120 and the blockchain node 130 may be interconnected through a communication network.

통신망은 사용자 단말(110) 및 인증관리서버(120) 또는 인증관리서버(120) 및 블록체인 노드(130) 사이에 데이터를 송수신할 수 있도록 하기 위한 접속 경로를 의미한다. 예컨대, 통신망은 LANs(Local Area Networks), WANs(Wide Area Networks), MANs(Metropolitan Area Networks), ISDNs(Integrated Service Digital Networks) 등의 유선 네트워크나, 무선 LANs, CDMA, 블루투스, 위성 통신 등의 무선 네트워크를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.The communication network means a connection path for transmitting and receiving data between the user terminal 110 and the authentication management server 120 or the authentication management server 120 and the blockchain node 130. For example, communication networks include wired networks such as Local Area Networks (LANs), Wide Area Networks (WANs), Metropolitan Area Networks (MANs), and Integrated Service Digital Networks (ISDNs), and wireless LANs, CDMA, Bluetooth, and satellite communications. Although it may cover a network, the scope of the present invention is not limited thereto.

도 2는 본 발명의 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법을 나타낸 동작 흐름도이다.2 is an operation flowchart showing a method of managing a certificate state based on a blockchain and a smart contract according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법은 인증관리서버가, 사용자 단말로부터 사용자 단말에서 생성된 사용자 인증서를 포함하는 인증서 등록 요청을 수신한다(S210).Referring to FIG. 2, in a method of managing a certificate state based on a blockchain and a smart contract according to an embodiment of the present invention, the authentication management server receives a certificate registration request including a user certificate generated in the user terminal from the user terminal ( S210).

여기서, 인증서 등록 요청은 사용자에 대응되는 사용자 식별정보 및 사용자 단말에 대응되는 사용자 단말 식별정보를 더 포함할 수 있다.Here, the certificate registration request may further include user identification information corresponding to the user and user terminal identification information corresponding to the user terminal.

여기서, 사용자 식별정보에 대응되는 사용자는 사람 또는 법인일 수 있으며, 사용자가 사람인 경우 사용자 식별정보는 주민등록번호에 대응되는 식별자를 포함하는 정보일 수 있고, 사용자가 법인인 경우 사용자 식별정보는 법인등록번호에 대응되는 식별자를 포함하는 정보일 수 있다.Here, the user corresponding to the user identification information may be a person or a corporation, and if the user is a person, the user identification information may be information including an identifier corresponding to a resident registration number, and if the user is a corporation, the user identification information is a corporation registration number It may be information including an identifier corresponding to.

다음으로, 인증관리서버가, 사용자 인증서를 이용하여, 블록체인(blockchain) 상에서 사용자 인증서가 등록되는 위치를 나타내는 사용자 인증서 주소를 생성한다(S220).Next, the authentication management server, using the user certificate, generates a user certificate address indicating the location where the user certificate is registered on the blockchain (S220).

단계(S220)에서, 인증관리서버는 사용자 인증서에 포함된 사용자 공개 키 및 미리 생성된 서버 공개 키를 이용하여 다중서명 주소를 생성할 수 있다.In step S220, the authentication management server may generate a multi-signature address using the user public key included in the user certificate and the previously generated server public key.

단계(S220)에서, 인증관리서버는 다중서명 주소를 포함하는 사용자 인증서 주소를 생성할 수 있다.In step S220, the authentication management server may generate a user certificate address including a multi-signature address.

여기서, 다중서명 주소 및 사용자 인증서 주소는 사용자 공개 키에 대응되는 사용자 개인 키를 이용하여 생성된 사용자 서명을 이용하여 서명 검증이 가능하고, 서버 공개 키에 대응되는 서버 개인 키를 이용하여 생성된 서버 서명에 의해 서명 검증이 가능한 것일 수 있다.Here, the multi-signature address and the user certificate address can be verified by using the user signature generated using the user private key corresponding to the user public key, and the server generated using the server private key corresponding to the server public key. Signature verification may be possible by signature.

다음으로, 인증관리서버가, 사용자 인증서 및 사용자 인증서 주소를 이용하여, 사용자 UTXO(Unspent Transaction Output)를 생성하는 인증서 등록 트랜잭션 스크립트(transaction script)를 생성하고, 인증서 등록 트랜잭션 스크립트를 블록체인 노드(node)에 전송한다(S230).Next, the authentication management server generates a certificate registration transaction script that generates a user UTXO (Unspent Transaction Output) using a user certificate and a user certificate address, and the certificate registration transaction script is a blockchain node (node). ) (S230).

여기서, 인증서 등록 트랜잭션 스크립트는 미리 생성된 서버 UTXO에 대응되는 서버 서명을 송신자 정보로 포함하고, 다중서명 주소를 수신자 정보로 포함하는 것일 수 있다.Here, the certificate registration transaction script may include a server signature corresponding to the pre-generated server UTXO as sender information and a multi-signature address as receiver information.

이에 따라, 블록체인 노드에 의한 인증서 등록 트랜잭션 스크립트가 실행되는 경우, 서버 UTXO가 STXO(Spent Transaction Output)으로 전환되면서 동시에 사용자 UTXO가 생성될 수 있다.Accordingly, when the certificate registration transaction script by the blockchain node is executed, the user UTXO may be generated while the server UTXO is converted to STXO (Spent Transaction Output).

여기서, 인증서 등록 트랜잭션 스크립트는 사용자 인증서 주소, 사용자 식별정보 및 사용자 단말 식별정보를 인증서 등록 스마트 컨트랙트(smart contract) 함수의 호출 파라미터(parameter)로 더 포함할 수 있다.Here, the certificate registration transaction script may further include a user certificate address, user identification information, and user terminal identification information as call parameters of a smart contract function of certificate registration.

여기서, 사용자 식별정보는 적어도 하나의 변환 함수를 통해 변환된 형태로 사용될 수 있다. 예컨대, 사용자 식별정보는 서로 다른 두 개의 해쉬 함수를 사용하여 변환된 형태로 사용될 수 있다.Here, the user identification information may be used in a form converted through at least one conversion function. For example, the user identification information may be used in a converted form using two different hash functions.

이에 따라, 블록체인 노드에 의한 인증서 등록 트랜잭션 스크립트가 실행되는 경우, 인증서 등록 스마트 컨트랙트 함수가 호출되어, 사용자 인증서 주소, 사용자 식별정보 및 사용자 단말 식별정보가 매핑되어 인증서 매핑 정보 테이블에 추가될 수 있다.Accordingly, when the certificate registration transaction script by the blockchain node is executed, the certificate registration smart contract function is called, and the user certificate address, user identification information, and user terminal identification information are mapped and added to the certificate mapping information table. .

여기서, 인증서 매핑 정보 테이블은 사용자 인증서에 대한 데이터 무결성을 검증하기 위해 사용자 인증서 주소 필드, 사용자 식별정보 필드 및 사용자 단말 식별정보 필드 각각에 대해 고유 인덱스(index)가 작성되는 것일 수 있다.Here, the certificate mapping information table may be that a unique index is created for each of the user certificate address field, the user identification information field, and the user terminal identification information field to verify data integrity for the user certificate.

다음으로, 인증관리서버가, 블록체인 노드에 의한 인증서 등록 트랜잭션 스크립트의 실행 결과를 수신하고, 인증서 등록 트랜잭션 스크립트의 실행 결과에 기초하여 인증서 등록 요청 결과를 생성하고, 인증서 등록 요청 결과를 사용자 단말에 전송한다(S240).Next, the authentication management server receives the execution result of the certificate registration transaction script by the blockchain node, generates a certificate registration request result based on the execution result of the certificate registration transaction script, and sends the certificate registration request result to the user terminal. Transmit (S240).

여기서, 인증서 등록 요청 결과는 사용자 인증서 주소를 포함할 수 있다.Here, the result of the certificate registration request may include a user certificate address.

비록 도 2에는 도시되지 아니하였으나, 본 발명의 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법은 인증관리서버가, 사용자 단말의 요청에 따라 블록체인에 등록된 사용자 인증서를 폐지시키기 위해 아래 과정을 더 수행할 수 있다.Although not shown in FIG. 2, the method for managing the status of a certificate based on a blockchain and a smart contract according to an embodiment of the present invention is for the authentication management server to abolish the user certificate registered in the blockchain at the request of the user terminal. The process below can be further performed.

먼저 인증관리서버는, 사용자 단말로부터 검증 대상 사용자 인증서 주소, 검증 대상 사용자 인증서 및 검증 대상 사용자 단말 식별정보를 포함하는 인증서 폐지 요청을 수신할 수 있다.First, the authentication management server may receive a certificate revocation request including a user certificate address to be verified, a user certificate to be verified, and user terminal identification information to be verified from the user terminal.

또한 인증관리서버는, 검증 대상 사용자 인증서에 포함된 사용자 공개 키 및 서버 공개 키를 이용하여 검증 대상 다중서명 주소를 생성하고, 다중서명 주소와의 동일 여부를 판단하여 다중서명 주소 검증을 수행할 수 있다.In addition, the authentication management server may generate a multi-signature address to be verified using the user public key and server public key included in the user certificate to be verified, and perform multi-signature address verification by determining whether it is the same as the multi-signature address. have.

또한 인증관리서버는, 검증 대상 사용자 인증서 주소에 대해, 인증서 매핑 정보 테이블에 저장된 검증 대상 사용자 단말 식별정보에 대응되는 사용자 인증서 주소와의 동일 여부를 판단하여 사용자 단말 검증을 수행할 수 있다.Also, the authentication management server may perform verification of the user terminal by determining whether the user certificate address to be verified is the same as the user certificate address corresponding to the verification target user terminal identification information stored in the certificate mapping information table.

여기서 인증관리서버는, 검증 대상 사용자 인증서 주소에 대응되는 사용자 UTXO의 수가 1인지 여부에 기초하여 검증 대상 사용자 인증서의 유효성 검증을 더 수행할 수 있다.Here, the authentication management server may further perform validation of the user certificate to be verified based on whether the number of user UTXOs corresponding to the user certificate address to be verified is 1.

또한 인증관리서버는, 다중서명 주소 검증 및 사용자 단말 검증이 완료된 경우, 서버 서명에 의해 서명 검증이 가능한 스크립트를 수신자 정보로 포함하는 미서명 인증서 폐지 트랜잭션 스크립트를 생성하여 사용자 단말에 전송할 수 있다.In addition, when the multi-signature address verification and the user terminal verification are completed, the authentication management server may generate an unsigned certificate revocation transaction script including a script capable of verifying the signature by the server signature as recipient information, and transmit it to the user terminal.

또한 인증관리서버는, 사용자 단말에 의해 미서명 인증서 폐지 트랜잭션 스크립트의 송신자 정보에 사용자 서명이 추가된 인증서 폐지 트랜잭션 스크립트를 수신하여 블록체인 노드에 전송할 수 있다.In addition, the authentication management server may receive the certificate revocation transaction script with the user signature added to the sender information of the unsigned certificate revocation transaction script by the user terminal and transmit it to the blockchain node.

또한 인증관리서버는, 블록체인 노드에 의한 인증서 페지 트랜잭션 스크립트의 실행 결과를 수신하고, 인증서 폐지 트랜잭션 스크립트의 실행 결과에 기초하여 인증서 폐지 요청 결과를 생성하고, 인증서 폐지 요청 결과를 사용자 단말에 전송할 수 있다.In addition, the authentication management server can receive the execution result of the certificate revocation transaction script by the blockchain node, generate a certificate revocation request result based on the execution result of the certificate revocation transaction script, and transmit the result of the certificate revocation request to the user terminal. have.

도 3은 본 발명에 따른 인증서 등록 방법의 일 예를 나타낸 동작 흐름도이다.3 is an operation flowchart showing an example of a certificate registration method according to the present invention.

특히, 도 3은 사용자 단말(110)이 인증관리서버(120)를 통해 사용자 인증서를 블록체인에 등록시키는 방법의 일 예를 나타낸 것이다.In particular, FIG. 3 shows an example of a method in which the user terminal 110 registers a user certificate on the blockchain through the authentication management server 120.

도 3을 참조하면, 먼저 사용자 단말(110)이 인증관리서버(120)에 요청하여 챌린지(challenge)를 수신하고, 이에 대한 응답으로 사용자 공개 키 및 사용자 공개 키와 쌍을 이루는 사용자 개인 키를 생성한다(S301).Referring to FIG. 3, first, the user terminal 110 requests the authentication management server 120 to receive a challenge, and in response, generates a user public key and a user private key paired with the user public key. (S301).

여기서, 사용자 단말(110)은 공개 키 암호 방식을 이용하여 공개 키 및 개인 키 쌍을 생성할 수 있다. 예컨대, 사용자 단말(110)은 RSA(Rivest-Shamir-Adleman) 알고리즘 또는 ECDSA(Elliptic Curve Digital Signature Algorithm)를 통해 공개 키 및 개인 키 쌍을 생성할 수 있으며, 본 발명의 범위가 상술한 알고리즘에 한정되는 것은 아니다.Here, the user terminal 110 may generate a public key and a private key pair using a public key encryption method. For example, the user terminal 110 may generate a public key and a private key pair through a Rivest-Shamir-Adleman (RSA) algorithm or an Elliptic Curve Digital Signature Algorithm (ECDSA), and the scope of the present invention is limited to the above-described algorithm It does not work.

여기서, 사용자 단말(110)은 단계(S301)에서 사용자 인증서에 사용되는 제1 사용자 키 쌍과, 트랜잭션 스크립트 서명을 위한 제2 사용자 키 쌍을 구분하여 생성할 수 있다. 예컨대, 사용자 단말(110)은 RSA 알고리즘을 이용하여 제1 사용자 키 쌍을 생성하고, ECDSA를 이용하여 제2 사용자 키 쌍을 생성할 수 있으며, RSA 알고리즘을 이용하여 제1 사용자 키 쌍 및 제2 사용자 키 쌍을 모두 생성할 수도 있다. 즉, 두 키 쌍의 생성을 위한 공개 키 암호 방식은 제한 없이 차용될 수 있다.Here, the user terminal 110 may generate the first user key pair used for the user certificate in step S301 and the second user key pair for signing the transaction script. For example, the user terminal 110 may generate a first user key pair using an RSA algorithm, and generate a second user key pair using an ECDSA, and a first user key pair and a second using an RSA algorithm. You can also generate all user key pairs. That is, the public key encryption method for generating two key pairs can be borrowed without limitation.

다음으로, 사용자 단말(110)은 인증관리서버(120)에 사용자 공개 키를 전송하면서 사용자 인증서의 등록을 요청한다(S310).Next, the user terminal 110 requests the registration of the user certificate while transmitting the user public key to the authentication management server 120 (S310).

한편, 인증관리서버(120)는 단계(S310) 전에 공개 키 암호 방식을 이용하여 서버 키 쌍을 생성하고(S302), 서버 키 쌍을 이용하여 서버 UTXO를 생성한다(S303).Meanwhile, the authentication management server 120 generates a server key pair using a public key encryption method before step S310 (S302), and generates a server UTXO using the server key pair (S303).

인증관리서버(120)는 서버 키 쌍 중 서버 공개 키와 사용자 공개 키를 이용하여 다중서명 주소를 생성하고, 다중서명 주소를 이용하여 사용자 인증서가 블록체인 상에 저장될 위치를 나타내는 사용자 인증서 주소를 생성한다(S320).The authentication management server 120 generates a multisignature address using a server public key and a user public key among a pair of server keys, and uses the multisignature address to generate a user certificate address indicating a location where the user certificate will be stored on the blockchain. It is created (S320).

여기서, 사용자 인증서 주소는 블록체인 식별자(blockchain ID)에 해당할 수 있다.Here, the user certificate address may correspond to a blockchain ID.

또한, 인증관리서버(120)는 사용자 인증서 주소를 이용하여 인증서 등록 트랜잭션 스크립트를 생성한다(S330).In addition, the authentication management server 120 generates a certificate registration transaction script using the user certificate address (S330).

여기서, 인증서 등록 트랜잭션 스크립트는 서버 UTXO에 대응되는 서버 서명을 송신자 정보로 포함하고, 다중서명 주소를 수신자 정보로 포함할 수 있다.Here, the certificate registration transaction script may include a server signature corresponding to the server UTXO as sender information and a multi-signature address as receiver information.

인증관리서버(120)가 인증서 등록 트랜잭션 스크립트를 블록체인 노드(130)에 전송하면(S531), 블록체인 노드(130)가 인증서 등록 트랜잭션 스크립트를 실행한다(S340).When the authentication management server 120 transmits the certificate registration transaction script to the blockchain node 130 (S531), the blockchain node 130 executes the certificate registration transaction script (S340).

블록체인 노드(130)는 인증서 등록 트랜잭션 스크립트를 실행하면서, 트랜잭션에 대한 서명 검증을 수행하고(S341), 사용자 인증서에 대한 무결성 검증을 수행한다(S342).The blockchain node 130 executes the certificate registration transaction script, performs signature verification for the transaction (S341), and performs integrity verification for the user certificate (S342).

단계(S341)에서의 서명 검증은 인증서 등록 트랜잭션 스크립트에 포함된 해제 스크립트(scriptSig, 도 3의 경우에는 서버 서명)를 통해 서버 UTXO에 포함된 잠금 스크립트(scriptPubKey, 도 3의 경우에는 다중서명 주소)가 해제되는지 여부에 따라서 수행될 수 있다.The signature verification in step S341 is a lock script included in the server UTXO (scriptPubKey, in the case of FIG. 3) a unlock script (scriptSig, server signature in FIG. 3) included in the certificate registration transaction script. Can be performed depending on whether or not is released.

단계(S342)에서의 무결성 검증은 인증서 매핑 정보 테이블에서, 하나의 사용자 인증서 주소, 하나의 사용자 식별정보 및 하나의 사용자 단말 식별정보는 일대일대일(1:1:1) 관계인지 여부에 따라서 수행될 수 있다.The integrity verification in step S342 is performed according to whether the one-to-one (1:1:1) relationship is one user certificate address, one user identification information, and one user terminal identification information in the certificate mapping information table. Can be.

단계(S341) 및 단계(S342)의 검증들이 모두 완료된 경우, 블록체인 노드(130)는 서버 UTXO를 STXO로 전환시키고, 동시에 사용자 UTXO를 생성시킨다(S350). 여기서, 블록체인 노드(130)는 서버 UTXO에 포함되어 있던 양(amount)과 동일한 양을 갖는 사용자 UTXO를 생성시킨다. 이에 따라, 블록체인 노드(130)는 서버 소유의 자산 일부(서버 UTXO에 포함되어 있던 양만큼)를 사용자에게 할당시킬 수 있다.When the verifications of steps S341 and S342 are completed, the blockchain node 130 converts the server UTXO to STXO, and simultaneously creates a user UTXO (S350). Here, the blockchain node 130 generates a user UTXO having the same amount as the amount included in the server UTXO. Accordingly, the blockchain node 130 may allocate a portion of the assets owned by the server (as much as the amount included in the server UTXO) to the user.

블록체인 노드(130)는 트랜잭션 스크립트 실행 결과를 블록체인 노드의 일 저장소인 메모리풀(memory pool)에 임시 저장하고, 트랜잭션 스크립트 실행 결과를 인증관리서버(120)에 전송한다(S360).The blockchain node 130 temporarily stores the execution result of the transaction script in a memory pool, which is a storage of the blockchain node, and transmits the execution result of the transaction script to the authentication management server 120 (S360).

인증관리서버(120)는 트랜잭션 스크립트 실행 결과에 따라 등록 요청 결과를 생성하고(S361), 등록 요청 결과를 사용자 단말(110)에 전송한다(S362).The authentication management server 120 generates a registration request result according to the transaction script execution result (S361), and transmits the registration request result to the user terminal 110 (S362).

비록 도 3에는 도시되지 아니하였으나, 단계(S362) 이후, 사용자 단말(110)은 등록 요청 결과에 포함된 사용자 인증서 주소를 사용자 단말(110)의 저장소에 저장할 수 있다.Although not shown in FIG. 3, after step S362, the user terminal 110 may store the user certificate address included in the registration request result in the storage of the user terminal 110.

한편, 블록체인 노드(130)에서는 트랜잭션 스트립트의 실행 도중 트랜잭션 스트립트에 스마트 컨트랙트 함수의 호출 파라미터가 포함된 경우, 스마트 컨트랙트 함수를 호출하여 인증서 매핑 정보를 생성한다(S365).On the other hand, when the transaction script includes the call parameters of the smart contract function during the execution of the transaction script, the blockchain node 130 generates the certificate mapping information by calling the smart contract function (S365).

여기서, 스마트 컨트랙트 함수의 결과(return) 값으로, 사용자 인증서 주소, 사용자 식별정보 및 사용자 단말 식별정보가 매핑되어 인증서 매핑 정보 테이블에 추가되며, 사용자 인증서에 대한 무결성 검증이 신속하게 수행될 수 있도록, 사용자 인증서 주소 필드, 사용자 식별정보 필드 및 사용자 단말 식별정보 필드 각각에 대해 고유 인덱스(index)가 작성될 수 있다.Here, as a return value of the smart contract function, the user certificate address, user identification information, and user terminal identification information are mapped and added to the certificate mapping information table, so that integrity verification of the user certificate can be quickly performed, A unique index may be created for each of the user certificate address field, the user identification information field, and the user terminal identification information field.

예컨대, 인증서 등록 트랜잭션 스크립트에는 인증서 등록 스마트 컨트랙트 함수의 호출 파라미터가 포함되어 있어, 블록체인 노드(130)가 인증서 등록 트랜잭션 스크립트를 실행하는 도중 인증서 등록 스마트 컨트랙트 함수가 호출되어 사용자 인증서가 블록체인에 등록되었음을 나타내는 정보가 생성될 수 있다.For example, the certificate enrollment transaction script includes a call parameter of the certificate enrollment smart contract function, so while the blockchain node 130 executes the certificate enrollment transaction script, the certificate enrollment smart contract function is called to register the user certificate on the blockchain. Information indicating that it has been generated may be generated.

또한, 블록체인 노드(130)는 메모리풀에 임시 저장된 트랜잭션들을 소정의 주기마다 새로이 마이닝(mining)된 블록에 포함시켜 기존의 블록체인에 연결시킨다(S366).In addition, the blockchain node 130 includes transactions temporarily stored in the memory pool in a newly mined block every predetermined period to connect to the existing blockchain (S366).

도 4는 본 발명에 따른 인증서 폐지 방법의 일 예를 나타낸 동작 흐름도이다.4 is an operation flowchart showing an example of a certificate revocation method according to the present invention.

특히, 도 4는 사용자 단말(110)이 인증관리서버(120)를 통해 블록체인에 등록된 사용자 인증서를 폐지시키는 방법의 일 예를 나타낸 것이다.In particular, FIG. 4 shows an example of a method in which the user terminal 110 abolishes the user certificate registered in the blockchain through the authentication management server 120.

도 4를 참조하면, 먼저 사용자 단말(110)이 인증관리서버(120)에 사용자 인증서 및 사용자 단말 식별정보를 전송하여 인증서 폐지를 요청한다(S410).Referring to FIG. 4, first, the user terminal 110 transmits a user certificate and user terminal identification information to the authentication management server 120 to request a certificate revocation (S410).

인증관리서버(120)는 사용자 인증서에 포함된 사용자 공개 키 및 서버 공개 키를 이용하여 검증 대상 다중서명 주소를 생성하고, 사용자 인증서에 포함된 다중서명 주소와의 동일 여부를 판단하여 다중서명 주소를 검증한다(S420).The authentication management server 120 generates a multi-signature address to be verified using the user public key and the server public key included in the user certificate, and determines whether the multi-signature address is the same as the multi-signature address included in the user certificate. Verify (S420).

또한, 인증관리서버(120)는 블록체인 노드(130)로부터 사용자 인증서에 포함된 사용자 인증서 주소에 대응되는 사용자 UTXO를 조회하고(S430), 사용자 UTXO의 수가 1인지 여부에 기초하여 인증서 유효성을 검증한다(S431).In addition, the authentication management server 120 queries the user UTXO corresponding to the user certificate address included in the user certificate from the blockchain node 130 (S430), and verifies the certificate validity based on whether the number of user UTXOs is 1. (S431).

또한, 인증관리서버(120)는 블록체인 노드(130)로부터 인증서 매핑 정보를 조회하고(S440), 사용자 인증서에 포함된 사용자 인증서 주소에 대해, 사용자 단말 식별정보에 매핑된 사용자 인증서 주소와의 동일 여부를 판단하여 사용자 단말 검증을 수행한다(S441).In addition, the authentication management server 120 retrieves the certificate mapping information from the blockchain node 130 (S440), and the user certificate address included in the user certificate is the same as the user certificate address mapped to the user terminal identification information. It is determined whether user terminal verification is performed (S441).

단계(S420), 단계(S431) 및 단계(S441)의 검증들이 모두 완료된 경우, 인증관리서버(120)는 사용자 서명이 수행되지 않은 미서명 인증서 폐지 트랜잭션 스크립트를 생성한다(S450).When all of the verifications of steps S420, S431, and S441 are completed, the authentication management server 120 generates an unsigned certificate revocation transaction script in which user signature is not performed (S450).

인증관리서버(120)가 미서명 인증서 폐지 트랜잭션 스크립트를 사용자 단말(110)에 전송하면(S451), 사용자 단말(110)이 미서명 인증서 폐지 트랜잭션 스크립트에 사용자 개인 키를 이용하여 서명을 수행한다(S460).When the authentication management server 120 transmits the unsigned certificate revocation transaction script to the user terminal 110 (S451), the user terminal 110 signs the unsigned certificate revocation transaction script using the user's private key ( S460).

사용자 단말(110)이 서명된 인증서 폐지 트랜잭션 스크립트를 인증관리서버(120)를 경유하여 블록체인 노드(130)에 전송하면(S461), 블록체인 노드(130)가 인증서 폐지 트랜잭션 스크립트를 실행한다(S470).If the user terminal 110 sends the signed certificate revocation transaction script to the blockchain node 130 via the authentication management server 120 (S461), the blockchain node 130 executes the certificate revocation transaction script ( S470).

블록체인 노드(130)는 인증서 폐지 트랜잭션 스크립트를 실행하면서, 트랜잭션에 대한 서명 검증을 수행한다(S471).The blockchain node 130 performs signature verification for the transaction while executing the certificate revocation transaction script (S471).

트랜잭션에 대한 검증이 완료된 경우, 블록체인 노드(130)는 사용자 UTXO를 STXO로 전환시키고, 동시에 서버 UTXO를 생성시킨다(S480). 여기서, 블록체인 노드(130)는 사용자 UTXO에 포함되어 있던 양과 동일한 양을 갖는 서버 UTXO를 생성시킨다. 이에 따라, 블록체인 노드(130)는 사용자에게 할당된 자산을 서버에 반환시킬 수 있다.When the verification of the transaction is completed, the blockchain node 130 converts the user UTXO to STXO and simultaneously creates a server UTXO (S480). Here, the blockchain node 130 generates a server UTXO having the same amount as the amount included in the user UTXO. Accordingly, the blockchain node 130 can return the asset allocated to the user to the server.

블록체인 노드(130)는 트랜잭션 스크립트 실행 결과를 메모리풀에 임시 저장하고, 트랜잭션 스크립트 실행 결과를 인증관리서버(120)에 전송한다(S390).The blockchain node 130 temporarily stores the transaction script execution result in the memory pool, and transmits the transaction script execution result to the authentication management server 120 (S390).

인증관리서버(120)는 트랜잭션 스크립트 실행 결과에 따라 폐지 요청 결과를 생성하고(S491), 폐지 요청 결과를 사용자 단말(110)에 전송한다(S492).The authentication management server 120 generates a revocation request result according to the execution result of the transaction script (S491), and transmits the revocation request result to the user terminal 110 (S492).

한편, 블록체인 노드(130)에서는 트랜잭션 스트립트의 실행 도중 트랜잭션 스트립트에 스마트 컨트랙트 함수의 호출 파라미터가 포함된 경우, 스마트 컨트랙트 함수를 호출하여 인증서 매핑 정보를 갱신한다(S495).On the other hand, when the transaction script includes the call parameter of the smart contract function during the execution of the transaction script, the blockchain node 130 updates the certificate mapping information by calling the smart contract function (S495).

여기서, 스마트 컨트랙트 함수의 결과(return) 값으로, 사용자 인증서 주소, 사용자 식별정보 및 사용자 단말 식별정보 중 적어도 하나에 매핑된 정보가 인증서 매핑 정보 테이블에서 삭제될 수 있다.Here, as a return value of the smart contract function, information mapped to at least one of a user certificate address, user identification information, and user terminal identification information may be deleted from the certificate mapping information table.

또한, 블록체인 노드(130)는 메모리풀에 임시 저장된 트랜잭션들을 소정의 주기마다 새로이 마이닝된 블록에 포함시켜 기존의 블록체인에 연결시킨다(S496).In addition, the blockchain node 130 includes transactions temporarily stored in the memory pool in a newly mined block every predetermined period to connect to the existing blockchain (S496).

선택적 실시예로서, 인증관리서버(120)가 블록체인에 등록된 사용자 인증서를 폐지시키는 경우, 인증관리서버(120)가 서버 서명이 수행된 인증서 폐지 트랜잭션 스크립트를 생성하여 블록체인 노드(130)에 전송함으로써, 사용자 단말(110)의 개입 없이도 사용자 인증서를 폐지시킬 수 있다.As an optional embodiment, when the authentication management server 120 abolishes the user certificate registered in the blockchain, the authentication management server 120 generates a certificate revocation transaction script with the server signature to the blockchain node 130 By transmitting, the user certificate can be revoked without the intervention of the user terminal 110.

도 5는 본 발명에 따른 인증서 검증 방법의 일 예를 나타낸 동작 흐름도이다.5 is an operation flowchart showing an example of a method for verifying a certificate according to the present invention.

특히, 도 5는 사용자 단말(110)이 서비스 제공 서버(125)로부터 서비스를 제공 받기 위해 인증서를 검증 받는 방법의 일 예를 나타낸 것이다.In particular, FIG. 5 shows an example of a method in which the user terminal 110 is verified with a certificate in order to receive a service from the service provision server 125.

도 5를 참조하면, 먼저 사용자 단말(110)이 임의의 원문을 생성하고(S510), 원문에 대해 사용자 개인 키를 이용하여 서명을 수행하여 전자 서명을 생성한다(S511).Referring to FIG. 5, first, the user terminal 110 generates an arbitrary original text (S510), and performs a signature using a user private key for the original text to generate an electronic signature (S511).

사용자 단말(110)은 서비스 제공 서버(125)에 사용자 인증을 수행하기 위해 전자 서명과 사용자 인증서를 전송하면서 전자 서명 검증을 요청한다(S520).The user terminal 110 requests electronic signature verification while transmitting an electronic signature and a user certificate to perform user authentication to the service provision server 125 (S520).

서비스 제공 서버(125)는 사용자 인증서에 포함된 사용자 공개 키를 이용하여 전자 서명에 대한 서명 검증을 수행하고(S521), 인증관리서버(120)에 사용자 인증서를 전송하여 인증서 검증을 요청한다(S530).The service providing server 125 performs signature verification for the electronic signature using the user public key included in the user certificate (S521), and sends a user certificate to the authentication management server 120 to request certificate verification (S530) ).

인증관리서버(120)는 블록체인 노드(130)로부터 사용자 UTXO를 조회하고(S540), 사용자 UTXO의 수가 1인지 여부에 기초하여 인증서 유효성을 검증한다(S541).The authentication management server 120 inquires the user UTXO from the blockchain node 130 (S540), and verifies the certificate validity based on whether the number of user UTXOs is 1 (S541).

인증관리서버(120)는 블록체인 노드(130)로부터 인증서 매핑 정보를 조회하고(S550), 사용자 인증서 주소, 사용자 인증서 주소에 매핑된 사용자 식별정보, 사용자 인증서 주소에 매핑된 사용자 단말 식별정보가 일대일대일(1:1:1) 관계인지 여부에 기초하여 사용자 인증서의 무결성을 검증한다(S551).The authentication management server 120 retrieves the certificate mapping information from the blockchain node 130 (S550), and the user certificate address, user identification information mapped to the user certificate address, and user terminal identification information mapped to the user certificate address are one-to-one. The integrity of the user certificate is verified based on whether it is a one-to-one (1:1:1) relationship (S551).

단계(S541) 및 단계(S551)의 검증들이 모두 완료된 경우, 인증관리서버(120)는 인증서 검증 결과를 생성하고(S560), 인증서 검증 결과를 서비스 제공 서버(125)에 전송한다(S561).When both the verification of steps S541 and S551 are completed, the authentication management server 120 generates a certificate verification result (S560), and transmits the certificate verification result to the service providing server 125 (S561).

서비스 제공 서버(125)는 인증서 검증 결과에 기초하여 사용자 단말(110)에 서비스를 제공한다(S570).The service provision server 125 provides a service to the user terminal 110 based on the certificate verification result (S570).

도 6은 본 발명의 다른 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 시스템을 나타낸 블록도이다.6 is a block diagram showing a blockchain and smart contract-based certificate status management system according to another embodiment of the present invention.

특히, 도 6은 블록체인 및 스마트 컨트랙트 기반 복수 인증관리서버에 의한 인증서 상태 관리 시스템의 일 예를 나타낸 것이다.In particular, FIG. 6 shows an example of a certificate status management system by a plurality of authentication management servers based on blockchain and smart contracts.

도 6을 참조하면, 본 발명의 다른 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 시스템은 사용자 단말(110), 제1 인증관리서버(610), 제2 인증관리서버(620) 및 블록체인 노드(130)를 포함한다.Referring to FIG. 6, a blockchain and smart contract-based certificate status management system according to another embodiment of the present invention includes a user terminal 110, a first authentication management server 610, a second authentication management server 620, and Blockchain node 130.

사용자 단말(110) 및 블록체인 노드(130)와 관련하여 도 1에서의 설명과 중복되는 설명은 생략하기로 한다.Regarding the user terminal 110 and the blockchain node 130, descriptions overlapping with those in FIG. 1 will be omitted.

제1 인증관리서버(610) 및 제2 인증관리서버(620)는 서로 다른 서비스 제공 서버에 대응되는 서버일 수 있다. 예컨대, 제1 인증관리서버(610)는 제1 은행의 서비스 제공 서버에 대응되고, 제2 인증관리서버(620)는 제2 은행의 서비스 제공 서버에 대응될 수 있다.The first authentication management server 610 and the second authentication management server 620 may be servers corresponding to different service providing servers. For example, the first authentication management server 610 may correspond to a service providing server of the first bank, and the second authentication management server 620 may correspond to a service providing server of the second bank.

제1 인증관리서버(610)는 사용자 단말(110)로부터 사용자 인증서의 최초 등록을 수행한 인증관리서버에 해당하며, 제2 인증관리서버(620)는 사용자 단말(110)로부터 사용자 인증서의 최초 등록을 수행하지 않은 인증관리서버에 해당한다. 예컨대, 제1 인증관리서버(610)는 사용자 인증서를 최초 등록한 제1 은행에 대응되는 서버이고, 제2 인증관리서버(620)는 타행(예컨대, 제1 은행)에서 등록한 사용자 인증서를 제2 은행에 등록하여 사용하고자 하는 경우의 제2 은행에 대응되는 서버일 수 있다.The first authentication management server 610 corresponds to the authentication management server that first registered the user certificate from the user terminal 110, and the second authentication management server 620 initially registers the user certificate from the user terminal 110. Corresponds to the authentication management server that has not performed. For example, the first authentication management server 610 is a server corresponding to the first bank that initially registered the user certificate, and the second authentication management server 620 is a second bank for the user certificate registered in the other bank (eg, the first bank). It may be a server corresponding to the second bank when you want to register to use.

즉, 제1 인증관리서버(610)는 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법을 제공하기 위해, 인증서 등록 요청 수신부, 사용자 인증서 주소 생성부, 트랜잭션 스크립트 전송부 및 요청 결과 전송부를 포함할 수 있으며, 이에 대한 자세한 설명은 도 1의 인증관리서버(120)가 포함하는 인증서 등록 요청 수신부(122), 사용자 인증서 주소 생성부(124), 트랜잭션 스크립트 전송부(126) 및 요청 결과 전송부(128)에 대한 설명으로 대체한다.That is, the first authentication management server 610 may include a certificate registration request receiving unit, a user certificate address generating unit, a transaction script transmitting unit, and a request result transmitting unit in order to provide a method of managing the status of a certificate based on blockchain and smart contracts. For details, a certificate registration request receiver 122 included in the authentication management server 120 of FIG. 1, a user certificate address generator 124, a transaction script transmitter 126, and a request result transmitter 128 Replace it with a description of.

제2 인증관리서버(620)는 블록체인 및 스마트 컨트랙트 기반 복수 인증관리서버에 의한 인증서 상태 관리 방법을 제공하기 위해, 인증기관 등록 요청 수신부(622), 인증기관 등록 수행부(624) 및 요청 결과 전송부(626)를 포함한다.The second authentication management server 620 provides a certificate authority registration request receiving unit 622, a certificate authority registration performing unit 624, and a request result to provide a method of managing the status of a certificate by a plurality of authentication management servers based on blockchain and smart contracts. It includes a transmission unit 626.

인증기관 등록 요청 수신부(622)는 사용자 단말(110)에서 생성되어 제1 인증기관에 대해 최초 등록된 사용자 인증서의 사용자 인증서 주소를 포함하는, 제2 인증기관에 대한 인증기관 등록 요청을 수신한다.The certification authority registration request receiving unit 622 receives the certification authority registration request for the second certification authority, which includes the user certificate address of the user certificate initially generated for the first certification authority and generated by the user terminal 110.

여기서, 제1 인증기관 및 제2 인증기관은 각각 인증된 사용자에게 서비스를 제공하기 위한 서비스 제공 서버일 수 있다. 예컨대, 제1 인증기관은 제1 은행에 대응되는 서비스 제공 서버일 수 있고, 제2 인증기관은 제2 은행에 대응되는 서비스 제공 서버일 수 있다.Here, the first authentication authority and the second authentication authority may be service providing servers for providing services to authenticated users, respectively. For example, the first authentication authority may be a service provision server corresponding to the first bank, and the second authentication authority may be a service provision server corresponding to the second bank.

인증기관 등록 수행부(624)는 사용자 인증서 주소를 이용하여 블록체인 노드(130)로부터 사용자 인증서에 관한 정보를 획득하여 사용자 인증서에 대한 검증을 수행하고, 사용자 인증서 주소 및 사용자 식별정보를 제2 인증기관에 전송한다.The certification authority registration performing unit 624 obtains information about the user certificate from the blockchain node 130 using the user certificate address, performs verification on the user certificate, and authenticates the user certificate address and user identification information for the second time. To the agency.

요청 결과 전송부(626)는 제2 인증기관으로부터 등록 결과를 수신하여 사용자 단말(110)에 전송한다.The request result transmitter 626 receives the registration result from the second certification authority and transmits it to the user terminal 110.

블록체인 및 스마트 컨트랙트 기반 복수 인증관리서버에 의한 인증서 상태 관리 방법에 관한 보다 상세한 내용은 도 7 내지 도 9를 참조하여 후술하기로 한다.More details on the method of managing the status of the certificate by the multiple authentication management server based on the blockchain and smart contract will be described later with reference to FIGS. 7 to 9.

도 7은 본 발명의 다른 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법을 나타낸 동작 흐름도이다.7 is an operation flowchart showing a method for managing a certificate state based on a blockchain and a smart contract according to another embodiment of the present invention.

특히, 도 7은 블록체인 및 스마트 컨트랙트 기반 복수 인증관리서버에 의한 인증서 상태 관리 방법을 나타낸 것이다.In particular, FIG. 7 shows a method for managing the status of a certificate by a plurality of authentication management servers based on blockchain and smart contracts.

도 7을 참조하면, 본 발명의 다른 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법은 제2 인증관리서버가, 사용자 단말로부터 사용자 단말에서 생성되어 제1 인증기관에 대해 최초 등록된 사용자 인증서의 블록체인(blockchain) 상의 등록 위치를 나타내는 사용자 인증서 주소를 포함하는, 제1 인증기관과 서로 다른 제2 인증기관에 대한 사용자 인증서의 인증기관 등록 요청을 수신한다(S710).Referring to FIG. 7, a method for managing a certificate state based on a blockchain and a smart contract according to another embodiment of the present invention is a second authentication management server, which is generated in a user terminal from a user terminal and is first registered with the first authentication authority A user certificate address indicating a user certificate address indicating a registration location on a blockchain of a user certificate is received, and a request for registering a certificate authority of a user certificate for a second certificate authority different from the first certificate authority is received (S710).

다음으로, 제2 인증관리서버가, 사용자 인증서 주소를 기초로 블록체인 노드(node)로부터 사용자 인증서 주소에 매핑(mapping)된 사용자 인증서에 관한 정보를 획득하여, 사용자 인증서에 대한 검증을 수행하고, 사용자 인증서 주소 및 사용자 인증서에 대응되는 사용자 식별정보를 제2 인증기관에 전송한다(S720).Next, the second authentication management server obtains information about the user certificate mapped to the user certificate address from the blockchain node based on the user certificate address, performs verification on the user certificate, The user certificate address and user identification information corresponding to the user certificate are transmitted to the second certification authority (S720).

단계(S720)에서 제2 인증관리서버는 사용자 식별정보를 사용자 단말 또는 블록체인 노드로부터 획득하여, 이를 제2 인증기관에 전송할 수 있다.In step S720, the second authentication management server may acquire the user identification information from the user terminal or the blockchain node, and transmit it to the second authentication authority.

제2 인증관리서버는 사용자 인증서 주소 및 사용자 식별정보를 제2 인증기관에 전송하기 전에, 사용자 인증서 주소 및 제2 인증기관에 대응되는 제2 인증기관 식별정보를 이용하여, 사용자 인증서의 미리 등록된 인증서 매핑 정보 테이블을 갱신하기 위한 인증기관 등록 트랜잭션(transaction) 스크립트(script)를 생성하고, 인증기관 등록 트랜잭션 스크립트를 블록체인 노드에 전송할 수 있다.Before transmitting the user certificate address and user identification information to the second certification authority, the second authentication management server uses the user certificate address and the second certification authority identification information corresponding to the second certification authority to register the user certificate in advance. A certification authority registration transaction script for updating the certificate mapping information table may be generated, and a certification authority registration transaction script may be transmitted to a blockchain node.

이에 따라, 블록체인 노드에 의한 트랜잭션 스크립트가 실행되는 경우 인증기관 등록 스마트 컨트랙트(smart contract) 함수가 호출되어, 사용자 인증서 주소에 제2 인증기관 식별정보가 추가 매핑되도록 인증서 매핑 정보 테이블이 갱신될 수 있다.Accordingly, when the transaction script by the blockchain node is executed, the certificate mapping information table may be updated so that the certification authority registration smart contract function is called and the second certification authority identification information is additionally mapped to the user certificate address. have.

여기서, 인증서 매핑 정보 테이블은 사용자 인증서 주소 필드, 사용자 식별정보 필드, 사용자 단말 식별정보 및 인증기관 식별정보 필드를 포함하고, 사용자 인증서에 대한 데이터 무결성을 검증하기 위해 사용자 인증서 주소 필드, 사용자 식별정보 필드 및 사용자 단말 식별정보 필드 각각에 대해 고유 인덱스(index)가 작성될 수 있다.Here, the certificate mapping information table includes a user certificate address field, a user identification information field, a user terminal identification information, and a certification authority identification information field, and a user certificate address field and a user identification information field to verify data integrity for the user certificate. And a unique index for each user terminal identification information field.

선택적 실시예로서, 제2 인증관리서버는 인증기관 등록 트랜잭션 스크립트를 블록체인 노드에 전송하기 전에, 사용자 인증서 주소에 대응되는 사용자 UTXO(Unspent Transaction Output)의 수가 1인지 여부에 기초하여 사용자 인증서의 유효성 판단을 수행할 수 있다.다음으로, 제2 인증관리서버가, 제2 인증기관으로부터 사용자 인증서의 인증기관 등록 결과를 수신하고, 인증기관 등록 결과를 사용자 단말에 전송한다(S730).As an optional embodiment, before the second authentication management server sends the certification authority registration transaction script to the blockchain node, the validity of the user certificate based on whether the number of unspent transaction outputs (UTXO) corresponding to the user certificate address is 1 Next, the second authentication management server receives the authentication authority registration result of the user certificate from the second authentication authority, and transmits the authentication authority registration result to the user terminal (S730).

비록 도 7에는 도시되지 아니하였으나, 본 발명의 다른 일 실시예에 따른 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 방법은 제2 인증관리서버가, 제2 인증기관의 요청에 따라 블록체인에 등록된 사용자 인증서를 폐지시키기 위해 아래 과정을 더 수행할 수 있다.Although not shown in FIG. 7, the method for managing the status of a certificate based on a blockchain and a smart contract according to another embodiment of the present invention includes: a second authentication management server, a user registered in the blockchain at the request of the second authentication authority In order to revoke the certificate, the following process can be further performed.

먼저 제2 인증관리서버는, 제2 인증기관으로부터 사용자 인증서 주소를 포함하는, 사용자 인증서의 인증서 폐지 요청을 수신할 수 있다.First, the second authentication management server may receive a certificate revocation request of the user certificate, including the user certificate address from the second authentication authority.

또한 제2 인증관리서버는, 사용자 인증서 주소를 이용하여, 사용자 인증서가 최초 등록 시 생성된 제1 사용자 UTXO와 서로 다른 제2 사용자 UTXO를 생성하는 제1 인증서 폐지 트랜잭션 스크립트를 생성하여 제1 인증서 폐지 트랜잭션 스크립트를 블록체인 노드에 전송할 수 있다.In addition, the second authentication management server uses the user certificate address to generate a first certificate revocation transaction script that creates a second user UTXO that is different from the first user UTXO created when the user certificate is first registered. Transaction scripts can be sent to blockchain nodes.

여기서, 제1 인증서 폐지 트랜잭션 스크립트는 미리 생성된 제2 인증관리서버 UTXO에 대응되는 제2 인증관리서버 서명을 송신자 정보로 포함하고, 다중서명 주소를 수신자 정보로 포함할 수 있다.Here, the first certificate revocation transaction script may include a second authentication management server signature corresponding to the pre-generated second authentication management server UTXO as sender information and a multi-signature address as recipient information.

이에 따라, 블록체인 노드에 의한 제1 인증서 폐지 트랜잭션 스크립트의 실행되는 경우, 제2 인증관리서버 UTXO가 STXO로 전환되면서 동시에 제2 사용자 UTXO가 생성될 수 있다.Accordingly, when the first certificate revocation transaction script is executed by the blockchain node, the second authentication management server UTXO is converted to STXO and a second user UTXO can be generated at the same time.

또한, 블록체인 노드에 의한 제1 인증서 폐지 트랜잭션 스크립트가 실행되는 경우 인증서 폐지 요청 스마트 컨트랙트 함수가 호출되어, 사용자 인증서가 최초 등록된 제1 인증기관에 대응되는 제1 인증관리서버에 폐지 요청 이벤트가 전송될 수 있다.In addition, when the first certificate revocation transaction script executed by the blockchain node is executed, a request for revocation of the smart contract function is called, and a revocation request event is sent to the first authentication management server corresponding to the first certificate authority where the user certificate is initially registered. Can be sent.

이 경우, 제1 인증관리서버가 폐지 요청 이벤트에 대응하여 제2 인증서 폐지 트랜잭션 스크립트를 생성하고, 제2 인증서 폐지 트랜잭션 스크립트가 블록체인 노드에 전송될 수 있다.In this case, the first authentication management server may generate a second certificate revocation transaction script in response to the revocation request event, and the second certificate revocation transaction script may be transmitted to the blockchain node.

여기서, 제2 인증서 폐지 트랜잭션 스크립트는 다중서명 주소에 대해 서명 검증이 가능한 제1 인증관리서버 서명을 송신자 정보로 포함하고, 제1 인증관리서버 공개 키 및 제2 인증관리서버 공개 키 각각을 수신자 정보로 포함할 수 있다.Here, the second certificate revocation transaction script includes, as sender information, a first authentication management server signature capable of verifying signatures for multiple signature addresses, and a first authentication management server public key and a second authentication management server public key, respectively, as recipient information. It can contain as.

이에 따라, 블록체인 노드에 의한 제2 인증서 폐지 트랜잭션 스크립트가 실행되는 경우 제1 사용자 UTXO 및 제2 사용자 UTXO가 모두 STXO(Spent Transaction Output)로 전환되면서 사용자 인증서가 폐지될 수 있다.Accordingly, when the second certificate revocation transaction script is executed by the blockchain node, both the first user UTXO and the second user UTXO are converted to STXO (Spent Transaction Output), and the user certificate may be repealed.

예컨대, 블록체인 노드에 의한 제2 인증서 폐지 트랜잭션 스크립트의 실행에 따라 제1 사용자 UTXO가 STXO로 전환되면서 동시에 제1 인증관리서버에 대응되는 새로운 제1 인증관리서버 UTXO가 생성되고, 제2 사용자 UTXO가 STXO로 전환되면서 동시에 제2 인증관리서버에 대응되는 새로운 제2 인증관리서버 UTXO가 생성될 수 있다.For example, upon execution of the transaction script for revocation of the second certificate by the blockchain node, the first user UTXO is converted to STXO, and at the same time, a new first authentication management server UTXO corresponding to the first authentication management server is generated, and the second user UTXO As the switch to STXO, a new second authentication management server UTXO corresponding to the second authentication management server may be created at the same time.

여기서, 제1 사용자 UTXO는 사용자 인증서에 포함된 사용자 공개 키 및 제1 인증관리서버에서 미리 생성된 제1 인증관리서버 공개 키를 이용하여 생성된 다중서명 주소를 수신자 정보로 포함하는 인증서 등록 트랜잭션 스크립트의 실행 결과로 생성된 것일 수 있다.Here, the first user UTXO is a certificate registration transaction script including, as recipient information, a multi-signature address generated using a user public key included in a user certificate and a first authentication management server public key previously generated in the first authentication management server. It may be generated as a result of the execution.

도 8은 본 발명에 따른 인증서 등록 방법의 다른 일 예를 나타낸 동작 흐름도이다.8 is an operation flowchart showing another example of a method for registering a certificate according to the present invention.

도 8은 사용자 단말(110)이 제1 인증기관에 대해 등록된 사용자 인증서를 이용하여 제2 인증기관으로부터 서비스를 제공 받기 위해, 제2 인증기관에 대해서도 사용자 인증서를 등록하는 방법의 일 예를 나타낸 것이다.FIG. 8 shows an example of a method in which the user terminal 110 registers a user certificate with the second certification authority to receive service from the second certification authority using the user certificate registered for the first certification authority. will be.

도 8을 참조하면, 먼저 사용자 단말(110)이 제2 인증관리서버(620)에 사용자 인증서 주소를 전송하면서 사용자 인증서의 제2 인증기관에 대한 인증기관 등록을 요청한다(S810).Referring to FIG. 8, first, the user terminal 110 transmits a user certificate address to the second authentication management server 620 and requests registration of a certification authority for the second certification authority of the user certificate (S810).

제2 인증관리서버(620)는 블록체인 노드(130)로부터 사용자 인증서 주소에 대응되는 사용자 UTXO를 조회하고(S820), 사용자 UTXO의 수가 1인지 여부에 기초하여 인증서 유효성을 검증한다(S821).The second authentication management server 620 queries the user UTXO corresponding to the user certificate address from the blockchain node 130 (S820), and verifies the certificate validity based on whether the number of user UTXOs is 1 (S821).

제2 인증관리서버(620)는 블록체인 노드(130)로부터 인증서 매핑 정보를 조회하고(S830), 사용자 인증서 주소, 사용자 인증서 주소에 매핑된 사용자 식별정보, 사용자 인증서 주소에 매핑된 사용자 단말 식별정보가 일대일대일(1:1:1) 관계인지 여부에 기초하여 사용자 인증서의 무결성을 검증한다(S831).The second authentication management server 620 retrieves the certificate mapping information from the blockchain node 130 (S830), user certificate address, user identification information mapped to the user certificate address, and user terminal identification information mapped to the user certificate address. Is a one-to-one (1:1:1) relationship based on whether the integrity of the user certificate is verified (S831).

단계(S821) 및 단계(S831)의 검증들이 모두 완료된 경우, 제2 인증관리서버(620)는 인증기관 등록 트랜잭션 스크립트를 생성하여 블록체인 노드(130)에 전송한다(S840).When the verifications of steps S821 and S831 are all completed, the second authentication management server 620 generates a certification authority registration transaction script and transmits it to the blockchain node 130 (S840).

블록체인 노드(130)는 인증기관 등록 트랜잭션 스크립트를 실행하여 인증서 매핑 정보를 갱신하고(S841), 이에 따라 사용자 인증서 주소 및 제2 인증기관에 대응되는 기관 식별정보가 매핑되어 인증서 매핑 정보 테이블에 추가될 수 있다.The blockchain node 130 updates the certificate mapping information by executing the certification authority registration transaction script (S841), and accordingly the user certificate address and the authority identification information corresponding to the second certification authority are mapped and added to the certificate mapping information table. Can be.

또한, 제2 인증관리서버(620)가 사용자 인증서 주소 및 사용자 식별정보를 제2 인증기관(625)에 전송한다(S850).In addition, the second authentication management server 620 transmits the user certificate address and user identification information to the second authentication authority 625 (S850).

제2 인증기관(625)은 사용자 식별정보를 이용하여 제2 인증기관(625)이 자체 보유하는 고객 번호를 검색하고, 사용자 인증서 주소와 고객 번호를 매핑함으로써 인증기관 등록을 수행한다(S851).The second certification authority 625 searches for the customer number owned by the second certification authority 625 using the user identification information, and registers the certification authority by mapping the user certificate address and the customer number (S851).

인증기관 등록이 완료된 경우, 제2 인증기관(625)은 인증기관 등록 결과를 제2 인증관리서버(620)를 경유하여 사용자 단말(110)에 전송한다(S860).When the certification authority registration is completed, the second certification authority 625 transmits the certification authority registration result to the user terminal 110 via the second certification management server 620 (S860).

도 9는 본 발명에 따른 인증서 폐지 방법의 다른 일 예를 나타낸 동작 흐름도이다.9 is an operation flowchart showing another example of a certificate revocation method according to the present invention.

특히, 도 9는 제2 인증기관(625)이 제2 인증관리서버(620)와 서로 다른 제1 인증관리서버(610)를 통해 블록체인에 등록된 사용자 인증서를 폐지시키는 방법의 일 예를 나타낸 것이다.In particular, FIG. 9 shows an example of a method in which the second certification authority 625 abolishes the user certificate registered in the blockchain through the second authentication management server 620 and the first authentication management server 610 different from each other. will be.

도 9를 참조하면, 먼저 사용자로부터 웹 페이지 또는 사용자 단말을 통한 인증서 폐지 요청이 있는 경우, 제2 인증기관(625)이 제2 인증관리서버(620)에 고객 번호에 매핑된 사용자 인증서 주소를 전송하여 인증서 폐지를 요청한다(S910).Referring to FIG. 9, first, when a certificate revocation request is made through a web page or a user terminal from a user, the second authentication authority 625 transmits the user certificate address mapped to the customer number to the second authentication management server 620. To request the revocation of the certificate (S910).

한편, 제2 인증관리서버(620)는 단계(S910) 전에 공개 키 암호 방식을 이용하여 제2 인증관리서버 키 쌍을 생성하고(S901), 제2 인증관리서버 키 쌍을 이용하여 제2 인증관리서버 UTXO를 생성한다(S902).Meanwhile, the second authentication management server 620 generates a second authentication management server key pair using a public key encryption method before step S910 (S901), and performs a second authentication using the second authentication management server key pair. The management server UTXO is generated (S902).

제2 인증관리서버(620)는 블록체인 노드(130)로부터 사용자 인증서 주소에 대응되는 사용자 UTXO를 조회하고(S920), 사용자 UTXO의 수가 1인지 여부에 기초하여 인증서 유효성을 검증한다(S921).The second authentication management server 620 queries the user UTXO corresponding to the user certificate address from the blockchain node 130 (S920), and verifies the certificate validity based on whether the number of user UTXOs is 1 (S921).

또한, 제2 인증관리서버(620)는 블록체인 노드(130)로부터 인증서 매핑 정보를 조회하고(S930), 제2 인증기관(625)에 대응되는 기관 식별정보에 대해, 사용자 인증서 주소에 매핑된 기관 식별정보와의 동일 여부를 판단하여 인증기관 검증을 수행한다(S931).In addition, the second authentication management server 620 retrieves the certificate mapping information from the blockchain node 130 (S930), and the authority identification information corresponding to the second authentication authority 625 is mapped to the user certificate address. It is determined whether it is the same as the institution identification information and performs verification by the certification authority (S931).

단계(S921) 및 단계(S931)의 검증들이 모두 완료된 경우, 제2 인증관리서버(620)는 제2 인증관리서버 개인 키로 서명된 제1 인증서 폐지 트랜잭션 스크립트를 생성한다(S940).When the verifications of steps S921 and S931 are all completed, the second authentication management server 620 generates a first certificate revocation transaction script signed with the second authentication management server private key (S940).

제2 인증관리서버(620)가 제1 인증서 폐지 트랜잭션 스크립트를 블록체인 노드(130)에 전송하면(S941), 블록체인 노드(130)가 제1 인증서 폐지 트랜잭션 스크립트를 실행한다(S950).When the second authentication management server 620 transmits the first certificate revocation transaction script to the blockchain node 130 (S941), the blockchain node 130 executes the first certificate revocation transaction script (S950).

여기서, 블록체인 노드(130)는 제1 인증서 폐지 트랜잭션 스크립트를 실행하면서, 트랜잭션에 대한 서명 검증을 수행할 수 있다.Here, the blockchain node 130 may perform signature verification for the transaction while executing the first certificate revocation transaction script.

트랜잭션에 대한 검증이 완료된 경우, 블록체인 노드(130)는 제2 인증관리서버 UTXO를 STXO로 전환시키고, 동시에 제2 사용자 UTXO를 생성시킨다(S960).When the transaction verification is completed, the blockchain node 130 converts the second authentication management server UTXO to STXO, and at the same time creates a second user UTXO (S960).

여기서, 제2 사용자 UTXO는 제1 인증관리서버(610)에 의해 사용자 인증서가 블록체인에 등록되는 단계(S903)에서 생성된 제1 사용자 UTXO와 구분되는 것일 수 있다.Here, the second user UTXO may be distinguished from the first user UTXO generated in step S903 in which the user certificate is registered in the blockchain by the first authentication management server 610.

여기서, 블록체인 노드(130)는 제2 인증관리서버 UTXO에 포함되어 있던 양(amount)과 동일한 양을 갖는 제2 사용자 UTXO를 생성시킨다. 이에 따라, 블록체인 노드(130)는 제2 인증관리서버 소유의 자산 일부를 사용자에게 할당시킬 수 있다.Here, the blockchain node 130 generates a second user UTXO having the same amount as the amount included in the second authentication management server UTXO. Accordingly, the blockchain node 130 may allocate a portion of the assets owned by the second authentication management server to the user.

비록 도 9에는 도시되지 아니하였으나, 블록체인 노드(130)는 트랜잭션 스크립트 실행 결과를 메모리풀에 임시 저장하고, 트랜잭션 스크립트 실행 결과를 제2 인증관리서버(620)에 전송할 수 있다.Although not shown in FIG. 9, the blockchain node 130 may temporarily store the transaction script execution result in a memory pool, and transmit the transaction script execution result to the second authentication management server 620.

또한, 블록체인 노드(130)는 메모리풀에 임시 저장된 트랜잭션들을 소정의 주기마다 새로이 마이닝된 블록에 포함시켜 기존의 블록체인에 연결시킬 수 있다.In addition, the blockchain node 130 may include transactions temporarily stored in the memory pool in a newly mined block every predetermined period to connect to an existing blockchain.

한편, 블록체인 노드(130)에서는 트랜잭션 스트립트의 실행 도중 트랜잭션 스트립트에 스마트 컨트랙트 함수의 호출 파라미터가 포함된 경우, 스마트 컨트랙트 함수를 호출하여 사용자 인증서 주소를 포함하는 폐지 대상 정보를 생성할 수 있다.On the other hand, when the transaction script includes the call parameter of the smart contract function during the execution of the transaction script, the blockchain node 130 may call the smart contract function to generate revocation target information including the user certificate address.

폐지 대상 정보에는 제1 인증관리서버에 대응되는 식별정보, 블록체인에 연결된 현재 블록의 식별정보 및 사용자 인증서 주소가 포함될 수 있다.The abolition target information may include identification information corresponding to the first authentication management server, identification information of the current block connected to the blockchain, and a user certificate address.

또한, 블록체인 노드(130)는 사용자 인증서를 최초 등록한 제1 인증관리서버(610)에 폐지 요청 이벤트(event)를 전송한다(S961).In addition, the blockchain node 130 transmits a revocation request event to the first authentication management server 610 that initially registers the user certificate (S961).

여기서, 블록체인 노드(130)는 메모리풀에 임시 저장된 트랜잭션들이 블록에 포함되어 블록체인에 연결되는 시점에, 블록에 포함된 폐지 대상 사용자 인증서들을 최초 등록한 인증관리서버들에 폐지 요청 이벤트를 일괄 전송할 수 있다.Here, the blockchain node 130 transmits a revocation request event to the authentication management servers that initially registered the revocation target user certificates included in the block when transactions temporarily stored in the memory pool are included in the block and connected to the blockchain. Can be.

제1 인증관리서버(610)는 제1 인증관리서버 개인 키로 서명된 제2 인증서 폐지 트랜잭션 스크립트를 생성한다(S970).The first authentication management server 610 generates a second certificate revocation transaction script signed with the first authentication management server private key (S970).

여기서, 제1 인증관리서버(610)는 블록체인 노드(130)로부터 폐지 대상 정보를 조회하고, 폐지 대상 정보에 기초하여 제2 인증서 폐지 트랜잭션 스크립트를 생성할 수 있다.Here, the first authentication management server 610 may query the revocation target information from the blockchain node 130 and generate a second certificate revocation transaction script based on the revocation target information.

제1 인증관리서버(610)가 제2 인증서 폐지 트랜잭션 스크립트를 블록체인 노드(130)에 전송하면(S971), 블록체인 노드(130)가 제2 인증서 폐지 트랜잭션 스크립트를 실행한다(S980).When the first authentication management server 610 transmits the second certificate revocation transaction script to the blockchain node 130 (S971), the blockchain node 130 executes the second certificate revocation transaction script (S980).

블록체인 노드(130)는 제2 인증서 폐지 트랜잭션 스크립트를 실행하면서, 트랜잭션에 대한 서명 검증을 수행한다(S981).The blockchain node 130 executes the second certificate revocation transaction script, and performs signature verification for the transaction (S981).

트랜잭션에 대한 검증이 완료된 경우, 블록체인 노드(130)는 제1 사용자 UTXO 및 제2 사용자 UTXO를 모두 STXO로 전환시키고, 동시에 제1 인증관리서버 UTXO 및 제2 인증관리서버 UTXO를 생성시킨다(S990).When the transaction verification is completed, the blockchain node 130 converts both the first user UTXO and the second user UTXO to STXO, and simultaneously creates the first authentication management server UTXO and the second authentication management server UTXO (S990). ).

여기서, 제1 인증관리서버 개인 키는 제1 사용자 UTXO 및 제2 사용자 UTXO에 포함된 잠금 스크립트를 해제시키는 해제 스크립트의 역할을 수행하며, 블록체인 노드(130)는 제1 사용자 UTXO에 포함되어 있던 양과 동일한 양을 갖는 제1 인증관리서버 UTXO를 생성시키고, 제2 사용자 UTXO에 포함되어 있단 양과 동일한 양을 갖는 제2 인증관리서버 UTXO를 생성시킨다. 이에 따라, 블록체인 노드(130)는 사용자에게 할당된 자산을 제1 인증관리서버와 제2 인증관리서버에 각각 반환시킬 수 있다.Here, the first authentication management server private key serves as a release script to release the lock scripts included in the first user UTXO and the second user UTXO, and the blockchain node 130 was included in the first user UTXO. The first authentication management server UTXO having the same amount as the amount is generated, and the second authentication management server UTXO having the same amount as the amount included in the second user UTXO is generated. Accordingly, the blockchain node 130 may return the assets allocated to the user to the first authentication management server and the second authentication management server, respectively.

블록체인 노드(130)는 트랜잭션 스크립트 실행 결과를 메모리풀에 임시 저장하고, 트랜잭션 스크립트 실행 결과를 제1 인증관리서버(610) 및 제2 인증관리서버(620)에 각각 전송한다(S991).The blockchain node 130 temporarily stores the execution result of the transaction script in the memory pool, and transmits the execution result of the transaction script to the first authentication management server 610 and the second authentication management server 620, respectively (S991).

한편, 블록체인 노드(130)에서는 트랜잭션 스트립트의 실행 도중 트랜잭션 스트립트에 스마트 컨트랙트 함수의 호출 파라미터가 포함된 경우, 스마트 컨트랙트 함수를 호출하여 인증서 매핑 정보를 갱신한다(S995).On the other hand, when the transaction script includes the call parameter of the smart contract function during the execution of the transaction script, the blockchain node 130 updates the certificate mapping information by calling the smart contract function (S995).

여기서, 스마트 컨트랙트 함수의 결과(return) 값으로, 사용자 인증서 주소, 사용자 식별정보 및 사용자 단말 식별정보 중 적어도 하나에 매핑된 정보가 인증서 매핑 정보 테이블에서 삭제될 수 있다.Here, as a return value of the smart contract function, information mapped to at least one of a user certificate address, user identification information, and user terminal identification information may be deleted from the certificate mapping information table.

또한, 블록체인 노드(130)는 메모리풀에 임시 저장된 트랜잭션들을 소정의 주기마다 새로이 마이닝된 블록에 포함시켜 기존의 블록체인에 연결시킨다(S996).In addition, the blockchain node 130 includes transactions temporarily stored in the memory pool in a newly mined block every predetermined period to connect to the existing blockchain (S996).

도 10은 본 발명의 일 실시예에 따른 사용자 인증에 기초한 암호 키 제공 시스템을 나타낸 블록도이다.10 is a block diagram showing a system for providing an encryption key based on user authentication according to an embodiment of the present invention.

도 10을 참조하면, 본 발명의 일 실시예에 따른 사용자 인증에 기초한 암호 키 제공 시스템은 사용자 단말(110)과 서버(1010)를 포함한다.Referring to FIG. 10, an encryption key providing system based on user authentication according to an embodiment of the present invention includes a user terminal 110 and a server 1010.

사용자 단말(110)과 관련하여 도 1에서의 설명과 중복되는 설명은 생략하기로 한다.The description overlapping with the description in FIG. 1 in relation to the user terminal 110 will be omitted.

사용자 단말(110)은 공개 키 암호 방식을 이용하여 생성된 사용자 개인 키를 암호화하여 사용자 단말(110)의 저장소에 저장한다.The user terminal 110 encrypts the user private key generated using the public key encryption method and stores it in the storage of the user terminal 110.

여기서, 사용자 단말(110)은 암호화된 사용자 개인 키의 복호화를 위해 사용자 인증을 수행하기 위한 적어도 하나의 사용자 인증 수단을 포함한다.Here, the user terminal 110 includes at least one user authentication means for performing user authentication for decryption of the encrypted user private key.

예컨대, 사용자 인증 수단은 PIN(Personal Identification Number) 인증 방식, 패턴 인증 방식 및 생체 인증 방식 중 적어도 하나를 포함할 수 있으며, 본 발명의 범위가 상술한 사용자 인증 방식에 한정되는 것은 아니다.For example, the user authentication means may include at least one of a PIN (Personal Identification Number) authentication method, a pattern authentication method, and a biometric authentication method, and the scope of the present invention is not limited to the user authentication method described above.

서버(1010)는 사용자 인증에 기초한 암호 키 제공 방법을 제공하기 위해, 암호 키 발급 요청 수신부(1012), 암호 키 생성부(1014) 및 암호 키 전송부(1016)를 포함한다.The server 1010 includes an encryption key issuance request receiving unit 1012, an encryption key generation unit 1014, and an encryption key transmission unit 1016 to provide a method for providing an encryption key based on user authentication.

암호 키 발급 요청 수신부(1012)는 사용자 단말(110)로부터 사용자 인증 수단의 수행 결과 값에 대응되는 사용자 단말 시드 값을 포함하는 사용자 암호 키 발급 요청을 수신한다.The encryption key issuance request receiving unit 1012 receives a user encryption key issuance request including a user terminal seed value corresponding to a result value of the user authentication means from the user terminal 110.

암호 키 생성부(1014)는 사용자 단말 시드 값과 서버 시드 값에 기초하여 사용자 암호 키를 생성한다.The encryption key generator 1014 generates a user encryption key based on the user terminal seed value and the server seed value.

암호 키 전송부(1016)는 사용자 암호 키를 사용자 단말(110)에 전송한다.The encryption key transmission unit 1016 transmits the user encryption key to the user terminal 110.

도 11은 본 발명의 일 실시예에 따른 사용자 인증에 기초한 암호 키 제공 방법을 나타낸 동작 흐름도이다.11 is an operation flowchart illustrating a method for providing an encryption key based on user authentication according to an embodiment of the present invention.

도 11을 참조하면, 본 발명의 일 실시예에 따른 사용자 인증에 기초한 암호 키 제공 방법은 서버가, 사용자 단말로부터 사용자 단말에 대응되는 사용자 단말 식별정보 및 사용자 단말에서 지원하는 복수의 사용자 인증 수단들 중 어느 하나인 제1 사용자 인증 수단의 수행 결과 값에 대응되는 제1 사용자 단말 시드(seed) 값을 포함하는 사용자 암호 키 발급 요청을 수신한다(S1110).Referring to FIG. 11, a method for providing an encryption key based on user authentication according to an embodiment of the present invention includes: a user terminal identification information corresponding to a user terminal from a user terminal and a plurality of user authentication means supported by the user terminal A user encryption key issuance request including a first user terminal seed value corresponding to a result value of the execution of the first user authentication means, which is any one, is received (S1110).

다음으로, 서버가, 사용자 단말 식별정보, 제1 사용자 단말 시드 값 및 미리 생성된 서버 시드 값에 기초하여 제1 사용자 암호 키를 생성한다(S1120).Next, the server generates a first user encryption key based on the user terminal identification information, the first user terminal seed value, and a pre-generated server seed value (S1120).

단계(S1120)에서 서버는 사용자 암호 키 발급 요청에 대응하여, 사용자 단말의 요청 횟수를 산출할 수 있다.In step S1120, the server may calculate the number of requests of the user terminal in response to the request for issuing the user encryption key.

단계(S1120)에서 서버는 사용자 단말의 요청 횟수가 미리 설정된 요청 횟수 한도 내인 경우, 제1 사용자 암호 키를 생성할 수 있다.In step S1120, the server may generate a first user encryption key when the number of requests of the user terminal is within a preset number of requests.

선택적 실시예로서, 사용자 암호 키 발급 요청은 복수의 사용자 인증 수단들에 대응되는 사용자 인증 수단 식별정보들 중 어느 하나를 더 포함하고, 단계(S1120)에서 서버는 사용자 인증 수단 식별정보에 기초하여, 복수의 사용자 인증 수단들 각각에 대해 개별적으로 요청 횟수를 산출할 수 있다.As an optional embodiment, the request for issuing a user encryption key further includes any one of user authentication means identification information corresponding to a plurality of user authentication means, and in step S1120, the server is based on the user authentication means identification information, The number of requests may be individually calculated for each of the plurality of user authentication means.

여기서, 요청 횟수 한도는 복수의 사용자 인증 수단들 각각에 대해 개별적으로 설정될 수 있다.Here, the request number limit may be individually set for each of the plurality of user authentication means.

예컨대, 요청 횟수 한도는 복수의 사용자 인증 수단들 각각에 대해 미리 설정된 인증 난이도에 기초하여, 제1 인증 난이도로 설정된 제1 사용자 인증 수단에 대응되는 제1 요청 횟수 한도가, 제1 인증 난이도보다 낮은 제2 인증 난이도로 설정된 제2 사용자 인증 수단에 대응되는 제2 요청 횟수 한도보다 높게 설정되는 것일 수 있다.For example, the request number limit is based on a preset authentication difficulty level for each of the plurality of user authentication means, and the first request number limit corresponding to the first user authentication means set to the first authentication difficulty level is lower than the first authentication difficulty level. It may be set higher than the second request number limit corresponding to the second user authentication means set as the second authentication difficulty.

다음으로, 서버가, 제1 사용자 암호 키를 사용자 단말에 전송한다(S1130).Next, the server transmits the first user encryption key to the user terminal (S1130).

여기서, 서버 및 사용자 단말 간에는 서버로부터 생성된 세션 키를 이용한 보안 구간이 형성되고, 서버는 보안 구간을 통해 제1 사용자 암호 키를 사용자 단말에 전송할 수 있다.Here, between the server and the user terminal, a security section using a session key generated from the server is formed, and the server can transmit the first user encryption key to the user terminal through the security section.

이에 따라, 사용자 단말에 의해, 사용자 단말에서 생성된 사용자 인증서에 대응되는 사용자 개인 키가 제1 사용자 암호 키로 암호화되어 저장될 수 있다.Accordingly, by the user terminal, the user private key corresponding to the user certificate generated in the user terminal may be encrypted and stored as the first user encryption key.

단계(S1120)에서 서버는 제1 사용자 인증 수단에 대응되는 요청 횟수가 제1 사용자 인증 수단에 대응되는 요청 횟수 한도 내인 경우, 제1 사용자 암호 키를 생성할 수 있다.In step S1120, when the number of requests corresponding to the first user authentication means is within the limit of the number of requests corresponding to the first user authentication means, the server may generate a first user encryption key.

비록 도 11에는 도시되지 아니하였으나, 본 발명의 일 실시예에 따른 사용자 인증에 기초한 암호 키 제공 방법은 사용자 단말의 요청에 따라 사용자 인증 수단을 교체하기 위해 아래 과정을 더 수행할 수 있다.Although not shown in FIG. 11, the method for providing an encryption key based on user authentication according to an embodiment of the present invention may further perform the following process to replace the user authentication means at the request of the user terminal.

먼저 서버는, 사용자 단말로부터 사용자 단말 식별정보, 제1 사용자 단말 시드 값 및 복수의 사용자 인증 수단들 중 제1 사용자 인증 수단과 서로 다른 하나인 제2 사용자 인증 수단의 수행 결과 값에 대응되는 제2 사용자 단말 시드 값을 포함하는 사용자 암호 키 교체 요청을 수신할 수 있다.First, the server, the user terminal identification information from the user terminal, the first user terminal seed value and a second value corresponding to the result of execution of the second user authentication means which is different from the first user authentication means among the plurality of user authentication means A user encryption key replacement request including a user terminal seed value may be received.

또한 서버는, 사용자 단말 식별정보, 제1 사용자 단말 시드 값 및 서버 시드 값에 기초하여 제1 사용자 암호 키를 생성하고, 사용자 단말 식별정보, 제2 사용자 단말 시드 값 및 서버 시드 값에 기초하여 제2 사용자 암호 키를 생성할 수 있다.In addition, the server generates a first user encryption key based on the user terminal identification information, the first user terminal seed value, and the server seed value, and generates the first user encryption key based on the user terminal identification information, the second user terminal seed value, and the server seed value. 2 A user encryption key can be generated.

또한 서버는, 제1 사용자 암호 키 및 제2 사용자 암호 키를 사용자 단말에 전송할 수 있다.In addition, the server may transmit the first user encryption key and the second user encryption key to the user terminal.

이에 따라, 사용자 단말에 의해, 사용자 개인 키가 제1 사용자 암호 키로 복호화된 후, 제2 사용자 암호 키로 암호화되어 저장될 수 있다.Accordingly, by the user terminal, the user private key may be decrypted with the first user encryption key, and then encrypted and stored with the second user encryption key.

선택적 실시예로서, 사용자 암호 키 교체 요청은 블록체인(blockchain) 상에서 사용자 인증서가 등록되는 위치를 나타내는 사용자 인증서 주소를 더 포함할 수 있다.As an optional embodiment, the user encryption key replacement request may further include a user certificate address indicating a location where the user certificate is registered on the blockchain.

이 경우, 서버는 사용자 인증서 주소에 대응되는 사용자 UTXO(Unspent Transaction Output)의 수에 기초하여 사용자 인증서의 유효성 검증을 수행하고, 유효성 판단 결과, 사용자 인증서가 유효한 경우에 제2 사용자 암호 키를 생성할 수 있다.In this case, the server performs validation of the user certificate based on the number of user unspent transaction output (UTXO) corresponding to the user certificate address, and as a result of validity determination, generates a second user encryption key when the user certificate is valid Can be.

여기서 사용자 UTXO는 사용자 인증서를 블록체인 상에 등록하기 위한 트랜잭션(transaction) 스크립트(script)에 대응하여 생성된 제1 사용자 UTXO, 및 사용자 인증서를 블록체인 상에서 폐지된 것으로 상태 전환하기 위한 트랜잭션 스크립트에 대응하여 생성된 제2 사용자 UTXO 중 어느 하나이고, 서버는 사용자 인증서 주소에 대응되는 사용자 UTXO의 수가 1인 경우, 사용자 인증서가 유효한 것으로 판단하고, 사용자 인증서 주소에 대응되는 사용자 UTXO의 수가 0 또는 2인 경우, 사용자 인증서가 유효하지 않은 것으로 판단할 수 있다.Here, the user UTXO corresponds to a first user UTXO generated in response to a transaction script for registering a user certificate on the blockchain, and a transaction script for transitioning the user certificate to a state that is revoked on the blockchain. If the number of user UTXOs corresponding to the user certificate address is 1, the server determines that the user certificate is valid, and the number of user UTXOs corresponding to the user certificate address is 0 or 2 In this case, it may be determined that the user certificate is not valid.

도 12는 본 발명에 따른 사용자 인증 수단을 이용한 사용자 개인 키 암호화 방법의 일 예를 나타낸 동작 흐름도이다.12 is an operation flowchart showing an example of a user private key encryption method using a user authentication means according to the present invention.

도 12를 참조하면, 먼저 사용자 단말(110)이 사용자 공개 키 및 사용자 공개 키와 쌍을 이루는 사용자 개인 키를 생성한다(S1201).Referring to FIG. 12, first, the user terminal 110 generates a user public key and a user private key paired with the user public key (S1201).

다음으로, 사용자 단말(110)이 복수의 사용자 인증 수단들 중 어느 하나에 따라 사용자 인증을 수행하고(S1202), 사용자 인증 수행 결과 값에 대응되는 사용자 단말 시드 값을 생성하고(S1203), 사용자 단말 시드 값을 서버(1010)에 전송하여 사용자 암호 키 발급을 요청한다(S1210).Next, the user terminal 110 performs user authentication according to any one of a plurality of user authentication means (S1202), generates a user terminal seed value corresponding to the user authentication execution result value (S1203), and the user terminal The seed value is transmitted to the server 1010 to request the issuance of a user encryption key (S1210).

단계(S1203)에서 사용자 단말(110)은 사용자가 사용자 인증을 수행하기 위해 입력한 고유 값으로부터 사용자 단말 시드 값을 생성할 수 있다. 예컨대, 단계(S1203)에서 사용자 단말(110)은 사용자가 사용자 인증을 수행하기 위해 입력한 고유 값에 해시(hash) 함수를 적용하여 사용자 단말 시드 값을 생성할 수 있다.In step S1203, the user terminal 110 may generate a user terminal seed value from a unique value input by the user to perform user authentication. For example, in step S1203, the user terminal 110 may generate a user terminal seed value by applying a hash function to a unique value input by the user to perform user authentication.

한편, 서버(1010)는 단계(S1210) 전에 서버 시드 값을 생성하고, 서버 시드 값에 대해서 암호화를 수행하여 서버(1010)의 저장소에 저장한다(S1203).Meanwhile, the server 1010 generates a server seed value before step S1210, encrypts the server seed value, and stores it in the storage of the server 1010 (S1203).

여기서, 서버 시드 값에 대해서 화이트박스(whitebox) 암호화가 수행될 수 있으며, 서버 시드 값에 수행되는 암호화 방법이 이에 제한되는 것은 아니다.Here, whitebox encryption may be performed on the server seed value, and the encryption method performed on the server seed value is not limited thereto.

서버(1010)는 암호화된 서버 시드 값을 복호화하고, 사용자 단말 시드 값과 서버 시드 값을 함께 이용하여 사용자 암호 키를 생성한다(S1220).The server 1010 decrypts the encrypted server seed value, and generates a user encryption key by using the user terminal seed value and the server seed value together (S1220).

서버(1010)가 사용자 단말(110)에 사용자 암호 키를 전송하면(S1230), 사용자 단말(110)이 사용자 개인 키를 사용자 암호 키로 암호화하여 사용자 단말(110)의 저장소에 저장한다(S1240).When the server 1010 transmits the user encryption key to the user terminal 110 (S1230), the user terminal 110 encrypts the user private key with the user encryption key and stores it in the storage of the user terminal 110 (S1240).

선택적 실시예로서, 사용자 단말(110)에서 사용자 개인 키를 이용하여 서명을 수행하려는 경우, 사용자 개인 키를 암호화 저장할 때 사용한 사용자 인증 수단과 동일한 인증 수단을 통해 사용자 인증을 수행하여 서버(1010)에 사용자 암호 키 발급을 요청하면, 서버(1010)가 사용자 암호 키를 재생성하여 사용자 단말(110)에 전송해주고, 사용자 단말(110)이 사용자 암호 키를 이용하여 사용자 개인 키를 복호화하여 서명을 수행할 수 있다.As an optional embodiment, when the user terminal 110 wants to perform a signature using the user private key, the user authentication is performed through the same authentication means as the user authentication means used to encrypt and store the user private key to the server 1010. When the user password key is issued, the server 1010 regenerates the user password key and transmits it to the user terminal 110, and the user terminal 110 decrypts the user private key using the user password key to perform signature. You can.

선택적 실시예로서, 사용자 암호 키 발급 요청의 요청 횟수 한도는 사용자가 요청할 수 있는 서비스들 각각에 대해 개별적으로 설정될 수 있다.As an optional embodiment, the limit on the number of requests for issuing a user encryption key may be individually set for each of services that the user can request.

도 13은 본 발명에 따른 사용자 인증 수단의 교체 방법의 일 예를 나타낸 동작 흐름도이다.13 is an operation flowchart showing an example of a method for replacing a user authentication means according to the present invention.

도 13을 참조하면, 먼저 사용자 단말(110)이 기존의 제1 사용자 인증 수단으로 사용자 인증을 수행하고(S1301), 새롭게 사용할 제2 사용자 인증 수단으로 사용자 인증을 수행하여(S1302), 제1 사용자 인증 수단의 수행 결과 값에 대응되는 제1 사용자 단말 시드 값과 제2 사용자 인증 수단의 수행 결과 값에 대응되는 제2 사용자 단말 시드 값을 생성하고(S1303), 제1 사용자 단말 시드 값과 제2 사용자 단말 시드 값을 서버(1010)에 전송하여 사용자 암호 키 교체 요청을 요청한다(S1310).Referring to FIG. 13, first, the user terminal 110 performs user authentication with the existing first user authentication means (S1301), and performs user authentication with the newly used second user authentication means (S1302), the first user A first user terminal seed value corresponding to the result value of the authentication means and a second user terminal seed value corresponding to the result value of the second user authentication means are generated (S1303), and the first user terminal seed value and the second The user terminal seed value is transmitted to the server 1010 to request a user encryption key replacement request (S1310).

서버(1010)는 암호화된 서버 시드 값을 복호화하고, 제1 사용자 단말 시드 값과 서버 시드 값을 이용하여 제1 사용자 암호 키를 생성하고, 제2 사용자 단말 시드 값과 서버 시드 값을 이용하여 제2 사용자 암호 키를 생성한다(S1320).The server 1010 decrypts the encrypted server seed value, generates a first user encryption key using the first user terminal seed value and the server seed value, and generates a first user encryption key using the second user terminal seed value and the server seed value. 2 Generate a user encryption key (S1320).

서버(1010)가 사용자 단말(110)에 제1 사용자 암호 키 및 제2 사용자 암호 키를 전송하면(S1330), 사용자 단말(110)이 사용자 개인 키를 제1 사용자 암호 키로 복호화하고(S1340), 다시 사용자 개인 키를 제2 사용자 암호 키로 암호화하여 사용자 단말(110)의 저장소에 저장한다(S1341).When the server 1010 transmits the first user encryption key and the second user encryption key to the user terminal 110 (S1330), the user terminal 110 decrypts the user private key with the first user encryption key (S1340), Again, the user private key is encrypted with the second user encryption key and stored in the storage of the user terminal 110 (S1341).

선택적 실시예로서, 도 12의 단계들이 수행되어 사용자 암호 키가 최초로 발급된 경우, 해당 사용자 암호 키 발급을 위해 사용된 사용자 인증 수단은, 인증 수단 추가 방법을 수행하기 위한 기본 인증 수단으로서 저장될 수 있다. 여기서, 인증 수단 추가 방법은 상술한 도 13의 단계들을 동일하게 수행하면서, 기본 인증 수단을 제1 사용자 인증 수단으로 이용함으로써 구현될 수 있다.As an optional embodiment, when the steps of FIG. 12 are performed to issue the user encryption key for the first time, the user authentication means used for issuing the user encryption key may be stored as a basic authentication means for performing the method of adding the authentication means. have. Here, the method of adding the authentication means may be implemented by using the basic authentication means as the first user authentication means while performing the same steps of FIG. 13 described above.

도 14는 본 발명의 일 실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.14 is a diagram illustrating a computer system according to an embodiment of the present invention.

본 발명의 인증관리서버(120), 제1 인증관리서버(610), 제2 인증관리서버(620) 및 서버(1010)는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1100)에서 구현될 수 있다.The authentication management server 120, the first authentication management server 610, the second authentication management server 620 and the server 1010 of the present invention may be implemented in a computer system 1100, such as a computer-readable recording medium. Can be.

도 14를 참조하면, 컴퓨터 시스템(1100)은 버스(1120)를 통하여 서로 통신하는 하나 이상의 프로세서(1110), 메모리(1130), 사용자 인터페이스 입력 장치(1140), 사용자 인터페이스 출력 장치(1150) 및 스토리지(1160)를 포함할 수 있다. 또한, 컴퓨터 시스템(1100)은 네트워크(1180)에 연결되는 네트워크 인터페이스(1170)를 더 포함할 수 있다. 프로세서(1110)는 중앙 처리 장치 또는 메모리(1130)나 스토리지(1160)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1130) 및 스토리지(1160)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1131)이나 RAM(1132)을 포함할 수 있다.Referring to FIG. 14, the computer system 1100 includes one or more processors 1110, memories 1130, a user interface input device 1140, a user interface output device 1150 and storage communicating with each other through a bus 1120. It may include (1160). Also, the computer system 1100 may further include a network interface 1170 connected to the network 1180. The processor 1110 may be a central processing unit or a semiconductor device that executes processing instructions stored in the memory 1130 or the storage 1160. The memory 1130 and the storage 1160 may be various types of volatile or nonvolatile storage media. For example, the memory may include ROM 1131 or RAM 1132.

본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.The specific implementations described in the present invention are exemplary embodiments, and do not limit the scope of the present invention in any way. For brevity of the specification, descriptions of conventional electronic configurations, control systems, software, and other functional aspects of the systems may be omitted. In addition, the connection or connection members of the lines between the components shown in the drawings are illustrative examples of functional connections and/or physical or circuit connections. It can be represented as a connection, or circuit connections. In addition, unless specifically mentioned, such as “essential”, “importantly”, etc., it may not be a necessary component for application of the present invention.

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

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: 네트워크 인터페이스
110: user terminal 120: authentication management server
122: certificate registration request receiving unit 124: user certificate address generation unit
125: service providing server 126: transaction script transfer unit
128: request result transmission unit 130: blockchain node
610: first authentication management server 620: second authentication management server
622: certification authority registration request receiver
624: Certification authority registration execution unit
625: second certification body 626: request result transmission unit
1010: server 1012: encryption key issuance request receiver
1014: encryption key generation unit 1016: encryption key transmission unit
1100: computer system 1110: processor
1120: bus 1130: memory
1131: Romans 1132: Ram
1140: user interface input device
1150: user interface output device
1160: storage 1170: network interface

Claims (15)

사용자 단말로부터 상기 사용자 단말에서 생성되어 제1 인증기관에 대해 최초 등록된 사용자 인증서의 블록체인(blockchain) 상의 등록 위치를 나타내는 사용자 인증서 주소를 포함하는, 상기 제1 인증기관과 서로 다른 제2 인증기관에 대한 상기 사용자 인증서의 인증기관 등록 요청을 수신하는 단계;
상기 사용자 인증서 주소를 기초로 블록체인 노드(node)로부터 상기 사용자 인증서 주소에 매핑(mapping)된 사용자 인증서에 관한 정보를 획득하여, 상기 사용자 인증서에 대한 검증을 수행하고, 상기 사용자 인증서 주소 및 상기 사용자 인증서에 대응되는 사용자 식별정보를 상기 제2 인증기관에 전송하는 단계; 및
상기 제2 인증기관으로부터 상기 사용자 인증서의 인증기관 등록 결과를 수신하고, 상기 인증기관 등록 결과를 상기 사용자 단말에 전송하는 단계;
를 포함하는, 복수 인증기관에 의한 인증서 상태 관리 방법.
A second certification authority different from the first certification authority, including a user certificate address indicating a registration location on a blockchain of a user certificate initially generated for the first certification authority from the user terminal and registered for the first certification authority Receiving a request to register a certification authority of the user certificate for;
Acquiring information about the user certificate mapped to the user certificate address from a blockchain node based on the user certificate address, and performing verification on the user certificate, and the user certificate address and the user Transmitting user identification information corresponding to a certificate to the second certification authority; And
Receiving a certification authority registration result of the user certificate from the second certification authority, and transmitting the certification authority registration result to the user terminal;
Containing, a certificate status management method by a plurality of certification authorities.
청구항 1에 있어서,
상기 사용자 인증서 주소 및 상기 사용자 식별정보를 상기 제2 인증기관에 전송하기 전에, 상기 사용자 인증서 주소 및 상기 제2 인증기관에 대응되는 제2 인증기관 식별정보를 이용하여, 상기 사용자 인증서의 미리 등록된 인증서 매핑 정보 테이블을 갱신하기 위한 인증기관 등록 트랜잭션(transaction) 스크립트(script)를 생성하고, 상기 인증기관 등록 트랜잭션 스크립트를 블록체인 노드에 전송하는 단계;
를 더 포함하고,
상기 블록체인 노드에 의한 상기 트랜잭션 스크립트의 실행에 따라 인증기관 등록 스마트 컨트랙트(smart contract) 함수가 호출되어, 상기 사용자 인증서 주소에 상기 제2 인증기관 식별정보가 추가 매핑되도록 상기 인증서 매핑 정보 테이블이 갱신되는 것인, 복수 인증기관에 의한 인증서 상태 관리 방법.
The method according to claim 1,
Before transmitting the user certificate address and the user identification information to the second certification authority, the user certificate address and the second certification authority identification information corresponding to the second certification authority are used to pre-register the user certificate. Generating a certification authority registration transaction script for updating the certificate mapping information table, and transmitting the certification authority registration transaction script to a blockchain node;
Further comprising,
According to the execution of the transaction script by the blockchain node, a certificate contract registration smart contract function is called, and the certificate mapping information table is updated so that the second certificate authority identification information is additionally mapped to the user certificate address. The method of managing the status of a certificate by multiple certification authorities.
청구항 2에 있어서,
상기 인증서 매핑 정보 테이블은
사용자 인증서 주소 필드, 사용자 식별정보 필드, 사용자 단말 식별정보 및 인증기관 식별정보 필드를 포함하고,
상기 사용자 인증서에 대한 데이터 무결성을 검증하기 위해 상기 사용자 인증서 주소 필드, 상기 사용자 식별정보 필드 및 상기 사용자 단말 식별정보 필드 각각에 대해 고유 인덱스(index)가 작성되는 것인, 복수 인증기관에 의한 인증서 상태 관리 방법.
The method according to claim 2,
The certificate mapping information table
It includes a user certificate address field, a user identification information field, a user terminal identification information and a certification authority identification information field,
Certificate status by multiple certification authorities that unique indexes are created for each of the user certificate address field, the user identification information field and the user terminal identification information field to verify data integrity for the user certificate Management method.
청구항 2에 있어서,
상기 인증기관 등록 트랜잭션 스크립트를 블록체인 노드에 전송하기 전에, 상기 사용자 인증서 주소에 대응되는 사용자 UTXO(Unspent Transaction Output)의 수가 1인지 여부에 기초하여 상기 사용자 인증서의 유효성 판단을 수행하는 단계;
를 더 포함하는 것인, 복수 인증기관에 의한 인증서 상태 관리 방법.
The method according to claim 2,
Before sending the certification authority registration transaction script to the blockchain node, performing validity determination of the user certificate based on whether the number of unspent transaction outputs (UTXOs) corresponding to the user certificate address is 1;
The method further comprising, a certificate status management method by a plurality of certification authorities.
청구항 2에 있어서,
상기 제2 인증기관으로부터 상기 사용자 인증서 주소를 포함하는, 상기 사용자 인증서의 인증서 폐지 요청을 수신하는 단계; 및
상기 사용자 인증서 주소를 이용하여, 상기 사용자 인증서가 최초 등록 시 생성된 제1 사용자 UTXO와 서로 다른 제2 사용자 UTXO를 생성하는 제1 인증서 폐지 트랜잭션 스크립트를 생성하여 상기 제1 인증서 폐지 트랜잭션 스크립트를 상기 블록체인 노드에 전송하는 단계;
를 더 포함하고,
상기 블록체인 노드에 의한 상기 제1 인증서 폐지 트랜잭션 스크립트의 실행에 따라 상기 제2 사용자 UTXO가 생성되고, 인증서 폐지 요청 스마트 컨트랙트 함수가 호출되어, 상기 사용자 인증서가 최초 등록된 상기 제1 인증기관에 대응되는 제1 인증관리서버에 폐지 요청 이벤트가 전송되고,
상기 제1 인증관리서버에 의해 생성된 제2 인증서 폐지 트랜잭션 스크립트가 상기 블록체인 노드에 전송되고,
상기 블록체인 노드에 의한 상기 제2 인증서 폐지 트랜잭션 스크립트의 실행에 따라 상기 제1 사용자 UTXO 및 상기 제2 사용자 UTXO가 모두 STXO(Spent Transaction Output)로 전환되면서 상기 사용자 인증서가 폐지되는 것인, 복수 인증기관에 의한 인증서 상태 관리 방법.
The method according to claim 2,
Receiving a certificate revocation request of the user certificate including the user certificate address from the second certification authority; And
Block the first certificate revocation transaction script by generating a first certificate revocation transaction script that generates a second user UTXO different from the first user UTXO generated when the user certificate is initially registered by using the user certificate address. Transmitting to a chain node;
Further comprising,
The second user UTXO is generated according to the execution of the first certificate revocation transaction script by the blockchain node, and a smart contract function for requesting a certificate revocation is called, corresponding to the first certification authority where the user certificate was initially registered. The revocation request event is transmitted to the first authentication management server.
The second certificate revocation transaction script generated by the first authentication management server is transmitted to the blockchain node,
When the first user UTXO and the second user UTXO are both converted to Spent Transaction Output (STXO) according to the execution of the second certificate revocation transaction script by the blockchain node, the user certificate is abolished. How to manage the status of a certificate by an authority.
청구항 5에 있어서,
상기 제1 사용자 UTXO는
상기 사용자 인증서에 포함된 사용자 공개 키 및 상기 제1 인증관리서버에서 미리 생성된 제1 인증관리서버 공개 키를 이용하여 생성된 다중서명 주소를 수신자 정보로 포함하는 인증서 등록 트랜잭션 스크립트의 실행 결과로 생성된 것인, 복수 인증기관에 의한 인증서 상태 관리 방법.
The method according to claim 5,
The first user UTXO
Generated as a result of execution of a certificate registration transaction script that includes the multi-signature address generated using the user public key included in the user certificate and the first authentication management server public key previously generated in the first authentication management server as recipient information. A method of managing the status of a certificate by multiple certification authorities.
청구항 6에 있어서,
상기 제1 인증서 폐지 트랜잭션 스크립트는
미리 생성된 제2 인증관리서버 UTXO에 대응되는 제2 인증관리서버 서명을 송신자 정보로 포함하고, 상기 다중서명 주소를 수신자 정보로 포함하고,
상기 블록체인 노드에 의한 상기 제1 인증서 폐지 트랜잭션 스크립트의 실행에 따라 상기 제2 인증관리서버 UTXO가 STXO로 전환되면서 동시에 상기 제2 사용자 UTXO가 생성되고,
상기 제2 인증서 폐지 트랜잭션 스크립트는
상기 다중서명 주소에 대해 서명 검증이 가능한 제1 인증관리서버 서명을 송신자 정보로 포함하고, 상기 제1 인증관리서버 공개 키 및 제2 인증관리서버 공개 키 각각을 수신자 정보로 포함하고,
상기 블록체인 노드에 의한 상기 제2 인증서 폐지 트랜잭션 스크립트의 실행에 따라 상기 제1 사용자 UTXO가 STXO로 전환되면서 동시에 상기 제1 인증관리서버에 대응되는 새로운 제1 인증관리서버 UTXO가 생성되고, 상기 제2 사용자 UTXO가 STXO로 전환되면서 동시에 상기 제2 인증관리서버에 대응되는 새로운 제2 인증관리서버 UTXO가 생성되는 것인, 복수 인증기관에 의한 인증서 상태 관리 방법.
The method according to claim 6,
The first certificate revocation transaction script
The second authentication management server signature corresponding to the pre-generated second authentication management server UTXO is included as sender information, and the multi-signature address is included as recipient information,
The second authentication management server UTXO is converted to STXO according to the execution of the first certificate revocation transaction script by the blockchain node, and at the same time, the second user UTXO is generated,
The second certificate revocation transaction script
The first authentication management server signature capable of verifying the signature for the multi-signature address is included as sender information, and each of the first authentication management server public key and second authentication management server public key is included as recipient information,
The first user UTXO is converted to STXO according to the execution of the second certificate revocation transaction script by the blockchain node, and at the same time, a new first authentication management server UTXO corresponding to the first authentication management server is generated, and the first 2 The user UTXO is converted to STXO, and at the same time, a new second authentication management server UTXO corresponding to the second authentication management server is generated, wherein the certificate status management method by a plurality of certification authorities.
사용자 단말로부터 상기 사용자 단말에서 생성되어 제1 인증기관에 대해 최초 등록된 사용자 인증서의 블록체인(blockchain) 상의 등록 위치를 나타내는 사용자 인증서 주소를 포함하는, 상기 제1 인증기관과 서로 다른 제2 인증기관에 대한 상기 사용자 인증서의 인증기관 등록 요청을 수신하는 인증기관 등록 요청 수신부;
상기 사용자 인증서 주소를 기초로 블록체인 노드(node)로부터 상기 사용자 인증서 주소에 매핑(mapping)된 매핑(mapping)된 사용자 인증서에 관한 정보를 획득하여, 상기 사용자 인증서에 대한 검증을 수행하고, 상기 사용자 인증서 주소 및 상기 사용자 인증서에 대응되는 사용자 식별정보를 상기 제2 인증기관에 전송하는 인증기관 등록 수행부; 및
상기 제2 인증기관으로부터 상기 사용자 인증서의 인증기관 등록 결과를 수신하고, 상기 인증기관 등록 결과를 상기 사용자 단말에 전송하는 요청 결과 전송부;
를 포함하는, 복수 인증기관에 의한 인증서 상태 관리를 제공하는 인증관리서버.
A second certification authority different from the first certification authority, including a user certificate address indicating a registration location on a blockchain of a user certificate initially generated for the first certification authority from the user terminal and registered for the first certification authority A certification authority registration request receiving unit for receiving a request for registration of a certification authority of the user certificate for;
Based on the user certificate address, information about a mapped user certificate mapped to the user certificate address is obtained from a blockchain node, and the user certificate is verified, and the user is verified. A certification authority registration performing unit that transmits a certificate address and user identification information corresponding to the user certificate to the second certification authority; And
A request result transmitter for receiving a result of registering a certification authority of the user certificate from the second certification authority, and transmitting the certification authority registration result to the user terminal;
Including, authentication management server for providing certificate status management by a plurality of certification authorities.
청구항 8에 있어서,
상기 사용자 인증서 주소 및 상기 사용자 식별정보를 상기 제2 인증기관에 전송하기 전에, 상기 사용자 인증서 주소 및 상기 제2 인증기관에 대응되는 제2 인증기관 식별정보를 이용하여, 상기 사용자 인증서의 미리 등록된 인증서 매핑 정보 테이블을 갱신하기 위한 인증기관 등록 트랜잭션(transaction) 스크립트(script)를 생성하고, 상기 인증기관 등록 트랜잭션 스크립트를 블록체인 노드에 전송하는 트랜잭션 스크립트 전송부;
를 더 포함하고,
상기 블록체인 노드에 의한 상기 트랜잭션 스크립트의 실행에 따라 인증기관 등록 스마트 컨트랙트(smart contract) 함수가 호출되어, 상기 사용자 인증서 주소에 상기 제2 인증기관 식별정보가 추가 매핑되도록 상기 인증서 매핑 정보 테이블이 갱신되는 것인, 복수 인증기관에 의한 인증서 상태 관리를 제공하는 인증관리서버.
The method according to claim 8,
Before transmitting the user certificate address and the user identification information to the second certification authority, the user certificate address and the second certification authority identification information corresponding to the second certification authority are used to pre-register the user certificate. A transaction script transmission unit generating a certification authority registration transaction script for updating the certificate mapping information table, and transmitting the certification authority registration transaction script to a blockchain node;
Further comprising,
According to the execution of the transaction script by the blockchain node, a certificate contract registration smart contract function is called, and the certificate mapping information table is updated so that the second certificate authority identification information is additionally mapped to the user certificate address. An authentication management server that provides certificate status management by multiple certification authorities.
청구항 9에 있어서,
상기 인증서 매핑 정보 테이블은
사용자 인증서 주소 필드, 사용자 식별정보 필드, 사용자 단말 식별정보 및 인증기관 식별정보 필드를 포함하고,
상기 사용자 인증서에 대한 데이터 무결성을 검증하기 위해 상기 사용자 인증서 주소 필드, 상기 사용자 식별정보 필드 및 상기 사용자 단말 식별정보 필드 각각에 대해 고유 인덱스(index)가 작성되는 것인, 복수 인증기관에 의한 인증서 상태 관리를 제공하는 인증관리서버.
The method according to claim 9,
The certificate mapping information table
It includes a user certificate address field, a user identification information field, a user terminal identification information and a certification authority identification information field,
Certificate status by multiple certification authorities that unique indexes are created for each of the user certificate address field, the user identification information field and the user terminal identification information field to verify data integrity for the user certificate Authentication management server that provides management.
청구항 9에 있어서,
상기 인증기관 등록 트랜잭션 스크립트를 블록체인 노드에 전송하기 전에, 상기 사용자 인증서 주소에 대응되는 사용자 UTXO(Unspent Transaction Output)의 수가 1인지 여부에 기초하여 상기 사용자 인증서의 유효성 판단을 수행하는 사용자 인증서 검증부;
를 더 포함하는 것인, 복수 인증기관에 의한 인증서 상태 관리를 제공하는 인증관리서버.
The method according to claim 9,
User certificate verification unit that performs the validity determination of the user certificate based on whether the number of user unspent transaction outputs (UTXO) corresponding to the user certificate address is 1 before sending the certification authority registration transaction script to the blockchain node ;
Further comprising, an authentication management server that provides certificate status management by a plurality of certification authorities.
청구항 9에 있어서,
상기 제2 인증기관으로부터 상기 사용자 인증서 주소를 포함하는, 상기 사용자 인증서의 인증서 폐지 요청을 수신하는 인증서 폐지 요청 수신부;
를 더 포함하고,
상기 트랜잭션 스크립트 전송부는
상기 사용자 인증서 주소를 이용하여, 상기 사용자 인증서가 최초 등록 시 생성된 제1 사용자 UTXO와 서로 다른 제2 사용자 UTXO를 생성하는 제1 인증서 폐지 트랜잭션 스크립트를 생성하여 상기 제1 인증서 폐지 트랜잭션 스크립트를 상기 블록체인 노드에 전송하고,
상기 블록체인 노드에 의한 상기 제1 인증서 폐지 트랜잭션 스크립트의 실행에 따라 상기 제2 사용자 UTXO가 생성되고, 인증서 폐지 요청 스마트 컨트랙트 함수가 호출되어, 상기 사용자 인증서가 최초 등록된 상기 제1 인증기관에 대응되는 제1 인증관리서버에 폐지 요청 이벤트가 전송되고,
상기 제1 인증관리서버에 의해 생성된 제2 인증서 폐지 트랜잭션 스크립트가 상기 블록체인 노드에 전송되고,
상기 블록체인 노드에 의한 상기 제2 인증서 폐지 트랜잭션 스크립트의 실행에 따라 상기 제1 사용자 UTXO 및 상기 제2 사용자 UTXO가 모두 STXO(Spent Transaction Output)로 전환되면서 상기 사용자 인증서가 폐지되는 것인, 복수 인증기관에 의한 인증서 상태 관리를 제공하는 인증관리서버.
The method according to claim 9,
A certificate revocation request receiving unit receiving a request for revocation of the certificate of the user certificate, including the user certificate address from the second certification authority;
Further comprising,
The transaction script transmission unit
Block the first certificate revocation transaction script by generating a first certificate revocation transaction script that generates a second user UTXO that is different from the first user UTXO generated when the user certificate is initially registered by using the user certificate address. To the chain node,
The second user UTXO is generated according to the execution of the first certificate revocation transaction script by the blockchain node, and a smart contract function for requesting a certificate revocation is called, corresponding to the first certification authority where the user certificate was initially registered. The revocation request event is transmitted to the first authentication management server.
The second certificate revocation transaction script generated by the first authentication management server is transmitted to the blockchain node,
When the first user UTXO and the second user UTXO are both converted to Spent Transaction Output (STXO) according to the execution of the second certificate revocation transaction script by the blockchain node, the user certificate is abolished. An authentication management server that provides certificate status management by an organization.
청구항 12에 있어서,
상기 제1 사용자 UTXO는
상기 사용자 인증서에 포함된 사용자 공개 키 및 상기 제1 인증관리서버에서 미리 생성된 제1 인증관리서버 공개 키를 이용하여 생성된 다중서명 주소를 수신자 정보로 포함하는 인증서 등록 트랜잭션 스크립트의 실행 결과로 생성된 것인, 복수 인증기관에 의한 인증서 상태 관리를 제공하는 인증관리서버.
The method according to claim 12,
The first user UTXO
Generated as a result of execution of a certificate registration transaction script that includes the multi-signature address generated using the user public key included in the user certificate and the first authentication management server public key previously generated in the first authentication management server as recipient information. An authentication management server that provides certificate status management by multiple certification authorities.
청구항 13에 있어서,
상기 제1 인증서 폐지 트랜잭션 스크립트는
미리 생성된 제2 인증관리서버 UTXO에 대응되는 제2 인증관리서버 서명을 송신자 정보로 포함하고, 상기 다중서명 주소를 수신자 정보로 포함하고,
상기 블록체인 노드에 의한 상기 제1 인증서 폐지 트랜잭션 스크립트의 실행에 따라 상기 제2 인증관리서버 UTXO가 STXO로 전환되면서 동시에 상기 제2 사용자 UTXO가 생성되고,
상기 제2 인증서 폐지 트랜잭션 스크립트는
상기 다중서명 주소에 대해 서명 검증이 가능한 제1 인증관리서버 서명을 송신자 정보로 포함하고, 상기 제1 인증관리서버 공개 키 및 제2 인증관리서버 공개 키 각각을 수신자 정보로 포함하고,
상기 블록체인 노드에 의한 상기 제2 인증서 폐지 트랜잭션 스크립트의 실행에 따라 상기 제1 사용자 UTXO가 STXO로 전환되면서 동시에 상기 제1 인증관리서버에 대응되는 새로운 제1 인증관리서버 UTXO가 생성되고, 상기 제2 사용자 UTXO가 STXO로 전환되면서 동시에 상기 제2 인증관리서버에 대응되는 새로운 제2 인증관리서버 UTXO가 생성되는 것인, 복수 인증기관에 의한 인증서 상태 관리를 제공하는 인증관리서버.
The method according to claim 13,
The first certificate revocation transaction script
The second authentication management server signature corresponding to the pre-generated second authentication management server UTXO is included as sender information, and the multi-signature address is included as recipient information,
The second authentication management server UTXO is converted to STXO according to the execution of the first certificate revocation transaction script by the blockchain node, and at the same time, the second user UTXO is generated,
The second certificate revocation transaction script
The first authentication management server signature capable of verifying the signature for the multi-signature address is included as sender information, and each of the first authentication management server public key and second authentication management server public key is included as recipient information,
The first user UTXO is converted to STXO according to the execution of the second certificate revocation transaction script by the blockchain node, and at the same time, a new first authentication management server UTXO corresponding to the first authentication management server is generated, and the first 2 User UTXO is converted to STXO, and at the same time, a new second authentication management server UTXO corresponding to the second authentication management server is generated, an authentication management server that provides certificate status management by multiple certification authorities.
인증된 사용자에게 서비스를 제공하는 적어도 하나의 인증기관;
사용자 인증서를 생성하고, 상기 사용자 인증서를 제1 인증기관을 통해 블록체인(blockchain) 상에 최초 등록하고, 상기 사용자 인증서를 제2 인증기관에 등록하기 위해 인증기관 등록을 요청하여 상기 제2 인증기관에 대해 상기 사용자의 인증을 수행하는 적어도 하나의 사용자 단말;
상기 적어도 하나의 인증기관에 일대일 대응되고, 상기 적어도 하나의 사용자 단말로부터 인증기관 등록을 요청 받아, 블록체인 상에서 상기 사용자 인증서가 등록되는 위치를 나타내는 사용자 인증서 주소를 이용하여 인증서 매핑 정보 테이블을 갱신하기 위한 트랜잭션 스크립트(transaction script)를 생성하여 블록체인 노드(node)에 전송하고, 블록체인 노드로부터 상기 사용자 인증서 주소에 매핑(mapping)된 사용자 식별정보를 획득하고, 상기 사용자 인증서 주소 및 상기 사용자 식별정보를 상기 일대일 대응되는 적어도 하나의 인증기관에 전송하는 적어도 하나의 인증관리서버; 및
상기 적어도 하나의 인증관리서버를 포함하는 전체 인증관리서버들로부터 수신된 트랜잭션 스크립트들을 실행하고, 상기 트랜잭션 스크립트들에 포함된 스마트 컨트랙트(smart contract) 함수를 호출하고, 상기 스마트 컨트랙트 함수의 결과물로 상기 전체 인증관리서버들에 대해 통합된 인증서 상태 데이터를 제공하는 하나의 블록체인 노드;
를 포함하는, 복수 인증기관에 의한 인증서 상태 관리 시스템.
At least one certification authority that provides services to authenticated users;
Generating a user certificate, first registering the user certificate on a blockchain through a first certification authority, and requesting a certification authority registration to register the user certificate to a second certification authority, thereby requesting the second certification authority At least one user terminal performing authentication of the user with respect to;
One-to-one correspondence to the at least one certification authority, receiving a request for certification authority registration from the at least one user terminal, and updating the certificate mapping information table using a user certificate address indicating a location where the user certificate is registered on the blockchain Create a transaction script for this, transmit it to a blockchain node, obtain user identification information mapped to the user certificate address from the blockchain node, and obtain the user certificate address and the user identification information At least one authentication management server transmitting the one-to-one correspondence to at least one authentication authority; And
Execute transaction scripts received from all authentication management servers including the at least one authentication management server, call a smart contract function included in the transaction scripts, and output the result of the smart contract function. One blockchain node that provides integrated certificate status data for all authentication management servers;
Including, certificate status management system by a plurality of certification authorities.
KR1020180152902A 2018-11-30 2018-11-30 Apparatus and method for certificate status management by multiple certificate authorities KR102209988B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180152902A KR102209988B1 (en) 2018-11-30 2018-11-30 Apparatus and method for certificate status management by multiple certificate authorities

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180152902A KR102209988B1 (en) 2018-11-30 2018-11-30 Apparatus and method for certificate status management by multiple certificate authorities

Publications (2)

Publication Number Publication Date
KR20200065940A true KR20200065940A (en) 2020-06-09
KR102209988B1 KR102209988B1 (en) 2021-02-01

Family

ID=71083003

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180152902A KR102209988B1 (en) 2018-11-30 2018-11-30 Apparatus and method for certificate status management by multiple certificate authorities

Country Status (1)

Country Link
KR (1) KR102209988B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022196850A1 (en) * 2021-03-15 2022-09-22 블록체인랩스 주식회사 Method and system for issuing and certifying digital vaccination certificate

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009212625A (en) * 2008-03-03 2009-09-17 Mitsubishi Electric Corp Membership authentication system and mobile terminal unit
KR20140046674A (en) * 2012-10-10 2014-04-21 박규영 Digital certificate system for cloud-computing environment and providing method thereof
KR101825320B1 (en) * 2017-01-26 2018-03-22 (주)에이티솔루션즈 Method for Providing Certificate Management
KR101849908B1 (en) * 2016-10-13 2018-05-31 주식회사 코인플러그 Method for providing certificate service based on m of n multiple signatures and server using the same
WO2018162789A1 (en) * 2017-03-06 2018-09-13 Nokia Technologies Oy Secure de-centralized domain name system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009212625A (en) * 2008-03-03 2009-09-17 Mitsubishi Electric Corp Membership authentication system and mobile terminal unit
KR20140046674A (en) * 2012-10-10 2014-04-21 박규영 Digital certificate system for cloud-computing environment and providing method thereof
KR101849908B1 (en) * 2016-10-13 2018-05-31 주식회사 코인플러그 Method for providing certificate service based on m of n multiple signatures and server using the same
KR101825320B1 (en) * 2017-01-26 2018-03-22 (주)에이티솔루션즈 Method for Providing Certificate Management
WO2018162789A1 (en) * 2017-03-06 2018-09-13 Nokia Technologies Oy Secure de-centralized domain name system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022196850A1 (en) * 2021-03-15 2022-09-22 블록체인랩스 주식회사 Method and system for issuing and certifying digital vaccination certificate

Also Published As

Publication number Publication date
KR102209988B1 (en) 2021-02-01

Similar Documents

Publication Publication Date Title
KR102209987B1 (en) Apparatus and method for certificate status management based on blockchain and smart contract
EP3788523B1 (en) System and method for blockchain-based cross-entity authentication
CN108235806B (en) Method, device and system for safely accessing block chain, storage medium and electronic equipment
US11032086B2 (en) Certificate authority master key tracking on distributed ledger
US11038682B2 (en) Communication method, apparatus and system, electronic device, and computer readable storage medium
CN110537346B (en) Safe decentralized domain name system
KR101974452B1 (en) Methods and system for managing personal information based on programmable blockchain and one-id
WO2018112946A1 (en) Registration and authorization method, device and system
WO2018214133A1 (en) Method, device and system for fido authentication based on blockchain
US10447664B2 (en) Information masking using certificate authority
US10567370B2 (en) Certificate authority
US10972272B2 (en) Providing high availability computing service by issuing a certificate
WO2015072203A1 (en) Information delivery system
US20170171183A1 (en) Authentication of access request of a device and protecting confidential information
CN115176441A (en) Identity-based public key generation protocol
KR20110083886A (en) Apparatus and method for other portable terminal authentication in portable terminal
CN112016923A (en) Intra-network cross-domain identity management method and system based on block chain and computational power network
KR20190026558A (en) Teriminal apparatus, server apparatus, blockchain and method for fido universal authentication using the same
CN114039753A (en) Access control method and device, storage medium and electronic equipment
CN114168923B (en) Group CA certificate generation method and system based on digital certificate
CN112364335B (en) Identification identity authentication method and device, electronic equipment and storage medium
KR102269753B1 (en) Method for performing backup and recovery private key in consortium blockchain network, and device using them
KR102209988B1 (en) Apparatus and method for certificate status management by multiple certificate authorities
CN111131160A (en) User, service and data authentication system
KR102667293B1 (en) Method and appratus for providing blackchain-based secure messenger service

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