CN117678196A - 隐私安全联合标识协议 - Google Patents

隐私安全联合标识协议 Download PDF

Info

Publication number
CN117678196A
CN117678196A CN202280050396.3A CN202280050396A CN117678196A CN 117678196 A CN117678196 A CN 117678196A CN 202280050396 A CN202280050396 A CN 202280050396A CN 117678196 A CN117678196 A CN 117678196A
Authority
CN
China
Prior art keywords
partner
host
encrypted
data set
pii
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.)
Pending
Application number
CN202280050396.3A
Other languages
English (en)
Inventor
阿普尔瓦·德斯潘德
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.)
Snap Inc
Original Assignee
Snap Inc
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 Snap Inc filed Critical Snap Inc
Publication of CN117678196A publication Critical patent/CN117678196A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0478Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

通过提供隐私安全联合标识协议来解决在维护每个数据集的隐私的同时,在不同数据集中匹配记录的技术问题,所述不同数据集例如存储代表相应的用户的记录的主机数据集和合作方数据集。隐私安全联合标识协议为两个数据集中的记录计算相应的匿名联合标识符。生成匿名联合标识符,使得已经确定代表相同用户的主机分配的标识符和合作方分配的标识符被映射至相同的匿名联合标识符。

Description

隐私安全联合标识协议
优先权申明
本申请要求于2021年7月20日提交的序列号为17/443,036的美国专利申请的优先权权益,该美国专利申请通过引用整体并入本文。
技术领域
本公开内容一般涉及数据分析。具体地,但不以限制的方式,本文中的系统和方法描述了以隐私安全的方式为数据集对生成匿名联合标识符。
背景技术
允许用户在线访问内容以及与其他用户交互内容的计算机实现的程序的普及程度不断提高。存在允许用户通过消息收发客户端与其他用户共享内容的各种计算机实现的应用。这样的计算机实现的应用中的一些应用被称为app,被直接安装至诸如电话、平板型计算机或可穿戴设备的移动设备上。应用可以具有在服务器计算机系统上提供的后端服务以执行操作,这些操作可能需要比在客户端设备处执行操作所需的合理资源更多的资源(例如,存储大量数据或执行计算上昂贵的处理)。例如,消息收发客户端和相关联的消息收发服务器系统可以被配置成允许在线用户共享内容。除了促进通过网络共享内容之外,诸如消息收发客户端的应用可以被配置成显示源自第三方提供商的外部内容。
附图说明
在附图(其不一定按比例绘制)中,相似的附图标记可以在不同视图中描述类似部件。为了容易地标识对任何特定元素或动作的讨论,附图标记中的一个或多个最高有效位是指该元素被首次引入时所在的图号。在附图中以示例而非限制的方式示出了一些示例,在附图中:
图1是根据一些示例的可以部署隐私安全联合标识协议的联网环境的图解表示。
图2是根据一些示例的被配置成提供联合标识协议的系统的图解表示。
图3是根据一些示例的用于计算主机数据集和合作方数据集的交集大小的方法的流程图。
图4是根据一些示例的呈计算机系统形式的机器的图解表示,在该机器内可以执行一组指令以使该机器执行根据一些示例的本文讨论的方法中的任何一种或更多种方法。
图5是示出可以在其中实现示例的软件架构的框图。
具体实施方式
除了提供应用本身的功能之外,计算机实现的应用可以被配置成显示外部内容。由应用显示的给定外部内容项的有效性可以通过在预定义的时间段内检测和计数定义为在给定外部内容的印象之后的成功结果的事件来衡量。指示外部内容项已经呈现给应用的用户的印象是与从其源(例如,第三方系统)取得外部内容项并将其显示在由用作递送系统的应用提供的屏幕上相关联的事件。定义为在预定义的时间段内在印象之后的成功结果的事件被称为转换。转换的示例包括指示下载第三方应用、订阅时事通讯或注册在线课程的事件,其中这样的事件发生在相关联的外部内容项显示给应用的用户之后的预定时间段内。归因处理,也仅称为归因,是生成指示在印象之后的转换的度量的处理,诸如,例如有多少用户被显示了外部内容项,随后执行了与外部内容项相关的特定活动。
归因采用隐私集合交集(PSI)协议来计算印象数据集和转换数据集的交集。PSI是以下加密技术:允许持有各自的数据集(例如,印象数据集和转换数据集)的双方比较这些数据集的加密版本,以便以双方都不会向另一方暴露任何个人可识别信息(PII)的方式计算交集。PII的一些示例包括电子邮件地址、互联网协议(IP)地址和用户的电话号码。PSI-大小(PSI-size)是安全的多方计算加密技术,其允许双方私下联合他们的私有数据集,并发现他们共有的标识符的数量,或集合交集大小。
在一些示例中,针对主机数据集(由被配置成显示源自第三方提供商的外部内容的主机系统维护的存储用户信息的数据集)和合作方数据集(由向主机系统提供外部内容的合作方系统维护的存储用户信息的数据集)执行PSI-size。主机系统为其用户分配相应的内部标识符(主机分配的标识符),合作方系统分配相应的内部标识符(合作方分配的标识符)来代表他们的用户。可以通过不同的内部标识符在主机数据集中和合作方数据集中标识相同的用户。在一些示例中,存储用户信息的数据集(无论是主机数据集还是合作方数据集)中的项都是包括映射至一组PII元素的用户标识(在主机数据集中的主机分配的标识符和在合作方数据集中的合作方分配的标识符)的记录。例如,在数据集记录中的PII元素的示例包括电子邮件地址、IP地址和设备标识。在数据集记录中的PII元素可以被散列。主机数据集与合作方数据集之间的交集是在两个数据集中代表相同用户的记录的数量。
通过提供计算匿名联合标识符的隐私安全联合标识符协议来解决在维护每个数据集的隐私的同时,在诸如主机数据集和合作方数据集的不同数据集中匹配记录的技术问题,该匿名联合标识符可用于以隐私安全的方式匹配主机数据集和合作方数据集的用户记录。生成匿名联合标识符,使得已经确定代表相同用户的主机分配的标识符和合作方分配的标识符被映射至相同的匿名联合标识符。
在一个示例中,隐私安全联合标识符协议使用由主机系统提供的加密密钥以及还使用由合作方系统提供的加密密钥,对主机数据集和合作方数据集的记录中的PII元素进行双重加密,以双重加密PII元素。因此,经双重加密的PII元素不能映射至它们相关联的主机分配的标识符或合作方分配的标识符,因为主机系统和合作方系统各自仅拥有用于产生经双重加密的PII元素的两个加密密钥中的一个加密密钥。两个数据集中的经双重加密的PII元素可供主机系统使用。在主机系统处,合作方数据集中的PII元素的每个双重加密版本用经加密的合作方分配的标识符来标记,并且主机数据集中的PII元素的每个双重加密版本用合作方生成的匿名标识符来标记,这意味着主机系统不能确定任何经双重加密的PII元素至主机分配的标识符的映射。如果PII元素(例如,散列的电子邮件地址)同时存在于主机数据集和合作方数据集中,则这样的PII元素的双重加密版本用相关联的经加密的合作方分配的标识符和相关联的合作方生成的匿名标识符来标记。然后,在主机系统处的经双重加密的PII元素以如下方式被分配有相应的匿名联合标识符:已经被确定为与相同用户相关联的经双重加密的PII元素被分配有相同的匿名联合标识符。主机数据集与合作方数据集之间的交集可以被确定为用于标记PII元素的联合标识符的数量,这些PII元素已经用相关联的经加密的合作方分配的标识符和相关联的合作方生成的匿名标识符进行了标记。
在一些示例中,主机系统向合作方系统提供在匿名联合标识符与经加密的合作方分配的标识符之间的相应映射,使得合作方系统可以用相应的匿名联合标识符来标记其合作方分配的标识符。主机系统为每个匿名联合标识符生成随机标识符,并使用生成的随机标识符以从合作方系统获得随机标识符至相应的经加密的主机分配的标识符的映射。在一些示例中,主机系统在从合作方系统获得随机标识符至相应的经加密的主机分配的标识符的映射之前丢弃经双重加密的PII元素,使得主机系统仍然无法确定任何经双重加密的PII元素至主机分配的标识符的映射。基于所获得的随机标识符至相应经加密的主机分配的标识符的映射,主机系统得到主机分配的标识符与匿名联合标识符之间的任何现有映射。在主机数据集与合作方数据集之间建立匿名联合标识符之后,可以基于主机分配的标识符与匿名联合标识符的映射来执行PSI-size。例如,主机数据集与合作方数据集之间的交集大小可以被计算为映射至主机分配的标识符或合作方生成的匿名标识符以及也映射至经加密的合作方分配的标识符的匿名联合标识符的数量。
在一些示例中,PSI-size以诸如每天或每周的预定的节奏执行。隐私安全联合标识符协议的操作示例可以描述如下。
在下面的表1中示出了包括主机分配的用户标识符与相应的PII元素之间的映射的主机数据集,该映射可以被表示为{SAID_i->[PII_{i,1},PII_{i,2},…]}。
表1
主机分配的ID PII元素
SAID1 he1,d1
SAID2 he2,d2
SAID3 he3,d3
SAID1、SAID2和SAID3是由主机系统分配的用户标识符;he1、he2和he3是散列的电子邮件地址;d1、d2和d3是设备标识符。
在下面的表2中示出了包括合作方分配的用户标识符与相应的PII元素之间的映射的合作方数据集,该映射可以表示为{AFID_j->[PII_{j,1},PII_{j,2},…]}。
表2
合作方分配的ID PII元素
AFID1 he4,d4
AFID2 he5,d5
AFID3 he2,d6,d2
AFID1、AFID2和AFID3是由合作方系统分配的用户标识符;he4、he5和he6是散列的电子邮件地址;d4、d5、d6和d2是设备标识符。
在主机系统处,协议生成表示为host_key的椭圆曲线加密(ECC)密钥和表示为l_key_host的轻量级加密密钥。在合作方系统处,协议生成表示为partner_key的ECC密钥和表示为l_key_partner的轻量级加密密钥。EncH和EncP分别使用host_key和partner_key表示加密。
使用host_key和partner_key加密标识符(identifier)产生如下公式1表示的结果。
公式1
EncH(EncP(identifier))=EncP(EncH(identifier))
EncHL和EncPL分别表示以l_key_host和l_key_partner的加密。轻量级加密的示例包括高级加密标准(AES)、伪随机函数族(PRF)、加盐哈希等等。
在主机系统处,主机数据集中的主机分配的标识符使用l_key_host加密,并且主机数据集中的PII元素使用host_key加密。使用host_key加密的主机数据集中的PII元素用使用l_key_host加密的相应的主机分配的标识符来标记。在下面表3中所示的结果映射可以表示为:
[EncL(SAID_i)->EncH(PII_{i,1}),EncH(PII_{i,2}),…]。
表3
使用host_key加密的主机数据集中的映射至使用l_key_host加密的主机数据集中的相应的主机分配的标识符的PII元素被打乱并发送至合作方系统。
在合作方系统处,协议为主机数据集中的每个经加密的主机分配的标识符生成随机标识符(在本说明书中称为合作方生成的匿名标识符),并将产生的映射进行存储,如下表4所示。
表4
经加密的主机分配的ID 合作方生成的匿名ID
EncHL(SAID1) NID1
EncHL(SAID2) NID2
EncHL(SAID3) NID3
在合作方系统处,协议将从主机数据集接收到的经加密的PII元素打乱,用partner_key对它们进行加密,并用相应的合作方生成的匿名标识符来标记它们。在下面的表5中示出了从产生的主机数据集的经双重加密的PII元素至相应的合作方生成的匿名标识符的映射。
表5
在表5中所示的映射可以表示为:
[NID_i->EncP(EncH(PII_{i,1})),EncP(EncH(PII_{i,2})),…]。
从主机数据集的经双重加密的PII元素至相应的合作方生成的匿名标识符的映射被发送至主机系统。
在合作方系统处,协议用partner_key加密合作方数据集中的PII元素,并用使用l_key_partner加密的相应的合作方分配的标识符来标记它们。在下面的表6中示出了从产生的用partner_key加密的合作方数据集的PII元素至用l_key_partner加密的相应的合作方分配的标识符的映射。
表6
在表6中所示的映射可以表示为:
[EncL(AFID_j)->EncP(PII_{j,1}),EncP(PII_{j,2}),…]。
如表6所示的从用partner_key加密的合作方数据集的PII元素至用l_key_partner加密的相应的合作方分配的标识符的映射被发送至主机系统。
主机系统从用partner_key加密的合作方数据集接收PII元素,并用host_key加密它们。因此,主机系统现在拥有从合作方数据集得到的经双重加密的PII元素以及从主机数据集得到的经双重加密的PII元素。从合作方数据集得到的经双重加密的PII元素用相应的经加密的合作方分配的标识符来标记,从主机数据集得到的经双重加密的PII元素用相应的合作方生成的匿名标识符来标记,如下表7所示。
表7
如上所述,并且还由公式1示出,首先用partner_key然后用host_key加密PII元素得到与在该PII元素首先用host_key然后用partner_key加密的情况下相同的值。在表7中,用删除线示出的行指示EncP(EncH(he2))是EncH(EncP(he2))的副本,并且EncP(EncH(d2))是EncH(EncP(d2))的副本。因为PII元素e2和d2同时出现在主机数据集和合作方数据集中,所以相关联的EncP(EncH(he2))、EncH(EncP(he2)、EncP(EncH(d2))和EncH(EncP(d2))用相关联的经加密的合作方分配的标识符EncPL(AFID3)和相关联的合作方生成的匿名标识符NID2来标记。
在主机系统处,协议将经双重加密的PII元素合并至集群,并为每个集群分配匿名联合标识符。可以基于各种聚类机制来执行将经双重加密的PII元素合并至集群,并且在一些示例中,可以利用分配给不同类型的PII元素的相应权重。在一个示例中,用相同的合作方生成的匿名标识符来标记的经双重加密的PII元素被合并至相同的集群。如果集群中的经双重加密的PII元素用经加密的合作方分配的标识符来标记,则用该经加密的合作方分配的标识符来标记的经双重加密的PII元素也被合并至该集群,如下表8所示。在表8中,用删除线示出的PII元素指示与EncH(EncP(he2))的值相同的EncP(EncH(he2))的结果和与EncH(EncP(d2))的值相同的EncP(EncH(d2))的结果。
表8
在主机系统处,协议创建匿名联合标识符至相应的经加密的合作方分配的标识符的映射,如表9所示。
表9
经加密的合作方分配的ID 匿名联合ID
EncPL(AFID1) JID4
EncPL(AFID2) JID5
EncPL(AFID3) JID2
匿名联合标识符至相应的经加密的合作方分配的标识符的映射被发送至合作方系统,该映射可以被表示为JID<>EncLP(AFID)。合作方系统现在可以得到合作方分配的标识符与相应的匿名联合标识符之间的映射。
在主机系统处,协议为每个c JID生成随机标识符RID,并将产生的映射发送至合作方系统。在下面的表10中示出了随机标识符、相应的匿名联合标识符与相应的相关联的合作方生成的标识符之间的映射,该映射可以表示为RID<>JID<>NID。
表10
合作方生成的匿名ID 匿名联合ID 随机ID
NID1 JID1 RID1
NID2 JID2 RID2
NID3 JID3 RID3
随机标识符与相应的相关联的合作方生成的标识符之间的映射被发送至合作方系统,该映射可以被表示为RID<>NID。使用随机标识符是为了防止合作方系统学习经加密的主机分配的标识符与匿名联合标识符之间的映射。
合作方系统向主机系统发送随机标识符与相应的经加密的主机分配的标识符之间的映射,该映射可以被表示为RID<>EncLH(SAID)。在一些示例中,在主机系统处接收随机标识符与相应的经加密的主机分配的标识符之间的映射之前,在主机系统处丢弃经双重加密的PII元素。
在主机系统处,协议从RID<>EncLH(SAID)得到主机分配的标识符与相应的匿名联合标识符之间的映射,该映射可以被表示为SAID<>JID。在下面的表11中示出了主机分配的标识符与相应的匿名联合标识符之间的映射。
表11
主机分配的ID 匿名联合ID
SAID1 JID1
SAID2 JID2
SAID3 JID3
如上所述,主机数据集与合作方数据集之间的交集大小可以被计算为映射至主机分配的标识符或合作方生成的匿名标识符以及还映射至经加密的合作方分配的标识符的匿名联合标识符的数量。在当前示例中,可以从表9和表11中看到,一个匿名联合标识符JID2出现在这两个表中,因此交集大小是1。
隐私安全联合标识可以以预定的节奏执行,使用针对每个节奏的新生成的联合标识符。将注意到,本文描述的方法可以有益地用于以隐私安全的方式确定两个数据集的交集的任何上下文。
联网计算环境
图1是示出用于通过网络来交换数据(例如,消息及相关联的内容)的示例联网环境100的框图。联网环境100包括客户端设备102的多个实例,多个实例中的每个实例托管包括消息收发客户端104和其他应用的多个应用。每个消息收发客户端104经由网络112(例如,因特网)通信地耦接至(例如,托管在相应的其他客户端设备102上的)消息收发客户端104的其他实例、消息收发服务器系统108以及第三方服务器110。消息收发客户端104还可以使用应用程序接口(API)与本地托管的应用进行通信。
消息收发客户端104能够经由网络112与其他消息收发客户端104和消息收发服务器系统108进行通信并且交换数据。在消息收发客户端104之间以及在消息收发客户端104与消息收发服务器系统108之间交换的数据包括功能(例如,用于激活功能的命令)以及净荷数据(例如,文本、音频、视频或其他多媒体数据)。消息收发客户端104被示为显示可以由第三方服务器110提供的外部内容105。在一些示例中,外部内容105是用户可能感兴趣的信息和/或第三方服务器110的提供商希望向更广泛的受众提供的信息。
消息收发服务器系统108经由网络112向特定消息收发客户端104提供服务器侧功能。虽然联网环境100的某些功能在本文被描述为由消息收发客户端104或由消息收发服务器系统108执行,但是某些功能的位置是在消息收发客户端104内还是在消息收发服务器系统108内可以是设计选择。例如,在技术上可能优选是:最初将某些技术和功能部署在消息收发服务器系统108内,但是后面将该技术和功能迁移至客户端设备102具有足够处理能力的消息收发客户端104。
消息收发服务器系统108支持向消息收发客户端104提供的各种服务和操作。这样的操作包括向消息收发客户端104发送数据、从消息收发客户端104接收数据以及对由消息收发客户端104生成的数据进行处理。作为示例,该数据可以包括消息内容、客户端设备信息、地理位置信息、媒体增强和覆盖、消息内容持久化条件、社交网络信息和实况事件信息。通过经由消息收发客户端104的用户界面(UI)可用的功能来激活和控制联网环境100内的数据交换。
现在具体地转至消息收发服务器系统108,应用程序接口(API)服务器116耦接至应用服务器114并且向应用服务器114提供编程接口。应用服务器114通信地耦接至数据库服务器120,该数据库服务器120有助于对数据库126进行访问,该数据库126存储与由应用服务器114处理的消息相关联的数据。类似地,web服务器128耦接至应用服务器114并且向应用服务器114提供基于web的接口。为此,web服务器128通过超文本传输协议(HTTP)和若干其他相关协议处理传入的网络请求。
应用程序接口(API)服务器116在客户端设备102与应用服务器114之间接收和发送消息数据(例如,命令和消息净荷)。具体地,应用程序接口(API)服务器116提供一组接口(例如,例程和协议),该组接口可以由消息收发客户端104调用或查询以激活应用服务器114的功能。应用程序接口(API)服务器116公开由应用服务器114支持的各种功能,包括:帐户注册;登录功能;经由应用服务器114将消息从特定消息收发客户端104发送至另一消息收发客户端104;将媒体文件(例如,图像或视频)从消息收发客户端104发送至消息收发服务器118并用于另一消息收发客户端104的可能访问;设置媒体数据集合(例如,故事);检索客户端设备102的用户的朋友列表;检索这样的集合;检索消息和内容;在实体图(例如,社交图)中添加和删除实体(例如,朋友);在社交图中定位朋友;以及打开(例如,与消息收发客户端104相关的)应用事件。
应用服务器114托管多个服务器应用和子系统,包括例如消息收发服务器118、归因服务器122和社交网络服务器124。消息收发服务器118实现多个消息处理技术和功能,特别是与从消息收发客户端104的多个实例接收到的消息中包括的内容(例如,文本和多媒体内容)的汇总和其他处理相关的消息处理技术和功能。如将进一步详细描述的,来自多个源的文本和媒体内容可以被汇总成内容的集合(例如,称为故事或图库(gallery))。然后,使这些集合对消息收发客户端104可用。鉴于数据的其他处理器和存储器密集型处理的硬件要求,也可以由消息收发服务器118在服务器侧执行这样的处理。
应用服务器114还包括被配置成使用本文中描述的隐私安全联合标识协议来促进隐私安全归因处理的归因服务器122。
社交网络服务器124支持各种社交联网功能和服务并使这些功能和服务对消息收发服务器118可用。为此,社交网络服务器124维护并且访问数据库126内的实体图。由社交网络服务器124支持的功能和服务的示例包括识别联网环境100的特定用户与之有关系或该特定用户正在“关注”的其他用户,并且还包括识别特定用户的兴趣和其他实体。
返回至消息收发客户端104,外部资源(例如,安装在客户端设备102上的应用或在消息收发客户端104的web视图中执行的web视图app)的特征和功能经由消息收发客户端104的接口对用户可用。外部资源通常由第三方提供,但是也可以由消息收发客户端104的创建者或提供者提供。消息收发客户端104接收用户对启动或访问这样的外部资源的特征的选项的选择。
消息收发客户端104可以向客户端设备102的用户或与这样的用户有关的其他用户(例如,“朋友”)通知一个或更多个外部资源中发生的活动。例如,消息收发客户端104可以向消息收发客户端104中的对话(例如,聊天会话)中的参与者提供与用户组中的一个或更多个成员当前或最近使用外部资源有关的通知。可以邀请一个或更多个用户加入活跃的外部资源或者启动(该朋友组中)最近使用过但当前不活跃的外部资源。外部资源可以向对话中的各自使用相应的消息收发客户端104的参与者提供与进入聊天会话中的用户组中的一个或更多个成员分享外部资源中的项、状况、状态或定位的能力。共享项可以是交互式聊天卡,聊天的成员可以利用该交互式聊天卡进行交互,以例如启动对应的外部资源、查看外部资源内的特定信息或者将聊天的成员带到外部资源内的特定位置或状态。在给定的外部资源内,可以在消息收发客户端104上向用户发送响应消息。外部资源可以基于外部资源的当前上下文将不同的媒体项选择性地包括在响应中。
图1中还示出了开发者工具服务器125。开发者工具服务器125维护一个或更多个软件开发者工具包(SDK),该软件开发者工具包允许跨第三方应用集成消息服务器系统提供的一些特征。这些特征包括例如由归因服务器122提供的隐私安全联合标识协议。受益于集成由归因服务器122提供的隐私安全联合标识协议的第三方应用的示例是维护用户记录的合作方数据集的合作方系统。
系统架构
图2是包含多个子系统的系统200的框图,这些子系统在客户端侧由消息收发客户端104支持并且在服务器侧由应用服务器114支持。这些子系统包括例如短暂定时器系统202、集合管理系统204、归因服务208、以及外部资源系统214。
短暂定时器系统202负责实施消息收发客户端104和消息收发服务器118对内容的临时或时间受限访问。短暂定时器系统202包含多个定时器,这些定时器基于与消息或消息的集合(例如,故事)相关联的持续时间和显示参数,选择性地实现经由消息收发客户端104对消息和相关联的内容进行访问(例如,用于呈现和显示)。
集合管理系统204负责管理媒体的合集或集合(例如,文本、图像视频和音频数据的集合)。内容(例如,消息,包括图像、视频、文本和音频)的集合可以被组织成“事件图库”或“事件故事”。这样的集合可以在指定的时间段内(诸如,与内容相关的事件的持续时间内)可用。例如,可以使与音乐会有关的内容在音乐会的持续时间内作为“故事”可用。集合管理系统204还可以负责向消息收发客户端104的用户界面发布提供特定集合的存在的通知的图标。在一些示例中,响应于检测到在消息收发客户端104呈现特定集合的请求,由第三方服务器110提供的外部内容由消息收发客户端104显示。指示在消息收发客户端104处呈现外部内容项之后的转换的度量由归因服务208生成。
归因服务208在图2中被示为跨越应用服务器114和第三方服务器110。归因服务208提供促进本文描述的隐私安全联合标识协议的各种功能,该隐私安全联合标识协议可以由第三方服务器110借助于软件开发工具包(SDK)提供的外部资源利用。在一些示例中,由外部资源系统214提供被配置成支持隐私安全联合标识协议的SDK。诸如上述合作方系统的外部资源利用SDK来执行上述由合作方系统执行的操作。为了将SDK的功能集成至外部资源中,由第三方服务器110从消息收发服务器118下载SDK或者由第三方服务器110以其他方式来接收SDK。一旦被下载或接收,SDK就被包括为诸如合作方系统的外部资源的应用代码的一部分。外部资源的代码然后可以调用或激活SDK的某些功能以将归因服务208的特征集成至外部资源中。
处理流程
图3是根据一些示例的用于隐私安全匿名化身份匹配的方法300的流程图。方法300可以通过处理逻辑来执行,该处理逻辑可以包括硬件(例如,专用逻辑、可编程逻辑、微代码等)、软件或两者的组合。在一个示例中,一些处理逻辑驻留在图1的应用服务器114处。
尽管描述的流程图可以将操作示为顺序过程,但是这些操作中的许多操作可以被并行或同时执行。此外,可以对操作的顺序进行重新排列。在过程的操作完成时,过程被终止。过程可以对应于方法、程序、算法等。方法的操作可以全部或部分地执行,可以结合其他方法中的一些或全部操作来执行,并且可以由任何数目的不同系统(诸如本文描述的系统)或其任何部分(诸如,包括在任何系统中的处理器)来执行。方法300从操作310开始。
在操作310,主机系统存储主机数据集(例如,由被配置成显示源自第三方提供商的外部内容的主机系统维护的存储用户信息的数据集),并且与第三方提供商相关联的合作方系统存储合作方数据集(由向主机系统提供外部内容的合作方系统维护的存储用户信息的数据集)。如上所述,主机系统向其用户分配相应的主机分配的标识符,合作方系统分配相应的合作方分配的标识符来代表他们的用户。可以通过不同的内部标识符在主机数据集中和合作方数据集中标识相同的用户。在存储用户信息的数据集(无论是主机数据集还是合作方数据集)中的项都是包括映射至一组PII元素的用户标识(在主机数据集中的主机分配的标识符和在合作方数据集中的合作方分配的标识符)的记录。例如,数据集记录中的PII元素的示例包括电子邮件地址、IP地址和设备标识。数据集记录中的PII元素可以被散列。
在操作320,在主机系统处生成主机加密密钥,并且在合作方系统处生成合作方加密密钥。
在操作330,通过使用主机加密密钥和合作方加密密钥对主机数据集的记录和合作方数据集的记录中的相应PII元素进行双重加密来产生经双重加密的PII元素。从合作方数据集得到的经双重加密的PII元素用相应的相关联的经加密的合作方分配的标识符进行标记。从主机数据集得到的经双重加密的PII元素用相应的相关联的合作方生成的匿名标识符进行标记。
在操作340,基于相关联的经加密的合作方分配的标识符和相关联的合作方生成的匿名标识符,为经双重加密的PII元素中的每个PII元素建立相应的匿名联合标识符。
在操作350,相应的匿名联合标识符用于计算主机数据集和合作方数据集的交集大小。主机数据集和伙伴数据集的交集大小是两个数据集中代表相同用户的记录的数量。
机器结构
图4是机器400的图解表示,在该机器400内可以执行用于使机器400执行本文所讨论的方法中的任何一种或更多种方法的指令408(例如,软件、程序、应用、小程序、app或其他可执行代码)。例如,指令408可以使机器400执行本文中描述的方法中的任何一种或更多种方法。指令408将通用的未编程的机器400变换成被编程为以所描述的方式执行所描述和所示出的功能的特定机器400。机器400可以作为独立设备操作,或者可以耦接(例如,联网)至其他机器。在联网部署中,机器400可以在服务器客户端网络环境中以服务器机器或客户端机器的身份来操作,或者在对等(或分布式)网络环境中作为对等机器来操作。机器400可以包括但不限于:服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能电器)、其他智能设备、web装置、网络路由器、网络交换机、网络桥接器或能够顺序地或以其他方式执行指定要由机器400采取的动作的指令408的任何机器。此外,虽然仅示出了单个机器400,但是术语“机器”还应被认为包括单独地或联合地执行指令408以执行本文中讨论的任何一种或更多种方法的机器的集合。例如,机器400可以包括客户端设备102或者形成消息收发服务器系统108的一部分的若干服务器设备中的任何一个。在一些示例中,机器400还可以包括客户端系统和服务器系统两者,其中特定方法或算法的某些操作在服务器侧执行,并且所述特定方法或算法的某些操作在客户端侧执行。
机器400可以包括可以被配置成经由总线440彼此通信的处理器402、存储器404和输入/输出I/O部件438。在示例中,处理器402(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)、另外的处理器或其任何合适的组合)可以包括例如执行指令408的处理器406和处理器410。术语“处理器”旨在包括多核处理器,所述多核处理器可以包括可以同时执行指令的两个或更多个独立的处理器(有时被称为“核”)。尽管图4示出了多个处理器402,但是机器400可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器、或者其任何组合。
存储器404包括主存储器412、静态存储器414以及存储单元416,其均可由处理器402经由总线440访问。主存储器404、静态存储器414和存储单元416存储体现本文所描述的方法或功能中的任何一种或更多种的指令408。指令408在其由机器400执行期间还可以完全地或部分地驻留在主存储器412内、驻留在静态存储器414内、驻留在存储单元414内的机器可读介质418内、驻留在处理器402中的至少一个处理器内(例如,在处理器的高速缓存存储器内)或者驻留在其任何合适的组合内。
I/O部件438可以包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量结果等的各种部件。包括在特定机器中的特定I/O部件438将取决于机器的类型。例如,便携式机器诸如移动电话可以包括触摸输入设备或其他这样的输入机构,而无头服务器机器将很可能不包括这样的触摸输入设备。应当理解,I/O部件438可以包括图4中未示出的许多其他部件。在各种示例中,I/O部件438可以包括用户输出部件424和用户输入部件426。用户输出部件424可以包括视觉部件(例如,显示器诸如等离子显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、声学部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号发生器等。用户输入部件426可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于点的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他指向仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸姿势的位置和力的触摸屏或其他触觉输入部件)、音频输入部件(例如,麦克风)等。
在其他示例中,I/O部件438可以包括生物计量部件428、运动部件430、环境部件432、或定位部件434以及各种其他部件。例如,生物计量部件428包括用于检测表达(例如,手表达、面部表达、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。运动部件430包括加速度传感器部件(例如,加速度计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)。
环境部件432包括例如一个或更多个摄像装置(具有静止图像/照片和视频能力)、照明传感器部件(例如,光度计)、温度传感器部件(例如,检测环境温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、声学传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近传感器部件(例如,检测附近对象的红外传感器)、气体传感器(例如,为了安全而检测危险气体的浓度或者测量大气中的污染物的气体检测传感器),或者可以提供与周围物理环境对应的指示、测量或信号的其他部件。
关于摄像装置,客户端设备102可以具有摄像装置系统,该摄像装置系统包括例如在客户端设备102的前表面上的前置摄像装置和在客户端设备102的后表面上的后置摄像装置。前置摄像装置可以例如用于捕获客户端设备102的用户的静止图像和视频(例如,“自拍”),该静止图像和视频然后可以用上述增强数据(例如,过滤器)进行增强。例如,后置摄像装置可以用于以更常规的摄像装置模式捕获静止图像和视频,其中,这些图像类似地用增强数据进行增强。除了前置摄像装置和后置摄像装置之外,客户端设备102还可以包括用于捕获360°照片和视频的360°的摄像装置。
此外,客户端设备102的摄像装置系统可以包括双后置摄像装置(例如,主摄像装置以及深度感测摄像装置),或者甚至在客户端设备102的前后侧包括三重、四重或五重后置摄像装置配置。例如,这些多个摄像装置系统可以包括广角摄像装置、超广角摄像装置、长焦摄像装置、微距摄像装置和深度传感器。
定位部件434包括位置传感器部件(例如,GPS接收器部件)、海拔高度传感器部件(例如,检测气压的高度计或气压计,根据气压可以得到海拔高度)、取向传感器部件(例如,磁力计)等。
可以使用各种各样的技术来实现通信。I/O部件438还包括通信部件436,该通信部件436可操作以经由相应的耦接或连接将机器400耦接至网络420或设备422。例如,通信部件436可以包括与网络420对接的网络接口部件或其他合适的设备。在另外的示例中,通信部件436可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(NFC)部件、部件(例如,/>低功耗)、/>部件以及经由其他模态提供通信的其他通信部件。设备422可以是另一机器或各种外围设备中的任何外围设备(例如,经由USB耦接的外围设备)。
此外,通信部件636可以检测标识符或包括能够进行操作以检测标识符的部件。例如,通信部件636可以包括射频标识(RFID)标签阅读器部件、NFC智能标签检测部件、光学阅读器部件(例如,用于检测一维条形码诸如通用产品代码(UPC)条形码,多维条形码诸如快速响应(QR)码、Aztec码、数据矩阵、数据符号(Dataglyph)、最大码(MaxiCode)、PDF417、超码(Ultra Code)、UCC RSS-2D条形码以及其他光学码的光学传感器)或声学检测部件(例如,用于识别所标记的音频信号的麦克风)。此外,可以经由通信部件436得出各种信息,例如经由因特网协议(IP)地理位置得出位置、经由信号三角测量得出位置、经由检测可以指示特定位置的NFC信标信号得出位置等。
各种存储器(例如,主存储器412、静态存储器414以及处理器402的存储器)以及存储单元416可以存储由本文中所描述的方法或功能中的任何一种或更多种方法或功能实现或使用的一组或更多组指令和数据结构(例如,软件)。在由处理器402执行的情况下,这些指令(例如,指令408)使各种操作实现所公开的示例。
可以利用传输介质经由网络接口设备(例如,通信部件436中包括的网络接口部件)并且使用若干公知的传输协议中的任何一种传输协议(例如,超文本传输协议(HTTP)),通过网络420来发送或接收指令408。类似地,可以利用传输介质经由与设备422的耦接(例如,对等耦接)来发送或接收指令408。
术语表
“载波信号”是指能够存储、编码或携载用于由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或其他无形介质以促进这样的指令的传送。可以经由网络接口设备利用传输介质在网络上发送或接收指令。
“客户端设备”是指与通信网络接口以从一个或更多个服务器系统或其他客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、桌上型计算机、膝上型计算机、便携式数字助理(PDA)、智能电话、平板计算机、超级本、上网本、笔记本电脑、多处理器系统、基于微处理器或可编程消费电子产品、游戏控制台、机顶盒或用户可以用于访问网络的任何其他通信设备。
“通信网络”是指网络的一个或更多个部分,网络可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、网络、其他类型的网络或两个或更多个这样的网络的组合。例如,网络或网络的一部分可以包括无线网络或蜂窝网络,并且耦接可以是码分多址(CDMA)连接、全局移动通信系统(GSM)连接或其他类型的蜂窝或无线耦接。在该示例中,耦接可以实现各种类型的数据传输技术中的任何数据传输技术,诸如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线电服务(GPRS)技术、GSM演进的增强数据速率(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动通讯系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、由各种标准设置组织定义的其他数据传输技术、其他长距离协议或其他数据传输技术。
“部件”是指具有边界的设备、物理实体或逻辑,该边界由功能或子例程调用、分支点、API或者对特定处理或控制功能提供分区或模块化的其他技术定义。部件可以经由它们的接口与其他部件对接以执行机器过程。部件可以是被设计用于与其他部件一起使用的经封装的功能硬件单元,并且是通常执行相关功能中的特定功能的程序的一部分。部件可以构成软件部件(例如,在机器可读介质上实施的代码)或硬件部件。“硬件部件”是能够执行某些操作并且可以以某种物理方式来配置或布置的有形单元。在各种示例性示例中,可以通过软件(例如,应用或应用部分)将一个或更多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或者计算机系统的一个或更多个硬件部件(例如,处理器或处理器组)配置为进行操作以执行本文中所描述的某些操作的硬件部件。也可以机械地、电子地或其任何合适的组合来实现硬件部件。例如,硬件部件可以包括被永久配置成执行某些操作的专用电路或逻辑。硬件部件可以是专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件部件还可以包括通过软件临时配置成执行某些操作的可编程逻辑或电路。例如,硬件部件可以包括由通用处理器或其他可编程处理器执行的软件。一旦通过这样的软件而配置,硬件部件就成为被唯一地定制成执行所配置功能的特定机器(或机器的特定部件),而不再是通用处理器。将认识到,可以出于成本和时间考虑来决定是机械地在专用且永久配置的电路中实现硬件部件还是在临时配置(例如,通过软件配置)的电路中实现硬件部件。因此,短语“硬件部件”(或“硬件实现的部件”)应当被理解成包含有形实体,即被物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)成以某种方式进行操作或者执行本文中描述的某些操作的实体。考虑硬件部件被临时配置(例如,被编程)的实施方式,无需在任一时刻对硬件部件中的每一个进行配置或实例化。例如,在硬件部件包括通过软件进行配置而变成专用处理器的通用处理器的情况下,可以在不同时间处将该通用处理器分别配置成不同的专用处理器(例如,包括不同的硬件部件)。软件相应地配置一个或多个特定处理器,以例如在一个时刻处构成特定硬件部件并且在不同时刻处构成不同的硬件部件。硬件部件可以向其他硬件部件提供信息并且从其他硬件部件接收信息。因此,所描述的硬件部件可以被认为是通信地耦接的。在同时存在多个硬件部件的情况下,可以通过在硬件部件中的两个或更多个硬件部件之间或之中的信号传输(例如,通过适当的电路和总线)来实现通信。在多个硬件部件在不同时间处被配置或被实例化的示例中,可以例如通过将信息存储在多个硬件部件具有访问权限的存储器结构中并且在该存储器结构中检索信息来实现这样的硬件部件之间的通信。例如,一个硬件部件可以执行操作并且将该操作的输出存储在与其通信地耦接的存储器设备中。然后,其他硬件部件可以在随后的时间处访问该存储器设备以检索所存储的输出并对其进行处理。硬件部件还可以发起与输入设备或输出设备的通信,并且可以对资源(例如,信息的集合)进行操作。本文描述的示例方法的各种操作可以至少部分地由被临时配置(例如,通过软件)或被永久配置成执行相关操作的一个或更多个处理器来执行。无论是被临时地配置还是永久地配置,这样的处理器可以构成进行操作以执行本文中所描述的一个或更多个操作或功能的处理器实现的部件。如本文所使用的,“处理器实现的部件”是指使用一个或更多个处理器实现的硬件部件。类似地,在本文中描述的方法可以至少部分地由处理器实现,其中特定的一个或多个处理器是硬件的示例。例如,方法的至少一些操作可以由一个或更多个处理器402或处理器实现的部件来执行。此外,一个或更多个处理器还可以进行操作以支持“云计算”环境中的相关操作的执行或者作为“软件即服务”(SaaS)操作。例如,操作中的至少一些可以由一组计算机(作为包括处理器的机器的示例)来执行,其中这些操作可以经由网络(例如,因特网)并且经由一个或更多个适当的接口(例如,API)来访问。某些操作的执行可以分布在处理器之间,不是仅驻留在单个机器内,而是被跨多个机器部署。在一些示例性示例中,处理器或处理器实现的部件可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器群内)。在其他示例性示例中,处理器或处理器实现的部件可以跨多个地理位置分布。
“计算机可读存储介质”是指机器存储介质和传输介质二者。因此,术语包括存储设备/介质和载波/调制数据信号二者。术语“机器可读介质”、“计算机可读介质”和“设备可读介质”意指相同的事物并且可以在本公开内容中互换使用。
“机器存储介质”是指存储可执行指令、例程和数据的单个或多个存储设备和介质(例如,集中式或分布式数据库,以及相关联的高速缓存和服务器)。因此,该术语应当被视为包括但不限于固态存储器以及光学和磁介质,包括处理器内部或外部的存储器。机器存储介质、计算机存储介质和设备存储介质的具体示例包括:非易失性存储器,包括例如半导体存储器设备,例如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、FPGA和闪存设备;磁盘,例如内部硬盘和可移除盘;磁光盘;以及CD-ROM和DVD-ROM盘。术语“机器存储介质”、“设备存储介质”、“计算机存储介质”意指相同的事物并且可以在本公开内容中互换地使用。术语“机器存储介质”、“计算机存储介质”和“设备存储介质”明确地排除了载波、调制数据信号和其他这样的介质,其中的至少一些被涵盖在术语“信号介质”中。
“非暂态计算机可读存储介质”是指能够存储、编码或携载由机器执行的指令的有形介质。
“信号介质”是指能够存储、编码或携载由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或有利于软件或数据的通信的其他无形介质。术语“信号介质”应当被视为包括任何形式的调制数据信号、载波等。术语“调制数据信号”指的是其特性中的一个或更多个特性被以将信息编码在该信号中的方式来设置或改变的信号。术语“传输介质”和“信号介质”指的是相同的事物,并且可以在本公开内容中互换使用。
软件架构
图5是示出可以安装在本文中描述的设备中的任何一个或更多个设备上的软件架构504的框图500。软件架构504由硬件支持,该硬件例如是包括处理器520、存储器526和I/O部件538的机器502。在该示例中,软件架构504可以被概念化为层的堆栈,其中每个层提供特定功能。软件架构504包括下述层,例如操作系统512、库510、框架508和应用506。在操作上,应用506通过软件堆栈来激活API调用550并且响应于API调用550而接收消息552。
操作系统512管理硬件资源并提供公共服务。操作系统512包括例如:核514、服务516以及驱动器522。核514用作硬件与其他软件层之间的抽象层。例如,核514提供存储器管理、处理器管理(例如,调度)、部件管理、联网和安全设置等功能。服务516可以针对其他软件层提供其他公共服务。驱动器522负责控制底层硬件或与底层硬件对接(interface)。例如,驱动器522可以包括显示驱动器、摄像装置驱动器、低能耗驱动器、闪存驱动器、串行通信驱动器(例如,USB驱动器)、驱动器、音频驱动器、电力管理驱动器等。
库510提供由应用506使用的共用低级基础设施。库510可以包括系统库518(例如,C标准库),该系统库518提供诸如存储器分配功能、字符串操纵功能、数学功能等的功能。此外,库510可以包括API库524,例如媒体库(例如,用于支持各种媒体格式的呈现和操纵的库,所述各种媒体格式例如运动图像专家组-4(MPEG4)、高级视频编码(H.264或AVC)、运动图像专家组层-3(MP3)、高级音频编码(AAC)、自适应多速率(AMR)音频编解码器、联合图像专家组(JPEG或JPG)或便携式网络图形(PNG))、图形库(例如,用于在显示器上的图形内容中以二维(2D)和三维(3D)进行呈现的OpenGL框架)、数据库库(例如,提供各种关系数据库功能的SQLite)、web库(例如,提供web浏览功能的WebKit)等。库510还可以包括各种其他库528,以向应用506提供许多其他API。
框架508提供由应用506使用的共用高级基础设施。例如,框架508提供各种图形用户界面(GUI)功能、高级资源管理和高级定位服务。框架508可以提供可以由应用506使用的广泛的其他API,其中一些API可以特定于特定操作系统或平台。
在示例中,应用506可以包括家庭应用536、联系人应用530、浏览器应用532、书籍阅读器应用534、位置应用542、媒体应用544、消息收发应用546、游戏应用548和诸如第三方应用540的各种各样的其他应用。应用506是执行程序中定义的功能的程序。可以采用各种编程语言来创建以各种方式构造的应用506中的一个或更多个,所述编程语言例如面向对象的编程语言(例如,Objective-C、Java或C++)或过程编程语言(例如,C或汇编语言)。在特定示例中,第三方应用540(例如,由特定平台的供应商之外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用)可以是在诸如IOSTM、ANDROIDTMPhone的移动操作系统或其他移动操作系统上运行的移动软件。在该示例中,第三方应用540可以激活由操作系统512提供的API调用550以促进本文中描述的功能。
术语表
“载波信号”是指能够存储、编码或携载用于由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或其他无形介质以促进这样的指令的传送。可以经由网络接口设备利用传输介质在网络上发送或接收指令。
“客户端设备”是指与通信网络接口以从一个或更多个服务器系统或其他客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、桌上型计算机、膝上型计算机、便携式数字助理(PDA)、智能电话、平板计算机、超级本、上网本、笔记本电脑、多处理器系统、基于微处理器或可编程消费电子产品、游戏控制台、机顶盒或用户可以用于访问网络的任何其他通信设备。
“通信网络”是指网络的一个或更多个部分,网络可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、网络、其他类型的网络或两个或更多个这样的网络的组合。例如,网络或网络的一部分可以包括无线网络或蜂窝网络,并且耦接可以是码分多址(CDMA)连接、全局移动通信系统(GSM)连接或其他类型的蜂窝或无线耦接。在该示例中,耦接可以实现各种类型的数据传输技术中的任何数据传输技术,诸如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线电服务(GPRS)技术、GSM演进的增强数据速率(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动通讯系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、由各种标准设置组织定义的其他数据传输技术、其他长距离协议或其他数据传输技术。
“部件”是指具有边界的设备、物理实体或逻辑,该边界由功能或子例程调用、分支点、API或者对特定处理或控制功能提供分区或模块化的其他技术定义。部件可以经由它们的接口与其他部件对接以执行机器过程。部件可以是被设计用于与其他部件一起使用的经封装的功能硬件单元,并且是通常执行相关功能中的特定功能的程序的一部分。部件可以构成软件部件(例如,在机器可读介质上实施的代码)或硬件部件。“硬件部件”是能够执行某些操作并且可以以某种物理方式来配置或布置的有形单元。在各种示例中,可以通过软件(例如,应用或应用部分)将一个或更多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或者计算机系统的一个或更多个硬件部件(例如,处理器或处理器组)配置为进行操作以执行本文中所描述的某些操作的硬件部件。也可以机械地、电子地或其任何合适的组合来实现硬件部件。例如,硬件部件可以包括被永久配置成执行某些操作的专用电路或逻辑。硬件部件可以是专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件部件还可以包括通过软件临时配置成执行某些操作的可编程逻辑或电路。例如,硬件部件可以包括由通用处理器或其他可编程处理器执行的软件。一旦通过这样的软件而配置,硬件部件就成为被唯一地定制成执行所配置功能的特定机器(或机器的特定部件),而不再是通用处理器。将认识到,可以出于成本和时间考虑来决定是机械地在专用且永久配置的电路中实现硬件部件还是在临时配置(例如,通过软件配置)的电路中实现硬件部件。因此,短语“硬件部件”(或“硬件实现的部件”)应当被理解成包含有形实体,即被物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)成以某种方式进行操作或者执行本文中描述的某些操作的实体。考虑硬件部件被临时配置(例如,被编程)的示例,无需在任一时刻对硬件部件中的每一个进行配置或实例化。例如,在硬件部件包括通过软件进行配置而变成专用处理器的通用处理器的情况下,可以在不同时间处将该通用处理器分别配置成不同的专用处理器(例如,包括不同的硬件部件)。软件相应地配置一个或多个特定处理器,以例如在一个时刻处构成特定硬件部件并且在不同时刻处构成不同的硬件部件。硬件部件可以向其他硬件部件提供信息并且从其他硬件部件接收信息。因此,所描述的硬件部件可以被认为是通信地耦接的。在同时存在多个硬件部件的情况下,可以通过在硬件部件中的两个或更多个硬件部件之间或之中的信号传输(例如,通过适当的电路和总线)来实现通信。在多个硬件部件在不同时间处被配置或被实例化的示例中,可以例如通过将信息存储在多个硬件部件具有访问权限的存储器结构中并且在该存储器结构中检索信息来实现这样的硬件部件之间的通信。例如,一个硬件部件可以执行操作并且将该操作的输出存储在与其通信地耦接的存储器设备中。然后,其他硬件部件可以在随后的时间处访问该存储器设备以检索所存储的输出并对其进行处理。硬件部件还可以发起与输入设备或输出设备的通信,并且可以对资源(例如,信息的集合)进行操作。本文描述的示例方法的各种操作可以至少部分地由被临时配置(例如,通过软件)或被永久配置成执行相关操作的一个或更多个处理器来执行。无论是被临时地配置还是永久地配置,这样的处理器可以构成进行操作以执行本文中所描述的一个或更多个操作或功能的处理器实现的部件。如本文所使用的,“处理器实现的部件”是指使用一个或更多个处理器实现的硬件部件。类似地,在本文中描述的方法可以至少部分地由处理器实现,其中特定的一个或多个处理器是硬件的示例。例如,方法的至少一些操作可以由一个或更多个处理器402或处理器实现的部件来执行。此外,一个或更多个处理器还可以进行操作以支持“云计算”环境中的相关操作的执行或者作为“软件即服务”(SaaS)操作。例如,操作中的至少一些可以由一组计算机(作为包括处理器的机器的示例)来执行,其中这些操作可以经由网络(例如,因特网)并且经由一个或更多个适当的接口(例如,API)来访问。某些操作的执行可以分布在处理器之间,不是仅驻留在单个机器内,而是被跨多个机器部署。在一些示例中,处理器或处理器实现的部件可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器群内)。在其他示例中,处理器或处理器实现的部件可以跨多个地理位置分布。
“计算机可读存储介质”是指机器存储介质和传输介质二者。因此,术语包括存储设备/介质和载波/调制数据信号二者。术语“机器可读介质”、“计算机可读介质”和“设备可读介质”意指相同的事物并且可以在本公开内容中互换使用。
“短暂消息”是指可访问有限持续时间的消息。短暂消息可以是文本、图像、视频等。短暂消息的访问时间可以由消息发送方设置。可替选地,访问时间可以是默认设置或者由接收方指定的设置。无论设置技术如何,该消息都是暂态的。
“机器存储介质”是指存储可执行指令、例程和数据的单个或多个存储设备和介质(例如,集中式或分布式数据库,以及相关联的高速缓存和服务器)。因此,该术语应当被视为包括但不限于固态存储器以及光学和磁介质,包括处理器内部或外部的存储器。机器存储介质、计算机存储介质和设备存储介质的具体示例包括:非易失性存储器,包括例如半导体存储器设备,例如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、FPGA和闪存设备;磁盘,例如内部硬盘和可移除盘;磁光盘;以及CD-ROM和DVD-ROM盘。术语“机器存储介质”、“设备存储介质”、“计算机存储介质”意指相同的事物并且可以在本公开内容中互换地使用。术语“机器存储介质”、“计算机存储介质”和“设备存储介质”明确地排除了载波、调制数据信号和其他这样的介质,其中的至少一些被涵盖在术语“信号介质”中。
“非暂态计算机可读存储介质”是指能够存储、编码或携载由机器执行的指令的有形介质。
“信号介质”是指能够存储、编码或携载由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或有利于软件或数据的通信的其他无形介质。术语“信号介质”应当被视为包括任何形式的调制数据信号、载波等。术语“调制数据信号”指的是其特性中的一个或更多个特性被以将信息编码在该信号中的方式来设置或改变的信号。术语“传输介质”和“信号介质”指的是相同的事物,并且可以在本公开内容中互换使用。

Claims (20)

1.一种方法,包括:
在用于通过网络交换数据的主机系统中维护主机数据集,所述主机数据集中的每个记录包括映射至相应个人可识别(PII)元素的主机分配的标识符;
通过使用主机加密密钥和合作方加密密钥对所述主机数据集的记录和合作方数据集的记录中的相应PII元素进行双重加密来产生经双重加密的PII元素,所述合作方数据集中的每个记录包括映射至相应PII元素的合作方分配的标识符;
用相应相关联的经加密的合作方分配的标识符来标记从所述合作方数据集得到的经双重加密的PII元素中的元素,其中,用相应相关联的合作方生成的匿名标识符来标记从所述主机数据集得到的经双重加密的PII元素;
基于所述相关联的经加密的合作方分配的标识符和所述相关联的合作方生成的匿名标识符,为所述经双重加密的PII元素中的每一个建立相应的匿名联合标识符;以及
使用所述相应的匿名联合标识符来计算所述主机数据集和所述合作方数据集的交集大小。
2.根据权利要求1所述的方法,包括:在所述主机系统处生成所述主机加密密钥,其中,所述合作方数据集和所述合作方加密密钥由合作方系统提供。
3.根据权利要求2所述的方法,其中,产生所述经双重加密的PII元素包括:
在所述主机系统处使用所述主机加密密钥来加密所述主机数据集的记录中的相应PII元素,以产生经主机加密的PII元素;
向所述合作方系统提供所述经主机加密的PII元素;以及
在所述主机系统处接收使用所述合作方加密密钥加密的经主机加密的PII元素。
4.根据权利要求3所述的方法,其中,所接收的使用所述合作方加密密钥加密的经主机加密的PII元素用所述相应相关联的合作方生成的匿名标识符来标记。
5.根据权利要求3所述的方法,其中,接收使用所述合作方加密密钥加密的经主机加密的PII元素包括:接收所述相应相关联的合作方生成的匿名标识符至使用所述合作方加密密钥加密的经主机加密的PII元素的映射。
6.根据权利要求2所述的方法,其中,向所述合作方系统提供所述经主机加密的PII元素包括:提供相应的经加密的主机分配的标识符至相应的经主机加密的PII元素的映射。
7.根据权利要求2所述的方法,其中,产生所述经双重加密的PII元素包括:
在所述主机系统处接收使用所述合作方加密密钥加密的所述合作方数据集的记录中的相应PII元素;以及
在所述主机系统处使用所述主机加密密钥来加密使用所述合作方加密密钥加密的所述合作方数据集的记录中的相应PII元素。
8.根据权利要求7所述的方法,其中,在所述主机系统处接收的使用所述合作方加密密钥加密的所述合作方数据集的记录中的相应PII元素用所述相应相关联的经加密的合作方分配的标识符来标记。
9.根据权利要求2所述的方法,其中,使用所述相应的匿名联合标识符来计算所述主机数据集和所述合作方数据集的所述交集大小包括:向所述合作方系统传送所述相关联的经加密的合作方分配的标识符与所述相应的匿名联合标识符之间的映射。
10.根据权利要求1所述的方法,其中,所述主机数据集和所述合作方数据集的记录中的相应PII元素包括经散列的电子邮件地址和经散列的互联网协议(IP)地址。
11.一种系统,包括:
一个或更多个处理器;以及
包括指令的非暂态计算机可读存储介质,所述指令在由所述一个或更多个处理器执行时使所述一个或更多个处理器执行操作,所述操作包括:
在用于通过网络交换数据的主机系统中维护主机数据集,所述主机数据集中的每个记录包括映射至相应个人可识别(PII)元素的主机分配的标识符;
通过使用主机加密密钥和合作方加密密钥对所述主机数据集的记录和合作方数据集的记录中的相应PII元素进行双重加密来产生经双重加密的PII元素,所述合作方数据集中的每个记录包括映射至相应PII元素的合作方分配的标识符;
用相应相关联的经加密的合作方分配的标识符来标记从所述合作方数据集得到的经双重加密的PII元素中的元素,其中,用相应相关联的合作方生成的匿名标识符来标记从所述主机数据集得到的经双重加密的PII元素;
基于所述相关联的经加密的合作方分配的标识符和所述相关联的合作方生成的匿名标识符,为所述经双重加密的PII元素中的每一个建立相应的匿名联合标识符;以及
使用所述相应的匿名联合标识符来计算所述主机数据集和所述合作方数据集的交集大小。
12.根据权利要求11所述的系统,其中,由所述一个或更多个处理器执行指令引起的所述操作还包括:在所述主机系统处生成所述主机加密密钥,其中,所述合作方数据集和所述合作方加密密钥由合作方系统提供。
13.根据权利要求12所述的系统,其中,产生所述经双重加密的PII元素包括:
在所述主机系统处使用所述主机加密密钥来加密所述主机数据集的记录中的相应PII元素,以产生经主机加密的PII元素;
向所述合作方系统提供所述经主机加密的PII元素;以及
在所述主机系统处接收使用所述合作方加密密钥加密的经主机加密的PII元素。
14.根据权利要求13所述的系统,其中,所接收的使用所述合作方加密密钥加密的经主机加密的PII元素用所述相应相关联的合作方生成的匿名标识符来标记。
15.根据权利要求13所述的系统,其中,接收使用所述合作方加密密钥加密的经主机加密的PII元素包括:接收所述相应相关联的合作方生成的匿名标识符至使用所述合作方加密密钥加密的经主机加密的PII元素的映射。
16.根据权利要求12所述的系统,其中,向所述合作方系统提供所述经主机加密的PII元素包括:提供相应的经加密的主机分配的标识符至相应的经主机加密的PII元素的映射。
17.根据权利要求12所述的系统,其中,产生所述经双重加密的PII元素包括:
在所述主机系统处接收使用所述合作方加密密钥加密的所述合作方数据集的记录中的相应PII元素;以及
在所述主机系统处使用所述主机加密密钥来加密使用所述合作方加密密钥加密的所述合作方数据集的记录中的相应PII元素。
18.根据权利要求17所述的系统,其中,在所述主机系统处接收的使用所述合作方加密密钥加密的所述合作方数据集的记录中的相应PII元素用所述相应相关联的经加密的合作方分配的标识符来标记。
19.根据权利要求12所述的系统,其中,使用所述相应的匿名联合标识符来计算所述主机数据集和所述合作方数据集的所述交集大小包括:向所述合作方系统传送所述相关联的经加密的合作方分配的标识符与所述相应的匿名联合标识符之间的映射。
20.一种具有指令数据的机器可读非暂态存储介质,所述指令数据能够由机器执行以使所述机器执行操作,所述操作包括:
在用于通过网络交换数据的主机系统中维护主机数据集,所述主机数据集中的每个记录包括映射至相应个人可识别(PII)元素的主机分配的标识符;
通过使用主机加密密钥和合作方加密密钥对所述主机数据集的记录和合作方数据集的记录中的相应PII元素进行双重加密来产生经双重加密的PII元素,所述合作方数据集中的每个记录包括映射至相应PII元素的合作方分配的标识符;
用相应相关联的经加密的合作方分配的标识符来标记从所述合作方数据集得到的经双重加密的PII元素中的元素,其中,用相应相关联的合作方生成的匿名标识符来标记从所述主机数据集得到的经双重加密的PII元素;
基于所述相关联的经加密的合作方分配的标识符和所述相关联的合作方生成的匿名标识符,为所述经双重加密的PII元素中的每一个建立相应的匿名联合标识符;以及
使用所述相应的匿名联合标识符来计算所述主机数据集和所述合作方数据集的交集大小。
CN202280050396.3A 2021-07-20 2022-07-20 隐私安全联合标识协议 Pending CN117678196A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/443,036 2021-07-20
US17/443,036 US11943354B2 (en) 2021-07-20 2021-07-20 Privacy safe joint identification protocol
PCT/US2022/073959 WO2023004360A1 (en) 2021-07-20 2022-07-20 Privacy safe joint identification protocol

