用于隐私保护的数据安全方法
文献发布时间:2023-06-19 12:14:58
相关申请
本申请要求于2019年8月14日提交的题为“用于隐私保护的数据安全方法”的PCT申请号PCT/US2019/046533的利益和优先权,通过引用将其全部内容并入本文。
背景技术
在计算机联网环境(诸如互联网)中,诸如人的实体与网页中诸如内容项的信息进行交互。在诸如零售地点的离线环境中,实体可以执行诸如拨打电话或购买的动作。需要以安全的方式识别在线交互如何与离线操作相关,同时保护个人身份信息的隐私。
发明内容
本公开的一个实施方式涉及一种方法,该方法包括在第一计算系统处从第二计算系统接收第一密钥和加密的在线交互数据编码数据,该编码数据指示与内容的一个或多个在线交互,在第一计算系统处从第三计算系统接收第二密钥和加密的离线动作数据编码数据,其指示一个或多个离线动作,在第一计算系统处从第三计算系统接收包括第三密钥的可执行代码,以及由第一计算系统执行可执行代码。使第一计算系统使用第一密钥、第二密钥和第三密钥解密加密的在线交互数据和加密的离线动作数据的可执行代码将离线动作数据中的一个或多个离线动作关联到在线交互数据中的一个或多个在线交互,并且生成指示与在线交互关联的多个离线动作的聚合数据。
在一些实施方式中,第一计算系统将聚合数据传送到第二计算系统或第三计算系统中的至少一个,而不将解密的在线交互数据提供给第三计算系统或将解密的离线动作数据提供给第二计算系统。在一些实施方式中,加密的在线交互数据包括一个或多个在线交互中的每一个的第一标识符,加密的离线动作数据包括一个或多个离线动作中的每一个的第二标识符,并且将离线动作与在线交互关联包括确定与一个或多个第一标识符相关联的一个或多个第二标识符。在一些实施方式中,所述第一计算系统从第四计算系统接收将所述一个或多个第一标识符与所述一个或多个第二标识符相关联的映射数据。在一些实施方式中,将离线动作与在线交互关联包括使用映射数据确定与一个或多个第一标识符相关联的一个或多个第二标识符。
在一些实施方式中,可执行代码在第一计算系统的受保护环境中执行,并且解密的在线交互数据和解密的离线动作数据存储在受保护环境中,使得所述解密的在线交互数据和所述解密的离线动作数据在所述受保护环境之外对于第一计算系统的一部分是不可访问的。在一些实施方式中,第一密钥和第二密钥为共享密钥,第三密钥为私钥,其中加密的在线交互数据和加密的离线动作数据使用共享密钥通过对称加密进行加密,其中第一密钥和第二密钥使用第三密钥通过非对称加密进行加密。在一些实施方式中,使用可执行代码生成聚合数据允许第三计算系统控制聚合数据的特性而不将未加密的动作数据暴露给第三计算系统。在一些实施方式中,一个或多个离线动作是在一个或多个实体店面处的离线交易。在一些实施方式中,第一计算系统是云集群处理系统。
另一实施方式涉及一种系统,该系统包括具有第一密钥和加密的在线交互数据编码数据的第一计算系统,该加密的在线交互数据编码数据指示与内容的一个或多个在线交互,具有第二密钥和加密的离线动作数据编码数据的第二计算系统,加密的离线动作数据编码数据指示一个或多个离线动作,以及具有处理器和耦合到处理器的存储器的第三计算系统,该存储器具有从第二计算系统接收并存储在其上的指令,该指令在由处理器执行时使处理器解密从第一计算系统接收到的加密的在线交互数据,对从第二计算系统接收到的加密离线动作数据进行解密,将离线动作数据中的一个或多个离线动作与在线交互数据中的一个或多个在线交互关联,以及生成聚合数据,其指示与在线交互关联的多个离线动作。
在一些实施方式中,指令还使处理器将聚合数据传送到第一计算系统或第二计算系统中的至少一个,而不向第二计算系统提供解密的在线交互数据或向第一计算系统提供解密的离线动作数据。在一些实施方式中,加密的在线交互数据包括一个或多个在线交互中的每一个的第一标识符,加密的离线动作数据包括一个或多个离线动作中的每一个的第二标识符,并且其中将离线动作与在线交互关联包括确定与一个或多个第一标识符相关联的一个或多个第二标识符。在一些实施方式中,该系统还包括具有映射数据的第四计算系统,并且其中第三计算系统通过使用映射数据确定与一个或多个第一标识符相关联的一个或多个第二标识符来将离线动作与在线交互关联。
在一些实施方式中,第三计算系统还包括受保护环境,并且其中解密的在线交互数据和解密的离线动作数据存储在受保护的环境中,使得解密的在线交互数据和解密的离线动作数据在所述受保护环境之外对于第三计算系统的一部分是不可访问的。在一些实施方式中,第一密钥和第二密钥为共享密钥,第三密钥为私钥,其中加密的在线交互数据和加密的离线动作数据使用共享密钥通过对称加密进行加密,并且其中第一密钥和第二密钥使用第三密钥通过非对称加密进行加密。在一些实施方式中,使用可执行代码生成聚合数据允许第二计算系统控制聚合数据的特性而不将未加密的动作数据暴露给第二计算系统。在一些实施方式中,一个或多个离线动作是一个或多个实体店面处的离线交易。
另一实施方式涉及一种方法,该方法包括在第一计算系统处从第二计算系统接收第一密钥和指示与内容的一个或多个在线交互的加密的在线交互数据编码数据,该加密的在线交互数据包括一个或多个在线交互中的每一个的第一标识符,在第一计算系统处从第三计算系统接收第二密钥和指示一个或多个离线动作的加密的离线动作数据编码数据,加密的离线动作数据包括一个或多个离线动作中的每一个的第二标识符,在第一计算系统处从第三计算系统接收包括第三密钥的可执行代码,在第一计算系统处从第四计算系统接收映射数据,该映射数据使一个或多个第一标识符与一个或多个第二标识符相关联,并且由第一计算系统执行可执行代码。使第一计算系统使用第一密钥、第二密钥和第三密钥解密加密的在线交互数据和加密的离线动作数据的可执行代码通过使用映射数据确定与一个或多个第一标识符相关联的一个或多个第二标识符来将离线动作数据中的一个或多个离线动作关联到在线交互数据中的一个或多个在线交互,生成指示与在线交互关联的多个离线动作的聚合数据,以及将聚合数据传送到第二计算系统或第三计算系统中的至少一个,而不将解密的在线交互数据提供给第三计算系统或将解密的离线动作数据提供给第二计算系统。
在一些实施方式中,一个或多个离线动作是在一个或多个实体店面处的离线交易。在一些实施方式中,第一计算系统是云集群处理系统。
可以在适当的情况下组合各个方面和实施方式。
附图说明
图1是示出根据说明性实施方式的通过网络交互的各种实体的图。
图2是示出根据说明性实施方式的图1的各种实体之间的数据传输的图。
图3是示出根据说明性实施方式的将在线交互数据与离线动作数据安全地相关联的方法的流程图。
图4是示出根据说明性实施方式的在图1的各个实体之间安全地传输数据的加密过程的图。
图5是示出根据说明性实施方式的安全地生成聚合转换数据的方法的流程图。
图6是示出根据说明性实施方式的由图1的实体提供的访问的图。
图7是根据说明性实施方式的计算系统的框图。
具体实施方式
以下是与用于以隐私意识方式将在线交互与离线动作相关联的方法、装置和系统相关的各种概念及其实施方式的更详细描述。上面介绍的和下面更详细讨论的各种概念可以以多种方式中的任何一种来实现,因为所描述的概念不限于任何特定的实施方式。
本公开的系统和方法一般涉及以安全方式向内容提供者供应关于与内容提供者产生的在线内容相关的离线动作的信息。例如,诸如个人计算机、智能手机或平板电脑的计算设备可以访问由内容发布者维护的网页(或其他在线文档)。内容发布者可以包括由内容提供者产生的内容项目,例如广告。与内容提供者相关联的第一数据处理系统可以识别与在线内容的在线交互并将与在线交互相关联的第一标识符发送到第二数据处理系统。第二数据处理系统可以接收与离线动作相关联的第二标识符。
第二数据处理系统可以接收将第一标识符的个体标识符与第二标识符的个体标识符相关联的映射数据。使用链接的标识符,第二数据处理系统可以确定哪些在线交互导致离线动作(例如,访问零售位置、离线购买、电话呼叫等)。因此,第二数据处理系统可以向内容提供者提供关于在线内容在生成离线动作中的有效性的附加信息。第二数据处理系统还可以提供关于离线动作的更详细的信息,包括是否发生购买、购买了什么项目(如果有的话)以及项目的价格。
更具体地,本公开的系统和方法涉及以更安全的方式关联来自不同实体的数据的独特密码术和计算机架构方法。通常,关联来自不同实体的数据需要计算系统具有对来自每个实体的数据的访问权。但是,当合并在一起时,数据可能会透露与数据相关的个体的个人身份信息(“PII”)(例如,信用卡号、社会保险号、地址等)。泄露PII是不可取的。因此,需要一种独特的密码术和计算机架构方法来以更安全的方式关联来自不同实体的数据。本公开的方面提供改进的加密方法。通过提供提高的安全性并且还保护用户隐私,加密方法可用于以安全的方式关联用户的在线交互和离线动作。
为了确保PII的隐私和安全,本公开的系统和方法隔离了数据所有权以防止实体(例如,内容提供者、第三方等)接收他们本来对其没有访问权的未加密PII。例如,与提供第二标识符的第三方相关联的第三数据处理系统可以产生用于非对称加密的公钥。在将第一标识符发送到第二数据处理系统之前,第一数据处理系统可以至少部分地使用公钥来加密第一标识符。类似地,在将第二标识符发送到第二数据处理系统之前,第三数据处理系统可以至少部分地使用公钥加密第二标识符。第二数据处理系统可以被配置为对所有实体都是不可访问的,使得第一数据处理系统和第三数据处理系统可以向第二数据处理系统发送数据(例如,加密的第一标识符和第二标识符)但不能访问第二数据处理系统内的任何数据。第二数据处理系统可以从第三数据处理系统接收可执行代码(例如,二进制等),其包括对应于用于解密第一标识符和第二标识符的公钥的私钥。因此,第二数据处理系统可以促进第一标识符和第二标识符的独立匹配而不暴露PII。
现在参考图1,根据说明性实施方式,示出了用于安全地关联来自不同实体的数据的系统100。系统100包括在线交互系统110、桥接系统120、离线动作系统140和数据处理系统150。在一些实施方式中,系统100的组件通过网络130进行通信。网络130可以包括计算机网络,诸如因特网、局域网、广域网、城域网或其他区域网络、内联网、卫星网络、其他计算机网络,诸如语音或数据移动电话通信网络、它们的组合,或任何其他类型的电子通信网络。网络130可以包括或构成显示网络(例如,与内容布置或搜索引擎结果系统相关联的互联网上可用的信息资源的子集,或者有资格包括第三方内容项作为内容项布置活动的一部分的信息资源的子集)。
在一些实施方式中,在线交互系统110是与内容提供者(例如,在线广告商)相关联的在线交互数据112的源。在一些实施方式中,在线交互数据112指示与诸如营销项目(例如,广告)的内容项的交互。在线交互系统110可以向数据处理系统150发送在线交互数据112。在线交互系统110可以从个人计算机、服务器、移动计算设备或与内容提供者相关联的其他计算设备接收在线交互数据112。例如,内容提供者可以从显示在网页或其他在线文档上的基于网络的内容项生成在线交互数据112。在线文档的主要内容可以包括除了由内容提供者提供的内容之外的内容,并且在线文档可以包括被配置用于显示所提供的内容项的内容位(slot)。例如,内容发布者可以运营公司的网站并且可以提供关于该公司的内容以显示在该网站的网页上。网页可以包括被配置用于显示所提供的内容项的内容位。
在一些实施方式中,由在线交互系统110提供的在线交互数据112描述了在线交互的数量或分组(例如,与多个内容项的交互)。附加地或替代地,在线交互数据112可以描述个体在线交互(例如,与单个内容项的单个交互)。在线交互数据112可以包括唯一标识符(“ID”)114。在一些实施方式中,标识符114识别与在线交互相关联的个体。附加地或替代地,标识符114可以独特地识别每个在线交互。在一些实施方式中,在线交互数据112描述与内容项相关联的一个或多个动作。例如,在线交互数据112可以包括在线交互的时间、日期和/或位置。在线交互数据112所描述的在线交互可以包括查看内容项(例如,导航到呈现内容项的网页和/或确定该项目或该项目的一部分呈现在在其上查看网页的设备的视口内等)、选择/点击内容项、悬停在内容项上和/或与内容项的其他交互。
在一些实施方式中,在线交互系统110包括具有处理器113和存储器115的处理电路111。存储器115可以存储机器指令,当由处理器113执行时,这些机器指令使处理器113执行这里描述的一个或多个操作。可以使用软件、硬件或其组合来实现这里描述的操作。处理器113可包括微处理器、ASIC、FPGA等或其组合。在许多实施方式中,处理器113可以是多核处理器或处理器阵列。存储器115可以包括但不限于能够为处理器113提供程序指令的电子、光学、磁性或任何其他存储设备。存储器115可以包括软盘、CD-ROM、DVD、磁盘、存储器芯片、ROM、RAM、EEPROM、EPROM、闪存、光学介质或处理器113可以从中读取指令的任何其他合适的存储器。指令可以包括来自任何合适的计算机编程语言的代码,诸如但不限于C、C++、C#、Java、JavaScript、Perl、HTML、XML、Python和Visual Basic。在一些实施方式中,存储器115包括加密电路116和在线交互数据112。加密电路116可以促进在线交互数据112的安全传输。加密电路116可以加密在线交互数据112。加密电路116可以通过对称加密、非对称加密和/或它们的组合来加密在线交互数据112。下面参考图3和图4更详细地讨论加密。
离线动作系统140可以向数据处理系统150提供与一个或多个离线动作相关联的离线动作数据142。离线动作数据142可以与通过其发生在线交互的在线网络之外的任何动作相关联。例如,离线动作数据142可以描述物理动作、购买、通过电话网络执行的动作和/或交易。在一些实施方式中,离线动作系统140与第三方相关联。例如,第三方可以是会员卡供应商。在一些实施方式中,离线动作系统140包括具有处理器143和存储器145的处理电路141。处理器143和存储器145可以具有如上文参考处理器113和存储器115所描述的任何特征。存储器145可以包括加密电路146和/或离线动作数据142。加密电路146可以促进离线动作数据142的安全传输。离线动作数据142可以描述与一个或多个个体相关联的一个或多个离线动作。在一些实施方式中,离线动作数据142与唯一标识符144相关联。标识符144可以识别与离线动作相关联的个体。附加地或替代地,标识符144可以独特地识别每个离线动作。在一些实施方式中,离线动作数据142包括时间、日期、位置和/或关于离线动作的其他信息。例如,如果离线动作是交易,则离线动作数据142可以包括交易类型、购买的项目(如果有的话)以及项目的价格。虽然本公开讨论将在线交互与离线动作关联,但应当理解,本文所讨论的概念同样可以用于将在线交互与通过网络130和/或通过另一电子通信网络执行的其他类型的在线活动关联,而不是与在线动作通过其发生的在线网络之外的离线动作关联(或除此之外)。所有这样的实现都被设想在本公开的范围内。
在一些实施方式中,桥接系统120是有助于关联在线交互数据和离线动作数据的映射数据122的源。桥接系统被示为包括具有处理器123和存储器125的处理电路121。处理器123和存储器125可以具有如上文参考处理器113和存储器115所述的任何特征。桥接系统120可以是或可以与身份映射信息的提供者相关联。身份映射信息提供者可能具有在线传输的离线数据以促进身份解析。在一些实施方式中,映射数据122将与在线交互系统110相关联的第一唯一ID和与离线动作系统140相关联的第二唯一ID转换为公共桥ID,从而提供一种在不将ID暴露给其他实体的情况下关联不同的ID的方式。在一些实施方式中,桥接系统120将映射数据122(例如,查找表等)发送到数据处理系统150。附加地或替代地,数据处理系统150可以查询桥接系统120。例如,数据处理系统150可以使用标识符114查询桥接系统120以接收对应的标识符144。在一些实施方式中,桥接系统120由在线交互系统110和/或离线动作系统140查询。
数据处理系统150促进了将来自不同实体的数据关联的隐私意识方法。在一些实施方式中,数据处理系统150可以将在线交互数据112与离线动作数据142关联。数据处理系统150可以是服务器、分布式处理集群、云处理系统或任何其他计算设备。数据处理系统150可以包括或执行至少一个计算机程序或至少一个脚本。在一些实施方式中,数据处理系统150包括软件和硬件的组合,诸如被配置为执行一个或多个脚本的一个或多个处理器。
数据处理系统150可以包括具有处理器153和存储器155的处理电路151。处理器153和存储器155可以具有如上文参考处理器113和存储器115所描述的任何特征。存储器155可以包括一般环境157和受保护环境152。一般环境157可以与受保护环境152隔离,使得受保护环境152对于一般环境157是不可访问的。受保护环境152可以是如下面参照图6更详细描述的访问受限系统。在一些实施方式中,受保护环境152包括关联电路154、解密电路156和/或聚合电路158。在一些实施方式中,受保护环境152和/或数据处理系统150包括不同数量、类型和/或组合的组件。
关联电路154可以关联来自不同实体的数据。在一些实施方式中,关联电路154可以使用映射数据122将在线交互数据112关联到离线动作数据142。例如,关联电路154可以接收在线交互数据112并且将与在线交互相关联的标识符114发送到桥接系统120以接收与对应于与在线交互数据112相关的离线动作数据142的离线动作相关联的标识符144。下面参考图5详细描述来自不同实体的数据的关联。
解密电路156可以解密来自不同实体的数据。在一些实施方式中,解密电路156解密从在线交互系统110和/或离线动作系统140接收的数据(例如,在线交互数据112、离线动作数据142)。解密电路156可以接收和/或包括一个或多个秘密(例如,密钥、代码等)以促进来自不同实体的数据的解密。下面参考图4和图5更详细地描述解密。聚合电路158可以聚合数据以促进洞察在线交互与离线动作的关联,同时保护底层PII。在一些实施方式中,聚合电路158可以聚合来自关联电路154的数据。下面参考图5更详细地讨论聚合。
现在参考图2-5,根据说明性实施方式,示出了用于关联来自不同实体的数据的改进的密码术和计算机架构。相关数据可以作为聚合输出数据发送到输出数据库160。在一些实施方式中,输出数据库160从数据处理系统150接收数据。在一些实施方式中,输出数据库160是服务器、数据库或其他网络连接的数据储存库。
在线交互系统110可以向数据处理系统150发送(210)加密的在线交互数据414。在各种实施方式中,在线交互系统110在发送(例如,通过加密电路116)之前加密在线交互数据112。加密的在线交互数据414只能由数据处理系统150解密。因此,因为外部实体不能解密加密的在线交互数据414,所以保持了PII安全。在线交互系统110可以向数据处理系统150发送(220)第一密钥,示出为加密的第一会话密钥416,以促进加密的在线交互数据414的解密。第一密钥可以被加密。在一些实施方式中,在线交互系统110在发送之前使用第一密钥来加密在线交互数据112。数据处理系统150可以在解密加密的在线交互数据414时使用第一密钥。
离线动作系统140可以向数据处理系统150发送(230)加密的离线动作数据444。在各种实施方式中,离线动作系统140在发送之前加密离线动作数据142。类似于加密的在线交互数据414,加密的离线动作数据444只能由数据处理系统150解密。离线动作系统140可以向数据处理系统150发送(240)第二密钥,示出为加密的第二会话密钥446,以便于加密的离线动作数据444的解密。可以加密第二密钥。在一些实施方式中,离线动作系统140在发送之前使用第二密钥来加密离线动作数据142。数据处理系统150可以在解密加密的离线动作数据444时使用第二密钥。离线动作系统140可以向数据处理系统150发送(250)可执行代码250来解密加密的在线交互数据414和加密的离线动作数据444。在一些实施方式中,可执行代码250包括第三密钥。可执行代码250可以包括机器可执行指令(例如,二进制代码文件等)以解密加密的在线交互数据414和加密的离线动作数据444,匹配解密的在线交互数据112和离线动作数据142,并产生聚合输出数据。在一些实施方式中,可执行代码250将第一密钥和第二密钥解密,作为解密加密的在线交互数据414和加密的离线动作数据444的一部分。可执行代码250可以是安全的,使得它不能用于恢复第三密钥。
桥接系统120可以向数据处理系统150发送(260)映射数据122。在一些实施方式中,数据处理系统150查询桥接系统120以将在线交互数据112与离线动作数据142匹配。数据处理系统150可以将聚合输出数据发送(270)到输出数据库160。聚合输出数据可以包括转换的总和(例如,交易、点击、电话呼叫等)、与每个转换相关联的价值的总和(例如,美元金额)和元数据。元数据可以包括方差、平均值和/或任何其他统计量度的指示。离线动作系统140可以经由可执行代码250改变聚合输出数据的输出。例如,离线动作系统140可以提供产生包括与每个转换相关联的平均值的聚合输出数据的第一可执行代码,并且可以提供产生包括与转换价值的第三四分位数中的转换相关联的最大值的聚合输出数据的第二可执行代码。
现在具体地参考图3,根据说明性实施方式,示出了图示将在线交互数据与离线动作数据安全相关联的方法300的流程图。方法300可以由数据处理系统150实现。虽然参考数据处理系统150描述了方法300,但是应当理解,方法300可以由独立于维护PII的匿名性和安全性的在线交互系统110和离线动作系统140的任何计算设备实现。
在步骤310处,数据处理系统150可以从第一计算系统接收第一密钥。第一计算系统可以是在线交互系统110。在一些实施方式中,第一密钥被加密(例如,加密的第一会话密钥416)。在步骤320处,数据处理系统150可以从第一计算系统接收描述与一个或多个个体相关联的一个或多个在线交互的加密的在线交互数据414。在一些实施方式中,第一密钥用于加密在线交互数据112以产生加密的在线交互数据414。在步骤330处,数据处理系统150可以从第二计算系统接收第二密钥。第二计算系统可以是离线动作系统140。在一些实施方式中,第二密钥被加密(例如,加密的第二会话密钥446)。在步骤340处,数据处理系统150可以从第二计算系统接收描述与一个或多个个体相关联的一个或多个交易的加密的离线动作数据444。在一些实施方式中,第二密钥用于加密离线动作数据142以产生加密的离线动作数据444。
在步骤350处,数据处理系统150可以从第二计算系统接收具有第三密钥的可执行代码250。在一些实施方式中,第三密钥是非对称加密私钥。在步骤360处,数据处理系统150可以解密加密的在线交互数据414和加密的离线动作数据444。在一些实施方式中,数据处理系统150基于可执行代码250中包括的指令来解密加密的在线交互数据414和加密的离线动作数据444。数据处理系统150可以使用第一密钥、第二密钥和/或第三密钥来解密加密的在线交互数据414和加密的离线动作数据444。在步骤370处,数据处理系统150可以从第三计算系统接收映射数据122,其描述了加密的在线交互数据414的一个或多个个体与加密的离线动作数据444的一个或多个个体之间的关联。在一些实施方式中,映射数据122描述了在线交互数据112的标识符和离线动作数据142的标识符之间的关联。在一些实施方式中,数据处理系统150查询第三计算系统。例如,数据处理系统150可以将与在线交互数据112相关联的标识符114发送到第三计算系统并且接收与离线动作数据142相关联的对应标识符144。
在步骤380处,数据处理系统150可以产生聚合输出。数据处理系统150可以基于在线交互数据112与离线动作数据142之间的关联来生成聚合输出。在一些实施方式中,可执行代码250包括用于确定在聚合输出中包括什么信息的指令。聚合输出不包括PII。在步骤390处,数据处理系统150可以将聚合输出发送到输出数据库。在一些实施方式中,输出数据库是输出数据库160。
现在参考图4,根据说明性实施方式,示出了图示用于在在线交互系统110、离线动作系统140和数据处理系统150之间安全地传输数据的加密过程的图。在线交互系统110可以包括在线交互数据112。在线交互数据112可以是参考图1描述的在线交互数据。类似地,离线动作系统140可以包括离线动作数据142。离线动作数据142可以是参考图1描述的离线动作数据。应该理解,虽然参考在线交互系统110、离线动作系统140和数据处理系统150描述了图4,但是任何过程都可以由组件或其组合(例如,加密电路116、加密电路146、解密电路156等)来实现。
在一些实施方式中,在线交互系统110和离线动作系统140分别包括会话密钥生成器410和440。会话密钥生成器410和440可以分别生成第一会话密钥412和第二会话密钥442。第一会话密钥412可用于加密在线交互数据112。第二会话密钥442可用于加密离线动作数据142。在一些实施方式中,第一会话密钥412和第二会话密钥442是对称加密会话密钥。例如,第一会话密钥412可以是由会话密钥生成器410使用128位随机初始化向量生成的128位随机整数。在一些实施方式中,第一会话密钥412和第二会话密钥442是限制使用密钥。例如,每次在线交互数据112和/或离线动作数据142被发送到数据处理系统150时,会话密钥生成器410和440可以生成新的会话密钥。
在一些实施方式中,在线交互系统110使用第一会话密钥412来加密在线交互数据112以产生加密的在线交互数据414。类似地,离线动作系统140可以使用第二会话密钥442来加密离线动作数据142以产生加密的离线动作数据444。
在一些实施方式中,第一会话密钥412和第二会话密钥442在被传送到数据处理系统150之前被加密。离线动作系统140可以将公钥148传送(402)到在线交互系统110。在线交互系统110可以使用公钥148来加密第一会话密钥412以产生加密的第一会话密钥416。类似地,离线动作系统140可以使用公钥148来加密第二会话密钥442以产生加密的第二会话密钥446。公钥148可以是非对称加密公钥。在一些实施方式中,离线动作系统140生成公钥148。
如前所述,可以将加密的在线交互数据414、加密的第一会话密钥416、加密的离线动作数据444和加密的第二会话密钥446发送(210-240)到数据处理系统150。在一些实施方式中,数据经由安全文件传输协议(例如,SSH文件传输协议等)在实体(例如,在线交互系统110、离线动作系统140和数据处理系统150等)之间传输。离线动作系统140可以向数据处理系统150发送包括私钥的可执行代码250。可执行代码250可以包括解密加密的第一会话密钥416、加密的第二会话密钥446、加密的在线交互数据414和/或加密的离线动作数据444的指令。在一些实施方式中,可执行代码250包括使数据处理系统150将在线交互数据112的在线交互与离线动作数据142的离线动作相关联的指令。在各种实施方式中,可执行代码250包括使数据处理系统150生成指示与在线交互关联的交易数量的聚合输出数据的指令。
在一些实施方式中,可执行代码250是二进制的。私钥可以是与非对称加密公钥对应的非对称加密私钥。例如,私钥可以是Rivest-Shamir-Adleman(“RSA”)公钥密码系统的一部分。在一些实施方式中,私钥具有指定长度(例如,2048位)。在一些实施方式中,离线动作系统140生成私钥。可执行代码250可以是安全的,使得恶意的局外人在被授予对可执行代码250的访问权时可能无法恢复私钥。例如,可执行代码250可以被配置为仅在由数据处理系统150执行时才可操作。
现在参考图5,根据说明性实施方式,示出了图示生成聚合输出数据的方法500的流程图。在各种实施方式中,方法500由数据处理系统150实施。在一些实施方式中,方法500是方法300的一部分。例如,方法500可以补充和/或替换方法300的步骤360-390。虽然参考数据处理系统150描述了方法500,但是应当理解,方法500可以由独立于维护PII匿名性和安全性的在线交互系统110和离线动作系统140的任何计算设备实现。
在步骤510处,数据处理系统150可以使用私钥解密加密的第一会话密钥416和加密的第二会话密钥446。在步骤520处,数据处理系统150可以使用第一会话密钥412解密加密的在线交互数据414并且可以使用第二会话密钥442解密加密的离线动作数据444。第一会话密钥412对于加密的在线交互数据414可以是独特的。类似地,第二会话密钥442对于加密的离线动作数据444可以是独特的。在步骤530处,数据处理系统150可以将在线交互数据112的在线交互与离线动作数据142的离线动作关联。在一些实施方式中,步骤530包括将与在线交互数据112相关联的标识符关联到与离线动作数据142相关联的标识符。将在线交互数据112关联到离线动作数据142可以包括使用映射数据122。例如,数据处理系统150可以使用与在线交互数据112相关联的标识符来查询桥接系统120以接收与离线动作数据142相关联的标识符。
在步骤540处,数据处理系统150可以基于在线交互数据112和离线动作数据142之间的关联来生成转换数据。在一些实施方式中,步骤540包括生成描述转换数据的统计量度(例如,平均值、中值、Q1、Q2、方差等)。在步骤550处,数据处理系统150可以聚合转换数据以产生聚合输出数据。聚合输出数据可以包括转换的总和(例如,交易、点击等)、与每个转换相关联的价值的总和(例如,美元金额)和元数据。元数据可以包括方差、平均值和/或任何其他统计量度的指示。在一些实施方式中,聚合输出数据的内容由可执行代码250确定。在步骤560处,数据处理系统150可以将聚合输出数据发送到输出位置。在一些实施方式中,输出位置是输出数据库160。在一些实施方式中,输出数据库160与在线交互系统110相关联,如下文参考图6详细讨论的。
现在参考图6,根据说明性实施方式,示出了图示数据安全限制的图。如前所述,为了维护PII的安全性,在线交互数据112和离线动作数据142不应在受保护环境(例如,受保护环境152)之外组合。在线交互系统110产生在线交互数据112。类似地,离线动作系统140产生离线动作数据142。然而,在线交互系统110可能无法访问离线动作数据142。类似地,离线动作系统140可能无法访问在线交互数据112。对在线交互数据112和离线动作数据142进行加密保证在线交互系统110无法访问离线动作数据142并且离线动作系统140无法访问在线交互数据112,从而保证了PII的安全。
此外,加密的在线交互数据414和加密的离线动作数据444只能由数据处理系统150使用具有私钥的可执行代码250来解密。因此,即使恶意的局外人截获加密的在线交互数据414和加密的离线动作数据444,恶意的局外人也无法恢复在线交互数据112或离线动作数据142以揭露PII。此外,在线交互系统110和离线动作系统140都不能访问数据处理系统150的底层信息(例如,在线交互数据112、离线动作数据142)。
在各种实施方式中,可执行代码250促进对聚合输出数据的定制。离线动作系统140可以提供可执行代码250并且可以改变可执行代码250以确定在聚合输出数据中包括什么信息。在各种实施方式中,输出数据库160与在线交互系统110相关联。因此,在没有离线动作系统140提供的可执行代码250的情况下,在线交互系统110不能产生聚合输出,并且在没有在线交互系统110的情况下,离线动作系统140不能访问输出数据库160中的聚合输出数据。数据所有权的这种隔离促进了PII的保护。
图7示出了计算系统700的描绘,该计算系统700可以用于例如实现说明性在线交互系统110、说明性离线动作系统140、说明性数据处理系统150、说明性桥接系统120和/或各种本公开中描述的其他说明性系统。计算系统700包括用于传送信息的总线705或其他通信组件以及耦合到总线705用于处理信息的处理器710。计算系统700还包括耦合到总线705的主存储器715,诸如随机存取存储器(“RAM”)或其他动态存储设备,用于存储信息和将由处理器710执行的指令。主存储器715还可以用于在处理器710执行指令期间存储位置信息、临时变量或其他中间信息。计算系统700还可以包括耦合到总线705的只读存储器(“ROM”)720或其他静态存储设备,以用于为处理器710存储静态信息和指令。存储设备725,诸如固态设备、磁盘或光盘,耦合到总线705用于持久地存储信息和指令。
计算系统700可以通过总线705耦合到显示器735,诸如液晶显示器或有源矩阵显示器,用于向用户显示信息。输入设备730,诸如包括字母数字键和其他键的键盘,可以耦合到总线705以用于将信息和命令选择传送到处理器710。在另一个实施方式中,输入设备730具有触摸屏显示器735。输入设备730可以包括光标控制,诸如鼠标、轨迹球或光标方向键,用于将方向信息和命令选择传送到处理器710并用于控制显示器735上的光标移动。
在一些实施方式中,计算系统700可以包括通信适配器740,诸如网络适配器。通信适配器740可以耦合到总线705并且可以被配置为实现与计算或通信网络745和/或其他计算系统的通信。在各种说明性实施方式中,可以使用通信适配器740来实现任何类型的联网配置,诸如有线(例如,通过以太网)、无线(例如,通过WiFi、蓝牙等)、预配置、自组网(ad-hoc)、LAN、WAN等。
根据各种实施方式,可以由计算系统700响应于处理器710执行包含在主存储器715中的指令布置来实现这里描述的实行说明性实施方式的过程。这样的指令可以从另一个计算机可读介质(诸如存储设备725)被读入主存储器715。包含在主存储器715中的指令布置的执行使计算系统700执行这里描述的说明性过程。还可以采用多处理布置中的一个或多个处理器来执行包含在主存储器715中的指令。在替代实施方式中,可以使用硬连线电路代替软件指令或与软件指令组合来实施说明性实施方式。因此,实施方式不限于硬件电路和软件的任何特定组合。
虽然在图7中已经描述了示例处理系统,但是本说明书中描述的主题和功能操作的实现可以使用其他类型的数字电子电路,或在计算机软件、固件或硬件中执行,包括本说明书中公开的结构及其结构等效物,或它们中的一种或多种的组合。
本公开的系统和方法提供优于现有系统的许多优点。关联来自不同实体的在线交互和离线动作需要计算系统具有对在线交互数据和离线动作数据的访问权。例如,在线交互系统可以将在线交互数据发送给离线交互数据提供者进行关联。然而,当联接在一起时,在线交互数据和离线动作数据可能会揭露关于与数据相关联的个体的PII。揭露PII是不可取的。
因此,本公开的系统和方法通过在受保护的环境中关联在线交互数据和离线动作数据来提供改进的安全性和灵活性。本公开提出了改进的加密和计算机架构方法,以促进来自不同实体的数据的双盲匹配,从而提高安全性并保护用户隐私。本公开的系统和方法产生的聚合输出没有PII。此外,本公开的系统和方法允许对聚合输出进行定制。例如,可以识别不同的度量和/或产生不同的输出变量。因此,本公开的系统和方法在保持数据隐私和安全的同时提供了优于现有解决方案的定制和灵活性。
可以使用数字电子电路或体现在有形介质、固件或硬件上的计算机软件来执行本说明书中描述的主题和操作的实施方式,包括本说明书中公开的结构及其结构等效物,或其中一项或多项的组合。本说明书中描述的主题的实施方式可以被实现为一个或多个计算机程序,即一个或多个计算机程序指令模块,其编码在一个或多个计算机存储介质上以供数据处理装置执行或控制其操作。替代地或另外地,程序指令可以编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以对信息进行编码以传输到合适的接收器装置以供数据处理装置执行。计算机可读存储介质可以是(或被包括在)计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播的信号,但计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质还可以是(或被包括在)一个或多个单独的组件或介质(例如,多个CD、磁盘或其他存储设备)中。因此,计算机存储介质既是有形的又是非暂时性的。
本说明书中描述的操作可以实现为数据处理装置对存储在一个或多个计算机可读存储设备上或从其他来源接收的数据执行的操作。
术语“数据处理装置”或“计算设备”涵盖用于处理数据的所有种类的装置、设备和机器,例如,包括可编程处理器、计算机、片上系统或上述的多个或组合。该装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或其中一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型基础设施,诸如网络服务、分布式计算和网格计算基础设施。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明性或过程性语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序、对象或适合在计算环境中使用的其他单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在包含其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于讨论的程序的单个文件或多个协调文件(例如、存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署为在一台计算机上执行,也可以在位于一个站点或跨多个站点分布并通过通信网络互连的多台计算机上执行。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,该一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行动作。处理和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以作为专用逻辑电路来实现,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适合于执行计算机程序的处理器包括,例如,通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本要素是根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括,或可操作地耦合以从一个或多个用于存储数据的大容量存储设备(例如,磁盘、磁光盘或光盘)接收数据或将数据传输到这些设备或两者。然而,计算机不需要有这样的设备。此外,计算机可以嵌入到另一个设备中,例如移动电话、个人数字助理(“PDA”)、移动音频或视频播放器、游戏控制台、全球定位系统(“GPS”)接收器,或便携式存储设备(例如,通用串行总线(“USB”)闪存驱动器)等,仅举几例。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如,内置硬盘或可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。处理器和存储器可由专用逻辑电路补充或合并到专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实现可以使用具有显示设备的计算机来执行,例如,CRT(阴极射线管)或LCD(液晶显示器)监视器,用于向用户显示信息,以及键盘和定点设备,例如鼠标或轨迹球,用户可以通过它们向计算机提供输入。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,响应于从Web浏览器收到的请求,将网页发送到用户客户端设备上的Web浏览器。
可以使用包括后端组件(例如,作为数据服务器)或包括中间件组件(例如,应用服务器)或者包括前端组件(例如,具有图形用户界面或Web浏览器的客户端计算机)(通过其用户可以与本说明书中描述的主题的实施方式进行交互)或者一个或多个这样的后端、中间件或前端组件的任何组合的计算系统来执行本说明书中描述的主题的实施方式。系统的组件可以通过任何形式或媒介的数字数据通信互连,例如通信网络。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网络(例如,因特网)和对等网络(例如,自组网(adhoc)对等网络)。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络进行交互。客户端和服务器的关系是由于在各自的计算机上运行的计算机程序而产生,并且彼此之间具有客户端-服务器关系。在一些实施方式中,服务器将数据(例如,HTML页面)发送到客户端设备(例如,出于向与客户端设备交互的用户显示数据和从与客户端设备交互的用户接收用户输入的目的)。可以在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
在一些说明性的实施方式中,本文公开的特征可以在智能电视模块(或联网电视模块、混合电视模块等)上实施,其可以包括被配置为将互联网连接与更传统的电视节目源集成的处理电路(例如,通过电缆、卫星、无线或其他信号接收)。智能电视模块可以物理地结合到电视机中或者可以包括单独的设备,诸如机顶盒、蓝光或其他数字媒体播放器、游戏控制台、酒店电视系统和其他配套设备。智能电视模块可以被配置为允许观众在网络、本地有线电视频道、卫星电视频道上搜索和查找视频、电影、照片和其他内容或存储在本地硬盘驱动器上。机顶盒(“STB”)或机顶单元(“STU”)可能包括信息家电设备,该设备可能包含调谐器并连接到电视机和外部信号源,将信号转换为内容,然后将其显示在电视屏幕或其他显示设备上。智能电视模块可以被配置为提供包括用于多个不同应用的图标的主屏幕或顶级屏幕,诸如网络浏览器和多个流媒体服务、连接的有线或卫星媒体源、其他网络“频道”等。智能电视模块还可以被配置为向用户提供电子节目指南。智能电视模块的配套应用可以在移动计算设备上运行以向用户提供关于可用节目的附加信息,以允许用户控制智能电视模块等。在替代实施方式中,特征可以在膝上型计算机或其他个人计算机、智能手机、其他移动电话、手持式计算机、平板PC或其他计算设备上实现。
虽然本说明书包含许多特定的实施细节,但这些细节不应被解释为对任何发明的范围或可能要求保护的范围的限制,而是对特定发明的特定实施方式特有的特征的描述。本说明书中在单独实施方式的上下文中描述的某些特征也可以组合或在单个实施方式中执行。相反,在单个实施方式的上下文中描述的各种特征也可以在多个实施方式中、单独地或在任何合适的子组合中执行。此外,虽然上述特征可能在某些组合中被描述为作用于某些组合,甚至最初被要求保护,但在某些情况下,可以从组合中删除一个或多个来自要求保护的组合的特征,并且要求保护的组合可以针对子组合或子组合的变体。此外,关于特定标题描述的特征可以关于和/或结合在其他标题下描述的说明性实施方式来使用;标题(如果提供)仅出于可读性目的而包括在内,并且不应被解释为限制与此类标题相关提供的任何特征。
类似地,虽然在附图中以特定顺序描述了操作,但这不应理解为要求以所示的特定次序或顺序次序执行此类操作,或者执行所有图示的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施方式中各个系统组件的分离不应理解为在所有实施方式中都需要这样的分离,应当理解,所描述的程序组件和系统一般一起可以集成到单个软件产品中或打包成体现在有形媒体上的多种软件产品。
因此,已经描述了主题的特定实现。其他实施方式在以下权利要求的范围内。在某些情况下,权利要求中记载的动作可以以不同的顺序执行,但仍能达到理想的结果。此外,附图中描述的过程不一定需要所示的特定次序或顺序次序来实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
- 用于隐私保护的数据安全方法
- 应用于服务器的数据安全方法及系统