KR102479986B1 - Certificate verification method and system therefor in an environment in which a plurality of higher-level certification authority certificates have been obtained from a blockchain network - Google Patents

Certificate verification method and system therefor in an environment in which a plurality of higher-level certification authority certificates have been obtained from a blockchain network Download PDF

Info

Publication number
KR102479986B1
KR102479986B1 KR1020220048470A KR20220048470A KR102479986B1 KR 102479986 B1 KR102479986 B1 KR 102479986B1 KR 1020220048470 A KR1020220048470 A KR 1020220048470A KR 20220048470 A KR20220048470 A KR 20220048470A KR 102479986 B1 KR102479986 B1 KR 102479986B1
Authority
KR
South Korea
Prior art keywords
certificate
certification authority
verification
smart contract
certificates
Prior art date
Application number
KR1020220048470A
Other languages
Korean (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 KR1020220048470A priority Critical patent/KR102479986B1/en
Application granted granted Critical
Publication of KR102479986B1 publication Critical patent/KR102479986B1/en
Priority to PCT/KR2023/002102 priority patent/WO2023204411A1/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/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

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

The present invention relates to a certificate verifying method in an environment which obtains a plurality of upper authentication institution certificates from a blockchain network and a system therefor. The certificate verifying method comprises the following steps of: (a) allowing a verification institution server to receive a first user certificate from a verification requestor terminal; (b) allowing the verification institution server to verify validity of the first user certificate itself; (c) allowing the verification institution server to obtain a plurality of upper authentication institution certificates stored in a first smart contract for certificate management on a blockchain network; and (d) allowing the verification institution server to repeatedly perform certificate verification and certificate revoking verification for each of the plurality of upper authentication institution certificates. Therefore, the present invention guarantees integrity and stability of a certificate by utilizing a highly reliable infrastructure called a blockchain network.

Description

블록체인 네트워크로부터 복수 개의 상위 인증기관 인증서들을 획득한 환경에서의 인증서 검증 방법 및 이를 위한 시스템{CERTIFICATE VERIFICATION METHOD AND SYSTEM THEREFOR IN AN ENVIRONMENT IN WHICH A PLURALITY OF HIGHER-LEVEL CERTIFICATION AUTHORITY CERTIFICATES HAVE BEEN OBTAINED FROM A BLOCKCHAIN NETWORK}Certificate verification method in an environment where multiple upper certification authority certificates are obtained from a blockchain network and system for this NETWORK}

본 발명은 블록체인 네트워크로부터 복수 개의 상위 인증기관 인증서들을 획득한 환경에서의 인증서 검증 방법 및 이를 위한 시스템에 관한 것이다.The present invention relates to a method for verifying a certificate in an environment in which a plurality of upper certification authority certificates are obtained from a blockchain network and a system therefor.

인증서란 네트워크를 통한 각종 서비스 이용시 인증을 위해 필요한 전자서명을 일컫는 것으로, 이러한 인증서는 신뢰할 수 있는 인증기관(Certificate Authority)이 전자서명하여 생성하며, 인증기관이 공개키를 공증해 주기 위한 용도로 활용된다. A certificate refers to a digital signature required for authentication when using various services through a network. This certificate is generated by a trusted Certificate Authority with a digital signature, and the Certificate Authority uses it to notarize the public key. do.

한편, 인증서는 유효기간이 있으며, 또한 신뢰성이 담보되어야 하는 매개체이므로 사용자가 인증서를 이용할 시에는 그 유효성이 지속적으로, 검증될 필요가 있다. On the other hand, since a certificate has an expiration date and is a medium for which reliability must be guaranteed, when a user uses a certificate, its validity needs to be continuously verified.

현재 인증서의 유효성을 확인하기 위한 수단으로는 CRL(Certificate Revocation List)과 OSCP(Online Status Certificate Protocol)가 존재한다. 그러나 CRL은 리스트를 매번 다운로드 받아야 하므로 시간이 많이 소요되는 문제가 있으며, OSCP의 경우에도 다수의 웹사이트들로부터 대량의 조회 요청이 수신되면 유효성 확인이 어려워지는 문제, 그리고 유효성 검증 때마다 소정의 비용이 발생하는 문제가 있다. CRL (Certificate Revocation List) and OSCP (Online Status Certificate Protocol) exist as means for checking the validity of a current certificate. However, CRL has the problem of requiring a lot of time because the list must be downloaded every time, and even in the case of OSCP, validation becomes difficult when a large number of search requests are received from multiple websites, and a certain cost is incurred for each validation. There is a problem with this occurring.

본 발명은 이와 같이 인증서의 유효성 검증을 효율적으로, 그리고 실시간으로 빠르게 수행할 수 있는 환경을 구축하는 관점에서 종래의 수단 대비 개선된 방향을 제시하고자 한 것이다. 또한, 본 발명은 이상에서 살핀 기술적 문제점을 해소시킬 수 있음은 물론, 본 기술분야에서 통상의 지식을 가진 자가 용이하게 발명할 수 없는 추가적인 기술요소들을 제공하기 위해 발명되었다.The present invention is intended to suggest an improved direction compared to conventional means in terms of constructing an environment capable of efficiently and quickly performing certificate validation in real time. In addition, the present invention was invented to solve the technical problems salpin above, as well as to provide additional technical elements that cannot be easily invented by those skilled in the art.

한국등록특허 10-2332226호(2021.11.29. 공고)Korean Patent Registration No. 10-2332226 (2021.11.29. Notice)

본 발명은 인증서의 유효성 검증이 종래의 수단 대비 더 효과적으로 이루어질 수 있는 환경을 제공하는 것을 목적으로 한다.An object of the present invention is to provide an environment in which validity verification of a certificate can be performed more effectively than conventional means.

또한 본 발명은 인증서 표준의 틀을 벗어나지 않는 범위에서 반드시 필요한 필수정보들만을 인증서 내에 삽입시킴으로써 기존 인증서 사용환경을 그대로 유지한 채 개선된 유효성 검증 환경이 갖추어질 수 있게 하는 것을 목적으로 한다.In addition, an object of the present invention is to provide an improved validation environment while maintaining an existing certificate use environment as it is by inserting only necessary information into a certificate within the scope of the certificate standard.

또한 본 발명은 블록체인 네트워크라는 신뢰성 높은 인프라를 활용함으로써 인증서의 무결성 및 안정성을 담보하는 것을 목적으로 한다.Another object of the present invention is to ensure the integrity and stability of certificates by utilizing a highly reliable infrastructure called a blockchain network.

한편, 본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.On the other hand, the technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below.

위와 같은 문제점을 해결하기 위하여, 본 발명에 따라 인증서를 검증하는 방법은, (a) 검증기관 서버가 검증요청자 단말기로부터 제1 사용자인증서를 수신하는 단계; (b) 검증기관 서버가, 상기 제1 사용자인증서 자체의 유효성을 검증하는 단계; (c) 검증기관 서버가, 블록체인 네트워크 상의 인증서 관리용 제1 스마트 컨트랙트 - 상기 인증서 관리용 제1 스마트 컨트랙트는, 상기 제1 사용자인증서를 발급한 제1 인증기관이 기 배포한 것임 - 에 저장되어 있는 복수 개의 상위 인증기관 인증서들을 획득하는 단계; (d) 검증기관 서버가, 상기 복수 개의 상위 인증기관 인증서들 각각에 대해 인증서 자체 검증 및 인증서 폐기 여부 검증을 반복적으로 실시하는 단계;를 포함할 수 있다.In order to solve the above problem, a method of verifying a certificate according to the present invention includes: (a) receiving a first user certificate from a verification requester's terminal by a verification authority server; (b) verifying, by a verification authority server, validity of the first user certificate itself; (c) The verification authority server stores in the first smart contract for certificate management on the blockchain network - the first smart contract for certificate management is already distributed by the first certification authority that issued the first user certificate obtaining a plurality of upper certification authority certificates; (d) the verification authority server repeatedly performing certificate self-verification and certificate revoking verification for each of the plurality of upper certification authority certificates.

또한, 상기 인증서를 검증하는 방법에 있어서 상기 (d) 단계에서 인증서 폐기 여부 검증을 하는 과정은, 검증 대상 인증서를 발급한 상위 인증기관의 스마트 컨트랙트 식별자를 참고하여 상기 스마트 컨트랙트로부터 폐기리스트를 탐색하는 단계; 상기 탐색된 폐기리스트 내 상기 검증 대상 인증서의 식별자가 존재하는지 여부를 조회하는 단계; 를 포함할 수 있다.In addition, in the method of verifying the certificate, the process of verifying whether the certificate is revoked in step (d) is to search the revocation list from the smart contract by referring to the smart contract identifier of the upper certification authority that issued the certificate to be verified. step; inquiring whether an identifier of the certificate to be verified exists in the searched revocation list; can include

또한 이 때 상기 검증 대상 인증서를 발급한 상위 인증기관의 스마트 컨트랙트 식별자는, 상기 검증 대상 인증서 내에 기록되어 있는 것을 특징으로 할 수 있다.In addition, at this time, the smart contract identifier of the upper certification authority that issued the certificate to be verified may be characterized in that it is recorded in the certificate to be verified.

본 발명에 따르면 실시간으로, 그리고 효율적으로 인증서를 검증할 수 있는 환경이 마련되는 효과가 있다.According to the present invention, there is an effect of providing an environment capable of verifying certificates in real time and efficiently.

또한 본 발명에 따르면 기존의 인증서 포맷을 실질적으로 그대로 활용하게 되므로 부가적인 변경 없이 인증서를 저장 및 검증할 수 있게 되는 효과가 있다.In addition, according to the present invention, since the existing certificate format is used substantially as it is, there is an effect that the certificate can be stored and verified without additional change.

한편, 본 발명에 의한 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.On the other hand, the effects of the present invention are not limited to those mentioned above, and other technical effects not mentioned will be clearly understood by those skilled in the art from the description below.

