KR20200131307A - 데이터 액세스 권한 제어 방법 및 장치 - Google Patents

데이터 액세스 권한 제어 방법 및 장치 Download PDF

Info

Publication number
KR20200131307A
KR20200131307A KR1020207029445A KR20207029445A KR20200131307A KR 20200131307 A KR20200131307 A KR 20200131307A KR 1020207029445 A KR1020207029445 A KR 1020207029445A KR 20207029445 A KR20207029445 A KR 20207029445A KR 20200131307 A KR20200131307 A KR 20200131307A
Authority
KR
South Korea
Prior art keywords
node
encrypted
proxy
ciphertext
key
Prior art date
Application number
KR1020207029445A
Other languages
English (en)
Other versions
KR102503515B1 (ko
Inventor
루이펑 후
페이후 지앙
추 혼 유엔
야오구오 지앙
하오준 저우
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20200131307A publication Critical patent/KR20200131307A/ko
Application granted granted Critical
Publication of KR102503515B1 publication Critical patent/KR102503515B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • H04L67/28
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • 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/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/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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/3236Cryptographic 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 cryptographic hash functions
    • H04L9/3239Cryptographic 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 cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/40Security arrangements using identity modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)

Abstract

데이터 액세스 권한 제어 방법 및 장치가 개시된다. 데이터 액세스 권한 제어 방법은, 제1 프록시 노드가 요청 노드로부터 제1 요청 메시지를 수신하는 단계 - 제1 요청 메시지는 요청 노드의 아이덴티티 식별자와 액세스될 데이터 식별자를 포함하고 있음 -; 액세스될 데이터 식별자에 따라 블록체인 네트워크 내의 암호화된 제1 암호문을 결정하고, 요청 노드의 아이덴티티 식별자에 따라, 요청 노드가 암호화된 제1 암호문을 판독할 권한을 가지고 있는지 여부를 판정하는 단계; 및 요청 노드가 암호화된 제1 암호문을 판독할 권한을 가지고 있으면, 적어도 하나의 제2 프록시 노드 쪽으로 요청 노드에 대한 권한 검증 요청을 개시하고, 적어도 하나의 제2 프록시 노드의 피드백 결과에 따라, 암호화된 제1 암호문의 발행(issuing)을 결정하는 단계를 포함한다. 프록시 노드를 블록체인 네트워크에 추가함으로써, 데이터 액세스 권한 제어 방법은, 데이터 소스 노드가 암호문을 수정하지 않고 자유롭게 요청 노드의 권한을 부여하거나 또는 취소하는 것을 구현함으로써 네트워크의 정보 보안을 보장한다.

Description

