KR20140048879A - 안전한 데이터 저장 - Google Patents

안전한 데이터 저장 Download PDF

Info

Publication number
KR20140048879A
KR20140048879A KR1020137031729A KR20137031729A KR20140048879A KR 20140048879 A KR20140048879 A KR 20140048879A KR 1020137031729 A KR1020137031729 A KR 1020137031729A KR 20137031729 A KR20137031729 A KR 20137031729A KR 20140048879 A KR20140048879 A KR 20140048879A
Authority
KR
South Korea
Prior art keywords
file
data
hash algorithm
location
identifier
Prior art date
Application number
KR1020137031729A
Other languages
English (en)
Inventor
제임스 로버트 올트먼스
벤자민 이. 즈베버
Original Assignee
아브시오 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아브시오 코포레이션 filed Critical 아브시오 코포레이션
Publication of KR20140048879A publication Critical patent/KR20140048879A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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/13File access structures, e.g. distributed indices
    • 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/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Landscapes

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

Abstract

중요한 시스템 파일의 위치를 모호하게 하기 위한 방법 및 시스템을 제공한다. 구체적으로, 시스템 파일 내에 저장된 파일의 위치가 해쉬 알고리즘에 다양한 입력을 적용함으로써 선택된다. 시스템 파일에 대해서는, 해쉬 알고리즘에 적용되는 입력은 사용자 이름 및 패스워드를 포함할 수 있다. 데이터 파일에 대해서는, 해쉬 알고리즘에 제공되는 파일은 파일 이름을 포함할 수 있다. 랜덤한 파일 위치를 제공하는 것에 부가하여, 본 발명의 실시예에 따른 파일 시스템은 파일 이름, 크기 및 작성 일자를 포함한 기타 정보를 균일화할 수 있다.

Description

