System and method for detecting leakage of sensitive information while protecting privacy
Through the collaboration between external hosts and software agents, data leakage is detected using the privacy protection set intersection algorithm, which solves the time delay and privacy protection problems of data leakage detection in the prior art, and achieves fast and effective data leakage detection and privacy protection.
Patent Information
- Application Number
- CN202110598827.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2016-01-22
- Filing Date
- 2016-12-20
- Publication Date
- 2024-12-31
- Estimated Expiration
- 2036-12-20
AI Technical Summary
The prior art is difficult to detect large-scale data leakage quickly and effectively and protect privacy, especially in data transmission between enterprises and external hosts, where there is a risk of time delay and privacy leakage.
Online scanning and analysis are performed by external hosts, data sets are generated, and software agents are collaborated through encrypted communication, and matching operations are performed using the privacy protection set intersection algorithm to determine data leakage and take corresponding actions to ensure that sensitive information is not shared.
It realizes rapid detection of data leakage and protects privacy, reducing time delay and privacy risks, ensuring data security and privacy protection.
Smart Images

Figure CN113326517B_ABST
Abstract
Description
[0001] This case is a divisional application of patent application number: 201680072078.1, patent application date: December 20, 2016, patent name: System and method for detecting sensitive information leakage while protecting privacy. Background Art Technical Field
[0002] The subject matter discussed herein relates generally to methods and systems for detecting leakage of sensitive information while also protecting privacy, and more particularly to protocols between external hosts and enterprises to detect large-scale data leakage in a manner that protects private information.
[0003] Related technologies
[0004] In the related art, online information breaches associated with sensitive user data have grown in size and cost. For example, businesses that are online entities, such as retailers, insurance companies, and government agencies, may experience large-scale losses (or leaks) of sensitive information associated with individual users. For example, a third party may steal (e.g., crack) credit card numbers, social security numbers, or account information, publicly display sensitive information, or attempt to sell sensitive information in an unauthorized manner.
[0005] Breaches associated with sensitive data leaks are large in scale (e.g., millions of online user accounts) and occur rapidly, and can result in the loss of online entities (e.g., businesses) as well as individual users. Furthermore, it may be difficult or impossible for the business itself to detect the leak. Even if a leak is detected, there may be a significant time delay between the leak event and the detection of the leak event.
[0006] To solve the above problems, related technical methods can be used. For example, an entity (e.g., a business such as an online retailer or an agency, but not limited thereto) can contact a host and provide the host with an indication of online data loss. For example, but not limited to, the business can indicate to the host that it believes that a credit card number may have been leaked from a client and wants the host to determine whether a leak has occurred.
[0007] In response to the request, the related art host may be able to search the credit card number online, but not in a privacy-preserving manner. In addition, as mentioned above, there is a time lag between a breach and the business becoming aware of the breach. In addition, some online businesses are unable to use their own monitoring tools to detect breaches.
[0008] Therefore, there is a need for enterprises to enable hosts to quickly determine whether there is data loss (e.g., large-scale) without providing actual sensitive information to the host, and the host does not know the source of the data loss in order to protect privacy. Summary of the invention
[0009] The present subject matter includes a computer-implemented method for detecting a data leak, including a computer-implemented method for detecting a data leak, the method comprising: performing a scan of online information for a candidate data leak by a host external to an enterprise's firewall to generate an online data set; the host performing an analysis of the online data set based on a context of the online data set to determine that the online information is the candidate data leak; the host encrypting a data communication and providing the data communication encrypted by the host to a software agent at the enterprise, the data communication being associated with the online information that is the candidate data leak; in response to receiving the data communication encrypted by the host and by using a public A common encryption key, the software agent encrypts a database of enterprise information and re-encrypts the data communication encrypted by the host; provides the enterprise information database encrypted by the software agent and the re-encrypted data communication to the host; the host decrypts the host encryption aspect of the re-encrypted data communication to generate the data communication encrypted by the software agent; performs a matching operation to determine whether there is a match between the encrypted enterprise information database and the data communication encrypted by the software agent; for the match determined to exist, the host reports the match to the software agent, and the software agent takes a first action; and for the match determined not to exist, the host takes a second action.
[0010] The present subject matter also includes the software agent at the enterprise not being provided with a key used by the host to encrypt the data communications originating from an online account associated with the candidate data breach, and the host not being provided with the public encryption key of the software agent.
[0011] According to the present subject matter, performing the matching operation includes applying a privacy preserving set intersection algorithm.Further, the host partially encrypts the data communication and leaves an unencrypted portion of the data communication as plaintext, and provides the partially encrypted data communication and the plaintext to the software agent.
[0012] In addition, according to the present subject matter, the software agent adds noise to the encrypted enterprise information database and sends the encrypted enterprise information database with the noise to the host. Furthermore, the scanning of the online information is a network scanning of the Internet, and the network scanning of the Internet is in a specified time period.
[0013] Further, the subject matter includes, during re-encryption of the data communications encrypted by the host, the software agent reordering values in the data communications encrypted by the host. Additionally, the host reporting the matches to the software agent includes the host providing the software agent with at least one of: a number of matches, encrypted matching candidate leak information, and information associated with a source of the candidate data leak.
[0014] The present subject matter further includes that the information associated with the source of the candidate data leak includes at least one of: a uniform resource locator (URL) identified as the source of the candidate data leak during the network scan, and metadata associated with the URL.
[0015] The present subject matter is also directed to a computer-implemented method for detecting data leakage at a host outside the firewall of an enterprise, the method comprising: performing a scan for online information for candidate data leakage by the host outside the firewall of the enterprise to generate an online data set; the host performing an analysis of the online data set based on the context of the online data set to determine that the online information is the candidate data leakage; encrypting data communications and providing the data communications encrypted by the host to a software agent at the enterprise, the data communications being associated with the online information that is the candidate data leakage; receiving an enterprise information database encrypted by the software agent and the data communications encrypted by the host re-encrypted by the software agent; decrypting the host encryption aspects of the re-encrypted data communications to generate the data communications encrypted by the software agent; performing a matching operation to determine whether there is a match between the encrypted enterprise information database and the data communications encrypted by the software agent; for the match determined to exist, reporting the match to the software agent; and for the match determined not to exist, the host taking action.
[0016] According to the present subject matter, performing the matching operation includes applying a privacy preserving set intersection algorithm.
[0017] Further in accordance with the present subject matter, the host reporting the matches to the software agent includes the host providing to the software agent at least one of: a number of matches, encrypted matching candidate leakage information, and information associated with a source of the candidate data leakage.
[0018] Additionally, the present subject matter includes that the scanning of the online information is a network scan of the Internet, and the network scan of the Internet is within a specified time period.
[0019] A computer-implemented method of detecting a data leak from an enterprise having a software agent, the method comprising:
[0020] receiving, from a host external to a firewall of the enterprise, a data communication encrypted by the host, the data communication encrypted by the host originating from an online source associated with a candidate data breach;
[0021] encrypting a database of enterprise information using a public encryption key and re-encrypting said data communications encrypted by said host;
[0022] providing the encrypted enterprise information database and the re-encrypted data communication to the host;
[0023] receiving a report from the host indicating that there is a match between the encrypted enterprise information database and the re-encrypted data communication; and
[0024] Take the first action.
[0025] In accordance with present subject matter, the software agent at the enterprise is not provided with a key used by the host to encrypt the data communications originating from an online account associated with the candidate data breach, and the host is not provided with the public encryption key of the software agent.
[0026] The present subject matter also includes the software agent adding noise to the encrypted enterprise information database and sending the encrypted enterprise information database with the noise to the host.
[0027] Further, the present subject matter includes the software agent reordering values in the data communications encrypted by the host during re-encryption of the data communications encrypted by the host.
[0028] In accordance with the present subject matter, the first action of the software agent includes providing an alert to an organization that the data leak is associated with the enterprise.
[0029] The present subject matter also includes a system for detecting data leakage at a host outside a firewall of an enterprise, the system comprising: the host outside the firewall of the enterprise, the host comprising a hardware processor and having executable instructions stored on a computer-readable medium, the instructions at the host comprising, performing a scan of online information for candidate data leakage by the host outside the firewall of the enterprise to generate an online data set; the host performing an analysis of the online data set based on the context of the online data set to determine that the online information is the candidate data leakage; encrypting data communications and providing the data communications encrypted by the host to a software agent at the enterprise, the data communications being associated with the online information being the candidate data leakage; receiving an enterprise information database encrypted by the software agent and the data communications encrypted by the host re-encrypted by the software agent; decrypting the host encryption aspects of the re-encrypted data communications to generate the software agent processing the encrypted data communication; performing a matching operation to determine whether there is a match between the encrypted enterprise information database and the data communication encrypted by the software agent; for the match determined to exist, reporting the match to the software agent; and for the match determined not to exist, the host taking a second action; and the enterprise includes a hardware processor and has executable instructions stored on a computer-readable medium, the executable instructions receiving the data communication encrypted by the host from the host outside the firewall of the enterprise; encrypting the database of enterprise information using a public encryption key and re-encrypting the data communication encrypted by the host, and providing the enterprise information database encrypted by the software agent and the re-encrypted data communication to the host; receiving a report from the host indicating that there is a match between the encrypted enterprise information database and the data communication encrypted by the software agent; and taking a first action.
[0030] Further in accordance with the present subject matter, the software agent at the enterprise is not provided with a key used by the host to encrypt the data communications originating from the online account associated with the candidate data breach, and the host is not provided with the public encryption key of the software agent. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] Figure 1 A system with a host and a client having a protocol is shown according to an example implementation.
[0032] Figure 2 An example of a protocol according to an example implementation is shown.
[0033] Figure 3 An example process of a protocol including a client and a host is shown according to an example implementation.
[0034] Figure 4 An example process of a protocol including a host is shown according to an example implementation.
[0035] Figure 5 An example process of a protocol including a client is shown according to an example implementation.
[0036] Figure 6 An example environment suitable for some example implementations is shown.
[0037] Figure 7 An example computing environment with an example computing device associated with an external host is shown for use with some example implementations.
[0038] Figure 8 An example computing environment with an example computing device associated with a client is shown for use with some example implementations. DETAILED DESCRIPTION
[0039] The subject matter described herein is taught by example implementations. Various details are omitted for clarity and to avoid obscuring the subject matter. The examples shown below are directed to the structure and functionality for implementing a system and method for data loss detection while protecting privacy.
[0040] Aspects of example embodiments are directed to allowing a client (e.g., a business such as a retailer or government agency) to determine whether sensitive information associated with a user of the client has been compromised (e.g., stolen). For example, the data breach may be a large-scale data breach (e.g., millions of accounts). The determination is made by a host without the client revealing the sensitive information to the host, and the host does not provide any potentially sensitive information that would be provided to the client as a result of the determination process.
[0041] For example, but not by way of limitation, example embodiments may include a client that is an online entity such as a business that has users who have provided sensitive information to the business. For example, the business may be an online retailer, and the user may be a consumer who purchases from the online retailer's website using electronic payment, such as by credit card, debit card, mobile device payment system, or other payment methods as will be understood by those skilled in the art. Alternatively, the business may be an agency (e.g., tax, motor vehicle, health care), and the user may be an individual who has an online transaction with the agency that includes sensitive information (e.g., social security number, driver's license information, insurance account number, medical condition). The client may be a user of an online hosted service (e.g., cloud computing or an online application platform) provided by a host, or the client may not be a user of an online hosted service at all.
[0042] In an example embodiment, the host includes an engine that performs an online search for sensitive information of the client in data associated with the host (e.g., documents). The data associated with the host can be internal (e.g., stored in a cloud-based service and associated with the client) or external (e.g., online and publicly available on the Internet). For example, a network scan of available online data can be performed, not limited to locations associated with the client or host, to perform context-aware pattern matching to detect potential sensitive information at a location on the Internet (e.g., a URL) indicating a data leak event. In an example embodiment, the identity of a party responsible for the data leak (e.g., a bad actor such as a hacker) may not be known, and information about the potentially responsible party may not be available.
[0043] Further, the client includes an agent that can run in the client's secure environment (including the host's secure online environment). As explained in further detail below, the agent is operable to facilitate a secure set crossover protocol. Similarly, the host also includes a component that facilitates a secure crossover protocol. A user interface (UI) is also provided to allow the client to provide information (e.g., settings for sensitive information to be protected) and provide a determination result (e.g., data leakage or data theft information) to the user.
[0044] Other aspects of example embodiments relate to systems and methods for detecting and / or preventing data leakage, loss, or oversharing, including classical pattern matching and context-aware sensitive information detection with the assistance of protected parties. The systems and methods are performed in an automatic, privacy-preserving manner. For example, but not by way of limitation, the example systems and methods may employ cryptography, including but not limited to privacy-preserving set intersection algorithms. More specifically, a privacy-preserving set intersection algorithm may be an algorithm or method that allows determination of the intersection of two (or more) data sets belonging to different parties, without either party gaining knowledge of the other party's complete data set.
[0045] In the related art, a first company A wishes to provide a data leak detection service (e.g., identifying the loss of sensitive data, such as but not limited to company credit card numbers associated with company B). Company A may be able to detect information on the Internet that looks like sensitive information associated with company B (e.g., users or account holders of company B). However, the information available on the Internet also includes information that is not sensitive information (e.g., noise).
[0046] An unauthorized disclosure of information such as credit card numbers and / or social security numbers determined by Company A, if provided to Company B, could expose sensitive personal information to Company B. Company B could address the above issue by providing Company A with a database of corporate credit card numbers to be checked, which would expose Company B's private sensitive information to Company A.
[0047] According to an example implementation, a privacy-preserving set intersection protocol is employed. In the above example, Company A only shares the encrypted result with Company B (e.g., without sharing the key), and Company B only shares the encrypted company card number with Company A without sharing its key. Depending on the implementation of the privacy-preserving set intersection protocol, the result is the number of elements that exist in both sets, a list of the exact elements that exist in both sets, and / or information associated with the source of the elements (e.g., the uniform resource locator (URL) of a third-party website where Company A found the information during a search, which is the source of the stolen sensitive information displayed or sold online).
[0048] Thus, the collection itself is not revealed to either party. As a result, the privacy of individual users and Company A is protected because the actual information associated with the network scans and pattern matching used for findings is not reported to Company B, and the privacy of Company B is also protected because the corporate card database is not shared with Company A.
[0049] An example use case that implements the above protocol is provided below. Although specific data and context are provided herein for illustrative purposes, the example embodiments are not limited thereto, and other data and / or context may be substituted without departing from the scope of the invention. In addition, although credit card numbers are used for illustrative purposes, the example embodiments are not limited thereto, and other sensitive data whose privacy should be protected may be substituted, including but not limited to account identifiers, government-issued accounts (e.g., driver's license or social security number information), or other sensitive information, as understood by those skilled in the art.
[0050] In the first operation, Company A (e.g., a host) performs an analysis of the Internet, searching for numbers that appear to be sensitive data. For example, Company A might perform a search on the Internet for all similar credit card numbers or similar social security numbers.
[0051] As a result of the analysis, two candidate credit card numbers 1111 and 2112 were identified from a third-party website. This situation could be due to a third party accessing online information in an unauthorized manner or an individual with access to sensitive information providing sensitive data to a third party. As a result, the sensitive information has been leaked and is available on the Internet. Therefore, Company A's network scan identifies and compiles candidate data leak information.
[0052] Company A then encrypts each member of the candidate data leakage information using key A to generate A(1111), A(2111), and sends the encrypted candidate data leakage information A(1111), A(2111) to company B. Therefore, company B does not receive any value of the candidate data leakage information but only the encrypted value. As a result, company B receives an encrypted version (using key A) of the candidate credit card number that may contain data leakage.
[0053] Accordingly, Company B (e.g., client) retrieves its database of company card numbers (e.g., 2111, 2112, and 2113), and encrypts the information in the database based on key B using a password with an exchange property to generate B(2111), B(2112), B(2113). Accordingly, Company B sends the following results to Company A: B(2111), B(2112), B(2113). Therefore, Company A does not receive the true (e.g., plain text) identity of the credit card number, but only receives the encrypted version of the credit card number. In addition, Company B also uses key B to encrypt the encrypted candidate data leakage information it received from Company A into B(A(1111)), B(A(2111)), and sends the result to Company A.
[0054] After receiving B(2111), B(2112), B(2113), and B(A(1111)), B(A(2111)), Company A removes Company A's own encryption from the doubly encrypted elements B(A(1111)) and B(A(2111)) to generate B(1111) and B(2111). Company A can then compare the elements decrypted by Company A with respect to Key A (e.g., B(1111) and B(2111)) with the elements Company A received from Company B (e.g., B(2111), B(2112), B(2113)). Based on this comparison, Company A determines that B(1111) does not exist in both sets and that B(2111) exists in both sets. In other words, credit card number (2111) is present in the search results detected by Company A during the network scan and in the account database of Company B, while other credit card numbers (2112) and (2113) in Company B's database are not found in Company A's search results, and Company A's search results include (1111), which is not a credit card number associated with Company B.
[0055] After completing the comparison and determination of the matching values, Company A provides the results to Company B, which may include the number of "hits", the encrypted value itself (in this case, B(2111)), or other information, such as the URL where the candidate data leakage information was found, or related metadata. Since Company A runs network scans regularly (e.g., daily), historical information about past candidate data leakage information associated with the URLs can also be reported to Company B. If there are no hits, this indicates that Company B does not have any potential data leakage. If there are hits, this may indicate that Company B has a potential data leakage. If the scan is performed regularly (e.g., daily), historical data can be created that can be used by Company B to observe trends and perform data analysis.
[0056] Trend analysis can provide indirect indications of data leaks. For example, but not limited to, a subset of sensitive information (e.g., some card numbers) may have been leaked in the past, and a new leak may not necessarily expose all sensitive data (e.g., all card numbers) that was leaked online. By performing trend analysis compared to the number of raw hits, leak event detection can be enhanced.
[0057] For example, but not limited to, a client (e.g., a company) may have 1 million accounts in its database, and the host determines that historically, on average, only 5 accounts are exposed online per day. However, on a particular day, 15 accounts may have been exposed online and detected by the host. This deviation from the historical trend may provide an indication of a potential data breach of sensitive information.
[0058] Alternatively, even if the same total number of accounts are detected on a particular day, the detailed account numbers detected by the host may be different. In the previous example, if the daily average historical trend is that five accounts are detected every day, then one or more of the five accounts may be repeated. If on a particular day, the actual numbers of the five detected accounts are different from the historical trend of the detected accounts. Alternatively, the host may detect five accounts on average, and these five numbers may be repeated. However, if on one of the days, the five numbers detected are different from the five numbers that are repeated, this deviation from the historical trend may provide an indication of a potential data leak of sensitive information.
[0059] Since Company B has Key B, it can determine the credit card numbers identified as candidate data leakage information by Company A, including (2111). However, Company A does not have and cannot determine the database of B's corporate card numbers, and Company B does not have any actual information related to the encryption results provided by Company A, which do not match Company B's corporate card numbers.
[0060] The above example use cases may include additional optional aspects. For example, only certain features of the survey results (e.g., the last 4 digits of a credit card number) may be sent from Company A to Company B to avoid the need to encrypt and transmit the entire database of card numbers. Additionally, random noise may be added to Company A's survey results to prevent information from leaking from Company A to Company B. Additionally, the order of the elements may be adjusted to prevent Company A from determining which survey result represents a company card. In accordance with another alternative example implementation, a Bloom filter may be used by the client, particularly if there is considerable sensitive information in the candidate data leak detected by the host and is passed to the client in encrypted form using a host-side key (e.g., Key A).
[0061] It should be noted that, although not required for these example embodiments, Company A may optionally host one or more online services for Company B, or more generally may also be a host for Company B (e.g., a cloud service provider), and may therefore host services, applications, and data (e.g., Company A is a cloud host for Company B). However, even in such an environment, Company A may not be able to access Company B's information that is considered to be within the "firewall" of Company B. For example, but not limitation, when Company A hosts Company B, encryption methods may be employed to create a firewall for Company B.
[0062] Figure 1 A system 100 according to an example implementation is shown. More specifically, a client 101 (e.g., an enterprise, but not limited thereto) and a host 103 (e.g., a service provider, but not limited thereto) are coupled via a network such as the Internet 105. The host 103 includes a host server 107, a context-aware pattern matcher 109, a privacy-preserving set intersection comparator 111, an encryption / decryption engine 113, and action rules 115. The client 101 includes an agent 117, client information 119, an encryption / decryption engine 121, and action rules 123. The host 103 is not within the firewall of the client 101. According to the protocol, some operations are performed by the agent 117 at the client 101, and other operations are performed by the host server 107 at the host 103. In addition, a third party 125 not authorized by the client 101 may engage in unauthorized data leakage activities, such as hacking, and may obtain sensitive information of the client 101 and make the information available on the Internet 105, such as by publishing and / or publicly selling.
[0063] In system 100, publicly available information on Internet 105 is scanned periodically (e.g., daily, but not limited to) by host server 107 of host 103. For example, but not by way of limitation, host server 107 performs a known method of scanning a network to identify information that appears to be sensitive information. For example, but not by way of limitation, host server 107 performs context-based analysis of information on the Internet using context-aware pattern matching 109 to search for candidates for leaked information. For example, but not by way of limitation, context-aware pattern matching 109 may attempt to find a pattern (e.g., the number of consecutive characters, or the value of some or all consecutive characters). Optionally, host 103 may perform analysis to find candidate leaked information by applying the above-described Bloom filter.
[0064] For candidate leak information determined by the network scan performed by host server 107 using context-aware pattern matching 109, encryption / decryption engine 113 is employed to encrypt the candidate leak information based on a key at host 103; the key at host 103 is not provided to client 101. Host server 107 then provides the encrypted candidate leak information to agent 117 of client 101.
[0065] When the agent 117 receives the encrypted candidate leakage information, it applies the encryption / decryption engine 121 to perform a second encryption on the received once-encrypted candidate leakage information, and also encrypts the client information 119 (e.g., a database of client information). The agent 117 can access the client information 119 and resides in the environment of the client 101 (e.g., a cloud space of the client 101 hosted by the host 103 or another host). The encryption / decryption engine 121 uses a different key at the client 101, and the different key is not provided to the host 103. The agent 117 sends the twice-encrypted candidate leakage information and the encrypted client information to the host 103 via a network such as the Internet 105. Throughout the specification, the terms "re-encryption", "twice encryption" and "double encryption" are used synonymously.
[0066] When the host server 107 receives the twice encrypted candidate leakage information and the encrypted client information, it performs a decryption operation on the twice encrypted candidate leakage information via the encryption / decryption engine 113 to remove the encryption originally applied thereto. As a result, the encrypted candidate leakage information and the encrypted client information, both encrypted by the client 101, are stored at the host 103.
[0067] The host server 107 then applies the privacy-preserving set intersection comparator 111 to perform a matching operation on the values of the encrypted candidate leaked information and the encrypted client information.
[0068] If the result of the matching operation is to determine that a match exists, the host server 107 provides a report to the agent 117 of the client 101, which includes the number of matches, encrypted matching candidate leakage information, and / or information associated with the candidate data leakage source (e.g., URL and associated metadata). As explained in more detail below, the agent 117 applies the action rules 123 to determine the action to be taken. If the result of the matching operation is to determine that a match does not exist, the action rules 115 are applied, and the host 103 takes an action as explained in more detail below.
[0069] As described above, in response to receiving the host-encrypted data communications, and by using the common encryption key, the software agent 117 may encrypt the database of enterprise information and re-encrypt the host-encrypted data communications, and provide the software agent-encrypted database of enterprise information and the re-encrypted data communications to the host 103. The host may decrypt the host-encrypted aspects of the re-encrypted data communications to generate the software agent-encrypted data communications, and perform a matching operation to determine if there is a match between the encrypted database of information and the software agent-encrypted data communications.
[0070] For matches that are determined to exist, the host 103 can provide a report to the software agent 117, and the software agent 117 can take a first action based on the report. As described above, the report can include the number of matches, encrypted matching candidate leakage information, and / or information associated with the candidate data leakage source (e.g., URL and associated metadata).
[0071] The actions of the software agent 117 may include checking the number of matches, and if the number of matches exceeds a threshold, determining that a data leakage event has occurred. However, the check is not limited to determining whether the number of matches exceeds a threshold, and other analysis methods may be substituted for this, or used in combination with the above check.
[0072] For example, but not by way of limitation, instead of (or in addition to) comparing the number of matches to a threshold, the number of matches may be compared to a historical average of the number of hits per day over the entire analysis history, or to some subset thereof (e.g., the number over the previous several days, weeks, or months; the average for a particular day of each week, month, or year; or other subset that would be understood by one skilled in the art).
[0073] In addition, according to another example embodiment, analysis can be performed on information other than the number of matches. For example, the number of sites (e.g., URLs) detected by the host that publish the same leaked sensitive information or the change in the number of sites detected by the host that publish the same leaked sensitive information can provide information indicating a sensitive information leak. Such information may be useful, for example, for data leak investigations by law enforcement agencies and / or clients.
[0074] The software agent 117 can automatically and / or based on manual inspection steps generate and provide warnings to relevant agencies (e.g., credit card related companies, banks, law enforcement agencies, license issuing agencies, or other agencies that will be understood by those skilled in the art). In addition, the administrator of the client 101 can be warned that a leak may have occurred. However, the example embodiments are not limited to this, and other actions in response to data leaks that will be understood by those skilled in the art can be substituted for this without departing from the scope of the present invention.
[0075] For a match that is determined not to exist, the host 103 may take a second action. The second action of the host 103 may include not providing a report to the software agent 117.
[0076] As described above, the software agent at client 101 (eg, an enterprise) is not provided with the key used by host 103 to encrypt the candidate data leakage information, and host 103 is not provided with the public encryption key of software agent 117 .
[0077] According to an example embodiment, the host 103 may partially encrypt the data communication and leave the unencrypted portion of the data communication as plaintext. In addition, the host 103 may provide the partially encrypted data communication and the plaintext to the software agent. As a result, processing requirements may be reduced because the entire string of each candidate leak information does not need to be encrypted, transmitted, and decrypted between the host 103 and the client 101.
[0078] As described above, the software agent 117 may add noise to the encrypted database and send the encrypted database with the noise to the host 103. Similarly, the software agent 117 may reorder the values in the host encrypted data communication during the re-encryption of the host encrypted data communication. Taking this approach may make it more difficult for the host 103 to obtain information about the actual contents of the database, especially if the sample size is small.
[0079] The above example implementations can be directed to various entities and used in various environments. Examples of the types of use of the example implementations are provided below. However, as will be appreciated by those skilled in the art, these example implementations are not intended to be limiting, and other environments may be substituted for this.
[0080] For example, but not by way of limitation, the example embodiments described above may be directed to a consumer retailer conducting an online transaction (e.g., a credit card purchase of retail goods and / or services by an online user). Sensitive information associated with an online transaction may include, but is not limited to, credit card information, bank account information, and online information associated with the user (e.g., user profile, password, demographic information, user purchasing preferences, etc.).
[0081] Additionally, example embodiments may be directed to online entities such as identity theft agencies. According to this example embodiment, the identity theft agency may match data associated with its customers to assist in the detection of online account theft. The online customers of the identity theft agency may include, but are not limited to, users who have requested the identity theft agency to protect user-selected information (e.g., credit card numbers, social security numbers, phone numbers, bank account information, user device information such as International Mobile Equipment Identity (IMEI), etc.).
[0082] In addition, example embodiments may be directed to an internal environment of an online entity, such as an online corporate environment. For example, but not by way of limitation, an organization may employ example embodiments to search online for internal information that may be compromised in a privacy-preserving manner. Such information may include, but is not limited to, trade secrets, internal project names or project codes, or other confidential information.
[0083] Furthermore, example embodiments may be directed to online application developers. Online application developers may have a backend for an online application that interacts with users. For example, but not limited to, in the context of online gaming, the backend may aggregate information associated with the identity, scores, and performance of users, and may include statistical information that online users may wish to keep confidential from the application developer. Online users may wish to keep confidential this information, as well as information related to purchasing patterns, usage patterns, and other online user information.
[0084] Example embodiments may also include situations where a host performs a network scan of the Internet for more than one company and provides results and reports. In this case, each company may have its own agreement with the host regarding the content of the report. For example, one company may only need the number of matches, while another company may need the number of matches and information about the source URL of the data leak. The host can use rules or rule libraries about the content of the report that can be updated by the company. In addition, the company can run diagnostics on the data provided by the host to the company. For example, the host can notify the company about the percentage of total hits contained in the company's database so that the company can determine the proportion of data leaks related to the company. The company can then apply filtering or perform other diagnostics on the analytical information provided by the host. The host can also provide the company with a dashboard-style interface that provides the company with a visual indication of detailed diagnostic information, including historical data based on past network scans.
[0085] Figure 2 An example of a use case 200 according to the above example implementation is shown. At 201, a provider has discovered candidate account numbers with values "1111" and "2111" as a result of an Internet search (e.g., a network scan), and the provider implements the above example implementation and the following and Figure 3-6 in the processing.
[0086] At 203, the client company has a database of company numbers including values "2111", "2112", and "2113". The client company at 203 is not provided with the above information of the provider at 201, and the provider at 201 is not provided with the above information of the client company at 203.
[0087] At 205, the provider encrypts the candidate account numbers based on key A and provides the encrypted values A(1111) and A(2111) to the client company. At 207, the client company encrypts the values in its company number database based on key B that is different from key A and provides the provider with encrypted values B(2111), B(2112), and B(2113). In addition, the client company encrypts the encrypted candidate account numbers A(1111) and A(2111) using key B and provides the results B(A(1111)) and B(A(2111)) to the provider.
[0088] At 209, the provider removes the encryption based on key A to obtain B(1111), B(2111). The provider then finds the intersection between these values B(1111), B(2111) and the encrypted company numbers B(2111), B(2112), B(2113). The provider sends a report to the client company, which may include the number of matches, encrypted matching candidate leakage information as the intersection B(2111), and / or information associated with the candidate data leakage source (e.g., URL and related metadata). The client company decrypts B(2111) and can therefore determine that 2111 is a related account number.
[0089] Figure 3Processing 300 according to an example implementation of the system 100 is shown. At 301, a search of an online information pool is performed to obtain candidates for leaked information. For example, but not by way of limitation, a network scan of the Internet may be performed to obtain the information. At 303, once the results of the acquisition operation at 301 are received, they are provided for a context-aware pattern matching operation, which is performed on the results of the network scan (e.g., based on a context-based analysis) to search for candidates for leaked information. For example, as described above, the context may refer to a credit card number in the context of online data, which is a candidate for leaked information, and context-aware pattern matching may attempt to find a pattern (e.g., a value or number of consecutive characters that may indicate some or all of the consecutive characters of the credit card number). Alternatively, an example implementation may be directed to the context of an online application developer having a backend for an online application for interacting with a user, which backend may aggregate information associated with the identity, score, and performance of the user, as well as statistical information that the online user may wish the application developer to keep confidential in the context of the online application. In addition, contexts that are candidates for potential leaked information may include purchasing patterns, usage patterns, and other online user information that is kept confidential. However, example embodiments are not limited in this regard, and other sensitive data whose privacy should be protected may be substituted, including but not limited to account identifiers, government-issued accounts (e.g., driver's license or social security number information), or other sensitive information, as will be appreciated by those skilled in the art.
[0090] At 305 , if no candidate leakage information is found in the output data, the process ends (eg, the host has determined based on the network scan that no sensitive data is leaked on the Internet). If at 305 the network scan results are determined to include candidate leakage information, the process proceeds to 307 .
[0091] At 307, the candidate leak information is encrypted based on a key at the host and not provided to the client, and the encrypted candidate leak information is provided to the client. For example, at 309, an agent (e.g., a software program at the client that executes instructions for the client) may receive the encrypted candidate leak information.
[0092] At 311, the agent uses the key to perform a second encryption of the received once-encrypted candidate leakage information and also encrypts the client information (e.g., a database of client information). The key used by the agent is not provided to the host, and therefore the host cannot decrypt the content encrypted by the agent. Also at 311, the agent provides the twice-encrypted candidate leakage information and the encrypted client information to the host.
[0093] At 313, the host receives the twice-encrypted candidate leakage information and the encrypted client information and performs a decryption operation to remove the encryption it originally applied to the twice-encrypted candidate leakage information.
[0094] At 315 , a matching operation is performed on the values of the encrypted candidate leaked information and the encrypted client information (eg, via a privacy-preserving set intersection comparator).
[0095] At 317, it is determined whether one or more matches are found. If a match is determined to exist as a result of the matching operation at 317, then at 319, the host provides a report to the agent, the report including the number of matches, encrypted matching candidate leakage information, and / or information associated with the candidate data leakage source (e.g., URL and related metadata), and the agent application determines the action to be taken, as described above. If a match is determined not to exist as a result of the matching operation at 317, then at 321 the host optionally takes action, as described above.
[0096] Figure 4 Process 400 is shown according to an example implementation of host 103. At 401, a search of an information pool is performed to obtain candidates for leaking information. For example, but not by way of limitation, a network scan of the Internet may be performed to obtain the information. At 403, the results of the acquisition operation of 401, once received, are provided for a context-aware pattern matching operation, which is performed on the results of the network scan (e.g., context-based analysis) to search for candidates for leaking information.
[0097] At 405 , if no candidate leakage information is found in the output data, the process ends (eg, the host has determined based on the network scan that no sensitive data is leaked on the Internet). If it is determined at 405 that the output data includes candidate leakage information, the process proceeds to 407 .
[0098] At 407 , the candidate leak information (eg, a data leak on the Internet) is encrypted based on a key at the host and not provided to the client, and the encrypted candidate leak information is provided to the client (eg, a proxy at the client).
[0099] At 409, the host receives the twice-encrypted candidate compromise information and the encrypted client information, which have been encrypted using a key not available to the host. For example, but not by way of limitation, the agent may use the key to perform a second encryption of the received once-encrypted candidate compromise information and also encrypt the client information (e.g., a database of client information). The key used by the agent is not provided to the host, and therefore the host cannot decrypt what the agent encrypted.
[0100] At 411, the host performs a decryption operation to remove the encryption it originally applied to the twice-encrypted candidate compromised information.
[0101] At 413 , a matching operation is performed on the values of the encrypted candidate leakage information and the encrypted client information (eg, via a privacy-preserving set intersection comparator).
[0102] At 415, a determination is made as to whether a match is found. If a match is determined to exist as a result of the matching operation at 415, then at 417, the host provides a report to the agent including the number of matches, encrypted matching candidate leakage information, and / or information associated with the candidate data leakage source (e.g., URL and related metadata), and the agent application determines an action to be taken, as described above. If a match is determined not to exist as a result of the matching operation at 415, then at 419, the host optionally takes an action, as described above.
[0103] Figure 5 Process 500 is shown according to an example implementation of client 101. At 501, an agent at the client receives encrypted candidate leakage information from a host. The agent and the client for that matter do not have access to the key used to encrypt the candidate leakage information, and therefore cannot determine the actual value of the candidate leakage information.
[0104] At 503, the proxy encrypts the client information (e.g., a database of client information), and uses the key to perform a second encryption of the received once-encrypted candidate leakage information at 505. The key used by the proxy is not provided to the host, and thus the host cannot decrypt the proxy-encrypted content.
[0105] At 507, the agent provides the twice-encrypted candidate leak information and the encrypted client information to the host.
[0106] At 509, the agent receives a report from the host that includes the number of matches, encrypted matching candidate leak information, and / or information associated with the candidate data leak source (e.g., URL and related metadata), and the agent application determines an action to take, as described above.
[0107] At 511 , the agent application determines the action to take, as described above.
[0108] In some examples, Figure 3-5 The above processes shown in the figure can be implemented with different, fewer or more blocks. Processes 300, 400 and / or 500 can be implemented as computer executable instructions, which can be stored on a medium, loaded onto one or more processors of one or more computing devices, and executed as a computer-implemented method.
[0109] Figure 6 An example environment suitable for some example embodiments is shown. Environment 600 includes devices 605-645, and each is communicatively connected to at least one other device via, for example, network 550 (e.g., by wired and / or wireless connection). Some devices may be communicatively connected to one or more storage devices 630 and 645.
[0110] Examples of one or more devices 605-645 may be the following: Figure 7 and 8 605 and / or 805 as described in the foregoing. Devices 605-645 may include, but are not limited to, a computer 605 (e.g., a laptop computing device), a mobile device 610 (e.g., a smartphone or tablet), a television 615, a device associated with a vehicle 620, a server computer 625, computing devices 635-640, storage devices 630 and 645.
[0111] In some embodiments, devices 605-620 may be considered user devices associated with users of the enterprise (e.g., devices used by users to access services and / or post requests such as on a social network, or to access their personal online information within the enterprise's firewall). Devices 625-645 may be devices associated with service providers (e.g., used by external hosts to provide services as described above and with respect to Figure 3-5 services, and / or store data, such as web pages, text, text portions, images, image portions, audio, audio clips, video, video clips and / or the like).
[0112] For example, but not by way of limitation, a user (e.g., Alice) who is not authorized by the enterprise having user device 605 or 610 on a network supported by one or more devices 625-645 may have accessed, viewed, and / or shared sensitive information in an unauthorized manner, and if Alice leaks data from within the enterprise, makes such information available on the Internet using device 605 or 610, or makes such information available on the Internet using other user devices 615. Figure 3-5 With the described process, a recipient (eg, Bob) acting as a host may use device 620 to access and / or view the sensitive information (eg, candidate leakage information) shared by Alice.
[0113] Figure 7An example computing environment with an example computing device associated with an external host is shown for some example embodiments. The computing device 705 in the computing environment 700 may include: one or more processing units, cores, or processors 710, memory 725 (e.g., RAM, ROM, and / or the like), internal storage 720 (e.g., magnetic, optical, solid-state storage, and / or organic), and / or I / O interface 715, any of which may be coupled to a communication mechanism or bus 730 for communicating information, or embedded in the computing device 705.
[0114] The computing device 705 may be communicatively coupled to an input / user interface 735 and an output device / interface 740. One or both of the input / user interface 735 and the output device / interface 740 may be a wired or wireless interface and may be detachable. The input / user interface 735 may include any physical or virtual device, component, sensor, or interface (e.g., button, touch screen interface, keyboard, pointing / cursor control, microphone, camera, Braille, motion sensor, optical reader, and / or the like) that may be used to provide input. The output device / interface 740 may include a display, a television, a monitor, a printer, a speaker, Braille, and the like. In some example embodiments, the input / user interface 735 and the output device / interface 740 may be embedded in the computing device 705 or physically coupled to the computing device 705. In other example embodiments, other computing devices may serve as or provide the functions of the input / user interface 735 and the output device / interface 740 for the computing device 705.
[0115] Examples of computing devices 705 may include, but are not limited to, highly mobile devices (e.g., smartphones, devices in vehicles and other machines, devices carried by people and animals, etc.), mobile devices (e.g., tablet computers, laptop computers, personal computers, portable televisions, radios, etc.), and devices not designed for mobility (e.g., desktop computers, other computers, kiosks, televisions, radios having one or more processors embedded therein and / or coupled thereto, etc.).
[0116] The computing device 705 may be communicatively coupled (e.g., via I / O interface 715) to external memory 745 and a network 750 for communicating with any number of networked components, devices, and systems including one or more computing devices of the same or different configurations. The computing device 705 or any connected computing device may act as a server, client, thin server, general purpose machine, special purpose machine, or other label, may provide services of a server, client, thin server, general purpose machine, special purpose machine, or other label, or may be referred to as a server, client, thin server, general purpose machine, special purpose machine, or other label.
[0117] The I / O interface 715 may include a wireless communication component (not shown) that facilitates wireless communication via voice and / or via a data network. The wireless communication component may include an antenna system having one or more antennas, a radio system, a baseband system, or any combination of these. Radio frequency (RF) signals may be transmitted and received over the air by the antenna system under the management of the radio system.
[0118] I / O interface 715 may include, but is not limited to, wired and / or wireless interfaces using any communication or I / O protocol or standard (e.g., Ethernet, 802.11x, universal system bus, WiMax, modems, cellular network protocols, etc.) for communicating information to and / or from at least all connected components, devices, and networks in computing environment 700. Network 750 may be any network or combination of networks (e.g., the Internet, a local area network, a wide area network, a telephone network, a cellular network, a satellite network, etc.).
[0119] The computing device 705 may use and / or communicate using computer usable or computer readable media, including transitory media and non-transitory media. Transitory media include transmission media (e.g., metal cables, optical fibers), signals, carrier waves, etc. Non-transitory media include magnetic media (e.g., disks and tapes), optical media (e.g., CD ROMs, digital video disks, Blu-ray discs), solid-state media (e.g., RAM, ROM, flash memory, solid-state memory), and other non-volatile storage or memory.
[0120] The computing device 705 may be used to implement techniques, methods, applications, processes, or computer-executable instructions in some example computing environments. Computer-executable instructions may be retrieved from a transient medium and stored on and retrieved from a non-transitory medium. Executable instructions may be derived from one or more of any programming, scripting, and machine languages (e.g., C, C++, C#, Java, Visual Basic, Python, Perl, JavaScript, and others).
[0121] The processor 710 can execute under any operating system (OS) (not shown) in a native or virtual environment. One or more applications can be deployed, which include a logic unit 760, an application programming interface (API) unit 765, an input unit 770, an output unit 775, a sensitive information determination unit 780, a sensitive information encryption unit 785, a decryption and matching unit 790, an action determination unit 793, and an internal unit communication mechanism 795, which is used for different units to communicate with each other, with the OS, and with other applications (not shown). For example, the sensitive information determination unit 780, the sensitive information encryption unit 785, the decryption and matching unit 790, and the action determination unit 793 can implement Figure 3 and 4 One or more processes are shown. The units and elements described may vary in design, function, configuration, or implementation and are not limited to the descriptions provided.
[0122] In some example embodiments, when information or execution instructions are received by the API unit 765, they may be transmitted to one or more other units (e.g., the logic unit 760, the input unit 770, the output unit 775, the sensitive information determination unit 780, the sensitive information encryption unit 785, the decryption and matching unit 790, and the action determination unit 793).
[0123] For example, after input unit 770 has received data associated with a network scan that searches for candidate leakage information on the Internet, input unit 770 may transmit the content of the network scan to sensitive information determination unit 780 using API unit 765. For example, sensitive information determination unit 780 may determine that the network scan information includes candidate leakage information by using context-based analysis.
[0124] The sensitive information determination unit 780 may interact with the sensitive information encryption unit 785 via the API unit 765 to encrypt the candidate leakage information. Using the API unit 765, the sensitive information determination unit 780 may interact with the decryption and matching unit 790 to receive and decrypt the twice-encrypted candidate leakage information (e.g., from the client) so that the encryption applied by the sensitive information encryption unit 785 is removed, and then perform a matching operation between the encrypted candidate leakage information and the encrypted client database information to determine the existence of a match, and provide information to the agent, including the number of matches, the encrypted matching candidate leakage information, and / or information associated with the candidate data leakage source (e.g., URL and related metadata). When the decryption and matching unit 790 determines that a match does not exist, the action determination unit 793 may determine the action to be taken.
[0125] In some cases, logic unit 760 may be configured to control information flows between units in some of the above-described example embodiments and to indicate services provided by API unit 765, input unit 770, output unit 775, sensitive information determination unit 780, sensitive information encryption unit 785, decryption and matching unit 790, and action determination unit 793. For example, one or more processes or implemented flows may be controlled by logic unit 760 alone or in combination with API unit 765.
[0126] Figure 8 An example computing environment with an example computing device associated with an enterprise for use in some example implementations is shown. The computing device 805 in the computing environment 800 may include one or more processing units, cores, or processors 810, memory 825 (e.g., RAM, ROM, and / or the like), internal storage 820 (e.g., magnetic, optical, solid-state storage, and / or organic), and / or I / O interfaces 815, any of which may be coupled to a communication mechanism or bus 830 for communicating information, or may be embedded in the computing device 805.
[0127] The computing device 805 may be communicatively coupled to an input / user interface 835 and an output device / interface 840. Any one or both of the input / user interface 835 and the output device / interface 840 may be a wired or wireless interface and may be detachable. The input / user interface 835 may include any physical or virtual device, component, sensor, or interface (e.g., button, touch screen interface, keyboard, pointing / cursor control, microphone, camera, Braille, motion sensor, optical reader, and / or the like) that may be used to provide input. The output device / interface 840 may include a display, television, monitor, printer, speaker, Braille, and the like. In some example embodiments, the input / user interface 835 and the output device / interface 840 may be embedded in the computing device 805 or physically coupled to the computing device 805. In other example embodiments, other computing devices may serve as or provide the functions of the input / user interface 835 and the output device / interface 840 for the computing device 805.
[0128] Examples of computing devices 805 may include, but are not limited to, highly mobile devices (e.g., smartphones, devices in vehicles and other machines, devices carried by people and animals, etc.), mobile devices (e.g., tablet computers, laptop computers, personal computers, portable televisions, radios, etc.), and devices not designed for mobility (e.g., desktop computers, other computers, kiosks, televisions, radios, etc. having one or more processors embedded therein and / or coupled thereto).
[0129] The computing device 805 may be communicatively coupled (e.g., via I / O interface 815) to external memory 845 and a network 850 for communicating with any number of networked components, devices, and systems, including one or more computing devices of the same or different configurations. The computing device 805 or any connected computing device may act as a server, client, thin server, general purpose machine, special purpose machine, or other label, may provide the services of a server, client, thin server, general purpose machine, special purpose machine, or other label, or may be referred to as a server, client, thin server, general purpose machine, special purpose machine, or other label.
[0130] The I / O interface 815 may include a wireless communication component (not shown) that facilitates wireless communication via voice and / or via a data network. The wireless communication component may include an antenna system having one or more antennas, a radio system, a baseband system, or any combination thereof. Radio frequency (RF) signals may be transmitted and received over the air by the antenna system under the management of the radio system.
[0131] I / O interface 815 may include, but is not limited to, wired and / or wireless interfaces using any communication or I / O protocol or standard (e.g., Ethernet, 802.11x, universal system bus, WiMax, modems, cellular network protocols, etc.) for communicating information to and / or from at least all connected components, devices, and networks in computing environment 800. Network 850 may be any network or combination of networks (e.g., the Internet, a local area network, a wide area network, a telephone network, a cellular network, a satellite network, etc.).
[0132] The computing device 805 may use and / or communicate using computer usable or computer readable media, including transitory media and non-transitory media. Transitory media include transmission media (e.g., metal cables, optical fibers), signals, carrier waves, etc. Non-transitory media include magnetic media (e.g., disks and tapes), optical media (e.g., CD ROMs, digital video disks, Blu-ray discs), solid-state media (e.g., RAM, ROM, flash memory, solid-state memory), and other non-volatile storage or memory.
[0133] The computing device 805 may be used to implement techniques, methods, applications, processes, or computer-executable instructions in some example computing environments. Computer-executable instructions may be retrieved from a transient medium and stored on and retrieved from a non-transitory medium. Executable instructions may be derived from one or more of any programming, scripting, and machine languages (e.g., C, C++, C#, Java, Visual Basic, Python, Perl, JavaScript, and others).
[0134] The processor 810 can be executed in any operating system (OS) (not shown) in a native or virtual environment. One or more applications can be deployed, and the application includes a logic unit 860, an application programming interface (API) unit 865, an input unit 870, an output unit 875, a database encryption unit 880, a received data encryption unit 885, an action determination unit 890, and an internal unit communication mechanism 895. The internal unit communication mechanism 895 is used for different units to communicate with each other, with the OS, and with other applications (not shown). For example, the database encryption unit 880, the received data encryption unit 885, and the action determination unit 890 can implement Figure 3 and 5 One or more processes are shown. The units and elements described may vary in design, function, configuration, or implementation and are not limited to the descriptions provided.
[0135] In some example embodiments, when information or execution instructions are received by the API unit 865, the information may be transmitted to one or more other units (e.g., the logic unit 860, the input unit 870, the output unit 875, the database encryption unit 880, the received data encryption unit 885, and the action determination unit 890).
[0136] For example, after the input unit 870 has received the encrypted candidate leakage information from the host, the input unit 870 can use the API unit 865 to transmit the information to the database encryption unit 880, which encrypts the client information database. The database encryption unit 880 can interact with the received data encryption unit 885 via the API unit 865 to encrypt the encrypted candidate leakage information received from the host. Using the API unit 865, the action determination unit 890 can determine the action to be taken based on the information received from the host, which information can include a report including the number of matches, the encrypted matching candidate leakage information, and / or information associated with the candidate data leakage source (e.g., URL and related metadata).
[0137] In some cases, the logic unit 860 may be configured to control information flows between the units in some of the above-described example embodiments and to indicate services provided by the API unit 865, the input unit 870, the output unit 875, the database encryption unit 880, the received data encryption unit 885, and the action determination unit 890. For example, one or more processes or implementation flows may be controlled by the logic unit 860 alone or in combination with the API unit 865.
[0138] Any software component described herein may take a variety of forms. For example, a component may be a stand-alone software package, or it may be a software package incorporated into a larger software product as a "tool". It may be downloaded from a network, such as a website, as a stand-alone product or as an add-on package for installation in an existing software application. It may also be provided as a client-server software application, as a web-enabled software application, and / or as a mobile application.
[0139] Example embodiments may have various benefits and advantages. For example, but not by way of limitation, privacy may be protected for members of the client (e.g., individual users), and privacy may also be protected for the client and the host. Thus, data leakage determination may be provided without relying on a trusted external party (e.g., a third party processes and knows the actual content or plaintext of the outgoing data). As a result, the privacy of sensitive information is protected. Example embodiments may also be incorporated into a cloud-based environment, where the cloud components on the client side implementing the protocol may be deployed in a unified, scalable manner.
[0140] Example embodiments may have further benefits and advantages. For example, but not by way of limitation, example embodiments may overcome related problems and / or disadvantages associated with a host's inability to maintain privacy of sensitive information by maintaining privacy of client information as well as privacy of online candidate information. Additionally, example embodiments may overcome time lag issues with the related art by using a web crawler to reveal another party associated with a data breach (e.g., an online hacker attempting to sell unauthorized access to sensitive information).
[0141] Thus, the candidate sensitive information generated by the host's online search is related to the encrypted sensitive information provided by the client, but the sensitive information itself is not provided to the host. Similarly, the results determined by the host (e.g., candidate data leakage information) are provided to the client as encrypted candidate sensitive information (e.g., the client's leaked sensitive information); however, the candidate sensitive information itself is not provided to the host. As described above, this is achieved by using secure set intersection.
[0142] In cases where the systems discussed herein collect personal information about users or can make use of personal information, users (e.g., users in an enterprise with combined work and non-work accounts) may be provided with the opportunity to control whether a program or feature collects user information (e.g., information about the user's social network, social behavior or activities, occupation, the user's preferences, or the user's current location), or to control whether and / or how content is received from a content server that may be more relevant to the user. In addition, certain data may be processed in one or more ways before being stored or used so that personally identifiable information will be removed. For example, the user's identity may be processed so that personally identifiable information cannot be determined for the user, or the user's geographic location at which location information is obtained may be generalized (e.g., city, zip code, or state level) so that the user's specific location cannot be determined. Therefore, the user can control how information about the user is collected and used by the content server.
[0143] The following example summarizes further implementations:
[0144] Example 1: A computer-implemented method for detecting data leakage, the method comprising: performing a scan of online information for candidate data leakage by a host outside the firewall of an enterprise to generate an online data set; the host performing an analysis of the online data set based on the context of the online data to determine that the online information is a candidate data leakage; the host encrypts data communications and provides the host-encrypted data communications to a software agent at the enterprise; in response to receiving the host-encrypted data communications, and by using a public encryption key, the software agent encrypts a database of enterprise information and re-encrypts the host-encrypted data communications; providing the software-agent-encrypted enterprise communication database and the re-encrypted data communications to the host; the host decrypts the host encryption aspects of the re-encrypted data communications to generate software-agent-encrypted data communications; performing a matching operation to determine whether there is a match between the encrypted information database and the software-agent-encrypted data communications; for a match determined to exist, the host reports the match to the software agent, and the software agent takes a first action; and for a match determined not to exist, the host takes a second action.
[0145] Example 2: The computer-implemented method of example 1, wherein the software agent at the enterprise is not provided with a key used by the host to encrypt data communications originating from the online account, and the host is not provided with a public encryption key of the software agent.
[0146] Example 3: A computer-implemented method according to Example 1 or 2, wherein performing the matching operation includes applying a privacy-preserving set intersection algorithm.
[0147] Example 4: The computer-implemented method of any one of Examples 1 to 3, wherein the host partially encrypts the data communication and leaves an unencrypted portion of the data communication as plaintext, and provides the partially encrypted data communication and the plaintext to the software agent.
[0148] Example 5: The computer-implemented method of any one of Examples 1 to 4, further comprising the software agent adding noise to the encrypted database and sending the encrypted database with the noise to the host.
[0149] Example 6: The computer-implemented method of any one of Examples 1 to 5, wherein the scanning of the online information is a network scanning of the Internet, and the network scanning of the Internet is in a prescribed time period.
[0150] Example 7: The computer-implemented method of any of Examples 1 to 6, further comprising, during re-encryption of the host-encrypted data communication, the software agent reordering values in the host-encrypted data communication.
[0151] Example 8: A computer-implemented method according to any one of Examples 1 to 7, wherein the host reporting a match to the software agent includes the host providing to the software agent at least one of: a number of matches, encrypted matching candidate leakage information, and information associated with a source of the candidate data leakage.
[0152] Example 9: A computer-implemented method according to Example 8, wherein the information associated with the source of the candidate data leak includes at least one of: a uniform resource locator (URL) identified as the source of the candidate data leak during a network scan, and metadata associated with the URL.
[0153] Example 10: A computer-implemented method for detecting data leakage at a host outside the firewall of an enterprise, the method comprising: performing a scan of online information for candidate data leakage by the host outside the firewall of the enterprise to generate an online data set; the host performing an analysis of the online data set based on the context of the online data to determine that the online information is a candidate data leakage; encrypting data communications and providing the host-encrypted data communications to a software agent at the enterprise; receiving an enterprise communication database encrypted by the software agent and host-encrypted data communications, the host-encrypted data communications being re-encrypted by the software agent; decrypting the host-encrypted aspects of the re-encrypted data communications to generate software agent-encrypted data communications; performing a matching operation to determine whether a match exists between the encrypted information database and the software agent-encrypted data communications; for a match determined to exist, reporting the match to the software agent; and for the match determined not to exist, the host taking action.
[0154] Example 11: A computer-implemented method according to Example 10, wherein performing the matching operation includes applying a privacy-preserving set intersection algorithm.
[0155] Example 12: A computer-implemented method according to Example 10 or 11, wherein the host reporting the match to the software agent includes the host providing the software agent with at least one of: the number of matches, encrypted matching candidate leakage information, and information associated with the source of the candidate data leakage.
[0156] Example 13: The computer-implemented method of any one of Examples 10 to 12, wherein the scanning of the online information is a network scanning of the Internet, and the network scanning of the Internet is in a prescribed time period.
[0157] Example 14: A computer-implemented method for detecting a data leak from an enterprise having a software agent, the method comprising: receiving a host-encrypted data communication from a host outside the enterprise's firewall, the host-encrypted data communication originating from an online source associated with a candidate data leak; using a public encryption key, encrypting a database of enterprise information and re-encrypting the host-encrypted data communication; providing the encrypted enterprise communication database and the re-encrypted data communication to the host; receiving a report from the host indicating that a match exists between the encrypted information database and the re-encrypted data communication; and taking a first action.
[0158] Example 15: The computer-implemented method of example 14, wherein the software agent at the enterprise is not provided with a key used by the host to encrypt data communications originating from the online account, and the host is not provided with a public encryption key of the software agent.
[0159] Example 16: The computer-implemented method of Example 14 or 15, further comprising the software agent adding noise to the encrypted database and sending the encrypted database with the noise to the host.
[0160] Example 17: The computer-implemented method of any of Examples 14 to 16, further comprising, during re-encryption of the host-encrypted data communication, the software agent reordering values in the host-encrypted data communication.
[0161] Example 18: The computer-implemented method of any of Examples 14 to 17, wherein the first action of the software agent comprises providing an alert to an organization that a data leak is associated with the enterprise.
[0162] Example 19: A system for detecting data leakage at a host outside a firewall of an enterprise, the system comprising: a host outside the firewall of the enterprise, the host comprising a hardware processor and having executable instructions stored on a computer-readable medium, the instructions at the host comprising: performing a scan of online information for candidate data leakage by the host outside the firewall of the enterprise to generate an online data set; the host performing an analysis of the online data set based on the context of the online data to determine that the online information is a candidate data leakage; encrypting data communications and providing the host-encrypted data communications to a software agent at the enterprise; receiving an enterprise communication database encrypted by the software agent and the host-encrypted data communications, the host-encrypted data communications being re-encrypted by the software agent; decrypting the host-encrypted aspects of the re-encrypted data communications to generate software agent encrypted data communications; performing a matching operation to determine whether a match exists between an encrypted information database and the software agent encrypted data communications; for a match determined to exist, reporting the match to the software agent; and for a match determined not to exist, the software agent taking a first action; and an enterprise including a hardware processor and having executable instructions stored on a computer-readable medium; receiving a host-encrypted data communication from a host outside the enterprise's firewall; using a public encryption key, encrypting a database of enterprise information and re-encrypting the host-encrypted data communications, and providing the software agent-encrypted database and the re-encrypted data communications to the host; receiving a report from the host indicating that a match exists between the encrypted information database and the software agent encrypted data communications; and taking a second action.
[0163] Example 20: The system of example 19, wherein the software agent at the enterprise is not provided with a key used by the host to encrypt data communications originating from the online account, and the host is not provided with a public encryption key of the software agent.
[0164] Example 21: A non-transitory computer-readable medium containing instructions, which, when executed by a processor of a computer system, causes the computer system to perform the method of any one of Examples 1 to 9.
[0165] Example 22: A non-transitory computer-readable medium containing instructions, which, when executed by a processor of a computer system, causes the computer system to perform the method of any one of Examples 10 to 13.
[0166] Example 23: A non-transitory computer-readable medium containing instructions, which, when executed by a processor of a computer system, causes the computer system to perform the method of any one of Examples 14 to 18.
[0167] Although some example embodiments have been shown and described, these example embodiments are provided in order to convey the subject matter described herein to those familiar with the art. It should be understood that the subject matter described herein can be implemented in various forms and is not limited to the example embodiments described. The subject matter described herein can be practiced without those specifically defined or described matters or with other or different elements or matters not described. Those familiar with the art will appreciate that these example embodiments can be changed without departing from the subject matter described herein as defined by the appended claims and their equivalents.
Claims
1. A computer-implemented method for detecting data leakage, characterized in that: The method comprises: receiving, at data processing hardware of an enterprise, from a host external to a firewall of the enterprise, a host encrypted data communication from an online source associated with a candidate data breach; Using a public encryption key, the data processing hardware encrypts the enterprise information database and re-encrypts the data communication encrypted by the host; The data processing hardware provides the encrypted database of enterprise information and the re-encrypted data communications to the host computer; receiving at the data processing hardware an indication from the host computer that a match exists between the encrypted database of enterprise information and the re-encrypted data communication; and In response to receiving an indication from the host that there is a match between the encrypted database of enterprise information and the re-encrypted data communication, the data processing hardware takes an action.
2. The computer-implemented method of claim 1, wherein: The enterprise does not receive keys for generating host encrypted data communications originating from online sources, and the enterprise does not provide public encryption keys to the host.
3. The computer-implemented method of claim 1, wherein: Also includes: The data processing hardware adds noise to the encrypted database; and The encrypted database with the noise is provided to the host by the data processing hardware.
4. The computer-implemented method of claim 1, wherein: Also included is reordering, by the data processing hardware, values in the host-encrypted data communications during re-encryption of the host-encrypted data communications.
5. The computer-implemented method of claim 1, wherein: Taking the action includes providing an alert to an external entity indicating that the data leak is associated with the enterprise.
6. The computer-implemented method of claim 5, wherein: A software agent at the enterprise provides the alert to the external entity.
7. The computer-implemented method of claim 1, wherein: The data communication encrypted by the host received by the enterprise includes an unencrypted portion of the data communication as plain text and a partially encrypted data communication.
8. The computer-implemented method of claim 1, wherein: Receiving the indication from the host includes receiving at least one of a plurality of matches, encrypted matching candidate breach information, and information associated with an online source of the candidate data breach.
9. The computer-implemented method of claim 8, wherein: The information associated with the online source of the candidate data leak includes at least one of: a uniform resource locator URL identified during a network scan as a source of a candidate data leak, and metadata associated with the URL.
10. The computer-implemented method of claim 9, wherein: The network scan of online information is a network scan of the Internet, and the network scan of the Internet is in a prescribed time period.
11. The computer-implemented method of claim 1 , wherein: The matching instructions are determined by applying a set intersection algorithm.
12. A data leakage detection system for an enterprise with a firewall, characterized in that: The system comprises: Enterprise data processing hardware; and The storage hardware is in communication with the data processing hardware, the storage hardware storing instructions, which when executed on the data processing hardware, cause the data processing hardware to perform operations including: receiving, from a host external to a firewall of the enterprise, a host encrypted data communication from an online source associated with a candidate data breach; Using a public encryption key, encrypting the enterprise information database and re-encrypting the data communication encrypted by the host; providing an encrypted database of enterprise information and re-encrypted data communications to the host; receiving an indication from the host that there is a match between the encrypted database of enterprise information and the re-encrypted data communication; and In response to receiving an indication from the host that there is a match between the encrypted database of enterprise information and the re-encrypted data communication, an action is taken.
13. The system of claim 12, wherein: The enterprise does not receive keys for generating host encrypted data communications originating from online sources, and the enterprise does not provide public encryption keys to the host.
14. The system of claim 12, wherein: The operations also include a software agent at the enterprise adding noise to the encrypted database and providing the encrypted database with the noise to a host.
15. The system of claim 12, wherein: The operations also include, during re-encryption of the host-encrypted data communications, reordering, by a software agent at the enterprise, values in the host-encrypted data communications.
16. The system of claim 12, wherein: Taking the action includes providing an alert to an external entity indicating that a data leak is associated with the enterprise.
17. The system of claim 12, wherein: The data communication encrypted by the host received by the enterprise includes an unencrypted portion of the data communication as plain text and a partially encrypted data communication.
18. The system of claim 12, wherein: Receiving the indication from the host includes receiving at least one of a plurality of matches, encrypted matching candidate breach information, and information associated with an online source of the candidate data breach.
19. The system according to claim 18, characterized in that The information associated with the online source of the candidate data leak includes at least one of: a uniform resource locator URL identified during a network scan as a source of a candidate data leak, and metadata associated with the URL.
20. The system of claim 19, wherein: The network scan of online information is a network scan of the Internet, and the network scan of the Internet is in a prescribed time period.