도 1은 본 발명에 따른 시스템을 간략히 도시한 것이다.
도 2는 본 발명을 쉽게 이해하기 위한 개념도이다.
도 3은 본 발명을 구현하는 데에 있어 전제가 되는 상황, 그 중에서도 인증기관에서 인증서가 발급된 후 스마트 컨트랙트에 저장되는 과정을 도시한 것이다.
도 4는 본 발명에서 사용되는 인증서의 세부구조를 도시한 것이다.
도 5는 본 발명을 구현하는 데에 있어서 전제가 되는 상황, 그 중에서도 폐기 리스트가 스마트 컨트랙트에 저장되는 과정을 도시한 것이다.
도 6은 본 발명의 제1 실시예를 도시한 것이다.
도 7은 본 발명의 제2 실시예를 도시한 것이다.
도 8은 본 발명의 제3 실시예를 도시한 것이다.
도 9는 본 발명의 제4 실시예를 도시한 것이다.
1 is a simplified illustration of a system according to the present invention.
2 is a conceptual diagram for easily understanding the present invention.
3 illustrates a situation that is a premise for implementing the present invention, in particular, a process in which a certificate is issued by a certification authority and then stored in a smart contract.
4 shows a detailed structure of a certificate used in the present invention.
5 illustrates a situation that is a prerequisite for implementing the present invention, in particular, a process in which a revocation list is stored in a smart contract.
6 shows a first embodiment of the present invention.
7 shows a second embodiment of the present invention.
8 shows a third embodiment of the present invention.
9 shows a fourth embodiment of the present invention.

본 발명의 목적과 기술적 구성 및 그에 따른 작용 효과에 관한 자세한 사항은 본 발명의 명세서에 첨부된 도면에 의거한 이하의 상세한 설명에 의해 보다 명확하게 이해될 것이다. 첨부된 도면을 참조하여 본 발명에 따른 실시예를 상세하게 설명한다.Objects and technical configurations of the present invention and details of the operational effects thereof will be more clearly understood by the following detailed description based on the accompanying drawings in the specification of the present invention. An embodiment according to the present invention will be described in detail with reference to the accompanying drawings.

본 명세서에서 개시되는 실시예들은 본 발명의 범위를 한정하는 것으로 해석되거나 이용되지 않아야 할 것이다. 이 분야의 통상의 기술자에게 본 명세서의 실시예를 포함한 설명은 다양한 응용을 갖는다는 것이 당연하다. 따라서, 본 발명의 상세한 설명에 기재된 임의의 실시예들은 본 발명을 보다 잘 설명하기 위한 예시적인 것이며 본 발명의 범위가 실시예들로 한정되는 것을 의도하지 않는다.The embodiments disclosed herein should not be construed or used as limiting the scope of the present invention. It goes without saying that the description, including the embodiments herein, has a variety of applications for those skilled in the art. Therefore, any embodiments described in the detailed description of the present invention are illustrative for better explaining the present invention, and the scope of the present invention is not intended to be limited to the examples.

도면에 표시되고 아래에 설명되는 기능 블록들은 가능한 구현의 예들일 뿐이다. 다른 구현들에서는 상세한 설명의 사상 및 범위를 벗어나지 않는 범위에서 다른 기능 블록들이 사용될 수 있다. 또한, 본 발명의 하나 이상의 기능 블록이 개별 블록들로 표시되지만, 본 발명의 기능 블록들 중 하나 이상은 동일 기능을 실행하는 다양한 하드웨어 및 소프트웨어 구성들의 조합일 수 있다.The functional blocks shown in the drawings and described below are only examples of possible implementations. Other functional blocks may be used in other implementations without departing from the spirit and scope of the detailed description. Also, while one or more functional blocks of the present invention are represented as separate blocks, one or more of the functional blocks of the present invention may be a combination of various hardware and software configurations that perform the same function.

또한, 어떤 구성요소들을 포함한다는 표현은 “개방형”의 표현으로서 해당 구성요소들이 존재하는 것을 단순히 지칭할 뿐이며, 추가적인 구성요소들을 배제하는 것으로 이해되어서는 안 된다.In addition, the expression that certain components are included simply refers to the existence of the corresponding components as an expression of “open type”, and should not be understood as excluding additional components.

나아가 어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급될 때에는, 그 다른 구성요소에 직접적으로 연결 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 한다. Furthermore, it should be understood that when a component is referred to as being “connected” or “connected” to another component, it may be directly connected or connected to the other component, but other components may exist in the middle. do.

도 1은 본 발명에 따른 인증서 검증 방법이 구현될 수 있는 시스템을 도시한 것이다. 도면을 참고할 때 인증서 검증 시스템에는 가장 먼저 인증서의 발급 주체가 되는 인증기관 서버(100)가 포함될 수 있으며, 인증서의 검증을 요청하는 검증요청자 단말기(300), 그리고 실제 검증을 수행하는 검증기관 서버(400)가 필수적으로 포함된다. 또한 이들 구성들이 모두 접근 가능한 블록체인 네트워크(50)가 더 포함될 수 있다. 각 구성들에 대해 구체적으로 설명하면 아래와 같다.Figure 1 illustrates a system in which a certificate verification method according to the present invention may be implemented. Referring to the drawing, the certificate verification system may first include the certification authority server 100 that is the issuing subject of the certificate, the verification requester terminal 300 requesting verification of the certificate, and the verification authority server that actually performs verification ( 400) is essentially included. In addition, a blockchain network 50 accessible to all of these components may be further included. A detailed description of each component is as follows.

인증기관 서버(100)란, 인증기관에서 운영하는 서버로 이해될 수 있으며, 인증기관이란 보안 적격 여부 및 메시지 암호화를 위한 공개키의 발급, 그리고 발급한 공개키를 관리하는 네트워크 상에서의 한 기관으로 정의될 수 있다. 즉, 인증기관은 사용자의 요청에 따라 인증서를 발급하고, 발급한 인증서에 대해서는 보증을 서 주는 것과 유사한 역할을 하는 기관으로 볼 수 있다. The certification authority server 100 can be understood as a server operated by a certification authority, and a certification authority is an institution on a network that manages security qualifications, issues public keys for message encryption, and manages issued public keys. can be defined In other words, a certification authority can be seen as an authority that plays a role similar to that of issuing a certificate according to a user's request and guaranteeing the issued certificate.

한편, 인증기관 서버(100)에서는 여러 기능들을 수행할 수 있는데, 예를 들어 공개키 쌍을 생성하는 기능, 공개키 파라미터에 대한 테스트를 하는 기능, 하위 인증기관에 인증서를 발급하는 기능, 식별자(Distinguished Name)를 확인하는 기능, 인증서 신청인에 대한 신원 확인 및 인증하는 기능, 전자서명을 생성 및 검사하는 기능, CRL을 생성, 관리, 분배하는 기능, 발행된 인증서에 대한 기록을 유지하는 기능, 시스템 감사 기록을 생성하고 관리하는 기능, 타임스탬프를 생성하거나 획득하는 기능, 인증서를 취소하는 기능 등을 수행할 수 있다. Meanwhile, the certification authority server 100 may perform various functions, for example, a function of generating a public key pair, a function of testing a public key parameter, a function of issuing a certificate to a subordinate certification authority, an identifier ( Distinguished Name), identity verification and authentication of certificate applicants, creation and inspection of digital signatures, creation, management and distribution of CRLs, function of maintaining records of issued certificates, system It can perform functions such as creating and managing audit records, generating or obtaining timestamps, and revoking certificates.

검증요청자 단말기(300)는 네트워크 공간에서 서비스를 이용하고자 하는 일반사용자, 특히 금융서비스를 이용하고자 하는 사용자의 단말기일 수 있다. 검증요청자 단말기(300)는 검증기관 서버(400) 측에 적어도 하나 이상의 인증서를 제공할 수 있으며, 제공한 인증서 또는 인증서들에 대한 검증이 완료된 후 이용하고자 하는 서비스 이용이 가능할 수 있다. 상기 검증요청자 단말기(300)는 중앙처리유닛 및 메모리를 갖출 것을 전제로 하며, 당연히 네트워크 접속을 위한 통신수단을 포함할 수 있다. 또한 상기 검증요청자 단말기(300)는 사용자가 보유하거나 소지하고 다니는 장치 전반을 의미할 수 있으며, 여기에는 스마트폰, PDA, 태블릿PC 등과 같이 휴대가 가능한 단말기는 물론 데스크탑 등과 같은 설치형 단말기도 포함될 수 있다.The verification requester terminal 300 may be a terminal of a general user who wants to use a service in a network space, particularly a user who wants to use a financial service. The verification requester terminal 300 may provide at least one or more certificates to the verification authority server 400, and after verification of the provided certificate or certificates is completed, the desired service may be used. The verification requester terminal 300 is premised on having a central processing unit and a memory, and of course may include a communication means for network access. In addition, the verification requester terminal 300 may refer to all devices owned or carried by the user, and may include portable terminals such as smartphones, PDAs, tablet PCs, etc., as well as installed terminals such as desktops. .

검증기관 서버(400)는 인증서가 유효한지 여부를 검증하는 로직이 작동하는 서버를 의미할 수 있다. 검증기관 서버(400)는, 후술하겠지만 인증서가 유효한지 여부를 검증하는 과정에서 폐기리스트를 조회할 수 있다. The verification authority server 400 may refer to a server in which logic for verifying whether a certificate is valid is operated. As will be described later, the verification authority server 400 may search a revocation list in a process of verifying whether a certificate is valid.

참고로, 본 상세한 설명에서 언급되는 서버들, 예를 들어 인증기관 서버(100), 검증기관 서버(400)들은 바람직하게는 서버 컴퓨터로 구현될 수 있으며, 중앙처리유닛 및 메모리를 갖춘 연산장치라면 상기 이러한 서버 컴퓨터를 구현하는 데에 활용될 수 있다. 중앙처리유닛은 컨트롤러(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) 등으로 구현될 수 있다. For reference, the servers mentioned in this detailed description, for example, the certification authority server 100 and the verification authority server 400, may be preferably implemented as a server computer, and any computing device having a central processing unit and memory It can be utilized to implement such a server computer. The central processing unit may also be called a controller, a microcontroller, a microprocessor, a microcomputer, and the like. In addition, the central processing unit may be implemented by hardware, firmware, software, or a combination thereof. When implemented using hardware, an ASIC (application specific integrated circuit) or DSP (digital signal processor) , DSPD (digital signal processing device), PLD (programmable logic device), FPGA (field programmable gate array), etc., when implemented using firmware or software, modules, procedures, or functions that perform the above functions or operations Firmware or software may be configured to include. In addition, the memory includes read only memory (ROM), random access memory (RAM), erasable programmable read only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory, static RAM (SRAM), It may be implemented as a hard disk drive (HDD), solid state drive (SSD), or the like.