안전한 데이터 저장{SECURE DATA STORAGE}
본 발명은 안전한 데이터 저장을 제공하는 시스템 및 방법에 관한 것으로, 보다 구체적으로는 중요 시스템 파일의 위치가 난독화(obfuscation)되는 파일 시스템에 관한 것이다.
컴퓨터 및 데이터 시스템의 보안은 중요한 관심사이다. 전자 방식으로 저장되는 데이터를 안전하게 하기 위해, 다양한 기술이 채용되고 있다. 예컨대, 데이터에 대한 물리적 액세스가 제한될 수 있다. 그러나, 데이터에 대한 원격 액세스 및 클라우드 기반 컴퓨팅이 보편화됨에 따라, 데이터를 물리적으로 구획화(compartmentalization)하는 것은 불편하며, 점점 현실적이지 않은 것으로 되고 있다.
전자 데이터를 안전하게 하는 다른 기술은 패스워드 및 암호화의 이용을 수반한다. 패스워드는 사용자가 시스템에 대한 액세스가 허가되기 전에 요구될 수 있다. 대부분의 암호화 체계는 안전하게 하고자 하는 데이터를 암호화 키를 이용하여 스크램블링함으로써 동작한다. 그러므로, 보호된 데이터에 대한 액세스는, 요구된 패스워드의 제공, 적합한 알고리즘의 사용, 및 데이터를 암호화하기 위해 사용된 키에 대한 보수 또는 짝을 요구할 수 있다. 패스워드, 암호화 알고리즘, 및 키의 길이에 따라서는, 이와 같이 보호된 데이터는 액세스하기가 상당히 어렵게 될 수 있다.
그러나, 이러한 시스템의 한 가지 취약점은, 해커 또는 기타 허가되지 않은 자가 필수적인 패스워드 및/또는 키를 획득한 경우, 그 자가 암호화된 데이터에 대한 완전한 액세스를 갖게 된다는 점이다. 암호화 키를 활용하는 시스템의 또 다른 취약점은, 해커가 암호화된 정보에 대해 액세스하고자 할 때, 해커가 대개는 암호화 키를 내포하고 있는 파일을 포함하는 비교적 작은 파일을 분석함으로써 공격을 개시할 수 있다는 점이다. 이에 부가하여, 해커는 시스템 초기화의 일자와 시간에 작성되거나 또는 그 부근에 작성된 파일에 집중할 수 있으며, 그 이유는 이러한 파일이 키 저장장소를 내포하고 있거나 키 저장장소를 가리키고 있는 시스템 파일을 포함하기가 쉽기 때문이다. 공격을 집중할 정보의 볼륨을 한정함으로써, 암호화된 파일 시스템의 보안이 보다 쉽게 극복되어 버리게 될 수 있다.
본 발명의 실시예는 종래 기술의 이러한 문제점 및 기타 문제점과 단점을 해소하기 위한 것이다. 본 발명의 실시예에 따라, 외형적으로 균질한 파일 시스템 또는 난독화된 파일 시스템이 제공된다. 파일 시스템은 시스템 파일 및/또는 데이터 파일이 시스템에 저장될 때 적어도 몇몇의 이들 파일에 대한 랜덤한 저장 위치를 활용한다. 이것은 데이터 또는 컨텐츠를 잠금해제(unlock)하기 위해 요구되는 키를 포함하고 있는 파일과 같은 시스템 데이터를 안전하게 하기 위해 이용되는 정보를 포함하고 있는 파일의 위치를 해커가 찾아내는 것을 더욱 곤란하게 한다.
본 발명의 실시예에 따라, 난독화된 파일 시스템 또는 구조를 구현하는 클라이언트 또는 시스템 애플리케이션은 시스템에 의해 작성되거나 시스템 상에 저장된 파일을 고유의 해쉬된 파일 위치(unique hashed file location)에 위치시킨다. 이 위치는 센트럴 인덱스(central index)에 저장되고, 이 센트럴 인덱스는 암호화되고, 사용되지 않을 때에 임의의 기타 파일처럼 파일 시스템 내에 저장된다. 더욱이, 센트럴 인덱스의 위치는 임의의 명백한 위치 또는 보편적으로 알려진 위치에 저장되지 않는다. 구체적으로, 센트럴 인덱스의 위치에 대한 상이한 해쉬가 각각의 상이한 사용자에 대해 발생될 것이다. 센트럴 인덱스의 위치는 비밀 데이터 또는 입력과 알려진 데이터 또는 입력의 조합에 기초하여 계산될 수 있다. 비밀 데이터 또는 입력은 반드시 이러한 것으로 한정되지는 않지만 패스워드를 포함할 수 있다. 이에 따라, 패스워드가 간혹 본 명세서에서는 비밀 입력을 지칭하는 것으로 이용되지만, 본 발명의 실시예는 패스워드 이외의 형태의 비밀 입력을 이용할 수 있다. 따라서, 일례로서, 센트럴 인덱스의 위치가 시스템 사용자에 대한 사용자 성명 및 패스워드에 기초하여 계산될 수 있다. 또 다른 예로서, 센트럴 인덱스의 위치는 개인 키 또는 기타 비밀 데이터 또는 입력을 포함하는 입력으로부터 계산될 수 있다. 이에 따라, 센트럴 인덱스의 위치를 계산하는 것은 사용자의 패스워드와 같은 비밀 정보에 대한 지식에 의존한다. 이에 부하여, 이러한 구성은 상이한 사용자 및/또는 사용자 성명과 패스워드 조합에 대한 상이한 센트럴 인덱스 및 인덱스 위치를 가능하게 하면서, 상이한 사용자 및/또는 사용자 성명과 패스워드 조합 간의 안전성을 유지한다.
센트럴 인덱스의 위치는, 사용자의 성명 및 패스워드, 솔트(salt), 및 파일 위치를 계산하기 위해 선택적으로 추가되는 고유 정보가 건네질 수 있는 해쉬 함수 또는 알고리즘에 의해, 또는 비밀 데이터와 알려진 데이터의 임의의 조합을 해쉬 함수에 통과시킴으로써 결정된다. 이와 같이 파일 위치를 결정하면, 그 위치 및 패스워드는 그 위치에서 발견된 파일을 암호해독하기 위해 패스워드 또는 기타 비밀 데이터를 이용함으로써 검증될 수 있다. 암호해독이 실패하거나 또는 결정된 위치에서 파일이 발견되지 않으면, 입력 데이터가 유효하지 않은 것으로 결론을 내릴 수 있다. 이러한 검증은 정확한 패스워드를 검색 가능한 방식으로 영구적으로 저장할 필요성 또는 시스템 파일을 표준 위치 또는 알려진 위치에 저장되도록 할 필요성을 제거한다. 이에 따라, 패스워드 또는 기타 비밀 데이터 또는 입력은 파일 위치확인 메카니즘의 중요한 부분이 되고, 또한 그 파일을 암호해독하기 위한 키의 부분이 된다.
본 발명의 추가의 실시예에 따라, 한 명의 사용자가 상이한 목적을 위해 상이한 패스워드 또는 비밀 입력을 이용할 수 있다. 예컨대, 제1 패스워드 또는 비밀 입력은 시스템을 정상적으로 잠금해제할 수 있다. 이와 상이한 제2 패스워드 또는 비밀 입력은 태스크를 수행하기 위해 실행되는 스크립트를 액세스하고 개시하기 위해 이용될 수 있다. 태스크의 일례는, 시스템 와이프(system wipe)를 수행하고, 제2 패스워드 또는 비밀 입력이 듀레스 신호(duress signal)로서 셋업되는 알림 메시지를 전송하는, 백그라운드 태스크일 수 있다. 제3 패스워드 또는 비밀 입력은 대안의 시스템 컨텐츠 인덱스를 잠금해제하기 위해 구축될 수 있다. 따라서, 상이한 데이터 세트가 시스템에 동시에 저장될 수 있다. 더욱이, 다른 데이터 세트에 의한 상이한 데이터 세트의 상호관계(interrelation) 또는 지식이 요구되지 않는다. 다른 실시예에 따라, 제1 컨텐츠 인덱스를 액세스하기 위해 제1 패스워드 또는 비밀 입력이 요구될 수 있다. 이 제1 컨텐츠 인덱스를 액세스한 후, 제2 패스워드 또는 비밀 입력이 제공되면, 추가의 컨텐츠가 액세스될 수 있으며, 이 추가의 컨텐츠는 위치를 계산하고 컨텐츠를 암호해독하기 위해 제1 패스워드/비밀 입력 및 제2 패스워드/비밀 입력 양자 모두를 요구할 수 있는 제2 컨텐츠 인덱스를 통해 액세스된다. 이 원리는 n개의 패스워드/비밀 입력으로 확장될 수 있다. 다른 예로서, 상이한 파일 위치를 계산하기 위해 상이한 알고리즘이 이용될 수도 있고, 및/또는 비밀 입력에의 상이한 솔트의 추가가 이용될 수도 있다. 예컨대, 센트럴 인덱스를 잠금해제하기 위해 하나의 해쉬 솔트가 이용될 수 있는 한편, 센트럴 인덱스와는 상이한 위치에서 비대칭적 개인 암호화 키(asymmetric private encryption key)를 잠금해제하기 위해 또 다른 해쉬 솔트가 이용될 수 있으며, 이 모두는 하나의 패스워드 또는 비밀 입력의 엔트리에 응답하여 이루어진다. 다른 실시예에 따라, 디바이스 식별 및 기타 디바이스 특정 정보가 해쉬 알고리즘(hash algorithm)의 입력에 혼합되어, 파일의 카피가 동일한 디바이스 식별자를 보고하는 특정 디바이스 또는 시스템에 의해서만 액세스 가능하도록 할 수 있다.
모든 데이터 파일의 위치가 해쉬 알고리즘의 적용을 통해 결정될 수 있다. 보다 구체적으로, 파일 이름 및 솔트가 해쉬 알고리즘에 제공될 수 있다. 이들 입력으로부터, 해쉬 알고리즘은 데이터 파일에 대한 파일 위치를 계산한다. 계산된 위치가 아직 점유되지 않았다면, 데이터 파일은 계산된 위치에 저장된다.
본 발명의 다른 실시예에 따라, 시스템 파일을 추가로 난독화하거나 균질화기 위한 방안이 취해질 수 있다. 예컨대, 시스템 및 데이터 파일의 이름이 균질화될 수 있다. 추가의 예로서, 파일은 모든 파일이 서로 동일하거나 유사한 크기를 갖도록 복수의 청크(chunk)로 분할되거나 패드(pad)될 수 있다. 공통적인 파일 크기는 사전에 정해진 크기로 되거나, 또는 시스템 상에 저장된 파일의 평균 크기 또는 공통 크기를 나타내는 크기로 될 수 있다. 이와 달리 또는 이에 부가하여, 더미 파일이 발생될 수 있다. 다른 실시예에 따라, 파일은 인덱스 파일 위치를 결정하기 위해 이용된 알고리즘에 따라 디렉토리 및 서브디렉토리의 트리 내에 위치될 수 있다. 다른 실시예에 따라, 파일에 연관된 시간 및 일자가 직접 변경되거나 또는 파일의 재생성을 통해 변경될 수 있다.
본 발명의 실시예의 추가의 특징 및 장점은 특히 첨부 도면을 참조할 때에 이하의 설명으로부터 보다 명백하게 될 것이다.
도 1은 본 발명의 실시예에 따른 안전한 파일 시스템을 통합하는 시스템의 구성요소를 도시하고 있다.
도 2는 본 발명의 실시예에 따른 일례의 파일 저장 프로세스의 특징을 도시하고 있다.
도 3은 본 발명의 실시예에 따른 일례의 시스템 파일 검색 프로세스의 특징을 도시하고 있다.
도 4는 본 발명의 실시예에 따른 시스템 파일 위치확인 프로세스의 특징을 도시하고 있다.
도 5는 본 발명의 실시예에 따른 데이터 파일 위치확인 프로세스의 특징을 도시하고 있다.
도 6은 본 발명의 실시예에 따른 다른 예의 파일 난독화 특징을 도시하고 있다.
도 7은 본 발명의 실시예에 따른 파일 시스템의 특징을 도시하고 있다.
도 8은 본 발명의 실시예에 따른 또 다른 예의 파일 시스템의 특징을 도시하고 있다.
도 9는 본 발명의 실시예에 따른 또 다른 예의 파일 시스템의 특징을 도시하고 있다.
도 10은 본 발명의 실시예에 따른 일례의 파일 시스템을 도시하고 있다.
도 1은 본 발명의 실시예에 따른 안전한 파일 시스템을 통합하는 시스템(100)의 구성요소를 도시하고 있다. 시스템(100)은 컴퓨터(104)에 의해 구현되거나 또는 컴퓨터(104)와의 접속으로 구현될 수 있다. 컴퓨터(104)는 임의의 특정한 타입 또는 클래스의 디바이스로 제한되지 않는다. 예컨대, 본 명세서에 사용된 바와 같이, 컴퓨터(104)는 범용 컴퓨터, 개인용 컴퓨터, 서버 컴퓨터, 워크스테이션, 전용 데이터 저장 시스템 또는 네트워크 연결 저장 시스템, 스마트 폰, 태블릿 컴퓨터, 게임 시스템, 산업 제어 시스템, 또는 파일 시스템에 파일의 세트 또는 파일의 모음으로서 저장된 데이터를 내포하거나 이러한 데이터에 연관되는 임의의 기타 디바이스를 포함할 수 있다. 더욱이, 시스템(100)은, 이러한 것으로 한정되지는 않지만, 복수의 상호접속된 디바이스와, 통합형 데이터 저장 시스템 및/또는 외부 데이터 저장 시스템을 포함할 수 있다.
본 발명의 실시예에 따른 시스템(100)의 일부 또는 전부를 구현하는 컴퓨터(104)는 일반적으로 프로세서(108) 및 메모리(112)를 포함한다. 이에 부가하여, 컴퓨터(104)는 하나 이상의 사용자 입력 디바이스(116) 및 하나 이상이 사용자 출력 디바이스(120)를 포함할 수 있다. 컴퓨터(104)는 또한 일반적으로 데이터 저장장치(124)를 포함한다. 이에 부가하여, 컴퓨터(104)를 다른 컴퓨터 또는 외부 저장 디바이스를 포함한 다른 디바이스에 직접 또는 네트워크를 통해 상호접속하는 것을 용이하기 위해 통신 인터페이스(126)가 제공될 수 있다.
프로세서(108)는 소프트웨어 또는 펌웨어로 인코딩된 명령을 수행하거나 실행할 수 있는 어떠한 프로세서도 포함할 수 있다. 본 발명의 다른 실시예에 따라, 프로세서(108)는 논리 회로로 인코딩된 명령어를 갖거나 명령어를 수행할 수 있는 컨트롤러 또는 ASIC(application specific integrated circuit)을 포함할 수 있다. 메모리(112)는 예컨대 프로세서에 의한 코드 또는 명령어의 실행과 관련하여 프로그램 및/또는 데이터를 저장하기 위해 이용될 수 있다. 예로서, 메모리(112)는 RAM, SDRAM 또는 기타 솔리드 스테이트 메모리를 포함할 수 있다. 일반적으로, 사용자 입력 디바이스(116)는 사용자로 하여금 패스워드 및 사용자 성명과 같은 기타 정보를 입력할 수 있도록 하는 컴퓨터(104)의 일부로서 포함된다. 컴퓨터(104)의 일부로서 제공될 수 있는 사용자 입력(116)의 예는 키보드, 키패드, 스피커, 바이오메트릭 입력 디바이스, 마우스 또는 기타 위치 인코딩 디바이스 등을 포함한다. 사용자 입력(120)은 예컨대 디스플레이, 스피커, 인디케이터 램프 등을 포함할 수 있다. 데이터 저장장치(124)는 일반적으로 프로그램 및 데이터를 위한 저장장치를 포함할 수 있다. 메모리(112)와 마찬가지로, 데이터 저장장치(124)는 솔리드 스테이트 디바이스를 포함할 수 있다. 이와 달리 또는 이에 부가하여, 데이터 저장장치(124)는, 이러한 것으로 한정되지는 않지만, 하드 디스크 드라이브, 테이프 드라이브 또는 기타 어드레스 가능한 저장 디바이스 또는 디바이스의 세트를 포함할 수 있다. 더욱이, 데이터 저장장치(124)는 컴퓨터(104)의 일체형 부품으로서 제공되거나 또는 상호접속된 데이터 저장 디바이스 또는 시스템으로서 제공될 수 있다. 데이터 저장장치(124)는 위치확인 모듈(132)을 포함하거나 구현하는 클라이언트 애플리케이션(128)을 위한 저장장치를 제공할 수 있다. 위치확인 모듈(132)은 일반적으로 다양한 입력에 기초하여 데이터 저장장치에서의 필드의 위치를 결정하고 본 명세서에 설명된 바와 같이 중요한 시스템 파일의 위치 및/또는 아이덴티티를 가리기 위한 다른 기능을 수행하도록 작동한다. 위치확인 모듈(132)은 파일 저장 위치의 생성 저장된 파일의 액세스에 관련하여 이용되는 해쉬 알고리즘(136)을 포함한다. 이에 부가하여, 데이터 저장장치(112)는 파일 시스템(140)을 위한 저장장치를 포함할 수 있다. 본 명세서의 다른 부분에서 더욱 상세하게 설명되는 바와 같이, 파일 시스템(140)은 위치확인 모듈(132)의 작동에 의해 결정된 위치에 위치된 복수의 파일(142)을 포함한다. 이들 파일(142)은 시스템 파일(144) 및 데이터 파일(148)을 포함할 수 있다. 데이터 저장장치(124)는 또한 오퍼레이팅 시스템 소프트웨어(152) 및 기타 애플리케이션 또는 데이터를 저장할 수 있다.
도 2는 본 발명의 실시예에 따른 위치확인 모듈(132)을 통합한 클라이언트 애플리케이션(128)의 동작의 특징을 도시하고 있다. 먼저, 단계 200에서는, 클라이언트 애플리케이션(128)과 실행되거나 클라이언트 애플리케이션에 연관된 컴퓨터(104)의 파일 시스템(140)에 배치하기 위한 파일(142)을 수신한다. 단계 204에서는, 수신된 파일(142)이 시스템 파일인지 또는 데이터 파일인지의 여부에 대한 판정이 이루어진다. 파일(142)이 시스템 파일(144)이면, 클라이언트 애플리케이션(128)은 사용자 성명 및 비밀 입력을 취한다(단계 208). 일례로서, 비밀 입력은 사용자 패스워드이어도 된다. 사용자 성명 및 비밀 입력을 취하는 것은 사용자가 사용자 입력(116)을 통해 사용자 성명 및 비밀 입력을 제공하도록 요청하기 위해 사용자 출력(120)을 통해 사용자에게 디스플레이되는 프롬프트를 제공하는 것을 포함할 수 있다. 사용자 성명 및 비밀 입력이 이전에 입력되었다면, 이들 항목을 취하는 것은 메모리(112) 및/또는 데이터 저장장치(124)로부터 이들 항목을 검색하는 것을 포함할 수 있다. 사용자 성명 및 비밀 입력은 그 후 해쉬 알고리즘(136)에 제공되며, 해쉬 알고리즘(136)은 시스템 파일(144)이 데이터 저장장치(124) 상의 파일 시스템(140) 내에서 위치될 지점을 결정하도록 실행된다(단계 212). 해쉬 알고리즘(136)의 실행과 관련하여, 추가의 입력으로서 솔트(salt)가 제공될 수 있다. 솔트는 클라이언트 애플리케이션(128) 및 특히 위치확인 모듈(132)에 의해 유지될 수 있다. 그 결과의 해쉬 알고리즘(136)으로부터의 출력은 시스템 파일(144)이 위치될 지점을 결정하기 위해 이용될 수 있다.
단계 204에서 파일(142)이 데이터 파일(148)인 것으로 판정되면, 클라이언트 애플리케이션(128) 및 특히 위치확인 모듈(132)은 데이터 파일(148)의 이름을 취하도록 작동한다(단계 220). 데이터 파일(148)의 이름은 데이터 파일(148)의 작성 시에 데이터 파일(148)에 연관된 이름일 수 있다. 이와 달리, 데이터 파일(148)의 이름은 예컨대 클라이언트 애플리케이션(128)이 데이터 파일(148)을 파일 시스템(140)에 저장하는 작업을 행한 후에 클라이언트 애플리케이션(128)의 위치확인 모듈(132)에 의해 할당될 수 있다. 이에 따라, 균질화된 명명 규칙(homogenized naming convention)이, 본 명세서의 다른 곳에서 더욱 상세하게 설명되는 바와 같이, 위치확인 모듈(132)에 의해 적용될 수 있다. 단계 224에서는, 위치확인 모듈(132)이 파일명(220)을 해쉬 알고리즘(136)에 제공하며, 파일 위치를 결정하기 위해 이용되는 값을 획득하기 위해 해쉬 알고리즘이 실행된다. 해쉬 알고리즘(136)의 실행과 관련하여, 솔트가 적용될 수 있다. 솔트는 시스템 파일(144)의 위치를 결정하는 것과 관련하여 사용된 솔트와 동일할 수도 있고 상이한 수도 있다.
전술한 바와 같이, 위치확인 모듈(132)의 해쉬 알고리즘(136)은 해당 파일(142)을 위치시킬 파일 시스템(140) 내의 위치를 결정하기 위해 이용되는 값을 생성하도록 작동한다. 해쉬 알고리즘(136)의 실행에 의해 생성된 값은 랜덤 또는 의사랜덤 값을 특징으로 할 수 있으며, 이 값은 파일 시스템(140) 내의 위치로서 사용되기 위해서는 해석(translation) 또는 변환(transformation)을 필요로 할 수 있다. 이에 따라, 단계 228에서는, 위치확인 모듈(132)은 해쉬 알고리즘(136)의 출력에 기초하여 파일(142)이 위치될 파일 시스템(140) 내의 위치를 결정하도록 작동한다. 본 명세서의 다른 곳에서 더욱 상세하게 설명되는 바와 같이, 파일(142) 위치를 결정하는 것은 해쉬 알고리즘(136)에 의해 생성된 값을 파싱(parsing)하는 것, 생성된 값의 세그먼트를 해석하는 것, 및/또는 파일 시스템(140) 내에서의 디렉토리 및 서브디렉토리의 생성을 포함할 수 있다.
단계 232에서는, 이전에 저장된 시스템 파일(144) 또는 데이터 파일(148)과 같은 파일이 결정된 파일 위치를 점유하고 있는지에 대한 판정이 이루어진다. 또 다른 파일이 결정된 위치를 점유하고 있다면, 파일(142)을 적정한 위치에 배치하기 위한 방안이 취해진다. 예컨대, 시스템 파일(144)이 저장되고 있고, 데이터 파일(148)과의 충돌이 있는 것으로 판정되면(단계 236), 데이터 파일(148)이 이동되고(단계 240), 시스템 파일(144)이 결정된 위치에 저장된다. 이와 달리, 저장되는 파일이 데이터 파일(148)이고, 이전에 저장된 파일(142)과의 충돌이 있는 것으로 판정되면(단계 244), 새로운 위치를 계산하기 위해 충돌 알고리즘이 적용될 수 있다(단계 248). 또 다른 대안으로서, 단계 252에서 저장되는 파일이 수신된 시스템 파일(144)인 것으로 판정되고, 또 다른 시스템 파일(144)이 결정된 위치에 이미 있다면, 프로세스는 단계 208로 복귀하여, 새로운 위치가 계산될 수 있도록 사용자가 추가의 입력을 위해 프롬프트된다. 특히, 재계산은 사용자에게 다른 비밀 입력 또는 데이터를 제공하도록 프롬프트하는 것을 포함할 수 있다. 단계 252에서, 수신된 시스템 파일(144)과 또 다른 시스템 파일(144) 간에 충돌이 검출되지 않으면, 시스템 에러 신호가 표시된다(단계 254).
파일(142)에 대해 결정된 위치가 이미 점유되지 않았으면, 파일(142)은 파일 시스템(140) 내의 결정된 위치에 저장된다(단계 256). 파일(142)을 단계 240, 248 또는 256 중의 임의의 단계에서 저장한 후, 해당 파일이 데이터 파일(148)인지의 여부에 대한 판정이 이루어진다(단계 260). 해당 파일이 데이터 파일(148)이면, 그 데이터 파일(148)의 위치에 관한 정보가 적용 가능 시스템 인덱스(applicable system index)에 저장된다(단계 264). 해당 파일이 시스템 파일(144)이면, 시스템 파일(144)의 위치가 저장되지 않는다. 그 대신, 예컨대 데이터 파일(148)의 위치를 내포하고 있는 파일 시스템(140) 인덱스를 포함할 수 있는 시스템 파일(144)의 위치가, 시스템 파일(144)이 데이터 저장장치(124)로부터 검색될 때마다, 제공된 사용자 성명 및 패드워드 정보로부터 생성된다.
도 3은 본 발명의 실시예에 따른 일례의 시스템 파일(144) 검색 프로세스의 특징을 도시하고 있다. 구체적으로, 단계 304에서는, 클라이언트 애플리케이션(128)이 요구된 사용자 입력을 취한다. 이 요구된 입력은 사용자 성명 및 비밀 입력 또는 액세스되고 있는 파일 시스템(140)에 연관된 데이터를 포함할 수 있다. 해쉬 알고리즘(136)이 시스템 파일(144)의 위치를 생성하기 위해 실행된다(단계 308). 본 개시 내용을 심사숙고한 후의 당업자에 의해 이해될 수 있는 바와 같이, 해쉬 알고리즘(136)에 의한 시스템 파일(144) 위치의 생성은, 동일한 사용자 성명 및 비밀 입력과 원래 시스템 파일(144) 위치를 결정하기 위해 사용되었던 솔트(존재하는 경우)가 검색 프로세스의 일부로서 제공되도록 요구한다.
단계 312에서는, 시스템 파일(144)이 결정된 위치에 있는지의 여부에 관해 판정이 이루어진다. 파일이 그 위치에 있지 않다면, 에러가 표시되고(단계 316), 프로세스는 단계 304로 복귀한다. 시스템 파일(144)이 결정된 위치에서 발견되면, 그 시스템 파일(144)은 제공된 입력 또는 계산된 입력 파생물(derivative)을 이용하여 암호해독(decryption)될 수 있다. 이에 따라, 시스템 파일(144)을 저장할 위치를 결정하기 위해 이용되었던 사용자 입력의 몇몇 또는 전부가 시스템 파일(144)을 암호해독하기 위해 이용될 수 있다. 단계 324에서는, 시스템 파일(144)의 암호해독이 성공하였는지의 여부에 대한 판정이 이루어진다. 암호해독이 성공하지 못하였다면, 에러가 선언(declaration)되고(단계 316), 프로세스가 단계 304로 복귀된다. 암호해독이 성공하였다면, 시스템 파일(144) 컨텐츠가 클라이언트 애플리케이션(128)으로 리턴된다(단계 328). 예컨대, 시스템 파일(144)이 시스템 인덱스를 포함하는 경우, 클라이언트 애플리케이션(128)은, 시스템 파일(144)이 암호해독되고, 그 컨텐츠가 클라이언트 애플리케이션(128)에 제공되거나 클라이언트 애플리케이션(128)에 이용 가능하게 된 후에, 파일 시스템(140) 내의 데이터 파일(148)의 위치에 관한 정보를 검색할 수 있다.
도 4는 본 발명의 실시예에 따른 시스템 파일(144) 위치의 결정의 특징을 도시하고 있다. 구체적으로, 도 4는 사용자 성명(404) 및 비밀 입력 또는 데이터(408)를 포함한 사용자 입력을 해쉬 알고리즘(136)에 제공하는 것(단계 412)을 도시하고 있다. 해쉬 알고리즘(136)은 또한 솔트(414)를 검색할 수 있다. 솔트(414)는 예컨대 위치되는 시스템 파일(144)의 아이덴티티에 좌우되어 바뀔 수 있다. 예컨대, 제1 솔트(414)는 시스템 인덱스의 저장을 위해 적용될 수 있는 한편, 제2 솔트(414)는 대안의 시스템 인덱스 또는 키 저장부(key store)의 위치확인을 위해 적용될 수 있다. 해쉬 알고리즘(136)은 제공된 입력(404, 408, 416)을 이용하여 단계 412에서 실행되어, 시스템 파일 위치를 발생한다. 시스템 파일(144) 위치는 해쉬 알고리즘(412)의 출력으로부터 직접 획득되거나 또는 해쉬 알고리즘(136) 출력의 변환을 통해 획득될 수 있다. 도 4에 예시된 시스템 파일(144)의 위치를 확인하기 위한 프로세스는 시스템 파일(144)이 저장되고 있든 아니면 시스템 파일(144)이 액세스되고 있든 후속될 수 있다. 이에 부가하여, 시스템 파일(144)의 위치는 예컨대 사용자 성명(404) 및/또는 비밀 데이터(408)와 같은 입력이 변경될 때마다 변경된다.
도 5는 본 발명의 실시예에 따른 데이터 파일(148) 위치의 결정의 특징을 도시하고 있다. 먼저, 데이터 파일(148)의 이룸이 획득된다(단계 504). 데이터 파일의 이름은 클라이언트 애플리케이션(128)의 위치확인 모듈(132)에 의해 그 파일(148)에 할당되는 이름일 수 있다. 이와 달리, 데이터 파일의 이름은 또 다른 시스템 또는 애플리케이션에 의해 그 데이터 파일(148)에 할당된 이름일 수 있다. 그 파일 이름 및 선택적으로는 솔트(414)가 해쉬 알고리즘(136)에 제공되고, 해쉬 알고리즘이 출력을 생성하도록 작동한다(단계 508). 이 출력은 그 후 데이터 파일(148)의 위치를 결정하기 위해 적용된다(단계 512). 위치는 해쉬 알고리즘(136)의 출력으로부터 직접 구해지거나 또는 위치확인 모듈(132)에 의해 수행되는 해쉬 알고리즘(136) 출력의 몇몇 변환일 수 있다. 단계 516에서는, 데이터 파일(148)의 위치가 적정한 시스템 인덱스에 저장된다. 이에 따라, 파일 시스템(140)에 저장되었던 데이터 파일(148)이 적정한 시스템 파일(144)(즉, 시스템 인덱스)로부터 그 데이터 파일(148)의 위치를 최초로 획득함으로써 액세스된다. 그 결과, 상이한 데이터 파일(148)에 상이한 솔트(414)가 적용될 수 있다. 더욱이, 위치확인 모듈(132)과 파일 시스템(140)의 어느 것도 특정한 데이터 파일(148)의 저장과 관련하여 이용된 특정 솔트(414)를 추적(track)하거나 기록(record)하기 위해 요구되지 않는다.
도 6은 본 발명의 실시예에 따른 시스템(100)의 다른 파일 난독화 특징을 구현하기 위한 프로세스를 도시하고 있다. 구체적으로, 이들 특징은 파일(142)의 이름의 균질성(homogenization) 또는 정규화(normalization), 파일(142) 크기의 균질성 또는 정규화, 및 파일(142)에 연관된 작성 시간의 균질성 또는 정규화를 포함할 수 있다. 이들 프로시져는 파일 시스템(140)에의 저장을 위한 파일(142)의 수신 시에 개시될 수 있다(단계 604). 단계 608에서는, 파일 이름이 정규화되었는지 아니면 클라이언트 애플리케이션(128)의 위치확인 모듈(132)에 의해 구현된 균질화된 명명 규칙을 따르는지의 여부에 관해 판정이 이루어질 수 있다. 파일 이름이 정규화되지 않았다면, 파일(142)은 리네임(rename)된다(단계 612). 파일을 리네임하는 것은, 파일(142)에 랜덤, 의사랜덤 또는 분간되지 않는(indistinct) 이름을 할당하는 것을 포함할 수 있다. 일례로서 그리고 어떠한 제한 없이, 위치확인 모듈(132)은 플랫폼 독립 문자(platform independent character)로 이루어진 파일 이름 및 폴더 이름 또는 디렉토리 이름을 할당함으로써 개개의 파일(142)의 아이덴티티를 식별하는 것을 난독화할 수 있다. 예컨대, 글자 A 내지 Z와 번호 0 내지 9가 이용될 수 있다. 더욱이, 파일 이름 및 폴더 이름은 예컨대 2개의 지정된 개수의 문자로 제한될 수 있다. 파일 이름에서의 문자의 개수를 제한하는 것은 또한 폴더 또는 디렉토리에서의 최대 파일 개수에 관한 특정한 오퍼레이팅 시스템(152)의 제시된 제한을 따르는데에도 이로울 수 있다. 가능한 파일 개수가 최대 2개의 문자를 갖는 파일 이름의 사용을 통해 이용 가능한 파일의 개수를 초과할 경우, 네스티드 파일 또는 디렉토리(nested file or directory)가 이용될 수 있으며, 이로써 파일 시스템(140) 내에서의 파일(142)의 총수가 명명 규칙에 의해 제한되지 않는다. 더욱이, 그 파일(142)을 명명하기 위해 개개의 파일(142)에 할당된 문자는 랜덤하게 또는 의사랜덤하게 선택될 수 있다. 이에 부가하여, 파일 이름은 케이스 인센티브(case insensitive)이어도 된다. 상기한 방안의 몇몇 또는 전부를 적용한 결과, 파일 시스템(140)은 비교적 분간되지 않고 균질화된 이름을 갖는 파일(142)의 모음을 갖게 된다.
단계 616에서, 파일(142) 크기가 선택된 크기보다 작은지의 여부에 관해 판정이 이루어질 수 있다. 파일(142)의 크기가 선택된 크기보다 작다면, 파일(142)은 파일 크기를 선택된 크기로 하거나 또는 선택된 크기에 가깝도록 하기 위해 패드(pad)될 수 있다(단계 620). 단계 624에서는, 파일(142)의 크기가 선택된 크기보다 큰지의 여부에 관해 판정이 이루어질 수 있다. 파일 크기가 선택된 크기보다 크면, 파일(142)은 더 작은 파일(142)의 복수 개로 청크(chunk)되거나 쪼개어 질 수 있다(단계 628). 파일(142)을 청크하는 것은 선택된 크기보다 작은 나머지 파일의 크기를 패드하는 것을 포함할 수 있다. 본 명세서에서 사용된 바와 같이, 선택된 크기는 사전에 정해진 파일 크기이어도 된다. 이와 달리, 선택된 크기는 파일 시스템(140)에서의 파일의 평균 크기로부터 결정될 수 있다. 다른 실시예에 따라, 선택된 크기는 적어도 부분적으로는 디바이스(104)의 제한을 기반으로 결정되거나 또는 파일 시스템(140)이 구현되는 것과 관련되어 결정될 수 있다. 이러한 제한은 오퍼레이팅 시스템(152) 제한, 및 데이터 저장장치(124) 제한 또는 요건을 포함할 수 있다. 이에 부가하여, 파일(142)이 패드되거나 청크될 수 있는 선택된 크기는 일정 범위의 크기를 포함할 수 있고, 청크 결정에 관련하여 사용되는 것보다는 패드 결정에 관련하여서 상이한 선택된 크기가 이용될 수 있다. 이에 따라, 파일 시스템(140) 내의 파일(142)은 약간의 범위 내에 있는 크기를 가질 수 있다. 그 결과, 임의의 하나의 파일(142)에 의해 실제로 포함되는 컨텐츠의 양에 관한 정보가 모호하게 되어, 해커가 특정한 관심의 대상이 될 수 있는 파일(142)을 식별하기가 불가능하게 되거나 더욱 어렵게 될 수 있다.
단계 632에서는, 파일(142)의 작성 시간이 균질화되었는지의 여부에 관해 판정이 이루어질 수 있다. 작성 시간이 균질화되지 않았다면, 작성 시간이 리셋될 수 있다(단계 636). 예컨대, 디렉토리에 나타나는 바와 같은 파일(142)의 작성 시간은 직접 조작되거나 또는 파일(142)을 다시 저장함으로써 조작될 수 있다. 예컨대, 파일 시스템(140) 내의 파일(142)의 전부가 주기적으로 리셋될 수 있다. 또 다른 예로서, 파일 시스템(140) 내의 파일(142)의 표시된 작성 일자는 가장 최근의 파일(142)이 파일 시스템(140)에 저장된 일자 및 시간으로 또는 대략 그 부근으로 리셋될 수 있다. 파일 시스템(140) 및 파일(142)의 작성 시간을 이와 같이 균질화함으로써, 중요 시스템 파일을 식별하기 위해 해커에 의해 이용될 수도 있는 정보가 추가로 모호하게 된다.
도 7은 하나의 보안 데이터 서브시스템(700)을 포함하는 본 발명의 실시예에 따른 시스템(100)의 구현예의 특징을 도시하고 있다. 이 예의 구현예에 따라, 사용자 성명 및 비밀 데이터(404, 408)의 입력 시에, 키 인덱스(708) 및 개인 키 파일(716)을 포함하는 시스템 파일(144)이 위치확인된다. 보다 구체적으로, 일 동작(704)에서, 해쉬 알고리즘(136)은 키 인덱스(708)를 포함하는 시스템 파일(144)의 위치를 결정하기 위해 사용자 성명 및 패스워드(404, 408)에 제1 솔트(414)를 적용한다. 키 인덱스(708)는 일반적으로 데이터 파일(148) 또는 컨텐츠의 항목의 위치에 관한 인덱스 정보를 포함한다. 또 다른 동작(712)에서, 해쉬 알고리즘(136)은 개인 키 파일(716)을 포함하는 시스템 파일(144)의 위치를 결정하기 위해 사용자 성명 및 패스워드(404, 408)와 제2 솔트 또는 개인 키 솔트(414)를 적용한다. 개인 키 파일(716)은 컨텐츠 또는 기타 데이터 파일(148)을 액세스하기 위해 요구된 키의 저장부로서 기능할 수 있다. 따라서, 이 예로부터, 한 세트의 정보에 대한 사용자에 의한 엔트리(entry)가 복수의 시스템 파일(144)을 가리키기 위해 위치확인 모듈(132)에 의해 이용될 수 있다.
도 8은 제1 보안 데이터 서브시스템(800a) 및 제2 보안 데이터 서브시스템(800b)을 포함하는 본 발명의 실시예에 따른 또 다른 예의 시스템(100)의 특징을 도시하고 있다. 이 시스템(100)에서, 제1 사용자 성명(404) 및 제1 보안 입력(이 예에서는 제1 패스워드)(408)이 제1 데이터 서브시스템(800a)에 관련하여 해쉬 알고리즘(136)에 의한 처리를 위해 위치확인 모듈(132)에 제공된다. 제1 동작(804)에서, 해쉬 알고리즘(136)은 사용자 성명(404) 및 패스워드(408)와, 솔트 데이터베이스(808)를 포함하는 제1 시스템 파일(144)을 가리키기 위한 제1 키 저장부 솔트(414)를 이용한다. 이와 같이 솔트 데이터베이스(808)에 대한 액세스를 획득한 후, 제1 키 인덱스 솔트(414) 및 사용자 성명(404)이 위치확인 모듈(132)에 의해 제2 동작(812)에서 해쉬 알고리즘(136)에 제공되어, 제1 키 인덱스(816a)를 포함하는 제2 시스템 파일(144)의 위치확인 및 액세스를 획득한다. 제1 키 인덱스(816a)는 제1 세트의 컨텐츠 또는 데이터 파일(148a)을 액세스하기 위해 요구되는 인덱스 정보를 제공할 수 있다. 솔트 데이터베이스(808)로부터의 제2 솔트(414)가 제3 동작(820)에서 사용자 성명(404)과 함께 해쉬 알고리즘(136)에 제공되어, 제2 키 인덱스(816b)를 포함하는 또 다른 시스템 파일(144)의 위치를 결정하고 액세스를 획득할 수 있다. 제2 키 인덱스(816b)는 제2 세트의 컨텐츠 또는 데이터 파일(148b)을 액세스하기 위해 요구되는 인덱스 정보를 포함할 수 있다. 제1 사용자 성명(404) 및 제1 패스워드(408)는 또한 개인 키 솔트(414)와 조합될 수 있고, 제4 동작(822)에서 위치확인 모듈(132)에 의해 해쉬 알고리즘에 제공되어, 제1 개인 키 파일(824a)의 위치를 결정하고 액세스를 획득할 수 있다. 제1 개인 키 파일(824a)은 제1 키 인덱스(816a) 및 제2 키 인덱스(816b)의 일부로서 인덱스된 컨텐츠(148a, 148b)를 액세스하기 위해 필요한 개인 키를 포함할 수 있다.
이에 부가하여, 제1 사용자 성명(404)이 에2 데이터 서브시스템(800b)의 구축 및 액세스에 관련하여 위치확인 모듈(132)에 의해 해쉬 알고리즘(136)에 제2 비밀 입력(이 예에서는 제2 패스워드)(408)과 함께 제공될 수 있다. 예컨대, 제1 사용자 성명(404) 및 제2 패스워드(408)는 제5 동작(828)에서 제1 솔트(414)와 함께 해쉬 알고리즘(132)에 제공되어, 제3 키 인덱스(816c)의 위치를 결정하고 액세스를 획득할 수 있다. 제3 키 인덱스(816c)는 연관된 세트의 컨텐츠 또는 데이터 파일(148c)을 액세스하기 위해 요구되는 인덱스 정보를 포함할 수 있다. 더욱이, 제3 키 인덱스(816c)를 통해 액세스된 컨텐츠의 세트 또는 데이터 파일(148c)은 제1 키 인덱스(816a) 및 제2 키 인덱스(816b)에 연관된 컨텐츠(148a, 148b)의 세트에 대해 전적으로 독립될 수 있다. 실제로, 이 예에서의 유일한 공통성은 제1 사용자 성명(404)을 이용하여 데이터 서브시스템(800a, 800b)을 액세스하고 위치확인하며, 데이터 서브시스템(800a, 800b)이 동일한 클라이언트 애플리케이션(128)에 연관된다는 점이다. 제6 동작(832)에서는 예컨대 제3 키 인덱스(816c)에 의해 인덱스된 데이터 파일(148c)을 액세스하기 위해 필요한 개인 키를 포함하는 제2 개인 키 파일(824b)의 위치를 결정하고 액세스하기 위해 제1 사용자 성명(404) 및 제2 패스워드(408)가 개인 키 솔트(414)와 조합될 수 있다.
도 9는 본 발명의 실시예에 따른 또 다른 예의 시스템(100)의 특징을 도시하고 있다. 이 시스템(100)에서, 제1 사용자 성명(404)은 상이한 데이터 세트를 액세스하기 위해 제1 및/또는 제2 비밀 입력(408a, 408b)과 조합될 수 있다. 예컨대, 단계 904에서 해쉬 알고리즘(132)을 이용하여 사용자 성명(404), 비밀 데이터(408a)의 제1 항목, 및 제1 솔트(414)를 조합함으로써, 제1 키 인덱스(908a)가 위치확인되고 액세스될 수 있다. 제1 키 인덱스(908a)는 제1 세트의 컨텐츠(148a)를 가리킬 수 있다.
추가의 특징으로, 제2 단계 912에서 사용자 성명(404), 제1 비밀 입력(408a), 제2 비밀 입력(408b), 및 제1 솔트(414)를 해쉬 알고리즘(132)에 제공함으로써, 제2 키 인덱스(908b)가 위치확인되고 액세스될 수 있다. 제2 키 인덱스(908b)는 제2 세트의 컨텐츠(148b)를 가리킬 수 있다. 이에 따라, 추가의 비밀 입력(408)을 제공함으로써, 파일 시스템(140) 내에서 상이한 위치가 발생되고 액세스될 수 있다. 더욱이, 본 발명의 실시예는 특정한 해쉬 위치를 발생하기 위해 구체적인 시퀀스로 대안의 또는 추가의 비밀 입력(408)이 입력되도록 하는 것을 요구할 수 있다. 예컨대, 특정한 해쉬 위치를 액세스하기 위해 요구되는 복수의 비밀 입력(408)이 부정확한 시퀀스로 입력되면, 제1 시스템은 위치확인되지 않을 것이다.
도 10은 본 발명의 실시예에 따른 일례의 파일 시스템(140)의 컨텐츠를 도시하고 있다. 도시된 바와 같이, 파일 시스템(140)은 데이터 저장장치(124)에 구축된 루트 디렉토리(1004) 또는 하나 이상의 서브디렉토리(1008a 또는 1008b) 중의 하나에 복수의 파일(142)을 포함할 수 있다. 더욱이, 이들 파일(142)은 시스템 파일(144, 148)을 이들 타입의 파일(142) 간의 어떠한 명백한 구분 없이 포함할 수 있다. 특정 파일(142)이 배치되는 디렉토리(1004) 또는 서브디렉토리(1008a 또는 1008b)는 입력 데이터를 해쉬 알고리즘(136)에 적용함에 의한 위치확인 모듈(132)의 동작을 통해 결정된다. 예컨대, 데이터 파일(148)의 파일 이름과 솔트를 해쉬 알고리즘에 입력한 결과가 위치확인 모듈로 하여금 "ACAFAG"를 리턴하게 하면, 데이터 파일(148)은 디렉토리 AC에 배치되고, 서브디렉토리 AF, AG로 리네임된다. 그러므로, 동일한 동작에서 균질화된 위치 및 명칭이 생성될 수 있다. 더욱이, 제1 시스템(140) 디렉토리의 구조는 중요한 파일(142)의 위치를 확인하기 위해 해커에 의해 이용될 수 있는 정보를 제공하지 않는다. 또한, 디렉토리(1004, 1008a, 1008b)의 이름 및 파일(142)의 이름이 균질화된다. 구체적으로, 서브디렉토리(1008a, 1008b) 및 파일(142)이 이들을 서로 고유하게 구별될 수 있도록 하는 이름 및/또는 과거 이름을 갖지만, 본 명세서에서는 2개의 문자로 이루어진 이름의 할당과 같은 적용되는 명명 규칙이 파일(142)의 컨텐츠에 관한 잠재적인 해커에게 정보를 제공하지 않는다. 마찬가지로, 크기 정보(1012)에 대한 열(column)에서, 파일 크기는 이들이 모두 선택 범위 내에 있도록 균질화되어 있다. 역시, 시스템의 보안에 중요한 파일을 다른 파일과 구별하기 위해 해커에 의해 이용될 수 있는 정보가 모호하게 된다. 마찬가지로, 각각의 파일(142)에 연관된 일자(1016)가 균질화되어, 중요한 시스템 파일(144)을 식별하기 위해 해커에 의해 이용될 수 있는 정보를 제거한다.
본 발명의 실시예에 따른 시스템(100)은 또한 연관된 파일(142)을 컴퓨터(104)에 대해 잠금(lock)하기 위한 특징부를 포함할 수 있다. 이러한 실시예에 따라, 컴퓨터(104)에 연관된 디바이스 식별자(ID)가 해쉬 알고리즘(136)에 제공된 입력의 일부로서 이용된다. 그 결과, 해쉬 알고리즘(136)에 대한 다른 입력이 동일한 경우에도, 임의의 다른 디바이스 ID가 동일한 해쉬 알고리즘(136) 출력을 발생하지 않을 것이다.
본 명세서에 포함된 시스템(100)에 대한 설명은 개시된 안전한 파일 시스템의 특정 구성 및 실시예를 일례로서 제공한다. 그러나, 본 발명의 실시예는 이러한 구체적으로 예시된 것으로 한정되지 않는다. 예컨대, 당업자에 의해 이해될 수 있는 바와 같이, 본 명세서에 개시된 바와 같은 안전한 파일 시스템(140)을 제공하는 것과 관련하여 시스템(100) 부품의 다른 물리적인 배열이 채용될 수 있다. 이에 부가하여, 일러한 설명이 디바이스 또는 컴퓨터(104) 상에서 구현되는 안전한 파일 시스템(140)의 예를 포함하고 있지만, 안전한 파일 시스템(140)은 분산 시스템과 관련하여 구현될 수도 있다. 예컨대, 본 발명의 실시예는 데이터 저장장치(124)가 클라우드에 의해 또는 특정한 네트워크 접속 데이터 저장장치(124)에 의해 제공되는 변형예를 포함할 수 있다. 더욱이, 데이터 저장장치(124)는 예컨대 RAID 시스템 또는 공동으로 작용하는 기타 저장 장치(124) 세트로서 구성된 복수의 저장 장치를 포함할 수 있다.
이에 부가하여, 클라이언트 애플리케이션(128), 위치확인 모듈(132) 및 해쉬 알고리즘(136)과 같은 특정한 예의 애플리케이션 및 모듈이 예시되고 설명된다. 본 개시 내용을 심사숙고한 후의 당업자에 의해 이해될 수 있는 바와 같이, 이러한 부품 및 모듈과 이들의 상호 관계는 수정될 수 있다. 구체적으로, 이러한 부품의 설명이 시스템(100) 및 시스템의 동작에 대한 이해를 용이하게 할 것으로 생각되지만, 본 발명의 실시예에 따른 시스템(100) 또는 프로세스는 제공된 예에서 설명된 바와 같이 세그먼트화되어 있는 부품 및 모듈을 포함하도록 반드시 요구되지는 않는다.
본 발명의 전술한 논의는 예시 및 설명을 위해 제공된 것이다. 또한, 이러한 설명은 본 발명을 본 명세서에 개시된 형태로 제한하려는 것이 아니다. 그러므로, 관련 기술 분야의 숙련도 또는 지식 내에서의 상기한 교시 내용에 상응하는 변형 및 수정은 본 발명의 범위 내에 있는 것이다. 전술한 실시예는 본 발명을 실시하는 현재 알려진 최상의 모드를 설명하고 당업자로 하여금 이러한 실시예 및 기타 실시예에서 본 발명의 특정한 응용 및 사용에 의해 요구된 다양한 수정으로 본 발명을 활용할 수 있도록 하기 위한 것이다. 첨부된 청구범위는 종래 기술에 의해 허용된 범위까지의 대안의 실시예를 포함하도록 해석되어야 한다.

Claims (20)

  1. 파일을 저장하는 방법에 있어서,
    제1 클라이언트 애플리케이션에 의해 적어도 제1 식별자를 수신하는 단계;
    상기 제1 식별자를 해쉬 알고리즘(hash algorithm)에 제공하여, 상기 해쉬 알고리즘이 제1 출력을 발생하는 단계; 및
    상기 제1 출력을 이용하여 제1 파일 시스템 위치를 결정하는 단계
    를 포함하는, 파일 저장 방법.
  2. 제1항에 있어서,
    데이터 저장장치에서 상기 제1 파일 시스템 위치에 제1 파일을 저장하는 단계를 더 포함하는, 파일 저장 방법.
  3. 제2항에 있어서,
    상기 제1 클라이언트 애플리케이션에 의해 제2 식별자를 수신하는 단계를 더 포함하며, 상기 제1 식별자와 상기 제2 식별자는 제1 출력을 발생하기 위해 상기 해쉬 알고리즘에 제공되며, 상기 데이터 저장장치에서 상기 제1 파일 시스템 위치에 저장된 상기 제1 파일은 제1 인덱스 파일인, 파일 저장 방법.
  4. 제3항에 있어서,
    제1 데이터 파일에 제1 파일 이름을 할당하는 단계;
    상기 제1 파일 이름을 상기 해쉬 알고리즘에 제3 식별자로서 제공하여, 상기 해쉬 알고리즘이 제2 출력을 발생하는 단계;
    상기 제2 출력을 이용하여 제2 파일 시스템 위치를 결정하는 단계;
    상기 데이터 저장장치에서 상기 제2 파일 시스템 위치에 상기 제1 데이터 파일을 저장하는 단계; 및
    상기 제2 파일 시스템 위치를 상기 제1 인덱스 파일에 저장하는 단계
    를 더 포함하는, 파일 저장 방법.
  5. 제4항에 있어서,
    상기 제1 클라이언트 애플리케이션에서 상기 제1 데이터 파일을 액세스하기 위한 요청을 수신하는 단계;
    상기 제1 클라이언트 애플리케이션에 의해 상기 제1 식별자 및 상기 제2 식별자 중의 하나 이상의 식별자의 사용자에 의한 엔트리(entry)를 프롬프트하는 단계;
    상기 클라이언트 애플리케이션에 의해 상기 제1 식별자 및 상기 제2 식별자를 수신하여, 상기 제1 식별자 및 상기 제2 식별자를 상기 제1 출력을 발생하고 상기 제1 파일 시스템 위치를 결정하기 위해 상기 해쉬 알고리즘에 제공하는 단계; 및
    상기 데이터 저장장치에서 상기 제1 파일 시스템 위치에 저장된 상기 제1 인덱스 파일을 액세스하고, 상기 제1 인덱스 파일로부터 상기 제2 파일 시스템 위치를 검색하는 단계
    를 더 포함하는, 파일 저장 방법.
  6. 제3항에 있어서,
    상기 제1 식별자는 사용자 성명이며, 상기 제2 식별자는 패스워드인, 파일 저장 방법.
  7. 제3항에 있어서,
    제1 솔트(salt)를 포함하며, 상기 제1 솔트가 상기 제1 파일 시스템 위치를 결정하는데 이용되는 제1 출력을 발생하기 위해 상기 제1 식별자 및 상기 제2 식별자와 함께 상기 해쉬 알고리즘에 입력되는, 파일 저장 방법.
  8. 제7항에 있어서,
    제2 솔트를 포함하며, 상기 제2 솔트가 제1 파일 이름과 함께 상기 해쉬 알고리즘에 입력되고, 상기 해쉬 알고리즘이 제2 출력을 발생하며,
    상기 제2 출력을 이용하여 제2 파일 시스템 위치를 결정하는 단계를 더 포함하는, 파일 저장 방법.
  9. 제7항에 있어서,
    제2 솔트를 포함하며, 상기 제2 솔트가 상기 제1 식별자 및 상기 제2 식별자와 함께 상기 해쉬 알고리즘에 입력되며, 상기 해쉬 알고리즘이 제2 출력을 발생하며,
    상기 제2 출력을 이용하여 제2 파일 시스템 위치를 결정하는 단계; 및
    상기 데이터 저장장치에서 상기 제2 파일 시스템 위치에 제2 파일을 저장하는 단계
    를 더 포함하는, 파일 저장 방법.
  10. 제9항에 있어서,
    상기 제2 파일은 키 저장부(key store)인, 파일 저장 방법.
  11. 제3항에 있어서,
    상기 제1 클라이언트 애플리케이션에 의해 제3 식별자를 수신하는 단계;
    상기 제1 식별자 및 상기 제3 식별자를 상기 해쉬 알고리즘에 제공하여 제2 출력을 발생하는 단계; 및
    상기 제2 출력을 이용하여 제2 파일 시스템 위치를 결정하는 단계
    를 더 포함하는, 파일 저장 방법.
  12. 제2항에 있어서,
    상기 제1 클라이언트 애플리케이션에 의해 제3 식별자를 수신하는 단계;
    상기 제1 식별자 및 상기 제3 식별자를 상기 해쉬 알고리즘에 제공하여 제2 출력을 발생하는 단계;
    상기 제2 출력을 이용하여 제2 파일 시스템 위치를 결정하는 단계;
    상기 제2 파일 시스템 위치에서 상기 데이터 저장장치 상에 저장된 실행 가능한 파일을 액세스하는 단계; 및
    상기 실행 가능한 파일을 실행하는 단계
    를 더 포함하는, 파일 저장 방법.
  13. 제2항에 있어서,
    상기 해쉬 알고리즘에 적어도 제2 식별자를 제공하여, 상기 해쉬 알고리즘이 제2 출력을 발생하는 단계;
    상기 제2 출력을 이용하여 제2 파일 시스템 위치를 결정하는 단계; 및
    상기 제2 파일 시스템 위치에 제2 파일을 저장하는 단계
    를 더 포함하는, 파일 저장 방법.
  14. 제13항에 있어서,
    상기 제1 파일 시스템 위치에 저장되는 상기 제1 파일은 제1 데이터 세트에 연관된 제1 인덱스 파일이며, 상기 제2 파일 시스템 위치에 저장되는 상기 제2 파일은 제2 데이터 세트에 연관된 제2 인덱스 파일인, 파일 저장 방법.
  15. 제4항에 있어서,
    제2 데이터 파일에 제2 파일 이름을 할당하는 단계로서, 상기 제1 파일 이름이 제1 문자 길이를 갖고, 상기 제2 파일 이름이 제1 문자 길이를 갖는, 할당하는 단계;
    상기 제1 데이터 파일의 크기를 결정하는 단계로서, 사전에 결정된 제1 크기보다 작은 상기 제1 데이터 파일의 크기에 응답하여, 상기 제1 데이터 파일이 제1의 정규화된 크기를 갖도록 패드(pad)되고, 패드된 상기 제1 데이터 파일이 저장되는, 결정하는 단계;
    상기 제2 파일 이름을 제4 식별자로서 상기 해쉬 알고리즘에 제공하여, 상기 해쉬 알고리즘이 제3 출력을 발생하는 단계;
    상기 제3 출력을 이용하여 제3 파일 시스템 위치를 결정하는 단계;
    상기 데이터 저장장치에서 상기 제3 파일 시스템 위치에 상기 제2 데이터 파일을 저장하는 단계; 및
    상기 제3 파일 시스템 위치를 상기 제1 인덱스 파일에 저장하는 단계
    를 더 포함하는, 파일 저장 방법.
  16. 파일을 저장하는 방법에 있어서,
    데이터 저장장치를 제공하는 단계;
    프로세서를 제공하는 단계;
    상기 프로세서에 의해 실행할 수 있고, 파일 시스템 모듈을 포함하는 클라이언트 애플리케이션을 제공하는 단계;
    패스워드를 위해 사용자에게 프롬프트하는 단계;
    상기 클라이언트 애플리케이션에서 제1 패스워드를 수신하는 단계;
    적어도 수신된 상기 제1 패스워드 및 제1 솔트를 제1 입력으로서 해쉬 알고리즘에 제공하는 단계;
    상기 제1 입력에 응답하여, 상기 해쉬 알고리즘에 의해 제1 출력을 발생하는 단계;
    상기 제1 출력을 제1 파일 시스템 위치로 변환하는 단계;
    상기 데이터 저장장치에서의 상기 제1 파일 시스템 위치에 제1 인덱스 파일을 저장하는 단계;
    적어도 수신된 제1 패스워드 및 제2 솔트를 제2 입력으로서 상기 해쉬 알고리즘에 제공하는 단계;
    상기 제2 입력에 응답하여, 상기 해쉬 알고리즘에 의해 제2 출력을 발생하는 단계;
    상기 제2 출력을 제2 파일 시스템 위치로 변환하는 단계; 및
    상기 데이터 저장장치에서의 상기 제2 파일 시스템 위치에 제1 키 저장부 파일을 저장하는 단계
    를 포함하는, 파일 저장 방법.
  17. 제16항에 있어서,
    제1 이름과 연관되는 제1 데이터 파일을 수신하는 단계;
    상기 제1 이름 및 제2 솔트를 제3 입력으로서 상기 해쉬 알고리즘에 제공하는 단계;
    상기 제3 입력에 응답하여, 상기 해쉬 알고리즘에 의해 제3 출력을 발생하는 단계;
    상기 제3 출력을 제3 파일 시스템 위치로 변환하는 단계;
    상기 제1 데이터 파일을 상기 제3 파일 시스템 위치에 저장하는 단계;
    상기 제3 파일 시스템 위치의 레코드를 상기 제1 인덱스 파일에 저장하는 단계; 및
    상기 제1 데이터 파일에 연관된 키를 상기 제1 키 저장부에 위치시키는 단계
    를 더 포함하는, 파일 저장 방법.
  18. 제17항에 있어서,
    상기 클라이언트 애플리케이션에서 제2 패스워드를 수신하는 단계;
    적어도 수신된 제2 패스워드 및 제1 솔트를 제4 입력으로서 상기 해쉬 알고리즘에 제공하는 단계;
    상기 제4 입력에 응답하여, 상기 해쉬 알고리즘에 의해 제4 출력을 발생하는 단계;
    상기 제4 출력을 제4 파일 시스템 위치로 변환하는 단계; 및
    상기 데이터 저장장치에서의 상기 제4 파일 시스템 위치에 제2 인덱스 파일을 저장하는 단계
    를 더 포함하는, 파일 저장 방법.
  19. 데이터 저장장치;
    상기 데이터 저장장치에 저장되고, 해쉬 알고리즘을 포함하는 클라이언트 애플리케이션; 및
    사용자 입력부를 포함하며,
    상기 사용자 입력부에서의 적어도 제1 입력을 수신하는 것에 응답하여, 상기 클라이언트 애플리케이션이 상기 해쉬 알고리즘을 이용하여 제1 값을 발생하도록 작동할 수 있고, 상기 제1 값이 시스템 인덱스 파일을 저장하기 위한 상기 데이터 저장장치 내의 제1 위치를 결정하기 위해 이용되며, 상기 시스템 인덱스 파일이 상기 데이터 저장장치 내의 상기 제1 위치에 저장되며, 상기 제1 위치의 레코드가 상기 데이터 저장장치에 저장되지 않는,
    시스템.
  20. 제19항에 있어서,
    상기 클라이언트 애플리케이션이 상기 데이터 저장장치에 데이터 파일을 저장하기 위한 요청을 수신하는 것에 응답하여, 상기 클라이언트 애플리케이션이 데이터 파일의 이름을 상기 해쉬 알고리즘에 대한 입력으로 이용하여 제2 값을 발생하도록 동작할 수 있으며, 상기 제2 값은 상기 데이터 파일을 저장하기 위한 상기 데이터 저장장치 내의 제2 위치를 결정하기 위해 이용되며, 상기 데이터 파일은 상기 데이터 저장장치에서 상기 제2 위치에 위치되며, 상기 제2 위치가 상기 시스템 인덱스 파일에 저장되는, 시스템.
KR1020137031729A 2011-04-28 2012-04-24 안전한 데이터 저장 KR20140048879A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/096,603 2011-04-28
US13/096,603 US8627104B2 (en) 2011-04-28 2011-04-28 Secure data storage
PCT/US2012/034765 WO2012148894A2 (en) 2011-04-28 2012-04-24 Secure data storage

Publications (1)

Publication Number Publication Date
KR20140048879A true KR20140048879A (ko) 2014-04-24

Family

ID=47073015

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137031729A KR20140048879A (ko) 2011-04-28 2012-04-24 안전한 데이터 저장

Country Status (8)

Country Link
US (3) US8627104B2 (ko)
EP (1) EP2702488A4 (ko)
JP (1) JP2014516448A (ko)
KR (1) KR20140048879A (ko)
AU (1) AU2012249885A1 (ko)
CA (1) CA2834509A1 (ko)
IL (1) IL229099A0 (ko)
WO (1) WO2012148894A2 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8788842B2 (en) 2010-04-07 2014-07-22 Apple Inc. System and method for content protection based on a combination of a user PIN and a device specific identifier
US8510552B2 (en) 2010-04-07 2013-08-13 Apple Inc. System and method for file-level data protection
US8627104B2 (en) 2011-04-28 2014-01-07 Absio Corporation Secure data storage
US20130290734A1 (en) * 2012-04-26 2013-10-31 Appsense Limited Systems and methods for caching security information
US20130290733A1 (en) * 2012-04-26 2013-10-31 Appsense Limited Systems and methods for caching security information
US20140006201A1 (en) * 2012-06-29 2014-01-02 Accion Group Inc. Method and apparatus for competitive solicitation and bidding
US9785786B2 (en) 2012-09-24 2017-10-10 Protegrity Corporation Privacy preserving data search
US20150082054A1 (en) * 2013-08-21 2015-03-19 Venux LLC System and Method for Establishing a Secure Digital Environment
JP6515635B2 (ja) * 2015-03-30 2019-05-22 日本電気株式会社 情報処理装置、情報処理システム、情報処理方法、及び、プログラム
CN105825136B (zh) * 2016-03-24 2020-04-03 珠海泰坦软件系统有限公司 一种软硬件结合实现电子文件安全传递的方法及装置
US10440008B2 (en) * 2016-09-07 2019-10-08 The King Abdulaziz City For Science And Technology Method and system for dynamically generating a hint to recall a password for a user account of a user
TWI616819B (zh) * 2017-02-06 2018-03-01 晨星半導體股份有限公司 用於電視的軟體更新方法及相關的電路
CN107087004A (zh) * 2017-05-17 2017-08-22 深圳乐信软件技术有限公司 源文件处理方法及装置、源文件获取方法及装置
US11005971B2 (en) * 2018-08-02 2021-05-11 Paul Swengler System and method for user device authentication or identity validation without passwords or matching tokens
KR102005549B1 (ko) 2018-08-09 2019-07-30 주식회사 센스톤 가상코드 기반의 금융거래제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드 기반의 금융거래제공방법 및 가상코드 기반의 금융거래제공프로그램
EP3828799A4 (en) * 2018-08-09 2022-06-08 SSenStone Inc. USER AUTHENTICATION METHOD AND SYSTEM USING A VIRTUAL AUTHENTICATION CODE
US11138158B2 (en) 2019-05-20 2021-10-05 Callplex, Inc. Binding a local data storage device to remote data storage
EP4226573A1 (en) * 2020-10-05 2023-08-16 Redcom Laboratories, Inc. Zkmfa: zero-knowledge based multi-factor authentication system

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4816653A (en) 1986-05-16 1989-03-28 American Telephone And Telegraph Company Security file system for a portable data carrier
US5032979A (en) 1990-06-22 1991-07-16 International Business Machines Corporation Distributed security auditing subsystem for an operating system
EP0463874A2 (en) * 1990-06-29 1992-01-02 Digital Equipment Corporation Cache arrangement for file system in digital data processing system
US5859966A (en) 1995-10-10 1999-01-12 Data General Corporation Security system for computer systems
US5960086A (en) 1995-11-02 1999-09-28 Tri-Strata Security, Inc. Unified end-to-end security methods and systems for operating on insecure networks
US5987517A (en) 1996-03-27 1999-11-16 Microsoft Corporation System having a library of protocol independent reentrant network interface functions for providing common calling interface for communication and application protocols
US6088449A (en) 1996-11-05 2000-07-11 Tri-Strata Security, Inc. Tri-signature security architecture systems and methods
US6393569B1 (en) 1996-12-18 2002-05-21 Alexander S. Orenshteyn Secured system for accessing application services from a remote station
US6453334B1 (en) 1997-06-16 2002-09-17 Streamtheory, Inc. Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching
US6064736A (en) * 1997-09-15 2000-05-16 International Business Machines Corporation Systems, methods and computer program products that use an encrypted session for additional password verification
US6711686B1 (en) 1999-06-29 2004-03-23 Dell Usa L.P. Security management tool for managing security attributes in computer systems
US6912655B1 (en) 1999-08-09 2005-06-28 Tristrata Security Inc. Network security architecture system utilizing seals
KR20010096814A (ko) 2000-04-14 2001-11-08 홍기융 전자서명 인증기반 파일시스템 해킹방지용 보안커널 방법
US6959394B1 (en) * 2000-09-29 2005-10-25 Intel Corporation Splitting knowledge of a password
US7433900B2 (en) * 2001-04-03 2008-10-07 Qnx Software Systems Gmbh & Co. Kg Custom filesystem having file mappings to files of a real filesystem
US7302571B2 (en) 2001-04-12 2007-11-27 The Regents Of The University Of Michigan Method and system to maintain portable computer data secure and authentication token for use therein
US7024452B1 (en) 2001-07-13 2006-04-04 Vignette Corporation Method and system for file-system based caching
US7036020B2 (en) 2001-07-25 2006-04-25 Antique Books, Inc Methods and systems for promoting security in a computer system employing attached storage devices
US7178165B2 (en) 2001-08-20 2007-02-13 Lenovo (Signapore) Pte Ltd. Additional layer in operating system to protect system from hacking
JP4154893B2 (ja) * 2002-01-23 2008-09-24 株式会社日立製作所 ネットワークストレージ仮想化方法
KR100450402B1 (ko) 2002-04-17 2004-09-30 한국전자통신연구원 컴퓨터 시스템에 있어서 보안속성을 갖는 토큰을 이용한접근 제어방법
US7209960B2 (en) 2002-09-20 2007-04-24 Sun Microsystems, Inc. Loading and saving data from security sensitive applets to a local file system
US8213601B2 (en) 2003-02-07 2012-07-03 Patrick Zuili Font level encryption method and apparatus
JP4265245B2 (ja) 2003-03-17 2009-05-20 株式会社日立製作所 計算機システム
US7284010B2 (en) 2003-10-23 2007-10-16 Microsoft Corporation System and method for storing and retrieving a field of a user defined type outside of a database store in which the type is defined
US20050251806A1 (en) 2004-05-10 2005-11-10 Auslander Marc A Enhancement of real-time operating system functionality using a hypervisor
US7690033B2 (en) 2004-09-28 2010-03-30 Exobox Technologies Corp. Electronic computer system secured from unauthorized access to and manipulation of data
US7716743B2 (en) 2005-01-14 2010-05-11 Microsoft Corporation Privacy friendly malware quarantines
US7698732B2 (en) 2005-02-03 2010-04-13 International Business Machines Corporation Method and apparatus for exchanging information between computer systems from different computer networks
US20070011469A1 (en) 2005-07-11 2007-01-11 Simdesk Technologies Secure local storage of files
US20070016771A1 (en) 2005-07-11 2007-01-18 Simdesk Technologies, Inc. Maintaining security for file copy operations
US20070011749A1 (en) 2005-07-11 2007-01-11 Simdesk Technologies Secure clipboard function
US8447781B2 (en) 2005-07-29 2013-05-21 International Business Machines Corporation Content-based file system security
US7426787B2 (en) 2005-09-09 2008-09-23 Sj2 Industries, Llc Retractor for circular saw lower safety-guard
US7792859B2 (en) 2005-10-12 2010-09-07 Hb Media, Llc Media/data card
US20070083559A1 (en) 2005-10-12 2007-04-12 Harris Brock M Media/data card
CN100437502C (zh) 2005-12-30 2008-11-26 联想(北京)有限公司 基于安全芯片的防病毒方法
US20080027866A1 (en) 2006-07-26 2008-01-31 Halcrow Michael A System and method for authenticating file content
US7885932B2 (en) * 2006-11-01 2011-02-08 Ab Initio Technology Llc Managing storage of individually accessible data units
US20090049047A1 (en) 2007-08-15 2009-02-19 Microsoft Corporation Storing custom metadata using custom access control entries
US20090144545A1 (en) 2007-11-29 2009-06-04 International Business Machines Corporation Computer system security using file system access pattern heuristics
US20090235091A1 (en) 2008-02-14 2009-09-17 Systems Associates, Inc. Computer system for indexing and storing sensitive, secured, information on a non-trusted computer storage array
US8930894B2 (en) * 2008-10-08 2015-01-06 Oracle America, Inc. Method and system for executing an executable file
US8726032B2 (en) 2009-03-25 2014-05-13 Pacid Technologies, Llc System and method for protecting secrets file
US8285681B2 (en) 2009-06-30 2012-10-09 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
US8788842B2 (en) * 2010-04-07 2014-07-22 Apple Inc. System and method for content protection based on a combination of a user PIN and a device specific identifier
US20120054315A1 (en) * 2010-08-31 2012-03-01 Cisco Technology, Inc. System and method for providing virtualized file system management for a memory card in a digital environment
US8627104B2 (en) 2011-04-28 2014-01-07 Absio Corporation Secure data storage

Also Published As

Publication number Publication date
IL229099A0 (en) 2013-12-31
US20130031372A1 (en) 2013-01-31
US20140095869A1 (en) 2014-04-03
WO2012148894A3 (en) 2013-07-04
EP2702488A4 (en) 2014-12-24
EP2702488A2 (en) 2014-03-05
AU2012249885A1 (en) 2013-11-14
WO2012148894A2 (en) 2012-11-01
US8627104B2 (en) 2014-01-07
JP2014516448A (ja) 2014-07-10
US9104888B2 (en) 2015-08-11
US20160026817A1 (en) 2016-01-28
CA2834509A1 (en) 2012-11-01

Similar Documents

Publication Publication Date Title
US9104888B2 (en) Secure data storage
US10002151B2 (en) Client computer for updating a database stored on a server via a network
US9558366B2 (en) Computer system for storing and retrieval of encrypted data items, client computer, computer program product and computer-implemented method
US9646161B2 (en) Relational database fingerprinting method and system
US8533469B2 (en) Method and apparatus for sharing documents
US9881164B1 (en) Securing data
US11256662B2 (en) Distributed ledger system
US8977857B1 (en) System and method for granting access to protected information on a remote server
CN113542288A (zh) 业务授权方法、装置、设备及系统
US10607025B2 (en) Access control through data structures
US11283600B2 (en) Symmetrically encrypt a master passphrase key
US9882879B1 (en) Using steganography to protect cryptographic information on a mobile device
JPWO2018034192A1 (ja) 情報処理装置、情報処理方法、及び、プログラム
WO2024147078A2 (en) Self-extracting archive for data protection
KR20210039752A (ko) 얼굴인식을 기반으로 한 사용자 인증을 통해 보안 문서에 대한 권한을 부여하는 문서 관리 서버 및 그 동작 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid