KR102132118B1 - 블록체인 기반 작업공간 제공 장치 및 방법 - Google Patents

블록체인 기반 작업공간 제공 장치 및 방법 Download PDF

Info

Publication number
KR102132118B1
KR102132118B1 KR1020190032390A KR20190032390A KR102132118B1 KR 102132118 B1 KR102132118 B1 KR 102132118B1 KR 1020190032390 A KR1020190032390 A KR 1020190032390A KR 20190032390 A KR20190032390 A KR 20190032390A KR 102132118 B1 KR102132118 B1 KR 102132118B1
Authority
KR
South Korea
Prior art keywords
file
hash value
group
blockchain
access token
Prior art date
Application number
KR1020190032390A
Other languages
English (en)
Inventor
이명준
진재환
엄현민
Original Assignee
울산대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 울산대학교 산학협력단 filed Critical 울산대학교 산학협력단
Priority to KR1020190032390A priority Critical patent/KR102132118B1/ko
Application granted granted Critical
Publication of KR102132118B1 publication Critical patent/KR102132118B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • G06F21/35User authentication involving the use of external additional devices, e.g. dongles or smart cards communicating wirelessly
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • H04L2209/38
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

그룹 작업 공간 제공 방법에 연관된다. 일실시예에서 분산 애플리케이션에서 파일을 업로드 요청하는 경우에, 인증 정보를 이용하여 블록체인(Block-Chain)의 스마트 계약(Smart Contract)에 의해 생성되는 접속 키(Access Key)를 수신하는 단계; 사용자의 계정 정보와 상기 파일의 해시(Hash) 값을 저장하고, 상기 계정 정보 및 해시 값을 이용하여 접속 토큰(Access Token)을 생성하는 단계; 상기 접속 토큰이 상기 스마트 계약에 의해 상기 분산 애플리케이션으로 반환되는 단계; 및 상기 분산 애플리케이션이 상기 접속 토큰을 이용하여 파일 업로드를 수행하는 것에 대응하여 수신되는 접속 토큰의 유효성을 판단하는 단계를 포함할 수 있다.

Description

블록체인 기반 작업공간 제공 장치 및 방법{APPARATUS AND METHOD FOR SUPPORTING WORKSPACE BASED ON BLOCKCHAIN}
블록체인 기술을 기반으로 하는 작업 공간 제공 장치 및 방법에 연관된다. 보다 상세하게는, 오프 블록체인을 이용하여 그룹 작업공간을 제공하고 데이터를 저장하는 장치에 연관된다.
그룹 작업 공간은 그룹 구성원 간의 자원 공유를 효과적으로 수행하기 위해 많은 사용자로 구성된 사용자 그룹에 대한 서비스를 제공한다. 그룹 구성원은 파일이나 문서를 그룹 작업 영역에서 업로드 및 다운로드하여 리소스를 공유 할 수 있다.
그룹 작업 공간의 소유자는 읽기 및 쓰기 등의 권한을 지정할 수 있으며 사용자는 지정된 권한에 따라 조작을 수행 할 수 있습니다. 최근에는 사용자 그룹의 권한 관리 및 인증의 안정성을 높이기 위해 블록 체인(blockchain) 네트워크 기술을 이용한 그룹 관리 방법이 연구되고 있다.
한국 공개특허 10-2017-0151850호 (공개일자 2018년05월24일)는 대용량 데이터와 다수의 병합 및 분할 데이터 인증을 위한 전자 장치 및 이의 제어 방법을 제시한다. 한국 등록특허 10-1213541호 (공고일자 2012년12월24일)는 요청 응답 방식형 기업간 전자상거래 시스템을 개시한다. 판매사와 구매사 간의 워크스페이스를 공유하는 구성에 연관된다.
일실시예에 따르면 컴퓨터에 의해 수행되는 방법에 있어서, 분산 애플리케이션에서 파일을 업로드 요청하는 경우에, 인증 정보를 이용하여 블록체인(Block-Chain)의 스마트 계약(Smart Contract)에 의해 생성되는 접속 키(Access Key)를 수신하는 단계; 사용자의 계정 정보와 상기 파일의 해시(Hash) 값을 저장하고, 상기 계정 정보 및 해시 값을 이용하여 접속 토큰(Access Token)을 생성하는 단계; 상기 접속 토큰이 상기 스마트 계약에 의해 상기 분산 애플리케이션으로 반환되는 단계; 및 상기 분산 애플리케이션이 상기 접속 토큰을 이용하여 파일 업로드를 수행하는 것에 대응하여 수신되는 접속 토큰의 유효성을 판단하는 단계를 포함하는 그룹 작업 공간 제공 방법이 개시된다.
다른 일실시예에 따르면 상기 인증 정보는, 사용자의 계정 정보, 접속 권한 정보, 업로드하려는 파일의 해시 값 및 시그니처(Signature) 중 적어도 하나를 포함하는 그룹 작업 공간 제공 방법이 개시된다.
또 다른 일실시예에 따르면 상기 유효성을 판단하는 단계는, 수신되는 접속 토큰의 사용자 계정 정보와 접속 권한 정보가 상기 블록체인에 동기화하여 저장된 상기 인증 정보와 동일한지 여부를 판단하는 그룹 작업 공간 제공 방법이 가능하다.
다른 일실시예에 따르면 수신되는 접속 토큰이 유효한 경우에 상기 파일의 데이터베이스 업로드 권한을 승인하는 단계; 및 업로드 되는 상기 파일의 해시 값과 상기 블록체인에 동기화하여 저장된 해시 값이 동일한지 여부를 판단하는 단계를 더 포함하는 그룹 작업 공간 제공 방법도 제시된다.
또한 업로드 되는 상기 파일의 해시 값과 상기 블록체인에 동기화하여 저장된 해시 값이 다른 경우에는 업로드를 취소하는 단계를 더 포함할 수 있다.
일실시예에 따르면 상기 접속 권한 정보는 사용자마다 다르게 설정되는 그룹 작업 공간 제공 방법이 제시된다.
일측에 따르면 분산 애플리케이션에서 파일을 업로드 요청하는 경우에, 인증 정보를 이용하여 블록체인(Block-Chain)의 스마트 계약(Smart Contract)에 의해 생성되는 접속 키(Access Key)를 수신하는 게이트웨이 서버; 및 사용자의 계정 정보와 상기 파일의 해시 값을 저장하고, 상기 계정 정보 및 해시 값을 이용하여 접속 토큰(Access Token)을 생성하고, 상기 접속 토큰을 상기 스마트 계약에 의해 상기 분산 애플리케이션으로 반환하는 REST API 서버를 포함하고, 상기 REST API 서버는, 상기 인증 정보를 상기 블록체인과 동기화하여 저장하고, 상기 분산 애플리케이션이 상기 접속 토큰을 이용하여 파일 업로드를 수행하는 것에 대응하여 수신되는 접속 토큰의 유효성을 판단하는 그룹 작업 공간 제공 장치가 개시된다.
다른 일측에 따르면 상기 인증 정보는, 사용자의 계정 정보, 접속 권한 정보, 업로드하려는 파일의 해시 값 및 시그니처(Signature) 중 적어도 하나를 포함하는 그룹 작업 공간 제공 장치가 제시된다.
또 다른 일측에 따르면 상기 REST API 서버는, 수신되는 접속 토큰의 사용자 계정 정보와 접속 권한 정보가 상기 블록체인과 동기화하여 저장된 상기 인증 정보와 동일한지 여부를 판단하는 그룹 작업 공간 제공 장치가 가능하다.
다른 일측에 따르면 상기 REST API 서버는, 수신되는 접속 토큰이 유효한 경우에 상기 파일의 데이터베이스 업로드 권한을 승인하고, 업로드 되는 상기 파일의 해시 값과 상기 블록체인과 동기화하여 저장된 해시 값이 동일한지 여부를 판단하는 그룹 작업 공간 제공 장치가 제시된다.
또한 상기 REST API 서버는, 업로드 되는 상기 파일의 해시 값과 상기 블록체인과 동기화하여 저장된 해시 값이 다른 경우에는 업로드를 취소할 수 있다.
일측에 따르면 상기 접속 권한 정보는 사용자마다 다르게 설정되는 그룹 작업 공간 제공 장치가 제시된다.
그리고 상기 분산 애플리케이션이 업로드하는 상기 파일을 저장하는 데이터베이스를 더 포함하는 것도 가능하다.
도 1은 일실시예에 따른 오프블록체인 저장소를 이용한 그룹 작업 공간 제공 시스템 구조를 도시한다.
도 2는 일실시예에 따른 그룹 작업 공간 제공 시스템에 대용량 파일을 업로드하는 흐름도를 도시한다.
도 3은 일실시예에 따른 그룹 작업 공간 제공 시스템의 권한 인증 흐름도이다.
도 4는 일실시예에 따른 그룹 작업 공간을 제공하는 분산 애플리케이션을 위한 스마트 계약을 도시한다.
이하에서, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 권리범위는 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명에서 사용되는 용어는, 연관되는 기술 분야에서 일반적이고 보편적인 것으로 선택되었으나, 기술의 발달 및/또는 변화, 관례, 기술자의 선호 등에 따라 다른 용어가 있을 수 있다. 따라서, 아래 설명에서 사용되는 용어는 기술적 사상을 한정하는 것으로 이해되어서는 안 되며, 실시예들을 설명하기 위한 예시적 용어로 이해되어야 한다.
또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세한 그 의미를 기재할 것이다. 따라서 아래 설명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 명세서 전반에 걸친 내용을 토대로 이해되어야 한다.
그룹 작업 공간(Group Workspace)
그룹 작업 공간은 그룹 구성원 간의 자원 공유를 효과적으로 수행하기 위해 복수의 사용자로 구성된 사용자 그룹에 대해 작업 공간을 제공하는 서비스를 의미한다. 그룹 구성원은 파일이나 문서를 그룹 작업 영역에서 업로드 및 다운로드하여 리소스를 공유 할 수 있다. 그룹 작업 공간에 속한 리소스는 별도의 데이터베이스 또는 클라우드 스토리지와 같은 다양한 저장소에 저장될 수 있다.
그룹 작업 공간은 공유 자원을 효과적으로 관리하기 위해 사용자의 액세스 권한 정보를 관리한다. 공유 리소스에 대한 사용 권한은 일반적으로 읽기/쓰기 권한으로 나누어지며 개별 리소스 또는 전체 권한과 같은 개별 권한을 자세히 나눌 수도 있다. 그룹 작업 공간의 소유자 또는 상기 그룹 내 결정권자는 상기 권한을 지정할 수 있다. 개별 사용자는 지정된 권한 내에서 읽기/쓰기 등의 조작을 수행할 수 있다.
카산드라 분산 데이터베이스(Cassandra Distributed Database, 이하 카산드라)
카산드라는 오픈 소스 NoSQL 분산 데이터베이스로, 단일 지점에서의 장애 없이 고성능을 갖춘 많은 서버 간에 대량의 데이터를 관리할 수 있다. 카산드라는 구성 노드를 추가하여 성능 저하없이 용량을 수평 적으로 확장 할 수 있으며 다양한 환경에서 사용하기 위해 Java, Python, PHP 및 Ruby와 같은 여러 프로그래밍 언어를 지원한다.
카산드라는 데이터 간의 복잡한 관계를 정의 할 필요 없고 고용량, 고성능 트랜잭션을 처리하는 데 종종 사용되며 Twitter 및 Facebook과 같은 소셜 네트워크 서비스(SNS)의 데이터베이스로 사용된다. 카산드라의 데이터는 여러 노드로 구성된 링 유형 구조의 분할 키라고하는 데이터의 해시 값에 따라 분산 저장된다. 또한 카산드라는 복제본 역할을 하는 노드 수와 복제본이 링에 배치되는 전략을 설정하여 데이터 관리의 신뢰성을 높이는 다양한 복제 전략을 지원한다. 카산드라를 사용하는 클라이언트는 데이터 쿼리를 수행 할 때 일관성 수준을 지정하여 복제본의 값이 일관성을 유지하는지 확인할 수 있다.
일실시예에서는 그룹 작업 공간의 데이터를 저장하기 위한 저장소로 카산드라 분산 데이터베이스를 예시하여 설명한다. 그러나 카산드라는 예시일 뿐 이에 한정되는 것은 아니다.
도 1은 일실시예에 따른 오프블록체인 저장소를 이용한 그룹 작업 공간 제공 시스템 구조를 도시한다. 일실시예에 따른 그룹 작업 공간 제공 시스템은, 블록체인(120)과 오프 블록체인 저장소(150)가 연동되는 시스템일 수 있다.
일실시예에서 분산 애플리케이션(110)에서 요청되는 파일 저장을 위해서는 블록체인(120)에서 발생하는 이벤트를 게이트웨이 서버(130)와 REST API 서버(140)를 통해 오프 블록체인 저장소(150)에 저장할 수 있다.
구체적으로 설명하면, 일실시예에 따른 그룹 작업 공간 제공 시스템은 블록 체인의 사용자가 블록 체인 외부에 데이터를 저장할 수 있도록 하는 프레임워크(Framework)이다. 상기 프레임워크에서 오프 블록 체인 저장소(150)는 실제 파일 데이터를 저장하고, 파일 데이터에 액세스 할 수 있는 해시 키는 블록 체인(120)에 보관된다.
분산 애플리케이션의 요청으로 저장소(150)에 파일을 저장하기 위해 스마트 계약(Smart Contract)의 이벤트 워치(Event-Watch) 메커니즘을 사용할 수 있다. 블록체인 이벤트는 응용 프로그램 개발자가 블록체인 가상 시스템 로깅 기능에 액세스하는 것을 도와준다. 상기 로깅 기능은 개발자가 스마트 계약서에 지정된 매개 변수로 이벤트를 수신 할 수 있도록 응용 프로그램의 사용자 인터페이스에서 JavaScript 콜백을 호출하는 데 사용된다.
도 1에서는 예시적으로 그러나 한정되지 않게 블록체인의 종류로 이더리움(Ethereum)을 이용하고, 오프 블록체인 저장소로 카산드라 분산 데이터베이스를 사용한다. 그러나 이에 한정되는 것은 아니다.
일실시예에 따른 그룹 작업 공강 제공 시스템은 게이트웨이 서버(130), REST API 서버(140)로 구성될 수 있으며, 별도의 오프 블록체인 저장소(150)를 더 포함할 수 있다. 상기 REST API 서버(140)는 상기 오프 블록체인 저장소(150)에 직접 연결되어 RESTful 웹 서비스 서버를 제공하고 상기 저장소(150)에 파일을 저장하거나 검색할 수 있다.
상기 REST API 서버(140)는 제공된 웹 서비스를 통해 사용자가 요청한 해시 값 및 파일을 수신할 수 있다. 그리고 REST API 서버(140)는 웹 서비스를 호출 한 사용자를 인증한 후 저장소(150)에 액세스한다.
게이트웨이 서버(130)는 블록 체인(120)에 의한 스마트 계약에서 발생하는 이벤트를 모니터링하여 REST API 서버(140)로 전송한다. 구체적으로 게이트웨이 서버(130)는 이벤트와 함께 수신 된 매개 변수와 함께 REST API 서버(140)의 웹 서비스를 호출한다. 상기 이벤트의 매개 변수는 동작 유형(Type of action), 액세스 할 파일의 정보 및 요청한 사용자 정보 중 적어도 하나를 포함할 수 있다.
저장소(150)는 외부 액세스를 방지하기 위해 상기 REST API 서버(140)에서만 관리될 수 있다. 또한 상기 저장소(150)는 파일을 키 값 형식으로 저장하며 저장된 모든 파일은 파일의 해시 값을 통해서만 액세스 할 수 있다.
도 2는 일실시예에 따른 그룹 작업 공간 제공 시스템에 대용량 파일을 업로드하는 흐름도를 도시한다. 즉, 도 2는 도 1에서 설명한 그룹 작업 공간 제공 시스템의 각 구성이 동작하는 흐름을 도시한다.
일실시예에 따른 작업 공간 제공 시스템은 업로드 할 파일의 크기에 따라 분산 애플리케이션(210)에서 파일을 블록 체인(220) 또는 외부 저장소에 저장하도록 요청할 수 있다. 예를 들어 이더리움 블록 체인의 경우에는 크기가 수십에서 수백 킬로바이트인 문서 또는 저해상도 이미지 등을 저장할 수 있다. 따라서 제안된 오프 블록 체인 저장소를 사용하여 대용량 파일을 저장할 수 있다.
사용자가 파일 업로드를 요청하는 경우에 분산 애플리케이션(210)은, 사용자 정보, 파일 정보 및 서명(Signature) 정보를 포함하는 파일 업로드 요청을 수행한다(S211).
파일 업로드 요청이 수행되는 경우에, 블록 체인에서는 업로드 파일 함수를 불러온다(S221). 그리고 파일의 정보를 저장한다(S222). 이어서 블록 체인의 스마트 계약은 사용자의 계정 정보, 업로드 시간 및 파일 정보를 해싱(Hashing)하여 파일의 접속 키(Access Key)를 생성한다(S223).
스마트 계약은 사용자의 서명과 파일의 상기 접속 키를 사용하여 파일 업로드 이벤트를 생성한다(S224). 생성된 이벤트는 게이트웨이 서버(230)에서 모니터링되고(S231), 상기 서명 및 액세스 키는 REST API 서버(240)의 접속 토큰(Access Token) 생성 서비스를 통해 전송된다(S232).
REST API 서버(230)는 상기 접속 토큰 생성 서비스가 호출 될 때 매개 변수와 요청 시간을 기반으로 접속 토큰을 생성할 수 있다(S241). 접속 토큰은 파일 저장 서비스를 요청할 때 사용자가 사용하게 된다. 상기 접속 토큰에는 만료 시간이 포함될 수 있고, REST API 서버(230)에서 특정 시간 동안에만 유효하다.
상기 REST API 서버(230)는 접속 토큰의 생성시에 관련된 사용자 계정 정보와 업로드 할 파일에 대한 해시 값 등을 블록체인과 동기화 하여 저장할 수 있다.
생성된 접속 토큰은 웹 서비스에 대한 응답으로 게이트웨이 서버(230)에 반환되고(S242), 스마트 계약으로 다시 전달된다(S233). 토큰을 전달받은 스마트 계약은 해당 이벤트를 생성하여 토큰을 분산 애플리케이션으로 전달한다(S225).
분산 애플리케이션은 접속 토큰을 수신하고(S212), 수신된 접속 토큰을 사용하여 REST API 서버에 직접 대용량 파일을 업로드하기 위한 웹 서비스를 호출한다(S213).
REST API 서버는 분산 애플리케이션으로부터 수신한 접속 토큰의 유효성을 판단한다(S243). 수신된 접속 토큰과 저장된 계정 정보를 비교하여 업로드 권한을 체크하고, 유효한 경우에는 해당 파일을 저장소에 업로드한다(S244).
상기 과정을 통해 대용량 파일은 REST API 서버로 전달되고, 상기 파일은 접속 키와 함께 저장소에 저장된다.
일실시예에 따르면 파일이 업로드 된 이후에 업로드 파일의 해시 값을 검증하여 해시 값이 틀릴 경우 실패 이벤트 발생시킬 수 있다.
도 3은 일실시예에 따른 그룹 작업 공간 제공 시스템의 권한 인증 흐름도이다.
일실시예에 따른 그룹 작업 공간 제공 시스템은 두 개의 인증 프로세스를 사용하여 등록되지 않은 사용자가 오프 블록 체인 저장소에 접속하는 것을 방지할 수 있다.
스마트 계약은 분산 애플리케이션의 사용자 계정을 기반으로 기능 실행을 제어할 수 있다. 즉, 스마트 계약에 등록되지 않은 사용자의 계정은 블록 체인 외부 저장소와 연관되는 기능을 실행할 수 없다.
또한 REST API 서버는 별도의 사용자 인증 프로세스를 사용하여 REST API 서버가 블록 체인 외부에서 직접 웹 서비스를 요청하지 못하도록 할 수 있다. 사용자는 블록 체인의 스마트 계약에서 특정 기능을 요청하면 REST API 서버에서 제공하는 웹 서비스가 매개 변수로 전송 된 서명을 호출한다. 이를 기반으로 REST API 서버는 사용자의 계정과 관련하여 사용자의 서명을 확인할 수 있다. 유효한 것으로 검증된 서명은 사용자에 의해 생성된 것으로 간주되고 요청된 기능을 수행한다. 이를 위해 상기 REST API 서버는 각각의 분산 애플리케이션에 대한 사용자의 계정 정보를 저장하여 관리할 수 있다. 상기 설명한 과정에 의해 일실시예에 따른 그룹 작업 공간 제공 시스템은 검증된 사용자만이 저장소에 접근하도록 할 수 있고, 등록되지 않은 사용자의 접속을 차단 할 수 있다.
예를 들어 분산 애플리케이션(S310)이 저장소에 특정 파일의 삭제하는 경우로 설명한다. 상기 분산 애플리케이션은 사용자 정보, 파일 정보 및 서명 정보를 포함하는 파일 삭제 요청을 수행한다(S311).
그룹 작업 계약(Group Workspace Contract, 320)에서는 파일 삭제 함수를 실행하고(S321), 사용자 계정 정보에 대하여 모디파이어(Modifier)를 실행한다(S322). 사용자 그룹 계약(User Contract, 330)에서는 사용자 계정 정보를 이용하여 그룹 작업 공간을 이용할 수 있는 정당한 구성원인지 여부를 판단한다(S331).
사용자 계정 정보가 유효하여 정당한 구성원으로 판정된 경우에는, 다시 모디파이어를 실행하여 삭제 권한이 있는지 여부를 판단한다(S323). 유효한 삭제 권한이 없는 경우에는 승인이 거부되었다는 메시지를 사용자의 분산 애플리케이션에 반환한다(S312). 만약 유효한 삭제 권한이 있는 경우에는 REST API 서버(340)에 파일 삭제 웹 서비스를 호출한다(S341).
상기 REST API 서버(340)는 다시 한번 정당한 구성원인지 여부를 확인하고(S342), 유효한 서명인지 여부를 판단한다(S343). 최종적으로 모든 절차에서 유효한 것으로 판단된 경우에 외부 저장소(예를 들어 카산드라)에서 해당 파일을 삭제할 수 있다(S344).
일실시예에서, 그룹 작업 공간의 소유자는 사용자 그룹을 만들고 그룹의 그룹 작업 영역을 사용하도록 구성원을 구성할 수 있다. 그룹의 구성원은 그룹 소유자가 승인한 접속 제어 정보를 기반으로 파일에 대한 권한을 가진다. 그룹 구성원이 파일 접속이 필요한 스마트 계약 기능을 요청하면 스마트 계약 실행 가드에서 구성원의 접속 제어 정보를 기반으로 인증을 수행한다.
REST API 서버는 그룹 또는 그룹 구성원이 변경되면 스마트 계약에서 정보를 받을 수 있다. 따라서 이를 기반으로 REST API 서버는 사용자 계약 및 그룹 구성원 정보를 스마트 계약과 동기화할 수 있다. 그리고 사용자가 블록 체인 외부 저장소에 대한 접속이 필요한 웹 서비스를 요청하면 REST API 서버는 웹 서비스에 포함 된 그룹 정보 및 서명을 기반으로 요청한 사용자가 그룹의 구성원인지 여부를 확인한다.
도 4는 일실시예에 따른 그룹 작업 공간을 제공하는 분산 애플리케이션을 위한 스마트 계약을 도시한다. 일실시예에 따른 그룹 작업 공간에 의해 제공되는 서비스는 그룹 작업 공간에 대한 스마트 계약을 통해 수행된다. 도 4는 블록 체인 기반 그룹 작업 공간에서 스마트 계약의 유형과 주요 역할을 도시한다.
그룹 작업 공간 분산 애플리케이션(410)에는 사용자의 계정(User Account) 정보를 포함하고 있다. 상기 분산 애플리케이션(410)은 사용자의 동작에 의해 그룹을 생성 또는 그룹 동작을 요청할 수 있다.
그룹 생성을 요청하는 경우에 그룹 스토어 계약(Group Store Contract, 420)은 새로운 사용자 그룹을 만들고 모든 사용자 그룹의 계약 주소를 관리한다. 사용자는 그룹 스토어 계약에서 제공하는 기능을 통해 사용자가 참여하는 그룹의 계약 주소 또는 모든 그룹을 확인할 수 있다.
또한 그룹 소유자가 그룹 스토어 계약을 통해 새로운 그룹을 생성하도록 요청하면 사용자 그룹 계약(User Group Contract, 421)과 그룹 작업 공간 계약(Group Workspace Contract, 431)이 함께 생성된다. 사용자 그룹 계약에는 기본 정보와 사용자 그룹의 구성원 정보가 포함된다.
그룹 인증이 수행되면 사용자 그룹 계약의 실행 가드는 사용자가 그룹의 구성원인지 확인할 수 있다. 그룹 작업 공간 계약(431)은 공유 자원 및 액세스 제어 정보를 관리한다.
또한 그룹 구성원은 그룹 작업 공간 계약(431)의 파일 업로드 및 다운로드 기능을 사용하여 오프 블록 체인 저장소에 대한 접근 요청을 보낼 수 있다. API 연결 계약(API Connection Contract)에는 스마트 계약에서 REST API 서버로 요청할 수 있는 그룹 생성/삭제, 그룹 구성원 추가/제거, 파일 업로드/다운로드 등을 위한 이벤트 실행 기능이 있다. 각 스마트 계약 기능은 이벤트의 발생을 감시하는(Event Watcher) 게이트웨이 서버(440)에 의해 REST API 서비스와 연결될 수 있다.
일실시예에 따르면 블록 체인과 결합된 그룹 작업 공간 제공 장치 및 방법이 개시된다. 상기 장치 및 방법은 예시적으로 그러나 한정되지 않게 대용량의 파일을 저장하기 위해 오프 블록 체인(off-blockchain) 저장소 역할을 하는 카산드라(Cassandra) 분산 데이터베이스를 사용할 수 있다.
그룹 작업 공간 제공 시스템에서 REST API 서버와 게이트웨이 서버는 사용자의 파일 업로드 요청을 상기 카산드라로 전송하는 데 사용된다. 사용자 요청에는 블록 체인 외부 인증 프로세스에 대한 사용자 계정의 서명이 포함되어 있으므로 승인되지 않은 사용자 접속을 방지하기 위해 오프 블록 저장소를 사용할 수 있다.
일실시예에 따른 그룹 작업 공간은 오프 블록 체인 저장 기술을 사용하여 그룹 사용자들간에 파일 관리 서비스를 수행할 수 있다. 분산 애플리케이션의 개발자는 오프 블록 체인 저장소를 분산 애플리케이션과 통합 할 때 발생하는 보안 문제를 해결할 수 있다. 따라서 보다 쉽고 안정적으로 대용량 파일 저장 서비스를 제공 할 수 있다. 또한 개발자는 시스템 구조의 제한 없이 그룹 작업 공간에서와 같이 파일 공유 서비스 및 여러 사용자 간의 액세스 권한 제어와 같은 블록 체인 상에서 다양한 고급 서비스를 구현할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (13)

  1. 컴퓨터에 의해 수행되는 방법에 있어서,
    분산 애플리케이션에서 파일을 업로드 요청하는 경우에, 인증 정보를 이용하여 블록체인(Block-Chain)의 스마트 계약(Smart Contract)에 의해 생성되는 접속 키(Access Key)를 수신하는 단계;
    사용자의 계정 정보와 상기 파일의 해시(Hash) 값을 저장하고, 상기 계정 정보 및 해시 값을 이용하여 접속 토큰(Access Token)을 생성하는 단계;
    상기 접속 토큰이 상기 스마트 계약에 의해 상기 분산 애플리케이션으로 반환되는 단계; 및
    상기 분산 애플리케이션이 상기 접속 토큰을 이용하여 파일 업로드를 수행하는 것에 대응하여 수신되는 접속 토큰의 유효성을 판단하는 단계
    를 포함하는 그룹 작업 공간 제공 방법.
  2. 제1항에 있어서,
    상기 인증 정보는,
    사용자의 계정 정보, 접속 권한 정보, 업로드하려는 파일의 해시 값 및 시그니처(Signature) 중 적어도 하나
    를 포함하는 그룹 작업 공간 제공 방법.
  3. 제2항에 있어서,
    상기 유효성을 판단하는 단계는,
    수신되는 접속 토큰의 사용자 계정 정보와 접속 권한 정보가 저장된 상기 인증 정보와 동일한지 여부를 판단하는 그룹 작업 공간 제공 방법.
  4. 제3항에 있어서,
    수신되는 접속 토큰이 유효한 경우에 상기 파일의 데이터베이스 업로드 권한을 승인하는 단계; 및
    업로드 되는 상기 파일의 해시 값과 상기 블록체인에 동기화하여 저장된 해시 값이 동일한지 여부를 판단하는 단계
    를 더 포함하는 그룹 작업 공간 제공 방법.
  5. 제4항에 있어서,
    업로드 되는 상기 파일의 해시 값과 상기 블록체인에 동기화하여 저장된 해시 값이 다른 경우에는 업로드를 취소하는 단계
    를 더 포함하는 그룹 작업 공간 제공 방법.
  6. 제5항에 있어서,
    상기 접속 권한 정보는 사용자마다 다르게 설정되는 그룹 작업 공간 제공 방법.
  7. 분산 애플리케이션에서 파일을 업로드 요청하는 경우에, 인증 정보를 이용하여 블록체인(Block-Chain)의 스마트 계약(Smart Contract)에 의해 생성되는 접속 키(Access Key)를 수신하는 게이트웨이 서버; 및
    사용자의 계정 정보와 상기 파일의 해시 값을 저장하고, 상기 계정 정보 및 해시 값을 이용하여 접속 토큰(Access Token)을 생성하고, 상기 접속 토큰을 상기 스마트 계약에 의해 상기 분산 애플리케이션으로 반환하는 REST API 서버
    를 포함하고,
    상기 REST API 서버는,
    상기 인증 정보를 상기 블록체인과 동기화하여 저장하고, 상기 분산 애플리케이션이 상기 접속 토큰을 이용하여 파일 업로드를 수행하는 것에 대응하여 수신되는 접속 토큰의 유효성을 판단하는
    그룹 작업 공간 제공 장치.
  8. 제7항에 있어서,
    상기 인증 정보는,
    사용자의 계정 정보, 접속 권한 정보, 업로드하려는 파일의 해시 값 및 시그니처(Signature) 중 적어도 하나
    를 포함하는 그룹 작업 공간 제공 장치.
  9. 제8항에 있어서,
    상기 REST API 서버는,
    수신되는 접속 토큰의 사용자 계정 정보와 접속 권한 정보가 상기 블록체인과 동기화하여 저장된 상기 인증 정보와 동일한지 여부를 판단하는 그룹 작업 공간 제공 장치.
  10. 제9항에 있어서,
    상기 REST API 서버는,
    수신되는 접속 토큰이 유효한 경우에 상기 파일의 데이터베이스 업로드 권한을 승인하고, 업로드 되는 상기 파일의 해시 값과 상기 블록체인과 동기화하여 저장된 해시 값이 동일한지 여부를 판단하는 그룹 작업 공간 제공 장치.
  11. 제10항에 있어서,
    상기 REST API 서버는,
    업로드 되는 상기 파일의 해시 값과 상기 블록체인과 동기화하여 저장된 해시 값이 다른 경우에는 업로드를 취소하는 그룹 작업 공간 제공 장치.
  12. 제11항에 있어서,
    상기 접속 권한 정보는 사용자마다 다르게 설정되는 그룹 작업 공간 제공 장치.
  13. 제12항에 있어서,
    상기 분산 애플리케이션이 업로드하는 상기 파일을 저장하는 데이터베이스
    를 더 포함하는 그룹 작업 공간 제공 장치.
KR1020190032390A 2019-03-21 2019-03-21 블록체인 기반 작업공간 제공 장치 및 방법 KR102132118B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190032390A KR102132118B1 (ko) 2019-03-21 2019-03-21 블록체인 기반 작업공간 제공 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190032390A KR102132118B1 (ko) 2019-03-21 2019-03-21 블록체인 기반 작업공간 제공 장치 및 방법

Publications (1)

Publication Number Publication Date
KR102132118B1 true KR102132118B1 (ko) 2020-07-08

Family

ID=71599847

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190032390A KR102132118B1 (ko) 2019-03-21 2019-03-21 블록체인 기반 작업공간 제공 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102132118B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113704238A (zh) * 2021-08-20 2021-11-26 广州迅准科技有限公司 基于fpga与区块链技术的数字文件认证方法及系统
KR102442874B1 (ko) * 2021-05-27 2022-09-13 울산대학교 산학협력단 블록체인 기반의 콘텐츠 서비스 구현 방법 및 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101213541B1 (ko) 2009-02-03 2012-12-24 박경원 요청 응답 방식형 기업간 전자상거래 시스템 및 방법
KR101816653B1 (ko) * 2017-02-14 2018-02-21 주식회사 코인플러그 스마트 컨트랙트 및 블록체인 데이터베이스를 사용하여 서비스 제공 서버에 의하여 제공되는 서비스를 이용하기 위한 사용자의 로그인 요청에 대하여 pki 기반의 인증을 통해 로그인을 대행하는 방법 및 이를 이용한 서버
KR101857223B1 (ko) * 2017-11-13 2018-05-11 주식회사 온더 블록체인 토큰 기반의 사용자 식별 방법 및 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101213541B1 (ko) 2009-02-03 2012-12-24 박경원 요청 응답 방식형 기업간 전자상거래 시스템 및 방법
KR101816653B1 (ko) * 2017-02-14 2018-02-21 주식회사 코인플러그 스마트 컨트랙트 및 블록체인 데이터베이스를 사용하여 서비스 제공 서버에 의하여 제공되는 서비스를 이용하기 위한 사용자의 로그인 요청에 대하여 pki 기반의 인증을 통해 로그인을 대행하는 방법 및 이를 이용한 서버
KR101857223B1 (ko) * 2017-11-13 2018-05-11 주식회사 온더 블록체인 토큰 기반의 사용자 식별 방법 및 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102442874B1 (ko) * 2021-05-27 2022-09-13 울산대학교 산학협력단 블록체인 기반의 콘텐츠 서비스 구현 방법 및 시스템
CN113704238A (zh) * 2021-08-20 2021-11-26 广州迅准科技有限公司 基于fpga与区块链技术的数字文件认证方法及系统
CN113704238B (zh) * 2021-08-20 2024-01-30 广州迅准科技有限公司 基于fpga与区块链技术的数字文件认证方法及系统

Similar Documents

Publication Publication Date Title
US11972004B2 (en) Document redaction and reconciliation
US20200394321A1 (en) Document redaction and reconciliation
US11645369B2 (en) Blockchain digital rights management streaming library
US20210352077A1 (en) Low trust privileged access management
US20220191026A1 (en) Self-sovereign data access via bot-chain
US11917088B2 (en) Integrating device identity into a permissioning framework of a blockchain
US11184436B2 (en) Automated storage selection with blockchain and NLP
US11693948B2 (en) Verifiable labels for mandatory access control
WO2022007548A1 (en) Blockchain implementation to securely store information off-chain
CN115299011B (zh) 云环境中的隐私中心数据安全
US11888981B2 (en) Privacy preserving auditable accounts
US11804950B2 (en) Parallel processing of blockchain procedures
KR102132118B1 (ko) 블록체인 기반 작업공간 제공 장치 및 방법
WO2022121673A1 (en) Decentralized broadcast encryption and key generation facility
Demichev et al. Business process engineering for data storing and processing in a collaborative distributed environment based on provenance metadata, smart contracts and blockchain technology
WO2022116761A1 (en) Self auditing blockchain
US20160224956A1 (en) Distributed digital rights-managed file transfer and access control
US11146560B1 (en) Distributed governance of computing resources
US20230222137A1 (en) Data management platform
Sarathchandra et al. A decentralized social network architecture
US11573952B2 (en) Private shared resource confirmations on blockchain
US20230308276A1 (en) Creating non-fungible token shards
US20220311595A1 (en) Reducing transaction aborts in execute-order-validate blockchain models
US20220027260A1 (en) Automatically capturing weather data during engineering tests
US20240020299A1 (en) Api management for batch processing

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant