KR20230098156A - 암호화된 파일 제어 - Google Patents

암호화된 파일 제어 Download PDF

Info

Publication number
KR20230098156A
KR20230098156A KR1020237012462A KR20237012462A KR20230098156A KR 20230098156 A KR20230098156 A KR 20230098156A KR 1020237012462 A KR1020237012462 A KR 1020237012462A KR 20237012462 A KR20237012462 A KR 20237012462A KR 20230098156 A KR20230098156 A KR 20230098156A
Authority
KR
South Korea
Prior art keywords
access
file
information
client
package
Prior art date
Application number
KR1020237012462A
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 KR20230098156A publication Critical patent/KR20230098156A/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/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • 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/107Network architectures or network communication protocols for network security for controlling access to devices or network resources wherein the security policies are location-dependent, e.g. entities privileges depend on current location or allowing specific operations only from locally connected terminals
    • 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/108Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/63Location-dependent; Proximity-dependent
    • H04W12/64Location-dependent; Proximity-dependent using geofenced areas
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/041Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 using an encryption or decryption engine integrated in transmitted data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Selective Calling Equipment (AREA)

Abstract

액세스 클라이언트는 서버에 액세스 요청을 송신할 수도 있으며, 액세스 요청은 복호화 요청 또는 암호화 요청의 예일 수도 있다. 액세스 요청은 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함할 수도 있다. 서버는 액세스 정보를 검증하고 액세스 키들의 세트 및 실행가능한 코드를 포함하는 액세스 패키지를 생성할 수도 있다. 액세스 키들은 액세스 클라이언트로 송신될 수도 있다. 액세스 클라이언트는 실행가능 코드를 실행하고 파일을 복호화 또는 암호화할 수도 있다. 파일은 파일 액세스 정책들, 소유 정보, 및 파일 액세스 로그들을 포함하는 하나 이상의 데이터 팩들을 포함할 수도 있다.

Description

암호화된 파일 제어
상호 참조
본 특허 출원은 2021년 9월 22일에 출원된 "ENCRYPTED FILE CONTROL"이라는 제목의 NIJASURE 등의 미국 특허 출원 제 17/482,010 호, 및 2020년 9월 22일에 출원된 "ENCRYPTED FILE CONTROL"이라는 제목의 NIJASURE 등의 미국 가특허출원 제 63/081,763 호에 대해 우선권을 주장하며, 이들 각각은 본원의 양수인에게 양도되었으며, 이들 각각은 그 전체가 본 명세서에 원용에 의해 명시적으로 포함된다.
기술 분야
본 개시는 일반적으로 데이터 보안(data security)에 관한 것으로, 보다 구체적으로는 암호화된 파일 제어(encrypted file control)에 관한 것이다.
배경
파일 암호화는 안전하지 않은 네트워크들을 통해 컴퓨터들 간에 파일을 공유할 수 있도록 허용하고 제 3자가 민감한 데이터에 액세스하는 것을 방지할 수도 있다. 그러나 파일 암호화는 파일들을 암호화하는 데 사용되는 키들만큼만 안전할 수도 있다.
요약
설명된 기술들은 암호화된 파일 제어를 지원하는 개선된 방법들, 시스템들, 디바이스들, 및 장치들에 관한 것이다. 일반적으로, 설명된 기술들은 파일들을 암호화하기 위해 사용되는 암호화 키들을 손상시키지 않고 암호화된 파일들을 공유하기 위해 제공한다. 암호화된 파일들의 페이로드(payload)들은 다수의 저장소들에 저장되는 다수의 솔트들(salts) 및 키들(keys)로 솔트 및 암호화된다. 파일을 암호화(encrypt) 또는 복호화(decrypt)하기 위한 액세스 요청(access request)에 응답하여, 서버는 액세스(access)를 수행하기 위한 정보(예를 들어, 데이터 및/또는 코드)를 포함하는 액세스 패키지(access package)를 생성한다. 예를 들어, 데이터 팩(data pack)이 소스 코드를 포함하는 경우, 그 소스 코드는 암호화된 파일들의 페이로드들을 암호화 또는 복호화하는 데 사용되는 솔트들 및 키들과 함께 주입될 수도 있다. 서버는 액세스 요청을 서버에 전송한 액세스 디바이스에 액세스 패키지와 함께 액세스 응답을 전송한다. 액세스 디바이스는 암호화된 파일들의 페이로드들을 암호화 또는 복호화할 수도 있는 실행파일(executable)을 생성하기 위해 액세스 패키지로부터 소스 코드를 컴파일할 수도 있다. 일부 경우들에서, 액세스 디바이스는 액세스 패키지에 포함된 데이터에 기초하여 페이로드의 데이터를 변환할 수도 있다. 사용된 후에, 실행파일들 및/또는 액세스 패키지들은 액세스 디바이스로부터 제거되어, 솔트들 및 키들이 액세스 디바이스의 메모리에 있는 시간의 양을 최소화할 수도 있다. 액세스 디바이스 상에 솔트들 및 키들을 저장하지 않는 것은 액세스 디바이스가 손상될 확률 및 영향을 감소시킨다.
도면들의 간단한 설명
도 1은 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 시스템의 예를 도시한다.
도 2 는 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 암호화된 파일의 예를 도시한다.
도 3 은 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 컴퓨팅 아키텍처의 예를 도시한다.
도 4 는 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 프로세스 플로우의 예를 도시한다.
도 5 는 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 프로세스 플로우의 예를 도시한다.
도 6 은 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 액세스 디바이스 시나리오의 예를 도시한다.
도 7 은 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 사용자 디바이스의 블록도를 도시한다.
도 8 은 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 디바이스를 포함하는 시스템의 다이어그램을 도시한다.
도 9는 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 데이터 보안 컴포넌트의 블록도를 도시한다.
도 10 은 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 디바이스를 포함하는 시스템의 다이어그램을 도시한다.
도 11 내지 도 23은 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 방법들을 예시하는 플로우차트들을 도시한다.
상세한 설명
암호화 기술은 비허가 액세스로부터 데이터를 보호하기 위해 다양한 환경에서 사용된다. 데이터의 암호화, 데이터의 복호화, 데이터의 안전한 송신 등을 위해 다양한 형태의 암호화 키가 사용될 수도 있다. 그러나, 이러한 기법들은 데이터를 보호하기 위해 사용자들 및 시스템들이 키들 및 데이터의 제어, 격납(containment), 및 가시성을 유지하는 것을 요구한다. 예를 들어, 조직들은 데이터를 보호하기 위해, 다른 기법들 및 시스템들 중에서도, 디바이스 관리 기법들 및 시스템들, 아이덴티티 관리 기법들 및 시스템들, 스토리지 관리 기법들 및 시스템들, 클라우드 격납 기법들 및 시스템들, 데이터 분류 기법들 및 시스템들을 구현한다. 이러한 시스템들 및 기법들의 복잡성과 불량 행위자의 증가로 인해 데이터 손실 및 비허가 데이터 액세스가 만연한다.
본 명세서에 기술된 구현들은 자기-보호(self-protecting), 자기-인식(self-aware), 및 자기-지능형(self-intelligent) 데이터를 위한 시스템들 및 기술들을 지원한다. 설명된 구현들은 본 명세서에 설명된 기술들을 사용하여 데이터를 보호하기 위해 서버와 상호작용하도록 구성되는 액세스 클라이언트(access client)를 지원한다. 이 기술은 즉각적이고 동적인 데이터 제어를 지원한다. 예를 들어, 제 1 사용자가 암호화된 파일을 제 2 사용자에게 송신하였고, 제 1 사용자는 더 이상 제 2 사용자가 파일을 액세스하는 것을 원하지 않는다. 제 2 사용자가 이미 그들의 디바이스 상에 파일을 갖고 있더라도, 제 1 사용자는 거의 실시간으로 파일에 대한 제 2 사용자의 액세스를 제한하기 위해 플랫폼을 액세스할 수도 있다. 이러한 기술은 파일 레벨, 파일 그룹 또는 파일 폴더, 팀 레벨, 조직 레벨 등을 포함하여 다양한 레벨의 세분성으로 지원된다. 또한, 이러한 기술들은 파일 내의 다양한 엘리먼트들 또는 부분들에 적용가능할 수도 있다. 예를 들어, 파일은 하나 이상의 데이터 객체(예를 들어, 객체 링크 및 임베딩 객체(object linking and embedding objects; OLE), 이미지)를 포함할 수도 있고, 이들 객체는 본 명세서에 설명된 다양한 파일 액세스 정책 기술을 적용하면서 (파일 자체와 분리되어) 암호화 및 복호화될 수도 있다. 부가적으로, 설명된 기술들은 다른 제한들 중에서도, 지리적 위치들, 디바이스 타입들, 및 기간들과 같은 다양한 고려사항들을 사용하여 파일 액세스 제한들 또는 정책들을 지원한다. 예를 들어, 사용자는 특정 국가에 있는 다른 사용자들에 의한 파일 또는 파일 그룹에 대한 액세스를 제한할 수도 있다. 이러한 제한들은 다른 사용자들이 특정 국가에서의 그들의 개인 디바이스들에 파일을 이미 가지고 있더라도 거의 실시간으로 구현될 수도 있다.
이러한 다양한 기술들을 지원하기 위해, 서버는 액세스 클라이언트로부터의 요청에 응답하여 사용자 디바이스 상에서 실행중인 액세스 클라이언트에 액세스 패키지를 생성하여 송신할 수도 있다. 액세스 패키지는 하나 이상의 암호화 키 및 실행가능 코드(executable code)를 포함할 수도 있다. 액세스 클라이언트는 페이로드(예를 들어, 파일)를 암호화 또는 복호화하기 위해 실행가능 코드를 실행하도록 구성된다. 암호화된 파일은 다른 정보 중에서도 파일 소유(ownership) 정보, 파일 액세스 정책들(policies), 액세스 로그들(logs)을 포함하는 하나 이상의 데이터 팩을 포함할 수도 있다. 이러한 데이터 팩들은 본 명세서에서 더 상세히 설명되는 바와 같이 데이터가 자기 지능적일 수 있게 한다. 또한, 액세스 클라이언트가 통신하도록 구성되는 서버는 허가된 사용자 액세스, 디바이스 액세스 등과 같은 다양한 파일 액세스 정책들을 유지할 수도 있다. 서버는 파일들 및 액세스 정책들(검증 파라미터들)의 맵핑을 유지할 수도 있다. 따라서, 파일을 암호화/복호화하기 위한 요청의 수신 시, 서버는 사용자/디바이스가 암호화/복호화를 수행할 권한이 있는지를 확인하고, 대응하는 키들을 식별하고, 액세스 패키지를 생성하고, 액세스 패키지를 클라이언트에 송신한다. 따라서, 자기-지능형(self-intelligent) 데이터 구성, 액세스 클라이언트 및 서버는 데이터 보안을 동적인 방식으로 유지하도록 기능한다. 이들 및 다른 구현들은 도면들과 관련하여 더 상세히 설명된다.
본 개시의 양태들은 초기에 암호화 파일 제어를 지원하는 컴퓨팅 환경의 맥락에서 설명된다. 본 개시의 양태들은 암호화된 파일 제어, 예시적인 파일 제어 시나리오, 및 프로세스 흐름도들을 지원하는 액세스 패키지에 관하여 추가로 설명된다. 본 개시의 양태들은 암호화된 파일 제어에 관련된 장치 다이어그램들, 시스템 다이어그램들, 및 플로우차트들에 의해 추가로 예시되고 이를 참조하여 설명된다.
도 1은 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 시스템(100)의 예를 도시한다. 시스템(100)은 암호화된 파일들에 대한 액세스를 생성하고 제어하도록 구성된다. 시스템(100)은 액세스 디바이스들(105), 모바일 디바이스(110), 서버(115), 및 저장소(120)를 포함한다.
액세스 디바이스(105)는 서버(115)와의 통신에 기초하여 암호화된 파일들과 상호 작용한다. 액세스 디바이스들 (105) 각각은, 액세스 디바이스들 (105) 상에서 실행되는 액세스 클라이언트들 (125) 과 함께, 파일들을 생성하고 암호화하기 위한 암호화기 디바이스로서 그리고 암호화된 파일들을 암호해독하고 보기 위한 복호화기 디바이스로서 동작할 수도 있다. 예로서, 액세스 디바이스 (105-b) 는 (서버 (115) 와 함께) 암호화된 파일을 생성하고 암호화된 파일을 액세스 디바이스 (105-a) 로 전송하는 암호화기 디바이스일 수도 있다. 액세스 디바이스 (105-a) 는 암호화된 파일과 연관된 정책들에 따라 (서버 (115) 와 함께) 암호화된 파일을 암호해독하고 보는 복호화기 디바이스일 수도 있다.
액세스 디바이스들(105)은 도 8에 설명된 것들에 따른 컴퓨팅 시스템들의 예들일 수도 있고, 예를 들어, 스마트폰들, 랩톱 컴퓨터들, 태블릿들, 데스크톱 컴퓨터들 등일 수도 있다. 액세스 디바이스들 (105) 은 유선 또는 무선 통신 기법들을 이용하여 다른 액세스 디바이스들 (105), 모바일 디바이스 (110), 및 서버 (115) 와 상호작용할 수도 있다
액세스 디바이스 (105-a) 는 파일들을 암호화하고, 다른 액세스 디바이스들로부터 암호화된 파일들을 수신하고, 서버 (115) 와 상호작용하여 암호화된 파일들을 생성 및 액세스하고, 암호화된 파일들로부터 암호해독된 정보를 제시하고, 모바일 디바이스 (110) 와의 접속들을 확립하고 데이터를 업데이트할 수도 있다. 액세스 디바이스(105-a)는 액세스 클라이언트(125)를 포함한다.
액세스 클라이언트(125)는 암호화된 파일들을 생성, 액세스 및 뷰잉하는 액세스 디바이스(105-a)에서 동작하는 프로그램들의 세트이다. 액세스 클라이언트(125)는 액세스 디바이스(105-a) 상의 웹 브라우저를 통해 동작하는 네이티브 애플리케이션 또는 웹 기반 애플리케이션일 수도 있다. 액세스 애플리케이션은 사용자 인터페이스(130-a) 및 액세스 실행파일(135-a)을 포함할 수도 있다. 액세스 클라이언트(125)는 또한 워드 프로세싱 애플리케이션, 스프레드시트 애플리케이션 등과 같은 다양한 파일 보기 애플리케이션을 위한 애플리케이션 플러그인일 수도 있다.
사용자 인터페이스(130-a)는 사용자 상호작용을 처리하는 액세스 클라이언트(125)의 일부이다. 사용자 인터페이스(130-a)는 사용자에게 출력을 제공하고 사용자로부터 입력을 수신하는 사용자 인터페이스 엘리먼트들(버튼들, 텍스트 박스들, 미디어 플레이어 윈도우들 등)을 포함한다. 액세스 실행파일(135-a)은 액세스 디바이스(105-a) 상의 암호화된 파일들을 조작하기 위해 서버(115)로부터의 액세스 패키지로부터 액세스 디바이스(105-a)에 의해 생성된 실행파일이다. 예로서, 액세스 실행파일(135-a)은 동적 링크 라이브러리(dynamic link library; DLL)일 수도 있다. 액세스 실행파일(135-a)은 액세스 함수(140-a)를 포함한다. 액세스 함수(140-a)는 기능을 수행하는 액세스 실행파일(135-a)의 일부이다. 액세스 함수(140-a)는 암호화된 파일을 생성하는 암호화기 함수, 암호화된 파일을 복호화하는 복호화기 함수, 암호화된 파일을 제거하는 종결 함수, 디코이 함수 등일 수도 있다. 디코이 함수는 암호화된 파일로부터의 예상된 출력과 유사하지만 암호화된 파일의 페이로드로부터의 데이터를 포함하지 않는 암호화된 파일에 대한 출력을 제공할 수도 있다.
액세스 디바이스(105-b)는 사용자 인터페이스(130-b) 및 액세스 실행파일(135-b)을 포함하는 액세스 클라이언트(125-b)를 포함한다. 액세스 실행파일(135-b)은 액세스 함수(140-b)를 포함한다. 액세스 디바이스(105-b)의 하드웨어 및 컴포넌트들은 액세스 디바이스(105-a)의 하드웨어 및 컴포넌트들과 유사하게 동작한다.
모바일 디바이스(110)는 네트워크 접속들을 확립하고 데이터를 전송하기 위해 액세스 디바이스(105-a)와 상호작용한다. 모바일 디바이스(110)는 도 8에 설명된 것들에 따른 컴퓨팅 시스템이고, 예를 들어, 스마트폰, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿, 또는 다른 유형의 개인 디바이스(예를 들어, 보안 카드 또는 보안 키)일 수도 있다. 모바일 디바이스(110)는 액세스 디바이스(105-a)와의 개인 영역 무선 접속을 확립하고 위치 정보를 전송할 수도 있다. 모바일 디바이스(110)는 모바일 애플리케이션(145)을 포함한다.
모바일 애플리케이션(145)은 액세스 디바이스(105-a)에 대한 접속을 확립하고, 위치 데이터를 수집하고, 위치 데이터를 전송하는 모바일 디바이스(110) 상에서 동작하는 프로그램들의 세트이다. 모바일 애플리케이션(145)은 모바일 디바이스의 위치를 결정하는 모바일 디바이스(110)의 포지셔닝 시스템(예를 들어, GPS(global positioning system) 모듈)으로부터 위치 데이터를 수집할 수도 있고, 모바일 디바이스(110)의 경도, 위도 및 고도를 포함할 수도 있다.
서버(115)는 암호화된 파일들에 대한 액세스를 제어하기 위해 시스템(100)의 다른 컴포넌트들과 상호 작용한다. 서버(115)는 도 10에 설명된 것들에 따른 컴퓨팅 시스템의 예일 수도 있고, 예를 들어, 서버 애플리케이션(185)을 호스팅하는 하나 이상의 클라우드 환경에서의 다수의 서버 중 하나일 수도 있다.
서버 애플리케이션(185)은 액세스 디바이스(105-b)를 통해 액세스 디바이스(105-a)로부터의 액세스 요청들에 대한 액세스 응답들을 제공하는 프로그램들의 세트이고, 서비스 제공자에 의해 관리될 수도 있다. 서버 (115) 는 암호화된 파일들에 대한 액세스 디바이스 (105-b) 를 통해 액세스 디바이스 (105-a) 로부터 액세스 요청들을 수신한다. 서버 애플리케이션(185)은 사용자 크리덴셜들(credentials)(사용자 식별자, 이메일 어드레스, 액세스 토큰 등), 액세스 디바이스 위치 정보, 모바일 디바이스 위치 정보, 사용자 특권 정보, 파일 액세스 허가 등을 포함하는 여러 타입들의 정보를 사용하여 액세스 요청들을 인가한다.
서버 애플리케이션(185)은 액세스 요청들의 인가에 기초하여 액세스 요청들에 대한 액세스 응답들을 생성한다. 서버 애플리케이션(185)은 액세스 디바이스(105-b)를 통해 액세스 디바이스(105-a)로 리턴되는 액세스 응답들 내에 포함된 액세스 패키지들을 생성한다. 액세스 패키지들은 키 서버들(190) 중 하나 이상으로부터의 키들을 포함하는 정보가 주입된 저장소(120)로부터의 소스 코드를 포함한다. 액세스 패키지들은 액세스 디바이스들(105)에 의해 컴파일되어 각각의 액세스 실행파일들(135) 및 각각의 액세스 함수들(140)을 형성할 수도 있다.
키 서버들(190)은 시스템(100)에서 파일들을 암호화하고 복호화하는데 사용되는 키들을 생성하고 유지한다. 키 서버들(190)은 서버(115)와 통신한다. 키 서버들(190)은 시스템(100)이 단일 타협 지점을 갖는 것을 방지하고 보안을 개선하기 위해 상이한 클라우드 구역들 내의 상이한 서버들 및 상이한 클라우드 환경들 상에 호스팅될 수도 있다. 상이한 키 서버들은 상이한 타입들의 키들을 저장할 수도 있다. 예를 들어, 하나의 키 서버는 페이로드 키들을 관리할 수도 있고, 다른 서버는 마이크로 데이터베이스 키들을 관리할 수도 있고, 다른 키 서버는 파일 키들을 관리할 수도 있는 등이다. 상이한 키 서버들 및 키 서버들의 세트들은 시스템(100)을 사용하여 상이한 엔티티들에 대해 설정될 수도 있다. 예를 들어, 제 1 엔티티(entity)는 상이한 타입들의 키들에 대해 제 1 세트의 키 서버들을 사용할 수도 있고, 제 2 엔티티는 제 1 세트의 키 서버들과 상이할 수도 있는 제 2 세트의 키 서버들을 가질 수도 있다.
저장소(120)는 도 10에 설명된 것들에 따른 다수의 컴퓨팅 디바이스들을 포함할 수도 있는 컴퓨팅 시스템이다. 저장소(120)는 서버 애플리케이션(185)을 호스팅하는 클라우드 서비스 제공자에 의해 호스팅될 수도 있다. 클라우드 서비스 제공자는 호스팅, 가상화 및 데이터 저장 서비스뿐만 아니라 다른 클라우드 서비스를 제공할 수도 있다. 서버 애플리케이션(185)을 관리하는 서비스 제공자는 저장소(120)로부터 데이터를 저장하고 취출(retrieve)하는 데이터, 프로그램들, 및 애플리케이션들을 동작 및 제어할 수도 있다. 저장소(120) 내의 데이터는 소스 코드, 필터들, 데이터베이스들 등을 포함할 수도 있다. 예로서, 저장소(120)는 액세스 소스 코드(150), 난독화 필터들(175), 및 매크로 데이터베이스(180)를 포함한다.
액세스 소스 코드(150)는 추가 정보(예를 들어, 하나 이상의 키 서버(190)로부터의 키들)가 주입된 후에 액세스 실행파일(135)을 생성하는데 사용되는 소스 코드이다. 액세스 소스 코드(150)는 암호화 소스 코드(155), 복호화 소스 코드(160), 사용자 권한 소스 코드(165), 및 종결 소스 코드(170)를 포함한다. 암호화 소스 코드(155)는 암호화된 파일을 생성하기 위해 페이로드들을 암호화하기 위한 명령들을 포함한다. 복호화 소스 코드(160)는 암호화된 파일들로부터 페이로드들을 복구하기 위해 암호화된 파일들을 복호화하기 위한 명령들을 포함한다. 사용자 권한 소스 코드(165)는 사용자 액세스 권한(예를 들어, 전체 액세스, 협업 액세스, 및 판독 전용 액세스)에 기초하여 암호화된 파일들을 프로세싱하기 위한 명령들을 포함한다. 종결 소스 코드(170)는 액세스 디바이스로부터 암호화된 파일을 제거하기 위한 명령들을 포함한다.
파일에 대한 사용자 액세스 권한은 전체 액세스, 협업 액세스 및 판독 전용 액세스와 같은 다양한 레벨을 포함할 수도 있다. 전체 액세스로, 사용자는 외부 애플리케이션들로 편집될 수도 있는 원본 파일을 복구할 수도 있다. 예를 들어, 스프레드시트는 네이티브 스프레드시트 애플리케이션으로 복구되고 편집될 수도 있다. 협업 액세스로, 사용자는 암호화된 파일 내의 정보를 보고 업데이트할 수도 있지만 원본 파일은 복구할 수 없다. 예를 들어, 사용자는 액세스 클라이언트(125) 내의 암호화된 파일의 페이로드로부터의 정보를 보고 편집 가능할 수도 있지만, 암호화된 파일의 페이로드로부터의 정보를 저장하거나 인쇄하지 못할 수도 있다. 판독 전용 액세스로, 사용자는 정보를 편집할 수 없으면서 암호화된 파일로부터 정보를 볼 수도 있다. 예를 들어, 사용자는 액세스 클라이언트(125)를 사용하여 정보를 볼 수도 있지만, 보고 있는 암호화된 파일로부터의 정보를 편집, 인쇄 또는 저장하지 못할 수도 있다. 액세스 정책들로서 또한 지칭될 수도 있는 사용자 액세스 권한은 액세스 클라이언트(125) 및/또는 액세스 실행파일(135)에 의해 시행될 수도 있다. 일부 경우들에서, 사용자 액세스 권한들은 페이로드가 화상 회의 애플리케이션 내에서 공유되는 것을 방지할 수도 있다.
난독화(obfuscation) 필터들(175)은 데이터 손실 방지(data loss prevention; DLP)를 구현한다. 난독화 필터(175)는 난독화할 데이터의 타입들 및 구조들을 식별한다. 일 예로서, 난독화 필터는 정규 표현식들을 사용하여 검색 스트링 "\d{3 }-\d{2}-\d{4}"을 갖는 사회 보장 번호들을 식별하고 매치들을 대체 스트링 "XXX-XX-XXXX"로 대체하여 문서로부터 사회 보장 번호들을 제거할 수도 있다. 난독화 필터들(175)은 암호화된 파일의 페이로드가 개인 식별 정보를 포함하지 않도록 페이로드를 암호화하기 전에 적용될 수도 있다. 또한, 난독화 필터들(175)은 암호화된 파일로부터 개인 식별 정보를 보거나 배포하는 것을 방지하기 위해 암호화된 파일의 복호화 후에 적용될 수도 있다. 예를 들어, 난독화 필터들(175)은 액세스 정책들 또는 사용자 권한들로서 시행될 수도 있다.
매크로 데이터베이스(180)는 시스템(100)에 의해 제어되는 파일들에 관한 정보를 저장한다. 매크로 데이터베이스(180)는 시스템(100)의 각각의 암호화된 파일에 저장된 (예를 들어, 데이터 팩들로도 지칭되는) 마이크로 데이터베이스에서의 정보의 수퍼세트를 포함할 수도 있다. 매크로 데이터베이스(180)는 각각의 암호화된 파일의 각각의 액세스에 관한 정보를 저장한다. 예를 들어, 암호화된 파일에 대한 매크로 데이터베이스(180)는 암호화된 파일에 대한 액세스 날짜, 액세스의 타입(생성, 판독, 기입, 업데이트 등), 사용자에 대한 정보(예를 들어, 사용자 식별자), 액세스 디바이스에 대한 정보(하드웨어 식별자들, 소프트웨어 식별자들, 네트워크 연결 식별자들, 머신 어드레스 코드(MAC) 어드레스 식별자들 등)에 대한 열들을 갖는 정보의 테이블을 포함할 수도 있다. 테이블의 행들은 상이한 액세스 이벤트들 간을 구별할 수도 있다. 매크로 데이터베이스(180)는 시스템(100)의 암호화된 파일들을 액세스하는 사용자들 및 머신들을 식별하는 커스터디 체인(chain of custody)을 문서화한다.
매크로 데이터베이스(180)는 해시 체인(hash chain)을 사용하여 액세스 이벤트 정보를 저장할 수도 있다. 예를 들어, 암호화된 파일에 대해 매크로 데이터베이스(180)에 추가된 각각의 액세스 이벤트에 대해, 액세스 이벤트의 정보는 해시 페이로드를 형성하기 위해 이전 해시 값과 결합된다. 암호 해싱 알고리즘은 해시 페이로드에 적용되어 액세스 이벤트 정보와 함께 저장되는 새로운 해시 값을 생성한다. 새로운 해시 값은 해시 값들의 불변 체인을 형성하기 위해 후속 액세스 이벤트에 대한 "이전 해시 값"으로서 사용될 수도 있다. 해시 체인의 정보가 수정되면 후속 해시 값들이 부정확하게 될 것이다.
시스템(100)의 컴포넌트들의 각각은 동적, 자기-지능적, 자기-보호 데이터 보안을 지원하기 위해 함께 작용한다. 예를 들어, 사용자는 파일을 보안하기 위해 액세스 클라이언트(125-a)에 액세스하고 다양한 사용자들에 대해 파일에 대한 액세스를 승인할 수도 있다. 액세스 클라이언트(125-a)를 사용하여, 사용자는 보안될 파일을 선택한다. 파일은 비디오 파일, 오디오 파일, 워드 프로세서 파일, 텍스트 파일, 멀티미디어 파일, PDF 등의 예일 수도 있다. 보안을 위해 파일을 선택한 후에, 사용자는, 액세스 클라이언트(125-a)에 의해, 파일 액세스 정책들에 대응하는 사용자 액세스 파라미터들을 선택하도록 프롬프트될 수도 있다. 이러한 사용자 액세스 파라미터들(또는 사용자 액세스 정책들)은 다른 타입들의 정책들 및 제한들 중에서도, 파일, 위치 또는 지오펜싱 제한들(예를 들어, 사무실 또는 다른 관리적 인가된 위치들), 시간 기간들 또는 엠바고들, 디바이스 제한들을 보도록 허가된 사용자들을 포함할 수도 있다. 사용자들을 선택하기 위해, 액세스 클라이언트(125-a)는 연락처들 또는 사용자들의 로컬 또는 원격 리스팅을 액세스하고, 각각의 사용자에 대한 파일 및 액세스 타입(예를 들어, 판독 전용, 협업, 전체 액세스)을 액세스할 사용자들을 검색 및/또는 선택하도록 사용자에게 프롬프트(prompt)할 수도 있다.
액세스 정책들의 선택 후에, 사용자는 파일을 암호화하기 위해 사용자 인터페이스(UI) 컴포넌트를 선택할 수도 있다. 본 명세서에서 더 상세히 설명되는 바와 같이, 액세스 클라이언트(125-a)는 파일을 암호화하도록 요청하는 것에 응답하여 서버(115)로부터 액세스 패키지를 수신할 수도 있다. 액세스 패키지는 액세스 실행파일(135-a)을 포함할 수도 있고, 액세스 클라이언트(125-a)는 액세스 패키지의 서버(115)로부터 수신된 키들을 사용하여 파일을 암호화하기 위해 실행파일(135-a)의 명령들을 실행할 수도 있다. 파일의 암호화는 (예를 들어, 원래 파일과는 상이한) 새로운 파일 확장자를 갖는 새로운 암호화된 파일을 초래하고, 그 새로운 암호화된 파일은 암호화된 파일 자체에 내장된 파일 액세스 정책들에 기초하여 지능적(권한 관리 인식)이다. 일부 구현들에서, 새로운 암호화된 파일은 원본 파일을 대체한다. 이러한 경우, 원본 파일은 암호화된 파일이 성공적으로 생성되면 자동으로 삭제된다. 이 기능은 조직의 특정 정책들에 의존할 수도 있거나, 파일 암호화 시 활성화될 수도 있다.
암호화된 파일은 이메일, FTP, 데이터베이스 액세스, 원격 액세스 등과 같은 다양한 기법들을 사용하여 다른 다양한 사용자들에게 전달될 수도 있다. 예를 들어, 액세스 디바이스(105-b)는 암호화된 파일에 대한 로컬 또는 원격 액세스를 갖는다. 사용자가 그 파일을 열려고 시도하는 경우, 액세스 클라이언트(125-a)는 복호화 요청을 서버(115)에 송신하도록 구성된다. 요청은 서버(115)에서 검증될 다양한 정보를 포함할 수도 있다. 서버(115)가 요청을 검증하면, 서버(115)는 액세스 실행파일(135-b)을 포함하는 액세스 패키지로 응답을 송신한다. 액세스 클라이언트(125-b)는 파일 및 그의 컴포넌트들(예를 들어, 본 명세서에서 더 상세히 설명되는 데이터 팩들)을 복호화하기 위해 액세스 실행파일(135-b)의 명령들을 실행한다. 액세스 클라이언트(125-b)는 데이터 팩들에 포함된 사용자 액세스 권한 또는 액세스 정책들을 시행한다.
암호화된 파일들과 함께 포함되는 데이터 팩들은 소유 정보(예를 들어, 사용자, 디바이스, 조직), 파일 액세스 정책들(예를 들어, 사용자 액세스 권한의 타입), 및 액세스 로그들을 포함한다. 이 정보는 암호화된 파일과 함께 이동하며 복호화 요청을 통해 업데이트될 수도 있다. 파일 액세스 정책들이 파일에 포함됨에 따라, 파일 액세스 정책들이 시행될 때 파일의 콘텐츠(contents)(예를 들어, PDF와 같은 페이로드)가 액세스가능하다.
또한, 본 명세서에서 설명된 바와 같이, 서버(115)는 서버 애플리케이션(185) 및 저장소(120)를 통해 파일 정책들 및 액세스 권한을 유지한다. 일반적으로(본 명세서에 설명된 바와 같이, 일부 예외가 존재함), 암호화된 파일은 서버와 통신하지 않고는 액세스 클라이언트(125)에 의해 복호화될 수 없다. 따라서, 사용자들(예를 들어, 관리 사용자들 또는 파일 소유자들)은 액세스 클라이언트(125)(예를 들어, 액세스 클라이언트(125)에 의해 지원되는 대시보드)를 사용하여 다양한 파일들과 연관된 파일 액세스 정책들을 업데이트할 수도 있다. 파일에 대한 복호화 요청을 수신하면, 서버(115)는 파일에서의 액세스 정책들이 오래된 것(예를 들어, 최신이 아닌 것)으로 결정하고 액세스 패키지와 함께 업데이트된 액세스 정책들을 액세스 클라이언트(125)에 송신할 수도 있다. 이와 같이, 파일 액세스는 업데이트된 액세스 정책들을 포함하기 위해 파일들을 먼저 복호화할 필요 없이 동적으로 업데이트될 수도 있다. 추가적으로, 서버 통신이 일반적으로 파일 액세스 요청들(예를 들어, 복호화 또는 암호화 요청)과 함께 발생하기 때문에, 서버(115)는 이러한 요청들의 로그(log)를 유지할 수도 있다. 로그는 관리 사용자들이 액세스 위치들, 액세스 거부들, 액세스를 요청한 사용자들 등을 보기 위해 사용하는 대시보드를 지원하기 위해 사용될 수도 있다. 또한, 대시보드는 거의 실시간으로 다양한 사용자들, 다양한 파일들 등에 대한 액세스 정책들을 변경하는 데 사용될 수도 있다. 이와 같이, 본 명세서에 설명된 기법들은 조직이 그들의 파일 보안 메커니즘들 및 결과들의 전체 및 거의 실시간 뷰를 갖도록 허용할 수도 있다.
당업자는 본 개시의 하나 이상의 양태들이 본 명세서에 설명된 것들 이외의 다른 문제들을 추가적으로 또는 대안적으로 해결하기 위해 시스템(100)에서 구현될 수도 있다는 것을 이해해야 한다. 또한, 본 개시의 양태들은 본 명세서에 설명된 바와 같은 "종래의" 시스템들 또는 프로세스들에 대한 기술적 개선들을 제공할 수도 있다. 그러나, 설명 및 첨부된 도면들은 본 개시의 양태들을 구현함으로써 발생하는 예시적인 기술적 개선들을 포함할 뿐이고, 따라서 청구항들의 범위 내에 제공된 기술적 개선들 모두를 나타내지는 않는다
도 2 는 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 암호화된 파일(200)의 예를 도시한다. 암호화된 파일(200)은 페이로드(205)에 대한 액세스를 제어하고 페이로드(205)를 인가되지 않은 액세스로부터 보호하기 위해 (암호화된 파일(200)에 저장되지 않은) 다수의 솔트들 및 키들을 사용한다. 암호화된 파일(200)은 페이로드(205), 데이터 팩들(210), 및 메타데이터(215)를 포함한다.
페이로드(205)는 암호화된 파일(200)의 기초를 형성하는 전자 파일이다. 페이로드(205)는 텍스트 문서, 스프레드시트, 슬라이드 프레젠테이션, 소스 코드 파일, 이미지 파일, 아카이브 파일, 비디오 파일 등을 포함하는 임의의 타입의 전자 파일을 포함할 수도 있다. 암호화된 파일(200)은 페이로드(205) 내에 단일 파일을 포함할 수도 있다.
페이로드(205)는 페이로드 솔트(220)로 솔팅되고 암호화된 파일(200)에 삽입되기 전에 페이로드 키(225)로 암호화될 수도 있다. 일부 구현들에서, 페이로드 키(225)는 256 비트 길이인 AES(advanced encryption standard)(256) 키일 수도 있다. 일부 구현들에서, 페이로드 솔트(220)는 랜덤하게 생성된 8 바이트 값이다. 일부 구현들에서, 페이로드 솔트(220)는 페이로드 솔트(220)를 페이로드(205)에 첨부함으로써 페이로드(205)에 적용된다.
데이터 팩(210)(마이크로 데이터베이스, 소유자 데이터베이스, 또는 이들의 조합이라고도 함)은 암호화된 파일(200)에 대한 최근 액세스와 관련된 매크로 데이터베이스(예를 들어, 도 1의 매크로 데이터베이스(180))의 정보의 서브세트, 암호화된 파일(200)과 연관된 파일 액세스 정책들, 및 암호화된 파일과 연관된 소유자 정보를 포함할 수도 있다. 데이터 팩(210)은 암호화된 파일(200)을 액세스하기 위한 이전의 최종 사용자(들) 및 암호화된 파일(200)을 액세스하기 위한 이전의 액세스 디바이스(들)를 식별하는 액세스 로그 정보를 (예를 들어, 액세스 로그(250)에) 포함할 수도 있다. 예를 들어, 데이터 팩은 암호화된 파일(200)에 이전에 액세스한 사용자들 및 디바이스들과 연관된 지문을 포함하는 액세스 로그(250)를 포함할 수도 있다. 사용자 지문 정보는 이메일 어드레스, 액세스 토큰, 해시 값 등을 포함할 수도 있다. 액세스 디바이스 지문 정보는 하드웨어 및/또는 소프트웨어 식별자를 포함할 수도 있다. 일부 예들에서, 액세스 로그(250)에 대한 핑거 정보는 네트워크 정보, 지리적 위치 정보, 액세스 클라이언트 정보 등을 포함할 수도 있다. 일부 경우들에서, 액세스 로그(250)는 액세스 클라이언트를 실행하는 하드웨어 컴포넌트를 고유하게 식별하는 하드웨어 정보를 포함한다. 예로서, 하드웨어 정보는 사용자의 컴퓨팅 시스템으로부터의 보편적으로 고유한 식별자(UUID)인 사용자 엄지손가락 지문일 수도 있다. 다른 예로서, 사용자 엄지손가락 지문은 마더보드 일련 번호일 수도 있다. 액세스 로그(250)의 액세스 정보는 액세스 타임스탬프를 포함할 수도 있다. 액세스 타임스탬프는 암호화된 파일(200)에 대한 마지막 성공적인 액세스의 날짜 및 시간을 식별할 수도 있다.
또한, 데이터 팩들(210)은 암호화된 파일(200)에 대한 액세스 권한(예를 들어, 파일 액세스 정책들(245)) 및 암호화된 파일(200)에 대한 엔티티 또는 소유 정보(소유자 데이터베이스라고도 함)의 표시들을 포함할 수도 있다. 파일 액세스 정책들(245)은 전체 액세스(full access), 협업 액세스(collaborative access), 판독 전용 액세스(read only access)를 나타낼 수도 있고, 글로벌 단위, 그룹 단위, 사용자 단위 등에 기초하여 특정될 수도 있다. 파일 액세스 정책들은 또한 암호화된 파일(200)에 대한 사용자들의 특권들 및 액세스 권한들을 식별하는 데이터를 포함하는 파일 액세스 정책들의 서브세트일 수도 있는 디지털 권한 관리 정보를 포함할 수도 있다. 일 예로서, 디지털 권한 관리 정보는 다음의 필드들에 대한 값들을 포함할 수도 있다: PrintAllowed, SaveAllowed, LocalCopy Allowed, ForwardAllowed, Collaborate, Readonly, 및 FullAccess. 디지털 권한 관리 정보는 글로벌 단위, 그룹 단위, 사용자 단위 등으로 구성될 수도 있다. 액세스 권한들은 또한 화상 회의 프로그램에서 페이로드를 공유하는 것을 제한하거나 허용하는 것과 같은 다양한 프로그램들을 사용하여 파일에 대한 액세스를 제한하거나 허용하는 디스플레이 제약들을 포함할 수도 있다.
PrintAllowed, SaveAllowed, LocalCopy Allowed, ForwardAllowed 의 값들은 이진 값들일 수도 있다. PrintAllowed 필드에 대한 값은 암호화된 파일(200)의 페이로드(205)로부터의 정보가 사용자에 의해 인쇄될 수도 있는지를 식별한다. SaveAllowed 필드에 대한 값은 암호화된 파일(200)의 페이로드(205)로부터의 정보가 사용자에 의해 액세스 디바이스에 저장될 수도 있는지를 식별한다. LocalCopy Allowed 필드에 대한 값은 암호화된 파일(200)의 페이로드(205)로부터의 정보의 로컬 카피가 액세스 디바이스에 저장될 수도 있는지를 식별한다. ForwardAllowed 필드에 대한 값은 암호화된 파일(200)의 페이로드(205)로부터의 정보가 (예를 들어, 이메일의 일부로서) 다른 디바이스로 포워딩될 수도 있는지를 식별한다.
Collaborate, Readonly 및 FullAccess의 값들은 독립적으로 설정될 수도 있는 이진 값들일 수도 있다. Collaborate 필드에 대한 값은 사용자가 암호화된 파일(200)의 페이로드(205)에 대한 협업 액세스를 가질 수도 있는지를 식별한다. Readonly 필드에 대한 값은 사용자가 암호화된 파일(200)의 페이로드(205)에 대한 판독 전용 액세스를 가질 수도 있는지를 식별한다. FullAccess 필드에 대한 값은 사용자가 암호화된 파일(200)의 페이로드(205)에 대한 전체 액세스를 가질 수도 있는지를 식별한다.
액세스 정책들(245)은 또한 암호화된 파일(200)의 페이로드(205)로부터 민감 정보를 식별하고 제거하거나 난독화할 수도 있는 정보 및 명령들을 포함하는 데이터 손실 방지 정보를 포함할 수도 있다. 데이터 손실 방지 정보는 본 명세서에 설명된 바와 같은 디스플레이 제약들(display constraints)의 예들일 수도 있다. 민감 정보(sensitive information)는 개인 식별 정보를 포함하는 정보이다. 민감한 정보는 페이로드(205)가 복호화기 디바이스로서 작용하는 액세스 디바이스와 함께 보여지거나 그에 저장되기 전에 제거되거나 난독화될 수도 있다. 일 예로서, 데이터 손실 방지 정보는 PackageID, Rules, Rule ID 필드들에 대한 값들을 포함할 수도 있다.
PackageID에 대한 값은 페이로드(205)로부터 민감 정보를 제거하거나 난독화하기 위해 액세스 패키지에 포함될 소스 코드의 패키지를 식별한다. Rules 필드에 대한 값들은 페이로드(205)로부터 민감 정보를 제거하거나 난독화하기 위해 액세스 패키지에 포함될 규칙들의 그룹들을 식별한다. RuleID에 대한 값은 페이로드(205)로부터 민감 정보를 제거하거나 난독화하기 위해 액세스 패키지에 포함될 특정 규칙을 식별한다. 데이터 손실 방지를 위한 각각의 규칙은 대체 스트링에 따라 (정규 표현식 스트림으로부터의) 정규 표현식과 일치하는 페이로드(205) 내의 데이터를 대체하기 위해 대체 스트링을 갖는 정규 표현식 스트링을 포함한다.
파일 액세스 정책들(245)은 또한 종결 정보를 포함할 수도 있다.
종결 정보는 암호화된 파일(200)의 페이로드(205)가 종결되었는지를 식별하는 종결 플래그를 포함할 수도 있다. 페이로드(205)는 원래 페이로드 내의 데이터에 대한 액세스를 방지하기 위해 원래 페이로드와 동일한 사이즈인 널(null) 또는 랜덤(random) 데이터로 (암호화 후에) 원래 페이로드를 대체함으로써 종결되었을 수도 있다. 종결 플래그는 비허가 사용자 또는 디바이스가 암호화된 파일(200)을 액세스하려고 시도할 때 참(true)으로 설정될 수도 있다.
파일 액세스 정책들(245)은 또한 지리적 위치 제한들을 강제할 수도 있다. 예를 들어, 파일 액세스 정책은 파일이 사무실 위치, (예를 들어, 주 또는 국가 내의) 지리적 위치 등에서만 액세스가능하다는 것을 나타낼 수도 있다. 따라서, 정책이 시행되고 있을 때, 액세스 클라이언트는 액세스가 인가됨을 결정하기 위해, 네트워크 정보, GPS 정보, 또는 지리적 위치를 식별하는데 사용될 수도 있는 다른 정보를 사용할 수도 있다. 그러한 정보가 이용가능하지 않으면, 페이로드(205)에 대한 액세스가 제한될 수도 있다. 따라서, 파일 액세스 정책들(245)은 액세스 권한들의 타입들을 표시하는 비트들, 데이터 손실 방지들을 시행하는 규칙들 또는 명령들의 표시들, 지리적 제한들의 표시들 등을 포함하는 다양한 형태들을 포함할 수도 있다. 일부 경우들에서, 파일 액세스 정책들(245)은 사용자가 파일들을 액세스하기 위해 가상 사설 네트워크(VPN)를 사용하는 것을 제한할 수도 있다. 따라서, VPN이 검출되면, 액세스 요청이 거부될 수도 있거나 사용자가 파일을 보는 것이 제한될 수도 있다.
소유 정보 (255) 는 암호화된 파일 (200) 을 생성한 사용자를 고유하게 식별하는 Author ID 필드에 대한 값을 포함할 수도 있다. Author ID 에 대한 값은 이메일 어드레스, 직원 식별자, 사용자 이름 등일 수도 있다. 소유 정보(255)는 디지털 서명과 같은 엔티티 서명을 포함할 수도 있다. 시스템의 사용자는 엔티티의 다수의 직원들 중 하나일 수도 있다. 엔티티에 대해 사용자들에 의해 생성된 각각의 암호화된 파일은 엔티티를 암호화된 파일의 소스로서 식별하는 동일한 엔티티 서명, 또는 암호화된 파일의 엔티티 소스 및 암호화된 파일을 생성한 사용자를 식별할 수도 있는 다수의 엔티티 서명들을 포함할 수도 있다.
소유 정보(255)는 또한 사용자가 암호화된 파일에 대한 액세스를 갖는지를 검증하기 위해 액세스 클라이언트가 사용되는 하나 이상의 애플리케이션 프로그래밍 인터페이스(application programming interface; API) 엔드포인트들(예를 들어, URL(uniform resource locator)들)의 표시를 포함하는 엔티티 데이터베이스 정보를 포함할 수도 있다. 예를 들어, 표시된 하나 이상의 API 엔드포인트는 Verify API 및 Transfer API 일 수도 있다. Verify API 는 (암호화된 파일(200)과 동일한 엔티티를 갖는) 사용자가 암호화된 파일(200)에 액세스할 수도 있음을 검증하기 위해 액세스될 수도 있다. Transfer API 는 (암호화된 파일(200)과 상이한 엔티티를 갖는) 사용자가 암호화된 파일(200)에 액세스할 수도 있음을 검증하기 위해 액세스될 수도 있다. API 엔드포인트들이 암호화된 파일(200)의 복호화 전에 액세스될 수도 있기 때문에, API 엔드포인트들은 임의의 암호화 래퍼(wrapper) 외부에 위치될 수도 있다(예를 들어, 키들 중 하나에 의해 암호화되지 않을 수도 있다). 예를 들어, API 엔드포인트들의 표시들은 메타데이터(215)에 포함될 수도 있다.
메타데이터(215)는 암호화된 파일(200)에 관한 정보의 저장소이다. 일 예로서, 메타데이터(215)는 페이로드(205) 내의 파일의 타입, 페이로드(205) 내의 파일의 이름, 페이로드(205) 내의 파일의 길이, 페이로드(205)에 대한 암호화 알고리즘들(솔팅 알고리즘을 포함함), 데이터 팩들(210)에 대한 암호화 알고리즘들, 암호화된 파일(200)에 대한 암호화 알고리즘들 등을 식별할 수도 있다. 본 명세서에 설명된 바와 같이, 메타데이터(215)는 또한 API 엔드포인트들의 표시를 포함할 수도 있다. 메타데이터(215)의 다양한 양태들은 암호화된 파일(200)의 일부로서 암호화되거나 암호화되지 않을 수도 있다. 일부 경우들에서, 메타데이터(215)의 양태들은 서버에 대한 액세스 요청(암호화 또는 복호화 요청)에 포함될 수도 있다.
데이터 팩들(210)은 암호화된 파일(200)에 삽입되기 전에 하나 이상의 데이터 팩 키(230)로 암호화될 수도 있다. 일부 구현들에서, 하나 이상의 데이터 팩 키(230)는 AES(advanced encryption standard)(128) 키들일 수도 있다. 하나 이상의 데이터 팩 키(230)는 데이터 팩들(210) 내의 데이터에 액세스하는데 필요한 시간을 감소시키기 위해 페이로드 키(225)보다 짧을 수도 있다.
암호화된 파일(200)은 파일 솔트(235)로 솔트되고 파일 키(240)로 암호화될 수도 있다. 일부 구현들에서, 파일 키(240)는 AES(advanced encryption standard)(256) 키일 수도 있다. 일부 구현들에서, 페이로드 솔트(235)는 랜덤하게 생성된 8 바이트 값이다. 파일 솔트(235)는 파일 솔트(235)를 암호화된 파일(200)에 첨부함으로써 암호화된 파일(200)의 콘텐츠(예를 들어, 페이로드 솔트(220)로 솔팅되고 페이로드 키(225)로 암호화된 후의 페이로드(205), 데이터 팩 키들(230)로 암호화된 후의 데이터 팩들(210))에 적용될 수도 있다.
일부 구현들에서, 솔트(salt)(예를 들어, 파일 솔트(235))는 Y에 저장된 10000000 내지 99999999 사이의 제 1 랜덤 8 디지트 수를 생성함으로써 생성된다. 그 다음 1 내지 8 사이의 제 2 랜덤 수가 생성되어 X에 저장된다. 그 다음 Y의 X번째 디지트가 X의 값으로 대체된다. 제 2 랜덤 수를 생성하는 단계 및 Y의 값을 대체하는 단계는 4회 반복된다. 마지막 대체 후의 값은 솔트이다. 시스템에 의해 사용되는 솔트들을 생성하기 위해 상이한 알고리즘들이 사용될 수도 있다.
서버 통신과 관련하여, 데이터 팩들(210)에 포함된 다양한 정보는 본 명세서에 설명된 동적, 자기 지능형 및 자기 보호 데이터 보안 방식들을 지원한다. 액세스 클라이언트가 서버로부터 액세스 패키지(예를 들어, 실행파일들 및 액세스 키들)를 수신할 때, 액세스 클라이언트는 다양한 키들을 사용하여 암호화된 파일의 콘텐츠를 복호화하기 위해 액세스 패키지의 실행가능 코드를 실행한다. 액세스 클라이언트는 암호화된 파일에 포함된 액세스 정책들(245)을 시행하도록 구성된다. 또한, 복호화 시, 액세스 패키지의 실행가능 코드는 액세스 로그(250)가 액세스 클라이언트(예를 들어, 클라이언트 식별자, 버전, 지문), 액세스 클라이언트를 실행하는 디바이스(예를 들어, 디바이스 식별자, 마더보드 식별자, 하드웨어 식별자), 사용자 정보, 및 본 명세서에 설명된 바와 같은 다른 정보에 관한 정보로 업데이트되게 할 수도 있다. 이와 같이, 암호화된 파일(200)이 다른 사용자 또는 디바이스에 전달되고, 사용자가 암호화된 파일(200)을 열려고 시도하면, 액세스 로그(250)의 내용은 누가 및/또는 어떤 디바이스가 암호화된 파일(200)을 손상시켰는지를 보기 위해 암호화된 파일(200)의 커스터디 체인을 식별하는 데 사용될 수도 있다.
일부 경우들에서, 파일이 해독되기 전에, 파일과 연관된 액세스 정책들(245)이 업데이트될 수도 있다. 이러한 경우들에서, 복호화 요청이 서버(예를 들어, 서버(115))에 전송되면, 서버는 업데이트된 액세스 정책들이 복호화 시에 시행되도록 액세스 패키지의 업데이트된 액세스 정책들로 응답할 수도 있다. 그러나 액세스 정책들이 파일에 포함되어 있기 때문에, 오프라인 액세스와 같은 다양한 피처들이 지원된다.
도 2의 양태들은 파일인 페이로드(205)와 관련하여 설명된다. 본 명세서에 설명된 기법들은 파일의 부분들 또는 파일 내의 객체들에 적용가능할 수도 있다는 것이 이해되어야 한다. 예를 들어, 파일은 파일 내에 내장되는 다수의 엘리먼트들(예를 들어, OLE 엘리먼트들), 이미지들, 차트들 등을 포함할 수도 있다. 이러한 경우들에서, 페이로드(205)는 파일 내의 하나의 특정 엘리먼트 또는 파일의 부분(예를 들어, 특정 페이지들)의 예일 수도 있다. 따라서, 엘리먼트 또는 페이지(예를 들어, 페이로드(205))는 암호화될 수도 있고, 액세스 정책들(245)은 엘리먼트 또는 페이지에 대해 시행될 수도 있다. 유사하게, 액세스 로그(250) 및 소유 정보(255)는 보안되는 파일 내의 엘리먼트 또는 페이지에 기초할 수도 있다.
도 3 은 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 컴퓨팅 아키텍처(300)의 예를 도시한다. 컴퓨팅 아키텍처(300)는 사용자 디바이스(305) 및 서버(310)를 포함한다. 사용자 디바이스(305)는 도 1과 관련하여 설명된 바와 같은 액세스 디바이스(105)의 예일 수도 있다. 서버(310)는 도 1과 관련하여 설명된 바와 같은 서버(115)의 예일 수도 있다. 사용자 디바이스(305)는 본 명세서에 설명된 파일 제어 기술들을 지원하기 위해 액세스 클라이언트(325)를 실행하도록 구성될 수도 있다.
사용자 디바이스(305)의 사용자는 본 명세서에 설명된 기술들에 따라 파일 또는 파일의 부분들을 암호화 및/또는 복호화하기 위해 액세스 클라이언트(325)에 액세스할 수도 있다. 일부 경우들에서, 사용자는 매일, 주기적으로, 등등으로 액세스 클라이언트에 로그인하도록 요구된다. 액세스 클라인(325)에 로그인하는 것은 보안 접속을 확립하는 것을 포함하여 서버(310)와의 통신을 트리거할 수도 있다. 추가적으로, 토큰은 로그인 시에 생성될 수도 있고, 토큰은 서버(325)와의 보안 통신을 위해 사용될 수도 있다. 일부 예들에서, 사용자는 로그인 시에 지리적 위치, 네트워크 식별자 등을 등록할 수도 있고, 이러한 정보는 토큰 생성, 서버와의 보안 통신, 파일 액세스 정책 시행(예를 들어, 데이터 지오-펜싱) 등에 사용된다.
액세스 클라이언트(325)의 예시적인 사용에서, 사용자는 파일 또는 파일의 일부가 사용자들의 세트에 송신되기 전에 그 파일 또는 파일의 일부를 보안하기 위해 액세스 클라이언트를 사용할 수도 있다. 사용자는 파일을 선택한 다음 액세스 클라이언트(325)를 통해 파일에 대한 파일 액세스 정책들을 선택할 수도 있다. 파일 및 파일 액세스 정책들의 선택 후에, 액세스 클라이언트(325)는 액세스 요청(330)을 서버(310)에 전송할 수도 있다. 암호화 요청의 경우, 서버(310)는 액세스 클라이언트(325)에서 구성된 URL(예를 들어, API 엔드포인트)에 기초하여 식별될 수도 있다. 액세스 요청(330)은 액세스 정보(315)뿐만 아니라 파일과 연관된 파일 정보(파일 사이즈, 타입, 파일 메타데이터)를 포함할 수도 있다. 액세스 정보(315)는 액세스 클라이언트(325)에 기초하여 맞춤화될 수도 있다. 액세스 클라이언트(325)의 구현(예를 들어, 조직 구성, 개인 구성)에 따라, 액세스 정보는 인터넷 프로토콜(IP) 어드레스, 네트워크 정보, 마더보드 식별자, UU(universally unique) 식별자, 사용자 식별자, 클라이언트 식별자들(예를 들어, 클라이언트 라이센스 식별자), 클라이언트 버전, 지리위치 정보, 브라우저 정보(예를 들어, 브라우저 기반 클라이언트의 경우), 애플리케이션 정보(예를 들어, 클라이언트 플러그인의 경우)와 같은 다양한 정보를 포함할 수도 있다. 액세스 정보(315)는 또한 액세스 토큰을 포함할 수도 있다.
액세스 정보는 사용자, 사용자의 컴퓨팅 시스템, 컴퓨팅 시스템의 위치, 및 요청되는 액세스의 타입에 관한 정보를 포함할 수도 있다. 사용자에 관한 정보는 사용자 이름, 사용자 액세스 토큰들, 사용자의 디지털 서명, 사용자의 공개 키 등을 포함할 수도 있다. 사용자의 컴퓨팅 시스템에 관한 정보는 컴퓨팅 시스템의 하드웨어 및 소프트웨어 컴포넌트들의 하드웨어 및 소프트웨어 식별자들을 포함할 수도 있다. 컴퓨터 시스템의 위치에 관한 정보는 컴퓨터 시스템에 대한 IP 어드레스를 포함할 수도 있으며, 이는 지리적 위치에 맵핑될 수도 있다. 액세스 정보는 액세스 요청의 헤더의 일부일 수도 있고 JSON(JavaScript Object Notation) 표준에 따라 포맷될 수도 있다.
서버(310)는 액세스 정보(315)를 검증(validate)할 수도 있다. 검증들은 위치들을 검증하는 것, 네트워크들을 검증하는 것, 디바이스를 검증하는 것, 토큰을 검증하는 것(예를 들어, 토큰이 활성임), 및 다른 정보를 포함할 수도 있다. 일부 경우들에서, 조직은 암호화 기능을 사용하기 위해 특정 정보가 존재해야 한다는 것을 나타내는 조직 정책들과 연관될 수도 있다. 예를 들어, 글로벌 정책은 직원들 또는 사용자들이 사무실에 있을 때만 파일을 암호화할 수도 있음을 나타낼 수도 있다. 이처럼 조직 정책들이 충족되도록 하기 위해 다양한 검증이 사용된다. 검증들은 다양한 고려 사항 및 시나리오에 대해 맞춤화 가능할 수도 있다.
액세스 정보(315), 액세스 요청(330), 또는 액세스 클라이언트(325)로부터의 다른 통신은 또한 암호화될 파일에 대한 파일 액세스 정책들의 표시들을 포함할 수도 있다. 따라서, 판독, 기입, 협업, 지리적 제한 정책들, 인가된 사용자들, 및 다른 정책들을 포함하는 선택된 정책들이 서버(310)에 전달될 수도 있다. 서버(310)는 보안 저장소에 (예를 들어, 도 1의 매크로 데이터베이스(180)에) 파일 정보 및 액세스 정책들의 기록을 유지할 수도 있다.
액세스 요청(330)이 검증되면, 액세스 정보는 여기에 설명된 바와 같이 저장될 수도 있고, 서버(310)는 액세스 패키지(320)를 생성할 수도 있다. 액세스 패키지(320)를 생성하기 위해, 서버(310)는 키 서비스를 이용하여 암호화 키들을 생성하기 위해 보안 키 저장소를 호출(예컨대, 요청을 송신)할 수도 있다. 보안 키 저장소는 제 3자 키 관리 서비스의 예일 수도 있다. 보안 키 저장소는 키들을 생성하는 데 사용되는 랜덤 스트링을 반환할 수도 있다. 서버(310)는 스트링을 하나 이상의 액세스 키들(335)로 분할하도록 구성될 수도 있고, 따라서 보안 키 저장소는 액세스 키들(335)을 식별하지 못할 수도 있다. 일부 예들에서, 키 저장소에 대한 요청은 키 스트링을 수신하기 위한 후속 복호화 요청에 사용될 수도 있는 파일 식별 정보를 포함할 수도 있다. 각각의 암호화 요청은 상이한 키 세트를 초래할 수도 있다.
서버(310)는 또한 액세스 패키지(320)에 대한 액세스 정보(340)를 생성할 수도 있다. 액세스 정보는 다양한 타입의 암호화 또는 복호화 라이브러리로부터의 코드(예를 들어, 실행가능 코드)를 포함할 수도 있다. 이와 같이, 암호화/복호화 방식들 및 키들은 본 명세서에 설명된 기술들을 구현하는 조직의 요구들에 따라 맞춤화 가능할 수도 있다. 액세스 정보(340)는 페이로드 및 데이터 팩들을 포함하는 파일을 암호화하기 위한 명령들을 포함할 수도 있다. 일부 경우들에서, 액세스 패키지(320)는 정책들 및 소유 정보가 파일과 함께 암호화될 수도 있도록 파일 액세스 정책들 및/또는 소유 정보의 표시를 포함할 수도 있다. 액세스 정보(340)는 명령 저장소(예를 들어, 도 1의 저장소(120))로부터 취출될 수도 있다. 명령 저장소는 본 명세서에 설명된 시스템을 구현하는 각각의 점유자 또는 조직에 대해 구성될 수도 있고, 이와 같이, 맞춤화가능하거나 선택가능한 암호화/복호화 기술들, 키 포맷들 등을 사용할 수도 있다.
일부 경우들에서, 본 명세서에서 설명된 바와 같이, 액세스 정보(340)는 동작들(예를 들어, 정책들을 암호화, 복호화, 시행)을 수행하는 데 사용되는 머신 실행가능 코드를 생성하기 위해 디바이스(305)에 의해 컴파일가능하다. 일부 경우들에서, 액세스 정보(340)는 페이로드/파일의 데이터를 다른 형태로 변환하는데 사용되거나, 데이터 내의 값들을 변경하기 위한 동작들을 적용하는데 사용되거나, 또는 둘 다인 값들 또는 데이터 페이로드들을 포함할 수도 있다. 일부 예들에서, 데이터 변환 명령들은 액세스 패키지(320)에서 표시될 수도 있거나 또는 액세스 클라이언트(325)에서 구성될 수도 있다. 이와 같이, 액세스 정보(320)가 값들 또는 데이터 페이로드들을 포함할 때, 액세스 정보(320)(및 액세스 패키지(320))는 호환가능하거나 실행가능한 코드를 포함하지 않을 수도 있다.
액세스 패키지(320)는 액세스 응답(345)에서 디바이스(305)(예를 들어, 액세스 클라이언트(325))로 송신된다. 액세스 클라이언트(325)는 (예를 들어, 액세스 키들(335)을 사용하여) 암호화된 파일을 생성하기 위해 액세스 정보(340)를 사용하도록 구성된다. 액세스 정보를 사용하는 것은 데이터 팩들의 인스턴스화 및 암호화, 페이로드(예를 들어, 암호화될 파일)의 암호화, 및 데이터 팩들 및 파일의 암호화를 함께 야기하는 액세스 정보(340)에 포함된 코드를 실행하는 것을 포함할 수도 있다. 이와 같이, 구성에 따라, 암호화된 파일 내에 암호화의 다수의 계층이 있을 수도 있다. 암호화된 파일은 그 후 파일 전송 또는 통신 기술들을 사용하여 다양한 다른 사용자들 및 디바이스들에 송신될 수도 있다.
액세스 요청(330)이 복호화 요청이면, 유사한 기술들이 사용될 수도 있다. 유사한 액세스 정보(315)는 서버(310)로 전달될 수도 있다. 서버(310)는 다양한 검증을 수행할 수도 있다. 복호화를 위한 검증들은 암호화 검증들과 상이할 수도 있다. 예를 들어, 서버(310)는 파일 식별자와 연관하여 저장된 정보에 기초하여 복호화를 요청하는 사용자 및/또는 디바이스가 파일에 액세스하도록 허가되었는지 여부를 결정할 수도 있다. 일부 경우들에서, 검증은 요청 사용자 디바이스(305)의 위치가 위치 정책(지리위치, 네트워크 위치)을 만족하는 것을 결정하는 것을 포함한다.
액세스 요청(330)이 검증되면, 서버(310)는 액세스 패키지(320)를 생성할 수도 있다. 액세스 패키지의 생성은 연관된 키 스트링에 대한 요청을 키 저장 서비스에 송신하는 것을 포함할 수도 있다. 예를 들어, 키 저장 서비스에 대한 요청은 암호해독될 파일에 대한 파일 식별자의 표시를 포함할 수도 있다. 서버(310)는 키 스트링을 수신하고, 액세스 키(335) 및 액세스 정보(340)를 생성할 수도 있다. 이 경우에, 실행가능 코드는 전체 파일, 데이터 팩들 및 암호화된 파일의 페이로드를 복호화하기 위한 복호화 명령을 포함할 수도 있다.
일부 경우들에서, 액세스 정보(340)는 파일 및 그 다음 데이터 팩들이 암호화되게 할 수도 있다. 데이터 팩들의 파일 액세스 정책들은 페이로드가 복호화되기 전에 시행될 수도 있다. 예를 들어, 정책이 지리위치 정책이고 정책이 액세스 클라이언트(325)에 의해 식별된 정보에 기초하여 충족되지 않으면, 액세스 정보(340)의 실행은 정책이 충족될 때까지 종결될 수도 있다. 따라서, 페이로드는 파일의 부분들이 복호화되더라도 액세스되지 않는다.
액세스 정보(340)를 실행하기 위해, 액세스 클라이언트(325)는 메모리 내의 코드와 연관된 객체를 인스턴스화하고 파일을 암호화 또는 복호화하기 위해 액세스 키들(335)을 사용할 수도 있다. 파일이 성공적으로 암호화 또는 복호화된 후, 코드는 파괴된다(예를 들어, 메모리로부터 제거된다). 따라서, 객체는 런타임 시에 디바이스(305)의 메모리에 유지되고 실행 후에 제거된다. 따라서, 액세스 클라이언트(325)는 코드를 실행하기 위해서만 구성되고 파일들을 암호화 또는 복호화하도록 (코드 없이) 구성되지 않는다.
일부 예들에서, 서버(310)는 액세스 정보(315)에 기초하여 액세스 요청(330)이 유효하지 않다고 결정한다. 예를 들어, 서버(310)는 요청이 인가되지 않은 위치, 네트워크, 디바이스, 클라이언트, 사용자 등으로부터 온 것이라고 결정할 수도 있다. 이러한 경우들에서, 서버(310)는 다양한 액션들을 수행할 수도 있다. 하나의 액션은 (예를 들어, 이메일, 경고 등을 통해) 관리 사용자에게 경고를 송신하는 것을 포함할 수도 있다. 다른 액션은 페이로드의 콘텐츠를 덮어쓰도록 구성된 액세스 정보(340)를 갖는 액세스 패키지(320)를 생성하는 것을 포함할 수도 있다. 추가적으로 또는 대안적으로, 액세스 정보(340)는 파일 액세스 정책들에서 종결 플래그(termination flag)를 트리거(trigger)할 수도 있다. 이와 같이, 인가되지 않은 요청 후에, 사용자는 파일에 액세스하지 않을 수도 있고, 파일의 내용은 덮어쓰기될 수도 있다.
일부 경우들에서, 서버(310)는 액세스 요청(330)이 유효하다고 결정할 수도 있지만, 서버(310)는 또한 파일과 연관된 액세스 정책들(350)이 오래되었거나 만료되었다고 결정할 수도 있다. 이러한 결정을 하기 위해, 서버(310)는 액세스 정보(315)에 포함된 정보(예를 들어, 파일 정보, 해시 값들, 버전들)를 서버(310)에 의해 유지되는 정보(예를 들어, 파일 정보, 해시 값들, 버전들)와 비교할 수도 있다. 정책들이 오래되었거나 최신 상태가 아닌 경우, 액세스 패키지(320)는 액세스 클라이언트(325)에 의해 시행되는 업데이트된 또는 현재 액세스 정책들(350)을 포함할 수도 있다.
본 명세서에 설명된 바와 같이, 액세스 패키지는 암호화기 패키지, 복호화기 패키지, 디코이 패키지, 또는 종결 패키지일 수도 있다. 암호화기 패키지는 데이터를 암호화하는 함수들을 갖는 소스 코드를 포함할 수도 있지만 데이터를 복호화하는 함수들을 갖는 소스 코드를 포함하지 않는다. 복호화기 패키지는 데이터를 복호화하지만 데이터를 암호화하지 않는 함수들을 갖는 소스 코드를 포함할 수도 있다. 종결 패키지는 암호화된 파일들을 숨기거나 제거하는 함수들을 갖는 소스 코드를 포함할 수도 있다. 디코이 패키지는 암호화된 파일로부터의 데이터와 유사해 보이지만 암호화된 파일로부터의 데이터를 포함하지 않는 데이터를 디스플레이하기 위한 함수들을 갖는 소스 코드를 포함할 수도 있다. 종결 패키지 및 디코이 패키지는 데이터를 암호화 또는 복호화하는 데 사용되는 소스 코드, 키들 또는 솔트들을 포함하지 않을 수도 있다.
종결 패키지는 암호화된 파일로부터의 데이터가 복호화될 수 없음을 나타내는 메시지를 사용자에게 디스플레이함으로써 데이터를 숨길 수도 있다. 종결 패키지는 액세스 요청을 전송한 컴퓨팅 시스템이 지오펜스의 금지된 영역에 위치함을 나타내는 액세스 인가 및 이에 응답하여 암호화된 파일 내의 데이터를 랜덤 데이터로 덮어쓰기함으로써 데이터를 제거할 수도 있다. 지오펜스의 금지 영역들에는 특정 국가들이 포함될 수도 있다.
일부 경우들에서, 액세스 클라이언트(325)는 사용자 디바이스(305), 파일 저장 웹 서비스, 원격 서버 등에서 폴더 구조들에 액세스하도록 구성된다. 액세스 클라이언트(325)는 또한 지정된 폴더 또는 위치에 저장되는 임의의 파일을 암호화하도록 구성될 수도 있다. 이와 같이, 파일이 폴더에 저장될 때, 액세스 클라이언트(325)는 서버(310)로의 액세스 요청(330)(암호화 요청) 송신들을 트리거할 수도 있다. 따라서, 이러한 기술들을 사용하여, 폴더 레벨 보안 방식들이 시행될 수도 있다.
도 4 는 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 프로세스 플로우(400)의 예를 도시한다. 구체적으로, 프로세스 플로우(400)는 본 명세서에 설명된 기술들에 따라 파일들을 암호화하기 위한 동작들을 예시한다. 프로세스 플로우(400)는 액세스 디바이스들(405) 및 서버(410)를 포함하며, 이들은 도 1 내지 도 3과 관련하여 설명된 대응하는 디바이스들의 예들일 수도 있다.
415에서, 페이로드가 선택된다. 페이로드는 액세스 디바이스(405-a) 상에서 실행되는 액세스 클라이언트의 사용자 인터페이스를 갖는 사용자에 의해 선택될 수도 있다. 420에서, 액세스 디바이스(405-a)의 액세스 클라이언트는 액세스 정보를 획득할 수도 있다. 액세스 정보는 사용자 및 액세스 디바이스(405-a)에 관한 정보를 포함할 수도 있다. 예로서, 정보는 액세스 디바이스 (405-a) 로부터의 하드웨어 컴포넌트 식별자 및 액세스 디바이스 (405-a) 의 인터넷 프로토콜 어드레스를 포함할 수도 있다
425에서, 액세스 디바이스(405-a)는 액세스 요청을 서버(410)에 송신한다. 요청은 페이로드를 암호화하기 위한 암호화 요청이다. 액세스 요청은 액세스 디바이스(405-a)를 사용하여 획득된 액세스 정보를 포함한다. 서버는 액세스 클라이언트에서의 구성에 기초하여 식별될 수도 있다. 예를 들어, 액세스 요청은 액세스 클라이언트에서 구성된 API 엔드포인트를 통해 서버로 송신될 수도 있다.
430에서, 서버(410)는 요청을 인가 또는 검증할 수도 있다. 요청을 인가하는 것은 액세스 디바이스(405-a)의 위치를 체크하는 것 및 사용자가 시스템을 사용하고 요청된 액션을 수행하도록 인가되었는지를 검증하는 것을 포함한다. 위치는 액세스 디바이스(405-a)의 IP 어드레스로부터 액세스 디바이스(405-a)의 지리적 위치를 식별하고 그 지리적 위치를 시스템이 사용되지 않을 수도 있는 국가들의 세트를 식별할 수도 있는 지오펜스들의 세트와 비교함으로써 체크될 수도 있다. 이 예에서, 사용자는 액세스 정보의 데이터로부터 확인된다. 예를 들어, 사용자가 시스템을 사용하고 요청된 액션을 수행하도록 인가되었음을 나타내는 사용자 액세스 토큰이 제공될 수도 있다.
요청을 전송한 컴퓨팅 시스템의 식별은 하드웨어 또는 소프트웨어 컴포넌트들의 식별자들을 수신함으로써 충족될 수도 있으며, 이는 MAC 어드레스, 국제 모바일 장비 아이덴티티(IMEI), 컴퓨팅 시스템 컴포넌트들(마더보드, 프로세서, 메모리, 그래픽 카드 등)에 대한 일련 번호 및 모델 번호, 운영 체제 및 기본 입출력 시스템(BIOS)에 대한 소프트웨어 버전 번호 등을 포함할 수도 있다. 컴퓨팅 시스템 하드웨어 및 소프트웨어 컴포넌트들에 대한 식별자들은, 수신된 식별자들을, 액세스 요청을 하는 사용자에 이전에 수신되고 링크된 컴퓨팅 시스템 컴포넌트 식별자들과 비교함으로써 확인될 수도 있다.
컴퓨팅 시스템의 위치는 지리적 위치에 컴퓨팅 시스템의 IP 어드레스를 맵핑함으로써 체크될 수도 있다. 맵핑된 지리적 위치는 액세스 요청에서 특정된 액세스의 타입에 대한 허용가능한 지리적 위치들을 식별하는 지오펜스와 비교될 수도 있다. 일부 구현들에서, 지오펜스는 액세스가 제공되지 않는 특정 국가들을 식별할 수도 있다. 컴퓨팅 시스템의 위치는 또한 무선 로컬 영역 네트워크(WLAN) 또는 무선 광역 네트워크(WWAN) 포지셔닝(예를 들어, 셀룰러 기반 포지셔닝)에 기초하여 식별될 수도 있다.
액세스 특권은 요청되는 액세스의 타입에 의존할 수도 있다. 암호화 요청에 대해, 시스템의 각각의 사용자에게 적용될 수도 있는 시스템 액세스 특권 정책들은 암호화를 요청하는 사용자가 시스템 액세스 특권 정책들에 기초하여 그렇게 하도록 허용되는 것을 보장하기 위해 체크될 수도 있다. 복호화 요청에 대해, 시스템의 각각의 사용자에 적용되는 시스템 정책들, 시스템의 사용자들의 그룹들에 적용되는 그룹 정책들, 개별 사용자들에 적용되는 사용자 정책들, 및 개별 파일들에 적용되는 파일 정책들은 특정 사용자가 특정 레벨의 권한으로 특정 파일에 액세스할 수도 있는지를 확인하기 위해 체크된다. 특권 레벨들은 전체 액세스, 협업 액세스 및 판독 전용을 포함할 수도 있다. 상이한 타입들의 정책들 각각은 개별 파일 또는 파일 그룹들에 대한 액세스 레벨을 특정할 수도 있다.
액세스 요청을 인가하는 것은 액세스 인가를 결정하기 위해 액세스 정보로부터의 액세스 디바이스 위치 정보를 액세스 디바이스 위치 규칙과 비교하는 것을 포함할 수도 있다. 액세스 디바이스 위치 정보는 액세스 요청을 전송한 컴퓨팅 시스템의 인터넷 프로토콜(IP) 어드레스 및 IP 어드레스가 맵핑되는 지리적 위치를 포함할 수도 있다. 디바이스 위치 규칙은 액세스가 인가될 수도 있는 지오펜스를 정의할 수도 있다. 지오펜스는 액세스가 인가되거나 제한될 수도 있는 지리적 위치들을 식별한다. 예로서, 컴퓨팅 시스템에 대한 지리적 위치가 건물의 지리적 위치의 영역을 정의하는 지오펜스와 비교되고 컴퓨팅 시스템이 지오펜스 내에 있는 것으로 결정될 때, 액세스는 액세스 인가 내에 인가된 것으로 표시될 수도 있다. 비교가 컴퓨팅 시스템이 지오펜스 내에 있지 않음을 나타낼 때, 액세스 인가는 액세스가 인가되지 않음을 나타낼 수도 있다. 액세스 요청을 작성하는 다른 예에서, 서버는 취출된 IP 맵핑이 사용자의 위치를 마스킹하지 않음을 결정하기 위해 액세스 디바이스가 VPN을 이용하고 있는지 여부를 결정할 수도 있다. 따라서, 일부 경우들에서, 사용자 및 액세스 요청은 VPN이 사용되고 있을 때 거부될 수도 있다.
액세스 요청을 인가하는 것은 또한 액세스 인가를 결정하기 위해 액세스 정보로부터의 모바일 디바이스 위치 정보를 모바일 디바이스 위치 규칙과 비교하는 것을 포함할 수도 있다. 모바일 디바이스 위치 정보는 위성 포지셔닝 정보를 포함할 수도 있다. 추가적으로 또는 대안적으로, 모바일 디바이스 위치 정보는 모바일 디바이스와 액세스 디바이스 사이의 연결의 타입을 식별할 수도 있다. 모바일 디바이스는 유선 또는 무선 연결을 통해 액세스 디바이스에 연결될 수도 있다.
모바일 디바이스 위치 정보가 위성 포지셔닝 정보를 포함할 때, 위성 포지셔닝 정보에 대응하는 지리적 위치는 컴퓨팅 시스템의 IP 어드레스에 응답하는 지리적 위치와 비교될 수도 있다. 위성 포지셔닝 정보의 지리적 위치들과 IP 어드레스가 일치하면, 액세스 요청이 인가될 수도 있다. 그렇지 않으면, 액세스 요청이 거부될 수도 있다.
모바일 디바이스 위치 정보가 (연결의 타입을 식별하는) 연결 정보를 포함할 때, 액세스 요청은 모바일 디바이스와 컴퓨팅 시스템 사이의 연결이 확립되고 여전히 존재할 때 인가될 수도 있다. 일 예로서, 직렬 버스 케이블(serial bus cable)이 모바일 디바이스를 컴퓨팅 디바이스에 연결하고 유선 연결을 확립하는 데 사용될 수도 있다. 다른 예로서, 무선 연결은 직접적으로 또는 간접적으로 확립될 수도 있다. 직접 무선 연결에는 개인 영역 무선 네트워킹 연결이 포함된다. 간접 무선은 모바일 디바이스 및 컴퓨팅 시스템 양자 모두가 연결되는 무선 액세스 포인트를 통해 이루어질 수도 있다.
액세스 요청의 양태들을 인가하기 위해 다수의 서버들이 사용될 수도 있다. 다수의 서버가 사용될 때, 서버는 액세스 정보로부터 식별된 사용자를 인가하기 위해 후속 요청을 후속 서버에 전송할 수도 있다. 일부 구현들에서, 하나의 서버는 암호화된 파일에 대한 액세스를 인가할 수도 있는 반면, 상이한 서버는 그 액세스 인가에 기초하여 액세스 패키지를 생성할 수도 있다.
435에서, 서버(410)는 액세스 패키지를 생성할 수도 있다. 인가될 때, 서버(410)는 액세스 디바이스(405-a)로부터의 암호화 요청에 응답하여 암호화기 패키지를 생성한다. 암호화기 패키지는 암호화 함수에 대한 소스 코드를 취출하고, 액세스 디바이스(405-a)에 의해 암호화될 파일에 대한 솔트들 및 키들을 생성 및 저장하고, 솔트들 및 키들을 포함하는 정보를 소스 코드에 주입함으로써 생성될 수도 있다. 액세스 패키지의 생성은 추가적으로 또는 대안적으로 파일의 페이로드의 데이터를 변환하는데 사용되는 데이터 페이로드들 또는 값들의 식별을 포함할 수도 있다.
서버는 소스 코드 파일들을 취출하고 소스 코드 파일들에 정보를 주입함으로써 액세스 패키지를 생성할 수도 있다. 주입된 정보는 데이터를 암호화 또는 복호화하기 위한 솔트들 및 키들을 포함할 수도 있다. 솔트들 및 키들은 개별적으로 저장되고 시스템의 상이한 부분들의 보안의 손상의 영향을 감소시키기 위해 소스 코드로부터 분리된다. 예를 들어, 인가되지 않은 사용자가 암호화된 파일에 대한 키를 갖는 경우, 인가되지 않은 사용자는 암호화된 파일에 액세스하는 데 필요한 다른 키들, 솔트들, 또는 복호화 알고리즘을 여전히 갖지 않을 것이다.
일 예로서, 암호화 요청에 대한 액세스 패키지(예를 들어, 암호화기 패키지)는 암호화 소스 코드를 획득하고, 수정된 암호화 소스 코드를 형성하기 위해 솔트들 및 키들의 세트로 암호화 소스 코드를 수정하고, 수정된 암호화 소스 코드를 갖는 액세스 패키지를 생성함으로써 생성될 수도 있다. 유사하게, 복호화 요청에 대한 액세스 패키지(예를 들어, 복호화 패키지)는 복호화 소스 코드를 획득하고, 수정된 복호화 소스 코드를 형성하기 위해 솔트들 및 키들의 세트로 복호화 소스 코드를 수정하고, 수정된 복호화 소스 코드를 갖는 액세스 패키지를 생성함으로써 생성될 수도 있다.
440에서, 액세스 패키지(암호화기 패키지임)는 서버(410)로부터 액세스 디바이스(405-a)로 전송된다. 액세스 패키지(뿐만 아니라 이전 요청)는 서버(410)와 액세스 디바이스(405-a) 사이의 보안 링크를 통해 전송된다.
445에서, 액세스 디바이스(405-a)는 (액세스 클라이언트를 통해) 액세스 패키지를 컴파일할 수도 있다. 액세스 디바이스(405-a)는 동적 링크 라이브러리(DLL)일 수도 있는 실행 파일을 생성하기 위해 액세스 패키지로부터 소스 코드를 컴파일할 수도 있다. 액세스 패키지는 실행파일이 생성된 후에 액세스 디바이스(405-a)로부터(예를 들어, 디바이스 메모리로부터) 제거될 수도 있다. 액세스 패키지는 다수의 언어로 작성된 소스 코드를 포함할 수도 있고, 액세스 패키지로부터 실행파일을 생성하기 위해 다수의 컴파일러, 어셈블러, 링커 등을 사용할 수도 있다. 일부 경우들에서, 445에서, 액세스 디바이스(405-a)는, 액세스 패키지를 컴파일링하기보다는, 암호화될 파일 또는 페이로드의 데이터를 변환하기 위해 액세스 패키지의 데이터 페이로드 또는 값들을 사용할 수도 있다.
450에서, 액세스 디바이스(405-a)는 (액세스 클라이언트를 통해) 데이터 팩들을 생성할 수도 있다. 데이터 팩들은 암호화 프로세스의 일부로서 생성될 수도 있다. 데이터 팩들은 파일 액세스 정책들, 소유 정보, 액세스 로그들 등을 포함할 수도 있다. 설명된 바와 같이, 데이터 팩들은 액세스 패키지의 소스 코드에 주입된 다음 데이터 팩들에 저장된 여러 개의 정보를 포함할 수도 있다. 일 예로서, 엔티티 서명(또는 소유 정보의 세트)은 소스 코드에 주입되고 실행파일로 컴파일될 수도 있으며, 실행파일은 엔티티 서명을 암호화된 파일의 데이터 팩들에 저장한다. 유사하게, 파일 액세스 정책들은 소스 코드에 주입되고 실행파일에 컴파일될 수도 있으며, 이는 암호화된 파일의 데이터 팩들에 대한 파일 액세스 정책들을 저장한다.
455에서, 액세스 디바이스 (405-a) 는 페이로드를 암호화할 수도 있다. 페이로드는 데이터 팩들을 생성한 암호화 프로세스의 일부로서 암호화될 수도 있다. 암호화된 파일은 다수의 솔트들 및 암호화 키들을 사용하여 암호화된 페이로드 및 데이터 팩들로부터 생성된다.
460에서, 액세스 디바이스(405-a)는 암호화된 파일의 생성 후에 실행가능한 파일을 포함하는 파일들을 제거할 수도 있다.
465에서, 액세스 디바이스(405-a)는 암호화된 파일을 액세스 디바이스(405-b)로 송신할 수도 있다.
도 5 는 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 프로세스 플로우(500)의 예를 도시한다. 구체적으로, 프로세스 플로우(500)는 본 명세서에 설명된 기술들에 따라 파일들을 복호화하기 위한 동작들을 예시한다. 프로세스 플로우(500)는 액세스 디바이스들(505) 및 서버(510)를 포함하며, 이들은 도 1 내지 도 4와 관련하여 설명된 대응하는 디바이스들의 예들일 수도 있다. 예를 들어, 프로세스 플로우(500)는 프로세스 플로우(400)의 연속일 수도 있다.
515에서, 암호화된 파일이 액세스 디바이스(505-b)에서 선택된다. 암호화된 파일은 액세스 디바이스(505-b)의 사용자에 의해 액세스 디바이스(505-b) 상에서 선택될 수도 있다. 암호화된 파일은 도 4에서 설명한 바와 같이 액세스 디바이스에 송신된 파일일 수도 있다.
520에서, 액세스 디바이스는 (예를 들어, 애플리케이션 클라이언트를 통해) 액세스 요청을 서버(510)로 전송한다. 복호화 요청으로도 지칭되는 요청은 암호화된 파일, 액세스 디바이스(505-b)의 사용자, 및 액세스 디바이스(505-b)를 식별하는 액세스 정보를 포함할 수도 있다. 요청은 데이터 팩들에 그리고 서버의 매크로 데이터베이스에 저장된 액세스 권한 정보에 링크된 암호화된 파일의 식별자를 포함할 수도 있다. 암호화된 파일의 식별자는 서버에 의해 유지되는 매크로 데이터베이스에서 암호화된 파일에 관한 정보(사용자 액세스 권한들을 포함함)를 로케이팅시키기 위해 서버에 의해 사용될 수도 있다. 일부 경우들에서, 파일에 관한 정보는 파일과 연관된 메타데이터로부터 식별될 수도 있다. 서버는 (예를 들어, 메타데이터에서) 파일과 연관된 API 엔드포인트를 통해 또는 액세스 클라이언트에서의 구성을 통해 (예를 들어, 액세스 클라이언트는 API 엔드포인트로 미리 구성된다) 식별될 수도 있다.
525에서, 서버(510)는 액세스 요청을 인가 또는 검증할 수도 있다. 서버는 요청에 포함된 정보 및 액세스 정책들과 같은 파일과 연관하여 서버에 의해 유지되는 정보(예를 들어, 파일에 액세스하도록 인가된 사용자 식별자들)에 기초하여 액세스 요청을 인가할 수도 있다.
530에서, 서버(510)는 액세스 요청을 인가하거나 검증하는 것에 기초하여 액세스 패키지를 생성할 수도 있다. 액세스 패키지는 액세스 요청이 인가될 때 복호화기 패키지일 수도 있거나, 요청이 인가되지 않은 종결 또는 디코이 패키지일 수도 있다.
535에서, 서버 (510) 는 액세스 패키지를 액세스 디바이스 (505-b)에 송신할 수도 있다. 액세스 패키지(뿐만 아니라 이전 요청)는 서버(510)와 액세스 디바이스(505-b) 사이의 보안 링크를 통해 송신될 수도 있다.
540에서, 액세스 디바이스(505-b)는 액세스 패키지를 컴파일할 수도 있다. (예를 들어, 액세스 클라이언트를 통해) 액세스 디바이스(505-b)는 DLL일 수도 있는 실행파일을 생성하기 위해 액세스 패키지로부터 소스 코드를 컴파일할 수도 있다. 액세스 패키지는 실행 파일이 생성된 후에 액세스 디바이스(505-b)로부터 제거될 수도 있다. 일부 경우들에서, 540에서, 액세스 디바이스(405-a)는, 액세스 패키지를 컴파일링하기보다는, 복호화될 파일 또는 페이로드의 데이터를 변환하기 위해 액세스 패키지의 데이터 페이로드 또는 값들을 사용할 수도 있다.
545에서, 액세스 디바이스(505-b)는 파일의 데이터 팩들을 업데이트할 수도 있다. 데이터 팩들은 액세스 로그들을 수정함으로써(예를 들어, 액세스 디바이스(505-b)와 연관된 디바이스 정보 및 사용자 정보를 추가함으로써) 복호화 프로세스의 일부로서 액세스 디바이스(505-b)에 의해 업데이트될 수도 있다. 일부 경우들에서, 데이터 팩들을 업데이트하는 것은 액세스 패키지에 포함된 정보에 기초하여 파일 액세스 로그들을 업데이트하는 것을 포함할 수도 있다. 따라서, 데이터 팩들은 액세스의 날짜 및 시간을 식별하는 액세스 정보 및 액세스를 수행한 컴퓨팅 시스템의 하드웨어 식별자로 복호화 및 업데이트될 수도 있다. 데이터 팩들이 업데이트된 후, 업데이트된 데이터 팩들로 암호화된 파일을 재생성하기 위해 암호화 프로세스가 실행될 수도 있다.
550에서, 액세스 디바이스(505-b)는 암호화된 파일의 페이로드를 복호화할 수도 있다. 페이로드는 데이터 팩들을 업데이트한 복호화 프로세스의 일부로서 실행 파일을 사용하여 복호화될 수도 있다. 암호화된 파일은 액세스 패키지의 실행 코드에 따라 다수의 솔트와 암호화 키를 사용하여 원본 페이로드를 복구하기 위해 복호화된다.
565에서, 액세스 디바이스(505-b)는 페이로드에 액세스한다. 페이로드는 데이터 팩들에 포함된 암호화된 파일에 대한 파일 액세스 정책들(예를 들어, 사용자 권한들 및 특권들)에 따라 페이로드로부터 정보를 제시하기 위해 액세스될 수도 있다. 파일 액세스 정책들은 암호화된 파일로부터의 정보의 편집, 저장, 인쇄 및 보기를 제한할 수도 있다.
560 에서, 액세스 디바이스 (505-b)는 실행파일과 같은 파일들을 액세스 디바이스 (505-b)의 메모리로부터 제거할 수도 있다.
일부 예들에서, 520에서의 액세스 요청은 액세스 디바이스 (505-b) 상에서 실행하는 액세스 클라이언트와 연관된 서버로 송신된다. 이러한 경우들에서, 액세스 클라이언트와 연관된 서버는 요청을 검증할 수 없음을(예를 들어, 파일 정보에 대한 액세스를 갖지 않음을) 나타낼 수도 있다. 이러한 경우들에서, 서버는 정확한 서버(예를 들어, 서버(510))에 대한 URL을 표시하는 응답으로 응답할 수도 있다. 다른 경우들에서, 서버는 액세스 패키지를 액세스 디바이스(505-b)에 중계하기 위해 정확한 서버(510)와 통신할 수도 있다.
도 6 은 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 액세스 디바이스 시나리오(600)의 예를 도시한다. 액세스 디바이스 시나리오 (600) 는 도 1 내지 도 5에 대하여 설명된 액세스 디바이스들의 예일 수도 있는 액세스 디바이스 (605) 를 포함한다. 액세스 디바이스(605)는 디스플레이(610)를 포함한다. 디스플레이(610)는 사용자 인터페이스(615)를 제시한다. 사용자 인터페이스는 액세스 디바이스(605) 상에서 실행되는 액세스 클라이언트와 연관된 예시적인 사용자 인터페이스일 수도 있다.
도 6의 예에서, 액세스 클라이언트는 파일에 액세스하고 있다(예를 들어, 파일은 본 명세서에 설명된 기술들에 따라 복호화된다). 파일과 연관된 데이터 팩은 사용자의 모바일 디바이스가 사용자가 페이로드를 보기 위해 액세스 디바이스(605)와의 연결을 가질 것임을 나타내는 모바일 디바이스 근접 액세스 정책인 파일 액세스 정책을 포함한다. 따라서, 액세스 클라이언트는 도 6의 모바일 디바이스 근접 액세스 정책을 시행하고 있다.
625에서, 사용자 인터페이스(615)는 모바일 디바이스(620)와 데이터 연결이 존재할 때 암호화된 파일로부터의 정보(예를 들어, 페이로드)를 디스플레이한다. 모바일 디바이스(620)에 대한 접속이 손실될 때, 정보는 더 이상 액세스 디바이스(605)에 의해 디스플레이되지 않는다. 예로서, 액세스 디바이스(605)는 데스크톱 컴퓨터일 수도 있고, 모바일 디바이스(620)는 스마트폰일 수도 있다. 액세스 디바이스(605) 및 모바일 디바이스(620)는 다수의 디바이스 연결 표준들(범용 직렬 버스(USB), Wi-Fi, 블루투스 등) 중 하나를 사용하여 연결되기에 충분히 가깝다. 그 다음, 모바일 디바이스는 접속이 더 이상 유지될 수 없을 만큼 액세스 디바이스(605)로부터 충분히 멀리 떨어져 있다. 접속이 끊긴 후, 제시된 정보는 액세스 클라이언트가 모바일 디바이스 근접 파일 액세스 정책을 시행하고 있기 때문에 디스플레이로부터 사라질 수도 있다. 추가적으로, 암호화된 파일은 폐쇄될 수도 있고, 암호화된 파일을 복호화하는데 사용되는 실행파일이 액세스 디바이스(605)로부터 제거될 수도 있다. 일부 경우들에서, 연결은 연관된 데이터 패키지에 포함된 정책을 시행하기 위해 주기적으로(예를 들어, 매 초마다) 체크된다. 따라서, 도 6의 기술들은 추가적인 보안 메커니즘들을 포함할 수도 있다.
도 7 은 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 사용자 디바이스(720)의 블록도(700)를 도시한다. 사용자 디바이스(720)는 도 1 내지 도 6을 참조하여 설명된 바와 같은 액세스 디바이스(예를 들어, 사용자 디바이스)의 양태들의 예일 수도 있다. 사용자 디바이스(720) 또는 그것의 다양한 컴포넌트들은 본 명세서에 설명된 바와 같이 암호화된 파일 제어의 다양한 양태들을 수행하기 위한 수단의 예일 수도 있다. 예를 들어, 사용자 디바이스(720)는 액세스 요청 인터페이스(725), 액세스 패키지 인터페이스(730), 실행 컴포넌트(735), 액세스 패키지 제거 컴포넌트(740), 암호화 컴포넌트(745), 복호화 컴포넌트(750), 정책 컴포넌트(755), 검증 정보 컴포넌트(760), 파일 메타데이터 컴포넌트(765), 액세스 로그 컴포넌트(770), 또는 이들의 임의의 조합을 포함할 수도 있다. 이들 컴포넌트들의 각각은 (예컨대, 하나 이상의 버스들을 통해) 서로 직접 또는 간접적으로 통신할 수도 있다.
사용자 디바이스(720)는 본 명세서에 개시된 예들에 따라 액세스 클라이언트에서 데이터 보안을 지원할 수도 있다. 액세스 요청 인터페이스(725)는 액세스될 파일에 대한 액세스 정보 및 파일 정보를 포함하는 액세스 요청을 서버에 송신하는 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다. 액세스 패키지 인터페이스(730)는 액세스 요청을 송신하는 것에 적어도 부분적으로 기초하여 서버로부터, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 수신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다. 실행 컴포넌트(735)는, 액세스 클라이언트에 의해, 하나 이상의 액세스 키들을 사용하여 파일을 액세스하기 위해 실행가능한 코드를 실행하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다. 액세스 패키지 제거 컴포넌트(740)는 액세스 클라이언트와 연관된 메모리로부터 액세스 패키지를 제거하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다.
일부 예들에서, 액세스 요청의 송신을 지원하기 위해, 암호화 컴포넌트(745)는 암호화 요청 및 파일 정보를 서버에 송신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다.
일부 예들에서, 액세스 패키지의 수신을 지원하기 위해, 액세스 패키지 인터페이스(730)는 파일과 연관된 하나 이상의 파일 액세스 정책들의 표시를 포함하는 데이터 팩을 포함하는 액세스 패키지를 수신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있으며, 여기서 데이터 팩은 하나 이상의 액세스 키들을 사용하여 파일과 함께 암호화된다. 일부 예들에서, 하나 이상의 파일 액세스 정책들은 판독 액세스, 기입 액세스, 디스플레이 제약들, 또는 이들의 조합을 포함한다.
일부 예들에서, 액세스 패키지를 수신하는 것을 지원하기 위해, 액세스 패키지 인터페이스(730)는 파일과 연관된 소유 정보의 표시를 포함하는 데이터 팩을 포함하는 액세스 패키지를 수신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있으며, 여기서 데이터 팩은 하나 이상의 액세스 키들을 사용하여 파일과 함께 암호화된다.
일부 예들에서, 암호화 요청을 송신하는 것을 지원하기 위해, 정책 컴포넌트(755)는 파일에 연관된 하나 이상의 파일 액세스 정책들의 표시를 서버에 송신하는 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다.
일부 예들에서, 실행가능 코드의 실행을 지원하기 위해, 암호화 컴포넌트(745)는 암호화된 파일을 생성하기 위해, 실행가능한 코드를 사용하여, 하나 이상의 액세스 키들을 사용하여 페이로드 및 하나 이상의 데이터 팩들을 암호화하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다.
일부 예들에서, 하나 이상의 데이터 팩들의 암호화를 지원하기 위해, 암호화 컴포넌트(745)는 하나 이상의 파일 액세스 정책들, 파일 소유 정보, 파일 액세스 감사 로그, 또는 이들의 조합의 표시를 포함하는 하나 이상의 데이터 팩들을 암호화하기 위한 수단으로서 구성되거나 또는 그렇지 않으면 이를 지원할 수도 있다.
일부 예들에서, 액세스 요청을 송신하는 것을 지원하기 위해, 복호화 컴포넌트 (750) 는 암호해독 요청 및 파일 정보를 서버에 송신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있고, 여기서, 실행가능 코드는 파일을 암호해독하는데 사용되는 코드를 포함한다.
일부 예들에서, 액세스 패키지의 수신을 지원하기 위해, 액세스 패키지 인터페이스(730)는 하나 이상의 업데이트된 파일 액세스 정책들을 포함하는 데이터 팩을 포함하는 액세스 패키지를 수신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다.
일부 예들에서, 검증 정보 컴포넌트(760)는, 액세스 클라이언트에서, 액세스 클라이언트 정보, 컴퓨터 정보, 디바이스 정보, 지리위치 정보, 인증 토큰, 또는 이들의 조합을 포함하는 검증 정보를 식별하기 위한 수단으로서 구성되거나 또는 그렇지 않으면 이를 지원할 수도 있으며, 여기서 암호해독 요청은 검증 정보의 표시를 포함한다.
일부 예들에서, 파일 메타데이터 컴포넌트(765)는 파일과 연관된 메타데이터에 적어도 부분적으로 기초하여 파일이 액세스 클라이언트와 연관된다는 것을 식별하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있고, 파일은 하나 이상의 액세스 키들 중 제 1 키를 사용하여 암호화된 페이로드 및 하나 이상의 액세스 키들 중 적어도 하나의 제 2 키를 사용하여 암호화된 하나 이상의 암호화된 데이터 팩들을 포함하고, 암호해독 요청은 파일이 액세스 클라이언트와 연관되는 것에 적어도 부분적으로 기초하여 서버로 송신된다.
일부 예들에서, 실행가능한 코드의 실행을 지원하기 위해, 복호화 컴포넌트(750)는 하나 이상의 액세스 키들을 사용하여 파일을 암호해독하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다.
일부 예들에서, 복호화 컴포넌트 (750) 는, 액세스 클라이언트에서, 파일과 연관된 하나 이상의 액세스 정책들에 따라 파일의 페이로드를 디스플레이하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다.
일부 예들에서, 하나 이상의 액세스 정책들은 판독 액세스, 기입 액세스, 디스플레이 제약들, 또는 이들의 조합을 포함한다. 일부 예들에서, 하나 이상의 액세스 정책들은 하나 이상의 액세스 키들을 사용하여 파일과 함께 복호화된 데이터 팩에 포함된다.
일부 예들에서, 액세스 로그 컴포넌트 (770) 는 액세스 클라이언트와 연관된 디바이스 정보, 사용자 정보, 지리적 위치 정보, 또는 이들의 조합을 포함하도록 파일 액세스 감사 로그를 업데이트하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다.
일부 예들에서, 복호화 컴포넌트(750)는, 파일을 암호해독하는 것에 적어도 부분적으로 기초하여, 페이로드 및 파일 내의 하나 이상의 데이터 팩들을 식별하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있고, 여기서 하나 이상의 데이터 팩들은 하나 이상의 파일 액세스 정책들, 소유 정보, 파일 액세스 감사 로그, 또는 이들의 조합의 표시를 포함한다.
일부 예들에서, 실행 컴포넌트(735)는, 액세스 클라이언트와 연관된 메모리에서 그리고 실행가능 코드를 실행하는 것에 적어도 부분적으로 기초하여, 파일을 복호화 또는 암호화하기 위해 사용되는 액세스 객체를 인스턴스화하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있고, 여기서 액세스 객체는 파일의 복호화 또는 암호화 후에 액세스 클라이언트와 연관된 메모리로부터 제거된다.
일부 예들에서, 복호화 컴포넌트 (750) 는 암호해독 요청 및 파일 정보를 서버에 송신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있고, 여기서 실행가능 코드는 파일의 콘텐츠를 덮어쓰기하는데 사용되는 코드를 포함한다.
일부 예들에서, 액세스 요청을 송신하는 것을 지원하기 위해, 액세스 요청 인터페이스(725)는 액세스 클라이언트를 실행하는 사용자 디바이스의 지리적 위치, 사용자 디바이스와 연관된 디바이스 정보, 사용자 디바이스와 연관된 네트워크 정보, 액세스 클라이언트와 연관된 인증 토큰, 또는 이들의 조합을 포함하는 액세스 정보를 포함하는 액세스 요청을 송신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다.
도 8 은 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 디바이스(805)를 포함하는 시스템의 다이어그램을 도시한다. 디바이스 (805) 는 데이터 보안 관리기 (820), 통신 모듈 (810), 안테나 (815), 사용자 인터페이스 컴포넌트 (825), 데이터베이스 (애플리케이션 데이터) (830), 메모리 (835), 및 프로세서 (840) 와 같은, 통신들을 송신 및 수신하기 위한 컴포넌트들을 포함하는 양방향 음성 및 데이터 통신들을 위한 컴포넌트들을 포함할 수도 있다. 이들 컴포넌트들은 하나 이상의 버스들 (예컨대, 버스 (845)) 을 통해 전자 통신하거나 그렇지 않으면 (예컨대, 동작가능하게, 통신가능하게, 기능적으로, 전자적으로, 전기적으로) 커플링될 수도 있다. 디바이스(805)는 본 명세서에 설명된 바와 같이 액세스 클라이언트를 실행하는 사용자 디바이스의 예일 수도 있다. 일부 경우들에서, 액세스 클라이언트는 데이터 보안 관리기(820)에 대응할 수도 있다.
통신 모듈(810)은 안테나(815)를 통해 디바이스(805)에 대한 입력 및 출력 신호들을 관리할 수도 있다. 통신 모듈(810)은 도 2에 도시되고 설명된 사용자 디바이스(106)의 통신 모듈(810)의 예를 포함할 수도 있다. 이와 관련하여, 통신 모듈(810)은 도 2에 도시된 바와 같이 서버(110)와의 통신을 관리할 수도 있다. 통신 모듈(810)은 또한 디바이스(805)에 통합되지 않은 주변장치들을 관리할 수도 있다. 일부 경우들에서, 통신 모듈(810)은 외부 주변장치와의 물리적 연결 또는 포트를 나타낼 수도 있다. 일부 경우들에서, 통신 모듈(810)은 iOS®, ANDROID®, MS-DOS®, MS-WINDOWS®, OS/2®, UNIX®, LINUX® 또는 다른 알려진 운영 체제와 같은 운영 체제를 이용할 수도 있다. 다른 경우들에서, 통신 모듈(810)은 모뎀, 키보드, 마우스, 터치스크린, 또는 유사한 디바이스를 표현하거나 그와 상호작용할 수도 있다. 일부 경우들에서, 통신 모듈(810)은 프로세서(840)의 일부로서 구현될 수도 있다. 일부 예들에서, 사용자는 통신 모듈(810), 사용자 인터페이스 컴포넌트(825)를 통해, 또는 통신 모듈(810)에 의해 제어되는 하드웨어 컴포넌트들을 통해 디바이스(805)와 상호작용할 수도 있다.
일부 경우들에서, 디바이스(805)는 단일 안테나(815)를 포함할 수도 있다. 하지만, 일부 다른 경우들에 있어서, 디바이스 (805) 는, 다중의 무선 송신물들을 동시에 송신 또는 수신 가능할 수도 있는 1 초과의 안테나 (815) 를 가질 수도 있다. 통신 모듈(810)은 본 명세서에 설명된 바와 같이 하나 이상의 안테나들(815), 유선 또는 무선 링크들을 통해 양방향으로 통신할 수도 있다. 예를 들어, 통신 모듈(810)은 무선 트랜시버를 나타낼 수도 있고, 다른 무선 트랜시버와 양방향으로 통신할 수도 있다. 통신 모듈 (810) 은 또한, 패킷들을 변조하고, 변조된 패킷들을 송신을 위해 하나 이상의 안테나들 (815)에 제공하고, 하나 이상의 안테나들 (815) 로부터 수신된 패킷들을 복조하기 위한 모뎀을 포함할 수도 있다.
사용자 인터페이스 컴포넌트(825)는 데이터베이스(830)에서의 데이터 저장 및 프로세싱을 관리할 수도 있다. 일부 경우들에서, 사용자는 사용자 인터페이스 컴포넌트(825)와 상호작용할 수도 있다. 다른 경우들에서, 사용자 인터페이스 컴포넌트(825)는 사용자 상호작용 없이 자동으로 동작할 수도 있다. 데이터베이스(830)는 단일 데이터베이스, 분산 데이터베이스, 다수의 분산 데이터베이스, 데이터 저장소, 데이터 레이크, 또는 긴급 백업 데이터베이스의 예일 수도 있다.
메모리 (835) 는 랜덤 액세스 메모리 (RAM) 및 판독 전용 메모리 (ROM) 를 포함할 수도 있다. 메모리 (835) 는, 실행될 때, 프로세서 (840) 로 하여금, 본 명세서에서 설명된 다양한 기능들을 수행하게 하는 명령들을 포함하는 컴퓨터 판독가능, 컴퓨터 실행가능 소프트웨어를 저장할 수도 있다. 일부 경우들에서, 메모리 (835) 는 다른 것들 중에서도, 주변 컴포넌트들 또는 디바이스들과의 상호작용과 같은 기본 하드웨어 또는 소프트웨어 동작을 제어할 수도 있는 BIOS 를 포함할 수도 있다.
프로세서 (840) 는 지능형 하드웨어 디바이스 (예를 들어, 범용 프로세서, DSP, CPU, 마이크로컨트롤러, ASIC, FPGA, 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직 컴포넌트, 이산 하드웨어 컴포넌트, 또는 이들의 임의의 조합) 를 포함할 수도 있다. 일부 경우들에 있어서, 프로세서 (840) 는 메모리 제어기를 사용하여 메모리 어레이를 동작시키도록 구성될 수도 있다. 다른 경우들에 있어서, 메모리 제어기는 프로세서 (840) 에 통합될 수도 있다. 프로세서 (840) 는 다양한 기능들 (예를 들어, 슬립 스테이징 알고리즘들을 위한 방법 및 시스템을 지원하는 기능들 또는 태스크들) 을 수행하기 위해 메모리 (835)에 저장된 컴퓨터 판독가능 명령들을 실행하도록 구성될 수도 있다.
데이터 보안 관리기(820)는 본 명세서에 개시된 예들에 따라 액세스 클라이언트에서 데이터 보안을 지원할 수도 있다. 예를 들어, 데이터 보안 관리기(820)는 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 서버에 송신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다. 데이터 보안 관리기(820)는, 액세스 요청을 송신하는 것에 적어도 부분적으로 기초하여, 실행가능한 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 서버로부터 수신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다. 데이터 보안 관리기(820)는, 액세스 클라이언트에 의해, 하나 이상의 액세스 키들을 사용하여 파일을 액세스하기 위해 실행가능 코드를 실행하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다. 데이터 보안 관리기(820)는 액세스 클라이언트와 연관된 메모리로부터 액세스 패키지를 제거하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다.
데이터 보안 관리기(820)는 애플리케이션(예를 들어, "앱(app)"), 프로그램, 소프트웨어, 또는 서버, 다른 사용자 디바이스들 등과의 통신을 통해 본 명세서에 설명된 데이터 보안 기술들을 용이하게 하도록 구성된 다른 컴포넌트를 포함할 수도 있다.
도 9 는 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 서버(920)의 블록도(900)를 도시한다. 서버 (920) 는 도 1 내지 도 6 을 참조하여 설명된 바와 같은 서버의 양태들의 예일 수도 있다. 서버(920) 또는 그것의 다양한 컴포넌트들은 본 명세서에 설명된 바와 같이 암호화된 파일 제어의 다양한 양태들을 수행하기 위한 수단의 예일 수도 있다. 예를 들어, 서버(920)는 액세스 요청 인터페이스(925), 요청 검증 컴포넌트(930), 액세스 패키지 컴포넌트(935), 액세스 패키지 인터페이스(940), 암호화 컴포넌트(945), 복호화 컴포넌트(950), 키 식별 컴포넌트(955), 파일 정책 컴포넌트(960), 액션 컴포넌트(965), 통지 컴포넌트(970), 또는 이들의 임의의 조합을 포함할 수도 있다. 이들 컴포넌트들의 각각은 (예컨대, 하나 이상의 버스들을 통해) 서로 직접 또는 간접적으로 통신할 수도 있다.
서버(920)는 본 명세서에 개시된 예들에 따라 서버에서 데이터 보안을 지원할 수도 있다. 액세스 요청 인터페이스(925)는 액세스 클라이언트로부터, 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 수신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다. 요청 검증 컴포넌트(930)는 액세스 정보를 사용하여 액세스 요청을 검증하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다. 액세스 패키지 컴포넌트(935)는, 액세스 요청을 검증하는 것에 적어도 부분적으로 기초하여, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 생성하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다. 액세스 패키지 인터페이스(940)는 액세스 클라이언트로 액세스 패키지를 송신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있으며, 여기서 액세스 패키지는 액세스 클라이언트에 의해 파일을 액세스하는데 사용되는 실행 파일에 대해 호환가능하다.
일부 예들에서, 액세스 요청을 수신하는 것을 지원하기 위해, 암호화 컴포넌트(945)는 액세스 클라이언트로부터 파일을 암호화하기 위한 암호화 요청을 수신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있으며, 여기서 액세스 패키지는 하나 이상의 액세스 키들을 사용하여 파일을 암호화하기 위한 실행가능 코드를 포함한다.
일부 예들에서, 액세스 패키지의 송신을 지원하기 위해, 액세스 패키지 인터페이스(940)는 파일과 연관된 하나 이상의 파일 액세스 정책들의 표시를 포함하는 데이터 팩을 포함하는 액세스 패키지를 액세스 클라이언트에 송신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있으며, 여기서 실행가능 코드는 하나 이상의 액세스 키들을 사용하여 파일로 데이터 팩을 암호화하도록 구성된다. 일부 예들에서, 하나 이상의 파일 액세스 정책들은 판독 액세스, 기입 액세스, 디스플레이 제약들, 또는 이들의 조합을 포함한다.
일부 예들에서, 액세스 패키지의 송신을 지원하기 위해, 액세스 패키지 컴포넌트(935)는, 파일과 연관된 감사 로그(audit log)를 생성하고 하나 이상의 액세스 키들을 사용하여 파일과 함께 감사 로그를 암호화하도록 구성되는 실행가능 코드를 포함하는 데이터 팩을 포함하는 액세스 패키지를 액세스 클라이언트에 송신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다.
일부 예들에서, 액세스 패키지의 송신을 지원하기 위해, 액세스 패키지 컴포넌트(935)는, 파일과 연관된 소유 정보의 표시를 포함하는 데이터 팩을 포함하는 액세스 패키지를 액세스 클라이언트에 송신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있고, 여기서 실행가능 코드는 하나 이상의 액세스 키들을 사용하여 파일과 함께 데이터 팩을 암호화하도록 구성된다.
일부 예들에서, 액세스 요청을 수신하는 것을 지원하기 위해, 파일 정책 컴포넌트 (960) 는 액세스 클라이언트로부터, 파일과 연관된 하나 이상의 파일 액세스 정책들의 표시를 수신하는 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다. 일부 예들에서, 액세스 요청을 수신하는 것을 지원하기 위해, 파일 정책 컴포넌트 (960) 는 파일에 대한 파일 식별자와 연관하여, 하나 이상의 파일 액세스 정책들을 저장하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다.
일부 예들에서, 액세스 요청을 수신하는 것을 지원하기 위해, 파일 정책 컴포넌트 (960) 는 파일을 액세스하도록 인가된 하나 이상의 사용자들의 표시를 액세스 클라이언트로부터 수신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다. 일부 예들에서, 액세스 요청을 수신하는 것을 지원하기 위해, 파일 정책 컴포넌트 (960) 는 파일에 액세스하도록 인가된 하나 이상의 사용자들의 표시를 파일에 대한 파일 식별자와 연관하여 저장하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다.
일부 예들에서, 액세스 요청을 수신하는 것을 지원하기 위해, 복호화 컴포넌트(950)는 액세스 클라이언트로부터 파일을 복호화하기 위한 복호화 요청을 수신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있으며, 여기서 액세스 패키지는 하나 이상의 액세스 키들을 사용하여 파일을 복호화하기 위한 실행가능 코드를 포함한다.
일부 예들에서, 파일 정책 컴포넌트(960)는, 파일에 대한 하나 이상의 파일 액세스 정책들을 포함하는 데이터 팩이 진부하다고 결정하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다. 일부 예들에서, 파일 정책 컴포넌트(960)는, 데이터 팩이 진부하다고 결정하는 것에 적어도 부분적으로 기초하여, 파일에 대한 하나 이상의 업데이트된 파일 액세스 정책들을 포함하는 업데이트된 데이터 팩을 송신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다.
일부 예들에서, 요청 검증 컴포넌트(930)는 서버에서, 복호화 요청에서 수신된 액세스 정보에 포함된 사용자 정보를 파일과 연관된 액세스 레코드와 비교하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다. 일부 예들에서, 요청 검증 컴포넌트 (930) 는 비교 결과에 적어도 부분적으로 기초하여 액세스 클라이언트와 연관된 사용자가 파일에 액세스하도록 허가된 것을 결정하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있고, 여기서 액세스 패키지는 사용자가 파일에 액세스하도록 허가되었다고 결정하는 것에 적어도 부분적으로 기초하여 액세스 클라이언트로 송신된다.
일부 예들에서, 요청 검증 컴포넌트(930)는 복호화 요청에서 수신된 액세스 정보에 적어도 부분적으로 기초하여 액세스 클라이언트가 파일을 복호화하도록 허가되지 않은 것을 결정하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다. 일부 예들에서, 액션 컴포넌트 (965) 는 액세스 클라이언트가 파일을 해독하도록 허가되지 않았다는 결정에 적어도 부분적으로 기초하여 서버에서 액션을 트리거하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다.
일부 예들에서, 액션을 트리거하는 것을 지원하기 위해, 통지 컴포넌트(970)는 액세스 클라이언트가 인가되지 않은 액세스 요청을 송신했음을 나타내는 경고 또는 메시지를 생성하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다.
일부 예들에서, 액션의 트리거링을 지원하기 위해, 액세스 패키지 컴포넌트(935)는 파일의 콘텐츠를 덮어쓰기하기 위한 실행가능 코드를 포함하는 액세스 패키지를 송신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다.
일부 예들에서, 키 식별 컴포넌트 (955) 는 키 저장 서비스에, 그리고 액세스 요청을 수신하는 것에 적어도 부분적으로 기초하여, 파일과 연관된 파일 식별자 및 키 스트링에 대한 요청을 송신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다. 일부 예들에서, 키 식별 컴포넌트(955)는, 키 저장 서비스로부터, 파일 식별자와 연관된 키 스트링을 수신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다. 일부 예들에서, 키 식별 컴포넌트(955)는 키 스트링을 사용하여 하나 이상의 액세스 키들을 생성하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다.
일부 예들에서, 액세스 요청을 검증하는 것을 지원하기 위해, 요청 검증 컴포넌트(930)는 액세스 클라이언트를 실행하는 사용자 디바이스의 지리적 위치, 사용자 디바이스와 연관된 디바이스 정보, 사용자 디바이스와 연관된 네트워크 정보, 액세스 클라이언트와 연관된 인증 토큰, 이들의 조합을 포함하는 액세스 정보를 검증하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다.
도 10 은 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 디바이스(1005)를 포함하는 시스템(1000)의 다이어그램을 도시한다. 디바이스(1005)는 데이터 보안 컴포넌트(1020), I/O 제어기(1010), 데이터베이스 제어기(1015), 메모리(1025), 프로세서(1030) 및 데이터베이스(1035)와 같은, 통신물들을 송신 및 수신하기 위한 컴포넌트들을 포함하는 양방향 음성 및 데이터 통신을 위한 컴포넌트들을 포함할 수도 있다. 이들 컴포넌트들은 하나 이상의 버스들 (예컨대, 버스 (1040)) 을 통해 전자 통신하거나 그렇지 않으면 (예컨대, 동작가능하게, 통신가능하게, 기능적으로, 전자적으로, 전기적으로) 커플링될 수도 있다.
I/O 제어기(1010)는 디바이스(1005)에 대한 입력 신호들(1045) 및 출력 신호들(1050)을 관리할 수도 있다. I/O 제어기 (1010) 는 또한 디바이스 (1005) 에 통합되지 않은 주변장치들을 관리할 수도 있다. 일부 경우들에서, I/O 제어기 (1010) 는 외부 주변장치에 대한 물리적 연결 또는 포트를 나타낼 수도 있다. 일부 경우들에서, I/O 제어기 (1010) 는 iOS®, ANDROID®, MS-DOS®, MS-WINDOWS®, OS/2®, UNIX®, LINUX® 또는 다른 알려진 운영 체제와 같은 운영 체제를 이용할 수도 있다. 다른 경우들에서, I / O 제어기 (1010)는 모뎀, 키보드, 마우스, 터치스크린 또는 유사한 디바이스를 나타내거나 그것들과 상호작용할 수도 있다. 일부 경우들에서, I/O 제어기(1010)는 프로세서(1030)의 일부로서 구현될 수도 있다. 일부 예들에서, 사용자는 I/O 제어기 (1010) 를 통해 또는 I/O 제어기 (1010) 에 의해 제어되는 하드웨어 컴포넌트들을 통해 디바이스 (1005) 와 상호작용할 수도 있다.
데이터베이스 제어기(1015)는 데이터베이스(1035)에서의 데이터 저장 및 프로세싱을 관리할 수도 있다. 일부 경우들에서, 사용자는 데이터베이스 제어기(1015)와 상호작용할 수도 있다. 다른 경우들에서, 데이터베이스 제어기(1015)는 사용자 상호작용 없이 자동으로 동작할 수도 있다. 데이터베이스(1035)는 단일 데이터베이스, 분산 데이터베이스, 다수의 분산 데이터베이스, 데이터 저장소, 데이터 레이크, 또는 긴급 백업 데이터베이스의 예일 수도 있다.
메모리 (1025) 는 RAM 및 ROM 을 포함할 수도 있다. 메모리 (1025) 는, 실행될 때, 프로세서 (1030) 로 하여금, 본 명세서에서 설명된 다양한 기능들을 수행하게 하는 명령들을 포함하는 컴퓨터 판독가능, 컴퓨터 실행가능 소프트웨어를 저장할 수도 있다. 일부 경우들에서, 메모리 (1025) 는 다른 것들 중에서도, 주변 컴포넌트들 또는 디바이스들과의 상호작용과 같은 기본 하드웨어 또는 소프트웨어 동작을 제어할 수도 있는 BIOS 를 포함할 수도 있다.
프로세서 (1030) 는 지능형 하드웨어 디바이스 (예를 들어, 범용 프로세서, DSP, CPU, 마이크로컨트롤러, ASIC, FPGA, 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직 컴포넌트, 이산 하드웨어 컴포넌트, 또는 이들의 임의의 조합) 를 포함할 수도 있다. 일부 경우들에 있어서, 프로세서 (1030) 는 메모리 제어기를 사용하여 메모리 어레이를 동작시키도록 구성될 수도 있다. 다른 경우들에 있어서, 메모리 제어기는 프로세서 (1030) 에 통합될 수도 있다. 프로세서(1030)는 다양한 기능들(예를 들어, 암호화된 파일 제어를 지원하는 기능들 또는 태스크들)을 수행하기 위해 메모리(1025)에 저장된 컴퓨터 판독가능 명령들을 실행하도록 구성될 수도 있다.
데이터 보안 컴포넌트(1020)는 본 명세서에 개시된 예들에 따라 서버에서 데이터 보안을 지원할 수도 있다. 예를 들어, 데이터 보안 컴포넌트(1020)는, 액세스 클라이언트로부터, 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 수신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다. 데이터 보안 컴포넌트(1020)는 액세스 정보를 사용하여 액세스 요청을 검증하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다. 데이터 보안 컴포넌트(1020)는, 액세스 요청을 검증하는 것에 적어도 부분적으로 기초하여, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 생성하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있다. 데이터 보안 컴포넌트 (1020) 는 액세스 클라이언트로 액세스 패키지를 송신하기 위한 수단으로서 구성되거나 그렇지 않으면 이를 지원할 수도 있고, 여기서, 액세스 패키지는 액세스 클라이언트에 의해, 파일에 액세스하는데 사용되는 실행파일에 대해 호환가능하다.
도 11 은 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 방법 (1100) 을 예시하는 플로우차트를 도시한다. 방법(1100)의 동작들은 본 명세서에 설명된 바와 같이 사용자 디바이스 또는 그 컴포넌트들에 의해 구현될 수도 있다. 예를 들어, 방법(1100)의 동작들은 도 1 내지 도 8을 참조하여 설명된 바와 같이 사용자 디바이스에 의해 수행될 수도 있다. 일부 예들에서, 사용자 디바이스는 설명된 기능들을 수행하기 위해 사용자 디바이스의 기능적 엘리먼트들을 제어하기 위한 명령들의 세트를 실행할 수도 있다. 추가적으로 또는 대안적으로, 사용자 디바이스는 특수 목적 하드웨어를 사용하여 설명된 기능들의 양태들을 수행할 수도 있다.
1105에서, 방법은 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 서버에 송신하는 단계를 포함할 수도 있다. 1105의 동작들은 본 명세서에 개시된 예들에 따라 수행될 수도 있다. 일부 예들에서, 1105의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 요청 인터페이스(725)에 의해 수행될 수도 있다.
1110에서, 방법은 액세스 요청을 송신하는 것에 적어도 부분적으로 기초하여 서버로부터, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 수신하는 단계를 포함할 수도 있다. 1110 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1110의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 패키지 인터페이스(730)에 의해 수행될 수도 있다. 일부 예들에서, 액세스 패키지는 실행가능 코드보다는 데이터 또는 값들과 같은 하나 이상의 액세스 키들 및/또는 액세스 정보를 포함한다.
1115에서, 방법은 액세스 클라이언트에 의해, 하나 이상의 액세스 키들을 사용하여 파일을 액세스하기 위해 실행가능 코드를 실행하는 단계를 포함할 수도 있다. 1115 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1115의 동작들의 양태들은 도 7을 참조하여 설명된 실행 컴포넌트(735)에 의해 수행될 수도 있다. 액세스 패키지가 하나 이상의 액세스 키들 및/또는 액세스 정보를 포함하는 예들에서, 액세스 디바이스는 데이터를 변환함으로써 페이로드의 데이터에 액세스하기 위해 액세스 정보를 사용할 수도 있으며, 이는 데이터를 암호화 또는 복호화하는 것에 대응할 수도 있다. 일부 경우들에서, 이 프로세스는 액세스 클라이언트에 의해 액세스가능한 명령들을 실행하는 것을 포함할 수도 있다. 이러한 명령들은 액세스 패키지에 포함될 수도 있거나 포함되지 않을 수도 있다.
1120에서, 방법은 액세스 클라이언트와 연관된 메모리로부터 액세스 패키지를 제거하는 단계를 포함할 수도 있다. 1120 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1120의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 패키지 제거 컴포넌트(740)에 의해 수행될 수도 있다.
도 12 는 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 방법 (1200) 을 예시하는 플로우차트를 도시한다. 방법(1200)의 동작들은 본 명세서에 설명된 바와 같이 사용자 디바이스 또는 그 컴포넌트들에 의해 구현될 수도 있다. 예를 들어, 방법(1200)의 동작들은 도 1 내지 도 8을 참조하여 설명된 바와 같이 사용자 디바이스에 의해 수행될 수도 있다. 일부 예들에서, 사용자 디바이스는 설명된 기능들을 수행하기 위해 사용자 디바이스의 기능적 엘리먼트들을 제어하기 위한 명령들의 세트를 실행할 수도 있다. 추가적으로 또는 대안적으로, 사용자 디바이스는 특수 목적 하드웨어를 사용하여 설명된 기능들의 양태들을 수행할 수도 있다.
1205에서, 방법은 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 서버에 송신하는 단계를 포함할 수도 있다. 1205 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1205의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 요청 인터페이스(725)에 의해 수행될 수도 있다.
1210에서, 방법은 암호화 요청 및 파일 정보를 서버에 송신하는 단계를 포함할 수도 있다. 1210 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1210의 동작들의 양태들은 도 7을 참조하여 설명된 암호화 컴포넌트(745)에 의해 수행될 수도 있다.
1215에서, 방법은 액세스 요청을 송신하는 것에 적어도 부분적으로 기초하여 서버로부터, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 수신하는 단계를 포함할 수도 있다. 1215 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1215의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 패키지 인터페이스(730)에 의해 수행될 수도 있다.
1220에서, 상기 방법은 파일과 연관된 소유 정보의 표시를 포함하는 데이터 팩을 포함하는 액세스 패키지를 수신하는 단계를 포함할 수도 있고, 여기서 데이터 팩은 하나 이상의 액세스 키들을 사용하여 파일과 함께 암호화된다. 1220 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1220의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 패키지 인터페이스(730)에 의해 수행될 수도 있다.
1225에서, 방법은 액세스 클라이언트에 의해, 하나 이상의 액세스 키들을 사용하여 파일을 액세스하기 위해 실행가능 코드를 실행하는 단계를 포함할 수도 있다. 1225 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1225의 동작들의 양태들은 도 7을 참조하여 설명된 실행 컴포넌트(735)에 의해 수행될 수도 있다.
1230에서, 방법은 액세스 클라이언트와 연관된 메모리로부터 액세스 패키지를 제거하는 단계를 포함할 수도 있다. 1230 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1230의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 패키지 제거 컴포넌트(740)에 의해 수행될 수도 있다.
도 13 는 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 방법 (1300) 을 예시하는 플로우차트를 도시한다. 방법(1300)의 동작들은 본 명세서에 설명된 바와 같이 사용자 디바이스 또는 그 컴포넌트들에 의해 구현될 수도 있다. 예를 들어, 방법(1300)의 동작들은 도 1 내지 도 8을 참조하여 설명된 바와 같이 사용자 디바이스에 의해 수행될 수도 있다. 일부 예들에서, 사용자 디바이스는 설명된 기능들을 수행하기 위해 사용자 디바이스의 기능적 엘리먼트들을 제어하기 위한 명령들의 세트를 실행할 수도 있다. 추가적으로 또는 대안적으로, 사용자 디바이스는 특수 목적 하드웨어를 사용하여 설명된 기능들의 양태들을 수행할 수도 있다.
1305에서, 방법은 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 서버에 송신하는 단계를 포함할 수도 있다. 1305 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1305의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 요청 인터페이스(725)에 의해 수행될 수도 있다.
1310에서, 방법은 암호화 요청 및 파일 정보를 서버에 송신하는 단계를 포함할 수도 있다. 1310 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1310의 동작들의 양태들은 도 7을 참조하여 설명된 암호화 컴포넌트(745)에 의해 수행될 수도 있다.
1315에서, 방법은 액세스 요청을 송신하는 것에 적어도 부분적으로 기초하여 서버로부터, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 수신하는 단계를 포함할 수도 있다. 1315 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1315의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 패키지 인터페이스(730)에 의해 수행될 수도 있다.
1320에서, 방법은 액세스 클라이언트에 의해, 하나 이상의 액세스 키들을 사용하여 파일을 액세스하기 위해 실행가능 코드를 실행하는 단계를 포함할 수도 있다. 1320 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1320의 동작들의 양태들은 도 7을 참조하여 설명된 실행 컴포넌트(735)에 의해 수행될 수도 있다.
1325에서, 방법은 암호화된 파일을 생성하기 위해 실행가능 코드를 사용하여, 페이로드 및 하나 이상의 데이터 팩들을 하나 이상의 액세스 키들을 사용하여 암호화하는 단계를 포함할 수도 있다. 1325 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1325의 동작들의 양태들은 도 7을 참조하여 설명된 암호화 컴포넌트(745)에 의해 수행될 수도 있다.
1330에서, 방법은 하나 이상의 파일 액세스 정책들, 파일 소유 정보, 파일 액세스 감사 로그, 또는 이들의 조합의 표시를 포함하는 하나 이상의 데이터 팩들을 암호화하는 단계를 포함할 수도 있다. 1330 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1330의 동작들의 양태들은 도 7을 참조하여 설명된 암호화 컴포넌트(745)에 의해 수행될 수도 있다.
1335에서, 방법은 액세스 클라이언트와 연관된 메모리로부터 액세스 패키지를 제거하는 단계를 포함할 수도 있다. 1335 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1335의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 패키지 제거 컴포넌트(740)에 의해 수행될 수도 있다.
도 14 는 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 방법 (1400) 을 예시하는 플로우차트를 도시한다. 방법(1400)의 동작들은 본 명세서에 설명된 바와 같이 사용자 디바이스 또는 그 컴포넌트들에 의해 구현될 수도 있다. 예를 들어, 방법(1400)의 동작들은 도 1 내지 도 8 을 참조하여 설명된 바와 같이 사용자 디바이스에 의해 수행될 수도 있다. 일부 예들에서, 사용자 디바이스는 설명된 기능들을 수행하기 위해 사용자 디바이스의 기능적 엘리먼트들을 제어하기 위한 명령들의 세트를 실행할 수도 있다. 추가적으로 또는 대안적으로, 사용자 디바이스는 특수 목적 하드웨어를 사용하여 설명된 기능들의 양태들을 수행할 수도 있다.
1405에서, 방법은 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 서버에 송신하는 단계를 포함할 수도 있다. 1405 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1405의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 요청 인터페이스(725)에 의해 수행될 수도 있다.
1410에서, 방법은 액세스 요청을 송신하는 것에 적어도 부분적으로 기초하여 서버로부터, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 수신하는 단계를 포함할 수도 있다. 1410 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1410의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 패키지 인터페이스(730)에 의해 수행될 수도 있다.
1415에서, 방법은 액세스 클라이언트에 의해, 하나 이상의 액세스 키들을 사용하여 파일을 액세스하기 위해 실행가능 코드를 실행하는 단계를 포함할 수도 있다. 1415 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1415의 동작들의 양태들은 도 7을 참조하여 설명된 실행 컴포넌트(735)에 의해 수행될 수도 있다.
1420에서, 방법은 액세스 클라이언트와 연관된 메모리로부터 액세스 패키지를 제거하는 단계를 포함할 수도 있다. 1420 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1420의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 패키지 제거 컴포넌트(740)에 의해 수행될 수도 있다.
1425에서, 상기 방법은 복호화 요청 및 파일 정보를 서버에 송신하는 단계를 포함할 수도 있고, 상기 실행가능 코드는 파일을 해독하는데 사용되는 코드를 포함한다. 1425 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1425의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 복호화 컴포넌트(750)에 의해 수행될 수도 있다.
도 15 는 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 방법 (1500) 을 예시하는 플로우차트를 도시한다. 방법(1500)의 동작들은 본 명세서에 설명된 바와 같이 사용자 디바이스 또는 그 컴포넌트들에 의해 구현될 수도 있다. 예를 들어, 방법(1500)의 동작들은 도 1 내지 도 8 을 참조하여 설명된 바와 같이 사용자 디바이스에 의해 수행될 수도 있다. 일부 예들에서, 사용자 디바이스는 설명된 기능들을 수행하기 위해 사용자 디바이스의 기능적 엘리먼트들을 제어하기 위한 명령들의 세트를 실행할 수도 있다. 추가적으로 또는 대안적으로, 사용자 디바이스는 특수 목적 하드웨어를 사용하여 설명된 기능들의 양태들을 수행할 수도 있다.
1505에서, 상기 방법은 액세스 클라이언트에서, 액세스 클라이언트 정보, 컴퓨터 정보, 디바이스 정보, 지리위치 정보, 인증 토큰 또는 이들의 조합을 포함하는 검증 정보(validation information)를 식별하는 단계를 포함할 수도 있으며, 여기서 복호화 요청은 검증 정보의 표시를 포함한다. 1505 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1505의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 검증 정보 컴포넌트(760)에 의해 수행될 수도 있다.
1510에서, 방법은 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 서버에 송신하는 단계를 포함할 수도 있다. 1510 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1510의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 요청 인터페이스(725)에 의해 수행될 수도 있다.
1515에서, 방법은 액세스 요청을 송신하는 것에 적어도 부분적으로 기초하여 서버로부터, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 수신하는 단계를 포함할 수도 있다. 1515 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1515의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 패키지 인터페이스(730)에 의해 수행될 수도 있다.
1520에서, 방법은 하나 이상의 업데이트된 파일 액세스 정책을 포함하는 데이터 팩을 포함하는 액세스 패키지를 수신하는 단계를 포함할 수도 있다. 1520 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1520의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 패키지 인터페이스(730)에 의해 수행될 수도 있다.
1525에서, 방법은 액세스 클라이언트에 의해, 하나 이상의 액세스 키들을 사용하여 파일을 액세스하기 위해 실행가능 코드를 실행하는 단계를 포함할 수도 있다. 1525 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1525의 동작들의 양태들은 도 7을 참조하여 설명된 실행 컴포넌트(735)에 의해 수행될 수도 있다.
1530에서, 방법은 액세스 클라이언트와 연관된 메모리로부터 액세스 패키지를 제거하는 단계를 포함할 수도 있다. 1530 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1530의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 패키지 제거 컴포넌트(740)에 의해 수행될 수도 있다.
1535에서, 상기 방법은 복호화 요청 및 파일 정보를 서버에 송신하는 단계를 포함할 수도 있고, 상기 실행가능 코드는 파일을 해독하는데 사용되는 코드를 포함한다. 1535 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1535의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 복호화 컴포넌트(750)에 의해 수행될 수도 있다.
도 16 은 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 방법 (1600) 을 예시하는 플로우차트를 도시한다. 방법(1600)의 동작들은 본 명세서에 설명된 바와 같이 사용자 디바이스 또는 그 컴포넌트들에 의해 구현될 수도 있다. 예를 들어, 방법(1600)의 동작들은 도 1 내지 도 8 을 참조하여 설명된 바와 같이 사용자 디바이스에 의해 수행될 수도 있다. 일부 예들에서, 사용자 디바이스는 설명된 기능들을 수행하기 위해 사용자 디바이스의 기능적 엘리먼트들을 제어하기 위한 명령들의 세트를 실행할 수도 있다. 추가적으로 또는 대안적으로, 사용자 디바이스는 특수 목적 하드웨어를 사용하여 설명된 기능들의 양태들을 수행할 수도 있다.
1605에서, 방법은 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 서버에 송신하는 단계를 포함할 수도 있다. 1605 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1605의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 요청 인터페이스(725)에 의해 수행될 수도 있다.
1610에서, 방법은 액세스 요청을 송신하는 것에 적어도 부분적으로 기초하여 서버로부터, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 수신하는 단계를 포함할 수도 있다. 1610 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1610의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 패키지 인터페이스(730)에 의해 수행될 수도 있다.
1615에서, 방법은 액세스 클라이언트에 의해, 하나 이상의 액세스 키들을 사용하여 파일을 액세스하기 위해 실행가능 코드를 실행하는 단계를 포함할 수도 있다. 1615 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1615의 동작들의 양태들은 도 7을 참조하여 설명된 실행 컴포넌트(735)에 의해 수행될 수도 있다.
1620에서, 방법은 하나 이상의 액세스 키들을 사용하여 파일을 복호화하는 단계를 포함할 수도 있다. 1620 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1620의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 복호화 컴포넌트(750)에 의해 수행될 수도 있다.
1625에서, 방법은 액세스 클라이언트에서, 파일과 연관된 하나 이상의 액세스 정책들에 따라 파일의 페이로드를 디스플레이하는 단계를 포함할 수도 있다. 1625 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1625의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 복호화 컴포넌트(750)에 의해 수행될 수도 있다.
1630에서, 방법은 액세스 클라이언트와 연관된 메모리로부터 액세스 패키지를 제거하는 단계를 포함할 수도 있다. 1630 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1630의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 패키지 제거 컴포넌트(740)에 의해 수행될 수도 있다.
1635에서, 상기 방법은 복호화 요청 및 파일 정보를 서버에 송신하는 단계를 포함할 수도 있고, 상기 실행가능 코드는 파일을 해독하는데 사용되는 코드를 포함한다. 1635 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1635의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 복호화 컴포넌트(750)에 의해 수행될 수도 있다.
도 17 은 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 방법 (1700) 을 예시하는 플로우차트를 도시한다. 방법(1700)의 동작들은 본 명세서에 설명된 바와 같이 사용자 디바이스 또는 그 컴포넌트들에 의해 구현될 수도 있다. 예를 들어, 방법(1700)의 동작들은 도 1 내지 도 8 을 참조하여 설명된 바와 같이 사용자 디바이스에 의해 수행될 수도 있다. 일부 예들에서, 사용자 디바이스는 설명된 기능들을 수행하기 위해 사용자 디바이스의 기능적 엘리먼트들을 제어하기 위한 명령들의 세트를 실행할 수도 있다. 추가적으로 또는 대안적으로, 사용자 디바이스는 특수 목적 하드웨어를 사용하여 설명된 기능들의 양태들을 수행할 수도 있다.
1705에서, 방법은 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 서버에 송신하는 단계를 포함할 수도 있다. 1705 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1705의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 요청 인터페이스(725)에 의해 수행될 수도 있다.
1710에서, 방법은 액세스 요청을 송신하는 것에 적어도 부분적으로 기초하여 서버로부터, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 수신하는 단계를 포함할 수도 있다. 1710 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1710의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 패키지 인터페이스(730)에 의해 수행될 수도 있다.
1715에서, 방법은 액세스 클라이언트에 의해, 하나 이상의 액세스 키들을 사용하여 파일을 액세스하기 위해 실행가능 코드를 실행하는 단계를 포함할 수도 있다. 1715 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1715의 동작들의 양태들은 도 7을 참조하여 설명된 실행 컴포넌트(735)에 의해 수행될 수도 있다.
1720에서, 방법은 하나 이상의 액세스 키들을 사용하여 파일을 복호화하는 단계를 포함할 수도 있다. 1720 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1720의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 복호화 컴포넌트(750)에 의해 수행될 수도 있다.
1725에서, 본 방법은 액세스 클라이언트와 관련된 디바이스 정보, 사용자 정보, 지리적 위치 정보, 또는 이들의 조합을 포함하도록 파일 액세스 감사 로그를 업데이트하는 단계를 포함할 수도 있다. 1725 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1725의 동작들의 양태들은 도 7을 참조하여 설명된 액세스 로그 컴포넌트(770)에 의해 수행될 수도 있다.
1730에서, 방법은 액세스 클라이언트와 연관된 메모리로부터 액세스 패키지를 제거하는 단계를 포함할 수도 있다. 1730 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1730의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 액세스 패키지 제거 컴포넌트(740)에 의해 수행될 수도 있다.
1735에서, 상기 방법은 복호화 요청 및 파일 정보를 서버에 송신하는 단계를 포함할 수도 있고, 상기 실행가능 코드는 파일을 해독하는데 사용되는 코드를 포함한다. 1735 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1735의 동작들의 양태들은 도 7을 참조하여 설명된 바와 같이 복호화 컴포넌트(750)에 의해 수행될 수도 있다.
도 18 은 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 방법 (1800) 을 예시하는 플로우차트를 도시한다. 방법(1800)의 동작들은 본 명세서에 설명된 바와 같이 서버 또는 그 컴포넌트들에 의해 구현될 수도 있다. 예를 들어, 방법 (1800) 의 동작들은 도 1 내지 도 6 및 도 9 및 도 10 을 참조하여 설명된 바와 같은 서버에 의해 수행될 수도 있다. 일부 예들에서, 서버는 설명된 기능들을 수행하기 위해 서버의 기능적 엘리먼트들을 제어하기 위한 명령들의 세트를 실행할 수도 있다. 추가적으로 또는 대안적으로, 서버는 특수 목적 하드웨어를 사용하여 설명된 기능들의 양태들을 수행할 수도 있다.
1805에서, 방법은 액세스 클라이언트로부터, 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 수신하는 단계를 포함할 수도 있다. 1805 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1805의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 액세스 요청 인터페이스(925)에 의해 수행될 수도 있다.
1810에서, 방법은 액세스 정보를 사용하여 액세스 요청을 검증하는 단계를 포함할 수도 있다. 1810 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1810의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 요청 검증 컴포넌트(930)에 의해 수행될 수도 있다.
1815에서, 방법은 액세스 요청을 검증하는 것에 적어도 부분적으로 기초하여, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 생성하는 단계를 포함할 수도 있다. 1815 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1815의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 액세스 패키지 컴포넌트(935)에 의해 수행될 수도 있다. 일부 예들에서, 액세스 패키지를 생성하는 것은 실행가능 코드보다는, 데이터 또는 값들과 같은 하나 이상의 액세스 키들 및/또는 액세스 정보를 식별하는 것을 포함할 수도 있다.
1820에서, 방법은 액세스 클라이언트로 액세스 패키지를 송신하는 단계를 포함할 수도 있고, 여기서 액세스 패키지는 액세스 클라이언트에 의해 파일을 액세스하는데 사용되는 실행파일에 대해 호환가능하다. 1820 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1820의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 액세스 패키지 인터페이스(940)에 의해 수행될 수도 있다. 액세스 패키지가 액세스 정보를 포함하는 경우, 액세스 클라이언트는, 데이터를 암호화 또는 복호화하는 것에 대응할 수도 있는, 데이터를 변환함으로써 페이로드의 데이터에 액세스하기 위해 액세스 정보를 사용할 수도 있다. 일부 경우들에서, 이 프로세스는 액세스 클라이언트에 의해 액세스가능한 명령들을 실행하는 것을 포함할 수도 있다. 이러한 명령들은 액세스 패키지에 포함될 수도 있거나 포함되지 않을 수도 있다.
도 19 는 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 방법 (1900) 을 예시하는 플로우차트를 도시한다. 방법(1900)의 동작들은 본 명세서에 설명된 바와 같이 서버 또는 그 컴포넌트들에 의해 구현될 수도 있다. 예를 들어, 방법 (1900) 의 동작들은 도 1 내지 도 6 및 도 9 및 도 10 을 참조하여 설명된 바와 같은 서버에 의해 수행될 수도 있다. 일부 예들에서, 서버는 설명된 기능들을 수행하기 위해 서버의 기능적 엘리먼트들을 제어하기 위한 명령들의 세트를 실행할 수도 있다. 추가적으로 또는 대안적으로, 서버는 특수 목적 하드웨어를 사용하여 설명된 기능들의 양태들을 수행할 수도 있다.
1905에서, 방법은 액세스 클라이언트로부터, 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 수신하는 단계를 포함할 수도 있다. 1905 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1905의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 액세스 요청 인터페이스(925)에 의해 수행될 수도 있다.
1910에서, 방법은 액세스 클라이언트로부터, 파일을 암호화하기 위한 암호화 요청을 수신하는 단계를 포함할 수도 있고, 액세스 패키지는 하나 이상의 액세스 키들을 사용하여 파일을 암호화하기 위한 실행가능 코드를 포함한다. 1910 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1910의 동작들의 양태들은 도 9를 참조하여 설명된 암호화 컴포넌트(945)에 의해 수행될 수도 있다.
1915에서, 방법은 액세스 정보를 사용하여 액세스 요청을 검증하는 단계를 포함할 수도 있다. 1915 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1915의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 요청 검증 컴포넌트(930)에 의해 수행될 수도 있다.
1920에서, 방법은 액세스 요청을 검증하는 것에 적어도 부분적으로 기초하여, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 생성하는 단계를 포함할 수도 있다. 1920 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1920의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 액세스 패키지 컴포넌트(935)에 의해 수행될 수도 있다.
1925에서, 방법은 액세스 클라이언트로 액세스 패키지를 송신하는 단계를 포함할 수도 있고, 여기서 액세스 패키지는 액세스 클라이언트에 의해 파일을 액세스하는데 사용되는 실행파일에 대해 호환가능하다. 1925 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1925의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 액세스 패키지 인터페이스(940)에 의해 수행될 수도 있다.
1930에서, 방법은 액세스 클라이언트로, 파일과 연관된 하나 이상의 파일 액세스 정책들의 표시를 포함하는 데이터 팩을 포함하는 액세스 패키지를 송신하는 단계를 포함할 수도 있고, 여기서 실행가능 코드는 하나 이상의 액세스 키들을 사용하여 파일로 데이터 팩을 암호화하도록 구성된다. 1930 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1930의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 액세스 패키지 인터페이스(940)에 의해 수행될 수도 있다.
1935에서, 방법은 액세스 클라이언트에, 파일과 연관된 감사 로그를 생성하고 하나 이상의 액세스 키들을 사용하여 파일로 감사 로그를 암호화하도록 구성된 실행가능 코드를 포함하는 데이터 팩을 포함하는 액세스 패키지를 송신하는 단계를 포함할 수도 있다. 1935 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 1935의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 액세스 패키지 컴포넌트(935)에 의해 수행될 수도 있다.
도 20 는 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 방법 (2000) 을 예시하는 플로우차트를 도시한다. 방법(2000)의 동작들은 본 명세서에 설명된 바와 같이 서버 또는 그 컴포넌트들에 의해 구현될 수도 있다. 예를 들어, 방법 (2000) 의 동작들은 도 1 내지 도 6 및 도 9 및 도 10 을 참조하여 설명된 바와 같은 서버에 의해 수행될 수도 있다. 일부 예들에서, 서버는 설명된 기능들을 수행하기 위해 서버의 기능적 엘리먼트들을 제어하기 위한 명령들의 세트를 실행할 수도 있다. 추가적으로 또는 대안적으로, 서버는 특수 목적 하드웨어를 사용하여 설명된 기능들의 양태들을 수행할 수도 있다.
2005에서, 방법은 액세스 클라이언트로부터, 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 수신하는 단계를 포함할 수도 있다. 2005 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2005의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 액세스 요청 인터페이스(925)에 의해 수행될 수도 있다.
2010에서, 방법은 액세스 클라이언트로부터, 파일을 암호화하기 위한 암호화 요청을 수신하는 단계를 포함할 수도 있고, 액세스 패키지는 하나 이상의 액세스 키들을 사용하여 파일을 암호화하기 위한 실행가능 코드를 포함한다. 2010 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2010의 동작들의 양태들은 도 9를 참조하여 설명된 암호화 컴포넌트(945)에 의해 수행될 수도 있다.
2015에서, 방법은 액세스 클라이언트로부터, 파일과 연관된 하나 이상의 파일 액세스 정책들의 표시를 수신하는 단계를 포함할 수도 있다. 2015 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2015의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 파일 정책 컴포넌트(960)에 의해 수행될 수도 있다.
2020에서, 방법은 파일에 대한 파일 식별자와 관련하여, 하나 이상의 파일 액세스 정책들을 저장하는 단계를 포함할 수도 있다. 2020 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2020의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 파일 정책 컴포넌트(960)에 의해 수행될 수도 있다.
2025에서, 방법은 액세스 정보를 사용하여 액세스 요청을 검증하는 단계를 포함할 수도 있다. 2025 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2025의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 요청 검증 컴포넌트(930)에 의해 수행될 수도 있다.
2030에서, 방법은 액세스 요청을 검증하는 것에 적어도 부분적으로 기초하여, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 생성하는 단계를 포함할 수도 있다. 2030 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2030의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 액세스 패키지 컴포넌트(935)에 의해 수행될 수도 있다.
2035에서, 방법은 액세스 클라이언트로 액세스 패키지를 송신하는 단계를 포함할 수도 있고, 여기서 액세스 패키지는 액세스 클라이언트에 의해 파일을 액세스하는데 사용되는 실행파일에 대해 호환가능하다. 2035 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2035의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 액세스 패키지 인터페이스(940)에 의해 수행될 수도 있다.
도 21 은 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 방법 (2100) 을 예시하는 플로우차트를 도시한다. 방법(2100)의 동작들은 본 명세서에 설명된 바와 같이 서버 또는 그 컴포넌트들에 의해 구현될 수도 있다. 예를 들어, 방법 (2100) 의 동작들은 도 1 내지 도 6 및 도 9 및 도 10 을 참조하여 설명된 바와 같은 서버에 의해 수행될 수도 있다. 일부 예들에서, 서버는 설명된 기능들을 수행하기 위해 서버의 기능적 엘리먼트들을 제어하기 위한 명령들의 세트를 실행할 수도 있다. 추가적으로 또는 대안적으로, 서버는 특수 목적 하드웨어를 사용하여 설명된 기능들의 양태들을 수행할 수도 있다.
2105에서, 방법은 액세스 클라이언트로부터, 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 수신하는 단계를 포함할 수도 있다. 2105 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2105의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 액세스 요청 인터페이스(925)에 의해 수행될 수도 있다.
2110에서, 방법은 파일을 액세스하도록 인가된 하나 이상의 사용자들의 표시를 액세스 클라이언트로부터 수신하는 단계를 포함할 수도 있다. 2110 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2110의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 파일 정책 컴포넌트(960)에 의해 수행될 수도 있다.
2115에서, 방법은 액세스 클라이언트로부터, 파일을 암호화하기 위한 암호화 요청을 수신하는 단계를 포함할 수도 있고, 액세스 패키지는 하나 이상의 액세스 키들을 사용하여 파일을 암호화하기 위한 실행가능 코드를 포함한다. 2115 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2115의 동작들의 양태들은 도 9를 참조하여 설명된 암호화 컴포넌트(945)에 의해 수행될 수도 있다.
2120에서, 방법은 파일에 대한 파일 식별자와 관련하여, 파일을 액세스하도록 인가된 하나 이상의 사용자들의 표시를 저장하는 단계를 포함할 수도 있다. 2120 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2120의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 파일 정책 컴포넌트(960)에 의해 수행될 수도 있다.
2125에서, 방법은 액세스 정보를 사용하여 액세스 요청을 검증하는 단계를 포함할 수도 있다. 2125 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2125의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 요청 검증 컴포넌트(930)에 의해 수행될 수도 있다.
2130에서, 방법은 액세스 요청을 검증하는 것에 적어도 부분적으로 기초하여, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 생성하는 단계를 포함할 수도 있다. 2130 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2130의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 액세스 패키지 컴포넌트(935)에 의해 수행될 수도 있다.
2135에서, 방법은 액세스 클라이언트로 액세스 패키지를 송신하는 단계를 포함할 수도 있고, 여기서 액세스 패키지는 액세스 클라이언트에 의해 파일을 액세스하는데 사용되는 실행파일에 대해 호환가능하다. 2135 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2135의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 액세스 패키지 인터페이스(940)에 의해 수행될 수도 있다.
도 22 는 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 방법 (2200) 을 예시하는 플로우차트를 도시한다. 방법(2200)의 동작들은 본 명세서에 설명된 바와 같이 서버 또는 그 컴포넌트들에 의해 구현될 수도 있다. 예를 들어, 방법 (2200) 의 동작들은 도 1 내지 도 6 및 도 9 및 도 10 을 참조하여 설명된 바와 같은 서버에 의해 수행될 수도 있다. 일부 예들에서, 서버는 설명된 기능들을 수행하기 위해 서버의 기능적 엘리먼트들을 제어하기 위한 명령들의 세트를 실행할 수도 있다. 추가적으로 또는 대안적으로, 서버는 특수 목적 하드웨어를 사용하여 설명된 기능들의 양태들을 수행할 수도 있다.
2205에서, 방법은 액세스 클라이언트로부터, 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 수신하는 단계를 포함할 수도 있다. 2205 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2205의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 액세스 요청 인터페이스(925)에 의해 수행될 수도 있다.
2210에서, 방법은 액세스 정보를 사용하여 액세스 요청을 검증하는 단계를 포함할 수도 있다. 2210 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2210의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 요청 검증 컴포넌트(930)에 의해 수행될 수도 있다.
2215에서, 방법은 서버에서, 복호화 요청에서 수신된 액세스 정보에 포함된 사용자 정보를 파일과 연관된 액세스 기록과 비교하는 단계를 포함할 수도 있다. 2215 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2215의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 요청 검증 컴포넌트(930)에 의해 수행될 수도 있다.
2220에서, 상기 방법은 상기 비교 결과에 적어도 부분적으로 기초하여 액세스 클라이언트와 연관된 사용자가 파일을 액세스하도록 허가된 것을 결정하는 단계를 포함할 수도 있고, 여기서 액세스 패키지는 사용자가 파일을 액세스하도록 허가되었다고 결정하는 것에 적어도 부분적으로 기초하여 액세스 클라이언트로 송신된다. 2220 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2220의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 요청 검증 컴포넌트(930)에 의해 수행될 수도 있다.
2225에서, 방법은 액세스 요청을 검증하는 것에 적어도 부분적으로 기초하여, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 생성하는 단계를 포함할 수도 있다. 2225 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2225의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 액세스 패키지 컴포넌트(935)에 의해 수행될 수도 있다.
2230에서, 방법은 액세스 클라이언트로 액세스 패키지를 송신하는 단계를 포함할 수도 있고, 여기서 액세스 패키지는 액세스 클라이언트에 의해 파일을 액세스하는데 사용되는 실행파일에 대해 호환가능하다. 2230 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2230의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 액세스 패키지 인터페이스(940)에 의해 수행될 수도 있다.
2235에서, 방법은 액세스 클라이언트로부터, 파일을 복호화하기 위한 복호화 요청을 수신하는 단계를 포함할 수도 있고, 액세스 패키지는 하나 이상의 액세스 키들을 사용하여 파일을 복호화하기 위한 실행가능 코드를 포함한다. 2235 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2235의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 복호화 컴포넌트(950)에 의해 수행될 수도 있다.
도 23 은 본 개시의 양태들에 따른, 암호화된 파일 제어를 지원하는 방법 (2300) 을 예시하는 플로우차트를 도시한다. 방법(2300)의 동작들은 본 명세서에 설명된 바와 같이 서버 또는 그 컴포넌트들에 의해 구현될 수도 있다. 예를 들어, 방법 (2300) 의 동작들은 도 1 내지 도 6 및 도 9 및 도 10 을 참조하여 설명된 바와 같은 서버에 의해 수행될 수도 있다. 일부 예들에서, 서버는 설명된 기능들을 수행하기 위해 서버의 기능적 엘리먼트들을 제어하기 위한 명령들의 세트를 실행할 수도 있다. 추가적으로 또는 대안적으로, 서버는 특수 목적 하드웨어를 사용하여 설명된 기능들의 양태들을 수행할 수도 있다.
2305에서, 방법은 액세스 클라이언트로부터, 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 수신하는 단계를 포함할 수도 있다. 2305 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2305의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 액세스 요청 인터페이스(925)에 의해 수행될 수도 있다.
2310에서, 방법은 액세스 정보를 사용하여 액세스 요청을 검증하는 단계를 포함할 수도 있다. 2310 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2310의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 요청 검증 컴포넌트(930)에 의해 수행될 수도 있다.
2315에서, 방법은 액세스 요청을 검증하는 것에 적어도 부분적으로 기초하여, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 생성하는 단계를 포함할 수도 있다. 2315 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2315의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 액세스 패키지 컴포넌트(935)에 의해 수행될 수도 있다.
2320에서, 방법은 액세스 요청을 수신하는 것에 적어도 부분적으로 기초하여 키 저장 서비스에, 파일과 연관된 파일 식별자 및 키 스트링에 대한 요청을 송신하는 단계를 포함할 수도 있다. 2320 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2320의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 키 식별 컴포넌트(955)에 의해 수행될 수도 있다.
2325에서, 방법은 키 저장 서비스로부터, 파일 식별자와 연관된 키 스트링을 수신하는 단계를 포함할 수도 있다. 2325 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2325의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 키 식별 컴포넌트(955)에 의해 수행될 수도 있다.
2330에서, 방법은 키 스트링을 사용하여 하나 이상의 액세스 키들을 생성하는 단계를 포함할 수도 있다. 2330 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2330의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 키 식별 컴포넌트(955)에 의해 수행될 수도 있다.
2335에서, 방법은 액세스 클라이언트로 액세스 패키지를 송신하는 단계를 포함할 수도 있고, 여기서 액세스 패키지는 액세스 클라이언트에 의해 파일을 액세스하는데 사용되는 실행파일에 대해 호환가능하다. 2335 의 동작들은 본 명세서에 개시된 바와 같은 예들에 따라 수행될 수도 있다. 일부 예들에서, 2335의 동작들의 양태들은 도 9를 참조하여 설명된 바와 같이 액세스 패키지 인터페이스(940)에 의해 수행될 수도 있다.
액세스 클라이언트에서의 데이터 보안을 위한 방법이 설명된다. 방법은, 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 서버에 송신하는 단계, 액세스 요청을 송신하는 것에 적어도 부분적으로 기초하여 서버로부터, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 수신하는 단계, 액세스 클라이언트에 의해, 하나 이상의 액세스 키들을 사용하여 파일을 액세스하기 위해 실행가능 코드를 실행하는 단계, 및 액세스 클라이언트와 연관된 메모리로부터 액세스 패키지를 제거하는 단계를 포함할 수도 있다.
액세스 클라이언트에서의 데이터 보안을 위한 장치가 설명된다. 이 장치는 프로세서, 프로세서와 커플링된 메모리, 및 메모리에 저장된 명령들을 포함할 수도 있다. 명령들은 장치로 하여금, 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 서버에 송신하게 하고, 액세스 요청을 송신하는 것에 적어도 부분적으로 기초하여 서버로부터, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 수신하게 하고, 액세스 클라이언트에 의해, 하나 이상의 액세스 키들을 사용하여 파일을 액세스하기 위해 실행가능 코드를 실행하게 하고, 그리고 액세스 클라이언트와 연관된 메모리로부터 액세스 패키지를 제거하게 하도록 프로세서에 의해 실행가능할 수도 있다.
액세스 클라이언트에서의 데이터 보안을 위한 다른 장치가 설명된다. 장치는, 액세스될 파일에 대한 액세스 정보 및 파일 정보를 포함하는 액세스 요청을 서버에 송신하기 위한 수단, 액세스 요청을 송신하는 것에 적어도 부분적으로 기초하여 서버로부터, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 수신하기 위한 수단, 액세스 클라이언트에 의해, 하나 이상의 액세스 키들을 사용하여 파일을 액세스하기 위해 실행가능 코드를 실행하기 위한 수단, 및 액세스 클라이언트와 연관된 메모리로부터 액세스 패키지를 제거하기 위한 수단을 포함할 수도 있다.
액세스 클라이언트에서의 데이터 보안을 위한 코드를 저장하는 비일시적 컴퓨터 판독가능 매체가 설명된다. 그 코드는, 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 서버에 송신하고, 액세스 요청을 송신하는 것에 적어도 부분적으로 기초하여 서버로부터, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 수신하며, 액세스 클라이언트에 의해, 하나 이상의 액세스 키들을 사용하여 파일을 액세스하기 위해 실행가능 코드를 실행하고, 그리고, 액세스 클라이언트와 연관된 메모리로부터 액세스 패키지를 제거하도록, 프로세서에 의해 실행가능한 명령들을 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체는 암호화 요청 및 파일 정보를 서버에 송신하기 위한 추가적인 동작들, 특징들, 수단들, 또는 명령들을 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 액세스 패키지를 수신하는 것은 파일과 연관된 하나 이상의 파일 액세스 정책들의 표시를 포함하는 데이터 팩을 포함하는 액세스 패키지를 수신하기 위한 동작들, 특징들, 수단들, 또는 명령들을 포함할 수도 있고, 여기서 데이터 팩은 하나 이상의 액세스 키들을 사용하여 파일과 함께 암호화될 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 하나 이상의 파일 액세스 정책들은 판독 액세스, 기입 액세스, 디스플레이 제약들, 또는 이들의 조합을 포함한다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 액세스 패키지를 수신하는 것은 파일과 연관된 소유 정보의 표시를 포함하는 데이터 팩을 포함하는 액세스 패키지를 수신하기 위한 동작들, 특징들, 수단들, 또는 명령들을 포함할 수도 있고, 여기서 데이터 팩은 하나 이상의 액세스 키들을 사용하여 파일과 함께 암호화될 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 암호화 요청을 송신하는 것은 파일에 연관된 하나 이상의 파일 액세스 정책들의 표시를 서버에 송신하기 위한 동작들, 특징들, 수단들, 또는 명령들을 포함할 수도 있다.
본 명세서에 설명된 방법, 장치 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 실행가능 코드를 실행하는 것은, 암호화된 파일을 생성하기 위해 실행가능 코드를 사용하여, 페이로드 및 하나 이상의 데이터 팩들을 하나 이상의 액세스 키들을 사용하여 암호화하기 위한 동작들, 특징들, 수단들, 또는 명령들을 포함할 수도 있다.
본 명세서에 설명된 방법, 장치 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 하나 이상의 데이터 팩들을 암호화하는 것은 하나 이상의 파일 액세스 정책들, 파일 소유 정보, 파일 액세스 감사 로그, 또는 이들의 조합의 표시를 포함하는 하나 이상의 데이터 팩들을 암호화하기 위한 동작들, 특징들, 수단들, 또는 명령들을 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 액세스 요청을 송신하는 것은 복호화 요청 및 파일 정보를 서버에 송신하기 위한 동작들, 특징들, 수단들, 또는 명령들을 포함할 수도 있고, 실행가능 코드는 파일을 복호화하는데 사용될 수도 있는 코드를 포함한다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 액세스 패키지를 수신하는 것은 하나 이상의 업데이트된 파일 액세스 정책들을 포함하는 데이터 팩을 포함하는 액세스 패키지를 수신하기 위한 동작들, 특징들, 수단들, 또는 명령들을 포함할 수도 있다.
본 명세서에 설명된 방법, 장치 및 비일시적 컴퓨터 판독가능 매체의 일부 예들은, 액세스 클라이언트에서, 액세스 클라이언트 정보, 컴퓨터 정보, 디바이스 정보, 지리위치 정보, 인증 토큰, 또는 이들의 조합을 포함하는 검증 정보를 식별하기 위한 동작들, 특징들, 수단들, 또는 명령들을 더 포함할 수도 있고, 여기서 복호화 요청은 검증 정보의 표시를 포함한다.
본 명세서에서 설명된 방법, 장치 및 비일시적 컴퓨터 판독가능 매체의 일부 예들은 파일과 연관된 메타데이터에 적어도 부분적으로 기초하여 파일이 액세스 클라이언트와 연관될 수도 있음을 식별하기 위한 동작들, 특징들, 수단들 또는 명령들을 더 포함할 수도 있고, 파일은 하나 이상의 액세스 키들 중 제 1 키를 사용하여 암호화된 페이로드 및 하나 이상의 액세스 키들 중 적어도 하나의 제 2 키를 사용하여 암호화될 수도 있는 하나 이상의 암호화된 데이터 팩들을 포함하고, 여기서, 복호화 요청은 파일이 액세스 클라이언트와 연관되는 것에 적어도 부분적으로 기초하여 서버로 송신될 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 실행가능 코드를 실행하는 것은 하나 이상의 액세스 키들을 사용하여 파일을 암호해독하기 위한 동작들, 특징들, 수단들, 또는 명령들을 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들은, 액세스 클라이언트에서, 파일과 연관된 하나 이상의 액세스 정책들에 따라 파일의 페이로드를 디스플레이하기 위한 동작들, 특징들, 수단들, 또는 명령들을 더 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 하나 이상의 액세스 정책들은 판독 액세스, 기입 액세스, 디스플레이 제약들, 또는 이들의 조합을 포함한다.
본 명세서에 기술된 방법, 장치, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 하나 이상의 액세스 정책들은 하나 이상의 액세스 키들을 사용하여 파일과 함께 복호화된 데이터 팩에 포함될 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들은 액세스 클라이언트와 연관된 디바이스 정보, 사용자 정보, 지리적 위치 정보, 또는 이들의 조합을 포함하도록 파일 액세스 감사 로그를 업데이트하기 위한 동작들, 특징들, 수단들, 또는 명령들을 더 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들은, 파일의 암호해독에 적어도 부분적으로 기초하여, 파일 내의 페이로드 및 하나 이상의 데이터 팩들을 식별하기 위한 동작들, 특징들, 수단들, 또는 명령들을 더 포함할 수도 있고, 여기서 그 하나 이상의 데이터 팩들은 하나 이상의 파일 액세스 정책들, 소유 정보, 파일 액세스 감사 로그, 또는 이들의 조합의 표시를 포함한다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들은, 액세스 클라이언트와 연관된 메모리에서 그리고 실행가능 코드를 실행하는 것에 적어도 부분적으로 기초하여, 파일을 복호화하거나 암호화하기 위해 사용될 수도 있는 액세스 객체를 인스턴스화하기 위한 동작들, 특징들, 수단들, 또는 명령들을 더 포함할 수도 있고, 여기서 액세스 객체는 파일의 암호해독 또는 암호화 후에 액세스 클라이언트와 연관된 메모리로부터 제거될 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들은, 서버에, 복호화 요청 및 파일 정보를 송신하기 위한 동작들, 특징들, 수단들, 또는 명령들을 더 포함할 수도 있고, 실행가능 코드는 파일의 콘텐츠를 덮어쓰는데 사용될 수도 있는 코드를 포함한다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 액세스 요청을 송신하는 것은 액세스 클라이언트를 실행하는 사용자 디바이스의 지리적 위치, 사용자 디바이스와 연관된 디바이스 정보, 사용자 디바이스와 연관된 네트워크 정보, 액세스 클라이언트와 연관된 인증 토큰, 또는 이들의 조합을 포함하는 액세스 정보를 포함하는 액세스 요청을 송신하기 위한 동작들, 특징들, 수단들, 또는 명령들을 포함할 수도 있다.
서버에서의 데이터 보안을 위한 방법이 설명된다. 방법은, 액세스 클라이언트로부터, 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 수신하는 단계, 액세스 정보를 사용하여 액세스 요청을 검증하는 단계, 액세스 요청을 검증하는 것에 적어도 부분적으로 기초하여, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 생성하는 단계, 및 액세스 클라이언트로, 액세스 패키지를 송신하는 단계를 포함할 수도 있으며, 여기서, 액세스 패키지는 액세스 클라이언트에 의해, 파일을 액세스하는데 사용되는 실행파일에 대해 호환가능할 수도 있다.
서버에서의 데이터 보안을 위한 장치가 설명된다. 이 장치는 프로세서, 프로세서와 커플링된 메모리, 및 메모리에 저장된 명령들을 포함할 수도 있다. 그 명령들은 장치로 하여금, 액세스 클라이언트로부터, 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 수신하게 하고, 액세스 정보를 사용하여 액세스 요청을 검증하게 하고, 액세스 요청을 검증하는 것에 적어도 부분적으로 기초하여, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 생성하게 하고, 그리고 액세스 클라이언트로, 액세스 패키지를 송신하게 하도록 프로세서에 의해 실행가능할 수도 있고, 여기서, 액세스 패키지는 파일을 액세스하는데 사용되는 실행파일에 대해 호환가능할 수도 있다.
서버에서의 데이터 보안을 위한 다른 장치가 설명된다. 그 장치는, 액세스 클라이언트로부터, 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 수신하기 위한 수단, 액세스 정보를 사용하여 액세스 요청을 검증하기 위한 수단, 액세스 요청을 검증하는 것에 적어도 부분적으로 기초하여, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 생성하기 위한 수단, 및 액세스 클라이언트로, 액세스 패키지를 송신하기 위한 수단을 포함할 수도 있고, 여기서, 액세스 패키지는, 액세스 클라이언트에 의해, 파일을 액세스하는데 사용되는 실행파일에 대해 호환가능할 수도 있다.
서버에서의 데이터 보안을 위한 코드를 저장하는 비일시적 컴퓨터 판독가능 매체가 설명된다. 그 코드는, 액세스 클라이언트로부터, 액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 수신하고, 액세스 정보를 사용하여 액세스 요청을 검증하며, 액세스 요청을 검증하는 것에 적어도 부분적으로 기초하여, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 생성하고, 그리고 액세스 클라이언트로, 액세스 패키지를 송신하도록, 프로세서에 의해 실행가능한 명령들을 포함할 수도 있으며, 여기서, 액세스 패키지는 액세스 클라이언트에 의해, 파일을 액세스하는데 사용되는 실행파일에 대해 호환가능할 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 액세스 요청을 수신하는 것은 액세스 클라이언트로부터, 파일을 암호화하기 위한 암호화 요청을 수신하기 위한 동작들, 특징들, 수단들, 또는 명령들을 포함할 수도 있고, 액세스 패키지는 하나 이상의 액세스 키들을 사용하여 파일을 암호화하기 위한 실행가능 코드를 포함한다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 액세스 패키지를 송신하는 것은, 파일과 연관된 하나 이상의 파일 액세스 정책들의 표시를 포함하는 데이터 팩을 포함하는 액세스 패키지를 액세스 클라이언트에 송신하기 위한 동작들, 특징들, 수단들, 또는 명령들을 포함할 수도 있고, 실행가능 코드는 하나 이상의 액세스 키들을 사용하여 파일로 데이터 팩을 암호화하도록 구성될 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 하나 이상의 파일 액세스 정책들은 판독 액세스, 기입 액세스, 디스플레이 제약들, 또는 이들의 조합을 포함한다.
본 명세서에 설명된 방법, 장치 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 액세스 패키지를 송신하는 것은, 파일과 연관된 감사 로그를 생성하고 하나 이상의 액세스 키들을 사용하여 파일과 함께 감사 로그를 암호화하도록 구성될 수도 있는 실행가능 코드를 포함하는 데이터 팩을 포함하는 액세스 패키지를 액세스 클라이언트에 송신하기 위한 동작들, 특징들, 수단들 또는 명령들을 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 액세스 패키지를 송신하는 것은, 파일과 연관된 소유 정보의 표시를 포함하는 데이터 팩을 포함하는 액세스 패키지를 액세스 클라이언트에 송신하기 위한 동작들, 특징들, 수단들, 또는 명령들을 포함할 수도 있고, 실행가능 코드는 하나 이상의 액세스 키들을 사용하여 파일과 함께 데이터 팩을 암호화하도록 구성될 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 액세스 요청을 수신하는 것은, 액세스 클라이언트로부터, 파일과 연관된 하나 이상의 파일 액세스 정책들의 표시를 수신하고, 파일에 대한 파일 식별자와 연관하여, 하나 이상의 파일 액세스 정책들을 저장하기 위한 동작들, 특징들, 수단들, 또는 명령들을 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 액세스 요청을 수신하는 것은, 액세스 클라이언트로부터, 파일을 액세스하도록 인가될 수도 있는 하나 이상의 사용자들의 표시를 수신하고, 파일에 대한 파일 식별자와 연관하여, 파일을 액세스하도록 인가될 수도 있는 하나 이상의 사용자들의 표시를 저장하기 위한 동작들, 특징들, 수단들, 또는 명령들을 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 액세스 요청을 수신하는 것은 액세스 클라이언트로부터, 파일을 복호화하기 위한 복호화 요청을 수신하기 위한 동작들, 특징들, 수단들, 또는 명령들을 포함할 수도 있고, 액세스 패키지는 하나 이상의 액세스 키들을 사용하여 파일을 복호화하기 위한 실행가능 코드를 포함한다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들은, 파일에 대한 하나 이상의 파일 액세스 정책들을 포함하는 데이터 팩이 진부할 수도 있다고 결정하고, 데이터 팩이 진부할 수도 있다는 결정에 적어도 부분적으로 기초하여, 파일에 대한 하나 이상의 업데이트된 파일 액세스 정책들을 포함하는 업데이트된 데이터 팩을 송신하기 위한 동작들, 특징들, 수단들, 또는 명령들을 더 포함할 수도 있다.
본 명세서에 설명된 방법, 장치 및 비일시적 컴퓨터 판독가능 매체의 일부 예들은, 서버에서, 복호화 요청에서 수신된 액세스 정보에 포함될 수도 있는 사용자 정보를 파일과 연관된 액세스 기록과 비교하고, 비교 결과에 적어도 부분적으로 기초하여 액세스 클라이언트와 연관된 사용자가 파일을 액세스하도록 인가될 수도 있다고 결정하기 위한 동작들, 특징들, 수단들 또는 명령들을 더 포함할 수도 있고, 여기서 액세스 패키지는 사용자가 파일을 액세스하도록 인가될 수도 있다고 결정하는 것에 적어도 부분적으로 기초하여 액세스 클라이언트로 송신될 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들은, 액세스 클라이언트가 복호화 요청에서 수신된 액세스 정보에 적어도 부분적으로 기초하여 파일을 복호화하도록 인가되지 않을 수도 있다고 결정하고, 액세스 클라이언트가 파일을 복호화하도록 인가되지 않을 수도 있다고 결정하는 것에 적어도 부분적으로 기초하여 서버에서 액션을 트리거하기 위한 동작들, 특징들, 수단들, 또는 명령들을 더 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 액션을 트리거하는 것은 액세스 클라이언트가 비인가된 액세스 요청을 송신했음을 나타내는 경고 또는 메시지를 생성하기 위한 동작들, 특징들, 수단들, 또는 명령들을 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 액션을 트리거하는 것은 파일의 콘텐츠를 덮어쓰기하기 위해 실행가능 코드를 포함하는 액세스 패키지를 송신하기 위한 동작들, 특징들, 수단들, 또는 명령들을 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들은, 액세스 요청을 수신하는 것에 적어도 부분적으로 기초하여 키 저장 서비스에, 파일과 연관된 파일 식별자 및 키 스트링에 대한 요청을 송신하고, 키 저장 서비스로부터, 파일 식별자와 연관된 키 스트링을 수신하고, 키 스트링을 사용하여 하나 이상의 액세스 키들을 생성하기 위한 동작들, 특징들, 수단들, 또는 명령들을 더 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치들, 및 비일시적 컴퓨터 판독가능 매체의 일부 예들에서, 액세스 요청을 검증하는 것은, 액세스 클라이언트를 실행하는 사용자 디바이스의 지리적 위치, 사용자 디바이스와 연관된 디바이스 정보, 사용자 디바이스와 연관된 네트워크 정보, 액세스 클라이언트와 연관된 인증 토큰, 이들의 조합을 포함하는 액세스 정보를 검증하기 위한 동작들, 특징들, 수단들, 또는 명령들을 포함할 수도 있다.
이러한 방법들은 구현들의 예들을 설명하고, 동작들 및 단계들은 다른 구현들이 가능하도록 재배열되거나 그렇지 않으면 수정될 수도 있다는 것에 유의해야 한다. 일부 예들에 있어서, 방법들 중 2개 이상의 방법들로부터의 양태들은 결합될 수도 있다. 예를 들어, 방법들의 각각의 양태들은 본원에 설명된 다른 방법들의 단계들 또는 양태들 또는 다른 단계들 또는 기술들을 포함할 수도 있다. 따라서, 본 개시의 양태들은 소비자 선호도 및 유지 인터페이스를 제공할 수도 있다.
첨부 도면들과 관련하여 상기 기재된 설명은 예시적 구성들을 설명하며, 구현될 수도 있거나 또는 청구항들의 범위 내에 있는 예들 모두를 나타내지는 않는다. 본 명세서에 사용된 용어 "예시적인" 은 "예, 사례, 또는 예시로서 작용하는" 을 의미하며, 다른 예들보다 "바람직하다" 거나 "유리하다" 는 것을 의미하지 않는다. 상세한 설명은 기재된 기술들의 이해를 제공할 목적으로 특정 상세들을 포함한다. 하지만, 이들 기술들은 이들 특정 상세들 없이 실시될 수도 있다. 일부 경우들에서, 널리 공지된 구조들 및 디바이스들은 설명된 예들의 개념들을 불명료하게 하는 것을 회피하기 위해 블록도 형태로 도시된다.
첨부된 도면들에 있어서, 유사한 컴포넌트들 또는 특징들은 동일한 참조 라벨을 가질 수도 있다. 또한, 동일한 타입의 다양한 컴포넌트들은 참조 라벨 다음에 유사한 컴포넌트들을 구별하는 대시 (dash) 및 제 2 라벨이 후속함으로써 구별될 수도 있다. 제 1 참조 라벨 만이 명세서에서 사용되는 경우, 설명은 제 2 참조 라벨과 관계없이 동일한 제 1 참조 라벨을 갖는 유사한 컴포넌트들 중 임의의 하나에 적용가능하다.
본 명세서에서 설명된 정보 및 신호들은 임의의 다양한 서로 다른 기술들 및 기법들을 이용하여 표현될 수도 있다. 예를 들어, 위의 설명 전반에 걸쳐 언급될 수도 있는 데이터, 명령, 커맨드, 정보, 신호, 비트, 심볼, 및 칩은 전압, 전류, 전자기파, 자기장 또는 자기입자, 광학장 또는 광학 입자, 또는 이들의 임의의 조합에 의해 표현될 수도 있다.
본원의 개시와 연계하여 설명된 다양한 예시적인 논리 블록들 및 모듈들은 범용 프로세서, DSP, ASIC, FPGA 또는 다른 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본원에 설명된 기능들을 수행하도록 설계된 이들의 임의의 조합에 의해 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안적으로, 그 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로컨트롤러, 또는 상태 머신일 수도 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합 (예를 들어, DSP 와 마이크로프로세서의 조합, 다중의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성) 으로서 구현될 수도 있다.
본 명세서에서 설명된 기능들은 하드웨어, 프로세서에 의해 실행된 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 프로세서에 의해 실행된 소프트웨어로 구현되는 경우, 그 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 매체 상에 저장되거나 그것을 통해 송신될 수도 있다. 다른 예들 및 구현들은 본 개시 및 첨부된 청구항들의 범위 내에 있다. 예를 들어, 소프트웨어의 성질에 기인하여, 전술된 기능들은, 프로세서에 의해 실행되는 소프트웨어, 하드웨어, 펌웨어, 하드와이어링, 또는 이들 중의 임의의 조합들을 이용하여 구현될 수 있다. 기능들을 구현하는 특징들은 또한, 기능들의 부분들이 상이한 물리적 위치들에서 구현되도록 분산되는 것을 포함한, 다양한 포지션들에서 물리적으로 위치될 수도 있다. 또한, 청구항들을 포함하여 본 명세서에서 사용된 바와 같이, 항목들의 리스트 (예를 들어, "중 적어도 하나" 또는 "중 하나 이상"과 같은 구절에 의해 시작되는 항목들의 리스트) 에서 사용된 바와 같은 "또는"은, 예를 들어, A, B, 또는 C 중 적어도 하나의 리스트가 A 또는 B 또는 C 또는 AB 또는 AC 또는 BC 또는 ABC (즉, A 와 B 와 C) 를 의미하도록 하는 포괄적인 리스트를 표시한다. 또한, 본 명세서에 사용된 바와 같이, 어구 "에 기초하여" 는 조건들의 폐쇄된 세트에 대한 언급으로서 해석되지 않아야 한다. 예를 들어, "조건 A 에 기초하여" 로서 설명되는 예시적인 단계는 본 개시의 범위로부터 일탈함 없이 조건 A 와 조건 B 양자 모두에 기초할 수도 있다. 다시 말해서, 본 명세서에서 사용된 바와 같이, 어구 "에 기초하여" 는 어구 "에 적어도 부분적으로 기초하여" 와 동일한 방식으로 해석되어야 한다.
컴퓨터 판독 가능 매체는 한 장소로부터 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 비일시적 컴퓨터 저장 매체 및 통신 매체를 모두 포함한다. 비일시적 저장 매체는 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수도 있다. 제한이 아닌 일 예로, 비일시적 컴퓨터 판독가능 매체들은 RAM, ROM, 전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리 (EEPROM), 콤팩트 디스크 (CD) ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 저장 디바이스들, 또는 원하는 프로그램 코드 수단을 명령들 또는 데이터 구조들의 형태로 수록 또는 저장하는데 사용될 수 있고 범용 또는 특수 목적 컴퓨터, 또는 범용 또는 특수 목적 프로세서에 의해 액세스될 수 있는 임의의 다른 비일시적 매체를 포함할 수 있다. 또한, 임의의 연결이 적절히 컴퓨터 판독가능 매체로 불린다. 예를 들어, 소프트웨어가 웹사이트, 서버, 또는 다른 원격 소스로부터 동축 케이블, 광섬유 케이블, 트위스티드 페어, 디지털 가입자 회선 (DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 사용하여 송신되면, 매체의 정의에는 동축 케이블, 광섬유 케이블, 트위스티드 페어, DSL, 또는 적외선, 무선 및 마이크로파와 같은 무선 기술들이 포함된다. 본 명세서에서 사용된 바와 같은, 디스크 (disk) 및 디스크 (disc) 는 CD, 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루-레이 디스크를 포함하며, 여기서 디스크 (disk) 들은 보통 데이터를 자기적으로 재생하는 한편, 디스크 (disc) 들은 레이저들로 데이터를 광학적으로 재생한다. 상기의 조합들이 또한, 컴퓨터 판독가능 매체들의 범위 내에 포함된다.
본 명세서에서의 개시와 관련하여 설명된 다양한 예시적인 블록들 및 모듈들은 범용 프로세서, 디지털 신호 프로세서 (DSP), ASIC, 필드 프로그래밍가능 게이트 어레이 (FPGA) 또는 다른 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본 명세서에서 설명된 기능들을 수행하도록 설계된 이들의 임의의 조합으로 구현 또는 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안적으로, 그 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로컨트롤러, 또는 상태 머신일 수도 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합 (예를 들어, DSP 와 마이크로프로세서의 조합, 다중의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성) 으로서 구현될 수도 있다. 각 유닛의 기능들은 또한, 전체적으로 또는 부분적으로, 메모리에 수록되고 하나 이상의 범용 또는 애플리케이션 특정 프로세서들에 의해 실행되도록 포맷팅된 명령들로 구현될 수도 있다.
첨부된 도면들에 있어서, 유사한 컴포넌트들 또는 특징들은 동일한 참조 라벨을 가질 수도 있다. 또한, 동일한 타입의 다양한 컴포넌트들은 참조 라벨 다음에 유사한 컴포넌트들을 구별하는 대시 및 제 2 라벨이 후속함으로써 구별될 수도 있다. 제 1 참조 라벨 만이 명세서에서 사용되는 경우, 설명은 제 2 참조 라벨과 관계없이 동일한 제 1 참조 라벨을 갖는 유사한 컴포넌트들 중 임의의 하나에 적용가능하다.
본 명세서에서의 설명은 당업자로 하여금 본 개시를 제조 또는 이용할 수 있도록 제공된다. 본 개시에 대한 다양한 수정들은 당업자들에게 용이하게 명백할 것이며, 본 명세서에서 정의된 일반적인 원리들은 본 개시의 범위로부터의 일탈 없이 다른 변동들에 적용될 수도 있다. 따라서, 본 개시는 본 명세서에서 설명된 예들 및 설계들로 한정되지 않으며, 본 명세서에서 개시된 원리들 및 신규한 특징들과 일치하는 최광의 범위를 부여받아야 한다.

Claims (23)

  1. 액세스 클라이언트에서의 데이터 보안을 위한 방법으로서,
    액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 서버에 송신하는 단계;
    상기 액세스 요청을 송신하는 것에 적어도 부분적으로 기초하여 상기 서버로부터, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 수신하는 단계;
    상기 액세스 클라이언트에 의해, 상기 하나 이상의 액세스 키들을 사용하여 상기 파일을 액세스하기 위해 상기 실행가능 코드를 실행하는 단계; 및
    상기 액세스 클라이언트와 연관된 메모리로부터 상기 액세스 패키지를 제거하는 단계를 포함하는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  2. 제 1 항에 있어서,
    상기 액세스 요청을 송신하는 단계는,
    암호화 요청 및 상기 파일 정보를 상기 서버에 송신하는 단계를 포함하는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  3. 제 2 항에 있어서,
    상기 액세스 패키지를 수신하는 단계는,
    상기 파일과 연관된 하나 이상의 파일 액세스 정책들의 표시를 포함하는 데이터 팩을 포함하는 상기 액세스 패키지를 수신하는 단계를 포함하고,
    상기 데이터 팩은 상기 하나 이상의 액세스 키들을 사용하여 상기 파일과 함께 암호화되는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  4. 제 3 항에 있어서,
    상기 하나 이상의 파일 액세스 정책들은 판독 액세스, 기입 액세스, 디스플레이 제약들, 또는 이들의 조합을 포함하는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  5. 제 2 항에 있어서,
    상기 액세스 패키지를 수신하는 단계는,
    상기 파일과 연관된 소유 정보의 표시를 포함하는 데이터 팩을 포함하는 상기 액세스 패키지를 수신하는 단계를 포함하고,
    상기 데이터 팩은 상기 하나 이상의 액세스 키들을 사용하여 상기 파일과 함께 암호화되는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  6. 제 2 항에 있어서,
    상기 암호화 요청을 송신하는 것은,
    상기 파일에 연관된 하나 이상의 파일 액세스 정책들의 표시를 상기 서버에 송신하는 것을 포함하는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  7. 제 2 항에 있어서,
    상기 실행가능 코드를 실행하는 단계는,
    상기 실행가능 코드를 사용하여, 페이로드 및 하나 이상의 데이터 팩들을 상기 하나 이상의 액세스 키들을 사용하여 암호화하여 암호화된 파일을 생성하는 단계를 포함하는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  8. 제 7 항에 있어서,
    상기 하나 이상의 데이터 팩들을 암호화하는 것은,
    하나 이상의 파일 액세스 정책들, 파일 소유 정보, 파일 액세스 감사 로그, 또는 이들의 조합의 표시를 포함하는 상기 하나 이상의 데이터 팩들을 암호화하는 것을 포함하는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  9. 제 1 항에 있어서,
    상기 액세스 요청을 송신하는 단계는,
    복호화 요청 및 상기 파일 정보를 상기 서버에 송신하는 단계를 포함하며,
    상기 실행가능 코드는 상기 파일을 복호화하기 위해 사용되는 코드를 포함하는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  10. 제 9 항에 있어서,
    상기 액세스 패키지를 수신하는 단계는,
    하나 이상의 업데이트된 파일 액세스 정책들을 포함하는 데이터 팩을 포함하는 상기 액세스 패키지를 수신하는 단계를 포함하는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  11. 제 9 항에 있어서,
    상기 액세스 클라이언트에서, 액세스 클라이언트 정보, 컴퓨터 정보, 디바이스 정보, 지리위치 정보, 인증 토큰, 또는 이들의 조합을 포함하는 검증 정보를 식별하는 단계를 더 포함하고,
    상기 복호화 요청은 상기 검증 정보의 표시를 포함하는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  12. 제 9 항에 있어서,
    상기 파일과 연관된 메타데이터에 적어도 부분적으로 기초하여 상기 파일이 상기 액세스 클라이언트와 연관됨을 식별하는 단계를 더 포함하고,
    상기 파일은 상기 하나 이상의 액세스 키들 중 제 1 키를 사용하여 암호화된 페이로드 및 상기 하나 이상의 액세스 키들 중 적어도 하나의 제 2 키를 사용하여 암호화된 하나 이상의 암호화된 데이터 팩들을 포함하고, 상기 복호화 요청은 상기 파일이 상기 액세스 클라이언트와 연관되는 것에 적어도 부분적으로 기초하여 상기 서버에 송신되는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  13. 제 9 항에 있어서,
    상기 실행가능 코드를 실행하는 단계는,
    상기 하나 이상의 액세스 키들을 사용하여 상기 파일을 복호화하는 단계를 포함하는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  14. 제 13 항에 있어서,
    상기 액세스 클라이언트에서, 상기 파일과 연관된 하나 이상의 액세스 정책들에 따라 상기 파일의 페이로드를 디스플레이하는 단계를 더 포함하는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  15. 제 14 항에 있어서,
    상기 하나 이상의 파일 액세스 정책들은 판독 액세스, 기입 액세스, 디스플레이 제약들, 또는 이들의 조합을 포함하는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  16. 제 14 항에 있어서,
    상기 하나 이상의 액세스 정책들은 상기 하나 이상의 액세스 키들을 사용하여 상기 파일과 함께 복호화된 데이터 팩에 포함되는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  17. 제 13 항에 있어서,
    상기 액세스 클라이언트와 연관된 디바이스 정보, 사용자 정보, 지리적 위치 정보, 또는 이들의 조합을 포함하도록 파일 액세스 감사 로그를 업데이트하는 단계를 더 포함하는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  18. 제 13 항에 있어서,
    상기 파일을 복호화하는 것에 적어도 부분적으로 기초하여, 페이로드 및 상기 파일 내의 하나 이상의 데이터 팩들을 식별하는 단계를 더 포함하고,
    상기 하나 이상의 데이터 팩들은 하나 이상의 파일 액세스 정책들, 소유 정보, 파일 액세스 감사 로그, 또는 이들의 조합의 표시를 포함하는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  19. 제 1 항에 있어서,
    상기 실행가능 코드를 실행하는 것에 적어도 부분적으로 기초하여, 상기 액세스 클라이언트와 연관된 상기 메모리에서, 상기 파일을 복호화 또는 암호화하기 위해 사용되는 액세스 객체를 인스턴스화하는 단계를 더 포함하고,
    상기 액세스 객체는 상기 파일의 복호화 또는 암호화 후에 상기 액세스 클라이언트와 연관된 상기 메모리로부터 제거되는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  20. 제 1 항에 있어서,
    복호화 요청 및 상기 파일 정보를 상기 서버에 송신하는 단계를 더 포함하고,
    상기 실행가능 코드는 상기 파일의 콘텐츠를 덮어쓰기 위해 사용되는 코드를 포함하는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  21. 제 1 항에 있어서,
    상기 액세스 요청을 송신하는 단계는,
    상기 액세스 클라이언트를 실행하는 사용자 디바이스의 지리적 위치, 상기 사용자 디바이스와 연관된 디바이스 정보, 상기 사용자 디바이스와 연관된 네트워크 정보, 상기 액세스 클라이언트와 연관된 인증 토큰, 또는 이들의 조합을 포함하는 상기 액세스 정보를 포함하는 상기 액세스 요청을 송신하는 단계를 포함하는, 액세스 클라이언트에서의 데이터 보안을 위한 방법.
  22. 액세스 클라이언트에서의 데이터 보안을 위한 장치로서,
    프로세서;
    상기 프로세서와 커플링된 메모리; 및
    상기 메모리에 저장된 명령들을 포함하고,
    상기 명령들은 상기 장치로 하여금:
    액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 서버에 송신하게 하고;
    상기 액세스 요청을 송신하는 것에 적어도 부분적으로 기초하여 상기 서버로부터, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 수신하게 하며;
    상기 액세스 클라이언트에 의해, 상기 하나 이상의 액세스 키들을 사용하여 상기 파일을 액세스하기 위해 상기 실행가능 코드를 실행하게 하고; 그리고
    상기 액세스 클라이언트와 연관된 메모리로부터 상기 액세스 패키지를 제거하게 하도록
    상기 프로세서에 의해 실행가능한, 액세스 클라이언트에서의 데이터 보안을 위한 장치.
  23. 액세스 클라이언트에서의 데이터 보안을 위한 코드를 저장하는 비일시적 컴퓨터 판독가능 매체로서,
    상기 코드는:
    액세스 정보 및 액세스될 파일에 대한 파일 정보를 포함하는 액세스 요청을 서버에 송신하고;
    상기 액세스 요청을 송신하는 것에 적어도 부분적으로 기초하여 상기 서버로부터, 실행가능 코드 및 하나 이상의 액세스 키들을 포함하는 액세스 패키지를 수신하며;
    상기 액세스 클라이언트에 의해, 상기 하나 이상의 액세스 키들을 사용하여 상기 파일을 액세스하기 위해 상기 실행가능 코드를 실행하고; 그리고
    상기 액세스 클라이언트와 연관된 메모리로부터 상기 액세스 패키지를 제거하도록
    프로세서에 의해 실행가능한 명령들을 포함하는, 비일시적 컴퓨터 판독가능 매체.
KR1020237012462A 2020-09-22 2021-09-22 암호화된 파일 제어 KR20230098156A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063081763P 2020-09-22 2020-09-22
US63/081,763 2020-09-22
PCT/US2021/051562 WO2022066775A1 (en) 2020-09-22 2021-09-22 Encrypted file control
US17/482,010 2021-09-22
US17/482,010 US20220092193A1 (en) 2020-09-22 2021-09-22 Encrypted file control

Publications (1)

Publication Number Publication Date
KR20230098156A true KR20230098156A (ko) 2023-07-03

Family

ID=80740441

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237012462A KR20230098156A (ko) 2020-09-22 2021-09-22 암호화된 파일 제어

Country Status (9)

Country Link
US (1) US20220092193A1 (ko)
EP (1) EP4218204A1 (ko)
JP (1) JP2023543773A (ko)
KR (1) KR20230098156A (ko)
CN (1) CN116686316A (ko)
AU (1) AU2021347175A1 (ko)
CA (1) CA3196276A1 (ko)
IL (1) IL301570A (ko)
WO (1) WO2022066775A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12001822B2 (en) * 2021-02-01 2024-06-04 Capital One Services, Llc Multi-signature validation of deployment artifacts

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030154381A1 (en) * 2002-02-12 2003-08-14 Pervasive Security Systems, Inc. Managing file access via a designated place
US20050071657A1 (en) * 2003-09-30 2005-03-31 Pss Systems, Inc. Method and system for securing digital assets using time-based security criteria
US7523507B2 (en) * 2004-05-27 2009-04-21 Nokia Corporation Delivery of non-permanent media files to a mobile station
US8909924B2 (en) * 2006-11-30 2014-12-09 Dapict, Inc. Digital asset management system
US8560785B1 (en) * 2008-06-02 2013-10-15 Symantec Corporation Techniques for providing multiple levels of security for a backup medium
US8250379B2 (en) * 2009-10-13 2012-08-21 Microsoft Corporation Secure storage of temporary secrets
US8910278B2 (en) * 2010-05-18 2014-12-09 Cloudnexa Managing services in a cloud computing environment
KR101705550B1 (ko) * 2014-04-15 2017-02-10 (주)나무소프트 보안 저장 영역에 대한 응용 프로그램의 접근 제어 방법 및 장치
CN105653909B (zh) * 2016-01-26 2018-09-25 腾讯科技(深圳)有限公司 信息处理方法、第一终端、第二终端、服务器及系统
US10798073B2 (en) * 2016-08-26 2020-10-06 Nicira, Inc. Secure key management protocol for distributed network encryption
US9817675B1 (en) * 2017-01-31 2017-11-14 Hytrust, Inc. Methods and systems for attaching an encrypted data partition during the startup of an operating system
US10268842B2 (en) * 2017-02-21 2019-04-23 Motorola Solutions, Inc. Device for operating a camera in a private mode and a non-private mode
US11258798B2 (en) * 2018-02-27 2022-02-22 Thales Dis France Sas Method, entity and system for managing access to data through a late dynamic binding of its associated metadata

Also Published As

Publication number Publication date
CN116686316A (zh) 2023-09-01
US20220092193A1 (en) 2022-03-24
EP4218204A1 (en) 2023-08-02
IL301570A (en) 2023-05-01
WO2022066775A1 (en) 2022-03-31
JP2023543773A (ja) 2023-10-18
AU2021347175A1 (en) 2023-05-25
CA3196276A1 (en) 2022-03-31

Similar Documents

Publication Publication Date Title
US11704427B2 (en) Systems and methods for providing data loss prevention via an embedded browser
US11895096B2 (en) Systems and methods for transparent SaaS data encryption and tokenization
US8631460B2 (en) Systems and methods for implementing transparent encryption
US20190205317A1 (en) Systems and methods for secure storage and retrieval of data objects
US11290446B2 (en) Access to data stored in a cloud
CN109923548A (zh) 通过监管进程访问加密数据实现数据保护的方法、系统及计算机程序产品
US8572372B2 (en) Method for selectively enabling access to file systems of mobile terminals
CN112313919A (zh) 用于使用嵌入式浏览器添加水印的系统和方法
US10061932B1 (en) Securing portable data elements between containers in insecure shared memory space
US11841931B2 (en) Systems and methods for dynamically enforcing digital rights management via embedded browser
JP2003228519A (ja) デジタル資産にパーベイシブ・セキュリティを提供する方法及びアーキテクチャ
JP2011507414A (ja) データの安全を保護するためのシステムおよび方法
CN112868212A (zh) 用于html应用的改进的远程显示协议的系统和方法
CN113260980B (zh) 用于实时saas对象的系统和方法
US20220092193A1 (en) Encrypted file control
EP3651034B1 (en) Systems and methods for watermarking audio of saas applications
US11450069B2 (en) Systems and methods for a SaaS lens to view obfuscated content
CN113169998A (zh) 用于经由中间装置的片上系统进行流量优化的系统和方法
WO2019173774A1 (en) Systems and methods for secure storage and retrieval of data objects
TR2023006911T2 (tr) Şi̇freli̇ dosya kontrolü
Cabianca Ensuring Data Protection

Legal Events

Date Code Title Description
A201 Request for examination