KR101852725B1 - 컴퓨터 프로그램, 비밀관리방법 및 시스템 - Google Patents

컴퓨터 프로그램, 비밀관리방법 및 시스템 Download PDF

Info

Publication number
KR101852725B1
KR101852725B1 KR1020170086237A KR20170086237A KR101852725B1 KR 101852725 B1 KR101852725 B1 KR 101852725B1 KR 1020170086237 A KR1020170086237 A KR 1020170086237A KR 20170086237 A KR20170086237 A KR 20170086237A KR 101852725 B1 KR101852725 B1 KR 101852725B1
Authority
KR
South Korea
Prior art keywords
file
distributed
virtual drive
storage device
secret
Prior art date
Application number
KR1020170086237A
Other languages
English (en)
Other versions
KR20170085021A (ko
Inventor
토모무라 기요시
Original Assignee
젠무테크 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 젠무테크 가부시키가이샤 filed Critical 젠무테크 가부시키가이샤
Publication of KR20170085021A publication Critical patent/KR20170085021A/ko
Application granted granted Critical
Publication of KR101852725B1 publication Critical patent/KR101852725B1/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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Abstract

정보처리장치의 프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금 비밀분산 모듈 및 제어 모듈로서 기능하게 하는 컴퓨터 프로그램이 저장된 저장매체가 제공된다. 상기 비밀분산 모듈은, 비밀분산법을 사용하여 비밀 데이터를 분산시킴으로써 복수의 분산 데이터 조각들을 형성하도록 구성되고, 상기 복수의 분산 데이터 조각들의 각 조각을, 대응하는 저장장치의 데이터 영역으로부터 또는 데이터 영역으로 독출 또는 기록하는 것을 제어하도록 구성되는 제어 모듈로서 기능하게 하며, 상기 제어 모듈은 상기 정보처리장치에 설정 등록되어있는 가상 드라이브 내에 상기 비밀 데이터를 유지하도록 더 구성되고, 상기 제어 모듈은, 상기 가상 드라이브 내의 파일의 저장이 요청되는 경우, 상기 비밀분산 모듈로 하여금, 상기 저장될 파일의 파일 이미지를, 외부 저장장치인 제1 저장장치에 기록되는 제1 분산 파일 및 상기 제1 저장장치와 다른 제2 저장장치에 기록되는 제2 분산 파일을 포함하는 복수의 분산 파일로 분산하고, 상기 정보처리장치의 메모리 상에 적어도 상기 제1 분산파일을 저장하며; 상기 가상 드라이브를 마운트 해제하기 위한 요청이 감지되면, 상기 제1 분산 파일을 상기 제1 저장장치에 기록하고, 상기 가상 드라이브를 마운트 해제하도록 더 구성된다. 또한, 대응하는 비밀관리방법 및 정보처리시스템 또한 제공된다.

Description

컴퓨터 프로그램, 비밀관리방법 및 시스템{COMPUTER PROGRAMS, SECRET MANAGEMENT METHODS AND SYSTEMS}
본 발명은 컴퓨터 프로그램, 비밀관리방법 및 시스템에 관한 것이다. 본 출원은 2016년 01월 13일에 출원된 일본 특허출원 JP 2016-004818, 및 2016년 6월 14일에 출원된 일본 특허출원 JP 2016-117998의 우선권을 주장하며, 그 전체 내용들이 여기에 참조로서 포함된다.
최근 몇 년 동안, 기업, 공공기관, 교육기관, 또는 다른 조직에 의해 관리되는 정보의 빈번한 유출이 발생해왔다. 그 이유들 중 하나는, 정보통신기술의 발달이 정보를 쉽게 접근하게 만들고 정보 이식성(portability)을 증가시킨 사실에도 불구하고, 정보에 대한 불법 접근을 막거나, 부주의한 정보 유출로부터 사용자들을 방지하는 충분한 메커니즘이 없었기 때문이다. 기업과 같은 조직뿐만 아니라, 개인들 또한 정보 유출의 위험에 노출된다.
보안 위험으로부터 정보를 보호하는 가장 유명한 기술은 패스워드를 사용한 암호화이다. 그러나, 단순히 정보를 암호화하는 것은 패스워드 또는 암호키를 크랙(crack)하거나 소셜 해킹(social hacking)함으로써 야기되는 정보 유출의 위험을 제거할 수 없다. 또한, 모든 최종 사용자들이 자신들의 패스워드를 엄격히 관리할 것을 기대하는 것은 현실적이지 않다. 따라서, 최근 몇 년 동안, (정보공유법(secret sharing method)으로도 불리는) 비밀분산법(secret splitting method)이 관심을 끌어왔다. 비밀분산법에 따르면, 특정한 개수 이상의 조각들이 함께 합쳐지지 않는 경우 원래의 정보를 복구하기 불가능하도록, 정보가 복수의 조각(fragment)들로 분산된다.
일본 특허출원 JP 2008-139996A는 정보 유출을 방지하기 위해 비밀분산법을 사용하는 시스템을 제안한다. 일본 특허출원 JP 2008-139996A에 의해 제안된 상기 정보 유출 방지 시스템은 정보 단말기에서 사용되는 실행파일, 드라이버, 및 어플리케이션(AP)의 데이터로부터 가상 어플리케이션 이미지 파일을 생성하고, 상기 가상 AP 이미지 파일을 2 이상의 공유 파일들로 분산(split)시킨다. 공유 파일들 중 하나는 상기 정보 단말기와는 다른 모바일 단말기에 저장된다. 상기 정보 단말기에 저장된 공유 파일은 상기 정보 단말기가 분실 또는 도난되었음을 관리 서버가 알리는 경우에 상기 관리 서버로부터의 명령어에 반응하여 삭제될 수 있다.
그러나, 일본 특허출원 JP 2008-139996A에 의해 제안된 시스템은 하나 이상의 어플리케이션에 관련된 모든 파일들 및 데이터를 포함하는 가상 AP 이미지 파일마다 비밀분산법을 적용한다. 상기 가상 AP 이미지 파일은 정보 단말기의 셧다운(shutdown)에 의해 트리거되어 복수의 공유 파일들로 분산된다. 상기 셧다운에 의해 트리거되는 이 비밀분산이 완료될 때까지는 어떠한 파일 또는 데이터도 보호되지 않는다. 복수의 공유 파일들로 분산된 상기 가상 AP 이미지 파일은 상기 정보 단말기 상의 전용 어플리케이션을 활성화시키는 사용자에 의해 복구되고, 보조저장장치 내에 다시 저장된다. 예를 들어, 상기 사용자가 알아차리기 전에 악의적인 제3자가 불법적으로 상기 정보 단말기 내에 침입하는 경우, 가상 AP 이미지 파일의 비밀 정보는 비교적 쉽게 독출될 수 있다. 상기 정보 단말기가 셧다운 되기 전에 도난된 경우, 비밀 정보가 유출되는 것은 피할 수 없을 것이다. 일본 특허출원 JP 2008-139996A에 의해 제안된 시스템에서는, 가상 AP 이미지 파일(들)에 의해 더 많은 어플리케이션들이 커버될수록 더 많은 정보들이 보호된다. 그러나, 가상 AP 이미지 파일(들)에 의해 커버되는 어플리케이션들의 증가는, 비밀분산 프로세스의 지연을 증가시키고, 사용성(usability)을 감소시킨다. 가상 AP 이미지 파일(들)에 의해 커버되지 않는 어플리케이션들 상의 정보는 보호되지 않는다.
본 발명에 따른 기술은 기존 기술에서의 상술한 결함의 하나 이상을 제거하거나 적어도 완화시키는 메커니즘을 제공한다.
본 발명의 일 측면에 따르면, 정보처리장치의 프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금, 비밀분산법을 사용하여 비밀 데이터를 분산시킴으로써 복수의 분산 데이터 조각들을 형성하도록 구성되는 비밀분산 모듈; 및 상기 복수의 분산 데이터 조각들의 각 조각을, 대응하는 저장장치의 데이터 영역으로부터 또는 데이터 영역으로 독출 또는 기록하는 것을 제어하도록 구성되는 제어 모듈로서 기능하게 하며, 상기 제어 모듈은 상기 정보처리장치에 설정 등록되어있는 가상 드라이브 내에 상기 비밀 데이터를 유지하도록 더 구성되고, 상기 제어 모듈은, 상기 가상 드라이브 내의 파일의 저장이 요청되는 경우, 상기 비밀분산 모듈로 하여금, 상기 저장될 파일의 파일 이미지를, 외부 저장장치인 제1 저장장치에 기록되는 제1 분산 파일 및 상기 제1 저장장치와 다른 제2 저장장치에 기록되는 제2 분산 파일을 포함하는 복수의 분산 파일로 분산하고, 상기 정보처리장치의 메모리 상에 적어도 상기 제1 분산파일을 저장하며; 상기 가상 드라이브를 마운트 해제하기 위한 요청이 감지되면, 상기 제1 분산 파일을 상기 제1 저장장치에 기록하고, 상기 가상 드라이브를 마운트 해제하도록 더 구성되는, 컴퓨터프로그램이 저장된 저장매체를 제공한다.
상기 제어모듈은, 상기 정보처리장치로부터 상기 제1 저장장치의 연결 해제가 감지될 때, 상기 가상 드라이브는 마운트 해제되지만 상기 제1 분산 파일은 상기 메모리 상에 보존되도록 더 구성될 수 있다.
상기 제어모듈은, 상기 연결 해제로부터 경과된 시간이 미리 정의된 시간 주기를 초과하는 경우, 상기 메모리 상에 있는 제1 분산 파일을 삭제하도록 더 구성될 수 있다.
상기 제1 저장장치는 상기 정보처리장치에 무선으로 연결된 외부 저장장치일 수 있다.
상기 제2 저장장치는 상기 정보처리장치의 보조저장장치이고; 상기 제어모듈은, 상기 가상 드라이브 내 파일의 저장이 요청될 때, 상기 제2 분산파일을 상기 제2 저장장치에 기록하도록 더 구성될 수 있다.
상기 제어모듈은, 상기 가상 드라이브 내 파일의 저장이 요청될 때, 상기 제2 분산파일을 상기 정보처리장치의 메모리 상에 기록하고; 상기 가상 드라이브를 마운트 해제하기 위한 요청이 감지되면, 상기 제2 분산파일을 상기 제2 저장장치에 기록하도록 더 구성될 수 있다.
또한, 본 발명의 다른 측면에 따르면, 비밀분산법을 사용하여 정보처리장치에서 수행되는 비밀관리방법을 제공한다.
상기 비밀관리방법은, 상기 비밀분산법은 비밀 데이터를 분산하여 복수의 분산 데이터 조각들을 형성할 수 있고, 상기 비밀관리방법은, 상기 정보처리장치에 설정 등록되어있는 가상 드라이브를 생성하고, 상기 비밀 데이터를 상기 가상 드라이브 내에 유지하고; 상기 가상 드라이브 내의 파일의 저장이 요청되는 경우, 상기 비밀분산법을 사용하여, 상기 저장될 파일의 파일 이미지를, 외부 저장장치인 제1 저장장치에 기록되는 제1 분산 파일 및 상기 제1 저장장치와 다른 제2 저장장치에 기록되는 제2 분산 파일을 포함하는 복수의 분산 파일로 분산하고, 상기 정보처리장치의 메모리 상에 적어도 제1 분산파일을 저장하며; 상기 가상 드라이브를 마운트 해제하기 위한 요청이 감지되면, 상기 제1 분산 파일을 상기 제1 저장장치에 기록하고, 상기 가상 드라이브를 마운트 해제하도록 구성될 수 있다.
또한, 본 발명의 또 다른 측면에 따르면, 정보처리시스템을 제공한다.
상기 정보처리시스템은, 비밀분산법을 사용하여 비밀 데이터를 분산시킴으로써 복수의 분산 데이터 조각들을 형성하도록 구성되는 비밀분산 모듈; 및 상기 복수의 분산 데이터 조각들의 각 조각을, 대응하는 저장장치의 데이터 영역으로부터 또는 데이터 영역으로 독출 또는 기록하는 것을 제어하도록 구성되는 제어 모듈을 포함하고, 상기 제어 모듈은 상기 비밀 데이터를 정보처리장치에 설정 등록되어있는 가상 드라이브 내에 유지하도록 더 구성되고, 상기 제어 모듈은, 상기 가상 드라이브 내의 파일의 저장이 요청되는 경우, 상기 비밀분산 모듈로 하여금, 상기 저장될 파일의 파일 이미지를, 외부 저장장치인 제1 저장장치에 기록되는 제1 분산 파일 및 상기 제1 저장장치와 다른 제2 저장장치에 기록되는 제2 분산 파일을 포함하는 복수의 분산 파일로 분산하고, 상기 정보처리장치의 메모리 상에 적어도 제1 분산파일을 저장하며; 상기 가상 드라이브를 마운트 해제하기 위한 요청이 감지되면, 상기 제1 분산 파일을 상기 제1 저장장치에 기록하고, 상기 가상 드라이브를 마운트 해제하도록 더 구성될 수 있다.
여기 설명된 실시예에 따르면, 사용자가 비밀 데이터를 다루는 공간을 제공하는 가상 드라이브가 비밀분산법에 의해 보호된다. 즉, 작업공간으로서 가상 드라이브를 사용하여 작업이 실행되는 이상, 상기 작업의 시작 때부터 데이터가 보호된다.
여기 설명된 실시예에 따르면, 가상 드라이브 내의 데이터는 임의의 타입의 어플리케이션에 의해 처리될 수 있다. 가상 드라이브 내의 메타 데이터 및 파일은 별도로 처리될 수 있어, 프로세스에 약간의 지연만 야기할 수 있다.
여기 설명된 실시예에 따르면, 사용자는 외부 저장장치를 정보처리장치에 연결하는 직관적인 동작을 통해 가상 드라이브를 사용하게 된다. 일단 가상 드라이브가 생성되면, 그 다음에는 사용자는 전형적인 정보 단말기 상의 데이터 영역에서 일반적인 작업을 수행하는 것과 같이, 가상 드라이브 내에서 비밀 데이터를 처리할 수 있다. 또한, 사용자는 작업을 끝마친 후 정보처리장치로부터 외부 저장장치를 단순히 연결 해제함으로써 제3자가 비밀 데이터에 접근할 수 없게 할 수 있다.
도 1a는 본 발명에 따른 기술이 적용될 수 있는 시스템의 개요를 도시한다.
도 1b는 본 발명에 따른 기술이 적용될 수 있는 시스템의 제1 응용예를 도시한다.
도 1c는 본 발명에 따른 기술이 적용될 수 있는 시스템의 제2 응용예를 도시한다.
도 2는 일 실시예에 따른 정보처리장치의 하드웨어 구성의 예를 도시한다.
도 3은 보조저장장치 및 외부 저장장치에 저장될 수 있는 데이터 구성의 예를 도시한다.
도 4는 일 실시예에 따른 정보처리장치의 논리적 기능 구성의 예를 도시한다.
도 5는 가상 드라이브를 새로 생성하기 위한 가상 드라이브 생성 프로세스의 흐름예를 도시하는 순서도이다.
도 6은 비밀분산법을 사용하여 파일을 분산하기 위한 파일 분산 프로세스의 흐름예를 도시하는 순서도이다.
도 7은 가상 드라이브를 복구하기 위한 가상 드라이브 복구 프로세스의 흐름예를 도시하는 순서도이다.
도 8은 복구된 가상 드라이브의 개략적인 데이터 구성의 예를 도시한다.
도 9는 비밀분산법을 사용하여 파일을 복구하기 위한 파일 복구 프로세스의 흐름예를 도시한 순서도이다.
도 10은 비밀분산법을 사용하여 파일을 분산하기 위한 파일 분산 프로세스의 흐름의 제1 변형을 도시한 순서도이다.
도 11은 비밀분산법을 사용하여 파일을 분산하기 위한 파일 분산 프로세스의 흐름의 제2 변형을 도시한 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예(들)이 상세히 설명될 것이다. 본 명세서 및 첨부된 도면에서, 실질적으로 동일한 기능 및 구조를 가진 구조적 요소들은 동일한 도면부호로 표시되며, 이러한 구조적 요소들의 반복된 설명은 생략된다.
이하 설명은 다음의 순서로 이루어진다:
1. 시스템 개요
(1) 시스템 구성예
(2) 용어의 정의
2. 장치 구성
(1) 하드웨어 구성예
(2) 데이터 구성예
(3) 기능적 구성예
3. 프로세스의 흐름
(1) 가상 드라이브 생성
(2) 파일 분산
(3) 가상 드라이브 복구
(4) 파일 복구
4. 결론
5. 변형
(1) 파일 분산 - 제1 변형
(2) 파일 분산 - 제2 변형
(3) 다른 변형들
<1. 시스템 개요>
(1) 시스템 구성예
도 1a는 본 발명에 따른 기술이 적용될 수 있는 시스템의 개요를 도시한다. 도 1a를 참조하면, 비밀정보 관리시스템(1)은 정보처리장치(100) 및 외부 저장장치(400)를 포함한다.
정보처리장치(100)는 노트북 개인 컴퓨터(personal computer, PC), 태블릿 PC, 데스크톱 PC, 스마트폰, 휴대폰, 네비게이션 단말기, 또는 PDA(personal digital assistant)와 같은 임의의 타입의 정보 단말기 또는 전자장치일 수 있다. 사용자는 정보처리장치(100) 상에서 다양한 형태로 데이터를 처리할 수 있다. 정보처리장치(100) 상에서 처리되는 데이터는 정보처리장치(100)의 사용자 또는 관리자가 비밀로 유지하기를 바라는(그러므로, 비밀 데이터로 불리는) 데이터를 포함한다. 비밀 데이터는 텍스트, 문서, 통신 메시지, 이미지, 비디오, 오디오, 설정 데이터, 또는 실행 가능한 파일과 같은 임의의 포맷의 데이터일 수 있다. 정보처리장치(100)는 메인 메모리 및 보조저장장치를 포함한다. 상기 메인 메모리는 대개 (랜덤 액세스 메모리(RAM)와 같은) 휘발성 메모리이다. 상기 보조저장장치는, 예를 들어, 비휘발성 저장매체를 포함하는 하드디스크 드라이브(hard disk drive, HDD) 또는 솔리드 스테이트 드라이브(solid state drive, SSD)일 수 있다.
외부 저장장치(400)는 정보처리장치(100)의 특정한 연결 인터페이스를 통해 정보처리장치(100)에 연결되는 저장장치이다. 외부 저장장치(400)는 비휘발성 저장매체를 포함한다. 외부 저장장치(400)는 주로 정보 저장을 목적으로 하는 USB 메모리, IC 카드, (SD 카드와 같은) 메모리 카드, 또는 외부 HDD와 같은 주변 장치일 수 있다. 또는, 외부 저장장치(400)는 PC나 스마트폰과 같이 정보처리장치(100)와 유사한 타입의 정보 단말기 또는 전자장치일 수 있다. 또한, 외부 저장장치(400)는 인터넷 또는 근거리 통신망(LAN)과 같은 네트워크를 통해 접근될 수 있는, 네트워크 연결 스토리지(network attached storage, NAS), 클라우드 서버, 또는 데이터 서버와 같은 네트워크 장치일 수도 있다. 외부 저장장치(400)는 정보처리장치(100)에 대해 유선 또는 무선 연결을 가질 수 있다. 정보처리장치(100)의 연결 인터페이스는 연결 단말, 연결 케이블을 수용하는 커넥터, 또는 안테나 및 라디오 주파수(RF) 프론트 엔드(front-end)와 같이 임의의 형태의 인터페이스일 수 있다.
이하 설명되는 몇몇 실시예에서, 본 발명에 따른 기술에 의해 보호되는 비밀 데이터는 비밀분산법을 사용하여 N개의 분산 데이터 조각들(N은 2 이상의 정수)로 분산된다. 이어서, 상기 N개의 분산 데이터 조각들의 적어도 하나는 외부 저장장치(400)에 기록된다. 비밀 데이터는 정보처리장치(100)에 생성된 가상 드라이브 내에서 생성되고, 조회되며, 갱신된다. 비밀 데이터는 비휘발성 메모리에 저장된 실제 파일로서 존재하는 것이 아니고, 휘발성 메모리(대개, 메인 메모리)에만 저장된 파일 이미지로서 유지된다. 상기 가상 드라이브는 외부 저장장치(400)가 정보처리장치(100)에 연결되는 상태에서 생성되고, 상기 가상 드라이브의 마운트 해제(unmount) 또는 외부 저장장치(400)의 연결 해제(disconnection)에 반응하여 사라진다. 일 예로, 상기 가상 드라이브를 생성하기 위한 가상 드라이브 메타 데이터(meta-data) 또한, 비밀분산법을 사용하여 복수의 조각들의 분산 메타 데이터로 분산되고, 이러한 분산 메타 데이터 조각들의 적어도 하나는 외부 저장장치(400)에 기록된다. 이는, 외부 저장장치(400)가 정보처리장치(100)에 연결되지 않는 경우에는 사용자가 비밀 데이터를 처리하는 공간을 제공하는 가상 드라이브가 생성되지 않고, 가상 드라이브 자체도 비밀분산법에 의해 보호되는 것을 의미한다. 예를 들어, 비밀분산법을 사용하여 비밀 데이터만을 분산하는 통상적인 기술은 처음 생성되어 아직 분산되지 않은 데이터를 보호하지 못한다. 만일 데이터가 생성되는 동안 사용자가 비밀분산 프로세스를 빈번히 실행해야 하는 경우, 그러한 동작은 사용자에게 문제가 된다. 반면에, 여기 설명된 실시예에 따르면, 사용자가 비밀 데이터를 다루는 공간을 제공하는 상기 가상 드라이브가 비밀분산법에 의해 보호된다. 즉, 작업공간으로서 가상 드라이브를 사용하여 작업이 실행되는 이상, 상기 작업의 시작 때부터 데이터가 보호된다.
또한, 드라이버, 데이터 및 어플리케이션의 실행파일을 단일한 이미지로서 포함하는 포괄적인 데이터 셋트를 분산하는 통상적인 기술은 어플리케이션이 처리될 때마다 암호화 및 복호화될 대규모 이미지 데이터를 필요로 하며, 이는 프로세스의 상당한 지연을 야기한다. 이미지 데이터의 크기를 줄이기 위해서는, 보호될 어플리케이션들이 감소되어야 한다. 반면에, 여기 설명된 실시예에 따르면, 가상 드라이브 내의 데이터는 임의의 타입의 어플리케이션에 의해 처리될 수 있다. 가상 드라이브 내의 메타 데이터 및 파일은 별도로 처리될 수 있어, 프로세스에 약간의 지연만 야기할 수 있다.
또한, 비밀분산법을 사용하여 특수한 어플리케이션에 관련된 데이터만을 분산하거나 특수한 타입의 데이터만을 분산하는 기술은 보호될 타깃을 사용자 또는 시스템 관리자가 미리 적절하게 설정할 것을 요구한다. 그러한 보호 타깃이 부적절하게 설정되거나 어떠한 보호 타깃도 설정되지 않는 경우에는, 보호되어야 할 비밀 데이터가 유출될 위험에 놓일 것이다. 실제로, 사용자들은 종종 패스워드를 설정하거나 갱신하는 것과 같이 매우 쉬운 작업을 수행하는 것도 꺼려하고, 그러므로 보안 목적을 위해 사용자들에게 맡겨지는 부담은 가능하면 가벼운 것이 바람직하다. 이런 면에서, 여기 설명된 실시예에 따르면, 사용자는 외부 저장장치(400)를 정보처리장치(100)에 연결하는 직관적인 동작을 통해 가상 드라이브를 사용하게 된다. 일단 가상 드라이브가 생성되면, 그 다음에는 사용자는 전형적인 정보 단말기 상의 데이터 영역에서 일반적인 작업을 수행하는 것과 같이, 가상 드라이브 내에서 비밀 데이터를 처리할 수 있다. 또한, 사용자는 작업을 끝마친 후 정보처리장치(100)로부터 외부 저장장치(400)를 단순히 연결 해제함으로써 제3자가 비밀 데이터에 접근할 수 없게 할 수 있다. 이는, 정보 단말기를 셧다운함으로써 비밀분산 프로세스를 실행하고 디스크 상의 비밀 데이터를 삭제하도록 트리거하는 통상적인 기술과 대조되는데, 상기 통상적인 기술은 정보 단말기 상의 불법 침입이나 정보 단말기의 도난(사후에 원격으로 데이터를 삭제하는 것은 정보 유출을 방지하기에 너무 늦을 수 있다)에 의해 야기되는 정보 유출의 위험을 충분히 제거할 수 없기 때문이다.
도 1b는 본 발명에 따른 기술이 적용될 수 있는 시스템의 제1 응용예를 도시한다. 도 1a의 예에서 비밀정보 관리시스템(1)이 단지 하나의 외부 저장장치(400)를 포함하는 반면, 도 1b에 도시된 제1 응용예의 비밀정보 관리시스템(1A)은 정보처리장치(100a)와 함께 2개의 외부 저장장치들(400a 및 400b)을 포함한다. 예를 들어, 외부 저장장치(400a)는 정보처리장치(100a)에 직접 연결될 수 있는 USB 메모리이다. 외부 저장장치(400b)는 무선 통신 인터페이스를 통해 정보처리장치(100a)에 연결될 수 있는 데이터 서버이다. 비밀분산법을 사용하여 정보처리장치(100a)에 의해 비밀 데이터로부터 분산된 데이터 조각들의 적어도 하나는 외부 저장장치(400a)에 기록될 수 있다. 상기 분산 데이터 조각들의 적어도 또 다른 하나는 외부 저장장치(400b)에 기록될 수 있다. 정보처리장치(100a)의 보조저장장치는 분산된 데이터 조각들의 하나 이상을 저장하거나, 또는 분산된 데이터 조각들을 전혀 저장하지 않을 수도 있다.
도 1c는 본 발명에 따른 기술이 적용될 수 있는 시스템의 제2 응용예를 도시한다. 도 1c에 도시된 제2 응용예의 비밀정보 관리시스템(1b)은 정보처리장치(100b)와 함께 2개의 외부 저장장치(400a 및 400c)를 포함한다. 외부 저장장치(400c)는 사용자에 의해 운반되거나 착용될 수 있는 단말 장치이다. 비밀분산법을 사용하여 정보처리장치(100b)에 의해 비밀 데이터로부터 분산된 데이터 조각들의 적어도 하나는 외부 저장장치(400a)에 기록될 수 있다. 분산된 데이터 조각들의 적어도 또 다른 하나는 외부 저장장치(400c)에 기록될 수 있다. 정보처리장치(100b)의 보조저장장치는 분산된 데이터 조각들의 하나 이상을 저장하거나, 또는 분산된 데이터 조각들을 전혀 저장하지 않을 수도 있다.
이러한 응용예들로부터 이해되는 바와 같이, 비밀 데이터는 본 발명에 따른 기술에서 비밀분산법을 사용하여 임의의 개수의 분산 데이터 조각들로 분산될 수 있다. 이러한 분산된 데이터 조각들은 물리적으로 상이한 적어도 2개의 저장장치들에 기록되며, 상기 저장장치들은 임의의 연결 형태로 연결 가능한 임의의 타입의 장치를 포함할 수 있다. 이후 상술되지만, 상기 정보처리장치에서 실행되는 컴퓨터 프로그램은 반드시 정보처리장치의 내장 매체(비일시적인 컴퓨터 독출가능 매체)에 미리 저장될 필요가 없다. 예를 들어, 그러한 컴퓨터 프로그램은 실행 시에 외부 저장장치(400b)와 같은 외부 서버로부터 다운로드 또는 호출될 수 있다.
비밀정보 관리시스템들(1, 1A 및 1B)은 여기에서 도면부호 끝의 알파벳이 생략되어 비밀정보 관리시스템(1)으로 총칭될 것이다. 비슷하게, 정보처리장치들(100, 100a 및 100b)은 정보처리장치(100)로 총칭되고, 외부 저장장치들(400, 400a, 400b 및 400c)은 외부 저장장치(400)로 총칭될 것이다. 이하의 여러 예들에서, 간결성을 위해 비밀 데이터는 비밀분산법을 사용하여 2개의 분산 데이터 조각들로 분산되는 것을 가정하여 설명될 것이다. 그러나, 이는 본 발명에 따른 기술의 범위를 제한하지 않는다.
(2) 용어의 의미
이하 여기에 사용된 주요 용어들의 전형적인 의미를 설명한다.
a) 비밀분산법(비밀공유법으로도 지칭됨)
비밀분산법은 비밀로 유지되길 원하는 정보를 특정한 기법(scheme)으로 변환하고, 상기 변환된 정보를 복수의 조각들(fragments)(공유분(shares)으로도 지칭됨)으로 분산하는 기술이다. 정보 변환 기법을 적절히 선택하는 것은 개별 조각들로부터 원시 정보를 추론해낼 가능성을 제거한다. 상기 원시 정보를 복구하는 것은 미리 설정된 수 이상의 조각들을 조합하는 것을 필요로 하며, 그러므로 이러한 조각들을 물리적으로 상이한 장치들에 저장하는 것은 보안 위험, 예를 들어, 장치들 중 하나가 분실 또는 도난되는 경우에 대해 보호를 제공할 것이다. 정보를 복수의 조각들로 분산하기 전의 변환과, 상기 복수의 조각들이 조합된 후의 역변환은 각각, 암호화 및 복호화 라고도 지칭된다. 비밀분산을 위해 사용되는 유명한 정보 변환 기법들 중 하나는, 1997년에 R. Rivest에 의해 제안된 All Or Nothing Transform(AONT) 기법이다. AONT 기법은 AONT-암호 블록 체인(cipher block chaining, CBC) 기법 및 AONT-최적 비대칭 암호화 패딩(optimal asymmetric encryption padding, OAEP) 기법과 같은 파생 기법들을 가진다. 예를 들어, AONT-CBC 기법은 작은 블록 단위마다의 빠른 암호화에 적절하다. AONT 기법은 후술되는 실시예들에서 사용될 수 있다. AONT 기법은 변환 전후에 정보의 양을 크게 변화시키지 않는 점에서 정보 단말기의 정보를 처리하는 데에 매우 적절하다. 그러나, 본 발명에 따른 기술은 임계치(threshold) 기법과 같은 다른 정보 변환 기법들에도 적용될 수 있다.
b) 분산 데이터
분산 데이터는 비밀분산법을 사용하여 비밀 데이터를 분산함으로써 형성된 개별적인 데이터 조각이다. 전술한 바와 같이, 비밀 데이터는 텍스트, 문서, 통신 메시지, 이미지, 비디오, 오디오, 설정 데이터, 또는 실행 가능 파일과 같이 임의의 포맷의 데이터일 수 있다.
c) 가상 드라이브
가상 드라이브는 물리적 개체(entity)로서 존재하지는 않지만 사용자 또는 어플리케이션에 대해서는 존재하는 것으로 나타나는 가상화된 저장영역(드라이브)이다. 후술되는 실시예들에서, 비밀 데이터는 가상 드라이브 내에 유지된다.
d) 파일 이미지
파일 이미지는 가상 드라이브 내에서의 비밀 데이터의 표현이다. "파일 이미지"라는 용어는 예를 들어, 보조저장장치 상에 저장될 수 있는 일반적인(normal) 파일로부터의 파일 이미지와 구별하기 위해 사용된다. 일단 파일 이미지가 비밀분산법을 사용하여 분산되면, 분산 파일들이 형성된다. 본 발명에 따른 기술은, 비밀분산법이 적용되는 파일 이미지들로서, 사용자 또는 어플리케이션에 의해 처리되는 일반적인 파일들뿐만 아니라 (드라이브 내의 계층적 폴더 구조를 정의하는 제어 파일들과 같이) 시스템에 의해 내부적으로(implicitly) 처리되는 제어 파일들 또한 처리(handle)할 수 있다.
e) 가상 드라이브 메타 데이터(meta-data)
가상 드라이브 메타 데이터는 가상 드라이브가 생성될 때 사용되는 메타 데이터이다. 일 예로, 가상 드라이브 메타 데이터는 생성될 가상 드라이브의 드라이브 이름 및 드라이브 크기(용량)를 포함한다. 가상 드라이브의 드라이브 이름은 사용자 또는 어플리케이션이 예를 들어, 가상 드라이브 내의 파일에 접근하는 경우에 사용되는 파일 경로의 일부일 것이다. 드라이브 이름은, 예를 들어, 윈도우즈(등록상표) OS의 드라이브 문자일 수 있다. 가상 드라이브 메타 데이터는 가상 드라이브의 생성 일자 및 시간, 가상 드라이브의 갱신 일자 및 시간, 및 가상 드라이브의 사용 영역의 크기와 같은 다른 데이터를 더 포함할 수 있다. 분산 메타 데이터는 비밀분산법을 사용하여 가상 드라이브 메타 데이터를 분산함으로써 형성되는 데이터이다.
f) 파일 메타 데이터
파일 메타 데이터는 개별 파일의 속성을 지시하는 메타 데이터이다. 일 예로, 파일 메타 데이터는 파일 이름, 파일 경로, 생성 일자 및 시간, 갱신 일자 및 시간, 그리고 파일 크기를 포함한다. 분산 파일 메타 데이터는 비밀분산법을 사용하여 파일 메타 데이터를 분산함으로써 형성되는 데이터이다. 후술되는 몇몇 실시예에서, 파일 이미지가 복구되지 않더라도, 예를 들어, 분산 파일 메타 데이터로부터 파일 메타 데이터를 복구함으로써 파일 시스템을 통해 화면 상에 가상 드라이브 내의 파일에 관련된 지시(indication)를 표시하는 것이 허용된다.
g) 분산 드라이브
분산 드라이브는 분산 파일, 분산 메타 데이터, 분산 파일 메타 데이터 등을 포함할 수 있는 분산 데이터가 기록되는 실제 드라이브(또는 실제 드라이브의 데이터 영역)이다. 분산 드라이브의 저장영역은 적어도 메타 데이터 영역 및 파일 데이터 영역으로 구성될 수 있다. 분산 메타 데이터 및 분산 파일 메타 데이터는 메타 데이터 영역에 기록된다. 분산 파일은 파일 데이터 영역에 기록된다. 각각의 분산 드라이브에는 각 분산 드라이버를 유일하게 식별하기 위한 분산 드라이브 식별자가 할당된다. 예를 들어, 분산 드라이브 식별자는 대응하는 분산 드라이브들(동일한 비밀 데이터로부터 분산된 분산 데이터 조각들이 기록되는 드라이브들) 간에 공유되는 공통 문자열과, 각각의 이러한 분산 드라이브들을 구별하기 위한 접미 번호(suffix number)를 붙임(concatenate)으로써 얻어질 수 있다. 이러한 식별자들은 예를 들어, 분산 드라이브들 간의 대응을 검증하는 데에 사용될 수 있다.
<2. 장치 구성>
(1) 하드웨어 구성예
도 2는 일 실시예에 따른 정보처리장치의 하드웨어 구성예를 도시한다. 도 2를 참조하면, 정보처리장치(100)는 프로세서(101), 메인 메모리(102), 디스플레이(103), 입력 인터페이스(104), 보조저장장치(105), 및 하나 이상의 연결 인터페이스(106)를 포함한다. 프로세서(101)는 예를 들어, 중앙처리장치(central processing unit, CPU) 또는 마이크로 처리장치(micro processing unit, MPU)일 수 있다. 프로세서(101)는 예를 들어, 보조저장장치(105) 또는 임의의 다른 저장매체에 저장된 컴퓨터 프로그램을 실행함으로써, 비밀정보 관리시스템(1) 또는 정보처리장치(100)의 전체적인 동작을 제어한다. 메인 메모리(102)는 RAM과 같은 휘발성 메모리일 수 있다. 디스플레이(103)는 예를 들어, 액정 디스플레이(liquid crystal display, LCD) 또는 유기발광다이오드(organic light-emitting diode, OLED) 디스플레이일 수 있다. 입력 인터페이스(104)는 예를 들어, 터치 패널, 키패드, 키보드, 포인팅(pointing) 장치 등을 포함할 수 있고, 사용자 입력을 수신하도록 구성된다. 보조저장장치(105)는 예를 들어, HDD 또는 SSD일 수 있다. 일 예로, 보조저장장치(105)는 분산 데이터가 기록되는 분산 드라이브로서 사용될 수 있다. 연결 인터페이스(106)는 그에 연결되는 외부 저장장치(400)의 타입에 따라 예를 들어, USB 인터페이스, IC 카드 인터페이스, 메모리 카드 인터페이스, 유선 LAN 인터페이스, 무선 LAN 인터페이스, 또는 셀룰러 통신 인터페이스를 포함할 수 있다.
(2) 데이터 구성예
도 3은 보조저장장치(105) 및 외부 저장장치(400)에 저장될 수 있는 데이터의 구성예를 도시한다.
도 3을 참조하면, 보조저장장치(105)는 제어 모듈 프로그램(50) 및 비밀분산 모듈 프로그램(60)을 저장한다. 제어 모듈 프로그램(50) 및 비밀분산 모듈 프로그램(60)은 정보처리장치(100)의 프로세서(101)로 하여금 각각, 제어 모듈(10) 및 비밀분산 모듈(30)(도 4를 참조)로서 기능하게 하는 명령어들의 집합을 포함한다. 제어 모듈(10)은 비밀분산 모듈(30)에 의해 형성된 복수의 분산 데이터 조각들의 각 조각을 대응하는 저장장치의 데이터 영역으로부터 및/또는 데이터 영역으로 독출 및/또는 기록하는 것을 제어하는 모듈이다. 비밀분산 모듈(30)은 비밀분산법을 사용하여 비밀 데이터를 분산시킴으로써 복수의 분산 데이터 조각들을 형성하고, 제어 모듈(10)의 제어 하에 상기 복수의 분산 데이터 조각들 중 적어도 2개의 분산 데이터 조각들을 조합하여 원시 데이터를 복구하기 위한 모듈이다.
기본 설정 정보(75)는 외부 저장장치(400)의 미리 정의된 저장영역에 저장된다. 기본 설정 정보(75)는 예를 들어, 분산 드라이브들의 개수 N, N개의 분산 드라이브 경로들, 및 비밀분산(비밀공유) 알고리즘의 버전을 포함할 수 있다. 분산 드라이브들의 수가 고정된 경우(예컨대, 비밀 데이터가 항상 2개의 분산 데이터 조각들로 분산되는 경우), 분산 드라이브들의 개수 N은 생략될 수 있다. 예를 들어, N이 2인 경우, 제1 분산 드라이브 경로는 제어 모듈(10)이 제1 분산 드라이브(70a)에 접근하는 경로를 지시하고, 제2 분산 드라이브 경로는 제어 모듈(10)이 제2 분산 드라이브(70b)에 접근하는 경로를 지시한다.
외부 저장장치(400)는 제1 분산 드라이브(70a)를 더 포함한다. 보조저장장치(105)는 제2 분산 드라이브(70b)를 더 포함한다. 외부 저장장치(400)의 제1 분산 드라이브(70a)는 제1 분산 드라이브 식별자(71a), 제1 분산 메타 데이터(80a), 제1 분산 파일 메타 데이터(90a), 및 제1 분산 파일(91a)을 저장한다. 보조저장장치(105)의 제2 분산 드라이브(70b)는 제2 분산 드라이브 식별자(71b), 제2 분산 메타 데이터(80b), 제2 분산 파일 메타 데이터(90b) 및 제2 분산 파일(91b)을 저장한다.
제1 분산 드라이브 식별자(71a)는 복수의 분산 드라이브들 중 제1 분산 드라이브(70a)를 유일하게 식별시킨다. 제2 분산 드라이브 식별자(71b)는 복수의 분산 드라이브들 중 제2 분산 드라이브(70b)를 유일하게 식별시킨다. 제1 분산 메타 데이터(80a) 및 제2 분산 메타 데이터(80b)는 가상 드라이브를 생성하기 위한 가상 드라이브 메타 데이터를, 비밀분산법을 사용하여 분산함으로써 형성된 분산 데이터이다.
가상 드라이브 내에서 보호될 파일이 생성되고 저장되도록 요청되는 경우, 제1 분산 파일 메타 데이터(90a) 및 제2 분산 파일 메타 데이터(90b)와, 제1 분산 파일(91a) 및 제2 분산 파일(91b)은 각각의 분산 드라이브 내에 저장될 수 있다. 제1 분산 파일 메타 데이터(90a) 및 제2 분산 파일 메타 데이터(90b)는 가상 드라이브 내 파일의 파일 메타 데이터를, 비밀분산법을 사용하여 분산함으로써 형성되는 분산 데이터이다. 제1 분산 파일(91a) 및 제2 분산 파일(91b)은 비밀분산법을 사용하여 가상 드라이브 내 파일의 파일 이미지를 분산함으로써 형성되는 분산 데이터이다. 비록 도 3은 분산 파일 메타 데이터 및 분산 파일의 한 셋트만을 도시하지만, 실제로는 가상 드라이브 내의 파일들에 대응하는 여러 셋트의 분산 파일 메타 데이터 및 분산 파일들이 저장될 수 있다.
(3) 기능 구성예
도 4는 일 실시예에 따른 정보처리장치(100)의 논리적 기능 구성의 일 예를 도시한다. 본 발명에 따른 기술에 직접 관련되지 않은 기능들은 도 4에 도시되지 않음을 주목해야 한다. 도 4를 참조하면, 정보처리장치(100)는 파일 시스템(40) 및 사용자 인터페이스(user interface, UI) 모듈(45)뿐만 아니라, 전술한 제어 모듈(10) 및 비밀분산 모듈(30)을 포함한다.
제어 모듈(10)은 드라이브 설정 기능(11), 가상 드라이브 메타 데이터 분산 기능(12), 분산 드라이브 협조 기능(13), 이벤트 감시 기능(14), 가상 드라이브 메타 데이터 복구 기능(15), 가상 드라이브 관리 기능(16), 파일 분산 기능(17), 및 파일 복구 기능(18)을 가진다.
드라이브 설정 기능(11)은 생성될 가상 드라이브의 설정 데이터를 획득하고, 가상 드라이브 메타 데이터를 생성하기 위한 기능이다. 드라이브 설정 기능(11)은 UI 모듈(45)로 하여금 예를 들어, 디스플레이(103)의 화면에 반응형 GUI 를 표시하게 하고, 입력 인터페이스(104)를 사용하여 사용자 또는 시스템 관리자에 의해 입력되는 설정 데이터를 획득하게 할 수 있다. 또는, 드라이브 설정 기능(11)은 다른 장치에 의해 생성된 설정 데이터 파일을 외부의 데이터 서버로부터 미리 수신함으로써 설정 데이터를 획득할 수 있다. 비슷하게, 드라이브 설정 기능(11)은 기본 설정 정보(75) 및 분산 드라이브 식별자들(71a 및 71b)에 대한 설정 데이터를 획득할 수도 있다.
가상 드라이브 메타 데이터 분산 기능(12)은 비밀분산 모듈(30)로 하여금, 드라이브 설정 기능(11)에 의해 생성된 가상 드라이브 메타 데이터를 (분산 드라이브들의 개수 N 및 각 드라이브의 분산 크기와 같은) 분산 설정에 따라 적어도 제1 분산 메타 데이터(80a) 및 제2 분산 메타 데이터(80b)로 분산하게 한다.
분산 드라이브 협조 기능(13)은, 외부 저장장치(400)에 제1 분산 드라이브(70a)가 존재하지 않는 경우, 외부 저장장치(400)의 미리 정의된 저장영역에 기본 설정 정보(75)를 기록하고, 제1 분산 드라이브(70a)의 데이터 영역을 생성하며, 제1 분산 드라이브 식별자(71a)를 제1 분산 드라이브(70a)에 기록한다. 그 뒤, 분산 드라이브 협조 기능(13)은 가상 드라이브 메타 데이터로부터 분산된 제1 분산 메타 데이터(80a)를 제1 분산 드라이브(70a)에 기록한다. 보조저장장치(105)에 제2 분산 드라이브(70b)가 존재하지 않는 경우, 분산 드라이브 협조 기능(13)은 제2 분산 드라이브(70b)의 데이터 영역을 보조저장장치(105)에 생성하고, 제2 분산 드라이브 식별자(71b)를 제2 분산 드라이브(70b)에 기록한다. 그 뒤, 분산 드라이브 협조 기능(13)은 가상 드라이브 메타 데이터로부터 분산된 제2 분산 메타 데이터(80b)를 제2 분산 드라이브(70b)에 기록한다.
이벤트 감시 기능(14)은 파일 시스템(40), UI 모듈(45) 및 연결 인터페이스(106)에서 발생하는 이벤트들을 감시(monitor)하고 감지(detect)한다. 이벤트 감시 기능(14)에 의해 감지되는 이벤트들은 예를 들어, 다음을 포함할 수 있다:
- 파일 저장 요청;
- 가상 드라이브의 마운트 해제 요청;
- 외부 저장장치(400)의 정보처리장치(100)로의 연결;
- 외부 저장장치(400)의 정보처리장치(100)로부터의 연결 해제;
- 가상 드라이브의 활성화(즉, 개방);
- 가상 드라이브 내의 폴더의 활성화; 및
- 가상 드라이브 내의 파일의 활성화.
예를 들어, 편집된 문서 파일을 저장하도록 사용자가 문서 편집 프로그램에 명령하는 경우, 이벤트 감시 기능(14)은 파일 시스템(40)을 통해 상기 문서 편집 프로그램으로부터의 파일 저장 요청을 감지할 수 있다.
대응하는 저장장치에 분산 메타 데이터가 기록되고 외부 저장장치(400)가 정보처리장치(100)로부터 연결 해제된 이후, 가상 드라이브 메타 데이터 복구 기능(15)은 이벤트의 감지에 반응하여, 분산 드라이브 협조 기능(13)을 통해 제1 분산 드라이브(70a)로부터 제1 분산 메타 데이터(80a)를 독출한다. 또한, 가상 드라이브 메타 데이터 복구 기능(15)은 분산 드라이브 협조 기능(13)을 통해 제2 분산 드라이브(70b)로부터 대응하는 제2 분산 메타 데이터(80b)를 독출한다. 그 뒤, 가상 드라이브 메타 데이터 복구 기능(15)은 비밀분산 모듈(30)로 하여금 적어도 제1 분산 메타 데이터(80a) 및 제2 분산 메타 데이터(80b)로부터 가상 드라이브 메타 데이터를 복구하게 한다. 가상 드라이브 메타 데이터의 복구를 트리거하는 이벤트는 예를 들어, 상기 제1 분산 메타 데이터(80a)를 저장한 외부 저장장치(400)의 정보처리장치(100)로의 연결을 포함한다. 또는, 상기 가상 드라이브 메타 데이터는 가상 드라이브에 접근하도록 허가된 사용자의 성공적인 인증 이후에 복구될 수 있다.
가상 드라이브 메타 데이터 복구 기능(15)은 또한, 가상 드라이브 메타 데이터의 복구를 시작하기 전에, 분산 드라이브들 또는 분산 메타 데이터 조각들 간의 대응을 검증할 수 있다. 예를 들어, 가상 드라이브 메타 데이터 복구 기능(15)은 각각의 분산 드라이브들의 분산 드라이브 식별자들이 특정한 문자열을 포함하는지 여부 및/또는 생성 일자 및 시간이나 갱신 일자 및 시간과 같은 타임스탬프들이 서로 매치되는지 여부를 판단함으로써 전술한 대응을 검증할 수 있다. 상기 대응이 틀린 것으로 판단되는 경우, 가상 드라이브 메타 데이터 복구 기능(15)은 가상 드라이브 메타 데이터의 복구를 취소할 수 있다.
가상 드라이브 관리 기능(16)은 가상 드라이브 메타 데이터 복구 기능(15)에 의해 복구된 가상 드라이브 메타 데이터에 기초하여, 가상 드라이브를 생성한다. 가상 드라이브 관리 기능(16)은 예를 들어, 파일 시스템(40) 상에 가상 드라이브의 설정을 등록함으로써, 가상 드라이브를 생성할 수 있다. 일 예로, 가상 드라이브 관리 기능(16)은 가상 드라이브 내의 비밀 데이터를 휘발성 메모리(대개, 메인 메모리(102))에만 저장된 파일 이미지로서 유지한다. 여기서, 가상 드라이브 내의 비밀 데이터는 가상 드라이브 내에서 사용자에 의해 처리되는 임의의 타입의 데이터일 수 있다. 가상 드라이브 관리 기능(16)은 가상 드라이브를 마운트 해제하기 위한 요청이 감지되는 경우 상기 가상 드라이브를 비활성화시킨다. 정보처리장치(100)로부터 외부 저장장치(400)의 연결 해제가 감지되는 경우 또한, 가상 드라이브 관리 기능(16)은 상기 가상 드라이브를 비활성화시킨다. 가상 드라이브 관리 기능(16)은 예를 들어, 파일 시스템(40) 상에 등록된 가상 드라이브의 설정을 삭제함으로써, 가상 드라이브를 비활성화시킬 수 있다. 일단 가상 드라이브가 이런 식으로 비활성화되면, 사용자 또는 제3자는 가상 드라이브 내의 데이터에 접근할 수 없다.
파일 분산 기능(17)은, 가상 드라이브 내의 파일 저장이 요청되는 경우, 비밀분산 모듈(30)로 하여금 저장될 파일의 파일 이미지를 비밀분산법을 사용하여 적어도 제1 분산 파일(91a) 및 제2 분산 파일(91b)로 분산하게 한다. 제1 분산 파일(91a)은 분산 드라이브 협조 기능(13)에 의해 제1 분산 드라이브(70a)에 기록된다. 제2 분산 파일(91b)은 분산 드라이브 협조 기능(13)에 의해 제2 분산 드라이브(70b)에 기록된다. 또한, 파일 분산 기능(17)은 비밀분산 모듈(30)로 하여금, 저장될 파일의 파일 메타 데이터를 제1 분산 파일 메타 데이터(90a) 및 제2 분산 파일 메타 데이터(90b)로 분산하게 한다. 제1 분산 파일 메타 데이터(90a)는 분산 드라이브 협조 기능(13)에 의해 제1 분산 드라이브(70a)에 기록된다. 제2 분산 파일 메타 데이터(90b)는 분산 드라이브 협조 기능(13)에 의해 제2 분산 드라이브(70b)에 기록된다. 그러한 파일 메타 데이터는 UI 모듈(45)로 하여금 가상 드라이브 내의 파일에 관련된 지시(indication)를 화면 상에 표시하게 하는 데에 사용될 수 있다.
분산 드라이브 협조 기능(13)은 제1 동작 모드에서 파일 저장 요청의 감지에 반응하여, 제1 분산 파일(91a) 및 제2 분산 파일(91b)을 각각 제1 분산 드라이브(70a) 및 제2 분산 드라이브(70b)에 기록할 수 있다. 제1 동작 모드는 파일 저장 시에 분산 파일이 분산 드라이브에 직접 기록되기 때문에, 예를 들어, 직접 모드로 지칭될 수 있다.
한편, 제2 동작 모드에서, 분산 드라이브 협조 기능(13)은, 파일 저장 요청의 감지에 반응하여 파일 분산 기능(17)이 파일 이미지를 제1 분산 파일(91a) 및 제2 분산 파일(91b)로 분산한 이후, 가상 드라이브를 마운트 해제하기 위한 요청의 감지를 더 기다리고, 그 후 제1 분산 파일(91a)을 제1 분산 드라이브(70a)에 기록할 수 있다. 제2 동작 모드에서, 분산 파일들은 파일 저장 요청의 감지로부터 마운트 해제 요청의 감지까지의 기간 동안 가상 드라이브 관리 기능(16)에 의해 휘발성 메모리에 유지될 수 있다. 제2 동작 모드는 파일 저장 시에 적어도 하나의 분산 파일이 분산 드라이브에 기록되지 않고 메모리에 캐시(cache)되기 때문에 예를 들어, 캐시 모드로 지칭될 수 있다. 시스템의 동작 모드는 사용자의 니즈에 따라 고정되게 미리 설정될 수 있거나, 2 이상의 모드들 간에 동적으로 스위칭될 수 있다.
가상 드라이브 관리 기능(16)은 하나 이상의 파일들이 가상 드라이브 내에 존재하는 경우, 가상 드라이브가 생성된 이후 또는 가상 드라이브가 파일 시스템(40)을 통해 개방(open)된 이후에 UI 모듈(45)로 하여금 자동적으로 화면 상에 이러한 파일들에 관련된 지시를 표시하게 할 수 있다. 파일에 관련된 지시를 생성하는 데에 필요한 파일 메타 데이터는 제1 분산 파일 메타 데이터(90a) 및 제2 분산 파일 메타 데이터(90b)로부터 복구된다. 분산 드라이브 협조 기능(13)은 제1 분산 드라이브(70a) 및 제2 분산 드라이브(70b)로부터 각각 제1 분산 파일 메타 데이터(90a) 및 제2 분산 파일 메타 데이터(90b)를 독출한다. 파일 복구 기능(18)은 비밀분산 모듈(30)로 하여금 적어도 제1 분산 파일 메타 데이터(90a) 및 제2 분산 파일 메타 데이터(90b)로부터 파일 메타 데이터를 복구하게 하여, 가상 드라이브 내에 파일에 관련된 지시가 표시되게 할 수 있다. 파일에 관련된 지시는 예를 들어, 드라이브 내 파일 목록의 각각의 아이템에 대응하고, 파일 이름, 파일 크기, 아이콘, 갱신 일자 등을 포함할 수 있다.
또한, 가상 드라이브 내의 파일의 활성화를 요청하기 위해 상기 표시된 파일에 관련된 지시를 향해 사용자 입력이 이뤄지는 경우(예컨대, 파일 이름 또는 아이콘이 더블클릭되거나 터치(tap)되는 경우), 파일 복구 기능(18)은 분산 드라이브 협조 기능(13)을 통해 제1 분산 드라이브(70a) 및 제2 분산 드라이브(70b)로부터 각각 상기 파일의 파일 이미지로부터 분산된 복수의 분산 파일들 중 적어도 제1 분산 파일(91a) 및 제2 분산 파일(91b)을 독출한다. 이어서, 파일 복구 기능(18)은 비밀분산 모듈(30)로 하여금 활성화될 파일의 파일 이미지를 적어도 제1 분산 파일(91a)로부터 제2 분산 파일(91b)까지 복구하게 한다. 또는, 파일 복구 기능(18)은 파일을 활성화하는 요청을 기다리지 않고, 가상 드라이브 내에 특수한 파일의 파일 이미지를 복구할 수 있다.
제어 모듈(10)은 전술한 바와 같은 다양한 동작의 임의의 타이밍에서 사용자에게 패스워드 입력을 요청할 수 있다. 예를 들어, 외부 저장장치(400)의 연결이 감지된 경우, 제어 모듈(10)은 대응하는 분산 드라이브로부터 분산 메타 데이터를 독출하기 전에 사용자에게 패스워드 입력을 요청하고, 패스워드가 성공적으로 인증된 경우에만 상기 분산 메타 데이터를 독출할 수 있다.
비밀분산 모듈(30)은 암호화 기능(31), 분산 기능(32), 조합 기능(33), 및 복호화 기능(34)을 포함한다. 암호화 기능(31)은 (가상 드라이브 메타 데이터, 파일 메타 데이터, 또는 파일 이미지와 같은) 지정된 데이터를 제어 모듈(10)의 제어 하에서 예를 들어, AONT 기법에 의해 암호화한다. 분산 기능(32)은 암호화 기능(31)에 의해 암호화된(AONT-변환된) 데이터를, 각각이 지정된 크기를 갖는 지정된 개수의 분산 데이터 조각들로 분산한다. 조합 기능(33)은 복구될 데이터로부터 비밀분산법을 사용하여 형성된 복수의 분산 데이터 조각들 중 적어도 2개의 분산 데이터 조각들을 조합하고, 조합된 데이터를 생성한다. 복호화 기능(34)은 원시 데이터를 얻기 위해 상기 적어도 2개의 분산 데이터 조각들에 기초하여 AONT 기법에 의해 상기 조합된 데이터를 복호화함으로써 비밀 데이터를 복구한다.
일 예로, 비밀분산 모듈(30)은 블록 단위로 이러한 암호화, 분산, 조합 및 복호화의 동작들을 수행한다. 블록 크기는 바람직하게, 파일 시스템(40)의 할당 단위의 크기(예컨대, NTFS에서 4096 바이트)에 매치된다. 비밀분산 프로세스의 프로세스 단위가 큰 크기를 갖는 경우, 프로세스 시간은 분산될 데이터의 데이터 크기에 대해 선형적이 아니라 지수적으로 증가한다. 반면, 비밀분산 프로세스가 파일 시스템의 할당 크기만큼 작은 프로세스 단위로 실행되는 경우, 데이터 크기의 증가로 인한 프로세스 시간의 증가는 실질적으로 선형적으로 증가하도록 억제될 수 있다.
파일 시스템(40)은 파일들을 관리하기 위해 정보처리장치(100) 상에서 동작하는 운영체제의 시스템 모듈이다. NTFS, FAT, 또는 FAT32와 같이 임의의 타입의 파일 시스템이 사용될 수 있다. 파일 시스템(40)이 정보처리장치(100) 상의 다양한 어플리케이션들과 제어 모듈(10) 및 비밀분산 모듈(30)의 사이에 개입되는 구성은 이러한 어플리케이션들이 제어 모듈(10) 및 비밀분산 모듈(30)의 존재를 인식할 필요성을 제거한다. 파일 시스템(40)의 할당 단위의 크기에 따른 전술한 비밀분산 동작과, 파일 시스템(40)이 개입하는 전술한 구성은, 비밀정보 관리시스템(1)으로 하여금 다양한 어플리케이션 및 운영체제가 실행될 수 있는 여러 플랫폼 상에서 어떠한 개별적 기능 변경을 요구하지 않고도 부드럽게 동작하게 한다.
정보처리장치(100) 상의 파일 시스템(40) 또는 운영체제는 제어 모듈(10)로부터 가상 드라이브의 설정 등록을 수신한다. 일단 가상 드라이브가 등록되면, 가상 드라이브는 사용자 또는 어플리케이션의 관점으로부터 다른 물리적 또는 논리적 디스크 드라이브와 비슷하게 다뤄진다. 즉, 사용자는 실제 드라이브와의 차이를 인식함 없이, 가상 드라이브 내에서 파일 갱신, 파일 이동, 파일 복사, 파일 이름 변경, 폴더(디렉토리) 생성, 및 폴더의 속성 설정과 같은 다양한 종류의 작업을 수행할 수 있다.
UI 모듈(45)은 제어 모듈(10) 및 파일 시스템(40)으로 하여금 사용자와 반응하기 위한 사용자 인터페이스를 제공한다. 예를 들어, UI 모듈(45)은 디스플레이(103)의 화면 상에 GUI를 표시하고, 입력 인터페이스(104)를 통해 사용자 입력을 수신한다. UI 모듈(45)은 또한, 음성 UI 또는 제스처 UI와 같은 비가시적인 사용자 인터페이스를 제공할 수도 있다.
<3. 프로세스의 흐름>
다음으로, 비밀정보 관리시스템(1)의 동작들의 흐름을 상세히 설명한다.
(1) 가상 드라이브 생성
도 5는 가상 드라이브를 새로 생성하기 위한 가상 드라이브 생성 프로세스의 흐름의 일 예를 도시한 순서도이다.
먼저, 단계 S1에서, 제어 모듈(10)은 생성될 가상 드라이브의 설정 데이터를 획득하고, 가상 드라이브 메타 데이터를 생성한다. 여기서 생성되는 가상 드라이브 메타 데이터는 예를 들어, 드라이브 이름 및 새로운 가상 드라이브의 용량을 포함할 수 있다.
다음으로, 단계 S2에서, 제어 모듈(10)은 비밀분산 모듈(30)로 하여금 상기 생성된 가상 드라이브 메타 데이터를 암호화하게 한다. 단계 S3에서, 제어 모듈(10)은 비밀분산 모듈(30)로 하여금 상기 암호화된 가상 드라이브 메타 데이터를 제1 분산 메타 데이터(80a) 및 제2 분산 메타 데이터(80b)로 분산하게 한다.
단계 S4에서, 제어 모듈(10)은 외부 저장장치(400)에 제1 분산 드라이브(70a)를 생성한다. 단계 S5에서, 제어 모듈(10)은 보조저장장치(105)에 제2 분산 드라이브(70b)를 생성한다. 본 단계까지는, 제1 또는 제2 분산 드라이브(70a 또는 70b)에 어떠한 데이터나 파일들도 기록되지 않았음을 주목해야 한다. 말할 필요 없이, 단계 S4는 연결 인터페이스(106)를 통해 정보처리장치(100)에 연결된 외부 저장장치(400)와 함께 수행된다.
다음으로, 단계 S6에서, 상기 생성된 제1 및 제2 분산 드라이브들을 서로 연관시키기 위해, 제어 모듈(10)은 제1 분산 드라이브 식별자(71a) 및 제2 분산 드라이브 식별자(71b)를 각각, 제1 분산 드라이브(70a) 및 제2 분산 드라이브(70b)에 기록한다. 또한, 제어 모듈(10)은 기본 설정 정보(75)를 외부 저장장치(400)의 미리 정의된 저장영역에 기록한다. 기본 설정 정보(75)는 예를 들어, 외부 저장장치(400) 내의 제1 분산 드라이브(70a)의 분산 드라이브 경로 및 보조저장장치(105) 내의 제2 분산 드라이브(70b)의 분산 드라이브 경로를 포함한다. 이는 제어 모듈(10)로 하여금, 나중에 각 분산 드라이브에 접속하게 하고, 분산 드라이브 식별자 및 다른 메타 데이터를 대조(collating)함으로써 분산 드라이브들 간의 대응을 검증하게 한다.
다음으로, 단계 S7에서, 제어 모듈(10)은 제1 분산 메타 데이터(80a)를 제1 분산 드라이브(70a)에 기록한다. 다음으로, 단계 S8에서, 제어 모듈(10)은 제2 분산 메타 데이터(80b)를 제2 분산 드라이브(70b)에 기록한다.
다음으로, 단계 S9에서, 제어 모듈(10)은 제1 및 제2 분산 드라이브들(70a 및 70b)에 대응하여 새로운 가상 드라이브를 생성한다. 보다 구체적으로, 제어 모듈(10)은 예를 들어, 가상 드라이브 메타 데이터에 포함된 설정 데이터를 파일 시스템(40) 상에 등록함으로써, 가상 드라이브를 생성할 수 있다. 제어 모듈(10)은 단계 S1에서 생성 또는 획득된 가상 드라이브 메타 데이터를 사용할 수 있다. 또는, 제어 모듈(10)은 비밀분산 모듈(30)로 하여금 제1 분산 드라이브(70a) 및 제2 분산 드라이브(70b)에 각각 기록된 제1 분산 메타 데이터(80a) 및 제2 분산 메타 데이터(80b)로부터 가상 드라이브 메타 데이터를 복구하게 할 수 있다.
끝으로, 단계 S10에서, 새로 생성된 가상 드라이브는 디스플레이(103)의 화면 상에 표시된다. 제어 모듈(10)은 디스플레이(103)의 화면 상에 가상 드라이브 자체(예컨대, 가상 드라이브의 아이콘)을 표시하는 대신, 가상 드라이브가 생성됨을 사용자에게 알리는 메시지를 표시할 수 있음에 주목해야 한다.
그 다음, 도 5에 도시된 가상 드라이브 생성 프로세스가 종료된다.
(2) 파일 분산
도 6은 비밀분산법을 사용하여 파일을 분산하기 위한 파일 분산 프로세스의 흐름의 일 예를 도시한 순서도이다.
단계 S11에서, 제어 모듈(10)은 가상 드라이브 내 파일의 파일 저장 요청을 감지한다. 일 예로, 가상 드라이브 내에 파일을 저장하는 것은 가상 드라이브가 아닌 (실제 드라이브와 같은) 드라이브에 저장된 파일을 가상 드라이브로 이동시킴으로써 트리거될 수 있다. 또 다른 예로, 가상 드라이브 내에 파일을 저장하는 것은, 이미 가상 드라이브 내에 존재하는 파일이 갱신된 후, 가상 드라이브 내에 상기 파일을 덮어쓰기 함으로써 트리거될 수 있다. 상기 파일 저장 요청은 예를 들어, (문서 파일용 문서 편집 프로그램과 같이) 저장될 파일에 관련된 어플리케이션으로부터 또는 파일 시스템(40)을 통해 운영체제로부터 감지될 수 있다.
일단 전술한 파일 저장 요청이 감지되면, 제어 모듈(10)은 단계 S12에서, 저장될 상기 파일의 파일 이미지를 메인 메모리(102) 내의 가상 드라이브용 저장 영역에 저장한다. 파일 이미지는 메인 메모리(102)의 대응하는 메모리 주소들에 예를 들어, 블록 단위로 기록된다. 블록 크기는 예를 들어, 블록 당 4096 바이트일 수 있다.
다음으로, 단계 S13에서, 제어 모듈(10)은 비밀분산 모듈(30)로 하여금 가상 드라이브 내에 저장될 파일의 파일 이미지를 암호화하게 한다. 파일 이미지는 예를 들어, 메인 메모리(102)에 저장된 파일 이미지의 각 블록마다, 블록 단위로 암호화된다.
다음으로, 단계 S14에서, 제어 모듈(10)은 비밀분산 모듈(30)로 하여금 상기 암호화된 파일 이미지를 제1 및 제2 분산 파일들(91a 및 91b)로 분산하게 한다. 암호화된 파일 이미지 또한 블록 단위로 분산될 수 있다. 예를 들어, 파일 이미지가 3개의 블록을 가지는 경우, 3개의 각 블록은 예를 들어, 4 바이트를 갖는 제1 분산 파일(91a) 및 4092 바이트를 갖는 제2 분산 파일(91b)로 분산될 수 있다.
또한, 제어 모듈(10)은 비밀분산 모듈(30)로 하여금, 저장될 파일의 파일 메타 데이터를 암호화하고 상기 파일 메타 데이터를 제1 분산 파일 메타 데이터(90a) 및 제2 분산 파일 메타 데이터(90b)로 분산하게 한다. 파일 메타 데이터 또한 블록 단위로 암호화되고 분산될 수 있음을 주목해야 한다.
다음으로, 단계 S15에서 제어 모듈(10)은 제1 분산 파일(91a) 및 제1 분산 파일 메타 데이터(90a)를 제1 분산 드라이브(70a)에 기록한다. 다음으로, 단계 S16에서 제어 모듈(10)은 제2 분산 파일(91b) 및 제2 분산 파일 메타 데이터(90b)를 제2 분산 드라이브(70b)에 기록한다. 제1 분산 파일(91a)은 제1 분산 드라이브(70a)의 파일 데이터 영역에 기록되고, 제2 분산 파일(91b)은 제2 분산 드라이브(70b)의 파일 데이터 영역에 기록된다. 제1 분산 파일 메타 데이터(90a)는 제1 분산 드라이브(70a)의 파일 메타 데이터 영역에 기록되고, 제2 분산 파일 메타 데이터(90b)는 제2 분산 드라이브(70b)의 파일 메타 데이터 영역에 기록된다. 말할 필요 없이, 단계 S15는 연결 인터페이스(106)를 통해 정보처리장치(100)에 연결되는 외부 저장장치(400)와 함께 수행된다.
그 후, 일단 단계 S17에서 가상 드라이브를 마운트 해제하기 위한 요청이 감지되면, 제어 모듈(10)은 단계 S18에서 가상 드라이브를 비활성화한다. 예를 들어, 이는 상기 표시된 가상 드라이브가 화면으로부터 사라지게 한다. 또한, 외부 저장장치(400)는 정보처리장치(100)로부터 연결 해제될 수 있다. 가상 드라이브를 마운트 해제하기 위한 요청이 입력 또는 감지되지 않고 외부 저장장치(400)가 갑자기 연결 해제되는 경우(예컨대, USB 메모리가 인출되는 경우)라도, 제어 모듈(10)은 가상 드라이브를 비활성화하고 상기 표시된 가상 드라이브가 연결 해제 감지에 반응하여 화면으로부터 사라지게 할 수 있다.
그 뒤, 도 6에 도시된 파일분산 프로세스가 종료된다.
(3) 가상 드라이브 복구
도 7은 가상 드라이브를 복구하기 위한 가상 드라이브 복구 프로세스의 흐름의 일 예를 도시한 순서도이다. 도 8은 복구된 가상 드라이브의 개략적인 데이터 구성예를 도시한다.
먼저, 단계 S21에서 제어 모듈(10)은 외부 저장장치(400)가 연결 인터페이스(106)를 통해 정보처리장치(100)로 연결되는 것을 감지한다. 단계 S22에서, 상기 연결 감지에 반응하여, 제어 모듈(10)은 외부 저장장치(400)에 저장된 기본 설정 정보(75)를 독출하고, 외부 저장장치(400)의 제1 분산 드라이브(70a)에 접근한다. 단계 S23에서, 제어 모듈(10)은 보조저장장치(105)의 제2 분산 드라이브(70b)에 접근한다. 제어 모듈(10)은 이러한 분산 드라이브들 내의 데이터 셋트를 독출하고 동시에 상기 데이터 셋트를 메인 메모리(102) 상에 로드할 수 있다. 제1 분산 드라이브(70a)의 데이터 셋트는 제1 분산 드라이브 식별자(71a)를 포함하고, 제2 분산 드라이브(70b)의 데이터 셋트는 제2 분산 드라이브 식별자(71b)를 포함한다.
다음으로, 단계 S24에서, 제어 모듈(10)은 제1 및 제2 분산 드라이브들(70a 및 70b) 사이의 대응을 검증한다. 예를 들어, 제어 모듈(10)은 제1 분산 드라이브 식별자(71a) 및 제2 분산 드라이브 식별자(71b)가 특정한 공통 문자열을 포함하고 기대되는 접미 번호(suffix number)를 정확히 가지는지를 판단할 수 있다. 제어 모듈(10)은 또한 생성 일자 및 시간이나 갱신 일자 및 시간과 같은 타임 스탬프들이 서로 매치되는지를 판단할 수도 있다.
만일 단계 S25에서 2개의 분산 드라이브들 간의 대응이 정상임이 판단된 경우, 가상 드라이브 복구 프로세스는 단계 S27로 진행한다. 만일 2개의 분산 드라이브들 간의 대응이 정상이 아닌 것으로 판단된 경우, 가상 드라이브 복구 프로세스는 취소될 수 있다. 가상 드라이브 복구 프로세스가 취소되는 경우, 제어 모듈(10)은 UI 모듈(45)을 통해, 가상 드라이브의 생성이 실패했음을 사용자에게 알리는 에러 메시지를 출력할 수 있다. 그 대신에, 제어 모듈(10)은 악의적인 제3자로부터 비밀 데이터의 존재를 숨기기 위해 어떠한 메시지도 출력하지 않을 수도 있다.
단계 S27에서, 제어 모듈(10)은 제1 분산 드라이브(70a)로부터 (또는 제1 분산 메타 데이터(80a)가 이미 메인 메모리(102) 상에 로드된 경우 메인 메모리(102)로부터) 제1 분산 메타 데이터(80a)를 독출한다. 단계 S28에서, 제어 모듈(10)은 제2 분산 드라이브(70b)로부터 (또는 제2 분산 메타 데이터(80b)가 이미 메인 메모리(102) 상에 로드된 경우 메인 메모리(102)로부터) 제2 분산 메타 데이터(80b)를 독출한다.
다음으로, 단계 S29에서, 제어 모듈(10)은 비밀분산 모듈(30)로 하여금, 독출된 제1 분산 메타 데이터(80a) 및 독출된 제2 분산 메타 데이터(80b)를 조합하게 한다. 단계 S30에서, 제어 모듈(10)은 비밀분산 모듈(30)로 하여금, 상기 제1 분산 메타 데이터(80a) 및 제2 분산 메타 데이터(80b)의 조합된 메타 데이터를 복호화하여 가상 드라이브 메타 데이터를 얻게 한다.
다음으로, 단계 S31에서, 제어 모듈(10)은 상기 비밀분산법을 사용한 복호화를 통해 복구된 가상 드라이브 메타 데이터(80)에 기초하여 가상 드라이브(81)를 생성한다(도 8을 참조하라).
끝으로, 단계 S32에서, 이런 식으로 복구된 가상 드라이브(81)가 디스플레이(103)의 화면 상에 표시된다. 가상 드라이브(예컨대, 가상 드라이브의 아이콘)가 반드시 표시되지는 않고, 그 대신 가상 드라이브가 복구됨을 사용자에게 알리는 메시지가 표시될 수 있음에 주목해야 한다.
가상 드라이브가 복구된 이후, 제어 모듈(10)은 제1 분산 파일 메타 데이터(90a) 및 제2 분산 파일 메타 데이터(90b)로부터 파일 메타 데이터(90)를 더 복구할 수 있다. 또는, 제어 모듈(10)은 가상 드라이브의 활성화가 파일 시스템(40)을 통해 감지된 경우, 제1 분산 파일 메타 데이터(90a) 및 제2 분산 파일 메타 데이터(90b)로부터 파일 메타 데이터(90)를 복구할 수 있다. 가상 드라이브의 활성화는 예를 들어, 화면 상에 표시된 가상 드라이브의 아이콘을 통한 (더블클릭 또는 터치와 같은) 사용자 입력을 통해 요청될 수 있다. 예를 들어, 제어 모듈(10)은 제1 분산 드라이브(70a)(또는 메인 메모리(102)) 및 제2 분산 드라이브(70b)(또는 메인 메모리(102))로부터 제1 분산 파일 메타 데이터(90a) 및 제2 분산 파일 메타 데이터(90b)를 각각 독출한다. 이어서, 제어 모듈(10)은 비밀분산 모듈(30)로 하여금, 독출된 분산 파일 메타 데이터(90a) 및 독출된 분산 파일 메타 데이터(90b)로부터 파일 메타 데이터(90)를 복구하게 한다.
도 8은 일 예로서 파일 메타 데이터(90)의 단일 조각을 하나만 도시한다. 그러나, 가상 드라이브에 복수의 파일들이 존재하는 경우, 제어 모듈(10)은 비밀분산 모듈(30)로 하여금, 각각의 파일들의 파일 메타 데이터(90)를 복구하게 할 수 있다. 예를 들어, 가상 드라이브의 계층적 폴더 구조의 최상위 폴더에 있는 파일들의 파일 메타 데이터만이 복구될 수 있다(다른 파일의 파일 메타 데이터는 대응하는 폴더가 개방(open)된 이후에 복구될 수 있다). 또는, 가상 드라이브의 용량에 따라 제한된 개수의 파일들의 몇몇 파일 메타 데이터 조각들만이 복구될 수 있다. 복구된 파일 메타 데이터(90)는 파일 시스템(40)으로 건네진다. 일단 가상 드라이브가 활성화되면, 파일 시스템(40)은 가상 드라이브 내의 각 파일에 관련된 (파일 목록의 아이템 또는 아이콘과 같은) 지시(indication)를 생성하고, 상기 생성된 지시를 화면 상에 표시한다.
그 뒤, 도 7에 도시된 가상 드라이브 복구 프로세스가 종료된다.
(4) 파일 복구
도 9는 비밀분산법을 사용하여 파일을 복구하기 위한 파일 복구 프로세스의 흐름의 일 예를 도시한 순서도이다.
먼저, 단계 S41에서, 제어 모듈(10)은 가상 드라이브가 활성화된 상태 동안 가상 드라이브 내 파일의 파일 활성화 요청을 감지한다. 파일의 활성화는 예를 들어, 파일 메타 데이터(90)에 기초하여 표시된 파일에 관련된 지시(indication)를 향하는 사용자 입력을 통해 요청될 수 있다.
단계 S42에서, 제어 모듈(10)은 파일 활성화 요청의 감지에 반응하여 제1 분산 드라이브(70a)로부터 활성화될 파일에 대응하는 제1 분산 파일(91a)을 독출한다. 단계 S43에서, 제어 모듈(10)은 제2 분산 드라이브(70b)로부터 상기 파일에 대응하는 제2 분산 파일(91b)을 독출한다.
다음으로, 단계 S44에서, 제어 모듈(10)은 비밀분산 모듈(30)로 하여금, 독출된 제1 및 제2 분산 파일들(91a 및 91b)을 조합하게 한다. 단계 S45에서, 제어 모듈(10)은 비밀분산 모듈(30)로 하여금 제1 및 제2 분산 파일들(91a 및 91b)의 조합된 파일을 복호화하여 복구될 파일의 파일 이미지를 얻게 한다.
다음으로, 단계 S46에서, 제어 모듈(10)은 복호화 결과로서의 복구된 파일 이미지를 파일 시스템(40)에 건네주고, 사용자의 필요대로 예를 들어, 파일에 관련된 어플리케이션을 통해 파일이 활성화되게 한다.
그 뒤, 도 9에 도시된 파일 복구 프로세스가 종료된다.
<4. 결론>
전술된 실시예에 따르면, 정보처리장치의 프로세서에 의해 실행되는 경우, 프로세서로 하여금 비밀분산 모듈 및 제어 모듈로 기능하게 하는 컴퓨터 프로그램이 제공된다. 정보처리장치는 외부 저장장치인 제1 저장장치에 연결되도록 구성되는 연결 인터페이스, 프로세서, 및 휘발성 메모리를 포함한다. 비밀분산 모듈은 복수의 분산 데이터 조각들 중 적어도 2개의 분산 데이터 조각들을 조합함으로써 비밀 데이터를 복구하도록 구성된다. 제어 모듈은 대응하는 저장장치의 데이터 영역으로부터 및/또는 데이터 영역으로 상기 복수의 분산 데이터 조각들을 독출 및/또는 기록하는 것을 제어하도록 구성된다. 비밀 데이터는 가상 드라이브 내에 유지되고, 상기 가상 드라이브를 생성하기 위한 가상 드라이브 메타 데이터는 적어도 2개의 분산 메타 데이터 조각들로 분산된다. 제어 모듈은 상기 제1 저장장치 및 제2의 저장장치로부터 제1 분산 메타 데이터 및 제2 분산 메타 데이터를 각각 독출하고, 비밀분산 모듈로 하여금 적어도 상기 제1 분산 메타 데이터 및 제2 분산 메타 데이터로부터 가상 드라이브 메타 데이터를 복구하게 하며, 복구된 가상 드라이브 메타 데이터에 기초하여 가상 드라이브를 생성한다.
그러한 구성에 따르면, 비밀분산법에 의해, 사용자가 비밀 데이터를 처리하는 공간을 제공하는 가상 드라이브를 보호할 수 있다. 가상 드라이브 내의 비밀 데이터 또한, 비밀분산법에 의해 보호되며, 그러므로 전술된 구성은 유출 위험으로부터 비밀 데이터를 2중 장벽으로 보호하는 메커니즘을 제공한다. 사용자가 가상 드라이브에 데이터를 생성한 경우, 상기 데이터는 생성이 시작된 때부터 보호된다.
몇몇 예에서, 가상 드라이브 내의 비밀 데이터는 휘발성 메모리에만 저장되는 파일 이미지로서 유지될 수 있다. 이는 예를 들어, 비밀 데이터가 복구된 이후 정보처리장치가 해킹되더라도 보조저장장치의 디스크로부터 비밀 데이터가 유출되는 것을 방지한다.
몇몇 예에서, 제1 분산 메타 데이터는 상기 제1 저장장치의 정보처리장치로의 연결 감지에 반응하여 상기 제1 저장장치로부터 독출될 수 있다. 이는 가상 드라이브의 생명주기가 외부 저장장치를 연결 및 연결 해제하는 동작과 함께 생성되고 사라지는 것과 일치하며, 사용자에게 직관적으로 이해될 수 있다. 사용자는 가상 드라이브가 정보처리장치 상에 존재하는 동안에만 가상 드라이브 내의 데이터 또는 파일들에 접근할 수 있다. 그러므로 사용자는 외부 저장장치의 연결 상태에 주의를 기울이는 것만으로 데이터를 적절하게 비밀리에 다룰 수 있다. 데이터의 생성, 조회 및 갱신과 같은 작업들이 가상 드라이브 내에서 수행되는 이상, 그러한 작업들은 일반 데이터(보호될 필요가 없는 데이터)를 위한 전형적인 정보처리장치 상에서 수행되는 것과 동일한 방식으로 수행될 수 있다.
몇몇 예에서, 가상 드라이브를 마운트 해제하기 위한 요청이 감지되거나 상기 제1 저장장치의 연결 해제가 감지된 경우, 가상 드라이브는 비활성화될 수 있다. 즉, 사용자는 예를 들어, 작업 종료 또는 중지 시에 명시적인 마운트 해제 요청을 사용하여 가상 드라이브에 대한 접근을 거부시키고 비밀 데이터를 확실히 보호할 수 있다. 또한, 사용자는 외부 저장장치를 연결 해제하는 직관적인 동작을 통해 가상 드라이브에 대한 접근을 거부시키고 비밀 데이터를 확실하게 보호할 수 있다. 가상 드라이브를 비활성화하는 것은 메모리 상에 유지되는, 가상 드라이브 내 데이터의 삭제를 포함할 수 있다. 또는, 가상 드라이브 내 데이터는 가상 드라이브가 비활성화된 때보다 나중의 특정 시점에 삭제될 수 있다.
몇몇 예에서, 가상 드라이브는 상기 가상 드라이브의 설정을 정보처리장치의 파일 시스템 상에 등록함으로써 생성될 수 있다. 가상 드라이브는 파일 시스템으로부터 가상 드라이브의 설정을 삭제함으로써 비활성화될 수 있다. 이런 식으로, 기존 파일 시스템의 기능을 사용하여 가상 드라이브를 구현하고 파일 시스템으로 하여금 어플리케이션 및 비밀분산 기술 사이에 개입되게 하는 것은, 다양한 기존의 어플리케이션들 및 장래에 개발될 어플리케이션들에 대해 영향을 주지 않고 시스템의 부드러운 동작을 제공하게 할 수 있다.
몇몇 예에서, 가상 드라이브 내 파일의 활성화가 요청되는 경우, 상기 제어 모듈은 (비밀분산법을 사용하여 상기 파일의 파일 이미지를 분산하여 형성된) 복수의 분산 파일들 중 적어도 2개의 분산 파일들을 대응되는 저장장치들로부터 독출하고, 비밀분산 모듈로 하여금 활성화될 파일의 파일 이미지를 상기 적어도 2개의 분산 파일들로부터 복구하게 할 수 있다. 이는 상기 파일의 활성화가 요청될 때까지는 가상 드라이브 내 파일의 파일 이미지가 복구되지 않으며, 활성화되지 않은 파일의 파일 이미지는 복구되지 않음을 의미한다. 그러한 구성에 따르면, 한번에 대규모 데이터를 복구할 필요는 없기 때문에 프로세스 대기 시간이 감소된다. 가상 드라이브는 최소한의 필요한 파일들의 파일 이미지들만 유지할 것이므로, 드라이브 내 모든 데이터를 총괄하여(collectively) 암호화(분산)/복호화(조합)하는 기술과 비교할 때 보안 수준이 향상된다.
몇몇 예에서, 가상 드라이브 내 파일의 파일 메타 데이터는 복수의 분산 파일 메타 데이터 조각들로 분산될 수 있고, 제어 모듈은 대응하는 저장장치들로부터 적어도 2개의 분산 파일 메타 데이터 조각들을 독출하며, 비밀분산 모듈로 하여금 적어도 이러한 2개의 분산 파일 메타 데이터 조각들로부터 상기 파일 메타 데이터를 복구하게 하여 상기 가상 드라이브 내에 상기 파일에 관련된 지시가 표시되게 할 수 있다. 그러한 구성에 따르면, 가상 드라이브, 상기 가상 드라이브 내 파일을 접근하는 데에 필요한 파일 메타 데이터, 및 파일을 포함하는 3개 계층의 삼중 장벽으로 비밀 데이터를 보호할 수 있다. 예를 들어, 일 구성은, 가상 드라이브 내 파일의 활성화가, 복구될 파일 메타 데이터에 기초하여 표시되는 파일 관련 지시를 향한 사용자 입력을 통해 요청되는 경우에 적용될 수 있다. 이 경우, 상기 파일을 복구하기 위해서는 미리 설정된 파일의 파일 메타 데이터가 복구되어야 하고, 상기 파일 메타 데이터에 접근하기 위해서는 가상 드라이브 메타 데이터가 복구되어야 하는, 비밀분산 프로세스의 체인(chain)이 구성된다. 따라서, 보안 수준이 훨씬 향상될 수 있다. 상기 메타 데이터 및 파일들은 (메모리 상에 로드되어) 독출되고 사용자 입력에 반응하여 최소 영역 내에서 복호화될 수 있거나, 또는 상기 메타 데이터 및 파일들은 (메모리 상에 로드되어) 독출되고 사용자 입력 전에 메모리 용량의 제한 하에 복호화될 수 있다. 후자의 경우, 데이터 독출로 인한 대기 시간이 단축될 수 있고, 사용자 입력에 대한 시스템의 반응성이 향상될 수 있다.
몇몇 예에서, 가상 드라이브 내 파일의 저장이 요청되는 경우, 제어 모듈은 비밀분산 모듈로 하여금 비밀분산법을 사용하여 상기 파일의 파일 이미지를 적어도 2개의 분산 파일들로 분산하게 할 수 있다. 상기 분산 파일들 중 하나는 제1 저장장치에 기록될 수 있고, 상기 분산 파일들 중 다른 하나는 제2 저장장치에 기록될 수 있다. 그러한 구성에 따르면, 가상 드라이브 내 파일의 저장이 요청될 때마다, 파일의 보호를 보장하기 위해, 상기 파일의 파일 이미지가 분산된다. 파일 저장 요청의 감지에 반응하여, 적어도 이러한 2개의 분산 파일들이 제1 저장장치 및 제2 저장장치에 즉시 기록되는 동작 모드의 경우, 강한 보안성을 구현시키도록, 이러한 분산 파일들이 동일한 장치에 존재하는 시간이 최소화될 것이다.
몇몇 예에서, 가상 드라이브는 정보처리장치의 파일 시스템 상에 가상 드라이브의 설정을 등록함으로써 생성될 수 있고, 제어 모듈은 상기 파일 시스템을 통해 파일 저장 요청을 감지할 수 있다. 그러한 구성에 따르면, 어떠한 복잡한 로직을 요구하지 않고도, 다양한 이벤트에 의해 트리거되고 사용자 또는 어플리케이션으로부터 만들어진 파일 저장 요청을 수신하기 위한 공통의 프로그램 인터페이스를 저비용으로 구현할 수 있다.
본 명세서는 가상 드라이브 메타 데이터, 파일 메타 데이터 및 파일 이미지가, 각각 암호화 및 복호화되는 예들을 주로 설명했다. 그러나, 본 발명은 그러한 예들에 제한되지 않으며, 가상 드라이브 메타 데이터, 파일 메타 데이터 및 파일 이미지의 일부 또는 전부는 암호화 또는 복호화 되지 않고 분산되며 조합될 수 있다. 예를 들어, 가상 드라이브 메타 데이터가 암호화 또는 복호화되지 않는 경우라도, 파일 메타 데이터 및 파일을 포함하는 2개 계층의 이중 보호를 제공할 수 있다. 암호화 및 복호화를 생략하는 것은 시스템 상의 부하를 줄일 수 있다. 가상 드라이브 메타 데이터는 분산되지 않고 암호화만 되어 외부 저장장치에 기록될 수 있다.
본 명세서는 비밀 데이터가 비밀분산법을 사용하여 2개의 분산 데이터들로 분산되는 예들을 주로 설명했다. 그러나, 전술한 바와 같이, 가상 드라이브 내의 비밀 데이터는 2 이상의 임의의 개수의 분산 데이터 조각들로 분산될 수도 있다. 복수의 분산 데이터 조각들이 기록되는 복수의 장치들이 존재하는 이상, 상기 복수의 분산 데이터 조각들 중 어떠한 것도 임의의 저장장치에 기록될 수 있다. 예를 들어, 도 1c에 예시된 바와 같이, 사용자에 의해 운반될 수 있는 단말 장치(회사의 직원에 의해 운반되는 직원 ID용 IC 카드와 같은 장치)에 부가적인 분산 데이터를 기록하는 것은 상기 단말 장치에 비밀 데이터 접근용 인증 장치로서의 역할을 제공할 수 있다. 예를 들어, 가상 드라이브 메타 데이터 하나로부터 분산된 분산 메타 데이터 조각은 작은 저장용량을 가진 장치에 기록될 수 있다.
<5. 변형>
(1) 파일 분산 - 제1 변형
도 10은 비밀분산법을 사용하여 파일을 분산하기 위한 파일 분산 프로세스의 흐름의 제1 변형을 도시한 순서도이다. 도 10에 도시된 파일 분산 프로세스는 전술된 제2 동작 모드(캐시 모드)에서의 프로세스의 예인 반면, 도 6에 도시된 파일 분산 프로세스는 전술된 제1 동작 모드(직접 모드)에서의 프로세스의 예이다. 도 10의 단계 S51 내지 S54는 도 6의 단계 S11 내지 S14와 비슷하게 수행될 수 있다.
단계 S51에서, 제어 모듈(10)은 가상 드라이브 내 파일의 파일 저장 요청을 감지한다. 일단 파일 저장 요청이 감지되면, 제어 모듈(10)은 단계 S52에서, 저장될 상기 파일의 파일 이미지를 메인 메모리(102) 내의 가상 드라이브용 저장영역에 저장한다. 다음으로, 단계 S53에서, 제어 모듈(10)은 비밀분산 모듈(30)로 하여금 상기 가상 드라이브 내 저장될 파일의 파일 이미지를 암호화하게 한다. 다음으로, 단계 S54에서, 제어 모듈(10)은 비밀분산 모듈(30)로 하여금, 상기 암호화된 파일 이미지를 제1 및 제2 분산 파일들(91a 및 91b)로 분산하게 한다. 또한, 제어 모듈(10)은 비밀분산 모듈(30)로 하여금, 저장될 상기 파일의 파일 메타 데이터를 암호화하고 상기 파일 메타 데이터를 제1 분산 파일 메타 데이터(90a) 및 제2 분산 파일 메타 데이터(90b)로 분산하게 한다.
다음으로, 단계 S55에서, 제어 모듈(10)은 제1 및 제2 분산 파일들(91a 및 91b)과, 제1 분산 파일 메타 데이터(90a) 및 제2 분산 파일 메타 데이터(90b)를 메인 메모리(102)에 저장한다. 이러한 분산 파일들 및 분산 메타 데이터의 조각들은 이때, 대응하는 저장장치들에 기록되지는 않는다.
그 후, 단계 S56에서 가상 드라이브를 마운트 해제하기 위한 요청이 감지되면, 제어 모듈(10)은 단계 S57에서 가상 드라이브를 비활성화한다. 예를 들어, 이는, 표시된 가상 드라이브를 화면으로부터 사라지게 한다. 단계 S58에서, 제어 모듈(10)은 제1 분산 파일(91a) 및 제1 분산 파일 메타 데이터(90a)를 제1 분산 드라이브(70a)에 기록한다. 단계 S59에서, 제어 모듈(10)은 제2 분산 파일(91b) 및 제2 분산 파일 메타 데이터(90b)를 제2 분산 드라이브(70b)에 기록한다. 말할 필요 없이, 단계 S58은 연결 인터페이스(106)를 통해 정보처리장치(100)에 연결되는 외부 저장장치(400)와 함께 수행된다.
그 뒤, 도 10에 도시된 파일 분산 프로세스가 종료된다.
(2) 파일 분산 - 제2 변형
도 11은 비밀분산법을 사용하여 파일을 분산하기 위한 파일 분산 프로세스의 흐름의 제2 변형을 도시한 순서도이다. 도 11에 도시된 파일 분산 프로세스는 전술된 제2 동작 모드(캐시 모드)에서의 프로세스의 일 예이다. 도 11에서 단계 S61 내지 S64는 도 10에서의 단계 S51 내지 S54와 비슷하게 수행될 수 있다.
단계 S61에서, 제어 모듈(10)은 가상 드라이브 내 파일의 파일 저장 요청을 감지한다. 일단 파일 저장 요청이 감지되면, 제어 모듈(10)은 단계 S62에서, 저장될 상기 파일의 파일 이미지를 메인 메모리(10) 내의 가상 드라이브를 위한 저장영역에 저장한다. 다음으로, 단계 S63에서, 제어 모듈(10)은 비밀분산 모듈(30)로 하여금 가상 드라이브 내 저장될 파일의 파일 이미지를 암호화하게 한다. 다음으로, 단계 S64에서, 제어 모듈(10)은 비밀분산 모듈(30)로 하여금, 상기 암호화된 파일 이미지를 제1 및 제2 분산 파일들(91a 및 91b)로 분산하게 한다. 또한, 제어 모듈(10)은 비밀분산 모듈(30)로 하여금 저장될 상기 파일의 파일 메타 데이터를 암호화하게 하고, 상기 파일 메타 데이터를 제1 분산 파일 메타 데이터(90a) 및 제2 분산 파일 메타 데이터(90b)로 분산하게 한다.
다음으로, 단계 S65에서, 제어 모듈(10)은 제2 분산 파일(91b) 및 제2 분산 파일 메타 데이터(90b)를 제2 분산 드라이브(70b)에 기록한다. 단계 S66에서, 제어 모듈(10)은 제1 분산 파일(91a) 및 제1 분산 파일 메타 데이터(90a)를 메인 메모리(102)에 저장한다. 이때, 제1 분산 파일(91a) 및 제1 분산 파일 메타 데이터(90a)가 외부 저장장치(400)에 기록되지는 않는다.
그 후, 단계 S67에서 가상 드라이브를 마운트 해제하기 위한 요청이 감지되면, 제어 모듈(10)은 단계 S68에서 가상 드라이브를 비활성화한다. 예를 들어, 이는, 표시된 가상 드라이브가 화면으로부터 사라지게 한다. 다음으로, 단계 S69에서, 제어 모듈(10)은 제1 분산 파일(91a) 및 제1 분산 파일 메타 데이터(90a)를 제1 분산 드라이브(70a)에 기록한다. 말할 필요 없이, 단계 S69는 연결 인터페이스(106)를 통해 정보처리장치(100)에 연결되는 외부 저장장치(400)와 함께 수행된다.
그 뒤, 도 11에 도시된 파일 분산 프로세스가 종료된다.
전술된 제1 또는 제2 변형에 따르면, 적어도 분산 파일 및 분산 파일 메타 데이터의 외부 저장장치(400)로의 쓰기(writing)는, 파일을 저장하는 때가 아닌, 가상 드라이브를 마운트 해제하는 때에 수행될 것이다. 이에 따라 외부 저장장치(400)는 덜 빈번하게 접근되어, 파일 저장 프로세스의 지연을 감소시킨다. 분산 드라이브에 기록되기 전의 분산 파일 및 분산 파일 메타 데이터는 정보처리장치(100)의 메인 메모리(102) 상에 유지된다. 그러므로, 사용자가 정보처리장치(100)로부터 외부 저장장치(400)를 (예를 들어, 가상 드라이브를 마운트 해제하지 않고) 갑자기 연결 해제하는 경우, 분산 파일 및 분산 파일 메타 데이터는 메인 메모리(102) 상에 보존되며, 그에 따라 파일의 갱신된 내용이 사용자의 의지에 거슬러 손실되는 것을 방지할 수 있다. 일단 외부 저장장치(400)가 정보처리장치(100)에 다시 연결되면, 메인 메모리(102) 상의 최신 분산 파일 및 분산 파일 메타 데이터가 외부 저장장치(400)의 분산 드라이브에 다시 기록될 수 있다.
상기 제1 및 제2 변형들은 예를 들어, 외부 저장장치(400)가 정보처리장치(100)에 무선으로 연결되는 시나리오에서 더 유용하다. 이는, 무선 연결은 (신호 강도, 잡음 수준, 및 다른 장치들로부터의 간섭과 같은) 무선 채널 조건들에 따라 비교적 자주 방해될 수 있지만, 분산 파일들의 일관성(consistency)은 전술된 동작 모드에서 무선 채널 조건에 영향 받지 않고 안전하게 유지되기 때문이다. 보안 측면에서, (제1 분산 파일(91a) 및 제2 분산 파일(91b)과 같은) 분산 파일들의 셋트를 오랫동안 동일한 장치 상에 유지하는 것은 바람직하지 않음을 주목해야 한다. 따라서, 제어 모듈(10)은 예를 들어, 타이머를 사용하여, 시간을 측정할 수 있고, 연결 해제로부터 경과된 시간이 미리 정의된 시간 주기를 초과하는 경우, 제어 모듈(10)은 메인 메모리(102) 상의 분산 파일 및 분산 파일 메타 데이터를 삭제할 수 있다.
(3) 다른 변형
본 발명의 또 다른 측면에 따르면, 정보처리장치의 프로세서에 의해 실행되는 경우 상기 프로세서로 하여금, 비밀분산법을 사용하여 비밀 데이터를 분산시킴으로써 복수의 분산 데이터 조각들을 형성하도록 구성되는 비밀분산 모듈; 및 대응하는 저장장치의 데이터 영역으로부터 또는 데이터 영역으로 상기 복수의 분산 데이터 조각들의 각 조각을 독출 또는 기록하는 것을 제어하도록 구성되는 제어 모듈로서 기능하게 하는 컴퓨터 프로그램이 제공될 수 있으며, 상기 제어 모듈은 가상 드라이브 내에 상기 비밀 데이터를 유지하도록 더 구성되고, 상기 제어 모듈은, 제1 저장장치의 정보처리장치로의 연결을 감지하는 것에 반응하여 상기 제1 저장장치로부터 가상 드라이브를 생성하기 위한 적어도 암호화된 가상 드라이브 메타 데이터를 독출하며; 상기 가상 드라이브 메타 데이터를 복호화하고; 상기 복호화된 가상 드라이브 메타 데이터에 기초하여 상기 가상 드라이브를 생성하며; 상기 제1 저장장치의 상기 정보처리장치로부터의 연결 해제가 감지되는 경우 상기 가상 드라이브를 비활성화하도록 더 구성된다. 가상 드라이브 내 파일의 파일 이미지는 비밀분산 모듈에 의해 적어도 제1 분산 파일 및 제2 분산 파일로 분산되며, 상기 제1 분산 파일은 상기 제1 저장장치에 기록되고, 상기 제2 분산 파일은 상기 제1 저장장치와는 상이한 제2 저장장치에 기록된다. 대응하는 비밀관리방법 및 정보처리시스템 또한 제공될 수 있다.
그러한 구성에 따르면, 사용자가 비밀 데이터를 처리하는 공간을 제공하는 가상 드라이브를 생성하기 위한 메타 데이터는 적어도 암호화에 의해 보호된다. 가상 드라이브 내의 비밀 데이터는 비밀분산법에 의해 보호된다. 그러므로, 비밀 데이터를 유출 위험으로부터 이중 장벽으로 보호할 수 있다. 또한, 외부 저장장치의 연결 및 연결 해제 동작으로 생성부터 사라짐까지의 가상 드라이브의 생명주기를 매칭(tie)시킬 수도 있으며, 이는 사용자에 의해 직관적으로 이해될 수 있다.
본 발명의 더욱 다른 측면에 따르면, 정보처리장치의 프로세서에 의해 실행되는 경우 상기 프로세서로 하여금, 비밀분산법을 사용하여 비밀 데이터를 분산함으로써 복수의 분산 데이터 조각들을 형성하도록 구성되는 비밀분산 모듈; 및 상기 복수의 분산 데이터 조각들의 각 조각을 대응하는 저장장치의 데이터 영역에 기록하는 것을 제어하도록 구성되는 제어 모듈로서 기능하게 하는 컴퓨터 프로그램이 제공될 수 있으며, 상기 비밀 데이터는 상기 정보처리장치의 가상 드라이브 내에 유지되고, 상기 제어 모듈은, 가상 드라이브를 생성하기 위한 가상 드라이브 메타 데이터를 획득하고; 상기 획득된 가상 드라이브 메타 데이터에 기초하여 정보처리장치의 파일 시스템 상에 가상 드라이브의 설정을 등록함으로써 가상 드라이브를 생성하며; 상기 파일 시스템을 통해 가상 드라이브 내에서 처리되는 파일을 저장하기 위한 파일 저장 요청을 감지하고; 상기 파일 저장 요청이 감지되는 경우 비밀분산 모듈로 하여금 저장될 파일의 파일 이미지를 비밀분산법을 사용하여 적어도 제1 분산 파일 및 제2 분산 파일로 분산하게 하도록 더 구성된다. 상기 제1 분산 파일은 외부 저장장치인 제1 저장장치에 기록되고, 상기 제2 분산 파일은 상기 제1 저장장치와는 상이한 제2 저장장치에 기록된다. 대응하는 비밀관리방법 및 정보처리시스템 또한 제공될 수 있다.
그러한 구성에 따르면, 파일 시스템은 비밀분산법을 사용하여 가상 드라이브 상에서 처리되는 비밀 데이터를 보호하는 메커니즘과, 사용자에 의해 직접 동작되는 어플리케이션 사이에 개입된다. 이는, 가상 드라이브로 하여금, 다양한 이벤트에 의해 트리거되고 사용자 또는 어플리케이션으로부터 만들어진 파일 저장 요청을 공통의 프로그램 인터페이스를 통해 수신하게 하며, 어떠한 복잡한 로직을 요구하지 않고도 저비용으로 비밀분산 기술을 구현할 수 있다. 또한, 어플리케이션 상에 임의의 변형 영향을 주지 않고도 시스템의 부드러운 동작을 구현할 수도 있다.
본 발명의 바람직한 실시예들은 첨부된 도면을 참조하여 상술되었지만, 본 발명은 상기 예들에 제한되지 않는다. 본 기술분야에서 숙련된 기술자는 첨부되는 특허청구범위 내에서 다양한 대체 및 변형들을 이해할 수 있을 것이며, 이들이 본 발명의 기술적 범위 하에서 자연스럽게 이뤄질 것임을 이해해야 한다.
예를 들어, 순서도를 사용하여 여기에 설명된 프로세스들은 반드시 상기 순서도에 설명된 순서대로 수행될 필요가 없다. 몇몇 프로세스 단계들은 병렬적으로 실행될 수 있다. 또한, 부가적인 프로세스 단계가 적용될 수도 있고, 몇몇 프로세스 단계들은 생략될 수 있다.
여기 설명된 컴퓨터 프로그램들은 정보처리장치 내부 또는 외부에 설치된 비일시적인 컴퓨터 독출가능 매체에 저장된다. 각각의 이러한 프로그램들은 예를 들어, RAM 상에 로드되고, 실행 시, 프로세서에 의해 실행된다. 컴퓨터 독출가능 매체는 읽기 전용 메모리(read only memory, ROM), 콤팩트 디스크(compact disc, CD), 디지털 다기능 디스크(digital versatile disc, DVD), HDD, SSD, 자기-광학 디스크, 자기 디스크, 자기 테이프, 카세트 테이프, 반도체 메모리, 또는 이들의 조합과 같은 임의의 타입의 매체일 수 있다.
100, 100a, 100b: 정보처리장치
101: 프로세서
102: 메인 메모리
103: 디스플레이
104: 입력 인터페이스
105: 보조저장장치
106: 연결 인터페이스
400, 400a, 400b, 400c: 외부 저장장치

Claims (8)

  1. 정보처리장치의 프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금,
    비밀분산법을 사용하여 비밀 데이터를 분산시킴으로써 복수의 분산 데이터 조각들을 형성하도록 구성되는 비밀분산 모듈; 및
    상기 복수의 분산 데이터 조각들의 각 조각을, 대응하는 저장장치의 데이터 영역으로부터 또는 데이터 영역으로 독출 또는 기록하는 것을 제어하도록 구성되는 제어 모듈로서 기능하게 하며,
    상기 제어 모듈은 상기 정보처리장치에 설정 등록되어있는 가상 드라이브 내에 상기 비밀 데이터를 유지하도록 더 구성되고,
    상기 제어 모듈은:
    상기 가상 드라이브 내의 파일의 저장이 요청되는 경우, 상기 비밀분산 모듈로 하여금, 상기 파일의 파일 이미지를, 외부 저장장치인 제1 저장장치에 기록되는 제1 분산 파일 및 상기 제1 저장장치와 다른 제2 저장장치에 기록되는 제2 분산 파일을 포함하는 복수의 분산 파일로 분산하고, 적어도 상기 제1 분산 파일을 상기 정보처리장치의 메모리에 저장하고;
    상기 가상 드라이브의 마운트 해제가 요청되는 경우, 상기 제1 분산 파일을 상기 제1 저장장치에 기록하고 상기 가상 드라이브를 마운트 해제하도록 더 구성되며,
    상기 제어모듈은, 상기 정보처리장치로부터 상기 제1 저장장치의 연결 해제가 감지될 때, 상기 가상 드라이브는 마운트 해제하지만 상기 제1 분산 파일은 상기 메모리에 보존되도록 더 구성되는,
    컴퓨터 프로그램이 저장된 저장매체.
  2. 삭제
  3. 제1항에 있어서,
    상기 제어모듈은, 상기 연결 해제로부터 경과된 시간이 미리 정의된 시간 주기를 초과하는 경우, 상기 메모리에 있는 제1 분산 파일을 삭제하도록 더 구성되는,
    컴퓨터 프로그램이 저장된 저장매체.
  4. 제1항에 있어서,
    상기 제1 저장장치는 상기 정보처리장치에 무선으로 연결된 외부 저장장치인,
    컴퓨터 프로그램이 저장된 저장매체.
  5. 제1항에 있어서,
    상기 제2 저장장치는 상기 정보처리장치의 보조저장장치이고;
    상기 제어모듈은, 상기 가상 드라이브 내 파일의 저장이 요청될 때, 상기 제2 분산 파일을 상기 제2 저장장치에 기록하도록 더 구성되는.
    컴퓨터 프로그램이 저장된 저장매체.
  6. 제1항에 있어서,
    상기 제어모듈은,
    상기 가상 드라이브 내 파일의 저장이 요청될 때, 상기 제2 분산 파일을 상기 정보처리장치의 메모리에 기록하고;
    상기 가상 드라이브의 마운트 해제가 요청되면, 상기 제2 분산 파일을 상기 제2 저장장치에 기록하도록 더 구성되는,
    컴퓨터 프로그램이 저장된 저장매체.
  7. 비밀분산법을 사용하여 정보처리장치에서 수행되는 비밀관리방법으로서, 상기 비밀분산법은 비밀 데이터를 분산하여 복수의 분산 데이터 조각들을 형성할 수 있고,
    상기 비밀관리방법은,
    상기 정보처리장치에 설정 등록되어있는 가상 드라이브를 생성하고, 상기 가상 드라이브는 상기 비밀 데이터를 내부에 유지하도록 구성된 것이며;
    상기 가상 드라이브 내의 파일의 저장이 요청되는 경우, 상기 비밀분산법을 사용하여, 상기 저장될 파일의 파일 이미지를, 외부 저장장치인 제1 저장장치에 기록되는 제1 분산 파일 및 상기 제1 저장장치와 다른 제2 저장장치에 기록되는 제2 분산 파일을 포함하는 복수의 분산 파일로 분산하고, 상기 정보처리장치의 메모리에 적어도 제1 분산 파일을 저장하며;
    상기 가상 드라이브의 마운트 해제가 요청되면, 상기 제1 분산 파일을 상기 제1 저장장치에 기록하고, 상기 가상 드라이브를 마운트 해제하는 것을 포함하고,
    상기 정보처리장치로부터 상기 제1 저장장치의 연결 해제가 감지될 때, 상기 가상 드라이브는 마운트 해제하지만 상기 제1 분산 파일은 상기 메모리에 보존되도록하는 것을 더 포함하는,
    비밀관리방법.
  8. 비밀분산법을 사용하여 비밀 데이터를 분산시킴으로써 복수의 분산 데이터 조각들을 형성하도록 구성되는 비밀분산 모듈; 및
    상기 복수의 분산 데이터 조각들의 각 조각을, 대응하는 저장장치의 데이터 영역으로부터 또는 데이터 영역으로 독출 또는 기록하는 것을 제어하도록 구성되는 제어 모듈을 포함하고,
    상기 제어 모듈은 상기 비밀 데이터를 정보처리장치에 등록된 가상 드라이브 내에 유지하도록 더 구성되고,
    상기 제어 모듈은,
    상기 가상 드라이브 내의 파일의 저장이 요청되는 경우, 상기 비밀분산 모듈로 하여금, 상기 파일의 파일 이미지를, 외부 저장장치인 제1 저장장치에 기록되는 제1 분산 파일 및 상기 제1 저장장치와 다른 제2 저장장치에 기록되는 제2 분산 파일을 포함하는 복수의 분산 파일로 분산하고, 상기 정보처리장치의 메모리에 적어도 제1 분산파일을 저장하고;
    상기 가상 드라이브의 마운트 해제가 요청되면, 상기 제1 분산 파일을 상기 제1 저장장치에 기록하고, 상기 가상 드라이브를 마운트 해제하도록 더 구성되며,
    상기 제어모듈은, 상기 정보처리장치로부터 상기 제1 저장장치의 연결 해제가 감지될 때, 상기 가상 드라이브는 마운트 해제하지만 상기 제1 분산 파일은 상기 메모리에 보존되도록 더 구성되는,
    정보처리시스템.