데이터 액세스 권한 제어 방법 및 장치
본 출원은 2018년 3월 19일에 중국 국가지식재산권국에 출원된 중국 특허 출원 제201810224356.1호("METHOD AND APPARATUS FOR CONTROLLING DATA ACCESS RIGHT")에 대해 우선권을 주장하는 바이며, 그 전체 내용이 원용에 의해 본 명세서에 포함된다.
본 출원은 블록체인 분야에 관한 것으로, 상세하게는 데이터 액세스 권한을 제어하기 위한 방법 및 장치에 관한 것이다.
블록체인은 분산 원장(distributed ledger)이라고도 한다. 즉, 서로 다른 장소에 분산된 복수의 노드에 의해 트랜잭션(transaction)이 공동으로 계산되고, 각각의 노드가 완전한 계정을 기록한다. 좁은 의미에서, 블록 체인은 데이터 블록을 시간순으로 결합하여 얻어지는 체인형 데이터 구조와, 암호화를 이용하여 변조 또는 위조로부터 보호되는 분산 원장이다.
블록 체인 기술의 경우, 블록 체인은 탈중앙화되고 신뢰할 수 없다는 특징을 가지고 있다. 탈중앙화는, 전체 블록 체인 네트워크에 중앙 집중식 하드웨어 또는 관리 메커니즘이 없고, 노드의 권리와 의무가 동일하며, 어느 노드의 손상이나 손실이 전체 네트워크 시스템의 운영에 영향을 미치지 않는다는 것을 의미한다. 따라서, 블록 체인 네트워크의 바람직한 강건성이 보장된다. "신뢰할 수 없다"는, 노드가 전체 네트워크 내의 데이터 교환에 참여하기 위해 상호 신뢰를 필요로 하지 않음을 의미한다. 전체 블록 체인 네트워크 시스템의 운영 규칙이 개방적이고 투명하며, 모든 블록 체인 노드의 데이터 내용도 공개된다. 따라서, 시스템에 의해 지정된 규칙 또는 시간 범위 내에서, 노드들이 서로를 속일 수 없다.
클라이언트가 블록 체인 상의 노드에서 액세스 데이터를 요청하고, 블록 체인 상의 노드가 암호화된 데이터와 복호화 키를 클라이언트에 제공한다. 그런 다음, 클라이언트가 복호화 키를 이용하여 암호화된 데이터를 복호화하여 액세스 데이터를 획득하고, 블록 체인 상에 액세스 데이터를 기록한다. 이 과정에서, 블록체인 노드 내의 원장의 과거의 트랜잭션 데이터가 수정되거나 삭제될 수 없고, 블록체인 상의 데이터가 공개되고 취소될 수 없기 때문에, 일단 액세스 권한이 사용자에게 부여되고 복호화 키가 분산되면, 액세스 권한이 철회될 수 없다. 이 경우, 사용자의 액세스 권한이 금지될 필요가 있는 경우, 사용자가 데이터에 접근하는 것을 막을 수 없어 데이터 접근에 위험과 불안을 초래한다.
본 출원은 데이터 액세스 권한을 제어하기 위한 방법 및 장치를 제공함으로써, 사용자의 액세스 권한이 변경될 때 사용자에 의해 요청되는 데이터 또는 암호문의 프로비저닝(provisioning)을 제어한다.
구체적으로, 전술한 기술적인 문제를 해결하기 위하여, 본 출원은 다음의 기술적 해결책을 개시한다.
제1 양태에 따르면, 본 출원은 데이터 액세스 권한을 제어하기 위한 방법을 제공한다. 상기 데이터 액세스 권한을 제어하기 위한 방법은, 제1 프록시 노드가 요청 노드로부터 제1 요청 메시지를 수신하는 단계 - 상기 제1 요청 메시지는 상기 요청 노드의 아이덴티티와 액세스될 데이터의 식별자를 포함하고 있음 -; 상기 제1 프록시 노드가 상기 액세스될 데이터의 식별자에 기초하여 블록체인 네트워크 상의 암호화된 제1 암호문를 결정하고, 상기 요청 노드의 아이덴티티에 기초하여, 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있는지 여부를 판정하는 단계; 및 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있으면, 적어도 하나의 제2 프록시 노드 쪽으로 상기 요청 노드에 대한 권한 검증 요청을 개시하고, 상기 적어도 하나의 제2 프록시 노드의 피드백 결과에 기초하여, 상기 암호화된 제1 암호문의 프로비저닝을 결정하는 단계를 포함한다.
선택적으로, 상기 제1 프록시 노드가 상기 요청 노드의 아이덴티티에 기초하여, 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있는지 여부를 판정하고; 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있지 않으면, 상기 제1 프록시 노드가 상기 요청 노드의 제1 요청을 거부한다.
이 양태에서 제공된 이 방법에 따르면, 데이터 소스가 암호문의 수정 없이 자유롭게 상기 요청 노드의 권한을 부여하거나 또는 철회할 수 있도록, 프록시 노드가 상기 블록체인 네트워크에 추가된다. 즉, 상기 프록시 노드가 블록 체인 상의 상기 요청 노드의 최신 권한을 판독하여 액세스 요청을 승인할지 또는 거부할지 여부를 판정한다. 최신 권한이 액세스 거부이면, 사용자가 계속 데이터에 접근하지 못하게 함으로써 네트워크의 정보 보안을 보장할 수 있다.
또한, 단 하나의 제1 프록시 노드가 검증에 사용될 때 부정 행위(cheating)가 일어날 가능성이 방지될 수 있도록, 요청자의 아이덴티티가 상기 적어도 하나의 제2 프록시 노드를 이용하여 추가로 검증됨으로써, 검증 정확도를 추가로 개선하고 또한 정보 전송의 보안을 추가로 보장한다.
제1 양태를 참조하여, 제1 양태의 일 구현에서, 상기 요청 노드의 아이덴티티에 기초하여, 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있는지 여부를 판정하는 단계는, 블록체인 상에서, 상기 요청 노드의 아이덴티티에 기초하여 상기 요청 노드의 권한 부여 정보(authorization information)를 판독하는 단계 - 상기 권한 부여 정보는 상기 블록체인 상의 체인형 저장 구조의 끝에 가장 가깝고, 상기 권한 부여 정보는 허용 또는 불허용을 포함하고 있음 -을 포함한다.
이 구현에서, 상기 요청자의 최신 액세스 권한은 상기 요청 노드의 권한 부여 정보를 판독하여 얻어질 수 있다. 여기서, 상기 요청 노드가 암호화된 암호문과 키를 획득할 수 있는지 여부의 검사를 준비하기 위해, 상기 권한 부여 정보는 상기 블록체인 상의 상기 체인형 저장 구조의 끝에 가장 가깝다.
제1 양태를 참조하여, 제1 양태의 다른 구현에서, 상기 적어도 하나의 제2 프록시 노드 쪽으로 상기 요청 노드에 대한 권한 검증 요청을 개시하는 단계는, 상기 제1 프록시 노드가 m개의 제2 프록시 노드를 결정하는 단계 - m은 1보다 큰 양의 정수임 -; 상기 권한 검증 요청을 생성하는 단계 - 상기 권한 검증 요청은 상기 요청 노드의 아이덴티티와 상기 암호화된 제1 암호문을 포함하고, 상기 암호화된 제1 암호문은 상기 액세스될 데이터을 암호화하여 생성됨 -; 및 상기 권한 검증 요청을 상기 m개의 제2 프록시 노드 각각에 개별적으로 송신하는 단계를 포함한다.
제1 양태를 참조하여, 제1 양태의 또 다른 구현에서, 상기 적어도 하나의 제2 프록시 노드의 피드백 결과에 기초하여, 상기 암호화된 제1 암호문의 프로비저닝을 결정하는 단계는,
상기 제1 프록시 노드가 적어도 k개의 제2 프록시 노드에 의해 송신된 부분 키를 수신하는 단계 - 상기 제2 프록시 노드가 상기 요청 노드의 아이덴티티에 기초하여, 상기 요청 노드가 데이터에 접근할 권한을 가지고 있다는 것을 검증한 후에, 상기 부분 키가 상기 제2 프록시 노드에 의해 생성되어 송신되고, k≤m임 -; 상기 적어도 k개의 부분 키를 복구하여 변환 키를 생성하는 단계; 상기 변환 키와 암호화 알고리즘을 이용하여, 상기 암호화된 제1 암호문을 암호화된 제2 암호문으로 변환하는 단계 - 상기 암호화된 제2 암호문은 상기 요청 노드의 공개 키를 이용하는 암호화에 의해 생성됨 -; 및 상기 암호화된 제2 암호문을 상기 요청 노드에 송신하는 단계를 포함한다.
이 구현에서, 상기 제1 프록시 노드는 권한 검증 요청을 상기 복수의 제2 프록시 노드에 송신하고, 상기 제2 프록시 노드에 의해 송신된 충분한 양의 부분 키를 획득한 후에만 상기 변환 키를 복구할 수 있다. 즉, 몇몇 노드가 부정한 방식으로 권한 제어를 우회하여 상기 암호문을 획득하는 것이 효과적으로 방지될 수 있도록, 상기 복수의 제2 프록시 노드가 공동 복호화에 참여한 후에만 상기 변환 키가 생성될 수 있고, 단일 노드 또는 키 참여자가 상기 변환 키 또는 상기 암호문을 획득할 수 없다. 이 방법은 복호화 복잡도를 높이고, 상기 암호문의 전송과 판독의 보안을 효과적으로 보장하며, 승인되지 않은 사용자가 상기 암호문 또는 상기 데이터를 판독하지 못하도록 방지한다.
제1 양태를 참조하여, 제1 양태의 또 다른 구현에서, 상기 적어도 하나의 제2 프록시 노드의 피드백 결과에 기초하여, 상기 암호화된 제1 암호문의 프로비저닝을 결정하는 단계는, 상기 제1 프록시 노드가 k개 미만의 제2 프록시 노드에 의해 송신된 부분 키를 수신하거나 또는 적어도 하나의 제2 프록시 노드에 의해 피드백된 거부 메시지를 수신하면, 액세스 거부 메시지를 상기 요청 노드에 송신하는 단계를 포함한다.
제1 양태를 참조하여, 제1 양태의 또 다른 구현에서, 상기 제1 프록시 노드가 요청 노드로부터 제1 요청 메시지를 수신하는 단계는, 상기 제1 프록시 노드가, 상기 블록체인 네트워크 상의 임의의 블록체인 노드를 이용하여 포워딩된 제1 요청 메시지를 수신하는 단계를 포함한다.
제2 양태에 따르면, 본 출원은 데이터 전송 방법을 추가로 제공한다. 상기 데이터 전송 방법이 데이터 소스 또는 데이터 소유자에 적용될 수 있다. 이 양태에서, 제1 노드가 예로 사용되며, 상기 데이터 전송 방법은,
제1 노드가 제2 노드의 아이덴티티를 획득하는 단계 - 상기 아이덴티티는 상기 제2 노드의 권한 부여 정보(authorization information)를 결정하는 데 사용되고, 상기 권한 부여 정보는 허용과 불허용을 포함하며, 상기 제2 노드는 요청 노드 또는 데이터 요청자임 -; 상기 권한 부여 정보가 허용이면, 상기 제1 노드가 상기 제1 노드의 개인 키, 상기 제2 노드의 공개 키, 및 암호화 알고리즘을 이용하여 변환 키를 생성하는 단계; 상기 제1 노드가, 블록체인 네트워크 상의 프록시 노드의 공개 키를 이용하여 상기 변환 키를 암호화하여 암호화된 부분 키를 생성하는 단계; 및 상기 제1 노드가 제1 트랜잭션 정보를 생성하고, 상기 블록체인 네트워크 상에 상기 제1 트랜잭션 정보를 기록하는 단계 - 상기 제1 트랜잭션 정보는 상기 제2 노드의 아이덴티티, 상기 제2 노드의 권한 부여 정보, 및 상기 암호화된 부분 키를 포함하고 있음 -를 포함한다.
제2 양태를 참조하여, 제2 양태의 일 구현에서, 상기 제1 노드가, 블록체인 네트워크 상의 프록시 노드의 공개 키를 이용하여 상기 변환 키를 암호화하여 암호화된 부분 키를 생성하는 단계는, 상기 제1 노드가 비밀 공유 알고리즘을 이용하여 상기 변환 키를 n개의 부분 키로 분할하는 단계 - N은 1보다 크거나 같은 양의 정수임 -; 및 상기 제1 노드가 상기 블록체인 네트워크로부터 m개의 프록시 노드를 선택하고, 상기 m개의 프록시 노드의 공개 키를 이용하여 상기 n개의 부분 키를 암호화하여 n개의 암호화된 부분 키를 생성하는 단계 - m≤n임 -를 포함한다.
제2 양태를 참조하여, 제2 양태의 다른 구현에서, 상기 제1 트랜잭션 정보는 상기 m개의 프록시 노드의 아이덴티티, 및 상기 변환 키를 복구하기 위한 부분 키의 최소 개수(k)를 더 포함한다. 획득된 부분 키의 개수가 k보다 작으면, 상기 필요한 변환 키가 복구될 수 없다. 이 경우, 몇몇 프록시 노드 또는 일부 프록시 노드에 의한 부정 행위가 방지됨으로써 보안 및 검증의 신뢰도를 개선할 수 있다.
제2 양태를 참조하여, 제2 양태의 또 다른 구현에서, 상기 블록체인 네트워크 상에 상기 제1 트랜잭션 정보를 기록하는 단계는, 상기 제1 노드가 상기 제1 트랜잭션 정보를 상기 블록체인 네트워크 상의 블록체인 노드에 송신하고, 상기 제1 트랜잭션 정보를 브로드캐스팅하고 상기 블록체인 노드를 이용하여 네트워크 전체(network-wide)의 상기 제1 트랜잭션 정보에 대해 합의에 도달하며, 상기 제1 트랜잭션 정보를 저장하는 단계를 포함한다.
제2 양태를 참조하여, 제2 양태의 또 다른 구현에서, 상기 데이터 전송 방법은, 상기 권한 부여 정보가 불허용이면, 상기 제2 노드의 권한 부여 정보를 취소하는 단계; 상기 제2 노드의 아이덴티티와 상기 제2 노드의 권한 부여 정보를 포함하는 제2 트랜잭션 정보를 생성하는 단계; 및 상기 블록체인 네트워크 상에 상기 제2 트랜잭션 정보를 기록하는 단계를 더 포함한다.
제2 양태를 참조하여, 제2 양태의 또 다른 구현에서, 상기 제1 노드가 제2 노드의 아이덴티티를 획득하는 단계 이전에, 상기 데이터 전송 방법은, 상기 제1 노드가 상기 제1 노드의 공개 키와 프록시 재암호화 알고리즘을 이용하여, 액세스될 데이터를 암호화하여 암호화된 제1 암호문을 생성하는 단계; 및 상기 제1 노드가 상기 암호화된 제1 암호문을 상기 블록체인 네트워크 상의 트랜잭션으로 저장하는 단계를 더 포함한다.
제3 양태에 따르면, 본 출원은 데이터 전송 방법을 추가로 제공한다. 여기서, 상기 데이터 전송 방법은 제2 프록시 노드에 적용될 수 있고, 상기 제2 프록시 노드는 제1 프록시 노드 또는 1차 프록시 노드일 수 있으며, 상기 데이터 전송 방법은,
제2 프록시 노드가 제1 프록시 노드로부터 권한 검증 요청을 수신하는 단계 - 상기 권한 검증 요청은 요청 노드의 아이덴티티와 암호화된 제1 암호문을 포함하고, 상기 암호화된 제1 암호문은 액세스될 데이터를 암호화하여 생성됨 -; 상기 제2 프록시 노드가 상기 요청 노드의 아이덴티티에 기초하여, 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있는지 여부를 판정하는 단계; 및 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있으면, 부분 키를 생성하고, 상기 부분 키를 상기 제1 프록시 노드에 송신하는 단계를 포함한다..
이 양태에서, 상기 제1 프록시 노드가 상기 요청 노드의 액세스가 허용된다는 것을 검증할 때, 상기 제2 프록시 노드가 상기 요청 노드의 권한을 추가로 검증한다. 상기 요청 노드의 액세스가 허용된다는 것을 검증할 때, 상기 제1 프록시 노드가 상기 부분 키를 수집하고 상기 최종의 변환 키를 합성할 수 있도록, 상기 제2 프록시 노드가 상기 생성된 부분 키를 상기 제1 프록시 노드에 송신함으로써, 상기 제1 프록시 노드의 부정 행위를 효과적으로 방지하고 검증의 보안을 개선한다.
제3 양태를 참조하여, 제3 양태의 일 구현에서, 상기 부분 키를 생성하는 단계는, 상기 제2 프록시 노드가 블록체인 네트워크 상의 암호화된 부분 키를 획득하는 단계 - 상기 암호화된 부분 키는 상기 제2 프록시 노드의 공개 키를 이용하여 암호화가 수행된 후에 생성됨 -; 및 상기 제2 프록시 노드가 상기 제2 프록시 노드의 개인 키를 이용하여 상기 암호화된 부분 키를 복호화하여 상기 부분 키를 생성하는 단계를 포함한다.
제3 양태를 참조하여, 제3 양태의 다른 구현에서, 상기 데이터 전송 방법은, 상기 제2 프록시 노드가 상기 요청 노드의 아이덴티티에 기초하여, 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있는지 여부를 판정하는 단계; 및 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있으면, 상기 제1 프록시 노드의 제1 요청을 거부하는 단계를 더 포함한다.
제4 양태에 따르면, 본 출원은 데이터 액세스 권한을 제어하기 위한 장치를 추가로 제공한다. 예를 들어, 상기 장치는 네트워크 노드일 수 있거나, 또는 상기 네트워크 노드에 구성될 수 있다. 상기 장치 또는 상기 네트워크 노드는 전술한 양태에서 상기 제1 프록시 노드이거나, 또는 상기 제1 노드이거나, 또는 상기 제2 프록시 노드일 수 있고, 상기 장치는 제1 양태 내지 제3 양태와 제1 양태 내지 제3 양태의 구현에서 상기 방법 단계를 수행하도록 구성된 유닛을 포함한다.
구체적으로, 상기 장치는 수신 유닛, 처리 유닛, 및 송신 유닛을 포함한다. 또한, 상기 장치는 다른 유닛 또는 모듈, 예컨대 저장 유닛을 더 포함할 수 있다. 본 출원에서는 이에 대해 제한하지 않는다.
제5 양태에 따르면, 본 출원은 네트워크 노드를 더 제공한다. 상기 네트워크 노드는 프로세서, 송수신기, 및 메모리를 포함한다. 상기 네트워크 노드가 상기 제1 프록시 노드인 경우,
상기 송수신기는 요청 노드로부터 제1 요청 메시지를 수신하도록 구성되고 - 여기서, 상기 제1 요청 메시지는 상기 요청 노드의 아이덴티티와 액세스될 데이터의 식별자를 포함하고 있음 -; 및
상기 프로세서는, 상기 액세스될 데이터의 식별자에 기초하여 블록체인 네트워크 상의 암호화된 제1 암호문을 결정하고, 상기 요청 노드의 아이덴티티에 기초하여, 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있는지 여부를 판정하며; 상기 요청 노드가 암호화된 제1 암호문을 판독할 권한을 가지고 있지 않으면, 상기 요청 노드의 제1 요청을 거부하거나, 또는 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있으면, 적어도 하나의 제2 프록시 노드 쪽으로 상기 요청 노드에 대한 권한 검증 요청을 개시하고, 상기 적어도 하나의 제2 프록시 노드의 피드백 결과에 기초하여, 상기 암호화된 제1 암호문의 프로비저닝을 결정하도록 구성된다.
제5 양태를 참조하여, 제5 양태의 일 구현에서, 상기 프로세서는 구체적으로, 블록체인 상에서, 상기 요청 노드의 아이덴티티에 기초하여 상기 요청 노드의 권한 부여 정보를 판독하도록 구성된다. 여기서, 상기 권한 부여 정보는 상기 블록체인 상의 체인형 저장 구조의 끝에 가장 가깝고, 상기 권한 부여 정보는 허용과 불허용을 포함한다.
제5 양태를 참조하여, 제5 양태의 다른 구현에서, 상기 프로세서는 구체적으로, m개의 제2 프록시 노드를 결정하고 - 여기서, m은 1보다 크거나 같은 양의 정수임 -; 상기 권한 검증 요청을 생성하며 - 여기서, 상기 권한 검증 요청은 상기 상기 요청 노드의 아이덴티티와 암호화된 제1 암호문을 포함하고, 상기 암호화된 제1 암호문은 상기 액세스될 데이터를 암호화하여 생성됨 -; 상기 송수신기를 이용하여 상기 권한 검증 요청을 각각 상기 m개의 제2 프록시 노드에 송신하도록 구성된다.
제5 양태를 참조하여, 제5 양태의 또 다른 구현에서, 상기 송수신기는 구체적으로, 적어도 k개의 제2 프록시 노드에 의해 송신된 부분 키를 수신하도록 구성된다. 여기서, 상기 부분 키는, 상기 제2 프록시 노드가 상기 요청 노드의 아이덴티티에 기초하여, 상기 요청 노드가 데이터에 접근할 권리가 있다는 것을 검증한 후에 상기 제2 프록시 노드에 의해 생성되어 송신되고, k≤m임 -;
상기 프로세서는 구체적으로, 상기 적어도 k개의 부분 키를 복구하여 변환 키를 생성하고; 상기 변환 키와 암호화 알고리즘을 이용하여, 상기 암호화된 제1 암호문을 암호화된 제2 암호문으로 변환하도록 구성되며 - 여기서, 상기 암호화된 제2 암호문은 상기 요청 노드의 공개 키를 이용하는 암호화에 의해 생성됨 -;
상기 송수신기는 구체적으로, 상기 암호화된 제2 암호문을 상기 요청 노드에 송신하도록 구성된다.
제5 양태를 참조하여, 제5 양태의 또 다른 구현에서, 상기 프로세서는 구체적으로, 상기 제1 프록시 노드가 k개 미만의 제2 프록시 노드에 의해 송신된 부분 키를 수신하거나 또는 적어도 하나의 제2 프록시 노드에 의해 피드백된 거부 메시지를 수신하면, 상기 송수신기를 이용하여 액세스 거부 메시지를 상기 요청 노드에 송신하도록 구성된다.
제5 양태를 참조하여, 제5 양태의 또 다른 구현에서, 상기 송수신기는 구체적으로, 상기 블록체인 네트워크 상의 임의의 블록체인 노드를 이용하여 포워딩된 상기 제1 요청 메시지를 수신하도록 구성된다.
또한, 상기 네트워크 노드가 상기 제1 프록시 노드이면, 상기 송수신기는 상기 제1 프록시 노드로부터 권한 검증 요청을 수신하도록 구성되고 - 여기서, 상기 권한 검증 요청은 상기 요청 노드의 아이덴티티와 암호화된 제1 암호문을 포함하고, 상기 암호화된 제1 암호문은 상기 액세스될 데이터를 암호화하여 생성됨 -;
상기 프로세서는, 상기 요청 노드의 아이덴티티에 기초하여, 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있는지 여부를 판정하고; 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있지 않으면 상기 제1 프록시 노드의 제1 요청을 거부하거나, 또는 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있으면 상기 부분 키를 생성하도록 구성되며;
상기 송수신기는 추가적으로, 상기 부분 키를 상기 제1 프록시 노드에 송신하도록 구성된다.
선택적으로, 상기 프로세서는 구체적으로, 블록체인 네트워크 상의 암호화된 부분 키를 획득하고 - 여기서, 상기 암호화된 부분 키는 상기 제2 프록시 노드의 공개 키를 이용하여 암호화가 수행된 후에 생성됨 -; 상기 제2 프록시 노드의 개인 키를 이용하여 상기 암호화된 부분 키를 복호화하여 상기 부분 키를 생성하도록 구성된다.
제6 양태에 따르면, 본 출원은 네트워크 노드를 추가로 제공한다. 상기 네트워크 노드는 프로세서, 송수신기, 및 메모리를 포함한다. 상기 네트워크 노드가 데이터 소스 또는 데이터 소유자, 예를 들어 제1 노드인 경우,
상기 송수신기는 제2 노드의 아이덴티티를 획득하도록 구성되고 - 여기서, 상기 아이덴티티는 상기 제2 노드의 권한 부여 정보를 결정하는 데 사용되고, 상기 권한 부여 정보는 허용과 불허용을 포함하고 있음 -;
상기 프로세서는, 상기 권한 부여 정보가 허용이면, 네트워크 노드의 개인 키, 상기 제2 노드의 공개 키, 및 암호화 알고리즘을 이용하여 변환 키를 생성하고; 블록체인 네트워크 상의 프록시 노드의 공개 키를 이용하여 상기 변환 키를 암호화하여 암호화된 부분 키를 생성하며; 제1 트랜잭션 정보를 생성하고, 상기 블록체인 네트워크 상에 상기 제1 트랜잭션 정보를 기록하도록 구성된다.
여기서, 상기 제1 트랜잭션 정보는 상기 제2 노드의 아이덴티티, 상기 제2 노드의 권한 부여 정보, 및 상기 암호화된 부분 키를 포함한다.
제5 양태를 참조하여, 제5 양태의 일 구현에서, 상기 프로세서는 구체적으로, 비밀 공유 알고리즘을 이용하여 상기 변환 키를 n개의 부분 키로 분할하고 - 여기서, n은 1보다 크거나 같은 양의 정수임 -; 상기 블록체인 네트워크로부터 m개의 프록시 노드를 선택하고, 상기 m개의 프록시 노드의 공개 키를 이용하여 상기 n개의 부분 키를 암호화하여 n개의 암호화된 부분 키를 생성하도록 구성된다(m≤n).
제5 양태를 참조하여, 제5 양태의 또 다른 구현에서, 상기 제1 트랜잭션 정보는 상기 m개의 프록시 노드의 아이덴티티, 및 상기 변환 키를 복구하기 위한 부분 키의 최소 개수(k)를 더 포함한다.
제5 양태를 참조하여, 제5 양태의 또 다른 구현에서, 상기 프로세서는 구체적으로, 상기 제1 트랜잭션 정보를 상기 블록체인 네트워크 상의 블록체인 노드에 송신하고, 상기 제1 트랜잭션 정보를 브로드캐스트하고 상기 블록체인 노드를 이용하여 네트워크 전체(network-wide)의 상기 제1 트랜잭션 정보에 대해 합의에 도달하며, 상기 제1 트랜잭션 정보를 저장하도록 구성된다.
제5 양태를 참조하여, 제5 양태의 또 다른 구현에서, 상기 프로세서는 추가적으로, 상기 권한 부여 정보가 불허용이면, 상기 제2 노드의 권한 부여 정보를 취소하고; 제2 트랜잭션 정보를 생성하고, 상기 블록체인 네트워크 상에 상기 제2 트랜잭션 정보를 기록하도록 구성된다. 여기서, 상기 제2 트랜잭션 정보는 상기 제2 노드의 아이덴티티와 상기 제2 노드의 권한 부여 정보를 포함한다.
제5 양태를 참조하여, 제5 양태의 또 다른 구현에서, 상기 프로세서는 추가적으로, 상기 제2 노드의 아이덴티티를 획득하기 전에, 상기 제1 노드의 공개 키와 프록시 재암호화 알고리즘을 이용하여, 액세스될 데이터를 암호화하여 암호화된 제1 암호문을 생성하고; 상기 암호화된 제1 암호문을 상기 블록체인 네트워크 상의 트랜잭션으로 저장하도록 구성된다.
제7 양태에 따르면, 본 출원은 컴퓨터 저장 매체를 추가로 제공한다. 상기 컴퓨터 저장 매체는 명령을 저장할 수 있고; 상기 명령이 실행될 때, 본 출원에서 제공되는 제1 양태 내지 제3 양태와 제1 양태 내지 제3 양태의 구현의 데이터 액세스 권한을 제어하기 위한 방법의 일부 단계 또는 모든 단계가 구현될 수 있다.
제8 양태에 따르면, 본 출원은 명령을 포함하는 컴퓨터 프로그램 제품을 더 제공한다. 상기 명령이 컴퓨터 상에서 실행될 때, 상기 컴퓨터는 전술한 양태의 데이터 전송 방법을 수행한다.
도 1은 본 출원에 따른 패브릭 아키텍처(Fabric architecture)의 개략도이다.
도 2는 본 출원에 따른 임계값 암호체계(threshold cryptosystem)에서의 복호화의 흐름도이다.
도 3은 본 출원에 따라, 클라이언트가 블록 체인 네트워크 상의 데이터 액세스를 요청하기 위한 흐름도이다.
도 4a는 본 출원에 따른 블록 체인 시스템의 개략적인 구조도이다.
도 4b는 본 출원에 따른 데이터 액세스 권한을 제어하는 방법의 흐름도이다.
도 5는 본 출원에 따른 데이터 액세스 권한을 제어하는 다른 방법의 흐름도이다.
도 6a와 도 6b는 본 출원에 따른 데이터 액세스 권한을 제어하는 또 다른 방법의 흐름도이다.
도 7은 본 출원에 따른 프록시 재암호화 시스템에서의 역할을 나타낸 흐름도이다.
도 8a, 도 8b, 및 도 8c는 본 출원에 따른 데이터 액세스 권한을 제어하기 위한 또 다른 방법의 흐름도이다.
도 9는 본 출원에 따른 네트워크 노드의 개략적인 구조도이다.
도 10은 본 출원에 따른 네트워크 노드의 개략적인 장치 다이어그램이다.
당업자가 본 출원의 실시예의 기술적 해결책을 더 잘 이해하게 하고 또한 본 출원의 실시예의 목적, 특징, 및 이점을 더 명확하게 하기 위해, 이하에서는 첨부 도면을 참조하여 본 출원의 실시예의 기술적 해결책에 대해 더 상세하게 설명한다.
먼저, 본 출원의 기본 개념에 대해 상세하게 설명한다.
본 출원의 기술적 해결책은 블록체인에 관한 것이다. 블록체인(Block Chain)은 비트 코인에서 시작된 분산 데이터베이스이며 비트코인의 기반 기술이다. 블록체인은 암호화를 이용하여 연관관계를 통해 생성되는 일련의 데이터 블록이다. 각각의 데이터 블록은 하나의 비트코인 네트워크 트랜잭션(bitcoin network transaction)에 관한 정보를 포함하고, 이 정보는 비트코인 네트워크 트랜잭션의 유효성(위조 방지)을 검증하고 다음 블록(block)을 생성하는 데 사용된다.
좁은 의미에서, 블록체인은 데이터 블록을 시간순으로 결합하여 얻어지는 체인형 데이터 구조이고, 암호화를 이용하여 변조나 위조로부터 보호되는 분산 원장(distributed ledger)이다. 넓은 의미에서, 블록체인은 복수의 독립적인 분산 노드를 이용하여 동일한 레코드를 저장하는 분산 원장이다.
블록체인 기술은 탈중앙화 및 비신뢰 방식으로 신뢰할 수 있는 데이터베이스를 집합적으로 유지하는 기술적 해결책이다. 새로운 데이터가 블록체인에 기록될 필요가 있을 때마다, 데이터는 블록으로 집계되어 기존 블록체인의 끝에 추가된다. 합의 알고리즘이 새로 추가된 노드 블록이 동일하다는 것을 보장하는 데 사용된다.
여러 개의 트랜잭션 레코드가 각각의 블록에 기록되고, 각각의 블록은 이전 블록의 해시 값(hash)을 포함한다. 모든 블록에 대해, 이전 블록의 정보가 이 방식으로 저장되고, 이러한 블록들이 순차적으로 연결되어 블록체인을 형성한다. 블록체인은 변조되기 어렵다. 블록체인 기술에 기초하여, 신뢰할 수 있는 제3자 중앙 집중식 중개자가 거래에 참여할 필요가 없을 수 있도록, 합의에 도달할 수 있는 두 당사자에 의해 트랜잭션(Transaction, Tx)이 직접 만들어진다.
스마트 계약(smart contract)은, 분산 블록체인 원장에서 실행되고 이 원장의 데이터를 관리할 수 있는 이벤트 중심의 상태 기반(stateful) 프로그램이다. 컴퓨터 실행가능 프로그램이 정확하게 자동으로 실행될 수 있으면, 스마트 계약은 일반적인 컴퓨터 실행가능 프로그램으로 간주될 수 있다. 스마트 계약의 코드 내용이 트랜잭션 규칙과 논리를 명시한다. 사용자가 스마트 계약에 서명하여 이를 호출하는 경우, 이는 계약 내용이 실행되고 블록체인 원장에 기록되어야 한다는 것을 의미한다.
블록체인의 핵심 기술 중 하나가 합의 알고리즘, 예를 들어 비트 코인에 사용되는 작업 증명(Proof of Work, PoW) 알고리즘이다. 블록체인 상의 합의 알고리즘은 비잔틴 내결함성(Byzantine fault tolerance)을 지향하는 합의 시나리오에 적용된다. 즉, 블록체인 네트워크 상의 노드가 서로를 신뢰하지 않고, 악의적인 라이어 노드(liar node)가 있을 수 있다. 블록체인 네트워크 상의 각각의 노드가 "라이어" 노드일 수 있다. 하지만, 다수의 노드가 하나의 네트워크에 모이면, 노드의 합의 결과가 신뢰할 수 있는 결과이다. 합의 알고리즘의 주요 기능은 블록체인 상의 모든 노드가 유효한 트랜잭션 블록의 동일한 내용을 기록할 수 있게 하는 것이다.
또한, 블록체인은 복수의 당사자 간의 신뢰 문제를 해결하기 위한 기술적 메커니즘이기도 하다. 다자간 신뢰의 전제 조건은 기술 메커니즘이 신뢰할 수 있다는 것이다. 따라서, 블록체인은 감사 가능할 필요가 있다. 블록체인 시스템, 스마트 계약, 및 합의 알고리즘은 오픈 소스일 필요가 있으며 복수의 당사자에게 개방되어야 한다.
하이퍼레저(Hyperledger)의 패브릭 프로젝트(Fabric project)가 합의 도달을 가속화하는 메커니즘을 사용한다. 이 메커니즘의 핵심은 복수의 엔도저 피어(endorser peer)가 스마트 계약을 실행하고 실행 결과를 보증하는 것(endorsement)이다. 예를 들어, 엔도저 피어가 엔도저 피어의 계약 실행 결과 내용에 서명하여, 이 결과가 특정 엔도저 피어에 의해 송신되었다는 것을 보장한다. 사용자가 실제 요구사항에 기초하여, 사용자의 스마트 계약에 의해 신뢰될 엔도저 피어와 복수의 결과에 대한 검증 정책, 예를 들어 보증 정책(endorse policy)을 설정할 수 있다.
도 1에 도시된 바와 같이, 클라이언트가 스마트 계약 실행 제안(proposal)을 3개의 엔도저 피어에 송신할 수 있다. 보증 정책은 3개의 실행 결과의 내용이 일치해야 한다는 것을 요구할 수 있거나, 또는 적어도 2개의 실행 결과의 내용이 일치해야 한다는 것을 요구할 수 있다. 클라이언트는 엔도저 피어에 의해 피드백된 실행 결과를 수집하고, 오더러 피어(Orderer peer)를 이용하여, 트랜잭션에 기록된 실행 결과를 블록체인 네트워크에 브로드캐스트한다. 블록체인 네트워크 상의 노드, 예를 들어 엔도저 피어가 보증 정책이 만족된 것을 검증할 때 이 트랜잭션을 유효한 트랜잭션으로 간주하고, 이 트랜잭션 내의 데이터에 대한 수정을 수락하며, 이러한 수정을 블록체인에 기록합니다.
클라이언트(client) 또는 클라이언트 애플리케이션은 소프트웨어 개발 키트(Software Development Kit, SDK)를 이용하여 패브릭 시스템과 상호 작용하고, 유효한 트랜잭션을 구성하며, 트랜잭션을 엔도저 피어에 제공한다. 엔도저 피어로부터 보증 정책에 필요한 충분한 지원이 수집된 후에, 유효한 트랜잭션 제안이 구성되어 오더러 피어 또는 프록시 노드에 송신될 수 있다.
엔도저 피어(endorser peer)는 클라이언트로부터의 트랜잭션의 유효성과 권한의 검사를 담당하고 있다. 트랜잭션이 요구사항을 만족하면, 엔도저 피어가 트랜잭션에 서명하고 클라이언트에 결과를 반환한다.
오더러 피어(orderer peer)는 트랜잭션을 주문하고, 주문된 트랜잭션을 다른 노드에 브로드캐스트하는 역할을 한다. 오더러 피어는 합의 서비스를 제공하는 노드 또는 클러스터를 포함한다.
커미터 피어(committer peer)는 합의된 시퀀스를 가지고 있는 배치 트랜잭션 결과(batch transaction result)의 상태를 검사하도록 구성되고, 트랜잭션이 보증 정책의 요구사항을 만족하는지 여부를 검사하며, 원장의 판독 세트 내의 변수의 상태가 바뀌지 않고 유지되도록 보장하고, 유효한 트랜잭션을 실행하며, 블록을 생성하며, 원장에 블록을 기입한다.
정보 전송의 보안과 아이덴티티 검증의 정확도를 개선하기 위해, 본 출원의 기술적 해결책은 임계값 암호체계(Threshold cryptosystem)에 관한 것이다. 임계값 암호체계는 공개 키에 대응하는 개인 키를 복수의 멤버들 간에 공유하고, 공개 키를 이용하여 암호화된 암호문은, 지정된 수의 멤보가 서로 협력할 때 복호화될 수 있다. 임계값 암호체계의 기초가 비밀 공유(secret sharing)이다.
구체적으로, 임계값 암호체계의 솔루션이 키를 여러 개의 셰어(share), 예를 들어 n개의 셰어로 분할하고, 이러한 셰어를 하나씩 n개의 참여자에게 송신하는 것이다. 임의의 t(t<n)개의 참여자 또는 n개의 참여자 중 t개 이상의 참여자가 협력하여 복호화 연산을 완료할 수 있지만, t명 미만의 참여자는 복호화 연산을 완료할 수 없다.
이하, 임계값 패스워드 시스템에서의 모든 역할과 복호화 과정의 기능에 대해 설명한다.
도 2는 임계값 암호체계에서의 복호화를 개략적으로 나타낸 흐름도이다. 임계값 암호체계는 키 배포자(key distributor), 키 참여자(key participant), 및 키 합성자(key synthesizer)를 포함한다. 또한, 키 배포자가 임계값 암호체계의 신뢰할 수 있는 엔티티를 구축하도록 구성되고, 임계값 암호체계에서 파라미터를 생성하고 세션 키를 이용하여 이러한 파라미터를 키 공유자에게 안전하게 송신하는 것을 담당하고 있다. 키 참여자는 임계값 암호체계에서 복호화에 참여하는 단일 엔티티이다. 키 합성자는 복수의 참여자의 복호화된 셰어를 획득하고, 이러한 복호화된 셰어를 검증하고 복호화한다.
예를 들어, 도 2에 도시된 바와 같이, 단계 1: 임계값 초기화 설정. 키 배포자가 보안 파라미터를 입력하고, 임계값 암호체계가 공개 파라미터의 그룹(PK로 표현될 수 있음), 예를 들어 n, t, 및 SK를 반환한다. n은 키 참여자 수를 나타내고, t는 임계값을 나타내며, SK는 임계값 패스워드 시스템에 의해 생성된 1차 키(primary key)를 나타낸다. 선택적으로, SK= (SK1, SK2, … , SKn)이다.
단계 2: 암호화. 임계값 암호체계의 공개 파라미터(PK)와 키 참여자의 아이덴티티(ID)를 이용하여 평문 메시지를 암호화하고, 암호화된 암호문(c)를 생성하여 출력한다.
단계 3: 키 셰어 생성(Share key Gen). 키 배포자가 시스템의 공개 파라미터(PK), 암호화된 암호문(c), 및 1차 키(SK)를 이용하여 키 셰어(Ui)를 계산한다.
단계 4: 키 배포자가 키 셰어(Ui)를 여러 개의 키 참여자에 송신한다.
단계 5: 키 참여자가 키 셰어(Ui)를 획득하고, 각각의 키 참여자가 키 셰어(Ui)를 복호화하여 복호화된 셰어, 예를 들어 복호화된 셰어 1, … , 및 복호화된 셰어 t를 생성한다.
단계 6: 각각의 키 참여자가 복호화 후에 생성된 복호화된 셰어를 키 합성자에 송신한다.
단계 7: 공동 복호화. 키 합성자가 복호화된 셰어를 획득한다. 예를 들어, 키 합성자가 t개의 복호화된 셰어를 획득하고, t개의 복호화된 셰어를 검증하며, 공개 파라미터(PK)를 이용하여 t개의 복호화된 셰어를 합성하여 암호화된 암호문(c)을 획득하고, 암호화된 암호문를 최종적으로 복호화하여 평문 메시지를 획득한다.
본 출원에서 제공되는 기술적 해결책은 다음의 기술적 문제를 해결하는 것을 목표로 한다. 일단 블록체인 상의 액세스 권한이 부여되어 전달되면, 이 액세스 권한이 변경되거나 또는 철회될 수 없고, 따라서 이 권한이 부여되지 않은 사용자가 데이터에 액세스할 수 있다. 구체적으로, 클라이언트가 데이터에 액세스하도록 요청하고 블록체인 네트워크 상의 암호문을 복호화하는 과정은 다음과 같다.
도 3에 도시된 바와 같이, 단계 1: 사용자 A가 클라이언트 1의 등록 정보를 이용하여 정보, 예를 들어 평문 정보를 생성한다.
단계 2: 클라이언트 1이 대칭 키를 이용하여 정보를 암호화한다.
단계 3: 클라이언트 1이 암호화된 정보를 송신하고, 블록체인 노드 1에서, 암호화된 정보를 블록체인 상의 트랜잭션으로 기록한다.
단계 4: 블록체인 노드 1이 트랜잭션을 검증하여 브로드캐스트한다.
단계 5: 블록체인 노드 1, 및 블록체인 노드 2와 블록체인 노드 3이 트랜잭션을 포함하는 블록에 대해 합의에 도달한다. 블록체인 노드 1, 블록체인 노드 2, 및 블록체인 노드 3은 동일한 블록체인에 위치하는 노드이다.
이 합의는 다음과 같이 이해할 수 있다. 블록체인 노드 1, 블록체인 노드 2, 블록체인 노드 3은 트랜잭션이 정책을 만족하는지 여부를 개별적으로 검사하고, 대응하는 검증 결과를 생성한다. 여기서, 3개의 블록체인 노드에서 생성된 검증 결과가 동일하다.
단계 6: 블록체인 노드가 블록체인 노드 1, 블록체인 노드 2, 블록체인 노드 3에 의해 생성된 검증 결과가 동일하다는 것을 확인하여 블록을 생성하고, 이 블록을 로컬 원장 내의 기존 블록체인의 체인형 구조의 끝에 추가한다.
단계 7: 사용자 B가 클라이언트 2를 이용하여 정보, 예를 들어 평문 정보를 획득한다.
단계 8: 클라이언트 2가 클라이언트 1로부터, 사용자의 액세스 권한(B)을 획득하도록 요청하여 평문 정보에 액세스한다.
단계 9: 클라이언트 1이 액세스 권한 정보를 클라이언트 2에 송신한다. 여기서, 액세스 권한 정보는 대칭 키를 포함한다.
단계 10: 클라이언트 2가 블록체인 노드 3으로부터, 블록체인 원장에 저장된 암호화된 정보를 획득하도록 요청한다.
단계 11: 클라이언트 2가 암호화된 정보를 대칭 키를 이용하여 복호화한다.
접근 권한을 전달하고 데이터를 복호화하는 전술한 과정에서, 블록체인 노드 내의 원장의 과거의 트랜잭션 데이터가 수정되거나 또는 삭제될 수 없고, 블록체인 상의 데이터가 공개되어 취소될 수 없기 때문에, 일단 액세스 권한이 사용자에게 부여되고 복호화 키가 배포되면, 액세스 권한이 철회될 수 없다. 이 경우, 사용자의 접근 권한이 금지되어야 할 때, 사용자가 데이터에 접근하지 못하게 할 수 없어서, 권한이 부여되지 않은 사용자가 데이터를 액세스할 때 위험과 불안정을 초래한다.
전술한 문제를 해결하기 위해, 본 출원의 실시예의 기술적 해결책의 주요 아이디어가 복수의 프록시 노드를 블록체인 시스템에 추가하는 것이다. 공통 노드의 기능 외에도, 각각의 프록시 노드가 추가적으로, 사용자의 액세스 권한을 공동으로 확인하고 암호문 변환 작업을 수행하도록 구성된다.
도 4에 도시된 바와 같이, 블록체인 시스템이 데이터 소스 또는 데이터 소유자, 적어도 하나의 프록시 노드(Proxy), 복수의 공통 노드, 및 데이터 요청 노드를 포함한다. 데이터 소스 또는 데이터 소유자는 데이터의 저장자와 액세스 권한의 부여 당사자이다. 공통 노드는 브로드캐스팅, 합의에 도달하는 것, 블록체인 상에 트랜잭션을 기록하고 저장하는 것과 같은 기능을 수행하도록 구성될 수 있다. 사용자 요청 노드는 데이터를 액세스하도록 요청하는 노드 또는 클라이언트이다.
본 출원에서 제공되는 기술적 해결책은 주로 3가지 절차, 즉 데이터 저장, 권한 부여, 및 데이터 요청을 포함한다. 일반적으로, 우선, 데이터 소스(data source) 또는 데이터 소유자가 원본 암호문을 암호화하고, 원본 암호문을 블록체인 상에 기록하고 저장한다.
다음, 데이터 소스 또는 데이터 소유자가 권한을 부여할 때, 데이터 소스 또는 데이터 소유자가 권한 정보를 블록체인에 기입하고, 권한이 부여된 노드에 대응하는 변환 키를 생성한다. 데이터 소스 또는 데이터 소유자가 변환 키를 여러 개의 부분으로 분할하고, 이러한 부분을 서로 다른 프록시 노드에 송신한다.
최종적으로, 데이터 요청 노드가 데이터를 액세스하도록 요청할 때, 프록시 노드가 합의를 개시하고, 데이터 요청 노드의 최신 액세스 권한을 판독하며, 데이터 요청 노드가 권한을 가지고 있는지 여부를 검사한다. 데이터 요청 노드가 권한을 가지고 있으면, 프록시 노드는 변환 키를 수집하고, 원본 암호문을 권한이 부여된 노드에 의해서만 복호화될 수 있는 다른 암호문으로 변환하며, 다른 암호문을 요청 노드에 반환한다. 데이터 요청 노드가 권한을 가지고 있지 않으면, 액세스가 거부된다.
본 출원의 다음 실시예에서, 모든 네트워크 장치를 집합적으로 네트워크 노드라고 한다는 것을 유의해야 한다. 네트워크 노드는 요청 메시지를 송신하는 제1 노드와 제2 노드일 수 있거나, 또는 블록체인 상의 블록체인 노드, 예를 들어 제1 블록체인 노드 또는 제1 프록시 노드, 포워딩을 위한 릴레이 노드, 또는 임의의 공통 노드일 수 있거나, 또는 데이터 소스일 수 있다.
또한, 네트워크 노드는 스테이션, 기지국, 사용자 장비, 클라이언트, 및 단말기를 포함하지만 이에 제한되지 않는다. 그리고, 본 출원의 실시예의 2가지 개념, 즉 장치와 노드가 동일하다. 즉, 디바이스가 노드, 스테이션, UE, 네트워크 엘리먼트 디바이스, 또는 센서 등을 지칭할 수 있다.
본 출원에서 설명된 블록체인과 블록체인 시스템은 다양한 네트워크(예를 들어, 사물 인터넷)에 적용될 수 있고, 블록 또는 블록체인 노드는 다양한 네트워크 장치(예를 들어, 사물 인터넷 장치)에 배치될 수 있다. 네트워크 장치는 산업용 사물 인터넷 장치, 예를 들어 다양한 산업용 센서와 제어 모듈일 수 있거나, 또는 웨어러블 장치, 가전 제품, 홈 센서, 또는 홈 제어 모듈 등일 수 있거나, 또는 기지국, 향상된 기지국(enhanced base station), 스케줄링 기능이 있는 중계기, 또는 기지국 기능이 있는 디바이스 등일 수 있다. 기지국은 LTE 시스템의 진화된 NodeB(evolved Node B, eNB)이거나, 또는 다른 시스템의 기지국일 수 있다. 본 출원의 실시예에서는 이에 대해 제한하지 않는다.
또한, 다양한 디바이스는 사용자 장비(user equipment, UE), 예를 들어 휴대폰, 지능형 단말기, 멀티미디어 장치, 및 스트리밍 미디어 장치일 수 있다. 대안적으로, UE는 다른 무선 네트워크 장치, 예를 들어 NodeB(Node B)일 수 있다. 구체적으로, 본 출원에서는 무선 네트워크 장치의 형태와 종류에 대해 제한하지 않는다.
UE가 무선 액세스 네트워크(radio access network, RAN)를 통해 하나 이상의 코어 네트워크와 통신할 수 있거나, 또는 UE가 통신을 위해 다른 방식으로 무선 네트워크에 추가로 액세스할 수 있거나, 또는 UE가 다른 UE와 무선 통신을 직접 수행할 수 있다. 본 출원의 본 실시예에서는 이에 대해 제한하지 않는다.
도 4b를 참조하면, 본 출원의 실시예는 데이터 액세스 권한을 제어하기 위한 방법을 제공한다. 데이터 액세스 권한을 제어하기 위한 방법은 다음의 단계를 포함한다.
단계 401: 제1 프록시 노드가 요청 노드로부터 제1 요청 메시지를 수신한다. 여기서, 제1 요청 메시지는 요청 노드의 아이덴티티와 액세스될 데이터의 식별자를 포함한다.
일 구현이, 제1 프록시 노드가 임의의 블록체인 상의 블록체인 노드 네트워크를 이용하여 포워딩된 제1 요청 메시지를 수신하는 단계를 포함한다.
단계 402: 제1 프록시 노드가 액세스될 데이터의 식별자에 기초하여 블록체인 네트워크 상의 암호화된 제1 암호문을 결정하고, 요청 노드의 아이덴티티에 기초하여, 요청 노드가 암호화된 제1 암호문을 판독할 권한을 가지고 있는지 여부를 판정한다.
단계 402에서, 요청 노드의 아이덴티티에 기초하여, 요청 노드가 암호화된 제1 암호문을 판독할 권한을 가지고 있는지 여부를 판정하는 단계는, 블록체인 상에서, 요청 노드의 아이덴티티에 기초하여 요청 노드의 권한 부여 정보를 판독하는 단계 - 권한 부여 정보가 블록체인 상의 체인형 저장 구조의 끝에 가장 가깝고, 권한 부여 정보는 허용 또는 불허용을 포함하고 있음 -를 포함한다.
단계 403: 요청 노드가 암호화된 제1 암호문을 판독할 권한을 가지고 있으면, 즉 권한 부여 정보가 허용이면, 제1 프록시 노드가 적어도 하나의 제2 프록시 노드 쪽으로 요청 노드에 대한 권한 검증 요청을 개시하고, 적어도 하나의 제2 프록시 노드의 피드백 결과에 기초하여, 암호화된 제1 암호문의 프로비저닝(provisioning)을 결정한다.
또한, 제1 프록시 노드가, 요청 노드가 암호화된 제1 암호문을 판독할 권한을 가지고 있지 않다고 결정하면, 제1 프록시 노드가 요청 노드의 제1 요청을 거부한다.
단계 403에서, 제1 프록시 노드가 적어도 하나의 제2 프록시 노드 쪽으로 요청 노드에 대한 권한 검증 요청을 개시하는 단계는,
제1 프록시 노드가 m개의 제2 프록시 노드를 결정하는 단계 - m은 1보다 큰 양의 정수임 -; 권한 검증 요청을 생성하는 단계 - 권한 검증 요청은 요청 노드의 아이덴티티와 암호화된 제1 암호문을 포함하고, 암호화된 제1 암호문은 액세스될 데이터을 암호화하여 생성됨 -; 및 권한 검증 요청을 m개의 제2 프록시 노드 각각에 송신하는 단계를 포함한다.
선택적으로, 제1 프록시 노드가 적어도 하나의 제2 프록시 노드의 피드백 결과에 기초하여, 암호화된 제1 암호문의 프로비저닝을 결정하는 단계는,
제1 프록시 노드가 적어도 k개의 제2 프록시 노드에 의해 송신된 부분 키를 수신하는 단계 - 제2 프록시 노드가 요청 노드의 아이덴티티에 기초하여, 요청 노드가 데이터에 접근할 권한을 가지고 있다는 것을 검증한 후에, 부분 키가 제2 프록시 노드에 의해 생성되어 송신되고, k≤m임 -; 적어도 k개의 부분 키를 복구하여 변환 키를 생성하는 단계; 변환 키와 암호화 알고리즘을 이용하여, 암호화된 제1 암호문을 암호화된 제2 암호문으로 변환하는 단계 - 암호화된 제2 암호문은 요청 노드의 공개 키를 이용하는 암호화에 의해 생성됨 -; 및 암호화된 제2 암호문을 요청 노드에 송신하는 단계를 포함한다.
또한, 제1 프록시 노드가 적어도 하나의 제2 프록시 노드의 피드백 결과에 기초하여, 암호화된 제1 암호문의 프로비저닝을 결정하는 단계는, 제1 프록시 노드가 k개 미만의 제2 프록시 노드에 의해 송신된 부분 키를 수신하거나 또는 적어도 하나의 제2 프록시 노드에 의해 피드백된 거부 메시지를 수신하면, 액세스 거부 메시지를 요청 노드에 송신하는 단계를 포함한다.
본 실시예에서 제공된 이 방법에 따르면, 데이터 소스가 암호문 수정 없이 자유롭게 요청 노드의 권한을 부여하거나 또는 철회할 수 있도록, 프록시 노드가 블록체인 네트워크에 추가된다. 즉, 프록시 노드가 블록체인 상의 요청 노드의 최신 권한을 판독하여 액세스 요청을 인가하거나 또는 거부할지 여부를 판정한다. 최신 권한이 액세스 거부이면, 사용자가 데이터에 계속 액세스하지 못하게 함으로써 네트워크의 정보 보안을 보장할 수 있다.
또한, 단 하나의 제1 프록시 노드가 검증에 사용될 때 부정 행위가 일어날 가능성이 방지될 수 있도록, 요청자의 아이덴티티가 적어도 하나의 제2 프록시 노드를 이용하여 추가로 검증됨으로써, 검증 정확도를 추가로 개선하고 또한 정보 전송의 보안을 추가로 보장한다.
제2 프록시 노드가 제1 프록시 노드로부터 권한 검증 요청을 수신한다. 여기서, 권한 검증 요청은 요청 노드의 아이덴티티와 암호화된 제1 암호문을 포함하고, 암호화된 제1 암호문은 액세스될 데이터를 암호화하여 생성된다.
제2 프록시 노드가 요청 노드의 아이덴티티에 기초하여, 요청 노드가 암호화된 제1 암호문을 판독할 권한을 가지고 있는지 여부를 판정하고; 요청 노드가 암호화된 제1 암호문을 판독할 권한을 가지고 있지 않으면, 제2 프록시 노드가 제1 프록시 노드의 제1 요청을 거부하거나, 또는 요청 노드가 암호화된 제1 암호문을 판독할 권한을 가지고 있으면, 제2 프록시 노드가 부분 키를 생성하고, 부분 키를 제1 프록시 노드에 송신한다.
선택적으로, 부분 키를 생성하는 단계는, 제2 프록시 노드가 블록체인 네트워크 상의 암호화된 부분 키를 획득하는 단계 - 제2 프록시 노드의 공개 키를 이용하여 암호화가 수행된 후에, 암호화된 부분 키가 생성됨 -; 및 제2 프록시 노드가 제2 프록시 노드의 개인 키를 이용하여, 암호화된 부분 키를 복호화하여 부분 키를 생성하는 단계를 포함한다.
본 실시예에서, 제1 프록시 노드가 요청 노드의 액세스가 허용된다는 것을 검증할 때, 제2 프록시 노드가 요청 노드의 권한을 추가로 검증한다. 요청 노드의 액세스가 허용된다는 것을 검증할 때, 제1 프록시 노드가 부분 키를 수집하고 최종 변환 키를 합성할 수 있도록, 제2 프록시 노드가 생성된 부분 키를 제1 프록시 노드에 송신함으로써, 제1 프록시 노드의 부정 행위를 효과적으로 방지하고 또한 검증의 보안을 개선한다.
특정 실시예에서, 본 출원에 개시된 기술적 해결책이 전술한 3개 부분의 절차에 따라 상세하게 설명된다.
a. 데이터 저장 절차
"데이터 저장 절차"에서 작업을 수행하는 엔티티가 데이터 소스 또는 데이터 소유자일 수 있거나, 또는 데이터를 저장하고 권한을 부여하는 기능을 가진 다른 노드일 수 있다. 본 실시예에서, "제1 노드"는 데이터 저장 과정을 수행하기 위한 엔티티를 나타내는 데 사용된다. 예를 들어, 데이터 소유자와 같은 다른 명칭이 사용될 수도 있다고 이해할 수 있을 것이다. 본 출원에서는 이에 대해 제한하지 않는다.
공개 키 암호화 기술이 데이터 저장 절차에 사용된다. 특히, 공개 키 암호화(Public key cryptograph)는 암호화 알고리즘인 비대칭 암호화(asymmetric cryptography)라고도 할 수 있고, 주로 2개의 키, 즉 "공개 키"라고 하는 공개 키와 "개인 키"라고하는 개인 키를 포함한다.
2개의 키는 서로 다른 기능을 가지고 있다. 하나는 암호화에 사용되고, 다른 하나는 복호화에 사용된다. 예를 들어, 이러한 키 중 하나가 평문을 암호화하여 암호화된 암호문을 얻는 데 사용되고, 대응하는 다른 키를 이용하여 복호화를 통해서만 원본 평문이 얻어질 수 있다. 즉, 암호화 키는 암호문을 복호화하고 데이터에 액세스하는 데 사용될 수 없다. 일반 텍스트를 암호화하고 복호화하는 데 2개의 서로 다른 키가 사용되기 때문에, 이 과정을 비대칭 암호화라고도 할 수 있다. 동일한 키가 암호화와 복호화에 사용되는 대칭 암호화에 비해, 비대칭 암호화 방식의 보안성이 우수하다. 2개의 키 중 하나를 얻더라도 암호화된 암호문이 복호화될 수 없고, 다른 키가 계산될 수 없기 때문이다. 따라서, 공개 키는 다른 사람에게 공개되고 릴리스될 수 있다. 예를 들어, 공개 키는 블록체인에 기록될 수 있다. 개인 키는 클라이언트 또는 UE에 의해 유지된다.
"데이터 저장 절차"에서, 제1 노드가 주로 다음의 방법 과정을 수행한다.
제1 노드가 제1 노드의 공개 키와 암호화 알고리즘, 예를 들어 프록시 재암호화 알고리즘을 이용하여 암호문을 암호화하여 암호화된 제1 암호문(Ea)을 생성하고;
제1 노드가 암호화된 제1 암호문(Ea)을 블록체인 네트워크 상의 트랜잭션(transaction)으로 저장한다.
선택적으로, 트랜잭션 저장 방식에서, 제1 노드가 블록체인 네트워크 상의 임의의 공통 노드에 트랜잭션 요청을 송신하고 - 여기서, 트랜잭션 요청은 암호화 된 제1 암호문(Ea)을 포함하고 있음 -; 블록체인 상의 모든 블록체인 노드가 합의에 도달하고 암호화된 제1 암호문(Ea)의 관련 트랜잭션을 저장할 수 있도록, 트랜잭션 요청을 수신한 공통 노드가 블록체인 네트워크 상의 트랜잭션 요청을 브로드 캐스트한다.
또한, 선택적으로, 다른 트랜잭션 저장 방식에서, 제1 노드가 암호화된 제1 암호문을 포함하는 트랜잭션 요청을 임의의 프록시 노드, 예를 들어 제1 프록시 노드에 직접 송신하고, 제1 프록시 노드가 트랜잭션을 브로드캐스하고 블록체인 상의 트랜잭션에 대해 합의에 도달한다.
b. 권한 부여 절차
도 5에 도시된 바와 같이, 데이터 액세스 권한을 제어하는 방법이 다음의 단계를 포함한다.
단계 501: 제1 노드가 제2 노드의 아이덴티티(I)와 암호화된 제1 암호문(Ea)에 대한 제2 노드의 액세스 권한 정보(R)를 기록한다.
제2 노드는 인가된 사용자이고, 제2 노드의 아이덴티티(I)는 제2 노드 식별자, 또는 사용자 ID 장치 ID, 또는 장치 식별자일 수 있다. 액세스 권한 정보(R)는 권한을 부여하는 것과 권한을 취소하는 것을 포함한다.
단계 502: 액세스 권한 정보(R)가 권한을 부여하거나 또는 권한을 취소하는 내용을 포함하는지 여부를 판정한다.
단계 503a: 액세스 권한 정보(R)가 권한을 부여하는 내용을 싣고 있으면, 제1 노드가 제1 노드의 개인 키, 제2 노드의 공개 키, 및 암호화 알고리즘을 이용하여 변환 키를 생성한다.
단계 503b: 액세스 권한 정보(R)가 권한을 취소하는 내용을 싣고 있으면, 제1 노드가 트랜잭션 요청을 블록체인 네트워크 상의 임의의 노드에 송신한다. 여기서, 트랜잭션 요청은 액세스 권한 정보(R)와 제2 노드의 아이덴티티(I)를 포함한다.
단계 504: 단계 503a의 절차를 계속 진행한다. 제1 노드는 비밀 공유 알고리즘을 이용하여 변환 키(T)를 n개의 부분 키로 분할한다. 여기서, n은 1보다 크거나 같은 양의 정수이다.
선택적으로, 변환 키(T)는 (m, Tn)으로 분할된다. Tn은 분할을 통해 얻어진 부분 키를 나타내고, m은 변환 키(T)를 복구하는 데 사용될 수 있는 최소 개수(Tn)를 나타낸다.
단계 505: 제1 노드가 블록체인 네트워크로부터 m개의 프록시 노드를 무작위로 선택하고, m개의 프록시 노드의 공개 키를 이용하여 n개의 부분 키(Tn)를 암호화하여 n개의 암호화된 부분 키(Tne)를 생성한다(m≤n).
단계 506: 제1 노드가 제1 트랜잭션 정보를 생성하고, 제1 트랜잭션 정보를 임의의 공통 노드 또는 블록체인 노드에 송신한다. 여기서, 제1 트랜잭션 정보는 제2 노드의 아이덴티티(I), 제2 노드의 권한 부여 정보(또는 액세스 권한 정보(R)), 및 암호화된 부분 키(Tne) 중 적어도 하나를 포함한다.
선택적으로, 제1 트랜잭션 정보는 m개의 프록시 노드의 아이덴티티, 및 변환 키를 복구하기 위한 부분 키(Tne)의 최소 개수(m)를 더 포함한다.
단계 507: 공통 노드 또는 프록시 노드가 제1 트랜잭션 정보(I, R, Tne, m)를 블록체인 네트워크 상에 브로드캐스트하고 저장하거나, 또는 단계 503b의 절차에 기초하여 트랜잭션 요청(I, R)을 브로드캐스트하고 기록한다.
c. 데이터 요청 절차
이 "데이터 요청 절차"는, 요청 노드가 블록체인 쪽으로 데이터 액세스 요청을 개시하는 과정을 개시하고, 인가된 액세스가 만족될 때 암호화된 암호문을 복호화하여 액세스하는 과정을 설명한다. 구체적으로, 도 6에 도시된 바와 같이, 이 절차는 다음의 단계를 포함한다.
단계 601: 데이터 요청 노드가 제1 요청 메시지를 임의의 공통 노드에 송신한다. 여기서, 제1 요청 메시지는 요청 노드의 아이덴티티(I)와 액세스될 데이터의 식별자, 또는 액세스될 데이터의 식별자에 대응하는 암호화된 제1 암호문(Ea)을 포함한다.
단계 602: 공통 노드가 제1 요청 메시지을 수신하여 제1 프록시 노드(Pm)에 포워딩한다.
선택적으로, 제1 프록시 노드(Pm)는 이 요청의 1차 노드의 역할을 할 수 있다.
단계 603: 제1 프록시 노드(Pm)가 제1 요청 메시지를 수신하고, 제1 요청 메시지에 실리는 액세스될 데이터의 식별자에 기초하여 블록체인 네트워크 상의 암호화된 제1 암호문(Ea)을 결정하며, 요청 노드의 아이덴티티(I)에 기초하여, 요청 노드가 암호화된 제1 암호문(Ea)을 판독할 권한을 가지고 있는지 여부를 판정한다.
예를 들어, 제1 프록시 노드(Pm)가 블록체인 상에서, 요청 노드의 아이덴티티(I)에 기초하여 요청 노드의 권한 부여 정보를 판독한다. 여기서, 권한 부여 정보는 블록체인 상의 체인형 저장 구조의 끝에 가장 가깝고, 권한 부여 정보는 허용 및 불허용을 포함한다.
선택적으로, 복수 개의 권한 부여 정보가 있으면, 번호가 가장 큰 블록에 위치하는 권한 부여 정보가 사용된다.
단계 604a: 데이터 요청 노드가 권한을 가지고 있지 않거나 또는 액세스가 허용되지 않으면, 데이터 요청 노드의 이 액세스 요청을 거부한다.
단계 604b: 데이터 요청 노드가 권한을 가지고 있거나 또는 액세스가 허용되면, 적어도 하나의 제2 프록시 노드(P) 쪽으로 요청 노드에 대한 권한 검증 요청을 개시한다.
제2 프록시 노드의 선택이 블록체인 상에 사전 설정되거나, 또는 블록체인 시스템은 블록체인 노드가 서로를 발견할 수 있다는 것을 디폴트로 고려한다.
또한, 블록체인 노드가 서로를 발견할 수 있다는 것을 디폴트로 고려한다는 것은, 제1 프록시 노드가 트랜잭션 정보, 예를 들어 "권한 부여 절차"에서 블록체인 상에 저장된 제1 트랜잭션 정보를 이용하여, 부분 키(Tn)를 암호화하고 암호화된 부분 키(Tne)를 생성하는 특정 제2 프록시 노드를 학습하고, 그런 다음 권한 검증 요청을 이러한 제2 프록시 노드 각각에 송신할 수 있다는 것을 의미한다.
권한 검증 요청은 요청 노드의 아이덴티티(I)와 암호화된 제1 암호문(Ea)을 포함한다.
단계 605: 제2 프록시 노드(P)가 제1 프록시 노드(Pm)로부터 권한 검증 요청(I, Ea)을 수신하고, 요청 노드의 아이덴티티(I)에 기초하여, 데이터 요청 노드가 암호화된 제1 암호문(Ea)을 판독할 권한을 가지고 있는지 여부를 판정한다.
암호화된 제1 암호문(Ea)은 액세스될 데이터를 암호화하여 생성된다.
단계 606a: 데이터 요청 노드가 암호화된 제1 암호문(Ea)을 판독할 권한을 가지고 있지 않으면(인가되지 않으면), 데이터 요청 노드의 이 액세스 요청을 거부한다. 예를 들어, 제2 프록시 노드(P)가 액세스 거부 메시지를 제1 프록시 노드(Pm)에 피드백한다.
단계 606b: 데이터 요청 노드가 암호화된 제1 암호문(Ea)을 판독할 권한을 가지고 있으면(인가되면), 부분 키(Tn)를 생성하고, 부분 키(Tn)를 제1 프록시 노드(Pm)에 송신한다.
구체적으로, 제2 프록시 노드(P)가 블록체인 상의 암호화된 부분 키(Tne)를 판독하고, 제2 프록시 노드(P)의 개인 키를 이용하여 Tne를 복호화하여 부분 키(Tn)를 획득한다.
단계 607: 제1 프록시 노드(Pm)가 적어도 k개의 제2 프록시 노드(P)에 의해 송신된 부분 키(Tn)를 수신한다. 여기서, k≤m이고, m은 제1 프록시 노드(Pm)에 의해 결정되는 제2 프록시 노드로서 권한 검증 요청을 송신하는 제2 프록시 노드의 개수(m)이다.
단계 608: 제1 프록시 노드(Pm)가 적어도 k 부분 키(Tn)를 복구하여 변환 키(T)를 생성한다.
단계 609: 제1 프록시 노드(Pm)가 변환 키(T)와 암호화 알고리즘을 이용하여, 암호화된 제1 암호문(Ea)을 암호화된 제2 암호문(Eb)으로 변환한다. 여기서, 암호화된 제2 암호문(Eb)은 데이터 요청 노드의 공개 키를 이용하여 암호화가 수행된 후에 생성된다.
단계 610: 제1 프록시 노드(Pm)가 암호화된 제2 암호문(Eb)을 공통 노드에 송신한다.
단계 611: 데이터 요청 노드가 암호화된 제2 암호문(Eb)을 데이터 요청 노드의 개인 키를 이용하여 복호화하여 액세스될 데이터를 획득할 수 있도록, 공통 노드가 암호화된 제2 암호문(Eb)을 수신하여 데이터 요청 노드에 송신한다.
(유리한 효과)
본 출원의 본 실시예에서 제공된 이 방법에 따르면, 데이터 소스가 암호문 수정 없이 자유롭게 요청 노드의 권한을 부여하거나 또는 철회할 수 있도록, 프록시 노드가 블록체인 네트워크에 추가된다. 즉, 프록시 노드가 블록체인 상의 요청 노드의 최신 권한을 판독하여, 액세스 요청을 인가하거나 또는 거부할지 여부를 판정한다. 최신 권한이 액세스 거부이면, 사용자가 데이터에 계속 액세스하지 못하게 함으로써 네트워크의 정보 보안을 보장할 수 있다.
"권한 부여 절차"에서, 데이터 소스는 변환 키를 복수의 부분 키로 분할하고, 복수의 부분 키는 블록체인 상에 저장되고 복수의 프록시 노드에 의해 소유된다. 이와 같이, "데이터 요청 절차"에서 충분한 양의 부분 키가 획득된 후에만 변환 키가 복구될 수 있고, 단일 노드 또는 키 참여자가 변환 키 또는 암호문을 획득할 수 없으며, 따라서 일부 노드가 부정 행위에 의해 권한 제어를 우회하고 암호문을 획득하는 것을 효과적으로 방지한다. 이 방법은 복호화 복잡도를 높이고, 암호문 전송과 판독의 보안을 효과적으로 보장하며, 권한이 부여되지 않은 사용자가 암호문 또는 데이터를 판독하지 못하게 한다.
또한, 데이터를 판독할 때, 권한이 부여되지 않은 당사자, 예를 들어, 제1 프록시 노드와 제2 프록시 노드가 평문을 획득할 수 없고, 결과적으로 평문의 내용을 판독할 수 없어서 데이터 프라이버시를 보호한다.
본 실시예의 "권한 부여 절차"와 "데이터 요청 절차"에서 변환 키를 분할하고 복구하는 과정에 대해서는, 전술한 임계값 암호화 방식에서의 역할의 기능과 흐름도(도 2에 도시된 바와 같음)를 참조한다는 것을 유의해야 한다.
또한, 본 실시예의 프록시 노드는 프록시 재암호화 시스템의 프록시 노드 또는 프록시일 수 있고, 프록시 재암호화(Proxy re-encryption) 시스템은 안전하게 암호문을 변환하는 기능이 있는 새로운 공개 키 암호화 시스템이다.
도 7은 일 실시예에 따른 프록시 재암호화 시스템에서의 역할을 나타낸 흐름도이다. 프록시 재암호화 시스템은 위임자(Delegator), 반-신뢰 프록시(Proxy), 및 피위임자(Delegatee)를 포함한다.
구체적으로, 단계 701: 위임자가 위임자의 공개 키를 이용하여 평문 메시지를 암호화하여 암호화된 암호문을 생성한다.
단계 702: 위임자가 암호화된 암호문을 반-신뢰 프록시에 송신한다.
단계 703: 위임자가 피위임자의 공개 키를 획득한다.
단계 704: 위임자가 피위임자에 대한 암호문 변환 키를 인가한다.
단계 705: 위임자가 암호문 변환 키를 반-신뢰 프록시에 송신한다.
단계 706: 반-신뢰 프록시가 위임자로부터의 암호화된 암호문 및 피위임자에 대한 암호문 변환 키를 획득하고, 반-신뢰 프록시가 암호화된 암호문을 변환한다. 구체적으로, 반-신뢰 프록시가 암호화된 암호문을 피위임자의 공개 키에 의해 암호화된 암호문으로 변환한다.
단계 707: 반-신뢰 프록시가 변환된 암호문을 피위임자에게 송신한다.
단계 708: 피위임자가 변환된 암호문을 획득하고, 변환된 암호문을 피위임자의 개인 키를 이용하여 복호화하여 평문 메시지를 생성한다.
본 실시예에서, 프록시 재암호화 시스템에서의 역할의 기능에 기초하여, 권한 검증 요청 과정이 프록시 노드에 추가되고, 그런 다음 인가된 액세스 권한을 만족하지 못하는 노드의 액세스가 거부됨으로써, 블록체인 상의 각각의 권한을 제어 및 변경하고, 데이터 전송의 보안과 신뢰도를 개선한다.
구체적인 실시예에서, 앨리스(Alice)가 슈퍼 원장 패브릭 블록체인 상에 앨리스의 나이를 저장하고 밥(Bob)이 나이에 대한 액세스를 제어하는 예를 이용하여 본 출원에서 제공되는 데이터 액세스 권한을 제어하는 방법에 대해 상세하게 설명한다.
이 실시예에서 사용되는 시스템이 미리 구축되고; 시스템 사용자로서, 각각의 참여자가 한 쌍의 키(공개 키와 개인 키)를 생성한다. 공개 키는 블록체인 네트워크 상에 기록되고 공개되어 있다.
새로운 프록시 노드가 기존 패브릭 블록체인 네트워크에 추가되고, 새로운 프록시 노드는 권한 검증과 암호문 변환과 같은 기능을 가지고 있다. 3개의 프록시 노드(X, Y, Z)가 다음의 구성 파일을 이용하여 패브릭 블록체인 네트워크에 추가된다.
도 8에 구체적인 절차가 도시되어 있다.
데이터 저장 절차에서, 앨리스가 데이터 소유자 또는 데이터 소스로서 다음의 방법 단계를 수행할 수 있다.
단계 801: 앨리스가 앨리스의 공개 키(Pa)와 프록시 재암호화 알고리즘을 이용하여 앨리스의 나이(a)를 포함하는 데이터에 대해 프록시 재암호화를 실행하여 제2-계층 암호문(Ea)를 생성한다.
프록시 재암호화 알고리즘은 백서("Improved Proxy Re-Encryption Schemes with Applications to Secure Distributed Storage")에 설명된 프록시 재암호화 알고리즘 중에서 제2-계층 암호화 알고리즘(E2)일 수 있다.
단계 802: 앨리스가 Ea를 트랜잭션에 패키징하고, 블록체인 네트워크 상의 임의의 공통 노드에 트랜잭션을 송신한다. 공통 노드가 트랜잭션을 수신하고, 트랜잭션을 확인하기 위해 트랜잭션을 브로드캐스트하고 트랜잭션에 대한 합의에 도달한다.
선택적으로,
저장된 데이터 의사 코드는 다음과 같다.
Func encrypt(data){
Ea = E2(data, Pa) //제2-계층 암호문을 생성
Tx = Package(Ea) //Ea를 트랜잭션에 패키징
Send(Tx) //트랙잭션을 송신
}
표 1에는 패키징된 트랜잭션이 표시되어 있다.
(표 1)
Figure pct00001
공통 노드에서 실행되는 기록된 데이터의 의사 코드는 다음과 같다.
func writeData(data, owner) {
id==null:0?id++
putState("Data", {"id":id, "data":data, "owner":owner }) //데이터를 저장
return SUCCESS
}
트랜잭션이 완료된 후에, 패브릭 블록체인 상에 기록된 세계 상태는 표 2에 나타낸 바와 같이 표시된다.
(표 2)
Figure pct00002
(권한 부여 절차)
단계 803: 앨리스가 앨리스의 개인 키(Sa)와 밥의 공개 키(Pb)를 이용하여 프록시 재암호화 알고리즘 내의 변환 키 생성 알고리즘(RG)을 실행하여, 변환 키(T)로 불리는 재암호화 키(T)를 생성한다.
단계 804: 앨리스가 변환 키(T)를 사용하고, n=3과 k=2를 설정하며 - 여기서, n은 변환 키(T)를 분할하여 얻어진 셰어의 개수를 나타내고, k는 T를 복구하기 위한 프록시 노드의 최소 개수를 나타내고 있음 -; 샤미르 키 공유 알고리즘(Shamir key sharing algorithm)을 이용하여 변환 키(T)를 3개의 부분 키, 즉 T1, T2, 및 T3으로 분할한다.
단계 805 : 앨리스가 프록시 노드 X, 프록시 노드 Y, 및 프록시 노드 Z의 공개 키를 이용하여 부분 키, 예를 들어 T1, T2, 및 T3을 암호화하여 암호화된 부분 키, 예를 들어 T1x, T2y, 및 T3z를 생성한다.
단계 806: 앨리스가, 요청자(밥)가 제2-계층 암호문(Ea)에 액세스할 권한을 가지고 있고, 암호문 처리 노드가 X, Y, 및 Z이며, 적어도 2개의 노드가 공동 처리에 필요하다는 것을 기록한다.
단계 807: 앨리스가 전술한 정보를 트랜잭션에 패키징하여 공통 노드에 트랜잭션을 송신하고, 공통 노드가 트랜잭션을 확인하기 위해 트랜잭션에 관한 정보를 브로드캐스트하고 트랜잭션에 관한 정보에 대해 합의에 도달한다.
선택적으로,
권한 부여 의사코드는 다음과 같다.
Func Authorize(dataid, delegatee, right, threshold, division){
T=RG(Sa, delegatee)//변환 키를 생성
Tn=ShamirSplit(T, division, threshold)//변환 키를 분할 부분으로 분할하고, 변환 키가 최소 임계값 파트를 이용하여 복구될 수 있다.
Foreach(t in Tn){//For Tn 내의 각각의 키에 대해
p=Ramdon(proxylist)//무작위로 프록시를 선택
Proxies += p//선택된 프록시를 기록
Tne += Encrypt(t, p.Pk) //프록시의 공개 키를 이용하여 t를 암호화
}
Tx = Package(Alice, dataid, delegatee, right, Proxies, Tne, threshold)
Send(Tx)
}
표 3에는 패키징된 트랜잭션이 표시되어 있다.
(표 3)
Figure pct00003
선택적으로, 공통 노드에 의해 실행되는 권한 부여 정보를 기록하는 의사 코드는 다음과 같다.
func authorize(delegator, dataid, delegatee, right, keys, proxy, keys, threshold) {
if delegator == data.owner{//인가자가 데이터 소유자인지 여부를 판정
id==null:0?id++
"right": right, "yes": keys})//권한 부여 정보를 저장
putState("Proxy",{"id":id,"proxy":proxy,"threshold":threshold}) //프록시 정보를 저장
return SUCCESS
}
return FAIL
}
트랜잭션이 완료된 후에, 패브릭 블록체인에 기록된 세계 상태는 표 4에 나타낸 바와 같이 표시된다.
(표 4)
Figure pct00004
(데이터 요청 절차)
단계 808: 밥이 임의의 공통 노드로의 데이터 요청을 개시한다. 여기서, 데이터 요청은 아이덴티티 정보(Bob)과 액세스될 데이터 객체 1을 포함한다.
단계 809: 공통 노드가 데이터 요청을 프록시 노드 X에 포워딩한다. 여기서, 프록시 노드 X는 이 요청에 대한 1차 노드 또는 제1 프록시 노드의 역할을 한다.
단계 810: 프록시 노드 X가 블록체인 상의 데이터 객체 1에 대한 밥의 최신 권한을 판독한다. 여기서, 이 판독의 결과가 "허용"이다.
단계 811: 프록시 노드 X가 데이터 객체 1의 키 처리 노드([X, Y, Z])를 판독하고, 노드 X, 노드 Y, 및 노드 Z 각각으로의 키 요청을 개시한다. 여기서, 키 요청은 밥의 아이덴티티와 데이터 객체 1을 포함하고, 피드백 결과를 기다리기 시작한다.
단계 812: 프록시 노드 X, 프록시 노드 Y, 및 프록시 노드 Z가 블록체인 상의 데이터 객체 1에 대한 밥의 최신 권한을 판독한다. 여기서, 이 판독 결과가 "허용"이다.
단계 813: 판독 결과가 "허용"이면, 프록시 노드 X, 프록시 노드 Y, 및 프록시 노드 Z가 각각 블록체인 상에 기록된 암호화된 부분 키(T1x, T2y, 및 T3z)을 판독하고, 암호화된 부분 키를 프록시 노드 X, 프록시 노드 Y, 프록시 노드 Z의 개인 키를 이용하여 복호화하여 부분 키(T1, T2, 및 T3)을 획득하며, 그런 다음 부분 키를 프록시 노드 X에 송신한다.
단계 814: 프록시 노드 X가 부분 키(T1, T2, 및 T3) 중 2개, 예를 들어 T1과 T2를 수신하고, 분할된 부분 키를 샤미르 비밀 공유 알고리즘을 이용하여 변환 키(T)로 복구한다.
단계 815: 프록시 노드 X가 데이터 객체 1에 대응하는 제2-계층 암호문(Ea)을 판독하고, 변환 키(T)를 이용하여 프록시 재암호화 알고리즘의 재암호화 방법(R)을 수행하여, 제2-계층 암호문(Ea)을 밥의 공개 키(Pb)를 이용하여 암호화된 제1-계층 암호문(Eb)으로 변환한다.
단계 816: 프록시 노드 X가 제1-계층 암호문(Eb)을 밥에게 송신한다.
단계 817: 밥이 제1-계층 암호문(Eb)을 수신하고, 밥의 개인 키(Sb)를 이용하여 프록시 재암호화 알고리즘 내의 복호화 방법(D)을 수행하여 앨리스의 나이, 즉 a를 얻는다.
본 실시예에서 제공된 데이터 액세스 권한을 제어하는 방법에 따르면, 프록시 노드가 블록체인에 추가됨으로써, 블록체인 상의 데이터 전송 중에 임의의 노드의 권한을 제어한다. 구체적으로, 데이터 요청 노드가 데이터에 액세스할 권한을 가지고 있지 않다는 것이 발견되면, 데이터 요청 노드가 데이터에 계속 액세스하지 못하도록 데이터 요청 노드의 현재 요청이 변경되거나 또는 거부됨으로써, 네트워크에서의 정보 보안을 보장한다.
또한, 임계값 암호체계의 모든 참여자가 서로 협력하여 복호화를 완료하는 특징에 기초하여, 변환 키가 복수의 부분 키로 분할되고, 복수의 부분 키가 블록체인 상에 저장되고 복수의 프록시 노드에 의해 소유된다. 이와 같이, "데이터 요청 절차"에서 충분한 양의 부분 키가 획득된 후에만 변환 키가 복구될 수 있고, 단일 노드 또는 키 참여자가 변환 키 또는 암호문를 획득할 수 없어서, 부정 행위에 의해 권한 제어를 우회하고 또한 암호문을 획득하는 것을 효과적으로 방지한다. 이 방법은 복호화 복잡도를 높이면서 데이터 전송 및 판독의 보안을 개선한다.
선택적으로, 프록시 노드 X에 의해 실행되는 데이터를 판독하는 의사 코드는 다음과 같다.
Func ReadData(data, delegatee){
R = ReadLastestRight(data, delegatee) //최신 권한 정보를 판독
if(R==allow){//권한이 부여되는지 여부를 판정
Proxies, Threshold = ReadProxy(data) //변환 키를 보유하는 프록시 노드를 판독
Foreach(p in Proxies){
Keys += requestKey(p, data, delegatee) //변환 키의 세그먼트를 신청
}
If(Keys.size >= Threshold){//수집된 키 프레그먼트의 개수가 임계값보다 큰 경우
T = Shamir.RecoverKey(Keys) //키를 복구
Ea = ReadEncryptData(data) //원본 암호문을 판독
Eb = R(Ea, T) //앨리스의 공개 키에 대한 제2-계층 암호문을 밥의 공개 키에 대한 제1-계층 암호문으로 변환
Return Eb
}
Return FAIL //변환 키의 충분한 세그먼트가 수집되지 않음
}
Return UNAUTHORIZED //비인가
}
프록시 노드 X, 프록시 노드 Y, 및 프록시 노드 Z에 의해 실행되는 키를 판독하는 의사 코드는 다음과 같다.
Func ReadKey(data,delegatee){
R = ReadLastesRight(data, delegatee)//최신 권한 정보를 판독
if(R==allow){//권한이 부여되는지 여부를 판정
The EKey = ReadEncryptedKey(data, delegatee)//프록시 노드에 의해 소유된 변환 키의 세그먼트
Key = Decrypt(Ekey, self.Sk) //복호화를 위해 프록시 노드의 개인 키를 이용
Return Key
}
Return UNAUTHORIZED//비인가
}
(권한 부여 철회 절차)
전술한 실시 예에서 앨리스가 밥의 최신 액세스 권한이 "불허용"이라고 판독하면, 밥에 대한 이전 권한 부여가 철회된다. 구체적인 과정은 다음과 같다.
앨리스가 "불허용"인 밥의 권한을 블록체인에 추가한다.
이 경우, 패브릭 블록체인에 기록된 세계 상태는 표 5에 나타낸 바와 같이 표시된다.
(표 5)
Figure pct00005
프록시 노드 X가 권한 정보가 액세스 거부를 나타낸다는 것을 권한 정보를 판독하는 과정에서 발견하면, 프록시 노드 X가 요청 노드의 액세스 요청을 거부한다.
프록시 노드 X가 대안적으로 1차 프록시 노드, 예를 들어 제1 프록시 노드일 수 있거나, 다른 프록시 노드, 예를 들어 프록시 노드 Y와 프록시 노드 Z일 수 있다는 것을 이해할 수 있을 것이다.
선택적으로, 본 출원의 전술한 실시예에서 액세스 권한을 제어하는 방법은 프록시 노드가 부정 행위를 하는 것을 추가로 방지할 수 있다. 구체적으로, 예를 들어, 본 실시예에서, 변환 키는 3개의 부분으로 분할되고, 키 공유 참여자의 임계 개수가 2이다. 다음은 부정 행위 사례이다.
사례 1: 프록시 노드 X가 속이고, 권한이 "불허용"인 경우 계속 부분 키를 신청한다. 프록시 노드 Y와 프록시 노드 Z가 속이지 않고, 권한 정보가 "불허용"이라는 것을 발견하면 요청 노드의 액세스 요청을 거부한다. 이 경우, 프록시 노드 X가 변환 키를 획득할 수 없다.
사례 2: 프록시 노드 X와 프록시 노드 Y가 함께 속인다. 변환 키가 획득될 수 있지만, 변환 키를 이용하여 변환이 수행된 후 얻어진 결과가 밥인 암호문에 대해, 프록시 노드 X와 프록시 노드가 밥의 개인 키를 가지고 있지 않으며, 복호화를 통해 평문이 얻어질 수 없다.
사례 3: 밥이 속이고 변환 키를 획득할 수 없다.
사례 4: 프록시 노드 X와 프록시 노드 Y, 그리고 밥이 함께 속인다.
밥이 인가되지 않았으면, 밥이 변환 키를 획득할 수 없다.
밥의 권한 부여가 철회되면, 밥이 변환 키를 획득할 수 있고, 복호화를 통해 평문을 획득할 수 있다.
하지만, 속이는 비용이 권한 부여 중에 밥이 평문을 버퍼링하는 방식의 비용보다 크다. 이 경우, 밥이 인가되었던 데이터만이 유출되고, 다른 데이터는 영향을 받지 않는다.
도 9는 본 출원의 일 실시예에 따른 데이터 액세스 권한을 제어하기 위한 장치의 개략적인 구조도이다. 데이터 액세스 권한을 제어하기 위한 장치는 프록시 노드를 포함한다. 도 5와 도 6에 대응하는 권한을 제어하기 위한 방법을 수행하기 위해, 데이터 액세스 권한을 제어하기 위한 장치는 전술한 실시예의 프록시 노드일 수 있거나, 또는 프록시 노드 상에 배치되거나 또는 제1 프록시 노드에 적용될 수 있다.
도 9에 도시된 바와 같이, 네트워크 노드는 수신 유닛(901), 처리 유닛(902), 및 송신 유닛(903)을 포함한다. 또한, 네트워크 노드는 다른 유닛과 모듈, 예를 들어 저장 유닛을 더 포함할 수 있다.
구체적으로, 수신 유닛(901)은 요청 노드로부터 제1 요청 메시지를 수신하도록 구성된다. 여기서, 제1 요청 메시지는 요청 노드의 아이덴티티와 액세스될 데이터의 식별자를 포함한다.
처리 유닛(902)은 액세스될 데이터의 식별자에 기초하여 블록체인 네트워크 상의 암호화된 제1 암호문을 결정하고, 요청 노드의 아이덴티티에 기초하여, 요청 노드가 암호화된 제1 암호문을 판독할 권한을 가지고 있는지 여부를 판정하도록 구성된다.
송신 유닛(903)은, 요청 노드가 암호화된 제1 암호문을 판독할 권한을 가지고 있지 않으면, 요청 노드의 제1 요청을 거부하고; 요청 노드가 암호화된 제1 암호문을 판독할 권한을 가지고 있으면, 적어도 하나의 제2 프록시 노드 쪽으로 요청 노드에 대한 권한 검증 요청을 개시하도록 구성된다.
처리 유닛(902)은 추가적으로, 요청 노드가 암호화된 제1 암호문을 판독할 권한을 가지고 있으면, 적어도 하나의 제2 프록시 노드의 피드백 결과에 기초하여, 암호화된 제1 암호문의 프로비저닝을 결정하도록 구성된다.
선택적으로, 본 실시예의 가능한 구현에서, 송신 유닛(903)은 구체적으로, 블록체인 상에서, 요청 노드의 아이덴티티에 기초하여 요청 노드의 권한 부여 정보를 판독하도록 구성된다. 여기서, 권한 부여 정보는 블록체인 상의 체인형 저장 구조의 끝에 가장 가깝고, 권한 부여 정보는 허용 및 불허용을 포함한다.
선택적으로, 본 실시예의 다른 가능한 구현에서, 처리 유닛(902)은 구체적으로, m개의 제2 프록시 노드를 결정하고, 권한 검증 요청을 생성하도록 구성된다. 여기서, 권한 검증 요청은 요청 노드의 아이덴티티와 암호화된 제1 암호문을 포함하고, 암호화된 제1 암호문은 액세스될 데이터를 암호화하여 생성되며, m은 1보다 크거나 같은 양의 정수이다.
송신 유닛(903)은 구체적으로, 권한 검증 요청을 m개의 제2 프록시 노드 각각에 송신하도록 구성된다.
선택적으로, 본 실시예의 또 다른 가능한 구현에서, 수신 유닛(901)은 추가적으로, 적어도 k개의 제2 프록시 노드에 의해 송신된 부분 키를 수신하도록 구성된다. 여기서, 제2 프록시 노드가 요청 노드의 아이덴티티에 기초하여, 요청 노드가 데이터에 접근할 권리가 있다는 것을 검증한 후에, 부분 키가 제2 프록시 노드에 의해 생성되어 송신되고, k≤m이다.
처리 유닛(902)은 구체적으로, 적어도 k개의 부분 키를 복구하여 변환 키를 생성하고; 변환 키와 암호화 알고리즘을 이용하여, 암호화된 제1 암호문을 암호화된 제2 암호문으로 변환하도록 구성되고, 암호화된 제2 암호문은 요청 노드의 공개 키를 이용하는 암호화에 의해 생성된다.
송신 유닛(903)은 추가적으로, 암호화된 제2 암호문을 요청 노드에 송신하도록 구성된다.
선택적으로, 본 실시예의 또 다른 가능한 구현에서, 처리 유닛(902)은 구체적으로, k개 미만의 제2 프록시 노드에 의해 송신된 부분 키를 수신 유닛을 이용하여 수신하거나 또는 적어도 하나의 제2 프록시 노드에 의해 피드백된 거부 메시지를 수신 유닛을 이용하여 수신하면, 송신 유닛을 이용하여 액세스 거부 메시지를 요청 노드에 송신하도록 구성된다.
선택적으로, 본 실시예의 또 다른 가능한 구현에서, 수신 유닛(901)은 구체적으로, 블록체인 네트워크 상의 임의의 블록체인 노드를 이용하여 포워딩된 제1 요청 메시지를 수신하도록 구성된다.
네트워크 노드는 제2 프록시 노드에 추가로 적용될 수 있고, 권한 검증 및 결과 피드백과 같은 제2 프록시 노드의 기능을 수행하도록 구성된다.
구체적으로, 수신 유닛(901)은 제1 프록시 노드로부터 권한 검증 요청을 수신하도록 구성된다. 여기서, 권한 검증 요청은 요청 노드의 아이덴티티와 암호화된 제1 암호문을 포함하고, 암호화된 제1 암호문은 액세스될 데이터를 암호화하여 생성된다.
처리 유닛(902)은 요청 노드의 아이덴티티에 기초하여, 요청 노드가 암호화된 제1 암호문을 판독할 권한을 가지고 있는지 여부를 판정하고; 요청 노드가 암호화된 제1 암호문을 판독할 권한을 가지고 있지 않으면, 제1 프록시 노드의 제1 요청을 거부하거나, 또는 요청 노드가 암호화된 제1 암호문을 판독할 권한을 가지고 있으면, 부분 키를 생성하도록 구성된다.
송신 유닛(903)은 부분 키를 제1 프록시 노드에 송신하도록 구성된다.
또한, 선택적으로, 프로세서는 구체적으로, 블록체인 네트워크 상의 암호화된 부분 키를 획득하고 - 여기서, 암호화된 부분 키는 제2 프록시 노드의 공개 키를 이용하여 암호화가 수행된 후에 생성됨 -; 제2 프록시 노드의 개인 키를 이용하여 암호화된 부분 키를 복호화하여 부분 키를 생성하도록 구성된다.
또한, 네트워크 노드는 대안적으로 데이터 소스 또는 데이터 소유자, 예를 들어 제1 노드일 수 있고, 제1 노드의 구조가 도 9에 도시된 네트워크 노드의 구조와 동일하다. 하지만, 네트워크 노드 내의 각각의 유닛이 다음의 기능을 더 가지고 있다.
구체적으로, 수신 유닛(901)은 제2 노드의 아이덴티티를 획득하도록 구성된다. 여기서, 제2 노드의 아이덴티티는 제2 노드의 권한 부여 정보를 결정하는 데 사용되고, 권한 부여 정보는 허용 또는 불허용을 포함한다.
처리 유닛(902)은, 권한 부여 정보가 허용이면, 네트워크 노드의 개인 키, 제2 노드의 공개 키, 및 암호화 알고리즘을 이용하여 변환 키를 생성하고; 블록체인 네트워크 상의 프록시 노드의 공개 키를 이용하여 변환 키를 암호화하여 암호화된 부분 키를 생성하며; 제1 트랜잭션 정보를 생성하고, 블록체인 네트워크 상에 제1 트랜잭션 정보를 기록하도록 구성된다.
여기서, 제1 트랜잭션 정보는 제2 노드의 아이덴티티, 제2 노드의 권한 부여 정보, 및 암호화된 부분 키를 포함한다.
선택적으로, 본 실시예의 가능한 구현에서, 처리 유닛(902)은 구체적으로, 비밀 공유 알고리즘을 이용하여 변환 키를 n개의 부분 키로 분할하고 - 여기서, N은 1보다 크거나 같은 양의 정수임 -; 블록체인 네트워크로부터 m개의 프록시 노드를 선택하고, m개의 프록시 노드의 공개 키를 이용하여 n개의 부분 키를 암호화하여 n개의 암호화된 부분 키를 생성하도록 구성된다(m≤n).
제1 트랜잭션 정보는 m개의 프록시 노드의 아이덴티티, 및 변환 키를 복구하기 위한 부분 키의 최소 개수(k)를 더 포함한다.
선택적으로, 본 실시예의 또 다른 가능한 구현에서, 처리 유닛(902)은 구체적으로, 제1 트랜잭션 정보를 블록체인 네트워크 상의 블록체인 노드에 송신하고, 블록체인 노드를 이용하여 제1 트랜잭션 정보를 브로드캐스트하고 네트워크 전체(network-wide)의 제1 트랜잭션 정보에 대한 합의에 도달하며, 제1 트랜잭션 정보를 저장하도록 구성된다.
선택적으로, 본 실시예의 또 다른 가능한 구현에서, 처리 유닛(902)은 추가적으로, 권한 부여 정보가 비허용이면, 제2 노드의 권한 부여 정보를 취소하고; 제2 트랜잭션 정보를 생성하고, 블록체인 네트워크 상에 제2 트랜잭션 정보를 기록하도록 구성된다. 여기서, 제2 트랜잭션 정보는 제2 노드의 아이덴티티와 제2 노드의 권한 부여 정보를 포함한다.
선택적으로, 본 실시예의 또 다른 가능한 구현에서, 처리 유닛(902)은 추가적으로, 제2 노드의 아이덴티티를 획득하기 전에, 제1 노드의 공개 키와 프록시 재암호화 알고리즘을 이용하여, 액세스될 데이터를 암호화하여 암호화된 제1 암호문을 생성하고; 암호화된 제1 암호문을 블록체인 네트워크 상의 트랜잭션으로 저장하도록 구성된다.
특정 하드웨어 구현에서, 도 10에 도시된 바와 같이, 전술한 실시예의 네트워크 노드는 송수신기(1201), 프로세서(1202), 및 메모리(1203)를 포함한다. 네트워크 노드는 더 많거나 적은 수의 구성 요소를 더 포함하거나, 또는 일부 구성 요소를 결합하거나, 또는 다른 구성 요소 배치를 가질 수 있다. 본 출원에서는 이에 대해 제한하지 않는다.
송수신기(1001)는, 요청 메시지와 피드백 정보를 송수신하고, 네트워크 내의 다른 노드와 데이터 전송을 수행하도록 구성된다. 송수신기 모듈은 송수신기 모듈을 포함할 수 있고, 송수신기 모듈은 무선 근거리 통신망(Wireless Local Area Network, WLAN) 모듈, 블루투스 모듈, 및 베이스 밴드(base band) 모듈과 같은 통신 모듈, 및 통신 모듈에 대응하는 무선 주파수(Radio Frequency, RF) 회로를 포함할 수 있다. 송수신기 모듈은 무선 근거리 통신망에서의 통신, 블루투스 통신, 적외선 통신, 및/또는 셀룰러 통신 시스템, 예를 들어 광대역 코드분할 다중접속(Wideband Code Division Multiple Access, WCDMA) 및/또는 고속 하향링크 패킷 접속(High Speed Downlink Packet Access, HSDPA)에서의 통신을 수행하도록 구성된다. 송수신기 모듈은 단말 장치 내의 모든 구성 요소들 간의 통신을 제어하도록 구성되고, 직접 기억 장치 접근(direct memory access)을 지원할 수 있다.
스위치의 제어 중심으로서, 프로세서(1002)는 다양한 인터페이스와 라인을 이용하여 전체 스위치의 다양한 부분에 연결되고, 소프트웨어 프로그램 및/또는 메모리에 저장된 모듈(1203)를 실행하거나 수행하고 또한 메모리에 저장된 데이터(1203)를 호출함으로써, 스위치 장치의 다양한 기능 및/또는 데이터를 처리한다.
프로세서(1202)는 집적 회로(Integrated Circuit, IC)에 의해 형성될 수 있거나, 예를 들어 단일 패키지 IC에 의해 형성될 수 있거나, 또는 동일한 기능이나 서로 다른 기능을 가진 복수의 패키지 IC를 연결하여 형성될 수 있다. 예를 들어, 프로세서는 중앙처리장치(Central Processing Unit, CPU)만을 포함하거나, 또는 송수신기 내의 GPU, 디지털 신호 프로세서(Digital Signal Processor, DSP), 및 제어 칩(예컨대, 베이스밴드 칩)의 조합일 수 있다. 본 출원의 다양한 구현에서, CPU는 단일 컴퓨팅 코어일 수 있거나, 또는 복수의 컴퓨팅 코어를 포함할 수 있다.
메모리(1003)는 휘발성 메모리(volatile memory), 예를 들어 랜덤 액세스 메모리(Random-Access Memory, RAM)를 포함할 수 있거나; 또는 비휘발성 메모리(non-volatile memory), 예를 들어 플래시 메모리(flash memory), 하드 디스크 드라이브(Hard Disk Drive, HDD), 또는 솔리드 스테이트 드라이브(Solid-State Drive, SSD)를 포함할 수 있거나; 또는 메모리는 전술한 유형의 메모리의 조합을 포함할 수 있다. 메모리는 프로그램 또는 코드를 저장할 수 있다. 스위치 내의 프로세서(1002)는 프로그램 또는 코드를 실행하여 네트워크 노드의 기능을 구현한다.
본 실시예에서, 송수신기(1001)에 의해 구현될 기능이 도 9에 도시된 수신 유닛(901)과 송신 유닛(903)에 의해 구현될 수 있거나, 또는 프로세서(1002)에 의해 제어되는 송수신기(1001)에 의해 구현될 수 있다. 처리 유닛(902)에 의해 구현될 기능이 프로세서(1002)에 의해 구현될 수 있다.
또한, 본 출원은 컴퓨터 저장 매체를 더 제공한다. 컴퓨터 저장 매체는 프로그램을 저장할 수 있다. 프로그램이 실행될 때, 본 출원에서 제공되는 데이터 액세스 권한을 제어하기 위한 방법과 데이터 전송 방법의 실시예의 단계들 중 일부 또는 전부가 수행될 수 있다. 저장 매체는 자기 디스크, 광 디스크, 읽기 전용 메모리(read-only memory, ROM), 또는 랜덤 액세스 메모리(RAM) 등일 수 있다.
전술한 실시예의 전부 또는 일부가 소프트웨어, 하드웨어, 펌웨어, 또는 이들의 임의의 조합을 이용하여 구현될 수 있다. 소프트웨어가 실시예를 구현하는 데 사용될 때, 이러한 실시예는 컴퓨터 프로그램 제품의 형태로 전체적으로 또는 부분적으로 구현될 수 있다.
컴퓨터 프로그램 제품은 하나 이상의 컴퓨터 명령, 예를 들어 검증 명령을 포함한다. 컴퓨터 명령이 컴퓨터 상에 로딩되어 실행될 때, 본 출원의 실시예에서 설명된 절차들 또는 기능들이 전체적으로 또는 부분적으로 생성된다. 컴퓨터는 범용 컴퓨터, 전용 컴퓨터, 컴퓨터 네트워크, 또는 다른 프로그램 가능한 장치일 수 있다.
컴퓨터 명령은 컴퓨터 판독가능 저장 매체에 저장될 수 있거나, 또는 컴퓨터 판독가능 저장 매체에서 다른 컴퓨터 판독가능 저장 매체로 전송될 수 있다. 예를 들어, 컴퓨터 명령은 유선 또는 무선 방식으로 웹사이트, 컴퓨터, 서버, 또는 데이터 센터에서 다른 웹사이트, 컴퓨터, 서버, 또는 데이터 센터로 전송될 수 있다.
컴퓨터 판독가능 저장 매체는 컴퓨터에 의해 액세스 가능한 어떤 사용 가능한 매체, 또는 하나 이상의 사용 가능한 매체를 통합하는 서버나 데이터 센터와 같은 저장 장치일 수 있다. 사용 가능한 매체는 자기 매체, 예를 들어 소프트 디스크, 하드 디스크, 자기 테이프, 광학 매체(예를 들어, DVD), 또는 솔리드 스테이트 드라이브(solid-state drive, SSD)와 같은 반도체 매체일 수 있다.
또한, 본 출원의 실시예의 네트워크 노드가 기지국 또는 액세스 포인트일 수 있다는 것을 유의해야 한다. 예를 들어, 기지국은 GSM 또는 CDMA에서의 베이스 트랜시버 스테이션(Base Transceiver Station, BTS)일 수 있거나, 또는 WCDMA에서의 NodeB(NodeB)일 수 있거나, 또는 LTE에서의 진화된 NodeB(eNB 또는 e-NodeB, evolutional Node B)일 수 있다. 본 출원에서는 이에 대해 제한하지 않는다.
또한, 네트워크 노드는 추가적으로 클라이언트이거나 또는 단말 장치일 수 있다. 단말 장치는 사용자에게 음성 및/또는 데이터 연결을 제공하는 장치, 또는 무선 연결 기능이 있는 핸드헬드 장치(handheld device), 또는 무선 모뎀에 연결된 다른 처리 장치일 수 있다.
무선 단말기는 무선 액세스 네트워크(radio access network, RAN)를 통해 하나 이상의 노드와 통신할 수 있다. 무선 단말기는 이동 전화기(또는 "셀룰러" 전화기라고 함)와 같은 모바일 단말기, 또는 모바일 단말기를 가진 컴퓨터, 예를 들어 무선 액세스 네트워크와 음성 및/또는 데이터를 교환하는 휴대용 장치, 포켓 크기의 장치, 휴대용 장치, 컴퓨터 내장형 장치, 또는 차량 장착형 모바일 장치일 수 있다. 예를 들어, 무선 단말기는 개인 휴대 통신 서비스(Personal Communication Service, PCS) 전화기, 무선 전화기 세트, 세션 개시 프로토콜(session initiation protocol, SIP) 전화기, 무선 가입자 회선(Wireless Local Loop, WLL) 스테이션, 또는 개인용 정보 단말기(Personal Digital Assistant, PDA)와 같은 장치일 수 있다. 무선 단말기는 시스템, 가입자 유닛(Subscriber Unit), 가입자 스테이션(Subscriber Station), 모바일 스테이션(Mobile Station), 모바일 단말기(mobile), 원격 스테이션(Remote Station), 액세스 포인트(Access Point), 원격 단말기(Remote Terminal), 액세스 단말기(Access Terminal), 사용자 단말기(User Terminal), 사용자 에이전트(User Agent), 사용자 장치(User Device), 또는 사용자 장비(User Equipment)라고도 할 수 있다.
본 출원의 명세서, 청구 범위, 및 첨부 도면에서, "제1" 및 "제2" 등의 용어가 (만약 존재하면) 유사한 대상을 구별하려는 것이지만 반드시 특정 순서나 시퀀스를 나타내는 것은 아니다. 이렇게 명명된 데이터가 적절한 상황에서 상호 교환될 수 있으므로, 본 명세서에서 설명된 실시예가 본 명세서에서 예시되거나 설명된 순서와 다른 순서로 구현될 수 있다는 것을 이해해야 한다. 또한, "포함"이라는 용어, 및 이 용어의 다른 변형이 비한정적으로 포함하는 것을 포괄하려는 것이다. 예를 들어, 단계 또는 유닛의 목록을 포함하는 프로세스, 방법, 시스템, 제품, 또는 장치가 반드시 이러한 유닛으로 제한되는 것이 아니지만, 명시적으로 나열하지 않거나 또는 이러한 프로세스, 방법, 시스템, 제품, 또는 장치에 고유한 다른 유닛을 포함할 수 있다.
필요한 일반적인 하드웨어 플랫폼 외에 본 발명의 실시예의 기술이 소프트웨어에 의해 구현될 수 있다는 것을 당업자라면 명확하게 이해할 수 있다. 이러한 이해를 바탕으로, 본 발명의 실시예의 기술적 해결책은 기본적으로 또는 종래 기술에 기여하는 부분은 소프트웨어 제품의 형태로 구현될 수 있다. 컴퓨터 소프트웨어 제품은 ROM/RAM, 자기디스크, 또는 광디스크와 같은 저장 매체에 저장될 수 있으며, 실시예 또는 본 발명의 실시예의 일부 파트에서 설명된 데이터 액세스 권한을 제어하는 방법을 수행하도록 컴퓨터 장치(개인용 컴퓨터, 서버, 또는 네트워크 장치 등일 수 있음)에 지시하기 위한 여러 명령을 포함한다.
본 명세서의 실시예에서 동일하거나 유사한 부분에 대해서는, 이러한 실시예를 참조하라. 특히, 네트워크 노드 또는 장치 디바이스는 기본적으로 방법 실시예와 유사하므로 간략하게 설명한다. 관련 부분에 대해서는, 방법 실시예의 설명을 참조하라.
본 출원의 전술한 구현은 본 출원의 보호 범위에 제한을 두지 않는다.

