检测数据泄露的制作方法

文档序号:21732641发布日期:2020-08-05 01:27阅读:95来源:国知局
检测数据泄露的制作方法

本公开一般地涉及电子数据安全性。



背景技术:

随着因特网的出现,一些计算机专家一直在使用他们的专家知识来获得对敏感数据的未经授权的访问。这些数据泄露可基本上影响访问数据的一方和其数据被访问的各方。例如,当信用卡公司的信用卡数据被盗取时,信用卡公司必须停用所有被泄露的信用卡,为每个泄露的信用卡创建新的账户信息,并且向受到泄露影响的每个客户发行新的信用卡。类似地,在泄露被解决并且客户收到带有新信息的新卡之前,每个客户将在一定时间内失去对其账户的访问。



技术实现要素:

本说明书描述用于基于由已偶然发现潜在被盗数据的用户提供的数据的安全表示来检测数据泄露的系统、方法、设备和其它技术。

一般而言,本说明书中描述的主题的一个创新方面可用各方法加以实现,所述方法包括从多个数据拥有者中的每一个接收要监视是否有数据泄露的数据的第一密码安全表示。每个第一密码安全表示可包括表示由所述数据拥有者所维护的第一数据记录的密码安全数据结构。可从用户接收第二数据记录的一个或多个第二密码安全表示。与从所述数据拥有者中的数据拥有者接收到的所述第一密码安全表示的对应部分匹配的所述第二密码安全表示的数目被确定。基于与从所述数据拥有者接收到的所述第一密码安全表示的对应部分匹配的所述第二密码安全表示的数目来做出对于所述数据拥有者发生了数据泄露的确定。此方面的其它实施例包括被配置成执行在计算机存储设备上编码的方法的动作的对应系统、装置和计算机程序。

这些和其它实施方式可可选地包括以下特征中的一个或多个。一些方面可包括响应于确定发生了所述泄露而向所述数据拥有者提供向所述数据拥有者通知所述泄露的通知。

在一些方面中,每个第一密码安全表示可包括第一概率表示。每个第二密码安全表示可包括第二概率表示。每个第一概率表示可包括第一布隆过滤器。每个第二概率表示可包括一个或多个比特数,所述一个或多个比特数各自识别已基于通过所述第二概率表示所表示的所述第二数据记录而设置的第二布隆过滤器的相应比特。

在一些方面中,确定与从所述数据拥有者中的数据拥有者接收到的所述密码安全表示的对应部分匹配的所述第二密码安全表示的数目可包括,对于从所述用户接收到的每个第二概率表示:针对所述第二概率表示的每个数据元素,确定所述数据元素与所述第一布隆过滤器的对应数据元素是否匹配。当所述第二概率表示的每个数据元素与所述第一布隆过滤器的对应数据元素匹配时,可迭代匹配概率表示的数目的计数。

在一些方面中,基于与从所述数据拥有者接收到的所述密码安全表示的对应部分匹配的所述第二密码安全表示的数目来确定对于所述数据拥有者发生了数据泄露可包括确定所述计数满足或者超过预定阈值。

在一些方面中,基于与从所述数据拥有者接收到的所述密码安全表示的对应部分匹配的所述第二密码安全表示的数目来确定对于所述数据拥有者发生了数据泄露可包括确定从所述用户接收到的所述第二密码安全表示的百分比与从所述数据拥有者接收到的所述密码安全表示的对应部分匹配。

在一些方面中,所述第一密码安全表示中的每一个的每个数据记录包括具有多个相关数据项的元组。从给定数据拥有者接收到的所述第一密码安全表示可针对多个实体中的每个实体表示针对所述实体的数据记录的多个元组。每个元组可包括与所述实体有关并且包括在所述数据记录中的不同数据集。

一些方面可包括响应于使用从所述用户接收到的所述第二密码安全表示来确定对于所述数据拥有者发生了泄露而向所述用户提供补偿。一些方面可包括:从所述用户接收指定用于使用从所述用户接收到的所述第二密码安全表示来检测泄露的请求的补偿金额的数据;以及针对所述数据拥有者中的每个数据拥有者并且基于所述请求的补偿金额来确定是否将所述第二密码安全表示与从所述数据拥有者接收到的所述第一密码安全表示相比较。

可实现本说明书中描述的主题的特定实施例以便实现以下优点中的一个或多个。允许用户匿名地提供可能已被盗取或者否则以未经授权的方式获得的数据的密码安全表示的系统可导致数据泄露的更早检测并且增加在数据被滥用之前检测到数据泄露的可能性。因为黑客通常必须向潜在买家提供他们的被盗数据中的一些以证明数据的真实性,所以允许用户将此数据的安全表示提交给系统使得黑客更难以通过被盗数据获利。这种增加的难度阻止黑客从数据拥有者盗取数据。通过向将被盗数据提供给系统的用户提供补偿或奖励,用户被鼓励提交被盗数据的安全表示而不是试图直接地通过被盗数据获利。例如,将被盗数据的安全表示提交给系统可能比试图将被盗信用卡数据出售给其他人或者直接地使用被盗信用卡数据来进行非法购买更安全且更容易。通过使提交安全表示的用户的身份保持匿名,用户被鼓励提交数据,而不必担心遭到盗取该数据的黑客报复。

通过将由用户所提供的数据的安全表示与由数据拥有者所提供的数据的安全表示相比较以检测数据泄露,不在各方之间转移敏感数据并且数据保持安全。例如,使用诸如数据的概率表示这样的密码技术可防止其他人访问被用于检测泄露的实际数据。

在下面参考图描述上述主题的各种特征和优点。附加特征和优点从本文描述的主题和权利要求书中显而易见。

附图说明

图1描绘泄露检测系统检测数据泄露的示例环境。

