KR102467558B1 - Data communication method and apparatus based on data encryption applying did - Google Patents
Data communication method and apparatus based on data encryption applying did Download PDFInfo
- Publication number
- KR102467558B1 KR102467558B1 KR1020200123789A KR20200123789A KR102467558B1 KR 102467558 B1 KR102467558 B1 KR 102467558B1 KR 1020200123789 A KR1020200123789 A KR 1020200123789A KR 20200123789 A KR20200123789 A KR 20200123789A KR 102467558 B1 KR102467558 B1 KR 102467558B1
- Authority
- KR
- South Korea
- Prior art keywords
- credential
- target
- server
- target server
- user terminal
- 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
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- 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/3218—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 using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- 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/3271—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 using challenge-response
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation or hiding, e.g. involving white box
Abstract
서버와 사용자 단말 간의 안전한 데이터 통신을 위해, DID에 기초한 암호화 방식이 이용될 수 있다. 사용자 단말은 서버로 증명 요청을 전송하고, 서버는 증명 요청(proof request)에 대한 증명(proof)을 생성하고, 사용자 단말은 수신된 증명이 유효한 경우 증명 내의 초기 마스터 키에 기초하여 마스터 키를 생성하고, 마스터 키에 기초하여 데이터 통신이 수행될 수 있다.For secure data communication between the server and the user terminal, an encryption method based on DID may be used. The user terminal sends a proof request to the server, the server generates a proof for the proof request, and the user terminal generates a master key based on the initial master key in the proof if the received proof is valid. and data communication may be performed based on the master key.
Description
아래의 실시예들은 데이터 통신 기술에 관한 것이고, 구체적으로 데이터를 암호화하는 기술에 관한 것이다.The following embodiments relate to data communication technology, and specifically to data encryption technology.
i) DID(Decentralized Identifiers, 탈중앙 식별자 서비스)i) Decentralized Identifiers (DID)
DID는 개인정보를 사용자의 단말기에 저장, 개인 정보 인증 시 필요한 정보만 골라서 제출하는 전자신원증명 기술이고, 일반적으로 블록체인 기술 기반으로 구축한 신원증명 기술로 알려진다. DID는 블록체인에 저장된 DID 문서(document)의 위치를 나타내는 ID 로도 기술이 가능하다.DID is an electronic identity verification technology that stores personal information in the user's terminal and selects and submits only the information necessary for personal information authentication, and is generally known as an identity verification technology built on the basis of block chain technology. DID can also be described as an ID that indicates the location of a DID document stored in the blockchain.
ii) 하이퍼레저 패브릭(Hyperledger Fabric)ii) Hyperledger Fabric
하이퍼레저 패브릭은 근래에 많이 사용되는 콘소시움 블록체인 플랫폼이고, 물리적 구성요소인 피어(Peer), 오더러(Orderer)와 논리적 구성요소인 Org, 채널(Channel), 인증 구성요소인 MSP((Membership Services Provider)로 구성될 수 있다.Hyperledger Fabric is a consortium blockchain platform that is widely used in recent years. Provider).
iii) SSL (Secure Socket Layer)iii) SSL (Secure Socket Layer)
SSL은 네트워크 데이터를 암호화하여 통신하기 위해 사용하는 프로토콜들의 집합을 나타내고, 키 쌍을 이용하는 비대칭 키 방식을 이용한다.SSL represents a set of protocols used to encrypt and communicate network data, and uses an asymmetric key method using a key pair.
일 실시예는 DID에 기초한 크리덴셜을 생성하는 방법 및 장치를 제공할 수 있다.One embodiment may provide a method and apparatus for generating a credential based on a DID.
일 실시예는 DID에 기초한 암호화 방식을 이용한 데이터 통신 방법 및 장치를 제공할 수 있다.An embodiment may provide a data communication method and apparatus using a DID-based encryption method.
일 측면에 따른, 인증서 발행 서버에 의해 수행되는, 타겟 서버의 크리덴셜을 생성하는 방법은, 타겟 서버에 대한 크리덴셜의 발행 요청을 상기 타겟 서버로부터 수신하는 단계, 상기 크리덴셜의 발행 요청에 기초하여 상기 크리덴셜의 스키마를 블록체인의 원장을 통해 조회하는 단계, 조회된 상기 크리덴셜의 스키마의 확인 요청을 상기 타겟 서버로 전송하는 단계 - 상기 타겟 서버는 상기 블록체인의 원장을 통해 상기 크리덴셜의 스키마를 조회함 -, 상기 크리덴셜의 스키마로 발행 받고자 하는 타겟 항목을 포함하는 크리덴셜 발행 요청을 상기 타겟 서버로부터 수신하는 단계, 및 상기 크리덴셜의 스키마 및 상기 타겟 항목에 기초하여 상기 타겟 서버에 대한 크리덴셜을 생성하는 단계를 포함한다.According to an aspect, a method for generating a credential of a target server, performed by a certificate issuing server, includes receiving a request for issuing a credential for a target server from the target server, based on the request for issuing the credential. Inquiring the schema of the credential through the ledger of the block chain, and transmitting a request for confirmation of the schema of the credential to the target server - the target server retrieves the credential through the ledger of the block chain. Inquiring a schema of -, receiving a credential issuance request including a target item to be issued as the credential schema from the target server, and the target server based on the schema of the credential and the target item It includes generating credentials for.
상기 크리덴셜을 생성하는 단계는, 개인 DID(private Decentralized Identifiers), 개인 DID 문서(private DID document) 및 검증 가능한 증명(verifiable proof) 등이 포함되도록 상기 크리덴셜을 생성하는 단계를 포함할 수 있다.Generating the credential may include generating the credential to include private decentralized identifiers (DIDs), a private DID document, and a verifiable proof.
상기 크리덴셜 생성 방법은, 상기 크리덴셜을 상기 타겟 서버로 전송하는 단계를 더 포함하고, 상기 크리덴셜은 상기 타겟 서버의 WBC(White Box Cryptography)에 저장될 수 있다.The credential generation method may further include transmitting the credential to the target server, and the credential may be stored in White Box Cryptography (WBC) of the target server.
상기 인증서 발행 서버 및 상기 블록체인은 웹 애플리케이션 서버를 통해 연동되고, 상기 웹 애플리케이션 서버는 하이퍼레저 패브릭(Hyperledger Fabric)과 DID에 관련된 하이퍼레저 INDY에 기초한 블록체인 기반의 신원증명 시스템일 수 있다.The certificate issuing server and the blockchain are linked through a web application server, and the web application server may be a blockchain-based identity verification system based on Hyperledger Fabric and Hyperledger INDY related to DID.
상기 크리덴셜 생성 방법은, 상기 인증서 발행 서버 및 상기 타겟 서버 간에 페어를 생성하는 단계를 더 포함하고, 상기 페어가 생성된 경우, 상기 타겟 서버에 대한 크리덴셜의 발행 요청이 상기 타겟 서버로부터 수신될 수 있다.The credential generation method may further include generating a pair between the certificate issuing server and the target server, and when the pair is generated, a credential issuance request for the target server is received from the target server. can
상기 크리덴셜은 상기 타겟 서버가 암호화 통신을 위해 이용할 마스터 키의 생성을 위한 초기 마스터 키를 포함할 수 있다.The credential may include an initial master key for generating a master key to be used by the target server for encrypted communication.
다른 일 측면에 따른, 타겟 서버의 크리덴셜을 발행하는 방법을 수행하는, 인증서 발행 서버는, 크리덴셜을 발행하는 프로그램이 기록된 메모리, 및 상기 프로그램을 수행하는 프로세서를 포함하고, 상기 프로그램은, 타겟 서버에 대한 크리덴셜의 발행 요청을 상기 타겟 서버로부터 수신하는 단계, 상기 크리덴셜의 발행 요청에 기초하여 상기 크리덴셜의 스키마를 블록체인의 원장을 통해 조회하는 단계, 조회된 상기 크리덴셜의 스키마의 확인 요청을 상기 타겟 서버로 전송하는 단계 - 상기 타겟 서버는 상기 블록체인의 원장을 통해 상기 크리덴셜의 스키마를 조회함 -, 상기 크리덴셜의 스키마로 발행 받고자 하는 타겟 항목을 포함하는 크리덴셜 발행 요청을 상기 타겟 서버로부터 수신하는 단계, 및 상기 크리덴셜의 스키마 및 상기 타겟 항목에 기초하여 상기 타겟 서버에 대한 크리덴셜을 생성하는 단계를 수행한다.According to another aspect, a certificate issuing server that performs a method of issuing a credential of a target server includes a memory in which a program for issuing a credential is recorded, and a processor that executes the program, the program comprising: Receiving a credential issuance request for a target server from the target server, based on the credential issuance request, inquiring the schema of the credential through the ledger of the block chain, the credential schema searched Transmitting a verification request of to the target server - the target server searches the schema of the credential through the ledger of the blockchain - issuing a credential including a target item to be issued as the schema of the credential Receiving a request from the target server, and generating a credential for the target server based on the schema of the credential and the target item.
또 다른 일 측면에 따른, 사용자 단말에 의해 수행되는, 타겟 서버와 데이터 통신을 수행하는 방법은, 사용자 단말 및 타겟 서버 간의 페어를 생성하는 단계, 상기 타겟 서버로부터 증명 요청(proof request)을 위한 의도(purpose)를 수신하는 단계, 상기 증명 요청을 위한 타겟 크리덴셜 스키마를 블록체인을 통해 조회하는 단계, 상기 타겟 크리덴셜 스키마 및 상기 타겟 서버가 증명하기를 원하는 타겟 항목에 기초하여 증명 요청을 생성하는 단계, 상기 증명 요청을 상기 타겟 서버로 전송하는 단계, 상기 타겟 서버로부터 상기 증명 요청에 대한 증명(proof)을 수신하는 단계 - 상기 증명은 초기 마스터 키를 포함함 -, 상기 증명의 유효성을 검증하는 단계, 상기 증명의 유효성이 검증된 경우 상기 초기 마스터 키에 기초하여 패킷을 암호화하기 위해 이용되는 마스터 키를 생성하는 단계, 및 상기 마스터 키에 기초하여 상기 타겟 서버와 데이터 통신을 수행하는 단계를 포함한다.According to another aspect, a method for performing data communication with a target server, performed by a user terminal, includes generating a pair between a user terminal and a target server, an intent for a proof request from the target server Receiving a (purpose), inquiring a target credential schema for the proof request through a blockchain, generating a proof request based on the target credential schema and a target item that the target server wants to prove Step, transmitting the proof request to the target server, receiving a proof for the proof request from the target server, the proof including an initial master key, verifying the validity of the proof generating a master key used for encrypting packets based on the initial master key when the validity of the proof is verified, and performing data communication with the target server based on the master key. do.
상기 타겟 서버에 대한 크리덴셜은 상기 타겟 서버의 WBC(White Box Cryptography)에 저장되고, 상기 크리덴셜은 상기 타겟 항목 및 상기 초기 마스터 키를 포함할 수 있다.Credentials for the target server are stored in White Box Cryptography (WBC) of the target server, and the credentials may include the target item and the initial master key.
상기 사용자 단말 및 상기 블록체인은 웹 애플리케이션 서버를 통해 연동되고, 상기 웹 애플리케이션 서버는 하이퍼레저 패브릭(Hyperledger Fabric)과 DID(Decentralized Identifiers)에 관련된 하이퍼레저 INDY에 기초한 블록체인 기반의 신원증명 시스템일 수 있다.The user terminal and the blockchain are linked through a web application server, and the web application server may be a blockchain-based identity verification system based on Hyperledger Fabric and Hyperledger INDY related to DID (Decentralized Identifiers). have.
상기 사용자 단말 및 타겟 서버 간의 페어를 생성하는 단계는, 상기 타겟 서버와의 페어를 위한 챌린지 값을 생성하는 단계, 상기 챌린지 값을 상기 타겟 서버로 전송하는 단계, 상기 타겟 서버로부터 상기 챌린지 값 및 상기 타겟 서버의 개인 키에 기초하여 생성된 리턴 값을 수신하는 단계, 상기 리턴 값을 검증하는 단계, 및 상기 리턴 값이 검증된 경우 상기 사용자 단말 및 상기 타겟 서버 간의 페어를 생성하는 단계를 포함할 수 있다.Generating a pair between the user terminal and the target server may include generating a challenge value for the pair with the target server, transmitting the challenge value to the target server, and the challenge value and the Receiving a return value generated based on the private key of the target server, verifying the return value, and generating a pair between the user terminal and the target server when the return value is verified. have.
상기 데이터 통신 방법은, DID 이용을 위한 상기 사용자 단말의 개인 키 및 공개 키를 포함하는 키 쌍을 생성하는 단계, 상기 사용자 단말의 크리덴셜 스키마를 생성하는 단계, 및 상기 블록체인의 원장에 상기 사용자 단말의 상기 공개 키 및 상기 크리덴셜 스키마를 저장하는 단계를 더 포함할 수 있다.The data communication method includes generating a key pair including a private key and a public key of the user terminal for DID use, generating a credential schema of the user terminal, and storing the user terminal in the ledger of the block chain. The method may further include storing the public key of the terminal and the credential schema.
상기 크리덴셜 스키마는 검증 가능할 수 있다.The credential schema may be verifiable.
또 다른 일 측면에 따른, 타겟 서버와 데이터 통신하는 방법을 수행하는, 사용자 단말은, 타겟 서버와 데이터 통신하는 프로그램이 기록된 메모리, 및 상기 프로그램을 수행하는 프로세서를 포함하고, 상기 프로그램은, 사용자 단말 및 타겟 서버 간의 페어를 생성하는 단계, 상기 타겟 서버로부터 증명 요청(proof request)을 위한 의도(purpose)를 수신하는 단계, 상기 증명 요청을 위한 타겟 크리덴셜 스키마를 블록체인을 통해 조회하는 단계, 상기 타겟 크리덴셜 스키마 및 상기 타겟 서버가 증명하기를 원하는 타겟 항목에 기초하여 증명 요청을 생성하는 단계, 상기 증명 요청을 상기 타겟 서버로 전송하는 단계, 상기 타겟 서버로부터 상기 증명 요청에 대한 증명(proof)을 수신하는 단계 - 상기 증명은 초기 마스터 키를 포함함 -, 상기 증명의 유효성을 검증하는 단계, 상기 증명의 유효성이 검증된 경우 상기 초기 마스터 키에 기초하여 패킷을 암호화하기 위해 이용되는 마스터 키를 생성하는 단계, 및 상기 마스터 키에 기초하여 상기 타겟 서버와 데이터 통신을 수행하는 단계를 수행한다.According to another aspect, a user terminal performing a method of data communication with a target server includes a memory in which a program for data communication with the target server is recorded, and a processor that executes the program, wherein the program includes a user Generating a pair between a terminal and a target server, receiving a purpose for a proof request from the target server, querying a target credential schema for the proof request through a blockchain, Generating a proof request based on the target credential schema and a target item that the target server wants to prove, transmitting the proof request to the target server, and proof of the proof request from the target server. ), wherein the proof includes an initial master key, verifying the validity of the proof, and if the validity of the proof is verified, a master key used to encrypt a packet based on the initial master key. Generating and performing data communication with the target server based on the master key.
또 다른 일 측면에 따른, 전자 장치에 의해 수행되는, 전자 장치의 크리덴셜을 생성하는 방법은, 전자 장치의 크리덴셜의 발행 요청을 인증서 발행 서버로 전송하는 단계, 상기 인증서 발행 서버로부터 상기 발행 요청에 대한 응답으로서 타겟 크리덴셜 스키마의 확인 요청을 수신하는 단계, 상기 타겟 크리덴셜 스키마를 블록체인의 원장을 통해 조회하는 단계, 상기 타겟 크리덴셜 스키마로 발행 받고자 하는 타겟 항목을 생성하는 단계, 상기 타겟 항목을 상기 인증서 발행 서버로 전송하는 단계, 상기 타겟 크리덴셜 스키마 및 상기 타겟 항목에 기초하여 생성된 상기 전자 장치의 크리덴셜을 상기 인증서 발행 서버로부터 수신하는 단계, 및 상기 크리덴셜을 상기 전자 장치의 WBC(White Box Cryptography)에 저장하는 단계를 포함한다.According to another aspect, a method of generating a credential of an electronic device, performed by an electronic device, includes transmitting a credential issuance request of the electronic device to a certificate issuing server, the issuing request from the certificate issuing server. Receiving a request for confirmation of the target credential schema as a response to, inquiring the target credential schema through the blockchain ledger, generating a target item to be issued with the target credential schema, the target credential schema Transmitting an item to the certificate issuing server, receiving a credential of the electronic device generated based on the target credential schema and the target item from the certificate issuing server, and transmitting the credential to the electronic device. and storing in White Box Cryptography (WBC).
또 다른 일 측면에 따른, 전자 장치의 크리덴셜을 생성하는 방법을 수행하는, 전자 장치는, 크리덴셜을 생성하는 프로그램이 기록된 메모리, 및 상기 프로그램을 수행하는 프로세서를 포함하고, 상기 프로그램은, 전자 장치의 크리덴셜의 발행 요청을 인증서 발행 서버로 전송하는 단계, 상기 인증서 발행 서버로부터 상기 발행 요청에 대한 응답으로서 타겟 크리덴셜 스키마의 확인 요청을 수신하는 단계, 상기 타겟 크리덴셜 스키마를 블록체인의 원장을 통해 조회하는 단계, 상기 타겟 크리덴셜 스키마로 발행 받고자 하는 타겟 항목을 생성하는 단계, 상기 타겟 항목을 상기 인증서 발행 서버로 전송하는 단계, 상기 타겟 크리덴셜 스키마 및 상기 타겟 항목에 기초하여 생성된 상기 전자 장치의 크리덴셜을 상기 인증서 발행 서버로부터 수신하는 단계, 및 상기 크리덴셜을 상기 전자 장치의 WBC(White Box Cryptography)에 저장하는 단계를 수행한다.According to another aspect, an electronic device performing a method for generating credentials of an electronic device includes a memory in which a program for generating credentials is recorded, and a processor executing the program, the program comprising: Transmitting a credential issuance request of an electronic device to a certificate issuing server, receiving a target credential schema confirmation request as a response to the issuing request from the certificate issuing server, and converting the target credential schema to a blockchain. Inquiring through the ledger, generating a target item to be issued with the target credential schema, transmitting the target item to the certificate issuing server, generating a target item based on the target credential schema and the target item The steps of receiving the credentials of the electronic device from the certificate issuing server and storing the credentials in White Box Cryptography (WBC) of the electronic device are performed.
DID에 기초한 크리덴셜을 생성하는 방법 및 장치가 제공될 수 있다.A method and apparatus for generating a credential based on a DID may be provided.
DID에 기초한 암호화 방식을 이용한 데이터 통신 방법 및 장치가 제공될 수 있다.A data communication method and apparatus using a DID-based encryption method may be provided.
도 1은 일 예에 따른 DID에 기초한 암호화 방식을 이용한 데이터 통신 시스템의 구성도이다.
도 2는 일 실시예에 따른 인증서 발행 서버의 구성도이다.
도 3은 일 실시예에 따른 타겟 서버의 구성도이다.
도 4는 일 실시예에 따른 사용자 단말의 구성도이다.
도 5는 일 실시예에 따른 데이터 통신을 위해 타겟 서버의 자격을 인증하는 방법의 흐름도이다.
도 6은 일 예에 따른 DID 이용을 위한 인증서 발행 서버, 타겟 서버 및 사용자 단말 각각의 키 쌍 및 크리덴셜 스키마를 생성하는 방법의 흐름도이다.
도 7은 일 예에 따른 인증서 발행 서버 및 타겟 서버 간의 제1 페어를 생성하는 방법의 흐름도이다.
도 8은 일 예에 따른 크리덴셜을 생성하는 방법의 흐름도이다.
도 9는 일 예에 따른 타겟 서버 및 사용자 단말 간의 제2 페어를 생성하는 방법의 흐름도이다.
도 10은 일 예에 따른 타겟 서버의 자격을 인증하는 방법의 흐름도이다.1 is a configuration diagram of a data communication system using a DID-based encryption method according to an example.
2 is a configuration diagram of a certificate issuing server according to an embodiment.
3 is a configuration diagram of a target server according to an embodiment.
4 is a configuration diagram of a user terminal according to an embodiment.
5 is a flowchart of a method for authenticating the qualification of a target server for data communication according to an exemplary embodiment.
6 is a flowchart of a method of generating a key pair and credential schema of each of a certificate issuing server, a target server, and a user terminal for DID use according to an example.
7 is a flowchart of a method of generating a first pair between a certificate issuing server and a target server according to an example.
8 is a flowchart of a method for generating credentials according to an example.
9 is a flowchart of a method of generating a second pair between a target server and a user terminal according to an example.
10 is a flowchart of a method of authenticating qualification of a target server according to an example.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, since various changes can be made to the embodiments, the scope of the patent application is not limited or limited by these embodiments. It should be understood that all changes, equivalents or substitutes to the embodiments are included within the scope of rights.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in the examples are used only for descriptive purposes and should not be construed as limiting. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, terms such as "include" or "have" are intended to designate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, but one or more other features It should be understood that the presence or addition of numbers, steps, operations, components, parts, or combinations thereof is not precluded.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person of ordinary skill in the art to which the embodiment belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in the present application, they should not be interpreted in an ideal or excessively formal meaning. don't
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same reference numerals are given to the same components regardless of reference numerals, and overlapping descriptions thereof will be omitted. In describing the embodiment, if it is determined that a detailed description of a related known technology may unnecessarily obscure the gist of the embodiment, the detailed description will be omitted.
또한, 실시 예의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다. In addition, in describing the components of the embodiment, terms such as first, second, A, B, (a), and (b) may be used. These terms are only used to distinguish the component from other components, and the nature, order, or order of the corresponding component is not limited by the term. When an element is described as being “connected,” “coupled to,” or “connected” to another element, that element may be directly connected or connected to the other element, but there may be another element between the elements. It should be understood that may be "connected", "coupled" or "connected".
어느 하나의 실시 예에 포함된 구성요소와, 공통적인 기능을 포함하는 구성요소는, 다른 실시 예에서 동일한 명칭을 사용하여 설명하기로 한다. 반대되는 기재가 없는 이상, 어느 하나의 실시 예에 기재한 설명은 다른 실시 예에도 적용될 수 있으며, 중복되는 범위에서 구체적인 설명은 생략하기로 한다.Components included in one embodiment and components having common functions will be described using the same names in other embodiments. Unless stated to the contrary, descriptions described in one embodiment may be applied to other embodiments, and detailed descriptions will be omitted to the extent of overlap.
블록 암호화 알고리즘을 사용하여 가변 길이의 데이터를 암호화하는 암호방식인 CBC (Chiper Block Chaining)을 이용하는 기존의 SSL 3.0는 보안 상의 취약점이 존재한다. 예를 들어, 기존의 SSL 3.0는 CBC 모드 블록 암호문에 대한 패딩 오라클 공격에 취약할 수 있다.The existing SSL 3.0, which uses CBC (Chiper Block Chaining), an encryption method that encrypts data of variable length using a block encryption algorithm, has security vulnerabilities. For example, existing SSL 3.0 can be vulnerable to padding oracle attacks on CBC mode block ciphertext.
또한, 현재 클라이언트 및 사용자는 서버에서 제공한 인증서 및 공개키를 신뢰할 수밖에 없으나, 이러한 구조를 이용하여 가짜 사이트에 기초한 개인 정보를 추출하는 범죄가 발생할 수 있다.In addition, current clients and users have no choice but to trust the certificate and public key provided by the server, but a crime of extracting personal information based on a fake site may occur using this structure.
한편, 블록체인(Blockchain)은 분산 데이터 저장기술의 한 형태이다. 지속적으로 변경되는 데이터를 모든 참여 노드에On the other hand, blockchain is a form of distributed data storage technology. Continuously changing data to all participating nodes
기록한 변경 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가능하도록 고안되었다. 즉, 관리대상 데이터를 '블록'(소규모 데이터들이 P2P 방식을 기반으로 생성된 체인 형태의 연결고리) 기반 분산 데이터 저장 환경에 저장하여 누구라도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술 기반의 원장 관리 기술이다.As a recorded change list, it is designed to prevent arbitrary manipulation by the operator of the distributed node. In other words, the data to be managed is stored in a distributed data storage environment based on 'blocks' (a link in the form of a chain created based on the P2P method of small-scale data), so that anyone cannot arbitrarily modify it and anyone can view the results of the change. It is a ledger management technology based on computing technology.
블록체인 기술이 제시된 이후 관련 기술의 발전은 박차를 가해, 현재 블록체인 기술의 구현은 산업 전반에 걸쳐 높은 수준에서 범용화가 되고 있고, 구체적으로 블록체인 기술 기반으로 신원증명 기술(DID)이 구축되고 있다.Since the blockchain technology was presented, the development of related technologies has accelerated, and the implementation of the current blockchain technology is being generalized at a high level throughout the industry. have.
아래에서 도 1 내지 도 10을 참조하여, 블록체인 기술 기반으로 구축한 신원증명 기술을 이용하여 데이터 통신을 수행하는 방법에 대해, 상세히 설명된다.Referring to FIGS. 1 to 10 below, a method of performing data communication using an identity verification technology built on the basis of blockchain technology will be described in detail.
도 1은 일 예에 따른 DID에 기초한 암호화 방식을 이용한 데이터 통신 시스템의 구성도이다.1 is a configuration diagram of a data communication system using a DID-based encryption method according to an example.
일 측면에 따른, 데이터 통신 시스템은 인증서 발행 서버(110), 타겟 서버(120), 사용자 단말(130), 웹 애플리케이션 서버(140) 및 블록체인(150)을 포함할 수 있다.According to one aspect, the data communication system may include a
인증서 발행 서버(110)는 크리덴셜(credential)을 발행하는 이동 통신사의 서버일 수 있다. 크리덴셜은 인증서일 수 있다. 이동 통신사 서버에는 가입자를 식별할 수 있는 정보들이 저장될 수 있다. 예를 들어, 저장되는 식별 정보들은 IMEI(international mobile equipment identity), IMUI(international mobile user identity), UUCID 등을 포함할 수 있고, 기재된 실시예로 한정되지 않는다. 식별 정보는 이동 통신사 서버만이 접근할 수 있다. 인증서 발행 서버(110)는 크리덴셜의 발행을 원하는 가입자 단말의 식별자를 이용하여 크리덴셜을 생성할 수 있다.The
타겟 서버(120)는 사용자 단말(130)이 접근하고자 하는 서버일 수 있다. 예를 들어, 타겟 서버(120)는 인터넷 포털사이트(internet portal site)의 서버일 수 있다. 타겟 서버(120)는 인증서 발행 서버(110)를 통해 타겟 서버(120)의 크리덴셜을 발행 받을 수 있다.The
사용자 단말(130)은 이동 통신 단말기 및 개인용 컴퓨터(PC) 등을 포함할 수 있고, 기재된 실시예로 한정되지 않는다. 사용자 단말(130)은 타겟 서버(120)의 크리덴셜에 기초하여 타겟 서버(120)를 검증하고, 타겟 서버(120)가 검증된 경우 본 발명에 따른 암호화 방식을 이용하여 타겟 서버(120)와 데이터 통신을 수행할 수 있다.The
웹 애플리케이션 서버(140)는 인증서 발행 서버(110), 타겟 서버(120), 사용자 단말(130) 및 블록체인(150)을 연동시킬 수 있다. 예를 들어, 웹 애플리케이션 서버(140)는 하이퍼레저 패브릭(Hyperledger Fabric)과 DID(Decentralized Identifiers, 탈중앙 식별자 서비스)에 특화된 하이퍼레저 INDY에 기초한 블록체인 기반의 신원증명 시스템일 수 있다.The
블록체인(150)은 퍼블릭 DID, DID 문서, 크리덴셜 정의, 스키마 정의 등을 저장하는 컨소시움 향의 하이퍼레저 패브릭 블록체인일 수 있다.The
일 측면에 따르면, DID를 통해 인증서 발행 서버(110) 및 타겟 서버(120) 간에는 제1 페어(160)의 관계가 생성될 수 있고, 타겟 서버(120) 및 사용자 단말(130) 간에는 제2 페어(170)의 관계가 생성될 수 있다. 제1 페어(160) 및 제2 페어(170)를 통해 사용자 단말(130)은 타겟 서버(120)의 자격을 검증할 수 있다. 타겟 서버(120)의 자격이 검증된 경우, 타겟 서버(120) 및 사용자 단말(130) 간의 특별한 암호화 방식이 결정될 수 있다. 결정된 암호화 방식을 통해 타겟 서버(120) 및 사용자 단말(130) 간의 데이터 통신이 수행될 수 있다.According to one aspect, a relationship of a first pair 160 may be created between the
아래에서 도 2 내지 도 10을 참조하여 타겟 서버(120) 및 사용자 단말(130) 간의 데이터 통신 방법에 대해, 상세히 설명된다.Below, a data communication method between the
도 2는 일 실시예에 따른 인증서 발행 서버의 구성도이다.2 is a configuration diagram of a certificate issuing server according to an embodiment.
인증서 발행 서버(200)는 통신부(210), 프로세서(220) 및 메모리(230)를 포함한다. 예를 들어, 인증서 발행 서버(200)는 도 1을 참조하여 전술된 인증서 발행 서버(110)일 수 있다.The
통신부(210)는 프로세서(220) 및 메모리(230)와 연결되어 데이터를 송수신한다. 통신부(210)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다. 이하에서 "A"를 송수신한다라는 표현은 "A를 나타내는 정보(information) 또는 데이터"를 송수신하는 것을 나타낼 수 있다.The
통신부(210)는 인증서 발행 서버(200) 내의 회로망(circuitry)으로 구현될 수 있다. 예를 들어, 통신부(210)는 내부 버스(internal bus) 및 외부 버스(external bus)를 포함할 수 있다. 다른 예로, 통신부(210)는 인증서 발행 서버(200)와 외부의 장치를 연결하는 요소일 수 있다. 통신부(210)는 인터페이스(interface)일 수 있다. 통신부(210)는 외부의 장치로부터 데이터를 수신하여, 프로세서(220) 및 메모리(230)에 데이터를 전송할 수 있다.The
프로세서(220)는 통신부(210)가 수신한 데이터 및 메모리(230)에 저장된 데이터를 처리한다. "프로세서"는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.The
프로세서(220)는 메모리(예를 들어, 메모리(230))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(220)에 의해 유발된 인스트럭션들을 실행한다.
메모리(230)는 통신부(210)가 수신한 데이터 및 프로세서(220)가 처리한 데이터를 저장한다. 예를 들어, 메모리(230)는 프로그램(또는 어플리케이션, 소프트웨어)을 저장할 수 있다. 저장되는 프로그램은 크리덴셜을 발행할 수 있도록 코딩되어 프로세서(220)에 의해 실행 가능한 신텍스(syntax)들의 집합일 수 있다.The
일 측면에 따르면, 메모리(230)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM(Random Access Memory), 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to one aspect, the
메모리(230)는 인증서 발행 서버(200)를 동작 시키는 명령어 세트(예를 들어, 소프트웨어)를 저장한다. 인증서 발행 서버(200)를 동작 시키는 명령어 세트는 프로세서(220)에 의해 실행된다.The
통신부(210), 프로세서(220) 및 메모리(230)에 대해, 아래에서 도 5 내지 도 8을 참조하여 상세히 설명된다.The
도 3은 일 실시예에 따른 타겟 서버의 구성도이다.3 is a configuration diagram of a target server according to an embodiment.
타겟 서버(300)는 통신부(310), 프로세서(320) 및 메모리(330)를 포함한다. 예를 들어, 타겟 서버(300)는 도 1을 참조하여 타겟 서버(120)일 수 있다. 다른 예로, 타겟 서버(300)는 서버가 아닌, 사용자 단말과 같은 전자 장치일 수 있다.The
통신부(310)는 프로세서(320) 및 메모리(330)와 연결되어 데이터를 송수신한다. 통신부(310)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다.The
통신부(310)는 타겟 서버(300) 내의 회로망으로 구현될 수 있다. 예를 들어, 통신부(310)는 내부 버스 및 외부 버스를 포함할 수 있다. 다른 예로, 통신부(310)는 타겟 서버(300)와 외부의 장치를 연결하는 요소일 수 있다. 통신부(310)는 인터페이스일 수 있다. 통신부(310)는 외부의 장치로부터 데이터를 수신하여, 프로세서(320) 및 메모리(330)에 데이터를 전송할 수 있다.The
프로세서(320)는 통신부(310)가 수신한 데이터 및 메모리(330)에 저장된 데이터를 처리한다. 프로세서(320)는 메모리(예를 들어, 메모리(330))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(320)에 의해 유발된 인스트럭션들을 실행한다.The
메모리(330)는 통신부(310)가 수신한 데이터 및 프로세서(320)가 처리한 데이터를 저장한다. 예를 들어, 메모리(330)는 프로그램(또는 어플리케이션, 소프트웨어)을 저장할 수 있다. 저장되는 프로그램은 데이터 통신을 수행할 수 있도록 코딩되어 프로세서(320)에 의해 실행 가능한 신텍스들의 집합일 수 있다.The
일 측면에 따르면, 메모리(330)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM, 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to one aspect,
메모리(330)는 타겟 서버(300)를 동작 시키는 명령어 세트(예를 들어, 소프트웨어)를 저장한다. 타겟 서버(300)를 동작 시키는 명령어 세트는 프로세서(320)에 의해 실행된다.The
통신부(310), 프로세서(320) 및 메모리(330)에 대해, 아래에서 도 5 내지 도 10을 참조하여 상세히 설명된다.The
도 4는 일 실시예에 따른 사용자 단말의 구성도이다.4 is a configuration diagram of a user terminal according to an embodiment.
사용자 단말(400)은 통신부(410), 프로세서(420) 및 메모리(430)를 포함한다. 예를 들어, 사용자 단말(400)은 도 1을 참조하여 전술된 사용자 단말(130)일 수 있다.The
통신부(410)는 프로세서(420) 및 메모리(430)와 연결되어 데이터를 송수신한다. 통신부(410)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다.The
통신부(410)는 사용자 단말(400) 내의 회로망으로 구현될 수 있다. 예를 들어, 통신부(410)는 내부 버스 및 외부 버스를 포함할 수 있다. 다른 예로, 통신부(410)는 사용자 단말(400)과 외부의 장치를 연결하는 요소일 수 있다. 통신부(410)는 인터페이스일 수 있다. 통신부(410)는 외부의 장치로부터 데이터를 수신하여, 프로세서(420) 및 메모리(430)에 데이터를 전송할 수 있다.The
프로세서(420)는 통신부(410)가 수신한 데이터 및 메모리(430)에 저장된 데이터를 처리한다.The
프로세서(420)는 메모리(예를 들어, 메모리(430))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(420)에 의해 유발된 인스트럭션들을 실행한다.
메모리(430)는 통신부(410)가 수신한 데이터 및 프로세서(420)가 처리한 데이터를 저장한다. 예를 들어, 메모리(430)는 프로그램(또는 어플리케이션, 소프트웨어)을 저장할 수 있다. 저장되는 프로그램은 데이터 통신을 수행할 수 있도록 코딩되어 프로세서(420)에 의해 실행 가능한 신텍스들의 집합일 수 있다.The
일 측면에 따르면, 메모리(430)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM, 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to one aspect,
메모리(430)는 사용자 단말(400)을 동작 시키는 명령어 세트(예를 들어, 소프트웨어)를 저장한다. 사용자 단말(400)을 동작 시키는 명령어 세트는 프로세서(420)에 의해 실행된다.The
통신부(410), 프로세서(420) 및 메모리(430)에 대해, 아래에서 도 5, 6, 9 및 10을 참조하여 상세히 설명된다.The
도 5는 일 실시예에 따른 데이터 통신을 위해 타겟 서버의 자격을 인증하는 방법의 흐름도이다.5 is a flowchart of a method for authenticating the qualification of a target server for data communication according to an exemplary embodiment.
일 측면에 따르면, 타겟 서버(200) 및 사용자 단말(300) 간에 데이터 통신이 수행되기 위해 아래의 단계들(510 내지 570)이 수행될 수 있다.According to one aspect, the following
단계(510)에서, DID 이용을 위한 인증서 발행 서버(200), 타겟 서버(300) 및 사용자 단말(400) 각각에 대한 키 쌍(개인 키/공개 키) 및 크리덴셜 스키마(credential schema)가 생성된다. 생성되는 크리덴셜 스키마는 검증 가능(verifiable) 할 수 있다. 단계(510)에 대해 아래에서 도 6을 참조하여 상세히 설명된다.In
단계(520)에서, 인증서 발행 서버(200) 및 타겟 서버(300) 간의 제1 페어가 생성된다. 제1 페어의 생성은 인증서 발행 서버(200) 및 타겟 서버(300) 간의 안전한 연결(secure connection)의 생성을 의미한다. 제1 페어를 생성하는 방법에 대해 아래에서 도 7을 참조하여 상세히 설명된다.In step 520, a first pair between the
단계(530)에서, 인증서 발행 서버(200)에 의해 타겟 서버(300)의 크리덴셜이 생성된다. 예를 들어, 개인 DID(private DID), 개인 DID 문서(private DID document) 및 검증 가능한 증명(verifiable proof) 등이 포함되도록 크리덴셜이 생성될 수 있다. 타겟 서버(300)의 크리덴셜을 생성하는 방법에 대해, 아래에서 도 8을 참조하여 상세히 설명된다.In
예를 들어, DID의 형식은 아래의 [표 1]과 같을 수 있다. 'did'는 해당 형식이 DID라는 것을 명시하는 스키마일 수 있고, 'example'은 DID 방식의 이름이고, '123456789abcderfghijk'은 DID의 고유 식별자일 수 있다.For example, the format of the DID may be as shown in [Table 1] below. 'did' may be a schema specifying that the corresponding format is DID, 'example' may be the name of a DID method, and '123456789abcderfghijk' may be a unique identifier of DID.
예를 들어, DID 문서의 형식은 아래의 [표 2]와 같을 수 있다. DID 문서는 해당 DID 문서의 식별자(id)와 관련된 공개 키 리스트(Public key list) 및 식별자의 소유권을 증명하기 위한 인증 리스트(authentication list)를 포함할 수 있다.For example, the format of the DID document may be as shown in [Table 2] below. The DID document may include a public key list related to an identifier (id) of the corresponding DID document and an authentication list for proving ownership of the identifier.
"id" : "did:example:123456789abcdefghi",
"publickey" : [{
"id" : "did:example:123456789abcdefghi#key-1"
"type" : "RsaVerificationKey2018"
"publickeyPem" : "---BEGIN PUBLIC KEY ...END PUBLIC
KEY ----\r\n"},
{
"id" : "did:example:123456789abcdefghi",
"publickey" : [{
"id" :"did:example:123456789abcdefghi#key-3"
"type" : "RsaVerificationKey2018"
"publickeyPem" : "---BEGIN PUBLIC KEY ...END PUBLIC
KEY ----\r\n"
}]
}
}],
"authentication" : [{
"did:example:123456789abcdefghi#key-1"
}],
"service" : [{...}]
}{
"id" : "did:example:123456789abcdefghi",
"publickey" : [{
"id" : "did:example:123456789abcdefghi#key-1"
"type" : "RsaVerificationKey2018"
"publickeyPem" : "---BEGIN PUBLIC KEY ...END PUBLIC
KEY ----\r\n"},
{
"id" : "did:example:123456789abcdefghi",
"publickey" : [{
"id":"did:example:123456789abcdefghi#key-3"
"type" : "RsaVerificationKey2018"
"publickeyPem" : "---BEGIN PUBLIC KEY ...END PUBLIC
KEY ----\r\n"
}]
}
}],
"authentication" : [{
"did:example:123456789abcdefghi#key-1"
}],
"service" : [{...}]
}
단계(540)에서, 타겟 서버(300)가 크리덴셜을 수신하고, 저장한다. 예를 들어, 타겟 서버(300)는 타겟 서버(300)에 대한 WBC(White Box Cryptography)에 크리덴셜을 저장할 수 있다. WBC는 암호화된 키와 WBC 알고리즘을 이용하여 크리덴셜을 분산하여 저장할 수 있다. 예를 들어, 크리덴셜의 개인 DID(private DID), 개인 DID 문서(private DID document) 및 검증가능한 증명(verifiable proof) 등이 WBC에 분산되어 저장될 수 있다.At
크리덴셜을 복호화하는 경우에도 WBC의 메모리 집합없이 복호화가 가능하기 때문에 키 탈취를 원천봉쇄 할 수 있다.Even in the case of decrypting a credential, since decryption is possible without the memory set of WBC, key theft can be prevented at the source.
단계(550)에서, 타겟 서버(300) 및 사용자 단말(400) 간의 제2 페어가 생성된다. 제2 페어의 생성은 타겟 서버(300) 및 사용자 단말(400) 간의 안전한 연결의 생성을 의미한다. 제2 페어를 생성하는 방법에 대해 아래에서 도 9를 참조하여 상세히 설명된다.In
일 측면에 따르면, 단계(550)는 사용자 단말(400)이 타겟 서버(300)에 접속하여 데이터 통신을 수행하고자 할 때 수행될 수 있다.According to one aspect, step 550 may be performed when the
단계(560)에서, 사용자 단말(400)에 의해 타겟 서버(300)의 자격이 인증 또는 검증된다. 타겟 서버(300)의 자격이 인증된 경우, 사용자 단말(400) 및 타겟 서버(300) 간의 데이터 통신을 위한 마스터 값이 생성될 수 있다.In
타겟 서버(300)의 자격을 인증하는 방법에 대해, 아래에서 도 10을 참조하여 상세히 설명된다.A method of authenticating the qualification of the
단계(570)에서, 마스터 값에 기초하여 타겟 서버(300) 및 사용자 단말(400) 간에 데이터 통신이 수행될 수 있다. 예를 들어, 데이터 패킷을 암호화하기 위해 마스터 값이 이용될 수 있다.In
타겟 서버(300) 및 사용자 단말(400) 간에 크리덴셜의 초기 마스터 키(pre_master_key)가 공유되고, 이에 기초하여 암호화된 통신을 수행함으로써 암호화를 위해 사용되는 키를 탈취하는 공격이 방지될 수 있다. 즉, 기존의 SSL 핸드쉐이크 방식에 DID 기술을 접목하여, 안전하게 타겟 서버(300) 및 사용자 단말(400) 간에 초기 마스터 키(pre_master_key)가 교환되고, 이에 기초하여 암호화된 통신을 수행함으로써 안전한 데이터 통신이 가능하다.An initial master key (pre_master_key) of a credential is shared between the
초기 마스터 키(pre_master_key)의 시드(seed) 값은 인증서 발행 서버(200)만이 접근 가능한 정보인 타겟 서버(300) 및 사용자 단말(400)의 식별 정보들일 수 있다. 이에 따라, 타겟 서버(300) 및 사용자 단말(400)의 패킷 암호화에 사용되는 마스터 키가 외부에 의해 탈취될 수 없다.A seed value of the initial master key (pre_master_key) may be identification information of the
도 6은 일 예에 따른 DID 이용을 위한 인증서 발행 서버, 타겟 서버 및 사용자 단말 각각의 키 쌍 및 크리덴셜 스키마를 생성하는 방법의 흐름도이다.6 is a flowchart of a method of generating a key pair and credential schema of each of a certificate issuing server, a target server, and a user terminal for DID use according to an example.
일 측면에 따르면, 도 5를 참조하여 전술된 단계(510)는 아래의 단계들(605 내지 645)을 포함할 수 있다.According to one aspect, step 510 described above with reference to FIG. 5 may include
단계(605)에서, 인증서 발행 서버(200)는 인증서 발행 서버(200)의 제1 개인 키/제1 공개 키를 포함하는 제1 키 쌍을 생성한다.In
단계(610)에서, 인증서 발행 서버(200)는 인증서 발행 서버(200)의 제1 크리덴셜 스키마를 생성한다. 제1 크리덴셜 스키마는 검증 가능할 수 있다.In
단계(615)에서, 인증서 발행 서버(200)는 제1 공개 키 및 제1 크리덴셜 스키마를 블록체인(600)의 원장에 저장한다. 제1 공개 키 및 제1 크리덴셜 스키마는 DID 이용을 위해 이용될 수 있다.At step 615 , the
단계(620)에서, 타겟 서버(300)는 타겟 서버(300)의 제2 개인 키/제2 공개 키를 포함하는 제2 키 쌍을 생성한다.In
단계(625)에서, 타겟 서버(300)는 타겟 서버(300)의 제2 크리덴셜 스키마를 생성한다. 제2 크리덴셜 스키마는 검증 가능할 수 있다.At
단계(630)에서, 타겟 서버(300)는 제2 공개 키 및 제2 크리덴셜 스키마를 블록체인(600)의 원장에 저장한다. 제2 공개 키 및 제2 크리덴셜 스키마는 DID 이용을 위해 이용될 수 있다.At step 630 , the
단계(635)에서, 사용자 단말(400)은 사용자 단말(400)의 제3 개인 키/제3 공개 키를 포함하는 제3 키 쌍을 생성한다.In
단계(640)에서, 사용자 단말(400)은 사용자 단말(400)의 제3 크리덴셜 스키마를 생성한다. 제3 크리덴셜 스키마는 검증 가능할 수 있다.In step 640 , the
단계(645)에서, 사용자 단말(400)은 제3 공개 키 및 제3 크리덴셜 스키마를 블록체인(600)의 원장에 저장한다. 제3 공개 키 및 제3 크리덴셜 스키마는 DID 이용을 위해 이용될 수 있다.In step 645 , the
단계들(605, 610, 615), 단계들(620, 625, 630), 및 단계들(635, 640, 645)은 각각 독립적이고 병렬적으로 수행될 수 있다.
도 7은 일 예에 따른 인증서 발행 서버 및 타겟 서버 간의 제1 페어를 생성하는 방법의 흐름도이다.7 is a flowchart of a method of generating a first pair between a certificate issuing server and a target server according to an example.
일 측면에 따르면, 도 5를 참조하여 전술된 단계(520)는 아래의 단계들(705 내지 730)을 포함할 수 있다.According to one aspect, step 520 described above with reference to FIG. 5 may include
단계(705)에서, 인증서 발행 서버(200)는 타겟 서버(300)와의 페어를 위한 제1 챌린지(challenge) 값을 생성한다.In
단계(710)에서, 인증서 발행 서버(200)는 제1 챌린지 값을 타겟 서버(300)로 전송한다.In step 710, the
단계(715)에서, 타겟 서버(300)는 타겟 서버(300)의 개인 키로 전자서명을 수행한다. 제1 챌린지 값에 개인 키로 전자서명을 수행함으로써 제1 챌린지 값에 대한 응답으로서 제1 리턴 값이 생성된다.In
단계(720)에서, 타겟 서버(300)는 제1 리턴 값을 인증서 발행 서버(200)로 전송한다.In step 720, the
단계(725)에서, 인증서 발행 서버(200)는 제1 리턴 값을 검증한다. 예를 들어, 인증서 발행 서버(200)는 타겟 서버(300)의 공개 키에 기초하여 제1 리턴 값을 검증할 수 있다.In
단계(730)에서, 제1 리턴 값이 검증된 경우 인증서 발행 서버(200) 및 타겟 서버(300) 간의 제1 페어가 생성된다.In
제1 페어가 생성된 경우, 도 5를 참조하여 전술된 단계(530)가 수행될 수 있다. 단계(530)에 대해, 아래에서 도 8을 참조하여 더욱 상세히 설명된다.When the first pair is generated,
도 8은 일 예에 따른 크리덴셜을 생성하는 방법의 흐름도이다.8 is a flowchart of a method for generating credentials according to an example.
일 측면에 따르면, 도 5를 참조하여 전술된 단계(530)는 아래의 단계들(805 내지 845)을 포함할 수 있다.According to one aspect, step 530 described above with reference to FIG. 5 may include steps 805 to 845 below.
단계(805)에서, 타겟 서버(300)는 타겟 서버(300)에 대한 크리덴셜의 발행 요청을 인증서 발행 서버(200)로 전송한다.In step 805 , the
단계(810)에서, 인증서 발행 서버(200)는 크리덴셜의 발행 요청에 기초하여 크리덴셜의 스키마를 블록체인(600)의 원장을 통해 조회한다.In step 810, the
단계(815)에서, 블록체인(600)은 인증서 발행 서버(200)로 조회 완료된 크리덴셜 스키마를 반환한다. 반환된 크리덴셜 스키마는 타겟 스키마로 명명된다.In step 815, the
단계(820)에서, 인증서 발행 서버(200)는 발행 요청에 대한 응답으로서 타겟 스키마의 확인 요청을 타겟 서버(300)로 전송한다. 타겟 스키마의 확인 요청은 크리덴셜 오퍼(offer)일 수 있다.In step 820, the
단계(825)에서, 타겟 서버(300)는 타겟 스키마를 블록체인(600)의 원장을 통해 조회한다.In step 825, the
단계(830)에서, 블록체인(600)은 타겟 서버(300)로 타겟 스키마에 대한 조회 결과를 전송한다.In step 830, the
단계(835)에서, 타겟 서버(300)는 타겟 스키마로 발행 받고자 하는 타겟 항목을 생성한다. 예를 들어 타겟 항목은 인증서 발행 서버(200)에 저장된 타겟 서버(300)의 식별자를 포함할 수 있다.In step 835, the
단계(840)에서, 타겟 서버(300)는 생성된 타겟 항목을 포함하는 크리덴셜 발행 요청을 인증서 발행 서버(200)로 전송한다.In step 840, the
단계(845)에서, 인증서 발행 서버(200)는 타겟 스키마 및 타겟 항목에 기초하여 타겟 서버(300)에 대한 크리덴셜을 생성(또는, 발행)한다. 크리덴셜은 증명(proof)을 위한 서명 값 등을 포함할 수 있다. 예를 들어, 타겟 스키마에 타겟 항목에 대한 값을 넣음으로써 증명을 위한 서명 값 등이 생성될 수 있다.In
일 측면에 따르면, 크리덴셜은 타겟 서버(300)의 식별자, 인증서 발행 서버(200)의 식별자, 인증서 발행 서버(200)의 고유 식별 값, 크리덴셜의 발행일, 크리덴셜의 만료일, 및 마스터 키(master_key)의 생성을 위한 시드 값으로서의 초기 마스터 키(pre_master_key)를 포함할 수 있다.According to one aspect, the credential is an identifier of the
단계(850)에서, 인증서 발행 서버(200)는 생성된 크리덴셜을 타겟 서버(300)로 전송한다.In step 850, the
단계(855)에서, 타겟 서버(300)는 크리덴셜을 타겟 서버(300)의 WBC에 저장한다.At
도 9는 일 예에 따른 타겟 서버 및 사용자 단말 간의 제2 페어를 생성하는 방법의 흐름도이다.9 is a flowchart of a method of generating a second pair between a target server and a user terminal according to an example.
일 측면에 따르면, 도 5를 참조하여 전술된 단계(550)는 아래의 단계들(905 내지 930)을 포함할 수 있다.According to one aspect, step 550 described above with reference to FIG. 5 may include
단계(905)에서, 사용자 단말(400)은 타겟 서버(300)와의 페어를 위한 제2 챌린지 값을 생성한다.In
단계(910)에서, 사용자 단말(400)은 제2 챌린지 값을 타겟 서버(300)로 전송한다.In step 910, the
단계(915)에서, 타겟 서버(300)는 타겟 서버(300)의 개인 키로 전자서명을 수행한다. 제2 챌린지 값에 개인 키로 전자서명을 수행함으로써 제2 챌린지 값에 대한 응답으로서 제2 리턴 값이 생성된다.In
단계(920)에서, 타겟 서버(300)는 제2 리턴 값을 사용자 단말(400)로 전송한다.In step 920, the
단계(925)에서, 사용자 단말(400)은 제2 리턴 값을 검증한다. 예를 들어, 사용자 단말(400)은 타겟 서버(300)의 공개 키에 기초하여 제2 리턴 값을 검증할 수 있다.In
단계(930)에서, 제2 리턴 값이 검증된 경우 사용자 단말(400) 및 타겟 서버(300) 간의 제2 페어가 생성된다.In
제2 페어가 생성된 경우, 도 5를 참조하여 전술된 단계(560)가 수행될 수 있다. 단계(560)에 대해, 아래에서 도 10을 참조하여 더욱 상세히 설명된다.When the second pair is generated,
도 10은 일 예에 따른 타겟 서버의 자격을 인증하는 방법의 흐름도이다.10 is a flowchart of a method of authenticating qualification of a target server according to an example.
일 측면에 따르면, 도 5를 참조하여 전술된 단계(560)는 아래의 단계들(1005 내지 1060)을 포함할 수 있다.According to one aspect, step 560 described above with reference to FIG. 5 may include
단계(1005)에서, 타겟 서버(300)는 증명 요청(proof request)을 위한 의도(purpose)를 사용자 단말(400)로 전송한다.In
단계(1010)에서, 사용자 단말(400)은 증명 요청을 위한 크리덴셜 스키마를 블록체인(600)을 통해 조회한다.In step 1010, the
단계(1015)에서, 블록체인(600)은 조회 결과를 사용자 단말(400)로 전송한다. 조회 결과는 타겟 크리덴셜 스키마를 나타낼 수 있다.In step 1015, the
단계(1020)에서, 사용자 단말(400)은 타겟 크리덴셜 스키마 및 제2 타겟 항목에 기초하여 증명 요청을 생성한다. 제2 타겟 항목은 타겟 서버(300)가 인증 또는 증명하기를 원하는 정보일 수 있다.In step 1020, the
단계(1025)에서, 사용자 단말(400)은 증명 요청을 타겟 서버(300)로 전송한다.In step 1025, the
단계(1030)에서, 타겟 서버(300)는 WBC를 통해 제2 타겟 항목을 조회한다. WBC로부터 수신하는 정보는 제2 타겟 항목 뿐만 아니라, WBC에 저장된 크리덴셜에 포함된 초기 마스터 키(pre_master_key)를 더 포함할 수 있다.In
단계(1035)에서, 타겟 서버(300)는 WBC를 통해 조회된 제2 타겟 항목들 및 초기 마스터 키(pre_master_key)를 포함하도록 증명(proof)을 생성한다. 예를 들어, 타겟 서버(300)는 타겟 서버(300)의 개인 키를 이용하여 전자서명을 수행함으로써 증명을 생성할 수 있다.In
단계(1040)에서, 타겟 서버(300)는 증명을 사용자 단말(400)로 전송한다.In step 1040, the
단계(1045)에서, 사용자 단말(400)은 수신한 증명의 유효성을 검증한다. 예를 들어, 증명의 서명 값 및 제2 타겟 항목들에 대한 유효성이 검증될 수 있다.In
단계(1050)에서, 사용자 단말(400)은 증명의 유효성에 대한 응답을 타겟 서버(300)로 전송한다. 증명이 유효하게 검증된 경우, 이후의 단계에서 사용자 단말(400) 및 타겟 서버(300) 간의 데이터 통신이 수행될 수 있다.In step 1050, the
단계(1055)에서, 타겟 서버(300)는 초기 마스터 키(pre_master_key)에 기초하여 마스터 키 또는 마스터 값을 생성한다. 타겟 서버(300)는 마스터 키를 이용하여 사용자 단말(400)로 전송하고자 하는 패킷을 암호화할 수 있고, 사용자 단말(400)로부터 수신한 암호화된 패킷을 복호화할 수 있다.In
단계(1060)에서, 사용자 단말(400)는 초기 마스터 키(pre_master_key)에 기초하여 마스터 키 또는 마스터 값을 생성한다. 사용자 단말(400)은 마스터 키를 이용하여 타겟 서버(300)로 전송하고자 하는 패킷을 암호화할 수 있고, 타겟 서버(300)로부터 수신한 암호화된 패킷을 복호화할 수 있다.In
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program commands recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. The device can be commanded. Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer readable media.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited drawings, those skilled in the art can apply various technical modifications and variations based on the above. For example, the described techniques may be performed in an order different from the method described, and/or components of the described system, structure, device, circuit, etc. may be combined or combined in a different form than the method described, or other components may be used. Or even if it is replaced or substituted by equivalents, appropriate results can be achieved.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims are within the scope of the following claims.
200: 인증서 발행 서버
300: 타겟 서버
400: 사용자 단말200: certificate issuance server
300: target server
400: user terminal
Claims (18)
타겟 서버에 대한 크리덴셜의 발행 요청을 상기 타겟 서버로부터 수신하는 단계;
상기 크리덴셜의 발행 요청에 기초하여 상기 크리덴셜의 스키마를 블록체인의 원장을 통해 조회하는 단계;
조회된 상기 크리덴셜의 스키마의 확인 요청을 상기 타겟 서버로 전송하는 단계 - 상기 타겟 서버는 상기 블록체인의 원장을 통해 상기 크리덴셜의 스키마를 조회함 -;
상기 크리덴셜의 스키마로 발행 받고자 하는 타겟 항목을 포함하는 크리덴셜 발행 요청을 상기 타겟 서버로부터 수신하는 단계;
상기 크리덴셜의 스키마 및 상기 타겟 항목에 기초하여 상기 타겟 서버에 대한 크리덴셜을 생성하는 단계; 및
상기 크리덴셜을 상기 타겟 서버로 전송하는 단계
를 포함하고,
상기 크리덴셜은 상기 타겟 서버의 WBC(White Box Cryptography)에 저장되고,
상기 크리덴셜은 초기 마스터 키를 포함하고, 상기 크리덴셜에 기초하여 상기 타겟 서버의 자격이 사용자 단말에 의해 인증된 경우 상기 타겟 서버 및 상기 사용자 단말 간의 암호화 통신을 위해 이용될 마스터 키가 상기 초기 마스터 키에 기초하여 상기 타겟 서버 및 상기 사용자 단말 각각에서 생성되는,
크리덴셜 생성 방법.
The method for generating the credential of the target server, performed by the certificate issuing server,
Receiving a credential issuance request for a target server from the target server;
Inquiring a schema of the credential through a ledger of the blockchain based on the issuance request of the credential;
Transmitting a verification request of the searched credential schema to the target server, wherein the target server searches the credential schema through the ledger of the blockchain;
receiving, from the target server, a credential issuance request including a target item to be issued as the credential schema;
generating a credential for the target server based on the schema of the credential and the target item; and
sending the credentials to the target server;
including,
The credentials are stored in White Box Cryptography (WBC) of the target server,
The credential includes an initial master key, and when the qualification of the target server is authenticated by the user terminal based on the credential, a master key to be used for encrypted communication between the target server and the user terminal is the initial master key. Generated in each of the target server and the user terminal based on the key,
How to create a credential.
상기 크리덴셜을 생성하는 단계는,
개인 DID(private Decentralized Identifiers), 개인 DID 문서(private DID document) 및 검증 가능한 증명(verifiable proof) 등이 포함되도록 상기 크리덴셜을 생성하는 단계
를 포함하는,
크리덴셜 생성 방법.
According to claim 1,
The step of generating the credential is,
Generating the credentials to include private decentralized identifiers (DIDs), private DID documents, and verifiable proofs.
including,
How to create a credential.
상기 인증서 발행 서버 및 상기 블록체인은 웹 애플리케이션 서버를 통해 연동되고,
상기 웹 애플리케이션 서버는 하이퍼레저 패브릭(Hyperledger Fabric)과 DID에 관련된 하이퍼레저 INDY에 기초한 블록체인 기반의 신원증명 시스템인,
크리덴셜 생성 방법.
According to claim 1,
The certificate issuing server and the blockchain are linked through a web application server,
The web application server is a blockchain-based identity verification system based on Hyperledger Fabric and Hyperledger INDY related to DID,
How to create a credential.
상기 인증서 발행 서버 및 상기 타겟 서버 간에 페어를 생성하는 단계
를 더 포함하고,
상기 페어가 생성된 경우, 상기 타겟 서버에 대한 크리덴셜의 발행 요청이 상기 타겟 서버로부터 수신되는,
크리덴셜 생성 방법.
According to claim 1,
generating a pair between the certificate issuing server and the target server;
Including more,
When the pair is created, a credential issuance request for the target server is received from the target server.
How to create a credential.
Claims 1, 2, 4, and 5 of any one of the method of the recording program for performing a computer-readable recording medium recorded.
크리덴셜을 발행하는 프로그램이 기록된 메모리; 및
상기 프로그램을 수행하는 프로세서
를 포함하고,
상기 프로그램은,
타겟 서버에 대한 크리덴셜의 발행 요청을 상기 타겟 서버로부터 수신하는 단계;
상기 크리덴셜의 발행 요청에 기초하여 상기 크리덴셜의 스키마를 블록체인의 원장을 통해 조회하는 단계;
조회된 상기 크리덴셜의 스키마의 확인 요청을 상기 타겟 서버로 전송하는 단계 - 상기 타겟 서버는 상기 블록체인의 원장을 통해 상기 크리덴셜의 스키마를 조회함 -;
상기 크리덴셜의 스키마로 발행 받고자 하는 타겟 항목을 포함하는 크리덴셜 발행 요청을 상기 타겟 서버로부터 수신하는 단계;
상기 크리덴셜의 스키마 및 상기 타겟 항목에 기초하여 상기 타겟 서버에 대한 크리덴셜을 생성하는 단계; 및
상기 크리덴셜을 상기 타겟 서버로 전송하는 단계
를 수행하고,
상기 크리덴셜은 상기 타겟 서버의 WBC(White Box Cryptography)에 저장되고,
상기 크리덴셜은 초기 마스터 키를 포함하고, 상기 크리덴셜에 기초하여 상기 타겟 서버의 자격이 사용자 단말에 의해 인증된 경우 상기 타겟 서버 및 사용자 단말 간의 암호화 통신을 위해 이용될 마스터 키가 상기 초기 마스터 키에 기초하여 상기 타겟 서버 및 상기 사용자 단말 각각에서 생성되는,
인증서 발행 서버.
The certificate issuing server, which performs the method of issuing the credential of the target server,
a memory in which a program for issuing credentials is recorded; and
Processor that runs the above program
including,
said program,
Receiving a credential issuance request for a target server from the target server;
Inquiring a schema of the credential through a ledger of the blockchain based on the issuance request of the credential;
Transmitting a verification request of the searched credential schema to the target server, wherein the target server searches the credential schema through the ledger of the blockchain;
receiving, from the target server, a credential issuance request including a target item to be issued as the credential schema;
generating a credential for the target server based on the schema of the credential and the target item; and
sending the credentials to the target server;
and
The credentials are stored in White Box Cryptography (WBC) of the target server,
The credential includes an initial master key, and when the qualification of the target server is authenticated by the user terminal based on the credential, a master key to be used for encrypted communication between the target server and the user terminal is the initial master key. Based on, generated in each of the target server and the user terminal,
Certificate issuance server.
사용자 단말 및 타겟 서버 간의 페어를 생성하는 단계;
상기 타겟 서버로부터 증명 요청(proof request)을 위한 의도(purpose)를 수신하는 단계;
상기 증명 요청을 위한 타겟 크리덴셜 스키마를 블록체인을 통해 조회하는 단계;
상기 타겟 크리덴셜 스키마 및 상기 타겟 서버가 증명하기를 원하는 타겟 항목에 기초하여 증명 요청을 생성하는 단계;
상기 증명 요청을 상기 타겟 서버로 전송하는 단계;
상기 타겟 서버로부터 상기 증명 요청에 대한 증명(proof)을 수신하는 단계 - 상기 증명은 초기 마스터 키를 포함함 -;
상기 증명의 유효성을 검증하는 단계;
상기 증명의 유효성이 검증된 경우 상기 초기 마스터 키에 기초하여 패킷을 암호화하기 위해 이용되는 마스터 키를 생성하는 단계; 및
상기 마스터 키에 기초하여 상기 타겟 서버와 암호화된 데이터 통신을 수행하는 단계
를 포함하고,
상기 타겟 서버는 상기 타겟 서버에 대한 크리덴셜을 발행하는 인증서 발행 서버로부터 상기 타겟 항목 및 상기 초기 마스터 키를 포함하는 상기 크리덴셜을 수신하고,
상기 타겟 서버에 대한 상기 크리덴셜은 상기 타겟 서버의 WBC(White Box Cryptography)에 저장되는,
데이터 통신 방법.
A method of performing data communication with a target server, performed by a user terminal,
generating a pair between a user terminal and a target server;
Receiving a purpose for a proof request from the target server;
Inquiring a target credential schema for the proof request through a blockchain;
generating a proof request based on the target credential schema and a target item that the target server wants to prove;
transmitting the authentication request to the target server;
receiving a proof of the proof request from the target server, the proof including an initial master key;
verifying the validity of the proof;
generating a master key used to encrypt packets based on the initial master key if the validity of the proof is verified; and
performing encrypted data communication with the target server based on the master key;
including,
The target server receives the credential including the target item and the initial master key from a certificate issuing server that issues credentials for the target server,
The credentials for the target server are stored in White Box Cryptography (WBC) of the target server.
data communication method.
상기 사용자 단말 및 상기 블록체인은 웹 애플리케이션 서버를 통해 연동되고,
상기 웹 애플리케이션 서버는 하이퍼레저 패브릭(Hyperledger Fabric)과 DID(Decentralized Identifiers)에 관련된 하이퍼레저 INDY에 기초한 블록체인 기반의 신원증명 시스템인,
데이터 통신 방법.
According to claim 9,
The user terminal and the blockchain are linked through a web application server,
The web application server is a blockchain-based identity verification system based on Hyperledger Fabric and Hyperledger INDY related to DID (Decentralized Identifiers),
data communication method.
상기 사용자 단말 및 타겟 서버 간의 페어를 생성하는 단계는,
상기 타겟 서버와의 페어를 위한 챌린지 값을 생성하는 단계;
상기 챌린지 값을 상기 타겟 서버로 전송하는 단계;
상기 타겟 서버로부터 상기 챌린지 값 및 상기 타겟 서버의 개인 키에 기초하여 생성된 리턴 값을 수신하는 단계;
상기 리턴 값을 검증하는 단계; 및
상기 리턴 값이 검증된 경우 상기 사용자 단말 및 상기 타겟 서버 간의 페어를 생성하는 단계
를 포함하는,
데이터 통신 방법.
According to claim 9,
Generating a pair between the user terminal and the target server,
generating a challenge value for a pair with the target server;
Transmitting the challenge value to the target server;
receiving a return value generated based on the challenge value and the private key of the target server from the target server;
verifying the return value; and
generating a pair between the user terminal and the target server when the return value is verified;
including,
data communication method.
DID 이용을 위한 상기 사용자 단말의 개인 키 및 공개 키를 포함하는 키 쌍을 생성하는 단계;
상기 사용자 단말의 크리덴셜 스키마를 생성하는 단계; 및
상기 블록체인의 원장에 상기 사용자 단말의 상기 공개 키 및 상기 크리덴셜 스키마를 저장하는 단계
를 더 포함하는,
데이터 통신 방법.
According to claim 9,
generating a key pair including a private key and a public key of the user terminal for DID use;
generating a credential schema of the user terminal; and
Storing the public key and the credential schema of the user terminal in the ledger of the blockchain
Including more,
data communication method.
상기 크리덴셜 스키마는 검증 가능한,
데이터 통신 방법.
According to claim 13,
The credential schema is verifiable,
data communication method.
Claims 9, 11, 12, 13, and 14, a computer readable recording medium containing a program for performing the method of any one of claims.
타겟 서버와 데이터 통신하는 프로그램이 기록된 메모리; 및
상기 프로그램을 수행하는 프로세서
를 포함하고,
상기 프로그램은,
사용자 단말 및 타겟 서버 간의 페어를 생성하는 단계;
상기 타겟 서버로부터 증명 요청(proof request)을 위한 의도(purpose)를 수신하는 단계;
상기 증명 요청을 위한 타겟 크리덴셜 스키마를 블록체인을 통해 조회하는 단계;
상기 타겟 크리덴셜 스키마 및 상기 타겟 서버가 증명하기를 원하는 타겟 항목에 기초하여 증명 요청을 생성하는 단계;
상기 증명 요청을 상기 타겟 서버로 전송하는 단계;
상기 타겟 서버로부터 상기 증명 요청에 대한 증명(proof)을 수신하는 단계 - 상기 증명은 초기 마스터 키를 포함함 -;
상기 증명의 유효성을 검증하는 단계;
상기 증명의 유효성이 검증된 경우 상기 초기 마스터 키에 기초하여 패킷을 암호화하기 위해 이용되는 마스터 키를 생성하는 단계; 및
상기 마스터 키에 기초하여 상기 타겟 서버와 암호화된 데이터 통신을 수행하는 단계
를 수행하고,
상기 타겟 서버는 상기 타겟 서버에 대한 크리덴셜을 발행하는 인증서 발행 서버로부터 상기 타겟 항목 및 상기 초기 마스터 키를 포함하는 상기 크리덴셜을 수신하고,
상기 타겟 서버에 대한 상기 크리덴셜은 상기 타겟 서버의 WBC(White Box Cryptography)에 저장되는,
사용자 단말.
The user terminal, which performs the method of data communication with the target server,
a memory in which a program for data communication with the target server is recorded; and
Processor that executes the above program
including,
said program,
generating a pair between a user terminal and a target server;
Receiving a purpose for a proof request from the target server;
Inquiring a target credential schema for the proof request through a blockchain;
generating a proof request based on the target credential schema and a target item that the target server wants to prove;
transmitting the authentication request to the target server;
receiving a proof of the proof request from the target server, the proof including an initial master key;
verifying the validity of the proof;
generating a master key used to encrypt packets based on the initial master key if the validity of the proof is verified; and
performing encrypted data communication with the target server based on the master key;
and
The target server receives the credential including the target item and the initial master key from a certificate issuing server that issues credentials for the target server,
The credentials for the target server are stored in White Box Cryptography (WBC) of the target server.
user terminal.
전자 장치의 크리덴셜의 발행 요청을 인증서 발행 서버로 전송하는 단계;
상기 인증서 발행 서버로부터 상기 발행 요청에 대한 응답으로서 타겟 크리덴셜 스키마의 확인 요청을 수신하는 단계;
상기 타겟 크리덴셜 스키마를 블록체인의 원장을 통해 조회하는 단계;
상기 타겟 크리덴셜 스키마로 발행 받고자 하는 타겟 항목을 생성하는 단계;
상기 타겟 항목을 상기 인증서 발행 서버로 전송하는 단계;
상기 타겟 크리덴셜 스키마 및 상기 타겟 항목에 기초하여 생성된 상기 전자 장치의 크리덴셜을 상기 인증서 발행 서버로부터 수신하는 단계; 및
상기 크리덴셜을 상기 전자 장치의 WBC(White Box Cryptography)에 저장하는 단계
를 포함하고,
상기 크리덴셜은 초기 마스터 키를 포함하고, 상기 크리덴셜에 기초하여 상기 전자 장치의 자격이 사용자 단말에 의해 인증된 경우 상기 전자 장치 및 상기 사용자 단말 간의 암호화 통신을 위해 이용될 마스터 키가 상기 초기 마스터 키에 기초하여 상기 전자 장치 및 상기 사용자 단말 각각에서 생성되는,
크리덴셜 생성 방법.
The method of generating a credential of the electronic device, performed by the electronic device,
Transmitting a credential issuance request of an electronic device to a certificate issuing server;
receiving a confirmation request of a target credential schema as a response to the issuance request from the certificate issuing server;
Inquiring the target credential schema through a blockchain ledger;
generating a target item to be issued with the target credential schema;
transmitting the target item to the certificate issuing server;
receiving a credential of the electronic device generated based on the target credential schema and the target item from the certificate issuing server; and
Storing the credentials in White Box Cryptography (WBC) of the electronic device
including,
The credential includes an initial master key, and a master key to be used for encrypted communication between the electronic device and the user terminal when the qualification of the electronic device is authenticated by the user terminal based on the credential is the initial master key. Generated in each of the electronic device and the user terminal based on the key,
How to create a credential.
크리덴셜을 생성하는 프로그램이 기록된 메모리; 및
상기 프로그램을 수행하는 프로세서
를 포함하고,
상기 프로그램은,
전자 장치의 크리덴셜의 발행 요청을 인증서 발행 서버로 전송하는 단계;
상기 인증서 발행 서버로부터 상기 발행 요청에 대한 응답으로서 타겟 크리덴셜 스키마의 확인 요청을 수신하는 단계;
상기 타겟 크리덴셜 스키마를 블록체인의 원장을 통해 조회하는 단계;
상기 타겟 크리덴셜 스키마로 발행 받고자 하는 타겟 항목을 생성하는 단계;
상기 타겟 항목을 상기 인증서 발행 서버로 전송하는 단계;
상기 타겟 크리덴셜 스키마 및 상기 타겟 항목에 기초하여 생성된 상기 전자 장치의 크리덴셜을 상기 인증서 발행 서버로부터 수신하는 단계; 및
상기 크리덴셜을 상기 전자 장치의 WBC(White Box Cryptography)에 저장하는 단계
를 수행하고,
상기 크리덴셜은 초기 마스터 키를 포함하고, 상기 크리덴셜에 기초하여 상기 전자 장치의 자격이 사용자 단말에 의해 인증된 경우 상기 전자 장치 및 상기 사용자 단말 간의 암호화 통신을 위해 이용될 마스터 키가 상기 초기 마스터 키에 기초하여 상기 전자 장치 및 상기 사용자 단말 각각에서 생성되는,
전자 장치.The electronic device, which performs the method of generating a credential of the electronic device,
a memory in which a program for generating credentials is recorded; and
Processor that runs the above program
including,
said program,
Transmitting a credential issuance request of an electronic device to a certificate issuing server;
receiving a confirmation request of a target credential schema as a response to the issuance request from the certificate issuing server;
Inquiring the target credential schema through a blockchain ledger;
generating a target item to be issued with the target credential schema;
transmitting the target item to the certificate issuing server;
receiving a credential of the electronic device generated based on the target credential schema and the target item from the certificate issuing server; and
Storing the credentials in White Box Cryptography (WBC) of the electronic device
and
The credential includes an initial master key, and a master key to be used for encrypted communication between the electronic device and the user terminal when the qualification of the electronic device is authenticated by the user terminal based on the credential is the initial master key. Generated in each of the electronic device and the user terminal based on the key,
electronic device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200123789A KR102467558B1 (en) | 2020-09-24 | 2020-09-24 | Data communication method and apparatus based on data encryption applying did |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200123789A KR102467558B1 (en) | 2020-09-24 | 2020-09-24 | Data communication method and apparatus based on data encryption applying did |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220040741A KR20220040741A (en) | 2022-03-31 |
KR102467558B1 true KR102467558B1 (en) | 2022-11-16 |
Family
ID=80935154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200123789A KR102467558B1 (en) | 2020-09-24 | 2020-09-24 | Data communication method and apparatus based on data encryption applying did |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102467558B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240003621A (en) * | 2022-07-01 | 2024-01-09 | 주식회사 에이나 | System of issuing and using otac-based mobile id |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100654933B1 (en) * | 2005-10-05 | 2006-12-08 | 정승욱 | System and its method for authenticating dynamically created certificate by user's password input |
KR101879758B1 (en) * | 2017-06-14 | 2018-08-17 | 주식회사위즈베라 | Method for Generating User Digital Certificate for Individual User Terminal and for Authenticating Using the Same Digital Certificate |
KR102139645B1 (en) * | 2020-04-13 | 2020-07-30 | 주식회사 한국정보보호경영연구소 | System for Certificating identity based on Blockchain and Driving method thereof |
-
2020
- 2020-09-24 KR KR1020200123789A patent/KR102467558B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100654933B1 (en) * | 2005-10-05 | 2006-12-08 | 정승욱 | System and its method for authenticating dynamically created certificate by user's password input |
KR101879758B1 (en) * | 2017-06-14 | 2018-08-17 | 주식회사위즈베라 | Method for Generating User Digital Certificate for Individual User Terminal and for Authenticating Using the Same Digital Certificate |
KR102139645B1 (en) * | 2020-04-13 | 2020-07-30 | 주식회사 한국정보보호경영연구소 | System for Certificating identity based on Blockchain and Driving method thereof |
Non-Patent Citations (3)
Title |
---|
Siwon Sung et al, "Security analysis of mobile authentication using QR-codes", Computer Science &Information Technology-Computer Science Conference Proceedings (2015.)* |
Verifiable credentials data model 1.0, "Verifiable credentials" https://www.w3.org/TR/2019/REC-vc-data-model-20191119/ (2019.)* |
여기호 외 2명, "분산 ID 보관 및 연계 서비스 모델 제안", 정보보호학회논문지 30.3 513-525면 (2020.06.)* |
Also Published As
Publication number | Publication date |
---|---|
KR20220040741A (en) | 2022-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108768988B (en) | Block chain access control method, block chain access control equipment and computer readable storage medium | |
KR102134302B1 (en) | Wireless network access method and apparatus, and storage medium | |
US11271730B2 (en) | Systems and methods for deployment, management and use of dynamic cipher key systems | |
US7992193B2 (en) | Method and apparatus to secure AAA protocol messages | |
JP5513482B2 (en) | Station distributed identification method in network | |
US8572387B2 (en) | Authentication of a peer in a peer-to-peer network | |
US10637818B2 (en) | System and method for resetting passwords on electronic devices | |
US20160330179A1 (en) | System and method for key exchange based on authentication information | |
CN105721153B (en) | Key exchange system and method based on authentication information | |
US11625476B2 (en) | Remote processing of credential requests | |
WO2022100356A1 (en) | Identity authentication system, method and apparatus, device, and computer readable storage medium | |
Yerlikaya et al. | Authentication and authorization mechanism on message queue telemetry transport protocol | |
Gupta et al. | Hash based multi-server key exchange protocol using smart card | |
Ramkumar | Symmetric Cryptographic Protocols | |
JP2016522637A (en) | Secured data channel authentication that implies a shared secret | |
CN117097476B (en) | Data processing method, equipment and medium based on industrial Internet | |
KR102467558B1 (en) | Data communication method and apparatus based on data encryption applying did | |
Liou et al. | T-auth: A novel authentication mechanism for the IoT based on smart contracts and PUFs | |
CN116318784B (en) | Identity authentication method, identity authentication device, computer equipment and storage medium | |
KR20210090372A (en) | Blockchain-based authenticaton and revocation method for the internet of things gateway | |
US20230077053A1 (en) | Authentication using a decentralized and/or hybrid dencentralized secure crypographic key storage method | |
KR20090013319A (en) | Method for authentication in network system | |
El-Ema et al. | A network authentication protocol based on Kerberos | |
CN114915494B (en) | Anonymous authentication method, system, equipment and storage medium | |
Sciancalepore et al. | Multi-Domain Access Rights Composition in Federated IoT Platforms. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |