CN109891424A - 在不披露特定识别信息的情况下建立标识符之间的链接 - Google Patents

在不披露特定识别信息的情况下建立标识符之间的链接 Download PDF

Info

Publication number
CN109891424A
CN109891424A CN201780066681.3A CN201780066681A CN109891424A CN 109891424 A CN109891424 A CN 109891424A CN 201780066681 A CN201780066681 A CN 201780066681A CN 109891424 A CN109891424 A CN 109891424A
Authority
CN
China
Prior art keywords
entry
server
data structure
pii
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201780066681.3A
Other languages
English (en)
Other versions
CN109891424B (zh
Inventor
S.库尔卡尼
T.杜昂
A.古普塔
P.麦克唐纳
S.萨克西纳
V.戈埃尔
P.麦克唐尼尔
M.伊昂
S.帕特尔
K.塞思
B.克鲁特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN109891424A publication Critical patent/CN109891424A/zh
Application granted granted Critical
Publication of CN109891424B publication Critical patent/CN109891424B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Medical Informatics (AREA)
  • Power Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种用于链接用户标识符的方法。该方法包括由链接服务器并且从公司服务器接收包括条目的第一数据结构。每个条目包括用户标签、第一散列用户信息和第二散列用户信息。该方法包括由链接服务器并且从合作伙伴服务器接收包括条目的第二数据结构。每个条目包括桥标签、第一散列桥信息和第二散列桥信息。该方法包括由链接服务器并且从第一数据结构检索条目的第一条目,以及由链接服务器并且从第二数据结构检索条目的第一条目。该方法包括将第一数据结构的第一条目的用户标签链接到第二数据结构的第一条目的桥标签,以生成第一链接。

Description

在不披露特定识别信息的情况下建立标识符之间的链接
相关申请
本申请要求2017年1月30日提交的标题为“Annotation of Videos UsingAggregated User Session Data”的美国专利申请第15/419,726号的优先权,其全部内容通过引用结合于此。
背景技术
许多企业或其他实体持有机密信息,诸如用户登录和密码细节、个人可识别信息(可以单独或与其他信息组合使用来在上下文中识别个体的信息,也称为“敏感个人信息”)、医疗记录等。提供互联网相关服务和产品的实体可以捕获、组织和分析从客户端计算设备收集的网络数据(web data)。网络数据可能包括企业存储在受保护的数据库中的用户可识别信息。
发明内容
本公开的方面一般涉及实体之间特定识别信息的映射。
本文公开的一种实施方式是用于链接用户标识符的方法。该方法包括由链接服务器并且从公司服务器接收包括条目的第一数据结构。每个条目包括用户标签、第一散列用户信息和第二散列用户信息;每个条目与对应的客户端设备相关联。该方法包括由链接服务器并且从合作伙伴服务器接收包括条目的第二数据结构,每个条目包括桥标签、第一散列桥信息和第二散列桥信息;每个条目与对应的客户端设备相关联。该方法还包括由链接服务器并且从第一数据结构检索第一数据结构的条目的第一条目。该方法包括由链接服务器并且从第二数据结构检索第二数据结构的条目的第一条目。该方法包括由链接服务器将第一数据结构的第一条目的第一散列用户信息与第二数据结构的第一条目的第一散列桥信息进行比较。该方法包括由链接服务器并且响应于确定匹配,将第一数据结构的第一条目的用户标签链接到第二数据结构的第一条目的桥标签,以生成第一链接。
在一些实施方式中,比较包括由链接服务器将第一数据结构的第一条目的第一散列用户信息解析成第一字符集。在一些实施方式中,该方法包括由链接服务器将第二数据结构的第一条目的第一散列桥信息解析成第二字符集。在一些实施方式中,该方法包括由链接服务器将来自第一字符集的字符与来自第二字符集的字符进行比较。
在一些实施方式中,该方法包括由链接服务器并且向公司服务器提供第一链接。在一些实施方式中,链接服务器存在于洁净室(clean room)环境之中,并且公司服务器存在于洁净室环境之外,以及合作伙伴服务器存在于洁净室环境之外。
在一些实施方式中,该方法包括由链接服务器移除第一数据结构的第一条目和第二数据结构的第一条目。在一些实施方式中,该方法包括由链接服务器并且从第一数据结构检索条目的第二条目,由链接服务器并且从第二数据结构检索条目的第二条目;以及由链接服务器将第一数据结构的第二条目的第一散列用户信息与第二数据结构的第二条目的第一散列桥信息进行比较。
在一些实施方式中,该方法包括由链接服务器确定第一数据结构的第二条目的第一散列用户信息与第二数据结构的第二条目的第一散列桥信息之间的不匹配,并且由链接服务器将第一数据结构的第二条目的第二散列用户信息与第二数据结构的第二条目的第二散列桥信息进行比较。
在一些实施方式中,该方法包括由链接服务器确定第一数据结构的第一条目的第一散列用户信息与第二数据结构的第一条目的第一散列桥信息之间的不匹配。在一些实施方式中,该方法包括由链接服务器并且从第二数据结构检索条目的第二条目。在一些实施方式中,该方法包括由链接服务器将第一数据结构的第一条目的第一散列用户信息与第二数据结构的第二条目的第一散列桥信息进行比较。
在一些实施方式中,该方法包括由链接服务器将第一数据结构的第一条目的第二散列用户信息与第二数据结构的第二条目的第二散列桥信息进行比较。在一些实施方式中,该方法包括由链接服务器并且响应于确定匹配,将第一数据结构的第一条目的用户标签链接到第二数据结构的第一条目的桥标签,以生成第一链接。在一些实施方式中,该方法包括由链接服务器并且向公司服务器提供第一链接。
另一方面,本公开涉及一种用于链接用户标识符的系统。该系统包括链接服务器,该链接服务器被配置为从公司服务器接收包括条目的第一数据结构。每个条目包括用户标签、第一散列用户信息和第二散列用户信息。每个条目与客户端设备的用户相关联。
在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为从合作伙伴服务器接收包括条目的第二数据结构。每个条目包括桥标签、第一散列桥信息和第二散列桥信息。每个条目与客户端设备的用户相关联。
在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为从第一数据结构检索第一数据结构的条目的第一条目。在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为从第二数据结构检索第二数据结构的条目的第一条目。在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为将第一数据结构的第一条目的第一散列用户信息与第二数据结构的第一条目的第一散列桥信息进行比较。在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为响应于确定匹配,将第一数据结构的第一条目的用户标签链接到第二数据结构的第一条目的桥标签,以生成第一链接。
在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为将第一数据结构的第一条目的第一散列用户信息解析成第一字符集。在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为将第二数据结构的第一条目的第一散列桥信息解析成第二字符集。在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为将来自第一字符集的字符与来自第二字符集的字符进行比较。
在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为向公司服务器提供第一链接。在一些实施方式中,链接服务器存在于洁净室环境之中。在一些实施方式中,公司服务器存在于洁净室环境之外。在一些实施方式中,合作伙伴服务器存在于洁净室环境之外。
在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为移除第一数据结构的第一条目和第二数据结构的第一条目。在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为从第一数据结构检索条目的第二条目。在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为从第二数据结构检索条目的第二条目。在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为将第一数据结构的第二条目的第一散列用户信息与第二数据结构的第二条目的第一散列桥信息进行比较。
在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为确定第一数据结构的第二条目的第一散列用户信息与第二数据结构的第二条目的第一散列桥信息之间的不匹配。在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为将第一数据结构的第二条目的第二散列用户信息与第二数据结构的第二条目的第二散列桥信息进行比较。在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为确定第一数据结构的第一条目的第一散列用户信息与第二数据结构的第一条目的第一散列桥信息之间的不匹配。在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为从第二数据结构检索第二数据结构的条目的第二条目。在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为将第一数据结构的第一条目的第一散列用户信息与第二数据结构的第二条目的第一散列桥信息进行比较。
在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为将第一数据结构的第一条目的第二散列用户信息与第二数据结构的第二条目的第二散列桥信息进行比较。在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为响应于确定匹配,将第一数据结构的第一条目的用户标签链接到第二数据结构的第一条目的桥标签,以生成第一链接。在一些实施方式中,该系统包括链接服务器,该链接服务器被配置为向公司服务器提供第一链接。
另一方面,本公开涉及一种用于链接用户标识符的方法。该方法包括由链接服务器并且从公司服务器接收包括条目的第一数据结构。每个条目包括用户标签、第一散列用户信息和第二散列用户信息,每个条目与客户端设备的用户相关联。
在一些实施方式中,该方法包括由链接服务器并且从合作伙伴服务器接收包括条目的第二数据结构。每个条目包括桥标签、第一散列桥信息和第二散列桥信息。每个条目与客户端设备的用户相关联。
在一些实施方式中,该方法包括由链接服务器基于第一数据结构和第二数据结构生成第三数据结构。在一些实施方式中,该方法包括由链接服务器并且向公司服务器提供第三数据结构。
在一些实施方式中,第一数据结构包括与客户端设备相关联的第一电子邮件地址和与客户端设备相关联的第一电话号码。在一些实施方式中,第二数据结构包括与客户端设备相关联的第二电子邮件地址和与客户端设备相关联的第二电话号码。
另一方面,本公开涉及一种用于链接用户标识符的系统。该系统包括链接服务器,该链接服务器被配置为:从公司服务器接收包括条目的第一数据结构,每个条目包括用户标签、第一散列用户信息和第二散列用户信息,每个条目与客户端设备的用户相关联;从合作伙伴服务器接收包括条目的第二数据结构,每个条目包括桥标签、第一散列桥信息和第二散列桥信息,每个条目与客户端设备的用户相关联;基于第一数据结构和第二数据结构生成第三数据结构;并且向公司服务器提供第三数据结构。
在一个实施方式中,第一数据结构包括与客户端设备相关联的第一电子邮件地址和与客户端设备相关联的第一电话号码,并且其中第二数据结构包括与客户端设备相关联的第二电子邮件地址和与客户端设备相关联的第二电话号码。
另一方面,本公开涉及由数据合作伙伴服务器执行的方法。数据合作伙伴服务器使用数据合作伙伴加密密钥(X)来加密PII(personal identifiable information,个人可识别信息)元素,并将数据对(data pair)发送到公司服务器。数据对是桥标签和对应的加密的PII元素的对。数据合作伙伴服务器从公司服务器接收第一双重加密数据集,其是公司服务器通过使用第一公司加密密钥加密数据合作伙伴服务器发送给公司服务器的桥标签并通过使用第二、不同的公司加密密钥加密数据合作伙伴服务器发送给公司服务器的加密PII元素而生成的。数据合作伙伴服务器还从公司服务器接收公司服务器的PII元素,公司服务器已经使用第一和第二公司加密密钥(或由此导出的密钥)对其进行了加密;例如,公司服务器可能已经使用第一公司加密密钥或从其导出的密钥加密了内部用户标签,并且可能已经使用第二公司加密密钥或从其导出的密钥加密了公司PII元素。然后,数据合作伙伴服务器使用数据服务器加密密钥加密加密的公司PII元素,以给出第二双重加密数据集。数据合作伙伴服务器然后可以比较第一和第二双重加密数据集,以识别与匹配的加密的PII元素相关联的加密的桥标签和加密的用户标签的对。由于桥标签和用户标签都已被公司服务器的加密密钥加密,所以数据合作伙伴服务器无法恢复原始桥标签或数据标签,并且因此无法识别与PII元素相关联的个体。在一个实施方式中,数据合作伙伴服务器可以向公司服务器发送与匹配的加密的PII元素相关联的加密的桥标签和加密的用户标签的细节。在这个方面的修改中,公司服务器和数据合作伙伴服务器的角色可以互换—也就是说,公司服务器可以仅加密公司元素,并将未加密的用户标签和加密的PII元素的对发送到数据合作伙伴服务器,等等。
另一方面,本公开涉及包含指令的计算机可读介质(其可以是非暂时性计算机可读介质,尽管该方面不要求这样),当由一个或多个处理器执行时,该指令使得一个或多个处理器执行根据本文描述的任何方面或实施方式的方法。
附图说明
一个或多个实施方式的细节在附图和以下描述中阐述。根据说明书、附图和权利要求,本公开的其他特征、方面和优点将变得显而易见,其中:
图1是使用数据洁净室在双方的用户ID之间建立链接的环境的一个实施方式的框图。
图2是各方从客户端设备收集个人可识别信息(personal identifiableinformation,PII)数据的环境的一个实施方式的框图。
图3A是根据一个实施方式的客户端设备的框图;
图3B是根据一个实施方式的PII服务器的框图;
图3C是根据一个实施方式的链接服务器的框图;
图4是在用于收集PII数据的过程的一些实施方式中由PII服务器和(多个)客户端设备采取的操作的流程图;和
图5是在用于链接用户标签和桥标签的过程的一些实施方式中由链接服务器和PII服务器采取的操作的流程图。
图6是在用于链接用户标签和桥标签的过程的一些实施方式中由链接服务器和PII服务器采取的操作的流程图。
图7是在不使用洁净室环境的情况下,在用于链接用户标签和桥标签的过程的一些实施方式中由PII服务器采取的操作的流程图。
不同附图中相同的附图标记和名称指示相同的元素。
具体实施方式
将参考企业存储由访问企业的网站(例如,查看内容或进行交易)的用户共享的个人可识别信息(PII)的示例来描述本公开的实施例。企业将这些信息映射到区分用户和其他用户的用户标识符。在一些情况下,企业也可以访问同一用户的另一企业的PII数据。例如,汽车制造商(“公司”)可以在其母公司的网站上推销汽车,并且在其子公司的网站上推销卡车。正在访问母公司的网站的用户可以与将PII数据分配给本文称为“用户标签”的用户标识符的网站共享PII数据(例如,电子邮件地址、电话号码等)。该同一用户也可以访问推销卡车的第三方公司(“数据合作伙伴”)的网站。类似地,数据合作伙伴接收用户的PII数据并将其分配给用户标识符,本文称为“桥标签”。可能期望在公司的用户标签和数据合作伙伴的桥标签之间建立链接。然而,本公开不特定限于PII数据,而是可以应用于其他类型的机密信息。例如,在两个组织持有关于同一组个体的医疗数据的情况下,可能期望在一个组织持有的数据和另一组织持有的数据之间建立链接。
建立链接的一种方法包括数据合作伙伴向公司提供与散列PII数据配对的桥标签。许多散列函数(包括加密散列函数(cryptographic hashing function))被设计成实际上是非可逆的(即不可逆的),使得散列数据的拥有不一定导致对应输入数据的拥有。散列PII数据是来自对PII数据应用散列函数的输出,因此允许比较PII数据元素而不揭露PII数据本身。在一些实施方式中,数据合作伙伴可以提供标识用户的桥标签和用户的电子邮件地址的散列值。然后,公司将数据合作伙伴的散列PII数据与公司的散列PII数据进行比较,以建立用户标签和桥标签之间的链接。当仅使用单个PII数据元素时,诸如当仅基于用户的电子邮件地址匹配用户标签和桥标签时,这种方法工作良好。
然而,为了在多个PII数据元素(例如,用户的电子邮件和电话号码)上匹配,数据合作伙伴必须向公司提供与散列电子邮件和散列电话号码两者配对的桥标签。因此,这向公司揭露了内部数据链接。也就是说,它揭露了数据合作伙伴的用户的数据合作伙伴的电子邮件地址到电话号码的链接。以这种方式在公司和数据合作伙伴之间共享信息以在多个PII数据上匹配可以提供足够的信息来揭露链接到PII数据的特定用户的身份。
因此,本公开涉及用于在双方的用户ID之间建立链接(例如,在公司的用户标签和数据合作伙伴的桥标签之间建立链接)而不将一方的PII数据映射暴露给另一方的系统和方法。该系统和方法可以应用于PII数据包含多个PII数据元素的情况,以及PII数据包含单一PII数据元素的情况。在一些实施方式中,所描述的系统和方法使用独立或中立的中介(intermediary),例如,在洁净室或洁净室环境中操作的一个或多个服务器。在一些实施方式中,所描述的系统和方法使用加密的直接通信,诸如加密的对等(peer-to-peer)通信,这些通信不必通过洁净室路由。
图1是使用数据洁净室在双方的用户标识(identification,ID)之间建立链接的环境100的一个实施方式的框图。一般来说,本文讨论的系统和方法允许双方(例如,公司和数据合作伙伴)与在被称为“洁净室”环境的数据环境中独立操作的服务器共享他们各自的用户ID-PII数据映射。洁净室环境是与各方的活动隔离的一个分离的、物理的和安全的位置,使得只有授权的个体(不隶属于任何一方)可以处理从各方接收到的敏感数据或信息。为了进一步保护每个用户的身份,在该实施方式中,在与数据洁净室环境共享用户ID-PII映射之前,各方对其与每个用户相关联的PII数据进行散列。洁净室中的第三方服务器将公司的用户的散列PII数据与数据合作伙伴的用户的散列PII数据进行匹配,以在公司的用户标签和数据合作伙伴的桥标签之间建立链接,从而识别公共用户。由于洁净室环境与各方的活动隔离,所以洁净室中的第三方服务器的控制和操作独立于数据合作伙伴和公司(也因此独立于数据合作伙伴服务器和公司服务器)。在一个实施方式中,公司可以收集与访问公司的网站以查看内容或购买公司商品的用户相关联的电子邮件地址和电话号码。同样,数据合作伙伴也可以收集与出于类似原因访问其网站的用户相关联的电子邮件地址和电话号码。然后,每一方将其收集的PII数据发送到数据洁净室,在那里,第三方服务器例如基于瀑布方法识别公共用户,对于每个公共用户将公司的用户ID(“用户标签”)与数据合作伙伴的用户ID(“桥标签”)进行链接,并且将链接提供给公司,而不向公司揭露数据合作伙伴的PII链接(例如,特定电子邮件地址与特定电话号码的关联)。在一些实施方式中,链接被提供给公司和数据合作伙伴两者。在一些实施方式中,链接存储在洁净室处,并且各方必须物理地访问洁净室以检索链接。
更详细地,环境100包括公司116、数据合作伙伴132和洁净室102。公司116包括用于将用户标签(user tag,UT)PII映射122传送到洁净室102中的系统(例如,链接服务器104)的PII服务器118a(也称为“公司服务器”)。公司116还包括用于存储UT PII映射122的UT PII映射存储装置120。数据合作伙伴132包括用于将桥标签(bridge tag,BT)PII映射144传送到洁净室102中的系统(例如,链接服务器104)的PII服务器118b(也称为“合作伙伴服务器”)和用于存储BT PII映射144的BT PII映射存储装置134。
洁净室102包括链接服务器104,其用于(1)基于UT PII映射122和BT PII映射144生成链接124,以及(2)向公司116提供链接124。洁净室102还包括用于存储UT PII映射122和BT PII映射144两者的PII映射存储装置106。洁净室102还包括用于存储链接124的链接存储装置108。环境100可以包括具有一个或多个PII服务器118a的多个公司116、具有一个或多个PII服务器118b的多个数据合作伙伴132、以及具有一个或多个链接服务器104的多个洁净室102。尽管未示出,但是在一些实施方式中,公司116和数据合作伙伴132通过网络网关、网络路由器、网络防火墙、网络交换机、网络加速器、Wi-Fi接入点或热点或其他设备与洁净室102通信。
PII服务器118a、118b可以收集与一个或多个客户端设备的用户相关联的个人可识别信息(PII)。在一个实施方式中,PII数据可以包括两个或多个PII数据元素(或者原则上一个PII数据元素),其选自用户的姓名、电子邮件地址、电话号码、账单信息、街道地址、公民身份、生物识别技术、财务信息、驾照和其他政府标识号码、出生日期、出生地、就业历史、家庭历史、病史、地理位置历史、社会保险号码、税务标识号码、医疗标识号码和设备信息(例如,媒体访问控制(Media Access Control,MAC)地址、设备ID 314、会话ID 316、以及可能被图3中示出的采集代理312拦截的任何其他信息)。PII服务器118a、118b可以向客户端设备的每个被识别的用户分配用户标识符。在一个实施方式中,PII服务器118a向连接或通信到由公司116拥有、操作或隶属于公司116的计算设备、服务器、磁盘驱动器或网页的客户端设备的每个用户分配“用户标签”。类似地,PII服务器118b向连接或通信到由数据合作伙伴132拥有、操作或隶属于数据合作伙伴132的计算设备、服务器、磁盘驱动器或网页的客户端设备的每个用户分配“桥标签”。
在一些实施方式中,分配到用户ID(例如,用户标签或桥标签)的用户可以与一个以上的客户端设备相关联。在一些实施方式中,分配到用户ID的用户可以仅与单一客户端设备相关联。PII服务器118a、118b可以周期性地检查用户标签和桥标签,以访问是否基于客户端设备的不活动或减少的活动从客户端设备的用户取消分配用户标签和桥标签。在一个实施方式中,PII服务器118a可以从已经比预定时间量更长的时间没有与PII服务器118a通信的客户端设备取消分配用户标签。
PII服务器118a以由数据结构126所示的数据结构格式将收集的PII数据和每个用户的对应用户标签存储在用户标签(UT)PII映射存储装置120中。数据结构126示出了用户标签到PII数据的映射。每个条目127、128、129、130、131代表一个或多个客户端设备的不同用户。标题为“映射#”的栏对每个条目编号,标题为“用户标签”的栏显示PII服务器118a分配给该特定用户的用户标签,标题为“电子邮件地址”的栏显示该特定用户的电子邮件地址,并且标题为“电话#”的栏显示该特定用户的电话号码。尽管仅示出了两个PII数据栏(例如,电子邮件地址和电话#)和五个条目(即代表五个用户),但是数据结构126可以包括任意数量的PII数据栏和任意数量的条目。
PII服务器118b以由数据结构136所示的数据结构格式将收集的PII数据和每个用户的对应桥标签存储在桥标签(BT)PII映射存储装置134中。数据结构136示出了桥标签到PII数据的映射。每个条目138、139、140、141、142代表一个或多个客户端设备的不同用户。标题为“映射#”的栏对每个条目编号,标题为“桥标签”的栏显示PII服务器118b分配给该特定用户的桥标签,标题为“电子邮件地址”的栏显示该特定用户的电子邮件地址,并且标题为“电话#”的栏显示该特定用户的电话号码。尽管仅示出了两个PII栏(例如,电子邮件地址和电话#)和五个条目(即代表五个用户),但是数据结构136可以包括任意数量的PII数据栏和任意数量的用户。此外,尽管数据结构126和136被示出为具有彼此相同的数据元素,但是数据结构136不需要具有与数据结构126相同的数据元素,只要数据结构具有一个或多个共同的元素。
PII服务器118a、118b可以采取措施来保护公司116的用户和数据合作伙伴132的用户的隐私。在一些实施方式中,PII服务器118a、118b各自将加密散列函数应用于与其各自用户相关联的收集的PII数据。在一个实施方式中,PII服务器118a可以检索(例如,从UTPII映射存储装置120)映射到数据结构126的条目127的电子邮件地址,散列检索到的值,并且用其散列值等价物覆写存储的电子邮件地址。然后,PII服务器118a可以检索(例如,从UTPII映射存储装置120)映射到数据结构126的条目127的电话号码,散列检索到的值,并且用其散列值等价物覆写存储的电话号码。PII服务器118a可以对UT PII映射存储装置120中的每个条目重复该过程。PII服务器118b可以对存储在BT PII映射存储装置134中的数据执行相同的散列例程。在一些实施方式中,PII服务器118a、118b支持加密散列函数。在一些实施方式中,PII服务器118a、118b支持各种散列函数算法,包括例如HMAC、SHA-1、SHA-2、SHA-3、MD2、MD4和MD5。为了确保链接服务器104可以识别公共用户,公司116和数据合作伙伴132使用相同的散列函数来散列它们各自的数据中的每一个数据。在一些实施方式中,各方使用业界普遍接受的默认散列函数。在一些实施方式中,各方(例如,公司116和数据合作伙伴132)彼此通信,以在与链接服务器104共享他们的数据之前对要使用的特定散列函数达成一致。
PII服务器118a可以从洁净室102中的系统(例如,链接服务器104)接收请求,以将收集的PII数据和对应的用户标签从公司116传送到洁净室102。响应于请求,PII服务器118a从UT PII映射存储装置120检索数据结构126,并将检索到的数据(例如,UT PII映射122)传输到链接服务器104。在一些实施方式中,PII服务器118a可以将UT PII映射122传送到PII映射存储装置106。在一些实施方式中,PII服务器118a周期性地(例如,每分钟、小时、天、周、月或其任意组合)向链接服务器104发送UT PII映射122,而不接收来自链接服务器104的请求。
PII服务器118b可以从洁净室102中的系统(例如,链接服务器104)接收请求,以将收集的PII数据和对应的桥标签从数据合作伙伴132传送到洁净室102。响应于请求,PII服务器118b从BT PII映射存储装置134检索数据结构136,并将检索到的数据(例如,BT PII映射144)发送到链接服务器104。在一些实施方式中,PII服务器118b可以将BT PII映射144传送到PII映射存储装置106。在一些实施方式中,PII服务器118b周期性地(例如,每分钟、小时、天、周、月或其任意组合)向链接服务器104发送BT PII映射144,而不接收来自链接服务器104的请求。
链接服务器104通过使用瀑布方法在用户标签和桥标签之间建立链接。瀑布方法首先将与UT PII映射122中的每个用户相关联的第一类型(例如,电子邮件地址)的散列PII数据与与BT PII映射144中的每个用户相关联的相同类型(例如,电子邮件地址)的散列PII数据进行比较。链接服务器104通过将用户标签和桥标签存储在数据库(例如,链接存储装置108)中来链接与任何匹配的PII数据相关联的用户标签和桥标签。响应于识别匹配,链接服务器104移除(从PII映射存储装置106)用户标签及所有其相关联的PII数据和桥标签及所有其相关联的PII数据。在链接服务器104比较了特定类型(例如,电子邮件地址)的所有散列PII数据之后,链接服务器104将与UT PII映射122中的每个用户相关联的第二类型(例如,电话号码)的散列PII数据与与BT PII映射144中的每个用户相关联的相同类型(例如,电话号码)的散列PII数据进行比较。链接服务器104继续比较和移除过程,直到所有PII类型都被比较。瀑布方法可以以任何顺序比较任何类型的PII数据。在一个实施方式中,链接服务器104可以比较散列电子邮件地址,然后比较散列电话号码,然后比较散列社会保险号码。在一个实施方式中,链接服务器104可以比较散列电话号码,然后比较散列社会保险号码,然后比较散列电子邮件地址。在一些实施方式中,瀑布方法可以比较原始的、未散列的PII数据。在一些实施方式中,瀑布方法可以比较加密的PII数据。例如,可以使用加密算法的一个版本(诸如三重数据加密标准(triple Data Encryption Standard,DES)、RSA、blowfish、twofish或高级加密标准(Advanced Encryption Standard,AES))对PII数据进行加密。
可以通过参考图1中的数据结构110、126、136来更详细地解释瀑布方法。在一个实施方式中,链接服务器104从与数据结构126中的第一用户相对应的条目127检索散列电子邮件地址(例如,cat@email.com),并从与数据结构136中的第一用户相对应的条目138检索散列电子邮件地址(例如,snake@email.com)。链接服务器104比较每个检索到的散列值,以确定检索到的值是否匹配。由于cat@email.com与snake@email.com不匹配,所以链接服务器104从与数据结构136中的第二用户相对应的条目139检索散列电子邮件地址(例如,bird@email.com)。通过比较检索到的值,链接服务器104确定cat@email.com与bird@email.com不匹配。响应于不匹配,链接服务器104从与数据结构136中的第三用户相对应的条目140检索散列电子邮件地址(例如,cat@email.com)。链接服务器104比较这两个值并确定匹配,并且响应于该匹配,链接服务器104在与数据结构126中的第一用户相对应的条目127中的用户标签(例如,9288)和与数据结构136中的第三用户相对应的条目140中的用户标签(例如,4263)之间建立链接。链接服务器104通过生成数据结构110并将数据结构110存储在链接存储装置108中来建立链接。
一旦链接服务器104基于散列电子邮件地址将数据结构126中的所有条目与数据结构136进行比较(并尝试进行匹配),链接服务器就使用另一数据元素(诸如散列电话号码)重复比较/匹配过程。在一个实施方式中,链接服务器104从与数据结构126中的第二用户相对应的条目128检索散列电话号码(例如,555-0140),并从与数据结构136中的第一用户相对应的条目138检索散列电话号码(例如,555-9106)。链接服务器104比较每个检索到的散列值,以确定检索到的值是否匹配。由于“555-0140”与“555-9106”不匹配,所以链接服务器104从数据结构136的条目139检索下一散列电话号码(例如,555-8136)。最终,链接服务器在与数据结构126中的第二用户相对应的条目128和与数据结构136中的第五用户相对应的条目142之间找到匹配。通过比较与每个用户相关联的多个PII数据,链接服务器104成功地识别所有公共用户。在一个实施方式中,链接服务器104未能发现数据结构126中的第二用户和数据结构136中的第五用户确实是同一用户,因为该用户似乎具有两个不同的电子邮件地址(例如,dog1@email.com和dog2@email.com)。然而,当比较每个用户的多个PII数据(电子邮件地址和电话号码)时,链接服务器104作出成功匹配。
链接服务器104通过以数据结构格式(例如,数据结构110)生成链接124并存储在链接存储装置108中来链接公司116和数据合作伙伴132的用户标识。在一个实施方式中,数据结构110示出了公司116的用户标签和数据合作伙伴132的桥标签的映射。每个条目111、112、113、114、115代表一个或多个客户端设备的不同用户。标题为“链接#”的栏对每个条目编号,标题为“用户标签”的栏显示PII服务器118a分配给该特定用户的用户标签,标题为“桥标签”的栏显示PII服务器118b分配给该特定用户的桥标签。尽管仅示出了两个用户标识栏(例如,用户标签和桥标签)和五个条目(即五个用户),但是数据结构110可以包括任意数量的用户标识栏(即代表来自多个数据合作伙伴132和多个公司116的用户标识的匹配)和任意数量的条目。
链接服务器104向公司116发送链接124。虽然链接124揭露了用户标签与桥标签的匹配,但是它们没有向公司116揭露数据合作伙伴的PII链接(例如,电子邮件地址到电话号码、电子邮件地址到税务ID、电话号码到社会保险号码)。在一些实施方式中,公司116可以对链接124进行去加密,以揭露数据合作伙伴132的PII链接。在一些实施方式中,链接服务器104向公司116和数据合作伙伴132两者发送链接124。在一些实施方式中,链接服务器104仅将链接124存储在链接存储装置108中。在一些实施方式中,在链接服务器104将链接124发送给适当的一方(例如,公司116、数据合作伙伴132或两者)之后,链接服务器104从链接存储装置108和PII映射存储装置106中擦除所有内容。
在一些实施方式中,PII服务器118a、118b和链接服务器104使用替代的数据结构类型(诸如数组、链表、记录、联合、标记的联合、类、树和队列)生成它们各自的数据结构110、126、136。因此,链接服务器104可以使用这些数据结构类型中的任何一种,在公司116的用户标签和数据合作伙伴132的桥标签之间建立链接。
图2是各方从客户端设备收集PII数据的环境200的一个实施方式的框图。环境200可以包括网络202,例如,局域网(local area network,LAN)、广域网(wide area network,WAN)、互联网、蓝牙网络或这些或其他网络的组合,其将客户端设备204与公司116和数据合作伙伴132连接起来。在一些实施方式中,数据作为数据分组流,例如,以根据开放系统互连(Open Systems Interconnection,“OSI”)层的数据分组的形式,通过网络202从源节点流到目的节点。分组流可以使用例如OSI层4(layer-4)传输协议,诸如用户数据报协议(UserDatagram Protocol,“UDP”)、传输控制协议(Transmission Control Protocol,“TCP”)或流控制传输协议(Stream Control Transmission Protocol,“SCTP”),其经由分层在OSI层3(layer-3)网络协议(诸如互联网协议(Internet Protocol,“IP”)(例如,IPv4或IPv6))上的网络202传输。环境200可以包括成千上万个节点,包括例如客户端设备204、公司116和数据合作伙伴132。尽管未示出,但是在许多实施方式中,网络202可以包括一个或多个中介设备,包括网关、路由器、防火墙、交换机、网络加速器、Wi-Fi接入点或热点,或者其他设备。
客户端设备204是受用户控制的电子设备,并且能够接收对个人可识别信息(PII)的请求并通过网络202传输PII数据。客户端设备204可以是适于经由网络202通信的任意数量的不同类型的用户电子设备,包括但不限于个人计算机、膝上型计算机、台式计算机、移动计算机、平板计算机、智能手机、数字录像机、电视机机顶盒、视频游戏控制台或任何其他类型和形式的计算设备或设备组合。在一些实施方式中,客户端设备204的类型可以被分类为移动设备、台式设备、意图保持静止的设备、适于主要经由局域网(例如,网络202)访问网络的设备,或者诸如媒体消费设备的另一类电子设备。客户端设备204包括用户应用,例如,网络浏览器,以便于通过网络202发送和接收数据。
图3A是客户端的客户端设备204的一个实施方式的框图。客户端设备204包括处理器306和存储器302。存储器302可以存储机器指令,当由处理器306执行这些指令时,使得处理器306执行本文描述的一个或多个操作。处理器306可以包括微处理器、ASIC、FPGA等或它们的组合。在许多实施方式中,处理器306可以是多核处理器或处理器阵列。存储器302可以包括但不限于电子、光学、磁性或能够向处理器306提供程序指令的任何其他存储设备。存储器302可以包括软盘、CD-ROM、DVD、磁盘、存储器芯片、ROM、RAM、EEPROM、EPROM、闪速存储器、光学介质或处理器306可以从中读取指令的任何其他合适的存储器。指令可以包括来自任何合适的计算机编程语言(诸如但不限于,C、C++、C#、Java、JavaScript、Perl、HTML、XML、Python和Visual Basic)的代码。
客户端设备204可以包括一个或多个网络接口308。网络接口308可以包括任何类型和形式的接口,包括以太网(包括10Base T、100Base T或1000Base T(“千兆比特(Gigabit)”));各种802.11无线的任意一种,诸如802.11a、802.11b、802.11g、802.11n或802.11ac;蜂窝网络,包括CMDA、LTE、3G或4G蜂窝网络;蓝牙或其他短程无线连接;或用于与网络或其他计算设备通信的这些或其他接口的任意组合。在许多实施方式中,客户端设备204可以包括多个不同类型的网络接口308,从而允许经由不同的子网络连接到各种网络,诸如局域网或包括互联网的广域网。
客户端设备204可以包括一个或多个用户接口304。用户接口304可以是通过生成感官信息(例如,显示器上的可视化、一个或多个声音、触觉反馈等)向用户传达数据和/或将从用户接收的感官信息转换成电子信号的任何电子设备(例如,键盘、鼠标、定点设备、触摸屏显示器、麦克风等)。根据各种实施方式,一个或多个用户接口可以在客户端设备204的外壳内部,诸如内置显示器、触摸屏、麦克风等,或在客户端设备204的外壳外部,诸如连接到客户端设备204的监视器、连接到客户端设备204的扬声器等。
客户端设备204可以在存储器302中包括应用310,或者可以用处理器306执行应用310。应用310可以是应用、小程序、脚本、服务、守护程序(daemon)、例程或用于接收内容和用于传输响应、命令或其他数据的其他可执行逻辑。在一个实施方式中,应用310可以是网络浏览器,而在另一实施方式中,应用310可以是媒体演示应用。应用310可以包括用于显示经由网络接口308接收的和/或由处理器306本地生成的内容的功能,以及用于传输经由用户接口304接收的交互(诸如对网站的请求、调查响应选项的选择、输入文本字符串等)的功能。
在一些实施方式中,应用310可以包括采集代理312。采集代理312可以包括应用插件、应用扩展、子例程、浏览器工具栏、守护程序或用于采集由应用310处理的数据和/或监控用户与用户接口304的交互的其他可执行逻辑。在一些实施方式中,采集代理312可以是分离的应用、服务、守护程序、例程或分离于应用310但适于拦截和/或采集由应用310处理的数据的其他可执行逻辑,诸如屏幕截取器、分组拦截器、应用程序接口(ApplicationProgramming Interface,API)挂接过程或其他这样的应用。采集代理312可以适于拦截或接收经由用户接口304输入的数据,包括鼠标点击、滚轮移动、手势(诸如滑动、捏压或触摸)、或任何其他这样的交互;以及由应用310接收和处理的数据,包括键盘击键。
客户端设备204可以包括设备标识符314或者用设备标识符314来识别(在图3A中示出为设备ID 314)。设备标识符314可以包括任何类型和形式的标识,包括但不限于媒体访问控制(MAC)地址、文本和/或数字数据串、用户名、加密公钥、cookies、设备序列号、用户简档数据、网络地址或可以用于将客户端设备204与其他客户端设备204区分开的任何其他这样的标识符。在一些实施方式中,设备标识符314可以与一个或多个其他设备标识符314相关联(例如,移动设备的设备标识符、家用计算机的设备标识符等)。在许多实施方式中,为了保护隐私,设备标识符314可以被加密生成、加密或以其他方式混淆(obfuscated)。在一些实施方式中,客户端设备204可以包括会话标识符316(在图3A中示出为会话ID 316),该会话标识符316可以类似于设备标识符314但更频繁地生成,诸如每小时、每天、在应用310激活时或任何其他这样的时间段。会话标识符316可以由客户端设备204生成或者从服务器或其他设备接收。会话标识符316可以用来代替设备标识符314以增加匿名性,或者可以与设备标识符314结合使用以区分一个会话的交互与另一会话的交互。
客户端设备204可以适于接收对将设备标识符314、会话标识符316和由采集代理312采集的任何其他PII数据传送到诸如服务器(例如,PII服务器118a、PII服务器118b、链接服务器104)的计算设备的请求。在一个实施方式中,客户端设备204可以接收来自PII服务器118a的、传送与客户端设备204相关联的一项或多项PII数据的请求。响应于该请求,采集代理312搜索客户端设备204的所有软件(例如,浏览器存储的cookies)和硬件组件(例如,连接到网络接口308的设备、连接到用户接口304的设备、处理器306的高速缓存区和存储器302)以获得所有PII数据。在一些实施方式中,采集代理312可以向应用310查询尚未存储在客户端设备204上的新PII数据。在一个实施方式中,采集代理312可以向互联网浏览器发送请求,用请求附加的用户信息的弹出窗口提示客户端设备204的用户。客户端设备204的用户可以通过在弹出窗口中输入所请求的信息来响应,以使采集代理312可用于PII收集。客户端设备204向请求服务器(例如,PII服务器118a、PII服务器118b、链接服务器104)提供标识符314、会话标识符316以及由采集代理312收集的任何其他PII数据。在一些实施方式中,客户端设备204在传输到请求服务器之前压缩(例如,bz2、.F、.gz、.lz,.lzma、.lzo、.rz、.sfark、.sz、.xz、.z、.Z)收集的PII数据。在一些实施方式中,客户端设备204将PII数据打包到归档文件(例如,.7z、.apk、.b1、.ba、.cab、.cfs、.ear、.jar、.zip)。在一些实施方式中,客户端设备204周期性地向服务器传输PII数据,而不需要接收请求。
图3B是根据一个实施方式的个人可识别信息(PII)服务器118的框图,诸如图1的PII服务器118a、118b(统称为PII服务器118)。如同客户端设备204一样,PII服务器118可以包括一个或多个处理器306、存储器302、网络接口308和用户接口304。在一些被称为无头服务器(headless server)的实施方式中,PII服务器118可以不包括用户接口304,但是可以经由网络与具有用户接口304的客户端设备204通信。存储器302可以包括PII数据存储装置326,以存储在PII服务器118将PII数据映射到用户标签或桥标签之前从客户端设备204接收的PII数据。在一些实施方式中,存储器302可以存储用于由PII服务器118的处理器306执行的一个或多个应用310(未示出),包括文件传输协议(File Transfer Protocol,FTP)服务器、网络服务器、邮件服务器、文件共享服务器、对等服务器或用于从客户端设备204接收存储在客户端PII数据存储装置320中的PII数据、传送PII数据(例如,UT PII映射122、BTPII映射144)和接收链接124的其他这样的应用。
PII服务器118可以包括PII收集引擎324。PII收集引擎324可以包括应用、服务、例程、服务器、守护程序或用于通过执行图4所示的过程400从一个或多个客户端设备204收集PII数据的其他可执行逻辑。在一些实施方式中,应用、服务、例程、服务器、守护程序或其他可执行逻辑执行图5所示的过程500,以准备数据(例如,UT PII映射122、BT PII映射144)并将其传送到链接服务器104,以及从链接服务器104(例如,链接124)接收数据。在一些实施方式中,应用、服务、例程、服务器、守护程序或其他可执行逻辑执行图6所示的过程600,以准备数据(例如,UT PII映射122、BT PII映射144)并将其传送到链接服务器104,以及从链接服务器104接收数据(例如,链接124)。
图3C是根据一个实施方式的用户标识(user identification,UI)链接服务器的框图,诸如图1的链接服务器104。如同客户端设备204一样,链接服务器104可以包括一个或多个处理器306、存储器302、网络接口308和用户接口304。在一些被称为无头服务器的实施方式中,链接服务器104可以不包括用户接口304,但是可以经由网络与具有用户接口304的客户端设备204通信。存储器302可以包括PII映射数据存储装置352,以存储PII映射数据(例如,UT PII映射122、BT PII映射144),用于与存储在外部存储装置中相比更快的读和写访问。在一些实施方式中,存储器302可以存储用于由链接服务器104的处理器306执行的一个或多个应用310(未示出),包括文件传输协议(FTP)服务器、网络服务器、邮件服务器、文件共享服务器、对等服务器或用于从PII服务器118接收PII映射数据(例如,UT PII映射122、BT PII映射144)并将链接124传送到PII服务器118的其他这样的应用。
链接服务器104可以包括链接引擎354。链接引擎354可以包括应用、服务、例程、服务器、守护程序或用于通过执行图5所示的过程500在用户ID(例如,用户标签、桥标签)之间建立链接的其他可执行逻辑。在一些实施方式中,应用、服务、例程、服务器、守护程序或其他可执行逻辑通过执行图6所示的过程600在用户ID(例如,用户标签、桥标签)之间建立链接。
图4是在用于收集PII数据的过程400的一些实施方式中由PII服务器和(多个)客户端设备采取的操作的流程图。在一些实施方式中,过程400可以由图1中的PII服务器118a、118b和图2中的一个或多个客户端设备204来执行。具体地,链接服务器104执行操作402、412、414、416、418、420和422,并且PII服务器118a、118b执行操作404、408和410。每个操作都可以重新排序、添加或移除。
过程400从操作402开始,其中PII服务器118a、118b之一(以下称为“请求服务器”)向客户端设备204发送对PII数据的请求。在操作404处,客户端设备204接收对PII数据的请求。在操作408处,客户端设备204收集位于客户端设备204上的PII数据。在一个实施方式中,客户端设备204触发采集代理312搜索客户端设备204的所有软件(例如,浏览器存储的cookies)和硬件组件(例如,连接到网络接口308的设备、连接到用户接口304的设备、处理器306的高速缓存区域和存储器302)以获得所有PII数据。在一些实施方式中,采集代理312可以向应用310查询尚未存储在客户端设备204上的新PII数据。在一个实施方式中,采集代理312可以向互联网浏览器发送请求,用请求附加的用户信息的弹出窗口提示客户端设备204的用户。客户端设备204的用户可以通过在弹出窗口中输入所请求的信息来响应,以使采集代理312可用于PII收集。在收集了与客户端设备204相关联的所有或部分PII数据之后,客户端设备204将PII数据传送到请求服务器(例如,PII服务器118a、PII服务器118b)。
在操作412处,请求服务器接收传送的PII数据。在操作414处,请求服务器将PII数据映射到与客户端设备相关联的用户标识(例如,用户标签或桥标签)。在一个实施方式中,如果PII服务器118a(位于公司116)请求信息,则PII服务器118a将识别与隶属于公司116的任何计算设备通信的客户端设备的每个用户(基于设备ID 314),并且为客户端设备的用户向接收到的PII数据分配“用户标签”。类似地,如果(位于数据合作伙伴132处的)PII服务器118b请求信息,则PII服务器118b将识别与隶属于数据合作伙伴132的任何计算设备通信的客户端设备的每个用户(基于设备ID 314),并且为客户端设备的用户向接收到的PII数据分配“桥标签”。
在操作416处,请求服务器将分配的用户标签组织成数据结构格式(例如,数据结构126、数据结构136),并将该数据结构存储在数据库中(例如,UT PII映射存储装置120、BTPII映射存储装置134)。在一些实施方式中,请求服务器将分配的用户标签和PII数据组织成数组、链表、记录、联合、标记的联合、类、树、队列或平面文件。请求服务器可以通过使用特殊字符(诸如逗号、分号、制表符、空格、下划线或连字符)来分隔平面文件中的表格数据。在一个实施方式中,请求服务器可以将数据结构126的内容存储在逗号分隔的文本文件中,例如,如下:
1,9288,cat@mail.com,555-0100
2,5002,dog1@email.com,555-0140
3,4263,mouse@email.com,555-2105
4,1284,snake@email.com,555-9106
5,0301,bird@email.com,555-8136
在操作418处,请求服务器确定附加客户端是否隶属于请求服务器。如果有附加客户端,则在操作420处,请求服务器向下一客户端设备204发送PII数据请求,并前进到操作404以重复过程400。一旦请求已经被发送到所有客户端设备,过程在操作422处结束。
图5是在用于链接用户标签和桥标签的过程500的一些实施方式中由链接服务器和PII服务器采取的操作的流程图。在一些实施方式中,过程500可以由图1中的链接服务器104和PII服务器118a、118b来执行。过程500描述了使用瀑布方法的链接阶段。每个操作都可以重新排序、添加或移除。
从操作502到操作512,链接服务器104从公司116收集第一数据集。在一个实施方式中,在操作502处,链接服务器104向PII服务器118a发送对由公司116维持的用户标签到PII的映射(例如,UT PII映射122)的请求。在操作504处,PII服务器118a接收请求,并且响应于接收到该请求,PII服务器118a在操作506处从存储装置(例如,UT PII映射存储装置120)检索用户标签到PII的映射(例如,UT PII映射122)。在操作508处,PII服务器118a散列与每个用户标签相关联的PII数据。在一个实施方式中,PII服务器118a从UT PII映射122(或UT PII映射存储装置120)检索与数据结构126的条目127相关联的电子邮件地址,散列检索到的值,并且用其散列值等价物覆写存储的电子邮件地址。然后,PII服务器118a从UTPII映射122(或UT PII映射存储装置120)检索与数据结构126的条目127相关联的电话号码,散列检索到的值,并且用其散列值等价物覆写存储的电话号码。PII服务器118a可以对UT PII映射存储装置120中的每个条目重复该过程。在一些实施方式中,PII服务器118a可以加密(而不是散列)PII数据,例如,使用三重数据加密标准(DES)、RSA、blowfish、twofish或高级加密标准(AES)。在一些实施方式中,PII服务器118a可以跳过操作508,从而使用原始的、未散列的PII数据前进到操作510。在一些实施方式中,每个PII服务器118可以在散列和覆写存储内容之前,在辅助存储装置(未示出)中备份它们各自的存储装置(例如,UT PII映射存储装置120、BT PII映射存储装置134)的内容。
在操作510处,PII服务器118a从数据存储装置(例如,UT PII映射存储装置120)检索散列PII映射(例如,UT PII映射122),并将散列PII映射(例如,UT PII映射122)传送到链接服务器104。在操作512处,链接服务器104从PII服务器118a接收UT PII映射122,并将UTPII映射122存储在数据存储装置(例如,PII映射存储装置106)中。
从操作514到操作524,链接服务器104从数据合作伙伴132收集第二数据集。在一个实施方式中,在操作516处,链接服务器104向PII服务器118b发送对由数据合作伙伴132维持的桥标签到PII的映射(例如,BT PII映射144)的请求。在操作516处,PII服务器118b接收请求,并且响应于接收到该请求,PII服务器118b在操作518处从存储装置(例如,BT PII映射存储装置134)检索桥标签到PII的映射(例如,BT PII映射144)。在操作520处,PII服务器118b散列与每个桥标签相关联的PII数据。在一些实施方式中,PII服务器118b可以加密(而不是散列)PII数据,例如,使用三重数据加密标准(DES)、RSA、blowfish、twofish或高级加密标准(AES)。在一些实施方式中,PII服务器118b可以跳过操作520,从而使用原始的、未散列的PII数据前进到操作522。在操作520处,PII服务器118b从数据存储装置(例如,BTPII映射存储装置134)检索散列PII映射(例如,BT PII映射144),并将散列PII映射(例如,BT PII映射144)传送到链接服务器104。在操作524处,链接服务器104从PII服务器118b接收BT PII映射144,并将BT PII映射144存储在数据存储装置(例如,PII映射存储装置106)中。
在一些实施方式中,PII服务器118a、118b响应于触发事件的满足(诸如预定的当日时间(例如,特定日期、一周中的几天、每天、一个月中的几天,诸如“周一晚上7:00”或“每天晚上7:00之后”)、每当PII服务器从客户端设备接收到新的PII数据时、或者每当客户端设备连接到PII服务器时)而散列它们各自的PII数据。
仍然参考图5,在操作526处,链接服务器104通过设置瀑布匹配类型(例如,电子邮件地址、电话号码、社会保险号码)开始将用户标签链接到桥标签的瀑布方法。在一个实施方式中,链接服务器104可以选择瀑布匹配类型作为每个用户的电子邮件地址。因此,操作528至560将基于每个用户的电子邮件地址将用户标签链接到桥标签。在一个实施方式中,链接服务器104可以选择瀑布匹配类型作为每个用户的电话号码。因此,操作528至560将基于每个用户的电话号码将用户标签链接到桥标签。如本文所述,匹配类型可以被适配为任何PII数据值。
在操作528处,链接服务器104基于从操作526的选择的PII匹配类型从数据库(例如,PII映射存储装置106)检索用户标签到PII的映射条目。在一个实施方式中,数据结构126示出了由链接服务器104接收的UT PII映射122的数据结构。当将UT PII映射122存储在PII映射存储装置106中时,链接服务器104维持相同的数据结构。如果链接服务器104选择“电子邮件地址”作为匹配类型(即在操作526处),则链接服务器104从与数据结构126中的第一用户相对应的条目127检索散列电子邮件地址(例如,cat@email.com)。
在操作532处,链接服务器104基于从操作526处的选择的PII匹配类型,从数据库(例如,PII映射存储装置106)检索桥标签到PII的映射条目。在一个实施方式中,数据结构136示出了由链接服务器104接收的BT PII映射144的数据结构。当将BT PII映射144存储在PII映射存储装置106中时,链接服务器104维持相同的数据结构。随后,链接服务器104从与数据结构136中的第一用户相对应的条目138检索散列电子邮件地址(例如,snake@email.com)。
在操作536处,链接服务器104比较检索到的用户标签到PII的映射条目和检索到的桥标签到PII的映射条目,以确定检索到的值是否匹配(操作538)。如果没有找到匹配,则链接服务器104递增指针(例如,存储器指针、数据库指针、堆栈指针)指向下一桥标签到PII的映射条目,并返回到操作532。在一些实施方式中,链接服务器104将指针移动到数据结构136的条目139(例如,bird@email.com)。然而,如果找到匹配,则链接服务器104前进到操作542。
链接服务器104可以使用字符串比较算法来比较这些值,诸如强力(Brute Force)算法、确定有限状态自动机(Deterministic Finite Automaton)算法、Karp-Rabin算法、移位或(Shift Or)算法、Morris-Pratt算法、Knuth-Morris-Pratt算法、Simon算法、Colussi算法、Galil-Giancarlo算法、Apostolico-Crochemore算法、Not So Naive算法、Boyer-Moore算法、Turbo BM算法、Apostolico-Giancarlo算法、反向Colussi算法、Horspool算法、快速搜索(Quick Search)算法、调谐Boyer-Moore算法、Zhu-Takaoka算法、Berry-Ravindran算法、Smith算法、Raita算法、反向因子(Reverse Factor)算法、Turbo反向因子算法、前向狗匹配(Forward Dawg Matching)算法、后向非确定狗匹配(BackwardNondeterministic Dawg Matching)算法、后向Oracle匹配算法、Galil-Seiferas算法、双向(Two Way)算法、有序字母字符串匹配(String Matching on Ordered Alphabets)算法、最优失配(Optimal Mismatch)算法、最大移位(Maximal Shift)算法、跳跃搜索(SkipSearch)算法、Knuth-Morris-Pratt(KMP)跳跃搜索算法、和阿尔法跳跃搜索(Alpha SkipSearch)算法。在一些实施方式中,使用强力算法,链接服务器104将cat@email.com和snake@email.com两者解析成第一单个字符集和第二单个字符集。链接服务器104然后将第一单个字符集的第一字符(例如,来自cat@email.com的“c”)与第二单个字符集的第一字符(例如,来自snake@email.com的“s”)进行比较。如果存在匹配,则链接服务器104将第一单个字符集的第二字符(例如,来自cat@email.com的“a”)与第二单个字符集的第二字符(例如,来自snake@email.com的“n”)进行比较。链接服务器104继续字符到字符的比较,以验证第一单个字符集(例如,cat@email.com)中的所有字符与第二单个字符集(例如,snake@email.com)中的所有字符匹配。
在操作542处,链接服务器104在检索到的用户标签和检索到的桥标签之间建立链接。在一个实施方式中,链接服务器104可以通过生成数据结构110来建立链接。数据结构110的每个条目可以代表(用用户标签表示的)公司116和(用桥标签表示的)数据合作伙伴132两者共同的用户。
在操作544处,链接服务器104将生成的数据结构110存储在链接存储装置108中。对于在操作536和538中识别的每个匹配,链接服务器104附上对应的用户标签和桥标签。在一些实施方式中,链接服务器104写到数据结构110的第一条目,并将所有其他条目向下推一。
在操作546处,链接服务器从PII映射存储装置106中移除或删除检索到的用户标签和所有相关联的PII数据。类似地,在操作548处,链接服务器104从PII映射存储装置106中移除或删除检索到的桥标签和所有相关联的PII数据。在一些实施方式中,链接服务器104可以将信息与特殊字符(诸如以下中的一个:@、‘、’、#、$、%、^、&、*、/、\、_)、数字序列(例如,999)或其任意组合连接起来,而不是删除信息。例如,链接服务器104可以用“#0301#”替换数据结构136的条目138中的桥标签“0301”。在一些实施方式中,特殊字符可以指示链接服务器104在处理期间跨过条目或者执行其他定制的操作。
在操作550处,链接服务器104检查数据结构126中是否存在附加的用户标签到PII的映射条目(例如,条目127、128、129、130、131)。如果是,则链接服务器104前进到操作556以递增指针指向下一用户标签到PII的映射条目,前进到操作558以将桥标签到PII的映射指针重置为指向数据结构136的第一条目(例如,条目138),并返回到操作528以使用新的检索到的值重复该过程。如果否,则链接服务器104前进到操作552以检查匹配类型序列中是否存在附加的匹配类型。如果存在附加的匹配类型(例如,电子邮件地址、电话号码),则链接服务器104前进到操作560以递增该指针指向下一匹配类型,并且然后前进到操作526以设置瀑布匹配过程来使用下一匹配类型。然而,如果链接服务器104在操作552处确定不存在附加的匹配类型,则链接服务器104前进到操作554。在操作554处,链接服务器104将链接124传送给公司116。
公司116然后可以利用接收到的链接124。一种可能的用途是通过研究存储的用户ID到PII的映射数据来改进互联网相关的服务和产品向客户的传送。例如,在上面给出的汽车制造商(“公司”)在其母公司的网站上推销汽车,并且在其子公司的网站上推销卡车的示例中,通过在公司的用户标签和数据合作伙伴的桥标签之间建立链接,公司可以发现正在访问母公司的汽车网站的用户也有兴趣购买卡车。因此,公司可以专门为该用户定制母公司的汽车网站的外观和感觉来也包括在其子公司的卡车网站上可供购买的卡车的图像。这可以提供一个更节省资源的过程,因为消除用户执行搜索以找到提供卡车的网站的需要减少了网络流量和所需带宽。
图6是在用于链接用户标签和桥标签的过程600的一些实施方式中由用户标识(ID)链接服务器和PII服务器采取的操作的流程图。在一些实施方式中,过程600可以由图1中的链接服务器104和PII服务器118a、118b来执行。具体地,每个洁净室102的操作由链接服务器104执行,每个公司116的操作由PII服务器118a执行,并且每个数据合作伙伴132的操作由PII服务器118b执行。过程600描述了包括在每一方将他们的数据传送到洁净室102用于链接用户ID(例如,用户标签、桥标签)之前数据合作伙伴132与公司116共享数据的替代的链接阶段。每个操作都可以重新排序、添加或移除。
对于过程600,PII服务器118b(即数据合作伙伴132)存储用户级ID(称为“桥标签”)以识别每个用户和多个PII级ID(称为“PII标签-1”、“PII标签-2”、“PII标签-3”……“PII标签-n”)来识别链接到用户的每个PII数据(例如,电子邮件地址、电话号码)。用户级ID与其每个的相关联的PII级ID的链接可以用以下映射表达式来说明:
(1)桥标签<>电子邮件(PII标签-1)<>电话号码(PII标签-2)
在映射表达式(1)中,分配给特定用户的桥标签与代表用户的电子邮件地址的第一PII级ID(例如,PII标签-1)相关联(<>),并且与代表用户的电话号码的第二PII级ID(例如,PII标签-2)相关联(<>)。也就是说,用户的实际电子邮件地址和实际电话号码没有显示在该表达式中。相反,用户的个人可识别信息由PII级ID表示。这个相同的术语用于描述过程600的操作。
在操作602处,PII服务器118b散列与隶属于数据合作伙伴132的每个用户相关联的每个PII数据。图5的过程500中描述的散列过程和可用的散列算法也适用于过程602。在一些实施方式中,PII服务器118b可以使用例如三重数据加密标准(DES)、RSA、blowfish、twofish或高级加密标准(AES)来加密每个PII数据(而不是散列)。
在操作604处,PII服务器118b向公司116处的PII服务器118a提供其每个用户的多个PII级ID<>散列PII映射。在一个实施方式中,PII服务器118b向PII服务器118a发送与电子邮件地址的散列值(例如,散列的(cat@email.com))相关联(<>)的第一用户的电子邮件地址的PII级ID(例如,PII标签-1),该电子邮件地址的散列值(例如,散列的(cat@email.com))与第一用户的电话号码的PII级ID(例如,PII标签-2)相关联(<>),该第一用户的电话号码的PII级ID(例如,PII标签-2)与电话号码的散列值(例如,散列的(555-0100))相关联(<>)。因此,PII服务器118b对于第二用户向PII服务器118a发送以下映射:
(2)PII标签-1<>散列的(cat@email.com)<>PII标签-2<>散列的(555-0100)。
此外,PII服务器118b向PII服务器118a发送与电子邮件地址的散列值(例如,散列的(dog1@email.com))相关联(<>)的第二用户的电子邮件地址的PII级ID(例如,PII标签-3),该电子邮件地址的散列值(例如,散列的(dog1@email.com))与第二用户的电话号码的PII级ID(例如,PII标签-4)相关联(<>),该第二用户的电话号码的PII级ID(例如,PII标签-4)与电话号码的散列值(例如,散列的(555-0140))相关联(<>)。因此,PII服务器118b对于第二用户向PII服务器118a发送以下映射:
(3)PII标签-3<>散列的(dog1@email.com)<>PII标签-4<>散列的(555-0100)。
在操作606处,PII服务器118a从PII服务器118b接收PII级ID<>散列PII映射,并将接收的数据存储在本地存储装置(例如,UT PII映射存储装置120)或外部存储装置(例如,云数据库、远程存储装置)中。
在操作608处,PII服务器118a散列与隶属于公司116的每个用户相关联的每个PII数据。图5的过程500中描述的散列过程和可用的散列算法也适用于过程602。在一些实施方式中,PII服务器118a可以使用例如三重数据加密标准(DES)、RSA、blowfish、twofish或高级加密标准(AES)来加密每个PII数据(而不是散列)。为了确保用户标签和桥标签的成功链接,PII服务器118a和PII服务器118b使用相同的散列函数来散列它们各自的数据中的每一个。在一些实施方式中,各方使用业界普遍接受的默认散列函数。在一些实施方式中,各方(公司116和数据合作伙伴132)彼此通信,以对特定散列函数达成一致。
在操作610,PII服务器118a在公司116的用户ID(“用户标签”)和从PII服务器118b接收的多个PII级ID之间建立链接。为了建立链接,PII服务器118a使用本文描述的字符串比较算法(例如,强力算法、确定有限状态自动机算法、Karp-Rabin算法等)中的任意一个将它的散列PII数据与数据合作伙伴132的散列PII数据进行比较。如果PII服务器118a确定公司116的散列PII数据和数据合作伙伴132的散列PII数据之间的匹配,则PII服务器118a将公司116的用户标签链接(==)到与该用户相关联的数据合作伙伴132的多个PII级ID。在一个实施方式中,数据合作伙伴132对于第一用户向公司116提供以下映射:
(4)PII标签-1<>散列的(cat@email.com)<>PII标签-2<>散列的(555-0100)。
其中,PII标签-1是电子邮件地址cat@email.com的PII级ID,以及PII标签-2是电话号码555-0100的PII级ID。
PII服务器118a从存储装置(例如,UT PII映射存储装置120、云存储装置)检索以下映射。
(5)用户标签-1<>散列的(cat2@email.com)<>散列的(555-0100)。
其中,用户标签-1是同一“第一”用户的用户ID,以及cat@email.com是与第一用户相关联的第一PII数据,以及555-0100是与第一用户相关联的第二PII数据。
PII服务器118a在映射(4)的散列PII数据和映射(5)的散列PII数据之间执行字符串比较。在一些实施方式中,PII服务器118a按照以下顺序执行字符串比较:
映射(4)的第一PII数据与映射(5)的第一PII数据相比较
映射(4)的第二PII数据与映射(5)的第二PII数据相比较
映射(4)的第一PII数据与映射(5)的第二PII数据相比较
映射(4)的第二PII数据与映射(5)的第一PII数据相比较
在一个实施方式中,PII服务器118a将来自映射(4)的散列的(cat@email.com)与来自映射(5)的散列的(cat2@email.com)进行比较,以确定匹配。因此,PII服务器118a将分配给“第一”用户的公司116处的用户ID(例如,用户标签-1)、第一散列PII数据的PII级ID(例如,PII标签-1)和第二散列PII数据的PII级ID(例如,PII标签-2)链接如下:
(6)用户标签-1==PII标签-1,PII标签-2
PII服务器118a对于每个匹配用户将用户标签到用户级ID链接保存在存储装置(例如,UT PII映射存储装置120)中。
在操作612处,PII服务器118a从存储装置(例如,UT PII映射存储装置120)中移除所有未匹配的数据。在一个实施方式中,PII服务器118a移除所有公司116的用户标签和相关联的PII数据,以及未能匹配的所有数据合作伙伴132的PII级ID<>散列PII数据。
在操作614处,PII服务器118a从存储装置(例如,UT PII映射存储装置120)检索用户标签到用户级ID链接,并将其提供给洁净室102中的链接服务器104。在操作616处,链接服务器104从PII服务器118a接收所提供的数据,并将其存储在数据存储装置(例如,PII映射存储装置106)中。在操作618处,PII服务器118b从存储装置(例如,BT PII映射存储装置134)检索桥标签到用户级ID链接,并将其提供给洁净室102中的链接服务器104。在操作620处,链接服务器104从PII服务器118b接收所提供的数据,并将其存储在数据存储装置(例如,PII映射存储装置106)中。
在操作622处,链接服务器104通过比较和匹配来自PII服务器118a(即公司116)的PII级ID和来自PII服务器118b(即数据合作伙伴132)的PII级ID,在每个用户标签和桥标签之间建立链接。为了建立链接,链接服务器104应用与操作610相同的字符串比较技术,如本文所述。
在操作624处,链接服务器104向PII服务器118a(即公司116)提供用户标签到桥标签链接。在操作626处,PII服务器118a接收链接124。在操作628处,PII服务器118a检查公司116处的存储装置(例如,UT PII映射存储装置120),以确定是否需要对附加数据集重复过程600。如果否,则过程600在操作630处结束。如果是,则过程600前进到操作632以选择下一数据集,然后前进到操作602以重复过程600。
许多加密标准都有一个可交换属性,使得对一个值加密两次,每次用两个不同密钥中的每一个,无论首先使用哪个密钥,都将得到相同的加密值。也就是说,对于可交换加密函数Encrypt(),Encrypt(密钥1,Encrypt(密钥2,消息))的结果等同于Encrypt(密钥2,Encrypt(密钥1,消息))的结果。因此,上面参照图5和图6描述的比较可以在已经被双重加密的数据上进行。在一些实施方式中,如下文更详细描述的,双方可以交换用各自的秘密密钥(secret key)加密的数据,并且通过用各自的秘密密钥中的其他秘密密钥进一步将交换的数据进行加密来比较交换的数据。无论首先使用哪个密钥,并且不共享秘密密钥,每一方都有相同的结果(适于比较)。图7所示的过程700使用可交换加密的这一特征来在用户标签和数据合作伙伴的桥标签之间建立链接,而不使用洁净室环境,也不共享内部PII映射。
图7是在不使用洁净室环境的情况下在用于链接用户标签和桥标签的过程700的一些实施方式中由PII服务器采取的操作的流程图。在一些实施方式中,过程700可以由图1所示的PII服务器118a、118b来执行。具体地,每个公司116的操作由PII服务器118a执行,并且每个数据合作伙伴132的操作由PII服务器118b执行。过程700描述了用于将加密的PII数据集中在一个地方进行比较而不暴露PII映射的替代过程。在一些实施方式中,一旦PII服务器118b具有加密的数据,PII数据然后以先前描述的相同瀑布方式进行比较。每个操作都可以重新排序、添加或移除。
对于过程700,公司116 PII服务器118a存储用户级ID(称为“用户标签”)以识别用户,数据合作伙伴132 PII服务器118b存储用户级ID(称为“桥标签”)以识别用户,并且PII服务器118a、118b中的每一个存储对应于链接到用户的各种PII数据(例如,电子邮件地址、电话号码)的多个PII数据元素。PII服务器118b生成桥标签(例如,“BT1”、“BT2”等)和加密的单个PII数据元素(例如,“PII1.1”、“PII1.2”、“PII2.1”等,以加密的形式称为“E(密钥,PII#)”)的数据对,以指示加密的数据和使用的加密密钥。用于加密PII数据元素的加密算法是确定性可交换加密算法(例如,大素数幂模运算(exponentiation modulo a largeprime))。公司116 PII服务器118a进一步加密用户标签和桥标签。公司116 PII服务器118a用来加密用户标签和桥标签的算法是确定性加密算法,但是不需要是可交换的,并且在一些实施方式中,是与用于加密PII数据的算法不同的算法。可以使用对称加密算法(使用单密钥用于加密和解密两者)或非对称加密算法(使用一对密钥,一个用于加密,另一个用于相互解密)。以下描述假设对称(单密钥)算法用于每个加密动作,因此仅描述加密密钥。然而,在一些实施方式中,可以使用一个或多个非对称加密算法。
如下文更详细描述的,在过程700中,PII服务器118a、118b中的每个对PII数据进行加密,使得数据合作伙伴132 PII服务器118b获得与加密的用户标签相关联的双重加密的PII数据集和与加密的桥标签相关联的双重加密的PII数据集。数据合作伙伴132 PII服务器118b然后比较双重加密的PII数据,以识别加密的用户标签和桥标签之间的相关性。数据合作伙伴132 PII服务器118b将相关性返回给公司116 PII服务器118a,然后公司116PII服务器118a解密标签数据并具有期望的标签链接数据,而没有任何人揭露内部PII或PII映射。
在操作710处,数据合作伙伴132 PII服务器118b生成加密密钥X。在一些实施方式中,PII服务器118b总是使用相同的密钥X。在一些实施方式中,PII服务器118b为过程700的每次调用生成新的密钥X。加密密钥X由数据合作伙伴132保密,并且可以在过程700完成后丢弃。
在可以在操作710之前、之后或与操作710并行的操作715处,公司116侧的PII服务器118a生成两个不相关的加密密钥G和Z。密钥G用于加密用户标签和桥标签。在一些实施方式中,密钥G和密钥Z由PII服务器118a为不同的加密算法生成。在一些实施方式中,用于加密用户标签和桥标签的加密算法是不可交换的。加密密钥G和Z由公司116保密,并且在过程700完成后可以丢弃其中一个或两个。
在操作718处,数据合作伙伴132 PII服务器118b使用加密密钥X来单独加密每个PII数据元素。PII服务器118b生成用户的桥标签和与用户的桥标签相关联的每个PII数据元素的数据对,每个PII数据元素使用密钥X加密。因此,在数据合作伙伴132可以将桥标签映射到电子邮件地址和电话号码的情况下,PII服务器118b加密电子邮件地址以生成桥标签和加密的电子邮件地址的第一数据对,并且PII服务器118b加密电话号码以生成桥标签和加密的电话号码的第二数据对。
在操作720处,数据合作伙伴132 PII服务器118b向公司116 PII服务器118a发送{桥标签,加密的PII}的数据对。在一些实施方式中,数据合作伙伴132 PII服务器118b经由数据链路将数据发送到公司116 PII服务器118a,例如,经由TCP、SCTP或任何其他OSI层4传输协议。在一些实施方式中,数据链路是安全的网络链路,例如,使用附加的端到端加密层。在一些实施方式中,数据合作伙伴132 PII服务器118b经由对等链路将数据发送到公司116PII服务器118a。在操作725处,公司116 PII服务器118a从数据合作伙伴132 PII服务器118b接收数据对。
在操作720处由数据合作伙伴132 PII服务器118b发送的数据的一个示例是一系列数据对{BT1,E(X,PII1.1)}、{BT1,E(X,PII1.2)}、{BT2,E(X,PII2.1)},等等。在该示例中,“BT1”和“BT2”是示例桥标签,每个桥标签都与加密的PII数据元素PII1.1、PII1.2、PII2.1等配对。公司116 PII服务器118a将在操作725处接收该数据,然后拥有每个桥标签都与加密数据配对的桥标签集。因此,PII数据被混淆和保护。没有共享任何个人信息。
在操作733处,公司116 PII服务器118a使用加密密钥来加密合作伙伴数据,使用G来加密每个桥标签,并且使用Z来双重加密已经加密的合作伙伴PII数据。该操作的结果是,接收到的桥标签和加密的PII数据元素对变成加密的桥标签和双重加密的PII数据元素对:{BT,E(X,PII)}变成{E(G,BT),E(Z,E(X,PII))}。
在操作735处,公司116 PII服务器118a将双重加密的数据对发送到数据合作伙伴132 PII服务器118b。在一些实施方式中,公司116 PII服务器118a经由数据链路将数据发送到数据合作伙伴132 PII服务器118b,例如,经由TCP、SCTP或任何其他OSI层4传输协议。在一些实施方式中,数据链路是安全的网络链路,例如,使用附加的端到端加密层。在一些实施方式中,公司116 PII服务器118a经由对等链路向数据合作伙伴132 PII服务器118b发送数据。在一些实施方式中,公司116 PII服务器118a使用操作720中使用的相同链路发送数据。在一些实施方式中,在发送双重加密的数据对之前(或同时),公司116 PII服务器118a打乱(shuffle)数据对的顺序(保持每对完整)。该打乱使得公司116 PII服务器118a在操作725处以第一顺序接收的数据对集被重新排序,使得当双重加密的数据对在操作735处被返回到数据合作伙伴132 PII服务器118b时,它们以不同于第一顺序的第二顺序被返回。这种打乱进一步混淆了加密的数据和原始数据源之间的关系。在操作738处,数据合作伙伴132 PII服务器118b接收加密的(并且在一些实施方式中,打乱的)数据。
在操作735处由公司116 PII服务器118a发送的数据的一个示例是一系列数据对,基于前面的示例,在操作733处被双重加密和打乱。在这个示例中,加密和打乱产生系列{E(G,BT1),E(Z,E(X,PII1.1))}、{E(G,BT2),E(Z,E(X,PII2.1))}、{E(G,BT1),E(Z,E(X,PII1.2))}等等。数据合作伙伴132 PII服务器118b将在操作738处接收该数据,然后拥有每个桥标签都与双重加密的数据配对的加密的桥标签集。因此,PII数据仍然被混淆和保护。没有共享任何个人信息。
在可以在操作725、733和735之前、之后或与他们并行的操作743处,公司116侧的PII服务器118a使用加密密钥G、Z来加密公司116PII数据。PII服务器118a用密钥G加密内部用户标签。在一些实施方式中,PII服务器118a用备选密钥G’加密内部用户标签。在一些实施方式中,PII服务器118a生成内部用户标签到随机本地唯一值的一次性映射,并且用随机值替代对应的用户标签(保留该映射以供稍后逆转该过程时使用)。PII服务器118a生成加密的(或替代)用户标签与对应的相关联的PII数据元素的数据对。在每个数据对中,PII服务器118a使用密钥Z加密PII数据元素。在一些实施方式中,PII服务器118a进一步生成包含假用户标签和/或假PII数据元素的虚假数据对。这些附加的虚假数据有助于混淆真实数据,并可能混淆逆转加密过程的未授权尝试。
在操作745处,公司116 PII服务器118a将加密的公司数据发送到数据合作伙伴132 PII服务器118b。在一些实施方式中,公司116 PII服务器118a经由数据链路将数据发送到数据合作伙伴132 PII服务器118b,例如,经由TCP、SCTP或任何其他OSI层4传输协议。在一些实施方式中,数据链路是安全的网络链路,例如,使用附加的端到端加密层。在一些实施方式中,公司116 PII服务器118a经由对等链路向数据合作伙伴132 PII服务器118b发送数据。在一些实施方式中,公司116 PII服务器118a使用在操作720和/或操作735中使用的相同链路发送数据。在操作748处,数据合作伙伴132 PII服务器118b从公司116 PII服务器118a接收加密的公司数据对。
在操作745处由公司116 PII服务器118a发送的数据的示例是一系列数据对{E(G,UT1),E(Z,PII1.1)}、{E(G,UT3),E(Z,PII3.1)}、{E(G,UT5),E(Z,PII5.1)},等等。在该示例中,“UT1”、“UT3”和“UT5”是示例用户标签,每个用户标签都与加密的PII数据元素PII1.1、PII3.1、PII5.1等配对。数据合作伙伴132 PII服务器118b将在操作748处接收该数据,然后拥有每个用户标签都与加密的PII数据配对的加密的用户标签集。因此,PII数据被保护。没有共享任何个人信息。
在操作756处,数据合作伙伴132 PII服务器118b使用加密密钥X对在操作745中公司116 PII服务器118a发送的数据中的每个PII数据元素单独进行双重加密。例如,在操作748中,PII服务器118b可能已经接收到与PII数据元素“PII1.1”相关联的用户标签“UT1”的数据对,公司116 PII服务器118a将该PII数据元素“PII1.1”加密为E(Z,PII1.1)。该数据对可以被表示为{E(G,UT1),E(Z,PII1.1)}。在操作756处,数据合作伙伴132 PII服务器118b使用加密密钥X来双重加密PII元素,产生数据对{E(G,UT1),E(X,E(Z,PII1.1))}。
在一些实施方式中,数据合作伙伴132 PII服务器118b不是对在操作748处接收的数据进行双重加密,而是替代地对在操作738处接收的双重加密的数据应用解密过程。在解密过程中,数据合作伙伴132 PII服务器118b使用密钥X(或对应于密钥X的解密密钥)来移除在操作718处应用的原始加密。该解密过程不移除由公司116 PII服务器118a在操作733处应用的加密,并且产生由密钥Z加密的单重加密值。也就是说,Decrypt(X’,Encrypt(Z,Encrypt(X,消息)))=Encrypt(Z,消息)。然后,当数据合作伙伴132 PII服务器118b在操作748处接收到单重加密数据时,操作760处的比较可以在没有操作756的情况下进行。在一些实施方式中,仅当在操作748处接收的数据集比在操作720发送的数据大至少阈值量时,才调用该替代方案。
在操作760处,数据合作伙伴132 PII服务器118b比较来自操作738和756的双重加密的数据集。因为用于加密PII的加密算法是可交换的,所以E(X,E(Z,PII1.1))等于E(Z,E(X,PII1.1))。作为结果,数据合作伙伴132 PII服务器118b可以将在操作756处生成的E(X,E(Z,PII1.1))值与在操作738处接收的值进行比较,并且识别诸如E(Z,E(X,PII1.1))的匹配。因为在操作760处的比较是对加密的数据进行的,所以没有个人识别数据被揭露。此外,没有揭露不同类型的PII数据之间的链接。
在操作766处,数据合作伙伴132 PII服务器118b识别用户标签和桥标签之间的关联的桥链接。存在一种关联,其中加密的用户标签和加密的桥标签都与相同的双重加密的PII数据元素相关联。在一些实施方式中,在操作766处,数据合作伙伴132 PII服务器118b基于匹配的双重加密的PII元素生成链接到加密的桥标签的加密的用户标签的映射。在一些实施方式中,加密的用户标签和加密的桥标签之间将有许多相关性;在一些这样的实施方式中,数据合作伙伴132 PII服务器118b过滤掉冗余相关性。在一些实施方式中,多个标签将对应于相同PII。例如,多个用户可能有相同的地址、相同的电话号码、相同的城市、相同的年龄段等。在一些实施方式中,数据合作伙伴132PII服务器118b例如基于具有最高数量的匹配的PII元素(与其他标签相比),识别加密的用户标签和加密的桥标签之间的最强相关性。在一些实施方式中,数据合作伙伴132 PII服务器118b过滤掉导致将不止一个加密的用户标签映射到特定加密的桥标签的任何关联。在一些实施方式中,数据合作伙伴132PII服务器118b应用附加过滤器。在一些实施方式中,向公司116 PII服务器118a提供聚合数据用于分析;在一些这样的实施方式中,在没有数据合作伙伴132 PII服务器118b应用任何过滤器的情况下提供聚合数据。
在操作760处,数据合作伙伴132 PII服务器118b向公司116 PII服务器118a发送桥链接数据。在一些实施方式中,数据合作伙伴132 PII服务器118b经由数据链路将数据发送到公司116 PII服务器118a,例如,经由TCP、SCTP或任何其他OSI层4传输协议。在一些实施方式中,数据链路是安全的网络链路,例如,使用附加的端到端加密层。在一些实施方式中,数据合作伙伴132 PII服务器118b经由对等链路将数据发送到公司116 PII服务器118a。在一些实施方式中,公司116 PII服务器118a使用在操作720中使用的相同链路发送数据。在一些实施方式中,数据合作伙伴132 PII服务器118b将在操作765处生成的映射传输到公司116 PII服务器118a。在一些实施方式中,数据合作伙伴132 PII服务器118b发送作为加密的用户标签和加密的桥标签的集的链接对,例如{E(G,UT1),E(G,BT1)}。
在操作775处,公司116 PII服务器118a从数据合作伙伴132 PII服务器118b接收数据对。公司116 PII服务器118a然后可以使用密钥G(或对应于密钥G的解密密钥)解密链接。第三加密密钥G的使用提高了数据交换的安全性,并进一步保护内部链接数据不被泄露。
在许多实施方式中,收集的关于用户的数据可以被匿名化或消歧以保护隐私。在其中关于客户端设备的用户的个人信息可以被收集用于测量或用于选择第三方内容的许多实施方式中,可以向用户提供一个机会来控制可以收集个人信息(例如,关于用户的社交网络、社交动作或活动、用户的偏好或用户的当前位置的信息)的程序或特征是否这样做,或者一个机会来控制是否或如何向PII服务器(例如,PII服务器118a、118b)传输测量数据。另外,在PII服务器或链接服务器存储或使用某些PII数据之前,可以以一种或多种方式对其进行处理,从而在生成参数(例如,人口统计参数)时移除个人可识别信息。用户的身份可以被匿名化,从而不能为用户确定个人可识别信息,或者可以在获得位置信息的地方概括用户的地理位置(诸如,城市、ZIP码或州级),从而不能确定用户的特定位置。因此,用户可以控制关于他或她的信息是如何收集并由PII服务器和链接服务器使用的。
本说明书中描述的主题和操作的实施方式可以在数字电子电路中实施,或者在计算机软件、固件或硬件中实施,包括本说明书中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实施。本说明书中描述的主题的实施方式可以实施为编码在一个或多个计算机存储介质上的一个或多个计算机程序(即计算机程序指令的一个或多个模块),用于由数据处理装置执行或控制数据处理装置的操作。可替换地或附加地,程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,该传播信号被生成以编码信息,用于传输到合适的接收器装置以由数据处理装置执行。计算机存储介质可以是或被包括在计算机可读存储设备、计算机可读存储基底、随机或串行存取存储器阵列或设备、或他们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是或被包括在一个或多个分离的组件或介质(例如,多个CD、磁盘或其他存储设备)中。因此,计算机存储介质可以是有形的。
本说明书中描述的操作可以实施为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。
术语“客户端”或“服务器”包括用于处理数据的所有类型的装置、设备和机器,包括可编程处理器、计算机、片上系统或前述中的多个或组合。装置可以包括专用逻辑电路,例如,FPGA(Field Programmable Gate Array,现场可编程门阵列)或ASIC(ApplicationSpecific Integrated Circuit,专用集成电路)。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或他们中的一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型基础设施,诸如网络服务、分布式计算和网格计算基础设施。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言、声明或过程语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适合在计算环境中使用的其他单元。计算机程序可以但不需要对应于文件系统中的文件。程序可以存储在持有其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、存储在专用于所讨论的程序的单个文件中、或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码的部分的文件)。计算机程序可以被部署为在位于一个站点或跨多个站点分布并通过通信网络互连的一个或多个计算机上执行。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,该一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以实施为专用逻辑电路,例如,片上系统(System on a Chip,SOC)、现场可编程门阵列(FPGA)或专用集成电路(ASIC)。
适于执行计算机程序的处理器包括通用和专用微处理器两者,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如,磁盘、磁光盘或光盘,或者被可操作地耦合以从该一个或多个大容量存储设备接收数据或将数据传送到其、或接收和传送两者。然而,计算机不需要这样的设备。此外,计算机可以嵌入到另一设备中,例如,移动电话、个人数字助理(personal digitalassistant,PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GlobalPositioning System,GPS)接收器或便携式存储设备(例如,通用串行总线(universalserial bus,USB)闪存驱动器),仅举几个示例。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括半导体存储器设备,例如,EPROM、EEPROM和闪速存储器设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;和CD ROM以及DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或并入专用逻辑电路。
为了提供与用户的交互,本说明书中描述的主题的实施方式可以在具有显示器设备(例如,阴极射线管(cathode ray tube,CRT)、液晶显示器(liquid crystal display,LCD)、有机发光二极管(organic light emitting diode,OLED)、薄膜晶体管(thin-film,transistor,TFT)、等离子体、其他柔性配置或用于向用户显示信息的任何其他监视器)和键盘、定点设备(例如,鼠标、轨迹球等)、或触摸屏、触摸板等的计算机上实施,用户可以通过它们向计算机提供输入。也可以使用其他类型的设备来提供与用户的交互;提供给用户的反馈可以是任何形式的感官反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求,将网页发送到用户的客户端设备上的网络浏览器。
本说明书中描述的主题的实施方式可以在计算系统中实施,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面或网络浏览器的客户端计算机,用户可以通过其与本说明书中描述的主题的实施方式交互),或者一个或多个这样的后端、中间件或前端组件的任意组合。系统的组件可以通过任何形式或介质的数字数据通信相互连接,例如,通信网络。通信网络可以包括局域网(“LAN”)、广域网(“WAN”)、互联网络(例如,互联网)和对等网络(例如ad hoc对等网络)的各种组合。
虽然本说明书包含许多具体的实施方式细节,但这些不应被解释为对任何发明或可能要求保护的范围的限制,而是对特定于特定发明的特定实施方式的特征的描述。本说明书中在分离的实施方式的上下文中描述的某些特征也可以在单个实施方式中组合实施。相反,在单个实施方式的上下文中描述的各种特征也可以在多个实施方式中分离地实施或者在任何合适的子组合中实施。此外,尽管特征可以在上文被描述为以某些组合的方式起作用,并且甚至最初是这样要求保护的,但是来自所要求保护的组合中的一个或多个特征在某些情况下可以从该组合中删除,并且所要求保护的组合可以指向子组合或子组合的变体。
类似地,尽管在附图中以特定顺序描述了操作,但这不应理解为要求以所示的特定顺序或连续顺序执行这些操作,或者要求执行所有示出的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施方式中的各种系统组件的分离不应该理解为在所有实施方式中需要这种分离,并且应该理解,所描述的程序组件和系统通常可以在单个软件产品中集成在一起或者封装到多个软件产品中。
因此,已经描述了主题的特定实施方式。其他实施方式也在以下权利要求的范围内。参考一个方面或实施方式描述的特征可以在任何其他方面或实施方式中提供。在一些情况下,权利要求中列举的动作可以以不同的顺序执行,并且仍然实现期望的结果。此外,附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。在某些实施方式中,可以利用多任务或并行处理。

Claims (20)

1.一种用于链接用户标识符的方法,所述方法包括:
由链接服务器并且从公司服务器接收包括条目的第一数据结构,每个条目包括用户标签、第一散列用户信息和第二散列用户信息,每个条目与客户端设备相关联;
由链接服务器并且从合作伙伴服务器接收包括条目的第二数据结构,每个条目包括桥标签、第一散列桥信息和第二散列桥信息,每个条目与客户端设备相关联;
由所述链接服务器并且从第一数据结构检索第一数据结构的条目的第一条目;
由所述链接服务器并且从第二数据结构检索第二数据结构的条目的第一条目;
由所述链接服务器将第一数据结构的第一条目的第一散列用户信息与第二数据结构的第一条目的第一散列桥信息进行比较;和
由所述链接服务器并且响应于确定匹配,将第一数据结构的第一条目的用户标签链接到第二数据结构的第一条目的桥标签,以生成第一链接。
2.根据权利要求1所述的方法,其中,比较包括:
由所述链接服务器将第一数据结构的第一条目的第一散列用户信息解析成第一字符集;
由所述链接服务器将第二数据结构的第一条目的第一散列桥信息解析成第二字符集;和
由所述链接服务器将来自第一字符集的字符与来自第二字符集的字符进行比较。
3.根据权利要求1或2所述的方法,还包括由所述链接服务器并且向所述公司服务器提供第一链接。
4.根据权利要求1、2或3所述的方法,其中,
所述链接服务器存在于洁净室环境之中,并且其中,
所述公司服务器存在于所述洁净室环境之外,并且其中,
所述合作伙伴服务器存在于所述洁净室环境之外。
5.根据任何前述权利要求所述的方法,还包括:
由所述链接服务器移除第一数据结构的第一条目和第二数据结构的第一条目。
6.根据任何前述权利要求所述的方法,还包括:
由所述链接服务器并且从第一数据结构检索第一数据结构的条目的第二条目;
由所述链接服务器并且从第二数据结构检索第二数据结构的条目的第二条目;和
由所述链接服务器将第一数据结构的第二条目的第一散列用户信息与第二数据结构的第二条目的第一散列桥信息进行比较。
7.根据权利要求6所述的方法,还包括:
由所述链接服务器确定第一数据结构的第二条目的第一散列用户信息与第二数据结构的第二条目的第一散列桥信息之间的不匹配;和
由所述链接服务器将第一数据结构的第二条目的第二散列用户信息与第二数据结构的第二条目的第二散列桥信息进行比较。
8.根据权利要求1至5中任一项所述的方法,还包括:
由所述链接服务器确定第一数据结构的第一条目的第一散列用户信息与第二数据结构的第一条目的第一散列桥信息之间的不匹配;
由所述链接服务器并且从第二数据结构检索条目的第二条目;和
由所述链接服务器将第一数据结构的第一条目的第一散列用户信息与第二数据结构的第二条目的第一散列桥信息进行比较。
9.根据权利要求8所述的方法,还包括:
由所述链接服务器将第一数据结构的第一条目的第二散列用户信息与第二数据结构的第二条目的第二散列桥信息进行比较;
由所述链接服务器并且响应于确定匹配,将第一数据结构的第一条目的用户标签链接到第二数据结构的第一条目的桥标签,以生成第一链接;和
由所述链接服务器向所述公司服务器提供第一链接。
10.一种用于链接用户标识符的系统,所述系统包括链接服务器,所述链接服务器被配置为:
从公司服务器接收包括条目的第一数据结构,每个条目包括用户标签、第一散列用户信息和第二散列用户信息,每个条目与客户端设备的用户相关联;
从合作伙伴服务器接收包括条目的第二数据结构,每个条目包括桥标签、第一散列桥信息和第二散列桥信息,每个条目与客户端设备的用户相关联;
从第一数据结构检索第一数据结构的条目的第一条目;
从第二数据结构检索第二数据结构的条目的第一条目;
将第一数据结构的第一条目的第一散列用户信息与第二数据结构的第一条目的第一散列桥信息进行比较;和
响应于确定匹配,将第一数据结构的第一条目的用户标签链接到第二数据结构的第一条目的桥标签,以生成第一链接。
11.根据权利要求10所述的系统,所述链接服务器还被配置为:
将第一数据结构的第一条目的第一散列用户信息解析成第一字符集;
将第二数据结构的第一条目的第一散列桥信息解析成第二字符集;和
将来自第一字符集的字符与来自第二字符集的字符进行比较。
12.根据权利要求10或11所述的系统,所述链接服务器还被配置成:
向公司服务器提供第一链接。
13.根据权利要求10、11或12所述的系统,其中,
所述链接服务器存在于洁净室环境之中,并且其中,
所述公司服务器存在于所述洁净室环境之外,并且其中,
所述合作伙伴服务器存在于所述洁净室环境之外。
14.根据权利要求10、11、12或13所述的系统,所述链接服务器还被配置为:
移除第一数据结构的第一条目和第二数据结构的第一条目。
15.根据权利要求10至14中任一项所述的系统,所述链接服务器还被配置为:
从第一数据结构检索条目的第二条目;
从第二数据结构检索条目的第二条目;和
将第一数据结构的第二条目的第一散列用户信息与第二数据结构的第二条目的第一散列桥信息进行比较。
16.根据权利要求15所述的系统,所述链接服务器还被配置为:
确定第一数据结构的第二条目的第一散列用户信息与第二数据结构的第二条目的第一散列桥信息之间的不匹配;和
将第一数据结构的第二条目的第二散列用户信息与第二数据结构的第二条目的第二散列桥信息进行比较。
17.根据权利要求10至14中任一项所述的系统,所述链接服务器还被配置为:
确定第一数据结构的第一条目的第一散列用户信息与第二数据结构的第一条目的第一散列桥信息之间的不匹配;
从第二数据结构检索第二数据结构的条目的第二条目;和
将第一数据结构的第一条目的第一散列用户信息与第二数据结构的第二条目的第一散列桥信息进行比较。
18.根据权利要求17所述的系统,所述链接服务器还被配置为:
将第一数据结构的第一条目的第二散列用户信息与第二数据结构的第二条目的第二散列桥信息进行比较;
响应于确定匹配,将第一数据结构的第一条目的用户标签链接到第二数据结构的第一条目的桥标签,以生成第一链接;和
向所述公司服务器提供第一链接。
19.一种用于链接用户标识符的方法,所述方法包括:
由链接服务器并且从公司服务器接收包括条目的第一数据结构,每个条目包括用户标签、第一散列用户信息和第二散列用户信息,每个条目与客户端设备的用户相关联;
由链接服务器并且从合作伙伴服务器接收包括条目的第二数据结构,每个条目包括桥标签、第一散列桥信息和第二散列桥信息,每个条目与客户端设备的用户相关联;
由所述链接服务器基于第一数据结构和第二数据结构生成第三数据结构;和
由所述链接服务器并且向所述公司服务器提供第三数据结构。
20.根据权利要求19所述的方法,其中,所述第一数据结构包括与客户端设备相关联的第一电子邮件地址和与客户端设备相关联的第一电话号码,并且其中所述第二数据结构包括与客户端设备相关联的第二电子邮件地址和与客户端设备相关联的第二电话号码。
CN201780066681.3A 2017-01-30 2017-12-14 在不披露特定识别信息的情况下建立标识符之间的链接 Active CN109891424B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/419,726 US10558817B2 (en) 2017-01-30 2017-01-30 Establishing a link between identifiers without disclosing specific identifying information
US15/419,726 2017-01-30
PCT/US2017/066516 WO2018140146A1 (en) 2017-01-30 2017-12-14 Establishing a link between identifiers without disclosing specific identifying information

Publications (2)

Publication Number Publication Date
CN109891424A true CN109891424A (zh) 2019-06-14
CN109891424B CN109891424B (zh) 2023-07-18

Family

ID=62979618

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780066681.3A Active CN109891424B (zh) 2017-01-30 2017-12-14 在不披露特定识别信息的情况下建立标识符之间的链接

Country Status (6)

Country Link
US (1) US10558817B2 (zh)
EP (1) EP3516576A4 (zh)
JP (1) JP7165653B2 (zh)
KR (1) KR102194202B1 (zh)
CN (1) CN109891424B (zh)
WO (1) WO2018140146A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114450919A (zh) * 2020-08-14 2022-05-06 谷歌有限责任公司 在线隐私保护技术

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018160256A1 (en) * 2017-03-03 2018-09-07 Google Llc Systems and methods for establishing a link between identifiers without disclosing specific identifying information
US10341864B2 (en) 2017-03-03 2019-07-02 Verizon Patent And Licensing Inc. Network-based device registration for content distribution platforms
US20180286000A1 (en) * 2017-03-31 2018-10-04 At&T Intellectual Property I, L.P. Identity Management for Offline User Data
US11444952B2 (en) * 2018-05-03 2022-09-13 Springcoin, Inc. Synthetic identification protocol apparatus and method
US10614250B2 (en) * 2018-05-04 2020-04-07 GroupSense, Inc. Systems and methods for detecting and remedying theft of data
US10949564B2 (en) * 2018-05-07 2021-03-16 Apple Inc. Contact discovery service with privacy aspect
KR102624339B1 (ko) * 2019-02-01 2024-01-15 삼성전자주식회사 개인 정보를 관리하는 전자 장치 및 그 방법
US11106669B2 (en) * 2019-04-11 2021-08-31 Sap Se Blocking natural persons data in analytics
US20210004481A1 (en) * 2019-07-05 2021-01-07 Google Llc Systems and methods for privacy preserving determination of intersections of sets of user identifiers
CN110851869B (zh) * 2019-11-14 2023-09-19 深圳前海微众银行股份有限公司 敏感信息处理方法、设备及可读存储介质
RU2722685C2 (ru) * 2019-11-18 2020-06-03 Общество с ограниченной ответственностью "КВАНТУМ А РУС" Система управления мобильной рекламой
US11159665B2 (en) * 2020-01-29 2021-10-26 Lenovo (Singapore) Pte. Ltd. Generate user-friendly string to replace telephone number
WO2021231299A1 (en) 2020-05-13 2021-11-18 The Nielsen Company (Us), Llc Methods and apparatus to generate computer-trained machine learning models to correct computer-generated errors in audience data
US11003789B1 (en) * 2020-05-15 2021-05-11 Epsilon Data Management, LLC Data isolation and security system and method
KR102403462B1 (ko) 2020-07-22 2022-05-27 경북대학교 산학협력단 랜덤 비트 변환 송신기, 수신기, 제어장치 및 제어방법
US11805416B2 (en) * 2020-08-20 2023-10-31 Apple Inc. Systems and methods for multi-link device privacy protection
CN112115381A (zh) * 2020-09-28 2020-12-22 北京百度网讯科技有限公司 融合关系网络的构建方法、装置、电子设备和介质
WO2022238948A1 (en) * 2021-05-12 2022-11-17 Pitts Jonathan Graham Method and system for transforming personally identifiable information
JPWO2022254821A1 (zh) * 2021-06-04 2022-12-08
US11943354B2 (en) * 2021-07-20 2024-03-26 Snap Inc. Privacy safe joint identification protocol
IL292554A (en) * 2022-04-27 2023-11-01 Google Llc Cryptographically secure and privacy-preserving matching
US20230401200A1 (en) 2022-06-13 2023-12-14 Snowflake Inc. Data clean room using defined access via native applications
US11947812B2 (en) * 2022-08-29 2024-04-02 Capital One Services, Llc Systems and methods for secure storage of sensitive data

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997041657A1 (en) * 1996-05-01 1997-11-06 Mci Communications Corporation Method and apparatus for emulating a digital cross-connect switch network
US5809286A (en) * 1996-05-01 1998-09-15 Mci Communications Corporation Method and apparatus for emulating a dynamically configured digital cross-connect switch network
US5867689A (en) * 1996-05-01 1999-02-02 Mci Communications Corporation Method and apparatus for emulating a digital cross-connect switch network using a flexible topology to test MCS network management
CN101297318A (zh) * 2005-08-23 2008-10-29 株式会社理光 用于混合介质文档系统的数据组织和访问
CN103023962A (zh) * 2011-10-27 2013-04-03 微软公司 共享媒体文件的技术
CN104781813A (zh) * 2012-11-12 2015-07-15 脸谱公司 用于结构化搜索查询的语法模型
CN104904160A (zh) * 2012-11-09 2015-09-09 思杰系统有限公司 用于数据流的应用流的系统和方法
CN105794145A (zh) * 2013-11-27 2016-07-20 微软技术许可有限责任公司 服务器辅助的具有数据传输的私有集交集(psi)

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8443115B2 (en) * 2003-12-31 2013-05-14 Motorola Mobility Llc Method and system for managing access to presence attribute information
US7610627B1 (en) * 2004-01-23 2009-10-27 Acxiom Corporation Secure data exchange technique
EP2113863A4 (en) * 2007-02-21 2014-07-09 Nec Corp INFORMATION ASSOCIATION SYSTEM, USER INFORMATION ASSOCIATION PROCEDURE AND PROGRAM
US8266168B2 (en) * 2008-04-24 2012-09-11 Lexisnexis Risk & Information Analytics Group Inc. Database systems and methods for linking records and entity representations with sufficiently high confidence
US8495143B2 (en) * 2010-10-29 2013-07-23 Facebook, Inc. Inferring user profile attributes from social information
GB2488373A (en) * 2011-02-28 2012-08-29 Hsbc Holdings Plc Database ranks results based on reputational scores
JP2012247882A (ja) 2011-05-26 2012-12-13 Hitachi Ltd 情報のマッチングシステム
US9967255B2 (en) * 2012-04-09 2018-05-08 Salesforce.Com, Inc. System and method for secure distribution of communications
US20150019547A1 (en) * 2012-04-20 2015-01-15 Krishnamurthy Thalapathy Unified user profiles
US8706739B1 (en) * 2012-04-26 2014-04-22 Narus, Inc. Joining user profiles across online social networks
US20140122268A1 (en) * 2012-10-31 2014-05-01 Wal-Mart Stores, Inc. Point-Of-Sale-Customer-Identification Apparatus And Method
US9589280B2 (en) * 2013-07-17 2017-03-07 PlaceIQ, Inc. Matching anonymized user identifiers across differently anonymized data sets
US20140222561A1 (en) * 2013-02-04 2014-08-07 Facebook, Inc. Cross-Platform Advertisement Targeting
KR101307966B1 (ko) * 2013-04-19 2013-09-12 동양대학교 산학협력단 개인 정보 관리 시스템
JP5843401B2 (ja) * 2013-06-14 2016-01-13 シャープ株式会社 コンテンツ情報提供装置、コンテンツ情報提供システム、コンテンツ情報提供方法及びコンテンツ情報提供プログラム
CN104636677A (zh) 2013-11-07 2015-05-20 北京安码科技有限公司 一种基于隐私保护的数据安全存储方法
US10607726B2 (en) 2013-11-27 2020-03-31 Accenture Global Services Limited System for anonymizing and aggregating protected health information
US9189637B2 (en) * 2014-03-17 2015-11-17 Saudi Arabian Oil Company Systems, methods, and computer medium to securely transfer business transactional data between physically isolated networks having different levels of network protection utilizing barcode technology
US10956612B2 (en) * 2014-10-07 2021-03-23 Optum, Inc. Highly secure networked system and methods for storage, processing, and transmission of sensitive personal information
JP6444702B2 (ja) * 2014-11-21 2018-12-26 日本調剤株式会社 調剤情報管理システム
US11601281B2 (en) * 2016-06-27 2023-03-07 Vmware, Inc. Managing user profiles securely in a user environment
US10270746B2 (en) * 2017-01-25 2019-04-23 Facebook, Inc. People-based user synchronization within an online system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997041657A1 (en) * 1996-05-01 1997-11-06 Mci Communications Corporation Method and apparatus for emulating a digital cross-connect switch network
US5809286A (en) * 1996-05-01 1998-09-15 Mci Communications Corporation Method and apparatus for emulating a dynamically configured digital cross-connect switch network
US5867689A (en) * 1996-05-01 1999-02-02 Mci Communications Corporation Method and apparatus for emulating a digital cross-connect switch network using a flexible topology to test MCS network management
CN101297318A (zh) * 2005-08-23 2008-10-29 株式会社理光 用于混合介质文档系统的数据组织和访问
CN103023962A (zh) * 2011-10-27 2013-04-03 微软公司 共享媒体文件的技术
CN104904160A (zh) * 2012-11-09 2015-09-09 思杰系统有限公司 用于数据流的应用流的系统和方法
CN104781813A (zh) * 2012-11-12 2015-07-15 脸谱公司 用于结构化搜索查询的语法模型
CN105794145A (zh) * 2013-11-27 2016-07-20 微软技术许可有限责任公司 服务器辅助的具有数据传输的私有集交集(psi)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114450919A (zh) * 2020-08-14 2022-05-06 谷歌有限责任公司 在线隐私保护技术
CN114450919B (zh) * 2020-08-14 2023-12-19 谷歌有限责任公司 在线隐私保护方法和系统
US11968297B2 (en) 2020-08-14 2024-04-23 Google Llc Online privacy preserving techniques

Also Published As

Publication number Publication date
JP2020507826A (ja) 2020-03-12
EP3516576A1 (en) 2019-07-31
CN109891424B (zh) 2023-07-18
KR20190061078A (ko) 2019-06-04
WO2018140146A1 (en) 2018-08-02
EP3516576A4 (en) 2020-06-03
US10558817B2 (en) 2020-02-11
KR102194202B1 (ko) 2020-12-22
JP7165653B2 (ja) 2022-11-04
US20180218168A1 (en) 2018-08-02

Similar Documents

Publication Publication Date Title
CN109891424A (zh) 在不披露特定识别信息的情况下建立标识符之间的链接
US20220116219A1 (en) Zero-knowledge environment based social networking engine
US20230010452A1 (en) Zero-Knowledge Environment Based Networking Engine
US8302169B1 (en) Privacy enhancements for server-side cookies
CN105453105B (zh) 用于云数据安全的系统及方法
US20150347773A1 (en) Method and system for implementing data security policies using database classification
US11256825B2 (en) Systems and methods for securing data in electronic communications
US20160246981A1 (en) Data secrecy statistical processing system, server device for presenting statistical processing result, data input device, and program and method therefor
KR20190029509A (ko) 사용자 프로필에 사용자 정보를 안전하게 저장하기 위한 시스템 및 방법
US11157876B1 (en) Intelligent employment-based blockchain
US10198591B2 (en) Systems, methods, and devices for securing data stored in a cloud environment
US11297166B2 (en) System and method of transmitting confidential data
US11055431B2 (en) Securing data storage of personally identifiable information in a database
CN110489992A (zh) 基于大数据平台的脱敏方法及系统
US11397833B2 (en) System and method for anonymously collecting malware related data from client devices
US20150264054A1 (en) Collaboration space with event-trigger configuration views
Prasadreddy et al. A threat free architecture for privacy assurance in cloud computing
CN110266696A (zh) 一种应用于区块链的评价数据上链方法及其设备
CN110213294A (zh) 借助于区块链的社区数据上链方法及其设备
CN110245512A (zh) 应用于区块链的彩票数据上链方法及其设备
US11722518B2 (en) System for providing enhanced cryptography based response mechanism for malicious attacks
Singh et al. An artificial intelligence-enhanced methodology for automating global document management systems operations
US20230185954A1 (en) Transmission of Sensitive Data in a Communication Network
EP3971752A1 (en) System and method for anonymously collecting malware related data from client devices
Gorantla et al. Studying Logistics Data Using a Searchable Encryption-Based Data Query Algorithm for Blockchain

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant