KR20180059946A - 프라이버시를 보존하면서 민감한 정보 유출을 검출하기 위한 시스템들 및 방법들 - Google Patents

프라이버시를 보존하면서 민감한 정보 유출을 검출하기 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR20180059946A
KR20180059946A KR1020187014276A KR20187014276A KR20180059946A KR 20180059946 A KR20180059946 A KR 20180059946A KR 1020187014276 A KR1020187014276 A KR 1020187014276A KR 20187014276 A KR20187014276 A KR 20187014276A KR 20180059946 A KR20180059946 A KR 20180059946A
Authority
KR
South Korea
Prior art keywords
host
encrypted
information
software agent
data communication
Prior art date
Application number
KR1020187014276A
Other languages
English (en)
Other versions
KR101928913B1 (ko
Inventor
이반 메드베데브
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20180059946A publication Critical patent/KR20180059946A/ko
Application granted granted Critical
Publication of KR101928913B1 publication Critical patent/KR101928913B1/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/08Insurance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/26Government or public services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • H04W12/033Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/80Arrangements enabling lawful interception [LI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Technology Law (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Primary Health Care (AREA)
  • Educational Administration (AREA)
  • Human Resources & Organizations (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

프라이버시-보존 데이터 손실 검출을 위한 시스템들 및 방법들은 온라인 데이터 세트를 생성하도록 후보 데이터 유출에 대해 온라인 정보의 스윕(sweep)을 수행하는 단계; 상기 온라인 정보가 상기 후보 데이터 유출이라고 결정하도록 상기 온라인 데이터 세트를 분석하는 단계; 상기 호스트가 데이터 통신을 암호화하고 호스트-암호화된 데이터 통신을 상기 기업의 소프트웨어 에이전트에 제공하는 단계; 상기 호스트-암호화된 데이터 통신을 수신하는 것에 대한 응답으로, 상기 소프트웨어 에이전트는 기업 정보의 데이터베이스를 암호화하고 상기 호스트-암호화된 데이터 통신을 재-암호화하고 이를 상기 호스트에 제공하는 단계; 소프트웨어 에이전트-암호화된 데이터 통신을 생성하도록 상기 호스트가 상기 재-암호화된 데이터 통신의 호스트-암호화된 측면을 복호화하는 단계; 정보의 암호화된 데이터베이스와 상기 소프트웨어 에이전트-암호화된 데이터 통신 사이에 매칭이 존재하는지를 결정하는 단계; 및 상기 매칭이 존재하는지에 기초하여, 상기 소프트웨어 에이전트가 제1 액션을 취하거나 상기 호스트가 제2 액션을 취하는 단계를 포함한다.

Description

프라이버시를 보존하면서 민감한 정보 유출을 검출하기 위한 시스템들 및 방법들
[01] 기술분야
[02] 본원에서 논의되는 청구 대상은 일반적으로 프라이버시(privacy)를 보존하면서도 민감한 정보의 유출을 검출하는 방법들 및 시스템들에 관한 것으로, 특히 사적 정보를 보호하는 방식으로 대규모 데이터 유출을 검출하기 위한 외부 호스트와 기업 간의 프로토콜에 관한 것이다.
[03] 종래 기술
[04] 관련 기술에서, 민감한 사용자 데이터와 연관된 온라인 정보 침해는 규모 및 비용의 증가와 함께 발생한다. 예를 들어, 온라인 엔티티들인 기업들, 예컨대, 소매업체들, 보험회사들 및 정부 기관들은 개별 사용자들과 연관된 민감한 정보의 대규모 손실들(또는 유출)을 경험할 수 있다. 예를 들어, 제3자가 신용 카드 번호, 사회 보장 번호 또는 어카운트(account) 정보를 도용(예를 들어, 해킹)하거나 민감한 정보를 공개적으로 디스플레이하거나 인가되지 않은 방식으로 민감한 정보를 판매하려고 시도할 수 있다.
[05] 민감한 데이터 유출과 연관된 침해는 규모가 크고(예를 들어, 수백만의 온라인 사용자 어카운트들) 신속하게 발생하며 온라인 엔티티(예를 들어, 기업)는 물론, 개별 사용자에 대한 손실을 야기할 수 있다. 추가로, 기업이 스스로 유출을 검출하는 것이 어렵거나 불가능할 수 있다. 유출이 검출되더라도, 유출 이벤트와 유출 이벤트의 검출 사이에 상당한 시간 지연이 있을 수 있다.
[06] 위의 문제를 해결하기 위해, 관련 기술 접근법들이 사용될 수 있다. 예를 들어, 엔티티(예를 들어, 기업, 예컨대, 온라인 소매업체 또는 에이전시(그러나 이에 제한되지 않음))는 호스트와 접촉하고 온라인 데이터 손실에 대한 표시를 호스트에 제공할 수 있다. 제한이 아니라 예를 들면, 기업은 신용 카드 번호들이 클라이언트로부터 유출되었을 수 있다고 결정하고 유출이 발생했는지를 호스트가 결정하기를 원한다고 호스트에게 표시할 수 있다.
[07] 요청에 대한 응답으로, 관련 기술 호스트는 온라인으로 신용 카드 번호를 검색할 수 있지만 프라이버시-보존 방식으로 이를 행할 수는 없다. 추가로, 위에서 설명된 바와 같이, 침해와 기업이 침해를 알게 되는 것 간의 시간 갭이 존재한다. 부가적으로, 일부 온라인 기업들은 그 자신의 모니터링 툴들을 사용하여 침해를 검출할 수 없다.
[08] 따라서, 기업은, 프라이버시를 보존하도록 실제 민감한 정보를 호스트(호스트는 데이터 손실의 소스를 모름)에 제공하지 않고 데이터 손실(예를 들어, 대규모)이 있었는지에 관하여 호스트가 빠르게 결정을 내릴 수 있게 할 필요가 있다.
[09] 청구 대상은 데이터 유출을 검출하기 위한 컴퓨터-구현 방법들을 포함하며, 데이터 유출을 검출하는 컴퓨터-구현 방법은, 기업의 방화벽 외부의 호스트에 의해, 온라인 데이터 세트를 생성하도록 후보 데이터 유출에 대해 온라인 정보의 스윕(sweep)을 수행하는 단계; 호스트가, 온라인 데이터의 콘텍스트에 기초하여, 온라인 정보가 후보 데이터 유출이라고 결정하도록 온라인 데이터 세트의 분석을 수행하는 단계; 호스트가 데이터 통신을 암호화하고 호스트-암호화된 데이터 통신을 기업의 소프트웨어 에이전트에 제공하는 단계; 호스트-암호화된 데이터 통신을 수신하는 것에 대한 응답으로 그리고 공통 암호화 키를 이용함으로써, 소프트웨어 에이전트가 기업 정보의 데이터베이스를 암호화하고 호스트-암호화된 데이터 통신을 재-암호화하는 단계; 기업 통신의 소프트웨어 에이전트-암호화된 데이터베이스 및 재-암호화된 데이터 통신을 호스트에 제공하는 단계; 소프트웨어 에이전트-암호화된 데이터 통신을 생성하도록 호스트가 재-암호화된 데이터 통신의 호스트-암호화된 측면(aspect)을 복호화하는 단계; 정보의 암호화된 데이터베이스와 소프트웨어 에이전트-암호화된 데이터 통신 사이에 매칭이 존재하는지를 결정하도록 매칭 동작(matching operation)을 수행하는 단계; 매칭이 존재하는 것으로 결정되는 경우, 호스트가 소프트웨어 에이전트에 매칭을 보고하고, 소프트웨어 에이전트가 제1 액션(action)을 취하는 단계; 및 매칭이 존재하지 않는 것으로 결정되는 경우, 호스트가 제2 액션을 취하는 단계를 포함한다.
[10] 청구 대상은 또한, 기업의 소프트웨어 에이전트에는 온라인 어카운트로부터 비롯된 데이터 통신을 암호화하는, 호스트에 의해 사용되는 키가 제공되지 않고, 호스트에는 소프트웨어 에이전트의 공통 암호화 키가 제공되지 않는 것을 포함한다.
[11] 청구 대상에 따라, 매칭 동작을 수행하는 단계는 프라이버시 보존 세트 교점 알고리즘(privacy preserving set intersection algorithm)을 적용하는 단계를 포함한다. 추가로, 호스트는 데이터 통신을 부분적으로 암호화하고, 데이터 통신의 암호화되지 않은 부분을 평문으로 남겨두고, 부분적으로 암호화된 데이터 통신 및 평문을 소프트웨어 에이전트에 제공한다.
[12] 부가적으로, 청구 대상에 따라, 소프트웨어 에이전트는 암호화된 데이터베이스에 노이즈(noise)를 부가하고 노이즈를 갖는 암호화된 데이터베이스를 호스트에 전송한다. 또한, 온라인 정보의 스윕은 인터넷의 웹 스윕이고, 인터넷의 웹 스윕은 미리 정해진 기간에 이루어진다.
[13] 추가로, 청구 대상은, 소프트웨어 에이전트가 호스트-암호화된 데이터 통신의 재-암호화 동안 호스트-암호화된 데이터 통신의 값들을 재-순서화(re-order)하는 단계를 포함한다. 부가적으로, 호스트가 소프트웨어 에이전트에 매칭을 보고하는 단계는, 호스트가, 매칭들의 수, 암호화된 매칭 후보 유출된 정보, 및 후보 데이터 유출의 소스와 연관된 정보 중 적어도 하나를 소프트웨어 에이전트에 제공하는 단계를 포함한다.
[14] 청구 대상은 추가로, 후보 데이터 유출의 소스와 연관된 정보가 후보 데이터 유출의 소스로서 웹 스윕 동안 식별된 URL(Uniform Resource Locator) 및 URL과 연관된 메타데이터 중 적어도 하나를 포함하는 것을 포함한다.
[15] 청구 대상은 또한, 기업의 방화벽 외부의 호스트에서 데이터 유출을 검출하는 컴퓨터-구현 방법에 관한 것이며, 이 방법은, 기업의 방화벽 외부의 호스트에 의해, 온라인 데이터 세트를 생성하도록 후보 데이터 유출에 대해 온라인 정보의 스윕을 수행하는 단계; 호스트가, 온라인 데이터의 콘텍스트에 기초하여, 온라인 정보가 후보 데이터 유출이라고 결정하도록 온라인 데이터 세트의 분석을 수행하는 단계; 데이터 통신을 암호화하고 호스트-암호화된 데이터 통신을 기업의 소프트웨어 에이전트에 제공하는 단계; 기업 통신의 소프트웨어 에이전트-암호화된 데이터베이스 및 소프트웨어 에이전트에 의해 재-암호화된 호스트-암호화된 데이터 통신을 수신하는 단계; 소프트웨어 에이전트-암호화된 데이터 통신을 생성하도록 재-암호화된 데이터 통신의 호스트-암호화된 측면을 복호화하는 단계; 정보의 암호화된 데이터베이스와 소프트웨어 에이전트-암호화된 데이터 통신 사이에 매칭이 존재하는지를 결정하도록 매칭 동작을 수행하는 단계; 매칭이 존재하는 것으로 결정되는 경우, 매칭을 소프트웨어 에이전트에 보고하는 단계; 및 매칭이 존재하지 않는 것으로 결정되는 경우, 호스트가 액션을 취하는 단계를 포함한다.
[16] 청구 대상에 따라, 매칭 동작을 수행하는 단계는 프라이버시 보존 세트 교점 알고리즘을 적용하는 단계를 포함한다.
[17] 추가로, 청구 대상에 따라, 호스트가 소프트웨어 에이전트에 매칭을 보고하는 단계는, 호스트가, 매칭들의 수, 암호화된 매칭 후보 유출된 정보, 및 후보 데이터 유출의 소스와 연관된 정보 중 적어도 하나를 소프트웨어 에이전트에 제공하는 단계를 포함한다.
[18] 부가적으로, 청구 대상은, 인터넷의 웹 스윕인 온라인 정보의 스윕 및 미리 정해진 기간에 이루어지는 인터넷의 웹 스윕을 포함한다.
[19] 소프트웨어 에이전트를 갖는 기업으로부터 데이터 유출을 검출하는 컴퓨터-구현 방법으로서, 방법은,
[20] 기업의 방화벽 외부의 호스트로부터, 후보 데이터 유출과 연관된 온라인 소스로부터 비롯된 호스트-암호화된 데이터 통신을 수신하는 단계;
[21] 공통 암호화 키를 사용하여, 기업 정보의 데이터베이스를 암호화하고 호스트-암호화된 데이터 통신을 재-암호화하는 단계;
[22] 기업 통신의 암호화된 데이터베이스 및 재-암호화된 데이터 통신을 호스트에 제공하는 단계;
[23] 정보의 암호화된 데이터베이스와 재-암호화된 데이터 통신 사이에 매칭이 존재한다는 것을 표시하는 호스트로부터의 리포트를 수신하는 단계; 및
[24] 제1 액션을 취하는 단계를 포함한다.
[25] 청구 대상에 따라, 기업의 소프트웨어 에이전트에는 온라인 어카운트로부터 비롯된 데이터 통신을 암호화하는, 호스트에 의해 사용되는 키가 제공되지 않고, 호스트에는 소프트웨어 에이전트의 공통 암호화 키가 제공되지 않는다.
[26] 청구 대상은 또한, 소프트웨어 에이전트는 암호화된 데이터베이스에 노이즈를 부가하고 노이즈를 갖는 암호화된 데이터베이스를 호스트에 전송하는 단계를 포함한다.
[27] 추가로, 청구 대상은, 소프트웨어 에이전트가 호스트-암호화된 데이터 통신의 재-암호화 동안 호스트-암호화된 데이터 통신의 값들을 재-순서화(re-order)하는 단계를 포함한다.
[28] 청구 대상에 따라, 소프트웨어 에이전트에 의한 제1 액션은 데이터 유출이 기업과 연관된다는 경보를 기관(authority)에 제공하는 것을 포함한다.
[29] 청구 대상은 또한, 기업의 방화벽 외부의 호스트에서 데이터 유출을 검출하기 위한 시스템을 포함하며, 이 시스템은, 하드웨어 프로세서를 포함하고 컴퓨터-판독 가능 매체 상에 저장된 실행 가능 명령들을 갖는, 기업의 방화벽 외부의 호스트; 및 하드웨어 프로세서를 포함하고 컴퓨터-판독 가능 매체 상에 저장된 실행 가능 명령들을 갖는 기업을 포함하고, 호스트의 명령들은, 기업의 방화벽 외부의 호스트에 의해, 온라인 데이터 세트를 생성하도록 후보 데이터 유출에 대해 온라인 정보의 스윕을 수행하는 것; 호스트가, 온라인 데이터의 콘텍스트에 기초하여, 온라인 정보가 후보 데이터 유출이라고 결정하도록 온라인 데이터 세트의 분석을 수행하는 것; 데이터 통신을 암호화하고 호스트-암호화된 데이터 통신을 기업의 소프트웨어 에이전트에 제공하는 것; 기업 통신의 소프트웨어 에이전트-암호화된 데이터베이스 및 소프트웨어 에이전트에 의해 재-암호화된 호스트-암호화된 데이터 통신을 수신하는 것; 소프트웨어 에이전트-암호화된 데이터 통신을 생성하도록 재-암호화된 데이터 통신의 호스트-암호화된 측면을 복호화하는 것; 정보의 암호화된 데이터베이스와 소프트웨어 에이전트-암호화된 데이터 통신 사이에 매칭이 존재하는지를 결정하도록 매칭 동작을 수행하는 것; 매칭이 존재하는 것으로 결정되는 경우, 매칭을 소프트웨어 에이전트에 보고하는 것; 그리고 매칭이 존재하지 않는 것으로 결정되는 경우, 소프트웨어 에이전트가 제1 액션을 취하는 것을 포함하고, 기업의 명령들은, 기업의 방화벽 외부의 호스트로부터, 호스트-암호화된 데이터 통신을 수신하는 것; 공통 암호화 키를 사용하여, 기업 정보의 데이터베이스를 암호화하고 호스트-암호화된 데이터 통신을 재-암호화하고, 소프트웨어 에이전트-암호화된 데이터베이스 및 재-암호화된 데이터 통신을 호스트에 제공하는 것; 정보의 암호화된 데이터베이스와 소프트웨어 에이전트-암호화된 데이터 통신 사이에 매칭이 존재한다는 것을 표시하는 호스트로부터의 리포트를 수신하는 것; 및 제2 액션을 취하는 것을 포함한다.
[30] 추가로, 청구 대상에 따라, 기업의 소프트웨어 에이전트에는 온라인 어카운트로부터 비롯된 데이터 통신을 암호화하는, 호스트에 의해 사용되는 키가 제공되지 않고, 호스트에는 소프트웨어 에이전트의 공통 암호화 키가 제공되지 않는다.
[31] 도 1은 예시적인 구현에 따른 프로토콜을 갖는 클라이언트 및 호스트를 갖는 시스템을 도시한다.
[32] 도 2는 예시적인 구현에 따른 프로토콜에 대한 예를 도시한다.
[33] 도 3은 예시적인 구현에 따라 클라이언트 및 호스트를 포함하는 프로토콜의 예시적인 프로세스를 도시한다.
[34] 도 4는 예시적인 구현에 따른 호스트를 포함하는 프로토콜의 예시적인 프로세스를 도시한다.
[35] 도 5는 예시적인 구현에 따른 클라이언트를 포함하는 프로토콜의 예시적인 프로세스를 도시한다.
[36] 도 6은 일부 예시적인 구현들에 적합한 예시적인 환경을 도시한다.
[37] 도 7은 일부 예시적인 구현들에서 사용하기 위해 외부 호스트와 연관된 예시적인 컴퓨팅 디바이스를 갖는 예시적인 컴퓨팅 환경을 도시한다.
[38] 도 8은 일부 예시적인 구현들에서 사용하기 위해 클라이언트와 연관된 예시적인 컴퓨팅 디바이스를 갖는 예시적인 컴퓨팅 환경을 도시한다.
[39] 본원에서 설명되는 청구 대상은 예시적인 구현들에 의해 교시된다. 명료함을 위해 그리고 청구 대상을 모호하게 하는 것을 피하기 위해 다양한 세부 사항들이 생략되었다. 아래에 도시된 예들은 프라이버시를 보존하면서 데이터 손실 검출을 위한 시스템들 및 방법들을 구현하기 위한 구조들 및 기능들에 관한 것이다.
[40] 예시적인 구현들의 양상들은, 클라이언트(예를 들어, 기업, 예컨대, 소매업체 또는 정부 기관)가, 클라이언트의 사용자들과 연관된 민감한 정보가 유출(예를 들어, 도난)되었는지를 결정하도록 허용하는 것에 관한 것이다. 예를 들어, 데이터 유출은 대규모 데이터 유출(예를 들어, 수백만개의 어카운트들)일 수 있다. 클라이언트가 민감한 정보를 호스트에 드러내지 않고 그리고 클라이언트에게 제공될, 결정 프로세스로부터 발생할 수 있는 어떠한 잠재적으로 민감한 정보도 호스트가 제공하지 않고 호스트에 의해 결정이 내려진다.
[41] 제한이 아니라 예를 들면, 예시적인 구현은 기업에 민감한 정보를 제공한 사용자들과 함께, 기업과 같은 온라인 엔티티인 클라이언트를 포함할 수 있다. 예를 들어, 기업은 온라인 소매업체일 수 있으며, 사용자는 전자 지불을 사용하여, 예컨대, 신용 카드, 직불 카드, 모바일 디바이스 지불 시스템 또는 당업자들에 의해 이해될 바와 같은 다른 지불 방식에 의해 온라인 소매업체의 웹 사이트에서 구매를 하는 고객일 수 있다. 대안적으로, 기업은 에이전시(예를 들어, 세금, 자동차, 건강 관리)일 수 있고, 사용자는 민감한 정보(예를 들어, 사회 보장 번호, 운전면허증 정보, 보험 어카운트 번호들, 의학 조건들)를 포함하는, 해당 에이전시와의 온라인 트랜잭션을 갖는 개인들일 수 있다. 클라이언트는 호스트(예를 들어, 클라우드 컴퓨팅 또는 온라인 애플리케이션 플랫폼)에 의해 제공되는 온라인 호스팅 서비스들의 사용자일 수 있거나, 또는 클라이언트는 온라인 호스팅 서비스들의 사용자가 전혀 아닐 수 있다.
[42] 예시적인 구현에서, 호스트는 호스트와 연관된 데이터(예를 들어, 문서들)에서 클라이언트의 민감한 정보에 대한 온라인 검색을 수행하는 엔진을 포함한다. 호스트와 연관된 데이터는 내부적(예를 들어, 클라우드-기반 서비스에 저장되고 클라이언트와 연관됨) 또는 외부적(예를 들어, 인터넷 상에서 온라인으로 그리고 공개적으로 이용 가능함)일 수 있다. 예를 들어, 이용 가능한 온라인 데이터의 웹 스윕(web sweep)은, 클라이언트 또는 호스트와 연관된 위치에 대한 제한 없이, 데이터 유출 이벤트를 표시하는 인터넷 상의 위치(예를 들어, URL)에서 잠재적으로 민감한 정보를 검출하기 위해 콘텍스트 인식 패턴 매칭을 수행하도록 수행될 수 있다. 예시적인 구현에서, 데이터 유출에 책임이 있는 당사자(예를 들어, 해커와 같은 불량 행위자)의 아이덴티티는 알려지지 않을 수 있고, 잠재적으로 책임이 있는 당사자들에 관한 정보가 또한 이용 가능하지 않을 수 있다.
[43] 추가로, 클라이언트는 클라이언트의 보안 환경(호스트의 보안 온라인 환경을 포함함)에서 실행될 수 있는 에이전트를 포함한다. 에이전트는 아래에서 추가로 상세히 설명되는 바와 같이, 보안 세트 교점 프로토콜(secure set intersection protocol)을 용이하게 하도록 동작한다. 유사하게, 호스트는 또한 보안 세트 교점 프로토콜을 용이하게 하는 컴포넌트를 포함한다. 또한, 클라이언트가 정보(예를 들어, 보호될 민감한 정보에 대한 세팅들)를 제공하고 사용자에게 결정의 결과들(예를 들어, 데이터 유출 또는 데이터 도난 정보)을 제공하도록 허용하기 위해 사용자 인터페이스(UI)가 제공된다.
[44] 예시적인 구현들의 추가의 양상들은 보호 하의 당사자로부터의 보조를 통한 클래식 패턴 매칭 및 콘텍스트 인식 민감한 정보 검출을 포함해서, 데이터 유출, 손실 또는 과다공유를 검출 및/또는 방지하기 위한 시스템들 및 방법들에 관한 것이다. 시스템들 및 방법들은 자동적인 프라이버시 보존 방식으로 수행된다. 제한적이 아니라 예를 들면, 예시적인 시스템들 및 방법들은 프라이버시 보존 세트 교점 알고리즘을 포함(그러나 이에 제한되지 않음)하는 암호화(cryptography)를 사용할 수 있다. 보다 구체적으로는, 프라이버시 보존 세트 교점 알고리즘은 어느 당사자도 다른 당사자의 전체 데이터 세트에 관한 지식을 얻지 않고, 상이한 당사자들에 속하는 2개(또는 그 초과)의 데이터 세트들의 교점의 결정을 허용하는 알고리즘 또는 방법일 수 있다.
[45] 관련된 기술에서, 제1 회사(A)는 (예를 들어, 회사(B)와 연관된 법인 신용 카드 번호들과 같은(그러나 이에 제한되지 않음) 민감한 데이터의 손실을 식별하는) 데이터 유출 감지 서비스를 제공하고자 한다. 회사(A)는 회사(B)(예를 들어, 회사(B)의 사용자들 또는 어카운트 보유자들)와 연관된 민감한 정보처럼 보이는, 인터넷 상의 정보를 검출할 수 있다. 그러나 인터넷 상에서 사용 가능한 정보는 또한 민감한 정보가 아닌 정보(예를 들어, 노이즈)를 또한 포함한다.
[46] 회사(A)에 의해 결정된 바와 같은, 신용 카드 번호 및/또는 사회 보장 번호들과 같은 정보의 인가되지 않은 유출은, 회사(B)에 제공되는 경우, 개인적인 민감함 정보를 회사(B)에 노출할 수 있다. 회사(B)는 검출할 법인 신용 카드 번호들의 데이터베이스를 회사(A)에 제공함으로써 위의 이슈를 해결하지만, 이러한 액션은 회사(B)의 사적인 민감한 정보를 회사(A)에 노출할 것이다.
[47] 예시적인 구현들에 따라, 프라이버시 보존 세트 교점 프로토콜이 사용된다. 위의 예에서, 회사(A)는 회사(B)와 (예를 들어, 키를 공유하지 않고) 암호화된 결과들만을 공유하고, 회사(B)는 그의 키를 공유하지 않고 회사(A)와 암호화된 법인 카드 번호들만을 공유한다. 프라이버시 보존 세트 교점 프로토콜의 구현에 의존하여, 결과는 양 세트들에 존재하는 엘리먼트들의 수, 양 세트들에 존재하는 정확한 엘리먼트들의 리스트 및/또는 엘리먼트들의 소스와 연관된 정보(예를 들어, 회사(A)가 검색 프로세스에서 정보를 발견한 제3자 웹 사이트(제3자 웹 사이트는 온라인으로 판매되거나 디스플레이되는 도난된 민감한 정보의 소스임)의 URL(uniform resource locator))이다.
[48] 따라서, 세트들 그 자체는 어느 당사자에게도 드러나지 않는다. 그 결과, 조사결과들(findings)에 대한 패턴 매칭 및 웹 스윕과 연관된 실제 정보가 회사(B)에 보고되지 않기 때문에 개별 사용자들 및 회사(A)의 프라이버시가 보존되고, 법인 카드 데이터베이스가 회사(A)와 공유되지 않기 때문에 회사(B)의 프라이버시가 또한 보존된다.
[49] 위에서 설명된 원시적인(naive) 프로토콜을 구현하는 예시적인 사용 경우는 다음과 같이 제공된다. 특정 데이터 및 콘텍스트가 예시 목적들로 본원에서 제공되었지만, 본 예시적인 구현들은 이에 제한되지 않으며, 다른 데이터 및/또는 콘텍스트들이 본 발명의 범위를 벗어나지 않고 대체될 수 있다. 또한, 신용 카드 번호들이 설명 목적들로 사용되지만, 당업자들에 의해 이해될 바와 같이, 예시적인 구현들은 이것으로 제한되지 않고, 어카운트 식별자들, 정부-발행 어카운트들(예를 들어, 운전면허 또는 사회 보장 번호 정보), 또는 다른 민감한 정보를 포함(그러나 이에 제한되지 않음)해서, 프라이버시가 보호되어야 하는 다른 민감한 데이터가 이를 대체할 수 있다.
[50] 제1 동작에서, 회사(A)(예를 들어, 호스트)는 민감한 데이터인 것으로 보이는 번호들을 검색하는 인터넷의 분석을 수행한다. 예를 들어, 회사(A)는 모든 신용 카드 유사 번호들 또는 사회 보장 유사 번호들에 대한 인터넷 검색을 수행할 수 있다.
[51] 분석의 결과로서, 2개의 후보 신용 카드 번호들 1111 및 2112이 제3자 웹 사이트들로부터 식별된다. 이러한 상황은 제3자가 인가되지 않은 방식으로 온라인 정보에 액세스하거나 민감한 정보에 대한 액세스를 가진 개인이 민감한 데이터를 제3자에게 제공하는 것에 기인할 수 있다. 따라서, 민감한 정보가 유출되었고, 이는 인터넷 상에서 사용 가능하다. 따라서, 회사(A)의 웹 스윕은 후보 데이터 유출 정보를 식별하고 컴파일한다.
[52] 그 후, 회사(A)는 A(1111), A(2111)를 생성하기 위해 키(A)를 이용하여 후보 데이터 유출 정보의 멤버들 각각의 암호화를 수행하고 A(1111), A(2111)로서 암호화된 후보 데이터 유출 정보를 회사(B)에 전송한다. 따라서, 회사(B)는 후보 데이터 유출 정보의 값들 중 어떤 것도 수신하지 않고 암호화된 값들만을 수신한다. 그 결과, 회사(B)는 데이터 유출들을 포함할 수 있는 후보 신용 카드 번호들의 암호화된 버전(키(A)를 사용함)을 수신한다.
[53] 따라서, 회사(B)(예를 들어, 클라이언트)는 그의 법인 카드 번호들(예를 들어, 2111, 2112 및 2113)의 데이터베이스를 리트리브하고 교환 법칙들(commutative properties)을 갖는 암호(cipher)를 사용하여, 키(B)로 데이터베이스의 정보를 암호화하여 B(2111), B(2112), B(2113)를 생성한다. 따라서, 회사(B)는 회사(A)에게 다음과 같은 결과들 즉, B(2111), B(2112), B(2113)을 전송한다. 따라서, 회사(A)는 신용 카드 번호들의 진정한(예를 들어, 평문) 아이덴티티를 수신하는 것이 아니라, 신용 카드 번호들의 암호화된 버전들만을 수신한다. 부가적으로, 회사(B)는 또한, B(A(1111)), B(A(2111))로서 회사(A)로부터 자신이 수신했던 암호화된 후보 데이터 유출 정보를, 키(B)를 사용하여 암호화하고 이 결과를 회사(A)에 전송한다.
[54] B(2111), B(2112), B(2113), 및 B(A(1111)), B(A(2111))를 수신한 후에, 회사(A)는 B(1111) 및 B(2111)를 생성하기 위해, 이중-암호화된 엘리먼트(B(A(1111)) 및 B(A(2111))로부터 그 자신의 암호화를 제거한다. 그 후, 회사(A)가 회사(B)로부터 자신이 수신한 엘리먼트들(예를 들어, B(2111), B(2112), B(2113))에 대해 키(A)와 관련하여 자신이 복호화한 엘리먼트들(예를 들어, B(1111) 및 B(2111))을 비교할 수 있다. 이 비교를 기초하여, 회사(A)는 B(1111)가 양(both) 세트들에 존재하지 않고 B(2111)가 양 세트들에 존재한다고 결정한다. 즉, 신용 카드 번호(2111)는 회사(B)의 어카운트들의 데이터베이스에뿐만 아니라 웹 스윕 동안 검출된 회사(A)의 검색 결과들에 존재했던 반면에, 회사(B)의 데이터베이스의 다른 신용 카드 번호들(2112) 및 (2113)은 회사(A)의 검색 결과들에서 발견되지 않았고 회사(A)의 검색 결과들은 회사(B)와 연관된 신용 카드 번호가 아닌 (1111)을 포함하였다.
[55] 매칭 값의 비교 및 결정의 완료 후에, 회사(A)는 다수의 "히트(hit)"들, 암호화된 값들 그 자체(이 경우 B(2111) 및 B(2112)), 또는 다른 정보, 예컨대, 후보 데이터 유출 정보가 발견된 URL 또는 관련된 메타데이터를 포함할 수 있는 결과를 회사(B)에 제공한다. 회사(A)는 정기적으로(예를 들어, 매일) 웹 스윕을 실행하기 때문에, URL과 연관된 과거 후보 데이터 유출 정보에 관한 이력 정보가 또한 회사(B)에 보고될 수 있다. 히트들이 없는 경우, 이는 회사(B)가 어떠한 잠재적인 데이터 유출도 갖지 않음을 표시한다. 히트들이 있는 경우, 이는 회사(B)가 잠재적인 데이터 유출을 가짐을 표시할 수 있다. 스윕이 정기적으로(예를 들어, 매일) 수행되는 경우, 동향들을 관찰하고 데이터 분석을 수행하기 위해 회사(B)에 의해 사용될 수 있는 이력 데이터가 생성될 수 있다.
[56] 동향 분석은 데이터 유출의 간접적인 표시들을 제공할 수 있다. 제한이 아니라 예를 들면, 민감한 정보의 서브세트(예를 들어, 카드 번호들 중 일부)가 과거에 이미 유출되었을 수 있고, 새로운 유출들이 반드시 온라인으로 유출된 모든 민감한 데이터(예를 들어, 카드 번호들 전부)를 반드시 노출하지 않을 수도 있다. 원시(raw) 수의 히트들과 비교하여 동향 분석을 수행함으로써, 유출 이벤트 검출이 개선될 수 있다.
[57] 제한이 아니라 예를 들면, 클라이언트(예를 들어, 회사)는 자신의 데이터베이스에 1 백만개의 어카운트 번호들을 가질 수 있고, 이력 평균으로서 단지 5개의 어카운트 번호들만이 매일 온라인으로 노출되는 것으로 호스트에 의해 결정된다. 그러나 특정한 날에, 15개의 어카운트 번호들이 온라인으로 노출되고 호스트에 의해 검출되었을 수 있다. 이력 동향으로부터의 이러한 편차는 민감한 정보의 잠재적인 데이터 유출의 표시를 제공할 수 있다.
[58] 대안적으로, 주어진 날에 동일한 전체 수의 어카운트 번호들이 검출되는 경우조차도, 호스트에 의해 검출된 특정 어카운트 번호들이 상이할 수 있다. 위의 예에서, 매일 평균의 이력 동향이 날마다 5개의 어카운트 번호들이 검출되는 것인 경우, 5개의 어카운트 번호들 중 하나 이상이 반복될 수 있다. 주어진 날에, 5개의 검출된 어카운트 번호들의 실제 번호들은 검출된 어카운트 번호의 이력 동향과 상이하다. 대안적으로, 호스트에 의해 평균 5개의 어카운트 번호들이 검출될 수 있으며 이들 5개의 번호들은 반복될 수 있다. 그러나 날들 중 하루에, 검출된 5개의 번호들이 반복되는 5개의 번호들과 상이한 경우, 이력 동향으로부터의 이러한 편차는 민감한 정보의 잠재적인 데이터 유출의 표시를 제공할 수 있다.
[59] 회사(B)는 암호 키(B)를 갖기 때문에, 후보 데이터 유출 정보로서 회사(A)에 의해 식별된 신용 카드 번호들이 (2111)를 포함하고 있다고 결정할 수 있다. 그러나 회사(A)는 B의 법인 카드 번호들의 데이터베이스를 갖지 않고 이를 결정할 수 없고, 회사(B)는 그의 법인 카드 번호들과 매칭하지 않는, 회사(A)에 의해 제공된 암호화된 결과들과 연관된 어떠한 실제 정보도 갖지 않는다.
[60] 위의 예시적인 사용 경우는 부가적인 선택적인 양상들을 포함할 수 있다. 예를 들어, 카드 번호들의 전체 데이터베이스를 암호화하고 전송할 필요성을 방지하기 위해, 조사결과들 중 소정의 특성들(예를 들어, 신용 카드 번호들의 마지막 4 자리들)만이 회사(A)로부터 회사(B)로 전송될 수 있다. 또한, 회사(A)로부터 회사(B)로의 정보 유출을 방지하기 위해, 회사(A)에 의한 조사결과들에 랜덤 노이즈가 부가될 수 있다. 부가적으로, 어느 조사결과가 법인 카드를 나타내는지를 회사(A)가 결정하는 것을 방지하도록 엘리먼트들의 순서가 조정될 수 있다. 다른 대안의 예시적인 구현에 따라, 클라이언트는, 특히, 호스트에 의해 검출되고 호스트-측 키(예를 들어, 키(A))를 사용하여 암호화된 형태로 클라이언트에 전달되는 바와 같은 후보 데이터 유출에 상당히 많은 양의 민감한 정보가 있는 존재하는 경우에, 블룸(Bloom) 필터들을 사용할 수 있다.
[61] 이러한 예시적인 구현들에 대해 요구되진 않더라도, 회사(A)는 선택적으로, 회사(B)에 대한 하나 이상의 온라인 서비스들을 호스팅할 수 있거나 또는, 또한 보다 일반적으로, 회사(B)에 대한 호스트(예를 들어, 클라우드 서비스 제공자)일 수 있고, 이에 따라 서비스들, 애플리케이션들 및 데이터를 호스팅할 수 있다(예를 들어, 회사(A)는 회사(B)에 대한 클라우드 호스트임)는 것이 주의된다. 그러나 이러한 환경에서 조차도, 회사(A)는 회사(B)의 "방화벽" 내부에 있는 것으로 간주되는 회사(B)의 정보에 액세스할 수 없다. 제한이 아니라 예를 들면, 회사(A)가 회사(B)를 호스팅할 때 암호화 접근법이 회사(B)에 대한 방화벽을 생성하는데 사용될 수 있다.
[62] 도 1은 예시적인 구현에 따른 시스템(100)을 예시한다. 보다 구체적으로, 클라이언트(101)(예를 들어, 기업(그러나 이에 제한되지 않음)) 및 호스트(103)(예를 들어, 서비스 제공자(그러나 이에 제한되지 않음))는 인터넷(105)과 같은 네트워크를 통해 커플링된다. 호스트(103)는 호스트 서버(107), 콘텍스트 인식 패턴 매칭(109), 프라이버시 보존 세트 교점 비교기(111), 암호화/복호화 엔진(113) 및 액션 규칙들(115)을 포함한다. 클라이언트(101)는 에이전트(117), 클라이언트 정보(119), 암호화/복호화 엔진(121) 및 액션 규칙들(123)을 포함한다. 호스트(103)는 클라이언트(101)의 방화벽 내에 있지 않다. 프로토콜에 따라, 일부 동작들은 클라이언트(101)의 에이전트(117)에 의해 수행되고, 다른 동작들은 호스트(103)의 호스트 서버(107)에 의해 수행된다. 부가적으로, 클라이언트(101)에 의해 인가되지 않은 제3자(125)는 해킹과 같은 인가되지 않은 데이터 유출 활동에 관여할 수 있고, 클라이언트(101)의 민감한 정보를 획득하고, 예컨대, 공개하거나 그리고/또는 팔려고 내놓음으로써 정보를 인터넷(105) 상에서 이용 가능하게 할 수 있다.
[63] 시스템(100)에서, 인터넷(105) 상에서 공개적으로 이용 가능한 정보는 정기적으로(예를 들어, 매일(그러나 이에 제한되지 않음)) 호스트(103)의 호스트 서버(107)에 의해 스캔된다. 제한이 아니라 예를 들면, 호스트 서버(107)는 민감한 정보인 것으로 보이는 정보를 식별하기 위해 웹을 스윕(sweep)하는 잘-알려진 방법을 실행한다. 제한이 아니라 예를 들면, 호스트 서버(107)는 유출된 정보의 후보들을 검색하기 위해, 인터넷 상에서 정보의 콘텍스트-기반 분석을 수행하도록 콘텍스트 인식 패턴 매칭(109)을 이용한다. 제한이 아니라 예를 들면, 콘텍스트 인식 패턴 매칭(109)은 패턴들(예를 들어, 다수의 연속적인 글자들 또는 연속적인 글자들의 일부 또는 전부의 값들)을 찾도록 시도할 수 있다. 선택적으로, 호스트(103)는 위에서 언급된 블룸 필터의 적용에 의해 후보 유출 정보를 발견하기 위한 분석을 수행할 수 있다.
[64] 콘텍스트 인식 패턴 매칭(109)을 이용하여 호스트 서버(107)에 의해 수행된 웹 스윕에 의해 결정된 후보 유출된 정보에 대해, 암호화/복호화 엔진(113)은 호스트(103)에 있는 키에 기초하여 후보 유출된 정보를 암호화하는데 사용되며; 호스트(103)의 키는 클라이언트(101)에 제공되지 않는다. 그 후, 호스트(107)는 암호화된 후보 유출된 정보를 클라이언트(101)의 에이전트(117)에 제공한다.
[65] 에이전트(117)는, 암호화된 후보 유출된 정보를 수신하면, 수신된 한번-암호화된 후보 유출된 정보의 제2 암호화를 수행하도록 암호화/복호화 엔진(121)을 적용하고 클라이언트 정보(119)(예를 들어, 클라이언트 정보의 데이터베이스)를 또한 암호화한다. 에이전트(117)는 클라이언트 정보(119)에 대한 액세스를 가지며 클라이언트(101)의 환경(예를 들어, 호스트(103) 또는 다른 호스트에 의해 호스팅되는 바와 같은 클라이언트(101)의 클라우드 공간)에 상주한다. 암호화/복호화 엔진(121)은 클라이언트(101)에 있는 상이한 키를 사용하고, 이 상이한 키는 호스트(103)에 제공되지 않는다. 에이전트(117)는 2번-암호화된 후보 유출된 정보 및 암호화된 클라이언트 정보를 인터넷(105)과 같은 네트워크를 통해 호스트(103)에 전송한다. 본 명세서 전체에서, "재-암호화", "2번-암호화" 및 "이중 암호화"라는 용어들은 동의어로 사용된다.
[66] 호스트 서버(107)는, 2번-암호화된 후보 유출된 정보 및 암호화된 클라이언트 정보를 수신하면, 자신이 초기에 적용했던 암호화를 제거하기 위해 2번-암호화된 후보 유출된 정보 상에서 암호화/복호화 엔진(113)을 통해 복호화 동작을 수행한다. 그 결과, 암호화된 후보 유출된 정보 및 암호화된 클라이언트 정보(이 정보 둘 모두 클라이언트(101)에 의해 암호화됨)는 호스트(103)에서 유지된다.
[67] 그 후, 호스트 서버(107)는 암호화된 후보 유출된 정보 및 암호화된 클라이언트 정보의 값들 상에서 매칭 동작을 수행하도록 프라이버시 보존 세트 교점 비교기(111)를 적용한다.
[68] 매칭 동작의 결과로서 매칭이 존재하는 것으로 결정되는 경우, 호스트 서버(107)는, 매칭들의 수, 암호화된 매칭 후보 유출된 정보, 및/또는 후보 데이터 유출의 소스와 연관된 정보(예를 들어, URL 및 연관된 메타데이터)를 포함하는 리포트를, 클라이언트(101)의 에이전트(117)에 제공한다. 에이전트(117)는, 아래에서 더 상세히 설명되는 바와 같이, 취해질 액션을 결정하기 위해 액션 규칙들(123)을 적용한다. 매칭 동작의 결과로서 매칭이 존재하지 않는 것으로 결정되는 경우, 액션 규칙들(115)이 적용되고, 호스트(103)는 아래에서 더 상세히 설명되는 바와 같은 액션을 취한다.
[69] 위에서 언급된 바와 같이, 호스트-암호화된 데이터 통신을 수신하는 것에 대한 응답으로, 그리고 공통 암호화 키를 사용함으로써, 소프트웨어 에이전트(117)는 기업 정보의 데이터베이스를 암호화하고 호스트-암호화된 데이터 통신을 재-암호화하고, 기업 통신의 소프트웨어 에이전트-암호화된 데이터베이스 및 재-암호화된 데이터 통신을 호스트(103)에 제공한다. 호스트는 재-암호화된 데이터 통신의 호스트-암호화된 측면을 복호화하여 소프트웨어 에이전트-암호화된 데이터 통신을 생성하고, 매칭 동작을 수행하여 정보의 암호화된 데이터베이스와 소프트웨어 에이전트-암호화된 데이터 통신 사이에 매칭이 존재하는지를 결정할 수 있다.
[70] 매칭이 존재하는 것으로 결정되는 경우, 호스트(103)는 소프트웨어 에이전트(117)에 리포트를 제공할 수 있고, 소프트웨어 에이전트(117)는 리포트에 기초하여 제1 액션을 취할 수 있다. 위에서 설명된 바와 같이, 리포트는 매칭들의 수, 암호화된 매칭 후보 유출된 정보, 및/또는 후보 데이터 유출의 소스와 연관된 정보(예를 들어, URL 및 연관된 메타데이터)를 포함할 수 있다.
[71] 소프트웨어 에이전트(117)에 의한 액션은 매칭들의 수를 검토하는 것 및 매칭들의 수가 임계치를 초과하는 경우, 데이터 유출 이벤트가 발생했다고 결정하는 것을 포함할 수 있다. 그러나 검토는 매칭들의 수가 임계치를 초과하는지를 결정하는 것으로 제한되지 않고, 다른 분석 접근법들이 이를 대체할 수 있거나 위의 검토와 함께 사용될 수 있다.
[72] 제한이 아니라 예를 들면, 매칭들의 수를 임계치에 비교하는 대신에(또는 그에 추가로), 매칭들의 수는 분석 기간의 전체 이력 또는 그의 일부 서브세트(예를 들어, 날들, 주들 또는 달들의 이전 수; 주, 달 또는 년의 그 날에 대한 평균; 또는 당업자들에 의해 이해될 수 있는 바와 같은 다른 서브세트)에 걸쳐 날마다 히트들의 수의 이력 평균에 비교될 수 있다.
[73] 추가로, 다른 예시적인 구현에 따라, 매칭들의 수 이외의 다른 정보와 관련하여 분석이 수행될 수 있다. 예를 들어, 호스트에 의해 검출되는 바와 같은, 동일한 유출된 민감한 정보를 공개한 사이트들(예를 들어, URL들)의 수, 또는 호스트에 의해 검출되는 바와 같은, 동일한 유출된 민감한 정보를 공개하는 사이트들의 수의 변화는, 민감한 정보의 유출을 표시하는 정보를 제공할 수 있다. 이러한 정보는 예컨대, 집행 기관(enforcement authority) 및/또는 클라이언트에 의한 데이터 유출 조사에 유용할 수 있다.
[74] 소프트웨어 에이전트(117)는 자동으로 그리고/또는 수동 검토 단계에 기초하여, 경고를 생성하여 관련 기관(예를 들어, 신용 카드-연관 회사, 은행, 법 집행 에이전시, 라이센스 발행 에이전시 또는 당업자에 의해 이해될 바와 같은 다른 기관)에 제공할 수 있다. 추가로, 클라이언트(101)의 관리자에게는 유출이 발생했을 수 있다는 사실이 경고될 수 있다. 그러나, 예시적인 구현은 이것으로 제한되지 않고, 당업자들에 의해 이해될 바와 같이 데이터 유출에 대한 응답으로, 다른 액션들이 본 발명의 범위를 벗어나지 않고 대체될 수 있다.
[75] 매칭이 존재하지 않는 것으로 결정되는 경우, 호스트(103)는 제2 액션을 취할 수 있다. 호스트(103)에 의한 제2 액션은 소프트웨어 에이전트(117)에 리포트를 제공하지 않는 것을 포함할 수 있다.
[76] 위에서 언급된 바와 같이, 클라이언트(101)(예를 들면, 기업)의 소프트웨어 에이전트에는 후보 데이터 유출 정보를 암호화하는, 호스트(103)에 의해 사용되는 키가 제공되지 않고, 호스트(103)에는 소프트웨어 에이전트의 공통 암호화 키(117)가 제공되지 않는다.
[77] 예시적인 구현에 따라, 호스트(103)는 데이터 통신을 부분적으로 암호화할 수 있고, 데이터 통신의 암호화되지 않은 부분을 평문으로 남겨둔다. 추가로, 호스트(103)는 부분적으로 암호화된 데이터 통신 및 평문을 소프트웨어 에이전트에 제공할 수 있다. 그 결과, 각각의 모든 후보 유출된 정보의 전체 스트링이 호스트(103)와 클라이언트(101) 사이에서 암호화, 전송 및 복호화될 필요가 없기 때문에, 프로세싱 요건들이 감소될 수 있다.
[78] 위에서 언급된 바와 같이, 소프트웨어 에이전트(117)는 암호화된 데이터베이스에 노이즈를 부가하고, 노이즈를 갖는 암호화된 데이터베이스를 호스트(103)에 전송할 수 있다. 유사하게, 소프트웨어 에이전트(117)는 호스트-암호화된 데이터 통신의 재-암호화 동안 호스트-암호화된 데이터 통신의 값들을 재-순서화(re-order)할 수 있다. 이러한 접근법을 취하는 것은, 특히 샘플 크기가 작은 경우, 호스트(103)가 데이터베이스의 실제 콘텐츠에 관한 정보를 획득하는 것을 더 어렵게 할 수 있다.
[79] 위의 예시적인 구현들은 다양한 환경들에서의 사용을 위한 것이며 그리고 다양한 엔티티들에 관련될 수 있다. 예시적인 구현들의 사용들의 유형들의 예들이 아래에 제공된다. 그러나, 이러한 예시적인 구현들은 제한하는 것으로 의도되지 않고, 당업자들에 의해 이해될 수 있는 바와 같이 다른 환경들이 이를 대체할 수 있다.
[80] 제한이 아니라 예를 들면, 위의 예시적인 구현들은 온라인 트랜잭션들(예를 들어, 온라인 사용자에 의한 소매 상품들 및/또는 서비스들의 신용 카드 구매)을 실행하는 소비자 소매업체에 관련될 수 있다. 온라인 트랜잭션들과 연관된 민감한 정보는, 신용 카드 정보, 은행 어카운트 정보 및 사용자와 연관된 온라인 정보(예를 들어, 사용자 프로필, 패스워드, 인구통계학적 정보, 사용자 구매 선호도들 등)를 포함(그러나 이에 제한되지 않음)할 수 있다.
[81] 부가적으로, 예시적인 구현은 아이덴티티 도난 에이전시(identity theft agency)와 같은 온라인 엔티티에 관련될 수 있다. 이 예시적인 구현에 따라, 아이덴티티 도난 에이전시는 온라인 어카운트 도난의 검출을 보조하기 위해 그의 고객들과 연관된 데이터를 매칭시킬 수 있다. 아이덴티티 도난 에이전시의 온라인 고객들은, 사용자-선택 정보(예를 들어, 신용 카드 번호, 사회 보장 번호, 전화 번호, 은행 어카운트 정보, IMEI(International Mobile Equipment Identity) 번호와 같은 사용자 장비 정보 등)의 보호를 수행하도록 아이덴티티 도난 에이전시에 요청한 사용자들(그러나 이에 제한되지 않음)을 포함할 수 있다.
[82] 추가로, 예시적인 구현은 온라인 기업 환경과 같은 온라인 엔티티의 내부 환경들에 관련될 수 있다. 제한이 아니라 예를 들면, 조직은 유출될 수 있는 내부 정보를 프라이버시-보존 방식으로 온라인으로 검색하기 위한 예시적인 구현을 사용할 수 있다. 이러한 정보는, 영업 비밀들, 내부 프로젝트 이름들 또는 프로젝트 코드들 또는 다른 기밀 정보를 포함(그러나 이에 제한되지 않음)할 수 있다.
[83] 또한, 예시적인 구현은 온라인 애플리케이션 개발자에 관련될 수 있다. 온라인 애플리케이션 개발자는 사용자들과 상호작용하는 온라인 애플리케이션에 대한 백엔드(backend)를 가질 수 있다. 제한이 아니라 예를 들면, 온라인 게임의 맥락에서, 백엔드는 사용자들의 아이덴티티, 스코어 및 성과와 연관된 정보를 어그리게이팅할 수 있고 애플리케이션 개발자가 비공개(private)로 유지하기를 온라인 사용자들이 바랄 수 있는 통계들을 포함할 수 있다. 온라인 사용자는 이러한 정보는 물론, 구매 패턴들, 사용 패턴들 및 다른 온라인 사용자 정보와 연관된 정보가 비공개로 유지되기를 바랄 수 있다.
[84] 예시적인 구현은 또한, 호스트가 둘 이상의 회사에 대한 인터넷의 웹 스윕을 수행하고 결과들 및 리포트들을 제공하는 상황을 포함할 수 있다. 이러한 상황에서, 각각의 회사는 리포트의 콘텐츠에 대해 호스트와의 그 자신의 합의를 가질 수 있다. 예를 들어, 하나의 회사는 매칭들의 수만을 요구할 수 있고 다른 회사는 매칭들의 수는 물론, 데이터 유출의 소스 URL에 관한 정보를 요구할 수 있다. 호스트는 리포트의 콘텐츠와 관련하여 회사에 의해 업데이트될 수 있는 규칙들 또는 규칙 토대들을 사용할 수 있다. 추가로, 회사는 호스트에 의해 회사에 제공되는 데이터에 관한 진단을 실행할 수 있다. 예를 들어, 호스트는 회사의 데이터베이스에 포함된 총 히트들의 퍼센티지에 관해 회사에 통지할 수 있어서, 회사는 회사와 연관되는 데이터 유출 비율을 결정할 수 있다. 그 후, 회사는 필터링을 적용하거나 호스트에 의해 제공되는 분석 정보에 관한 다른 진단을 수행할 수 있다. 또한, 호스트는 과거의 웹 스윕들에 기초한 이력 데이터를 포함한, 진단 정보의 상세한 시각적 표시를 회사에 제공하는 대시보드-스타일 인터페이스를 회사에 제공할 수 있다.
[85] 도 2는 위의 예시적인 구현에 따른 사용 경우(200)의 예를 예시한다. 201에서, 위의 예시적인 구현은 물론, 아래에서 그리고 도 3 내지 도 6에서 설명되는 프로세스들을 구현하는 제공자는 인터넷의 검색(예를 들어, 웹 스윕)의 결과로서 값들 "1111" 및 "2111"을 지닌 후보 어카운트 번호들을 발견했다.
[86] 203에서, 클라이언트 회사는 값들 "2111", "2112" 및 "2113"을 포함하는 기업 번호들의 데이터베이스를 갖는다. 203의 클라이언트 회사에는 201의 제공자의 위에서 언급된 정보가 제공되지 않았고, 201의 제공자에는 또한 203의 클라이언트 회사의 위에서 언급된 정보가 제공되지 않았다.
[87] 205에서, 제공자는 키(A)로 후보 어카운트 번호들을 암호화하고 암호화된 값들(A(1111), A(2111))을 클라이언트 회사에 제공한다. 207에서, 클라이언트 회사는, 키(A)와 상이한 키(B)로 기업 번호들의 그의 데이터베이스의 값들을 암호화하고, 암호화된 값들(B(2111), B(2112), B(2113))을 제공자에게 제공한다. 부가적으로, 클라이언트 회사는 암호화된 후보 어카운트 번호들(A(1111), A(2111))을 키(B)를 사용하여 암호화하고, 결과(B(A(1111)), B(A(2111)))를 제공자에 제공한다.
[88] 209에서, 제공자는 B(1111), B(2111)를 획득하도록 키(A)에 관한 암호화를 제거한다. 그 후, 제공자는 이러한 값들(B(1111), B(2111))과 암호화된 기업 번호들(B(2111), B(2112), B(2113)) 사이의 교점을 발견한다. 제공자는, 매칭들의 수, 교점(B(2111))과 같은 암호화된 매칭 후보 유출된 정보 및/또는 후보 데이터 유출의 소스와 연관된 정보(예를 들어, URL 및 연관된 메타데이터)를 포함할 수 있는 리포트를 클라이언트 회사에 전송한다. 클라이언트 회사는 B(2111)를 복호화하고 이에 따라 2111이 관련된 어카운트 번호임을 결정할 수 있다.
[89] 도 3은 시스템(100)의 예시적인 구현에 따른 프로세스(300)를 예시한다. 301에서, 유출된 정보의 후보들을 획득하기 위해 온라인 정보의 풀(pool)의 검색이 수행된다. 제한이 아니라 예를 들면, 인터넷의 웹 스윕이 이 정보를 획득하기 위해 수행될 수 있다. 303에서, 일단 수신되면, 301의 획득 동작의 결과들이누설된 정보의 후보를 검색하도록 웹 스윕의 결과에 대해 수행되는 콘텍스트 인식 패턴 매칭 동작(예를 들어, 콘텍스트-기반 분석)을 위해 제공된다. 예를 들어, 콘텍스트는 위에서 설명된 바와 같이 유출된 정보의 후보들인, 온라인 데이터의 콘텍스트에서의 신용 카드 번호들을 지칭할 수 있고, 콘텍스트 인식 패턴 매칭은 패턴들(예를 들어, 다수의 연속적인 문자들 또는 신용 카드 번호를 표시할 수 있는 연속적인 문자들의 일부 또는 전부의 값들)을 찾도록 시도할 수 있다. 대안적으로, 예시적인 구현은 사용자들과 상호작용하는 온라인 애플리케이션에 대한 백엔드를 갖는 온라인 애플리케이션 개발자의 콘텍스트를 대상으로 할 수 있으며, 백엔드는 사용자들의 아이덴티티, 스코어 및 성과와 연관된 정보 및 온라인 애플리케이션의 콘텍스트에서 애플리케이션 개발자가 비공개로 유지하기를 온라인 사용자들이 바랄 수 있는 통계들을 어그리게이팅할 수 있다. 추가로, 잠재적인 유출된 정보에 대한 후보인 콘텍스트는 비공개로 유지될 구매 패턴들, 사용 패턴들 및 다른 온라인 사용자 정보를 포함할 수 있다. 그러나, 당업자들에 의해 이해될 바와 같이, 예시적인 구현들은 이것으로 제한되지 않고, 어카운트 식별자들, 정부-발행 어카운트들(예를 들어, 운전면허 또는 사회 보장 번호 정보), 또는 다른 민감한 정보를 포함(그러나 이에 제한되지 않음)해서, 프라이버시가 보호되어야 하는 다른 민감한 데이터가 이를 대체할 수 있다.
[90] 305에서, 어떠한 후보 유출된 정보도 발신 데이터에서 발견되지 않는 경우, 프로세스는 종료된다(예를 들어, 호스트는 웹 스윕에 기초하여 인터넷 상에 민감한 데이터 유출이 없다고 결정함). 웹 스윕 결과가 305에서 후보 유출된 정보를 포함하는 것으로 결정되는 경우, 프로세스는 307로 진행된다.
[91] 307에서, 후보 유출된 정보는 호스트에 있고 클라이언트에 제공되지 않은 키에 기초하여 암호화되고, 암호화된 후보 유출된 정보가 클라이언트에 제공된다. 예를 들어, 309에서, 에이전트(예를 들어, 클라이언트에 대한 명령들을 수행하는 클라이언트의 소프트웨어 프로그램)는 암호화된 후보 유출된 정보를 수신할 수 있다.
[92] 311에서, 에이전트는, 수신된 한번-암호화된 후보 유출된 정보의 제2 암호화를 수행하도록 키를 사용하고 클라이언트 정보(예를 들어, 클라이언트 정보의 데이터베이스)를 또한 암호화한다. 에이전트에 의해 사용되는 키는 호스트에 제공되지 않고, 이에 따라 호스트는 에이전트에 의해 암호화된 콘텐츠를 복호화할 수 없다. 또한 311에서, 에이전트는 2번-암호화된 후보 유출된 정보 및 암호화된 클라이언트 정보를 호스트에 제공한다.
[93] 313에서, 호스트는 2번-암호화된 후보 유출된 정보 및 암호화된 클라이언트 정보를 수신하고, 자신이 2번-암호화된 후보 유출된 정보에 대해 초기에 적용한 암호화를 제거하기 위해 복호화 동작을 수행한다.
[94] 315에서, 암호화된 후보 유출된 정보 및 암호화된 클라이언트 정보의 값들 상에서 매칭 동작이 (예를 들어, 프라이버시 보존 세트 교점 비교기에 의해) 수행된다.
[95] 317에서, 하나 이상의 매칭이 발견되었는지가 결정된다. 317에서의 매칭 동작의 결과로서 매칭이 존재하는 것으로 결정되는 경우, 319에서, 호스트는 매칭들의 수, 암호화된 매칭 후보 유출된 정보, 및/또는 후보 데이터 유출의 소스와 연관된 정보(예를 들어, URL 및 연관된 메타데이터)를 포함하는 리포트를 에이전트에 제공하고, 에이전트는 위에서 설명된 바와 같이 취해질 액션을 결정한다. 317에서의 매칭 동작의 결과로서 매칭이 존재하지 않는 것으로 결정되는 경우, 321에서, 호스트는 선택적으로, 위에서 설명된 바와 같이 액션을 취한다.
[96] 도 4는 호스트(103)의 예시적인 구현에 따른 프로세스(400)를 예시한다. 401에서, 유출된 정보의 후보들을 획득하기 위해 정보의 풀의 검색이 수행된다. 제한이 아니라 예를 들면, 인터넷의 웹 스윕이 이 정보를 획득하기 위해 수행될 수 있다. 403에서, 한번 수신되면, 401의 획득 동작의 결과들이 유출된 정보의 후보를 검색하도록 웹 스윕의 결과 상에서 수행되는 콘텍스트 인식 패턴 매칭 동작(예를 들어, 콘텍스트-기반 분석)을 위해 제공된다.
[97] 405에서, 어떠한 후보 유출된 정보도 발신 데이터에서 발견되지 않는 경우, 프로세스는 종료된다(예를 들어, 호스트는 웹 스윕에 기초하여 인터넷 상에 민감한 데이터 유출이 없다고 결정함). 발신 데이터가 405에서 후보 유출된 정보를 포함하는 것으로 결정되는 경우, 프로세스는 407로 진행된다.
[98] 407에서, 후보 유출된 정보는, 호스트에 있고 클라이언트에 제공되지 않은 키에 기초하여 암호화되고(예를 들어, 인터넷 상의 데이터의 유출), 암호화된 후보 유출된 정보가 클라이언트(예를 들어, 클라이언트의 에이전트)에 제공된다.
[99] 409에서, 호스트는 2번-암호화된 후보 유출된 정보 및 호스트에 대해 이용 가능하지 않은 키를 사용하여 암호화되는 암호화된 클라이언트 정보를 수신한다. 제한이 아니라 예를 들면, 에이전트는, 수신된 한번-암호화된 후보 유출된 정보의 제2 암호화를 수행하도록 키를 사용할 수 있고 클라이언트 정보(예를 들어, 클라이언트 정보의 데이터베이스)를 또한 암호화한다. 에이전트에 의해 사용되는 키는 호스트에 제공되지 않고, 이에 따라, 호스트는 에이전트에 의해 암호화된 콘텐츠를 복호화할 수 없다.
[100] 411에서, 호스트는, 자신이 2번-암호화된 후보 유출된 정보에 대해 초기에 적용한 암호화를 제거하기 위해 복호화 동작을 수행한다.
[101] 413에서, 암호화된 후보 유출된 정보 및 암호화된 클라이언트 정보의 값들 상에서 매칭 동작이 (예를 들어, 프라이버시 보존 세트 교점 비교기에 의해) 수행된다.
[102] 415에서, 매칭이 발견되었는지가 결정된다. 415에서의 매칭 동작의 결과로서 매칭이 존재하는 것으로 결정되는 경우, 417에서, 호스트는 매칭들의 수, 암호화된 매칭 후보 유출된 정보, 및/또는 후보 데이터 유출의 소스와 연관된 정보(예를 들어, URL 및 연관된 메타데이터)를 포함하는 리포트를 에이전트에 제공하고, 에이전트는 위에서 설명된 바와 같이 취해질 액션을 결정한다. 415에서의 매칭 동작의 결과로서 매칭이 존재하지 않는 것으로 결정되는 경우, 419에서, 호스트는 선택적으로, 위에서 설명된 바와 같이, 액션을 취한다.
[103] 도 5는 클라이언트(101)의 예시적인 구현에 따른 프로세스(500)를 예시한다. 501에서, 클라이언트의 에이전트는 호스트로부터 암호화된 후보 유출된 정보 수신한다. 에이전트 및 그 에이전트에 대한 클라이언트는 후보 유출된 정보를 암호화하는데 사용된 키에 액세스할 수 없고, 이에 따라 후보 유출된 정보의 실제 값을 결정할 수 없다.
[104] 503에서, 에이전트는, 수신된 한번-암호화된 후보 유출된 정보의 제2 암호화를 수행하도록 키를 사용하고, 505에서 클라이언트 정보(예를 들어, 클라이언트 정보의 데이터베이스)를 암호화한다. 에이전트에 의해 사용되는 키는 호스트에 제공되지 않고, 이에 따라 호스트는 에이전트에 의해 암호화된 콘텐츠를 복호화할 수 없다.
[105] 507에서, 에이전트는 2번-암호화된 후보 유출된 정보 및 암호화된 클라이언트 정보를 호스트에 제공한다.
[106] 509에서, 에이전트는, 호스트로부터, 매칭들의 수, 암호화된 매칭 후보 유출된 정보, 및/또는 후보 데이터 유출의 소스와 연관된 정보(예를 들어, URL 및 연관된 메타데이터)를 포함하는 리포트를 수신하고, 에이전트는 위에서 설명된 바와 같이 취해질 액션을 결정한다.
[107] 511에서, 에이전트는 위에서 설명된 바와 같이, 취해질 액션을 결정한다.
[108] 일부 예들에서, 도 3 내지 도 5에 예시된 위의 프로세스들은 상이한, 보다 적은, 또는 보다 많은 블록들로 구현될 수 있다. 프로세스들(300, 400 및/또는 500)은, 매체 상에 저장되고 하나 이상의 컴퓨팅 디바이스들의 하나 이상의 프로세서들 상에 로딩되고, 컴퓨터-구현 방법으로서 실행될 수 있는 컴퓨터 실행 가능 명령들로서 구현될 수 있다.
[109] 도 6은 일부 예시적인 구현들에 적합한 예시적인 환경을 도시한다. 환경(600)은 디바이스들(605-645)을 포함하고, 각각은 예를 들어, 네트워크(660)를 통해(예를 들어, 유선 및/또는 무선 연결들에 의해) 적어도 하나의 다른 디바이스에 통신 가능하게 연결된다. 일부 디바이스들은 하나 이상의 저장 디바이스들(630 및 645)에 통신 가능하게 연결될 수 있다.
[110] 하나 이상의 디바이스들(605-645)의 예는 각각 도 7 및 도 8에서 후술되는 컴퓨팅 디바이스들(705 및/또는 805)일 수 있다. 디바이스들(605-645)은 컴퓨터(605)(예를 들어, 랩톱 컴퓨팅 디바이스), 모바일 디바이스(610)(예를 들어, 스마트폰 또는 태블릿), 텔레비전(615), 차량(620)과 연관된 디바이스, 서버 컴퓨터(625), 컴퓨팅 디바이스들(635-640), 저장 디바이스들(630 및 645)을 포함(그러나 이에 제한되지 않음)할 수 있다.
[111] 일부 구현들에서, 디바이스들(605-620)은 기업의 사용자들과 연관된 사용자 디바이스(예를 들어, 예컨대, 소셜 네트워크 상에서 서비스들에 액세스하고 그리고/또는 요청들을 발행하기 위해 또는 기업의 방화벽 내에 있으면서 자신의 개인 온라인 정보에 액세스하기 위해 사용자에 의해 사용되는 디바이스)로 간주될 수 있다. 디바이스들(625-645)은 서비스 제공자들과 연관된 디바이스들(예를 들어, 도 3 내지 도 5와 관련하여 그리고 위에서 설명된 바와 같이 서비스들을 제공하고 그리고/또는 웹 페이지, 텍스트, 텍스트 부분들, 이미지들, 이미지 부분들, 오디오들, 오디오 세그먼트들, 비디오들, 비디오 세그먼트들 및/또는 그 주위의 정보와 같은 데이터를 저장하기 위해 외부 호스트에 의해 사용됨)일 수 있다.
[112] 제한이 아니라 예를 들면, 하나 이상의 디바이스들(625-645)에 의해 지원되는 네트워크 상의 사용자 디바이스(605 또는 610)를 갖는 기업에 의해 인가되지 않은 사용자(예를 들어, 앨리스)는, 인가되지 않은 방식으로 민감한 정보에 액세스하고, 보고, 공유하고, 앨리스가 기업 내부 또는 다른 사용자 디바이스(615)로부터 데이터를 유출하는 경우, 사용자 디바이스(605 또는 610)를 사용하여 인터넷 상에서 그러한 정보를 이용 가능하게 할 수 있다. 호스트(예를 들어, 밥)인 수신자는 도 3 내지 도 5와 관련하여 위에서 설명된 프로세스에 따라 디바이스(620)를 사용하여 앨리스의 공유된 민감한 정보(예를 들어, 후보 유출된 정보)에 액세스하고 그리고/또는 볼 수 있다.
[113] 도 7은 몇몇 예시적인 구현들에서 사용하기 위해 외부 호스트와 연관된 예시적인 컴퓨팅 디바이스를 갖는 예시적인 컴퓨팅 환경을 도시한다. 컴퓨팅 환경(700)의 컴퓨팅 디바이스(705)는 하나 이상의 프로세싱 유닛들, 코어들 또는 프로세서(710), 메모리(715)(예를 들어, RAM, ROM 등), 내부 저장소(720)(예를 들어, 자기, 광학, 고상 저장소 및/또는 유기), 및/또는 I/O 인터페이스(725)를 포함할 수 있으며, 이들 중 임의의 것은 정보를 통신하기 위한 통신 메커니즘 또는 버스(730)를 통해 커플링되거나 컴퓨팅 디바이스(705)에 임베딩될 수 있다.
[114] 컴퓨팅 디바이스(705)는 입력/사용자 인터페이스(735) 및 출력 디바이스/인터페이스(740)에 통신 가능하게 커플링될 수 있다. 입력/사용자 인터페이스(735) 및 출력 디바이스/인터페이스(740) 중 어느 하나 또는 둘 모두는 유선 또는 무선 인터페이스일 수 있고 분리 가능할 수 있다. 입력/사용자 인터페이스(735)는 입력을 제공하는데 사용될 수 있는 물리적 또는 가상의 임의의 디바이스, 컴포넌트, 센서 또는 인터페이스(예를 들어, 버튼들, 터치-스크린 인터페이스, 키보드, 포인팅/커서 제어, 마이크로폰, 카메라, 점자, 모션 센서, 광학 판독기 등)를 포함할 수 있다. 출력 디바이스/인터페이스(740)는 디스플레이, 텔레비전, 모니터, 프린터, 스피커, 점자 등을 포함할 수 있다. 일부 예시적인 구현들에서, 입력/사용자 인터페이스(735) 및 출력 디바이스/인터페이스(740)는 컴퓨팅 디바이스(705)에 물리적으로 커플링되거나 그에 임베딩될 수 있다. 다른 예시적인 구현들에서, 다른 컴퓨팅 디바이스들은 컴퓨팅 디바이스(705)에 대한 입력/사용자 인터페이스(735) 및 출력 디바이스/인터페이스(740)의 기능들로서 기능하거나 그의 기능들을 제공할 수 있다.
[115] 컴퓨팅 디바이스(705)의 예들은 고도의 모바일 디바이스들(예를 들어, 스마트폰, 차량 및 다른 머신 내의 디바이스, 인간들 및 동물들에 의해 휴대되는 디바이스 등), 모바일 디바이스들(예를 들어, 태블릿들, 노트북들, 랩톱들, 개인용 컴퓨터들, 휴대용 텔레비전들, 라디오들 등) 및 이동성을 위해 설계되지 않은 디바이스들(예를 들어, 데스크톱 컴퓨터들, 다른 컴퓨터들, 정보 키오스크들, 하나 이상의 프로세서들이 임베딩되어 있고 그리고/또는 그에 커플링되는 텔레비전들 및/또는 라디오들 등)을 포함(그러나 이에 제한되지 않음)할 수 있다.
[116] 컴퓨팅 디바이스(705)는 동일하거나 상이한 구성의 하나 이상의 컴퓨팅 디바이스들을 포함해서, 임의의 수의 네트워킹된 컴포넌트들, 디바이스들 및 시스템들과 통신하기 위해 외부 저장소(745) 및 네트워크(750)에 (예를 들어, I/O 인터페이스(725)를 통해) 통신 가능하게 커플링될 수 있다. 컴퓨팅 디바이스(705) 또는 임의의 연결된 컴퓨팅 디바이스는, 서버, 클라이언트, 씬 서버, 일반 머신, 특수-목적 머신 또는 다른 레이블로서 기능할 수 있고, 그의 서비스들을 제공하거나, 그로서 지칭될 수 있다.
[117] I/O 인터페이스(725)는 음성 및/또는 데이터 네트워크를 통한 무선 통신을 용이하게 하는 무선 통신 컴포넌트들(도시되지 않음)을 포함할 수 있다. 무선 통신 컴포넌트들은 하나 이상의 안테나들을 갖는 안테나 시스템, 라디오 시스템, 기저대역 시스템, 또는 이들의 임의의 결합을 포함할 수 있다. 라디오 주파수(RF) 신호들은 라디오 시스템의 관리 하에서 안테나 시스템에 의해 오버 디 에어로(over the air) 송신 및 수신될 수 있다.
[118] I/O 인터페이스(725)는, 컴퓨팅 환경(700)의 적어도 모든 연결된 컴포넌트들, 디바이스들 및 네트워크로 그리고/또는 이로부터의 정보를 통신하기 위한 임의의 통신 또는 I/O 프로토콜들 또는 표준들(예를 들어, 이더넷, 802.11x, 유니버설 시스템 버스(Universal System Bus), WiMax, 모뎀, 셀룰러 네트워크 프로토콜 등)을 사용하는 유선 및/또는 무선 인터페이스들을 포함(그러나 이에 제한되지 않음)할 수 있다. 네트워크(750)는 임의의 네트워크 또는 네트워크들(예를 들어, 인터넷, 로컬 영역 네트워크, 광역 네트워크, 전화 네트워크, 셀룰러 네트워크, 위성 네트워크 등)의 결합일 수 있다.
[119] 컴퓨팅 디바이스(705)는 일시적 매체 및 비-일시적 매체를 포함하는 컴퓨터-사용 가능 또는 컴퓨터-판독 가능 매체를 사용하여 통신하고 그리고/또는 이를 사용할 수 있다. 일시적 매체는 송신 매체(예를 들어, 금속 케이블들, 광섬유들), 신호, 반송파들 등을 포함한다. 비-일시적 매체는 자기 매체(예를 들어, 디스크들 및 테이프들), 광학 매체(예를 들어, CD ROM, 디지털 비디오 디스크들, Blu-ray 디스크들), 고상 매체(예를 들어, RAM, ROM, 플래시 메모리, 고상 저장소) 및 다른 비-휘발성 저장소 또는 메모리를 포함한다.
[120] 컴퓨팅 디바이스(705)는 일부 예시적인 컴퓨팅 환경에서의 기술들, 방법들, 애플리케이션들, 프로세스들 또는 컴퓨터-실행 가능 명령들을 구현하는데 사용될 수 있다. 컴퓨터-실행 가능한 명령들은 일시적인 매체로부터 리트리브되고 비-일시적인 매체 상에 저장되고 이로부터 리트리브될 수 있다. 실행 가능 명령들은 임의의 프로그래밍, 스크립팅 및 머신 언어들(예를 들어, C, C++, C#, Java, Visual Basic, Python, Perl, JavaScript 등) 중 하나 이상으로부터 비롯될 수 있다.
[121] 프로세서(들)(710)는 네이티브(native) 또는 가상 환경에서 임의의 운영 체제(OS)(도시되지 않음) 하에서 실행될 수 있다. 로직 유닛(760), API(application programming interface) 유닛(765), 입력 유닛(770), 출력 유닛(775), 민감한 정보 결정 유닛(780), 민감한 정보 암호화 유닛(785), 복호화 및 매칭 유닛(790), 액션 결정 유닛(793), 및 상이한 유닛들이 서로, OS와, 그리고 다른 애플리케이션들(도시되지 않음)과 통신하기 위한 유닛-간(inter-unit) 통신 메커니즘(795)을 포함하는 하나 이상의 애플리케이션들이 전개될 수 있다. 예를 들어, 민감한 정보 결정 유닛(780), 민감한 정보 암호화 유닛(785), 복호화 및 매칭 유닛(790) 및 액션 결정 유닛(793)은 도 3 및 도 4에 도시된 하나 이상의 프로세스들을 구현할 수 있다. 설명된 유닛들 및 엘리먼트들은 설계, 기능, 구성 또는 구현 면에서 변동될 수 있고, 제공된 설명들로 제한되지 않는다.
[122] 일부 예시적인 구현들에서, 정보 또는 실행 명령이 API 유닛(765)에 의해 수신될 때, 그것은 하나 이상의 다른 유닛들(예를 들어, 로직 유닛(760), 입력 유닛(770), 출력 유닛(775), 민감한 정보 결정 유닛(780), 민감한 정보 암호화 유닛(785), 복호화 및 매칭 유닛(790), 액션 결정 유닛(793))에 통신될 수 있다.
[123] 예를 들어, 입력 유닛(770)이 후보 유출된 정보를 인터넷에서 검색하는 웹 스윕과 연관된 데이터를 수신한 후에, 입력 유닛(770)은 민감한 정보 결정 유닛(780)에 웹 스윕의 콘텐츠를 통신하도록 API 유닛(765)을 사용할 수 있다. 예를 들어, 민감한 정보 결정 유닛(780)은 콘텍스트 기반 분석을 사용하여, 웹 스윕 정보가 후보 유출된 정보를 포함한다는 결정을 내릴 수 있다.
[124] 민감한 정보 결정 유닛(780)은 API 유닛(765)을 통해, 후보 유출된 정보를 암호화하도록 민감한 정보 암호화 유닛(785)과 상호작용할 수 있다. API 유닛(765)을 사용하여, 민감한 정보 결정 유닛(780)은 복호화 및 매칭 유닛(790)과 상호작용하여, 민감한 정보 암호화 유닛(785)에 의해 적용된 암호화가 제거되도록(예를 들어, 클라이언트로부터) 2번 암호화된 후보 유출된 정보를 수신하여 복호화하고, 그 후 암호화된 후보 유출된 정보와 암호화된 클라이언트 데이터베이스 정보 간의 매칭 동작을 수행하여, 매칭의 존재를 결정하고 매칭들의 수, 암호화된 매칭 후보 유출된 정보 및/또는 후보 데이터 유출의 소스와 연관된 정보(예를 들어, URL 및 연관된 메타데이터)를 포함하는 정보를 에이전트에 제공할 수 있다. 액션 결정 유닛(793)은, 복호화 및 매칭 유닛(790)에 의해 매칭이 존재하지 않는다고 결정될 때 취해질 액션을 결정할 수 있다.
[125] 일부 경우들에서, 로직 유닛(760)은 유닛들 사이의 정보 흐름을 제어하고 위에서 설명된 일부 예시적인 구현들에서, API 유닛(765), 입력 유닛(770), 출력 유닛(775), 민감한 정보 결정 유닛(780), 민감한 정보 암호화 유닛(785), 복호화 및 매칭 유닛(790) 및 액션 결정 유닛(793)에 의해 제공된 서비스들을 지시하도록 구성된다. 예를 들어, 하나 이상의 프로세스들 또는 구현들의 흐름은 로직 유닛(760) 단독으로 또는 API 유닛(765)과 함께 제어될 수 있다.
[126] 도 8은 몇몇 예시적인 구현들에서 사용하기 위해 기업과 연관된 예시적인 컴퓨팅 디바이스를 갖는 예시적인 컴퓨팅 환경을 도시한다. 컴퓨팅 환경(800)의 컴퓨팅 디바이스(805)는 하나 이상의 프로세싱 유닛들, 코어들 또는 프로세서(810), 메모리(815)(예를 들어, RAM, ROM 등), 내부 저장소(820)(예를 들어, 자기, 광학, 고상 저장소 및/또는 유기), 및/또는 I/O 인터페이스(825)를 포함할 수 있으며, 이들 중 임의의 것은 정보를 통신하기 위한 통신 메커니즘 또는 버스(830)를 통해 커플링되거나 컴퓨팅 디바이스(805)에 임베딩될 수 있다.
[127] 컴퓨팅 디바이스(805)는 입력/사용자 인터페이스(835) 및 출력 디바이스/인터페이스(840)에 통신 가능하게 커플링될 수 있다. 입력/사용자 인터페이스(835) 및 출력 디바이스/인터페이스(840) 중 어느 하나 또는 둘 모두는 유선 또는 무선 인터페이스일 수 있고 분리 가능할 수 있다. 입력/사용자 인터페이스(835)는 입력을 제공하는데 사용될 수 있는 물리적 또는 가상의 임의의 디바이스, 컴포넌트, 센서 또는 인터페이스(예를 들어, 버튼들, 터치-스크린 인터페이스, 키보드, 포인팅/커서 제어, 마이크로폰, 카메라, 점자, 모션 센서, 광학 판독기 등)를 포함할 수 있다. 출력 디바이스/인터페이스(840)는 디스플레이, 텔레비전, 모니터, 프린터, 스피커, 점자 등을 포함할 수 있다. 일부 예시적인 구현들에서, 입력/사용자 인터페이스(835) 및 출력 디바이스/인터페이스(840)는 컴퓨팅 디바이스(805)에 물리적으로 커플링되거나 그에 임베딩될 수 있다. 다른 예시적인 구현들에서, 다른 컴퓨팅 디바이스들은 컴퓨팅 디바이스(805)에 대한 입력/사용자 인터페이스(835) 및 출력 디바이스/인터페이스(840)의 기능들로서 기능하거나 그의 기능들을 제공할 수 있다.
[128] 컴퓨팅 디바이스(805)의 예들은 고도의 모바일 디바이스들(예를 들어, 스마트폰들, 차량 및 다른 머신들 내의 디바이스들, 인간들 및 동물들에 의해 휴대되는 디바이스들 등), 모바일 디바이스들(예를 들어, 태블릿들, 노트북들, 랩톱들, 개인용 컴퓨터들, 휴대용 텔레비전들, 라디오들 등) 및 이동성을 위해 설계되지 않은 디바이스들(예를 들어, 데스크톱 컴퓨터들, 다른 컴퓨터들, 정보 키오스크들, 하나 이상의 프로세서들이 임베딩되어 있고 그리고/또는 그에 커플링되는 텔레비전들 및/또는 라디오들 등)을 포함(그러나 이에 제한되지 않음)할 수 있다.
[129] 컴퓨팅 디바이스(805)는 동일하거나 상이한 구성의 하나 이상의 컴퓨팅 디바이스들을 포함해서, 임의의 수의 네트워킹된 컴포넌트들, 디바이스들 및 시스템들과 통신하기 위해 외부 저장소(845) 및 네트워크(850)에(예를 들어, I/O 인터페이스(825)를 통해) 통신 가능하게 커플링될 수 있다. 컴퓨팅 디바이스(805) 또는 임의의 연결된 컴퓨팅 디바이스는, 서버, 클라이언트, 씬 서버, 일반 머신, 특수-목적 머신 또는 다른 레이블로서 기능할 수 있고, 그의 서비스들을 제공하거나, 그로서 지칭될 수 있다.
[130] I/O 인터페이스(825)는 음성을 통한 및/또는 데이터 네트워크를 통한 무선 통신을 용이하게 하는 무선 통신 컴포넌트들(도시되지 않음)을 포함할 수 있다. 무선 통신 컴포넌트들은 하나 이상의 안테나들을 갖는 안테나 시스템, 라디오 시스템, 기저대역 시스템, 또는 이들의 임의의 결합을 포함할 수 있다. 라디오 주파수(RF) 신호들은 라디오 시스템의 관리 하에서 안테나 시스템에 의해 오버 디 에어로(over the air) 송신 및 수신될 수 있다.
[131] I/O 인터페이스(825)는, 컴퓨팅 환경(800)의 적어도 모든 연결된 컴포넌트들, 디바이스들 및 네트워크로 그리고/또는 이로부터의 정보를 통신하기 위한 임의의 통신 또는 I/O 프로토콜들 또는 표준들(예를 들어, 이더넷, 802.11x, 유니버설 시스템 버스(Universal System Bus), WiMax, 모뎀, 셀룰러 네트워크 프로토콜 등)을 사용하는 유선 및/또는 무선 인터페이스들을 포함(그러나 이에 제한되지 않음)할 수 있다. 네트워크(850)는 임의의 네트워크 또는 네트워크들의 결합(예를 들어, 인터넷, 로컬 영역 네트워크, 광역 네트워크, 전화 네트워크, 셀룰러 네트워크, 위성 네트워크 등)일 수 있다.
[132] 컴퓨팅 디바이스(805)는 일시적 매체 및 비-일시적 매체를 포함하는 컴퓨터-사용 가능 또는 컴퓨터-판독 가능 매체를 사용하고 그리고/또는 이를 사용하여 통신할 수 있다. 일시적인 매체는 송신 매체(예를 들어, 금속 케이블들, 광섬유들), 신호, 반송파들 등을 포함한다. 비-일시적인 매체는 자기 매체(예를 들어, 디스크들 및 테이프들), 광학 매체(예를 들어, CD ROM, 디지털 비디오 디스크들, Blu-ray 디스크들), 고상 매체(예를 들어, RAM, ROM, 플래시 메모리, 고상 저장소) 및 다른 비-휘발성 저장소 또는 메모리를 포함한다.
[133] 컴퓨팅 디바이스(805)는 일부 예시적인 컴퓨팅 환경들에서의 기술들, 방법들, 애플리케이션들, 프로세스들 또는 컴퓨터-실행 가능 명령들을 구현하는데 사용될 수 있다. 컴퓨터-실행 가능한 명령들은 일시적인 매체로부터 리트리브되고 비-일시적인 매체 상에 저장되고 이로부터 리트리브될 수 있다. 실행 가능 명령들은 임의의 프로그래밍, 스크립팅 및 머신 언어들(예를 들어, C, C++, C#, Java, Visual Basic, Python, Perl, JavaScript 등) 중 하나 이상으로부터 비롯될 수 있다.
[134] 프로세서(들)(810)는 네이티브(native) 또는 가상 환경에서 임의의 운영 체제(OS)(도시되지 않음) 하에서 실행될 수 있다. 로직 유닛(860), API(application programming interface) 유닛(865), 입력 유닛(870), 출력 유닛(875), 데이터베이스 암호화 유닛(880), 수신된 데이터 암호화 유닛(885), 액션 결정 유닛(890), 및, 상이한 유닛들이 서로, OS와, 그리고 다른 애플리케이션들(도시되지 않음)과 통신하기 위한 유닛-간(inter-unit) 통신 메커니즘(895)을 포함하는 하나 이상의 애플리케이션들이 전개될 수 있다. 예를 들어, 데이터베이스 암호화 유닛(880), 수신된 데이터 암호화 유닛(885), 및 액션 결정 유닛(890)은 도 3 및 도 5에 도시된 하나 이상의 프로세스들을 구현할 수 있다. 설명된 유닛들 및 엘리먼트들은 설계, 기능, 구성 또는 구현 면에서 변동될 수 있고, 제공된 설명들로 제한되지 않는다.
[135] 일부 예시적인 구현들에서, 정보 또는 실행 명령이 API 유닛(865)에 의해 수신될 때, 그것은 하나 이상의 다른 유닛들(예를 들어, 로직 유닛(860), 입력 유닛(870), 출력 유닛(875), 데이터베이스 암호화 유닛(880), 수신된 데이터 암호화 유닛(885), 액션 결정 유닛(890))에 통신될 수 있다.
[136] 예를 들어, 입력 유닛(870)이 호스트로부터 암호화된 후보 유출된 정보를 수신한 후에, 입력 유닛(870)은, 클라이언트 정보 데이터베이스를 암호화하는 데이터베이스 암호화 유닛(880)에 이 정보를 통신하기 위해 API 유닛(865)을 사용할 수 있다. 데이터베이스 암호화 유닛(880)은 API 유닛(865)을 통해, 호스트로부터 수신된 암호화된 후보 유출된 정보를 암호화하도록, 수신된 데이터 암호화 유닛(885)과 상호작용할 수 있다. API 유닛(865)을 사용하여, 액션 결정 유닛(890)은 매칭들의 수, 암호화된 매칭 후보 유출된 정보 및/또는 후보 데이터 유출의 소스와 연관된 정보(예를 들어, URL 및 연관된 메타데이터)를 포함하는 리포트를 포함할 수 있는, 호스트로부터 수신된 정보에 기초하여 취해질 액션을 결정할 수 있다.
[137] 일부 경우들에서, 로직 유닛(860)은 유닛들 사이의 정보 흐름을 제어하고, 위에서 설명된 일부 예시적인 구현들에서, API 유닛(865), 입력 유닛(870), 출력 유닛(875), 데이터베이스 암호화 유닛(880), 수신된 데이터 암호화 유닛(885) 및 액션 결정 유닛(890)에 의해 제공된 서비스들을 지시하도록 구성된다. 예를 들어, 하나 이상의 프로세스들 또는 구현들의 흐름은 로직 유닛(860) 단독으로 또는 API 유닛(865)과 함께 제어될 수 있다.
[138] 본원에서 설명된 소프트웨어 컴포넌트들 중 임의의 것은 다양한 형태들을 취할 수 있다. 예를 들어, 컴포넌트는 자립형 소프트웨어 패키지일 수 있거나, 또는 컴포넌트는 더 큰 소프트웨어 제품에 "툴"로서 통합된 소프트웨어 패키지일 수 있다. 그것은 자립형 제품으로서 또는 기존 소프트웨어 애플리케이션에 설치를 위한 애드-인 패키지(add-in package)로서 네트워크, 예를 들어, 웹 사이트로부터, 다운로드 가능할 수 있다. 그것은 또한 클라이언트-서버 소프트웨어 애플리케이션으로서, 웹-인에이블(web-enabled) 소프트웨어 애플리케이션으로서 및/또는 모바일 애플리케이션으로서 이용 가능할 수 있다.
[139] 예시적인 구현들은 다양한 혜택들 및 이점들을 가질 수 있다. 제한이 아니라 예를 들면, 프라이버시가 클라이언트의 멤버(예를 들어, 개별 사용자들)에 대해 보존될 수 있고, 프라이버시가 클라이언트 및 호스트에 대해 또한 보존될 수 있다. 따라서, 데이터 유출 결정이 신뢰되는 외부 당사자(예를 들어, 발신 데이터의 실제 콘텐츠 또는 평문을 알게 되고 이를 프로세싱하는 제3자)에 의존할 필요 없이 제공될 수 있다. 그 결과, 민감한 정보의 프라이버시가 보존된다. 예시적인 구현들은 또한, 클라우드 기반 환경에 통합될 수 있으며, 여기서 프로토콜의 클라이언트 측 프로토콜을 구현하는 클라우드 컴포넌트들은 균일하고 확장 가능한 방식으로 전개될 수 있다.
[140] 예시적인 구현들은 추가의 혜택들 및 이점들을 가질 수 있다. 제한이 아니라 예를 들면, 예시적인 구현들은 클라이언트 정보의 프라이버시는 물론, 온라인 후보 정보의 프라이버시를 지킴으로써, 민감한 정보의 프라이버시를 지킬 수 없는 호스트와 연관된 관련된 문제점들 및/또는 단점들을 극복할 수 있다. 또한, 예시적인 구현은 데이터 유출과 연관된 다른 당사자(예를 들어, 인가 없이 획득된 민감한 정보를 판매하려고 시도하는 온라인 해커들)를 드러내기 위해 웹 크롤러(web crawler)의 사용에 의해 관련 기술의 시간 지체(time lag) 문제를 극복할 수 있다.
[141] 따라서, 호스트에 의한 온라인 검색으로부터 발생된 후보 민감한 정보는 클라이언트에 의해 제공된 암호화된 민감한 정보와 상관되지만, 민감한 정보 그 자체는 호스트에 제공되지 않는다. 유사하게, 호스트의 결정의 결과들(예를 들어, 후보 데이터 유출 정보)이 암호화된 후보 민감한 정보(예를 들어, 클라이언트의 유출된 민감한 정보)로서 클라이언트에 제공되지만; 후보 민감한 정보 그 자체는 호스트에 제공되지 않는다. 이는 위에서 설명된 바와 같이 보안 세트 교점을 사용함으로써 달성된다.
[142] 여기에서 논의된 시스템들이 사용자들에 관한 개인 정보를 수집하거나 개인 정보를 사용할 수 있는 상황들에서, 사용자(예를 들어, 업무용 어카운트와 비-업무용 어카운트 둘 모두가 함께 통합되어 있는 기업의 사용자)에게는, 프로그램들 또는 특징들이 사용자 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 액션들 또는 활동들, 직업, 사용자의 선호도들 또는 사용자의 현재 위치에 관한 정보)를 수집할지 여부를 제어하거나 또는 사용자와 더 관련이 있을 수 있는 콘텐츠를 콘텐츠 서버로부터 수신할지 여부 및/또는 어떻게 수신할지를 제어할 기회가 제공될 수 있다. 또한, 소정의 데이터는 개인적으로 식별 가능한 정보가 제거되도록, 그것이 저장되거나 사용되기 전에 하나 이상의 방식으로 처리될 수 있다. 예를 들어, 사용자의 아이덴티티는, 사용자에 대한 어떠한 개인적으로 식별 가능한 정보도 결정되지 않을 수 있도록 처리될 수 있거나, 또는 위치 정보가 획득된 경우, 사용자의 특정 위치가 결정될 수 없도록 사용자의 지리적 위치가 (예컨대, 도시, 우편 번호 또는 주 레벨(state level)로) 일반화될 수 있다. 따라서, 사용자는, 사용자에 관한 정보가 어떻게 수집될지 그리고 콘텐츠 서버에 의해 어떻게 사용될지에 관한 제어를 가질 수 있다.
[143] 추가의 구현들은 다음 예들에서 요약된다:
[144] 예 1: 데이터 유출을 검출하는 컴퓨터-구현 방법으로서, 이 방법은, 기업의 방화벽 외부의 호스트에 의해, 온라인 데이터 세트를 생성하도록 후보 데이터 유출에 대해 온라인 정보의 스윕(sweep)을 수행하는 단계; 호스트가, 온라인 데이터의 콘텍스트에 기초하여, 온라인 정보가 후보 데이터 유출이라고 결정하도록 온라인 데이터 세트의 분석을 수행하는 단계; 호스트가 데이터 통신을 암호화하고 호스트-암호화된 데이터 통신을 기업의 소프트웨어 에이전트에 제공하는 단계; 호스트-암호화된 데이터 통신을 수신하는 것에 대한 응답으로 그리고 공통 암호화 키를 이용함으로써, 소프트웨어 에이전트가 기업 정보의 데이터베이스를 암호화하고 호스트-암호화된 데이터 통신을 재-암호화하는 단계; 기업 통신의 소프트웨어 에이전트-암호화된 데이터베이스 및 재-암호화된 데이터 통신을 호스트에 제공하는 단계; 소프트웨어 에이전트-암호화된 데이터 통신을 생성하도록 호스트가 재-암호화된 데이터 통신의 호스트-암호화된 측면을 복호화하는 단계; 정보의 암호화된 데이터베이스와 소프트웨어 에이전트-암호화된 데이터 통신 사이에 매칭이 존재하는지를 결정하도록 매칭 동작(matching operation)을 수행하는 단계; 매칭이 존재하는 것으로 결정되는 경우, 호스트는 소프트웨어 에이전트에 매칭을 보고하고, 소프트웨어 에이전트는 제1 액션(action)을 취하는 단계; 및 매칭이 존재하지 않는 것으로 결정되는 경우, 호스트가 제2 액션을 취하는 단계를 포함한다.
[145] 예 2: 예 1의 컴퓨터-구현 방법에 있어서, 기업의 소프트웨어 에이전트에는 온라인 어카운트로부터 비롯된 데이터 통신을 암호화하는, 호스트에 의해 사용되는 키가 제공되지 않고, 호스트에는 소프트웨어 에이전트의 공통 암호화 키가 제공되지 않는다.
[146] 예 3: 예 1 또는 예 2의 컴퓨터-구현 방법에 있어서, 매칭 동작을 수행하는 단계는 프라이버시 보존 세트 교점 알고리즘(privacy preserving set intersection algorithm)을 적용하는 단계를 포함한다.
[147] 예 4: 예 1 내지 예 3 중 하나의 컴퓨터-구현 방법에 있어서, 호스트는 데이터 통신을 부분적으로 암호화하고, 데이터 통신의 암호화되지 않은 부분을 평문으로 남겨두고, 부분적으로 암호화된 데이터 통신 및 평문을 소프트웨어 에이전트에 제공한다.
[148] 예 5: 예 1 내지 예 4 중 하나의 컴퓨터-구현 방법에 있어서, 소프트웨어 에이전트가 암호화된 데이터베이스에 노이즈(noise)를 부가하고 노이즈를 갖는 암호화된 데이터베이스를 호스트에 전송하는 단계를 더 포함한다.
[149] 예 6: 예 1 내지 예 5 중 하나의 컴퓨터-구현 방법에 있어서, 온라인 정보의 스윕은 인터넷의 웹 스윕이고, 인터넷의 웹 스윕은 미리 정해진 기간에 이루어진다.
[150] 예 7: 예 1 내지 예 6 중 하나의 컴퓨터-구현 방법에 있어서, 소프트웨어 에이전트는 호스트-암호화된 데이터 통신의 재-암호화 동안 호스트-암호화된 데이터 통신의 값들을 재-순서화(re-order)하는 단계를 더 포함한다.
[151] 예 8: 예 1 내지 예 7 중 하나의 컴퓨터-구현 방법에 있어서, 호스트가 소프트웨어 에이전트에 매칭을 보고하는 단계는, 호스트가, 매칭들의 수, 암호화된 매칭 후보 유출된 정보, 및 후보 데이터 유출의 소스와 연관된 정보 중 적어도 하나를 소프트웨어 에이전트에 제공하는 단계를 포함한다.
[152] 예 9: 예 8의 컴퓨터-구현 방법에 있어서, 후보 데이터 유출의 소스와 연관된 정보는 후보 데이터 유출의 소스로서 웹 스윕 동안 식별된 URL(Uniform Resource Locator) 및 URL과 연관된 메타데이터 중 적어도 하나를 포함한다.
[153] 예 10: 기업의 방화벽 외부의 호스트에서 데이터 유출을 검출하는 컴퓨터-구현 방법으로서, 이 방법은, 기업의 방화벽 외부의 호스트에 의해, 온라인 데이터 세트를 생성하도록 후보 데이터 유출에 대해 온라인 정보의 스윕(sweep)을 수행하는 단계; 호스트가, 온라인 데이터의 콘텍스트에 기초하여, 온라인 정보가 후보 데이터 유출이라고 결정하도록 온라인 데이터 세트의 분석을 수행하는 단계; 데이터 통신을 암호화하고 호스트-암호화된 데이터 통신을 기업의 소프트웨어 에이전트에 제공하는 단계; 기업 통신의 소프트웨어 에이전트-암호화된 데이터베이스 및 소프트웨어 에이전트에 의해 재-암호화된 호스트-암호화된 데이터 통신을 수신하는 단계; 소프트웨어 에이전트-암호화된 데이터 통신을 생성하도록 재-암호화된 데이터 통신의 호스트-암호화된 측면을 복호화하는 단계; 정보의 암호화된 데이터베이스와 소프트웨어 에이전트-암호화된 데이터 통신 사이에 매칭이 존재하는지를 결정하도록 매칭 동작(matching operation)을 수행하는 단계; 매칭이 존재하는 것으로 결정되는 경우, 매칭을 소프트웨어 에이전트에 보고하는 단계; 및 매칭이 존재하지 않는 것으로 결정되는 경우, 호스트가 액션을 취하는 단계를 포함한다.
[154] 예 11: 예 10의 컴퓨터-구현 방법에 있어서, 매칭 동작을 수행하는 단계는 프라이버시 보존 세트 교점 알고리즘을 적용하는 단계를 포함한다.
[155] 예 12: 예 10 또는 예 11의 컴퓨터-구현 방법에 있어서, 호스트가 소프트웨어 에이전트에 매칭을 보고하는 단계는, 호스트가, 매칭들의 수, 암호화된 매칭 후보 유출된 정보, 및 후보 데이터 유출의 소스와 연관된 정보 중 적어도 하나를 소프트웨어 에이전트에 제공하는 단계를 포함한다.
[156] 예 13: 예 10 내지 예 12 중 하나의 컴퓨터-구현 방법에 있어서, 온라인 정보의 스윕은 인터넷의 웹 스윕이고, 인터넷의 웹 스윕은 미리 정해진 기간에 이루어진다.
[157] 예 14 : 소프트웨어 에이전트를 갖는 기업으로부터 데이터 유출을 검출하는 컴퓨터-구현 방법으로서, 이 방법은, 기업의 방화벽 외부의 호스트로부터, 후보 데이터 유출과 연관된 온라인 소스로부터 비롯된 호스트-암호화된 데이터 통신을 수신하는 단계; 공통 암호화 키를 사용하여, 기업 정보의 데이터베이스를 암호화하고 호스트-암호화된 데이터 통신을 재-암호화하는 단계; 기업 통신의 암호화된 데이터베이스 및 재-암호화된 데이터 통신을 호스트에 제공하는 단계; 정보의 암호화된 데이터베이스와 재-암호화된 데이터 통신 사이에 매칭이 존재한다는 것을 표시하는 호스트로부터의 리포트를 수신하는 단계; 및 제1 액션을 취하는 단계를 포함한다.
[158] 예 15: 예 14의 컴퓨터-구현 방법에 있어서, 기업의 소프트웨어 에이전트에는 온라인 어카운트로부터 비롯된 데이터 통신을 암호화하는, 호스트에 의해 사용되는 키가 제공되지 않고, 호스트에는 소프트웨어 에이전트의 공통 암호화 키가 제공되지 않는다.
[159] 예 16: 예 14 또는 예 15의 컴퓨터-구현 방법에 있어서, 소프트웨어 에이전트는 암호화된 데이터베이스에 노이즈(noise)를 부가하고 노이즈를 갖는 암호화된 데이터베이스를 호스트에 전송하는 단계를 더 포함한다.
[160] 예 17: 예 14 내지 예 16 중 하나의 컴퓨터-구현 방법에 있어서, 소프트웨어 에이전트는 호스트-암호화된 데이터 통신의 재-암호화 동안 호스트-암호화된 데이터 통신의 값들을 재-순서화하는 단계를 더 포함한다.
[161] 예 18: 예 14 내지 예 17 중 하나의 컴퓨터-구현 방법에 있어서, 소프트웨어 에이전트에 의한 제1 액션은 데이터 유출이 기업과 연관된다는 경보를 기관(authority)에 제공하는 것을 포함한다.
[162] 예 19 : 기업의 방화벽 외부의 호스트에서 데이터 유출을 검출하기 위한 시스템으로서, 시스템은, 하드웨어 프로세서를 포함하고 컴퓨터-판독 가능 매체 상에 저장된 실행 가능 명령들을 갖는, 기업의 방화벽 외부의 호스트; 및 하드웨어 프로세서를 포함하고 컴퓨터-판독 가능 매체 상에 저장된 실행 가능 명령들을 갖는 기업을 포함하고, 호스트의 명령들은, 기업의 방화벽 외부의 호스트에 의해, 온라인 데이터 세트를 생성하도록 후보 데이터 유출에 대해 온라인 정보의 스윕을 수행하는 것; 호스트가, 온라인 데이터의 콘텍스트에 기초하여, 온라인 정보가 후보 데이터 유출이라고 결정하도록 온라인 데이터 세트의 분석을 수행하는 것; 데이터 통신을 암호화하고 호스트-암호화된 데이터 통신을 기업의 소프트웨어 에이전트에 제공하는 것; 기업 통신의 소프트웨어 에이전트-암호화된 데이터베이스 및 소프트웨어 에이전트에 의해 재-암호화된 호스트-암호화된 데이터 통신을 수신하는 것; 소프트웨어 에이전트-암호화된 데이터 통신을 생성하도록 재-암호화된 데이터 통신의 호스트-암호화된 측면을 복호화하는 것; 정보의 암호화된 데이터베이스와 소프트웨어 에이전트-암호화된 데이터 통신 사이에 매칭이 존재하는지를 결정하도록 매칭 동작을 수행하는 것; 매칭이 존재하는 것으로 결정되는 경우, 매칭을 소프트웨어 에이전트에 보고하는 것; 그리고 매칭이 존재하지 않는 것으로 결정되는 경우, 소프트웨어 에이전트가 제1 액션을 취하는 것을 포함하고, 기업의 명령들은, 기업의 방화벽 외부의 호스트로부터, 호스트-암호화된 데이터 통신을 수신하는 것; 공통 암호화 키를 사용하여, 기업 정보의 데이터베이스를 암호화하고 호스트-암호화된 데이터 통신을 재-암호화하고, 소프트웨어 에이전트-암호화된 데이터베이스 및 재-암호화된 데이터 통신을 호스트에 제공하는 것; 정보의 암호화된 데이터베이스와 소프트웨어 에이전트-암호화된 데이터 통신 사이에 매칭이 존재한다는 것을 표시하는 호스트로부터의 리포트를 수신하는 것; 그리고 제2 액션을 취하는 것을 포함한다.
[163] 예 20: 예 19의 시스템에 있어서, 기업의 소프트웨어 에이전트에는 온라인 어카운트로부터 비롯된 데이터 통신을 암호화하는, 호스트에 의해 사용되는 키가 제공되지 않고, 호스트에는 소프트웨어 에이전트의 공통 암호화 키가 제공되지 않는다.
[164] 예 21 : 컴퓨터 시스템의 프로세서에 의해 실행될 때, 컴퓨터 시스템으로 하여금 예 1 내지 예 9 중 하나에 따른 방법을 수행하게 하는 명령들을 포함하는 비-일시적인 컴퓨터 판독 가능 매체.
[165] 예 22 : 컴퓨터 시스템의 프로세서에 의해 실행될 때, 컴퓨터 시스템으로 하여금 예 10 내지 예 13 중 하나에 따른 방법을 수행하게 하는 명령들을 포함하는 비-일시적인 컴퓨터 판독 가능 매체.
[166] 예 23 : 컴퓨터 시스템의 프로세서에 의해 실행될 때, 컴퓨터 시스템으로 하여금 예 14 내지 예 18 중 하나에 따른 방법을 수행하게 하는 명령들을 포함하는 비-일시적인 컴퓨터 판독 가능 매체.
[167] 몇 개의 예시적인 구현들이 도시되고 설명되었지만, 이들 예시적인 구현들은 당업자들에게 본원에서 설명된 청구 대상을 전달하기 위해 제공된다. 본원에서 설명된 청구 대상은 설명된 예시적인 구현들로 제한되지 않고 다양한 형태들로 구현될 수 있다는 것이 이해되어야 한다. 본원에서 설명된 청구 대상은 그러한 특별히 정의되거나 설명된 사항들 없이 또는 설명되지 않은 다른 또는 상이한 엘리먼트들 또는 사항들로 실시될 수 있다. 당업자들은, 첨부된 청구항들 및 그의 등가물에 정의된 바와 같이 본원에서 설명된 청구 대상으로부터 벗어남 없이 이러한 예시적인 구현들에서 변경들이 이루어질 수 있다는 것을 인지할 것이다.

Claims (20)

  1. 데이터 유출을 검출하는 컴퓨터-구현 방법으로서,
    기업의 방화벽 외부의 호스트에 의해, 후보 데이터 유출에 대해 온라인 정보의 스윕(sweep)을 수행하여, 온라인 데이터 세트를 생성하는 단계;
    상기 호스트가, 상기 온라인 데이터 세트의 분석을 수행하여, 상기 온라인 데이터의 콘텍스트에 기초하여, 상기 온라인 정보가 상기 후보 데이터 유출이라고 결정하는 단계;
    상기 호스트가 데이터 통신을 암호화하고 호스트-암호화된 데이터 통신을 상기 기업의 소프트웨어 에이전트에 제공하는 단계;
    상기 호스트-암호화된 데이터 통신을 수신하는 것에 대한 응답으로 그리고 공통 암호화 키를 이용함으로써, 상기 소프트웨어 에이전트가 기업 정보의 데이터베이스를 암호화하고 상기 호스트-암호화된 데이터 통신을 재-암호화하는 단계;
    기업 통신의 소프트웨어 에이전트-암호화된 데이터베이스 및 재-암호화된 데이터 통신을 상기 호스트에 제공하는 단계;
    상기 호스트가 상기 재-암호화된 데이터 통신의 호스트-암호화된 측면(aspect)을 복호화하여, 소프트웨어 에이전트-암호화된 데이터 통신을 생성하는 단계;
    정보의 암호화된 데이터베이스와 상기 소프트웨어 에이전트-암호화된 데이터 통신 사이에 매칭이 존재하는지를 결정하도록 매칭 동작(matching operation)을 수행하는 단계;
    상기 매칭이 존재하는 것으로 결정되는 경우, 상기 호스트가 상기 소프트웨어 에이전트에 상기 매칭을 보고하고, 상기 소프트웨어 에이전트가 제1 액션(action)을 취하는 단계; 및
    상기 매칭이 존재하지 않는 것으로 결정되는 경우, 상기 호스트가 제2 액션을 취하는 단계
    를 포함하는,
    컴퓨터-구현 방법.
  2. 제 1 항에 있어서,
    상기 기업의 소프트웨어 에이전트에는 온라인 어카운트로부터 비롯된 데이터 통신을 암호화하는, 상기 호스트에 의해 사용되는 키가 제공되지 않고,
    상기 호스트에는 상기 소프트웨어 에이전트의 공통 암호화 키가 제공되지 않는,
    컴퓨터-구현 방법.
  3. 제 1 항에 있어서,
    상기 매칭 동작을 수행하는 단계는, 프라이버시 보존 세트 교점 알고리즘(privacy preserving set intersection algorithm)을 적용하는 단계를 포함하는,
    컴퓨터-구현 방법.
  4. 제 1 항에 있어서,
    상기 호스트는 상기 데이터 통신을 부분적으로 암호화하고, 상기 데이터 통신의 암호화되지 않은 부분을 평문으로 남겨두고, 부분적으로 암호화된 데이터 통신 및 상기 평문을 상기 소프트웨어 에이전트에 제공하는,
    컴퓨터-구현 방법.
  5. 제 1 항에 있어서,
    상기 소프트웨어 에이전트가 상기 암호화된 데이터베이스에 노이즈(noise)를 부가하고 상기 노이즈를 갖는 암호화된 데이터베이스를 상기 호스트에 전송하는 단계를 더 포함하는,
    컴퓨터-구현 방법.
  6. 제 1 항에 있어서,
    상기 온라인 정보의 스윕은 인터넷의 웹 스윕이고, 상기 인터넷의 웹 스윕은 미리 정해진 기간에 이루어지는,
    컴퓨터-구현 방법.
  7. 제 1 항에 있어서,
    상기 소프트웨어 에이전트가 상기 호스트-암호화된 데이터 통신의 재-암호화 동안 상기 호스트-암호화된 데이터 통신의 값들을 재-순서화(re-order)하는 단계를 더 포함하는,
    컴퓨터-구현 방법.
  8. 제 1 항에 있어서,
    상기 호스트가 상기 소프트웨어 에이전트에 상기 매칭을 보고하는 단계는, 상기 호스트가, 매칭들의 수, 암호화된 매칭 후보 유출 정보, 및 후보 데이터 유출의 소스와 연관된 정보 중 적어도 하나를 상기 소프트웨어 에이전트에 제공하는 단계를 포함하는,
    컴퓨터-구현 방법.
  9. 제 8 항에 있어서,
    상기 후보 데이터 유출의 소스와 연관된 정보는 후보 데이터 유출의 소스로서 웹 스윕 동안 식별된 URL(Uniform Resource Locator) 및 상기 URL과 연관된 메타데이터 중 적어도 하나를 포함하는,
    컴퓨터-구현 방법.
  10. 기업의 방화벽 외부의 호스트에서 데이터 유출을 검출하는 컴퓨터-구현 방법으로서,
    기업의 방화벽 외부의 호스트에 의해, 후보 데이터 유출에 대해 온라인 정보의 스윕을 수행하여, 온라인 데이터 세트를 생성하는 단계;
    상기 호스트가, 상기 온라인 데이터 세트의 분석을 수행하여, 상기 온라인 데이터의 콘텍스트에 기초하여, 상기 온라인 정보가 상기 후보 데이터 유출이라고 결정하는 단계;
    데이터 통신을 암호화하고 호스트-암호화된 데이터 통신을 상기 기업의 소프트웨어 에이전트에 제공하는 단계;
    기업 통신의 소프트웨어 에이전트-암호화된 데이터베이스 및 상기 소프트웨어 에이전트에 의해 재-암호화된 상기 호스트-암호화된 데이터 통신을 수신하는 단계;
    상기 재-암호화된 데이터 통신의 호스트-암호화된 측면을 복호화하여, 소프트웨어 에이전트-암호화된 데이터 통신을 생성하는 단계;
    정보의 암호화된 데이터베이스와 상기 소프트웨어 에이전트-암호화된 데이터 통신 사이에 매칭이 존재하는지를 결정하도록 매칭 동작을 수행하는 단계;
    상기 매칭이 존재하는 것으로 결정되는 경우, 상기 매칭을 소프트웨어 에이전트에 보고하는 단계; 및
    상기 매칭이 존재하지 않는 것으로 결정되는 경우, 상기 호스트가 액션을 취하는 단계
    를 포함하는,
    컴퓨터-구현 방법.
  11. 제 10 항에 있어서,
    상기 매칭 동작을 수행하는 단계는 프라이버시 보존 세트 교점 알고리즘을 적용하는 단계를 포함하는,
    컴퓨터-구현 방법.
  12. 제 10 항에 있어서,
    상기 호스트가 상기 소프트웨어 에이전트에 상기 매칭을 보고하는 단계는, 상기 호스트가, 매칭들의 수, 암호화된 매칭 후보 유출 정보, 및 후보 데이터 유출의 소스와 연관된 정보 중 적어도 하나를 상기 소프트웨어 에이전트에 제공하는 단계를 포함하는,
    컴퓨터-구현 방법.
  13. 제 10 항에 있어서,
    상기 온라인 정보의 스윕은 인터넷의 웹 스윕이고, 상기 인터넷의 웹 스윕은 미리 정해진 기간에 이루어지는,
    컴퓨터-구현 방법.
  14. 소프트웨어 에이전트를 갖는 기업으로부터 데이터 유출을 검출하는 컴퓨터-구현 방법으로서,
    상기 기업의 방화벽 외부의 호스트로부터, 후보 데이터 유출과 연관된 온라인 소스로부터 비롯된 호스트-암호화된 데이터 통신을 수신하는 단계;
    공통 암호화 키를 사용하여, 기업 정보의 데이터베이스를 암호화하고 호스트-암호화된 데이터 통신을 재-암호화하는 단계;
    기업 통신의 암호화된 데이터베이스 및 재-암호화된 데이터 통신을 상기 호스트에 제공하는 단계;
    정보의 암호화된 데이터베이스와 상기 재-암호화된 데이터 통신 사이에 매칭이 존재한다는 것을 표시하는 호스트로부터의 리포트를 수신하는 단계; 및
    제1 액션을 취하는 단계를 포함하는,
    컴퓨터-구현 방법.
  15. 제 14 항에 있어서,
    상기 기업의 소프트웨어 에이전트에는, 온라인 어카운트로부터 비롯된 데이터 통신을 암호화하는, 상기 호스트에 의해 사용되는 키가 제공되지 않고,
    상기 호스트에는 상기 소프트웨어 에이전트의 공통 암호화 키가 제공되지 않는,
    컴퓨터-구현 방법.
  16. 제 14 항에 있어서,
    상기 소프트웨어 에이전트는 상기 암호화된 데이터베이스에 노이즈를 부가하고 상기 노이즈를 갖는 암호화된 데이터베이스를 상기 호스트에 전송하는 단계를 더 포함하는,
    컴퓨터-구현 방법.
  17. 제 14 항에 있어서,
    상기 소프트웨어 에이전트는 상기 호스트-암호화된 데이터 통신의 재-암호화 동안 상기 호스트-암호화된 데이터 통신의 값들을 재-순서화하는 단계를 더 포함하는,
    컴퓨터-구현 방법.
  18. 제 14 항에 있어서,
    상기 소프트웨어 에이전트에 의한 제1 액션은 상기 데이터 유출이 상기 기업과 연관된다는 경보를 기관(authority)에 제공하는 것을 포함하는,
    컴퓨터-구현 방법.
  19. 기업의 방화벽 외부의 호스트에서 데이터 유출을 검출하기 위한 시스템으로서,
    하드웨어 프로세서를 포함하고 컴퓨터-판독 가능 매체 상에 저장된 실행 가능 명령들을 갖는, 상기 기업의 방화벽 외부의 호스트; 및
    하드웨어 프로세서를 포함하고 컴퓨터-판독 가능 매체 상에 저장된 실행 가능 명령들을 갖는 상기 기업
    을 포함하고,
    상기 호스트의 명령들은,
    기업의 방화벽 외부의 호스트에 의해, 후보 데이터 유출에 대해 온라인 정보의 스윕을 수행하여, 온라인 데이터 세트를 생성하고;
    상기 호스트가 상기 온라인 데이터 세트의 분석을 수행하여, 상기 온라인 데이터의 콘텍스트에 기초하여, 상기 온라인 정보가 상기 후보 데이터 유출이라고 결정하고;
    데이터 통신을 암호화하고 호스트-암호화된 데이터 통신을 상기 기업의 소프트웨어 에이전트에 제공하고;
    기업 통신의 소프트웨어 에이전트-암호화된 데이터베이스 및 상기 소프트웨어 에이전트에 의해 재-암호화된 상기 호스트-암호화된 데이터 통신을 수신하고;
    상기 재-암호화된 데이터 통신의 호스트-암호화된 측면을 복호화하여, 소프트웨어 에이전트-암호화된 데이터 통신을 생성하고;
    정보의 암호화된 데이터베이스와 상기 소프트웨어 에이전트-암호화된 데이터 통신 사이에 매칭이 존재하는지를 결정하도록 매칭 동작을 수행하는 것;
    상기 매칭이 존재하는 것으로 결정되는 경우, 상기 매칭을 소프트웨어 에이전트에 보고하고; 그리고
    상기 매칭이 존재하지 않는 것으로 결정되는 경우, 상기 소프트웨어 에이전트가 제1 액션을 취하는 것
    을 포함하고,
    상기 기업의 명령들은,
    상기 기업의 방화벽 외부의 호스트로부터, 상기 호스트-암호화된 데이터 통신을 수신하고;
    공통 암호화 키를 사용하여, 기업 정보의 데이터베이스를 암호화하고 호스트-암호화된 데이터 통신을 재-암호화하고, 소프트웨어 에이전트-암호화된 데이터베이스 및 재-암호화된 데이터 통신을 상기 호스트에 제공하고;
    정보의 암호화된 데이터베이스와 상기 소프트웨어 에이전트-암호화된 데이터 통신 사이에 매칭이 존재한다는 것을 표시하는 호스트로부터의 리포트를 수신하고; 그리고
    제2 액션을 취하는 것
    을 포함하는,
    시스템.
  20. 제19항에 있어서,
    상기 기업의 소프트웨어 에이전트에는, 온라인 어카운트로부터 비롯된 데이터 통신을 암호화하는, 상기 호스트에 의해 사용되는 키가 제공되지 않고,
    상기 호스트에는 상기 소프트웨어 에이전트의 공통 암호화 키가 제공되지 않는,
    시스템.
KR1020187014276A 2016-01-22 2016-12-20 프라이버시를 보존하면서 민감한 정보 유출을 검출하기 위한 시스템들 및 방법들 KR101928913B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/004,586 2016-01-22
US15/004,586 US9830463B2 (en) 2016-01-22 2016-01-22 Systems and methods for detecting sensitive information leakage while preserving privacy
PCT/US2016/067847 WO2017127207A1 (en) 2016-01-22 2016-12-20 Systems and methods for detecting sensitive information leakage while preserving privacy

Publications (2)

Publication Number Publication Date
KR20180059946A true KR20180059946A (ko) 2018-06-05
KR101928913B1 KR101928913B1 (ko) 2018-12-13

Family

ID=57799822

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187014276A KR101928913B1 (ko) 2016-01-22 2016-12-20 프라이버시를 보존하면서 민감한 정보 유출을 검출하기 위한 시스템들 및 방법들

Country Status (6)

Country Link
US (2) US9830463B2 (ko)
EP (1) EP3380979B1 (ko)
JP (1) JP6553819B2 (ko)
KR (1) KR101928913B1 (ko)
CN (2) CN108463827B (ko)
WO (1) WO2017127207A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10951591B1 (en) * 2016-12-20 2021-03-16 Wells Fargo Bank, N.A. SSL encryption with reduced bandwidth
US9965648B1 (en) 2017-04-06 2018-05-08 International Business Machines Corporation Automatic masking of sensitive data
US11283832B2 (en) 2018-10-31 2022-03-22 SpyCloud, Inc. Detecting use of compromised security credentials in private enterprise networks
US11399021B2 (en) 2018-10-31 2022-07-26 SpyCloud, Inc. Filtering passwords based on a plurality of criteria
US11558409B2 (en) 2018-10-31 2023-01-17 SpyCloud, Inc. Detecting use of passwords that appear in a repository of breached credentials
US11438360B2 (en) 2018-10-31 2022-09-06 SpyCloud, Inc. Determining the intersection of a set of compromised credentials with a set of active credentials with data structures and architectures that expedite comparisons
US11178117B2 (en) * 2018-12-18 2021-11-16 International Business Machines Corporation Secure multiparty detection of sensitive data using private set intersection (PSI)
US11461458B2 (en) 2019-02-28 2022-10-04 SpyCloud, Inc. Measuring data-breach propensity
CN110535622A (zh) * 2019-08-01 2019-12-03 阿里巴巴集团控股有限公司 数据处理方法、装置和电子设备
US10885203B2 (en) 2019-08-01 2021-01-05 Advanced New Technologies Co., Ltd. Encrypted data exchange
US11330437B2 (en) * 2019-12-21 2022-05-10 Fortinet, Inc. Detecting data exfiltration using machine learning on personal e-mail account display names
CN111556098B (zh) * 2020-04-08 2023-09-15 深圳供电局有限公司 一种基于人工智能的物联网数据的分析系统和分析方法
KR102392300B1 (ko) * 2020-06-03 2022-04-29 주식회사 마인드웨어Ÿp스 개인정보 보호 기반 음성 정보 처리 서비스 제공 시스템
CN111814144B (zh) * 2020-07-14 2023-11-07 深信服科技股份有限公司 一种泄露数据处理方法、装置、设备及介质
CN112000984A (zh) * 2020-08-24 2020-11-27 杭州安恒信息技术股份有限公司 一种数据泄露检测方法、装置、设备及可读存储介质
US11783065B2 (en) 2020-11-25 2023-10-10 International Business Machines Corporation Business data protection for running tasks in computer system
CN117473513B (zh) * 2023-12-28 2024-04-12 北京立思辰安科技术有限公司 一种设备检测方法、存储介质及电子设备

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8055894B2 (en) * 1999-11-09 2011-11-08 Google Inc. Process and streaming server for encrypting a data stream with bandwidth based variation
US7320069B1 (en) * 2003-02-14 2008-01-15 Novell, Inc. Selective encryption of media data
EP1913510A1 (en) * 2005-08-05 2008-04-23 Hewlett-Packard Development Company, L.P. System, method and apparatus for decrypting data stored on removable media
US9055093B2 (en) 2005-10-21 2015-06-09 Kevin R. Borders Method, system and computer program product for detecting at least one of security threats and undesirable computer files
US8607350B2 (en) * 2006-03-30 2013-12-10 International Business Machines Corporation Sovereign information sharing service
CN101141244B (zh) * 2006-09-08 2010-05-26 飞塔公司 网络加密数据病毒检测和消除系统和代理服务器及方法
WO2008068655A2 (en) 2006-12-08 2008-06-12 International Business Machines Corporation Privacy enhanced comparison of data sets
US8468244B2 (en) 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
US9130986B2 (en) * 2008-03-19 2015-09-08 Websense, Inc. Method and system for protection against information stealing software
US7996374B1 (en) 2008-03-28 2011-08-09 Symantec Corporation Method and apparatus for automatically correlating related incidents of policy violations
US8065739B1 (en) 2008-03-28 2011-11-22 Symantec Corporation Detecting policy violations in information content containing data in a character-based language
US20090327943A1 (en) * 2008-06-26 2009-12-31 Microsoft Corporation Identifying application program threats through structural analysis
US20090327971A1 (en) * 2008-06-26 2009-12-31 Microsoft Corporation Informational elements in threat models
US8181250B2 (en) * 2008-06-30 2012-05-15 Microsoft Corporation Personalized honeypot for detecting information leaks and security breaches
US8826443B1 (en) 2008-09-18 2014-09-02 Symantec Corporation Selective removal of protected content from web requests sent to an interactive website
US9235704B2 (en) * 2008-10-21 2016-01-12 Lookout, Inc. System and method for a scanning API
CN101436208B (zh) * 2008-12-09 2011-05-11 北京交通大学 一种密文数据库隐私保护查询方法
US8572758B1 (en) 2009-03-30 2013-10-29 Symantec Corporation DLP-enforced loss scanning, sequestering, and content indexing
CN101894239B (zh) * 2010-08-12 2013-07-10 武汉大学 基于演化策略的敏感数据审计分发方法及系统
US8416709B1 (en) 2010-09-28 2013-04-09 Amazon Technologies, Inc. Network data transmission analysis management
US8555383B1 (en) 2010-09-28 2013-10-08 Amazon Technologies, Inc. Network data transmission auditing
US8565108B1 (en) 2010-09-28 2013-10-22 Amazon Technologies, Inc. Network data transmission analysis
WO2012109633A2 (en) 2011-02-11 2012-08-16 Achilles Guard, Inc. D/B/A Critical Watch Security countermeasure management platform
CN102355375B (zh) * 2011-06-28 2014-04-23 电子科技大学 具有隐私保护功能的分布式异常流量检测方法与系统
US8526603B2 (en) * 2011-07-08 2013-09-03 Sap Ag Public-key encrypted bloom filters with applications to private set intersection
US8800024B2 (en) 2011-10-17 2014-08-05 Mcafee, Inc. System and method for host-initiated firewall discovery in a network environment
US20130246336A1 (en) 2011-12-27 2013-09-19 Mcafee, Inc. System and method for providing data protection workflows in a network environment
US8977857B1 (en) * 2012-02-10 2015-03-10 Google Inc. System and method for granting access to protected information on a remote server
US8572405B2 (en) * 2012-03-15 2013-10-29 Sap Ag Collusion-resistant outsourcing of private set intersection
US8880882B2 (en) * 2012-04-04 2014-11-04 Google Inc. Securely performing programmatic cloud-based data analysis
JP5941745B2 (ja) * 2012-05-01 2016-06-29 Kddi株式会社 アプリケーション解析装置、アプリケーション解析システム、およびプログラム
US8595481B1 (en) * 2012-05-18 2013-11-26 Google Inc. Method, manufacture, and apparatus for centralized wifi encryption for guest
US8868927B1 (en) * 2012-08-14 2014-10-21 Google Inc. Method and apparatus for secure data input and output
US20140229732A1 (en) * 2013-02-12 2014-08-14 Amazon Technologies, Inc. Data security service
EP2979481B1 (en) * 2013-03-29 2020-01-22 Intel IP Corporation Wireless local area network (wlan) traffic load measurement provisioning to wireless cellular networks
US9654472B2 (en) * 2013-06-18 2017-05-16 Hitachi, Ltd. Storage count verification system
US9077703B1 (en) * 2013-07-10 2015-07-07 Symantec Corporation Systems and methods for protecting user accounts
CN103488920B (zh) * 2013-09-24 2016-06-08 北京深思数盾科技股份有限公司 一种无线信息安全设备的实现方法及系统
US9158925B2 (en) * 2013-11-27 2015-10-13 Microsoft Technology Licensing, Llc Server-aided private set intersection (PSI) with data transfer
WO2015089171A1 (en) 2013-12-11 2015-06-18 Intralinks, Inc. Customizable secure data exchange environment
US9177174B1 (en) * 2014-02-06 2015-11-03 Google Inc. Systems and methods for protecting sensitive data in communications
US9652597B2 (en) 2014-03-12 2017-05-16 Symantec Corporation Systems and methods for detecting information leakage by an organizational insider
US9361480B2 (en) * 2014-03-26 2016-06-07 Alcatel Lucent Anonymization of streaming data
US9503432B2 (en) * 2014-04-04 2016-11-22 Privacy Analytics Inc. Secure linkage of databases
CN103984900B (zh) * 2014-05-19 2017-03-01 南京赛宁信息技术有限公司 Android应用漏洞检测方法及系统
CN104796467B (zh) * 2015-04-10 2018-03-06 南京大学 一种计算具有QoS关联关系的QoS最优组合服务限定范围的方法
CN204680020U (zh) * 2015-05-25 2015-09-30 山西机电职业技术学院 一种计算机安全系统
US10284558B2 (en) * 2015-08-12 2019-05-07 Google Llc Systems and methods for managing privacy settings of shared content

Also Published As

Publication number Publication date
CN108463827A (zh) 2018-08-28
JP2019502957A (ja) 2019-01-31
US20180068124A1 (en) 2018-03-08
JP6553819B2 (ja) 2019-07-31
WO2017127207A1 (en) 2017-07-27
US10152603B2 (en) 2018-12-11
KR101928913B1 (ko) 2018-12-13
US20170213041A1 (en) 2017-07-27
CN113326517A (zh) 2021-08-31
EP3380979B1 (en) 2020-04-15
US9830463B2 (en) 2017-11-28
CN108463827B (zh) 2021-07-06
EP3380979A1 (en) 2018-10-03

Similar Documents

Publication Publication Date Title
KR101928913B1 (ko) 프라이버시를 보존하면서 민감한 정보 유출을 검출하기 위한 시스템들 및 방법들
EP3338401B1 (en) Systems and methods for data loss prevention while preserving privacy
AU2016220152B2 (en) Cloud encryption key broker apparatuses, methods and systems
US9577996B2 (en) Computer system and method for encrypted remote storage
WO2016189293A1 (en) Encryption and decryption system and method
US9686251B2 (en) Devices and techniques for controlling disclosure of sensitive information
US11095625B2 (en) Data objects associated with private set intersection (PSI)
WO2017131788A1 (en) Encryption of community-based security information based on time-bound cryptographic keys
CN105721393A (zh) 数据安全加密的方法及装置
US10701044B2 (en) Sharing of community-based security information
US10043015B2 (en) Method and apparatus for applying a customer owned encryption
US10389719B2 (en) Parameter based data access on a security information sharing platform
CN110417638B (zh) 通信数据处理方法和装置、存储介质及电子装置
Vydarený Ransomware Attacks and Defense Against Them

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right