KR20210053567A - Method for verifying certification improper use in block environment and system therefor - Google Patents
Method for verifying certification improper use in block environment and system therefor Download PDFInfo
- Publication number
- KR20210053567A KR20210053567A KR1020190139318A KR20190139318A KR20210053567A KR 20210053567 A KR20210053567 A KR 20210053567A KR 1020190139318 A KR1020190139318 A KR 1020190139318A KR 20190139318 A KR20190139318 A KR 20190139318A KR 20210053567 A KR20210053567 A KR 20210053567A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- user terminal
- information
- service
- certificate
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/381—Currency conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H04L2209/38—
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
Description
본 발명은 인증서 부당 사용을 검증하기 위한 기술에 관한 것으로서, 더욱 상세하게는 이용 기관에서 블록체인에 저장된 인증서를 정확한 용도에 맞게 사용하였는지 여부를 검증하는 방법 및 이를 위한 시스템에 관한 것이다.The present invention relates to a technology for verifying unauthorized use of a certificate, and more particularly, to a method and a system for verifying whether or not a certificate stored in a blockchain is used for an exact purpose by a user institution.
오늘날 통신망과 보안 기술의 발전으로 인하여, 인터넷을 이용한 계좌이체, 주식 거래 등이 이루어지고 있다.Today, due to the development of communication networks and security technologies, account transfers and stock transactions are being made using the Internet.
이러한 온라이 계좌 이체, 주식 거래 등과 같을 위하여, 인증서를 이용하여 사용자를 인증한다. 상기 인증서는 전자 서명에 사용되는 일종이 온라인 인감증명서로서, 사용자는 인증서를 이용하여 전자 서명한 후에, 온라인 계좌 이체, 주식 거래 등을 서비스 서버로 요청하고, 서비스 서버는 전자 서명과 인증서를 검증한 후에 검증에 성공하면 해당 온라인 서비스를 사용자에게 제공한다.For such an online account transfer, stock transaction, etc., a user is authenticated using a certificate. The above certificate is a kind of online seal certificate used for electronic signature. After the user signs electronically using the certificate, the user requests online account transfer, stock transaction, etc. to the service server, and the service server verifies the electronic signature and the certificate. If verification is successful later, the online service is provided to the user.
한편, 근래에는 신뢰성 향상과 부인방지를 위한 블록체인 기술이 등장하였다. 또한, 블록체인을 이용하여, 블록체인에서 인증서를 생성하여 발행하고, 더불어 인증서를 기반의 전자 서명과 인증서를 검증하는 기술도 등장하였다. 즉, 블록체인을 이용하여 인증서와 전자 서명 검증에 대한 투명성을 높이기 위하여, 블록체인 기술이 이용되기도 한다.On the other hand, in recent years, blockchain technology has emerged to improve reliability and prevent non-repudiation. In addition, using a blockchain, a technology for generating and issuing a certificate in the blockchain, as well as verifying a certificate-based electronic signature and certificate has also emerged. In other words, blockchain technology is sometimes used to increase transparency for verification of certificates and electronic signatures using blockchain.
그런데 블록체인을 이용하여 인증서를 관리하는 기술은, 인증서를 발행/검증하는 인증 기관과 인증서 기반의 인증을 통해서 서비스(예컨대, 계좌이체, 주식 거래)를 제공하는 서비스 기관이 이원화된 형태이다. 이 경우, 서비스 기관에서 사용자 단말로부터 수신한 전자 서명과 사용자 인증서에 대한 검증을 블록체인으로 요청하고, 블록체인으로부터 검증 결과를 수신하여, 이 검증 결과에 따라 선택적으로 서비스를 제공한다. However, in the technology for managing certificates using a blockchain, a certification authority that issues/verifies a certificate and a service organization that provides services (eg, account transfer, stock transaction) through certificate-based authentication are dualized. In this case, the service agency requests verification of the electronic signature and user certificate received from the user terminal through the blockchain, receives the verification result from the blockchain, and selectively provides services according to the verification result.
하지만 이러한 시스템 구조에서 서비스 서버가 사용자의 인증서를 다른 목적으로 사용할 수 있는 문제점이 있다. 예를 들어, 서비스 기관은 사용자 단말로 인증서가 다른 목적으로 사용될 것임을 허위로 고지하고, 사용자 단말로부터 수신한 전자 서명을 이용하여 검증 성공 결과를 블록체인으로부터 수신한 후에, 이 검증 성공 결과를 이용하여 사용자 인증서를 불법적인 목적으로 이용할 수도 있다.However, in this system structure, there is a problem in that the service server can use the user's certificate for other purposes. For example, the service organization falsely informs the user terminal that the certificate will be used for other purposes, and after receiving the verification success result from the blockchain using the electronic signature received from the user terminal, the verification success result is used. User certificates can also be used for illegal purposes.
본 발명은 이러한 문제점을 해결하기 위하여 제안된 것으로, 블록체인 환경에서 인증서 사용에 대한 투명성과 신뢰성을 향상시키는 인증서 부당 사용 검증 방법 및 이를 위한 시스템을 제공하는데 그 목적이 있다. The present invention has been proposed to solve this problem, and an object thereof is to provide a method for verifying unauthorized use of a certificate and a system for the same, which improves transparency and reliability of certificate use in a blockchain environment.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.Other objects and advantages of the present invention can be understood by the following description, and will be more clearly understood by examples of the present invention. In addition, it will be easily understood that the objects and advantages of the present invention can be realized by the means shown in the claims and combinations thereof.
상기 목적을 달성하기 위한 본 발명의 제1측면에 따른, 블록체인 시스템에서 인증서의 부당 사용을 검증하기 위한 방법은, 사용자 단말로부터 발송된 인증 정보를 분석하여 사용자를 인증하는 단계; 상기 사용자 인증에 성공하면, 스마트 컨트랙트가 포함된 제1블록에서 실행 함수를 확인하여, 이 실행 함수를 구동하여 서비스를 실행하는 단계; 상기 스마트 컨트랙트와 관련되는 사용처 정보를 확인하고, 상기 사용처 정보와 상기 서비스 실행 결과를 포함하는 제2블록을 생성하여 블록체인에 저장하는 단계; 상기 서비스에서 사용된 인증서의 사용처를 조회할 수 있는 접근 데이터로서, 상기 제2블록의 트랜잭션 식별정보를 상기 사용자 단말로 전송하는 단계; 및 상기 제2블록의 트랜잭션 식별정보를 포함하는 조회 요청 메시지가 상기 사용자 단말로부터 수신되는 경우, 상기 제2블록에 포함된 사용처 정보를 상기 사용자 단말로 제공하는 단계를 포함한다.According to a first aspect of the present invention for achieving the above object, a method for verifying the illegal use of a certificate in a blockchain system includes: authenticating a user by analyzing authentication information sent from a user terminal; If the user authentication is successful, checking an execution function in a first block containing a smart contract, and running the execution function to execute a service; Checking usage information related to the smart contract, generating a second block including the usage destination information and the service execution result, and storing it in a blockchain; Transmitting the transaction identification information of the second block to the user terminal as access data for inquiring where the certificate used in the service is used; And when the inquiry request message including the transaction identification information of the second block is received from the user terminal, providing the user terminal with the usage information included in the second block.
상기 방법은, 상기 서비스를 실행하는 단계 이전에, 상기 서비스에 이용될 예정인 인증서의 사용처를 조회할 수 있는 접근 데이터로서, 상기 제1블록의 트랜잭션 식별정보를 상기 사용자 단말로 전송하는 단계; 및 상기 제1블록의 트랜잭션 식별정보를 포함하는 메시지를 상기 사용자 단말로부터 수신하면, 상기 서비스가 실행되기 전에 상기 제1블록에 포함된 사용처 정보를 추출하여 상기 사용자 단말로 제공하는 단계를 더 포함할 수 있다.The method includes, before executing the service, transmitting the transaction identification information of the first block to the user terminal, as access data for inquiring a destination of a certificate to be used for the service; And when a message including the transaction identification information of the first block is received from the user terminal, extracting the usage information included in the first block and providing it to the user terminal before the service is executed. I can.
상기 방법은 상기 인증하는 단계 이전에, 난스를 생성하여 상기 사용자 단말로 전송하는 단계를 더 포함할 수 있다. 이 경우, 상기 인증하는 단계는, 상기 인증 정보에서 포함된 전자 서명을 상기 사용자의 공개키로 복호화한 후, 상기 복호화한 난스가 상기 생성한 난스와 일치하는지 여부를 인증할 수 있다.The method may further include generating a nonce and transmitting it to the user terminal before the authentication step. In this case, in the authenticating step, after decrypting the electronic signature included in the authentication information with the user's public key, it may be verified whether the decrypted nonce matches the generated nonce.
상기 방법은, 상기 사용처 정보와 상기 인증 결과를 포함하는 제3블록을 생성하여 상기 블록체인에 저장하는 단계; 상기 인증에 사용된 인증서의 사용처를 조회할 수 있는 접근 데이터로서, 상기 제3블록의 트랜잭션 식별정보를 상기 사용자 단말로 전송하는 단계; 및 상기 제3블록의 트랜잭션 식별정보를 포함하는 조회 요청 메시지가 상기 사용자 단말로부터 수신되는 경우, 상기 제3블록에 포함된 사용처 정보를 상기 사용자 단말로 제공하는 단계를 더 포함할 수 있다.The method includes the steps of: generating a third block including the usage information and the authentication result and storing the third block in the block chain; Transmitting the transaction identification information of the third block to the user terminal as access data for inquiring the usage destination of the certificate used for the authentication; And when the inquiry request message including the transaction identification information of the third block is received from the user terminal, providing the use destination information included in the third block to the user terminal.
상기 방법은, 상기 인증하는 단계 이전에, 서비스 서버로부터 상기 스마트 컨트랙트의 등록을 요청받는 단계; 및 상기 스마트 컨트랙트의 사용처 정보와 상기 스마트 컨트랙트가 포함된 상기 제1블록을 생성하여 상기 블록체인에 저장하는 단계를 더 포함할 수 있다. The method includes: receiving a request for registration of the smart contract from a service server before the authenticating step; And generating the first block including the usage information of the smart contract and the smart contract and storing it in the block chain.
상기 서비스를 실행하는 단계는, 사용자 단말로부터 발송한 입력 정보를 확인하고, 상기 입력 정보를 상기 실행 함수에 입력하여, 상기 서비스를 실행할 수 있다. Executing the service may include checking input information sent from a user terminal, inputting the input information into the execution function, and executing the service.
상술한 방법은 컴퓨터가 판독 가능한 기록 매체에 컴퓨터 프로그램으로서 기록될 수 있다. The above-described method can be recorded as a computer program on a computer-readable recording medium.
상기 목적을 달성하기 위한 본 발명의 제2측면에 따른 인증서의 부당 사용을 검증하기 위한 블록체인 시스템은, 사용자 단말로부터 발송된 인증 정보를 분석하여 사용자를 인증하여 인증에 성공하면, 스마트 컨트랙트가 포함된 제1블록에서 실행 함수를 확인하여 이 실행 함수를 구동하여 서비스를 실행하는 인증 모듈; 상기 스마트 컨트랙트와 관련되는 사용처 정보를 확인하고, 상기 사용처 정보와 상기 서비스 실행 결과를 포함하는 제2블록을 생성하여 블록체인에 저장하는 블록 관리 모듈; 및 상기 서비스에서 사용된 인증서의 사용처를 조회할 수 있는 접근 데이터로서, 상기 제2블록의 트랜잭션 식별정보를 상기 사용자 단말로 전송하는 정보 제공 모듈을 포함한다. A blockchain system for verifying the illegal use of a certificate according to the second aspect of the present invention to achieve the above object, when the authentication succeeds by analyzing the authentication information sent from the user terminal and authenticating the user, a smart contract is included. An authentication module that checks the execution function in the first block and executes the service by driving the execution function; A block management module for checking usage information related to the smart contract, generating a second block including the usage destination information and a result of executing the service, and storing it in a block chain; And an information providing module that transmits the transaction identification information of the second block to the user terminal as access data for inquiring the usage destination of the certificate used in the service.
상기 정보 제공 모듈은, 상기 제2블록의 트랜잭션 식별정보를 포함하는 조회 요청 메시지가 상기 사용자 단말로부터 수신되는 경우, 상기 제2블록에 포함된 사용처 정보를 상기 사용자 단말로 제공할 수 있다.When an inquiry request message including transaction identification information of the second block is received from the user terminal, the information providing module may provide usage information included in the second block to the user terminal.
본 발명은 인증서 사용처 정보를 포함하는 블록을 블록체인에 저장하고, 더불어 상기 인증서가 사용될 때마다 사용처 정보에 접근할 수 있는 트랜잭셕 아이디를 사용자 단말로 제공함으로써, 인증서 사용에 대한 투명성과 신뢰성을 향상시키는 장점이 있다.The present invention stores a block containing the certificate usage information in the blockchain, and provides a transaction ID to access the usage information whenever the certificate is used, thereby improving transparency and reliability in the use of certificates. It has the advantage of letting you do it.
또한, 본 발명은 전자 서명을 수행되기 전에, 사용자에게 인증서가 사용예정인 사용처 정보를 제공함으로써, 인증서가 불법적으로 사용되는 것을 사전에 예방할 수 있는 장점도 있다.In addition, the present invention has the advantage of preventing illegal use of the certificate in advance by providing the user with information on the destination where the certificate is intended to be used before the electronic signature is performed.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 발명을 실시하기 위한 구체적인 내용과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다.
도 1은 본 발명의 일 실시예에 따른, 인증서 부당 사용 검증 시스템을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른, 블록체인 시스템에서 스마트 컨트랙트와 관련된 블록을 저장하는 방법을 설명하는 흐름도이다.
도 3은 본 발명의 일 실시예에 따른, 블록체인 시스템에서 인증서가 사용되기 전에 인증서의 사용처 정보를 사용자에게 제공하는 방법을 설명하는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른, 블록체인 시스템에서 인증서가 사용된 후에 인증서의 사용처 정보를 사용자에게 제공하는 방법을 설명하는 흐름도이다.
도 5는 본 발명의 일 실시예에 따른, 블록체인 시스템을 나타내는 도면이다.The following drawings attached to the present specification illustrate preferred embodiments of the present invention, and serve to further understand the technical idea of the present invention together with specific details for carrying out the invention, so the present invention is described in such drawings. It is limited to matters and should not be interpreted.
1 is a diagram illustrating a system for verifying unauthorized use of a certificate according to an embodiment of the present invention.
2 is a flowchart illustrating a method of storing a block related to a smart contract in a block chain system according to an embodiment of the present invention.
3 is a flowchart illustrating a method of providing information about a certificate usage destination to a user before a certificate is used in a blockchain system according to an embodiment of the present invention.
4 is a flowchart illustrating a method of providing information about a certificate usage to a user after a certificate is used in a blockchain system according to an embodiment of the present invention.
5 is a diagram illustrating a block chain system according to an embodiment of the present invention.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.The above-described objects, features, and advantages will become more apparent through the following detailed description in connection with the accompanying drawings, whereby those of ordinary skill in the technical field to which the present invention pertains can easily implement the technical idea of the present invention. There will be. In addition, in describing the present invention, when it is determined that a detailed description of a known technology related to the present invention may unnecessarily obscure the subject matter of the present invention, a detailed description thereof will be omitted. Hereinafter, a preferred embodiment according to the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일 실시예에 따른, 인증서 부당 사용 검증 시스템을 나타내는 도면이다.1 is a diagram illustrating a system for verifying unauthorized use of a certificate according to an embodiment of the present invention.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 인증서 부당 사용 검증 시스템은, 사용자 단말(100), 서비스 서버(300) 및 블록체인 시스템(200)을 포함하며, 이러한 구성요소들은 네트워크(400)를 통해서 서로 통신한다. 상기 네트워크(400)는 유선 통신망과 이동통신망을 포함하는 것으로서, 본 발명에 있어서 주지의 관용기술에 해당하므로 자세한 설명은 생략한다. As shown in FIG. 1, the authentication system for verifying unauthorized use of a certificate according to an embodiment of the present invention includes a
사용자 단말(100)은 사용자가 소지한 개인용 컴퓨터, 이동통신 단말 등으로서, 네트워크(400)와 통신이 가능하다. 또한, 사용자 단말(100)은 블록체인 시스템(200)에서 발행한 인증서를 저장하고, 개인키와 공개키를 자체적으로 생성하여 저장한다. 상기 사용자 단말(100)은 공개키를 블록체인 시스템(200), 서비스 서버(300) 등에 배포할 수 있다. 사용자 단말(100)은 인증서와 개인키를 이용하여 전자 서명을 수행하여, 전자 서명값이 포함된 인증 정보를 서비스 서버(300)로 전송함으로써, 서비스 서버(300)로 온라인 서비스를 요청할 수 있다. 사용자 단말(100)은 서비스 서버(300)로 트랜잭션 식별정보(TxID)를 수신하고, 이 트랜잭션 식별정보를 이용하여 블록체인 시스템(200)에 접근하여 인증서 사용처를 확인할 수 있다.The
서비스 서버(300)는 주식 거래, 계좌 이체, 부동산 거래, 본인 인증 등과 같이 사용자의 전자 서명이 필요한 서비스를 제공하는 서버로서, 자신이 제공하는 서비스를 스마트 컨트랙트로서 생성하여, 이 스마트 컨트랙트를 블록체인(210)에 사전에 등록한다. 상기 스마트 컨트랙트에서는 서비스를 실행할 수 있는 실행 함수가 포함된다. 상기 실행 함수에는 입력값이 정의되고, 더불어 입력값에 따라 프로세스를 처리할 수 있는 로직(logic)이 포함된다. 상기 로직은 프로그램 언어로서 상기 실행 함수에 기록될 수 있다. 예컨대, 서비스 서버(300)가 금융 서버인 경우, 계좌이체과 관련된 실행 함수가 스마트 컨트랙트에 포함될 수 있으며, 이 경우 실행 함수의 입력값으로 출금 계좌, 이체 금액, 입금 계좌, 입금 은행 등을 입력값으로 정의되며 이러한 입력값에 따라 계좌 이체를 수행할 수 있는 로직(logic)이 상기 실행 함수에 기록될 수 있다.The
서비스 서버(300)는 사용자 단말(100)로부터 서비스를 요청받으면, 블록체인 시스템(200)에서 생성한 난스(Nonce)를 사용자 단말(100)로 제공한 후, 사용자 단말(100)로부터 인증 정보를 수신하면, 이 인증 정보가 포함된 서비스 실행 요청을 블록체인 시스템(200)으로 전송한다. 상기 난스는 무작위로 생성되는 일회성 문자열, 일회성 숫자열 또는 문자와 숫자의 조합이다. 상기 인증 정보의 인증 결과에 따라, 블록체인 시스템(200)에서 서비스가 선택적으로 실행되게 한다. 서비스 서버(300)는 서비스 실행 결과를 블록체인 시스템(200)으로부터 수신할 수 있다. When a service request is received from the
블록체인 시스템(200)은 복수의 노드들이 연결되어 형성되는 일종의 네트워크 집합으로서, 공유 분산 데이터인 블록체인(210)을 포함한다. 블록체인 시스템(200)에 참여한 노드들은 동일한 블록체인(210)을 구축한다. 사용자 단말(100), 서비스 서버(300)도 블록체인 시스템(200)에 포함되어 블록체인(210)을 공유할 수도 있다. 상기 블록체인 시스템(200)은 클라우드 컴퓨터 시스템에 구현될 수도 있다.The
블록체인(210)을 구성하는 블록은 블록 헤더와 트랜잭션으로 구성된다. 블록 헤더는 이전 블록 해시값, 머클루트(Markle Root), 타임스탬프를 포함한다. 상기 이전 블록 해시는 블록체인 구조에서 이전 블록(즉, 부모 블록)에 대한 해시 참조값을 나타낸다. 머클루트는 머클 트리 루트에 대한 해시(hash)이다. 타임 스탬프는 블록의 생성시간이 기록된다. Blocks constituting the
상기 트랜잭션는 사용처 정보와 사용처 식별코드를 포함한다. 상기 사용처 정보는 인증서가 사용된 정보를 사용자가 인지할 수 있는 텍스트로 나타내는 것으로서, 예를 들어 "주식 거래", "계좌이체", "부동산 거래" 등과 같은 사용자가 인지할 수 있는 설명 정보이다. 또한, 사용처 식별코드는 사용처 정보와 매핑되고 내부적으로 관리되는 사용처 정보에 대한 고유정보로서, 일정길이의 영문자와 숫자가 조합될 수 있다.The transaction includes destination information and a destination identification code. The usage information indicates information on which the certificate has been used in text that the user can recognize, and is descriptive information that can be recognized by the user, such as "stock transaction", "account transfer", and "real estate transaction". In addition, the usage destination identification code is unique information on the usage destination information that is mapped with the usage destination information and is internally managed, and may be combined with English characters and numbers of a certain length.
본 발명의 실시예에 따른, 블록은 스마트 컨트랙트 블록(이하, 'SC 블록'으로 지칭함), 인증 블록, 서비스 실행 블록으로 구분될 수 있다. 상기 SC 블록의 트랜잭션은 스마트 컨트랙트와 관련된 실행 함수, 사용처 정보 및 사용처 식별코드를 포함한다. 또한, 인증 블록의 트랜잭션은 사용자 인증 결과, 사용처 정보 및 사용처 식별코드를 포함한다. 서비스 실행 블록의 트랜잭션은 서비스 실행 결과, 사용처 정보 및 사용처 식별코드를 포함한다. According to an embodiment of the present invention, blocks may be divided into smart contract blocks (hereinafter referred to as'SC blocks'), authentication blocks, and service execution blocks. The transaction of the SC block includes an execution function related to the smart contract, usage destination information, and usage destination identification code. In addition, the transaction of the authentication block includes the user authentication result, the destination information, and the destination identification code. The transaction of the service execution block includes the service execution result, usage destination information, and usage destination identification code.
블록체인 시스템(200)은 블록을 관리하는 기능 이외에, 인증서를 생성하여 배포하기도 하고, 더불어 사용자의 인증과 서비스 실행을 수행하기도 한다. 사용자에게 배포된 인증서는 인증서 식별코도와 함께 블록체인(210)에 저장된다. 구체적으로, 블록체인 시스템(200)은 사용자 단말(100)로부터 인증서 생성을 요청받으면, 사전에 설정된 인증서 생성 알고리즘에 유효기간이 포함된 인증서를 생성하고, 이 인증서를 사용자 단말(100)로 전송한다. 이때, 블록체인 시스템(200)은 상기 인증서의 식별코드를 생성하고, 이 인증서의 식별코드와 상기 인증서가 포함하는 신규 블록을 생성하고, 이 신규 블록의 이전의 블록과 연결함으로써, 상기 신규 블록을 블록체인(210)에 저장한다. 또한, 블록체인 시스템(200)은 상기 인증서의 식별코드도 사용자 단말(100)로 전송할 수 있다.In addition to the function of managing blocks, the
또한, 블록체인 시스템(200)은 서비스 서버(300)로부터 스마트 컨트랙트를 수신하면, 이 스마트 컨트랙트에 포함된 실행 함수가 사용되는 사용처의 식별코드를 생성하여 서비스 서버(300)로 제공하고, 더불어 상기 스마트 컨트랙트와 상기 사용처 식별코드를 포함하는 신규 SC 블록을 생성하고, 이 신규 SC 블록을 기존 블록과 연결함으로써 블록체인(210)에 저장한다. In addition, when the
한편, 블록체인 시스템(200)은 사용자 단말(100)이 서비스를 서비스 서버(300)로 요청하는 경우, 사용자 인증을 위한 난스를 생성하여 사용자 단말(100)로 제공할 수 있다. 이때, 블록체인 시스템(200)은 인증서가 사용되는 사용처의 식별코드를 서비스 서버(300)로부터 수신하고, 이 식별코드와 관련된 트랜잭션 식별정보를 사용자 단말(100)로 제공할 수 있다. 이에 따라, 사용자 단말(100)은 전자 서명을 수행하기 전에, 상기 트랜잭션 식별정보와 대응되는 사용처 정보를 블록체인 시스템(200)으로부터 획득하여, 인증서가 사용되는 사용처를 미리 확인할 수도 있다.Meanwhile, when the
또한, 블록체인 시스템(200)은 사용자 단말(100)로부터 인증정보를 수신하는 경우, 인증정보를 분석하여 사용자를 인증한 후에 인증에 성공하면, 서비스와 관련된 실행 함수를 구동할 수 있다. 상기 블록체인 시스템(200)은 SC 블록의 트랜잭션 식별정보와 입력 정보를 서비스 서버(300)로부터 수신하고, 상기 SC 블록의 트랜잭션 식별정보를 포함하는 SC 블록을 블록체인(210)에서 추출한 후, 이 SC 블록에 포함된 실행함수에 상기 입력 정보를 대입하여 실행 함수를 구동하여 요구되는 서비스를 실행할 수 있다. In addition, when the
블록체인 시스템(200)은 사용자 인증으로서, 전자 서명 검증, 해시값 검증, 난스 검증, 인증서 검증 중에서 하나 이상을 수행할 수 있다. 사용자 인증에 대한 구체적인 방법으로 도 4를 참조한 설명을 통해서 자세하게 설명된다.As user authentication, the
블록체인 시스템(200)은 인증 결과, 인증서 사용처 정보 및 인증서 사용처 식별코드를 포함하는 신규 인증 블록을 생성하고, 이 신규 인증 블록을 블록체인(210)에 저장한다. 또한, 블록체인 시스템(200)은 실행 함수의 실행 결과, 인증서 사용처 정보 및 인증서 사용처 식별코드를 포함하는 서비스 실행 블록을 생성하여 블록체인(210)에 저장한다. The
이하, 도 2 내지 도 4를 참조한 설명을 통해서, 본 발명의 실시예에 따른 인증서 부당 사용 검증 방법에 대해서 보다 구체적으로 설명한다.Hereinafter, a method for verifying unauthorized use of a certificate according to an embodiment of the present invention will be described in more detail through the description with reference to FIGS. 2 to 4.
도 2는 본 발명의 일 실시예에 따른, 블록체인 시스템에서 스마트 컨트랙트와 관련된 블록을 저장하는 방법을 설명하는 흐름도이다.2 is a flowchart illustrating a method of storing a block related to a smart contract in a block chain system according to an embodiment of the present invention.
도 2를 참조하면, 서비스 서버(300)는 서비스와 관련된 실행 함수를 포함하는 스마트 컨트랙트를 생성한다(S201). 상기 실행 함수에는 입력값이 정의되고, 더불어 입력값에 따라 프로세스를 처리할 수 있는 로직(logic)이 포함된다. 상기 로직은 프로그램 언어로서 상기 실행 함수에 기록될 수 있다. 이어서, 서비스 서버(300)는 상기 생성한 스마트 컨트랙와 스마트 컨트랙트의 사용처 정보가 포함된 등록 요청 메시지를 블록체인 시스템(200)으로 전송한다(S203).Referring to FIG. 2, the
이어서, 블록체인 시스템(200)은 등록 요청 메시지에서 사용처 정보를 확인하고, 이 사용처 정보에 대한 고유의 식별코드(즉, 사용처 식별코드)를 생성한다(S205). 다음으로, 블록체인 시스템(200)은 상기 스마트 컨트랙트, 상기 사용처 식별코드 및 사용처 정보를 포함하는 신규 SC 블록을 생성하고, 이 신규 SC 블록을 기존 블록과 연결함으로써 블록체인(210)에 저장한다(S207). 한편, 블록체인 시스템(200)은 전자 서명 등의 인증 수단을 이용하여, 서비스 서버(300)를 인증할 수 있으며, 서비스 서버(300)의 인증에 성공한 경우에 상기 SC 블록을 블록체인(210)에 저장할 수 있다. Subsequently, the
블록체인 시스템(200)은 정상적으로 SC 블록이 저장되면, 상기 사용처 식별코드를 포함하는 등록 알림 메시지를 서비스 서버(300)로 전송한다(S209).When the SC block is normally stored, the
그러면, 서비스 서버(300)는 상기 등록 알림 메시지에서 사용처 식별코드를 확인하고, 상기 스마트 컨트랙트와 연관하여 사용처 식별코드를 별도로 저장하여 관리한다.Then, the
도 3은 본 발명의 일 실시예에 따른, 블록체인 시스템에서 인증서가 사용되기 전에 인증서의 사용처 정보를 사용자에게 제공하는 방법을 설명하는 흐름도이다. 3 is a flowchart illustrating a method of providing information about a certificate usage destination to a user before a certificate is used in a blockchain system according to an embodiment of the present invention.
도 3을 참조하면, 사용자 단말(100)은 계좌 이체, 주식 매매 등과 같은 특정 서비스를 서비스 서버(300)로 요청한다(S301).Referring to FIG. 3, the
그러면, 서비스 서버(300)는 사용자 단말(100)로부터 요구한 서비스가 인증서 사용이 필요한 서비스임을 확인하고, 더불어 상기 서비스를 실행할 수 있는 스마트 컨트랙트를 확인한다. 그리고 서비스 서버(300)는 스마트 컨트랙트와 대응되는 사용처 식별코드를 확인한다(S303). 상기 사용처 식별코드는 도 2를 참조한 설명에서와 같이, 스마트 컨트랙트가 등록되면 블록체인 시스템(200)으로부터 수신된다. 이어서, 블록체인 시스템(200)은 상기 확인한 사용처 식별코드를 포함하는 난스 요청 메시지를 블록체인 시스템(200)으로 전송한다(S305).Then, the
블록체인 시스템(200)은 난스 요청 메시지에 포함된 사용처 식별코드를 확인하고, 이 사용처 식별코드를 포함하는 SC 블록을 블록체인(210)에서 추출한 후, 상기 SC 블록의 트랜잭션 식별정보를 확인한다(S307). 이어서, 블록체인 시스템(200)은 사전에 설정된 난스 생성 알고리즘에 토대로, 랜덤값인 난스를 생성한다(S309). 이때, 블록체인 시스템(200)은 상기 트랜잭션 식별정보, 현재 시각, 사용자 단말(100)의 인증서 식별코드 등을 이용하여 난스를 생성할 수 있다.The
다음으로, 블록체인 시스템(200)은 상기 생성한 난스와 상기 확인한 SC 블록의 트랜잭션 식별정보(SC TxID)를 서비스 서버(300)로 전송하고(S311), 서비스 서버(300)는 상기 난스와 SC 블록의 트랜잭션 식별정보를 사용자 단말(100)로 전달한다(S313). 다른 실시형태로서, 블록체인 시스템(200)은 서비스 서버(300)를 경유하지 않고, 다이렉트로 상기 난스와 SC 블록의 트랜잭션 식별정보를 사용자 단말(100)로 전송할 수 있다.Next, the
사용자 단말(100)은 난스를 수신한 후에 이 난스와 저장중인 인증서를 이용하여 전자 서명을 수행할 수 있으나, 인증서가 사용되는 용도를 알기 위하여, 상기 수신한 SC 블록의 트랜잭션 식별정보를 포함하는 사용처 정보 요청 메시지를 블록체인 시스템(200)으로 전송할 수 있다(S315).After receiving the nonce, the
그러면, 블록체인 시스템(200)은 상기 트랜잭션 식별정보를 가지는 SC 블록을 블록체인(210)에서 추출하고, 상기 SC 블록의 트랜잭션에서 사용처 정보를 확인한다. 그리고 블록체인 시스템(200)은 상기 사용처 정보를 사용자 단말(100)로 전송하여, 인증서가 사용되기 전에 인증서의 사용처 정보를 사용자가 인지하게 한다(S317).Then, the
도 3과 같은 프로세서에 따라, 사용자는 서비스 서버(300)에서 실행된 예정인 서비스의 용도와 인증서가 사용될 용도가 일치하는지 여부를, 인증서를 사용하기 전에 미리 확인할 수 있다. According to the processor as shown in FIG. 3, the user can check in advance whether the intended use of the service executed in the
사용자는 블록체인 시스템(200)으로부터 수신한 사용처 정보가 자신이 생각하는 것과 다를 때에는 전자 서명을 수행하지 않고, 서비스 요청을 철회할 수 있다. 반면, 사용자는 블록체인 시스템(200)으로부터 수신한 사용처 정보가 자신이 생각하는 것과 일치하는 경우 전자 서명을 수행하여 실질적인 서비스 처리를 요청할 수 있다. When the usage information received from the
도 4는 본 발명의 일 실시예에 따른, 블록체인 시스템에서 인증서가 사용된 후에 인증서의 사용처 정보를 사용자에게 제공하는 방법을 설명하는 흐름도이다. 4 is a flowchart illustrating a method of providing information about a certificate usage to a user after a certificate is used in a blockchain system according to an embodiment of the present invention.
도 4를 참조한 설명은 도 3에 따른 절차 이후에 진행된다. The description with reference to FIG. 4 proceeds after the procedure according to FIG. 3.
도 4를 참조하면, 사용자 단말(100)은 사용자로부터 서비스 실행을 위한 입력정보(예컨대, 계좌 이체 입력정보, 주식 거래 입력정보)를 입력받은 후, 전자 서명값 생성한다(S401). 이때, 사용자 단말(100)은 상기 난스와 인증서를 사용자의 개인키로 암호화함으로써, 전자 서명값을 생성할 수 있다. Referring to FIG. 4, the
다음으로, 사용자 단말(100)은 상기 전자 서명값, 상기 난스, 서비스 서버(300)의 식별정보, 인증서 식별코드, 상기 SC 블록의 트랜잭션 식별정보, 상기 서비스 실행을 위한 입력정보 등 중에서 하나 이상을 해시 처리한 해시값을 생성한다. 이어서, 사용자 단말(100)은 상기 해시값, 인증서의 식별코드, 상기 전자 서명값를 포함하는 인증정보, 상기 입력정보 및 SC 블록의 트랜잭션 식별정보를 서비스 서버(300)로 전송한다(S405). 그러면, 서비스 서버(300)는 상기 인증정보, 상기 입력정보 및 SC 블록체인의 트랜잭션 식별정보를 블록체인 시스템(200)에 전송하여, 해당 서비스의 실행을 요청한다(S407). Next, the
그러면, 블록체인 시스템(200)은 상기 인증정보를 분석하여, 사용자 인증을 수행한다(S409). 상기 블록체인 시스템(200)은 사용자의 공개키를 확인하고, 이 공개키를 이용하여 상기 전자 서명값을 복호화한 후, 복호화된 결과인 난스와 인증서를 확인하고, 이 난스와 인증서가 사용자 단말(100)로 제공한 난스와 인증서와 일치하는지 여부를 1차 인증한다. 블록체인 시스템(200)은 상기 인증서의 식별코드를 토대로, 블록체인(210)에서 인증서를 추출하여, 인증서의 일치 여부를 검증할 수 있다. 또한, 블록체인 시스템(200)은 상기 사용자 단말(100)로 배포한 인증서의 식별코드를 확인하고, 상기 사용자 단말(100)로 제공한 난스, 상기 전자 서명값, 상기 서비스 서버(300)의 식별정보, 상기 인증서의 식별코드, SC 블록의 트랜잭션 식별정보, 상기 입력정보 등 중에서 하나 이상을 해시 처리한 해시값을 생성한 후에, 이 해시값과 사용자 단말(100)로부터 수신한 해시값이 일치하는지 여부를 2차 인증한다. 또한, 블록체인 시스템(200)은 상기 인증서를 확인하고, 이 인증서가 만료되었는지 여부를 추가적으로 인증할 수 있다.Then, the
블록체인 시스템(200)은 어느 한 인증에도 실패하면, 서비스 서버(300)로 사용자 인증에 실패하였음을 통보한다. If any authentication fails, the
한편, 블록체인 시스템(200)는 모든 사용자 인증에 성공하면, 서비스 서버(300)로부터 수신한 SC 블록의 트랜잭션 식별정보를 확인하고, 상기 트랜잭션 식별정보를 가지는 SC 블록을 블록체인(210)에서 추출한다. 그리고 블록체인 시스템(200)은 상기 추출한 SC 블록에 포함된 스마트 컨트랙트의 실행 함수를 확인하고, 이 실행함수에 상기 입력정보를 대입하여 실행 함수를 구동함으로써, 요구되는 서비스를 실행한다(S411, S413).On the other hand, if all user authentication is successful, the
다음으로, 블록체인 시스템(200)은 상기 추출한 SC 블록에서 사용처 정보와 사용처 식별코드를 확인하고, 상기 사용자 인증 결과, 상기 인증서 사용처 정보 및 상기 인증서 사용처 식별코드를 포함하는 신규 인증 블록을 생성하고, 이 신규 인증 블록을 블록체인(210)에 저장한다(S415). 또한, 블록체인 시스템(200)은 실행 함수의 실행 결과, 상기 인증서 사용처 정보 및 상기 인증서 사용처 식별코드를 포함하는 서비스 실행 블록을 생성하여, 블록체인(210)에 저장한다. Next, the
다음으로, 블록체인 시스템(200)은 상기 저장한 인증 블록의 트랜잭션 식별정보 및 상기 서비스 실행 블록의 트랜잭션 식별정보 및 서비스 실행 결과를 서비스 서버(300)로 전송한다(S417). Next, the
그러면, 서비스 서버(300)는 자체적으로 관리하는 데이터베이스(도면에 도시되지 않음)에 서비스 실행 결과를 반영하고, 더불어 사용자 단말(100)로 정상적으로 서비스가 처리되었음을 알리는 메시지를 전송한다(S419). 이때, 서비스 서버(300)는 블록체인 시스템(200)으로부터 수신한 인증 블록의 트랜잭션 식별정보 및 서비스 실행 블록의 트랜잭션 식별정보를 사용자 단말(100)로 전송한다.Then, the
사용자 단말(100)은 상기 알림 메시지를 수신한 후에, 상기 알림 메시지에 포함된 두 개의 트랜잭션 식별정보를 이용하여, 서비스 서버(300)와 블록체인 시스템(200)에서 실행된 서비스 결과와 인증서의 사용처를 확인할 수 있다. 사용자 단말(100)은 서비스 결과와 인증서의 사용처를 확인하기 위하여, 상기 확인한 두 트랜잭션 식별정보(즉, 인증 블록의 트랜잭션 식별정보 및 서비스 실행 블록의 트랜잭션 식별정보)를 포함하는 서비스 결과 조회 메시지를 블록체인 시스템(200)으로 전송한다(S421).After receiving the notification message, the
그러면, 블록체인 시스템(200)은 상기 서비스 결과 조회 메시지에서 인증 블록의 트랜잭션 식별정보 및 서비스 실행 블록의 트랜잭션 식별정보를 확인하고, 상기 인증 블록의 트랜잭셕 식별정보를 가지는 트랜잭션을 블록체인(210)에서 추출하고, 더불어 상기 서비스 실행 블록의 트랜잭션 식별정보를 가지는 트랜잭션을 블록체인(210)에서 추출한다. 이어서, 블록체인 시스템(200)은 상기 추출한 트랜잭션들을 사용자 단말(100)로 전송한다(S423).Then, the
사용자 단말(100)은 블록체인 시스템(200)에서 수신한 트랜잭션들에 포함된 데이터를 화면에 출력함으로써 사용자 인증 결과와 인증서 사용처 정보 그리고 실행 함수의 실행 결과와 인증서 사용처 정보를 사용자에게 인지시킬 수 있다(S425). The
도 4와 같은 프로세서에 따라, 사용자는 서비스 서버(300)에서 인증서가 사용된 경우, 이 인증서의 사용처 정보를 블록체인 시스템(200)으로부터 획득할 수 있다. According to the processor as shown in FIG. 4, when a certificate is used in the
도 5는 본 발명의 일 실시예에 따른, 블록체인 시스템을 나타내는 도면이다.5 is a diagram illustrating a block chain system according to an embodiment of the present invention.
도 5에 도시된 바와 같이, 본 발명의 일 실시예에 따른 블록체인 시스템(200)은 스마트 컨트랙트 등록 모듈(220), 블록 관리 모듈(230), 인증 모듈(240) 및 정보 제공 모듈(250)을 포함하고, 이러한 구성요소들은 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합을 통해서 구현될 수 있다.As shown in FIG. 5, the
또한, 상기 블록체인 시스템(200)은 하나 이상의 프로세서, 메모리 및 통신 회로를 포함할 수 있으며, 스마트 컨트랙트 등록 모듈(220), 블록 관리 모듈(230), 인증 모듈(240) 및 정보 제공 모듈(250)은 상기 프로세서에 의해서 실행되는 프로그램 형태로 메모리에 탑재될 수 있다. 또한, 상기 블록체인 시스템(200)는 상기 통신 회로를 통하여 네트워크(400)와 통신할 수 있다. In addition, the
스마트 컨트랙트 등록 모듈(220)은 스마트 컨트랙트와 관련된 SC 블록을 생성하여 블록체인(210)에 저장한다. 구체적으로, 스마트 컨트랙트 등록 모듈(220)은 사용처 정보와 스마트 컨트랙트가 포함된 등록 요청 메시지를 서비스 서버(300)로부터 수신하면, 상기 등록 요청 메시지에서 사용처 정보를 확인한 후, 상기 사용처 정보에 대한 고유의 식별코드(즉, 사용처 식별코드)를 생성한다. 아울러, 스마트 컨트랙트 등록 모듈(220)은 상기 스마트 컨트랙트, 상기 사용처 식별코드 및 사용처 정보를 포함하는 신규 SC 블록을 생성하고, 이 신규 SC 블록을 기존 블록과 연결함으로써 블록체인(210)에 저장한다. 스마트 컨트랙트 등록 모듈(220)은 SC 블록의 저장을 저장을 완료하면, 상기 사용처 식별코드를 포함하는 등록 알림 메시지를 서비스 서버(300)로 전송한다.The smart
블록 관리 모듈(230)은 블록체인(210)에 저장되는 블록등를 관리하는 기능을 수행한다. 즉, 블록 관리 모듈(230)은 인증 블록과 서비스 실행 블록을 생성하여 블록체인(210)에 저장하는데, 인증 모듈(240)에서 인증에 성공한 서비스와 관련된 인증 블록과 서비스 실행 블록을 생성하여 블록체인(210)에 저장한다. 구체적으로, 인증 모듈(240)에서 사용자 인증에 성공하여 서비스를 실행하면, 블록 관리 모듈(230)은 서비스 실행에 수행된 함수를 포함하는 SC 블록을 블록체인(210)에서 확인하고, 이 SC 블록에서 사용처 식별코드와 사용처 정보를 확인한다. 게다가, 블록 관리 모듈(230)은 인증 모듈(240)에서 수행된 사용자 인증 결과, 상기 인증서 사용처 정보 및 상기 인증서 사용처 식별코드를 포함하는 신규 인증 블록을 생성하고, 이 신규 인증 블록을 블록체인(210)에 저장한다. 또한, 블록 관리 모듈(230)은 실행 함수를 토대로 실행된 서비스 결과, 상기 인증서 사용처 정보 및 상기 인증서 사용처 식별코드를 포함하는 서비스 실행 블록을 생성하여, 블록체인(210)에 저장한다. The
인증 모듈(240)은 난스(nonce)를 생성하여 사용자 단말(100)로 제공하고, 더불어 사용자를 인증을 수행한다. 인증 모듈(240)은 난스를 요청받으면, 난스를 생성하여 사용자 단말(100)로 제공할 수 있다. 이때, 인증 모듈(240)은 인증서가 사용되는 사용처의 식별코드를 확인하고, 이 사용처 식별코드를 포함하는 SC 블록을 블록체인(210)에서 추출한 후, 상기 SC 블록의 트랜잭션 식별정보를 확인하고 나서, 상기 SC 블록의 트랜잭션 식별정보, 현재 시각, 인증서 식별코드 등을 이용하여 난스를 생성할 수 있다. The
또한, 인증 모듈(240)은 사용자의 인증 정보를 수신하면 상기 인증정보를 분석하여 사용자 인증을 수행한다. 상기 인증 정보에는 사용자의 전자 서명값, 해시값 및 인증서의 식별코드가 포함될 수 있으며, 이 경우 인증 모듈(240)은 사용자의 전자 서명값을 검증하고, 더불어 해시값을 검증하고, 인증서의 유효성을 검증함으로써, 사용자 인증을 수행한다. 상기 인증 모듈(240)은 사용자의 공개키를 확인하고, 이 공개키를 이용하여 상기 전자 서명값을 복호화한 후, 복호화된 결과에서 난스와 인증서를 확인하고, 이 난스와 인증서가 사용자 단말(100)로 제공한 난스와 인증서와 일치하는지 여부를 1차 인증한다. 인증 모듈(240)은 상기 인증서의 식별코드를 토대로, 블록체인(210)에서 인증서를 추출하여, 인증서의 일치 여부를 검증할 수 있다. 또한, 인증 모듈(240)은 상기 인증서의 식별코드를 확인하고, 상기 사용자 단말(100)로 제공한 난스, 상기 전자 서명값, 상기 서비스 서버(300)의 식별정보, 상기 인증서의 식별코드, SC 블록의 트랜잭션 식별정보, 상기 입력정보 등 중에서 하나 이상을 해시 처리한 해시값을 생성한 후에, 이 해시값과 사용자 단말(100)로부터 수신한 해시값이 일치하는지 여부를 2차 인증할 수 있다. 또한, 인증 모듈(240)은 사용자의 인증서를 확인하고, 이 인증서가 만료되었는지 여부를 추가적으로 인증할 수 있다.In addition, when receiving the authentication information of the user, the
인증 모듈(240)은 사용자 인증에 성공하면, 서비스와 관련된 SC 블록의 트랜잭션 식별정보를 확인하고, 상기 트랜잭션 식별정보를 가지는 SC 블록을 블록체인(210)에서 추출한 후, 상기 추출한 SC 블록에 포함된 스마트 컨트랙트의 실행 함수를 실행함으로써, 요구된 서비스를 처리한다. 이때, 인증 모듈(240)은 상기 실행 함수에 사용자가 입력한 입력정보를 대입하여 상기 실행 함수를 구동함으로써, 요구되는 서비스를 실행한다.When user authentication is successful, the
정보 제공 모듈(250)은 사용처 정보에 접근할 수 있는 데이터를 사용자에게 제공하고, 사용자 단말로 인증서의 사용처 정보를 제공하는 기능을 수행한다. 구체적으로, 정보 제공 모듈(250)은 인증 모듈(240)에서 난스가 생성되어 제공되면, 실행 예정될 서비스와 관련된 SC 블록에 포함되는 트랜잭션의 식별정보를 확인하고, 상기 SC 블록의 트랜잭션 식별정보를 사용처 정보를 확인할 수 있는 접근 데이터로서 사용자 단말(100)로 제공할 수 있다. 정보 제공 모듈(250)은 서비스가 실행되기 전의 상태에서, 사용자의 단말(100)로부터 SC 블록의 트랜잭션 식별정보를 수신하면, 상기 트랜잭션 식별정보를 가지는 SC 블록을 블록체인(210)에서 추출하고, 이 추출한 SC 블록의 트랜잭션에서 사용처 정보를 확인한다. 아울러, 정보 제공 모듈(250)은 상기 확인한 사용처 정보를 사용자 단말(100)로 전송하여, 인증서가 사용되기 전(즉, 서비스가 실행되기 전)에 인증서의 사용처 정보를 사용자가 인지하게 한다.The
또한, 정보 제공 모듈(250)은 블록 관리 모듈(230)에서 인증 블록, 서비스 실행 블록 중 하나 이상을 생성하여 블록체인(210)에 저장하면, 상기 저장한 인증 블록의 트랜잭션 식별정보, 상기 서비스 실행 블록의 트랜잭션 식별정보를 확인하여, 사용자 단말로 제공한다. 이후에, 정보 제공 모듈(250)은 사용자의 단말(100)로부터 상기 인증 블록의 트랜잭션 식별정보, 서비스 실행 블록의 트랜잭션 식별정보 중에서 하나 이상을 수신하면, 해당 트랜잭션 식별정보를 가지는 하나 이상의 트랜잭션을 블록체인(210)에서 추출하여 사용자 단말(100)로 전송함으로써, 인증서가 사용되기 후(즉, 인증완료된 후 또는 서비스가 실행된 후)에 인증서의 사용처 정보를 사용자가 인지하게 한다.In addition, when the
본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.While this specification includes many features, such features should not be construed as limiting the scope or claims of the invention. In addition, features described in separate embodiments herein may be combined and implemented in a single embodiment. Conversely, various features described in a single embodiment in the present specification may be individually implemented in various embodiments, or may be properly combined and implemented.
도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.Although the operations have been described in a specific order in the drawings, it should not be understood that such operations are performed in a specific order as shown, or as a series of consecutive sequences, or that all described operations are performed to obtain a desired result. . Multitasking and parallel processing can be advantageous in certain environments. In addition, it should be understood that classification of various system components in the above-described embodiments does not require such classification in all embodiments. The above-described program components and systems may generally be implemented as a package in a single software product or multiple software products.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.The method of the present invention as described above may be implemented as a program and stored in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.) in a form that can be read by a computer. This process can be easily performed by a person of ordinary skill in the art to which the present invention pertains, and thus will not be described in detail.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The present invention described above, for those of ordinary skill in the art to which the present invention pertains, various substitutions, modifications and changes are possible within the scope of the technical spirit of the present invention. It is not limited by the drawings.
100 : 사용자 단말
200 : 블록체인 시스템
210 : 블록체인
220 : 스마트 컨트랙트 등록 모듈
230 : 블록 관리 모듈
240 : 인증 모듈
250 : 정보 제공 모듈
300 : 서비스 서버
400 : 네트워크100: user terminal 200: blockchain system
210: Blockchain 220: Smart contract registration module
230: block management module 240: authentication module
250: information providing module 300: service server
400: network
Claims (12)
사용자 단말로부터 발송된 인증 정보를 분석하여 사용자를 인증하는 단계;
상기 사용자 인증에 성공하면, 스마트 컨트랙트가 포함된 제1블록에서 실행 함수를 확인하여, 이 실행 함수를 구동하여 서비스를 실행하는 단계;
상기 스마트 컨트랙트와 관련되는 사용처 정보를 확인하고, 상기 사용처 정보와 상기 서비스 실행 결과를 포함하는 제2블록을 생성하여 블록체인에 저장하는 단계;
상기 서비스에서 사용된 인증서의 사용처를 조회할 수 있는 접근 데이터로서, 상기 제2블록의 트랜잭션 식별정보를 상기 사용자 단말로 전송하는 단계; 및
상기 제2블록의 트랜잭션 식별정보를 포함하는 조회 요청 메시지가 상기 사용자 단말로부터 수신되는 경우, 상기 제2블록에 포함된 사용처 정보를 상기 사용자 단말로 제공하는 단계를 포함하는 인증서 부당 사용 검증 방법.As a method to verify the illegal use of certificates in the blockchain system,
Analyzing the authentication information sent from the user terminal to authenticate the user;
If the user authentication is successful, checking an execution function in a first block containing a smart contract, and running the execution function to execute a service;
Checking usage information related to the smart contract, generating a second block including the usage destination information and the service execution result, and storing it in a blockchain;
Transmitting the transaction identification information of the second block to the user terminal as access data for inquiring where the certificate used in the service is used; And
And, when an inquiry request message including the transaction identification information of the second block is received from the user terminal, providing information about the usage destination included in the second block to the user terminal.
상기 서비스를 실행하는 단계 이전에,
상기 서비스에 이용될 예정인 인증서의 사용처를 조회할 수 있는 접근 데이터로서, 상기 제1블록의 트랜잭션 식별정보를 상기 사용자 단말로 전송하는 단계; 및
상기 제1블록의 트랜잭션 식별정보를 포함하는 메시지를 상기 사용자 단말로부터 수신하면, 상기 서비스가 실행되기 전에 상기 제1블록에 포함된 사용처 정보를 추출하여 상기 사용자 단말로 제공하는 단계를 더 포함하는 인증서 부당 사용 검증 방법.The method of claim 1,
Before the step of executing the service,
Transmitting the transaction identification information of the first block to the user terminal as access data for inquiring a destination of a certificate to be used for the service; And
Upon receiving a message including the transaction identification information of the first block from the user terminal, the certificate further comprising the step of extracting the usage information included in the first block and providing it to the user terminal before the service is executed. How to verify misuse.
상기 인증하는 단계 이전에,
난스를 생성하여 상기 사용자 단말로 전송하는 단계를 더 포함하고,
상기 인증하는 단계는,
상기 인증 정보에서 포함된 전자 서명을 상기 사용자의 공개키로 복호화한 후, 상기 복호화한 난스가 상기 생성한 난스와 일치하는지 여부를 인증하는 것을 특징으로 하는 인증서 부당 사용 검증 방법.The method of claim 1,
Before the step of authenticating,
Further comprising the step of generating a nonce and transmitting it to the user terminal,
The step of authenticating,
After decrypting the electronic signature included in the authentication information with the user's public key, it is verified whether the decrypted nonce matches the generated nonce.
상기 사용처 정보와 상기 인증 결과를 포함하는 제3블록을 생성하여 상기 블록체인에 저장하는 단계;
상기 인증에 사용된 인증서의 사용처를 조회할 수 있는 접근 데이터로서, 상기 제3블록의 트랜잭션 식별정보를 상기 사용자 단말로 전송하는 단계; 및
상기 제3블록의 트랜잭션 식별정보를 포함하는 조회 요청 메시지가 상기 사용자 단말로부터 수신되는 경우, 상기 제3블록에 포함된 사용처 정보를 상기 사용자 단말로 제공하는 단계를 더 포함하는 인증서 부당 사용 검증 방법.The method of claim 1,
Generating a third block including the usage information and the authentication result and storing it in the block chain;
Transmitting the transaction identification information of the third block to the user terminal as access data for inquiring the usage destination of the certificate used for the authentication; And
When the inquiry request message including the transaction identification information of the third block is received from the user terminal, the method of verifying unauthorized use of a certificate further comprising the step of providing the usage information included in the third block to the user terminal.
상기 인증하는 단계 이전에,
서비스 서버로부터 상기 스마트 컨트랙트의 등록을 요청받는 단계; 및
상기 스마트 컨트랙트의 사용처 정보와 상기 스마트 컨트랙트가 포함된 상기 제1블록을 생성하여 상기 블록체인에 저장하는 단계를 더 포함하는 인증서 부당 사용 검증 방법.The method of claim 1,
Before the step of authenticating,
Receiving a request for registration of the smart contract from a service server; And
Generating the first block including the usage information of the smart contract and the smart contract, and storing the first block in the blockchain.
상기 서비스를 실행하는 단계는,
사용자 단말로부터 발송한 입력 정보를 확인하고, 상기 입력 정보를 상기 실행 함수에 입력하여, 상기 서비스를 실행하는 것을 특징으로 하는 인증서 부당 사용 검증 방법.The method of claim 1,
The step of executing the service,
Checking the input information sent from a user terminal, inputting the input information into the execution function, and executing the service.
사용자 단말로부터 발송된 인증 정보를 분석하여 사용자를 인증하여 인증에 성공하면, 스마트 컨트랙트가 포함된 제1블록에서 실행 함수를 확인하여 이 실행 함수를 구동하여 서비스를 실행하는 인증 모듈;
상기 스마트 컨트랙트와 관련되는 사용처 정보를 확인하고, 상기 사용처 정보와 상기 서비스 실행 결과를 포함하는 제2블록을 생성하여 블록체인에 저장하는 블록 관리 모듈; 및
상기 서비스에서 사용된 인증서의 사용처를 조회할 수 있는 접근 데이터로서, 상기 제2블록의 트랜잭션 식별정보를 상기 사용자 단말로 전송하는 정보 제공 모듈을 포함하고,
상기 정보 제공 모듈은, 상기 제2블록의 트랜잭션 식별정보를 포함하는 조회 요청 메시지가 상기 사용자 단말로부터 수신되는 경우, 상기 제2블록에 포함된 사용처 정보를 상기 사용자 단말로 제공하는 것을 특징으로 하는 블록체인 시스템.In a blockchain system to verify the illegal use of certificates,
An authentication module that analyzes the authentication information sent from the user terminal to authenticate the user and, if the authentication is successful, checks the execution function in the first block containing the smart contract and executes the execution function to execute the service;
A block management module for checking usage information related to the smart contract, generating a second block including the usage destination information and a result of executing the service, and storing it in a block chain; And
As access data capable of inquiring a usage destination of a certificate used in the service, comprising an information providing module for transmitting transaction identification information of the second block to the user terminal,
The information providing module, when an inquiry request message including transaction identification information of the second block is received from the user terminal, the block characterized in that it provides the usage information included in the second block to the user terminal Chain system.
상기 정보 제공 모듈은,
상기 서비스가 실행되기 이전에, 상기 서비스에 이용될 예정인 인증서의 사용처를 조회할 수 있는 접근 데이터로서, 상기 제1블록의 트랜잭션 식별정보를 상기 사용자 단말로 전송하고, 상기 제1블록의 트랜잭션 식별정보를 포함하는 메시지가 상기 사용자 단말로부터 수신되면 상기 서비스가 실행되기 전에 상기 제1블록에 포함된 사용처 정보를 추출하여 상기 사용자 단말로 제공하는 것을 특징으로 하는 블록체인 시스템.The method of claim 8,
The information providing module,
Before the service is executed, as access data for inquiring the destination of the certificate to be used for the service, the transaction identification information of the first block is transmitted to the user terminal, and the transaction identification information of the first block When a message including a message is received from the user terminal, before the service is executed, the usage information included in the first block is extracted and provided to the user terminal.
상기 인증 모듈은, 난스를 생성하여 상기 사용자 단말로 전송하고, 상기 인증 정보에서 포함된 전자 서명을 상기 사용자의 공개키로 복호화한 후, 상기 복호화한 난스가 상기 생성한 난스와 일치하는지 여부를 인증하는 것을 특징으로 하는 블록체인 시스템.The method of claim 8,
The authentication module generates and transmits the nonce to the user terminal, decrypts the electronic signature included in the authentication information with the user's public key, and then authenticates whether the decrypted nonce matches the generated nonce. Blockchain system, characterized in that.
상기 블록 관리 모듈은,
상기 사용처 정보와 상기 인증 결과를 포함하는 제3블록을 생성하여 상기 블록체인에 저장하고,
상기 정보 제공 모듈은,
상기 인증에 사용된 인증서의 사용처를 조회할 수 있는 접근 데이터로서, 상기 제3블록의 트랜잭션 식별정보를 상기 사용자 단말로 전송하고, 상기 제3블록의 트랜잭션 식별정보를 포함하는 조회 요청 메시지가 상기 사용자 단말로부터 수신되는 경우, 상기 제3블록에 포함된 사용처 정보를 상기 사용자 단말로 제공하는 것을 특징으로 하는 블록체인 시스템.The method of claim 8,
The block management module,
A third block including the usage information and the authentication result is created and stored in the blockchain,
The information providing module,
As access data for inquiring the use of the certificate used for the authentication, the transaction identification information of the third block is transmitted to the user terminal, and an inquiry request message including the transaction identification information of the third block is sent to the user. When received from a terminal, a block chain system, characterized in that providing the usage information included in the third block to the user terminal.
서비스 서버로부터 상기 스마트 컨트랙트의 등록을 요청받아, 상기 스마트 컨트랙트의 사용처 정보와 상기 스마트 컨트랙트가 포함된 상기 제1블록을 생성하여 상기 블록체인에 저장하는 스마트 컨트랙트 등록 모듈을 더 포함하는 블록체인 시스템.The method of claim 8,
Block chain system further comprising a smart contract registration module for receiving the registration of the smart contract from a service server, generating the first block including the usage information of the smart contract and the smart contract, and storing it in the block chain.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190139318A KR20210053567A (en) | 2019-11-04 | 2019-11-04 | Method for verifying certification improper use in block environment and system therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190139318A KR20210053567A (en) | 2019-11-04 | 2019-11-04 | Method for verifying certification improper use in block environment and system therefor |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210053567A true KR20210053567A (en) | 2021-05-12 |
Family
ID=75918990
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190139318A KR20210053567A (en) | 2019-11-04 | 2019-11-04 | Method for verifying certification improper use in block environment and system therefor |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20210053567A (en) |
-
2019
- 2019-11-04 KR KR1020190139318A patent/KR20210053567A/en unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102052036B1 (en) | Method for obtaining data through searching and merging distributed data stored using blockchain | |
KR102220087B1 (en) | Method, apparatus, and system for processing two-dimensional barcodes | |
US11838425B2 (en) | Systems and methods for maintaining decentralized digital identities | |
US20230246842A1 (en) | Compact recordation protocol | |
KR101829729B1 (en) | Method for certifying a user by using mobile id through blockchain and merkle tree structure related thereto, and terminal and server using the same | |
US20220191012A1 (en) | Methods For Splitting and Recovering Key, Program Product, Storage Medium, and System | |
KR101883156B1 (en) | System and method for authentication, user terminal, authentication server and service server for executing the same | |
CN108985100B (en) | Block chain-based element security certification method, device, equipment and medium | |
JP2021536698A (en) | Method and device for managing user identification authentication data | |
KR102177848B1 (en) | Method and system for verifying an access request | |
EP3008852B1 (en) | System and method for encryption | |
KR20180079806A (en) | Method for authenticating a user without a face-to-face contact by using mobile id based on blockchain and merkle tree structure related thereto, and terminal and server using the same | |
KR101858653B1 (en) | Method for certifying a user by using mobile id through blockchain database and merkle tree structure related thereto, and terminal and server using the same | |
CN112733178B (en) | Cross-chain trust method, device, equipment and medium based on digital certificate authentication | |
CN114666168B (en) | Decentralized identity certificate verification method and device, and electronic equipment | |
US20230232222A1 (en) | User terminal, authentication terminal, registration terminal, management system and program | |
KR101767534B1 (en) | Method for providing identity verification using card base on near field communication, card, verification terminal, verification support server and identity verification server using the same | |
KR102333811B1 (en) | System and method for processing card payment based on block-chain | |
KR20200000978A (en) | Data security method and system | |
KR20210053567A (en) | Method for verifying certification improper use in block environment and system therefor | |
KR101619282B1 (en) | Cloud system for manging combined password and control method thereof | |
CN110351302B (en) | Bank account login method, equipment and storage medium |