또한, 상기 인증기관 서버나 검증기관 서버는 어느 하나의 서버 컴퓨터로만 구현이 가능한 것은 아닐 수 있으며, 복수 개의 서버 컴퓨터에 의해 구성된 하나의 시스템으로도 구현이 가능할 수 있다. 다만, 이 경우 더 적합한 용어는 인증기관 시스템 또는 검증기관 시스템이 될 것이나, 본 상세한 설명에서는 용어의 통일성을 위해 인증기관 서버, 검증기관 서버라는 용어를 계속하여 사용하기로 한다. In addition, the certification authority server or verification authority server may not be implemented only with one server computer, and may be implemented with one system composed of a plurality of server computers. However, in this case, a more appropriate term would be a certification authority system or a verification authority system, but in this detailed description, the terms certification authority server and verification authority server will continue to be used for uniformity of terminology.

또 다른 한편, 상기 인증기관 서버나 검증기관 서버는 반드시 서버 컴퓨터의 형태가 아닐지라도 클라우드 서버의 형태, 즉 다른 운영 주체에 의해 관리 및 운영되는 클라우드 서버의 형태로 구현이 될 수도 있다.On the other hand, the certification authority server or verification authority server may not necessarily be a server computer, but may be implemented in the form of a cloud server, that is, a cloud server managed and operated by another operator.

마지막으로, 블록체인이란 일정기간 동안의 거래정보를 기록하고 있는 블록(block)들을 체인 형태로 연결하여 수많은 컴퓨터에 동시에 복제해 저장한 분산형 데이터 저장 기술을 일컫는다. 블록체인 네트워크(50)는 이처럼 데이터를 체인과 같이 연결하여 중앙 집중형 서버에 거래기록을 보관하지 않고 누구나 열람할 수 있게 공개함으로써 데이터 위조나 변조가 애초부터 이루어질 수 없게, 즉 거래기록을 서로 감시할 수 있게 한 P2P 구조의 데이터 저장 수단이다. 블록체인에 기록된 데이터는 해킹을 통한 위변조가 매우 어렵기 때문에 누구나 신뢰할 수 있다는 특징이 있으며, 또한 블록체인에 기록된 데이터는 여러 컴퓨터에 분산 저장되기 때문에 특정 노드에 대한 디도스 공격이나 랜섬웨어 공격 등으로부터도 안전하다. 나아가 블록체인은 평등한 참여자들에 의해 자율적으로 유지되고 운영될 수 있으므로 기존에 모든 정보가 중앙 서버로 집중되던 서버 클라이언트 구조에 비해 유연한 특성을 가진다. Lastly, block chain refers to a distributed data storage technology in which blocks recording transaction information for a certain period of time are connected in a chain form and replicated and stored on numerous computers at the same time. The blockchain network 50 connects data like a chain in this way and discloses it for anyone to view without storing transaction records in a centralized server, so that data forgery or falsification cannot be done in the first place, that is, transaction records are monitored by each other. It is a data storage means of P2P structure that enables Since data recorded in the blockchain is very difficult to forge and alter through hacking, it is characterized by being trusted by anyone. Also, since the data recorded in the blockchain is distributed and stored on multiple computers, DDoS attacks or ransomware attacks on specific nodes It is also safe from the back. Furthermore, since blockchain can be maintained and operated autonomously by equal participants, it has a more flexible characteristic compared to the existing server-client structure in which all information was concentrated on a central server.

블록체인 기술은 암호화폐, 스마트 컨트랙트, 물류관리, 문서관리, 신원확인 등등 다양한 분야에서 활용될 수 있는데, 본 발명에 따른 인증서 검증 방법과 관련하여서는 특히 블록체인 기술이 스마트 컨트랙트에 활용될 수 있음에 주목할 필요가 있다. 스마트 컨트랙트는 일정 조건이 만족되면 자동으로 계약 내용이 실행되도록 하는 기능이자, 중간에 제3의 보증기관을 두지 않은 채 P2P 상에서 원하는 계약을 체결할 수 있도록 해 주는 디지털 전자계약 기능이다. 일 예로, 임의의 트랜잭션이 발생됐을 때, 해당 트랜잭션에 대한 블록이 생성 및 브로드캐스팅 되며, 블록을 전달 받은 각 노드들은 해당 블록을 자신의 블록체인 맨 끝에 추가하고, 해당 블록에 저장되어 있는 트랜잭션을 적용시켜 자신의 스마트 컨트랙트 데이터베이스를 동기화 한다. 후술하겠지만, 본 발명은 인증기관 서버(100)가 블록체인 네트워크 상에 배포해 둔 스마트 컨트랙트에 인증서를 저장(기록)해 둔 상황을 전제로 인증서 검증이 이루어지는데, 이렇듯 블록체인 네트워크의 노드들이 스마트 컨트랙트 데이터베이스를 공유하게 함으로써 인증서의 무결성, 안전성, 안정성이 담보될 수 있다. Blockchain technology can be used in various fields such as cryptocurrency, smart contracts, logistics management, document management, identification, etc. In relation to the certificate verification method according to the present invention, in particular, blockchain technology can be used in smart contracts. Need to pay attention. A smart contract is a function that automatically executes contract details when certain conditions are satisfied, and a digital electronic contract function that allows a desired contract to be concluded on P2P without having a third guarantor in the middle. For example, when a random transaction occurs, a block for that transaction is created and broadcasted, and each node receiving the block adds the block to the end of its own blockchain and the transaction stored in the block Apply to synchronize your own smart contract database. As will be described later, in the present invention, certificate verification is performed on the premise that the certification authority server 100 stores (records) the certificate in the smart contract distributed on the blockchain network. By sharing the contract database, the integrity, safety, and stability of the certificate can be guaranteed.

도 2는 본 발명에 따른 인증서 검증 방법을 직관적으로 이해하기 위한 도면이다. 도면을 참고할 때, 금융서비스를 이용하고자 하는 사용자는 검증기관 측에 인증서를 제공하면서 인증서의 유효성 검증을 요청할 수 있고, 검증기관에서는 블록체인 네트워크를 조회하여 인증서의 유효성을 검증할 수 있는 자료, 소위 폐기리스트를 획득하여 인증서가 유효한지 여부를 확인할 수 있다. 더 정확하게는, 검증기관이 블록체인 네트워크를 이용해 상위 인증기관의 인증서를 조회 및 폐기리스트를 조회할 수 있다. 2 is a diagram for intuitively understanding a certificate verification method according to the present invention. Referring to the drawing, a user who wants to use a financial service can request validity verification of a certificate while providing a certificate to the verification authority, and the verification authority retrieves the blockchain network to verify the validity of the certificate. You can check whether the certificate is valid by obtaining the revocation list. More precisely, the verification authority can search the certificate of the upper certification authority and the revocation list using the blockchain network.

이처럼, 본 발명에 따른 인증서 검증 방법은 검증기관이 인증서의 유효성을 검증할 때에 블록체인 네트워크 상에 공유되어 있는 폐기리스트를 참조하는 것을 주요한 특징으로 한다. As such, the main feature of the certificate verification method according to the present invention is that the verification authority refers to the revocation list shared on the blockchain network when verifying the validity of the certificate.

한편, 도 2에서와 같은 인증서 검증 방법을 구현해 내기 위해서는 몇몇 전제가 되는 상황들이 필요한데, 이하에서는 도면들을 참고하여 구체적으로 살펴보기로 한다.On the other hand, in order to implement the certificate verification method as shown in FIG. 2, several prerequisite situations are required, and will be described in detail with reference to the drawings below.

먼저 도 3은 검증요청자 단말기(300)가 사용자인증서를 발급 받아 저장하는 과정, 다시 말해 사용자인증서 발급 과정을 도시한 것이다. 참고로, 도면 상에서는 제1 인증기관 서버(100)가 상대적으로 하위에 있는 인증기관의 서버이며, 제2 인증기관 서버(250)는 상대적으로 상위에 있는 인증기관의 서버이다. 더 바람직하게는, 상기 제2 인증기관 서버(250)는 루트 인증기관 서버일 수 있다. First, FIG. 3 illustrates a process in which the verification requester terminal 300 receives and stores a user certificate, that is, a process of issuing a user certificate. For reference, in the drawing, the first certification authority server 100 is a server of a relatively lower certification authority, and the second certification authority server 250 is a server of a relatively higher certification authority. More preferably, the second certification authority server 250 may be a root certification authority server.

도면을 참고할 때, 가장 먼저 제2 인증기관 서버(250)는 블록체인 네트워크(50) 상에 인증서 관리용 제2 스마트 컨트랙트를 배포(S301)할 수 있다. 본 단계는 개념적으로는 제2 인증기관 서버(250)가 다수의 노드들이 공유할 수 있는 매개체, 그것도 인증서를 저장해 둘 수 있는 매개체를 사전에 마련해 두는 단계로도 이해될 수 있다. 이는 타 인증기관 서버들이 블록체인 네트워크(50)에 스마트 컨트랙트를 배포하는 모든 단계들에도 마찬가지로 적용될 수 있다. Referring to the drawing, first of all, the second certification authority server 250 may distribute a second smart contract for certificate management on the blockchain network 50 (S301). Conceptually, this step can also be understood as a step in which the second certification authority server 250 prepares in advance a medium that can be shared by a plurality of nodes, and also a medium that can store certificates. This can also be applied to all steps in which other certification authority servers distribute smart contracts to the blockchain network 50.

S301 단계 이후에는 R인증서를 생성하는 단계(S302), 인증서 관리용 제2 스마트 컨트랙트에 상기 R인증서를 저장하는 단계(S303)가 순서대로 수행될 수 있다. S301 단계 내지 S303 단계는, 바람직하게는 루트 인증기관 서버가 인증서 발급을 준비하는 단계로도 이해될 수 있다. 참고로, R인증서라는 용어는 루트 인증기관이 생성 및 발급한 인증서를 의미할 수 있으며, 후술하게 될 CA인증서와 구별하기 위해 R인증서라는 용어를 사용하였다. After step S301, generating an R certificate (S302) and storing the R certificate in the second smart contract for certificate management (S303) may be performed in order. Steps S301 to S303 may also be understood as steps in which the root certification authority server prepares for certificate issuance. For reference, the term R certificate may refer to a certificate generated and issued by a root certification authority, and the term R certificate is used to distinguish it from a CA certificate to be described later.

S303 단계 이후, 제1 인증기관 서버(100)도 블록체인 네트워크(50)에 인증서 관리용 제1 스마트 컨트랙트를 배포하는 단계(S304)가 실행될 수 있으며, 이후 제1 인증기관 서버(100)가 제2 인증기관 서버(250)측에 CA인증서를 발급해 줄 것을 요청하는 단계(S305)가 실행될 수 있다. 이 단계에서 제1 인증기관 서버(100)는 제2 인증기관 서버(250) 측에 상기 인증서 관리용 제1 스마트 컨트랙트를 식별할 수 있는 식별자, 즉 인증서 관리용 제1 스마트 컨트랙트 식별자(identifier)를 함께 전달할 수 있다. 특정 스마트 컨트랙트를 식별하기 위한 식별자에는 다양한 형태의 것들이 존재할 수 있으며, 바람직하게는 인증기관 서버가 블록체인 네트워크 상에 배포해 둔 스마트 컨트랙트의 주소가 식별자일 수 있다. 또한, 그 밖에 랜덤한 문자 및/또는 숫자로 조합된 텍스트가 스마트 컨트랙트를 식별하기 위한 식별자로 활용될 수도 있다. 굳이 예시를 들어본다면 상기 인증서 관리용 제1 스마트 컨트랙트 식별자는 "0x466BDA20T86GgA9037k??d00792"일 수 있다.After step S303, the first certification authority server 100 may also distribute the first smart contract for certificate management to the blockchain network 50 (S304), and then the first certification authority server 100 may perform 2 A step (S305) of requesting the certification authority server 250 to issue a CA certificate may be executed. In this step, the first certification authority server 100 sends an identifier that can identify the first smart contract for certificate management, that is, the first smart contract identifier for certificate management, to the second certification authority server 250. can be delivered together. Various types of identifiers for identifying a specific smart contract may exist, and preferably, the address of the smart contract distributed by the certification authority server on the blockchain network may be the identifier. In addition, text combined with random letters and/or numbers may be used as an identifier to identify a smart contract. If you dare to take an example, the first smart contract identifier for certificate management may be “0x466BDA20T86GgA9037k??d00792”.

S305 단계 이후에는 제2 인증기관 서버(250)가 상기 발급요청에 대한 응답으로 CA인증서를 생성하며, 제1 인증기관 서버(100)는 제2 인증기관 서버(250)로부터 위 CA인증서를 발급 받는다(S306). 이 때, 상기 CA인증서 내에는 앞서 S305 단계에서 제2 인증기관 서버(250) 측으로 전달되었던 인증서 관리용 제1 스마트 컨트랙트 식별자가 포함되어 있을 수 있다. After step S305, the second certification authority server 250 generates a CA certificate in response to the issuance request, and the first certification authority server 100 receives the CA certificate issued from the second certification authority server 250. (S306). At this time, the CA certificate may include the first smart contract identifier for certificate management, which was previously transferred to the second certification authority server 250 in step S305.

S306 단계 이후, 제1 인증기관 서버(100)는 상기 인증서 관리용 제1 스마트 컨트랙트에 상기 CA인증서를 저장(S307)할 수 있다. 즉, 제1 인증기관 서버(100)는 자신에게 발급된 CA인증서를 블록체인 네트워크(50) 상에 기록을 해 둠으로써 CA인증서가 언제든지, 누구든지 조회 가능한 상태가 되도록 할 수 있다. After step S306, the first certification authority server 100 may store the CA certificate in the first smart contract for certificate management (S307). That is, the first certification authority server 100 records the CA certificate issued to it on the blockchain network 50 so that the CA certificate can be inquired by anyone at any time.

한편, 상기 S306 단계에서 발급된 CA인증서 내에는 제2 인증기관 서버(250)가 사전에 블록체인 네트워크 상에 배포해 둔 인증서 관리용 제2 스마트 컨트랙트를 식별하기 위한 식별자, 즉 인증서 관리용 제2 스마트 컨트랙트 식별자가 더 포함될 수 있다. 제2 인증기관 서버(250)는 하위 인증기관인 제1 인증기관 서버(100) 측에 CA인증서를 발급할 때에 자신의 스마트 컨트랙트 식별자(인증서 관리용 제2 스마트 컨트랙트 식별자)를 CA인증서 내에 남김으로써 추적이 가능하게 할 수 있다. Meanwhile, in the CA certificate issued in step S306, an identifier for identifying the second smart contract for certificate management distributed by the second certification authority server 250 on the blockchain network in advance, that is, the second certificate management second smart contract. A smart contract identifier may be further included. When the second certification authority server 250 issues a CA certificate to the first certification authority server 100, which is a lower certification authority, it is tracked by leaving its own smart contract identifier (second smart contract identifier for certificate management) in the CA certificate. can make this possible.

참고로 도 4에는 본 발명에서 사용되는 인증서의 구조가 도시되어 있다. 즉, 인증기관 서버들에 의해 발급되는 인증서들, 블록체인 네트워크 상에 배포되어 있는 스마트 컨트랙트에 저장되는 인증서들은 도 4와 같은 구조를 가질 수 있다. 도면을 참고할 때, 인증서는 버전(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) 등과 같은 정보들을 포함할 수 있다. For reference, FIG. 4 shows the structure of a certificate used in the present invention. That is, certificates issued by certification authority servers and certificates stored in smart contracts distributed on a blockchain network may have a structure as shown in FIG. 4 . Referring to the drawing, the certificate includes version, certificate unique serial number (AlgorithmIdentifier), certificate validity period (Period of Validity), subject information (Subject), subject's public key information (Public Key Information), issuer name ( Issuer Unique ID), subject name (Subject Unique ID), smart contract identifier of the certification authority that requested issuance (CA Smart Contract Identifier), smart contract identifier of the issuing certification authority (Issuer CA Smart Contract Identifier), or issuer signature (Signature) It may contain information such as

또한, 상기 인증서는 필요에 따라 주체의 다른 이름(SubjectAltName), 정책정보(PolicyMappings), 명칭제약(NameConstraints), 정책제약 (PolicyContraints), 발급자의 다른 이름(IssuerAltName), 발급자 키식별자(AuthorityKeyIdentifier), 주체의 키식별자(SubjectKeyIdentifier), 기본제약(BasicConstraints), 또는 CRL획득위치(CRLDistributionPoints) 등과 같은 정보들이 부가적으로 더 포함될 수 있다. In addition, if necessary, the certificate may include subject's other name (SubjectAltName), policy information (PolicyMappings), name constraints (NameConstraints), policy constraints (PolicyContraints), issuer's other name (IssuerAltName), issuer key identifier (AuthorityKeyIdentifier), subject Information such as a key identifier (SubjectKeyIdentifier), basic constraints (BasicConstraints), or CRL acquisition locations (CRLDistributionPoints) may be additionally included.

본 발명에 따른 인증서 구조에서 주목할 점은 발급요청한 인증기관의 스마트 컨트랙트 식별자(CA Smart Contract Identifier)와 발급한 인증기관의 스마트 컨트랙트 식별자(Issuer CA Smart Contract Identifier)가 인증서 내에 필수적으로 포함되어 있는 점이며, 이러한 정보들은 인증서 표준 포맷에서 제공하는 확장(Extensions)영역에 기록될 수 있다는 점이다. What is noteworthy in the certificate structure according to the present invention is that the CA Smart Contract Identifier of the certification authority requesting issuance and the issuer CA Smart Contract Identifier of the issuing certification authority are essentially included in the certificate, , such information can be recorded in the Extensions area provided by the certificate standard format.

다시 도 3을 참고할 때, S307 단계 이후에는 검증요청자 단말기(300)가 제1 인증기관 서버(100)에 사용자인증서의 발급을 요청하는 단계(S308), 제1 인증기관 서버(100)가 사용자인증서를 생성하는 단계(S309), 그리고 제1 인증기관 서버(100)가 사용자인증서를 발급하는 단계(S310)가 실행될 수 있다. 이 때 유의할 점은, 검증요청자 단말기(300), 즉 일반 사용자 단말기가 발급 받는 사용자인증서의 경우에는 발급요청한 인증기관의 스마트 컨트랙트 식별자(CA Smart Contract Identifier) 영역은 비어 있다는 점이다. 즉, 임의의 하위 인증기관 서버가 상위 인증기관 서버로부터 발급 받는 CA인증서와 달리 일반사용자가 발급 받게 되는 사용자인증서 내에는 CA Smart Contract Identifier 가 포함되지 않는다.Referring again to FIG. 3, after step S307, the verification requester terminal 300 requests the first certification authority server 100 to issue a user certificate (S308), and the first certification authority server 100 issues the user certificate. Generating (S309), and issuing the user certificate by the first certification authority server 100 (S310) may be executed. At this time, it should be noted that in the case of a user certificate issued by the verification requester terminal 300, that is, a general user terminal, the smart contract identifier (CA Smart Contract Identifier) area of the certification authority requesting issuance is empty. In other words, CA Smart Contract Identifier is not included in the user certificate issued by the general user, unlike the CA certificate that any lower certification authority server receives from the upper certification authority server.

이상 도 3을 참고하여 검증요청자 단말기(300)가 사용자인증서를 발급 받는 과정에 대해 알아 보았다.With reference to FIG. 3 above, the process of the verification requester's terminal 300 receiving a user certificate is examined.

한편, 앞서 살펴 본 사용자인증서 발급 과정과 관련하여, S307 단계는 제1 인증기관 서버(100)가 제2 인증기관 서버(250)로부터 발급 받은 CA인증서만 인증서 관리용 제1 스마트 컨트랙트에 저장하는 것을 기본으로 하나, 사용자인증서 발급 과정의 설계 변경된 실시예에서는 S307 단계에서 제1 인증기관 서버(100)는 자신이 발급 받은 CA인증서뿐만 아니라 제2 인증기관 서버(200)보다 더 상위에 존재하는 인증기관 서버들이 발급한 CA인증서들도 함께 저장하도록 할 수 있다. 예를 들어, 제1 인증기관 서버(100)와 제2 인증기관 서버(250) 사이에 또 다른 인증기관 서버들이 존재한다고 가정할 때, 제1 인증기관 서버(100)는 인증서 관리용 제1 스마트 컨트랙트 내에 제2 인증기관 서버(250)로부터 발급 받은 인증서뿐만 아니라 또 다른 인증기관 서버들이 하위 인증기관들에 발급한 CA인증서들을 모두 저장할 수 있다. Meanwhile, in relation to the user certificate issuance process discussed above, in step S307, the first certification authority server 100 stores only the CA certificate issued by the second certification authority server 250 in the first smart contract for certificate management. Basically, in the design-changed embodiment of the user certificate issuance process, in step S307, the first certification authority server 100 not only has the CA certificate issued by it, but also a certification authority that exists higher than the second certification authority server 200. CA certificates issued by servers can also be stored together. For example, when it is assumed that other certification authority servers exist between the first certification authority server 100 and the second certification authority server 250, the first certification authority server 100 provides a first smart certificate management In the contract, not only certificates issued by the second certification authority server 250 but also CA certificates issued by other certification authority servers to subordinate certification authorities can be stored.

이 경우 제1 인증기관 서버(100)가 상위 인증기관 서버들이 발급한 인증서들을 획득하는 방법은 다양할 수 있는데, 예를 들어 제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인증서들을 획득할 수 있다. In this case, the method by which the first certification authority server 100 acquires certificates issued by upper certification authority servers may vary. For example, the first certification authority server 100 may use the second certification authority server 200; The second certification authority server 200 obtains the CA certificate issued by the third certification authority server by referring to the issuer CA Smart Contract Identifier in the CA certificate issued from the CA certificate issued by the third certification authority server. In addition, by referring to the Issuer CA Smart Contract Identifier of the issuing certification authority within the CA certificate issued from the third-party certification authority server, the CA certificate issued by the fourth certification authority server is obtained, etc. Multiple CA certificates can be obtained by tracking the smart contract identifier in the CA certificates.

제1 인증기관 서버(100)가 상위 인증기관 서버들이 발급한 CA인증서들을 획득하는 또 다른 방법으로, 제1 인증기관 서버(100)는 애초에 제2 인증기관 서버(200; 루트 인증기관이 아닌 것)로부터 CA인증서를 수신할 때에 제2 인증기관 서버(200)가 발급한 것뿐만 아니라 제3, 제4 인증기관 서버들이 발급한 CA인증서들을 모두 받을 수도 있다. 즉, 하위 인증기관 서버의 입장에서는 바로 위 상위 인증기관 서버로부터 복수 개의 CA인증서들을 수신할 수 있으며, 이렇게 수신된 복수 개의 CA인증서들을 블록체인 네트워크 상에 저장할 수 있다. As another method for the first certification authority server 100 to acquire CA certificates issued by upper certification authority servers, the first certification authority server 100 initially uses the second certification authority server 200 (non-root certification authority). ), CA certificates issued by the third and fourth certification authority servers as well as those issued by the second certification authority server 200 may be received. That is, from the point of view of the lower certification authority server, a plurality of CA certificates can be received from the upper certification authority server immediately above, and the plurality of CA certificates received in this way can be stored on the blockchain network.

이 밖에도 제1 인증기관 서버(100)는 복수 개의 CA인증서들을 획득하도록 구현될 수 있으며, 복수 개의 CA인증서들을 인증서 관리용 제1 스마트 컨트랙트 내에 저장하도록 구현될 수 있다.In addition, the first certification authority server 100 may be implemented to obtain a plurality of CA certificates, and may be implemented to store the plurality of CA certificates in the first smart contract for certificate management.

또한, S310 단계와 관련하여서도 도 3에서는 제1 인증기관 서버(100)가 검증요청자 단말기(300)에 사용자인증서만을 발급하는 것으로 도시하였으나, 구현 예에 따라 제1 인증기관 서버(100)가 복수 개의 CA인증서들을 검증요청자 단말기(300) 측에 더 전달하도록 구현할 수도 있다. 즉, 제1 인증기관 서버(100)는 상위의 인증기관 서버들, 예를 들어 제2 인증기관 서버(200), 혹은 제3 인증기관 서버들이 발급한 CA인증서들도 검증요청자 단말기(300) 측에 함께 전달할 수 있다. 제1 인증기관 서버(100)가 검증요청자 단말기(300)에 전달할 수 있는 인증서에는 루트(ROOT) 인증기관 서버에 의해 발급된 인증서까지도 포함할 수 있다. In addition, in relation to step S310, FIG. 3 shows that the first certification authority server 100 only issues a user certificate to the verification requester terminal 300, but according to an implementation example, the first certification authority server 100 is configured in a plurality of ways. CA certificates may be further transmitted to the terminal 300 of the verification requester. That is, the first certification authority server 100 is also responsible for CA certificates issued by upper certification authority servers, for example, the second certification authority server 200 or the third certification authority servers, on the side of the verification requester terminal 300. can be delivered together. Certificates that the first certification authority server 100 can deliver to the verification requester terminal 300 may include even certificates issued by a root certification authority server.

또한, 제1 인증기관 서버(100)가 상위 인증기관 서버들이 발급한 CA인증서들을 획득하는 방법은 다양할 수 있는데, 이는 앞서 S307의 변형 실시예에 대한 설명에서 논하였으므로 여기서는 자세한 설명을 생략하기로 한다. In addition, there may be various ways for the first certification authority server 100 to acquire CA certificates issued by upper certification authority servers. Since this has been discussed in the description of the modified embodiment of S307 above, a detailed description will be omitted here. do.

한편, 도 5는 본 발명에 따른 인증서 검증 방법을 구현해 내기 위해 전제가 되어야 하는 상황, 그 중에서도 폐기된 인증서들의 리스트가 블록체인 네트워크(50)에 기록되는 상황을 설명하기 위한 도면이다. Meanwhile, FIG. 5 is a diagram for explaining a situation in which a list of revoked certificates is recorded in the blockchain network 50, which should be a premise for implementing the certificate verification method according to the present invention.

더 이상 유효하지 않은 인증서들은 폐기가 되며, 이렇게 폐기가 된 인증서들은 더 이상 인증에 활용되지 않도록 그 목록이 관리될 필요가 있다. 도 5는 폐기된 인증서들의 관리를 블록체인 네트워크 기반으로 하는 상황에 관한 것이다. Certificates that are no longer valid are revoked, and the list needs to be managed so that the revoked certificates are no longer used for authentication. 5 relates to a situation in which management of revoked certificates is based on a blockchain network.

도면을 참고할 때, 폐기된 인증서들의 관리는 가장 먼저 CA인증서가 폐기되는 단계(S501)로부터 시작될 수 있다. 예를 들어, 인증기관(CA)이 CA인증서를 부적절하게 발급한 것이 발견되거나 프라이빗키(private key)가 손상되었다고 판단된 경우, CA인증서는 불가역적으로 폐기(revoke)된다. 또한, 특정 엔티티(entity)가 허위로 다큐먼트를 게시하였거나, 소프트웨어 동작에 대해 잘못된 정보를 전달하였거나, 기타 정책 위반을 하는 등의 사정이 있는 경우에도 CA인증서는 폐기 될 수 있다. 참고로, 폐기된 CA인증서는 일반적으로 유효기간 만료 되기 전에 위와 같은 특별한 사유로 해지, 취소가 된 것들을 가리킨다.Referring to the figure, the management of revoked certificates may first begin with the step of revoking the CA certificate (S501). For example, when it is discovered that a certification authority (CA) improperly issued a CA certificate or it is determined that a private key is compromised, the CA certificate is irreversibly revoked. In addition, the CA certificate can be revoked even if there are circumstances such as a specific entity posting false documents, delivering wrong information about software operation, or violating other policies. For reference, revoked CA certificates generally refer to ones that have been revoked or revoked for special reasons such as the above before expiration.

