KR102037656B1 - 데이터 파일들 보호 - Google Patents

데이터 파일들 보호 Download PDF

Info

Publication number
KR102037656B1
KR102037656B1 KR1020177031893A KR20177031893A KR102037656B1 KR 102037656 B1 KR102037656 B1 KR 102037656B1 KR 1020177031893 A KR1020177031893 A KR 1020177031893A KR 20177031893 A KR20177031893 A KR 20177031893A KR 102037656 B1 KR102037656 B1 KR 102037656B1
Authority
KR
South Korea
Prior art keywords
data file
user
file
stub
access
Prior art date
Application number
KR1020177031893A
Other languages
English (en)
Other versions
KR20170133485A (ko
Inventor
창시옹 린
Original Assignee
알리바바 그룹 홀딩 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 알리바바 그룹 홀딩 리미티드 filed Critical 알리바바 그룹 홀딩 리미티드
Priority claimed from PCT/US2016/033334 external-priority patent/WO2016196030A1/en
Publication of KR20170133485A publication Critical patent/KR20170133485A/ko
Application granted granted Critical
Publication of KR102037656B1 publication Critical patent/KR102037656B1/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
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • 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
    • G06F21/6272Protecting 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 by registering files or documents with a third party
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • 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
    • H04L29/00
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

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

Abstract

데이터 파일들의 보호가 개시되고, 상기 데이터 파일들의 보호는: 데이터가 클라이언트 디바이스에 의해 생성되었다는 표시에 응답하여, 데이터 파일과 연관된 보안 분류를 결정하는 단계; 데이터 파일과 연관된 보안 분류가 기밀 파일을 포함하는 것을 결정하는 단계; 지정된 가상 저장 영역에 데이터 파일을 저장하는 단계; 및 데이터 파일의 원래 저장 위치에서 스터브 파일을 생성하는 단계를 포함하고, 스터브 파일은 데이터 파일과 연관된 뷰잉 허가 및 지정된 가상 저장 영역에 데이터 파일의 저장 위치를 포함한다.

Description

데이터 파일들 보호
본 출원은 모든 목적을 위해 참조로서 여기에 통합된 2015년 6월 2일에 출원된 발명의 명칭이 "데이터 파일들을 보호하기 위한 방법, 장치 및 단말 장비"인 중화 인민 공화국 출원 번호 제 201510295401.9 호에 대한 우선권을 주장한다.
본 출원은 인터넷 기술의 분야에 관한 것이다. 특히, 본 출원들은 데이터 파일들을 보호하기 위한 기술들에 관한 것이다.
인터넷의 자유롭고 개방적인 환경에서, 데이터 사용, 저장, 및 송신 모두는 누설들의 위험을 제공한다. 종래에, 데이터는 투명한 파일 암호 및 복호 방법들에 의해 보호된다. 특히, 데이터 보호의 종래 기술의 일 예는 다음을 포함한다: 클라이언트 디바이스 운영 시스템이 기저 레벨 처리를 수행하는 동안, 데이터 파일은 암호화 처리가 된다. 사용자가 데이터 파일을 검색할 때, 운영 체계는 데이터 파일을 복호화하고 이후 사용자의 사용을 위해 그를 메모리에 배치한다. 사용자가 데이터 파일을 저장할 필요가 있을 때, 운영 시스템은 데이터 파일을 암호화하고 그를 자기 디스크로 기록하고, 그에 의해 사용자가 데이터 파일에 대해 수행된 암호 및 복호 동작들을 완전히 인식하지 못한다. 따라서, 종래에는, 데이터 누설들이 암호화된 데이터가 자기 디스크에 기록하고 메모리에서 데이터의 암호를 수행함으로써 방지된다.
그러나, 이들 종래 기술들은 메모리 내의 파일이 누설되지 않는 것을 보장하지 않는다.
본 발명은 장치; 시스템; 물질의 조성; 컴퓨터 판독 가능한 저장 매체상에 구현된 컴퓨터 프로그램 제품; 및/또는 프로세서에 연결된 메모리상에 저장되고 및/또는 그에 의해 제공된 명령들을 실행하도록 구성된 프로세서와 같은, 프로세서를 프로세스로서 포함하는 다수의 방식들로 구현될 수 있다. 본 명세서에서, 이들 구현들, 또는 본 발명이 취할 수 있는 임의의 다른 형태는 기술들이라고 칭해질 수 있다. 일반적으로, 개시된 프로세스들의 단계들의 순서는 본 발명의 범위 내에서 변경될 수 있다. 달리 언급되지 않으면, 태스크를 수행하도록 구성되는 것으로 설명되는 프로세서 또는 메모리와 같은 구성 요소는 태스크를 수행하도록 제작되는 특정한 구성 요소 또는 주어진 시간에 태스크를 수행하도록 시간적으로 구성되는 일반적인 구성 요소로서 구현될 수 있다. 여기에서 사용된 바와 같은, 용어 '프로세서'는 컴퓨터 프로그램 명령들과 같은 데이터를 처리하도록 구성된 하나 이상의 디바이스들, 회로들, 및/또는 처리 코어들을 지칭한다.
본 발명의 하나 이상의 실시예들의 상세한 설명은 본 발명의 원리들을 예시하는 첨부하는 도면들과 함께 이하에 제공된다. 본 발명은 이러한 실시예와 함께 설명되지만, 본 발명은 임의의 실시예로 한정되지 않는다. 본 발명의 범위는 청구항들에 의해서만 한정되고, 본 발명은 다수의 대안들, 변경들, 및 동등물들을 포함한다. 다수의 상세한 설명들은 본 발명의 완전한 이해를 제공하기 위해 다음의 상세한 설명에서 설명된다. 이들 상세들은 예시의 목적들을 위해 제공되고 본 발명은 이들 특정한 상세들의 일부 또는 전부 없이 청구항들에 따라 실시될 수 있다. 명확성의 목적을 위해, 본 발명에 관련된 기술 분야들에서 알려진 기술적인 자료는 본 발명이 불필요하게 모호해지지 않도록 상세하게 설명되지 않는다.
예시적인 실시예들이 여기에 상세히 설명될 것이다. 그의 예들은 도면들에 나타내진다. 다음의 설명들은 도면들에 관련하는 경우들에, 상이한 도면들의 동일한 번호들은 달리 표시되지 않으면 동일하거나 유사한 요소들을 나타낸다. 예시적인 실시예들에 설명된 구현들은 본 출원과 일치하는 구현들 모두를 나타내지는 않는다. 반대로, 그들은 단순히 청구항들에서 상세히 설명되는 본 출원의 일부 양태들과 일치하는 디바이스들 및 방법들의 예들이다.
본 출원에서 사용된 용어들은 단순히 특정한 실시예들을 설명하는 역할을 하고, 본 출원을 제한하도록 의도되지 않는다. 본 출원 및 첨부된 청구항들에서 사용되는 단일 형태들은 또한 문맥에서 달리 명확하게 표시되지 않으면 복수 형태들을 포함하도록 의도된다. 또한, 본 문서에서 사용된 용어 "및/또는"이 하나 이상의 연관된 요소들 중 어느 하나 또는 모든 가능한 조합들을 지칭하고 그를 포함한다는 것을 이해해야 한다.
본 출원은 다양한 정보를 설명하기 위해 용어들 "제 1", "제 2", "제 3" 등을 채용하지만, 이러한 정보는 이들 용어들에 의해 한정되지 않아야 한다는 것을 이해해야 한다. 이들 용어들은 단순히 동일한 카테고리의 정보의 부분들을 구별하는 역할을 한다. 예를 들면, 그들이 본 출원의 범위 내에 있는 한, 정보의 제 1 부분은 정보의 제 2 부분이라고 불릴 수 있다. 유사하게, 정보의 제 2 부분은 정보의 제 1 부분이라고 불릴 수 있다. 문맥에 따라, 예를 들면, 여기에 사용된 용어 "~인 경우"는 "~때" 또는 "~가 확인되면"이라고 해석될 수 있다.
데이터 파일들을 보호하는 것의 실시예들이 여기에 설명된다. 클라이언트 디바이스에서 데이터 파일들의 생성의 표시에 응답하여, 데이터 파일과 연관된 보안 분류가 결정된다. 데이터 파일과 연관된 보안 분류는 기밀 파일(classified file)인지가 결정된다. 데이터 파일은 이후 지정된 가상 저장 영역에 저장된다. 예를 들면, 지정된 가상 저장 영역은 클라우드 서버의 일부분이다. 다양한 실시예들에서, "클라우드 서버"는 하나 이상의 서비스들을 제공하기 위해 협력하여 작동하는 하나 이상의 서버들을 지칭한다. 스터브 파일은 데이터 파일의 원래의 저장 위치에 생성된다. 또한, 데이터 파일의 사본은 클라이언트 디바이스로부터 제거/삭제된다. 스터브 파일은 데이터 파일과 연관된 뷰잉 허가(viewing permission) 및 지정된 가상 저장 영역 내의 데이터 파일의 저장 위치를 포함하지만, 데이터 파일의 실제 콘텐트가 아니다. 스터브 파일이 데이터 파일 자체로부터의 임의의 데이터를 포함하지 않기 때문에, 클라이언트 디바이스의 스터브 파일에 대해 사용자에 의해 수행된 임의의 동작들은 클라우드 서버에 저장되는 데이터 파일에 어떤 영향도 주지 않을 것이다.
도 1은 데이터 파일들을 보호하기 위한 시스템의 일 실시예를 도시하는 도면.
도 2는 데이터 파일들을 보호하기 위한 프로세스의 일 실시예를 도시하는 흐름도.
도 3은 보호된 데이터 파일을 공유하기 위한 프로세스의 일 실시예를 도시하는 흐름도.
도 4는 보호된 데이터 파일을 사용하기 위한 프로세스의 일 실시예를 도시하는 흐름도.
도 5는 보호된 데이터 파일에 액세스하기 위한 프로세스의 일 예를 도시하는 흐름도.
도 6은 데이터 파일들을 보호하기 위한 일 예시적인 클라이언트 디바이스를 도시하는 도면.
도 7은 데이터 파일들을 보호하기 위한 일 예시적인 클라이언트 디바이스를 도시하는 도면.
도 8은 데이터 파일들을 보호하기 위한 일 예시적인 클라이언트 디바이스를 도시하는 도면.
도 9는 일 예시적인 데이터 파일 검색 디바이스를 도시하는 도면.
도 10은 일 예시적인 데이터 파일 검색 디바이스를 도시하는 도면.
도 11은 데이터 파일들을 보호하기 위해 프로그래밍된 컴퓨터 시스템을 도시하는 기능도.
본 발명의 다양한 실시예들이 다음의 상세한 설명 및 첨부하는 도면들에서 개시된다.
도 1은 데이터 파일들을 보호하기 위한 시스템의 일 실시예를 도시하는 도면이다. 예에서, 시스템(100)은 클라이언트 디바이스(102), 네트워크(104), 및 클라우드 서버(106)를 포함한다. 일부 실시예들에서, 네트워크(104)는 고속 네트워크들 및/또는 원격 통신 네트워크들을 포함한다.
클라이언트 디바이스(102)는 데이터 파일을 생성한다. 클라이언트 디바이스(102)의 예들은 이동 장치, 스마트 폰들, 랩탑 컴퓨터, 데스크톱 컴퓨터, 태블릿 장치, 또는 임의의 컴퓨팅 장치를 포함한다. 일부 실시예들에서, 클라이언트 디바이스(102)는 다른 클라이언트 디바이스로부터 데이터 파일을 수신함으로써 데이터 파일을 생성한다. 일부 실시예들에서, 클라이언트 디바이스(102)는 데이터 파일을 클라이언트 디바이스(102)에서 수신된 메시지로부터의 첨부로서 다운로딩 및 웹사이트로부터 데이터 파일을 다운로딩함으로써 데이터 파일을 생성할 수 있다. 데이터 파일은 임의의 적절한 방식으로 클라이언트 디바이스(102)에 생성될 수 있다. 클라이언트 디바이스(102)는 수신된 데이터 파일과 연관된 보안 분류를 결정한다. 보안 분류는 데이터 파일이 기밀 파일인 것을 나타낸다. 데이터 파일이 기밀 파일이라는 것을 결정하는 것에 응답하여, 클라이언트 디바이스(102)는 지정된 가상 저장 영역에 데이터 파일을 저장하도록 구성된다. 다양한 실시예들에서, 지정된 저장 영역은 클라우드 서버(106)의 디스크(또는 고체 상태) 저장 장치이다. 클라이언트 디바이스(102)가 네트워크(104)를 통해 데이터 파일을 클라우드 서버(106)로 전송한 후, 클라이언트 디바이스(102)는 데이터 파일과 연관된 스터브 파일을 생성하고, 데이터 파일의 그의 사본을 제거하고, 클라이언트 디바이스(102)의 데이터 파일의 원래의 저장 위치에 스터브 파일을 저장한다. 이와 같이, 클라이언트 디바이스(102)가 클라우드 서버(106)에 데이터 파일을 업로딩하면, 클라이언트 디바이스(102)는 더 이상 데이터 파일의 사본을 보유하지 않고 데이터 파일과 연관되는 스터브 파일만을 보유한다. 클라우드 서버(106)가 데이터 파일을 성공적으로 저장하면, 클라우드 서버(106)는 네트워크(104)를 통해 지정된 가상 저장 영역에서의 데이터 파일의 저장 위치를 클라이언트 디바이스(102)로 전송하도록 구성된다. 다양한 실시예들에서, 스터브 파일은 데이터 파일과 연관된 뷰잉 허가 및 클라우드 서버(106)의 지정된 가상 저장 영역에서의 데이터 파일의 저장 위치를 포함한 데이터 파일과 연관된 다양한 정보를 기록한다. 데이터 파일과 연관된 뷰잉 허가는 어느 개별적인 사용자들 및/또는 사용자 역할들이 데이터 파일에 액세스(예를 들면, 판독, 기록, 판독 및 기록)할 수 있는지를 특정한다.
데이터 파일에 액세스하기 위해, 클라이언트 디바이스(102)의 사용자는 클라이언트 디바이스(102)에서 실행하는 가상화된 제어 및 관리 애플리케이션을 사용하여 스터브 파일을 선택하도록 구성된다. 예를 들면, 클라이언트 디바이스(102)의 사용자는 클라이언트 디바이스(102)에서 가상화된 제어 및 관리 애플리케이션을 통해 클라우드 서버(106)에 저장되는 데이터 파일들의 스터브 파일들을 브라우징할 수 있다. 클라이언트 디바이스(102)의 사용자는 액세스할 데이터 파일에 대응하는 스터브 파일을 선택할 수 있다. 스터브 파일을 공유하기 위한 사용자의 선택에 응답하여, 가상화된 제어 및 관리 애플리케이션은 클라이언트 디바이스(102)의 사용자가 선택된 스터브 파일에 기록되는 뷰잉 허가와 사용자의 식별 정보를 비교함으로써 데이터 파일에 액세스하기 위한 허가를 갖는지의 여부를 결정하도록 구성된다. 예를 들면, 사용자의 식별 정보가 선택된 스터브 파일에 의해 스터브 파일을 판독할 것이 적어도 허가되도록 특정된 경우, 가상화된 제어 및 관리 애플리케이션은 액세스 동작을 허가하도록 구성된다. 사용자가 데이터 파일에 액세스할 수 있다고 결정되는 경우, 가상 애플리케이션은 클라이언트 디바이스(102)에서 론칭/실행하고 클라우드 서버(106)와 접속을 확립하도록 구성된다. 클라이언트 디바이스(102)의 사용자는 데이터 파일에 대해 단어 처리 동작들을 수행함으로써 포함하는 클라우드 서버(106)에 저장된 데이터 파일에 액세스하기 위해 클라이언트 디바이스(102)에서 실행하는 가상 애플리케이션을 사용할 수 있다. 가상 애플리케이션은 클라이언트 디바이스(102)의 운영 시스템으로부터 분리되고, 이는 가상 애플리케이션 내에 수행된 동작들이 클라이언트 디바이스(102)의 저장 장치 및/또는 클라이언트 디바이스(102)의 메모리로부터 분리된다는 것을 의미한다.
일부 실시예들에서, 클라이언트 디바이스(102)의 사용자는 클라이언트 디바이스(102)에서 실행하는 가상화된 제어 및 관리 애플리케이션을 사용하여 다른 클라이언트 디바이스(도면에 도시되지 않음)와 데이터 파일을 공유할 수 있다. 클라이언트 디바이스(102)의 사용자는 다른 클라이언트 디바이스와 연관된 사용자와 공유할 데이터 파일에 대응하는 스터브 파일을 선택할 수 있다. 스터브 파일을 공유하기 위한 사용자의 선택에 응답하여, 가상화된 제어 및 관리 애플리케이션은 데이터 파일이 공유될 다른 사용자가 선택된 스터브 파일에 기록되는 뷰잉 허가와 다른 사용자의 식별 정보를 비교함으로써 데이터 파일에 액세스하기 위한 허가를 갖는지의 여부를 결정하도록 구성된다. 예를 들면, 사용자의 식별 정보가 선택된 스터브 파일에 의해 스터브 파일을 판독할 것이 적어도 허가되도록 특정되는 경우, 가상화된 제어 및 관리 애플리케이션은 공유 동작을 허가하도록 구성된다. 다른 사용자가 데이터 파일에 액세스할 수 있다는 것이 결정되는 경우, 가상화된 제어 및 관리 애플리케이션이 데이터 파일이 공유될 사용자의 클라이언트 디바이스에 명령을 전송하도록 구성된다. 전송된 명령은 다른 사용자가 스터브 파일을 사용하여 클라우드 서버(106)의 데이터 파일에 액세스할 수 있도록 데이터 파일이 공유될 사용자의 클라이언트 디바이스에 선택된 스터브 파일의 사본을 생성하도록 구성된다.
이와 같이, 클라이언트 디바이스(102)로부터 액세스를 제공하면서 클라우드 서버(106)의 지정된 가상 저장 영역에 기밀 데이터 파일을 저장하는 것은 따라서 가상 환경에서 데이터 파일에 대해 수행된 동작들을 분리할 수 있다. 따라서, 가상 환경의 사용은 적절한 액세스 허가들 없이 또는 클라이언트 디바이스(102)를 조작함으로써 사용자 및/또는 프로그램에 의해 클라이언트 디바이스(102)의 데이터 파일에 임의의 악의적인 액세스들을 방지할 수 있다. 스터브 파일이 데이터 파일에 대한 뷰잉 허가 및 지정된 가상 저장 영역에서 데이터 파일의 저장 위치를 기록하지만 데이터 파일 자체로부터 어떠한 데이터도 포함하지 않기 때문에, 클라이언트 디바이스(102)에 저장되는 스터브 파일에 대해 사용자에 의해 수행된 임의의 동작들은 클라우드 서버(106)에 저장된 데이터 파일에 대해 어떠한 효과도 갖지 않을 것이다.
도 2는 데이터 파일들을 보호하기 위한 프로세스의 일 실시예를 도시하는 흐름도이다. 일부 실시예들에서, 프로세스(200)는 도 1의 시스템(100)에서 구현된다.
202에서, 데이터 파일이 클라이언트 디바이스에 의해 생성되었다는 표시에 응답하여, 데이터 파일과 연관된 보안 분류가 결정된다.
예를 들면, 데이터 파일은 새로운 파일을 복사하거나, 새로운 파일을 다운로딩하거나, 새로운 파일을 생성하는 것을 통해 클라이언트 디바이스에서 생성될 수 있다.
다양한 실시예들에서, 데이터 파일의 보안 분류는 예를 들면 파일을 생성한 사용자와 같은 사용자에 의해 설정된다. 일부 실시예들에서, 데이터 파일의 보안 분류는 데이터 파일의 비밀 등급을 포함한다. 예를 들면, 보안 분류는 레벨 0, 레벨 1, 또는 레벨 2로 설정될 수 있고, 각각의 레벨은 데이터 파일에 관하여 상이한 비밀 등급을 나타낸다. 예를 들면, 레벨 0은 사용자가 데이터 파일에 대한 보안 수단을 채용할 필요가 없다는 것을 나타내고, 레벨 1은 사용자가 데이터 파일에 대한 보안 수단을 취할 필요가 있다는 것을 나타낸다. 다른 예에서, 레벨 0은 사용자가 데이터 파일에 대해 보안 수단을 채용할 필요가 없다는 것을 나타내고, 레벨 1은 사용자가 클라이언트 디바이스상의 데이터 파일에 대한 보안 수단을 채용할 필요가 있다는 것을 나타내고, 레벨 2는 사용자가 클라이언트 디바이스 및 클라우드 서버상의 데이터 파일에 대한 보안 수단을 채용할 필요가 있다는 것을 나타낸다.
일부 실시예들에서, 데이터 파일의 콘텐트 정보는 데이터 파일과 연관된 보안 분류를 결정할 것이 먼저 결정될 수 있다. 예를 들면, 데이터 파일의 콘텐트 정보는 제 1 미리 설정된 상태에 대해 매칭될 수 있고, 데이터 파일의 보안 분류는 제 1 매칭 결과에 따라 결정된다. 예를 들면, 제 1 미리 설정된 상태는 다수의 주요 어구들, 예컨대 "암호화된", "사적인", 또는 "비공개적인"을 포함할 수 있다. 시스템이 데이터 파일의 콘텐트 정보가 "암화화된" 또는 "사적인" 것과 같은 콘텐트를 포함한다는 것을 검출할 때, 제 1 매칭 결과에 따라 데이터 파일의 보안 분류는 레벨 1인 것으로 결정되고, 이는 사용자가 데이터 파일에 대한 보안 수단을 취할 필요가 있다는 것을 나타낸다. 콘텐트 정보가 전술한 주요 어구들을 포함하지 않는 경우, 제 1 매칭 결과에 따라 데이터의 분류 레벨이 레벨 0인 것을 결정하는 것이 가능하고, 레벨 0은 사용자가 데이터 파일에 대한 보안 수단을 취할 필요가 없다는 것을 나타낸다. 제 2 예에서, 데이터 파일의 파일명은 제 2 미리 설정된 상태에 대해 매칭될 수 있고, 데이터 파일의 보안 분류는 제 2 매칭 결과에 따라 결정된다. 예를 들면, 제 2 미리 설정된 상태는 "비밀" 또는 "암호화된" 것과 같은 다수의 주요 어구들을 포함할 수 있다. 시스템이 데이터 파일의 파일명이 "비밀" 또는 "암호화된" 것과 같은 콘텐트를 포함한다는 것을 검출한 경우, 제 1 매칭 결과에 따른 데이터 파일의 보안 분류는 레벨 1로 결정될 수 있고, 레벨 1은 사용자가 데이터 파일에 대해 보안 수단이 필요하다는 것을 나타낸다. 파일명이 전술한 주요 어구들을 포함하지 않는 경우, 제 2 매칭 결과에 따른 데이터의 분류 레벨이 레벨 0인 것을 결정할 수 있고, 레벨 0은 사용자가 데이터 파일에 대한 보안 수단을 취할 필요가 없다는 것을 나타낸다.
204에서, 데이터 파일과 연관된 보안 분류가 기밀 파일을 포함한다는 것이 결정된다.
데이터 파일과 연관된 보안 분류는 상기에 설명된 것과 같은 기술에 기초하여 결정되고, 데이터 파일이 보안 분류에 기초한 기밀 파일임이 결정된다.
데이터 파일이 기밀이 아닌 파일(예를 들면, 보안 수단이 요구되지 않은 파일)인 것이 결정된 경우, 데이터 파일은 일반적으로 저장되고 및/또는 사용자에게 일반적으로 제공될 수 있다. 기밀이 아닌 파일들의 저장 및/또는 사용은 더 설명되지 않을 것이다.
206에서, 데이터 파일은 지정된 가상 저장 영역에 저장된다.
기밀 파일인 것이 결정되는 데이터 파일은 지정된 가상 저장 영역에 저장된다. 일부 실시예들에서, 가상 저장 영역은 클라이언트 디바이스의 자기 디스크상에 있고 보안 수단을 요구하는 데이터 파일들(예를 들면, 기밀 파일들)을 저장하기 위한 특정한 자기 디스크 어레이 섹션일 수 있다. 사용자가 가상 저장 영역에 저장된 데이터 파일에 액세스할 필요가 있을 때, 클라이언트 디바이스 운영 시스템으로부터 분리되는(및 저장 분리 및 메모리 분리, 등을 포함할 수 있는) 가상 애플리케이션은 클라이언트 디바이스에서 개시되고, 클라이언트 디바이스의 가상 저장 영역에 저장된 데이터 파일은 가상 애플리케이션을 통해 액세스될 수 있다.
일부 실시예들에서, 가상 저장 영역은 (예를 들면, 원격) 클라우드 서버의 자기 디스크상에 있고 보안 수단을 요구하는 데이터 파일들(예를 들면, 기밀 파일들)을 저장하기 위한 특정한 자기 디스크 어레이 섹션일 수 있다. 사용자의 클라이언트 디바이스가 데이터 파일을 저장할 수 없거나 데이터 파일을 위한 보안 수단을 채택할 수 없을 때, 클라이언트 디바이스 운영 시스템으로부터 분리되는(및 저장 분리, 메모리 분리 등을 포함할 수 있는) 가상 애플리케이션이 클라이언트 디바이스에서 개시되고 클라우드 서버의 가상 저장 영역에 저장된 데이터 파일은 가상 애플리케이션을 통해 액세스될 수 있다. 따라서, 가상 환경 내의 클라우드 서버상의 가상 저장 영역에 저장된 데이터 파일에 대해 수행된 임의의 동작들을 분리하고 데이터 파일이 누설되는 것을 방지하는 것이 가능하다.
208에서, 스터브 파일은 데이터 파일의 원래의 저장 위치에 생성되고, 스터브 파일은 데이터 파일과 연관된 뷰잉 허가 및 지정된 가상 저장 영역 내 데이터 파일의 저장 위치를 포함한다.
데이터 파일은 지정된 가상 저장 영역에서 저장 위치에 저장되기 전에 원래의 저장 위치에(예를 들면, 클라이언트 디바이스와 연관된 저장 장치에) 저장된다. 다양한 실시예들에서, 데이터 파일이 지정된 가상 저장 영역에 저장되면, 데이터 파일의 사본은 원래의 저장 위치로부터 삭제되고 스터브 파일이 대신 원래의 저장 위치에 저장된다. 다양한 실시예들에서, 스터브 파일은 데이터 파일과 연관된 뷰잉 허가(들) 및 지정된 가상 저장 영역에서의 데이터 파일의 저장 위치를 기록한다. 다양한 실시예들에서, 데이터 파일과 연관된 뷰잉 허가(들)는 데이터 파일에 액세스(예를 들면, 판독, 기재, 판독 및 기재)하도록 허용된 지정된 하용자들 및/또는 사용자들의 역할들(예를 들면, 관리자 사용자들, 게스트 사용자들, 특정 그룹의 사용자들의 게스트들)을 특정한다.
다양한 실시예들에서, 사용자가 클라이언트 디바이스에서 스터브 파일을 선택할 때, 데이터 파일의 원래의 저장 위치에 저장된 스터브 파일은 선택한 사용자가 뷰잉 허가를 갖는지의 여부를 결정하기 위해 클라이언트 디바이스(의 운영 시스템)에 의해 판독될 것이다. 데이터 파일은, 선택한 사용자가 데이터 파일에 액세스하기 위한 뷰잉 허가를 갖는다고 결정되는 경우에만 지정된 가상 저장 영역의 저장 위치로부터 검색될 수 있다. 그래서, 데이터 파일은 지정된 가상 저장 영역의 저장 위치로부터 뷰잉된다. 이하에 더 상세히 설명되는 바와 같이, 지정된 가상 저장 시스템으로부터의 데이터 파일에 액세스하는 것은 (예를 들면, 클라우드 서버의) 지정된 가상 저장 영역 내 데이터 파일에 대한 액세스를 제공하는 가상화된 환경을 구동하는 것을 포함한다. 그러나, 선택한 사용자가 뷰잉 허가를 갖지 않는 경우, 선택한 사용자는 지정된 가상 저장 영역 내 데이터 파일에 대한 액세스가 거부된다.
도 3은 보호된 데이터 파일을 공유하기 위한 프로세스의 일 실시예를 도시하는 흐름도이다. 일부 실시예들에서, 프로세스(300)는 도 1의 시스템(100)에서 구현된다.
302에서, 제 1 명령은 제 2 사용자와 데이터 파일을 공유하기 위해 제 1 사용자로부터 수신된다.
일부 실시예들에서, 제 1 사용자는 지정된 다른 사용자와 스터브 파일을 공유하기를 개시하기 위해 클라이언트 디바이스 애플리케이션 또는 스터브 파일-공유 키를 사용함으로써 다른 사용자와 데이터 파일을 공유할 수 있다. 일부 실시예들에서, 공유될 데이터 파일은 이미 클라우드 서버에 업로드되고, 데이터 파일에 대응하는 스터브 파일만이 다른 사용자와 데이터 파일을 공유하기를 원하는 사용자의 클라이언트 디바이스에 저장된다.
304에서, 제 2 사용자와 연관된 사용자 정보가 결정된다. 일부 실시예들에서, 사용자 정보는 클라이언트 애플리케이션에서 다른 사용자의 계정 번호를 포함할 수 있거나, 다른 사용자가 데이터 파일을 수신할 수 있는 이메일 어드레스를 포함할 수 있다. 다시 말해서, 본 출원은 데이터 파일들이 공유될 수 있는 사용자 정보에 포함된 어드레스에 관련하는 제한들을 부과하지 않는다. 필요한 것은 다른 사용자가 데이터 파일을 수신할 수 있게 되는 것이다.
306에서, 제 2 사용자가 제 2 사용자와 연관된 사용자 정보에 적어도 부분적으로 기초하여 데이터 파일에 액세스하기 위한 허가를 갖는지의 여부가 결정된다. 제 2 사용자가 데이터 파일에 액세스하기 위한 허가를 갖는 것이 결정되는 경우, 제어는 308로 이동된다. 그와 달리, 제 2 사용자가 데이터 파일에 액세스하기 위한 허가를 갖지 않는 것이 결정되는 경우, 제 2 사용자는 데이터 파일에 대한 액세스가 거부되고(예를 들면, 데이터 파일이 그/그녀와 공유될 수 없다는 메시지가 제 2 사용자에게 전송된다), 프로세스(300)는 종료한다.
제 2 사용자와 연관된 사용자 정보는 제 2 사용자가 데이터 파일에 액세스하기 위한 허가를 갖는지의 여부를 결정하기 위해 데이터 파일의 스터브 파일에 포함되는 데이터 파일과 연관된 뷰잉 허가와 비교된다. 예를 들면, 제 2 사용자와 연관된 사용자 정보는 제 2 사용자와 연관된 식별 정보 및 제 2 사용자와 연관된 역할들을 포함할 수 있다.
308에서, 데이터 파일은 클라우드 서버의 지정된 가상 저장 영역에 업로드되고 그에 저장된다.
일부 실시예들에서, 데이터 파일의 사본이 (예를 들면, 백업 저장을 위해) 클라우드 서버의 지정된 가상 저장 영역에 미리 업로딩되고 저장되지 않은 경우, 데이터 파일의 사본은 클라우드 서버의 지정된 가상 저장 영역에 업로딩된다. 예를 들면, 제 2 사용자와 데이터 파일을 공유하기를 원하는 제 1 사용자는 클라우드 서버에 데이터 파일을 업로딩하기 위해 클라이언트 디바이스 애플리케이션 또는 스터브 파일 업로드 키를 사용할 수 있다. 일부 실시예들에서, 클라이언트 애플리케이션은 클라이언트 디바이스상에 설치된 가상화된 제어 및 관리 소프트웨어일 수 있다.
310에서, 제 2 명령은 제 2 사용자와 연관된 클라이언트 디바이스로 전송되고, 제 2 명령은 제 2 사용자와 연관된 클라이언트 디바이스에 데이터 파일에 대응하는 스터브 파일을 생성하도록 구성된다.
일부 실시예들에서, 제 2 사용자와 연관된 식별 정보는 제 2 사용자와 연관된 사용자 정보로부터 결정된다. 제 2 사용자가 대응하는 클라이언트 디바이스를 통해 제 2 명령을 수신한 후, 제 2 사용자의 클라이언트 디바이스상의 데이터 파일에 대한 스터브 파일은 제 2 명령에 기초하여 생성된다. 예를 들면, 스터브 파일의 생성된 사본은 데이터 파일이 제 2 사용자의 클라이언트 디바이스에 저장된 원래의 위치에 저장된다. 제 2 사용자의 클라이언트 디바이스는 이후 클라우드 서버의 지정된 가상 저장 영역으로부터 데이터 파일을 획득하기 위한 것이 기초로서 스터브 파일을 사용할 수 있다. 상기에 기술되는, 다양한 실시예들에서, 스터브 파일은 데이터 파일과 연관된 뷰잉 허가(들) 및 지정된 가상 저장 영역에서의 데이터 파일의 저장 위치를 기록한다.
프로세스(300)에서 설명된 바와 같이, 데이터 파일을 공유할 필요가 있을 때, 제 2 명령은 사용자 정보에 따라 제 2 사용자에게 전송된다. 제 2 사용자가 그들의 클라이언트 디바이스를 통해 데이터 파일의 수신을 확인한 후, 데이터 파일 스터브 파일은 제 2 사용자의 클라이언트 디바이스상에 생성된다. 따라서, 비밀이 유지될 필요가 있는 데이터 파일의 공유는 스터브 파일을 공유함으로써 가상으로 공유된다. 데이터 파일의 기본 데이터가 제 2 사용자에게 전송되지 않고 공유된 스터브 파일이 저장 위치 및 가상 저장 영역 내 데이터 파일의 뷰잉 허가를 단지 저장하고 데이터 파일 자체의 어떠한 데이터 정보도 포함하지 않기 때문에, 스터브 파일의 그 또는 그녀의 사본에 대해 제 2 사용자에 의해 수행된 임의의 동작들은 데이터 파일에 대해 어떠한 효과도 갖지 않을 것이다. 이는 비밀 정보가 공유 프로세스에서 데이터 파일로부터 누설되지 않을 것을 보장한다.
도 4는 보호된 데이터 파일을 사용하기 위한 프로세스의 일 실시예를 도시하는 흐름도이다. 일부 실시예들에서, 프로세스(400)는 도 1의 시스템에서 구현된다.
402에서, 스터브 파일과 연관된 사용자 선택이 클라이언트 디바이스에 수신된다.
스터브 파일과 연관된 사용자 선택이 클라이언트 디바이스에 수신된다. 다양한 실시예들에서, 스터브 파일은 클라우드 서버의 지정된 가상 저장 영역에 저장되고 도 2의 프로세스(200) 또는 도 3의 프로세스(300)와 같은 프로세스에 기초하여 생성되는 데이터 파일에 대응한다. 예를 들면, 스터브 파일은 클라이언트 디바이스에서 실행하고 있는 파일 브라우저 애플리케이션에 디스플레이된다. 일부 실시예들에서, 스터브 파일은 클라우드 서버의 지정된 가상 저장 영역 대신에 클라이언트 디바이스에 로컬로 저장된 연관되는 데이터 파일이 디스플레이되는 것과 동일한 방식으로 파일 브라우저 애플리케이션에 디스플레이된다.
일부 실시예들에서, 클라이언트 디바이스상에 설치된 클라이언트 애플리케이션은 스터브 파일-관련 클릭 이벤트들에 대해 모니터링하기 위해 사용될 수 있다. 일부 실시예들에서, 사용자는 이미 사용자의 자격들을 사용하여 클라이언트 애플리케이션에 로그온하였다. 일부 실시예들에서, 클릭 이벤트는 스터브 파일에 대한 더블-클릭 이벤트일 수 있거나 표시된 메뉴 또는 파일 브라우저 애플리케이션상에 디스플레이될 때 스터브 파일에 대한 클릭 이벤트일 수 있다. 일부 실시예들에서, 클라이언트 애플리케이션은 스터브 파일들을 기록할 수 있고 따라서 클릭된 파일이 스터브 파일인지 원래의 데이터 파일인지를 결정할 수 있다.
404에서, 사용자 선택과 연관된 사용자가 스터브 파일에 포함되는 데이터 파일과 연관된 뷰잉 허가에 적어도 부분적으로 기초하여 스터브 파일과 연관된 데이터 파일에 액세스하기 위한 허가를 갖는지의 여부가 결정된다. 사용자 선택과 연관된 사용자가 데이터 파일에 액세스하기 위한 허가를 갖는 경우, 제어는 406으로 이동한다. 그와 달리, 사용자 선택과 연관된 사용자가 데이터 파일에 액세스하기 위한 허가를 갖지 않는 경우, 사용자는 데이터 파일에 대한 액세스가 거부되고 프로세스(400)는 종료한다.
상기에 기술된 바와 같이, 스터브 파일은 대응하는 데이터 파일의 뷰잉 허가 및 클라우드 서버의 지정된 가상 저장 영역에 데이터 파일의 저장 위치를 기록한다. 스터브 파일을 선택한 사용자와 연관된 사용자 정보는 선택과 연관된 사용자가 데이터 파일의 뷰잉 허가를 갖는 사용자인지의 여부를 결정하기 위해 스터브 파일에 포함된 뷰잉 허가들과 비교된다.
406에서, 데이터 파일에 대응하는 가상 애플리케이션은 클라이언트 디바이스에서 개시된다.
408에서, 지정된 가상 저장 영역의 데이터 파일에 대한 액세스가 가상 애플리케이션을 사용하여 제공된다.
다양한 실시예들에서, 가상 애플리케이션은 클라이언트 디바이스상에 설치된 가상화된 제어 및 관리 소프트웨어 애플리케이션이다. 다양한 실시예들에서, 가상 애플리케이션은 클라이언트 디바이스의 운영 시스템으로부터 분리된다. 다양한 실시예들에서, 운영 시스템으로부터의 가상 애플리케이션의 분리는 운영 시스템으로부터 저장 장치 분리를 포함할 수 있고, 이는 또한 운영 시스템으로부터의 메모리 분리를 포함할 수 있다. 따라서, 가상 애플리케이션은 데이터 파일에 대해 사용자에 의해 수행된 임의의 동작이 가상 애플리케이션에 의해 제공되는 가상 환경 내에서 분리되고, 그에 의해 가상 애플리케이션에 대해 승인된 액세스가 아닌 악의적인 사용자들이 가상 애플리케이션 내로부터 임의의 데이터 자원들을 획득하는 것을 방지한다. 일부 실시예들에서, 가상 애플리케이션을 통한 데이터 파일에 대한 사용자의 액세스는 예를 들면, 일반적인 판독, 편집, 및 클립보드들의 사용을 포함할 수 있다. 일부 실시예들에서, 데이터 파일에 대한 사용자에 의해 수행된 동작들은 스터브 파일이 저장된 클라이언트 디바이스상에서가 아닌 데이터 파일이 저장된 클라우드 서버에서 실행될 것이다. 다양한 실시예들에서, 가상 애플리케이션은 스터브 파일에 포함되는 데이터 파일의 저장 위치를 사용하여 클라우드 서버의 지정된 가상 저장 영역에 저장된 데이터 파일의 위치를 찾도록 구성된다. 도 5는 이하에 클라우드 서버의 지정된 가상 저장 영역에 저장된 데이터 파일에 액세스하기 위해 가상 애플리케이션을 사용하는 일 예를 도시한다.
도 5는 보호된 데이터 파일에 액세스하기 위한 프로세스의 일 예를 도시하는 흐름도이다. 일부 실시예들에서, 프로세스(500)는 도 1의 시스템(100)에서 구현된다.
다양한 실시예들에서, (예를 들면, 기밀) 데이터 파일에 대응하는 스터브 파일은 클라이언트 디바이스상에 저장되고, 반면에 데이터 파일은 클라우드 서버상에 지정된 가상 저장 영역에 저장된다. 프로세스(500)는 스터브 파일이 클라이언트 디바이스에서 선택된 후(예를 들면, 상기에서 도 4의 프로세스(400)에 설명되는 바와 같이) 가상 애플리케이션을 사용하여 클라우드 서버상의 지정된 가상 저장 영역으로부터 데이터 파일을 획득하기 위한 프로세스의 일 예이다.
502에서, 클라이언트 디바이스는 데이터 파일이 데이터 파일과 연관된 스터브 파일에 포함된 정보에 적어도 부분적으로 기초하여 저장되는 클라우드 서버에 연결된 원격 데스크톱 프로토콜(RDP) 구성 요소를 개시한다.
사용자가 (예를 들면, 상기에서 도 4의 프로세스(400)와 같은 프로세스를 사용하여) 클라이언트 디바이스의 스터브 파일을 선택했다는 것을 검출한 후, 클라이언트 디바이스는 스터브 파일에 기록된 정보에 따라 원격 데스크톱 프로토콜(RDP) 구성 요소를 시작한다. RDP 구성 요소는 데이터 파일이 액세스되는 클라우드 서버에서의 데이터 파일에 액세스하기 위해 사용될 수 있는 예시적인 가상 애플리케이션이다. RDP 구성 요소는 데이터 파일이 저장되는 클라우드 서버에 연결하기 위해 사용된다.
504에서, 클라이언트 디바이스는 RDP 구성 요소를 통해 스터브 파일에 포함된 정보를 클라우드 서버에 송신한다.
일부 실시예들에서, 스터브 파일에 기록된 모든 데이터 정보는 클라이언트 애플리케이션에 의해 암호화된다. 암호화된 데이터 애플리케이션은 스터브 파일에 대응하는 데이터 파일과 연관된 정보를 기록하고, 상기 연관된 정보는 예를 들면: 클라우드 서버의 지정된 가상 저장 영역에서의 데이터 파일의 저장 위치, 데이터 파일에 대한 사용자 허가들, 데이터 파일-공유 절차, 및 데이터 파일의 사용에 대한 이력 기록들, 중 하나 이상을 포함한다. 일부 실시예들에서, 클라이언트 디바이스로부터 클라우드 서버로 송신되는 스터브 파일에 포함된 정보는, 예를 들면: 데이터 파일이 저장된 클라우드 서버의 지정된 가상 저장 영역의 저장 위치, 클라이언트 애플리케이션 사용자 허가들, 사용자가 확인할 필요가 있는 정보, 및 열리게 될 데이터 파일에 대한 서버에 대한 서버상의 가상 저장 경로, 중 하나 이상을 포함한다.
506에서, 클라우드 서버가 송신된 정보를 확인한 후, 클라우드 서버는 클라이언트 디바이스상에 원격 가상화 프로그램을 시작하고 스터브 파일에 포함된 지정된 가상 저장 영역 저장 위치에 따라 클라우드 서버상에 데이터 파일을 연다.
508에서, 클라우드 서버는 클라이언트 디바이스상에 문서 편집기 프로그램을 맵핑한다.
일부 실시예들에서, 클라우드 서버는 문서 편집기 프로그램(예를 들면, 마이크로소프트 워드)를 사용하여 새로운 편집 가능한 파일을 확립할 수 있고 이후 클라이언트 디바이스상에 편집 가능한 파일에 대한 전체 가시적인 윈도우를 송신한다. 따라서, 원격 문서 편집기는 클라이언트 디바이스상에 맵핑될 수 있다. 일부 실시예들에서, 클라이언트 디바이스상에 문서 편집기를 맵핑하는 것은 클라이언트 디바이스에 표시될 문서 편집기의 사용자 인터페이스를 전송하는 것을 포함한다.
510에서, 클라이언트 디바이스는 클라우드 서버상에 저장된 데이터 파일에 대해 동작들을 수행하기 위해 문서 편집기 프로그램을 사용한다.
일부 실시예들에서, 클라이언트 디바이스상에 클라우드 서버에 의해 맵핑되는 문서 편집기 프로그램을 사용하여 데이터 파일에 수행할 사용자로부터 클라이언트 디바이스에 수신되는 동작들은 예를 들면, 데이터 파일 콘텐트들을 뷰잉하거나 편집하는 것 및 데이터 파일을 복사하는 것을 포함할 수 있다. 클라이언트 디바이스에서 문서 편집기 프로그램 사용자 인터페이스를 통해 수행된 사용자 동작들은 클라우드 서버에 전송되고 이후 클라우드 서버의 데이터 파일에 대해 실행된다. 본 출원은 데이터 파일에 관하여 특정한 동작들에 관한 제한들을 부과하지 않는다.
제 1 예에서, 제 1 사용자가 제 2 사용자와 (예를 들면, 기밀 데이터 파일) 공유한 후(예를 들면, 도 3의 프로세스(300)와 같은 프로세스를 사용하여), 제 2 사용자는 데이터 파일 자체의 사본보다 오히려 사용자의 클라이언트 디바이스에서의 스터브 파일만을 수신한다. 제 2 사용자가 클라우드 서버로부터 데이터 파일을 획득하는 것에 기초하여 스터브 파일을 사용할 필요가 있을 때, 제 2 사용자는 제 2 사용자의 클라이언트 디바이스에 저장된 스터브 파일을 선택할 수 있고, 도 4의 프로세스(400) 및 도 5의 프로세스(500)와 같은 프로세스들은 클라우드 서버의 지정된 가상 저장 영역에 저장되는 데이터 파일에 대한 사용자 액세스를 제공하기 위해 사용될 수 있다.
제 2 예에서, 데이터 파일이 클라이언트 디바이스 자기 디스크가 한정된 저장 공간을 갖거나 가상 저장 영역에 의해 설정되지 않기 때문에 클라우드 서버의 지정된 가상 저장 영역에 저장되는 경우, 도 4의 프로세스(400) 및 도 5의 프로세스(500)와 같은 프로세스들은, 사용자가 스터브 파일에 기초하여 클라우드 서버로부터 데이터 파일을 획득할 필요가 있을 때, 클라이언트 디바이스의 사용자에게 클라우드 서버의 가상 영역으로부터의 데이터 파일에 대한 액세스를 제공하기 위해 사용될 수 있다.
제 3 예에서, 사용자가 상이한 클라이언트 디바이스를 통해 클라우드 서버로부터 데이터 파일에 대한 동작들을 수행할 필요가 있을 때, 도 4의 프로세스(400) 및 도 5의 프로세스(500)는 데이터 파일에 대한 액세스를 원격으로 제공하기 위해 사용될 수 있다. 예를 들면, 클라이언트 디바이스 A의 사용자는 데이터 파일에 대한 스터브 파일을 생성하고 클라이언트 디바이스 A의 가상 영역에 데이터 파일을 저장한다. 사용자가 클라이언트 디바이스 A로부터 클라이언트 디바이스 B로 스터브 파일을 전송할 때, 및 클라이언트 디바이스 A가 데이터 파일을 클라우드 서버에 업로드한 후, 사용자는, 사용자가 클라이언트 디바이스 B로부터 데이터 파일을 검색할 필요가 있는 경우, 클라우드 서버로부터의 데이터 파일에 대한 동작들을 수행하기 위해 도 4의 프로세스(400) 및 도 5의 프로세스(500)를 사용할 수 있다.
Citrix XenApp과 같은 애플리케이션들 및 다른 이러한 애플리케이션들의 가상화 비용은 꽤 클 수 있다. 따라서, 상기에 설명된 바와 같이, 본 출원은, 예를 들면, RDP 기반 애플리케이션 가상화 방식을 채용함으로써 윈도우 운영 시스템을 사용할 수 있다. RDP 제어 구성 요소, 메시지 후크(message hook), 및 윈도우 클립핑 기술을 사용함으로써, 원격 애플리케이션 가상화 기술이 달성될 수 있고, 따라서, 클라이언트 디바이스의 자체 운영 시스템에 대한 의존을 피하고 클라우드 서버가 임의의 윈도우 운영 시스템을 채용하게 하고, 이는 데이터 파일의 사용자에 대해 더 융통성이 있다.
다음의 예는 상기 설명된 실시예들에 기초한다: 데이터 파일이 사용자에 의한 동작들을 경험하게 될 때, 클라이언트 디바이스상에 설치된 클라이언트 애플리케이션은 또한 데이터 파일에 대해 사용자에 의해 수행된 동작들을 모니터링하기 위해 사용될 수 있다. 일부 실시예들에서, 데이터 파일에 대해 사용자에 의해 수행된 동작들은 클라이언트 디바이스에 대해 수행될 수 있거나, 그들은 클라우드 서버로부터 클라이언트 디바이스상에 맵핑된 문서 편집기를 통해 사용자에 의해 데이터 파일에 대해 수행될 수 있고, 따라서, 데이터 파일 열기, 조작, 플로잉, 및 사용자에 의해 수행되는 모든 다른 데이터 파일 관련 동작들의 효과적인 모니터링 및 관리를 허용한다.
도 6은 데이터 파일들을 보호하기 위한 일 예시적인 클라이언트 디바이스를 도시하는 도면이다. 예에 도시된 바와 같이, 클라이언트 디바이스는 프로세서, 내부 버스, 네트워크 포트들, 내부 메모리, 및 비휘발성 메모리를 포함한다. 특히, 클라이언트 디바이스는 또한 비지니스 서비스들을 수행하기 위해 필요할 때 다른 하드웨어를 포함할 수 있다. 프로세서는 비휘발성 메모리로부터 내부 메모리로 대응하는 컴퓨터 프로그램을 획득할 수 있고, 이후 그를 실행한다. 데이터 파일 보호 디바이스는 로직 층에 형성된다. 본 출원은 소프트웨어 구현들 외에 다른 구현들, 예를 들면 로직 디바이스 또는 조합된 소프트웨어/하드웨어 형태를 배제하지 않는다. 다시 말해서, 상기에 설명되는 프로세스들을 실행하는 엔티티는 다양한 로직 유닛들로 한정될 필요는 없고, 하드웨어, 소프트웨어, 또는 그 둘의 조합일 수 있다.
도 7은 데이터 파일들을 보호하기 위한 일 예시적인 클라이언트 디바이스를 도시하는 도면이다. 예에서, 디바이스(700)는 제 1 결정 모듈(71), 저장 모듈(72), 및 스터브 생성 모듈(73)을 포함한다.
모듈들 및 유닛들은 프로그래밍 가능한 로직 디바이스들과 같은 하드웨어로서, 하나 이상의 프로세서들상에 실행하는 소프트웨어 구성 요소들로서 구현될 수 있고, 및/또는 소자들이 설계된 주문형 집적 회로들은 컴퓨터 디바이스(예컨대 개인용 컴퓨터들, 서버들, 네트워크 장비, 등)이 본 발명의 실시예들에서 설명된 방법들을 구현하게 하기 위한 다수의 명령들을 포함하는 비휘발성 저장 매체(예컨대 광 디스크, 플래시 저장 디바이스, 모바일 하드 디스크 등)에 저장될 수 있는 소프트웨어 제품들의 일 형태에 의해 구현될 수 있다. 모듈들 및 유닛들은 단일 디바이스상에 구현되거나 다수의 디바이스들에 걸쳐 분포될 수 있다.
제 1 결정 모듈(71)은 클라이언트 디바이스상에 데이터 파일의 생성에 응답하여 데이터 파일의 원래의 저장 위치 및 데이터 파일의 보안 분류를 결정하도록 구성된다.
저장 모듈(72)은 제 1 결정 모듈에 의해 결정된 보안 분류가 데이터 파일이 기밀 파일인 것을 나타내는 경우 지정된 가상 저장 영역에 데이터 파일을 저장하도록 구성된다.
스터브 생성 모듈(73)은 제 1 결정 모듈(71)에 의해 결정된 원래의 저장 위치에 스터브 파일을 생성하도록 구성된다. 스터브 파일은 지정된 가상 저장 영역의 데이터 파일의 저장 위치 및 데이터 파일에 대한 뷰잉 허가를 기록하도록 구성된다.
도 8은 데이터 파일들을 보호하기 위한 일 예시적인 클라이언트 디바이스를 도시하는 도면이다. 일부 실시예들에서, 디바이스(800)는 도 7의 디바이스(700)의 일 예시적인 구현이다. 디바이스(800)의 예에서, 디바이스(700)의 제 1 결정 모듈(71)은 제 1 결정 유닛(711), 제 1 매칭 유닛(712), 제 2 결정 유닛(173), 및 제 2 매칭 유닛(714)을 포함한다. 디바이스(800)는 모니터링 모듈(78), 저장 모듈(72), 제 2 결정 모듈(74), 전송 모듈(75), 제 3 결정 모듈(76), 업로딩 모듈(77), 및 스터브 생성 모듈(73)을 포함한다.
제 1 결정 유닛(711)은 데이터 파일의 콘텐트 정보를 결정하도록 구성된다.
일부 실시예들에서, 제 1 매칭 유닛(712)은 제 1 미리 설정된 상태에 대해 제 1 결정 유닛(711)에 의해 결정된 콘텐트 정보를 매칭하고 제 1 매칭 결과에 따라 데이터 파일의 보안 분류를 결정하도록 구성된다.
일부 실시예들에서, 제 2 결정 유닛(173)은 데이터 파일의 파일명을 결정하도록 구성된다.
제 2 매칭 유닛(714)은 제 2 미리 설정된 상태에 대해 제 2 결정 유닛(713)에 의해 결정된 파일명을 매칭하고 제 2 매칭 결과에 따라 데이터 파일의 보안 분류를 결정하도록 구성된다.
제 2 결정 모듈(74)은 제 1 사용자가 저장 모듈(72)에 의해 저장된 데이터 파일을 제 1 사용자에 의해 지정되는 제 2 사용자의 클라이언트 디바이스와 공유할 것을 선택한 것을 나타내는 제 1 명령을 검출하면 제 2 사용자에 대한 사용자 정보를 결정하도록 구성된다.
전송 모듈(75)은 제 2 사용자에게 데이터 파일을 수신할 것을 명령하기 위해 제 2 명령을 제 2 사용자에게 전송하는 것에 기초하여 제 2 결정 모듈(74)에 의해 결정된 사용자 정보를 사용하도록 구성된다. 제 2 사용자가 대응하는 클라이언트 디바이스를 통해 데이터 파일을 수신한 후, 전송 모듈(75)은 제 2 사용자의 클라이언트 디바이스 상에 데이터 파일에 대한 스터브 파일을 생성하도록 구성된다.
제 3 결정 모듈(76)은 제 2 사용자가 데이터 파일에 대한 뷰잉 허가를 갖는지의 여부를 결정한 것에 기초하여 제 2 결정 모듈(74)에 의해 결정된 사용자 정보를 사용하도록 구성된다.
업로딩 모듈(77)은 제 2 사용자가 데이터 파일에 대한 뷰잉 허가를 갖는다는 결정에 연관된 제 3 결정 모듈(76)로부터의 표시를 수신하도록 구성된다. 상기 표시에 응답하여, 업로딩 모듈(77)은 데이터 파일을 클라우드 서버로 업로딩하고 이를 저장하도록 구성되어 상기 결과는 제 2 사용자가 클라우드 서버로부터 데이터 파일을 획득하는 것에 기초하여 스터브 파일을 사용할 수 있는 것이다.
모니터링 모듈(78)은 데이터 파일에 대해 사용자에 의해 수행되는 사용자 동작들을 모니터링하기 위해 클라이언트 디바이스상에 설치된 클라이언트 애플리케이션을 사용하도록 구성된다.
도 9는 일 예시적인 데이터 파일 검색 디바이스를 도시하는 도면이다. 예에서, 디바이스(900)는 제 4 결정 모듈(91), 시작 모듈(92), 및 액세싱 모듈(93)을 포함한다.
제 4 결정 모듈(91)은 스터브 파일을 선택하는 것과 연관된 사용자가 스터브 파일에 의해 기록된 뷰잉 허가에 따라 데이터 파일에 액세스하기 위한 허가를 갖는지의 여부를 결정하도록 구성된다.
제 4 결정 모듈(91)이 사용자가 데이터 파일에 액세스하기 위한 허가를 갖는 것을 결정하는 경우, 시작 모듈(92)은 데이터 파일에 대응하는 가상 애플리케이션을 개시하도록 구성된다.
액세싱 모듈(93)은 스터브 파일에 의해 기록된 지정된 가상 저장 영역 저장 위치에 저장된 데이터 파일에 액세스하기 위해 시작 모듈(92)에 의해 시작된 가상 애플리케이션을 사용하도록 구성된다.
도 10은 일 예시적인 데이터 파일 검색 디바이스를 도시하는 도면이다. 일부 실시예들에서, 도 9의 디바이스(900)는 디바이스(1000)의 예를 사용하여 구현될 수 있다. 디바이스(1000)의 예에서, 액세싱 모듈(93)은 네트워크 접속 유닛(931), 송신 유닛(932), 및 운영 유닛(933)을 포함한다.
네트워크 접속 유닛(931)은 액세스될 데이터 파일과 연관된 스터브 파일에 의해 기록된 정보에 기초하여 원격 데스크톱 프로토콜 구성 요소를 통해 클라우드 서버에 접속하도록 구성된다.
송신 유닛(932)은, 클라우드 서버가 저장 파일에 의해 기록된 정보를 성공적으로 검증한 후, 클라우드 서버가 클라이언트 디바이스상에 원격 가상 프로그램을 개시하고 클라우드 서버상에 저장된 데이터 파일을 편집하기 위한 문서 편집기 프로그램을 클라이언트 디바이스에 맵핑하는 것에 기초하여 스터브 파일에 의해 기록된 지정된 가상 저장 위치를 사용한다.
운영 유닛(933)은 문서 편집기를 통해 클라우드 서버상에 저장된 데이터 파일에 대한 동작들을 수행하도록 구성된다.
도 11은 데이터 파일들을 보호하기 위해 프로그램된 컴퓨터 시스템의 일 예시적인 실시예를 도시하는 기능도이다. 명백한 바와 같이, 다른 컴퓨터 시스템 아키텍처들 및 구성들이 데이터 파일들을 보호하기 위해 사용될 수 있다. 이하에 설명되는 다양한 서브시스템들을 포함하는 컴퓨터 시스템(1100)은 적어도 하나의 마이크로프로세서 서브시스템(프로세서 또는 중앙 처리 장치(CPU)라고도 지칭됨)(1102)을 포함한다. 예를 들면, 프로세서(1102)는 단일칩 프로세서에 의해 또는 다수의 프로세서들에 의해 구현될 수 있다. 일부 실시예들에서, 프로세서(1102)는 컴퓨터 시스템(1100)의 동작을 제어하는 범용 디지털 프로세서이다. 메모리(1100)로부터 검색된 명령들을 사용하여, 프로세서(1102)는 입력 데이터의 수신 및 조작, 및 출력 디바이스들(예를 들면, 디스플레이(1118))상에 데이터의 출력 및 디스플레이를 제어한다.
프로세서(1102)는 제 1 주기억 영역, 일반적으로 랜덤 액세스 메모리(RAM), 및 제 2 주기억 영역, 일반적으로 판독 전용 메모리(ROM)를 포함할 수 있는 메모리(1110)와 양방향 결합된다. 본 기술에 잘 알려진 바와 같이, 주 기억 장치는 범용 기억 영역으로서 및 스크래치-패드 메모리로서 사용될 수 있고, 입력 데이터 및 처리된 데이터를 저장하기 위해 또한 사용될 수 있다. 주기억 장치는 또한 프로세서(1102)상에 동작하는 프로세스들을 위한 명령들 및 다른 데이터 외에 데이터 객체들 및 텍스트 객체들의 형태로 프로그래밍 명령들 및 데이터를 저장할 수 있다. 또한 본 기술에서 잘 알려진 바와 같이, 주기억 장치는 일반적으로 그의 기능들을 수행하기 위해 프로세서(1102)에 의해 사용된 기본 동작 명령들, 프로그램 코드, 데이터, 및 객체들(예를 들면, 프로그램된 명령들)을 포함한다. 예를 들면, 메모리(1110)는, 예를 들면, 데이터 액세스가 양방향일 필요가 있는지 단방향일 필요가 있는지에 따라, 이하에 설명된 임의의 적절한 컴퓨터 판독 가능한 저장 매체를 포함할 수 있다. 예를 들면, 프로세서(1102)는 또한 캐시 메모리(도시되지 않음)에 자주 필요한 데이터를 직접 및 매우 빠르게 검색하고 그를 저장할 수 있다.
제거 가능한 대용량 저장 디바이스(1112)는 컴퓨터 시스템(1100)에 대한 추가의 데이터 저장 용량을 제공하고, 프로세서(1102)에 양방향(판독/기록) 또는 단방향(판독 전용)으로 결합된다. 예를 들면, 저장 장치(1112)는 또한 자기 테이프, 플래시 메모리, PC-CARD들, 이동식 대용량 저장 디바이스들, 홀로그래픽 저장 디바이스들, 및 다른 저장 디바이스들과 같은 컴퓨터 판독 가능한 매체를 포함할 수 있다. 고정식 대용량 저장 장치(1120)는 또한, 예를 들면, 추가의 데이터 기억 용량을 제공할 수 있다. 고정식 대용량 저장 장치(1120)의 가장 일반적인 예는 하드 디스크 드라이브이다. 대용량 저장 장치들(1112, 1120)은 통상 프로세서(1102)에 의해 활성으로 사용되지 않는 추가의 프로그래밍 명령들, 데이터 등을 저장한다. 저장 장치들(1112, 1120) 내 보유된 정보는, 필요한 경우, 가상 메모리로서 메모리(1110)(예를 들면, RAM)의 일부로서 표준 방식으로 통합될 수 있다는 것이 이해될 것이다.
프로세서(1102)에 저장 서브시스템들에 대한 액세스를 제공하는 것 외에, 버스(1114)는 또한 다른 서브시스템들 및 디바이스들에 대한 액세스를 제공하기 위해 사용될 수 있다. 도시된 바와 같이, 이들은 디스플레이(1118), 네트워크 인터페이스(1116), 키보드(1104), 및 포인팅 디바이스(1108), 뿐만 아니라 보조 입/출력 디바이스 인터페이스, 사운드 카드, 스피커들, 및 필요에 따른 다른 서브시스템들을 포함할 수 있다. 예를 들면, 포인팅 디바이스(1108)는 마우스, 스타일러스, 트랙볼, 또는 태블릿일 수 있고, 그래픽 사용자 인터페이스와 인터페이스하기에 유용하다.
네트워크 인터페이스(1116)는 프로세서(1102)가 다른 컴퓨터, 컴퓨터 네트워크, 또는 도시된 네트워크 접속을 사용하는 원격 통신 네트워크에 결합되게 한다. 예를 들면, 네트워크 인터페이스(1116)를 통해, 프로세서(1102)는 방법/프로세스 단계들을 수행하는 과정으로 다른 네트워크로부터의 정보(예를 들면, 데이터 객체들 또는 프로그램 명령들)를 수신하거나 또는 다른 네트워크로 출력 정보를 출력할 수 있다. 프로세서상에 실행될 일련의 명령들로서 종종 나타내지는 정보는 다른 네트워크로부터 수신되고 그로 출력될 수 있다. 인터페이스 카드 또는 유사한 디바이스 및 프로세서(1102)(예를 들면, 그에 실행된/수행된)에 의해 구현된 적절한 소프트웨어는 컴퓨터 시스템(1100)을 외부 네트워크에 접속하고 표준 프로토콜들에 따라 데이터를 이동시키기 사용될 수 있다. 예를 들면, 여기에 개시된 다양한 프로세스 실시예들은 프로세서(1102)상에 실행될 수 있거나, 처리의 일부를 공유하는 원격 프로세서와 함께, 인터넷, 인트라넷 네트워크들, 또는 근거리 네트워크들과 같은 네트워크를 거쳐 수행될 수 있다. 추가의 대용량 저장 장치들(도시되지 않음)는 또한 네트워크 인터페이스(1116)를 통해 프로세서(1102)에 접속될 수 있다.
보조 I/O 디바이스 인터페이스(도시되지 않음)는 컴퓨터 시스템(1100)과 함께 사용될 수 있다. 보조 I/O 디바이스 인터페이스는 프로세서(1102)가 마이크로폰들, 터치 감응식 디스플레이들, 트랜스듀서 카드 판독기들, 테이프 판독기들, 음성 또는 필기 인식기들, 생체 측정 판독기들, 카메라들, 이동식 대용량 저장 장치들, 및 다른 컴퓨터들과 같은 다른 디바이스들로부터 데이터를 전송 및 더 일반적으로 수신하게 하는 범용 및 맞춤화된 인터페이스들을 포함할 수 있다.
상기 다양한 실시예들에 설명된 바와 같이, 데이터 파일이 기밀 파일임이 결정될 때, 데이터 파일은 지정된 가상 저장 영역에 저장된다. 따라서, 지정된 가상 저장 영역에 저장된 데이터 파일에 대한 사용자 동작들은 가상 환경 내에서 분리되고 데이터 파일이 액세스되는 클라이언트 디바이스에서 악의적인 사용자들 및/또는 프로그램들에 의해 조작되는 것을 방지할 수 있다. 스터브 파일은 클라이언트 디바이스에 데이터 파일의 원래의 저장 위치에서 생성된다. 스터브 파일은 데이터 파일에 대한 뷰잉 허가 및 가상 저장 영역에서 데이터 파일의 저장 위치만을 기록하고 데이터 파일 자체로부터의 임의의 파일을 포함하지 않기 때문에, 스터브 파일에 대해 사용자에 의해 수행된 임의의 동작들은 데이터 파일에 대해 어떠한 영향도 갖지 않을 것이다.
여기에 개시된 발명을 고려하면, 설명 및 실시에서 당업자가 본 출원을 구현하기 위한 다른 방식들을 쉽게 생각할 것이다. 본 출원은 본 출원의 임의의 변형, 사용, 또는 적응을 포함하는 것을 의도하고, 이들 변형들, 사용들, 또는 적응들은 본 출원의 일반 원리들을 준수하고 본 출원에 의해 개시되지 않은 본 기술에서 공개적인 지식 또는 통상적인 기술적인 수단을 포함한다. 설명 및 실시예들은 단순히 예시적인 것으로 간주된다. 본 출원의 진실한 범위 및 정신은 이하의 청구항들에 의해 나타내진다.
용어 "포함한다" 또는 "포함하는" 또는 임의의 그들의 변형들이 그들의 배제되지 않은 의미로 취해진다는 것을 또한 주의하라. 따라서, 프로세스들, 방법들, 물품, 또는 일련의 요소들을 포함하는 장비는 이들 요소들을 포함할 뿐만 아니라 명백하게 나열되지 않은 다른 요소들 또는 이러한 프로세스들, 방법들, 물품, 또는 장비에 고유한 요소들을 또한 포함한다. 다른 한정들이 없는 경우, 어구 "...를 포함한다"에 의해 한정된 요소들은 프로세스들, 방법들, 물품, 또는 상기 요소들을 포함하는 장비에서 추가의 동일한 요소들의 존재를 배제하지 않는다.
본 출원의 바람직한 실시예들이 단순히 상기에 설명되고 이는 본 출원을 한정하는 역할을 하지 않는다. 수행되는 임의의 변형들, 동등한 대체들, 또는 개선들은 본 출원의 보호 범위 내에 포함될 것이다.
다음의 실시예들은 이해의 명확성을 위해 일부 상세히 설명되었지만, 본 발명은 제공된 상세들로 한정되지 않는다. 본 발명을 구현하는 많은 대안적인 방식들이 존재한다. 개시된 실시예들은 예시적이고 제한적이 아니다.

Claims (20)

  1. 방법에 있어서:
    하나 이상의 프로세서들을 사용하여, 데이터 파일이 제 1 클라이언트 디바이스에 의해 생성되었다는 표시에 응답하여, 상기 데이터 파일과 연관된 보안 분류를 결정하는 단계;
    상기 하나 이상의 프로세서들을 사용하여, 상기 데이터 파일과 연관된 상기 보안 분류가 기밀 파일(classified file)을 포함하는지를 결정하는 단계;
    상기 하나 이상의 프로세서들을 사용하여, 지정된 가상 저장 영역에 상기 데이터 파일을 저장하는 단계;
    상기 데이터 파일의 원래 저장 위치에 제 1 스터브 파일(stub file)을 생성하는 단계로서, 상기 제 1 스터브 파일은 상기 데이터 파일과 연관된 뷰잉 허가 및 상기 지정된 가상 저장 영역 내의 상기 데이터 파일의 저장 위치를 포함하는, 상기 제 1 스터브 파일을 생성하는 단계;
    제 2 사용자와 상기 데이터 파일을 공유하기 위해 제 1 사용자로부터 제 1 명령을 수신하는 단계;
    상기 제 2 사용자와 연관된 사용자 정보를 결정하는 단계;
    상기 제 2 사용자가 상기 제 2 사용자와 연관된 상기 사용자 정보에 적어도 부분적으로 기초하여 상기 데이터 파일에 액세스하기 위한 허가를 갖는지를 결정하는 단계; 및
    상기 제 2 사용자와 연관된 제 2 클라이언트 디바이스에 제 2 명령을 전송하는 단계로서, 상기 제 2 명령은 상기 제 2 사용자와 연관된 상기 제 2 클라이언트 디바이스에서 상기 데이터 파일에 대응하는 제 2 스터브 파일을 생성하도록 구성되고, 상기 제 2 스터브 파일은 상기 지정된 가상 저장 영역 내의 상기 데이터 파일을 얻기 위해 사용되는, 상기 제 2 명령을 전송하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 지정된 가상 저장 영역은 클라우드 서버와 연관되는, 방법.
  3. 제 1 항에 있어서,
    상기 데이터 파일과 연관된 상기 보안 분류를 결정하는 단계는:
    미리 설정된 조건에 대하여 상기 데이터 파일과 연관된 콘텐트 정보를 비교하는 단계; 및
    상기 비교의 결과에 적어도 부분적으로 기초하여 상기 보안 분류를 결정하는 단계를 포함하는, 방법.
  4. 제 1 항에 있어서,
    상기 데이터 파일과 연관된 상기 보안 분류는 제 3 사용자에 의해 설정되는, 방법.
  5. 제 1 항에 있어서,
    상기 데이터 파일과 연관된 상기 원래 저장 위치에 상기 제 1 스터브 파일을 저장하는 단계를 더 포함하는, 방법.
  6. 제 1 항에 있어서,
    상기 데이터 파일에 액세스하기 위해 상기 제 1 스터브 파일과 연관된 사용자 선택을 수신하는 단계;
    상기 사용자 선택과 연관된 제 3 사용자가 상기 데이터 파일에 액세스하기 위한 허가를 갖는지의 여부를 결정하는 단계;
    상기 제 3 사용자가 상기 데이터 파일에 액세스하기 위한 허가를 갖는 경우, 상기 데이터 파일에 대응하는 가상 애플리케이션을 실행하는 단계; 및
    상기 가상 애플리케이션을 사용하여 상기 지정된 가상 저장 영역에 상기 데이터 파일에 대한 액세스를 제공하는 단계를 더 포함하는, 방법.
  7. 제 1 항에 있어서,
    상기 데이터 파일에 액세스하기 위해 상기 제 1 스터브 파일과 연관된 사용자 선택을 수신하는 단계;
    상기 사용자 선택과 연관된 제 3 사용자가 상기 데이터 파일에 액세스하기 위한 허가를 갖는지의 여부를 결정하는 단계;
    상기 제 3 사용자가 상기 데이터 파일에 액세스하기 위한 허가를 갖는 경우, 상기 데이터 파일에 대응하는 가상 애플리케이션을 실행하는 단계; 및
    상기 지정된 가상 저장 영역과 연관된 클라우드 서버에 상기 제 1 스터브 파일에 포함된 정보를 송신하고, 상기 클라우드 서버로부터 문서 편집기 프로그램과 연관된 사용자 인터페이스를 수신함으로써, 상기 가상 애플리케이션을 사용하여 상기 지정된 가상 저장 영역의 상기 데이터 파일에 대한 액세스를 제공하는 단계를 더 포함하는, 방법.
  8. 제 1 항에 있어서,
    상기 데이터 파일에 액세스하기 위해 상기 제 1 스터브 파일과 연관된 사용자 선택을 수신하는 단계;
    상기 사용자 선택과 연관된 제 3 사용자가 상기 데이터 파일에 액세스하기 위한 허가를 갖는지의 여부를 결정하는 단계;
    상기 제 3 사용자가 상기 데이터 파일에 액세스하기 위한 허가를 갖는 경우, 상기 데이터 파일에 대응하는 가상 애플리케이션을 실행하는 단계; 및
    상기 지정된 가상 저장 영역과 연관된 클라우드 서버에 상기 제 1 스터브 파일에 포함된 정보를 송신하고, 상기 클라우드 서버로부터 문서 편집기 프로그램과 연관된 사용자 인터페이스를 수신하고, 상기 사용자 인터페이스를 통해 상기 데이터 파일에 대해 수행될 동작을 수신하고, 상기 클라우드 서버에 상기 동작을 전송함으로써 포함하는 상기 가상 애플리케이션을 사용하여 상기 지정된 가상 저장 영역의 상기 데이터 파일에 대한 액세스를 제공하는 단계를 더 포함하는, 방법.
  9. 삭제
  10. 컴퓨터 명령들을 포함하는 컴퓨터 프로그램이 저장된 비-일시적 컴퓨터 판독 가능 저장 매체에 있어서,
    상기 컴퓨터 명령들은:
    데이터 파일이 제 1 클라이언트 디바이스에 의해 생성되었다는 표시에 응답하여, 상기 데이터 파일과 연관된 보안 분류를 결정하고;
    상기 데이터 파일과 연관된 상기 보안 분류가 기밀 파일을 포함하는지를 결정하고;
    지정된 가상 저장 영역에 상기 데이터 파일을 저장하고;
    상기 데이터 파일의 원래의 저장 위치에 제 1 스터브 파일을 생성하는 것으로서, 상기 제 1 스터브 파일은 상기 지정된 가상 저장 영역에 상기 데이터 파일의 저장 위치 및 상기 데이터 파일과 연관된 뷰잉 허가를 포함하는, 상기 제 1 스터브 파일을 생성하고;
    상기 데이터 파일을 제 2 사용자와 공유하기 위해 제 1 사용자로부터 제 1 명령을 수신하고;
    상기 제 2 사용자와 연관된 사용자 정보를 결정하고;
    상기 제 2 사용자가 상기 제 2 사용자와 연관된 상기 사용자 정보에 적어도 부분적으로 기초하여 상기 데이터 파일에 액세스하기 위한 허가를 갖는지를 결정하고;
    상기 제 2 사용자와 연관된 제 2 클라이언트 디바이스에 제 2 명령을 전송하는 것으로서, 상기 제 2 명령은 상기 제 2 사용자와 연관된 상기 제 2 클라이언트 디바이스에서 상기 데이터 파일에 대응하는 제 2 스터브 파일을 생성하도록 구성되고, 상기 제 2 스터브 파일은 상기 지정된 가상 저장 영역 내의 상기 데이터 파일을 얻기 위해 사용되는, 상기 제 2 명령을 전송하는 것을 위한 것인, 비-일시적 컴퓨터 판독 가능 저장 매체.
  11. 제 10 항에 있어서,
    상기 지정된 가상 저장 영역은 클라우드 서버와 연관되는, 비-일시적 컴퓨터 판독 가능 저장 매체.
  12. 제 10 항에 있어서,
    상기 데이터 파일과 연관된 상기 보안 분류를 결정하는 것은:
    미리 설정된 상태에 대해 상기 데이터 파일과 연관된 콘텐트 정보를 비교하는 것; 및
    상기 비교의 결과에 적어도 부분적으로 기초하여 상기 보안 분류를 결정하는 것을 포함하는, 비-일시적 컴퓨터 판독 가능 저장 매체.
  13. 제 10 항에 있어서,
    상기 데이터 파일과 연관된 상기 보안 분류는 제 3 사용자에 의해 설정되는, 비-일시적 컴퓨터 판독 가능 저장 매체.
  14. 제 10 항에 있어서,
    상기 데이터 파일과 연관된 상기 원래의 저장 위치에 상기 제 1 스터브 파일을 저장하는 것을 더 위한 것인, 비-일시적 컴퓨터 판독 가능 저장 매체.
  15. 제 10 항에 있어서,
    상기 데이터 파일에 액세스하기 위해 상기 제 1 스터브 파일과 연관된 사용자 선택을 수신하고;
    상기 사용자 선택과 연관된 제 3 사용자가 상기 데이터 파일에 액세스하기 위한 허가를 갖는지의 여부를 결정하고;
    상기 제 3 사용자가 상기 데이터 파일에 액세스하기 위한 허가를 갖는 경우, 상기 데이터 파일에 대응하는 가상 애플리케이션을 실행하고; 및
    상기 가상 애플리케이션을 사용하여 상기 지정된 가상 저장 영역의 데이터 파일에 대한 액세스를 제공하는 것을 더 위한 것인, 비-일시적 컴퓨터 판독 가능 저장 매체.
  16. 제 10 항에 있어서,
    상기 데이터 파일에 액세스하기 위해 상기 제 1 스터브 파일과 연관된 사용자 선택을 수신하고;
    상기 사용자 선택과 연관된 제 3 사용자가 상기 데이터 파일에 액세스하기 위한 허가를 갖는지의 여부를 결정하고;
    상기 제 3 사용자가 상기 데이터 파일에 액세스하기 위한 허가를 갖는 경우, 상기 데이터 파일에 대응하는 가상 애플리케이션을 실행하고; 및
    상기 지정된 가상 저장 영역과 연관된 클라우드 서버에 상기 제 1 스터브 파일에 포함된 정보를 송신하고, 상기 클라우드 서버로부터 문서 편집기 프로그램과 연관된 사용자 인터페이스를 수신하는 것을 포함하는 상기 가상 애플리케이션을 사용하여 상기 지정된 가상 저장 영역의 상기 데이터 파일에 대한 액세스를 제공하는 것을 더 위한 것인, 비-일시적 컴퓨터 판독 가능 저장 매체.
  17. 제 10 항에 있어서,
    상기 데이터 파일에 액세스하기 위해 상기 제 1 스터브 파일과 연관된 사용자 선택을 수신하고;
    상기 사용자 선택과 연관된 제 3 사용자가 상기 데이터 파일에 액세스하기 위한 허가를 갖는지의 여부를 결정하고;
    상기 제 3 사용자가 상기 데이터 파일에 액세스하기 위한 허가를 갖는 경우, 상기 데이터 파일에 대응하는 가상 애플리케이션을 실행하고; 및
    상기 지정된 가상 저장 영역과 연관된 클라우드 서버로 상기 제 1 스터브 파일에 포함된 정보를 송신하고, 상기 클라우드 서버로부터 문서 편집기 프로그램과 연관된 사용자 인터페이스를 수신하고, 상기 사용자 인터페이스를 통해 상기 데이터 파일에 대해 수행될 동작을 수신하고, 상기 클라우드 서버에 상기 동작을 전송하는 것을 포함하는 상기 가상 애플리케이션을 사용하여 상기 지정된 가상 저장 영역의 상기 데이터 파일에 대한 액세스를 제공하는 것을 더 위한 것인, 비-일시적 컴퓨터 판독 가능 저장 매체.
  18. 삭제
  19. 시스템에 있어서,
    하나 이상의 프로세서들을 포함하고,
    상기 하나 이상의 프로세서들은:
    데이터 파일이 제 1 클라이언트 디바이스에 의해 생성되었다는 표시에 응답하여, 상기 데이터 파일과 연관된 보안 분류를 결정하고;
    상기 데이터 파일과 연관된 상기 보안 분류가 기밀 파일을 포함하는지를 결정하고;
    지정된 가상 저장 영역에 상기 데이터 파일을 저장하고;
    상기 데이터 파일의 원래의 저장 위치에 제 1 스터브 파일을 생성하는 것으로서, 상기 제 1 스터브 파일은 상기 지정된 가상 저장 영역에 상기 데이터 파일의 저장 위치 및 상기 데이터 파일과 연관된 뷰잉 허가를 포함하는, 상기 제 1 스터브 파일을 생성하고;
    상기 데이터 파일을 제 2 사용자와 공유하기 위해 제 1 사용자로부터 제 1 명령을 수신하고;
    상기 제 2 사용자와 연관된 사용자 정보를 결정하고;
    상기 제 2 사용자가 상기 제 2 사용자와 연관된 상기 사용자 정보에 적어도 부분적으로 기초하여 상기 데이터 파일에 액세스하기 위한 허가를 갖는지를 결정하고;
    상기 제 2 사용자와 연관된 제 2 클라이언트 디바이스에 제 2 명령을 전송하는 것으로서, 상기 제 2 명령은 상기 제 2 사용자와 연관된 상기 제 2 클라이언트 디바이스에서 상기 데이터 파일에 대응하는 제 2 스터브 파일을 생성하도록 구성되고, 상기 제 2 스터브 파일은 상기 지정된 가상 저장 영역 내의 상기 데이터 파일을 얻기 위해 사용되는, 상기 제 2 명령을 전송하도록 구성되는, 시스템.
  20. 제 19 항에 있어서,
    상기 지정된 가상 저장 영역은 클라우드 서버와 연관되는, 시스템.
KR1020177031893A 2015-06-02 2016-05-19 데이터 파일들 보호 KR102037656B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201510295401.9 2015-06-02
CN201510295401.9A CN106295386B (zh) 2015-06-02 2015-06-02 数据文件的保护方法、装置及终端设备
US15/158,423 2016-05-18
US15/158,423 US10114962B2 (en) 2015-06-02 2016-05-18 Generating a stub file corresponding to a classified data file
PCT/US2016/033334 WO2016196030A1 (en) 2015-06-02 2016-05-19 Protecting data files

Publications (2)

Publication Number Publication Date
KR20170133485A KR20170133485A (ko) 2017-12-05
KR102037656B1 true KR102037656B1 (ko) 2019-11-26

Family

ID=57451866

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177031893A KR102037656B1 (ko) 2015-06-02 2016-05-19 데이터 파일들 보호

Country Status (6)

Country Link
US (2) US10114962B2 (ko)
EP (1) EP3304275B1 (ko)
JP (1) JP6511161B2 (ko)
KR (1) KR102037656B1 (ko)
CN (1) CN106295386B (ko)
TW (1) TWI690821B (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109726041B (zh) * 2017-10-27 2023-09-08 伊姆西Ip控股有限责任公司 恢复虚拟机磁盘中的文件的方法、设备和计算机可读介质
US11704278B2 (en) 2020-12-04 2023-07-18 International Business Machines Corporation Intelligent management of stub files in hierarchical storage
US11983291B2 (en) * 2020-12-14 2024-05-14 International Business Machines Corporation Policy-driven views of datasets
KR102525655B1 (ko) * 2020-12-31 2023-04-25 (주)나무소프트 문서 저장 제어 방법
CN115086308B (zh) * 2022-04-27 2023-10-20 上海上讯信息技术股份有限公司 一种基于rdp的数据传输的控制方法及设备
CH720073A1 (de) * 2022-09-30 2024-04-15 Supertext Ag Vorrichtung und verfahren zur bearbeitung eines sicheren elektronischen dokuments

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110277013A1 (en) * 2010-05-09 2011-11-10 Chinta Madhav Methods and Systems for Forcing an Application to Store Data in a Secure Storage Location
US20130110967A1 (en) * 2011-11-01 2013-05-02 Hitachi, Ltd. Information system and method for managing data in information system
US20140157363A1 (en) * 2012-12-05 2014-06-05 Symantec Corporation Methods and systems for secure storage segmentation based on security context in a virtual environment

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260176A (ja) * 2005-03-17 2006-09-28 Ex's Annex:Kk 機密文書管理方法及び機密文書管理システム
US7506003B2 (en) * 2005-07-14 2009-03-17 Microsoft Corporation Moving data from file on storage volume to alternate location to free space
CN101187994A (zh) * 2006-11-17 2008-05-28 鸿富锦精密工业(深圳)有限公司 文件打印管控***及方法
JP2008191838A (ja) * 2007-02-02 2008-08-21 Hitachi Electronics Service Co Ltd 情報管理システム
US9671976B2 (en) * 2007-02-05 2017-06-06 Moonwalk Universal Pty Ltd Data management system for managing storage of data on primary and secondary storage
US20110040812A1 (en) * 2007-12-20 2011-02-17 Virtual Computer, Inc. Layered Virtual File System
JP2010266933A (ja) * 2009-05-12 2010-11-25 Ri Co Ltd ドキュメント管理プログラム、ドキュメント管理システム及びドキュメント管理方法
US8407190B2 (en) 2009-06-30 2013-03-26 Commvault Systems, Inc. Performing data storage operations with a cloud environment, including containerized deduplication, data pruning, and data transfer
US8620879B2 (en) 2009-10-13 2013-12-31 Google Inc. Cloud based file storage service
US9501365B2 (en) 2009-12-28 2016-11-22 Netapp, Inc. Cloud-based disaster recovery of backup data and metadata
EP2553904A2 (en) 2010-03-31 2013-02-06 Rick L. Orsini Systems and methods for securing data in motion
CN103238305A (zh) 2010-05-28 2013-08-07 安全第一公司 用于安全数据储存的加速器***
US8762344B2 (en) * 2010-09-17 2014-06-24 Hitachi, Ltd. Method for managing information processing system and data management computer system
CN102004886B (zh) * 2010-11-15 2012-07-25 上海安纵信息科技有限公司 一种基于操作***虚拟化原理的数据防泄漏方法
US20120290926A1 (en) * 2011-05-12 2012-11-15 Infinote Corporation Efficient document management and search
CN102254117B (zh) 2011-07-07 2013-10-02 胡建斌 一种基于虚拟化技术的数据防泄密***
US8626714B1 (en) * 2011-09-07 2014-01-07 Symantec Corporation Automated separation of corporate and private data for backup and archiving
CN102592102B (zh) 2011-12-31 2014-09-17 深信服网络科技(深圳)有限公司 一种终端防泄密控制方法及终端
US8736551B2 (en) * 2012-07-12 2014-05-27 Atmel Corporation Touch-sensor-controller sensor hub
CN102882923B (zh) * 2012-07-25 2015-04-15 北京亿赛通科技发展有限责任公司 移动终端安全存储***及方法
US9319265B2 (en) * 2013-02-22 2016-04-19 Hitachi Data Systems Engineering UK Limited Read ahead caching of data from cloud storage and method thereof
WO2014201650A1 (zh) * 2013-06-20 2014-12-24 华为技术有限公司 存储检测装置、***及存储检测方法
CN103942492B (zh) 2014-03-04 2016-09-21 中天安泰(北京)信息技术有限公司 单机版数据黑洞处理方法及计算设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110277013A1 (en) * 2010-05-09 2011-11-10 Chinta Madhav Methods and Systems for Forcing an Application to Store Data in a Secure Storage Location
US20130110967A1 (en) * 2011-11-01 2013-05-02 Hitachi, Ltd. Information system and method for managing data in information system
US20140157363A1 (en) * 2012-12-05 2014-06-05 Symantec Corporation Methods and systems for secure storage segmentation based on security context in a virtual environment

Also Published As

Publication number Publication date
US20160357978A1 (en) 2016-12-08
EP3304275A4 (en) 2019-01-09
EP3304275A1 (en) 2018-04-11
US20190087596A1 (en) 2019-03-21
JP6511161B2 (ja) 2019-05-15
EP3304275B1 (en) 2020-07-22
US10114962B2 (en) 2018-10-30
JP2018522320A (ja) 2018-08-09
CN106295386A (zh) 2017-01-04
TW201702925A (zh) 2017-01-16
KR20170133485A (ko) 2017-12-05
TWI690821B (zh) 2020-04-11
CN106295386B (zh) 2021-04-27

Similar Documents

Publication Publication Date Title
KR102037656B1 (ko) 데이터 파일들 보호
JP6538570B2 (ja) クラウドデータセキュリティのためのシステム及び方法
US7908476B2 (en) Virtualization of file system encryption
US9542563B2 (en) Accessing protected content for archiving
CN103617399B (zh) 一种数据文件保护方法及装置
WO2016154525A1 (en) Policy enforcement
EA012863B1 (ru) Устройство и система управления компьютерным сеансом
EP2599027A2 (en) Protecting documents using policies and encryption
US10891386B2 (en) Dynamically provisioning virtual machines
JP2008522279A (ja) アクセスが制御される仮想ディスク間のオンラインによるデータのセキュリティ伝送システムおよび、これを通じたセキュリティ伝送方法
JP6978603B2 (ja) ユーザアカウントを匿名化するためのシステム及び方法
CN103745162A (zh) 一种安全网络文件存储***
JP7445358B2 (ja) セキュア・インタフェース・コントロールのためのセキュア実行ゲスト所有者コントロール
US20230076870A1 (en) Protections for sensitive content items in a content management system
US10726104B2 (en) Secure document management
US11880482B2 (en) Secure smart containers for controlling access to data
US9754086B1 (en) Systems and methods for customizing privacy control systems
US20220004651A1 (en) Management of computing secrets
WO2016196030A1 (en) Protecting data files
Raj et al. A survey on data loss prevention techniques
Stewart Forensic implications of Windows vista
EP2930607A1 (en) Method and apparatus for increasing available portable memory storage space

Legal Events

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