图2描绘用于生成布隆过滤器并且使用布隆过滤器来检测数据泄露的示例过程的流程图。

图3描绘用于检测数据泄露的示例过程的流程图。

图4描绘用于生成私密数据的安全表示的示例过程的流程图。

图5描绘用于生成潜在被盗数据的安全表示的示例过程的流程图。

在各个附图中相同的附图标记和名称指示相同的元素。

具体实施方式

一般而言,本公开描述用于基于用户提交的潜在被盗数据的安全表示来检测数据泄露的系统、方法、设备和技术。

数据泄露检测系统可基于由获得了对数据的访问的用户提供的潜在被盗数据的密码安全表示来检测数据泄露。例如,搜索被盗数据的赏金猎人或其它用户可以在地下互联网论坛中、在黑暗网络内、在真实世界位置(例如,在咖啡店、酒吧或公园处)或这种数据被销售或者共享的其它位置中偶然发现被盗信用卡数据。用户可使用应用来生成数据的安全表示(例如,概率表示)并且将数据的安全表示提交给系统。或者,用户可提供实际数据并且数据泄露检测系统可生成数据的安全表示。如在下面更详细地描述的,数据的概率表示的示例是布隆过滤器。

想要监视其数据是否有泄露的数据拥有者(例如,信用卡公司、零售商或其它组织)也可将其数据中的至少一些的安全表示提交给系统。系统可通过将从用户接收到的数据的安全表示与由数据拥有者提供的数据的安全表示相比较来检测数据泄露。在一些实施方式中,系统基于由用户提供的与如通过安全表示所反映的数据拥有者的数据项匹配的单独的数据记录(例如,数据的单独行)的数目来确定数据拥有者的数据已被泄露。例如,如果匹配数据记录的数目满足阈值数目(例如,预定阈值数目或百分比),则系统可以确定数据拥有者的数据已被泄露。

可使用各种补偿技术来激励偶然发现潜在被盗数据的用户将数据的安全表示提交给系统。例如,数据拥有者可以支付订阅费用以使用服务,并且当所提交的数据用于检测实际泄露时可以向提交被盗数据的安全表示的用户支付订阅费用的一部分。在另一示例中,提交潜在被盗数据的安全表示的用户可指定用于使用所提交的数据的成本,并且数据拥有者可以基于该成本选择是否使其数据被与所提交的数据相比较。如果后续用户提供由另一用户已经提供的数据的安全表示,则后续用户可以接收到比提交了数据的第一用户更少的补偿或者未收到补偿。例如,后续用户可以被补偿较小金额以激励后续用户提交后续用户在稍后的时间获得访问的潜在被盗数据的安全表示。针对第一用户的较高金额鼓励用户更快地提供数据,使得泄露被更快地检测到。

图1描绘数据泄露检测系统110检测数据泄露的示例环境100。数据泄露检测系统110包括一个或多个前端服务器112和一个或多个泄露检测服务器114。前端服务器112可通过数据通信网络130(例如,局域网(lan)、广域网(wan)、因特网、移动网络或其组合)发送和接收数据。例如,前端服务器112可通过网络130从数据发现者的计算机140接收潜在被盗数据142和/或潜在被盗数据142的安全表示146并且从数据拥有者的计算机150接收私密数据152的安全表示156。

数据拥有者(诸如信用卡公司、零售商、保险公司、公司、企业和/或维护可能经受泄露的私密数据152的其它组织)可以提供其数据的一些或全部的安全表示到数据泄露检测系统110以用于泄露监视。例如,这些组织可以维护敏感或私密数据152,诸如信用卡数据、个人数据、雇员数据、敏感文档,或如果被获得则可能对其他人有价值的其它数据。数据拥有者可以使用计算机150来将私密数据156的安全表示提交给数据泄露检测系统110的前端服务器112。通过提供数据的安全表示而不是数据它本身,私密数据152保持私密并且数据泄露检测系统110或能够访问数据泄露检测系统110的某人将不能够访问通过安全表示所表示的私密数据。

数据拥有者的私密数据152通常驻留在它可能被攻击的数据库(例如,sql数据库)中。数据库可以包括针对实体(诸如信用卡、雇员、组织的成员等)的数据记录。数据记录是与特定实体有关的一个或多个单独的数据项的集合。例如,信用卡数据的数据库可以包括表,该表具有存储在数据库中的每个信用卡的数据记录(例如,行)。特定信用卡的数据记录可以包括与信用卡有关的数据,例如,信用卡的到期日期、信用卡的安全码、持卡人的名字、持卡人的地址和/或与持卡人有关的其它数据。

数据拥有者的计算机150可被配置有安全数据应用154,所述安全数据应用154接收相应的数据拥有者的私密数据152作为输入并且为数据拥有者生成私密数据152的一个或多个安全表示156。在一些示例中,安全数据应用154可以在数据拥有者的驻地为数据拥有者生成私密数据152的一个或多个安全表示156,而不将私密数据152发送到另一(例如,不安全的)位置。数据拥有者的驻地可以是数据拥有者的物理财产,例如,由数据拥有者拥有、租赁或者经营的一个或多个建筑物、办公室、数据中心或其它位置。在一些示例中,当数据拥有者向数据泄露检测系统110注册以进行泄露监视时,数据泄露检测系统110可以将安全数据应用154提供给数据拥有者的计算机150。安全数据应用154可以生成私密数据152的密码安全表示作为安全表示。密码安全表示是不能被解密以恢复原始数据或者解密至少在计算上不可行的表示。例如,安全数据应用154可以使用一个或多个单向密码哈希函数来将私密数据152映射到逆转不可行的比特串。

