KR102230764B1 - 블록체인 기반 파일 수정 증거 저장 방법 및 이를 이용하는 장치 - Google Patents

블록체인 기반 파일 수정 증거 저장 방법 및 이를 이용하는 장치 Download PDF

Info

Publication number
KR102230764B1
KR102230764B1 KR1020190078934A KR20190078934A KR102230764B1 KR 102230764 B1 KR102230764 B1 KR 102230764B1 KR 1020190078934 A KR1020190078934 A KR 1020190078934A KR 20190078934 A KR20190078934 A KR 20190078934A KR 102230764 B1 KR102230764 B1 KR 102230764B1
Authority
KR
South Korea
Prior art keywords
file
modification
evidence
network
storage device
Prior art date
Application number
KR1020190078934A
Other languages
English (en)
Other versions
KR20210002978A (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 KR1020190078934A priority Critical patent/KR102230764B1/ko
Publication of KR20210002978A publication Critical patent/KR20210002978A/ko
Application granted granted Critical
Publication of KR102230764B1 publication Critical patent/KR102230764B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/1827Management specifically adapted to NAS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • 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
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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
    • H04L2209/38

Abstract

본 발명의 일 실시예에 따른 블록체인 기반 파일 수정 증거 저장 방법이 제공된다. 블록체인 기반 파일 수정 증거 저장 방법은 분산 저장된 파일의 수정 요청을 수신하는 단계, 요청된 파일의 수정을 분산 저장 노드들에 걸쳐서 실행하는 단계, 파일 수정과 연관된 증거를 생성하는 단계, 및 증거를 블록체인 노드로 보내 파일 수정 장부에 기록을 위한 작업을 수행하도록 하는 단계를 포함한다.

Description

블록체인 기반 파일 수정 증거 저장 방법 및 이를 이용하는 장치{METHOD FOR STORING BLOCKCHAIN BASED FILE MODIFICATION EVIDENCE AND APPRATUS USING THE SAME}
본 발명은 파일을 분산 저장하도록 구성된 네트워크 연결 저장 장치에서 실행된 파일 수정의 증거를 블록체인에 저장하는 방법 및 이를 이용하는 장치에 관한 것이다.
최근 스마트 홈, 스마트 오피스 및 IoT(Internet of Things)인프라 등이 포함된 환경에서의 급증하는 데이터 수요로 인해 거대한 저장 환경에 대한 요구 또한 커지고 있다. 이러한 까닭에 오픈소스 저장 솔루션을 이용해 저장 인프라를 구축하여 사용하는 경우가 늘어나고 있다. 그 중 가장 널리 사용되는 솔루션 중 하나는 네트워크 연결 저장 장치로, 컴퓨터와 연관된 지식이 없는 사용자라도 쉽게 구축이 가능한 솔루션이다.
하지만, 네트워크 연결 저장 장치의 경우, 데이터의 공유를 위해 설계된 경우가 많으므로 무분별한 사용자에 의한 데이터 위조 및 변조로 인한 데이터 무결성의 침해 요소가 있다. 네트워크 연결 저장 장치의 ID와 비밀번호를 통한 사용자 인증 시스템은 최소한의 보안을 제공할 뿐, 데이터를 수정 및 제출하거나 위조 및 변조한 사용자가 실제 사용자와 일치하는지의 여부는 확인할 수 없다.
따라서, 네트워크 연결 저장 장치상에서 발생한 데이터의 무결성 침해 사항의 부인을 봉쇄하고, 나아가 침해 사항을 복구하기 위한 방법이 요구된다.
발명의 배경이 되는 기술은 본 발명에 대한 이해를 보다 용이하게 하기 위해 작성되었다. 발명의 배경이 되는 기술에 기재된 사항들이 선행기술로 존재한다고 인정하는 것으로 이해되어서는 안 된다.
전술한 바와 같은 문제점들을 해결하기 위해, 파일의 변경을 실시간으로 파악하고, 파일의 훼손이 감지되면 변경 시점에 백업된 파일을 이용해 훼손된 파일을 복구하는 솔루션이 제안되었다.
보다 구체적으로, 기존 솔루션은 파일을 실시간으로 모니터링하는 상황에서 파일의 변경이 발생하면, 정상 상황과 비정상 상황을 종합적으로 파악하고 비정상 상황이라고 판단될 경우 원본 파일을 백업해 둔다. 파일의 훼손이 지속적인 상황이 되면, 해당 프로세스는 차단되고 프로세스에 의해 생성된 파일도 삭제되고 훼손된 파일도 백업 파일에 의해 복구가 된다.
그러나, 기존 솔루션은 악성 코드가 아닌 실제 사람에 의한 파일 변경 과정이 악성 프로세스에 의한 과정과 다를 수 있으므로, 비정상 상황을 탐지하는 데에 한계가 있을 수 있다.
한편, 본 발명의 발명자들은, 전술한 바와 같은 한계를 극복하기 위한 방안으로 블록체인 기술에 주목하였다.
보다 구체적으로 본 발명의 발명자들은, 블록체인의 분산 저장되는 장부 기술이, 블록에 저장되는 데이터의 무결성을 가능하게 하고, 블록에 저장되는 파일의 수정 정보도 훼손되지 않을 수 있음을 인지할 수 있었다.
나아가, 본 발명의 발명자들은, 이러한 블록체인 기술이, 파일의 수정작업을 실행한 사용자의 전자서명을 포함하므로, 사용자의 부인을 봉쇄할 수 있음에 주목하였다.
그 결과, 본 발명의 발명자들은, 블록체인을 이용하는 파일 수정 증거 저장 방법 및 이를 이용하는 장치를 개발하기에 이르렀다.
보다 구체적으로, 본 발명의 발명자들은 사용자 정보 및 타임스탬프 등의 정보가 포함된 파일 수정 증거를 블록체인에 저장하는 방법 및 이를 이용하는 장치를 개발하기에 이르렀다.
결과적으로, 본 발명의 발명자들은 이와 같은 방법 및 이를 이용하는 장치에서 무결성 침해 사항의 부인을 봉쇄하고, 침해 사항을 복구할 수 있는 것을 확인할 수 있었다.
이에, 본 발명이 해결하고자 하는 과제는, 가상 머신이 인스턴스화 되는 네트워크 연결 저장 장치에 분산 저장된 파일과 관련된 수정 작업의 증거를 블록체인에 저장하는 방법 및 이를 이용하는 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는, 파일 수정 증거에 사용자 정보 및 타임스탬프 외에 스냅샷id를 포함시켜 블록체인에 저장하는 방법 및 이를 이용하는 장치를 제공하는 것이다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 블록체인 기반 파일 수정 증거 저장 방법이 제공된다. 블록체인 기반 파일 수정 증거 저장 방법은 분산 저장된 파일의 수정 요청을 수신하는 단계, 요청된 파일의 수정을 분산 저장 노드들에 걸쳐서 실행하는 단계, 파일 수정과 연관된 증거를 생성하는 단계, 및 증거를 블록체인 노드로 보내 파일 수정 장부에 기록을 위한 작업을 수행하도록 하는 단계를 포함하고, 상기 파일의 수정은, 유선 또는 무선 네트워크와 연결되어 파일을 분산 저장하도록 구성된 복수의 가상 머신이 인스턴스화된 네트워크 연결 저장 장치에서 이루어지며, 복수의 가상 머신 중 하나는 상기 파일 수정과 연관된 증거의 생성 및 증거의 장부 기록을 위한 작업을 수행하도록 구성된다.
본 발명의 다른 특징에 따르면, 증거는 사용자 정보, 사용자 ip, 타임스탬프, 파일 이름, 파일 경로, inode의 id 및 사용자 오퍼레이션 데이터 중 적어도 하나를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 증거는, 사용자 오퍼레이션 데이터를 포함할 수 있고, 사용자 오퍼레이션 데이터는, 수정 작업의 중요도에 따라 하이 레벨과 로우 레벨로 구분될 수 있다.
본 발명의 또 다른 특징에 따르면, 하이 레벨 작업은 파일의 이동, 쓰기, 제거 작업들 중 적어도 하나를 포함할 수 있고, 로우 레벨 작업은 파일의 링크 제거, 디렉토리 제거, 이름 변경, 속성 설정, 링크 생성 작업들 중 적어도 하나를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 파일의 수정된 부분의 스냅샷을 블록체인 노드로 보내 파일 수정 장부에 기록을 위한 작업을 수행하도록 하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 파일의 수정된 부분의 스냅샷을 블록체인 노드로 보내 파일 수정 장부에 기록을 위한 작업을 수행하도록 하는 단계는 저장 장치에 저장된 스냅샷의 암호화된 스냅샷 id 또는 해쉬 스트링을 블록체인 노드로 보내 파일 수정 장부에 기록을 위한 작업을 수행하도록 하는 단계를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 스냅샷 id는, 복구를 위한 파일의 수정된 부분에 대한 스냅샷 id가 될 수 있다.
본 발명의 또 다른 특징에 따르면, 파일 수정 장부는, 파일 수정 타임 스탬프를 통해 연결되어 새로운 파일 수정이 전 단계의 파일 수정과 연결되는 트랜잭션을 기록하도록 구성될 수 있다.
본 발명의 또 다른 특징에 따르면, 블록체인 노드에 의해 파일 수정 장부의 블록체인 저장 여부를 수신하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 파일 수정 증거를 생성하고 파일 수정 장부에 기록하는 작업을 수행하도록 하는 일련의 과정은 파일의 수정 요청을 처리하는 과정과 분리하여 진행될 수 있다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 블록체인 기반 파일 수정 증거 저장 장치가 제공된다. 블록체인 기반 파일 수정 증거 저장 장치는 본 발명의 분산 저장된 파일의 수정 요청을 수신하는 통신부, 통신부와 동작 가능하도록 연결되고 네트워크 연결 저장 장치내에 인스턴스화된 가상머신에 할당된 프로세서를 포함하고, 프로세서는, 요청된 파일의 수정을 분산 저장 노드들에 걸쳐서 실행하고, 파일 수정과 연관된 증거를 생성하고, 증거를 블록체인 노드로 보내 파일 수정 장부에 기록을 위한 작업을 수행하도록 구성되고, 상기 파일의 수정은, 유선 또는 무선 네트워크와 연결되어 파일을 분산 저장하도록 구성된 복수의 가상 머신이 인스턴스화된 네트워크 연결 저장 장치에서 이루어지며, 복수의 가상 머신 중 하나는 상기 파일 수정과 연관된 증거의 생성 및 증거의 장부 기록을 위한 작업을 수행하도록 구성된다.
본 발명의 다른 특징에 따르면, 증거는 사용자 오퍼레이션 데이터를 포함할 수 있고, 사용자 오퍼레이션 데이터는, 수정 작업의 중요도에 따라 하이 레벨과 로우 레벨로 구분될 수 있다.
본 발명의 또 다른 특징에 따르면, 하이 레벨 작업에 파일의 이동, 쓰기, 제거 작업들 중 적어도 하나를 포함할 수 있고, 로우 레벨 작업에 파일의 링크 제거, 디렉토리 제거, 이름 변경, 속성 설정, 링크 생성 작업들 중 적어도 하나를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 프로세서는, 파일의 수정된 부분의 스냅샷을 블록체인 노드로 보내 파일 수정 장부에 기록을 위한 작업을 수행하도록 더 구성될 수 있다.
본 발명의 또 다른 특징에 따르면, 프로세서가, 파일의 수정된 부분의 스냅샷을 블록체인 노드로 보내 파일 수정 장부에 기록을 위한 작업을 수행하는 것은, 저장 장치에 저장된 스냅샷의 암호화된 스냅샷 id 또는 해쉬 스트링을 블록체인 노드로 보내 파일 수정 장부에 기록을 위한 작업을 수행하는 것일 수 있다.
본 발명의 또 다른 특징에 따르면, 스냅샷 id는, 복구를 위한 파일의 수정된 부분에 대한 스냅샷 id일 수 있다.
본 발명은 가상 머신이 인스턴스화 되는 네트워크 연결 저장 장치에 분산 저장된 파일과 관련된 수정 작업의 증거를 블록체인에 저장함으로써, 파일의 수정 작업과 관련된 사용자 정보, 타임 스탬프 등의 정보에 대한 신뢰성을 향상시킬 수 있다.
또한, 본 발명은 파일에 부정적인 방식으로 접근해 수정하거나 악의적인 목적으로 파일을 변조 및 위조한 사용자에 대한 정보가 전자서명으로 암호화되어 블록체인에 저장되도록 구성돼 있다. 따라서 블록체인의 분산 장부 저장 방식으로 인한 사용자에 대한 정보의 위조 및 변조가 불가능해, 본 발명은 해당 사용자가 본인의 작업내용을 부정할 수 없도록 하는 부인 봉쇄 보안 서비스를 제공할 수 있다.
또한, 본 발명은 파일의 무결성이 침해가 발견된 경우, 파일의 수정된 부분에 대한 스냅샷이 존재할 시에, 해당 스냅샷을 이용해 파일의 침해 사항을 수정해 침해전의 파일 상태로 복구시킬 수 있다.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 발명 내에 포함되어 있다.
도 1은 본 발명의 실시예에 따른 블록체인 기반 파일 수정 증거 저장 시스템의 개략도이다.
도 2는 본 발명의 실시예에 따른 네트워크 연결 저장 장치를 설명하기 위한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 파일 수정과 연관된 증거를 생성하고, 해당 증거를 블록체인에 저장하는 방법을 설명하기 위한 개략적인 순서도이다.
도 4는 본 발명의 일 실시예에 따른 블록체인에 파일의 수정 증거를 저장하는 과정을 설명하는 블록도이다.
도 5는 중요도에 따라 분류된 파일의 수정 작업을 설명하기 위한 표이다.
도 6a는 본 발명의 일 실시예에 따른 블록체인 노드에 전송되는 파일의 수정과 연관된 증거를 설명하기 위한 개략도이다.
도 6b는 블록체인 노드가 증거 저장 여부를 전송하는 동작을 설명하기 위한 블록도이다.
도 7은 본 발명의 일 실시예에 따른 블록체인의 구조를 설명하기 위한 개략도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
비록 제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 당업자가 충분히 이해할 수 있듯이 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.
이하, 첨부된 도면을 참조하여 본 발명의 다양한 실시예들을 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 블록체인 기반 파일 수정 증거 저장 시스템의 개략도이다.
도 1을 참조하면 블록체인 기반 파일 수정 증거 저장 시스템은 게이트웨이(110), 네트워크 연결 저장 장치(132) 및 확장 네트워크 연결 저장 장치(134)로 구성된 네트워크 연결 저장 장치 시스템(130), 및 블록체인 노드들(142, 144)로 구성된 블록체인 노드 시스템(140)을 포함한다.
블록체인 기반 파일 수정 증거 저장 시스템에서 사용자용 컴퓨팅 장치(120)는 게이트웨이(110)에 의해 네트워크 연결 저장 장치 시스템(130) 및 블록체인 노드 시스템(140)과 네트워크를 통한 통신이 가능하다. 예를 들어, 사용자용 컴퓨팅 장치(120)는 게이트웨이(110)를 통하여 네트워크 연결 저장 장치 시스템(130)으로 파일의 수정을 요청하고, 수정 요청을 받은 네트워크 연결 저장 장치 시스템(130)은 파일을 수정할 수 있다. 네트워크 연결 저장 장치 시스템(130)은 블록체인에 저장될 수정된 파일 정보를 수집해 블록체인 노드 시스템(140)으로 전송할 수 있다. 블록체인 기반 파일 수정 증거 저장 시스템에서 사용자용 컴퓨팅 장치(120)와 네트워크 연결 저장 장치 시스템(130) 및 블록체인 노드 시스템(140)은 동일한 네트워크 환경에서 구성될 수도 있다. 이러한 경우, 블록체인 기반 파일 수정 증거 저장 시스템에서 게이트웨이(110)는 생략될 수도 있다. 도 1에 따르면, 블록체인 노드 시스템(140)은 네트워크 연결 저장 장치 시스템(130)과 물리적으로 분리된 노드일 수 있다. 또한, 블록체인 노드 시스템(140)은 네트워크 연결 저장 시스템(130)내의 네트워크 연결 저장 장치(132) 또는 확장 네트워크 연결 저장 장치(134) 내에 위치한 노드일 수도 있다. 이러한 경우, 네트워크 연결 저장 장치(132) 또는 확장 네트워크 연결 저장 장치(134)에 의해 인스턴스화된 가상 머신 내의 임베디드된 컴포넌트로서 존재할 수 있다.
예를 들어, 블록체인 노드는 스마트 컨트랙트 모듈을 가지며, 스마트 컨트랙트 모듈은 EVM(Ethereum Virtual Machine)에서 실행되어 상태변화 또는 데이터 저장 등을 할 수 있다. 따라서, 도 1에서는 블록체인 노드 시스템(140)이 별도의 물리적인 블록체인 노드(142, 144)를 포함하는 것으로 설명되었으나, 이에 제한되지 않고, EVM이 설치되는 호스트 또는 가상 머신은 블록체인 노드로 지칭될 수 있다. 다양한 실시예에서, 네트워크 연결 저장 장치(132, 134)에 EVM이 설치되거나 설치된 가상 머신에 EVM이 설치될 수도 있다.
게이트웨이(110)는 다른 종류의 네트워크를 연결해 다른 종류의 네트워크 상에 위치한 노드의 상호 데이터 전송을 가능하게 하는 네트워크 접속장치이다. 게이트웨이(110)는 프로토콜이 다른 네트워크 간에 프로토콜을 변환하여 노드간 정보를 주고받을 수 있게 한다. 또한 블록체인 기반 파일 수정 증거 저장 시스템에서 게이트웨이(110) 대신 유사한 기능을 제공하는 라우터가 사용될 수도 있다.
게이트 웨이(110)는 네트워크 연결 저장 장치(132), 확장 네트워크 연결 저장 장치(134), 블록체인 노드들(142, 144)과 무선 또는 유선으로 연결되며, 네트워크 연결 저장 장치(132), 확장 네트워크 연결 저장 장치(134), 블록체인 노드들(142, 144)을 인터넷 또는 인트라넷과 같은 컴퓨터 네트워크에 연결한다. 이 경우, 사용자는 인터넷 또는 인트라넷에 접속 가능한 휴대용 단말기, 스마트 TV, PC(Personal Computer), 노트북 등 다양한 사용자용 컴퓨팅 장치(120)를 통해 네트워크 연결 저장 장치(120) 또는 확장 네트워크 연결 저장 장치(130)에 파일의 수정 요청을 전송할 수 있다.
네트워크 연결 저장 장치(132)는 데이터 저장 서버로서, 적어도 하나의 가상 머신이 인스턴스화되고, 인스턴스화된 적어도 하나의 가상 머신을 통해 확장 네트워크 연결 저장 장치(134)와 데이터를 분산 저장하도록 제어할 수 있다. 예를 들어, 네트워크 연결 저장 장치(132)는 적어도 하나의 가상 머신을 통해 확장 네트워크 연결 저장 장치(134)의 연결을 감지하여 확장 네트워크 연결 저장 장치(134)의 설정을 원격으로 변경할 수 있다.
또한, 네트워크 연결 저장 장치(132)는 사용자 컴퓨팅 장치(120)로부터 요청받은 파일의 수정을 실행할 수 있다. 네트워크 연결 저장 장치(132)는 파일 수정과 연관된 증거를 블록체인 노드 시스템(140)에 위치한 블록체인에 저장할 수 있도록 블록체인 노드 시스템(140)에 증거를 전송할 수 있다.
확장 네트워크 연결 저장 장치(134)는 데이터 저장 서버로서, 네트워크 연결 저장 장치(132)에 의해 적어도 하나의 가상 머신이 인스턴스화되고, 인스턴스화된 적어도 하나의 가상 머신을 통해 네트워크 연결 저장 장치(132)와 데이터를 분산 저장하도록 제어될 수 있다.
블록체인 노드들(142, 144)은 생성된 블록에 파일 수정과 연관된 증거를 담아 이미 존재하는 블록체인에 연결하고 그 사본을 모든 노드에 분산시켜 저장할 수 있다. 다양한 실시예에서, 블록체인 노드들(142, 144)은 블록체인 노드 시스템(140)을 구성하는 요소로 네트워크 연결 저장 장치 시스템(130)과 전용 사설망에 위치할 수 있다. 구체적으로, 블록체인 노드(142)는 동일한 전용 사설망에 존재하는 네트워크 연결 저장 장치(132)로부터 파일 수정과 연관된 증거를 수신할 수 있다. 블록체인 노드(142)는 수신된 증거를 블록에 담아 블록체인에 연결하고 그 사본을 주변의 블록체인 노드(144)에 전달할 수 있다. 이로써, 블록체인 노드 시스템(140)은 블록체인을 이용한 분산 저장된 장부로서의 기능을 할 수 있고, 블록체인으로 저장된 파일의 수정 증거는 악의적인 목적에 의한 위조 및 변조가 불가능하다.
도 2는 본 발명의 실시예에 따른 네트워크 연결 저장 장치를 설명하기 위한 블록도이다.
도 2를 참조하면, 네트워크 연결 저장 장치(132)는 통신부(132a), 프로세서(132b) 및 저장부(132c)를 포함한다.
통신부(132a)는 네트워크 연결 저장 장치(132)가 외부 장치와 통신 가능하도록 연결한다. 통신부(132a)는 유선 또는 무선 통신을 이용하여 확장 네트워크 연결 저장 장치(134), 블록체인 노드들(142, 144) 및 사용자 컴퓨팅 장치(120)를 연결할 수 있다. 구체적으로, 통신부(132a)는 사용자 컴퓨팅 장치(120)로부터 파일의 수정 요청을 수신하고, 파일 수정과 연관된 증거를 블록체인에 저장할 수 있도록 블록체인 노드 시스템(140)에 증거를 전송할 수 있다. 또한 통신부(132a)는 네트워크 연결 저장 장치(132)와 연결된 확장 네트워크 연결 저장 장치(134)로부터 장치 정보, 성능 정보 또는 네트워크 정보를 수신할 수 있다.
다양한 실시예에서 통신부(132a)는 블록체인 노드(142,144)로부터 파일 수정과 연관된 증거의 블록체인 저장 여부를 수신할 수 있다.
저장부(132c)는 데이터와 프로그램을 저장하고 읽어 내기 위한 매체로서, DRAM 또는 SRAM 등으로 구성될 수 있는 메모리 및 바로 처리가 필요하지 않는 데이터와 프로그램을 저장할 수 있는 보조기억장치로 구성될 수 있다. 구체적으로 보조기억장치는 하드 디스크 드라이브(Hard Disk Drive; HDD), SSD(Solid State Drive), SD(Secure Digital) 카드, CD(Compact Disk), DVD(Digital Video Disc), 블루레이 디스크(Blu-ray Disk), USB 메모리 등과 같은 다양한 저장 매체로 구성될 수 있다. 상기 저장부(132c)는 다이렉트 커넥션(direct connection)을 통해 네트워크 연결 저장 장치(132)의 호스트에 직접 연결될 수 있다.
저장부(132c)는 네트워크 연결 저장 장치(132)내에서 인스턴스화된 가상 머신 중 적어도 하나에 의해 생성된 파일 수정과 연관된 증거를 저장할 수 있다. 저장부(132c)는 확장 네트워크 연결 저장 장치(134)로부터 수신된 장치 정보, 성능 정보 또는 네트워크 정보를 저장할 수 있다.
프로세서(132b)는 통신부(132a) 및 저장부(132c)와 동작 가능하게 연결되며, 인스턴스화된 적어도 하나의 가상 머신(Virtual Machine, VM)을 통해 네트워크 연결 저장 장치의 동작을 제어할 수 있다. 프로세서(132b)는 인스턴스화된 적어도 하나의 가상 머신을 통해 네트워크 연결 저장 장치 및 확장 네트워크 연결 저장 장치(134)를 하나의 저장 장치로 사용될 수 있도록 데이터 분산 저장을 제어할 수 있다. 또한, 프로세서(132b)는 사용자 컴퓨팅 장치로부터 파일의 수정 요청을 통신부(132a)를 통해 수신하고, 수신된 요청을 실행하고 파일의 수정과 연관된 증거를 생성한다. 프로세서(132b)는 생성된 증거를 통신부(132a)를 통해 블록체인 노드 시스템내의 블록체인 노드들 중 적어도 하나의 노드로 보내 블록체인에 저장하는 작업을 수행하도록 한다.
이하에서는, 도 3 내지 도 4를 참조하여, 파일의 수정과 연관된 증거를 생성하고, 해당 증거를 블록체인에 저장하는 방법을 보다 구체적으로 설명한다. 도 3은 본 발명의 일 실시예에 따른 파일 수정과 연관된 증거를 생성하고, 해당 증거를 블록체인에 저장하는 방법을 설명하기 위한 개략적인 순서도이다. 도 4는 본 발명의 일 실시예에 따른 블록체인에 파일의 수정 증거를 저장하는 과정을 설명하는 블록도이다.
먼저, 네트워크 연결 저장 장치(132)는 컴퓨팅 장치로부터 파일의 수정 요청을 수신한다(S310). 이 때, 컴퓨팅 장치와 네트워크 연결 저장 장치를 연결하고 네트워크 연결 저장 장치의 기능을 이용하기 위해 컴퓨팅 장치의 사용자를 인증하는 과정이 선행될 수 있다.
파일의 수정 증거를 저장하는 과정을 나타내기 위해 도 4와 같이 본 발명의 일 실시예에 따른 CnS 노드 가상 머신의 블록도를 참조하면, CnS 노드(400)는 라우팅 파트(402), 서비스 파트(406), RPC 파트(426), 코어 파트(430), 메시지 큐 파트(444), 모니터링 파트(446), 분산 파일 시스템 파트(456) 및 제어 O/S 파트(464)가 배치되도록 구성될 수 있다. CnS 노드(400)는 네트워크 연결 저장 장치(132)에 의해 인스턴스화된 적어도 하나의 가상 머신 상에 구현되어, 시스템 및 클러스터 구성을 유지하고, 올바른 서비스로 사용자 요청을 전달하기 위한 관리 장치로서 동작할 수 있다. CnS 노드(400)는 제어 및 저장 노드로서 정의되므로, 데이터 서비스뿐만 아니라 분산 파일 시스템 서비스를 함께 제공할 수 있다.
이를 위해 라우팅 파트(402)는 사용자 요청을 핸들링 할 수 있다.
서비스 파트(406)는 System Administration 서비스(408), DFS 서비스(410), FDT 서비스(412), SSH 서비스(414), FTP 서비스(416), TFTP 서비스(418), NFS 서비스(420), SMB/CIFS 서비스(422) 및 RSync 서비스(424)를 포함할 수 있다. System Administration 서비스(408)는 증거 질의 서비스(evidence query service)를 지원할 수 있다.
RPC 파트(426)는 서비스 파트(404)와 코어 파트(428) 간의 통신을 지원할 수 있다.
코어 파트(430)는 확장성 관리 컴포넌트(432), 시스템 신뢰성 관리 컴포넌트(434), 데이터 부인 봉쇄 관리 컴포넌트(436), 패키지 관리 컴포넌트(438), 사용자 관리 컴포넌트(440) 및 네트워크 관리 컴포넌트(442)가 포함될 수 있다.
메시지 큐 파트(444)는 코어 파트(430)에서 필요한 메시지 큐 통신을 지원할 수 있다.
모니터링 파트(446)는 프로세스 모니터링 컴포넌트(448), 디스크 모니터링 컴포넌트(450), 네트워크 모니터링 컴포넌트(452) 및 분산 파일 시스템 모니터링 컴포넌트(454)를 포함할 수 있다. 분산 파일 시스템 모니터링 컴포넌트(454)는 CnS 노드(400)의 분산 파일 시스템 상태를 확인하기 위해 포함될 수 있다.
분산 파일 시스템 파트(456)는 분산 파일 시스템 메타 데이터 관리 컴포넌트(458), 분산 파일 시스템 객체 데이터 관리 컴포넌트(460) 및 분산 파일 시스템 헬스 관리 컴포넌트(462)를 포함할 수 있다.
이 때, 사용자 관리 컴포넌트(440)은 사용자 계정을 관리하고, 접근 제어 목록을 지원할 수 있다. 사용자 관리 컴포넌트(440)는 운영체제 사용자 관리 메커니즘을 이용할 수 있고, 시스템 사용자 목록을 사용자 정보 및 암호정보가 포함된 디렉토리인 /etc/passwd로부터 획득할 수 있다. 또한, 사용자 인증은 운영체제 로그인 시스템을 통해 이루어 질 수 있다. 또 다른 실시예에 따르면, 분산파일 시스템에 접근 시 인증 및 권한 위해 공개키 및 비밀키 쌍인 cephx 이용해 사용자 인증을 할 수 있다.
사용자는 사용자 컴퓨팅 장치를 통해 파일의 수정 요청을 송신한다. 예를 들어, 사용자에 의해 사용자 인증이 완료되면, 사용자는 응용 프로그램이 libc에서 지원하는 API를 통해 파일 수정 요청을 시작할 수 있다.
다음으로, 네트워크 연결 저장 장치(132)는 파일의 수정을 실행한다(S320). 사용자에 의한 파일의 수정 요청은 먼저 네트워크 연결 저장 장치(132)의 라우팅 파트(402)에 의해 처리된다. 이 때, 라우팅 파트(402)는 사용자를 위한 가상 IP(Internet Protocol)로서 동작하는 LVS(Liunx Virtual Server) 상에 구동될 수 있다. 다양한 실시예에서 라우팅 파트(402)는 웹 서비스 리디렉션(web service redirection)을 지원하는 HAproxy 상에서 구동될 수도 있다. 여기서, HAproxy는 선택적으로 포함될 수 있다. 구체적으로, LVS 및 HAproxy는 모두 로드 밸런싱 솔루션(Load Balancing Solution)으로서, 로드 밸런싱이란 하나의 서버에 트래픽이 몰리는 것을 해소하기 위해, 즉 부하 분산을 위해 요청된 작업들이 가상 IP를 통해 여러 서버에 분산되도록 하는 네트워크 기술이다. 로드 밸런싱 스케줄링 알고리즘은 예를 들어, RR(Round Robin), WRR(Weighted Round Robin), LC(Least Connection) 및 SED(Shortes Expected Delay) 등이 있다.
전술된 라우팅 파트(402)의 LVS는 서비스 파트(406) 중 하나인 NFC 컴포넌트(420)를 선택해 파일 수정 요청을 전송한다. 이때, NFC 컴포넌트(420)들은 복수의 인스턴스화된 가상 머신 노드들 상에 위치할 수 있다.
NFC 컴포넌트(420)는 파일의 수정 요청을 해당 컴포넌트에 마운트된 분산 파일 시스템 파트(456)로 전달한다. 이때, 하나의 네트워크 연결 저장 장치에 복수의 가상 머신이 인스턴스화되어 있고, 복수의 가상 머신에 걸쳐서 분산 파일 시스템 파트(456)가 구동될 수 있다.
구체적으로, NFC 컴포넌트(420)는 요청을 로컬 IO 요청으로 번역하고, 번역된 로컬 IO 요청을 가상 파일 시스템 레이어로 전송한다. 가상 파일 시스템 레이어는 전송된 로컬 IO 요청을 마운트된 분산 파일 시스템 파트(456)로 전달한다. 이때, NFC 컴포넌트(420)는 파일 공유 서비스를 제공하기 위해 파일 공유 프로토콜을 기반으로 원격 파일 공유 서비스를 이해하고 제공하는 게이트웨이다. 이러한 게이트웨이로는 FDT 서비스(412), FTP 서비스(416), TFTP 서비스(418), NFS 서비스(420), SMB/CIFS 서비스(422) 및 RSync 서비스(424) 컴포넌트들이 포함될 수 있다. 그러나, 이러한 게이트웨이 접근 방식은 서비스 파트(406)에 포함된 컴포넌트와 분산 파일 시스템 파트(456) 간의 추가적인 네트워크 IO cost를 발생시킬 수 있으므로, 분산 파일 시스템 파트(456)가 사용자에게 직접 마운트될 수 있다. 이 때, 사용자와 분산 파일 시스템 파트(456)은 다른 네트워크 환경에 위치할 수 있으므로, LVS-Tunnel을 이용해 사용자의 파일 수정 요청을 분산 파일 시스템 파트(456)로 전송할 수 있다.
도 4를 참조하면, 사용자에 의한 파일 수정 요청은 예를 들어, 라우팅 파트(402)에 의해 서비스 파트(406)의 NFS 컴포넌트(420)로 전송된다. 전송된 파일 수정 요청은 NFS 컴포넌트(420)를 통해 분산 파일 시스템(456)의 분산 파일 시스템 객체 데이터 관리 컴포넌트(460)로 전송될 수 있다.
분산 파일 시스템 파트(456)의 분산 파일 시스템 객체 데이터 관리 컴포넌트(460)로 전송된 파일 수정요청의 완료 과정은 하기에서 보다 상세하게 설명하도록 한다.
분산 파일 시스템 파트(456)의 파일의 수정 과정을 살펴보기에 앞서, 분산 파일 시스템이 제공하는 논리적인 파일 데이터 조직화 구조를 살펴보도록 한다. 분산 파일 시스템은 메타 데이터와 파일 데이터의 두 부분에 의해 이루어지는 분산된 파일을 관리할 수 있다. 해당 메타 데이터와 파일 데이터는 분산 파일 시스템의 저장소에 저장된다. 저장소는 파일을 여러 객체로 분할하고 객체를 다른 배치 그룹에 매핑한다. 이때, 배치 그룹은 물리적 장치와 매핑되는 논리적 단위이다. 분산 파일 시스템의 논리적인 파일 데이터 조직화 구조의 최상위 레벨은 풀이다. 파일의 객체는 모두 동일한 풀에 지정된다. 객체는 가상 해시 알고리즘인 CRUSH 알고리즘을 기반으로 배치 그룹에 할당된다.
본 발명의 일 실시예에 따르면, 분산 파일 시스템 파트(456)는 상기 전술한 분산 파일 시스템이 제공하는 파일 데이터 조직화 구조를 이용하여 파일을 관리할 수 있다. 이에 더하여, 분산 파일 시스템 파트(456)의 분산 파일 시스템 메타 데이터 관리 컴포넌트(458)는 분산 파일 시스템 MDS를 나타내고, 분산 파일 시스템 객체 데이터 관리 컴포넌트(460)는 분산 파일 시스템 OSD를 나타낼 수 있다. 또한, 분산 파일 시스템 헬스 관리 컴포넌트(462)는 분산 파일 시스템 MON을 나타낼 수 있다. 여기서, MDS는 파일 이름 및 폴더 트리와 같은 파일 시스템 메타 데이터를 관리할 수 있다. OSD는 물리적 저장 장치의 모든 실제 데이터를 관리할 수 있다. 또한 MON은 모든 노드 상태를 관리하고 전체 파일 작업을 처리할 수 있다.
파일 수정 요청을 전송받은 분산 파일 시스템 파트(456)는 요청받은 작업을 수행할 수 있다. 다양한 실시예에 따르면, 전송받은 요청이 쓰기 요청일 경우, 먼저 서비스 파트(406) 중 하나의 컴포넌트는 분산 파일 시스템 헬스 관리 컴포넌트(462)에 연결한 다음, 분산 파일 시스템 메타 데이터 관리 컴포넌트(458)에 연결하고, 마지막으로 분산 파일 시스템 객체 데이터 관리 컴포넌트(460)에 요청을 전송할 수 있다. 그 후, 분산 파일 시스템 객체 데이터 관리 컴포넌트(460)는 요청된 전송을 완료한다.
이때, 물리적으로 분리된 네트워크 연결 저장 장치(132) 및 확장 네트워크 연결 저장 장치(134)에서 인스턴스화된 복수의 가상 머신들에 서비스 파트(406) 및 분산 파일 시스템 파트(456)가 위치해, 복수의 저장 장치에 분산 저장된 파일 수정과 파일 수정과 연관된 증거 수집이 가능하다.
다음으로, 다시 도 3을 참조하면, 네트워크 연결 저장 장치(132)는 파일의 수정과 연관된 증거를 생성한다(S330). 구체적으로, 파일 수정과 연관된 증거는 분산 파일 시스템 파트(456)의 분산 파일 시스템 메타 데이터 관리 컴포넌트(458)에 의해 수집될 수 있다. 파일 수정과 연관된 증거는 사용자 정보, 사용자 ip, 타임스탬프, 파일 이름, 파일 경로, inode의 id 및 사용자 오퍼레이션 데이터 중 적어도 하나를 포함할 수 있다.
이때, 사용자 정보는 서비스 파트(406)의 NFS 서비스 컴포넌트(420)의 데몬에 의해 수집될 수 있다. 해당 데몬은 클라이언트 연결의 수집을 통해 사용자 정보를 얻을 수 있다.
사용자 오퍼레이션 데이터는 파일의 수정 작업의 중요도에 따라 예를 들어 두 가지 레벨로 구분될 수 있다. 파일의 이동, 쓰기, 제거 작업은 하이 레벨 작업에 포함되고, 파일의 링크 제거, 디렉토리 제거, 이름 변경, 속성 설정, 링크 생성 작업은 로우 레벨 작업에 포함될 수 있다. 상술한 중요도에 의한 작업 레벨 구분은 상대적으로 중요한 파일 수정 작업에 대한 관리 및 하이 레벨 작업에 의해 변경된 부분에 대한 스냅샷 수집을 용이하게 한다. 중요도에 따른 증거 수집과 저장 방식에 대해서는 도 5를 참조하여 후술한다.
분산 파일 시스템 파트(456)의 분산 파일 시스템 메타 데이터 관리 컴포넌트(458)는 파일의 수정된 부분의 스냅샷을 수집할 수 있다. 블록체인 내에 스냅샷을 저장할 공간이 부족할 경우, 수집될 수 있는 스냅샷은 분산 파일 시스템의 저장소에 위치할 수 있다. 이 경우, 분산 파일 시스템 파트(456)의 분산 파일 시스템 메타 데이터 관리 컴포넌트(458)는 스냅샷의 암호화된 id 또는 스냅샷의 해쉬 스트링을 수집할 수 있다. 따라서, 블록체인 내엔 스냅샷의 암호화된 id 또는 스냅샷의 해쉬 스트링을 저장함으로써 블록체인 내의 공간을 절약할 수 있다. 이러한 작업을 통해, 파일의 위조 및 변조 발생시, 파일의 변경 전 상태로 복구시킬 수 있다.
상술한 파일의 수정 요청이 실행되는 과정과 파일의 수정과 연관된 증거를 수집하는 과정은 파일이 수정된 이후부터 분리되어 진행될 수 있다. 때문에 사용자에 의해 수행되는 일련의 파일의 수정 작업은 파일의 증거를 수집하는 과정에 의해 영향을 받지 않고 수정 작업의 속도를 안정화시킬 수 있다.
다음으로, 다시 도 3을 참조하면, 네트워크 연결 저장 장치는 수집된 증거를 블록체인 노드로 보내 파일 수정 장부에 기록을 위한 작업을 수행한다(S340).
구체적으로, 도 4를 참조하면, 분산 파일 시스템 파트(456)의 분산 파일 시스템 메타 데이터 관리 컴포넌트(458)는 수집된 증거를 코어 파트(430)의 데이터 부인 봉쇄 관리 컴포넌트(436)로 전송할 수 있다. 데이터 부인 봉쇄 관리 컴포넌트(436)는 전송받은 증거를 트랜잭션의 형태로 블록체인 노드로 전송할 수 있다. 이때, 트랜잭션에는 스냅샷의 id 또는 스냅샷의 해쉬 스트링이 포함될 수 있다. 여기서, 트랜잭션은 블록체인 상에 존재하는 파일 수정 컨트랙트의 상태를 변경시키기 위한 데이터 구조체로서 전자 서명에 의해 암호화될 수 있다. 파일 수정 컨트랙트는 solidity 언어로 작성된 응용프로그램인 스마트 컨트랙트로, 컴파일된 코드 형태로 각 블록체인 노드들에 배포된다. 배포된 파일 수정 컨트랙트는 각 블록체인 노드들의 EVM(Ethereum Virtual Machine)에서 실행되어 블록내의 상태변화 또는 데이터 저장 등의 기능을 할 수 있다.
블록체인 노드들은 전송받은 트랜잭션을 이용해 파일 수정 컨트랙트를 실행시켜 블록체인 장부에 저장한다. 여기서, 파일 수정 컨트랙트란 EVM 환경에서 실행되는 바이트 코드인 스마트 컨트랙트로서, 코드내의 함수의 실행에 의해 파일 수정과 연관된 증거가 블록체인 장부에 저장될 수 있다. 증거가 저장된 후, 블록체인 노드는 저장 여부를 네트워크 연결 저장 장치에 전송한다.
때문에, 직접 웹상에서 발신자의 주소 또는 트랜잭션 검색을 통한 정보 확인 작업을 하지 않고도 블록체인 장부내에 증거가 저장되었는지의 여부를 알 수 있다.
다시 도 4를 참조하면, 분산 판일 시스템(456)의 분산 파일 시스템 객체 데이터 관리 컴포넌트(460)로 전송된 파일 수정 요청이 완료되고, 그 후 분산 파일 시스템 메타 데이터 관리 컴포넌트(458)에 의해 생성된 파일 수정과 연관된 증거는 코어 파트(430)의 데이터 부인 봉쇄 관리 컴포넌트(436)를 통해 블록체인 노트로 트랜잭션의 형태로 전송될 수 있다.
트랜잭션의 형태로 전송되는 증거에 대해서 도 6a를 참조하여 후술한다.
본 발명의 일 실시예에 따른 블록체인 기반 파일 수정 증거 저장 방법에 따르면, 복수의 사용자들에 의해 수정될 수 있는 분산 파일 시스템 환경에서 파일 수정 증거의 블록체인 네트워크 상의 분산 저장을 통해 파일의 위조 및 변조하는 사용자들의 부인 봉쇄가 가능하다. 또한, 파일의 위조 및 변조가 발생되었을 경우, 저장된 스냅샷을 통해 파일의 상태를 롤백할 수 있는 긴급 복구가 가능하다.
이하에서는, 본 발명의 다른 실시예에 따른 본 발명의 다른 실시예에 따른 블록체인 기반 파일 수정 증거 저장 방법에서, 사용자 오퍼레이션 데이터가 파일의 수정 작업의 중요도에 따라 두 가지 레벨로 구분되는 실시예에 대해서 도 5를 참조하여 보다 상세하게 설명하도록 한다.
도 5는 중요도에 따라 분류된 파일의 수정 작업을 설명하기 위한 표이다.
도 5를 참조하면, 파일의 수정 작업은 상대적으로 중요도가 높은 작업인 하이 레벨과 중요도가 낮은 로우 레벨로 구분될 수 있다. 하이 레벨의 작업에는 파일 또는 디렉토리를 대상지점으로 이동할 수 있는 이동 작업, 파일에 새로운 데이터를 쓸 수 있는 쓰기 작업 및 파일이나 디렉토리를 삭제할 수 있는 제거 작업이 포함될 수 있다. 로우 레벨의 작업에는 inode에서 하드 링크를 제거할 수 있는 링크 제거 작업, inode에서 서브 디렉토리를 제거할 수 있는 디렉토리 제거 작업, directory entry의 이름을 변경 할 수 있는 이름 변경 작업, 속성 값을 설정 할 수 있는 속성 설정 작업 및 디렉토리에 대한 새로운 하드 링크를 생성할 수 있는 링크 생성 작업이 포함될 수 있다. 네트워크 연결 저장 장치는 메타 데이터 서버 로그 풀의 로우 레벨 작업 및 NFS 로그 풀의 하이 레벨 작업을 모니터링할 수 있다. 이때, 로우 레벨의 작업이 포함된 파일 수정 증거에는 스냅샷이 또는 스냅샷의 id 및 스냅샷의 해쉬 스트링이 포함되지 않고, 하이 레벨의 작업이 포함된 파일 수정 증거에 스냅샷 또는 스냅샷의 id 및 스냅샷의 해쉬 스트링이 포함될 수 있다. 때문에, 파일의 수정 작업 중 중요도가 높은 작업을 통한 파일의 위조 및 변조가 발생한 상황에서, 스냅샷을 통한 파일의 긴급 복구를 통해 파일의 무결성이 가능하다.
다음으로, 본 발명의 또 다른 실시예 따른 블록체인 기반 파일 수정 증거 저장 방법에서는 블록체인 노트에 트랜잭션의 형태로 전송되는 증거에 대해서 보다 상세하게 도 6a를 참조하여 하기에서 설명하도록 한다. 도 6a는 본 발명의 일 실시예에 따른 블록체인 노드에 전송되는 파일의 수정과 연관된 증거를 설명하기 위한 개략도이다.
도 6a를 참조하면, 루트 폴더 아래 저장된 test라는 이름을 가진 파일이 user1이라는 사용자에 의해 unlink 작업이 수행된 후 수집된 증거를 나타낸다. 이 때, 파일의 수정된 부분에 대한 스냅샷의 해쉬 스트링 af6b7066-de4a-45d0-9f7c-1c7949bfc4776 및 스냅샷의 암호화된 ID 7ef0ccaf-78ad-4c45-aaea-09c86e53dcad도 증거로 포함되어 있다. 상기 해쉬 스트링을 이용해 분산 파일 시스템을 통해 저장된 스냅샷을 검색하고, 검색된 스냅샷을 통해 파일의 긴급 복구가 가능하다. 따라서, 용량이 큰 스냅샷을 블록체인 장부에 직접 저장하지 않아 블록체인 내의 공간 절약이 가능하다.
블록체인 노드(142)에 전송되는 증거는 상기 기술된 증거에 제한되지 않고 그 외의 다른 증거를 포함할 수 있다.
도 6b는 블록체인 노드(142)가 증거 저장 여부를 전송하는 동작을 설명하기 위한 블록도이다.
도 6b를 참조하면, 블록체인 노드(142)가 네트워크 연결 저장 장치(132)에 전송한 파일의 수정과 연관된 증거는 블록 115001의 바디 내에 저장되었고, 루트 폴더 아래 저장된 test란 이름의 파일이 사용자1에 의해 제거된 내용을 의미하는 증거임을 알 수 있다. 또한, 트랜잭션의 발신자 주소는 개인키에서 생성된 공개키로부터 계산된 해시값이 포함된 0xca35b7d915458ef540ade6078dfe2f44e81a733c임을 알 수 있다. 파일의 수정된 부분에 대한 스냅샷의 해쉬 스트링 af6b7066-de4a-45d0-9f7c-1c7949bfc4776 및 스냅샷의 암호화된 ID 7ef0ccaf-78ad-4c45-aaea-09c86e53dcad도 증거로 포함되어 있다.
블록체인에 저장되는 증거는 트랜잭션의 형태로 블록체인의 바디에 기록될 수 있다. 트랜잭션에는 스냅샷의 id 또는 스냅샷의 해쉬 스트링이 포함될 수도 있다.
이로써, 블록체인에 저장되는 증거는 분산 장부 시스템 특징으로 인해 위조 및 변조가 불가능해 증거의 신뢰도가 높아질 수 있다. 또한 블록체인에 전송되는 트랜잭션은 전자 서명이 필요하므로 증거를 악의적으로 변경하는 사용자에 의한 부인이 봉쇄가능하다.
도 7을 참조하여 전술한 블록체인의 구조를 보다 상세하게 설명하도록 한다.
도 7은 본 발명의 일 실시예에 따른 블록체인의 구조를 설명하기 위한 개략도이다.
도 7을 참조하면, 블록의 바디에 파일이 수정된 상태가 전이되어 저장될 수 있다. 보다 구체적으로, 블록1의 바디에는 file2의 수정된 상태가 파일 1의 수정된 상태에 연결될 수 있고, 블록2의 바디에는 file1의 두번째 수정된 상태가 파일3의 수정된 상태와 연결될 수 있다. 이때, 수정된 상태는 타임 스탬프에 기반하여 연결될 수 있다. 블록의 바디에는 네트워크 연결 저장 장치(132)로부터 전송받은 증거가 포함된 트랜잭션 또는 스냅샷의 id 또는 스냅샷의 해쉬 스트링이 포함될 수 있다. 해당 블록들은 연결되어 블록체인을 구성할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형 실시될 수 있다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
110: 게이트웨이
120: 사용자용 컴퓨팅 장치
130: 네트워크 연결 저장 장치 시스템
140: 블록체인 노드 시스템

Claims (16)

  1. 네트워크 연결 저장 장치의 프로세서에 의해서 수행되는 블록체인 기반 파일 수정 증거 저장 방법에 있어서,
    상기 네트워크 연결 저장 장치에 인스턴스화된 복수의 가상 머신 중 적어도 하나의 가상 머신을 통해 상기 네트워크 연결 저장 장치 및 상기 네트워크 연결 저장 장치와 물리적으로 분리된 확장 네트워크 연결 저장 장치에 파일을 분산 저장하는 단계;
    상기 분산 저장된 파일의 수정 요청을 수신하는 단계;
    상기 수정 요청에 따라 상기 적어도 하나의 가상 머신을 통해 상기 분산 저장된 파일의 수정을 실행하는 단계;
    상기 분산 저장된 파일의 수정과 연관된 증거를 생성하는 단계; 및
    상기 증거를 블록체인 노드로 전송하여 상기 블록체인 노드가 상기 증거를 파일 수정 장부에 기록하도록 하는 단계를 포함하고,
    상기 증거는, 트랜잭션의 형태로 전송되는, 블록체인 기반 파일 수정 증거 저장 방법.
  2. 제1항에 있어서, 상기 증거는,
    사용자 정보, 사용자 ip, 타임스탬프, 파일 이름, 파일 경로, inode의 id 및 사용자 오퍼레이션 데이터 중 적어도 하나를 포함하는, 블록체인 기반 파일 수정 증거 저장 방법.
  3. 제2항에 있어서,
    상기 증거는 상기 사용자 오퍼레이션 데이터를 포함하고,
    상기 사용자 오퍼레이션 데이터는,
    수정 작업의 중요도에 따라 하이 레벨과 로우 레벨로 구분되는, 블록체인 기반 파일 수정 증거 저장 방법.
  4. 제3항에 있어서, 상기 하이 레벨 작업은,
    파일의 이동, 쓰기, 제거 작업들 중 적어도 하나를 포함하고,
    상기 로우 레벨 작업은,
    파일의 링크 제거, 디렉토리 제거, 이름 변경, 속성 설정, 링크 생성 작업들 중 적어도 하나를 포함하는, 블록체인 기반 파일 수정 증거 저장 방법.
  5. 제1항에 있어서,
    상기 분산 저장된 파일의 수정된 부분의 스냅샷을 상기 블록체인 노드로 보내 상기 파일 수정 장부에 기록을 위한 작업을 수행하도록 하는 단계를 더 포함하는, 블록체인 기반 파일 수정 증거 저장 방법.
  6. 제5항에 있어서,
    상기 분산 저장된 파일의 수정된 부분의 스냅샷을 상기 블록체인 노드로 보내 상기 파일 수정 장부에 기록을 위한 작업을 수행하도록 하는 단계는,
    상기 네트워크 연결 저장 장치 및 상기 확장 네트워크 연결 저장 장치 각각에 저장된 상기 스냅샷의 암호화된 스냅샷 id 또는 해쉬 스트링을 상기 블록체인 노드로 보내 상기 파일 수정 장부에 기록을 위한 작업을 수행하도록 하는 단계인, 블록체인 기반 파일 수정 증거 저장 방법.
  7. 제6항에 있어서, 상기 스냅샷 id는,
    복구를 위한 파일의 수정된 부분에 대한 스냅샷 id인, 블록체인 기반 파일 수정 증거 저장 방법.
  8. 제1항에 있어서, 상기 파일 수정 장부는,
    파일 수정 타임 스탬프를 통해 연결되어 새로운 파일 수정이 전 단계의 파일 수정과 연결되는 트랜잭션을 기록하도록 구성된, 블록체인 기반 파일 수정 증거 저장 방법.
  9. 제1항에 있어서,
    상기 블록체인 노드에 의해 상기 파일 수정 장부의 블록체인 저장 여부를 수신하는 단계를 더 포함하는, 블록체인 기반 파일 수정 증거 저장 방법.
  10. 제1항에 있어서,
    상기 파일 수정 증거를 생성하고 상기 파일 수정 장부에 기록하도록 하는 일련의 과정은 상기 파일의 수정 요청을 처리하는 과정과 분리하여 진행되는, 블록체인 기반 파일 수정 증거 저장 방법.
  11. 분산 저장된 파일의 수정 요청을 수신하는 통신부; 및
    상기 통신부와 동작 가능하도록 연결되고 네트워크 연결 저장 장치내에 인스턴스화된 복수의 가상머신을 구동시키도록 구성된 프로세서를 포함하고,
    상기 프로세서는,
    상기 복수의 가상 머신 중 적어도 하나의 가상 머신을 통해 상기 네트워크 연결 저장 장치 및 상기 네트워크 연결 저장 장치와 물리적으로 분리된 확장 네트워크 연결 저장 장치에 파일을 분산 저장하고,
    상기 수정 요청에 따라 상기 적어도 하나의 가상 머신을 통해 상기 분산 저장된 파일의 수정을 실행하고,
    상기 분산 저장된 파일의 수정과 연관된 증거를 생성하고,
    상기 증거를 블록체인 노드로 전송하여 상기 블록체인 노드가 상기 증거를 파일 수정 장부에 기록하도록 구성되고,
    상기 증거는, 트랜잭션의 형태로 전송되는, 블록체인 기반 파일 수정 증거를 저장하기 위한 네트워크 연결 저장 장치.
  12. 제11항에 있어서,
    상기 증거는 사용자 오퍼레이션 데이터를 포함하고,
    상기 사용자 오퍼레이션 데이터는,
    수정 작업의 중요도에 따라 하이 레벨과 로우 레벨로 구분되는, 블록체인 기반 파일 수정 증거를 저장하기 위한 네트워크 연결 저장 장치.
  13. 제12항에 있어서,
    상기 하이 레벨 작업에 파일의 이동, 쓰기, 제거 작업들 중 적어도 하나를 포함하고, 상기 로우 레벨 작업에 파일의 링크 제거, 디렉토리 제거, 이름 변경, 속성 설정, 링크 생성 작업들 중 적어도 하나를 포함하는, 블록체인 기반 파일 수정 증거를 저장하기 위한 네트워크 연결 저장 장치.
  14. 제11항에 있어서, 상기 프로세서는,
    상기 분산 저장된 파일의 수정된 부분의 스냅샷을 상기 블록체인 노드로 보내 상기 파일 수정 장부에 기록을 위한 작업을 수행하도록 더 구성된, 블록체인 기반 파일 수정 증거를 저장하기 위한 네트워크 연결 저장 장치.
  15. 제14항에 있어서, 상기 프로세서가,
    상기 분산 저장된 파일의 수정된 부분의 스냅샷을 상기 블록체인 노드로 보내 상기 파일 수정 장부에 기록을 위한 작업을 수행하는 것은,
    상기 네트워크 연결 저장 장치 및 상기 확장 네트워크 연결 저장 장치 각각에 저장된 상기 스냅샷의 암호화된 스냅샷 id 또는 해쉬 스트링을 상기 블록체인 노드로 보내 상기 파일 수정 장부에 기록을 위한 작업을 수행하는 것인, 블록체인 기반 파일 수정 증거를 저장하기 위한 네트워크 연결 저장 장치.
  16. 제15항에 있어서, 상기 스냅샷 id는,
    복구를 위한 파일의 수정된 부분에 대한 스냅샷 id인, 블록체인 기반 파일 수정 증거를 저장하기 위한 네트워크 연결 저장 장치.
KR1020190078934A 2019-07-01 2019-07-01 블록체인 기반 파일 수정 증거 저장 방법 및 이를 이용하는 장치 KR102230764B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190078934A KR102230764B1 (ko) 2019-07-01 2019-07-01 블록체인 기반 파일 수정 증거 저장 방법 및 이를 이용하는 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190078934A KR102230764B1 (ko) 2019-07-01 2019-07-01 블록체인 기반 파일 수정 증거 저장 방법 및 이를 이용하는 장치

Publications (2)

Publication Number Publication Date
KR20210002978A KR20210002978A (ko) 2021-01-11
KR102230764B1 true KR102230764B1 (ko) 2021-03-19

Family

ID=74128957

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190078934A KR102230764B1 (ko) 2019-07-01 2019-07-01 블록체인 기반 파일 수정 증거 저장 방법 및 이를 이용하는 장치

Country Status (1)

Country Link
KR (1) KR102230764B1 (ko)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101781583B1 (ko) 2016-08-31 2017-09-27 서강대학교산학협력단 블록체인을 기반으로 한 파일 관리/검색 시스템 및 파일 관리/검색 방법
JP2018081464A (ja) 2016-11-15 2018-05-24 富士通株式会社 通信方法、装置、及びプログラム
US20180144340A1 (en) * 2016-11-21 2018-05-24 International Business Machines Corporation Triggering actions responsive to blockchain transactions
US20180285971A1 (en) 2017-03-31 2018-10-04 International Business Machines Corporation Management of consumer debt collection using a blockchain and machine learning
KR101934444B1 (ko) 2018-04-04 2019-01-02 대한민국 문서 및 유가증권의 무결성 데이터 관리 방법
WO2019068379A1 (en) * 2017-10-06 2019-04-11 Siemens Aktiengesellschaft TRANSACTION SELECTION DEVICE FOR SELECTING BLOCKCHAIN TRANSACTIONS
KR101994371B1 (ko) 2018-10-23 2019-06-28 주식회사 컴퍼니위 스마트 블럭체인컴퍼니위형 국가간전력거래중개모듈·aos블록체인모듈로 이루어진 하이브리드형 국가간 전력거래 활성화장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102025409B1 (ko) * 2017-07-31 2019-09-25 서강대학교산학협력단 블록체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법
KR102030905B1 (ko) * 2017-12-08 2019-10-10 인제대학교 산학협력단 블록 체인 시스템 아키텍쳐 및 방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101781583B1 (ko) 2016-08-31 2017-09-27 서강대학교산학협력단 블록체인을 기반으로 한 파일 관리/검색 시스템 및 파일 관리/검색 방법
JP2018081464A (ja) 2016-11-15 2018-05-24 富士通株式会社 通信方法、装置、及びプログラム
US20180144340A1 (en) * 2016-11-21 2018-05-24 International Business Machines Corporation Triggering actions responsive to blockchain transactions
US20180285971A1 (en) 2017-03-31 2018-10-04 International Business Machines Corporation Management of consumer debt collection using a blockchain and machine learning
WO2019068379A1 (en) * 2017-10-06 2019-04-11 Siemens Aktiengesellschaft TRANSACTION SELECTION DEVICE FOR SELECTING BLOCKCHAIN TRANSACTIONS
KR101934444B1 (ko) 2018-04-04 2019-01-02 대한민국 문서 및 유가증권의 무결성 데이터 관리 방법
KR101994371B1 (ko) 2018-10-23 2019-06-28 주식회사 컴퍼니위 스마트 블럭체인컴퍼니위형 국가간전력거래중개모듈·aos블록체인모듈로 이루어진 하이브리드형 국가간 전력거래 활성화장치

Also Published As

Publication number Publication date
KR20210002978A (ko) 2021-01-11

Similar Documents

Publication Publication Date Title
US11960486B2 (en) Systems and methods for secure file management via an aggregation of cloud storage services
US20230118948A1 (en) Systems and methods for aggregation of cloud storage
US11544151B2 (en) Data backup technique for backing up data to an object storage service
US10873629B2 (en) System and method of implementing an object storage infrastructure for cloud-based services
US10387673B2 (en) Fully managed account level blob data encryption in a distributed storage environment
US20210075857A1 (en) Aggregation and management among a plurality of storage providers
US10264072B2 (en) Systems and methods for processing-based file distribution in an aggregation of cloud storage services
US10756887B2 (en) Method and system for securely replicating encrypted deduplicated storages
US20190306240A1 (en) Systems and methods for third-party policy-based file distribution in an aggregation of cloud storage services
US8185614B2 (en) Systems, methods, and apparatus for identifying accessible dispersed digital storage vaults utilizing a centralized registry
US10289694B1 (en) Method and system for restoring encrypted files from a virtual machine image
US8099605B1 (en) Intelligent storage device for backup system
JP6224102B2 (ja) アーカイブデータ識別
US8849955B2 (en) Cloud storage and networking agents, including agents for utilizing multiple, different cloud storage sites
US7139808B2 (en) Method and apparatus for bandwidth-efficient and storage-efficient backups
JP2009527824A (ja) 固定コンテンツ分散データ・ストレージにおける平均データ・ロス時間改善方法
JP2010530562A (ja) 固定コンテンツ分散型データ記憶システムにおけるデータ機密保持方法
JP2007073004A (ja) データ保全情報装置、分散ストレージシステム及びその方法
WO2017200881A1 (en) Systems and methods for aggregation of cloud storage
KR102281901B1 (ko) 블록체인을 이용한 데이터 관리 장치 및 이를 위한 방법
KR102230764B1 (ko) 블록체인 기반 파일 수정 증거 저장 방법 및 이를 이용하는 장치
JP6435616B2 (ja) ストレージ装置、ストレージシステム、ストレージシステムの制御方法および制御プログラム

Legal Events

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