KR20190012969A - 블록체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법 - Google Patents

블록체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법 Download PDF

Info

Publication number
KR20190012969A
KR20190012969A KR1020170096783A KR20170096783A KR20190012969A KR 20190012969 A KR20190012969 A KR 20190012969A KR 1020170096783 A KR1020170096783 A KR 1020170096783A KR 20170096783 A KR20170096783 A KR 20170096783A KR 20190012969 A KR20190012969 A KR 20190012969A
Authority
KR
South Korea
Prior art keywords
data
block chain
user
access
owner
Prior art date
Application number
KR1020170096783A
Other languages
English (en)
Other versions
KR102025409B1 (ko
Inventor
장주욱
정문용
Original Assignee
서강대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서강대학교산학협력단 filed Critical 서강대학교산학협력단
Priority to KR1020170096783A priority Critical patent/KR102025409B1/ko
Publication of KR20190012969A publication Critical patent/KR20190012969A/ko
Application granted granted Critical
Publication of KR102025409B1 publication Critical patent/KR102025409B1/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/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
    • 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/602Providing cryptographic facilities or services
    • 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/604Tools and structures for managing or administering access control systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명에 따른 데이터 접근 관리 시스템은 블록 체인을 기반으로 한 사용자 컨텍스트를 생성, 저장 및 관리하고, 데이터 접근 권한 부여를 위하여 데이터 소유자의 사용자 컨텍스트를 이용한 액세스 트리를 생성하고, 액세스 트리를 이용하여 데이터 암호문을 생성하고 데이터 요청자의 사용자 컨텍스트를 이용하여 비밀키를 생성하여 데이터 요청자에게 데이터 암호문과 비밀키를 전송하여 복호화할 수 있도록 함으로써, 보안성이 우수한 데이터 접근 관리 시스템을 제공하는 것을 특징으로 한다.

Description

블록체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법{Data access management system based on blockchain and method thereof}
본 발명은 블록체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법에 관한 것으로서, 더욱 구체적으로는 블록체인을 활용한 사용자 컨텍스트를 이용하여, 데이터 소유자의 데이터에 접근할 수 있도록 하는 접근 권한을 각 사용자에게 유동적으로 부여할 수 있도록 하는 데이터 접근 관리 시스템 및 데이터 접근 관리 방법에 관한 것이다.
블록 체인(Block chain)은 공공 거래 장부라고도 부르며 가상 화폐로 거래할 때 발생할 수 있는 해킹을 막는 기술이다. 기존 금융 회사의 경우 중앙 집중형 서버에 거래 기록을 보관하는 반면, 블록체인은 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며 거래 때마다 이를 대조해 데이터 위조를 막는 방식을 사용한다. 블록체인은 대표적인 온라인 가상 화폐인 비트코인에 적용되어 있다. 비트코인은 누구나 열람할 수 있는 장부에 거래 내역을 투명하게 기록하며, 비트코인을 사용하는 여러 컴퓨터가 10분에 한 번씩 이 기록을 검증하여 해킹을 막는다.
한편, 종래의 일반적인 파일 공유 시스템은 중앙 집중형 서버를 이용한 클라우드 storage 에 데이터 또는 파일들을 저장 및 관리하며, 사용자들이 클라우드 storage 에 접속하여 데이터 또는 파일을 요청하거나 검색하게 된다. 이 경우 대용량 저장 장치가 요구될 뿐만 아니라, 이들을 관리하기 위한 중앙 집중형 서버가 요구되므로, 시스템 설계 및 유지가 복잡해지는 문제점이 발생한다.
또한, 사물인터넷(Internet of Things :'IoT')을 구성하는 다수 개의 노드들이 각각 생성한 데이터들에 대해 각 사용자들이 접근할 수 있는 권한을 유동적으로 부여하기 위하여 다양한 방법들이 시도되고 있다. 이 경우에도, 각 노드에 데이터의 분산 저장이 용이하지 아니할 뿐만 아니라, 각 노드에 저장된 데이터들에 대하여 보안성을 제공하면서 다른 사용자들에 대한 검색 서비스를 제공하기가 용이하지 않은 문제점이 발생한다.
이에, 본 출원인은 블록체인을 기반으로 한 사용자 컨텍스트를 이용하여 데이터 소유자의 노드들에 저장된 데이터에 접근할 수 있도록 하는 접근 권한을 사용자에 따라 유동적으로 제공할 수 있도록 하여, 보안성과 데이터 무결성을 보장할 수 있는 데이터 접근 관리 시스템을 제안하고자 한다.
한국공개특허공보 제10-2016-0050876호 한국등록특허공보 제 10-1727525호
전술한 문제점을 해결하기 위한 본 발명의 목적은 블록체인을 기반으로 한 사용자 컨텍스트를 이용하여 데이터 소유자의 노드들에 저장된 데이터에 접근할 수 있도록 하는 접근 권한을 사용자에 따라 유동적으로 제공할 수 있도록 하는 블록체인을 기반으로 한 데이터 접근 관리 시스템을 제공하는 것이다.
본 발명의 다른 목적은 전술한 블록체인을 기반으로 한 데이터 접근 관리 시스템에서 사용될 수 있는 데이터 접근 관리 방법을 제공하는 것이다.
전술한 기술적 과제를 달성하기 위한 본 발명의 제1 특징에 따른 블록체인에 참여하는 다수 개의 사용자 노드들에 대한 데이터 접근 관리 시스템에 있어서,
상기 사용자 노드들의 각각은, 일련의 블록들이 연결되어 구성되는 블록 체인; 사용자 노드에 대한 사용자 컨텍스트 정보를 생성하고, 상기 블록 체인을 이용하여, 상기 사용자 컨텍스트 정보를 저장 및 관리하는 컨텍스트 매니저; 사용자 노드들 중 데이터 소유자가 생성한 데이터를 사전 설정된 공유 디렉토리에 저장하면, 상기 블록 체인을 이용하여, 상기 데이터에 대한 데이터 명칭 및 상기 데이터에 대한 데이터 소유자의 주소 정보를 저장 및 관리하는 주소 매니저; 사용자 노드들 중 데이터 요청자로부터 임의의 데이터 명칭에 대응되는 데이터 요청이 발생하면, 요청된 데이터를 암호화시킨 데이터 암호문과 비밀키를 생성하여 상기 데이터 요청자에게 전송하는 접근 권한 부여 매니저; 상기 블록체인에 저장 및 관리되는 데이터 명칭들을 검색하고, 검색된 데이터 명칭과 함께 저장된 데이터 소유자에 대한 주소 정보를 블록체인으로부터 추출하고, 상기 추출된 데이터 소유자에 대한 주소 정보를 이용하여 상기 검색된 데이터 명칭에 대응되는 데이터를 요청하는 데이터 검색 매니저; 를 구비한다.
제1 특징에 따른 블록체인을 기반으로 한 데이터 접근 관리 시스템에 있어서, 상기 접근 권한 부여 매니저는, 데이터 요청자로부터 임의의 데이터 명칭에 대응되는 데이터 요청이 발생하면, 데이터 소유자에 대한 사용자 컨텍스트를 이용하여 상기 요청된 데이터를 암호화시켜 데이터 암호문을 생성하고, 상기 데이터 요청자에 대한 사용자 컨텍스트를 상기 블록체인으로부터 추출하고, 상기 추출된 데이터 요청자에 대한 사용자 컨텍스트를 이용하여 비밀키를 생성하고, 상기 생성된 데이터 암호문과 상기 비밀키를 상기 데이터 요청자에게 전송하는 것이 바람직하며,
상기 데이터 소유자에 대한 사용자 컨텍스트를 이용하여 데이터 접근 권한을 부여하기 위한 액세스 트리를 생성하고, 상기 액세스 트리를 이용하여 상기 요청된 데이터를 암호화시켜 데이터 암호문을 생성하는 것이 더욱 바람직하다.
제1 특징에 따른 블록체인을 기반으로 한 데이터 접근 관리 시스템에 있어서, 상기 접근 권한 부여 매니저는, 상기 액세스 트리는 상기 데이터 소유자에 대한 사용자 컨텍스트를 리프 노드(leaf-node)로 하는 트리 구조로 구성된 것을 특징으로 하며,
상기 데이터 요청자에 대한 사용자 컨텍스트가 상기 액세스 트리의 조건을 만족하면 비밀키를 이용하여 데이터 암호문을 해독할 수 있고, 상기 데이터 요청자에 대한 사용자 컨텍스트가 상기 액세스 트리의 조건을 만족하지 못하면 비밀키를 이용하여 데이터 암호문을 해독할 수 없도록, 상기 액세스 트리의 조건을 구성한 것이 바람직하다.
제1 특징에 따른 블록체인을 기반으로 한 데이터 접근 관리 시스템에 있어서, 상기 주소 매니저는, 데이터 소유자가 생성한 데이터를 사전 설정된 공유 디렉토리에 저장하면, 상기 데이터에 대한 데이터 명칭 및 상기 데이터 소유자의 주소 정보를 추출하여 트랜잭션을 생성하여 블록체인에 참여하는 모든 사용자 노드들에게 전송하고,
상기 트랜잭션은 블록체인에 참여한 사용자 노드들의 Proof-of-Work 과정을 거쳐 상기 블록체인의 블록으로 저장 및 관리되는 것이 바람직하다.
제1 특징에 따른 블록체인을 기반으로 한 데이터 접근 관리 시스템에 있어서, 상기 주소 매니저는, 상기 데이터에 대한 데이터 명칭에 상태 플래그를 포함시키고, 상기 상태 플래그에는 상기 데이터 명칭에 대응되는 데이터의 현재 상태 정보를 기록하는 것이 바람직하다.
제1 특징에 따른 블록체인을 기반으로 한 데이터 접근 관리 시스템에 있어서, 상기 주소 매니저는, 상기 데이터 소유자의 IP 주소 및 TCP port number를 상기 데이터 소유자의 주소 정보로서 추출하는 것이 바람직하다.
제1 특징에 따른 블록체인을 기반으로 한 데이터 접근 관리 시스템에 있어서, 상기 컨텍스트 매니저는, 각 사용자 노드들의 사용자에 대한 컨텍스트 정보를 추출하여 트랜잭션을 생성하여 블록체인에 참여하는 모든 사용자 노드들에게 전송하고, 상기 트랜잭션은 블록체인에 참여한 사용자 노드들의 Proof-of-Work 과정을 거쳐 상기 블록체인의 블록으로 저장 및 관리되는 것이 바람직하다.
본 발명의 제2 특징에 따른 블록체인에 참여하는 다수 개의 사용자 노드들에 대한 데이터 접근 관리 방법은, (a) 사용자 노드에 대한 사용자 컨텍스트 정보를 생성하고, 상기 블록 체인을 이용하여, 상기 사용자 컨텍스트 정보를 저장 및 관리하는 단계; (b) 사용자 노드들 중 데이터 소유자가 생성한 데이터를 사전 설정된 공유 디렉토리에 저장하면, 상기 블록 체인을 이용하여, 상기 데이터에 대한 데이터 명칭 및 상기 데이터에 대한 데이터 소유자의 주소 정보를 저장 및 관리하는 단계; (c) 사용자 노드들 중 데이터 요청자로부터 임의의 데이터 명칭에 대응되는 데이터 요청이 발생하면, 요청된 데이터를 암호화시킨 데이터 암호문과 비밀키를 생성하여 상기 데이터 요청자에게 전송하는 단계; (d) 상기 블록체인에 저장 및 관리되는 데이터 명칭들을 검색하고, 검색된 데이터 명칭과 함께 저장된 데이터 소유자에 대한 주소 정보를 블록체인으로부터 추출하고, 상기 추출된 데이터 소유자에 대한 주소 정보를 이용하여 상기 검색된 데이터 명칭에 대응되는 데이터를 요청하는 단계; 를 구비한다.
제2 특징에 따른 블록체인을 기반으로 한 데이터 접근 관리 방법에 있어서, 상기 (c) 단계는, 데이터 요청자로부터 임의의 데이터 명칭에 대응되는 데이터 요청이 발생하면, 상기 데이터 소유자에 대한 사용자 컨텍스트를 이용하여 데이터 접근 권한을 부여하기 위한 액세스 트리를 생성하는 단계, 상기 액세스 트리를 이용하여 상기 요청된 데이터를 암호화시켜 데이터 암호문을 생성하는 단계, 상기 데이터 요청자에 대한 사용자 컨텍스트를 상기 블록체인으로부터 추출하는 단계, 상기 추출된 데이터 요청자에 대한 사용자 컨텍스트를 이용하여 비밀키를 생성하는 단계, 상기 생성된 데이터 암호문과 상기 비밀키를 상기 데이터 요청자에게 전송하는 단계를 구비하는 것이 바람직하다.
제2 특징에 따른 블록체인을 기반으로 한 데이터 접근 관리 방법에 있어서, 상기 (b) 단계는, 데이터 소유자가 생성한 데이터를 사전 설정된 공유 디렉토리에 저장하면, 상기 데이터에 대한 데이터 명칭 및 상기 데이터 소유자의 주소 정보를 추출하여 트랜잭션을 생성하는 단계, 상기 생성된 트랜잭션을 전자서명한 후 블록체인에 참여하는 모든 사용자 노드들에게 전송하는 단계, 상기 트랜잭션을 수신한 사용자 노드들이 Proof-of-Work 과정을 거쳐 상기 블록체인의 블록으로 저장 및 관리하는 단계;를 구비하는 것이 바람직하다.
본 발명에 따른 데이터 접근 관리 시스템은, 블록체인 네트워크에 참여한 모든 사용자의 컨텍스트를 블록에 기록하고, 데이터 소유자가 지정한 폴더 내에 생성한 데이터의 명칭을 자신의 IP와 함께 블록체인에 저장하며, 블록체인에 참여한 사용자가 데이터 명칭 검색을 통해 데이터 소유자를 확인할 수 있으며 이를 토대로 하여 데이터를 요청하고, 데이터 소유자는 블록체인에서 추출한 데이터 요청자에 대한 사용자 컨텍스트를 자신이 설정한 액세스 트리에 대입하여 생성한 데이터 암호문과 비밀키를 전송하며, 데이터 요청자가 데이터 소유자에 의해 설정된 액세스 트리에 적합할 경우 데이터 암호문을 복호화시킬 수 있게 되고, 그렇지 아니한 경우 데이터 암호문을 복호화시킬 수 없도록 함으로써, 데이터 소유자는 자신이 생성한 데이터의 접근 권한을 데이터 요청자에 따라 유동적으로 설정할 수 있게 된다.
또한, 본 발명에 따른 데이터 접근 관리 시스템은, 네트워크상에서 데이터 공유 플랫폼뿐만 아니라 모든 사용자가 공유하고 데이터 리스트를 확인할 수 있는 데이터 관리 시스템과 데이터 접근 권한을 부여하는 전송 시스템 구현이 가능하다. 본 발명에 따른 시스템은, 데이터의 명칭이나 데이터 소유자의 정보를 블록체인을 통해 저장함으로써 해시 함수를 통해 데이터 무결성(Data Integrity), 전자 서명인 signature를 통해 사용자 인증(Authentication), 부정방지(Non-repudiation)가 보장되며 CP-ABE 기반 액세스 트리를 통해 접근 허가된 사용자만이 데이터를 해석할 수 있는 접근 권한 설정 시스템을 구현할 수 있게 된다.
따라서, 본 발명에 따른 데이터 접근 관리 시스템은, 활용가능성이 무궁무진한 블록체인의 활용법을 제시하고 블록체인의 원리에 입각한 프로그램 개발 방법을 제공할 수 있게 된다.
도 1은 본 발명에 따른 데이터 접근 관리 시스템을 이용하여, 데이터 소유자인 의사가 생성한 데이터에 대한 접근 권한을 요청하는 데이터 요청자들에 따라 서로 다른 접근 권한을 부여하는 과정을 개념적으로 설명하기 위하여 도시한 의료 시스템에 대한 모식도이다.
도 2는 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템에 있어서, 각 사용자 노드의 구성을 도시한 블록도이며, 도 3은 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템을 설명하기 위하여 전체적으로 도시한 구성도이다.
도 4는 본 발명에 따른 데이터 접근 관리 시스템에 있어서, 소정의 정보를 블록 체인에 블록의 형태로 저장하는 과정을 도시한 흐름도이다.
도 5는 본 발명에 따른 데이터 접근 관리 시스템에 있어서, 데이터 소유자에 의해 데이터가 생성되어 공유 디렉토리에 저장된 후, 주소 매니저(140)가 데이터 명칭과 데이터 소유자 주소 정보를 블록 체인에 저장하는 과정을 설명하기 위하여 도시한 개념도이며, 도 6은 주소 매니저(140)의 동작을 순차적으로 설명하는 흐름도이다.
도 7은 본 발명에 따른 데이터 접근 관리 시스템에 있어서, 컨텍스트 매니저(130)가 사용자에 대한 사용자 컨텍스트 정보를 블록 체인에 저장하는 과정을 설명하기 위하여 도시한 개념도이며, 도 8은 컨텍스트 매니저(130)의 동작을 순차적으로 설명하는 흐름도이다.
도 9는 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템에 있어서, 상기 접근 권한 부여 매니저(150)가 블록체인에서 추출한 사용자 컨텍스트를 이용하여 접근 권한 부여를 위한 액세스 트리를 설정하고 암호문과 비밀키를 각 사용자에게 전송하여 해독 가능 여부를 확인함으로써 데이터 접근 권한을 부여하는 알고리즘을 도시하는 개념도이며, 도 10은 접근 권한 부여 매니저(150)의 동작을 순차적으로 설명하는 흐름도이다.
도 11은 CP-ABE 방식을 사용하여 데이터 소유자가 데이터 요청자에게 데이터 접근 권한을 부여하는 과정을 도시한 개념도이며, 도 12는 본 발명에 따른 데이터 접근 관리 시스템에 있어서, CP-ABE 방식을 사용하여 생성된 액세스 트리를 예시적으로 도시한 것이다.
도 13은 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템에 있어서, 데이터 검색 매니저(160)의 동작을 설명하기 위하여 도시한 개념도이다.
본 발명에 따른 데이터 접근 관리 시스템은 블록 체인을 기반으로 한 사용자 컨텍스트를 생성, 저장 및 관리하고, 데이터 접근 권한 부여를 위하여 데이터 소유자의 사용자 컨텍스트를 이용한 액세스 트리를 생성하고, 액세스 트리를 이용하여 데이터 암호문을 생성하고 데이터 요청자의 사용자 컨텍스트를 이용하여 비밀키를 생성하여 데이터 요청자에게 데이터 암호문과 비밀키를 전송하여 복호화할 수 있도록 함으로써, 보안성이 우수한 데이터 접근 관리 시스템을 제공하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 블록 체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법을 구체적으로 설명한다.
도 1은 본 발명에 따른 데이터 접근 관리 시스템을 이용하여, 데이터 소유자인 의사가 생성한 데이터에 대한 접근 권한을 요청하는 데이터 요청자들에 따라 서로 다른 접근 권한을 부여하는 과정을 개념적으로 설명하기 위하여 도시한 의료 시스템에 대한 모식도이다.
도 1을 참조하면, 일반적인 의료 시스템에 있어서 환자를 진료하는 의사는 환자에게서 생성된 뇌파, 심박, 체온 등과 같은 센서 데이터와 산소 공급량, 약물 투여량, X-ray 기록등과 같은 액츄에이터 데이터를 발생시키고 이를 진료 기록으로써 저장하게 된다. 이러한 환자의 진료기록이 필요한 사용자가 있을 경우, 데이터 요청자인 사용자는 진료 기록을 가지고 있는 데이터 소유자를 쉽게 검색할 수 있어야 하며, 데이터 소유자인 의사는 자신이 가진 데이터를 열람할 권리가 있는 데이터 요청자에게만 데이터를 전송해야 하며, 이 두가지 경우 모두 높은 보안성이 요구된다.
이러한 요구에 따라, 본 발명은 블록 체인을 데이터 접근 관리 시스템에 적용함으로써, 데이터 요청자는 블록을 열람함으로써 데이터 소유자를 쉽게 검색할 수 있도록 하고, 블록 체인이 지원하는 보안성까지 얻을 수 있도록 한다. 또한, 본 발명에 따른 시스템에 있어서, 데이터를 열람할 수 있는 권한을 가진 데이터 요청자에게만 데이터를 전송할 수 있도록 하기 위하여, 데이터 소유자는 블록 체인에 기록되어 있는 사용자 컨텍스트 정보를 정보 위조의 위험성없이 확인할 수 있으며, 이러한 사용자 컨텍스트를 사용하여 액세스 트리를 제작하여 데이터 요청자가 데이터에 접근할 수 있도록 하는 권한을 부여할 수 있게 된다.
도 2는 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템에 있어서, 각 사용자 노드의 구성을 도시한 블록도이며, 도 3은 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템을 설명하기 위하여 전체적으로 도시한 구성도이다.
도 2 및 도 3을 참조하면, 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템(1)은 별도의 중앙 관리 서버없이 블록 체인(Block chain)을 활용하여, 다수의 사용자 노드들이 데이터 소유자로서 데이터를 생성하여 저장 및 관리하거나 데이터 요청자로서 다른 사용자 노드들에 저장된 데이터를 검색하고 요청할 수 있도록 한다.
상기 블록체인에 참여하는 각 사용자 노드들(10, 20, 30)은, 블록 체인(100), 데이터 저장 모듈(110), IP 리스트(120), 컨텍스트 매니저(130), 주소 매니저(140), 접근 권한 부여 매니저(150) 및 데이터 검색 매니저(160)를 구비한다.
각 사용자 노드들이 전술한 구성을 갖는 본 발명에 따른 데이터 접근 관리 시스템은, 블록체인을 이용해 사용자의 컨텍스트 정보를 관리 및 저장하는 컨텍스트 매니저(context manager), 생성한 데이터에 대한 데이터 명칭을 IP address와 port number의 정보와 함께 블록에 저장하여 데이터 명칭 검색을 통해 데이터 소유자를 확인 가능하도록 하는 주소 매니저, 데이터 소유자의 사용자 컨텍스트를 이용한 액세스 트리로 암호화시킨 데이터 암호문과 데이터 요청자의 사용자 컨텍스트를 이용하여 생성한 비밀키를 제공하여 데이터 소유자가 각 사용자 노드에게 접근 권한 부여가 가능하도록 하는 접근 권한 부여 매니저, 데이터를 검색하고, 검색된 데이터를 요청하고, 요청에 따라 데이터 소유자로부터 제공된 데이터 암호문을 비밀키로 복호화함으로써 원본 데이터를 확인할 수 있도록 하는 데이터 검색 매니저를 설계하고, 최종적으로 보안성 있는 데이터 접근 관리 시스템을 구현한다.
본 발명에 따른 시스템에 있어서, 사용자 컨텍스트 정보 및 데이터 명칭과 데이터 소유자의 맵핑 정보는 블록체인으로 기록되어 있기 때문에 모든 사용자 노드가 같은 정보를 공유하게 된다. 따라서, 악의적 사용자 노드가 임의로 내용을 수정하기 위해서는 모든 사용자 노드가 가지고 있는 블록체인의 내용을 수정해야 하므로 임의적 수정이 사실상 불가능하며, 그 결과 블록체인 자체로도 보안성이 뛰어나다. 또한, 본 발명에 따른 시스템은, CP-ABE를 기반으로 하여 데이터를 암호화시키고, 데이터 소유자가 접근을 허락한 사용자 컨텍스트를 가진 사용자만이 데이터 복호화가 가능하도록 함으로써, 안전한 접근 제어가 가능하고, 데이터 소유자가 액세스 트리 설정시 설정 컨텍스트 변화를 통해 접근 권한을 부여하므로, 간단히 컨텍스트 변화를 통해 유동적인 접근 권한 조정이 가능하다.
상기 블록 체인(100)은 일련의 블록들이 연결되어 구성되는 것으로서, 상기 블록들은 JSON 파일 형태로 이루어지며, 현재 블록의 해쉬(Hash) 값, 논스(Nonce) 값, 이전 블록의 해쉬값, 타임 스탬프(Time Stamp)를 포함한다.
이하, 도 4를 참조하여 블록 체인에 블록을 기록하는 과정을 개략적으로 설명한다. 도 4는 본 발명에 따른 데이터 접근 관리 시스템에 있어서, 소정의 정보를 블록 체인에 블록의 형태로 저장하는 과정을 도시한 흐름도이다.
도 4를 참조하면, 먼저, 블록 체인에 참여하는 노드가 블록에 저장하고자 하는 소정의 정보를 포함하는 트랜잭션(transaction)을 생성한다(단계 400). 블록체인에 참여하는 노드들은 모든 노드들의 IP 리스트를 가지고 있으며, IP 리스트에는 참여 노드들에 대한 주소 정보인 IP address와 TCP port number, 그리고 모든 참여 노드들의 ECDSA public key가 저장되어 있다. 다음, 트랜잭션을 생성한 노드는 전자 서명하여 트랜잭션에 첨부한 후(단계 410), IP 리스트에 저장된 IP와 port를 이용하여 모든 노드들에게 트랜잭션을 전송하며(단계 420), 전송 방식은 TCP socket 통신을 사용한다. IP 리스트에는 트랜잭션 생성 노드의 IP와 port도 포함되어 있으므로 자신을 제외한 나머지 노드들에게 트랜잭션을 전송한다. 트랜잭션 전송 시 트랜잭션 생성 노드는 자신의 IP address와 TCP socket 통신에 사용할 port number를 나열하고 트랜잭션 생성 노드만이 가지고 있는 ECDSA private key를 이용하여 암호화한 전자서명을 생성한다. 해당 전자서명은 트랜잭션에 첨부되어 다른 노드들에게 전송된다. 트랜잭션을 수신한 노드는 트랜잭션 송신 노드의 IP와 port를 확인하여 IP 리스트에 저장된 public key를 이용해 복호화하여 출력된 결과가 트랜잭션 송신 노드의 IP, port와 일치하는지 확인하여 해당 트랜잭션의 유효성을 검증하게 된다(단계 430).
블록체인 트랜잭션에 포함된 전자서명(Digital signature)을 생성하는 알고리즘으로는 RSA, ECDSA 알고리즘 등이 있으며 현재 블록체인에서는 ECDSA 알고리즘을 사용한다. 각 노드는 자신의 개인키(Private key), 공개키(Public key)와 다른 사용자의 공개키 또한 소유하고 있다. Cryptography의 경우 생성 메시지를 수신할 사용자의 공개키로 암호화하여 송신하고 수신한 사용자는 자신의 개인키로 복호화해 원본을 확인하는 과정이다. 하지만 signature 생성과정은 메시지를 송신할 사용자의 개인키로 암호화하여 송신하고 수신한 사용자는 송신한 사용자의 공개키로 복호화 하여 해당 메시지가 송신한 사용자임을 확인하는 것이다. 이 때 수신 사용자가 signature의 검증결과가 true라면 이상 없이 트랜잭션을 받아들이고, false라면 트랜잭션을 버린다. Signature를 사용함으로써 인증(Authentication)과 부인방지(Non-Repudiation)을 보장한다. Signature 생성에 사용자 자신만 알고 있는 개인키를 사용하기 때문에 다른 사용자가 signature를 생성한 사용자의 공개키를 적용하여 검증해서 signature 생성 사용자를 인증할 수 있고, 이 개인키는 다른 사용자가 알지 못하기 때문에 트랜잭션을 생성 시에 자신이 정보를 생성했다는 사실을 부인 할 수 없다.
상기 트랜잭션을 수신하여 유효성을 검증한 노드들은 트랜잭션들과 nonce 값에 대하여 proof of work를 수행하여 블록 해쉬(hash)값을 찾아내는 과정을 진행하게 된다(단계 440). 즉, 상기 노드들은 트랜잭션이라는 형태로 구성된 정보들과 임의의 값 nonce의 SHA-256 해시 함수를 적용하게 된다. 논스값은 블록 생성 난이도를 조절하기 위해 기준으로 설정된 해시 값보다 작은 값을 찾기 위해 해시 함수에 적용되는 랜덤 변수이다. 다양한 수의 nonce를 대입하여 기준을 만족하는 nonce를 찾는 과정을 Proof-of-Work라고 지칭한다. Proof-of-work를 사용하는 이유는 블록체인에 참여한 노드 중 어떠한 노드가 블록을 생성할지 모르게 만드는 것으로, 악의적 노드가 현재 블록을 생성할 노드를 판단하지 못하게 하여 악의적 노드의 attack을 방지한다. 기준 해시값보다 작은 해시값을 찾는 과정은 해시의 역연산 문제인 first-preimage attack과 비슷하다. First-preimage attack은 어떠한 사용자가 해시값을 알지만 해당 해시값을 생성한 입력 메시지 값을 모를 때 다른 입력 메시지를 이용하여 같은 해시값을 찾는 것이다. 해시의 길이가 L일 때, 같은 해시값을 찾으려 노력하는 시도는 2L 회이며, SHA-256 해시 함수의 경우 2256 회를 시도해야 한다. 앞서 언급한 완벽히 같은 해시값을 찾는 시간 보다 설정된 기준 해시값보다 작은 해시를 찾는 시간이 더 빠르며, 기준 해시값의 0의 개수를 증가시킴으로써 난이도를 증가시킬 수 있다. 해시의 역연산이 아닌 단순 해시 함수 적용일 경우 주어진 메시지를 통해 해시값을 출력하는 것은 빠른 시간 내에 완성된다. 입력값이 1 bit만 달라져도 전혀 다른 값을 출력하는 해시 함수의 특성과 해시 역연산에는 오랜 시간이, 단순 해시 함수 적용에는 적은 시간이 소요된다는 특성에 따라 데이터 무결성(Data Integrity)을 보장한다. 블록에 기록된 트랜잭션의 정보와 nonce를 결합하여 블록 해시값과 같으면 저장된 트랜잭션의 정보가 변하지 않음을 증명할 수 있다.
가장 먼저 블록 해쉬값을 찾아 블록을 생성한 노드는 블록체인에 참여한 다른 노드들에게 해당 블록을 전송한다(단계 450). 블록을 생성 중이던 다른 노드들은 수신한 블록의 트랜잭션과 블록의 유효성을 검증한 뒤(단계 460), 검증을 완료하면 해당 블록 hash값을 사용해 추가 블록을 생성하고, 블록체인에 기록하게 된다(단계 470). 각 블록에는, 현재 블록의 hash(도 5의 Block hash), 이전 블록의 hash(도 5의 Prev hash), Nonce, Time_Stamp 등의 정보가 기록된다.
도 5는 본 발명에 따른 데이터 접근 관리 시스템에 있어서, 주소 매니저(140)가 데이터 소유자에 의해 데이터 생성후 데이터 명칭과 데이터 소유자 주소 정보를 블록 체인에 저장하는 과정을 설명하기 위하여 도시한 개념도이며, 도 6은 주소 매니저(140)의 동작을 순차적으로 설명하는 흐름도이다. 도 5 및 도 6를 참조하면, 본 발명에 따른 시스템에 있어서, 데이터 소유자가 데이터 명칭과 데이터 소유자의 주소 정보를 포함하는 트랜잭션을 전송하고, 이를 이용하여 생성된 블록은 상기 해쉬값과 논스값이 데이터 명칭과 데이터 소유자의 주소 정보에 대하여 사전 설정된 해쉬 함수를 이용하여 구한 값들로 이루어진다.
도 7은 본 발명에 따른 데이터 접근 관리 시스템에 있어서, 컨텍스트 매니저(130)가 사용자에 대한 사용자 컨텍스트 정보를 블록 체인에 저장하는 과정을 설명하기 위하여 도시한 개념도이며, 도 8은 컨텍스트 매니저(130)의 동작을 순차적으로 설명하는 흐름도이다. 도 7 및 도 8을 참조하면, 본 발명에 따른 시스템에 있어서, 각 사용자 노드들이 자신의 사용자 컨텍스트를 포함하는 트랜잭션을 전송하고, 이를 이용하여 생성된 블록은 상기 해쉬값과 논스값이 사용자 컨텍스트 정보에 대하여 사전 설정된 해쉬 함수를 이용하여 구한 값들로 이루어진다.
상기 IP 리스트(120)는 상기 블록 체인을 갖는 모든 사용자 노드들에 대한 IP 주소 및 TCP Port number 및 모든 사용자 노드들에 대한 공개키(public Key)를 저장한 것으로서, 모든 사용자 노드들이 구비한다.
상기 데이터 저장 모듈(110)은 데이터 또는 파일들이 생성되어 사전 설정된 폴더에 저장되는 메모리 영역으로서, 각 사용자 노드들은 데이터 저장 영역에 다른 사용자 노드들과 공유하고자 하는 데이터 또는 파일을 저장하기 위한 폴더 또는 디렉토리를 사전 지정해 둔다. 본 발명에 따른 시스템에 의하여 모든 사용자 노드들이 접근 권한에 따라 상기 데이터 저장 모듈에 저장된 데이터들을 요청할 수 있게 된다.
상기 컨텍스트 매니저(130)는 사용자 노드에 대한 사용자 컨텍스트 정보를 생성하고, 상기 블록 체인을 이용하여, 상기 사용자 컨텍스트 정보를 저장 및 관리하게 된다.
도 5 내지 도 8을 참조하면, 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템은, 사용자 컨텍스트 및 데이터에 대한 주소 정보를 블록체인에 블록의 형태로 저장함으로써, 중앙집중형 서버가 아닌 분산형 데이터베이스에서 사용자 컨텍스트를 저장 및 관리 가능하게 한다.
도 7 및 도 8을 참조하면, 컨텍스트 매니저(130)는 블록체인에 참여하는 사용자 노드들의 사용자에 대한 식별 정보인 사용자 컨텍스트를 추출하고(단계 700), 추출된 사용자 컨텍스트를 블록을 생성하기 위한 트랜잭션 형태로 모든 사용자 노드들로 전송한다(단계 710). 모든 사용자 노드들은 상기 트랜잭션을 수신하면, 블록 생성을 위해 필요한 블록 해쉬값을 만들기 위해 Proof-of Work을 실행하여 논스값과 정해진 '0'의 개수를 충족시키는 블록 해쉬값을 생성한다(단계 720). 가장 먼저 블록을 생성한 사용자 노드는 해당 블록을 다른 노드들에게 전송하고, 이를 수신한 노드들은 유효성 검사를 한 후 자신의 블록 체인에 해당 블록을 연결하여 저장한다(단계 730).
본 발명에서 제안하는 사용자 컨텍스트의 종류는 의료 환경에 맞춰 3개의 컨텍스트인 직업(Job), 위치(Location), 부서(Field)로 임의 분류하였지만 상황에 따라 추가적인 컨텍스트 입력이 가능하며 이 컨텍스트의 조합들로 더욱 다양한 액세스 트리 구조 설계가 가능하다.
사용자의 Job은 이미 인증기관에서 검증 완료된 identity 정보를 사용해 확인할 수 있으며, 사용자의 Location과 Field는 사용자의 IP address를 활용하는데, IP address가 지나온 라우터와 게이트웨이를 확인하여 병원과 다른 장소를 구별 가능하고, 층별 및 방으로 구분된 부서를 확인할 수 있다. 이 과정을 통해 추출된 사용자 컨텍스트는 트랜잭션에 기록되고 다른 사용자 노드들에게 전송되며 본 발명에서 제시하는 블록체인 생성 방식과 동일하게 블록을 만들고 사용자 컨텍스트는 블록에 기록되게 된다. 블록은 JSON 형태로 제작되어 사용자들의 read를 쉽게 도와준다.
도 5 및 도 6을 참조하면, 상기 주소 매니저(140)는 데이터 소유자가 생성한 데이터를 데이터 저장 모듈(110)의 사전 설정된 공유 디렉토리에 저장하면, 상기 블록 체인을 이용하여, 상기 데이터에 대한 데이터 명칭 및 상기 데이터에 대한 데이터 소유자에 대한 주소 정보를 저장 및 관리한다.
이를 보다 구체적으로 설명하면, 데이터 소유자가 생성한 데이터를 데이터 저장 모듈(110)의 사전 설정된 공유 디렉토리에 저장하면, 상기 주소 매니저(140)는 데이터 명칭(Data name)과 데이터 소유자의 주소 정보인 IP 주소와 TCP Port number를 포함하는 트랜잭션을 생성하여(단계 500) 모든 사용자 노드들에게 전송하고(단계 510), 모든 사용자 노드들에 의해 proof-of-work 과정을 통해 블록을 생성하고(단계 520), 생성된 블록이 블록체인에 기록된다(단계 530).
한편, 상기 주소 매니저(140)는, 상기 데이터에 대한 데이터 명칭에 상태 플래그를 포함시키고, 상기 상태 플래그에는 상기 데이터 명칭에 대응되는 데이터의 현재 상태 정보를 기록하는 것이 바람직하다. 상기 상태 플래그는, 데이터 생성 시에 "created"에 대응되는 정보를, 데이터 수정시 "modified"에 대응되는 정보를, 데이터 삭제 시 "deleted"에 대응되는 정보를 각각 데이터 명칭의 첫부분에 추가시킨다. 따라서, 데이터 명칭의 상태 플래그를 통해, 해당 명칭의 데이터를 필요로 하는 사용자가 검색할 때 가장 마지막에 블록에 기록된 데이터의 상태를 보고 현재 데이터의 존재 여부를 확인할 수 있다. 상태 Flag와 결합된 데이터 명칭은 데이터 소유주의 IP address와 공유를 위해 설정된 TCP port number를 나열하여 트랜잭션을 제작한다.
상기 접근 권한 부여 매니저(150)는 데이터 요청자로부터 임의의 데이터 명칭에 대응되는 데이터 요청이 발생하면, 요청된 데이터를 암호화시킨 데이터 암호문과 비밀키를 상기 데이터 요청자에게 전송하게 된다.
도 9는 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템에 있어서, 상기 접근 권한 부여 매니저(150)가 블록체인에서 추출한 사용자 컨텍스트를 이용하여 접근 권한 부여를 위한 액세스 트리를 설정하고 암호문과 비밀키를 각 사용자에게 전송하여 해독 가능 여부를 확인함으로써 데이터 접근 권한을 부여하는 알고리즘을 도시하는 개념도이며, 도 10은 접근 권한 부여 매니저(150)의 동작을 순차적으로 설명하는 흐름도이다.
도 9 및 도 10을 참조하면, 상기 접근 권한 부여 매니저(150)는, 데이터 요청자로부터 임의의 데이터 명칭(Data name)에 대응되는 데이터 요청이 발생하면(단계 900), 데이터 소유자는 데이터에 접근할 수 있는 권한을 데이터 소유자의 사용자 컨텍스트가 리프 노드가 되는 액세스 트리 형태를 이용해 설정하고(단계 910), 데이터 요청자에 대한 사용자 컨텍스트를 블록체인을 검색해 추출하여 데이터 요청자의 사용자 컨텍스트와 매칭되는 비밀키를 제작한다(단계 920). 데이터 소유자는 설정한 액세스 트리를 이용하여 상기 데이터를 암호화하여 데이터 암호문을 생성하고(단계 930) 데이터 요청자에게 데이터 암호문과 비밀키를 전송한다(단계 940). 데이터 요청자의 사용자 컨텍스트가 액세스 트리의 조건에 만족할 시 비밀키는 암호문을 해독할 수 있고, 데이터 요청자의 사용자 컨텍스트가 액세스 트리의 조건을 만족하지 못할 시 암호문은 해독 불가능하게 된다.
본 발명에 따른 시스템에 있어서, 액세스 트리는 CP-ABE 방식을 사용하여 구성하게 된다. 도 11은 CP-ABE 방식을 사용하여 데이터 소유자가 데이터 요청자에게 데이터 접근 권한을 부여하는 과정을 도시한 개념도이며, 도 12는 본 발명에 따른 데이터 접근 관리 시스템에 있어서, CP-ABE 방식을 사용하여 생성된 액세스 트리를 예시적으로 도시한 것이다.
도 11 및 도 12를 참조하여, CP-ABE(Ciphertext-Policy Attribute-Based Encryption) 방식을 사용하여 생성된 액세스 트리를 사용하여 데이터 소유자가 데이터 요청자에게 데이터 접근 권한을 부여하는 과정을 구체적으로 설명한다.
먼저 prime order p 의 multiplicative 순환군(Cyclic group)을 G 0 , G 1 이라 하고, G 0 의 생성원(generator)을 g 라고 하고, bilinear map을 e 라고 한다. 이 때, 쌍선형 사상은 G 0 × G 0 G 1 로 나타낸다.
1) Setup 과정 : 기존의 CP-ABE 방식은 제 3의 인증기관(Certificate Autority)이 마스터키(Master key, MSK ), 공개키(Public key, PK)를 생성한다. 마스터키는 데이터 요청 사용자의 비밀키를 생성하고, 공개키는 데이터 암호화, 복호화에 사용된다. 임의의 지수 α,β Zp 를 선택하고, 마스터키와 공개키를 수학식 1 및 수학식 2와 같이 정의한다.
Figure pat00001
Figure pat00002
2) Encrypt(PK, M, T ) 과정 : 공개키(PK), 액세스 접근 트리(T), 데이터 평문(M)을 정의하고 해당 평문을 암호화한 CT를 출력한다. 도 12는 액세스 트리(T)를 사용자 컨텍스트를 포함하여 도시한 것이다. 액세스 트리를 구성하는 모든 노드는 index값(T) 와 다항식(polynomial)(q)를 가지고 있으며 각 노드의 q(0)는 수학식 3과 같이 정의한다.
Figure pat00003
여기서, s 는 트리의 root 노드(R)의 다항식 q R (0)이고, Y 는 액세스 트리(T)의 모든 leaf node 집합이고, H는 해시 함수를 의미한다. 이 때, 암호문(CT)은 수학식 4와 같이 정의한다.
Figure pat00004
3) KeyGen(MSK , S) : 마스터키(MSK)와 사용자 컨텍스트로 정의되는 속성 집합 (S)을 이용하여 데이터 요청자의 비밀키(Secret key, SK )를 출력한다. 인증기관은 r Zp 을 만족하는 임의의 수 r 을 생성하고 j Zp r j Zp 를 만족하는 임의의 수 r j 를 생성한다. 이 때, 비밀키(SK)는 수학식 5와 같이 정의한다.
Figure pat00005
4) Decrypt( CT, SK) : 암호문(CT)를 사용자의 비밀키(SK)와 함께 재귀 알고리즘(Reculsive algorithm)인 DecryptNode(CT, SK, x)를 적용한다. leaf 노드이고 i가 사용자 속성일 때 i가 인증기관에서 설정한 속성집합 S에 속한다면(i S ), 수학식 6과 같이 계산된다.
Figure pat00006
Figure pat00007
이면 복호화가 불가하다. 노드 x 가 leaf 노드가 아닐 경우, x를 children으로 갖는 모든 노드 z를 DecryptNode(CT,SK,z)로 계산하여 Fx를 출력한다. Sx z 의 children 노드 집합일 때 Fx는 수학식 7과 같이 계산된다.
Figure pat00008
트리(T) 의 root 노드(R) 이 속성 집합(S) 를 만족할 때 A를 수학식 8과 같이 정의한다.
Figure pat00009
최종적으로 SK를 수신한 사용자는 수학식 9와 같은 과정을 거쳐 암호문(CT)를 계산하여 데이터 평문(M)을 구한다.
Figure pat00010
도 13은 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템에 있어서, 데이터 검색 매니저(160)의 동작을 설명하기 위하여 도시한 개념도이다.
도 13을 참조하면, 상기 데이터 검색 매니저(160)은 상기 블록체인에 저장 및 관리되는 데이터 명칭들을 검색하고, 검색된 데이터 명칭(Data name)과 함께 저장된 데이터 소유자에 대한 주소 정보를 블록체인으로부터 추출하고, 상기 추출된 데이터 소유자에 대한 주소 정보를 이용하여 데이터 소유자(Data Owner)를 확인하고, 상기 데이터 소유자에게 상기 검색된 데이터 명칭에 대응되는 데이터를 요청한다. 상기 데이터 요청에 대응하여 데이터 암호문과 비밀키를 제공받고, 상기 비밀키를 이용하여 데이터 암호문을 복호화시켜 데이터를 출력하게 된다.
이상에서 본 발명에 대하여 그 바람직한 실시예를 중심으로 설명하였으나, 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 발명의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 그리고, 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.
1 : 데이터 접근 관리 시스템
10, 20, 30 : 사용자 노드
100 : 블록 체인
110 : 데이터 저장 모듈
120 : IP 리스트
130 : 컨텍스트 매니저
140 : 주소 매니저
150 : 접근 권한 부여 매니저
160 : 데이터 검색 매니저

Claims (12)

  1. 블록체인에 참여하는 다수 개의 사용자 노드들에 대한 데이터 접근 관리 시스템에 있어서,
    상기 사용자 노드들의 각각은,
    일련의 블록들이 연결되어 구성되는 블록 체인;
    사용자 노드에 대한 사용자 컨텍스트 정보를 생성하고, 상기 블록 체인을 이용하여, 상기 사용자 컨텍스트 정보를 저장 및 관리하는 컨텍스트 매니저;
    사용자 노드들 중 데이터 소유자가 생성한 데이터를 사전 설정된 공유 디렉토리에 저장하면, 상기 블록 체인을 이용하여, 상기 데이터에 대한 데이터 명칭 및 상기 데이터에 대한 데이터 소유자의 주소 정보를 저장 및 관리하는 주소 매니저;
    사용자 노드들 중 데이터 요청자로부터 임의의 데이터 명칭에 대응되는 데이터 요청이 발생하면, 요청된 데이터를 암호화시킨 데이터 암호문과 비밀키를 생성하여 상기 데이터 요청자에게 전송하는 접근 권한 부여 매니저;
    상기 블록체인에 저장 및 관리되는 데이터 명칭들을 검색하고, 검색된 데이터 명칭과 함께 저장된 데이터 소유자에 대한 주소 정보를 블록체인으로부터 추출하고, 상기 추출된 데이터 소유자에 대한 주소 정보를 이용하여 상기 검색된 데이터 명칭에 대응되는 데이터를 요청하는 데이터 검색 매니저;
    를 구비하는 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 시스템.
  2. 제1항에 있어서, 상기 접근 권한 부여 매니저는,
    데이터 요청자로부터 임의의 데이터 명칭에 대응되는 데이터 요청이 발생하면,
    데이터 소유자에 대한 사용자 컨텍스트를 이용하여 상기 요청된 데이터를 암호화시켜 데이터 암호문을 생성하고,
    상기 데이터 요청자에 대한 사용자 컨텍스트를 상기 블록체인으로부터 추출하고, 상기 추출된 데이터 요청자에 대한 사용자 컨텍스트를 이용하여 비밀키를 생성하고,
    상기 생성된 데이터 암호문과 상기 비밀키를 상기 데이터 요청자에게 전송하는 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 시스템.
  3. 제2항에 있어서, 상기 접근 권한 부여 매니저는,
    상기 데이터 소유자에 대한 사용자 컨텍스트를 이용하여 데이터 접근 권한을 부여하기 위한 액세스 트리를 생성하고, 상기 액세스 트리를 이용하여 상기 요청된 데이터를 암호화시켜 데이터 암호문을 생성하는 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 시스템.
  4. 제3항에 있어서, 상기 접근 권한 부여 매니저는,
    상기 액세스 트리는 상기 데이터 소유자에 대한 사용자 컨텍스트를 리프 노드(leaf-node)로 하는 트리 구조로 구성된 것을 특징으로 하며,
    상기 데이터 요청자에 대한 사용자 컨텍스트가 상기 액세스 트리의 조건을 만족하면 비밀키를 이용하여 데이터 암호문을 해독할 수 있고,
    상기 데이터 요청자에 대한 사용자 컨텍스트가 상기 액세스 트리의 조건을 만족하지 못하면 비밀키를 이용하여 데이터 암호문을 해독할 수 없도록, 상기 액세스 트리의 조건을 구성한 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 시스템.
  5. 제1항에 있어서, 상기 주소 매니저는,
    데이터 소유자가 생성한 데이터를 사전 설정된 공유 디렉토리에 저장하면, 상기 데이터에 대한 데이터 명칭 및 상기 데이터 소유자의 주소 정보를 추출하여 트랜잭션을 생성하여 블록체인에 참여하는 모든 사용자 노드들에게 전송하고,
    상기 트랜잭션은 블록체인에 참여한 사용자 노드들의 Proof-of-Work 과정을 거쳐 상기 블록체인의 블록으로 저장 및 관리되는 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 시스템.
  6. 제5항에 있어서, 상기 주소 매니저는,
    상기 데이터에 대한 데이터 명칭에 상태 플래그를 포함시키고,
    상기 상태 플래그에는 상기 데이터 명칭에 대응되는 데이터의 현재 상태 정보를 기록하는 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 시스템.
  7. 제1항에 있어서, 주소 매니저는,
    상기 데이터 소유자의 IP 주소 및 TCP port number를 상기 데이터 소유자의 주소 정보로서 추출하는 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 시스템.
  8. 제1항에 있어서, 상기 컨텍스트 매니저는,
    각 사용자 노드들의 사용자에 대한 컨텍스트 정보를 추출하여 트랜잭션을 생성하여 블록체인에 참여하는 모든 사용자 노드들에게 전송하고,
    상기 트랜잭션은 블록체인에 참여한 사용자 노드들의 Proof-of-Work 과정을 거쳐 상기 블록체인의 블록으로 저장 및 관리되는 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 시스템.
  9. 블록체인에 참여하는 다수 개의 사용자 노드들에 대한 데이터 접근 관리 방법에 있어서,
    (a) 사용자 노드에 대한 사용자 컨텍스트 정보를 생성하고, 상기 블록 체인을 이용하여, 상기 사용자 컨텍스트 정보를 저장 및 관리하는 단계;
    (b) 사용자 노드들 중 데이터 소유자가 생성한 데이터를 사전 설정된 공유 디렉토리에 저장하면, 상기 블록 체인을 이용하여, 상기 데이터에 대한 데이터 명칭 및 상기 데이터에 대한 데이터 소유자의 주소 정보를 저장 및 관리하는 단계;
    (c) 사용자 노드들 중 데이터 요청자로부터 임의의 데이터 명칭에 대응되는 데이터 요청이 발생하면, 요청된 데이터를 암호화시킨 데이터 암호문과 비밀키를 생성하여 상기 데이터 요청자에게 전송하는 단계;
    (d) 상기 블록체인에 저장 및 관리되는 데이터 명칭들을 검색하고, 검색된 데이터 명칭과 함께 저장된 데이터 소유자에 대한 주소 정보를 블록체인으로부터 추출하고, 상기 추출된 데이터 소유자에 대한 주소 정보를 이용하여 상기 검색된 데이터 명칭에 대응되는 데이터를 요청하는 단계;
    를 구비하는 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 방법.
  10. 제9항에 있어서, 상기 (c) 단계는,
    데이터 요청자로부터 임의의 데이터 명칭에 대응되는 데이터 요청이 발생하면,
    데이터 소유자에 대한 사용자 컨텍스트를 이용하여 상기 요청된 데이터를 암호화시켜 데이터 암호문을 생성하고,
    상기 데이터 요청자에 대한 사용자 컨텍스트를 상기 블록체인으로부터 추출하고, 상기 추출된 데이터 요청자에 대한 사용자 컨텍스트를 이용하여 비밀키를 생성하고,
    상기 생성된 데이터 암호문과 상기 비밀키를 상기 데이터 요청자에게 전송하는 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 방법.
  11. 제10항에 있어서, 상기 (c) 단계는,
    상기 데이터 소유자에 대한 사용자 컨텍스트를 이용하여 데이터 접근 권한을 부여하기 위한 액세스 트리를 생성하고, 상기 액세스 트리를 이용하여 상기 요청된 데이터를 암호화시켜 데이터 암호문을 생성하는 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 방법.
  12. 제9항에 있어서, 상기 (b) 단계는,
    데이터 소유자가 생성한 데이터를 사전 설정된 공유 디렉토리에 저장하면, 상기 데이터에 대한 데이터 명칭 및 상기 데이터 소유자의 주소 정보를 추출하여 트랜잭션을 생성하여 블록체인에 참여하는 모든 사용자 노드들에게 전송하고,
    상기 트랜잭션은 블록체인에 참여한 사용자 노드들의 Proof-of-Work 과정을 거쳐 상기 블록체인의 블록으로 저장 및 관리되는 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 방법.


KR1020170096783A 2017-07-31 2017-07-31 블록체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법 KR102025409B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170096783A KR102025409B1 (ko) 2017-07-31 2017-07-31 블록체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170096783A KR102025409B1 (ko) 2017-07-31 2017-07-31 블록체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법

Publications (2)

Publication Number Publication Date
KR20190012969A true KR20190012969A (ko) 2019-02-11
KR102025409B1 KR102025409B1 (ko) 2019-09-25

Family

ID=65370021

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170096783A KR102025409B1 (ko) 2017-07-31 2017-07-31 블록체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법

Country Status (1)

Country Link
KR (1) KR102025409B1 (ko)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110213268A (zh) * 2019-05-31 2019-09-06 联想(北京)有限公司 一种数据处理方法、数据处理装置和计算机***
KR20200099804A (ko) * 2019-02-15 2020-08-25 리걸테크 주식회사 데이터 관리 시스템 및 데이터 관리 방법
KR20200101020A (ko) * 2019-02-19 2020-08-27 군산대학교산학협력단 컨소시엄 블록체인 참가 노드 간의 인증 방안
KR20200108963A (ko) * 2019-03-12 2020-09-22 주식회사 거북선컴퍼니 블록체인을 활용한 거래 관리 시스템 및 방법
KR20200124868A (ko) 2019-04-25 2020-11-04 신한대학교 산학협력단 블록체인기술 기반의 체외진단장비 및 그 장비의 구동방법
KR20210002978A (ko) * 2019-07-01 2021-01-11 건국대학교 산학협력단 블록체인 기반 파일 수정 증거 저장 방법 및 이를 이용하는 장치
WO2021010720A1 (ko) * 2019-07-12 2021-01-21 광주과학기술원 채굴 장치
CN112528334A (zh) * 2020-12-16 2021-03-19 平安普惠企业管理有限公司 基于区块链网络的数据获取方法、装置以及计算机设备
WO2021060720A1 (ko) * 2019-09-26 2021-04-01 (주)하이퍼서트 트랜잭션에 포함된 평문 데이터의 변경을 지원하는 블록체인 시스템
KR20210074980A (ko) 2019-12-12 2021-06-22 (주)포뎁스 블록체인을 기반으로 응용 애플리케이션에 대한 업데이트 처리가 가능한 전자 단말 장치 및 그 동작 방법
KR20210074981A (ko) * 2019-12-12 2021-06-22 (주)포뎁스 블록체인을 기반으로 응용 애플리케이션에 대한 업데이트 처리 및 업데이트 데이터의 위변조 탐지를 가능하게 하는 전자 단말 장치 및 그 동작 방법
KR20210074982A (ko) * 2019-12-12 2021-06-22 (주)포뎁스 블록체인을 기반으로 응용 애플리케이션에 대한 업데이트 처리 및 응용 애플리케이션의 위변조 탐지를 가능하게 하는 전자 단말 장치 및 그 동작 방법
CN113450111A (zh) * 2020-03-27 2021-09-28 ***通信集团北京有限公司 数据共享方法、装置、设备及介质
CN113570194A (zh) * 2021-06-28 2021-10-29 北京电链科技有限公司 一种基于区块链的电力施工业务数据处理方法及***
CN114785599A (zh) * 2022-04-24 2022-07-22 江苏大学 一种面向远程医疗诊断应用的区块链细粒度访问控制方法、终端设备及服务器
CN114978578A (zh) * 2022-04-06 2022-08-30 中债金科信息技术有限公司 基于属性密钥派生的数据越权访问控制方法及装置
US11580087B2 (en) 2019-12-13 2023-02-14 Hyundai Motor Company Blockchain generation system and method for operating the same
KR102526406B1 (ko) * 2021-12-03 2023-04-27 에이치닥 테크놀로지 아게 Nft의 대상이 되는 원본 콘텐츠 데이터에 대한 액세스를 관리하는 액세스 관리 시스템 장치 및 그 동작 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102342021B1 (ko) 2019-11-25 2021-12-22 서강대학교 산학협력단 속성을 기반으로 한 블록체인 네트워크에서의 접근 권한 제어 시스템 및 접근 권한 제어 방법
KR102389465B1 (ko) * 2020-02-28 2022-04-22 한양대학교 산학협력단 블록 체인 생성 장치 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110059659A (ko) * 2008-09-29 2011-06-02 타지추 트랜스퍼 리미티드 리아빌리터 컴파니 데이터 전달 저장에서의 측정 방법
US20150332283A1 (en) * 2014-05-13 2015-11-19 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain proof-of-work, systems and methods
KR20160050876A (ko) 2014-10-31 2016-05-11 코나아이 (주) 스마트 카드에 저장된 공개키와 개인키를 이용한 비트코인 거래방법
KR20160136060A (ko) * 2015-05-19 2016-11-29 포항공과대학교 산학협력단 공유 또는 검색을 위한 데이터 암호화 방법 및 이를 수행하는 장치
KR101727525B1 (ko) 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110059659A (ko) * 2008-09-29 2011-06-02 타지추 트랜스퍼 리미티드 리아빌리터 컴파니 데이터 전달 저장에서의 측정 방법
US20150332283A1 (en) * 2014-05-13 2015-11-19 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain proof-of-work, systems and methods
KR20160050876A (ko) 2014-10-31 2016-05-11 코나아이 (주) 스마트 카드에 저장된 공개키와 개인키를 이용한 비트코인 거래방법
KR20160136060A (ko) * 2015-05-19 2016-11-29 포항공과대학교 산학협력단 공유 또는 검색을 위한 데이터 암호화 방법 및 이를 수행하는 장치
KR101727525B1 (ko) 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200099804A (ko) * 2019-02-15 2020-08-25 리걸테크 주식회사 데이터 관리 시스템 및 데이터 관리 방법
KR20200101020A (ko) * 2019-02-19 2020-08-27 군산대학교산학협력단 컨소시엄 블록체인 참가 노드 간의 인증 방안
KR20200108963A (ko) * 2019-03-12 2020-09-22 주식회사 거북선컴퍼니 블록체인을 활용한 거래 관리 시스템 및 방법
KR20200124868A (ko) 2019-04-25 2020-11-04 신한대학교 산학협력단 블록체인기술 기반의 체외진단장비 및 그 장비의 구동방법
CN110213268A (zh) * 2019-05-31 2019-09-06 联想(北京)有限公司 一种数据处理方法、数据处理装置和计算机***
KR20210002978A (ko) * 2019-07-01 2021-01-11 건국대학교 산학협력단 블록체인 기반 파일 수정 증거 저장 방법 및 이를 이용하는 장치
WO2021010720A1 (ko) * 2019-07-12 2021-01-21 광주과학기술원 채굴 장치
KR20210036700A (ko) * 2019-09-26 2021-04-05 (주)하이퍼서트 트랜잭션에 포함된 평문 데이터의 변경을 지원하는 블록체인 시스템
WO2021060720A1 (ko) * 2019-09-26 2021-04-01 (주)하이퍼서트 트랜잭션에 포함된 평문 데이터의 변경을 지원하는 블록체인 시스템
KR20210074980A (ko) 2019-12-12 2021-06-22 (주)포뎁스 블록체인을 기반으로 응용 애플리케이션에 대한 업데이트 처리가 가능한 전자 단말 장치 및 그 동작 방법
KR20210074981A (ko) * 2019-12-12 2021-06-22 (주)포뎁스 블록체인을 기반으로 응용 애플리케이션에 대한 업데이트 처리 및 업데이트 데이터의 위변조 탐지를 가능하게 하는 전자 단말 장치 및 그 동작 방법
KR20210074982A (ko) * 2019-12-12 2021-06-22 (주)포뎁스 블록체인을 기반으로 응용 애플리케이션에 대한 업데이트 처리 및 응용 애플리케이션의 위변조 탐지를 가능하게 하는 전자 단말 장치 및 그 동작 방법
US11580087B2 (en) 2019-12-13 2023-02-14 Hyundai Motor Company Blockchain generation system and method for operating the same
CN113450111A (zh) * 2020-03-27 2021-09-28 ***通信集团北京有限公司 数据共享方法、装置、设备及介质
CN112528334A (zh) * 2020-12-16 2021-03-19 平安普惠企业管理有限公司 基于区块链网络的数据获取方法、装置以及计算机设备
CN112528334B (zh) * 2020-12-16 2024-01-23 海南博盈电子竞技有限公司 基于区块链网络的数据获取方法、装置以及计算机设备
CN113570194A (zh) * 2021-06-28 2021-10-29 北京电链科技有限公司 一种基于区块链的电力施工业务数据处理方法及***
KR102526406B1 (ko) * 2021-12-03 2023-04-27 에이치닥 테크놀로지 아게 Nft의 대상이 되는 원본 콘텐츠 데이터에 대한 액세스를 관리하는 액세스 관리 시스템 장치 및 그 동작 방법
CN114978578A (zh) * 2022-04-06 2022-08-30 中债金科信息技术有限公司 基于属性密钥派生的数据越权访问控制方法及装置
CN114978578B (zh) * 2022-04-06 2023-09-19 中债金科信息技术有限公司 基于属性密钥派生的数据越权访问控制方法及装置
CN114785599A (zh) * 2022-04-24 2022-07-22 江苏大学 一种面向远程医疗诊断应用的区块链细粒度访问控制方法、终端设备及服务器

Also Published As

Publication number Publication date
KR102025409B1 (ko) 2019-09-25

Similar Documents

Publication Publication Date Title
KR102025409B1 (ko) 블록체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법
US20230087557A1 (en) System for privacy protection during iot secure data sharing and method thereof
US10803194B2 (en) System and a method for management of confidential data
Barsoum et al. Enabling dynamic data and indirect mutual trust for cloud computing storage systems
US20210089676A1 (en) Methods and systems for secure data exchange
US20190377889A1 (en) Verifiable version control on authenticated and/or encrypted electronic documents
US7334255B2 (en) System and method for controlling access to multiple public networks and for controlling access to multiple private networks
US7688975B2 (en) Method and apparatus for dynamic generation of symmetric encryption keys and exchange of dynamic symmetric key infrastructure
RU2300845C2 (ru) Способ и системы для обеспечения безопасного распределения данных через сети общего пользования
CN106790261B (zh) 分布式文件***及用于其中节点间认证通信的方法
US20190372765A1 (en) System and Method for Providing an Authorised Third Party with Overt Ledger Secured Key Escrow Access to a Secret
US11604888B2 (en) Digital storage and data transport system
CN115065679B (zh) 基于区块链的电子健康档案共享模型、方法、***和介质
KR20200112055A (ko) 블록체인 환경에서의 데이터 공유 방법 및 이를 위한 장치
CN116668072A (zh) 一种基于多权限属性基加密的数据安全共享方法及***
JP2002111659A (ja) ファイル暗号化システム、ファイル暗号化用プログラムおよびデータを記録した記録媒体
CN115001730A (zh) 分布式场景下基于角色属性的访问控制***及方法
CN114762291A (zh) 共享用户的用户特定数据的方法、计算机程序和数据共享***
US20240179150A1 (en) Management of access rights to digital files with possible delegation of the rights
CN111541731B (zh) 一种基于区块链和知悉范围加密的电子文件访问控制方法
Salim et al. An efficient public auditing scheme for cloud storage with secure access control and resistance against DOS attack by iniquitous TPA
CN113545025A (zh) 用于信息传输的方法和***
WO2019229257A1 (en) System and method for providing an authorised third party with overt ledger secured key escrow access to a secret
Venkatesh et al. Secure authorised deduplication by using hybrid cloud approach
Aziz et al. Assured data deletion in cloud computing: security analysis and requirements

Legal Events

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