CN116034596A - 具有令牌赎回的匿名认证 - Google Patents
具有令牌赎回的匿名认证 Download PDFInfo
- Publication number
- CN116034596A CN116034596A CN202180035302.0A CN202180035302A CN116034596A CN 116034596 A CN116034596 A CN 116034596A CN 202180035302 A CN202180035302 A CN 202180035302A CN 116034596 A CN116034596 A CN 116034596A
- Authority
- CN
- China
- Prior art keywords
- token
- attestation
- user
- application
- request
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/321—Cryptographic 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 involving a third party or a trusted authority
- H04L9/3213—Cryptographic 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 involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0884—Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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 involving digital signatures
- H04L9/3249—Cryptographic 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 involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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 involving digital signatures
- H04L9/3255—Cryptographic 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 involving digital signatures using group based signatures, e.g. ring or threshold signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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 involving digital signatures
- H04L9/3257—Cryptographic 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 involving digital signatures using blind signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3297—Cryptographic 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 involving time stamps, e.g. generation of time stamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/02—Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/42—Anonymization, e.g. involving pseudonyms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0407—Network 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/0421—Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
Abstract
本公开涉及一种用于匿名证明的方法,该方法包括:由在客户端设备上运行的应用从第一内容提供者接收要对用户进行认证以从第二内容提供者的第二域接收内容的认证请求;利用发行了证明用户针对第二内容提供者的认证的匿名证明令牌的证明令牌发行系统通过与第二请求一起传送匿名证明令牌来赎回匿名证明令牌;接收赎回结果,该赎回结果表示证明令牌是否被成功地赎回,由证明令牌发行系统使用数字签名来签名并且能操作用于在不用针对第二内容提供者识别用户的情况下针对第二内容提供者验证针对第二内容提供者认证了用户;以及向第一内容提供者传送赎回结果。
Description
背景技术
客户端设备通过诸如因特网的公用网络传送请求和其他数据。这些通信能够被其他方更改,其他方诸如拦截通信的各方和/或接收通信并将它们转发到其他方的中介。
其他方能够模拟客户端设备发送似乎源自客户端设备但实际上来自其他方的设备的请求。
各种认证技术能够用于验证试图通过公用网络执行事务的客户端设备的身份。同时,这些认证技术能够牵涉隐私关注。例如,客户端设备的用户可能不希望分享能够用于跟踪客户端设备或这些客户端设备的用户的信息(诸如稳定设备标识符),并且数据提供者可以在防止他们接收或者处理此类信息的隐私保护标准下操作。
发明内容
本说明书描述用于验证客户端设备的完整性/真实性而同时避免使用能够用于跟踪客户端设备或其用户的稳定设备标识符的认证技术。
通常,本说明书中描述的主题的第一创新方面能够被体现在一种用于匿名证明的方法中,该方法包括:由在客户端设备上运行的应用从托管在第一内容提供者的第一域上的第一服务器接收要对用户进行认证以从与第一内容提供者不同的第二内容提供者的第二域接收内容的认证请求;响应于接收到认证请求,由应用利用发行了证明用户针对第二内容提供者的认证的匿名证明令牌的证明令牌发行系统通过与第二请求一起传送匿名证明令牌来赎回匿名证明令牌;响应于第二请求由应用从证明令牌发行系统接收表示证明令牌是否被成功地赎回并且由证明令牌发行系统使用数字签名来签名的赎回结果,其中,赎回结果能操作用于在不用针对第二内容提供者识别用户的情况下针对第二内容提供者验证针对第二内容提供者认证了用户;由应用向第一内容提供者传送由证明令牌发行系统签名的赎回结果。
在一些实现方式中,赎回结果能操作用于在不用向第一内容提供者提供用户的凭证集的情况下在允许用户保持匿名时向接收者验证针对第二内容提供者认证了用户。
在一些实现方式中,第二内容提供者是新闻提供者,第一内容提供者是新闻聚合器域,以及由应用向第一内容提供者传送由证明令牌发行系统签名的赎回结果是响应于请求访问由新闻提供者托管的资源的用户动作而执行的。
在一些实现方式中,第二内容提供者是媒体托管平台,第一内容提供者是社交媒体平台,以及由应用向第一内容提供者传送由证明令牌发行系统签名的赎回结果是响应于请求访问由媒体托管平台托管的资源的用户动作而执行的。
在一些实现方式中,该方法包括:由客户端设备上的应用向能够访问客户端设备的用户的向实体认证用户的凭证的受信任程序传送对证明用户针对第二内容提供者的认证的匿名证明令牌的第一请求;由受信任程序向证明令牌发行系统传送对匿名证明令牌的第三请求,第三请求包括客户端设备的用户的凭证集;以及由应用从证明令牌发行系统接收匿名证明令牌,匿名证明令牌包括(i)指示匿名证明令牌的创建时间的证明令牌创建时间戳、以及(ii)证明令牌发行系统的第二数字签名。
在一些实现方式中,该方法包括由应用通过第一内容提供者的电子资源从第二内容提供者请求来自第二内容提供者的内容。
在一些实现方式中,该方法包括由应用接收来自第二内容提供者的内容。
在一些实现方式中,证明令牌发行系统的数字签名是根据盲签名方案而创建的。
在一些实现方式中,证明令牌发行系统的数字签名是使用组签名方案和发行给客户端设备的匿名证书而创建的,并且该方法包括将匿名证书存储在客户端设备上的安全私有密钥库中。
在一些实现方式中,传送由证明令牌发行系统签名的赎回结果进一步包括提供(i)由应用签名并且(ii)不使用户与凭证集相关的附加数据。
在一些实现方式中,该请求指示要发行的证明令牌的数目。
在一些实现方式中,该请求使用由应用维护的私有密钥利用第三数字签名进行签名,并且第三数字签名能够使用(i)对应于私有密钥并且(ii)由应用发布的公开密钥来验证。
在一些实现方式中,第二数字签名使用由证明令牌发行系统维护的私有密钥来创建,并且第三数字签名能够使用(i)对应于私有密钥并且(ii)由证明令牌发行系统发布的公开密钥来验证。
在一些实现方式中,赎回结果包括表示证明令牌是否被成功地赎回的单个比特。
这个方面的其他实施例包括对应的系统、装置和编码在计算机存储设备上的计算机程序,这些计算机程序被配置成执行方法的动作。
能够在特定实施例中实现本说明书中描述的主题以便实现以下优点中的一个或多个。
使用证明令牌来对客户端设备或用户进行认证在客户端设备与其他实体的计算机或其他设备之间提供安全通信通道。与证明令牌一起包括证明令牌中所包括的数据的数字签名使得实体能够验证证明令牌中的数据在证明令牌被创建之后未被改变。另外,在证明令牌中包括令牌创建时间使得接收者能够确定请求是否是新的或者潜在地为由第三方欺诈地使用授权设备的身份来执行操作的方案的部分。
例如,证明令牌能够用于在不用向特定资源识别客户端设备的情况下识别客户端设备被授权访问该资源,从而允许保持该资源的方确信客户端设备是合法授权用户并且允许客户端设备维护其关于该资源的匿名性。
证明令牌系统提供跨相同平台内的不同web站点并且跨不同平台对设备和/或用户进行认证而不用与web站点或平台共享个人可识别信息(PII)的能力。例如,证明令牌系统允许用户在不用向第三方内容聚合平台和web站点或提供者提供PII的情况下通过第三方内容聚合平台和web站点来访问来自需要认证的平台或提供者的资源和内容。证明令牌系统是隐私保护的,从而在不同web站点与平台之间强制执行边界,并且以方便的无缝方式提供对资源和内容的访问。不是向第三方内容聚合平台提供诸如用户名和密码的PII以使用此类PII来访问资源,而是客户端设备能够提供向第三方内容聚合平台认证客户端设备的用户能够访问资源的赎回结果。因此,第三方内容聚合平台不接收用户的通常用于访问资源的PII(例如,用户的将用于直接访问资源的用户名和密码),并且资源的发布者不能够确定用户正在通过第三方内容聚合平台访问资源。这保护用户关于用户的用于资源的PII的隐私并且保护用户使用第三方内容聚合平台的隐私。
证明令牌系统通过去除用户摩擦的来源来改进用户体验。例如,证明令牌能够用于在不需要用户提供附加认证信息的情况下允许用户访问受限资源。
证明令牌还能够包括指示传送了证明令牌的客户端设备的完整性的设备完整性判决,这使得证明令牌的接收者能够验证数据来自受信任客户端设备,例如,而不是来自模拟器或受损设备。设备完整性判决能够由受信任设备分析器(例如,第三方设备分析器)生成并数字签名,使得证明令牌的接收者能够验证客户端设备由受信任设备分析器评价并且设备完整性判决中的数据在由受信任设备分析器创建之后未被修改。
虽然证明令牌保护从客户端设备传送的通信的完整性,但是存在与证明令牌的使用相关联的潜在隐私问题。第一隐私问题是在与内容发布者或平台的多次交互内重复使用相同证明令牌能够潜在地使得证明令牌接收者能够使由相同客户端设备传送的多个请求相关并且基于相关来聚合用户数据。本文档中描述的技术能够通过使用各自包括客户端设备的独特公开密钥的多个证明令牌来增强隐私以防这种相关。例如,客户端设备能够生成一批N个公开/私有密钥对,并且然后将这N个公开密钥发送到第三方设备分析器以接收一批N个对应的证明令牌。然后客户端设备能够例如针对每个请求使用新的证明令牌;或者客户端设备能够针对某个时间间隔内的所有请求使用相同证明令牌;或者客户端设备能够针对源自客户端设备上的相同应用的所有请求使用相同证明令牌;或者它们的某种组合。限制每个公开密钥的使用限制接收者能够基于公开密钥使之相关的请求的量,并且能够增加应用服务器在它消费赎回记录时具有的确信的量。例如,应用服务器能够确定令牌越旧,客户端已经将令牌无意地暴露给恶意软件的可能性越大。使用这种分批方法还通过具有更少的请求要处理来降低设备分析器上的负担,降低网络带宽的消耗,并且降低在传送将包括证明令牌的请求时客户端设备处的延时,在每次需要证明令牌时客户端设备都发送对证明令牌的请求的情况下将会引入该延时。
第二隐私问题是与设备分析器共享客户端设备的稳定公开密钥能够潜在地使得设备分析器能够跟踪客户端设备。例如,如果多个截然不同的证明令牌的接收者能够得知设备分析器在来自相同设备的同一批请求中接收到那些证明令牌,则因此令牌的接收者能够使由相同客户端设备传送的多个请求相关并且基于相关来聚合用户数据。接收者将需要与设备分析器数据存储串通或者破坏设备分析器数据存储以便获得此类数据。本文档中描述的技术能够通过向设备分析器发送公开密钥的盲化版本而不是公开密钥的原始值来增强隐私以防此类跟踪。例如,客户端设备能够生成一批N个公开-私有密钥对,使N个公开密钥(或公开密钥的密码散列)盲化,并且然后将N个盲化密钥发送到设备分析器;第三方设备分析器返回一批N个对应的盲签名,而永远不会接收到客户端设备公开密钥的原始值。
所描述的证明令牌可以由于所描述的盲化(blinding)方案而对仅有限量的信息进行编码,以便增加在令牌内对期满时间进行编码的难度并且增加令牌的安全性。例如,在存在有限量的信息的情况下限制令牌的生存期的一种方法是将每个令牌定义为仅在用于生成该令牌的发行密钥的生存期期间有效。
防止PII与提供受限内容和/或资源的请求证明令牌的方或用户正在通过其访问受限内容和/或资源的方共享的令牌生成和赎回过程能够作为资源和/或内容访问数据流的部分与现有系统集成。此过程在不需要用户做出附加努力的情况下扩展中介平台和web站点的功能性并且增加请求证明令牌的各方的可及范围时改进用户隐私、体验、以及对资源和/或内容的访问。此外,此过程不需要请求令牌的方接收有关被认证用户是谁或令牌正在如何被创建的任何信息。接收者简单地接收指示试图访问特定资源和/或内容的用户或设备已经被认证、他们的身份被验证为授权方、或者他们否则在特定级别上值得信任的证明令牌。接收者还确信请求客户端设备/用户的身份以确保他们是正确用户/被认证用户。
在下面参考各图描述前述主题的各种特征和优点。根据本文描述的主题和权利要求,附加特征和优点是显而易见的。
附图说明
图1A是在其中分发数字内容的环境的框图。
图1B是用于请求、发行并且赎回证明令牌的示例过程的数据流图。
图2是图示用于请求并且接收一批N个证明令牌的示例过程的流程图。
图3是图示用于发送、接收并且证实证明令牌的示例过程的流程图。
图4是图示用于请求并且接收一批N个盲签名的证明令牌的示例过程的流程图。
图5是图示用于发送、接收并且证实盲签名的证明令牌的示例过程的流程图。
图6是示例计算机系统的框图。
在各个附图中相同的附图标记和名称指示相同的元件。
具体实施方式
通常,本文档中描述的系统和技术能够在诸如在浏览器的沙盒环境内访问的web站点的隔离环境与隔离环境外部的客户端设备和诸如内容发布者的其他实体之间提供安全通信通道。在安全沙盒环境内,能够在隔离环境内安全地执行代码。然而,为了保护环境的安全性,在环境内部运行的代码可能不能够访问环境外部的信息。例如,web浏览器可能不能够访问诸如设备和/或做出的请求的真实性的设备级别信息。在一些实现方式中,尽管web浏览器可以能够访问单独的设备上“设备完整性验证”子系统能够访问的相同原始输入信息,但是将该信息变换成设备完整性判决的实际过程在浏览器其本身内复制起来可能在技术上是不切实际的或重复的。如下描述的系统和技术提供从沙盒环境外部到沙盒环境内部的流水线。该过程保证安全性,因为数据不能被伪造,并且保证隐私,因为数据不能用于跟踪用户活动。
诸如客户端设备和/或其他内容发布者或提供者的外部实体能够通过网络与请求和其他数据传输一起提供证明令牌(或用于赎回令牌的赎回记录)以证实请求的完整性和客户端设备的完整性。请求能够包括例如管理用户的数据(例如,删除用户相关数据)的请求,和/或对内容和/或访问资源的请求。使用证明令牌来使通信通道安全通过防止任何数据泄漏到隔离环境或向其提供了证明令牌的请求方来确保用户隐私和数据安全性。证明令牌包括若干层验证,这确保对客户端设备的认证不能被伪造并且用户隐私被保护,使得无PII被传送。赎回过程以及将签名的赎回结果用作提供给请求访问的web站点或正在从其请求资源的位置的安全信号而不是令牌其本身确保令牌不能用于跟踪客户端设备/用户活动或者确定用户的身份。
在一些方法中,证明令牌能够使用受信任程序的私有密钥进行数字签名。受信任程序能够机密地维护私有密钥。证明令牌能够尤其包括与私有密钥相对应的公开密钥、有效载荷和证明令牌。证明令牌能够包括判决,该判决指示如由受信任设备完整性系统确定的客户端设备的完整性级别,该受信任设备完整性系统例如为由与客户端设备的用户和证明令牌的接收者不同的实体维护的第三方设备完整性系统。证明令牌还能够包括客户端设备的公开密钥(或公开密钥的密码散列)以将证明令牌绑定到客户端设备。
证明令牌能够由证明令牌发行服务器使用证明令牌发行服务器保持机密的私有密钥来数字签名。能够将与此私有密钥相对应的公开密钥提供给接收者系统,使得它们能够信任客户端设备由证明令牌发行系统评价了,例如,通过使用公开密钥来验证证明令牌的数字签名。使用两对密钥的此组合提供使得接收者能够证实客户端设备的完整性和从客户端设备接收的通信的完整性的安全通信通道并且将证明令牌绑定到客户端设备,使得其他设备不能使用证明令牌来伪造其完整性。
在一些方法中,证明令牌发行系统不接收用于包括在证明令牌中的公开密钥的原始数据。替代地,受信任应用能够通过使用盲签名方案使公开密钥或其衍生物盲化来发送盲化公开密钥或公开密钥的盲化衍生物(例如,公开密钥的盲化截断密码散列)。利用盲签名方案,证明令牌发行系统能够在不用接收客户端设备的公开密钥的原始值的情况下证明客户端设备的完整性,从而通过降低经由公开密钥进行潜在跟踪的风险来增强客户端设备或用户的隐私。证明令牌发行系统能够发布接收者能够用于验证盲签名的盲签名验证密钥。
在其他方法中,能够使用组签名方案,其中证明令牌发行服务器作为组管理器。例如,证明令牌发行服务器能够为M个受信任度组发布M个组验证密钥,将客户端设备指配给M个受信任度组之一,并且向客户端设备递送匿名证书。客户端设备能够使用匿名证书来对证明令牌进行匿名签名,并且这些匿名签名能够由接收者使用所发布的组验证密钥来验证。利用组签名方案,证明令牌发行服务器和证明令牌的接收者均不需要接收客户端设备的公开密钥的原始值,从而通过降低经由公开密钥进行潜在跟踪的风险来进一步增强客户端设备或用户的隐私。
图1A和图1B示出用于请求、发行并且赎回证明令牌的系统100和过程190的示例。图1A是在其中分发数字内容的环境100的框图。图1B是用于在例如如图1A所示的环境100中请求、发行并且赎回证明令牌的示例过程190的数据流图。示例环境100包括数据通信网络105,诸如局域网(LAN)、广域网(WAN)、因特网、移动网络或它们的组合。网络105连接客户端设备110、发布者130、web站点140、内容平台150、证明令牌发行(ATI)服务器170(其还能够被称为令牌发行系统)和设备完整性系统180(其还能够被称为设备完整性计算系统)。示例环境100可以包括许多不同的客户端设备110、发布者130、web站点140、内容平台150和证明令牌发行服务器170。
在一个特定示例中,客户端设备的用户能够试图访问或者请求来自请求对用户和/或客户端设备110进行认证的web站点的资源和/或内容。如图1A所示的系统和如图1B所示的过程在向提供资源和/或内容的实体提供用户和/或客户端设备是被授权访问或请求资源的合法用户的验证时提供用于用户访问或请求资源和/或内容的无缝方式。
web站点140是或者能够包括与域名相关联并且由一个或多个服务器托管的一个或多个资源145。示例web站点是以HTML格式化的web页面的集合,这些web页面能够包含文本、图像、多媒体内容和编程元素,诸如脚本。每个web站点140由发布者130维护,该发布者130是控制、管理和/或拥有web站点140的实体。
资源145是能够通过网络105提供的任何数据。资源145由与资源145相关联的资源地址(例如通用资源定位符(URL))识别。资源包括HTML页面、文字处理文档以及可移植文档格式(PDF)文档、图像、视频和馈送来源,仅举几例。资源能够包括诸如单词、短语、图像和声音的内容,这些内容可以包括嵌入式信息(诸如超链接中的元信息)和/或嵌入式指令(诸如脚本)。
内容平台150是提供对各种不同的无所属资源和/或域的访问的平台。内容平台150能够提供对彼此或与内容平台150不相关联的资源的访问。例如,内容平台150能够是提供对来自各种其他web站点的内容的访问的社交媒体平台,诸如视频托管平台、图像托管平台、博客等。内容平台150能够与各种内容发布者域通信和/或与各种内容发布者域集成。例如,内容发布者域160能够是包括内容平台150提供对其的访问的资源的不同web站点。在一些实现方式中,内容发布者域160能够是类似于web站点140的不同web站点,并且提供对类似于资源145的资源的访问。例如,内容发布者域160-3能够是提供对由其用户上传的图像的访问的图像托管web站点。在一些实现方式中,内容平台150能够通过响应于数字组件请求代表数字组件提供者160选择数字组件的实体(内容发布合作伙伴152)来请求并提供对资源的访问。
客户端设备110是能够通过网络105通信的电子设备。示例客户端设备110包括个人计算机、移动通信设备(例如,智能电话)、数字媒体播放器、智能扬声器、可穿戴设备(例如智能手表),以及能够通过网络105发送和接收数据的其他设备。客户端设备110还能够是游戏设备或流传输设备。客户端设备110通常包括诸如web浏览器和/或本机应用的应用111以促进通过网络105发送和接收数据。本机应用是为特定平台或特定设备开发的应用。发布者130能够开发本机应用并且将本机应用提供给客户端设备110。
客户端设备110能够包括一个或多个私有密钥112和一个或多个对应的公开密钥113。私有密钥112和公开密钥113能够由客户端设备110上的应用111、受信任程序114和/或其他程序维护。客户端设备110能够存储一个或多个不同的私有/公开密钥对集合。在一些实现方式中,私有密钥112和公开密钥113被存储在安全储存器115中。
客户端设备110还能够包括用户或客户端设备110已经向其认证的受信任程序114。在一些实现方式中,受信任程序114能够是客户端设备110的本机应用。例如,受信任程序114能够是设备的操作系统,或用于在客户端设备110上执行的与客户端设备110向其认证的特定实体相关联的应用。
例如,受信任程序114能够向其他应用发行证明令牌以用于在使来自客户端设备110的通信安全时使用。在一些实现方式中,受信任程序114被客户端设备110从其请求资源和/或内容并且需要认证的实体信任。例如,受信任程序114能够是被请求证明令牌的实体信任的程序。在一个示例中,受信任程序114能够是用于实体的可通过应用111访问的基于web的接口。在一些实现方式中,受信任程序114与请求证明令牌的实体相关联。例如,受信任程序114能够是由示例新闻组织维护的移动应用。示例新闻组织能够创建并维护可由付费订户访问的新闻内容以及对所有访问者可访问的新闻内容。
证明令牌发行(ATI)服务器170生成由受信任程序114请求的证明令牌。受信任程序114能够包括来自可靠来源的难以伪造的受信任代码。在一个示例中,受信任程序114能够是操作系统、操作系统的一部分、web浏览器等。通常,受信任程序114难以渗入,并且作恶者篡改受信任程序114将需要花费的时间和努力量是过高的。附加地,因为受信任程序114由可靠来源提供和维护,所以出现的任何漏洞都能够由该来源解决。以这种方式使用这样的受信任程序在客户端设备处提供增加的安全性的技术优点,因为受信任程序难以渗入。附加地,受信任程序提供减轻受信任程序中的漏洞的优点,因为该程序由可靠来源维护。
受信任程序114能够是客户端设备110本地的。例如,受信任程序114能够是客户端设备110的操作系统的设备驱动程序。在一些实现方式中,受信任程序114完全在客户端设备110本地操作,从而减少传送用户信息的需要。在一些实现方式中,受信任程序114能够在客户端设备110本地并且通过诸如网络105的网络操作。例如,受信任程序114能够是安装在用户设备110上的通过网络105传送和接收信息的移动应用。
如在下面更详细地描述的,受信任程序114能够生成加密密钥(例如,公开/私有密钥对),将加密密钥存储在安全储存器115(例如,安全高速缓存)中,将证明令牌存储在安全储存器115中,生成证明令牌,生成加密密钥或其衍生物的盲签名,和/或取出并存储证书。在一些实现方式中,受信任程序114与设备完整性客户端交互以向设备完整性系统发送数据并且从设备完整性系统接收数据。在一些实现方式中,受信任程序114被配置成针对指定类型的请求(例如,改变用户隐私设置的请求)集合中的每一个生成对证明令牌122的请求。
证明令牌能够由实体使用来证实请求的完整性和客户端设备110的完整性。例如,一些实体可能试图伪造资源或内容请求的参数,例如,以指定将与内容一起被提供的不同资源和/或以指定将向其呈现内容的不同用户以便获得对那些实体可能不能够正常地访问的数据的访问。另外,一些恶意方可能试图出于不法目的而模拟其他人的客户端设备。
在由系统100执行的过程中,向ATI服务器170赎回证明令牌以生成签名的赎回结果(SRR)。签名的赎回结果指示证明令牌是否被成功地赎回,但是不包括诸如用户标识符、令牌被生成的时间、令牌被赎回的时间、由受信任程序114提供的证实信息、或用户的其他PII的信息。签名的赎回结果还能够由实体使用以证实请求的完整性和客户端设备110的完整性,并且能够代替证明令牌被使用。通过将签名的赎回请求接受为证实而不是执行令牌赎回和证实过程,由系统100执行的过程在确保请求和用户已经被认证时保护用户的隐私。在一些实现方式中,除了证明令牌之外还能够使用签名的赎回结果来证实请求的完整性。
在此系统的场境中,证明令牌和签名的赎回结果两者都由实体使用以验证用户被认证以接收其他数据,诸如请求的内容或信息。签名的赎回结果由ATI服务器签名,并且证明用户被认证以接收正被请求的特定数据,而不提供识别请求用户的数据或其他信息,诸如用户被认证的程度或用户的认证的级别。在一个示例中,实体能够将证明令牌提供给资源提供者以供赎回,资源提供者赎回证明令牌,对赎回的结果进行签名,并且结果上的签名能够用于通知实体证明令牌先前被成功地赎回,并且因此请求资源的用户被认证以接收所请求的资源。
证明令牌和签名的赎回结果过程通过中介在客户端设备110与其他实体的计算机或其他设备之间提供安全通信通道,这防止其他人更改请求并且确保请求来自证实的客户端设备110,并且通过代理来自授权用户。
能够是很少量的数据(例如,2个比特)的签名的赎回结果除了减少在例如web站点与在沙盒环境外部运行的应用之间传送的数据量之外,还在诸如web浏览器的沙盒环境与在该沙盒环境外部运行的应用之间提供安全通信通道。在一些实现方式中,签名的赎回结果能够超过2个比特。例如,签名能够包含超过2个比特。在一些实现方式中,在赎回结果与证明令牌发行服务能够访问的客户端设备的数据之间共有的比特(即,“可连接比特”)的数目受限制以便降低观察者将相同用户或设备的交互与证明令牌发行服务和SRR的接收者链接的能力。
例如,如果证明令牌仅包括可与证明服务连接的2个比特,则这种有限量的信息保证从证明令牌导出的诸如赎回结果的任何信息将具有至多可与证明服务连接的2个比特。不在web浏览器与在web浏览器外部运行的应用之间直接传送证明数据,因为证明数据向ATI服务器既证实且赎回。由于此过程,在web浏览器外部运行的应用与web浏览器的安全环境之间传送的数据传递与证明令牌提供的相同的信息(即,特定实体和/或请求已经被认证并且实体的身份已经被成功地证明),但是没有暴露或拦截的风险,此过程保护用户的隐私。
ATI服务器170能够生成具有不同形式或者包含不同内容的不同类型的证明令牌122。在一些实现方式中,证明令牌122包括数据集,该数据集包括ATI服务器170的公开密钥173、指示证明令牌122被创建的时间的令牌创建时间、有效载荷数据、以及由设备完整性系统或者由受信任程序114使用从客户端设备110接收的数据生成的完整性判决。证明令牌122还能够包括由ATI服务器170使用与包括在证明令牌122中的公开密钥173相对应的私有密钥172生成的数字签名和数据集。也就是说,ATI服务器170能够使用私有密钥172来对数据集进行数字签名并且将得到的数字签名与数据集一起包括在证明令牌122中。在一些实现方式中,证明令牌将用户的凭证包括在有效载荷内。
在如关于图1A和图1B描述的过程中,ATI服务器170生成并且赎回证明令牌,从而在不需要每个实体创建并且维护证明令牌系统的情况下提供证明令牌的安全益处,并且向用户提供附加隐私益处。在下面关于图2至7描述通过其生成证明令牌的过程。附加地,因为请求过程包括令牌赎回过程使得仅证明令牌系统需要在限制对用户的PII的转移和访问时保护用户的隐私并且提供证明令牌的益处的验证数据。
在一些实现方式中,作为安全措施能够将证明令牌设置为在预定时间段内期满。通过在证明令牌期满时需要证明令牌,ATI服务器170能够确保必须定期地请求令牌,并且因此确保正在证明其身份的实体被定期地认证。
当证明令牌期满时,能够更新ATI服务器170处的对应数据以确保证明令牌不能在稍后被赎回。在一些实现方式中,ATI服务器170在确定是否赎回令牌并且生成签名的赎回结果之前评价数据,诸如证明令牌的年龄。
在一些实现方式中,证明令牌122包括数据集,该数据集包括有效载荷数据、指示证明令牌122被创建的时间的证明令牌创建时间、以及数据集的数字签名。在此示例中,ATI服务器170能够使用组签名方案以及由设备完整性系统或ATI服务器170发行给客户端设备110的证书来生成数字签名。
通常,证明令牌的接收者然后证实证明令牌和/或包括在证明令牌中的完整性判决(如果适当的话)。如果证明令牌被成功地证实,则接收者能够确定客户端设备110是否是受信任设备并且相应地处理请求。如果证明令牌未被成功地证实,则接收者能够忽略或者删除请求,例如,而不对请求做出响应或者响应于请求而改变数据。
证明令牌创建时间指示证明令牌122被创建的时间。受信任程序114能够记录受信任程序114创建证明令牌的创建时间。此证明令牌创建时间能够是高分辨率时间戳(例如,准确到秒、到毫秒或者到微秒)。证明令牌创建时间能够用于确定包括证明令牌122的请求120是新请求还是最近请求。例如,接收到证明令牌122的实体能够将令牌创建时间与当前时间或接收到证明令牌122的时间进行比较。如果两个时间之间的差异超过阈值,则实体能够确定请求不是新的或者是无效的,如在下面更详细地描述的。
证明令牌创建时间还能够用于检测重放攻击。例如,如果接收到包括相同证明令牌创建时间的具有相同数据集的多个请求,则接收到请求的实体能够确定请求是重复本和/或请求是重放攻击的部分。
证明令牌创建时间结合其他数据还能够用作用于请求的事务标识符。例如,在其中证明令牌122包括公开密钥113的实现方式中,事务标识符能够是证明令牌122的证明令牌创建时间和证明令牌122的公开密钥113中的两个或更多个的组合。事务标识符能够用于对从多个通道接收的相同请求120的多个版本进行重复数据删除。例如,ATI服务器170能够从受信任程序114和相关联的web站点140两者接收到相同请求。在另一示例中,ATI服务器170能够从内容平台150和内容发布合作伙伴152两者接收到相同请求。在此示例中,事务标识符能够是基于证明令牌122的令牌创建时间和证明令牌122的公开密钥113。ATI服务器170能够比较两个或更多个请求中的两条数据以确定请求是否是重复本。
有效载荷能够包括个别请求120的数据。例如,能够包括关于所请求的资源的信息(例如,资源的主题)、关于资源的场境的信息(例如,槽的数目、槽的类型、槽的大小等)、关于客户端设备110的信息(例如,设备的类型、设备的IP地址、客户端设备110的地理位置)(如果用户已经启用了此特征)和/或其他适当信息。
在任一示例中,能够赎回证明令牌,并且能够将赎回结果包括在应用111提供到web站点140的对内容的请求中,使得web站点能够保证请求是有效的和/或来自授权用户,但是不能访问用户的PII。应用111能够在发送到内容平台150或诸如web站点140的其他接收者以便访问资源145的请求中包括SRR。
如果请求120是在发布者130、内容平台150、内容发布合作伙伴152、内容发布者域160或另一实体处管理用户的数据,则请求120能够包括指定所请求的变化的数据。例如,如果用户选择从内容发布者域160-2去除所有用户的数据,则有效载荷将包括指定数据和内容发布者域160-2(例如,内容发布者域160-2的标识符或网络地址)的这种去除的数据。
设备完整性系统180能够附加地评价从客户端设备110例如从受信任程序114接收的设备级别欺诈检测信号,并且基于设备级别欺诈检测信号来确定客户端设备110的受信任度(或完整性)级别。设备级别欺诈检测信号能够包括表示客户端设备的操作特性或度量的数据,这些数据能够用于确定客户端设备是否受损或者客户端设备是否正在操作为正常客户端设备或模拟客户端设备。相对于模拟器,某些操作特性和度量对真实客户端设备而言常常是不同的。在一些实现方式中,设备级别欺诈检测信号包括应用级别欺诈检测信号,这些应用级别欺诈检测信号包括请求证明令牌的应用111的操作特性和度量。受信任程序114能够收集这些设备级别欺诈检测信号并且将这些信号包括在对证明令牌的请求中。
设备完整性系统180能够发行指示客户端设备110的受信任度(或完整性)级别的判决。接收者使用判决来确定是否信任包括该判决的请求120。例如,如果该判决指示客户端设备110不值得信任,则接收者能够忽略请求,例如,不对请求做出响应。
在一些实现方式中,能够执行如关于图1至7所描述的过程,使得受信任程序114是用户已经向其认证的web站点,并且web站点140是用户正在请求访问或者用户正在从其请求资源的程序或应用。
当应用111通过网络105发送用于访问特定资源145或其他内容的请求时,应用111能够使用隐私保护技术来证明用户的身份、真实性和/或授权状态。这种隐私保护技术允许在不用向从其请求资源或其他内容的应用111或web站点140中的任一个提供能够用于识别或者否则跟踪用户的信息的情况下生成并赎回证明令牌。在图1B中示出了用于执行隐私保护技术的示例190过程。
在步骤A中,应用111能够生成对一个或多个证明令牌的请求120并且将令牌请求120提供给受信任程序114。例如,应用111能够是客户端设备110的用户正在通过其访问诸如web站点140的各种web站点并且/或者正在请求访问各种资源或者从各种资源请求内容的web浏览器,各种资源诸如为资源145、发布者130和内容平台150以及其他实体。在此示例中,受信任程序114能够是客户端设备110上被应用111正在从其请求资源或者应用111正在请求访问的实体信任的应用。在一个示例中,受信任程序114能够是由示例新闻组织为智能电话创建和托管的应用,并且用户可以正在请求通过web浏览器111上的新闻聚合器请求访问由示例新闻组织托管的web站点140上的新闻文章。
客户端设备110的用户能够向受信任程序114提供登录凭证,使得用户向受信任程序认证。例如,用户能够使用他们关于示例新闻组织的账户的用户名和密码来登录到示例新闻组织。账户能够是免费账户或付费订阅账户,并且用户可以被授予对没有登录凭证的用户无权查看、访问和/或接收的特定内容和/或资源的附加授权。例如,示例新闻组织可以向没有任何登录凭证的用户提供对其文章的某个子集的访问,向拥有没有付费订阅的账户的登录凭证的用户提供对其文章的更大子集的访问,并且向拥有具有付费订阅的账户的登录凭证的用户提供对其文章和内容的完整档案的访问。
应用111能够在不用从web站点140、内容平台150和/或其他实体接收对证明或完整性信息的请求的情况下执行步骤A。例如,应用111能够以定期间隔向受信任程序114传送证明令牌请求120以刷新证明令牌。在一些实现方式中,证明令牌能够在预定时间段之后期满以确保证明数据仍然是准确的并且降低第三方或不良行为者在没有授权的情况下访问证明数据并且使用证明数据的可能性。当证明令牌期满时,应用111能够删除期满的证明令牌,自动地生成对证明令牌的请求120,并且将该请求提供给受信任程序114。
在步骤B中,受信任程序114能够生成对证明令牌的签名请求,从而允许诸如证明令牌发行(ATI)服务器170的令牌发行服务器基于由受信任程序114提供的信息来生成证明用户的身份的证明令牌。
例如,由示例新闻组织创建并托管的智能电话应用114能够创建对证明令牌的请求121并且将该请求提供给ATI服务器170。此请求能够由示例新闻组织应用114签名以指示有关该请求的完整性信息。例如,请求能够由示例新闻组织智能电话应用114签名以指示该请求是否是代表具有登录凭证的用户做出的和/或登录凭证的类型(即,免费账户、第一级付费订阅账户、共享家庭计划上的账户等)。在一些实现方式中,请求上的签名能够提供对请求和/或实体是否被认证的判决。例如,示例新闻组织应用能够确定请求是合法的和/或用户已经通过应用使用有效凭证向示例新闻组织认证了。示例新闻组织应用114然后能够与请求121一起包括认证的判决。
在一些实现方式中,请求121是由受信任应用114使用来自应用111的请求120生成以创建请求121的新请求。在一些实现方式中,请求120由受信任应用114签名以指示请求和/或用户的有效性,并且签名的请求120作为请求121被传送。在一些实现方式中,请求120和由受信任应用114提供的有效性信息一起作为请求121被传送。
因为应用111不直接请求证明令牌,所以应用111不需要访问包括在对证明令牌的请求中的信息,并且因此能够在不能够访问用户的PII的情况下促进对特定资源的访问和/或内容的递送。这允许以保护用户的隐私的无缝方式执行证明过程。尽管应用111能够接收、存储并且赎回证明令牌,如在下面关于图1A和图1B的步骤C-I所描述的,但是应用111不直接接收或者能够访问除用户已经给予应用111访问的权限的PII以外的用户提供给受信任程序114的PII。因此,除了保护用户的隐私之外,如所描述的证明令牌生成和赎回过程还在不需要来自用户的PII信息的情况下附加地允许应用111提供诸如内容聚合的功能性。此过程改进系统的功能,从而创建更安全的信息流并且减少从用户需要的输入量。
如关于图1A和图1B描述的过程包括两个不同的签名集合,从而在信任链中提供两个步骤。证明令牌发行者对证明令牌和/或签名的赎回结果进行签名,并且web浏览器在访问web站点和/或资源的一部分的请求上包括签名。
如以上所讨论的,在一些方法中,受信任程序114、应用111或客户端设备110能够与证明令牌请求(以及与设备公开密钥相关联的设备完整性判决)一起包括一个或多个私有/公开密钥对。在一些实现方式中,私有/公开密钥对能够跨多个证明令牌变化,以增强客户端设备或用户的隐私以防被证明令牌接收者跟踪。例如,客户端设备能够生成成批的私有/公开密钥对并且从证明令牌发行服务器检索对应成批的证明令牌,使得证明令牌的重复使用被减少或者消除。在图2中描绘了此分批过程的说明性示例。
在步骤C中,ATI服务器170发行证明令牌。此令牌发行步骤能够包括许多不同的部分。通常,ATI服务器170发行承载证明请求客户端设备和/或用户的身份的很少数目的比特的证明令牌。在发行证明令牌之前,ATI服务器170能够验证请求是有效的,从而为web站点140、资源145、内容发布者域160和/或向其提供SRR的任何其他实体提供附加的安全层。
例如,ATI服务器170能够验证请求121上的签名。在一些实现方式中,如上所述,受信任程序114能够在请求121上提供盲签名。在一些实现方式中,证明令牌发行服务器不接收用于包括在证明令牌中的公开密钥的原始数据。替代地,客户端设备能够通过使用盲签名方案使公开密钥或其衍生物盲化来发送盲化公开密钥或公开密钥的盲化衍生物(例如,公开密钥的盲化截断密码散列)。利用盲签名方案,证明令牌发行服务器能够在不用接收客户端设备的公开密钥的原始值的情况下证明客户端设备的完整性,从而通过降低经由公开密钥进行潜在跟踪的风险来增强客户端设备或用户的隐私。证明令牌发行服务器能够发布接收者能够用于验证盲签名的盲签名验证密钥。
一旦ATI服务器170已经验证了请求的有效性,ATI服务器170就能够关于受信任程序114和/或与受信任程序114相关联的实体发行证明客户端设备110和/或用户的身份的证明令牌122。
在步骤C中发行的证明令牌的数目能够直接对应于在步骤A和/或步骤B中请求的证明令牌的数目。例如,应用111能够在步骤A中请求5个证明令牌,并且受信任程序114能够向ATI服务器170提供对5个证明令牌的请求。要请求和/或发行的证明令牌的数目能够由应用111、受信任程序114、客户端设备110和/或ATI服务器170确定。
在一些实现方式中,ATI服务器170能够根据请求的证明令牌的数目改变发行的证明令牌的数目。例如,ATI服务器170能够基于从各种来源请求的证明令牌的平均数目来自动地确定要响应于请求而发行的证明令牌的数目。ATI服务器170能够通过使安全性与流量的减少平衡来确定要响应于请求而发行的证明令牌的数目:发行更多的令牌减少必须请求然后发行令牌的次数,而且还减少验证请求的有效性和应用111的用户的身份的频率。
在一些实现方式中,在步骤C中发行的证明令牌的数目取决于能够被发行的证明令牌的最大数目。例如,证明令牌接收者能够发布(1)关于能够在所选时间帧内从每个个体客户端设备或应用向接收者的所选目的地域发送的令牌的数目的限制(例如,在Y秒、分钟或小时内不超过X个请求);(2)关于能够在所选时间帧内从个体客户端设备上的一个或多个所选应用向接收者的所选目的地域发送的令牌的数目的限制(例如,在Y秒、分钟或小时内来自应用A或来自除应用A以外的任何应用的请求不超过X个);(3)关于能够在所选时间帧内从个体客户端设备向接收者的所选目的地域内的所选端点发送的令牌的数目的限制;(4)关于能够在所选时间帧内从客户端设备上的一个或多个所选应用向所选目的地域内的所选端点发送的令牌的数目的限制;或(5)此类限制中的两个或更多个的任何组合。
证明令牌122其本身能够是指示持有者是否被认证的单个信息比特。例如,值0能够指示持有者未被认证,并且值1能够指示持有者被认证。
ATI服务器170向应用111发行的响应能够包括证明令牌122其本身并且能够附加地包括1个或多个加密的信息比特。在一些实现方式中,附加信息比特能够被包括在证明令牌122中,使得证明令牌122包括指示持有者是否被认证的1个比特和1个或多个附加信息比特。例如,在发行时,ATI服务器170能够包括要从应用111的安全沙盒环境外部传递到应用111的安全沙盒环境内部的1比特私有元数据(诸如验证的用户凭证或其他数据)。
ATI服务器170能够附加地使用多个私有签名密钥来对证明令牌进行签名。能够使用由ATI服务器170提供的对应验证密钥来验证的这些私有签名密钥用作作为信任链的部分的签名。当证明令牌的接收者能够使用由ATI服务器170提供的对应验证密钥来验证签名密钥时,接收者能够信任ATI服务器170发行了证明令牌。对证明令牌进行签名的此过程能够使用例如盲签名方案来执行,使得证明令牌发行服务器不会看到客户端设备的公开密钥的原始数据。例如,客户端设备能够生成成批的私有/公开密钥对,并且然后在将公开密钥发送到证明令牌发行服务器以检索对应成批的证明令牌之前使用盲签名方案来使公开密钥(或这些公开密钥的能够被用作用于盲签名方案的提交阶段的值的合适的衍生物,诸如公开密钥的密码散列或与设备型号级联的公开密钥的密码散列)盲化。在此示例中,证明令牌使用公开密钥来盲签名。在图4中描绘了此分批过程的说明性示例。
附加地,ATI服务器170能够与由ATI服务器170提供的对应验证密钥一起使用多个私有签名密钥来在类似于以上关于在步骤C中对证明令牌进行签名的过程中对SRR进行签名。
n个验证密钥和单个信息比特的组合提供n*2个不同的组合,并且这些组合附加地将少量信息加密到可由应用111验证的令牌中。经加密的信息量可由诸如web浏览器的应用111验证,以确保附加信息未被加密到令牌中,因为加密的结果将揭示被加密的比特的数目。如果应用111确定附加数据已经被加密到证明令牌中,则应用111不需要存储令牌或者赎回它。例如,如果应用111在存储令牌之前验证证明令牌,则应用111能够简单地丢弃令牌。如果例如应用111在赎回之前验证证明令牌,则应用111能够丢弃令牌并且避免试图赎回令牌。
例如,如果ATI服务器170试图将超过预期数目的比特加密到证明令牌中,则证明令牌将不能通过由应用111执行的检查。应用111能够例如定期检查由ATI服务器170提供的公开密钥和/或验证密钥。应用111然后能够使用公开密钥来验证ATI服务器170的数字签名。然而,如果验证密钥均未验证证明令牌,则应用111将不试图赎回令牌并且可以丢弃证明令牌。
在步骤D中,应用111存储从ATI服务器170接收的证明令牌。例如,应用111从ATI服务器170接收证明令牌122,并且然后将该令牌存储在安全储存器中。例如,应用111能够将证明令牌122存储在由应用111或客户端设备110维护的安全高速缓存中。
在步骤E中,发生用于证明令牌赎回的触发事件。在一些实现方式中,web站点140能够在提供访问或者传送资源之前从应用111请求证实。例如,如果客户端设备110的用户试图访问用于向他们在示例社交媒体web站点140上的简档添加定制背景的特征,则示例社交媒体web站点140可以在授予对该特征的访问之前从应用111请求证实。在一些实现方式中,应用111能够自动地赎回证明令牌以创建要使用的SRR的存储。例如,应用111的用户可以具有每天在早上7点工作之前访问示例新闻聚合web站点140的模式,并且应用111能够为在示例新闻聚合web站点140上示出来自其的文章的各种示例新闻web站点140a、140b和140c自动地赎回证明令牌。
为了保护用户的隐私,系统100实现令牌赎回过程,该令牌赎回过程允许证明令牌被赎回,从而在使令牌的细节对ATI服务器170其本身私有时证明用户的身份。该令牌赎回过程包括由应用111生成要赎回证明令牌的请求。令牌赎回请求和证明令牌被提供到ATI服务器170,该ATI服务器170生成签名的赎回结果(SRR)。指示证明令牌被成功地(或不成功地)赎回并且不提供用户的PII或能够用于跟踪赎回或使用的模式的信息的此签名的赎回结果响应于令牌赎回请求而被提供给应用111。应用111然后能够将SRR包括在要访问来自web站点140的资源或其他内容的请求中以证明用户的身份和/或请求的真实性。因为是SRR而不是证明令牌被提供给web站点140,所以web站点140能够相信用户具有在不能够访问用户的PII的情况下访问资源和/或接收内容的授权。
在一些实现方式中,ATI服务器170确定是否存在是否存在任何对特定发行者有效的证明令牌。如果不存在对给定发行者可用的令牌,则ATI服务器170以错误拒绝请求。如果存在对给定发行者可用的令牌,则ATI服务器向请求实体发行证明令牌。发行者能够消费令牌并且基于结果动作,包括SRR响应报头以允许在不暴露正在证明其身份的实体的凭证或用户信息的情况下将赎回证明转发到其他方。附加地,发行者可以将信息包括在证明令牌和/或SRR内以指示赎回记录应该被缓存多久(例如,以秒为单位)。在一些实现方式中,如果不包括该信息,则SRR的生存期将被捆绑到确认赎回的令牌的发行的证明令牌信息的生存期。在一些实现方式中,SRR被视为来自发行者的字节的任意大对象(blob)。
令牌赎回过程以及使用SRR来对请求和/或用户进行认证的过程还提供用于将信息从应用111的沙盒环境外部传送到沙盒环境中的安全机制。传统上,对于诸如web浏览器的应用111,应用正在沙盒环境内部运行并且与其他实体和信息隔离以便提供安全环境。如关于图1至8所描述的系统和过程维护沙盒的安全性。
附加地,因为SRR的接收者不执行对令牌的验证和赎回,所以SRR的接收者不需要请求或者处理诸如证明令牌信息的信息。这允许过程保护用户的隐私并且改进被传送的数据的安全性,因为当用户已经将他们的凭证提供给受信任程序114时能够在不用请求附加信息的情况下向应用111的用户发行证明令牌。
在一些实现方式中,ATI服务器170与受信任程序114、web站点140、内容平台150和/或一个或多个内容发布者域160相关联。例如,ATI服务器170能够由运营示例新闻组织移动应用114和示例新闻组织web站点的实体示例新闻组织维护。在一些实现方式中,ATI服务器170是与受信任程序114、web站点140、内容平台150和/或一个或多个内容发布者域160分离的实体,并且不需要开发用于处理证明令牌的基础设施。例如,ATI服务器170能够是由用户正在试图获得对其的访问的web站点140指定为受信任证明令牌发行系统的服务器。web站点140将不需要开发或者维护用于处理证明令牌的基础设施,并且替代地接受来自ATI服务器170的签名的赎回结果。如关于图1A和图1B所描述的系统和过程允许web站点、内容发布者以及其他内容提供者和资源验证请求是真实的和/或用户被授权在不需要知道令牌如何被请求、生成和/或赎回的情况下访问/接收内容。
例如,如果应用111向另一实体(例如,向发布者130、内容平台150、内容发布合作伙伴152或内容发布者域160)发送要管理例如删除由该实体存储的数据的请求,则此请求能够包括SRR。
在一些实现方式中,应用111被配置成用指定类型的请求自动地发送SRR。例如,请求证明令牌并且发送SRR的每个应用111能够包括使应用111访问和/或赎回证明令牌并且访问和/或发送SRR的软件开发工具包(SDK)或应用编程接口(API)。API能够指定要包括SRR的请求集合,例如,用于管理用户数据、请求访问用户需要授权的资源和/或内容等的请求。例如,对内容或用于访问特定资源(诸如为付费订户请求新闻web页面)的某些类型的请求可能需要SRR。
在步骤F中,应用111向ATI服务器170发送令牌赎回请求123。向发行了令牌的ATI服务器170赎回令牌的这个步骤允许提供SRR而不是证明令牌。与证明令牌的发行和赎回相关联的数据可以被用作可跟踪的信号来跟踪用户活动,然而签名的赎回结果仅提供SRR的持有者已经成功地赎回证明令牌的信息,而不提供潜在敏感的、可识别的或可跟踪的信息,诸如在其中令牌被赎回的场境、令牌被赎回的时间和/或在发行令牌之前提供的认证信息以及其他信息。
应用111连同令牌赎回请求123一起传送指示用于赎回的证明令牌的数据。在一些实现方式中,令牌赎回请求123包括用于赎回的证明令牌。在一些实现方式中,应用111连同令牌赎回请求123一起传送证明令牌。在一些实现方式中,应用111传送指示将证明令牌成功发行给客户端设备110的用户的数据。
在赎回时间,当ATI服务器170接收到令牌赎回请求123时,ATI服务器170还接收证明令牌。如果证明令牌是合法的且可验证的,则证明令牌是ATI服务器170先前发行并且由应用111存储的令牌。ATI服务器170与令牌赎回请求123一起接收证明令牌并且提取信息比特和加密密钥的可能组合之一。上述比特指示证明令牌的持有者是否被验证。在一些实现方式中,可用的多个不同的加密密钥能够提供有关证明令牌和认证级别的附加信息。例如,不同的公开密钥能够指示不同的授权级别或不同的认证级别。在一些实现方式中,令牌信息在存储之前由应用111验证,并且还能够在赎回之前由ATI服务器170验证以验证令牌由ATI服务器170其本身发行并且确保应用111尚未修改令牌。
在步骤G中,ATI服务器170生成并且向应用111传送签名的赎回结果124。一旦ATI服务器170已经验证了令牌赎回请求123中指示的证明令牌是有效的和/或由ATI服务器170其本身发行,ATI服务器170就能够生成赎回结果并且然后对该赎回结果进行签名。来自ATI服务器170的签名在信任链中添加附加链接,并且允许签名的赎回结果的接收者在不用向接收者提供能够用于跟踪用户的活动或身份的附加信息的情况下信任证明令牌是向ATI服务器170赎回的。
ATI服务器170通过验证例如与证明令牌相关联的一个或多个数字签名尚未被伪造来验证令牌赎回请求123中指示的证明令牌。例如,ATI服务器170能够验证ATI服务器170其本身用来如步骤C中描述的对证明令牌进行签名的一个或多个数字签名尚未被伪造。ATI服务器170能够通过使用其私有密钥对证明令牌进行解密来执行此检查。
在一些实现方式中,ATI服务器170能够验证来自例如应用111的一个或多个数字签名尚未被伪造以确保令牌赎回请求123是合法的。例如,ATI服务器170能够将签名数据与由应用111发布的一个或多个公开密钥进行比较。在一些实现方式中,数字签名能够简单地是与令牌赎回请求123一起提供的指示请求由应用111生成的元数据。
在一些实现方式中,ATI服务器170能够验证附加令牌数据,诸如赎回时间、用于赎回的场境和/或证明令牌被发行的时间以及其他度量和特性。在一些实现方式中,ATI服务器170可以识别能够在其下赎回特定类型的证明令牌的特定场境,并且能够验证当前场境是否是能够在其中赎回证明令牌的有效场境。例如,ATI服务器170可以从特定web站点140接收用于访问仅订户填字游戏的证明令牌仅可以在试图访问填字游戏时被赎回的信息。然而,令牌赎回请求123可以指示用于访问仅订户填字游戏的证明令牌正在没有指示试图访问仅订户填字游戏的数据的情况下被赎回。ATI服务器170然后可以确定不满足用于赎回的场境,并且可以通过传送拒绝或不成功赎回的指示、使证明令牌无效和/或简单地不对令牌赎回请求做出响应以及其他动作来拒绝令牌赎回请求。
在一些实现方式中,ATI服务器170可以在接收到令牌赎回请求123时确定证明令牌是否已经期满。例如,ATI服务器170能够基于与证明令牌相关联的创建时间来确定证明令牌尚未兑现多久以及证明令牌是否已经期满。在一个示例中,ATI服务器170能够确定用于访问以对研究数据库执行搜索的证明令牌必须少于25分钟之久以便被赎回。稍后,如果ATI服务器170接收到指示用于访问以对研究数据库执行搜索的证明令牌一周之久的令牌赎回请求123,则ATI服务器170可以确定证明令牌已经期满,并且可以通过传送拒绝或不成功赎回的指示、使证明令牌无效和/或简单地不对令牌赎回请求做出响应以及其他动作来拒绝令牌赎回请求。用于证明令牌的期满时段能够是任何时间量,诸如10秒、15分钟、3小时、6天、两周等。
一旦ATI服务器170已经完成其对证明令牌和/或令牌赎回请求的验证,ATI服务器170就生成签名的赎回结果。SRR 124包括指示证明令牌是否被成功地赎回的数据,并且不包括能够用于跟踪用户活动或者识别与用于生成被赎回的证明令牌的凭证相关联的用户的附加数据。
生成仅提供证明令牌是否被成功地赎回的指示的签名的赎回结果的过程确保签名的赎回结果的接收者的安全性和为其生成签名的赎回结果的用户的隐私。
例如,通过生成签名的赎回结果并且将该签名的赎回结果提供给web站点140而不是提供证明令牌,web站点140不能够跟踪对证明令牌的原始请求并且使证明令牌与特定用户相关。如在下面关于图4所描述的,因为证明令牌是使用盲签名方案来签名的,所以发行了该令牌的ATI服务器170仅能够验证ATI服务器170其本身对该令牌进行了签名并且该令牌尚未被修改和或先前赎回。ATI服务器170不能看到证明令牌何时被签名或者任何附加参数与对证明令牌的初始请求相关联,从而保护请求证明令牌的用户的隐私。
在步骤H中,应用111将SRR存储在安全储存器中。例如,应用111能够将SRR 125存储在类似于其中存储有证明令牌122的储存器的安全高速缓存位置中。
在步骤I中,应用111生成并且向web站点140传送访问请求125。访问请求125能够附加地包括参数,诸如其包括SRR和其他参数。应用111能够用数字签名对访问请求125进行签名作为信任链中的附加链接。例如,应用111能够在访问请求125中对关键参数进行签名。在一些实现方式中,如果所有参数都是敏感的或重要的,则能够在访问请求125中对所有参数进行签名。
在一些实现方式中,步骤I由web站点140触发。例如,应用111可以试图访问web站点140的资源145或特定区段并且web站点140可以从应用111请求认证。
在一些实现方式中,步骤I由应用111基于应用111从web站点140检测的信息来自动地执行。例如,应用111能够从与web站点140相关联的数据检测到可能需要认证。数据能够由应用111存储或者由web站点140提供,或者以其他方式对应用111可访问。例如,数据能够被存储在安装在多个不同设备上的多个不同应用111能够访问的诸如中央数据库的中央共享位置处。在一些实现方式中,应用111能够基于存储的数据来确定web站点140需要认证。例如,首次应用111试图访问web站点140时,应用111能够接收到指示对认证的请求的数据。在访问web站点140的后续尝试时,应用111能够自动地确定将请求认证以便访问web站点140,并且在试图访问web站点140和/或资源145时提供SRR。
在步骤J中,web站点140试图验证访问请求中提供的SRR。如果web站点140能够验证SRR,则web站点140能够提供对访问请求125中指示的web站点140的部分的访问或者提供对所请求的资源145的访问。
如以上关于图1A和图1B所描述的过程是安全且私密的。在一些实现方式中,当实现如上所述的盲化方案或组签名方案来发行证明令牌时,该过程在保护用户隐私时允许不同平台、内容提供者和发布者验证用户被授权访问特定内容,使得在过程中没有一方能够跟踪用户活动或者将活动链接到特定用户或用户的信息。
在一些实现方式中,如果证明令牌是在没有盲化或组签名的情况下发行的,则令牌能够包含高分辨率时间戳或详细应用信息以及其他潜在敏感的信息或在证明令牌发行服务器与内容发布者之间存在串通的情况下能够用于将后续web活动链接到特定设备的信息。
在一个特定示例中,受信任程序114是安装在客户端设备110(用户的智能电话)上的移动应用,并且是示例新闻组织的官方受信任应用。应用111是安装在客户端设备110上的web浏览器,并且web站点140是示例新闻组织的官方web站点。作为示例新闻组织的订户并且登录到示例新闻组织的应用114而且希望在客户端设备110上访问示例新闻组织的官方web站点140上的内容的用户能够具有无缝浏览体验。例如,web浏览器111能够生成令牌请求并且将该请求提供给示例新闻组织应用114。用户已经向其提供了他们的登录凭证并且被认证的示例新闻组织应用114能够向ATI服务器170生成签名的令牌请求121。在此特定示例中,ATI服务器170能够是由示例新闻组织维护的证明令牌发行服务器。在一些实现方式中,ATI服务器170能够是示例新闻组织将令牌发行任务委托给的受信任服务器。签名的令牌请求121能够包括用户的供ATI服务器170验证的凭证。在接收到并验证用户的凭证和/或请求121时,ATI服务器170能够向web浏览器111发行证明令牌122。证明令牌122能够包括指示用户的凭证和/或请求121是否被认证的至少一个比特。证明令牌122能够被存储在web浏览器111的安全高速缓存中。应用111然后能够生成并且向ATI服务器170传送指示所存储的证明令牌122的令牌赎回请求123。如果ATI服务器170能够验证令牌赎回请求123中指示的证明令牌,则ATI服务器170生成签名的赎回结果124并且将SRR 124传送到web浏览器111。能够在用户请求访问web站点140的特定资源145或部分之前执行先前步骤中的每一个。当客户端设备110的用户请求访问示例新闻组织的web站点140上的新填字游戏时,web浏览器111能够生成并且向示例新闻组织的web站点140传送访问请求125。访问请求125包括SRR 124和其他关键参数,诸如由web站点140请求的所需元数据或其他信息。在此特定示例中,示例新闻组织web站点140能够确定用户具有订阅,但是不能够访问用户的身份并且不能跟踪用户的活动,因为用于生成证明令牌其本身的盲化或其他隐私保护技术以隐私保护方式产生令牌。当使用隐私保护技术来生成证明令牌时,即使发行者未在将令牌变换成签名的赎回结果,证明令牌也将允许内容发布者确定用户被认证,但是不能够访问用户的身份并且不能够跟踪用户的活动。
在另一示例中,如果web站点140替代地是用于示例新闻聚合平台的移动应用或web接口,其中示例新闻聚合平台与示例新闻组织分开且不同,则使用令牌赎回过程和SRR而不是令牌其本身允许示例新闻聚合平台在没有用于示例新闻聚合平台或示例新闻组织中的任一个在各方之间连接或者外推用户信息或活动的能力的情况下通过仅得知请求访问的用户是示例新闻组织的被认证用户来提供对由示例新闻组织维护的信息的访问。以这种方式,示例新闻聚合平台知道用户在示例新闻聚合平台的域内的活动,并且示例新闻组织知道用户在示例新闻组织的域内的活动,但是示例新闻聚合平台不知道用户在示例新闻组织的域内的活动或者反之亦然。两个平台均不能够通过如以上关于图1A和图1B所描述的过程来确定此用户活动或数据。
跨平台认证的常用方法涉及要求用户通过不同域或实体为一个域或实体提供他们的凭证,从而给予不同域或实体访问用户的信息的权限。如关于图1A和图1B所描述的过程通过从访问特定web站点或资源的过程中去除登录过程来去除一个实体请求访问另一实体的用户的数据的能力。通过使用令牌发行和赎回过程,该过程允许用户在不用向除了已经向其提供信息的受信任程序和必须证明用户的认证的证明令牌发行服务器之外的任何一方提供原始的可理解的形式的数据的情况下传达认证。
如关于图1A和图1B所描述的过程提供跨不同web站点140和不同平台转移认证的能力,从而减少用户摩擦并且提供更好的用户体验。
在另一示例中,能够向具有对示例视频流传输服务的有效订阅的用户发行证明令牌,该证明令牌能够被赎回以获得SRR。SRR能够用于在不需要用户每次登录的情况下访问和/或查看对具有对示例视频流传输服务的订阅的用户可用的被嵌入在社交媒体发布中的视频。特别地,所描述的过程能够在根本不需要用户在托管社交媒体发布的应用内登录的情况下允许用户访问内容,只要用户已经在视频流传输服务的应用中登录即可。
尽管一些方法允许用户在托管应用内登录一次并且允许认证在应用的生存期内持续存在,但是隐私激励的功能变化能够致使依赖诸如“第三方cookie”的数据的此类方法在未来不可使用。
所描述的基于证明令牌的认证过程提供更好的隐私特性,减少第三方需要的登录次数,并且能够在其他方法不工作的未来场景中继续工作。
在另一示例中,具有对示例音乐托管平台的有效订阅的用户能够在其设备上安装示例音乐托管平台应用。用户能够向示例音乐托管平台应用认证其本身并且在不用将他们的活动添加到他们的历史的情况下在各种web站点上访问对具有对示例音乐托管平台的订阅的用户可用的音乐。
在又一示例中,具有对示例视频流传输服务的有效订阅的用户能够访问对具有示例视频流传输服务的订阅的用户可用的视频,该视频是在社交媒体平台上从朋友在聊天信息中被发送给他们的。用户能够访问视频,从而在不用提供他们的账户信息的情况下向示例视频流传输服务确信他们是被认证用户。
如以上所讨论的,在一些方法中,私有/公开密钥对(以及与公开密钥相关联的判决)能够跨多个证明令牌变化,以增强客户端设备或用户的隐私以防跟踪。例如,客户端设备能够生成成批的私有/公开密钥对并且从证明令牌发行服务器检索对应成批的证明令牌,使得证明令牌的重复使用被减少或者消除。在图2中描绘了此分批过程的说明性示例。
在此示例中,应用200创建N个公开/私有密钥对(201)。例如,安装在应用200上的web浏览器能够生成公开/私有密钥对。公开/私有密钥对能够是不对称密钥对。每个公开/私有密钥对包括私有密钥和公开密钥,该公开密钥对应于私有密钥并且在数学上链接到私有密钥。使用私有密钥进行数字签名的数据仅能够使用对应的公开密钥来验证。类似地,使用公开密钥来加密的数据仅能够使用对应的私有密钥来解密。
应用200向证明令牌发行服务器230发送对N个证明令牌的请求(202)。数目N能够是大于或等于二的整数。在此示例中,请求是针对与N个公开密钥/私有密钥对相对应的N个证明令牌。应用200能够基于应用200在请求中使用签名的赎回结果的频率来确定要请求的证明令牌的数目N。应用能够为每个请求的证明令牌生成公开/私有密钥对并且在请求中包括公开密钥数据。在此示例中,公开密钥数据能够是公开密钥其本身。请求因此涉及将应用200的N个公开密钥211传递到证明令牌发行服务器230。在此示例中,N个公开密钥211包括实际公开密钥,例如,N个公开密钥211的原始数据。请求还能够包括设备级别欺诈检测信号。例如,受信任程序能够收集设备级别欺诈检测信号并且将这些信号包括在请求中。
类似于以上关于图1A和图1B所描述的步骤A和B的过程,能够将请求从应用200转发到受信任程序220。请求能够包括诸如用户的凭证的信息。
证明令牌发行服务器230接收请求(231)。基于从受信任程序220接收的用户凭证,证明令牌发行服务器230确定客户端设备的认证级别(232)。例如,证明令牌发行服务器可能具有M个可能的认证级别。在此示例中,证明令牌发行服务器230能够如上所述基于用户凭证来选择这M个可能的认证级别之一。可以例如通过特定签名对认证级别进行编码。
证明令牌发行服务器230生成N个证明令牌(233)。证明令牌发行服务器230为每个接收到的公开密钥生成相应的证明令牌。
每个证明令牌能够包括认证的判决、用于认证的判决的时间戳、以及应用200的N个公开密钥211之一。时间戳指示证明令牌被生成的时间。证明令牌发行服务器能够基于N个公开密钥211之一来生成每个证明令牌。例如,证明令牌发行服务器230能够组装包括应用200的公开密钥、认证判决和时间戳的数据集。在一些方法中,在认证的判决包括仅两个可能的判决(被认证或未被认证)的情况下,能够从证明令牌中省略认证的判决。换句话说,在这些方法中,证明令牌发行服务器能够为被认证的用户生成证明令牌(其中那些令牌省略暗示的认证的判决)并且简单地拒绝为未被认证的用户生成证明令牌。
证明令牌发行服务器230对N个证明令牌中的每一个进行数字签名(234)。例如,证明令牌发行服务器230能够使用它自己的私有密钥并且基于证明令牌的其他数据(例如,认证判决、应用200的公开密钥和时间戳)来生成数字签名。
证明令牌发行服务器230将N个证明令牌传送到应用(235)。应用200接收并且存储该批证明令牌以供稍后使用(203)。应用200能够在本地例如在由应用维护的高速缓存或安全储存器中存储证明令牌。每个高速缓存的证明令牌能够包括例如:(1)如由证明令牌发行服务器230所确定的受信任度的判决;(2)用于证明令牌的创建的时间戳;(3)应用的公开密钥;以及(4)使用证明令牌发行服务器230的私有密钥签名的令牌组件的数字签名。
在已经获得一批证明令牌后,如图2的示例所图示的,客户端设备能够使用证明令牌来将证明令牌作为前往web站点、内容发布者域或其他证明令牌接收者的各种请求的部分组装和发送,如以上所讨论的。这样的请求的说明性示例在图3中被描绘为过程流程图。
为了准备请求,应用300能够从应用的本地储存器检索证明令牌(301)。在各种方法中,应用300能够例如(1)对于每个请求使用新的证明令牌;或者(2)在所选时间间隔(例如,连续H小时)内使用相同证明令牌并且当该间隔流逝时使用不同证明令牌;或者(3)对于源自相同应用或web站点的所有请求使用相同证明令牌(例如,其中不同证明令牌被用于每个应用或web站点);或者(4)使用这些令牌重复使用方法中的两种或更多种的组合(例如,对于在所选时间间隔内源自相同应用或web站点的所有请求使用相同证明令牌)。因此,应用300能够基于为其生成请求的应用或web站点或请求被生成的当前时间来检索证明令牌。
应用300能够生成要赎回证明令牌的请求(302)。请求311能够包括例如有效载荷数据(如以上所讨论的)、请求创建时间戳、检索到的证明令牌、对应于证明令牌的公开密钥、以及请求组件的数字签名。在一些实现方式中,客户端设备的受信任程序或客户端设备的操作系统的受信任组件能够通过访问有效载荷数据和证明令牌来生成请求311,该请求311能够包括证明令牌或者形式为证明令牌。应用还能够确定当前时间作为请求创建时间戳。应用能够使用应用的私有密钥(例如,与包括在请求中的公开密钥相对应的私有密钥)来生成有效载荷数据、公开密钥和时间戳的数字签名。在一些方法中,作为用于减小证明令牌大小的简单优化,证明令牌省略设备公开密钥,因为公开密钥已经存在于作为证明令牌的组件而被包括的证明令牌中。
在一些实现方式中,ATI服务器170协助赎回令牌,并且与请求访问的web站点相关联以便确定。在一些实现方式中,当使用诸如盲化或组签名的隐私保护技术来发行令牌时,ATI服务器170通过观察令牌赎回而得知的仅有信息是其先前将令牌发行给的已经访问了此第二内容提供者的用户或设备的近似数目,但是由于证明令牌的隐私保护性质,不能确定任何特定用户或设备。
应用300然后将请求311发送到证明令牌发行服务器320(303)。
证明令牌发行服务器320接收请求(321)。证明令牌发行服务器320证实请求(322)。例如,证明令牌发行服务器320能够通过使用包括在请求中的公开密钥验证请求的数字签名来证实请求。证明令牌发行服务器320能够试图使用公开密钥和由应用300签名过的请求的内容(例如,有效载荷数据、时间戳、公开密钥和证明令牌)来验证数字签名。如果任何此内容在数字签名被生成之后改变了,则验证将失败。例如,如果恶意方将证明令牌插入到另一请求中或者将具有认证的更高判决的不同证明令牌插入到请求中,则签名验证将失败。这确保请求的内容在请求的传输期间不被例如中介改变。
证明令牌发行服务器320证实证明令牌(323)。例如,证明令牌发行服务器320能够通过使用证明令牌发行服务器的公开密钥验证证明令牌的签名来验证证明令牌。这类似地确保自证明令牌由证明令牌发行服务器发行以来证明令牌的内容尚未改变。如果证明令牌包括设备公开密钥,则证明令牌的证实还能够包括确认与证明令牌一起包括的设备公开密钥与被包括在证明令牌内的设备公开密钥匹配。
证明令牌发行服务器320证实证明令牌的及时性和客户端设备的认证(324),例如以确认证明令牌是最近创建的(即不是在超过请求被做出的时间之前的诸如H小时或D天的所选时间间隔创建的,对于H、D=1、2、3、...),并且以确认证明令牌中的认证判决是足以赞成请求的判决。
如果所有这些有效性检查都通过,则证明令牌发行服务器320能够通过赎回证明令牌来对请求做出响应(325),例如,以如以上关于图1A、图1B和图2所描述的生成签名的赎回结果等。如果任何有效性检查失败,则证明令牌发行服务器320能够忽略请求。例如,证明令牌发行服务器320可以不对请求做出响应,可以不执行所请求的操作,等等。
应用300接收SRR(304)。应用300然后能够向接收者计算系统330发送访问请求313(313)。访问请求313能够包括SRR 312和其他参数,包括用户数据、场境数据或时间戳。如上所述,接收者能够是请求访问的web站点、内容提供者或发布者以及其他实体。例如,应用300能够将访问请求和SRR发送到内容平台150并且该内容平台能够将请求发送到一个或多个内容发布者域。
接收者计算系统330能够接收签名的赎回结果,并且如果所有有效性检查都通过,则对请求做出响应(331)。
如以上所讨论的,在一些方法中,可以在生成证明令牌的过程中使用盲签名方案,使得证明令牌发行服务器不会看到应用的公开密钥的原始数据。例如,应用能够生成成批的私有/公开密钥对,并且然后在将公开密钥发送到证明令牌发行服务器以检索对应成批的证明令牌之前使用盲签名方案来使公开密钥(或这些公开密钥的能够被用作用于盲签名方案的提交阶段的值的合适的衍生物,诸如公开密钥的密码散列或与设备型号级联的公开密钥的密码散列)盲化。在此示例中,证明令牌利用盲化公开密钥进行盲签名。在图4中描绘了此分批过程的说明性示例。
在此示例中,证明令牌发行服务器420能够为应用定义M个不同的认证级别,并且为对应的M个认证级别发布M个不同的盲签名验证密钥411(421)。例如,M个级别能够包括两个级别:被认证和未被认证。在另一示例中,M个级别能够包括三个级别:可疑、满意和完全认证。在另一示例中,M个级别能够包括四个级别:欺诈、可疑、订户和特殊订户。还能够使用其他数量的级别。因此,M能够是大于或等于二的整数。在一些方法中,不是为最低认证级别(例如“未被认证”或“欺诈”认证级别)指配盲签名验证密钥,而是能够从M个认证级别中省略最低认证级别,并且证明令牌发行服务器能够简单地拒绝为具有最低认证级别的设备提供盲签名。因此,在这些方法中,M能够是大于或等于一的整数。
证明令牌发行服务器420能够使用盲签名方案来为每个认证级别生成相应的盲签名验证密钥411。盲签名方案能够是可私密地验证的盲签名方案,诸如因特网工程任务组(IETF)可验证不经意伪随机函数(VOPRF)盲签名方案。在其他方法中,盲签名方案能够是可公开验证的盲签名方案,诸如Rivest-Shamir-Adleman(RSA)盲签名方案。
证明令牌发行服务器420能够发布盲签名验证密钥411,使得包括应用400的应用能够获得盲签名验证密钥411。例如,证明令牌发行服务器420能够将盲签名验证密钥411发布到web站点或移动应用商店。
应用400能够接收这些盲签名验证密钥(401)。例如,应用400能够下载盲签名验证密钥411并且在本地例如在安全储存器或高速缓存中存储盲签名验证密钥411。应用400能够保留盲签名验证密钥411以验证稍后从证明令牌发行服务器420接收的盲签名,如在下面进一步讨论的。在一些方法中,证明令牌发行服务器420能够定期发布新盲签名验证密钥411(例如,每小时、天、周或其他适当的时间段)并且对盲签名验证密钥集的这种刷新能够用于证实设备完整性令牌的及时性,如在下面进一步描述的。
为了获得一批N个证明令牌,应用400创建N个公开/私有密钥对(402)。例如,web浏览器能够为每个证明令牌创建相应的不对称公开/私有密钥对。
应用400根据用于生成盲签名验证密钥的盲签名方案来使每个公开密钥或每个公开密钥的衍生物盲化(403)。也就是说,应用400使每个公开密钥的公开密钥数据盲化,其中公开密钥数据是公开密钥或公开密钥的衍生物。使公开密钥盲化能够包括通过对公开密钥的原始值应用盲化因子来使公开密钥的原始值模糊。以这种方式,证明令牌发行服务器420不能访问从应用400接收的公开密钥的原始值并且使用那些值来跟踪用户或应用400,例如,与附加数据一起使用从接收到公开密钥的原始值的另一实体接收的数据。
为了减少需要由证明令牌发行服务器420盲签名的数据量,不是使每个整个设备公开密钥盲化,而是应用400(例如,其受信任程序)可以生成公开密钥的衍生物并且使公开密钥的衍生物盲化。衍生物能够是公开密钥的密码散列。例如,应用400能够使用密码散列函数来生成每个公开密钥的密码散列,并且然后使用盲签名方案来使公开密钥的密码散列盲化。在一些实现方式中,密码散列算法能够是SHA256。
在一些实现方式中,客户端设备420能够通过截断密码散列来进一步减小盲化公开密钥数据的数据大小,并且然后使截断密码散列盲化。例如,这种截断能够将密码散列从具有较大数据大小的原始密码散列限制到16个字节。这种截断产生应用400使用盲签名方案来盲化的更短密码散列。
以这种方式减少被盲签名的数据量减少在对数据进行盲签名时置于证明令牌发行服务器420上的负担(例如,减少CPU周期、数据存储要求、存储器消耗等),这与在提供完整公开密钥的盲化版本的情况下相比允许证明令牌发行服务器420更快更高效地生成盲签并且处理更多请求。这还减少通过其发送请求的网络的带宽消耗并且使得能够在单个请求中发送大量盲化公开密钥数据。
应用400向证明令牌发行服务器420发送对N个证明令牌的请求412(404)。数目N能够是大于或等于二的整数。请求能够包括由应用400生成的每个公开密钥411的盲化公开密钥数据。例如,请求能够包括N个盲化公开密钥、公开密钥的N个盲化密码散列、或公开密钥的N个盲化截断密码散列。请求还能够包括例如由应用400的受信任程序收集的设备级别欺诈检测信号。在一些实现方式中,类似于如关于图1A、图1B、图2和图3所描绘的过程,应用400通过受信任程序(未示出)传送请求412。
证明令牌发行服务器420接收请求(422)。证明令牌发行服务器420基于可以已经由受信任程序提供的请求中指示的用户凭证来确定应用400的认证的判决(423)。在一些实现方式中,证明令牌发行服务器400能够具有认证的M个可能的判决(对应于在操作421中发布的M个盲签名验证密钥)。证明令牌发行服务器420能够基于设备级别欺诈检测信号来将应用400指配给M个可能的判决之一。
在已经确定了应用400的认证的判决后,证明令牌发行服务器420生成一批证明令牌(424)。例如,证明令牌发行服务器400能够为以上在操作402中生成的每个公开密钥生成证明令牌。每个证明令牌能够包括例如:(1)正在为其生成证明令牌的应用的公开密钥;(2)如由证明令牌发行服务器所确定的认证的判决;以及(3)盲化公开密钥的去盲化盲签名或公开密钥的(例如,截断)密码散列。在一些方法中,证明令牌能够省略认证的判决,因为这能够从去盲化盲签名中暗示。如果盲签名不是可公开地验证的,则当证明令牌发行服务器被要求验证盲签名时(参见例如如在下面所讨论的图5中的541),证明令牌发行服务器还能够返回判决。如果盲签名是可公开地验证的,则验证盲签名的公开密钥也暗示设备的认证的判决。
在已经确定了应用400的认证的判决并且生成了证明令牌后,证明令牌发行服务器400使用盲签名私有密钥来对每条盲化公开密钥数据(例如,每N个盲化公开密钥或每个盲化密码散列)和证明令牌进行签名(425)。例如,证明令牌发行服务器420能够获得与针对应用400所确定的认证的判决相对应的盲签名私有密钥,例如,与用于所确定的认证的判决的公开盲签名验证密钥相对应的盲签名私有密钥。以这种方式使用盲签名方案,证明令牌发行服务器420能够在不用知道公开密钥数据的实际值的情况下生成盲化公开密钥数据的数字签名。
证明令牌发行服务器420将N个盲签名413和证明令牌返回给客户端设备(426)。在一些实现方式中,证明令牌使用盲签名方案来签名,并且N个盲签名413包括盲签名的证明令牌。应用400从证明令牌发行服务器接收盲签名。
在一些实现方式中,应用400能够使用盲签名方案来使盲签名去盲化。例如,应用400能够使用为其生成了盲签名的盲化公开密钥数据和由证明令牌发行服务器420发布的盲签名验证密钥来证实每个盲签名以验证令牌的有效性并且以确保除了认证的判决之外没有附加用户数据被编码在证明令牌中。为了这么做,应用400能够试图例如对于认证的每个判决使用多个盲签名验证密钥来证实盲签名。如果判决与指配给应用400的判决不匹配,则对于该判决将不使用盲签验证密钥来验证盲签名。应用能够基于成功地证实盲签名的盲签名验证密钥来确定所指配的应用400的认证的判决,例如,与盲验证密钥相对应的认证的判决是指配给应用400的判决。如果被证实,则应用然后能够使用盲签名方案来使盲签名去盲化。
应用400然后存储证明令牌(405)。例如,应用400的受信任程序能够将证明令牌存储在安全储存器中以供稍后在发送应该包括证明令牌的请求时使用。安全储存器能够是应用400的令牌高速缓存。如上所述,在一些实现方式中,应用400将试图在存储之前证实证明令牌。在一些实现方式中,应用400将不试图在存储之前证实证明令牌,并且将在接收时存储证明令牌。
在已经存储了一批证明令牌后,如图4的示例所示,应用然后能够向证明令牌发行服务器赎回证明令牌。一旦被赎回,证明令牌发行服务器就提供仅指示证明令牌被成功地赎回的签名的赎回结果,而不提供能够用于跟踪用户活动的附加用户信息或其他信息。
在接收到签名的赎回结果时,应用能够存储签名的赎回结果以作为针对内容发布者域、对web站点的特定部分和/或特定内容的访问做出的请求以及其他请求的部分被传送,如以上所讨论的。这样的请求的说明性示例在图5中被描绘为过程流程图。
为了准备请求,应用500能够例如从应用的安全高速缓存检索签名的赎回结果(501)。在各种方法中,应用能够例如:(1)对于每个请求使用新的签名的赎回结果;或者(2)在所选时间间隔(例如连续H小时)内使用相同的签名的赎回结果;或者(3)对于源自相同应用或web站点的所有请求使用相同的签名的赎回结果;或者(4)使用这些赎回结果重复使用方法的组合(例如,对于在所选时间间隔内源自相同应用或web站点的所有请求使用相同的签名的赎回结果)。因此,应用500能够基于为其生成请求的应用或web站点或请求被生成的当前时间来检索签名的赎回结果。
应用500能够组装包括内容集的请求511,该内容集包括请求有效载荷(如上所述)、指示请求被生成的时间的请求创建时间戳、签名的赎回结果、以及对应于签名的赎回结果的设备公开密钥(例如,公开密钥数据被盲签名并且连同去盲化盲签名一起被包括在签名的赎回结果中的公开密钥)。请求还能够包括使用应用的私有密钥(例如,与包括在请求中的公开密钥相对应的私有密钥)签名的内容集的数字签名(502)。例如,应用500的受信任程序能够使用私有密钥基于内容集来生成数字签名。请求能够包括签名的赎回结果或者形式为签名的赎回结果。例如,请求能够包括内容集(例如,具有签名的赎回结果)和数字签名。
应用500将请求511发送到接收者的计算系统520(503)。接收者能够是例如请求访问的web站点或请求访问或者从其请求内容的内容托管平台。
接收者计算系统520证实请求(522)。接收者计算系统520能够通过使用与请求一起包括的设备公开密钥验证请求的数字签名来证实请求。接收者计算系统520还能够通过将请求中的时间戳与接收到请求的时间进行比较来证实请求。如果签名被成功地证实并且时间戳在当前时间的阈值持续时间内,则应用500能够将请求视为被证实。
接收者计算系统520还证实签名的赎回结果。基于由证明令牌发行服务器540在生成盲签名时使用的盲签名方案,此证实过程能够不同。如果盲签名方案是可公开地验证的方案(例如,RSA),则接收者计算系统520能够在不用调用证明令牌发行服务器的情况下证实签名的赎回结果(523a)。在此示例中,接收者计算系统520能够使用盲签名方案来验证包括在签名的赎回结果中的公开密钥数据的去盲化盲签名。如果公开密钥的密码散列被使用,则接收者计算系统520能够使用与应用500相同的密码散列函数来生成包括在请求中的公开密钥的密码散列(并且在适当的情况下截断它),并且使用盲签名方案来验证密码散列的去盲化盲签名。
如果盲签名方案是私有可验证的方案(例如,IETF VOPRF),则接收者计算系统520能够调用证明令牌发行服务器540来验证去盲化盲签名(523b)。在此示例中,接收者计算系统520能够将去盲化盲签名和公开密钥或公开密钥的密码散列发送到证明令牌发行服务器540。
证明令牌发行服务器540能够试图使用盲签名方案来验证去盲化盲签名(541)。响应能够指示验证是否成功,以及与验证去盲化盲签名的盲签名验证密钥相对应的客户端设备的受信任度。
接收者计算系统520证实签名的赎回结果的及时性和客户端设备的受信任度(524),例如以确认签名的赎回结果是最近创建的并且以确认签名的赎回结果中的受信任度判决是足以赞成请求的判决。因为证明令牌发行服务器540可以定期重新发布新盲签名验证密钥,所以及时性证实能够包括确认签名的赎回结果的盲签名不是利用无效的陈旧密钥进行签名的,例如通过确定签名的赎回结果是利用已经期满的盲签名验证密钥验证的。在一种方法中,因为盲签名验证密钥的有效日期被编码为所发布的密钥的URL的部分,所以接收者计算系统能够确定盲签名验证密钥已经期满。在另一方法中,因为验证密钥是与对验证密钥的期满日期进行编码的元数据一起发布的,所以接收者计算系统能够确定盲签名验证密钥已经期满。
如果所有这些有效性检查都通过,则接收者计算系统520能够对请求做出响应(525),例如以如以上所讨论的提供对资源的访问或者递送资源等。如果任何有效性检查失败,则接收者计算系统520能够忽略请求,例如,选择不发送对请求的响应、更新设置等。
除以上描述外,还可以给用户提供允许用户做出关于本文描述的系统、程序或特征是否和何时可以使得能够收集用户信息(例如,关于用户的社交网络、社交行为、或活动、职业、用户的偏好或用户的当前位置的信息)以及是否从服务器向用户发送个性化内容或通信两者的选择的控件。另外,某些数据可以在其被存储或者使用之前以一种或多种方式被处理,使得个人可识别信息被去除。例如,可以处理用户的身份,使得对该用户而言不能确定个人可识别信息(例如,电话号码、IMEI、设备序列号),或者可以在获得位置信息的情况下一般化用户的地理位置(诸如到城市、邮政编码或州级别),使得不能确定用户的特定位置。因此,用户可以控制关于用户收集什么信息、如何使用该信息、信息保留策略以及向用户提供什么信息。
图6是能够用于执行上述操作的示例计算机系统600的框图。系统600包括处理器610、存储器620、存储设备630和输入输出设备640。组件610、620、630和640中的每一个都能够例如使用系统总线650互连。处理器610能够处理用于在系统600内执行的指令。在一些实现方式中,处理器610是单线程处理器。在另一实现方式中,处理器610是多线程处理器。处理器610能够处理存储在存储器620中或存储设备630上的指令。
存储器620存储系统600内的信息。在一个实现方式中,存储器620是计算机可读介质。在一些实现方式中,存储器620是易失性存储器单元。在另一实现方式中,存储器620是非易失性存储器单元。
存储设备630能够为系统600提供大容量存储。在一些实现方式中,存储设备630是计算机可读介质。在各种不同的实现方式中,存储设备630能够包括例如硬盘设备、光盘设备、由多个计算设备通过网络共享的存储设备(例如,云存储设备)或某个其他大容量存储设备。
输入/输出设备640为系统600提供输入/输出操作。在一些实现方式中,输入/输出设备640能够包括以下各项中的一个或多个:网络接口设备,例如以太网卡;串行通信设备,例如RS-232端口;和/或无线接口设备,例如802.11卡。在另一实现方式中,输入/输出设备能够包括被配置成接收输入数据并且向外部设备660(例如,键盘、打印机和显示设备)发送输出数据的驱动器设备。然而,还能够使用其他实现方式,诸如移动计算设备、移动通信设备、机顶盒电视客户端设备等。
尽管已在图6中描述了示例处理系统,但是本说明书中描述的主题和功能操作的实现方式能够用其他类型的数字电子电路系统加以实现,或者用计算机软件、固件或硬件(包括本说明书中公开的结构及其结构等同物)加以实现,或者用它们中的一个或多个的组合加以实现。
本说明书中描述的主题和操作的实施例能够用数字电子电路系统加以实现,或者用计算机软件、固件或硬件(包括本说明书中公开的结构及其结构等同物)加以实现,或者用它们中的一个或多个的组合加以实现。能够将本说明书中描述的主题的实施例实现为一个或多个计算机程序,即,编码在计算机存储媒介(或介质)上以供数据处理装置执行或者控制数据处理装置的操作的计算机程序指令的一个或多个模块。可替换地,或者另外,能够将程序指令编码在人工生成的传播信号(例如机器生成的电信号、光信号或电磁信号)上,该信号被生成以对信息进行编码以便传输到合适的接收器装置以供数据处理装置执行。计算机存储介质能够是以下各项,或者被包括在以下各项中:计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质能够是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质还能够是一个或多个单独的物理组件或媒介(例如,多个CD、磁盘或其他存储设备),或者被包括在一个或多个单独的物理组件或媒介(例如,多个CD、磁盘或其他存储设备)中。
能够将本说明书中描述的操作实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或者从其他来源接收的数据执行的操作。
术语“数据处理装置”包含用于处理数据的所有种类的装置、设备和机器,作为示例包括可编程处理器、计算机、片上系统,或多个可编程处理器、计算机或片上系统,或前述各项的组合。装置能够包括专用逻辑电路系统,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。装置除了包括硬件之外,还能够包括为所述计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。装置和执行环境能够实现各种不同的计算模型基础设施,诸如web服务、分布式计算和网格计算基础设施。
计算机程序(还称为程序、软件、软件应用、脚本或代码)能够用包括编译或解释语言、声明或过程语言的任何形式的编程语言编写,并且它能够以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象、或适合于在计算环境中使用的其他单元。计算机程序可以但不必对应于文件系统中的文件。能够在保持其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、在专用于所述程序的单个文件中、或者在多个协调文件中(例如,存储一个或多个模块、子程序或代码的部分的文件)中存储程序。计算机程序能够被部署成在一个计算机上或者在位于一个站点处或者跨多个站点分布并且通过通信网络互连的多个计算机上执行。
本说明书中描述的过程和逻辑流程能够是通过一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据操作并且生成输出来执行动作而执行的。过程和逻辑流程还能够由专用逻辑电路系统执行,并且装置还能够被实现为专用逻辑电路系统,专用逻辑电路系统例如为FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
作为示例,适合于执行计算机程序的处理器包括通用微处理器和专用微处理器两者。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元件是用于根据指令来执行动作的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,或者能操作地耦合以从用于存储数据的一个或多个大容量存储设备接收数据或者向用于存储数据的一个或多个大容量存储设备转移数据,或者兼而有之,大容量存储设备例如为磁盘、磁光盘或光盘。然而,计算机不需要具有此类设备。此外,计算机能够被嵌入在例如以下各项的另一设备中:移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器),仅举几例。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、媒介和存储器设备,作为示例包括半导体存储器设备,例如EPROM、EEPROM和闪速存储器设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器能够由专用逻辑电路系统补充,或者被并入在专用逻辑电路系统中。
为了提供与用户的交互,能够在计算机上实现本说明书中描述的主题的实施例,该计算机具有用于向用户显示信息的显示设备,例如CRT(阴极射线管)或LCD(液晶显示器)监视器,并且具有用户能够通过其向计算机提供输入的键盘和指点设备,例如鼠标或轨迹球。其他种类的设备也能够用于提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机能够通过向由用户使用的设备发送文档并且从由用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收到的请求向用户的客户端设备上的web浏览器发送web页面。
能够在计算系统中实现本说明书中描述的主题的实施例,该计算系统包括后端组件例如作为数据服务器,或者包括中间件组件,例如,应用服务器,或者包括前端组件,例如,具有用户能够通过其与本说明书中描述的主题的实现方式交互的图形用户界面或Web浏览器的客户端计算机,或者包括一个或多个此类后端、中间件或前端组件的任何组合。系统的组件能够通过例如通信网络的任何形式或介质的数字数据通信来互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互通网络(例如,因特网)和点对点网络(例如,自组织点对点网络)。
计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离并且典型地通过通信网络来交互。客户端和服务器的关系借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器向客户端设备传送数据(例如,HTML页面)(例如,出于向与客户端设备交互的用户显示数据并且从与客户端设备交互的用户接收用户输入的目的)。能够在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
虽然本说明书包含许多特定实现细节,但是这些不应该被解释为对任何发明的或可能要求保护的内容的范围构成限制,而是相反被解释为特定于特定发明的特定实施例的特征的描述。还能够在单个实施例中相结合地实现在本说明书中在单独的实施例的场境中描述的某些特征。相反地,还能够单独地在多个实施例中或者以任何合适的子组合实现在单个实施例的场境中描述的各种特征。此外,尽管特征可以在上面被描述为以某些组合起作用并且甚至最初如此要求保护,但是来自要求保护的组合的一个或多个特征能够在一些情况下从该组合中删除,并且所要求保护的组合可以涉及子组合或子组合的变化。
类似地,尽管在附图中以特定次序描述操作,但是这不应该被理解为要求以所示的特定次序或以顺序次序执行此类操作,或者要求执行所有图示的操作以实现期望的结果。在某些情况下,多任务和并行处理可以是有利的。此外,各种系统组件在上述实施例中的分离不应该被理解为在所有实施例中都要求这种分离,并且应该理解,所描述的程序组件和系统通常能够被一起集成在单个软件产品中或者封装到多个软件产品中。
因此,已经描述了主题的特定实施例。其他实施例在随附权利要求的范围内。在一些情况下,权利要求书中叙述的动作能够以不同次序执行并且仍然实现期望的结果。另外,附图中描绘的过程不一定要求所示的特定次序或顺序次序以实现期望的结果。在某些实现方式中,多任务和并行处理可以是有利的。
Claims (16)
1.一种用于匿名证明的方法,包括:
由在客户端设备上运行的应用从托管在第一内容提供者的第一域上的第一服务器接收认证请求,所述认证请求用于对用户进行认证以从与所述第一内容提供者不同的第二内容提供者的第二域接收内容;
响应于接收到所述认证请求,由所述应用利用发行匿名证明令牌的证明令牌发行系统,通过将所述匿名证明令牌与第二请求一起传送来赎回所述匿名证明令牌,所述匿名证明令牌用于证明针对所述第二内容提供者的用户认证;
响应于所述第二请求,由所述应用从所述证明令牌发行系统接收赎回结果,所述赎回结果表示所述证明令牌是否被成功地被赎回并且是由所述证明令牌发行系统使用数字签名来签名,其中,所述赎回结果能操作用于在没有针对所述第二内容提供者识别所述用户的情况下针对所述第二内容提供者验证所述用户是针对所述第二内容提供者认证的;以及
由所述应用向所述第一内容提供者传送由所述证明令牌发行系统签名的所述赎回结果。
2.根据权利要求1所述的方法,其中,所述赎回结果能操作用于在没有向所述第一内容提供者提供所述用户的凭证集的情况下,在允许所述用户保持匿名时向接收者验证所述用户是针对所述第二内容提供者认证的。
3.根据权利要求1或权利要求2所述的方法,其中,所述第二内容提供者是新闻提供者,
其中,所述第一内容提供者是新闻聚合器域,以及
其中,由所述应用向所述第一内容提供者传送由所述证明令牌发行系统签名的所述赎回结果是响应于请求访问由所述新闻提供者所托管的资源的用户动作而执行的。
4.根据权利要求1或权利要求2所述的方法,其中,所述第二内容提供者是媒体托管平台,并且
其中,所述第一内容提供者是社交媒体平台,以及
其中,由所述应用向所述第一内容提供者传送由所述证明令牌发行系统签名的所述赎回结果是响应于请求访问由所述媒体托管平台所托管的资源的用户动作而执行的。
5.根据权利要求1至4中的任一项所述的方法,进一步包括:
由客户端设备上的所述应用向受信任程序传送对匿名证明令牌的第一请求,所述受信任程序具有对针对实体认证所述用户的所述客户端设备的用户的凭证的访问权,所述匿名证明令牌用于证明针对所述第二内容提供者的用户认证;
由所述受信任程序向所述证明令牌发行系统传送对匿名证明令牌的第三请求,所述第三请求包括所述客户端设备的所述用户的凭证集;以及
由所述应用从所述证明令牌发行系统接收匿名证明令牌,所述匿名证明令牌包括:(i)指示所述匿名证明令牌的创建时间的证明令牌创建时间戳;以及(ii)所述证明令牌发行系统的第二数字签名。
6.根据权利要求1至5中的任一项所述的方法,进一步包括:
由所述应用通过所述第一内容提供者的电子资源从所述第二内容提供者请求来自所述第二内容提供者的所述内容。
7.根据权利要求6所述的方法,进一步包括:
由所述应用接收来自所述第二内容提供者的所述内容。
8.根据权利要求1至7中的任一项所述的方法,其中,所述证明令牌发行系统的所述数字签名是根据盲签名方案而创建的。
9.根据权利要求1至8中的任一项所述的方法,其中,所述证明令牌发行系统的所述数字签名是使用组签名方案和发行给所述客户端设备的匿名证书而创建的;以及
将所述匿名证书存储在所述客户端设备上的安全私有密钥库中。
10.根据权利要求1至9中的任一项所述的方法,其中,传送由所述证明令牌发行系统签名的所述赎回结果进一步包括:提供附加数据,所述附加数据是(i)由所述应用签名的;以及(ii)没有将所述用户与凭证集相关。
11.根据权利要求1至10中的任一项所述的方法,其中,所述请求指示要发行的证明令牌的数目。
12.根据权利要求1至11中的任一项所述的方法,其中,所述请求使用由所述应用维护的私有密钥利用第三数字签名进行签名,并且其中,所述第三数字签名能够使用公开密钥来验证,所述公开密钥是(i)对应于所述私有密钥;以及(ii)由所述应用发布。
13.根据权利要求5或当从属于权利要求5时根据权利要求6至11中的任一项所述的方法,其中,所述第二数字签名使用由所述证明令牌发行系统维护的私有密钥来创建,并且其中,所述第三数字签名能够使用公开密钥来验证,所述公开密钥是(i)对应于所述私有密钥;以及(ii)由所述证明令牌发行系统发布。
14.根据权利要求1至13中的任一项所述的方法,其中,所述赎回结果包括表示证明令牌是否被成功地赎回的单个比特。
15.一种系统,包括:
一个或多个处理器;以及
存储有计算机可读指令的一个或多个存储器,所述计算机可读指令被配置成使所述一个或多个处理器执行根据权利要求1至14中的任一项所述的方法。
16.一种存储指令的非暂时性计算机可读介质,所述指令在由一个或多个计算机执行时使所述一个或多个计算机执行根据权利要求1至13中的任一项所述的方法的操作。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2021/047736 WO2023027709A1 (en) | 2021-08-26 | 2021-08-26 | Anonymous authentication with token redemption |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116034596A true CN116034596A (zh) | 2023-04-28 |
Family
ID=77897737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180035302.0A Pending CN116034596A (zh) | 2021-08-26 | 2021-08-26 | 具有令牌赎回的匿名认证 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20230308277A1 (zh) |
EP (1) | EP4162647B1 (zh) |
JP (1) | JP2023542578A (zh) |
KR (1) | KR20230031192A (zh) |
CN (1) | CN116034596A (zh) |
WO (1) | WO2023027709A1 (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8281149B2 (en) * | 2009-06-23 | 2012-10-02 | Google Inc. | Privacy-preserving flexible anonymous-pseudonymous access |
EP2747369A1 (en) * | 2012-12-21 | 2014-06-25 | Gemalto SA | A system and method of dynamic issuance of privacy preserving credentials |
-
2021
- 2021-08-26 EP EP21773943.2A patent/EP4162647B1/en active Active
- 2021-08-26 US US17/924,457 patent/US20230308277A1/en active Pending
- 2021-08-26 CN CN202180035302.0A patent/CN116034596A/zh active Pending
- 2021-08-26 JP JP2022570379A patent/JP2023542578A/ja active Pending
- 2021-08-26 KR KR1020227038973A patent/KR20230031192A/ko unknown
- 2021-08-26 WO PCT/US2021/047736 patent/WO2023027709A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
US20230308277A1 (en) | 2023-09-28 |
KR20230031192A (ko) | 2023-03-07 |
EP4162647B1 (en) | 2024-05-01 |
EP4162647A1 (en) | 2023-04-12 |
JP2023542578A (ja) | 2023-10-11 |
WO2023027709A1 (en) | 2023-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220286440A1 (en) | Secure Media Delivery | |
JP7376727B2 (ja) | 暗号学的に安全な要求の検証 | |
US20220300643A1 (en) | Cryptographically secure data protection | |
CN113015974A (zh) | 针对隐私保护的可验证同意 | |
US11949688B2 (en) | Securing browser cookies | |
JP2023096089A (ja) | グループ署名による匿名イベント証明 | |
CN114391242B (zh) | 匿名事件证明 | |
EP4162647B1 (en) | Anonymous authentication with token redemption | |
JP2023524360A (ja) | プライバシーを守る活動集約メカニズム | |
JP2022533874A (ja) | 電気通信ネットワーク測定におけるデータ操作の防止およびユーザのプライバシーの保護 | |
GB2612217A (en) | Secure media delivery |
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 |