在一些实施方式中,安全数据应用154可以生成私密数据152的概率表示作为安全表示。例如,安全数据应用154可以使用一个或多个密码哈希函数来生成概率数据结构。在特定示例中,安全数据应用154可以通过对私密数据152应用一组哈希函数来生成布隆过滤器。示例布隆过滤器被图示在图2中并且在下面进行更详细的描述。对于敏感文档,安全数据应用154可以针对每个文档计算最小哈希或拉宾指纹,并且将这些最小哈希或指纹插入到布隆过滤器中。也可使用其它适当类型的概率表示。

安全数据应用154可以生成不到数据拥有者的私密数据152的全部的安全表示。例如,数据拥有者可以选择其数据的代表性集合以用于由数据泄露检测系统110泄露监视。在另一示例中,数据拥有者可以选择要监视的某些类型的数据,诸如信用卡和客户数据而不是购买信息。在另一示例中,安全数据应用154可以通过从安全数据应用154能够访问的私密数据152中采样(例如,随机地、每n个记录或另一适当的方式)来选择私密数据152的一部分。然而数据被选择,安全数据应用154可生成所选择的数据的一个或多个安全表示。

在一些实施方式中,安全数据应用154生成私密数据的元组的安全表示。如上所述,可以基于实体来组织私密数据。安全数据应用154可以为每个实体生成数据的一个或多个元组并且使用这些元组来生成安全表示。每个元组可包括一种或多种类型的数据并且每个元组可包括与每个其它元组不同类型的数据。在信用卡数据示例中,安全数据应用154可以为每个信用卡生成具有信用卡号码、持卡人名字和持卡人账单地址的第一元组以及具有信用卡号码、到期日期和持卡人名字的第二元组。安全数据应用154然后可以使用针对每个信用卡的这组字段中的每个(或至少一些)的元组来生成安全表示(例如,布隆过滤器)。在一些实施方式中,安全数据应用154为每种类型的元组生成单独的安全表示。在一些实施方式中,安全数据应用生成表示多种类型元组的数据的安全表示。

如在下面更详细地描述的,如果潜在被盗数据包括通过为数据拥有者而生成的安全表示所表示的数据的相同元组,则数据泄露检测系统110可以确定数据拥有者的数据已被泄露。在信用卡示例中,如果被盗数据包括信用卡号码、持卡人名字和持卡人账单地址和/或信用卡号码、到期日期和持卡人名字达到至少阈值数目的信用卡,则数据泄露检测系统110可以确定信用卡数据拥有者的数据已被泄露。

前端服务器112可从多个不同的数据拥有者接收私密数据的安全表示并且将所接收到的安全表示存储在一个或多个数据存储设备118(例如,一个或多个硬盘驱动器、闪速存储器等)中。泄露检测服务器114可基于从数据发现者的计算机140接收到的潜在被盗数据142或潜在被盗数据142的安全表示146来确定一个或多个数据拥有者的数据是否已被泄露。数据发现者可以是搜索潜在被盗数据142以提供给数据泄露检测系统110的赏金猎人。例如,如在下面更详细地描述的,数据泄露检测系统110可以向提供用于为数据拥有者检测数据泄露的数据或数据的安全表示的数据发现者提供补偿或奖励。赏金猎人可以例如在地下论坛中或者在“黑暗网络”内搜索被盗数据,以便接收补偿或奖励。数据发现者可包括其它用户,例如,在互联网论坛或其它位置中偶然发现潜在被盗数据的用户。

数据发现者的计算机140包括安全数据应用144,其可以与数据拥有者的计算机的安全数据应用154相同或类似。安全数据应用154可以生成潜在被盗数据142的安全表示。例如,数据发现者可以将在因特网论坛中发现的潜在被盗数据作为输入提供给安全数据应用154。潜在被盗数据可以包括多个数据记录。例如,被盗数据可以包括针对每个被盗信用卡号码的数据记录并且每个数据记录可以包括与被盗信用卡号码有关的数据,例如,信用卡的到期日期、信用卡的安全码、持卡人的名字、持卡人的地址和/或由数据发现者发现的其它数据。因为黑客可以出于认证目的仅提供被盗数据的小子集,所以被盗数据可以具有与数据在被盗取时的格式不同的格式并且可以包括每个数据记录的不完整数据。

安全数据应用144可以使用潜在被盗数据作为输入来生成每个数据记录的一个或多个安全表示。安全数据应用144可以使用与安全数据应用144相同的技术(例如,相同的哈希函数)来生成每个数据记录的安全表示。例如,如果安全数据应用154生成从数据拥有者接收到的私密数据的布隆过滤器,则安全数据应用144可以生成被盗数据的每个数据记录的布隆过滤器。类似地,如果安全数据应用154为每个数据记录生成元组并且使用这些元组来生成私密数据152的安全表示156,则安全应用144可以为潜在被盗数据142的每个数据记录生成相同类型的元组(例如,具有相同类型的数据)并且生成每个元组的安全表示。以这种方式,可将潜在被盗数据142的安全表示146(例如,布隆过滤器)与私密数据152的安全表示156相比较以确定一个或多个数据拥有者的数据是否已被泄露,如在下面更详细地描述的。

数据发现者的计算机140经由网络130将潜在被盗数据142的安全表示146发送到前端服务器112。前端服务器112可以可选地将安全表示存储在一个或多个数据存储设备116(例如,一个或多个硬盘驱动器、闪速存储器等)中。由特定数据发现者提供的安全表示可以作为一组安全表示被存储在一起,使得可将针对特定数据发现者的安全表示与由数据拥有者提供的安全表示相比较以确定特定数据发现者的安全表示是否指示数据拥有者的数据已被泄露。在一些实施方式中,安全表示146可以在被接收到时用于检测泄露并且可以不被数据泄露检测系统110持久地存储。