S501 단계 후, 제2 인증기관 서버(200; 루트 인증기관이 아닌 것)는 인증서 관리용 제2 스마트 컨트랙트의 폐기리스트에 폐기된 CA인증서의 식별자를 저장할 수 있다(S502). 제2 인증기관 서버(200)는 사전에 배포해 둔 인증서 관리용 제2 스마트 컨트랙트 내에 "폐기리스트"를 따로 관리할 목적으로 별도 기록영역을 할애할 수 있으며, 실제 폐기되는 CA인증서가 발생하는 경우 해당 CA인증서의 식별자를 상기 폐기리스트 내에 저장할 수 있다. 물론, 상기 인증서 관리용 제2 스마트 컨트랙트 내 "폐기리스트"는 공개적으로 조회나 열람이 가능할 수 있으며, 블록체인 네트워크의 특성에 따라 매우 빠른 시간 내에 공유 및 조회가 가능할 수 있다. After step S501, the second certification authority server (200 (other than the root certification authority) may store the identifier of the revoked CA certificate in the revocation list of the second smart contract for certificate management (S502). The second certification authority server 200 can allocate a separate recording area for the purpose of separately managing the "revocation list" in the previously distributed second smart contract for certificate management, and when a CA certificate that is actually revoked occurs The identifier of the corresponding CA certificate may be stored in the revocation list. Of course, the "revocation list" in the second smart contract for certificate management can be publicly viewed or viewed, and can be shared and viewed in a very short time according to the characteristics of the blockchain network.

한편, 상기 제2 인증기관 서버(200)는 상기 인증서 관리용 제2 스마트 컨트랙트의 폐기리스트를 주기적으로 정리할 수 있는데, 다시 말해 기 정해진 기간(또는 유효기간)이 지난 CA인증서의 식별자들을 폐기리스트로부터 주기적으로 삭제를 할 수 있다(S503). 참고로, 삭제 대상의 선정은 본 발명에 대한 설명에서는 논의의 대상이 아니므로 자세한 설명은 생략한다. Meanwhile, the second certification authority server 200 may periodically organize the revocation list of the second smart contract for certificate management. Deletion may be performed periodically (S503). For reference, the selection of a deletion target is not subject to discussion in the description of the present invention, so a detailed description thereof will be omitted.

한편 다른 참고할 만한 사항으로, 상기 폐기리스트에는, 최소한 폐기 된 CA인증서의 원래 유효기간만큼은 상기 폐기 된 CA인증서의 식별자가 기록되도록 할 수 있다. 어느 임의의CA인증서가 폐기가 되었다 하더라도, 폐기가 되기 전에는 정상적인 CA인증서이었기에 인증기관에 의해 발급이 정상적으로 이루어졌을 것이므로, 적어도 해당 CA인증서에 부여되어 있던 유효기간까지는 폐기리스트에 기록을 해 둠으로써 인증서를 검증하는 주체들로 하여금 조회가 가능하게 할 수 있다. 필요에 따라, 제2 인증기관 서버(200)는 폐기리스트를 주기적으로 정리할 때에 폐기 된 CA인증서의 원래 유효기간에다가 유효기간의 10%만큼을 더한 기간만큼 폐기리스트에 기록을 유지해 둠으로써 타 검증주체들의 불편함을 방지할 수 있다.Meanwhile, as another reference point, in the revocation list, the identifier of the revoked CA certificate may be recorded for at least the original validity period of the revoked CA certificate. Even if any CA certificate is revoked, since it was a normal CA certificate before it was revoked, issuance by a certification authority would have been normally carried out. Inquiry can be made possible by the subjects who verify the . As necessary, when the second certification authority server 200 periodically organizes the revocation list, the original validity period of the revoked CA certificate plus 10% of the validity period is kept in the revocation list, thereby maintaining other verification subjects. discomfort can be avoided.

한편, 제1 인증기관 서버(100)의 입장에서도 사용자인증서가 폐기(S504)된 후에는 인증서 관리용 제1 스마트 컨트랙트의 "폐기리스트"에 상기 폐기된 사용자인증서의 식별자를 저장할 수 있다(S505). 또한, 같은 방식으로 제1 인증기관 서버(100)는 주기적으로 폐기리스트 내 기록되어 있던 사용자인증서 식별자들을 삭제할 수 있다(S506)Meanwhile, even from the point of view of the first certification authority server 100, after the user certificate is revoked (S504), the identifier of the revoked user certificate can be stored in the "revocation list" of the first smart contract for certificate management (S505). . Also, in the same way, the first certification authority server 100 may periodically delete user certificate identifiers recorded in the revocation list (S506).

이렇게 각 인증기관 서버들은 블록체인 네트워크(50)에, 더 정확하게는 스마트 컨트랙트에 폐기리스트를 기록 및 갱신함으로써 인증서의 유효성 조회가 가능하게 할 수 있다.In this way, each certification authority server can record and update the revocation list in the blockchain network 50, more precisely, in the smart contract, thereby making it possible to inquire about the validity of the certificate.

이상 도 3 내지 도 5를 참고하여 본 발명에 따른 인증서 검증 방법이 가능하기 위해 필요한 전제 상황들을 살펴 보았다. Prerequisites necessary for enabling the certificate verification method according to the present invention have been looked at with reference to FIGS. 3 to 5 above.

도 6은 본 발명의 제1 실시예에 따른 인증서 검증 방법을 순서에 따라 도시한 것이다. 도면을 참고할 때, 제1 실시예는 검증요청자 단말기(300)가 검증기관 서버(400)에 제1 사용자인증서를 제공하는 단계(S601)로부터 시작될 수 있다. 본 단계는 검증요청자 단말기(300)가 네트워크 상에서 특정 서비스(금융서비스)를 이용하고자 제1 사용자인증서의 유효성 검증을 요청하는 단계에 해당한다.6 shows a certificate verification method according to the first embodiment of the present invention in sequence. Referring to the drawing, the first embodiment may start from the step of providing the first user certificate to the verification authority server 400 by the verification requester terminal 300 (S601). This step corresponds to a step in which the verification requester terminal 300 requests validity verification of the first user certificate in order to use a specific service (financial service) on the network.

S601 단계 이후, 검증기관 서버(400)는 상기 제1 사용자인증서 자체의 유효성을 검증(S602)하게 되는데, 이는 상기 제1 사용자인증서의 유효기간, 전자서명 등 인증서 자체로 확인이 가능한 사항들을 검증하는 단계로도 이해될 수 있다. 본 단계에서 인증서 자체에 문제가 있는 것으로 판단되는 경우 검증기관 서버(400)는 곧바로 검증요청자 단말기(300) 측에 실패 결과를 반환한다.After step S601, the verification authority server 400 verifies the validity of the first user certificate itself (S602), which verifies items that can be confirmed by the certificate itself, such as the validity period of the first user certificate and digital signature. It can also be understood as a stage. In this step, if it is determined that there is a problem with the certificate itself, the verification authority server 400 immediately returns a failure result to the terminal 300 of the verification requester.

한편, S602 단계에서 인증서 자체에는 문제가 없는 것으로 판단된 경우, 검증기관 서버(400)는 상기 제1 사용자인증서가 폐기된 인증서인지 여부를 확인하게 되는데, 이는 검증기관 서버(400)가 블록체인 네트워크(50)를, 더 정확하게는 블록체인 네트워크(50)에 배포되어 있는 제1 인증기관(제1 사용자인증서를 발급한 인증기관)의 인증서 관리용 제1 스마트 컨트랙트 내 제1 폐기리스트를 탐색(S603)하고, 제1 폐기리스트 내에 상기 제1 사용자인증서의 식별자가 존재하는지 여부를 조회(S604)함으로써 이루어질 수 있다. 조회 결과 제1 사용자인증서의 식별자가 존재한다면 비정상인 인증서로, 존재하지 않는다면 정상인 인증서로 검증할 수 있다. 상기 제1 사용자인증서 내에는 해당 제1 사용자인증서를 발급한 인증기관의 스마트 컨트랙트 식별자가 포함될 수 있는데, 이것이 바로 상기 제1 인증기관의 인증서 관리용 제1 스마트 컨트랙트 식별자일 수 있으며, 검증기관 서버(400)는 이를 참고하여 제1 폐기리스트를 탐색 및 조회할 수 있다. 한편, S604단계에서 상기 제1 폐기리스트 내에 상기 제1 사용자인증서의 식별자가 존재한다면 검증기관 서버(400)는 검증요청자 단말기(300) 측에 검증 실패 결과를 반환할 수 있다.Meanwhile, in step S602, when it is determined that there is no problem with the certificate itself, the verification authority server 400 checks whether the first user certificate is a revoked certificate, which means that the verification authority server 400 determines whether the blockchain network Search (50), more precisely, the first revocation list in the first smart contract for certificate management of the first certification authority (the certification authority that issued the first user certificate) distributed in the blockchain network (50) (S603 ), and querying whether the identifier of the first user certificate exists in the first revocation list (S604). As a result of the search, if the identifier of the first user certificate exists, it can be verified as an abnormal certificate, and if it does not exist, it can be verified as a normal certificate. The first user certificate may include a smart contract identifier of a certification authority that issued the first user certificate, which may be the first smart contract identifier for certificate management of the first certification authority, and a verification authority server ( 400) may search and query the first discard list by referring to this. Meanwhile, in step S604, if the identifier of the first user certificate exists in the first revocation list, the verification authority server 400 may return a verification failure result to the terminal 300 of the verification requester.

S604 단계 이후, 검증기관 서버(400)는 상기 인증서 관리용 제1 스마트 컨트랙트에 저장되어 있는 제1 CA인증서를 획득(S605)할 수 있으며, 상기 제1 CA인증서의 유효기간, 전자서명 등 인증서 자체로부터 확인 가능한 사항들을 검증(S606)할 수 있다. 만일 유효성 자체에 이상이 있다면 검증기관 서버(400)는 검증요청자 단말기(300) 측에 실패 결과, 다시 말해 인증서가 유효하지 않으므로 검증에 실패하였다는 결과를 반환할 수 있다.After step S604, the verification authority server 400 may acquire the first CA certificate stored in the first smart contract for certificate management (S605), and the certificate itself, such as the validity period of the first CA certificate and digital signature, etc. Items that can be confirmed from can be verified (S606). If there is a problem with validity itself, the verification authority server 400 may return a failure result to the verification requester terminal 300, that is, a result indicating that verification has failed because the certificate is not valid.

제1 CA 인증서 자체에 대한 유효성 검증 이후에는 상위 인증기관의 스마트 컨트랙트, 즉 상기 제1 CA 인증서를 발급한 제2 인증기관의 제2 스마트 컨트랙트로부터 제2 폐기리스트를 탐색(S607)하게 되며, 여기에 상기 제1 CA인증서의 식별자가 존재하는지 여부를 보아 폐기 여부를 조회(S608)할 수 있다. 이 때, 상기 검증기관 서버(400)가 제2 스마트 컨트랙트 및 제2 폐기리스트를 탐색할 수 있는 것은 상기 제1 CA인증서 내에 제2 인증기관, 즉 상기 제1 CA인증서를 발급한 인증기관의 스마트 컨트랙트 식별자(주소)가 기록되어 있기 때문이다. S608단계에서 폐기리스트 내에 제1 CA인증서의 식별자가 존재하는 것으로 확인된다면 검증기관 서버(400)는 검증요청자 단말기(300) 측에 실패 결과를 반환할 수 있다.After validating the first CA certificate itself, the second revocation list is searched from the smart contract of the upper certification authority, that is, the second smart contract of the second certification authority that issued the first CA certificate (S607). Whether or not the identifier of the first CA certificate exists can be inquired (S608). At this time, what the verification authority server 400 can search for the second smart contract and the second revocation list is the second certification authority within the first CA certificate, that is, the smart contract of the certification authority that issued the first CA certificate. This is because the contract identifier (address) is recorded. In step S608, if it is confirmed that the identifier of the first CA certificate exists in the revocation list, the verification authority server 400 may return a failure result to the verification requester terminal 300 side.

한편, 검증기관 서버(400)는 제1 CA인증서에 대해 폐기리스트 조회가 마쳐진 이후 검증요청자 단말기(300) 측에 결과를 전달할 수 있다(S609). 본 단계는 앞서 설명한 인증서 자체의 유효성 검증 단계, 또는 폐기리스트 조회 단계에서 검증기관 서버(400)가 검증요청자 단말기(300)에 실패 결과를 반환하는 단계와 별도로 존재할 수 있으며, 또는 경우에 따라 S609단계는 생략이 가능할 수 있다.Meanwhile, the verification authority server 400 may transmit the result to the verification requester terminal 300 after the revocation list search for the first CA certificate is completed (S609). This step may exist separately from the step of verifying the validity of the certificate itself described above or the step of returning a failure result to the verification requester terminal 300 by the verification authority server 400 in the revocation list search step, or in some cases, step S609. may be omitted.

참고로 도 6에 도시되어 있는 실시예는 제1 사용자인증서, 제1 CA인증서에 대해서만 자체 유효성 검증 및 폐기리스트가 이루어지는 것으로 설명하였으나, 인증서 자체의 유효성 검증 및 폐기리스트 조회라는 유효성 검증 싸이클은 인증서의 개수만큼 반복적으로 수행될 수 있다. 즉, 제1 실시예는 검증기관 서버(400)가 리커시브(recursive)하게 인증서 발급기관의 스마트 컨트랙트를 찾아 각 인증서 식별자가 폐기리스트에 존재하는지 여부를 확인함으로써 루트 인증서까지의 유효성을 검증하는 것을 주요한 특징으로 할 수 있다. For reference, the embodiment shown in FIG. 6 has been described as self-validation and revocation list performed only for the first user certificate and the first CA certificate, but the validation cycle of validating the certificate itself and revocation list search is It may be repeatedly performed as many times as the number of times. That is, in the first embodiment, the verification authority server 400 recursively finds the smart contract of the certificate issuing authority and verifies the validity of the root certificate by checking whether each certificate identifier exists in the revocation list. can be considered as a major feature.

도 7은 본 발명의 제2 실시예에 따른 인증서 검증 방법을 순서에 따라 도시한 것이다. 제1 실시예와 비교할 때, 제2 실시예는 검증기관 서버(400)가 인증서 관리용 제1 스마트 컨트랙트로부터 복수 개의 인증서들을 획득하고, 각 인증서의 유효성을 리커시브하게 검증하는 것을 특징으로 한다. 즉, 제2 실시예는 인증서 관리용 제1 스마트 컨트랙트에 상위 인증기관 인증서들이 저장되어 있는 것을 전제이자 특징으로 한다.7 shows a certificate verification method according to a second embodiment of the present invention in sequence. Compared to the first embodiment, the second embodiment is characterized in that the verification authority server 400 obtains a plurality of certificates from the first smart contract for certificate management and recursively verifies the validity of each certificate. That is, the second embodiment is characterized by the premise that upper certification authority certificates are stored in the first smart contract for certificate management.

구체적으로 볼 때, 제2 실시예의 S701 단계 내지 S704 단계는 앞선 제1 실시예에서의 S601 단계 내지 S604 단계와 실질적으로 동일하다. Specifically, steps S701 to S704 of the second embodiment are substantially the same as steps S601 to S604 of the first embodiment.

S705 단계에서, 검증기관 서버(400)는 블록체인 네트워크에 배포되어 있는 인증서 관리용 제1 스마트 컨트랙트, 즉 제1 인증기관 서버(100)가 사전에 생성해 둔 스마트 컨트랙트로부터 복수 개의 상위 인증기관 인증서들을 획득할 수 있다. 제1 인증기관 서버는 복수 개의 상위 인증기관 인증서들을 획득 내지 수집한 뒤 이들을 인증서 관리용 제1 스마트 컨트랙트에 저장할 수 있는데. 이에 대해서는 앞서에서도 잠시 설명을 하였으므로 여기서는 자세한 설명을 생략한다. In step S705, the verification authority server 400 uses the first smart contract for certificate management distributed in the blockchain network, that is, a plurality of upper certification authority certificates from the smart contract created in advance by the first certification authority server 100. can obtain them. The first certification authority server may obtain or collect a plurality of upper certification authority certificates and store them in the first smart contract for certificate management. Since this has been briefly described in the foregoing, a detailed description thereof will be omitted here.

S705 단계 이후, 검증기관 서버(400)는 각 인증서들 자체를 검증하는 단계(S706), 상위 인증기관의 스마트 컨트랙트로부터 폐기리스트를 탐색하고 각 인증서의 식별자가 폐기리스트에 존재하는지 여부를 조회하는 단계(S707, S708)를 반복적으로 수행할 수 있다. 이 때 반복은 루트 인증기관 서버가 발급한 R인증서의 유효성을 검증하는 단계까지 이루어질 것이다. After step S705, the verification authority server 400 verifies each certificate itself (S706), searches a revocation list from a smart contract of a higher certification authority, and inquires whether an identifier of each certificate exists in the revocation list. (S707, S708) may be repeatedly performed. At this time, the iteration will be performed up to the step of verifying the validity of the R certificate issued by the root certification authority server.

그리고 마지막으로 검증기관 서버(400)는 폐기리스트 조회 단계에서 폐기된 인증서가 발견되면 그 검증결과를 검증요청자 단말기(300) 측에 알릴 수 있다.(S709)And finally, if a revoked certificate is found in the revocation list search step, the verification authority server 400 may notify the verification result to the verification requester terminal 300 (S709).

한편, S707, S708 단계와 관련하여서는, 예를 들어 상기 인증서 관리용 제1 스마트 컨트랙트 내에는 제1 인증기관보다 더 상위에 존재하는 제2 인증기관 서버, 제3 인증기관 서버 등이 발급한 인증서들(CA인증서, R인증서)이 저장되어 있을 수 있으며, 검증기관 서버(400)는 각 인증서들에 기록되어 있는 발급자(상위 인증기관)의 스마트 컨트랙트 식별자 및 여기에 저장되어 있는 폐기리스트를 조회하여 모든 인증서들의 유효성을 검증할 수 있다. Meanwhile, in relation to steps S707 and S708, for example, certificates issued by a second certification authority server, a third certification authority server, etc. existing higher than the first certification authority in the first smart contract for certificate management. (CA certificate, R certificate) may be stored, and the verification authority server 400 searches the smart contract identifier of the issuer (higher certification authority) recorded in each certificate and the revocation list stored there, and all The validity of certificates can be verified.

제2 실시예와 같은 인증서 검증 방법에서는 검증기관 서버(400)가 검증의 대상이 되는 인증서들을 한꺼번에 확보하여 두고 있기 때문에 보다 빠른 속도로 인증서 유효성 검증이 가능해지는 효과가 있다. 특히, 검증기관 서버(400)로서는 각 인증서에 기록되어 있는 발급자(발급기관)의 스마트 컨트랙트 식별자 및 폐기리스트 조회를 병렬적으로 진행할 수 있으므로 제1 실시예에 비해 더 빠른 유효성 검증이 가능할 수 있다. In the certificate verification method as in the second embodiment, since the verification authority server 400 secures certificates subject to verification at once, there is an effect of enabling certificate validity verification at a faster speed. In particular, since the verification authority server 400 can parallelly search the smart contract identifier of the issuer (issuer) recorded in each certificate and the revocation list, faster validity verification can be possible compared to the first embodiment.

도 8은 본 발명의 제3 실시예에 따른 인증서 검증 방법을 순서에 따라 도시한 것이다. 앞선 실시예들과 비교할 때, 제3 실시예는 검증요청자 단말기(300)가 처음부터 검증기관 서버(400)에 복수 개의 인증서들을 제공한다는 점에서 특징이 있다. 8 shows a certificate verification method according to a third embodiment of the present invention in sequence. Compared with the previous embodiments, the third embodiment is characterized in that the verification requester terminal 300 provides a plurality of certificates to the verification authority server 400 from the beginning.

구체적으로, 제3 실시예는 검증요청자 단말기(300)가 검증기관 서버(400)에 제1 사용자인증서, 그리고 상위 인증기관들의 인증서들(CA인증서, R인증서)을 제공하는 단계(S801)로부터 시작된다. 즉, 본 실시예에서는 검증요청자 단말기(300)가 제1 사용자인증서뿐만 아니라 상위 인증기관 서버에서 발급된 인증서들도 함께 저장하여 가지고 있을 것을 전제로 한다. Specifically, the third embodiment begins with the step (S801) of providing the first user certificate and the certificates (CA certificate, R certificate) of higher certification authorities to the verification authority server 400 by the verification requester terminal 300. do. That is, in the present embodiment, it is assumed that the verification requester terminal 300 stores and has not only the first user certificate but also certificates issued by the upper certification authority server.

S801 단계 이후에는 검증기관 서버(400)가 각 인증서 자체의 유효성을 검증하는 단계(S802), 상위 인증기관의 스마트 컨트랙트로부터 폐기리스트를 탐색하고 조회하는 단계(S803, S804), 그리고 검증결과가 전달되는 단계(S805)가 진행될 수 있다. After the step S801, the verification authority server 400 verifies the validity of each certificate itself (S802), the steps of searching and querying the revocation list from the smart contract of the upper certification authority (S803, S804), and the verification result is delivered. A step (S805) may proceed.

이 때, 상기 S802 단계 내지 S804 단계는 상기 검증요청자 단말기(300)로부터 제공 받은 모든 인증서들에 대해 개별적으로, 반복적으로 수행될 수 있으며, 특히 루트 인증기관 서버가 발급한 R인증서의 유효성을 검증하는 단계까지 이루어질 수 있다. 이렇듯 제3 실시예는 제2 실시예와 상당 부분 닮아 있으며, 단지 검증요청자 단말기(300)가 검증기관 서버(400)에 인증서를 제공하는 단계에서 차이가 있다. At this time, steps S802 to S804 may be individually and repeatedly performed for all certificates provided from the verification requester terminal 300, and in particular, to verify the validity of the R certificate issued by the root certification authority server. step by step can be achieved. As such, the third embodiment is similar to the second embodiment to a large extent, and differs only in the step in which the verification requester's terminal 300 provides the verification authority server 400 with a certificate.

도 9는 도 8과 유사하지만, 인증서 자체의 유효성 검증 단계(S902)가 복수 개의 인증서들에 대해 한꺼번에 실행이 되고, 이후 폐기리스트 탐색(S903) 및 폐기리스트 조회(S904) 단계만 반복적으로 수행된다는 점에서 도 8의 실시예와 차이가 있다.9 is similar to FIG. 8, but the validity verification step (S902) of the certificate itself is executed for a plurality of certificates at once, and then only the revocation list search (S903) and revocation list inquiry (S904) steps are repeatedly performed. There is a difference from the embodiment of FIG. 8 in this respect.

즉, 도 9에 따른 실시예에서 검증기관 서버(400)는 검증요청자 단말기(300)로부터 제공 받은 모든 인증서들에 대해 유효기간 및 전자서명을 비롯한 인증서 자체 검증(S902)만을 먼저 수행할 수 있으며, 이 단계를 통해 특정 인증서에 이상이 있는지 없는지를 확인할 수 있다. That is, in the embodiment according to FIG. 9 , the verification authority server 400 may first perform only certificate self-verification (S902), including validity period and digital signature, for all certificates provided from the verification requester terminal 300, Through this step, you can check whether there is something wrong with a specific certificate.

또한, 자체 검증 결과 모든 인증서들에서 문제점이 발견되지 않은 경우, 검증기관 서버(400)는 상위 인증기관의 스마트 컨트랙트로부터 폐기리스트를 탐색(S903)하고, 폐기리스트를 조회해 봄(S904)으로써 특정 인증서가 폐기된 인증서인지 여부를 확인할 수 있다. In addition, as a result of self-verification, if no problems are found in all certificates, the verification authority server 400 searches the revocation list from the smart contract of the upper certification authority (S903), and searches the revocation list (S904) to determine the specific You can check whether the certificate is a revoked certificate.

이상 블록체인 네트워크를 활용한 인증서 검증 방법, 그리고 이를 위한 시스템에 대해 살펴보았다. 한편, 본 발명은 상술한 특정의 실시예 및 응용예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 구별되어 이해되어서는 안 될 것이다.We looked at the certificate verification method using the blockchain network and the system for this. On the other hand, the present invention is not limited to the specific embodiments and application examples described above, and various modifications may be carried out by those skilled in the art to which the present invention belongs without departing from the gist of the present invention claimed in the claims. Of course, these modifications should not be understood separately from the technical spirit or perspective of the present invention.

50 블록체인 네트워크
100 제1 인증기관 서버
200, 250 제2 인증기관 서버
300 검증요청자 단말기
400 검증기관 서버
50 Blockchain Networks
100 First certification authority server
200, 250 2nd certification authority server
300 Verification requester terminal
400 Validator Server

Claims (3)

인증서를 검증하는 방법에 있어서,
(a) 검증기관 서버가 검증요청자 단말기로부터 제1 사용자인증서를 수신하는 단계;
(b) 검증기관 서버가, 상기 제1 사용자인증서 자체의 유효성을 검증하는 단계;
(c) 검증기관 서버가, 블록체인 네트워크 상의 인증서 관리용 제1 스마트 컨트랙트 - 상기 인증서 관리용 제1 스마트 컨트랙트는, 상기 제1 사용자인증서를 발급한 제1 인증기관이 기 배포한 것임 - 에 저장되어 있는 복수 개의 상위 인증기관 인증서들을 획득하는 단계;
(d) 검증기관 서버가, 상기 복수 개의 상위 인증기관 인증서들 각각에 대해 인증서 자체 검증 및 인증서 폐기 여부 검증을 반복적으로 실시하는 단계;
를 포함하되,
상기 (d) 단계에서 인증서 폐기 여부 검증을 하는 과정은,
검증 대상 인증서를 발급한 상위 인증기관의 스마트 컨트랙트 식별자를 참고하여 상기 스마트 컨트랙트로부터 폐기리스트를 탐색하는 단계; 및
상기 탐색된 폐기리스트 내 상기 검증 대상 인증서의 식별자가 존재하는지 여부를 조회하는 단계;
를 포함하고,
상기 제1 사용자인증서 및 상기 복수 개의 상위 인증기관 인증서들은, 각각 i)인증서 발급요청 인증기관 스마트 컨트랙트 주소 및 ii)인증서 발급 인증기관 스마트 컨트랙트 주소가 기록되는 영역을 포함하되,
상기 제1 사용자인증서의 발급 인증기관 스마트 컨트랙트 주소를 기록하는 영역에는 상기 제1 사용자인증서를 발급한 제1 인증기관의 제1 스마트 컨트랙트 식별자가 기록되고, 발급요청 인증기관 스마트 컨트랙트 주소를 기록하는 영역은 비어 있으며,
상기 복수 개의 상위 인증기관 인증서들 내 발급 인증기관 스마트 컨트랙트 주소를 기록하는 영역에는 각 인증서를 발급한 상위 인증기관의 스마트 컨트랙트 주소가 기록되고, 발급요청 인증기관 스마트 컨트랙트 주소를 기록하는 영역에는 각 인증서를 발급요청한 인증기관의 스마트 컨트랙트 주소가 기록되는 것을 특징으로 하는,
인증서를 검증하는 방법.
In the method of verifying the certificate,
(a) receiving, by a verification authority server, a first user certificate from a terminal of a verification requester;
(b) verifying, by a verification authority server, validity of the first user certificate itself;
(c) The verification authority server stores in the first smart contract for certificate management on the blockchain network - the first smart contract for certificate management is already distributed by the first certification authority that issued the first user certificate obtaining a plurality of upper certification authority certificates;
(d) the verification authority server repeatedly performing certificate self-verification and certificate revoking verification for each of the plurality of upper certification authority certificates;
Including,
The process of verifying whether the certificate is revoked in step (d) is,
Searching the revocation list from the smart contract by referring to the smart contract identifier of the upper certification authority that issued the certificate to be verified; and
inquiring whether an identifier of the certificate to be verified exists in the searched revocation list;
including,
The first user certificate and the plurality of upper certification authority certificates each include an area where i) a smart contract address of a certification authority requesting a certificate issuance and ii) a smart contract address of a certification authority issuing a certificate are recorded,
In the area for recording the smart contract address of the issuing certification authority of the first user certificate, the first smart contract identifier of the first certification authority that issued the first user certificate is recorded, and the area for recording the smart contract address of the certification authority requesting issuance is empty,
In the area where the smart contract address of the issuing certification authority is recorded in the plurality of higher certification authority certificates, the smart contract address of the upper certification authority that issued each certificate is recorded, and in the area where the issuing certification authority smart contract address is recorded, each certificate Characterized in that the smart contract address of the certification authority that requested issuance is recorded.
How to validate a certificate.
삭제delete 삭제delete
KR1020220048470A 2022-04-19 2022-04-19 Certificate verification method and system therefor in an environment in which a plurality of higher-level certification authority certificates have been obtained from a blockchain network KR102479986B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220048470A KR102479986B1 (en) 2022-04-19 2022-04-19 Certificate verification method and system therefor in an environment in which a plurality of higher-level certification authority certificates have been obtained from a blockchain network
PCT/KR2023/002102 WO2023204411A1 (en) 2022-04-19 2023-02-14 Method for verifying certificate by using blockchain and system therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220048470A KR102479986B1 (en) 2022-04-19 2022-04-19 Certificate verification method and system therefor in an environment in which a plurality of higher-level certification authority certificates have been obtained from a blockchain network

Publications (1)

Publication Number Publication Date
KR102479986B1 true KR102479986B1 (en) 2022-12-22

Family

ID=84578367

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220048470A KR102479986B1 (en) 2022-04-19 2022-04-19 Certificate verification method and system therefor in an environment in which a plurality of higher-level certification authority certificates have been obtained from a blockchain network

Country Status (1)

Country Link
KR (1) KR102479986B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023204411A1 (en) * 2022-04-19 2023-10-26 주식회사 블로코 Method for verifying certificate by using blockchain and system therefor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180041055A (en) * 2017-09-06 2018-04-23 주식회사 코인플러그 Method for providing certificate service based on smart contract and server using the same
KR20190111042A (en) * 2017-07-26 2019-10-01 알리바바 그룹 홀딩 리미티드 Method and apparatus for communication between blockchain nodes, apparatus and electronic device, and Method and apparatus for blockchain based certificate management
KR102332226B1 (en) 2019-11-15 2021-11-29 서강대학교 산학협력단 Blockchain network system being capable of verifying a blockchain ledger and method for verifying a blockchain ledger

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190111042A (en) * 2017-07-26 2019-10-01 알리바바 그룹 홀딩 리미티드 Method and apparatus for communication between blockchain nodes, apparatus and electronic device, and Method and apparatus for blockchain based certificate management
KR20180041055A (en) * 2017-09-06 2018-04-23 주식회사 코인플러그 Method for providing certificate service based on smart contract and server using the same
KR102332226B1 (en) 2019-11-15 2021-11-29 서강대학교 산학협력단 Blockchain network system being capable of verifying a blockchain ledger and method for verifying a blockchain ledger

Non-Patent Citations (1)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023204411A1 (en) * 2022-04-19 2023-10-26 주식회사 블로코 Method for verifying certificate by using blockchain and system therefor

Similar Documents

Publication Publication Date Title
AU2022204148B2 (en) Methods and apparatus for providing blockchain participant identity binding
CN109377198B (en) Signing system based on multi-party consensus of alliance chain
US10284379B1 (en) Public key infrastructure based on the public certificates ledger
KR102440626B1 (en) Digital certificate management methods, devices, computer devices and storage media
US10547643B2 (en) Systems and methods for distributed data sharing with asynchronous third-party attestation
CN108647964B (en) Block chain data processing method and device and computer readable storage medium
Garba et al. LightLedger: a novel blockchain-based domain certificate authentication and validation scheme
US11863689B1 (en) Security settlement using group signatures
CN111753014A (en) Identity authentication method and device based on block chain
KR102479986B1 (en) Certificate verification method and system therefor in an environment in which a plurality of higher-level certification authority certificates have been obtained from a blockchain network
KR102479985B1 (en) Certificate verification method using blockchain and system for the same
KR102479987B1 (en) Certificate verification method and system therefor in an environment in which a plurality of higher-level certification authority certificates are obtained from the verification requester terminal
US20220294647A1 (en) Distributed ledger-based methods and systems for certificate authentication
Khan et al. SCM: Secure and accountable TLS certificate management
KR102506431B1 (en) Certificate issuance method using blockchain and system for the same
KR102506432B1 (en) Revocation list management method and system therefor
KR102565970B1 (en) Certificate issuance method using blockchain and system for the same
JP2022151190A (en) Business audit support system and business audit support method
WO2023204411A1 (en) Method for verifying certificate by using blockchain and system therefor
Dwivedi et al. Edge Computing and Blockchain-Based Distributed Audit of Outsourced Dynamic Data
Alharbi et al. A Blockchain Review: A Comparative Study Between Public Key Infrastructure and Identity Based Encryption
CN116012009A (en) Block chain-based transaction verification method, device, electronic equipment and readable medium
CN114844700A (en) Identity authentication method, system, equipment and storage medium based on trusted storage in distributed environment
CN117693925A (en) Data management program, data management method, data management device, and data management system
NZ745996A (en) Systems and methods for distributed identity verification

Legal Events

Date Code Title Description
GRNT Written decision to grant