Publications (1)

Publication Number Publication Date
CN117678196A true CN117678196A (zh) 2024-03-08

Family

ID=83006142

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280050396.3A Pending CN117678196A (zh) 2021-07-20 2022-07-20 隐私安全联合标识协议

Country Status (5)

Country Link
US (1) US11943354B2 (zh)
EP (1) EP4374555A1 (zh)
KR (1) KR20240036624A (zh)
CN (1) CN117678196A (zh)
WO (1) WO2023004360A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11943354B2 (en) 2021-07-20 2024-03-26 Snap Inc. Privacy safe joint identification protocol
US11886617B1 (en) 2023-04-07 2024-01-30 Lemon Inc. Protecting membership and data in a secure multi-party computation and/or communication
US11811920B1 (en) 2023-04-07 2023-11-07 Lemon Inc. Secure computation and communication
US11874950B1 (en) 2023-04-07 2024-01-16 Lemon Inc. Protecting membership for secure computation and communication
US11809588B1 (en) 2023-04-07 2023-11-07 Lemon Inc. Protecting membership in multi-identification secure computation and communication
US11829512B1 (en) * 2023-04-07 2023-11-28 Lemon Inc. Protecting membership in a secure multi-party computation and/or communication
US11868497B1 (en) 2023-04-07 2024-01-09 Lemon Inc. Fast convolution algorithm for composition determination

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2887191C (en) * 2014-04-04 2021-05-25 University Of Ottawa Secure linkage of databases
WO2016122513A1 (en) 2015-01-29 2016-08-04 Hewlett Packard Enterprise Development Lp Data analytics on encrypted data elements
US10558817B2 (en) * 2017-01-30 2020-02-11 Foley & Lardner LLP Establishing a link between identifiers without disclosing specific identifying information
WO2018160256A1 (en) * 2017-03-03 2018-09-07 Google Llc Systems and methods for establishing a link between identifiers without disclosing specific identifying information
US11017099B2 (en) 2017-03-16 2021-05-25 Google Llc Systems and methods for entropy balanced population measurement
WO2019204711A1 (en) 2018-04-19 2019-10-24 Google Llc Security measures for determination of private set intersections
US11494510B2 (en) * 2021-03-04 2022-11-08 Inmarket Media, Llc Multi-touch attribution and control group creation using private commutative encrypted match service
CN112966168B (zh) 2021-03-11 2022-05-17 支付宝(杭州)信息技术有限公司 实现隐私保护的业务标签查询方法及装置
US11943354B2 (en) 2021-07-20 2024-03-26 Snap Inc. Privacy safe joint identification protocol

Also Published As

Publication number Publication date
US20230045553A1 (en) 2023-02-09
EP4374555A1 (en) 2024-05-29
US11943354B2 (en) 2024-03-26
KR20240036624A (ko) 2024-03-20
WO2023004360A1 (en) 2023-01-26

Similar Documents

Publication Publication Date Title
KR102163528B1 (ko) 지오-펜스 인가 프로비저닝
US11943354B2 (en) Privacy safe joint identification protocol
KR102364709B1 (ko) 디스플레이 콘텐츠의 모바일 기반 지도제작 제어를 위한 방법 및 장치
CN112740279A (zh) 协作成就界面
KR102562053B1 (ko) 포디움 메커니즘을 이용한 데이터 프라이버시
US11579847B2 (en) Software development kit engagement monitor
US11914722B2 (en) Permission based media composition
US11985135B2 (en) Stated age filter
WO2023183489A1 (en) Relationship-agnostic messaging system
US20230102606A1 (en) One-of-a-kind to open edition non-fungible token dynamics
US11899823B2 (en) Privacy safe anonymized identity matching
CN115989523A (zh) 车辆识别系统
CN117882360A (zh) 每个参与者端到端加密元数据
CN116134858A (zh) 用于配对搭配用户的安全协议
US20240048359A1 (en) Coordinating data access among multiple services
US11949778B1 (en) Privacy-preserving multi-touch attribution
US11698992B2 (en) Privacy-safe connection recommendations
US12008340B2 (en) Software development kit engagement monitor
US12010240B2 (en) Augmented-reality experience control through non-fungible token
US20240070162A1 (en) Technique for constructing and maintaining an application-to-friend index
US20230098615A1 (en) Augmented-reality experience control through non-fungible token
WO2024031025A1 (en) Coordinating data access among multiple services
KR20240074814A (ko) 독특함 대 오픈-에디션 대체 불가능한 토큰 다이내믹스
KR20240074816A (ko) 대체 불가능한 토큰을 통한 증강-현실 경험 제어
KR20240049575A (ko) 조합된 판독 및 반응 메시지

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