在一些实施方式中,由数据发现者的计算机140发送的安全表示146识别具有特定值的安全表示的数据元素(例如,比特)。例如,安全数据应用144可以为每个数据记录生成布隆过滤器。布隆过滤器可以包括元素的数组,其中某些元素具有基于通过布隆过滤器所表示的数据记录的特定值。不是发送布隆过滤器它本身,而是数据发现者计算机140可以针对每个数据记录发送指定布隆过滤器的具有特定值的元素(例如,比特)的数据。

泄露检测服务器114可使用从数据拥有者接收到的安全表示156和从数据发现者接收到的安全表示146来确定一个或多个数据拥有者的数据是否已被泄露。在一些实施方式中,泄露检测服务器114将从特定数据发现者接收到的安全表示与从一个或多个数据拥有者接收到的安全表示相比较以确定特定数据发现者是否已提供为一个或多个数据拥有者指示数据泄露的数据。如上所述,安全数据应用144可以生成由数据发现者发现的潜在被盗数据的每个数据记录的安全表示。数据泄露检测服务器114可将从特定数据发现者接收到的每个数据记录的安全表示与从数据拥有者接收到的安全表示相比较。

如果至少从特定数据发现者接收到的安全表示的阈值数目与特定数据拥有者的安全表示的对应部分匹配,则泄露检测服务器114可以确定特定数据拥有者的数据已被泄露。例如,特定数据发现者可以为十个被盗社会安全号码中的每一个和相关数据(例如,名字、地址等)提供安全表示。类似地,特定数据拥有者可能已经为其客户的数据提供了安全表示,包括社会安全号码,名字,地址等。如果至少从特定数据发现者接收到的安全表示的阈值数目(例如,5、7或某个其它适当阈值)与从特定数据拥有者接收到的安全表示的对应部分匹配,则泄露检测系统110可以确定特定数据拥有者的数据已被泄露,因为特定数据发现者已发现足够量的数据拥有者的数据。阈值的这种使用防止用户简单地提交用户自己的数据的安全表示以试图收集补偿或奖励。

用于确定对于每个数据拥有者发生了泄露的阈值可以是由数据拥有者所指定的值。例如,每个数据拥有者可以指定他们自己的阈值。在一些实施方式中,阈值可以基于通过潜在被盗数据的安全表示所表示的数据条目的数目,受制于某个最小数目。例如,阈值可以是从数据发现者主体接收到的安全表示的百分比(例如,80%、90%或某个其它适当的百分比),但是至少十个匹配安全表示。在特定示例中,数据发现者可以提供表示二十个被盗信用卡号码及其伴随的持卡人/到期信息的二十个安全表示。如果阈值百分比是百分之八十并且匹配安全表示的最小数目是十,则泄露检测服务器114可以在从数据发现者接收到的十六个安全表示与由数据拥有者提供的安全表示的对应部分匹配的情况下确定发生了泄露。在此相同的示例中,如果数据发现者提供表示十个被盗信用卡号码的十个安全表示,则泄露检测服务器114可以确定只有当所有十个与由数据拥有者所提供的安全表示匹配时才发生拉泄露,因为最小数目是十。

如果泄露检测服务器114确定数据拥有者已经历数据泄露,则泄露检测服务器114可以通过前端服务器112和网络130向数据拥有者的计算机150(或其它设备)发送泄露通知158。例如,前端服务器112可以向数据拥有者的电子邮件地址发送电子邮件,向数据拥有者的移动电话发送sms文本消息,或者发送另一类型的通知。泄露通知158可指定发生了泄露。如果数据拥有者提供了多个安全表示,每个不同的数据集或数据类型各一个,则通知158可指定哪一个数据集被泄露。

在一些实施方式中,泄露检测服务器114还可以通知受到泄露影响的人们。例如,数据拥有者可以为其数据通过安全表示来表示的客户提供联系人数据(例如,电子邮件地址、移动电话号码等)。如果泄露检测服务器114确定通过安全表示所表示的数据被泄露,则泄露检测服务器114可以使用联系人数据来向受影响的人们发送通知。这些通知可以指定其数据可能已被损害并且包括用于补救该情形的指令。例如,如果人们的身份(例如,名字和社会安全号码)被盗取,则这些通知可以包括到身份盗窃服务的链接。

数据拥有者可以使用与其私密数据的安全表示匹配的被盗数据的安全表示来识别其数据被盗取的个体并且通知这些个体。如上所述,从数据发现者接收到的安全表示可以是针对特定数据记录的。数据拥有者可使用相同的密码技术(例如,相同的哈希函数)来生成每个个体的数据的安全表示。数据拥有者然后可将从数据发现者接收到的安全表示与针对每个个体的安全表示相比较以识别其数据被盗取的个体。如果从数据发现者接收到的安全表示与为特定人员生成的安全表示匹配,则可认为通过从数据发现者接收到的安全表示所表示的数据与特定个体匹配。因为此过程可由数据拥有者而不是数据泄露检测系统110执行,所以数据泄露检测系统110可以不接收由数据拥有者所维护的任何私密数据。

在另一示例中,数据拥有者可以为其数据库中的每个数据库记录提供一个或多个单独的安全表示。每个安全表示可以与用于其对应的数据库记录的标识符相关联。可将潜在被盗数据的安全表示与单独的安全表示相比较。如果存在匹配,则泄露检测系统110可向数据拥有者提供用于具有与潜在被盗数据的安全表示匹配的安全表示的数据库记录的标识符。数据拥有者可使用标识符来识别与通过所接收到的标识符所识别的数据库记录相关联的人员并且向该人员通知泄露。

在一些情况下,从特定数据发现者接收到的潜在被盗数据的安全表示可以与从多个不同的数据拥有者接收到的安全表示匹配。例如,信用卡数据可以从零售商被盗取并且可以包括由一个或多个信用卡公司发行的信用卡的信用卡号码。在此示例中,包括在从零售商盗取的数据中的信用卡数据的安全表示可以与从零售商和一个或多个信用卡公司两者接收到的私密数据的安全表示匹配。

在至少从数据发现者接收到的安全表示的阈值数目与从两个或更多个不同的数据拥有者接收到的安全表示的对应部分匹配的情况下,泄露检测服务器114可以向两个或更多个数据拥有者中的每个通知他们相应的泄露。在一些实施方式中,泄露检测服务器114可以确定数据被从两个或更多个数据拥有者中的哪一个盗取(或者数据最可能被从哪一个数据拥有者盗取)并且向该数据拥有者通知泄露。例如,泄露检测服务器114可以针对两个或更多个数据拥有者中的每一个确定与从数据拥有者接收到的安全表示的对应部分匹配的从数据发现者接收到的多个安全表示。泄露检测服务器114可以选择具有最高数量的匹配的数据拥有者作为发生了泄露的数据拥有者。

在一些实施方式中,数据发现者因提供潜在被盗数据和/或潜在被盗数据的安全表示而被补偿或者奖励泄露金额148(例如,货币金额或奖励金额)。例如,数据泄露检测系统110可以向提供用于检测数据泄露的安全表示的数据发现者提供货币补偿(例如,形式为数字货币)。补偿金额可以是针对每次泄露预先指定的金额。例如,泄露检测系统110可以不管泄露的类型或泄露的严重程度都提供特定金额。

可能要求数据拥有者向数据泄露检测系统110支付用于补偿数据发现者的费用。例如,可能要求数据拥有者支付定期费用(例如,每月或每年)以使其数据的安全表示被数据泄露检测系统110监视。在另一示例中,只有当数据拥有者的数据的泄露被泄露检测服务器114检测到时才可能要求数据拥有者支付费用。在又一个示例中,可能要求数据拥有者支付定期费用并响应于数据拥有者的数据的泄露被泄露检测服务器114检测到而支付费用。

在一些实施方式中,泄露金额148基于已被泄露的数据的类型。类似地,由数据拥有者支付的费用可以基于被监视数据的类型或经受泄露的数据的类型。例如,数据泄露检测系统110可以向提供用于检测信用卡泄露的安全表示的数据发现者提供第一金额并且向提供用于检测身份盗窃泄露的安全表示的数据发现者提供与第一金额不同的第二金额。

泄露金额148可以基于与从数据拥有者接收到的安全表示匹配的从数据发现者接收到的安全表示的数目(或数据记录的数目)。例如,提供1,000张信用卡的数据的安全表示和数据拥有者的9,900个匹配安全表示的数据发现者可以收到比提供100张信用卡的数据的安全表示和数据拥有者的90个匹配安全表示的数据发现者更高的泄露金额。

在一些实施方式中,泄露金额148基于由数据发现者所指定的金额。例如,数据发现者可以提供潜在被盗数据的安全表示并且请求将用于其安全表示的特定金额与数据拥有者的数据相比较。数据发现者还可指定通过安全表示所表示的数据的类型(例如,信用卡数据、身份数据等)。数据泄露检测系统110然后可询问数据拥有者他们是否愿意支付金额以使用安全表示来检查他们的数据。金额对于不同类型的数据来说可以是不同的,例如,金额对于客户或雇员的名字来说与对于信用卡号码或社会安全号码来说相比可以是更少的。泄露检测服务器114可以仅将从数据发现者接收到的安全表示与从同意支付金额以使用安全表示来检查他们的数据的数据拥有者接收到的安全表示相比较。

在另一示例中,数据发现者可以使用从数据发现者接收到的安全表示来请求用于检测泄露的特定金额。在此示例中,泄露检测服务器114可以仅将从数据发现者接收到的安全表示与从在针对他们的数据检测到泄露的情况下同意支付金额的数据拥有者接收到的安全表示相比较。

在一些情况下,多个数据发现者可以提供相同的潜在被盗数据的相同的安全表示。例如,两个不同的数据发现者可能在地下论坛中偶然发现相同的数据。在此示例中,数据泄露检测系统110可以将泄露金额148提供给提供潜在被盗数据的安全表示的第一数据发现者。数据泄露检测系统110可以给提供相同的安全表示的后续数据发现者提供小于泄露金额148的金额或没有补偿或奖励。在另一示例中,泄露金额148可以在多个数据发现者之间分割,其中第一数据发现者获得泄露金额148的较高百分比。补偿金额上的这种差异激励数据发现者快速地提供潜在被盗数据的安全表示,从而导致数据泄露的更快检测以及通过泄露造成的更少损坏。

在一些实施方式中,数据泄露检测系统110可以作为数据发现者与数据拥有者之间的代理。例如,如果从数据发现者接收到的安全表示用于检测数据拥有者的数据泄露,则数据泄露检测系统110可以促进数据发现者与数据拥有者之间对泄露金额148的协商。数据泄露检测系统110还可以将数据发现者的支付细节传递给数据拥有者。以这种方式,数据拥有者可将泄露金额直接地提供给数据发现者。这减轻数据泄露检测系统110必须向可能正在提供被另一邪恶方盗取的数据的安全表示的邪恶方提供补偿。此代理过程允许数据发现者和数据拥有者保持匿名。例如,在作为代理的同时,数据泄露检测系统110可以不向数据拥有者提供数据发现者的身份或者向数据发现者提供数据拥有者的身份。

图2描绘用于生成布隆过滤器240并且使用布隆过滤器240来检测数据泄露的示例过程200的流程图。示例布隆过滤器240是包括在由数据拥有者所维护的数据的数据库210中的数据的安全表示。示例数据库210包括与一群人们有关的数据,包括他们的名字、国民身份号码(例如,社会安全号码)、信用卡号码和地址。

数据库210包括用于每个个体的数据记录。在此示例中,每行是用于不同个体的数据记录。第一数据记录211包括用于“johndoe”的数据,第二数据记录212包括用于“janedoe”的数据,并且第三数据记录包括用于“jackdoe”的数据。当然,数据库210可包括更少或更多的记录和/或其它类型的数据。

使用存储在数据库210中的数据来生成元组集220。例如,图1的安全数据应用154可以基于存储在数据库210中的数据和预先指定的元组类型来生成元组集220。元组类型指定要包括在每个元组中的数据的类型。在此示例中,元组类型是“名字、国民身份号码”、“名字、信用卡号码、地址”和“国民身份号码、信用卡号码、地址”。可为数据库中的每个数据记录生成每种类型的元组。因此,元组集220可针对每个数据记录包括三个元组,每种类型各一个。

在一些实施方式中,例如,通过图1的安全数据应用154对元组集210中的元组应用哈希函数集310,以生成布隆过滤器240。在此示例中,哈希函数集230包括三个不同的哈希函数。每个哈希函数把数据的元组散列到布隆过滤器240的元素中的一个。在此示例中,布隆过滤器240包括十二个元素。可基于所期望的布隆过滤器的误报率来选择哈希函数集230中的哈希函数的数目和布隆过滤器240中的元素的数目。例如,误报率可随着布隆过滤器中的元素的数目的增加或哈希函数的数目的减少而减少。在下面描述布隆过滤器240的误报匹配的示例。

布隆过滤器240是元素的数组,其中每个元素具有相应的值。最初,布隆过滤器的每个元素可以具有零的值。每个哈希函数可被应用于数据的每个元组。基于应用,每个哈希函数会将布隆过滤器240的元素设置为特定值,例如一的值。当哈希函数集230包括三个哈希函数时,哈希函数集可为每个元组设置布隆过滤器240的多达三个元素。例如,第一哈希函数可以基于特定元组中的数据将布隆过滤器240的元素中的一个设置为一的值而第二哈希函数可以基于特定元组中的数据将布隆过滤器240的不同元素设置为一的值。

为了确定潜在被盗数据集250是否表示存储在数据库210中的数据的泄露,可以与存储在数据库210中的数据被处理以生成布隆过滤器240类似的方式处理潜在被盗数据250。特别地,可以使用潜在被盗数据250来生成元组集260。元组集260中的元组的类型与元组集220中的元组的类型相同。也就是说,元组集260中的元组的类型是“名字、国民身份号码”、“名字、信用卡号码、地址”和“国民身份号码、信用卡号码、地址”。图1的安全数据应用144可以基于潜在被盗数据250和预先指定的元组类型来生成元组集220。

安全数据应用144可将哈希函数集270的每个哈希函数应用于元组集260中的每个元组。哈希函数集270可与用于创建布隆过滤器240的哈希函数集230相同。用于特定元组的三个哈希函数的输出设置表示该特定元组的布隆过滤器280的三个元素的值。然后可将用于元组的布隆过滤器280与用于数据库210的布隆过滤器240相比较。替换地,可将在来自数据发现者的元组上计算的值简单地发送到提供者,其中它们可用于在提供者的布隆过滤器中检查匹配。在这些示例中,布隆过滤器280表示针对与数据库210中的用于johndoe的数据记录相同的被盗数据250中的用于johndoe的数据记录而生成的第一元组。因此,在布隆过滤器280中被设置为一的值的元素在布隆过滤器240中也被设置为一的值。当布隆过滤器280的被设置为一的值的比特在布隆过滤器240中也被设置为一的值时,布隆过滤器280可被说成与布隆过滤器240的对应部分匹配。布隆过滤器240的对应部分是布隆过滤器280的具有与在分布隆过滤器240中被设置为一的值的元素相同的元素的部分。此布隆过滤器允许测试潜在被盗数据记录是否是通过布隆过滤器所表示的数据集的成员。

在一些实施方式中,图1的泄露检测服务器114可从数据发现者的计算机140并且针对数据的每个元组接收指定布隆过滤器的已基于数据的元组被设置为一的值的元素的数据。例如,数据发现者的计算机140可以提供为包括关于johndoe的数据的第一元组指定元素7、9和11的数据,因为布隆过滤器280在元素7、9和11中具有一的值。进而,泄露检测服务器114可评估布隆过滤器240的元素以确定元素7、9和11是否具有一的值。如果布隆过滤器240的元素7、9和11中的每一个具有一的值,则泄露检测服务器114可以确定用于数据的第一元组的安全表示(即,布隆过滤器280)与布隆过滤器240的对应部分匹配并且数据的第一元组被包括在数据拥有者的数据中。

图3描绘用于检测数据泄露的示例过程的流程图。例如,可通过包括一个或多个数据处理装置的系统(诸如图1的数据泄露检测系统110)来实现过程300的操作。还可通过存储在计算机存储介质上的指令来实现过程300,其中指令通过包括数据处理装置的系统的执行使该数据处理装置执行过程300的操作。

系统从数据拥有者接收要监视是否有泄露的数据的安全表示(302)。例如,多个数据拥有者(例如,信用卡公司、零售商、保险公司、公司、企业和/或其它组织)可以订阅由系统提供的数据泄露监视服务。数据拥有者可以支付订阅费用(例如,定期费用)以使他们的数据被监视或者可以响应于检测到他们的数据的泄露而支付费用。

每个数据拥有者可以使用安全数据应用(诸如图1的安全数据应用154)来生成数据拥有者的数据的至少一部分的一个或多个安全表示。安全表示可以是密码安全表示。例如,安全表示可以是概率表示,诸如如上所述的布隆过滤器。每个数据拥有者可以将其安全表示提供给系统以进行数据泄露监视。

系统从用户接收数据记录的安全表示(304)。例如,用户可以是在地下论坛和黑暗网络中搜索黑客试图出售的被盗数据的赏金猎人。如果用户发现潜在被盗数据,则用户可以使用安全应用(诸如图1的安全应用144)来生成数据的安全表示并且将安全表示发送到系统。在另一示例中,用户可以发送用户发现的实际数据并且系统可以使用安全数据应用来生成数据的安全表示。

潜在被盗数据的安全表示可以具有与数据拥有者的数据的安全表示相同的格式。例如,如果数据拥有者的数据通过布隆过滤器来表示,则每个潜在被盗数据记录的安全表示也可以通过布隆过滤器来表示。

系统确定潜在被盗数据的安全表示与数据拥有者的数据的安全表示是否匹配(306)。在一些实施方式中,如果至少潜在被盗数据的安全表示的阈值数目与数据拥有者的安全表示的对应部分匹配,则系统确定对于数据拥有者发生了泄露。例如,系统可以将潜在被盗数据记录的每个安全表示(例如,每个布隆过滤器)与数据拥有者的安全表示(例如,布隆过滤器)相比较。对于与数据拥有者的安全表示的对应部分匹配的潜在被盗数据记录的每个安全表示,系统可以递增潜在被盗数据与数据拥有者的数据之间的匹配安全表示的数目的计数器。如果计数不超过阈值,则系统可以确定潜在被盗数据的安全表示与数据拥有者的数据的安全表示不匹配。

在另一示例中,如果至少潜在被盗数据的安全表示的阈值百分比与数据拥有者的安全表示的对应部分匹配,则系统可以确定发生了泄露。例如,如果至少从特定数据发现者接收到的安全表示的阈值百分比与从数据拥有者接收到的安全表示的对应部分匹配,则系统可以确定从特定数据发现者接收到的安全表示表示数据拥有者的数据的泄露。使用百分比匹配而不是匹配的数目可防止伪造(或用户生成的)记录的大量安全表示的上传由于匹配的数目而被认为是泄露。

如果系统确定潜在被盗数据的安全表示与任何数据拥有者的数据的安全表示不匹配,则系统可以确定从用户接收到的潜在被盗数据的安全表示不表示任何数据拥有者的泄露(308)。例如,可以从尚未订阅数据泄露监视服务的一方盗取数据。在另一示例中,数据可能不是被盗数据,而是替代地可能已由黑客或用户生成。在这些示例中,系统可以不向提供了潜在被盗数据的安全表示(或数据它本身)的用户提供补偿或奖励。

如果计数确实超过阈值,则系统可以确定潜在被盗数据的安全表示与数据拥有者的数据的安全表示匹配并且对于数据拥有者发生了数据泄露(310)。作为响应,系统可以向数据拥有者通知泄露(312)。例如,系统可以向数据拥有者的设备发送电子邮件或文本消息以向数据拥有者通知泄露。在另一示例中,如果至少潜在被盗数据的安全表示的阈值百分比与数据拥有者的安全表示的对应部分匹配,则系统可以确定对于数据拥有者发生了数据泄露并且响应于该确定而通知数据拥有者。

系统可以向提供了潜在被盗数据或潜在被盗数据的安全表示的用户提供补偿或奖励(314)。如上所述,金额可以基于被泄露数据的类型、用户是否是提交数据的第一人、由用户所请求的金额、数据拥有者愿意支付的金额和/或经由系统在用户与数据拥有者之间协商的金额。

图4描绘用于生成私密数据的安全表示的示例过程400的流程图。例如,可通过包括一个或多个数据处理装置(诸如图1的数据拥有者的计算机150)的系统来实现过程400的操作。还可通过存储在计算机存储介质上的指令来实现过程400,其中指令通过包括数据处理装置的系统的执行使该数据处理装置执行过程400的操作。

系统接收私密数据集(402)。例如,数据拥有者可以识别拥有者希望泄露检测系统监视数据泄露的私密数据集。私密数据集可以是由数据拥有者所维护的数据的全部或某个部分。例如,私密数据集可以是更可能被盗取的数据,诸如能被出售的信用卡数据。在另一示例中,私密数据集可以是由数据拥有者所维护的数据的代表性样本。

系统使用数据来生成元组(404)。每个元组可包括一种或多种类型的数据并且每个元组可包括与每个其它元组不同类型的数据。例如,一个元组可以包括信用卡号码和到期日期并且第二元组可以包括信用卡号码、到期日期和持卡人名字。系统可为每个单独的数据记录生成一个或多个元组。例如,系统可以为包括在私密数据中的每个信用卡数据记录生成第一元组和第二元组。

系统生成元组的安全表示(406)。例如,系统可以对每个元组的数据应用哈希函数集。每个哈希函数可以基于包括在元组中的数据来设置安全表示的元素。例如,每个哈希函数可以基于包括在元组中的数据来设置布隆过滤器的元素的值。在对每个元组应用每个哈希函数之后,最终布隆过滤器包括具有基于用于每个元组的哈希函数的输出而生成的值的一组元素。

图5描绘用于生成潜在被盗数据的安全表示的示例过程500的流程图。例如,可通过包括一个或多个数据处理装置(诸如图1的数据发现者的计算机140)的系统来实现过程500的操作。还可通过存储在计算机存储介质上的指令来实现过程500,其中指令通过包括数据处理装置的系统的执行使该数据处理装置执行过程500的操作。

系统接收潜在被盗数据集(502)。例如,用户可以在互联网论坛(诸如常常出售或者交易被盗数据的地下互联网论坛)中发现潜在被盗数据。用户可以将可能被盗的数据提供给系统。

系统生成数据的元组(504)。元组可具有与针对数据拥有者的私密数据而生成的那些格式相同的格式。例如,用于被盗信用卡的元组可包括包含信用卡号码和到期日期的一个元组以及包括信用卡号码、到期日期和持卡人名字的第二元组,类似于图4的元组。系统可为潜在被盗数据中的每个单独的数据记录生成一个或多个元组。例如,系统可以为包括在潜在被盗数据中的每个信用卡数据记录生成第一元组和第二元组。

系统生成每个元组的安全表示(506)。例如,系统可以对每个元组的数据应用哈希函数集。每个哈希函数可以基于包括在元组中的数据来设置安全表示的元素。例如,每个哈希函数可以基于包括在元组中的数据来设置布隆过滤器的元素的值。同私密数据的处理对比,系统可以为从潜在被盗数据生成的每个元组生成单独的安全表示。以这种方式,系统可将每个元组的每个安全表示与表示私密数据的安全表示相比较并且确定具有与表示私密数据的安全表示的对应部分匹配的安全表示的元组的数目。然后可将此数目与阈值相比较以确定潜在被盗数据是否表示私密数据的泄露,如上所述。

所描述的特征可用数字电子电路或者用计算机硬件、固件、软件或者用它们的组合加以实现。装置可用有形地具体体现在信息载体中(例如,在机器可读存储设备中)以供由可编程处理器执行的计算机程序产品加以实现;并且可通过可编程处理器执行指令的程序以通过对输入数据进行操作并生成输出来执行所描述的实施方式的功能而执行方法步骤。所描述的特征可有利地用可在包括至少一个可编程处理器的可编程系统上执行的一个或多个计算机程序加以实现,所述至少一个可编程处理器被耦合以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并且将数据和指令发送到数据存储系统、至少一个可编程处理器。计算机程序是可直接地或间接地在计算机中使用来执行某个活动或者带来某种结果的指令集。计算机程序可用任何形式的编程语言(包括编译或解释语言)编写,并且它可被以任何形式部署,包括作为独立程序或者作为模块、组件、子例行程序或适合于在计算环境中使用的其它单元。

作为示例,用于执行程序的指令的适合的处理器包括通用微处理器和专用微处理器两者以及任何种类的计算机的唯一处理器或多个处理器中的一个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元件是用于执行指令的处理器以及用于存储指令和数据的一个或多个存储器。通常,计算机还将包括或者在操作上耦合以与用于存储数据文件的一个或多个大容量存储设备进行通信;这样的设备包括磁盘,诸如内部硬盘和可移动磁盘;磁光盘;以及光盘。适合于有形地具体实现计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,作为示例包括半导体存储器设备,诸如eprom、eeprom和闪速存储器设备;磁盘,诸如内部硬盘和可移动磁盘;磁光盘;以及cd-rom和dvd-rom盘。处理器和存储器可由asic(专用集成电路)补充,或者被并入在asic(专用集成电路)中。

为了提供与用户的交互,可在计算机上实现这些特征,所述计算机具有用于向用户显示信息的诸如crt(阴极射线管)或lcd(液晶显示器)监视器这样的显示设备以及键盘和指点设备,诸如用户可用来向该计算机提供输入的鼠标或轨迹球。附加地,可经由触摸屏平板显示器和其它适当的机制来实现这样的活动。

可在计算机系统中实现这些特征,所述计算机系统包括后端组件(诸如数据服务器),或者包括中间件组件(诸如应用服务器或因特网服务器),或者包括前端组件(诸如具有图形用户界面或因特网浏览器的客户端计算机),或者包括它们的任何组合。系统的组件可通过任何形式或介质的数字数据通信(诸如通信网络)来连接。通信网络的示例包括局域网(“lan”)、广域网(“wan”)、对等网络(具有自组织或静态成员)、网格计算基础设施和因特网。

计算机系统可包括客户端和服务器。客户端和服务器一般地彼此远离并且通常通过网络(诸如所描述的网络)来交互。客户端和服务器的关系借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。

虽然本说明书包含许多具体实施方式细节,但是这些不应该被解释为对任何发明的或可能要求保护的范围构成限制,而是相反被解释为特定于特定发明的特定实施方式的特征的描述。还可在单个实施方式中相结合地实现在本说明书中在单独的实施方式的上下文中描述的某些特征。相反地,还可单独地在多个实施方式中或者按照任何适合的子组合实现在单个实施方式的上下文中描述的各种特征。此外,尽管特征可以被在上面描述为按照某些组合起作用并且甚至最初如此要求保护,但是来自要求保护的组合的一个或多个特征可在一些情况下被从该组合中除去,并且所要求保护的组合可以针对子组合或子组合的变化。

类似地,虽然在附图中按照特定次序描绘操作,但是这不应该被理解为要求按照所示的特定次序或者按照顺序次序执行这样的操作,或者要求执行所有图示的操作以实现所希望的结果。在某些情况下,多任务处理和并行处理可以是有利的。此外,上述实施方式中的各种系统组件的分离不应该被理解为在所有实施方式中要求这样的分离,并且应该理解的是,所描述的程序组件和系统通常可被一起集成在单个软件产品中或者包装到多种软件产品中。

因此,已经描述了主题的特定实施方式。其它实施方式在以下权利要求的范围内。在一些情况下,权利要求中记载的动作可被以不同的次序执行并仍然实现所希望的结果。此外,附图中描绘的过程不一定要求所示的特定次序或顺序次序以实现所希望的结果。在某些实施方式中,多任务处理和并行处理可以是有利的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1