Claims (32)

  1. 데이터 액세스 권한을 제어하기 위한 방법으로서,
    제1 프록시 노드가 요청 노드로부터 제1 요청 메시지를 수신하는 단계 - 상기 제1 요청 메시지는 상기 요청 노드의 아이덴티티와 액세스될 데이터의 식별자를 포함하고 있음 -;
    상기 제1 프록시 노드가, 상기 액세스될 데이터의 식별자에 기초하여 블록체인 상의 암호화된 제1 암호문을 결정하고, 상기 요청 노드의 아이덴티티에 기초하여, 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있는지 여부를 판정하는 단계; 및
    상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있으면, 적어도 하나의 제2 프록시 노드 쪽으로 상기 요청 노드에 대한 권한 검증 요청을 개시하고, 상기 적어도 하나의 제2 프록시 노드의 피드백 결과에 기초하여, 상기 암호화된 제1 암호문의 프로비저닝(provisioning)을 결정하는 단계
    를 포함하는 데이터 액세스 권한을 제어하기 위한 방법.
  2. 제1항에 있어서,
    상기 요청 노드의 아이덴티티에 기초하여, 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있는지 여부를 판정하는 단계는,
    상기 블록체인 상에서, 상기 요청 노드의 아이덴티티에 기초하여 상기 요청 노드의 권한 부여 정보(authorization information)를 판독하는 단계 - 상기 권한 부여 정보는 상기 블록체인의 체인형 저장 구조의 끝에 가장 가깝고, 상기 권한 부여 정보는 허용 또는 불허용임 -
    를 포함하는, 데이터 액세스 권한을 제어하기 위한 방법.
  3. 제1항에 있어서,
    상기 적어도 하나의 제2 프록시 노드 쪽으로 상기 요청 노드에 대한 권한 검증 요청을 개시하는 것은,
    상기 제1 프록시 노드가 m개의 제2 프록시 노드를 결정하는 것 - m은 1보다 크거나 같은 양의 정수임 -;
    상기 권한 검증 요청을 생성하는 것 - 상기 권한 검증 요청은 상기 요청 노드의 아이덴티티와 상기 암호화된 제1 암호문을 포함하고, 상기 암호화된 제1 암호문은 상기 액세스될 데이터를 암호화하여 생성됨 -; 및
    상기 권한 검증 요청을 상기 m개의 제2 프록시 노드 각각에 송신하는 것
    을 포함하는, 데이터 액세스 권한을 제어하기 위한 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 적어도 하나의 제2 프록시 노드의 피드백 결과에 기초하여, 상기 암호화된 제1 암호문의 프로비저닝을 결정하는 단계는,
    상기 제1 프록시 노드가 적어도 k개의 제2 프록시 노드에 의해 송신된 부분 키를 수신하는 단계 - 상기 제2 프록시 노드가 상기 요청 노드의 아이덴티티에 기초하여, 상기 요청 노드가 데이터에 접근할 권한을 가지고 있다는 것을 검증한 후에, 상기 부분 키가 상기 제2 프록시 노드에 의해 생성되어 송신되고, k≤m임 -;
    상기 적어도 k개의 부분 키를 복구하여 변환 키를 생성하는 단계;
    상기 변환 키와 암호화 알고리즘을 이용하여, 상기 암호화된 제1 암호문을 암호화된 제2 암호문으로 변환하는 단계 - 상기 암호화된 제2 암호문은 상기 요청 노드의 공개 키를 이용하는 암호화에 의해 생성됨 -; 및
    상기 암호화된 제2 암호문을 상기 요청 노드에 송신하는 단계
    를 포함하는, 데이터 액세스 권한을 제어하기 위한 방법.
  5. 제3항에 있어서,
    상기 적어도 하나의 제2 프록시 노드의 피드백 결과에 기초하여, 상기 암호화된 제1 암호문의 프로비저닝을 결정하는 단계는,
    상기 제1 프록시 노드가 k개 미만의 제2 프록시 노드에 의해 송신된 부분 키를 수신하거나 또는 적어도 하나의 제2 프록시 노드에 의해 피드백된 거부 메시지를 수신하면, 액세스 거부 메시지를 상기 요청 노드에 송신하는 단계
    를 포함하는, 데이터 액세스 권한을 제어하기 위한 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 제1 프록시 노드가 요청 노드로부터 제1 요청 메시지를 수신하는 단계는,
    상기 제1 프록시 노드가, 상기 블록체인 네트워크 상의 임의의 블록체인 노드에 의해 포워딩된 상기 제1 요청 메시지를 수신하는 단계
    를 포함하는, 데이터 액세스 권한을 제어하기 위한 방법.
  7. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 데이터 액세스 권한을 제어하기 위한 방법이,
    상기 제1 프록시 노드가 상기 요청 노드의 아이덴티티에 기초하여, 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있지 않다고 결정하면, 상기 요청 노드의 제1 요청 메시지를 거부하는 단계
    를 더 포함하는 데이터 액세스 권한을 제어하기 위한 방법.
  8. 데이터 전송 방법으로서,
    제1 노드가 제2 노드의 아이덴티티를 획득하는 단계 - 상기 아이덴티티는 상기 제2 노드의 권한 부여 정보(authorization information)를 결정하는 데 사용됨 -;
    상기 권한 부여 정보가 허용이면, 상기 제1 노드가 상기 제1 노드의 개인 키, 상기 제2 노드의 공개 키, 및 암호화 알고리즘을 이용하여 변환 키를 생성하는 단계;
    상기 제1 노드가, 블록체인 네트워크 상의 프록시 노드의 공개 키를 이용하여 상기 변환 키를 암호화하여 암호화된 부분 키를 생성하는 단계; 및
    상기 제1 노드가 제1 트랜잭션 정보(transaction information)를 생성하고, 상기 블록체인 네트워크 상에 상기 제1 트랜잭션 정보를 기록하는 단계 - 상기 제1 트랜잭션 정보는 상기 제2 노드의 아이덴티티, 상기 제2 노드의 권한 부여 정보, 및 상기 암호화된 부분 키를 포함하고 있음 -
    를 포함하는 데이터 전송 방법.
  9. 제8항에 있어서,
    상기 제1 노드가, 블록체인 네트워크 상의 프록시 노드의 공개 키를 이용하여 상기 변환 키를 암호화하여 암호화된 부분 키를 생성하는 단계는,
    상기 제1 노드가 비밀 공유 알고리즘을 이용하여 상기 변환 키를 n개의 부분 키로 분할하는 단계 - N은 1보다 크거나 같은 양의 정수임 -; 및
    상기 제1 노드가 상기 블록체인 네트워크로부터 m개의 프록시 노드를 선택하고, 상기 m개의 프록시 노드의 공개 키를 이용하여 상기 n개의 부분 키를 암호화하여 n개의 암호화된 부분 키를 생성하는 단계 - m≤n임 -
    를 포함하는, 데이터 전송 방법.
  10. 제9항에 있어서,
    상기 제1 트랜잭션 정보는 상기 m개의 프록시 노드의 아이덴티티, 및 상기 변환 키를 복구하기 위한 부분 키의 최소 개수(k)를 더 포함하는, 데이터 전송 방법.
  11. 제8항 내지 제10항 중 어느 한 항에 있어서,
    상기 블록체인 네트워크 상에 상기 제1 트랜잭션 정보를 기록하는 단계는,
    상기 제1 노드가 상기 제1 트랜잭션 정보를 상기 블록체인 네트워크 상의 블록체인 노드에 송신하고, 상기 블록체인 노드를 이용하여 상기 제1 트랜잭션 정보를 브로드캐스팅하고 네트워크 전체(network-wide)의 상기 제1 트랜잭션 정보에 대해 합의에 도달하며, 상기 제1 트랜잭션 정보를 저장하는 단계
    를 포함하는, 데이터 전송 방법.
  12. 제8항에 있어서,
    상기 데이터 전송 방법이,
    상기 권한 부여 정보가 불허용이면, 상기 제2 노드의 권한 부여 정보를 취소하는 단계;
    상기 제2 노드의 아이덴티티와 상기 제2 노드의 권한 부여 정보를 포함하는 제2 트랜잭션 정보를 생성하는 단계; 및
    상기 블록체인 네트워크 상에 상기 제2 트랜잭션 정보를 기록하는 단계
    를 더 포함하는 데이터 전송 방법.
  13. 제8항 내지 제10항 중 어느 한 항에 있어서,
    상기 제1 노드가 제2 노드의 아이덴티티를 획득하는 단계 이전에, 상기 데이터 전송 방법이,
    상기 제1 노드가 상기 제1 노드의 공개 키와 프록시 재암호화 알고리즘을 이용하여, 액세스될 데이터를 암호화하여 암호화된 제1 암호문을 생성하는 단계; 및
    상기 제1 노드가 상기 암호화된 제1 암호문을 상기 블록체인 네트워크 상의 트랜잭션으로 저장하는 단계
    를 더 포함하는 데이터 전송 방법.
  14. 데이터 전송 방법으로서,
    제2 프록시 노드가 제1 프록시 노드로부터 권한 검증 요청을 수신하는 단계 - 상기 권한 검증 요청은 요청 노드의 아이덴티티와 암호화된 제1 암호문을 포함하고, 상기 암호화된 제1 암호문은 액세스될 데이터를 암호화하여 생성됨 -;
    상기 제2 프록시 노드가 상기 요청 노드의 아이덴티티에 기초하여, 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있는지 여부를 판정하는 단계; 및
    상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있으면, 부분 키를 생성하고, 상기 부분 키를 상기 제1 프록시 노드에 송신하는 단계
    를 포함하는 데이터 전송 방법.
  15. 제14항에 있어서,
    상기 부분 키를 생성하는 것은,
    상기 제2 프록시 노드가, 블록체인 네트워크 상의 암호화된 부분 키를 획득하는 것 - 상기 암호화된 부분 키는 상기 제2 프록시 노드의 공개 키를 이용하는 암호화에 의해 생성됨 -; 및
    상기 제2 프록시 노드가 상기 제2 프록시 노드의 개인 키를 이용하여 상기 암호화된 부분 키를 복호화하여 상기 부분 키를 생성하는 것
    을 포함하는, 데이터 전송 방법.
  16. 제14항 또는 제15항에 있어서,
    상기 데이터 전송 방법이,
    상기 제2 프록시 노드가 상기 요청 노드의 아이덴티티에 기초하여, 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있지 않다고 결정하면, 상기 제1 프록시 노드의 제1 요청을 거부하는 단계
    를 더 포함하는 데이터 전송 방법.
  17. 제1 프록시 노드에 적용되는 네트워크 노드로서,
    요청 노드로부터 제1 요청 메시지를 수신하도록 구성된 수신 유닛 - 상기 제1 요청 메시지는 상기 요청 노드의 아이덴티티와 액세스될 데이터의 식별자를 포함하고 있음 -;
    상기 액세스될 데이터의 식별자에 기초하여 블록체인 네트워크 상의 암호화된 제1 암호문을 결정하고, 상기 요청 노드의 아이덴티티에 기초하여, 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있는지 여부를 판정하도록 구성된 처리 유닛; 및
    상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있으면, 적어도 하나의 제2 프록시 노드 쪽으로 상기 요청 노드에 대한 권한 검증 요청을 개시하도록 구성된 송신 유닛
    을 포함하고,
    상기 처리 유닛은 추가적으로, 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 상기 권한을 가지고 있으면, 상기 적어도 하나의 제2 프록시 노드의 피드백 결과에 기초하여, 상기 암호화된 제1 암호문의 프로비저닝(provisioning)을 결정하도록 구성된, 네트워크 노드.
  18. 제17항에 있어서,
    상기 송신 유닛은 구체적으로, 블록체인 상에서, 상기 요청 노드의 아이덴티티에 기초하여 상기 요청 노드의 권한 부여 정보(authorization information)를 판독하도록 구성되고, 상기 권한 부여 정보는 상기 블록체인 상의 체인형 저장 구조의 끝에 가장 가깝고, 상기 권한 부여 정보는 허용 또는 불허용인, 네트워크 노드.
  19. 제17항에 있어서,
    상기 처리 유닛은 구체적으로, m개의 제2 프록시 노드를 결정하고, 상기 권한 검증 요청을 생성하도록 구성되고 - 여기서, 상기 권한 검증 요청은 상기 요청 노드의 아이덴티티와 상기 암호화된 제1 암호문을 포함하고, 상기 암호화된 제1 암호문은 상기 액세스될 데이터를 암호화하여 생성되며, m은 1보다 크거나 같은 양의 정수임 -;
    상기 송신 유닛은 구체적으로, 상기 권한 검증 요청을 상기 m개의 제2 프록시 노드 각각에 송신하도록 구성된, 네트워크 노드.
  20. 제17항 내지 제19항 중 어느 한 항에 있어서,
    상기 수신 유닛은 추가적으로, 적어도 k개의 제2 프록시 노드에 의해 송신된 부분 키를 수신하도록 구성되고 - 여기서, 상기 제2 프록시 노드가 상기 요청 노드의 아이덴티티에 기초하여, 상기 요청 노드가 데이터에 접근할 권한을 가지고 있다는 것을 검증한 후에, 상기 부분 키가 상기 제2 프록시 노드에 의해 생성되어 송신되고, k≤m임 -;
    상기 처리 유닛은 구체적으로, 상기 적어도 k개의 부분 키를 복구하여 변환 키를 생성하고, 상기 변환 키와 암호화 알고리즘을 이용하여 상기 암호화된 제1 암호문을 암호화된 제2 암호문으로 변환하도록 구성되고 - 여기서, 상기 암호화된 제2 암호문은 상기 요청 노드의 공개 키를 이용하는 암호화에 의해 생성됨 -;
    상기 송신 유닛은 추가적으로, 상기 암호화된 제2 암호문을 상기 요청 노드에 송신하도록 구성된, 네트워크 노드.
  21. 제20항에 있어서,
    상기 처리 유닛은 구체적으로, k개 미만의 제2 프록시 노드에 의해 송신된 부분 키를 상기 수신 유닛을 이용하여 수신하거나 또는 적어도 하나의 제2 프록시 노드에 의해 피드백된 거부 메시지를 상기 수신 유닛을 이용하여 수신하면, 상기 송신 유닛을 이용하여 액세스 거부 메시지를 상기 요청 노드에 송신하도록 구성된, 네트워크 노드.
  22. 제17항 내지 제21항 중 어느 한 항에 있어서,
    상기 수신 유닛은 구체적으로, 상기 블록체인 네트워크 상의 임의의 블록체인 노드를 이용하여 포워딩된 상기 제1 요청 메시지를 수신하도록 구성된, 네트워크 노드.
  23. 제17항 내지 제21항 중 어느 한 항에 있어서,
    상기 처리 유닛은 추가적으로, 상기 요청 노드의 아이덴티티에 기초하여, 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 상기 권한을 가지고 있는지 여부를 판정하고; 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있지 않으면, 상기 요청 노드의 제1 요청 메시지를 거부하도록 구성된, 네트워크 노드.
  24. 제1 노드에 적용되는 네트워크 노드로서,
    제2 노드의 아이덴티티를 획득하도록 구성된 수신 유닛 - 상기 아이덴티티는 상기 제2 노드의 권한 부여 정보(authorization information)를 결정하는 데 사용됨 -; 및
    상기 권한 부여 정보가 허용이면, 상기 네트워크 노드의 개인 키, 상기 제2 노드의 공개 키, 및 암호화 알고리즘을 이용하여 변환 키를 생성하고; 블록체인 네트워크 상의 프록시 노드의 공개 키를 이용하여 상기 변환 키를 암호화하여 암호화된 부분 키를 생성하며; 제1 트랜잭션 정보(transaction information)를 생성하고, 상기 블록체인 네트워크 상에 상기 제1 트랜잭션 정보를 기록하도록 구성된 처리 유닛
    을 포함하고,
    상기 제1 트랜잭션 정보는 상기 제2 노드의 아이덴티티, 상기 제2 노드의 권한 부여 정보, 및 상기 암호화된 부분 키를 포함하는, 네트워크 노드.
  25. 제24항에 있어서,
    상기 처리 유닛은 구체적으로, 비밀 공유 알고리즘을 이용하여 상기 변환 키를 n개의 부분 키로 변환하고 - 여기서, n은 1보다 크거나 같은 양의 정수임 -; 상기 블록체인 네트워크로부터 m개의 프록시 노드를 선택하고, 상기 m개의 프록시 노드의 공개 키를 이용하여 상기 n개의 부분 키를 암호화하여 n개의 암호화된 부분 키를 생성하도록 구성되고, m≤n인, 네트워크 노드.
  26. 제25항에 있어서,
    상기 제1 트랜잭션 정보는 상기 m개의 프록시 노드의 아이덴티티, 및 상기 변환 키를 복구하기 위한 부분 키의 최소 개수(k)를 더 포함하는, 네트워크 노드.
  27. 제24항 내지 제26항 중 어느 한 항에 있어서,
    상기 처리 유닛은 구체적으로, 상기 제1 트랜잭션 정보를 상기 블록체인 네트워크 상의 블록체인 노드에 송신하고, 상기 제1 트랜잭션 정보를 브로드캐스트하고 상기 블록체인 노드를 이용하여 네트워크 전체의 상기 제1 트랜잭션 정보에 대해 합의에 도달하며, 상기 제1 트랜잭션 정보를 저장하도록 구성된, 네트워크 노드.
  28. 제27항에 있어서,
    상기 처리 유닛은 추가적으로, 상기 권한 부여 정보가 불허용이면, 상기 제2 노드의 권한 부여 정보를 취소하고; 제2 트랜잭션 정보를 생성하고, 상기 블록체인 네트워크 상에 상기 제2 트랜잭션 정보를 저장하도록 구성되고, 상기 제2 트랜잭션 정보는 상기 제2 노드의 아이덴티티와 상기 제2 노드의 권한 부여 정보를 포함하는, 네트워크 노드.
  29. 제24항 내지 제26항 중 어느 한 항에 있어서,
    상기 처리 유닛은 추가적으로, 상기 제2 노드의 아이덴티티를 획득하기 전에, 상기 제1 노드의 공개 키와 프록시 재암호화 알고리즘을 이용하여, 액세스될 데이터를 암호화하여 암호화된 제1 암호문을 생성하고; 상기 암호화된 제1 암호문을 상기 블록체인 네트워크 상의 트랜잭션으로 저장하도록 구성된, 네트워크 노드.
  30. 제2 프록시 노드에 적용되는 네트워크 노드로서,
    제1 프록시 노드로부터 권한 검증 요청을 수신하도록 구성된 수신 유닛 - 상기 권한 검증 요청은 요청 노드의 아이덴티티와 암호화된 제1 암호문을 포함하고, 상기 암호화된 제1 암호문은 액세스될 데이터를 암호화하여 생성됨 -;
    상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있는지 여부를 상기 요청 노드의 아이덴티티에 기초하여 판정하고, 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있으면 부분 키를 생성하도록 구성된 처리 유닛; 및
    상기 부분 키를 상기 제1 프록시 노드에 송신하도록 구성된 송신 유닛
    을 포함하는 네트워크 노드.
  31. 제30항에 있어서,
    상기 처리 유닛은 구체적으로, 블록체인 네트워크 상의 암호화된 부분 키를 획득하고 - 여기서, 상기 암호화된 부분 키는 상기 제2 프록시 노드의 공개 키를 이용하여 암호화가 수행된 후에 생성됨 -; 상기 제2 프록시 노드의 개인 키를 이용하여 상기 암호화된 부분 키를 복호화하여 상기 부분 키를 생성하도록 구성된, 네트워크 노드.
  32. 제30항 또는 제31항에 있어서,
    상기 처리 유닛은 추가적으로, 상기 요청 노드의 아이덴티티에 기초하여, 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 상기 권한을 가지고 있다는지 여부를 판정하고; 상기 요청 노드가 상기 암호화된 제1 암호문을 판독할 권한을 가지고 있지 않으면, 상기 제1 프록시 노드의 제1 요청을 거부하도록 구성된, 네트워크 노드.
