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 PDF

Info

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
Application number
KR1020200123789A
Other languages
Korean (ko)
Other versions
KR20220040741A (en
Inventor
이승한
Original Assignee
주식회사 엘지유플러스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 엘지유플러스 filed Critical 주식회사 엘지유플러스
Priority to KR1020200123789A priority Critical patent/KR102467558B1/en
Publication of KR20220040741A publication Critical patent/KR20220040741A/en
Application granted granted Critical
Publication of KR102467558B1 publication Critical patent/KR102467558B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/0822Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation 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

DID에 기초한 암호화 방식을 이용한 데이터 통신 방법 및 장치{DATA COMMUNICATION METHOD AND APPARATUS BASED ON DATA ENCRYPTION APPLYING DID}Data communication method and apparatus using DID-based encryption scheme

아래의 실시예들은 데이터 통신 기술에 관한 것이고, 구체적으로 데이터를 암호화하는 기술에 관한 것이다.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 certificate issuing server 110, a target server 120, a user terminal 130, a web application server 140, and a blockchain 150.

인증서 발행 서버(110)는 크리덴셜(credential)을 발행하는 이동 통신사의 서버일 수 있다. 크리덴셜은 인증서일 수 있다. 이동 통신사 서버에는 가입자를 식별할 수 있는 정보들이 저장될 수 있다. 예를 들어, 저장되는 식별 정보들은 IMEI(international mobile equipment identity), IMUI(international mobile user identity), UUCID 등을 포함할 수 있고, 기재된 실시예로 한정되지 않는다. 식별 정보는 이동 통신사 서버만이 접근할 수 있다. 인증서 발행 서버(110)는 크리덴셜의 발행을 원하는 가입자 단말의 식별자를 이용하여 크리덴셜을 생성할 수 있다.The certificate issuing server 110 may be a server of a mobile communication company that issues credentials. A credential can be a certificate. Information for identifying subscribers may be stored in the mobile communication company server. For example, the stored identification information may include international mobile equipment identity (IMEI), international mobile user identity (IMUI), UUCID, and the like, and is not limited to the described embodiments. Identification information can only be accessed by mobile communication company servers. The certificate issuing server 110 may generate a credential by using an identifier of a subscriber terminal that wants to issue a credential.

타겟 서버(120)는 사용자 단말(130)이 접근하고자 하는 서버일 수 있다. 예를 들어, 타겟 서버(120)는 인터넷 포털사이트(internet portal site)의 서버일 수 있다. 타겟 서버(120)는 인증서 발행 서버(110)를 통해 타겟 서버(120)의 크리덴셜을 발행 받을 수 있다.The target server 120 may be a server that the user terminal 130 wants to access. For example, the target server 120 may be a server of an internet portal site. The target server 120 may receive a credential of the target server 120 through the certificate issuing server 110 .

사용자 단말(130)은 이동 통신 단말기 및 개인용 컴퓨터(PC) 등을 포함할 수 있고, 기재된 실시예로 한정되지 않는다. 사용자 단말(130)은 타겟 서버(120)의 크리덴셜에 기초하여 타겟 서버(120)를 검증하고, 타겟 서버(120)가 검증된 경우 본 발명에 따른 암호화 방식을 이용하여 타겟 서버(120)와 데이터 통신을 수행할 수 있다.The user terminal 130 may include a mobile communication terminal, a personal computer (PC), and the like, and is not limited to the described embodiment. The user terminal 130 verifies the target server 120 based on the credential of the target server 120, and when the target server 120 is verified, the target server 120 and Data communication can be performed.

웹 애플리케이션 서버(140)는 인증서 발행 서버(110), 타겟 서버(120), 사용자 단말(130) 및 블록체인(150)을 연동시킬 수 있다. 예를 들어, 웹 애플리케이션 서버(140)는 하이퍼레저 패브릭(Hyperledger Fabric)과 DID(Decentralized Identifiers, 탈중앙 식별자 서비스)에 특화된 하이퍼레저 INDY에 기초한 블록체인 기반의 신원증명 시스템일 수 있다.The web application server 140 may interoperate the certificate issuing server 110, the target server 120, the user terminal 130, and the blockchain 150. For example, the web application server 140 may be a blockchain-based identification system based on Hyperledger Fabric and Hyperledger INDY specialized for Decentralized Identifiers (DID).

블록체인(150)은 퍼블릭 DID, DID 문서, 크리덴셜 정의, 스키마 정의 등을 저장하는 컨소시움 향의 하이퍼레저 패브릭 블록체인일 수 있다.The blockchain 150 may be a consortium-oriented Hyperledger Fabric blockchain that stores public DIDs, DID documents, credential definitions, schema definitions, and the like.

일 측면에 따르면, 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 certificate issuing server 110 and the target server 120 through DID, and a second pair relationship between the target server 120 and the user terminal 130 A relationship of (170) can be created. Through the first pair 160 and the second pair 170 , the user terminal 130 can verify the qualification of the target server 120 . When the qualification of the target server 120 is verified, a special encryption method between the target server 120 and the user terminal 130 may be determined. Data communication between the target server 120 and the user terminal 130 may be performed through the determined encryption method.

아래에서 도 2 내지 도 10을 참조하여 타겟 서버(120) 및 사용자 단말(130) 간의 데이터 통신 방법에 대해, 상세히 설명된다.Below, a data communication method between the target server 120 and the user terminal 130 will be described in detail with reference to FIGS. 2 to 10 .

도 2는 일 실시예에 따른 인증서 발행 서버의 구성도이다.2 is a configuration diagram of a certificate issuing server according to an embodiment.

인증서 발행 서버(200)는 통신부(210), 프로세서(220) 및 메모리(230)를 포함한다. 예를 들어, 인증서 발행 서버(200)는 도 1을 참조하여 전술된 인증서 발행 서버(110)일 수 있다.The certificate issuing server 200 includes a communication unit 210, a processor 220 and a memory 230. For example, the certificate issuing server 200 may be the certificate issuing server 110 described above with reference to FIG. 1 .

통신부(210)는 프로세서(220) 및 메모리(230)와 연결되어 데이터를 송수신한다. 통신부(210)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다. 이하에서 "A"를 송수신한다라는 표현은 "A를 나타내는 정보(information) 또는 데이터"를 송수신하는 것을 나타낼 수 있다.The communication unit 210 is connected to the processor 220 and the memory 230 to transmit and receive data. The communication unit 210 may transmit/receive data by being connected to another external device. Hereinafter, the expression “transmitting and receiving “A” may indicate transmitting and receiving “information or data indicating A”.

통신부(210)는 인증서 발행 서버(200) 내의 회로망(circuitry)으로 구현될 수 있다. 예를 들어, 통신부(210)는 내부 버스(internal bus) 및 외부 버스(external bus)를 포함할 수 있다. 다른 예로, 통신부(210)는 인증서 발행 서버(200)와 외부의 장치를 연결하는 요소일 수 있다. 통신부(210)는 인터페이스(interface)일 수 있다. 통신부(210)는 외부의 장치로부터 데이터를 수신하여, 프로세서(220) 및 메모리(230)에 데이터를 전송할 수 있다.The communication unit 210 may be implemented as a circuitry within the certificate issuing server 200 . For example, the communication unit 210 may include an internal bus and an external bus. As another example, the communication unit 210 may be an element that connects the certificate issuing server 200 and an external device. The communication unit 210 may be an interface. The communication unit 210 may receive data from an external device and transmit the data to the processor 220 and the memory 230 .

프로세서(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 processor 220 processes data received by the communication unit 210 and data stored in the memory 230 . A “processor” may be a data processing device implemented in hardware having circuitry having a physical structure for executing desired operations. For example, desired operations may include codes or instructions included in a program. For example, a data processing unit implemented in hardware includes a microprocessor, a central processing unit, a processor core, a multi-core processor, and a multiprocessor. , Application-Specific Integrated Circuit (ASIC), and Field Programmable Gate Array (FPGA).

프로세서(220)는 메모리(예를 들어, 메모리(230))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(220)에 의해 유발된 인스트럭션들을 실행한다.Processor 220 executes computer readable code (eg, software) stored in memory (eg, memory 230 ) and instructions invoked by processor 220 .

메모리(230)는 통신부(210)가 수신한 데이터 및 프로세서(220)가 처리한 데이터를 저장한다. 예를 들어, 메모리(230)는 프로그램(또는 어플리케이션, 소프트웨어)을 저장할 수 있다. 저장되는 프로그램은 크리덴셜을 발행할 수 있도록 코딩되어 프로세서(220)에 의해 실행 가능한 신텍스(syntax)들의 집합일 수 있다.The memory 230 stores data received by the communication unit 210 and data processed by the processor 220 . For example, the memory 230 may store a program (or application or software). The stored program may be a set of syntaxes coded to issue credentials and executed by the processor 220 .

일 측면에 따르면, 메모리(230)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM(Random Access Memory), 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to one aspect, the memory 230 may include one or more of volatile memory, non-volatile memory and random access memory (RAM), flash memory, a hard disk drive, and an optical disk drive.

메모리(230)는 인증서 발행 서버(200)를 동작 시키는 명령어 세트(예를 들어, 소프트웨어)를 저장한다. 인증서 발행 서버(200)를 동작 시키는 명령어 세트는 프로세서(220)에 의해 실행된다.The memory 230 stores a command set (eg, software) for operating the certificate issuing server 200 . A set of instructions for operating the certificate issuing server 200 is executed by the processor 220.

통신부(210), 프로세서(220) 및 메모리(230)에 대해, 아래에서 도 5 내지 도 8을 참조하여 상세히 설명된다.The communication unit 210, the processor 220, and the memory 230 will be described in detail with reference to FIGS. 5 to 8 below.

도 3은 일 실시예에 따른 타겟 서버의 구성도이다.3 is a configuration diagram of a target server according to an embodiment.

타겟 서버(300)는 통신부(310), 프로세서(320) 및 메모리(330)를 포함한다. 예를 들어, 타겟 서버(300)는 도 1을 참조하여 타겟 서버(120)일 수 있다. 다른 예로, 타겟 서버(300)는 서버가 아닌, 사용자 단말과 같은 전자 장치일 수 있다.The target server 300 includes a communication unit 310 , a processor 320 and a memory 330 . For example, the target server 300 may be the target server 120 with reference to FIG. 1 . As another example, the target server 300 may not be a server, but may be an electronic device such as a user terminal.

통신부(310)는 프로세서(320) 및 메모리(330)와 연결되어 데이터를 송수신한다. 통신부(310)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다.The communication unit 310 is connected to the processor 320 and the memory 330 to transmit and receive data. The communication unit 310 may transmit/receive data by being connected to another external device.

통신부(310)는 타겟 서버(300) 내의 회로망으로 구현될 수 있다. 예를 들어, 통신부(310)는 내부 버스 및 외부 버스를 포함할 수 있다. 다른 예로, 통신부(310)는 타겟 서버(300)와 외부의 장치를 연결하는 요소일 수 있다. 통신부(310)는 인터페이스일 수 있다. 통신부(310)는 외부의 장치로부터 데이터를 수신하여, 프로세서(320) 및 메모리(330)에 데이터를 전송할 수 있다.The communication unit 310 may be implemented as a circuitry within the target server 300 . For example, the communication unit 310 may include an internal bus and an external bus. As another example, the communication unit 310 may be an element that connects the target server 300 and an external device. The communication unit 310 may be an interface. The communication unit 310 may receive data from an external device and transmit the data to the processor 320 and the memory 330 .

프로세서(320)는 통신부(310)가 수신한 데이터 및 메모리(330)에 저장된 데이터를 처리한다. 프로세서(320)는 메모리(예를 들어, 메모리(330))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(320)에 의해 유발된 인스트럭션들을 실행한다.The processor 320 processes data received by the communication unit 310 and data stored in the memory 330 . Processor 320 executes computer readable code (eg, software) stored in memory (eg, memory 330 ) and instructions invoked by processor 320 .

메모리(330)는 통신부(310)가 수신한 데이터 및 프로세서(320)가 처리한 데이터를 저장한다. 예를 들어, 메모리(330)는 프로그램(또는 어플리케이션, 소프트웨어)을 저장할 수 있다. 저장되는 프로그램은 데이터 통신을 수행할 수 있도록 코딩되어 프로세서(320)에 의해 실행 가능한 신텍스들의 집합일 수 있다.The memory 330 stores data received by the communication unit 310 and data processed by the processor 320 . For example, the memory 330 may store a program (or application or software). The stored program may be a set of syntaxes coded to perform data communication and executed by the processor 320 .

일 측면에 따르면, 메모리(330)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM, 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to one aspect, memory 330 may include one or more of volatile memory, non-volatile memory and RAM, flash memory, hard disk drive and optical disk drive.

메모리(330)는 타겟 서버(300)를 동작 시키는 명령어 세트(예를 들어, 소프트웨어)를 저장한다. 타겟 서버(300)를 동작 시키는 명령어 세트는 프로세서(320)에 의해 실행된다.The memory 330 stores a command set (eg, software) for operating the target server 300 . A set of instructions for operating the target server 300 is executed by the processor 320 .

통신부(310), 프로세서(320) 및 메모리(330)에 대해, 아래에서 도 5 내지 도 10을 참조하여 상세히 설명된다.The communication unit 310, the processor 320, and the memory 330 will be described in detail with reference to FIGS. 5 to 10 below.

도 4는 일 실시예에 따른 사용자 단말의 구성도이다.4 is a configuration diagram of a user terminal according to an embodiment.

사용자 단말(400)은 통신부(410), 프로세서(420) 및 메모리(430)를 포함한다. 예를 들어, 사용자 단말(400)은 도 1을 참조하여 전술된 사용자 단말(130)일 수 있다.The user terminal 400 includes a communication unit 410 , a processor 420 and a memory 430 . For example, the user terminal 400 may be the user terminal 130 described above with reference to FIG. 1 .

통신부(410)는 프로세서(420) 및 메모리(430)와 연결되어 데이터를 송수신한다. 통신부(410)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다.The communication unit 410 is connected to the processor 420 and the memory 430 to transmit and receive data. The communication unit 410 may transmit/receive data by being connected to another external device.

통신부(410)는 사용자 단말(400) 내의 회로망으로 구현될 수 있다. 예를 들어, 통신부(410)는 내부 버스 및 외부 버스를 포함할 수 있다. 다른 예로, 통신부(410)는 사용자 단말(400)과 외부의 장치를 연결하는 요소일 수 있다. 통신부(410)는 인터페이스일 수 있다. 통신부(410)는 외부의 장치로부터 데이터를 수신하여, 프로세서(420) 및 메모리(430)에 데이터를 전송할 수 있다.The communication unit 410 may be implemented as a circuitry within the user terminal 400 . For example, the communication unit 410 may include an internal bus and an external bus. As another example, the communication unit 410 may be an element that connects the user terminal 400 and an external device. The communication unit 410 may be an interface. The communication unit 410 may receive data from an external device and transmit the data to the processor 420 and the memory 430 .

프로세서(420)는 통신부(410)가 수신한 데이터 및 메모리(430)에 저장된 데이터를 처리한다.The processor 420 processes data received by the communication unit 410 and data stored in the memory 430 .

프로세서(420)는 메모리(예를 들어, 메모리(430))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(420)에 의해 유발된 인스트럭션들을 실행한다.Processor 420 executes computer readable code (eg, software) stored in memory (eg, memory 430 ) and instructions invoked by processor 420 .

메모리(430)는 통신부(410)가 수신한 데이터 및 프로세서(420)가 처리한 데이터를 저장한다. 예를 들어, 메모리(430)는 프로그램(또는 어플리케이션, 소프트웨어)을 저장할 수 있다. 저장되는 프로그램은 데이터 통신을 수행할 수 있도록 코딩되어 프로세서(420)에 의해 실행 가능한 신텍스들의 집합일 수 있다.The memory 430 stores data received by the communication unit 410 and data processed by the processor 420 . For example, the memory 430 may store a program (or application or software). The stored program may be a set of syntax coded to perform data communication and executed by the processor 420 .

일 측면에 따르면, 메모리(430)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM, 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to one aspect, memory 430 may include one or more of volatile memory, non-volatile memory and RAM, flash memory, hard disk drive and optical disk drive.

메모리(430)는 사용자 단말(400)을 동작 시키는 명령어 세트(예를 들어, 소프트웨어)를 저장한다. 사용자 단말(400)을 동작 시키는 명령어 세트는 프로세서(420)에 의해 실행된다.The memory 430 stores a command set (eg, software) for operating the user terminal 400 . A set of instructions for operating the user terminal 400 is executed by the processor 420 .

통신부(410), 프로세서(420) 및 메모리(430)에 대해, 아래에서 도 5, 6, 9 및 10을 참조하여 상세히 설명된다.The communication unit 410, the processor 420, and the memory 430 will be described in detail with reference to FIGS. 5, 6, 9, and 10 below.

도 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 steps 510 to 570 may be performed to perform data communication between the target server 200 and the user terminal 300 .

단계(510)에서, DID 이용을 위한 인증서 발행 서버(200), 타겟 서버(300) 및 사용자 단말(400) 각각에 대한 키 쌍(개인 키/공개 키) 및 크리덴셜 스키마(credential schema)가 생성된다. 생성되는 크리덴셜 스키마는 검증 가능(verifiable) 할 수 있다. 단계(510)에 대해 아래에서 도 6을 참조하여 상세히 설명된다.In step 510, a key pair (private key/public key) and credential schema for each of the certificate issuing server 200, target server 300, and user terminal 400 for DID use are generated. do. The generated credential schema may be verifiable. Step 510 is described in detail with reference to FIG. 6 below.

단계(520)에서, 인증서 발행 서버(200) 및 타겟 서버(300) 간의 제1 페어가 생성된다. 제1 페어의 생성은 인증서 발행 서버(200) 및 타겟 서버(300) 간의 안전한 연결(secure connection)의 생성을 의미한다. 제1 페어를 생성하는 방법에 대해 아래에서 도 7을 참조하여 상세히 설명된다.In step 520, a first pair between the certificate issuing server 200 and the target server 300 is created. Creation of the first pair means creation of a secure connection between the certificate issuing server 200 and the target server 300 . A method of generating the first pair will be described in detail below with reference to FIG. 7 .

단계(530)에서, 인증서 발행 서버(200)에 의해 타겟 서버(300)의 크리덴셜이 생성된다. 예를 들어, 개인 DID(private DID), 개인 DID 문서(private DID document) 및 검증 가능한 증명(verifiable proof) 등이 포함되도록 크리덴셜이 생성될 수 있다. 타겟 서버(300)의 크리덴셜을 생성하는 방법에 대해, 아래에서 도 8을 참조하여 상세히 설명된다.In step 530, credentials of the target server 300 are generated by the certificate issuing server 200. For example, a credential may be generated to include a private DID, a private DID document, and a verifiable proof. A method of generating credentials of the target server 300 will be described in detail with reference to FIG. 8 below.

예를 들어, 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 : example : 123456789abcderfghijkdid:example:123456789abcderfghijk

예를 들어, 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 step 540, the target server 300 receives and stores the credentials. For example, the target server 300 may store credentials in White Box Cryptography (WBC) for the target server 300 . WBC can distribute and store credentials using an encrypted key and WBC algorithm. For example, a credential's private DID, private DID document, and verifiable proof may be distributed and stored in the WBC.

크리덴셜을 복호화하는 경우에도 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 step 550, a second pair between the target server 300 and the user terminal 400 is created. Creation of the second pair means creation of a secure connection between the target server 300 and the user terminal 400 . A method of generating the second pair will be described in detail below with reference to FIG. 9 .

일 측면에 따르면, 단계(550)는 사용자 단말(400)이 타겟 서버(300)에 접속하여 데이터 통신을 수행하고자 할 때 수행될 수 있다.According to one aspect, step 550 may be performed when the user terminal 400 accesses the target server 300 to perform data communication.

단계(560)에서, 사용자 단말(400)에 의해 타겟 서버(300)의 자격이 인증 또는 검증된다. 타겟 서버(300)의 자격이 인증된 경우, 사용자 단말(400) 및 타겟 서버(300) 간의 데이터 통신을 위한 마스터 값이 생성될 수 있다.In step 560, the qualification of the target server 300 is authenticated or verified by the user terminal 400. When the qualification of the target server 300 is authenticated, a master value for data communication between the user terminal 400 and the target server 300 may be generated.

타겟 서버(300)의 자격을 인증하는 방법에 대해, 아래에서 도 10을 참조하여 상세히 설명된다.A method of authenticating the qualification of the target server 300 will be described in detail with reference to FIG. 10 below.

단계(570)에서, 마스터 값에 기초하여 타겟 서버(300) 및 사용자 단말(400) 간에 데이터 통신이 수행될 수 있다. 예를 들어, 데이터 패킷을 암호화하기 위해 마스터 값이 이용될 수 있다.In step 570, data communication may be performed between the target server 300 and the user terminal 400 based on the master value. For example, a master value can be used to encrypt data packets.

타겟 서버(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 target server 300 and the user terminal 400, and an encrypted communication is performed based on the pre_master_key, thereby preventing an attack of stealing a key used for encryption. That is, by grafting the DID technology to the existing SSL handshake method, the initial master key (pre_master_key) is safely exchanged between the target server 300 and the user terminal 400, and based on this, encrypted communication is performed, thereby providing secure data communication. this is possible

초기 마스터 키(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 target server 300 and the user terminal 400, which are information accessible only to the certificate issuing server 200. Accordingly, the master key used for packet encryption of the target server 300 and the user terminal 400 cannot be stolen by the outside.

도 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 steps 605 to 645 below.

단계(605)에서, 인증서 발행 서버(200)는 인증서 발행 서버(200)의 제1 개인 키/제1 공개 키를 포함하는 제1 키 쌍을 생성한다.In step 605 , the certificate issuing server 200 generates a first key pair including a first private key/first public key of the certificate issuing server 200 .

단계(610)에서, 인증서 발행 서버(200)는 인증서 발행 서버(200)의 제1 크리덴셜 스키마를 생성한다. 제1 크리덴셜 스키마는 검증 가능할 수 있다.In step 610 , the certificate issuing server 200 generates a first credential schema of the certificate issuing server 200 . The first credential schema may be verifiable.

단계(615)에서, 인증서 발행 서버(200)는 제1 공개 키 및 제1 크리덴셜 스키마를 블록체인(600)의 원장에 저장한다. 제1 공개 키 및 제1 크리덴셜 스키마는 DID 이용을 위해 이용될 수 있다.At step 615 , the certificate issuing server 200 stores the first public key and the first credential schema in the ledger of the blockchain 600 . A first public key and a first credential schema may be used for DID usage.

단계(620)에서, 타겟 서버(300)는 타겟 서버(300)의 제2 개인 키/제2 공개 키를 포함하는 제2 키 쌍을 생성한다.In step 620, the target server 300 generates a second key pair including the second private key/second public key of the target server 300.

단계(625)에서, 타겟 서버(300)는 타겟 서버(300)의 제2 크리덴셜 스키마를 생성한다. 제2 크리덴셜 스키마는 검증 가능할 수 있다.At step 625 , the target server 300 generates a second credential schema of the target server 300 . The second credential schema may be verifiable.

단계(630)에서, 타겟 서버(300)는 제2 공개 키 및 제2 크리덴셜 스키마를 블록체인(600)의 원장에 저장한다. 제2 공개 키 및 제2 크리덴셜 스키마는 DID 이용을 위해 이용될 수 있다.At step 630 , the target server 300 stores the second public key and the second credential schema in the ledger of the blockchain 600 . A second public key and a second credential schema may be used for DID usage.

단계(635)에서, 사용자 단말(400)은 사용자 단말(400)의 제3 개인 키/제3 공개 키를 포함하는 제3 키 쌍을 생성한다.In step 635 , the user terminal 400 generates a third key pair including a third private key/third public key of the user terminal 400 .

단계(640)에서, 사용자 단말(400)은 사용자 단말(400)의 제3 크리덴셜 스키마를 생성한다. 제3 크리덴셜 스키마는 검증 가능할 수 있다.In step 640 , the user terminal 400 generates a third credential schema of the user terminal 400 . The third credential schema may be verifiable.

단계(645)에서, 사용자 단말(400)은 제3 공개 키 및 제3 크리덴셜 스키마를 블록체인(600)의 원장에 저장한다. 제3 공개 키 및 제3 크리덴셜 스키마는 DID 이용을 위해 이용될 수 있다.In step 645 , the user terminal 400 stores the third public key and the third credential schema in the ledger of the blockchain 600 . A third public key and a third credential schema may be used for DID usage.

단계들(605, 610, 615), 단계들(620, 625, 630), 및 단계들(635, 640, 645)은 각각 독립적이고 병렬적으로 수행될 수 있다.Steps 605, 610, 615, steps 620, 625, 630, and steps 635, 640, 645 may each be performed independently and in parallel.

도 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 steps 705 to 730 below.

단계(705)에서, 인증서 발행 서버(200)는 타겟 서버(300)와의 페어를 위한 제1 챌린지(challenge) 값을 생성한다.In step 705 , the certificate issuing server 200 generates a first challenge value for pairing with the target server 300 .

단계(710)에서, 인증서 발행 서버(200)는 제1 챌린지 값을 타겟 서버(300)로 전송한다.In step 710, the certificate issuing server 200 transmits the first challenge value to the target server 300.

단계(715)에서, 타겟 서버(300)는 타겟 서버(300)의 개인 키로 전자서명을 수행한다. 제1 챌린지 값에 개인 키로 전자서명을 수행함으로써 제1 챌린지 값에 대한 응답으로서 제1 리턴 값이 생성된다.In step 715, the target server 300 performs digital signature with the private key of the target server 300. A first return value is generated as a response to the first challenge value by digitally signing the first challenge value with the private key.

단계(720)에서, 타겟 서버(300)는 제1 리턴 값을 인증서 발행 서버(200)로 전송한다.In step 720, the target server 300 transmits the first return value to the certificate issuing server 200.

단계(725)에서, 인증서 발행 서버(200)는 제1 리턴 값을 검증한다. 예를 들어, 인증서 발행 서버(200)는 타겟 서버(300)의 공개 키에 기초하여 제1 리턴 값을 검증할 수 있다.In step 725, the certificate issuing server 200 verifies the first return value. For example, the certificate issuing server 200 may verify the first return value based on the public key of the target server 300 .

단계(730)에서, 제1 리턴 값이 검증된 경우 인증서 발행 서버(200) 및 타겟 서버(300) 간의 제1 페어가 생성된다.In step 730, when the first return value is verified, a first pair between the certificate issuing server 200 and the target server 300 is generated.

제1 페어가 생성된 경우, 도 5를 참조하여 전술된 단계(530)가 수행될 수 있다. 단계(530)에 대해, 아래에서 도 8을 참조하여 더욱 상세히 설명된다.When the first pair is generated, step 530 described above with reference to FIG. 5 may be performed. Step 530 is described in more detail with reference to FIG. 8 below.

도 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 target server 300 transmits a credential issuance request for the target server 300 to the certificate issuing server 200 .

단계(810)에서, 인증서 발행 서버(200)는 크리덴셜의 발행 요청에 기초하여 크리덴셜의 스키마를 블록체인(600)의 원장을 통해 조회한다.In step 810, the certificate issuing server 200 queries the credential schema through the ledger of the blockchain 600 based on the credential issuance request.

단계(815)에서, 블록체인(600)은 인증서 발행 서버(200)로 조회 완료된 크리덴셜 스키마를 반환한다. 반환된 크리덴셜 스키마는 타겟 스키마로 명명된다.In step 815, the blockchain 600 returns the credential schema that has been checked to the certificate issuing server 200. The returned credential schema is named the target schema.

단계(820)에서, 인증서 발행 서버(200)는 발행 요청에 대한 응답으로서 타겟 스키마의 확인 요청을 타겟 서버(300)로 전송한다. 타겟 스키마의 확인 요청은 크리덴셜 오퍼(offer)일 수 있다.In step 820, the certificate issuing server 200 transmits a target schema verification request to the target server 300 as a response to the issuance request. The confirmation request of the target schema may be a credential offer.

단계(825)에서, 타겟 서버(300)는 타겟 스키마를 블록체인(600)의 원장을 통해 조회한다.In step 825, the target server 300 queries the target schema through the ledger of the blockchain 600.

단계(830)에서, 블록체인(600)은 타겟 서버(300)로 타겟 스키마에 대한 조회 결과를 전송한다.In step 830, the block chain 600 transmits the search result for the target schema to the target server 300.

단계(835)에서, 타겟 서버(300)는 타겟 스키마로 발행 받고자 하는 타겟 항목을 생성한다. 예를 들어 타겟 항목은 인증서 발행 서버(200)에 저장된 타겟 서버(300)의 식별자를 포함할 수 있다.In step 835, the target server 300 creates a target item to be published as a target schema. For example, the target item may include an identifier of the target server 300 stored in the certificate issuing server 200 .

단계(840)에서, 타겟 서버(300)는 생성된 타겟 항목을 포함하는 크리덴셜 발행 요청을 인증서 발행 서버(200)로 전송한다.In step 840, the target server 300 transmits a credential issuance request including the generated target item to the certificate issuing server 200.

단계(845)에서, 인증서 발행 서버(200)는 타겟 스키마 및 타겟 항목에 기초하여 타겟 서버(300)에 대한 크리덴셜을 생성(또는, 발행)한다. 크리덴셜은 증명(proof)을 위한 서명 값 등을 포함할 수 있다. 예를 들어, 타겟 스키마에 타겟 항목에 대한 값을 넣음으로써 증명을 위한 서명 값 등이 생성될 수 있다.In step 845, the certificate issuing server 200 generates (or issues) a credential for the target server 300 based on the target schema and target item. Credentials may include a signature value for proof. For example, a signature value for verification may be generated by inserting a value for a target item in a target schema.

일 측면에 따르면, 크리덴셜은 타겟 서버(300)의 식별자, 인증서 발행 서버(200)의 식별자, 인증서 발행 서버(200)의 고유 식별 값, 크리덴셜의 발행일, 크리덴셜의 만료일, 및 마스터 키(master_key)의 생성을 위한 시드 값으로서의 초기 마스터 키(pre_master_key)를 포함할 수 있다.According to one aspect, the credential is an identifier of the target server 300, an identifier of the certificate issuing server 200, a unique identification value of the certificate issuing server 200, a credential issuance date, a credential expiration date, and a master key ( master_key) may include an initial master key (pre_master_key) as a seed value for generation.

단계(850)에서, 인증서 발행 서버(200)는 생성된 크리덴셜을 타겟 서버(300)로 전송한다.In step 850, the certificate issuing server 200 transmits the generated credential to the target server 300.

단계(855)에서, 타겟 서버(300)는 크리덴셜을 타겟 서버(300)의 WBC에 저장한다.At step 855, the target server 300 stores the credentials in the WBC of the target server 300.

도 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 steps 905 to 930 below.

단계(905)에서, 사용자 단말(400)은 타겟 서버(300)와의 페어를 위한 제2 챌린지 값을 생성한다.In step 905 , the user terminal 400 generates a second challenge value for pairing with the target server 300 .

단계(910)에서, 사용자 단말(400)은 제2 챌린지 값을 타겟 서버(300)로 전송한다.In step 910, the user terminal 400 transmits the second challenge value to the target server 300.

단계(915)에서, 타겟 서버(300)는 타겟 서버(300)의 개인 키로 전자서명을 수행한다. 제2 챌린지 값에 개인 키로 전자서명을 수행함으로써 제2 챌린지 값에 대한 응답으로서 제2 리턴 값이 생성된다.In step 915, the target server 300 performs digital signature with the private key of the target server 300. A second return value is generated as a response to the second challenge value by digitally signing the second challenge value with the private key.

단계(920)에서, 타겟 서버(300)는 제2 리턴 값을 사용자 단말(400)로 전송한다.In step 920, the target server 300 transmits the second return value to the user terminal 400.

단계(925)에서, 사용자 단말(400)은 제2 리턴 값을 검증한다. 예를 들어, 사용자 단말(400)은 타겟 서버(300)의 공개 키에 기초하여 제2 리턴 값을 검증할 수 있다.In step 925, the user terminal 400 verifies the second return value. For example, the user terminal 400 may verify the second return value based on the public key of the target server 300 .

단계(930)에서, 제2 리턴 값이 검증된 경우 사용자 단말(400) 및 타겟 서버(300) 간의 제2 페어가 생성된다.In step 930, when the second return value is verified, a second pair between the user terminal 400 and the target server 300 is generated.

제2 페어가 생성된 경우, 도 5를 참조하여 전술된 단계(560)가 수행될 수 있다. 단계(560)에 대해, 아래에서 도 10을 참조하여 더욱 상세히 설명된다.When the second pair is generated, step 560 described above with reference to FIG. 5 may be performed. Step 560 is described in more detail with reference to FIG. 10 below.

도 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 steps 1005 to 1060 below.

단계(1005)에서, 타겟 서버(300)는 증명 요청(proof request)을 위한 의도(purpose)를 사용자 단말(400)로 전송한다.In step 1005 , the target server 300 transmits a purpose for a proof request to the user terminal 400 .

단계(1010)에서, 사용자 단말(400)은 증명 요청을 위한 크리덴셜 스키마를 블록체인(600)을 통해 조회한다.In step 1010, the user terminal 400 queries the credential schema for the proof request through the blockchain 600.

단계(1015)에서, 블록체인(600)은 조회 결과를 사용자 단말(400)로 전송한다. 조회 결과는 타겟 크리덴셜 스키마를 나타낼 수 있다.In step 1015, the block chain 600 transmits the inquiry result to the user terminal 400. A search result may indicate a target credential schema.

단계(1020)에서, 사용자 단말(400)은 타겟 크리덴셜 스키마 및 제2 타겟 항목에 기초하여 증명 요청을 생성한다. 제2 타겟 항목은 타겟 서버(300)가 인증 또는 증명하기를 원하는 정보일 수 있다.In step 1020, the user terminal 400 generates a proof request based on the target credential schema and the second target item. The second target item may be information that the target server 300 wants to authenticate or prove.

단계(1025)에서, 사용자 단말(400)은 증명 요청을 타겟 서버(300)로 전송한다.In step 1025, the user terminal 400 transmits a verification request to the target server 300.

단계(1030)에서, 타겟 서버(300)는 WBC를 통해 제2 타겟 항목을 조회한다. WBC로부터 수신하는 정보는 제2 타겟 항목 뿐만 아니라, WBC에 저장된 크리덴셜에 포함된 초기 마스터 키(pre_master_key)를 더 포함할 수 있다.In step 1030, the target server 300 searches for a second target item through the WBC. Information received from the WBC may further include an initial master key (pre_master_key) included in credentials stored in the WBC as well as the second target item.

단계(1035)에서, 타겟 서버(300)는 WBC를 통해 조회된 제2 타겟 항목들 및 초기 마스터 키(pre_master_key)를 포함하도록 증명(proof)을 생성한다. 예를 들어, 타겟 서버(300)는 타겟 서버(300)의 개인 키를 이용하여 전자서명을 수행함으로써 증명을 생성할 수 있다.In step 1035, the target server 300 generates a proof to include the second target items inquired through the WBC and an initial master key (pre_master_key). For example, the target server 300 may generate a certificate by performing digital signature using a private key of the target server 300 .

단계(1040)에서, 타겟 서버(300)는 증명을 사용자 단말(400)로 전송한다.In step 1040, the target server 300 transmits the proof to the user terminal 400.

단계(1045)에서, 사용자 단말(400)은 수신한 증명의 유효성을 검증한다. 예를 들어, 증명의 서명 값 및 제2 타겟 항목들에 대한 유효성이 검증될 수 있다.In step 1045, the user terminal 400 verifies the validity of the received proof. For example, the signature value of the proof and the validity of the second target items may be verified.

단계(1050)에서, 사용자 단말(400)은 증명의 유효성에 대한 응답을 타겟 서버(300)로 전송한다. 증명이 유효하게 검증된 경우, 이후의 단계에서 사용자 단말(400) 및 타겟 서버(300) 간의 데이터 통신이 수행될 수 있다.In step 1050, the user terminal 400 transmits a response to the validity of the proof to the target server 300. When the proof is validated, data communication between the user terminal 400 and the target server 300 may be performed in a subsequent step.

단계(1055)에서, 타겟 서버(300)는 초기 마스터 키(pre_master_key)에 기초하여 마스터 키 또는 마스터 값을 생성한다. 타겟 서버(300)는 마스터 키를 이용하여 사용자 단말(400)로 전송하고자 하는 패킷을 암호화할 수 있고, 사용자 단말(400)로부터 수신한 암호화된 패킷을 복호화할 수 있다.In step 1055, the target server 300 generates a master key or master value based on the initial master key (pre_master_key). The target server 300 may encrypt a packet to be transmitted to the user terminal 400 using the master key, and may decrypt the encrypted packet received from the user terminal 400 .

단계(1060)에서, 사용자 단말(400)는 초기 마스터 키(pre_master_key)에 기초하여 마스터 키 또는 마스터 값을 생성한다. 사용자 단말(400)은 마스터 키를 이용하여 타겟 서버(300)로 전송하고자 하는 패킷을 암호화할 수 있고, 타겟 서버(300)로부터 수신한 암호화된 패킷을 복호화할 수 있다.In step 1060, the user terminal 400 generates a master key or a master value based on the initial master key (pre_master_key). The user terminal 400 may encrypt a packet to be transmitted to the target server 300 using the master key, and may decrypt the encrypted packet received from the target server 300 .

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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.
제1항에 있어서,
상기 크리덴셜을 생성하는 단계는,
개인 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.
삭제delete 제1항에 있어서,
상기 인증서 발행 서버 및 상기 블록체인은 웹 애플리케이션 서버를 통해 연동되고,
상기 웹 애플리케이션 서버는 하이퍼레저 패브릭(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.
제1항에 있어서,
상기 인증서 발행 서버 및 상기 타겟 서버 간에 페어를 생성하는 단계
를 더 포함하고,
상기 페어가 생성된 경우, 상기 타겟 서버에 대한 크리덴셜의 발행 요청이 상기 타겟 서버로부터 수신되는,
크리덴셜 생성 방법.
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.
삭제delete 제1항, 제2항, 제4항 및 제5항 중 어느 한 항의 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
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.
삭제delete 제9항에 있어서,
상기 사용자 단말 및 상기 블록체인은 웹 애플리케이션 서버를 통해 연동되고,
상기 웹 애플리케이션 서버는 하이퍼레저 패브릭(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.
제9항에 있어서,
상기 사용자 단말 및 타겟 서버 간의 페어를 생성하는 단계는,
상기 타겟 서버와의 페어를 위한 챌린지 값을 생성하는 단계;
상기 챌린지 값을 상기 타겟 서버로 전송하는 단계;
상기 타겟 서버로부터 상기 챌린지 값 및 상기 타겟 서버의 개인 키에 기초하여 생성된 리턴 값을 수신하는 단계;
상기 리턴 값을 검증하는 단계; 및
상기 리턴 값이 검증된 경우 상기 사용자 단말 및 상기 타겟 서버 간의 페어를 생성하는 단계
를 포함하는,
데이터 통신 방법.
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.
제9항에 있어서,
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.
제13항에 있어서,
상기 크리덴셜 스키마는 검증 가능한,
데이터 통신 방법.
According to claim 13,
The credential schema is verifiable,
data communication method.
제9항, 제11항, 제12항, 제13항 및 14항 중 어느 한 항의 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
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.
KR1020200123789A 2020-09-24 2020-09-24 Data communication method and apparatus based on data encryption applying did KR102467558B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
KR20210090372A (en) Blockchain-based authenticaton and revocation method for the internet of things gateway
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
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
CN116318784B (en) Identity authentication method, identity authentication device, computer 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