KR102506432B1 - 인증서 폐기 리스트 관리 방법 및 이를 위한 시스템 - Google Patents

인증서 폐기 리스트 관리 방법 및 이를 위한 시스템 Download PDF

Info

Publication number
KR102506432B1
KR102506432B1 KR1020220134995A KR20220134995A KR102506432B1 KR 102506432 B1 KR102506432 B1 KR 102506432B1 KR 1020220134995 A KR1020220134995 A KR 1020220134995A KR 20220134995 A KR20220134995 A KR 20220134995A KR 102506432 B1 KR102506432 B1 KR 102506432B1
Authority
KR
South Korea
Prior art keywords
certificate
certification authority
authority server
smart contract
revocation list
Prior art date
Application number
KR1020220134995A
Other languages
English (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 주식회사 블로코
Application granted granted Critical
Publication of KR102506432B1 publication Critical patent/KR102506432B1/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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/103Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for protecting copyright

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 폐기 된 인증서들이 기록된 인증서 폐기 리스트를 관리하는 방법 및 시스템에 관한 것으로, 구체적으로는 블록체인 네트워크 상에서 인증기관 서버에 의해 폐기 된 인증서들에 대한 기록이 관리가 가능하게 함으로써 인증서의 유효성을 검증하는 과정이 블록체인 네트워크를 기반으로 이루어질 수 있게 하기 위한 방법 및 시스템에 관한 것이다.

Description

인증서 폐기 리스트 관리 방법 및 이를 위한 시스템 {REVOCATION LIST MANAGEMENT METHOD AND SYSTEM THEREFOR}
본 발명은 폐기(revoke) 된 인증서들이 기록된 인증서 폐기 리스트를 관리하는 방법 및 시스템에 관한 것으로, 구체적으로는 블록체인 네트워크 상에서 인증기관 서버에 의해 폐기된 인증서들에 대한 기록이 관리가 가능하게 함으로써 인증서의 유효성을 검증하는 과정이 블록체인 네트워크를 기반으로 이루어질 수 있게 하기 위한 방법 및 시스템에 관한 것이다.
인증서란 네트워크를 통한 각종 서비스 이용시 인증을 위해 필요한 전자서명을 일컫는 것으로, 이러한 인증서는 신뢰할 수 있는 인증기관(Certificate Authority)이 전자서명하여 생성하며, 인증기관이 공개키를 공증해 주기 위한 용도로 활용된다.
한편, 인증서는 유효기간이 있으며, 또한 신뢰성이 담보되어야 하는 매개체이므로 사용자가 인증서를 이용할 시에는 그 유효성이 지속적으로, 검증될 필요가 있다.
현재 인증서의 유효성을 확인하기 위한 수단으로는 CRL(Certificate Revocation List)과 OSCP(Online Status Certificate Protocol)가 존재한다. 그러나 CRL은 리스트를 매번 다운로드 받아야 하므로 시간이 많이 소요되는 문제가 있으며, OSCP의 경우에도 다수의 웹사이트들로부터 대량의 조회 요청이 수신되면 유효성 확인이 어려워지는 문제, 그리고 유효성 검증 때마다 소정의 비용이 발생하는 문제가 있다.
본 발명은 이와 같이 인증서의 유효성 검증을 효율적으로, 그리고 실시간으로 빠르게 수행할 수 있는 환경을 구축하는 관점에서 종래의 수단 대비 개선된 방향을 제시하고자 한 것이다. 또한, 본 발명은 이상에서 살핀 기술적 문제점을 해소시킬 수 있음은 물론, 본 기술분야에서 통상의 지식을 가진 자가 용이하게 발명할 수 없는 추가적인 기술요소들을 제공하기 위해 발명되었다.
한국등록특허 10-2332226호(2021.11.29. 공고)
본 발명은 인증서의 유효성 검증이 종래의 수단 대비 더 효과적으로 이루어질 수 있는 환경을 제공하는 것을 목적으로 한다.
또한 본 발명은 인증서 표준의 틀을 벗어나지 않는 범위에서 반드시 필요한 필수정보들만을 인증서 내에 삽입시킴으로써 기존 인증서 사용환경을 그대로 유지한 채 개선된 유효성 검증 환경이 갖추어질 수 있게 하는 것을 목적으로 한다.
또한 본 발명은 블록체인 네트워크라는 신뢰성 높은 인프라를 활용함으로써 인증서의 무결성 및 안정성을 담보하는 것을 목적으로 한다.
한편, 본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
위와 같은 문제점을 해결하기 위한 것으로, 본 발명에 따른 인증서 폐기 리스트를 관리하는 방법은, (a) 인증기관 서버가 인증서 관리용 스마트 컨트랙트를 블록체인 네트워크 상에 배포하는 단계; (b) 상기 인증기관 서버가 상기 인증서 관리용 스마트 컨트랙트에 인증서 폐기 리스트를 저장하는 단계; (c) 상기 인증기관 서버가 상기 인증서 폐기 리스트를 갱신하는 단계; 를 포함하되, 상기 (c)단계는, 상기 인증기관 서버가, 폐기 된 인증서의 인증서 식별자를 상기 인증서 폐기 리스트에 추가함으로써 갱신하는 단계인 것을 특징으로 할 수 있다.
또한 상기 폐기 인증서 관리 방법에 있어서 상기 (c)단계는, 상기 인증기관 서버가, 상기 인증서 폐기 리스트 내 복수 개의 인증서 식별자들 중 기 설정된 기간이 경과한 인증서의 인증서 식별자를 기 정해진 주기마다 삭제함으로써 갱신하는 단계인 것을 특징으로 할 수 있다.
본 발명에 따르면 실시간으로, 그리고 효율적으로 인증서를 검증할 수 있는 환경이 마련되는 효과가 있다.
또한 본 발명에 따르면 기존의 인증서 포맷을 실질적으로 그대로 활용하게 되므로 부가적인 변경 없이 인증서를 저장 및 검증할 수 있게 되는 효과가 있다.
한편, 본 발명에 의한 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 전제가 되는 인증서 발급 시스템을 간략히 도시한 것이다.
도 2는 도 1의 시스템적 환경 내에서 인증서가 발급 방법의 제1 실시예를 도시한 것이다.
도 3은 본 발명에서 사용되는 인증서의 세부구조를 도시한 것이다.
도 4는 인증서 발급 방법의 제2 실시예를 도시한 것이다.
도 5는 인증서 발급 방법의 제3 실시예를 도시한 것이다.
도 6은 본 발명에 따라 인증서 폐기 리스트가 관리되는 모습을 설명하기 위한 도면이다.
본 발명의 목적과 기술적 구성 및 그에 따른 작용 효과에 관한 자세한 사항은 본 발명의 명세서에 첨부된 도면에 의거한 이하의 상세한 설명에 의해 보다 명확하게 이해될 것이다. 첨부된 도면을 참조하여 본 발명에 따른 실시예를 상세하게 설명한다.
본 명세서에서 개시되는 실시예들은 본 발명의 범위를 한정하는 것으로 해석되거나 이용되지 않아야 할 것이다. 이 분야의 통상의 기술자에게 본 명세서의 실시예를 포함한 설명은 다양한 응용을 갖는다는 것이 당연하다. 따라서, 본 발명의 상세한 설명에 기재된 임의의 실시예들은 본 발명을 보다 잘 설명하기 위한 예시적인 것이며 본 발명의 범위가 실시예들로 한정되는 것을 의도하지 않는다.
도면에 표시되고 아래에 설명되는 기능 블록들은 가능한 구현의 예들일 뿐이다. 다른 구현들에서는 상세한 설명의 사상 및 범위를 벗어나지 않는 범위에서 다른 기능 블록들이 사용될 수 있다. 또한, 본 발명의 하나 이상의 기능 블록이 개별 블록들로 표시되지만, 본 발명의 기능 블록들 중 하나 이상은 동일 기능을 실행하는 다양한 하드웨어 및 소프트웨어 구성들의 조합일 수 있다.
또한, 어떤 구성요소들을 포함한다는 표현은 “개방형”의 표현으로서 해당 구성요소들이 존재하는 것을 단순히 지칭할 뿐이며, 추가적인 구성요소들을 배제하는 것으로 이해되어서는 안 된다.
나아가 어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급될 때에는, 그 다른 구성요소에 직접적으로 연결 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 한다.
도 1은 본 발명에 따른 인증서 폐기 리스트 관리 방법이 구현되기 위해 전제적으로 필요한 시스템을 도시한 것이다. 이를 참고할 때, 인증서 발급 시스템에는 복수개의 인증기관 서버들이 포함될 수 있으며, 그리고 이들 인증기관 서버들은 블록체인 네트워크에 접근이 가능하도록 연결될 수 있다. 인증기관 서버들은 더 여러 개가 존재할 수도 있겠으나, 여기서는 발명의 이해를 쉽게 하기 위하여 2개의 인증기관 서버들이 존재하는 상황을 전제로 설명을 하기로 한다.
도면에는 제1 인증기관 서버(100), 및 제2 인증기관 서버(200)가 존재하며, 이들 서버들이 블록체인 네트워크(BLN)에 연결된 시스템적 환경이 도시되어 있다. 인증기관 서버란, 인증기관에서 운영하는 서버로 이해될 수 있으며, 인증기관이란, 보안 적격 여부 및 메시지 암호화를 위한 공개키의 발급, 그리고 발급한 공개키를 관리하는 네트워크 상에서의 한 기관으로 정의될 수 있다. 즉, 인증기관은 사용자의 요청에 따라 인증서를 발급하고, 발급한 인증서에 대해서는 보증을 서 주는 것과 유사한 역할을 하는 기관으로 볼 수 있다.
한편, 인증기관 서버에서는 여러 기능들을 수행할 수 있는데, 예를 들어 공개키 쌍을 생성하는 기능, 공개키 파라미터에 대한 테스트를 하는 기능, 하위 인증기관에 인증서를 발급하는 기능, 식별자(Distinguished Name)를 확인하는 기능, 인증서 신청인에 대한 신원 확인 및 인증하는 기능, 전자서명을 생성 및 검사하는 기능, CRL을 생성, 관리, 분배하는 기능, 발행된 인증서에 대한 기록을 유지하는 기능, 시스템 감사 기록을 생성하고 관리하는 기능, 타임스탬프를 생성하거나 획득하는 기능, 인증서를 취소하는 기능 등을 수행할 수 있다.
또한, 상기 인증기관 서버는 일종의 서버 컴퓨터로, 중앙처리유닛 및 메모리를 갖춘 연산장치라면 상기 인증기관 서버를 구현하는 데에 활용될 수 있다. 중앙처리유닛은 컨트롤러(controller), 마이크로 컨트롤러(microcontroller), 마이크로 프로세서(microprocessor), 마이크로 컴퓨터(microcomputer) 등으로도 불릴 수 있다. 또한 중앙처리유닛은 하드웨어(hardware) 또는 펌웨어(firmware), 소프트웨어, 또는 이들의 결합에 의해 구현될 수 있는데, 하드웨어를 이용하여 구현하는 경우에는 ASIC(application specific integrated circuit) 또는 DSP(digital signal processor), DSPD(digital signal processing device), PLD(programmable logic device), FPGA(field programmable gate array) 등으로, 펌웨어나 소프트웨어를 이용하여 구현하는 경우에는 위와 같은 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등을 포함하도록 펌웨어나 소프트웨어가 구성될 수 있다. 또한, 메모리는 ROM(Read Only Memory), RAM(Random Access Memory), EPROM(Erasable Programmable Read Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래쉬(flash) 메모리, SRAM(Static RAM), HDD(Hard Disk Drive), SSD(Solid State Drive) 등으로 구현될 수 있다.
또한, 상기 인증기관 서버는 어느 하나의 서버 컴퓨터로만 구현이 가능한 것은 아닐 수 있으며, 복수 개의 서버 컴퓨터에 의해 구성된 하나의 시스템으로도 구현이 가능할 수 있다. 다만, 이 경우 더 적합한 용어는 인증기관 시스템이 될 것이나, 본 상세한 설명에서는 용어의 통일성을 위해 인증기관 서버라는 용어를 지속적으로 사용하기로 한다.
또 다른 한편, 상기 인증기관 서버는 반드시 서버 컴퓨터의 형태가 아닐지라도 클라우드 서버의 형태, 즉 다른 운영 주체에 의해 관리 및 운영되는 클라우드 서버의 형태로 구현이 될 수도 있다.
다음으로 블록체인이란 일정기간 동안의 거래정보를 기록하고 있는 블록(block)들을 체인 형태로 연결하여 수많은 컴퓨터에 동시에 복제해 저장한 분산형 데이터 저장 기술을 일컫는다. 블록체인 네트워크는 이처럼 데이터를 체인과 같이 연결하여 중앙 집중형 서버에 거래기록을 보관하지 않고 누구나 열람할 수 있게 공개함으로써 데이터 위조나 변조가 애초부터 이루어질 수 없게, 즉 거래기록을 서로 감시할 수 있게 한 P2P 구조의 데이터 저장 수단이다. 블록체인에 기록된 데이터는 해킹을 통한 위변조가 매우 어렵기 때문에 누구나 신뢰할 수 있다는 특징이 있으며, 또한 블록체인에 기록된 데이터는 여러 컴퓨터에 분산 저장되기 때문에 특정 노드에 대한 디도스 공격이나 랜섬웨어 공격 등으로부터도 안전하다. 나아가 블록체인은 평등한 참여자들에 의해 자율적으로 유지되고 운영될 수 있으므로 기존에 모든 정보가 중앙 서버로 집중되던 서버 클라이언트 구조에 비해 유연한 특성을 가진다.
블록체인 기술은 암호화폐, 스마트 컨트랙트, 물류관리, 문서관리, 신원확인 등등 다양한 분야에서 활용될 수 있는데, 본 발명에 따른 인증서 발급 방법과 관련하여서는 특히 블록체인 기술이 스마트 컨트랙트에 활용될 수 있음에 주목할 필요가 있다. 스마트 컨트랙트는 일정 조건이 만족되면 자동으로 계약 내용이 실행되도록 하는 기능이자, 중간에 제3의 보증기관을 두지 않은 채 P2P 상에서 원하는 계약을 체결할 수 있도록 해 주는 디지털 전자계약 기능이다. 일 예로, 임의의 트랜잭션이 발생됐을 때, 해당 트랜잭션에 대한 블록이 생성 및 브로드캐스팅 되며, 블록을 전달 받은 각 노드들은 해당 블록을 자신의 블록체인 맨 끝에 추가하고, 해당 블록에 저장되어 있는 트랜잭션을 적용시켜 자신의 스마트 컨트랙트 데이터베이스를 동기화 한다. 후술하겠지만, 본 발명에서는 임의의 하위 인증기관 서버가 상위 인증기관 서버로부터 CA인증서를 수신하였을 때, 해당 CA인증서를 블록체인 네트워크 상에 배포되어 있는 스마트 컨트랙트에 저장(기록)하는 것을 하나의 중요한 특징으로 하며, 이렇게 블록체인 네트워크의 노드들이 스마트 컨트랙트 데이터베이스를 공유하게 됨으로써 인증서의 무결성, 안전성, 안정성이 담보된다.
참고로 본 상세한 설명에서는 임의의 데이터(예. 인증서)가 스마트 컨트랙트에 저장된다는 표현이 사용되는데, 이는 스마트 컨트랙트가 블록체인 네트워크에 배포될 시 당연하게 할당되는 스토리지(state DB, ledger 등의 용어로도 지칭됨)에 저장됨을 의미한다. 예를 들어, ‘CA인증서가 스마트 컨트랙트에 저장된다’는 것의 의미는 ‘CA인증서라는 데이터가 스마트 컨트랙트가 블록체인 네트워크에 배포될 시 할당받은 상기 스마트 컨트랙트의 스토리지에 저장된다’는 것을 의미하는 것으로 이해된다.
도 2는 도 1의 시스템적 환경 내에서 인증서가 발급되는 제1 실시예를 도시한 것이다. 제1 실시예는 하위 인증기관 서버가 상위 인증기관 서버로부터 CA인증서를 발급 받는 과정에 관한 것이다. 참고로, 도면 상에서는 제1 인증기관 서버(100)가 상대적으로 하위에 있는 인증기관의 서버이며, 제2 인증기관 서버(200)는 상대적으로 상위에 있는 인증기관의 서버이다.
도면을 참고할 때, 제1 실시예에 따른 인증서 발급 방법은 가장 먼저 제1 인증기관 서버(100)가 블록체인 네트워크(50)에 인증서 관리용 인증서 관리용 제1 스마트 컨트랙트를 배포하는 단계(S101)로부터 시작될 수 있다. 본 단계는 개념적으로는 제1 인증기관 서버(100)가 다수의 노드들이 공유할 수 있는 매개체, 그것도 인증서를 저장해 둘 수 있는 매개체를 사전에 마련해 두는 단계로도 이해될 수 있다.
S101 단계 이후, 제1 인증기관 서버(100)는 제2 인증기관 서버(200) 측에 CA인증서를 발급해 줄 것을 요청(S102)할 수 있다. 이 단계에서 제1 인증기관 서버(100)는 제2 인증기관 서버(20) 측에 상기 인증서 관리용 제1 스마트 컨트랙트를 식별할 수 있는 식별자, 즉 인증서 관리용 제1 스마트 컨트랙트 식별자(identifier)를 함께 전달할 수 있다. 특정 스마트 컨트랙트를 식별하기 위한 식별자에는 다양한 형태의 것들이 존재할 수 있으며, 바람직하게는 인증기관 서버가 블록체인 네트워크 상에 배포해 둔 스마트 컨트랙트의 주소일 수 있다, 한편, 상기 식별자에는 스마트 컨트랙트의 주소에 부가정보들이 덧붙여진 형태로도 구성할 수 있으며, 또는 그 밖에 랜덤한 문자 및/또는 숫자로 조합된 텍스트가 스마트 컨트랙트를 식별하기 위한 식별자로 활용될 수도 있다. 굳이 예시를 들어본다면 상기 인증서 관리용 제1 스마트 컨트랙트 식별자는 “0x466BDA20T86GgA9037k…d00792”일 수 있다.
S102 단계 이후에는 제2 인증기관 서버(200)가 상기 발급요청에 대한 응답으로 CA인증서를 생성하며, 제1 인증기관 서버(100)는 제2 인증기관 서버(200)로부터 위 CA인증서를 발급 받는다(S103). 이 때, 상기 CA인증서 내에는 앞서 S102 단계에서 제2 인증기관 서버(200) 측으로 전달되었던 인증서 관리용 제1 스마트 컨트랙트 식별자가 포함되어 있을 수 있다.
S103 단계 이후, 제1 인증기관 서버(100)는 상기 인증서 관리용 제1 스마트 컨트랙트에 상기 CA인증서를 저장(S104)할 수 있다. 즉, 제1 인증기관 서버(100)는 자신에게 발급된 CA인증서를 블록체인 네트워크(50) 상에 기록을 해 둠으로써 CA인증서가 언제든지, 누구든지 조회 가능한 상태가 되도록 할 수 있다.
이렇게 S101 단계 내지 S104 단계를 거쳐 하위 인증기관 서버는 상위 인증기관 서버로부터 발급 받은 CA인증서를 블록체인 네트워크 상에 기록할 수 있다.
한편, 상기 S103 단계에서 발급된 CA인증서 내에는 제2 인증기관 서버(200)가 사전에 블록체인 네트워크 상에 배포해 둔 인증서 관리용 제2 스마트 컨트랙트를 식별하기 위한 식별자, 즉 인증서 관리용 제2 스마트 컨트랙트 식별자가 더 포함될 수 있다. 제2 인증기관 서버(200)는 제1 인증기관 서버(100)와 마찬가지로 사전에 블록체인 네트워크 상에 인증서 관리용 제2 스마트 컨트랙트를 생성 및 배포 해 둘 수 있으며, 하위 인증기관인 제1 인증기관 서버(100) 측에 CA인증서를 발급할 때에 자신의 스마트 컨트랙트 식별자(인증서 관리용 제2 스마트 컨트랙트 식별자)를 CA인증서 내에 남김으로써 추적이 가능하게 할 수 있다.
참고로 도 3에는 본 발명에서 사용되는 인증서의 구조가 도시되어 있다. 즉, 인증기관 서버들에 의해 발급되는 인증서들, 블록체인 네트워크 상에 배포되어 있는 스마트 컨트랙트에 저장되는 인증서들은 도 3과 같은 구조를 가질 수 있다. 도면을 참고할 때, 인증서는 버전(Version), 인증서 고유일련번호(AlgorithmIdentifier), 인증서 유효기간(Period of Validity), 주체의 정보(Subject), 주체의 공개키 정보(Public Key Information), 발급자 이름(Issuer Unique ID), 주체 이름(Subject Unique ID), 발급요청한 인증기관의 스마트 컨트랙트 식별자(CA Smart Contract Identifier), 발급한 인증기관의 스마트 컨트랙트 식별자(Issuer CA Smart Contract Identifier), 또는 발급자 서명(Signature) 등과 같은 정보들을 포함할 수 있다.
또한, 상기 인증서는 필요에 따라 주체의 다른 이름(SubjectAltName), 정책정보(PolicyMappings), 명칭제약(NameConstraints), 정책제약 (PolicyContraints), 발급자의 다른 이름(IssuerAltName), 발급자 키식별자(AuthorityKeyIdentifier), 주체의 키식별자(SubjectKeyIdentifier), 기본제약(BasicConstraints), 또는 CRL획득위치(CRLDistributionPoints) 등과 같은 정보들이 부가적으로 더 포함될 수 있다.
본 발명에 따른 인증서 구조에서 주목할 점은 발급요청한 인증기관의 스마트 컨트랙트 식별자(CA Smart Contract Identifier)와 발급한 인증기관의 스마트 컨트랙트 식별자(Issuer CA Smart Contract Identifier)가 인증서 내에 필수적으로 포함되어 있는 점이며, 이러한 정보들은 인증서 표준 포맷에서 제공하는 확장(Extensions)영역에 기록될 수 있다는 점이다.
또 다른 한편, S104 단계는 제1 인증기관 서버(100)가 제2 인증기관 서버(200)로부터 발급 받은 CA인증서만 인증서 관리용 제1 스마트 컨트랙트에 저장하는 것을 기본으로 하나, S104 단계에서 제1 인증기관 서버(100)는 자신이 발급 받은 CA인증서뿐만 아니라 제2 인증기관 서버(200)보다 더 상위에 존재하는 인증기관 서버들이 발급한 CA인증서들도 함께 저장할 수 있다. 예를 들어, 제2 인증기관 서버(200)보다 더 상위의 인증기관 서버들인 제3 인증기관 서버, 제4 인증기관 서버가 존재한다고 가정할 때, 제1 인증기관 서버(100)는 인증서 관리용 제1 스마트 컨트랙트 내에 제2 인증기관 서버(200)로부터 발급 받은 CA인증서뿐만 아니라 루트 인증기관까지의 경로에 있는 모든 인증기관 의 인증서들도 저장할 수 있다.
제1 인증기관 서버(100)가 상위 인증기관 서버들이 발급한 CA인증서들을 획득하는 방법은 다양할 수 있는데, 예를 들어 제1 인증기관 서버(100)는 제2 인증기관 서버(200)로부터 발급 받은 CA인증서 내의 발급 인증기관의 스마트 컨트랙트 식별자(Issuer CA Smart Contract Identifier)를 참고하여 제2 인증기관 서버(200)가 제3 인증기관 서버로부터 발급 받은 CA인증서를 획득할 수 있으며, 또한 제3 인증기관 서버로부터 발급 받은 CA인증서 내 발급 인증기관의 스마트 컨트랙트 식별자(Issuer CA Smart Contract Identifier)를 참고하여 제4 인증기관 서버로부터 발급 받은 CA인증서를 획득하는 등 반복적으로 상위 CA인증서들 내 스마트 컨트랙트 식별자를 추적해 감으로써 복수 개의 CA인증서들을 획득할 수 있다.
제1 인증기관 서버(100)가 상위 인증기관 서버들이 발급한 CA인증서들을 획득하는 또 다른 방법으로, 제1 인증기관 서버(100)는 애초에 제2 인증기관 서버(200)로부터 CA인증서를 수신할 때에 제2 인증기관 서버(200)가 발급한 것뿐만 아니라 제3, 제4 인증기관 서버들이 발급한 CA인증서들을 모두 받을 수도 있다. 즉, 하위 인증기관 서버의 입장에서는 바로 위 상위 인증기관 서버로부터 복수 개의 CA인증서들을 수신할 수 있으며, 이렇게 수신된 복수 개의 CA인증서들을 블록체인 네트워크 상에 저장할 수 있다.
이 밖에도 제1 인증기관 서버(100)는 복수 개의 CA인증서들을 획득하도록 구현될 수 있으며, 복수 개의 CA인증서들을 인증서 관리용 제1 스마트 컨트랙트 내에 저장하도록 구현될 수 있다.
한편, 도 4는 인증서가 발급되는 또 다른 실시예(제2 실시예)를 도시한 것이다. 제2 실시예는 최상위 인증기관인 루트 인증기관 서버(250)와 이보다 하위의 인증기관인 제1 인증기관 서버(100)가 존재할 때의 인증서 발급 과정을 도시한 것이다.
도면을 참고할 때, 가장 먼저 루트 인증기관 서버(250)는 블록체인 네트워크(50) 상에 루트 스마트 컨트랙트를 배포(S201)할 수 있으며, 이후 R인증서를 생성하는 단계(S202), 루트 스마트 컨트랙트에 상기 R인증서를 저장하는 단계(S203)가 순서대로 수행될 수 있다. S201 단계 내지 S203 단계는 소위 루트 인증기관 서버(250)가 인증서 발급을 준비하는 단계로도 이해될 수 있다. 참고로, R인증서라는 용어는 루트 인증기관이 생성 및 발급한 인증서를 의미하는 것으로, CA인증서와 구별하기 위해 R인증서라는 용어를 사용한 것이다.
한편, 루트 인증서 발급 준비가 모두 마쳐진 후에는 제1 인증기관 서버(100)가 루트 인증기관 서버(250)와의 사이에서 CA인증서를 발급받는 단계들이 진행될 수 있다. 이를 살펴볼 때, 제1 인증기관 서버(100)는 먼저 블록체인 네트워크(50) 상에 인증서 관리용 제1 스마트 컨트랙트를 배포하는 단계(S204), 루트 인증기관 서버(250)에 CA인증서 발급을 요청하는 단계(S205), 루트 인증기관 서버(250)로부터 CA인증서를 수신하는 단계(S206), 수신한 CA인증서를 인증서 관리용 제1 스마트 컨트랙트에 저장하는 단계(S207)가 차례로 수행됨을 알 수 있다. S204 단계 내지 S207 단계는 CA인증서를 발급하는 주체가 루트 인증기관 서버(250)로 바뀌었을 뿐, 실질적으로는 앞선 도 2의 S101 단계 내지 S104 단계와 실질적으로 동일하다.
한편, 루트 인증기관 서버(250)가 발급하는 CA인증서 내에는 인증서 관리용 제1 스마트 컨트랙트 식별자, 그리고 루트 컨트랙트 식별자가 포함될 수 있다. 루트 컨트랙트 식별자란, 루트 인증기관 서버(250)가 블록체인 네트워크(50)에 배포해 둔 루트 스마트 컨트랙트를 식별하기 위한 식별자, 예를 들어 주소일 수 있다.
도 5는 인증서 발급 과정 중 제3 실시예를 도시한 것이다. 제3 실시예는 앞서 살펴 본 제2 실시예에 사용자 단말기(10)가 제1 인증기관 서버(100)를 상대로 사용자 인증서를 발급 받는 과정이 더 포함된 것이다. 살펴볼 때, S301 단계 내지 S303 단계는 루트 인증기관 서버(250)가 인증서를 발급하는 과정에 해당되며, S304 단계 내지 S307 단계는 제1 인증기관 서버(100)가 CA인증서를 발급 받는 과정에 해당하는데, 이 과정들은 모두 제2 실시예에서 논하였으므로 자세한 설명을 생략하기로 한다.
S308 단계는 사용자 단말기(10)가 제1 인증기관 서버(100)를 대상으로 사용자인증서의 발급을 요청하는 단계이다. 여기서 사용자 단말기(10)란, 네트워크에서 서비스를 이용하기 위해 사용자인증서를 필요로 하는 사용자의 단말기를 일컫는 것으로, 중앙처리유닛 및 메모리를 갖추고 있을 것을 전제로 한다.
S308 단계 이후에는 제1 인증기관 서버(100)가 사용자인증서를 생성하는 단계(S309), 그리고 이를 사용자 단말기(10)가 수신하는 단계(S310)가 실행될 수 있다. 이 때, 제1 인증기관 서버(100)에 의해 생성되는 사용자인증서에는 인증서 관리용 제1 스마트 컨트랙트 식별자, 즉 제1 인증기관 서버(100)가 블록체인 네트워크(50)에 배포한 인증서 관리용 제1 스마트 컨트랙트를 식별하기 위한 식별자가 포함된다.
한편, S310 단계에서는 제1 인증기관 서버(100)가 사용자 단말기(10)에 사용자인증서만을 발급하는 것이 기본이긴 하나, 구현 예에 따라 제1 인증기관 서버(100)가 복수 개의 CA인증서들을 사용자 단말기(10) 측에 전달하도록 구현할 수도 있다. 즉, 제1 인증기관 서버(100)는 상위의 인증기관 서버들, 예를 들어 제2 인증기관 서버(200), 혹은 제3 인증기관 서버들이 발급한 CA인증서들도 함께 전달할 수 있다. 제1 인증기관 서버(100)가 사용자 단말기(10)에 전달할 수 있는 CA인증서에는 루트(ROOT) 인증기관 서버에 의해 발급된 인증서까지도 포함될 수 있다.
또한, 제1 인증기관 서버(100)가 상위 인증기관 서버들이 발급한 CA인증서들을 획득하는 방법은 다양할 수 있는데, 이는 앞서 S104의 변형 실시예에 대한 설명에서 논하였으므로 여기서는 자세한 설명을 생략하기로 한다.
도 6은 본 발명에 따른 인증서 폐기 리스트 관리 방법, 더 정확하게는 블록체인 네트워크를 활용하여 폐기된 인증서의 리스트를 관리하는 방법을 설명하기 위한 도면이다. 더 이상 유효하지 않은 인증서들은 폐기가 되며, 이렇게 폐기가 된 인증서들은 더 이상 인증에 활용되지 않도록 그 목록이 관리될 필요가 있다. 본 실시예는 폐기된 인증서들의 관리를 블록체인 네트워크 기반으로 하는 방법에 관한 것이다. 참고로, 도면에서는 제1 인증기관 서버(100) 및 제2 인증기관 서버(200)가 각각 하위 인증기관 서버, 상위 인증기관 서버로 도시되어 있는데, 이는 각 인증기관 서버들의 관점에서 폐기된 인증서 리스트를 관리하는 모습을 설명하기 위한 것이다.
도면을 참고할 때, 본 방법은 가장 먼저 CA인증서가 폐기(revoke)되는 단계(S401)로부터 시작될 수 있다. 예를 들어, 인증기관(CA)이 CA인증서를 부적절하게 발급한 것이 발견되거나 프라이빗키(private key)가 손상되었다고 판단된 경우, CA인증서는 불가역적으로 폐기(revoke)된다. 또한, 특정 엔티티(entity)가 허위로 다큐먼트를 게시하였거나, 소프트웨어 동작에 대해 잘못된 정보를 전달하였거나, 기타 정책 위반을 하는 등의 사정이 있는 경우에도 CA인증서는 폐기 될 수 있다. 참고로, 폐기된 CA인증서는 일반적으로 유효기간 만료 되기 전에 위와 같은 특별한 사유로 해지, 취소가 된 것들을 가리킨다.
S401 단계 후, 제2 인증기관 서버(200)는 인증서 관리용 제2 스마트 컨트랙트의 인증서 폐기 리스트에 폐기된 CA인증서의 식별자를 저장할 수 있다(S402). 제2 인증기관 서버(200)는 사전에 배포해 둔 인증서 관리용 제2 스마트 컨트랙트 내에 “인증서 폐기 리스트”를 따로 관리할 목적으로 별도 기록영역을 할애할 수 있으며, 실제 폐기 되는 CA인증서가 발생하는 경우 해당 CA인증서의 식별자를 상기 인증서 폐기 리스트 내에 저장할 수 있다. 물론, 상기 인증서 관리용 제2 스마트 컨트랙트 내 “인증서 폐기 리스트”는 공개적으로 조회나 열람이 가능할 수 있으며, 블록체인 네트워크의 특성에 따라 매우 빠른 시간 내에 공유 및 조회가 가능할 수 있다.
한편, 상기 제2 인증기관 서버(200)는 상기 인증서 관리용 제2 스마트 컨트랙트의 인증서 폐기 리스트를 주기적으로 정리할 수 있는데, 다시 말해 기 정해진 기간(또는 유효기간)이 지난 CA인증서의 식별자들을 인증서 폐기 리스트로부터 주기적으로 삭제를 할 수 있다(S403). 참고로, 삭제 대상의 선정은 본 발명에 대한 설명에서는 논의의 대상이 아니므로 여기서는 자세한 설명을 생략하기로 한다.
한편 다른 참고할 만한 사항으로, 상기 인증서 폐기 리스트에는, 최소한 폐기 된 CA인증서의 원래 유효기간만큼은 상기 폐기 된 CA인증서의 식별자가 기록되도록 할 수 있다. 어느 임의의CA인증서가 폐기가 되었다 하더라도, 폐기가 되기 전에는 정상적인 CA인증서이었기에 인증기관에 의해 발급이 정상적으로 이루어졌을 것이므로, 적어도 해당 CA인증서에 부여되어 있던 유효기간까지는 인증서 폐기 리스트에 기록을 해 둠으로써 인증서를 검증하는 주체들로 하여금 조회가 가능하게 할 수 있다. 필요에 따라, 제2 인증기관 서버(200)는 인증서 폐기 리스트를 주기적으로 정리할 때에 폐기 된 CA인증서의 원래 유효기간에다가 유효기간의 10%만큼을 더한 기간만큼 인증서 폐기 리스트에 기록을 유지해 둠으로써 타 검증주체들의 불편함을 방지할 수 있다.
한편, 제1 인증기관 서버(100)의 입장에서도 사용자인증서가 폐기(S404)된 후에는 인증서 관리용 제1 스마트 컨트랙트의 “인증서 폐기 리스트”에 상기 폐기된 사용자인증서의 식별자를 저장할 수 있다(S405).
또한, 같은 방식으로 제1 인증기관 서버(100)는 주기적으로 인증서 폐기 리스트 내 기록되어 있던 사용자인증서 식별자들을 삭제할 수 있다(S406)
이상 인증서 폐기 리스트를 관리하는 방법, 그리고 이를 위한 시스템에 대해 살펴보았다. 한편, 본 발명은 상술한 특정의 실시예 및 응용예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 구별되어 이해되어서는 안 될 것이다.
10 사용자 단말기
50 블록체인 네트워크
100 제1 인증기관 서버
200 제2 인증기관 서버
250 루트 인증기관 서버

Claims (2)

  1. 인증서 폐기 리스트를 관리하는 방법에 있어서,
    (a) 인증기관 서버가 인증서 관리용 스마트 컨트랙트를 블록체인 네트워크 상에 배포하는 단계;
    (b) 상기 인증기관 서버가 상기 인증서 관리용 스마트 컨트랙트 배포 시 할당된 상기 인증서 관리용 스마트 컨트랙트의 스토리지에 인증서 폐기 리스트를 저장하는 단계;
    (c) 상기 인증기관 서버가 상기 인증서 폐기 리스트를 갱신하는 단계;
    를 포함하고,
    상기 인증서 관리용 스마트 컨트랙트의 스토리지에는 적어도 하나의 인증서가 저장되는 것을 특징으로 하되, 상기 저장된 인증서의 인증서 구조는 확장영역을 포함하고,
    상기 확장영역에는, 인증서의 발급을 요청한 인증서 발급요청자의 인증서 관리용 스마트 컨트랙트 식별자, 및 상기 인증서를 발급한 인증서 발급자의 인증서 관리용 스마트 컨트랙트 식별자가 기록되는 것을 특징으로 하며,
    상기 (c)단계는,
    상기 인증기관 서버가, 폐기 된 인증서의 인증서 식별자를 상기 인증서 폐기 리스트에 추가함으로써 갱신하는 단계인 것을 특징으로 하는,
    인증서 폐기 리스트를 관리하는 방법.
  2. 제1항에 있어서,
    상기 (c)단계는,
    상기 인증기관 서버가, 상기 인증서 폐기 리스트 내 복수 개의 인증서 식별자들 중 기 설정된 기간이 경과한 인증서의 인증서 식별자를 기 정해진 주기마다 삭제함으로써 갱신하는 단계인 것을 특징으로 하는,
    인증서 폐기 리스트를 관리하는 방법.
KR1020220134995A 2022-04-19 2022-10-19 인증서 폐기 리스트 관리 방법 및 이를 위한 시스템 KR102506432B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20220048468 2022-04-19
KR1020220048468 2022-04-19

Publications (1)

Publication Number Publication Date
KR102506432B1 true KR102506432B1 (ko) 2023-03-07

Family

ID=85513637

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220134995A KR102506432B1 (ko) 2022-04-19 2022-10-19 인증서 폐기 리스트 관리 방법 및 이를 위한 시스템

Country Status (1)

Country Link
KR (1) KR102506432B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200107770A (ko) * 2019-03-04 2020-09-16 알리바바 그룹 홀딩 리미티드 블록 체인 시스템에서 인증서들을 처리하기 위한 방법 및 디바이스
WO2021055515A1 (en) * 2019-09-16 2021-03-25 Noodle Technology Inc. Provisioning and authenticating device certificates
KR102332226B1 (ko) 2019-11-15 2021-11-29 서강대학교 산학협력단 블록체인 원장에 대한 검증 가능한 블록체인 네트워크 시스템 및 상기 블록체인 네트워크에서의 블록체인 원장 검증 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200107770A (ko) * 2019-03-04 2020-09-16 알리바바 그룹 홀딩 리미티드 블록 체인 시스템에서 인증서들을 처리하기 위한 방법 및 디바이스
WO2021055515A1 (en) * 2019-09-16 2021-03-25 Noodle Technology Inc. Provisioning and authenticating device certificates
KR102332226B1 (ko) 2019-11-15 2021-11-29 서강대학교 산학협력단 블록체인 원장에 대한 검증 가능한 블록체인 네트워크 시스템 및 상기 블록체인 네트워크에서의 블록체인 원장 검증 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Alfred J. Menezes 외 2명, Handbook of Applied Cryptography, CRC Press (1996.) *

Similar Documents

Publication Publication Date Title
US10284379B1 (en) Public key infrastructure based on the public certificates ledger
US11438173B2 (en) Methods and apparatus for providing blockchain participant identity binding
CN109327528B (zh) 一种基于区块链的节点管理方法和装置
US11115418B2 (en) Registration and authorization method device and system
RU2300845C2 (ru) Способ и системы для обеспечения безопасного распределения данных через сети общего пользования
JP2021526341A (ja) 電子証明書の管理方法、装置、コンピュータ装置及びコンピュータプログラム
KR102307574B1 (ko) 블록체인을 기반으로 한 클라우드 데이터 저장 시스템 및 데이터 저장 방법
KR20090015026A (ko) 인덱스 저장소 사용 방법, 컴퓨터 시스템, 및 컴퓨터 판독가능 매체
Baldi et al. Certificate Validation Through Public Ledgers and Blockchains.
KR102410006B1 (ko) 사용자 권한 관리가 가능한 did 생성 방법 및 이를 이용한 사용자 권한 관리 시스템
Garba et al. LightLedger: a novel blockchain-based domain certificate authentication and validation scheme
WO2018088475A1 (ja) 電子認証方法及びプログラム
CN113271207A (zh) 基于移动电子签名的托管密钥使用方法、系统、计算机设备及存储介质
US20220294647A1 (en) Distributed ledger-based methods and systems for certificate authentication
KR102479985B1 (ko) 블록체인을 활용한 인증서 검증 방법 및 이를 위한 시스템
KR102479986B1 (ko) 블록체인 네트워크로부터 복수 개의 상위 인증기관 인증서들을 획득한 환경에서의 인증서 검증 방법 및 이를 위한 시스템
KR102479987B1 (ko) 검증요청자 단말기로부터 복수 개의 상위 인증기관 인증서들을 획득한 환경에서의 인증서 검증 방법 및 이를 위한 시스템
CN114003959A (zh) 去中心化身份信息处理方法、装置和系统
KR102506432B1 (ko) 인증서 폐기 리스트 관리 방법 및 이를 위한 시스템
KR102506431B1 (ko) 블록체인을 활용한 인증서 관리 방법 및 이를 위한 시스템
KR102565970B1 (ko) 블록체인을 활용한 인증서 발급 방법 및 이를 위한 시스템
JP7555869B2 (ja) 業務監査支援システム及び業務監査支援方法
Osmov et al. On the blockchain-based general-purpose public key infrastructure
KR20200110121A (ko) 블록체인 네트워크를 이용하여 사용자의 아이덴티티를 관리하는 방법 및 서버, 그리고, 블록체인 네트워크 기반의 사용자 아이덴티티를 이용하여 사용자를 인증하는 방법 및 단말
Gallersdörfer et al. Efficient Onboarding and Management of Members in Permissioned Blockchain Networks Utilizing TLS Certificates

Legal Events

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