KR1020207029445A 2018-03-19 2019-02-21 데이터 액세스 권한 제어 방법 및 장치 KR102503515B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810224356.1A CN110290094B (zh) 2018-03-19 2018-03-19 一种数据访问权限的控制方法和装置
CN201810224356.1 2018-03-19
PCT/CN2019/075719 WO2019179277A1 (zh) 2018-03-19 2019-02-21 一种数据访问权限的控制方法和装置

Publications (2)

Publication Number Publication Date
KR20200131307A true KR20200131307A (ko) 2020-11-23
KR102503515B1 KR102503515B1 (ko) 2023-02-23

Family

ID=67986654

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207029445A KR102503515B1 (ko) 2018-03-19 2019-02-21 데이터 액세스 권한 제어 방법 및 장치

Country Status (7)

Country Link
US (2) US11563569B2 (ko)
EP (1) EP3761588B1 (ko)
JP (1) JP2021516917A (ko)
KR (1) KR102503515B1 (ko)
CN (1) CN110290094B (ko)
SG (1) SG11202009089SA (ko)
WO (1) WO2019179277A1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102391187B1 (ko) * 2021-11-24 2022-04-28 엘에스웨어(주) 피드백 정보 블록체인 기록 방법 및 시스템
KR20220118796A (ko) 2021-02-19 2022-08-26 부경대학교 산학협력단 퍼블릭 블록체인에서의 개인 간 데이터 거래 및 공유를 지원하는 액세스 제어 시스템 및 방법
WO2022231104A1 (ko) * 2021-04-29 2022-11-03 주식회사 이노블록 뉴럴 블록 신속 전파 프로토콜 기반의 블록체인을 구축하는 장치 및 그 동작 방법
KR102467441B1 (ko) * 2021-10-28 2022-11-17 (주)씨큐하이 텐더민트 bft를 이용한 비정형 데이터의 암호화 방법, 장치 및 컴퓨터-판독가능 기록매체
KR102549385B1 (ko) * 2022-11-03 2023-06-29 주식회사 커먼컴퓨터 데이터 액세스 제어 제공 방법 및 시스템

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110611911B (zh) * 2019-10-18 2022-08-26 中国联合网络通信集团有限公司 一种移动通信方法及装置
CN112787976B (zh) * 2019-11-06 2023-04-07 阿里巴巴集团控股有限公司 数据加密、解密和共享方法、设备、系统及存储介质
CN110909379B (zh) * 2019-11-08 2022-03-22 浪潮电子信息产业股份有限公司 一种存储集群的权限确定方法、装置、设备及存储介质
CN111050317B (zh) * 2019-12-07 2022-08-02 江西理工大学 一种基于联盟区块链的智能交通数据安全共享方法
CN111008855B (zh) * 2019-12-10 2024-02-13 上海信联信息发展股份有限公司 一种基于改进代理重加密的追溯数据访问控制方法
CN112953986B (zh) * 2019-12-10 2024-03-12 华为云计算技术有限公司 一种边缘应用的管理方法及装置
CN111241574B (zh) * 2019-12-19 2024-04-30 广州宏算信息科技有限公司 基于区块链的隐私保护方法、装置及存储介质
CN111092958B (zh) * 2019-12-27 2022-10-21 深圳市迅雷网络技术有限公司 一种节点接入方法、装置、系统及存储介质
CN111447174A (zh) * 2020-02-19 2020-07-24 江苏荣泽信息科技股份有限公司 一种基于区块链的数据加密方法
CN111404895A (zh) * 2020-03-06 2020-07-10 湖南智慧政务区块链科技有限公司 一种共享数据可读权限分配与回收方法、设备及存储介质
CN111461710B (zh) * 2020-03-06 2023-06-23 重庆邮电大学 一种基于联盟链的分布式账本访问控制方法
CN111159750B (zh) * 2020-04-07 2021-02-05 南京邮电大学 基于联盟链的汽车维修数据存储方法
US11658816B2 (en) * 2020-04-15 2023-05-23 Philips North America Llc Document control system for blockchain
CN113536388B (zh) * 2020-04-16 2023-02-28 中移物联网有限公司 一种基于区块链的数据共享方法及系统
CN111625869B (zh) * 2020-04-23 2022-02-25 腾讯科技(深圳)有限公司 数据处理方法及数据处理装置
CN111601280B (zh) * 2020-05-14 2022-08-19 中国联合网络通信集团有限公司 一种接入验证方法及装置
US11909859B2 (en) * 2020-06-02 2024-02-20 Sap Se Removing access to blockchain data
CN111858611A (zh) * 2020-07-28 2020-10-30 北京金山云网络技术有限公司 数据访问方法、装置、计算机设备及存储介质
CN112118224B (zh) * 2020-08-12 2021-07-23 北京大学 一种大数据区块链的可信机制权限管理方法和系统
CN112182644B (zh) * 2020-09-11 2023-05-12 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和电子设备
CN112182646A (zh) * 2020-09-16 2021-01-05 小米数字科技有限公司 数据读取方法及装置、数据授权方法及装置、存储介质
CN112307116A (zh) * 2020-09-17 2021-02-02 北京沃东天骏信息技术有限公司 基于区块链的数据访问控制方法、装置及设备
US20220141658A1 (en) * 2020-11-05 2022-05-05 Visa International Service Association One-time wireless authentication of an internet-of-things device
CN112328984B (zh) * 2020-11-24 2024-02-09 深圳市鹰硕技术有限公司 一种应用于大数据的数据安全管理方法和系统
CN112839092A (zh) * 2021-01-11 2021-05-25 北京信息科技大学 一种基于区块链的数据共享系统
CN113112354A (zh) * 2021-03-04 2021-07-13 卓尔智联(武汉)研究院有限公司 一种区块链网络的交易处理方法、区块链网络及存储介质
CN116868559A (zh) * 2021-03-11 2023-10-10 黑莓有限公司 用于在分布式系统中执行身份检查的方法和系统
US11620363B1 (en) 2021-03-15 2023-04-04 SHAYRE, Inc. Systems and methods for authentication and authorization for software license management
CN113162762B (zh) * 2021-04-16 2022-07-19 北京深思数盾科技股份有限公司 密钥授权方法、加密机、终端及存储介质
CN113329408B (zh) * 2021-04-20 2022-02-01 北京连山科技股份有限公司 一种军用lte与民用无线拨号网络混合组网的多路并发系统
CN112995211B (zh) * 2021-04-21 2021-07-23 腾讯科技(深圳)有限公司 基于区块链网络的数据处理方法、装置、设备及存储介质
CN113315758B (zh) * 2021-05-11 2022-09-13 支付宝(杭州)信息技术有限公司 信息代理方法和装置
EP4095731A1 (en) * 2021-05-27 2022-11-30 Billon Sp. z o.o. Method and system of rescinding access to blockchain data
CN113438205B (zh) * 2021-05-31 2022-12-20 东软集团股份有限公司 区块链数据访问控制方法、节点以及系统
CN113259124A (zh) * 2021-06-08 2021-08-13 清华大学 一种区块链数据写入、访问方法及装置
CN114039753B (zh) * 2021-10-27 2024-03-12 中国联合网络通信集团有限公司 一种访问控制方法、装置、存储介质及电子设备
CN113742782B (zh) * 2021-11-04 2022-02-08 中国信息通信研究院 基于隐私保护的区块链访问权限控制方法和区块链系统
CN114172665A (zh) * 2021-12-07 2022-03-11 东软集团股份有限公司 区块链零信任系统以及用于区块链零信任系统的方法
CN114513533B (zh) * 2021-12-24 2023-06-27 北京理工大学 一种分类分级健身健康大数据共享系统及方法
CN114679264B (zh) * 2022-03-16 2023-12-08 亚信科技(成都)有限公司 一种密码生成方法、装置及存储介质
CN114785516B (zh) * 2022-03-31 2024-04-05 浙江数秦科技有限公司 基于区块链的限时加解密系统
CN114448732B (zh) * 2022-04-08 2022-06-21 中国信息通信研究院 标识隐私数据网络传输的保护方法和装置、介质、设备
CN117009983A (zh) * 2022-04-29 2023-11-07 华为技术有限公司 一种节点集群以及数据备份方法
CN115174235B (zh) * 2022-07-08 2023-06-02 慧之安信息技术股份有限公司 一种基于区块链的物联网可撤销属性加密方法
CN116455571B (zh) * 2023-06-16 2023-12-22 广州广杰网络科技有限公司 一种基于区块链网络通讯的数据交互方法及终端
CN117692151B (zh) * 2024-02-02 2024-05-31 杭州天谷信息科技有限公司 基于服务网络的通证撤销方法和通信方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010098954A (ko) * 2000-04-28 2001-11-08 고즈끼 가게히꼬 네트워크 접속 제어 방법 및 접속 제어 시스템
US20160205114A1 (en) * 2013-08-20 2016-07-14 Nokia Technologies Oy Method and apparatus for privacy-enhanced evidence evaluation
CN107070938A (zh) * 2017-04-27 2017-08-18 电子科技大学 基于区块链的数据访问控制系统

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10490304B2 (en) * 2012-01-26 2019-11-26 Netspective Communications Llc Device-driven non-intermediated blockchain system over a social integrity network
US10984913B2 (en) * 2012-04-27 2021-04-20 Netspective Communications Llc Blockchain system for natural language processing
US9197422B2 (en) * 2013-01-24 2015-11-24 Raytheon Company System and method for differential encryption
CN105871538B (zh) * 2015-01-22 2019-04-12 阿里巴巴集团控股有限公司 量子密钥分发系统、量子密钥分发方法及装置
US10586063B2 (en) * 2015-03-20 2020-03-10 Samsung Electronics Co., Ltd. Method and apparatus for storing file by using a plurality of cloud storages
US9881300B2 (en) * 2015-03-27 2018-01-30 Intel Corporation Technologies for split key security
US10404450B2 (en) * 2016-05-02 2019-09-03 Cisco Technology, Inc. Schematized access control in a content centric network
US11153092B2 (en) * 2016-08-30 2021-10-19 Commonwealth Scientific And Industrial Research Organisation Dynamic access control on blockchain
CN107103252A (zh) * 2017-04-27 2017-08-29 电子科技大学 基于区块链的数据访问控制方法
JP6302592B2 (ja) * 2017-06-23 2018-03-28 株式会社エヌ・ティ・ティ・データ 情報処理装置、情報処理方法およびプログラム
CN107181599B (zh) * 2017-07-18 2020-01-21 天津理工大学 基于区块链的路由位置数据保密存储及共享方法
US10735202B2 (en) * 2017-07-24 2020-08-04 International Business Machines Corporation Anonymous consent and data sharing on a blockchain
CN107241360B (zh) * 2017-08-04 2019-01-18 北京明朝万达科技股份有限公司 一种数据安全共享交换方法和数据安全共享交换平台系统
CN107395349A (zh) * 2017-08-16 2017-11-24 深圳国微技术有限公司 一种基于自认证公钥体制的区块链网络密钥分发方法
WO2020081727A1 (en) * 2018-10-16 2020-04-23 Eluvio, Inc. Decentralized content fabric
EP3654578B1 (en) * 2018-11-16 2022-04-06 SafeTech BV Methods and systems for cryptographic private key management for secure multiparty storage and transfer of information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010098954A (ko) * 2000-04-28 2001-11-08 고즈끼 가게히꼬 네트워크 접속 제어 방법 및 접속 제어 시스템
US20160205114A1 (en) * 2013-08-20 2016-07-14 Nokia Technologies Oy Method and apparatus for privacy-enhanced evidence evaluation
CN107070938A (zh) * 2017-04-27 2017-08-18 电子科技大学 基于区块链的数据访问控制系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220118796A (ko) 2021-02-19 2022-08-26 부경대학교 산학협력단 퍼블릭 블록체인에서의 개인 간 데이터 거래 및 공유를 지원하는 액세스 제어 시스템 및 방법
WO2022231104A1 (ko) * 2021-04-29 2022-11-03 주식회사 이노블록 뉴럴 블록 신속 전파 프로토콜 기반의 블록체인을 구축하는 장치 및 그 동작 방법
KR102467441B1 (ko) * 2021-10-28 2022-11-17 (주)씨큐하이 텐더민트 bft를 이용한 비정형 데이터의 암호화 방법, 장치 및 컴퓨터-판독가능 기록매체
KR102391187B1 (ko) * 2021-11-24 2022-04-28 엘에스웨어(주) 피드백 정보 블록체인 기록 방법 및 시스템
KR102549385B1 (ko) * 2022-11-03 2023-06-29 주식회사 커먼컴퓨터 데이터 액세스 제어 제공 방법 및 시스템
WO2024096213A1 (ko) * 2022-11-03 2024-05-10 주식회사 커먼컴퓨터 데이터 액세스 제어 제공 방법 및 시스템