KR1020170086237A 2016-01-13 2017-07-07 컴퓨터 프로그램, 비밀관리방법 및 시스템 KR101852725B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2016004818 2016-01-13
JPJP-P-2016-004818 2016-01-13
JP2016117998A JP6019514B1 (ja) 2016-01-13 2016-06-14 コンピュータプログラム、秘密管理方法及びシステム
JPJP-P-2016-117998 2016-06-14

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020160097238A Division KR101760617B1 (ko) 2016-01-13 2016-07-29 컴퓨터 프로그램, 비밀관리방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20170085021A KR20170085021A (ko) 2017-07-21
KR101852725B1 true KR101852725B1 (ko) 2018-04-27

Family

ID=57216886

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020160097238A KR101760617B1 (ko) 2016-01-13 2016-07-29 컴퓨터 프로그램, 비밀관리방법 및 시스템
KR1020170086231A KR101852724B1 (ko) 2016-01-13 2017-07-07 컴퓨터 프로그램, 비밀관리방법 및 시스템
KR1020170086237A KR101852725B1 (ko) 2016-01-13 2017-07-07 컴퓨터 프로그램, 비밀관리방법 및 시스템

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020160097238A KR101760617B1 (ko) 2016-01-13 2016-07-29 컴퓨터 프로그램, 비밀관리방법 및 시스템
KR1020170086231A KR101852724B1 (ko) 2016-01-13 2017-07-07 컴퓨터 프로그램, 비밀관리방법 및 시스템

Country Status (3)

Country Link
US (3) US9722779B1 (ko)
JP (5) JP6019514B1 (ko)
KR (3) KR101760617B1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9665638B2 (en) 2012-10-30 2017-05-30 FHOOSH, Inc. Systems and methods for secure storage of user information in a user profile
WO2016049227A1 (en) 2014-09-23 2016-03-31 FHOOSH, Inc. Secure high speed data storage, access, recovery, and transmission
US10579823B2 (en) 2014-09-23 2020-03-03 Ubiq Security, Inc. Systems and methods for secure high speed data generation and access
US10929363B2 (en) * 2016-11-11 2021-02-23 International Business Machines Corporation Assisted problem identification in a computing system
JP6969187B2 (ja) * 2017-07-21 2021-11-24 富士通株式会社 記憶制御プログラム、記憶制御方法および記憶制御装置
KR101941786B1 (ko) 2017-11-01 2019-01-28 주식회사 알티캐스트 블록체인기술을 이용한 컨텐츠 유통 관리 시스템 및 방법
US20190138621A1 (en) * 2017-11-07 2019-05-09 FHOOSH, Inc. High-speed secure virtual file system
US11349656B2 (en) 2018-03-08 2022-05-31 Ubiq Security, Inc. Systems and methods for secure storage and transmission of a data stream
KR102500497B1 (ko) * 2018-03-09 2023-02-15 삼성에스디에스 주식회사 블록체인 기반의 접근 제어 장치 및 그 동작 방법
CN108710471A (zh) * 2018-03-27 2018-10-26 陈迎春 一种数据销毁方法、装置、服务器与系统
CN108847929B (zh) * 2018-05-28 2020-12-01 数字乾元科技有限公司 私钥存储的门限恢复方法及系统
TWI698740B (zh) * 2018-08-27 2020-07-11 宏碁股份有限公司 還原映像檔的部署方法與使用此方法的電子裝置
US11323267B1 (en) 2018-11-28 2022-05-03 Wells Fargo Bank, N.A. Systems and methods for maintaining confidentiality, integrity, and authenticity of the last secret
US11626982B1 (en) 2018-11-28 2023-04-11 Wells Fargo Bank, N.A. Systems and methods for maintaining confidentiality, integrity, and authenticity of the last secret
CN109726525A (zh) * 2018-12-17 2019-05-07 掌阅科技股份有限公司 书籍内容的权限控制方法、计算设备及计算机存储介质
US11218307B1 (en) 2019-04-24 2022-01-04 Wells Fargo Bank, N.A. Systems and methods for generation of the last obfuscated secret using a seed
KR20220140639A (ko) * 2019-05-22 2022-10-18 묘타, 인크. 보안, 복원, 및 제어가 강화된 분산된 데이터 스토리지를 위한 방법 및 시스템
KR102305680B1 (ko) * 2019-10-11 2021-09-27 김윤보 복수의 스토리지를 이용한 보안정보 저장 시스템
US11841961B2 (en) 2020-07-02 2023-12-12 International Business Machines Corporation Management of computing secrets
JP7147899B2 (ja) * 2021-03-12 2022-10-05 富士通株式会社 取得制御プログラム、取得制御方法および取得制御装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007073004A (ja) * 2005-09-09 2007-03-22 Canon Inc データ保全情報装置、分散ストレージシステム及びその方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4204448B2 (ja) * 2002-11-26 2009-01-07 パナソニック株式会社 記録媒体を着脱可能な記録媒体管理装置、着脱可能な記録媒体を管理する記録媒体管理方法、記録媒体管理プログラム、及びシステムlsi
WO2006114841A1 (ja) 2005-04-08 2006-11-02 Trusted Solutions Corporation 情報処理方法および情報処理システム
JP2007140406A (ja) 2005-11-22 2007-06-07 Global Friendship Inc 電子情報伝送方法
JP2008139996A (ja) 2006-11-30 2008-06-19 Hitachi Software Eng Co Ltd 情報漏洩抑止システム及びデータ保存方法
CN102428686A (zh) * 2009-05-19 2012-04-25 安全第一公司 用于安全保护云中的数据的系统和方法
US8819230B2 (en) * 2011-11-05 2014-08-26 Zadara Storage, Ltd. Virtual private storage array service for cloud servers
US9569633B2 (en) * 2012-06-29 2017-02-14 Intel Corporation Device, system, and method for processor-based data protection
KR101497669B1 (ko) 2013-04-29 2015-03-11 서울대학교산학협력단 일정 수 이상의 파일 조각으로 원본 파일을 복구하는 파일 관리 장치 및 방법
US9584310B2 (en) * 2014-03-19 2017-02-28 Nxp B.V. Protecting a white-box implementation against attacks
US9251090B1 (en) * 2014-06-03 2016-02-02 Amazon Technologies, Inc. Hypervisor assisted virtual memory obfuscation
JP5951702B2 (ja) * 2014-08-07 2016-07-13 日本電信電話株式会社 ファイルシステム、秘密分散サーバ、ファイル管理方法及びプログラム
JP2016115036A (ja) * 2014-12-12 2016-06-23 エヌ・ティ・ティ・ソフトウェア株式会社 データ格納制御装置、データ格納制御方法、及びプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007073004A (ja) * 2005-09-09 2007-03-22 Canon Inc データ保全情報装置、分散ストレージシステム及びその方法

Also Published As

Publication number Publication date
KR20170085020A (ko) 2017-07-21
US9866374B2 (en) 2018-01-09
US20170201372A1 (en) 2017-07-13
JP6019514B1 (ja) 2016-11-02
JP2017126319A (ja) 2017-07-20
KR20170085021A (ko) 2017-07-21
JP2017126318A (ja) 2017-07-20
JP6055988B1 (ja) 2017-01-11
JP6061171B1 (ja) 2017-01-18
KR101852724B1 (ko) 2018-04-27
JP6061170B1 (ja) 2017-01-18
JP6055989B1 (ja) 2017-01-11
KR101760617B1 (ko) 2017-07-31
US20170288860A1 (en) 2017-10-05
JP2017126314A (ja) 2017-07-20
JP2017126321A (ja) 2017-07-20
US9780947B1 (en) 2017-10-03
JP2017126322A (ja) 2017-07-20
US9722779B1 (en) 2017-08-01
US20170288859A1 (en) 2017-10-05

Similar Documents

Publication Publication Date Title
KR101852725B1 (ko) 컴퓨터 프로그램, 비밀관리방법 및 시스템
CN108140097B (zh) 组织数据的被动加密
KR102340219B1 (ko) 스토리지 디바이스에 대한 신속한 데이터 보호
US11695806B2 (en) Intercepting calls for encryption handling in persistent access multi-key systems
US11232222B2 (en) Access management system, access management method and program
KR100678927B1 (ko) 비보안 영역에 보안 영역을 할당하는 방법 및 이를제공하는 휴대용 저장 장치
CN103020537A (zh) 数据加密方法和装置、数据解密方法和装置
US9563789B1 (en) Separate cryptographic keys for protecting different operations on data
US9147087B2 (en) Method of accessing a data storage device
JP7238539B2 (ja) ファイル暗号化装置と方法とプログラム
KR101371031B1 (ko) 드라이브 기반 파일 보안 시스템
GB2434887A (en) Access control by encrypting stored data with a key based on a &#34;fingerprint&#34; of the device storing the data
JP2018169740A (ja) ファイルシステムおよびファイル管理方法
KR20140093401A (ko) 컴퓨터 네트워크상의 보안 방법

Legal Events

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