KR20210029517A - 블록체인에 기반한 공개키 기반 구조 시스템 및 방법 - Google Patents

블록체인에 기반한 공개키 기반 구조 시스템 및 방법 Download PDF

Info

Publication number
KR20210029517A
KR20210029517A KR1020190110855A KR20190110855A KR20210029517A KR 20210029517 A KR20210029517 A KR 20210029517A KR 1020190110855 A KR1020190110855 A KR 1020190110855A KR 20190110855 A KR20190110855 A KR 20190110855A KR 20210029517 A KR20210029517 A KR 20210029517A
Authority
KR
South Korea
Prior art keywords
issuing
node
certificate
user
nodes
Prior art date
Application number
KR1020190110855A
Other languages
English (en)
Other versions
KR102291579B1 (ko
Inventor
황성운
한경현
Original Assignee
홍익대학교세종캠퍼스산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 홍익대학교세종캠퍼스산학협력단 filed Critical 홍익대학교세종캠퍼스산학협력단
Priority to KR1020190110855A priority Critical patent/KR102291579B1/ko
Publication of KR20210029517A publication Critical patent/KR20210029517A/ko
Application granted granted Critical
Publication of KR102291579B1 publication Critical patent/KR102291579B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/3236Cryptographic 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 using cryptographic hash functions
    • 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/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 블록체인을 기반한 공개키 기반 구조 시스템 및 방법에 관한 것으로, 블록체인을 기반한 공개키 기반 구조 시스템의 방법은 발급 노드 별로 다른 발급 노드와 또 다른 발급 노드와 연계하여 각각의 발급자 인증서를 생성하고, 발급 노드에서 사용자 노드로부터 인증서 발급을 요청 받으면 다른 발급 노드와 또 다른 발급 노드와 연계하여 사용자 인증서를 생성하고, 발급 노드들 간의 합의를 통해서 발급 노드 별로 발급자 인증서 및 사용자 인증서를 블록 체인에 저장한다.

Description

블록체인에 기반한 공개키 기반 구조 시스템 및 방법{SYSTEM AND METHOD FOR PUBLIC KEY INFRASTRUCTURE BASED ON BLOCK CHAIN}
이하의 일 실시 예들은 공개키 기반 구조(PKI; Public Key Infrastructure) 시스템에 관한 것으로, 공개 키 기반 구조에서 인증 기관(TTP; Trusted Third Party)이 불필요한 공개키 기반 구조 시스템 및 방법에 관한 것이다.
인터넷 상에서 개인 또는 기업이 신뢰성 있게 데이터를 제공하기 위해 인증서를 사용한다. 이 인증서는 모든 사람이 신뢰할 수 있는 인증 기관(TTP; Trusted Third Party)에 의해 발급된다. 사용자는 각 인증서에 포함된 인증 기관의 디지털 서명을 검증함으로써 새로 수신되는 인증서를 신뢰하고 이용하게 된다. 일반적으로 모든 컴퓨터에는 주요 TTP의 인증서가 신뢰 목록에 추가되어 있어서, 이를 의식하지 않고 이용할 수 있다.
하지만 반대로, TTP가 신뢰를 받지 못 하면, 해당 TTP가 발급한 모든 인증서를 신뢰할 수 없게 된다. 타 국가나 신설 등 신뢰 목록에 없는 TTP가 발급한 인증서는 디지털 서명을 검증할 방법이 없기 때문에, 송신자의 인증서가 맞는지 확신할 수 없다. 이 인증서를 사용하기 위해서는 사용자가 근거 없이 맹신하는 수밖에 없는 신뢰 문제가 발생한다.
본 발명은 상기와 같은 종래 기술의 문제점을 해결하고자 도출된 것으로서, TTP 없는 블록체인 기반 PKI 시스템 및 방법을 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시 예에 따른 블록체인을 기반한 공개키 기반 구조 시스템의 방법은, 발급 노드 별로 각각의 발급자 인증서를 생성하는 단계; 발급 노드에서 사용자 노드로부터 인증서 발급을 요청 받으면, 사용자 인증서를 생성하는 단계; 및 상기 발급 노드 별로 상기 발급자 인증서 및 상기 사용자 인증서를 블록 체인에 저장하는 단계를 포함한다.
이때, 상기 발급자 인증서는, 상기 발급 노드의 식별정보, 상기 발급 노드의 공개키, 모든 발급 노드들의 정보, 상기 모든 발급 노드들의 서명을 포함할 수 있다.
이때, 상기 사용자 인증서는, 상기 사용자 노드의 식별정보, 상기 사용자 노드의 공개키, 모든 발급 노드들의 정보, 상기 모든 발급 노드들의 서명을 포함할 수 있다.
이때, 상기 발급 노드 별로 각각의 발급자 인증서를 생성하는 단계는, 상기 발급 노드들 각각에서 발급 노드의 공개키에 자체 서명하여 상기 발급 노드의 자체 서명 인증서를 생성하여 다른 발급 노드들로 송신하는 단계; 상기 다른 발급 노드들 각각에서 상기 발급 노드의 자체 서명 인증서를 수신하면, 상기 발급 노드의 공개키와 상기 발급 노드의 서명을 검증하고, 검증에 성공하면 상기 발급 노드의 자체 서명 인증서와 상기 다른 발급 노드의 서명을 포함하는 상기 다른 발급 노드로 서명된 상기 발급 노드의 임시 인증서를 생성하여 또 다른 발급 노드들로 송신하는 단계; 상기 또 다른 발급 노드들 각각에서 상기 다른 발급 노드로 서명된 상기 발급 노드의 임시 인증서를 수신하면, 상기 다른 발급 노드의 서명을 검증하고, 검증 결과를 상기 발급 노드의 공개키로 암호화하여 상기 다른 발급 노드로 송신하는 단계; 상기 다른 발급 노드들 각각에서 상기 다른 발급 노드로 서명된 상기 발급 노드의 임시 인증서와 상기 또 다른 발급 노드들로부터 수신한 검증 결과를 상기 발급 노드로 송신하는 단계; 및 상기 발급 노드들 각각에서 상기 다른 발급 노드들의 서명을 모아서 각각의 상기 발급자 인증서를 생성하는 단계를 포함할 수 있다.
이때, 상기 사용자 인증서를 생성하는 단계는, 상기 사용자 노드에서 상기 사용자 노드의 공개키와 상기 사용자 노드의 서명을 포함하는 상기 사용자 노드의 자체 서명 인증서를 생성하여 상기 발급 노드로 송신함으로써 인증서 발급을 요청하는 단계; 상기 발급 노드에서 상기 사용자 노드의 자체 서명 인증서를 수신하면, 상기 사용자 노드를 인증하는 단계; 상기 발급 노드에서 상기 사용자 노드의 인증에 성공하면, 상기 사용자 노드의 자체 서명 인증서를 다른 발급 노드들로 송신하고, 상기 사용자 노드의 자체 서명 인증서에 포함된 상기 사용자 노드의 공개키와 상기 사용자 노드의 서명을 검증하고, 검증에 성공하면, 상기 사용자 노드의 자체 서명 인증서와 상기 발급 노드의 서명을 포함하는 상기 발급 노드로 서명된 상기 사용자 노드의 임시 인증서를 생성하는 단계; 상기 다른 발급 노드 각각에서 상기 사용자 노드의 자체 서명 인증서를 수신하면, 상기 사용자 노드의 자체 서명 인증서에 포함된 상기 사용자 노드의 공개키와 상기 사용자 노드의 서명을 검증하고, 검증에 성공하면, 상기 사용자 노드의 자체 서명 인증서와 상기 다른 발급 노드의 서명을 포함하는 상기 다른 발급 노드로 서명된 상기 사용자 노드의 임시 인증서를 생성하여 또 다른 발급 노드들로 송신하는 단계; 상기 또 다른 발급 노드들 각각에서 상기 다른 발급 노드로 서명된 상기 사용자 노드의 임시 인증서를 수신하면, 상기 사용자 노드의 공개키와 상기 다른 발급 노드의 서명을 검증하고, 검증 결과를 상기 발급 노드의 공개키로 암호화하여 상기 다른 발급 노드로 송신하는 단계; 상기 다른 발급 노드들 각각에서 상기 다른 발급 노드로 서명된 상기 사용자 노드의 임시 인증서와 상기 또 다른 발급 노드들로부터 수신한 검증 결과를 상기 발급 노드로 송신하는 단계; 및 상기 발급 노드에서 상기 다른 발급 노드들의 서명을 모아서 상기 사용자 인증서를 생성하는 단계를 포함할 수 있다.
이때, 상기 발급 노드 별로 상기 발급자 인증서 및 상기 사용자 인증서를 상기 블록체인에 저장하는 단계는, 상기 발급 노드 각각에서 자신이 생성한 인증서의 개수(n)와 상기 생성한 인증서의 머클 트리 해시값(mk)을 계산하여 다른 발급 노드들로 송신하여 공유하는 단계; 공유 결과 가장 많이 나타나는 상기 n과 상기 mk의 조합을 계산한 발급 노드를 선택하는 단계; 선택된 발급 노드들 각각에서 임시 블록을 생성하여 공유하는 단계; 상기 선택된 발급 노드들 각각에서 공유된 임시 블록들에 포함된 n과 mk를 확인하고, 상기 공유된 임시 블록 각각에 포함된 블록 서명을 확인하여 이상이 없으면, 상기 공유된 임시 블록들에 포함된 모든 블록 서명을 포함하는 블록을 생성하는 단계; 상기 선택된 발급 노드들 각각에서 상기 블록을 선택되지 않은 발급 노드들로 송신하는 단계; 및 상기 발급 노드들 각각에서 상기 블록을 저장하는 단계를 포함할 수 있다.
이때, 상기 발급 노드들 각각에서 상기 블록을 저장하는 단계는, 상기 발급 노드들은 상기 블록에 포함된 블록 서명들 중에서 기설정된 임계값 이상의 블록 서명이 검증되면 상기 블록을 저장할 수 있다.
이때, 상기 임시 블록은, 상기 블록체인의 이전 블록의 헤더의 해시값, 상기 n, 상기 mk, 타임 스탬프 및 상기 선택된 발급 노드의 블록 서명을 포함할 수 있다.
이때, 상기 블록은, 상기 블록체인의 이전 블록의 헤더의 해시값, 상기 n, 상기 mk, 타임 스탬프 및 상기 선택된 발급 노드들의 모든 블록 서명을 포함할 수 있다.
이때, 상기 발급자 인증서를 생성하는 단계 이후에, 상기 사용자 노드에서 상기 발급자 인증서를 검증하는 단계를 더 포함할 수 있다.
이때, 상기 사용자 노드에서 상기 발급자 인증서를 검증하는 단계는, 상기 사용자 노드에서 상기 블록체인 시스템에 포함된 모든 발급 노드로부터 상기 발급자 인증서를 획득하는 단계; 상기 사용자 노드에서 상기 발급 노드의 상기 발급자 인증서에 포함된 서명들을 다른 발급 노드의 발급자 인증서에 포함된 공개키들을 이용하여 검증하는 단계; 및 상기 사용자 노드에서 검증된 서명의 수가 기설정된 임계값 이상인 발급자 인증서만을 신뢰할 수 있다고 판단하는 단계를 포함할 수 있다.
이때, 상기 사용자 인증서를 생성하는 단계 이후에, 상기 사용자 노드에서 상기 사용자 인증서를 검증하는 단계를 더 포함할 수 있다.
이때, 상기 사용자 노드에서 상기 사용자 인증서를 검증하는 단계는, 상기 사용자 노드에서 상기 사용자 인증서를 수신하는 단계; 상기 사용자 노드에서 상기 사용자 인증서에 포함된 상기 발급 노드들의 서명들을 신뢰하는 발급자 인증서들로 검증하는 단계; 및 검증 결과 상기 사용자 노드에서 상기 사용자 인증서에 포함된 상기 발급 노드들의 서명들 중에서 기설정된 임계값 이상의 서명이 검증되면 상기 사용자 인증서를 신뢰할 수 있다고 판단하는 단계를 포함할 수 있다.
본 발명의 일 실시 예에 따른 블록체인을 기반한 공개키 기반 구조 시스템은, 복수의 발급 노드를 포함하고, 상기 복수의 발급 노드 각각은 다른 발급 노드와 또 다른 발급 노드들과 연계해서 각각의 발급자 인증서를 생성하고, 사용자 노드로부터 인증서 발급을 요청 받으면 상기 다른 발급 노드와 상기 또 다른 발급 노드들과 연계해서 사용자 인증서를 생성하고, 상기 발급자 인증서 및 상기 사용자 인증서를 포함하는 블록을 생성하여 블록 체인에 저장한다.
본 발명은 기존의 TTP를 이용하는 공개 키 기반 구조와 달리 TTP 없이 발급된 인증서에 대해 사용자가 신뢰할 수 있는 검증 방법을 제시함으로써, 사용자가 기존에 신뢰하지 않은 기관에서 발급된 인증서를 검증 후 이용할 수 있는 신뢰 검증 방법을 제공할 수 있다.
추가적으로 블록체인에서 데이터 블록을 생성할 때, 같은 방법으로 블록에 다수에 서명을 추가함으로써 일관성을 검증하는 합의 알고리즘을 통해 데이터를 저장 / 관리하도록 할 수 있다.
도 1은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템의 개략적인 구조를 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 인증서를 생성하고 저장하는 과정을 도시한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 발급자 인증서를 생성하는 과정을 도시한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 발급자 인증서를 생성하는 메시지 흐름을 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 발급자 인증서를 검증하는 과정을 도시한 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 사용자 인증서를 생성하는 과정을 도시한 흐름도이다.
도 7a는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 사용자 인증서를 생성하는 메시지 흐름의 일부를 도시한 도면이다.
도 7b는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 사용자 인증서를 생성하는 메시지 흐름의 다른 일부를 도시한 도면이다.
도 8은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 사용자 인증서를 검증하는 과정을 도시한 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 인증서를 블록체인에 저장하는 과정을 도시한 흐름도이다.
도 10은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 블록을 생성할 발급 노드를 선택하는 메시지 흐름을 도시한 도면이다.
도 11은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템의 선택된 발급 노드에서 블록을 생성하고 공유하는 메시지 흐름을 도시한 도면이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템의 개략적인 구조를 도시한 도면이다.
도 1을 참조하면, 블록체인을 기반한 공개키 기반 구조(PKI; Public Key Infrastructure) 시스템(100)은 복수의 발급 노드(111-114)를 포함하여 구성될 수 있다.
복수의 발급 노드(111-114) 각각은 다른 발급 노드와 또 다른 발급 노드들과 연계해서 각각의 발급자 인증서를 생성하고, 사용자 노드(121-127)로부터 인증서 발급을 요청 받으면 다른 발급 노드 및 또 다른 발급 노드들과 연계해서 사용자 인증서를 생성하고, 발급자 인증서 및 사용자 인증서를 포함하는 블록을 생성하여 블록 체인에 저장할 수 있다.
본 발명의 설명에 있어서 “사용자 노드”는 주체(subject)로 표현될 수 있고, 사용자 노드는 기업 또는 일반 사용자가 될 수 있다.
본 발명의 설명에 있어서, “다른 발급 노드”는 발급자 인증서 또는 사용자 인증서를 생성하는 발급 노드의 서명을 검증하고 인증서에 필요한 서명을 추가하는 발급 노드로서 공개키 기반 구조 시스템에 포함된 발급 노드들 중에서 인증서를 생성하는 발급 노드를 제외한 나머지 발급 노드를 의미한다.
본 발명의 설명에 있어서, “또 다른 발급 노드”는 다른 발급 노드에서 추가한 서명을 검증하는 발급 노드로서 공개키 기반 구조 시스템에 포함된 발급 노드들 중에서 인증서를 생성하는 발급 노드와 서명을 추가한 다른 발급 노드를 제외한 나머지 발급 노드를 의미한다. 따라서, 발급 노드는 인증서를 생성하는 주체가 아닌 경우, 다른 발급 노드가 될 수도 있고 또 다른 발급 노드가 될 수도 있다.
예를 들어서, 제1 발급 노드(111)이 발급자 인증서를 생성하는 경우 발급 노드(112, 113, 114)가 다른 발급 노드가 될 수 있다. 그리고, 제1 발급 노드(111)에서 발급자 인증서를 생성할 때, 다른 발급 노드로 제2 발급 노드(112)의 서명을 획득하는 경우, 발급 노드(113, 114)가 또 다른 발급 노드가 될 수 있다. 그리고, 제1 발급 노드(111)에서 발급자 인증서를 생성하는 경우, 다른 발급 노드로 제3 발급 노드(113)의 서명을 획득하는 경우, 발급 노드(112, 114)가 또 다른 발급 노드가 될 수 있다. 그리고, 제1 발급 노드(111)에서 발급자 인증서를 생성할 때, 다른 발급 노드로 제4 발급 노드(114)의 서명을 획득하는 경우, 발급 노드(112, 113)가 또 다른 발급 노드가 될 수 있다.
블록체인을 기반한 공개키 기반 구조 시스템(100)에서 인증서를 생성하고 저장하는 구체적인 과정을 이후 도 2에서 도 11을 참조하여 보다 상세히 후술한다.
도 2는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 인증서를 생성하고 저장하는 과정을 도시한 흐름도이다.
도 2를 참조하면 발급 노드 별로 각각의 발급자 인증서를 생성한다(210). 이때, 210단계의 보다 구체적인 설명은 이후 도 3과 도 4를 통해서 후술한다.
그리고, 사용자 노드에서 발급자 인증서를 검증한다(220). 이때, 220단계의 보다 구체적인 설명은 이후 도 5를 통해서 후술한다.
그리고, 발급 노드에서 사용자 노드로부터 인증서 발급을 요청 받으면, 사용자 인증서를 생성한다(230). 이때, 230단계의 보다 구체적인 설명은 이후 도 6, 도 7a 및 도 7b를 통해서 후술한다.
그리고, 사용자 노드에서 사용자 인증서를 검증한다(240). 이때, 240단계의 보다 구체적인 설명은 이후 도 8을 통해서 후술한다.
그리고, 발급 노드 별로 발급자 인증서 및 사용자 인증서를 블록 체인에 저장한다(250). 이때, 250단계의 보다 구체적인 설명은 이후 도 9, 도 10 및 도 11을 통해서 후술한다.
한편, 도 2의 설명에서 220단계가 210단계와 230단계 사이로 기재하고 있지만, 사실상 220 단계는 210 단계 이후 어느 시점에서 수행되어도 무방하다. 또한, 240단계가 230단계와 250단계 사이로 기재하고 있지만, 사실상 240 단계는 230 단계 이후 어느 시점에서 수행되어도 무방하다.
도 3은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 발급자 인증서를 생성하는 과정을 도시한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 발급자 인증서를 생성하는 메시지 흐름을 도시한 도면이다.
도 3과 도 4를 참조하면 발급 노드 별로 각각의 발급자 인증서를 생성하는 방법은 다음과 같습니다.
발급 노드(401)들 각각에서 발급 노드의 공개키에 자체 서명하여 발급 노드의 임시 인증서를 생성하고(410), 생성한 발급 노드의 자체 서명 인증서(Self-signed certificate)를 다른 발급 노드(402)들로 송신한다(310, 412). 여기서, 자체 서명 인증서란 자신의 개인키로 생성하는 자체 서명을 포함한 인증서이다.
다른 발급 노드(402)들 각각에서 발급 노드의 자체 서명 인증서를 수신하면, 422단계의 서명 검증을 위해서 다른 발급 노드(402)들 각각의 공개키를 또 다른 발급 노드들로 송신한다(414). 이때, 다른 발급 노드(402)들 각각의 공개키는 사전에 전달될 수 있으므로 해당 과정은 생략될 수 있다.
다른 발급 노드(402)들 각각에서 발급 노드의 자체 서명 인증서를 수신하면, 발급 노드의 공개키와 발급 노드의 서명을 검증하고(416), 검증에 성공하면 발급 노드의 자체 서명 인증서와 다른 발급 노드의 서명을 포함하는 다른 발급 노드로 서명된 발급 노드의 임시 인증서를 생성하여(418) 또 다른 발급 노드들로 송신한다(320, 420). 이때, 발급 노드의 자체 서명 인증서에 다른 발급 노드의 서명을 더 포함하는 것은 발급 노드의 임시 인증서에 포함된 발급 노드의 공개키를 다른 발급 노드에 개인키로 디지털 서명함을 의미할 수 있다.
또 다른 발급 노드(403)들 각각에서 다른 발급 노드로 서명된 발급 노드의 임시 인증서를 수신하면, 다른 발급 노드의 서명을 검증하고(422), 검증 결과를 발급 노드의 공개키로 암호화하여 다른 발급 노드로 송신한다(330, 424).
다른 발급 노드(403)들 각각에서 다른 발급 노드로 서명된 발급 노드의 임시 인증서와 또 다른 발급 노드들로부터 수신한 모든 검증 결과를 발급 노드로 송신한다(340, 426).
발급 노드(402)들 각각에서 모든 검증 결과를 확인하고(428), 검증 결과에 이상이 없으면 다른 발급 노드들의 서명을 모아서 각각의 발급자 인증서를 생성한다(350, 430).
이때, 발급자 인증서는 발급 노드의 식별정보, 발급 노드의 공개키, 모든 발급 노드들의 정보, 모든 발급 노드들의 서명을 포함할 수 있다.
도 5는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 발급자 인증서를 검증하는 과정을 도시한 흐름도이다.
사용자 노드에서 블록체인 시스템에 포함된 모든 발급 노드로부터 발급자 인증서를 획득한다(510).
사용자 노드에서 발급 노드의 발급자 인증서에 포함된 서명들을 다른 발급 노드의 발급자 인증서에 포함된 공개키들을 이용하여 검증한다(520).
사용자 노드에서 검증된 서명의 수가 기설정된 임계값 이상인 발급자 인증서만을 신뢰할 수 있다고 판단한다(530). 이때, 사용자 노드는 판단결과 신뢰할 수 있으면 발급자 인증서를 저장하고, 발급자 인증서의 발급 노드를 신뢰목록에 저장하여 관리할 수 있다. 그리고, 판단결과 신뢰할 수 없으면 수신한 발급자 인증서를 삭제하거나, 발급 노드들로 신뢰할 수 없음을 응답할 수 있다.
도 6은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 사용자 인증서를 생성하는 과정을 도시한 흐름도이다.
도 7a는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 사용자 인증서를 생성하는 메시지 흐름의 일부를 도시한 도면이다.
도 7b는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 사용자 인증서를 생성하는 메시지 흐름의 다른 일부를 도시한 도면이다.
도 6, 도 7a 및 도 7b를 참조하면 사용자 인증서를 생성하는 방법은 다음과 같습니다.
사용자 노드(701)에서 사용자 노드의 공개키와 사용자 노드의 서명을 포함하는 사용자 노드의 자체 서명 인증서를 생성하여(710) 발급 노드(401)로 송신함으로써 인증서 발급을 요청한다(610, 712).
발급 노드(401)에서 사용자 노드의 자체 서명 인증서를 수신하면, 사용자 노드(701)를 인증한다(620, 714). 이때의 사용자 노드를 인증하는 것은 휴대폰 인증, 비밀번호 인증, ARS 인증 등을 이용해서 사용자 노드가 맞는지를 인증하는 것이다.
발급 노드(401)에서 사용자 노드의 인증에 성공하면, 사용자 노드의 자체 서명 인증서를 다른 발급 노드들로 송신하고(630, 716), 사용자 노드의 자체 서명 인증서에 포함된 사용자 노드의 공개키와 사용자 노드의 서명을 검증하고(718), 검증에 성공하면, 사용자 노드의 자체 서명 인증서와 발급 노드의 서명을 포함하는 발급 노드로 서명된 사용자 노드의 임시 인증서를 생성한다(640, 720). 그리고, 발급 노드(401)는 생성한 발급 노드로 서명된 사용자 노드의 임시 인증서를 또 다른 발급 노드(403)들로 송신할 수 있다(722).
다른 발급 노드(402) 각각에서 사용자 노드의 자체 서명 인증서를 수신하면, 사용자 노드의 자체 서명 인증서에 포함된 사용자 노드의 공개키와 사용자 노드의 서명을 검증하고(724), 검증에 성공하면, 사용자 노드의 자체 서명 인증서와 다른 발급 노드의 서명을 포함하는 다른 발급 노드로 서명된 사용자 노드의 임시 인증서를 생성하여(726) 또 다른 발급 노드(403)들로 송신한다(650, 728).
또 다른 발급 노드(403)들 각각에서 다른 발급 노드로 서명된 사용자 노드의 임시 인증서를 수신하면, 사용자 노드의 공개키와 다른 발급 노드의 서명을 검증하고(730), 검증 결과를 발급 노드의 공개키로 암호화하여 다른 발급 노드(402)로 송신한다(660, 732).
다른 발급 노드(402)들 각각에서 다른 발급 노드로 서명된 사용자 노드의 임시 인증서와 또 다른 발급 노드(403)들로부터 수신한 검증 결과를 발급 노드로 송신한다(670, 734).
발급 노드(401)에서 다른 발급 노드(402)들의 서명을 모아서 사용자 인증서를 생성하고(680,740), 생성된 사용자 인증서를 사용자 노드(701)로 송신한다(742).
사용자 인증서는 사용자 노드의 식별정보, 사용자 노드의 공개키, 모든 발급 노드들의 정보, 모든 발급 노드들의 서명을 포함할 수 있다.
한편, 도 7a 와 도 7b에서 722단계와 736단계는 발급 노드(401)에서 생성한 발급 노드로 서명된 사용자 노드의 임시 인증서를 검증 받는 과정이므로, 생략이 가능하다.
도 8은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 사용자 인증서를 검증하는 과정을 도시한 흐름도이다.
사용자 노드에서 사용자 인증서를 수신하면(810), 사용자 노드에서 사용자 인증서에 포함된 발급 노드들의 서명들을 신뢰 목록에 포함된 신뢰하는 발급자 인증서들로 검증한다(820).
검증 결과 사용자 노드에서 사용자 인증서에 포함된 발급 노드들의 서명들 중에서 기설정된 임계값 이상의 서명이 검증되면 사용자 인증서를 신뢰할 수 있다고 판단한다(830). 사용자 노드는 판단결과 신뢰할 수 있으면 사용자 인증서를 사용하고, 판단결과 신뢰할 수 없으면 삭제할 수 있다.
도 9는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 인증서를 블록체인에 저장하는 과정을 도시한 흐름도이다.
도 10은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 블록을 생성할 발급 노드를 선택하는 메시지 흐름을 도시한 도면이다.
도 11은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템의 선택된 발급 노드에서 블록을 생성하고 공유하는 메시지 흐름을 도시한 도면이다.
도 9, 도 10 및 도 11을 참조하면, 발급 노드 별로 발급자 인증서 및 사용자 인증서를 블록체인에 저장하는 방법은 다음과 같습니다.
발급 노드(1001, 1002) 각각에서 자신이 생성한 인증서의 개수(n)와 생성한 인증서의 머클 트리 해시값(mk)을 계산하여(1014, 1016) 다른 발급 노드들로 송신하여 공유한다(910, 1018, 1020).
공유 결과 가장 많이 나타나는 n과 mk의 조합을 계산한 발급 노드를 선택한다(920, 1022, 1024).
선택된 발급 노드(1101, 1103)들 각각에서 임시 블록을 생성하여(1026, 1111, 1130) 공유한다(930, 1111, 1131). 이때, 선택된 발급 노드(1102)는 생성된 임시 블록을 공유 받을 때까지 대기한다(1120). 여기서, 임시 블록은 블록체인의 이전 블록의 헤더의 해시값, n, mk, 타임 스탬프 및 선택된 발급 노드의 블록 서명을 포함할 수 있다.
선택된 발급 노드(1101, 1103)들 각각에서 공유된 임시 블록들에 포함된 n과 mk를 확인하고(1112, 1132), 공유된 임시 블록 각각에 포함된 블록 서명을 확인하여(1113, 1133) 이상이 없으면, 공유된 임시 블록들에 포함된 모든 블록 서명을 포함하는 블록을 생성한다(940, 1114, 1134). 여기서, 블록은 블록체인의 이전 블록의 헤더의 해시값, n, mk, 타임 스탬프 및 선택된 발급 노드들의 모든 블록 서명을 포함할 수 있다.
선택된 발급 노드(1101, 1103)들 각각에서 블록(1140)을 선택되지 않은 발급 노드(1120)들로 송신한다(950).
발급 노드(1101, 1102, 1103)들 각각에서 블록을 저장한다(960).
960단계에서 발급 노드(1101, 1102, 1103)들은 블록에 포함된 블록 서명들 중에서 기설정된 임계값 이상의 블록 서명이 검증되면 블록을 저장할 수 있다. 이때, 선택된 발급 노드(1101, 1103)들은 검증을 생략할 수도 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (14)

  1. 발급 노드 별로 각각의 발급자 인증서를 생성하는 단계;
    발급 노드에서 사용자 노드로부터 인증서 발급을 요청 받으면, 사용자 인증서를 생성하는 단계; 및
    상기 발급 노드 별로 상기 발급자 인증서 및 상기 사용자 인증서를 블록 체인에 저장하는 단계
    를 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
  2. 제1항에 있어서,
    상기 발급자 인증서는,
    상기 발급 노드의 식별정보, 상기 발급 노드의 공개키, 모든 발급 노드들의 정보, 상기 모든 발급 노드들의 서명
    을 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
  3. 제1항에 있어서,
    상기 사용자 인증서는,
    상기 사용자 노드의 식별정보, 상기 사용자 노드의 공개키, 모든 발급 노드들의 정보, 상기 모든 발급 노드들의 서명
    을 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
  4. 제1항에 있어서,
    상기 발급 노드 별로 각각의 발급자 인증서를 생성하는 단계는,
    상기 발급 노드들 각각에서 발급 노드의 공개키에 자체 서명하여 상기 발급 노드의 자체 서명 인증서를 생성하여 다른 발급 노드들로 송신하는 단계;
    상기 다른 발급 노드들 각각에서 상기 발급 노드의 자체 서명 인증서를 수신하면, 상기 발급 노드의 공개키와 상기 발급 노드의 서명을 검증하고, 검증에 성공하면 상기 발급 노드의 자체 서명 인증서와 상기 다른 발급 노드의 서명을 포함하는 상기 다른 발급 노드로 서명된 상기 발급 노드의 임시 인증서를 생성하여 또 다른 발급 노드들로 송신하는 단계;
    상기 또 다른 발급 노드들 각각에서 상기 다른 발급 노드로 서명된 상기 발급 노드의 임시 인증서를 수신하면, 상기 다른 발급 노드의 서명을 검증하고, 검증 결과를 상기 발급 노드의 공개키로 암호화하여 상기 다른 발급 노드로 송신하는 단계;
    상기 다른 발급 노드들 각각에서 상기 다른 발급 노드로 서명된 상기 발급 노드의 임시 인증서와 상기 또 다른 발급 노드들로부터 수신한 검증 결과를 상기 발급 노드로 송신하는 단계; 및
    상기 발급 노드들 각각에서 상기 다른 발급 노드들의 서명을 모아서 각각의 상기 발급자 인증서를 생성하는 단계
    를 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
  5. 제1항에 있어서,
    상기 사용자 인증서를 생성하는 단계는,
    상기 사용자 노드에서 상기 사용자 노드의 공개키와 상기 사용자 노드의 서명을 포함하는 상기 사용자 노드의 자체 서명 인증서를 생성하여 상기 발급 노드로 송신함으로써 인증서 발급을 요청하는 단계;
    상기 발급 노드에서 상기 사용자 노드의 자체 서명 인증서를 수신하면, 상기 사용자 노드를 인증하는 단계;
    상기 발급 노드에서 상기 사용자 노드의 인증에 성공하면, 상기 사용자 노드의 자체 서명 인증서를 다른 발급 노드들로 송신하고, 상기 사용자 노드의 자체 서명 인증서에 포함된 상기 사용자 노드의 공개키와 상기 사용자 노드의 서명을 검증하고, 검증에 성공하면, 상기 사용자 노드의 자체 서명 인증서와 상기 발급 노드의 서명을 포함하는 상기 발급 노드로 서명된 상기 사용자 노드의 임시 인증서를 생성하는 단계;
    상기 다른 발급 노드 각각에서 상기 사용자 노드의 자체 서명 인증서를 수신하면, 상기 사용자 노드의 자체 서명 인증서에 포함된 상기 사용자 노드의 공개키와 상기 사용자 노드의 서명을 검증하고, 검증에 성공하면, 상기 사용자 노드의 자체 서명 인증서와 상기 다른 발급 노드의 서명을 포함하는 상기 다른 발급 노드로 서명된 상기 사용자 노드의 임시 인증서를 생성하여 또 다른 발급 노드들로 송신하는 단계;
    상기 또 다른 발급 노드들 각각에서 상기 다른 발급 노드로 서명된 상기 사용자 노드의 임시 인증서를 수신하면, 상기 사용자 노드의 공개키와 상기 다른 발급 노드의 서명을 검증하고, 검증 결과를 상기 발급 노드의 공개키로 암호화하여 상기 다른 발급 노드로 송신하는 단계;
    상기 다른 발급 노드들 각각에서 상기 다른 발급 노드로 서명된 상기 사용자 노드의 임시 인증서와 상기 또 다른 발급 노드들로부터 수신한 검증 결과를 상기 발급 노드로 송신하는 단계; 및
    상기 발급 노드에서 상기 다른 발급 노드들의 서명을 모아서 상기 사용자 인증서를 생성하는 단계
    를 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
  6. 제1항에 있어서,
    상기 발급 노드 별로 상기 발급자 인증서 및 상기 사용자 인증서를 상기 블록체인에 저장하는 단계는,
    상기 발급 노드 각각에서 자신이 생성한 인증서의 개수(n)와 상기 생성한 인증서의 머클 트리 해시값(mk)을 계산하여 다른 발급 노드들로 송신하여 공유하는 단계;
    공유 결과 가장 많이 나타나는 상기 n과 상기 mk의 조합을 계산한 발급 노드를 선택하는 단계;
    선택된 발급 노드들 각각에서 임시 블록을 생성하여 공유하는 단계;
    상기 선택된 발급 노드들 각각에서 공유된 임시 블록들에 포함된 n과 mk를 확인하고, 상기 공유된 임시 블록 각각에 포함된 블록 서명을 확인하여 이상이 없으면, 상기 공유된 임시 블록들에 포함된 모든 블록 서명을 포함하는 블록을 생성하는 단계;
    상기 선택된 발급 노드들 각각에서 상기 블록을 선택되지 않은 발급 노드들로 송신하는 단계; 및
    상기 발급 노드들 각각에서 상기 블록을 저장하는 단계
    를 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
  7. 제6항에 있어서,
    상기 발급 노드들 각각에서 상기 블록을 저장하는 단계는,
    상기 발급 노드들은 상기 블록에 포함된 블록 서명들 중에서 기설정된 임계값 이상의 블록 서명이 검증되면 상기 블록을 저장하는
    블록체인을 기반한 공개키 기반 구조 시스템의 방법.
  8. 제6항에 있어서,
    상기 임시 블록은,
    상기 블록체인의 이전 블록의 헤더의 해시값, 상기 n, 상기 mk, 타임 스탬프 및 상기 선택된 발급 노드의 블록 서명
    을 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
  9. 제6항에 있어서,
    상기 블록은,
    상기 블록체인의 이전 블록의 헤더의 해시값, 상기 n, 상기 mk, 타임 스탬프 및 상기 선택된 발급 노드들의 모든 블록 서명
    을 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
  10. 제1항에 있어서,
    상기 발급자 인증서를 생성하는 단계 이후에,
    상기 사용자 노드에서 상기 발급자 인증서를 검증하는 단계
    를 더 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
  11. 제10항에 있어서,
    상기 사용자 노드에서 상기 발급자 인증서를 검증하는 단계는,
    상기 사용자 노드에서 상기 블록체인 시스템에 포함된 모든 발급 노드로부터 상기 발급자 인증서를 획득하는 단계;
    상기 사용자 노드에서 상기 발급 노드의 상기 발급자 인증서에 포함된 서명들을 다른 발급 노드의 발급자 인증서에 포함된 공개키들을 이용하여 검증하는 단계; 및
    상기 사용자 노드에서 검증된 서명의 수가 기설정된 임계값 이상인 발급자 인증서만을 신뢰할 수 있다고 판단하는 단계
    를 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
  12. 제1항에 있어서,
    상기 사용자 인증서를 생성하는 단계 이후에,
    상기 사용자 노드에서 상기 사용자 인증서를 검증하는 단계
    를 더 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
  13. 제12항에 있어서,
    상기 사용자 노드에서 상기 사용자 인증서를 검증하는 단계는,
    상기 사용자 노드에서 상기 사용자 인증서를 수신하는 단계;
    상기 사용자 노드에서 상기 사용자 인증서에 포함된 상기 발급 노드들의 서명들을 신뢰하는 발급자 인증서들로 검증하는 단계; 및
    검증 결과 상기 사용자 노드에서 상기 사용자 인증서에 포함된 상기 발급 노드들의 서명들 중에서 기설정된 임계값 이상의 서명이 검증되면 상기 사용자 인증서를 신뢰할 수 있다고 판단하는 단계
    를 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
  14. 복수의 발급 노드를 포함하고,
    상기 복수의 발급 노드 각각은,
    다른 발급 노드와 또 다른 발급 노드들과 연계해서 각각의 발급자 인증서를 생성하고, 사용자 노드로부터 인증서 발급을 요청 받으면 상기 다른 발급 노드와 상기 또 다른 발급 노드들과 연계해서 사용자 인증서를 생성하고, 상기 발급자 인증서 및 상기 사용자 인증서를 포함하는 블록을 생성하여 블록 체인에 저장하는
    블록체인을 기반한 공개키 기반 구조 시스템.
KR1020190110855A 2019-09-06 2019-09-06 블록체인에 기반한 공개키 기반 구조 시스템 및 방법 KR102291579B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190110855A KR102291579B1 (ko) 2019-09-06 2019-09-06 블록체인에 기반한 공개키 기반 구조 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190110855A KR102291579B1 (ko) 2019-09-06 2019-09-06 블록체인에 기반한 공개키 기반 구조 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20210029517A true KR20210029517A (ko) 2021-03-16
KR102291579B1 KR102291579B1 (ko) 2021-08-19

Family

ID=75224099

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190110855A KR102291579B1 (ko) 2019-09-06 2019-09-06 블록체인에 기반한 공개키 기반 구조 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102291579B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101723405B1 (ko) * 2016-07-04 2017-04-06 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법
KR101825320B1 (ko) * 2017-01-26 2018-03-22 (주)에이티솔루션즈 인증서 관리 방법
KR20180041055A (ko) * 2017-09-06 2018-04-23 주식회사 코인플러그 스마트 컨트랙트 기반의 인증서 서비스를 제공하는 방법 및 이를 이용한 서버
KR20180123967A (ko) * 2018-04-30 2018-11-20 주식회사 코인플러그 블록체인 기반의 사물 인터넷 기기에 대한 비용을 결제하는 방법, 이를 이용한 서버, 서비스 제공 단말, 및 사용자 전자 지갑
KR101941625B1 (ko) * 2017-12-28 2019-01-24 주식회사 더봄에스 선택적 인증을 통한 에스앤에스 핀테크 시스템 및 그 동작 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101723405B1 (ko) * 2016-07-04 2017-04-06 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법
KR101825320B1 (ko) * 2017-01-26 2018-03-22 (주)에이티솔루션즈 인증서 관리 방법
KR20180041055A (ko) * 2017-09-06 2018-04-23 주식회사 코인플러그 스마트 컨트랙트 기반의 인증서 서비스를 제공하는 방법 및 이를 이용한 서버
KR101941625B1 (ko) * 2017-12-28 2019-01-24 주식회사 더봄에스 선택적 인증을 통한 에스앤에스 핀테크 시스템 및 그 동작 방법
KR20180123967A (ko) * 2018-04-30 2018-11-20 주식회사 코인플러그 블록체인 기반의 사물 인터넷 기기에 대한 비용을 결제하는 방법, 이를 이용한 서버, 서비스 제공 단말, 및 사용자 전자 지갑

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Jean-Guillaume Dumas 외 1명, Matrix Powers algorithms for trust evaluation in PKI architectures, Researchgate.net (2011.07.12.)\* *

Also Published As

Publication number Publication date
KR102291579B1 (ko) 2021-08-19

Similar Documents

Publication Publication Date Title
JP6684930B2 (ja) ブロックチェーンに基づくアイデンティティ認証方法、装置、ノード及びシステム
US11228452B2 (en) Distributed certificate authority
US7694329B2 (en) Secure delegation using public key authentication
US8196186B2 (en) Security architecture for peer-to-peer storage system
JP2020502857A5 (ko)
EP3966997B1 (en) Methods and devices for public key management using a blockchain
US10291567B2 (en) System and method for resetting passwords on electronic devices
CN108696356B (zh) 一种基于区块链的数字证书删除方法、装置及系统
US20110231662A1 (en) Certificate validation method and validation server
US10887110B2 (en) Method for digital signing with multiple devices operating multiparty computation with a split key
CN114008968A (zh) 用于计算环境中的许可授权的系统、方法和存储介质
KR101404642B1 (ko) 래티스 기반 인증서 비사용 서명 시스템 및 방법
JP2004248220A (ja) 公開鍵証明書発行装置、公開鍵証明書記録媒体、認証端末装置、公開鍵証明書発行方法、及びプログラム
CN114154125A (zh) 云计算环境下区块链无证书的身份认证方案
US11595218B2 (en) Authorization delegation
CN112600831A (zh) 一种网络客户端身份认证系统和方法
CN116707983A (zh) 授权认证方法及装置、接入认证方法及装置、设备、介质
KR102337675B1 (ko) 수취인을 확인할 수 있는 암호화폐 송금 시스템 및 방법
KR102291579B1 (ko) 블록체인에 기반한 공개키 기반 구조 시스템 및 방법
TWI698113B (zh) 電子裝置之認證方法及系統
JP6765993B2 (ja) クレデンシャル生成システム及び方法
KR102561247B1 (ko) 비밀 분산을 이용한 데이터 전송 방법
KR101864932B1 (ko) 클라우드 환경에서 그룹 서명자용 래티스 기반 선형 준동형 서명 방법 및 장치
Kumar et al. Multi-cryptosystem based privacy-preserving public auditing for regenerating code based cloud storage
Patil et al. Privacy preserving and dynamic audit service for secure cloud storage

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