Also Published As

Publication number Publication date
CN110290094A (zh) 2019-09-27
CN110290094B (zh) 2022-03-11
EP3761588B1 (en) 2023-08-02
JP2021516917A (ja) 2021-07-08
US20230119065A1 (en) 2023-04-20
SG11202009089SA (en) 2020-10-29
EP3761588A4 (en) 2021-01-13
US20210006400A1 (en) 2021-01-07
WO2019179277A1 (zh) 2019-09-26
KR102503515B1 (ko) 2023-02-23
EP3761588A1 (en) 2021-01-06
US11563569B2 (en) 2023-01-24

Similar Documents

Publication Publication Date Title
KR102503515B1 (ko) 데이터 액세스 권한 제어 방법 및 장치
JP4199074B2 (ja) 安全なデータ通信リンクのための方法と装置
US8059818B2 (en) Accessing protected data on network storage from multiple devices
US7861097B2 (en) Secure implementation and utilization of device-specific security data
KR101730757B1 (ko) 사용자에 의해 디바이스에 액세스하기 위한 방법 및 시스템
CN111371790B (zh) 基于联盟链的数据加密发送方法、相关方法、装置和系统
JP2009510978A (ja) 制約された暗号キー
TW201012166A (en) Virtual subscriber identity module
WO2018202109A1 (zh) 一种证书请求消息发送方法、接收方法和装置
US11265154B2 (en) Network device and trusted third party device
US20090180621A1 (en) Adaptive secure authenticated channels for direct sharing of protected content between devices
US20080313085A1 (en) System and method to share a guest version of rights between devices
CN116668167A (zh) 基于区块链的数据通信的智能合约方法
JP5745493B2 (ja) 鍵共有システム、鍵共有方法、プログラム
Sultan et al. A secure access and accountability framework for provisioning services in named data networks
JP2005175992A (ja) 証明書配布システムおよび証明書配布方法
CN112906032B (zh) 基于cp-abe与区块链的文件安全传输方法、系统及介质
CN112019553B (zh) 一种基于ibe/ibbe数据共享方法
CN114866244A (zh) 基于密文分组链接加密的可控匿名认证方法、系统及装置
Gupta et al. Security mechanisms of Internet of things (IoT) for reliable communication: a comparative review
JP2011254146A (ja) 通信内容監査方法および通信内容監査システム
WO2023042618A1 (ja) 無線通信端末装置、認証及び鍵共有方法、プログラム、認証及び鍵共有システム
Sriwiboon et al. Forward Secrecy Enhancement for Named Data Networking Access Control over Mobile Ad-Hoc Networks
Garcia-Morchon et al. Efficient quantum-resistant trust Infrastructure based on HIMMO
Sriwiboon Forward Secrecy Enhancement for Named Data Networking

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant