CN113973503A - 验证设备和应用完整性 - Google Patents

验证设备和应用完整性 Download PDF

Info

Publication number
CN113973503A
CN113973503A CN202080017852.5A CN202080017852A CN113973503A CN 113973503 A CN113973503 A CN 113973503A CN 202080017852 A CN202080017852 A CN 202080017852A CN 113973503 A CN113973503 A CN 113973503A
Authority
CN
China
Prior art keywords
application
client device
trust
determining
trusted
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
CN202080017852.5A
Other languages
English (en)
Inventor
G.王
M.M.M.扬
D.B.特纳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN113973503A publication Critical patent/CN113973503A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • G06F21/335User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic 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/3213Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2129Authenticate client device independently of the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Virology (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本公开涉及使用信任令牌来验证从其接收数据的设备和应用的完整性。在一个方面,一种方法包括从客户端设备接收对一个或多个信任令牌的请求。该请求包括从客户端设备获得的一个或多个设备级欺诈检测信号或表示发起该请求的应用的代码的数据中的至少一个。该请求还包括针对一个或多个信任令牌中的每一个的相应随机数。基于一个或多个设备级欺诈信号或表示应用的代码的数据中的至少一个,做出向客户端设备发放一个或多个信任令牌的确定。使用针对信任令牌的随机数生成每个信任令牌。向客户端设备提供一个或多个信任令牌。

Description

验证设备和应用完整性
背景技术
客户端设备通过诸如互联网的公共网络传输数据。这些通信可能会被预期接收者以外的实体拦截和/或更改。此外,这些实体可以伪造网络标识并发送看似源自这些伪造的网络标识的数据。这些实体还可以更改应用代码以插入发送欺诈性数据的恶意代码。
发明内容
本说明书描述了与使用信任令牌来验证从其接收数据的设备和应用的完整性相关的技术。
总体上,本说明书中描述的主题的一个创新方面可以体现方法中,该方法包括从客户端设备接收对一个或多个信任令牌的请求。该请求包括(i)从客户端设备获得的一个或多个设备级欺诈检测信号或(ii)表示发起请求的应用的代码的数据中的至少一个;以及针对一个或多个信任令牌中的每一个的相应随机数。基于(i)一个或多个设备级欺诈信号或(ii)表示应用的代码的数据中的至少一个做出确定,以向客户端设备发放一个或多个信任令牌。响应于确定向客户端设备发放一个或多个信任令牌,使用针对信任令牌的随机数生成一个或多个信任令牌中的每一个,并且将一个或多个信任令牌提供给客户端设备。该方面的其他实施方式包括对应的装置、系统和编码在计算机存储设备上被配置为执行方法的各方面的计算机程序。
这些和其他实施方式可以各自可选地包括以下特征中的一个或多个。在一些方面,基于(i)一个或多个设备级欺诈信号或(ii)表示应用的代码的数据中的至少一个确定向客户端设备发放一个或多个信任令牌包括:基于一个或多个设备级欺诈信号确定客户端设备是受信任设备,基于表示应用的代码的数据确定应用是受信任应用,并响应于确定客户端设备是受信任设备且应用是受信任应用,确定向客户端设备发放一个或多个信任令牌。
在一些方面,表示应用的代码的数据包括应用的代码的加密散列。确定向客户端设备发放一个或多个信任令牌可以包括基于应用的代码确定应用是受信任应用,并且响应于确定应用是受信任应用,确定向客户端设备发放一个或多个信任令牌。
在一些方面,确定应用是受信任应用包括将应用的代码的加密散列与应用的官方构建(official build)的代码的加密散列进行比较,并响应于应用的代码的加密散列匹配应用的官方构建的代码的加密散列,确定应用是受信任应用。
在一些方面,确定应用是受信任应用包括确定已经为该应用发放指示应用不包括恶意应用逻辑的证书。
在一些方面,针对每个信任令牌的随机数是使用盲签名方案盲化的盲化随机数。生成一个或多个信任令牌中的每一个可以包括使用盲签名方案生成针对信任令牌的盲化随机数的盲签名。信任令牌可以包括盲化随机数和盲化随机数的盲签名。
一些方面可以包括从客户端设备接收包括用于兑换(redemption)的给定信任令牌的兑换请求。给定信任令牌可以包括非盲化随机数和基于随机数的盲化版本生成的盲签名。可以使用非盲化随机数和盲签名方案来确认给定信任令牌的盲化签名。响应于确认盲化签名,针对给定信任令牌的签署的兑换记录被发送到客户端设备。
在一些方面,该请求包括客户端设备的公钥。可以使用客户端设备的公钥来加密一个或多个信任令牌中的每一个。向客户端设备提供一个或多个信任令牌可以包括向客户端设备提供一个或多个加密的信任令牌。
在一些方面,该请求包括客户端设备的设备标识符。可以使用设备标识符来维护客户端设备的可信度的历史记录。确定向客户端设备发放一个或多个信任令牌可以包括基于设备级欺诈检测信号和客户端设备的可信度的历史记录的组合来确定客户端设备是受信任设备。
在一些方面,基于设备级欺诈检测信号和客户端设备的可信度的历史记录的组合来确定客户端设备是受信任设备包括:基于设备级欺诈检测信号、客户端设备的可信度的历史记录以及客户端设备在给定时间段期间请求的信任令牌的数量的组合来确定客户端设备是受信任设备。
本说明书中描述的主题可以在特定实施例中实现,以实现以下优点中的一个或多个。从设备接收的请求(或其他通信或数据)的接收者可以例如,基于兑换信任令牌时提供给设备的签署的兑换记录,基于发放给设备的信任令牌,验证设备和在发送请求的设备上运行的应用是可信设备。该令牌和/或签署的兑换记录基于信任令牌系统的评估证明设备及其应用是可信的。
信任令牌系统可以评估设备级欺诈检测信号以确定客户端设备是否受信任。信任令牌系统还可以例如基于在发放信任令牌之前设备上应用的构建是否是官方构建,确定发起请求的应用(例如,网络浏览器)是否是受信任应用。这确保设备是真正的设备(例如,而不是数据中心中的虚拟机或受恶意软件感染/危害的设备),并且应用不是插入有潜在恶意的代码的自定义构建。使用基于这种评估组合而发放的信任令牌可以保护接收者免受滥用(例如,试图创建虚假帐户或接管用户的真实帐户的恶意机器人)和欺诈(例如,试图从伪造的请求/通信中获利的恶意方),并确保对依赖于从设备和应用接收的可信通信的系统和协议的信任。因此,所公开的系统和方法提供了为设备之间的通信提供安全手段的技术优点。此外,所公开的系统和方法能够提供这种通信的安全手段,同时维护用户隐私,因为所公开的系统和方法能够基于设备级和应用级信息发放信任令牌,从而避免对评估用户级数据(诸如浏览历史或其他用户配置文件信息)以确定客户端设备是否是可信的需要。因此,所公开的系统和方法还提供了保护用户信息和维护用户隐私的技术优点。
可以基于在客户端设备处被盲化并被发送到信任令牌系统的盲化随机数来生成信任令牌。客户端设备可以在向信任令牌系统兑换信任令牌之前解除信任令牌的随机数的盲化。通过这种方式,用户隐私得到保护,因为信任令牌系统无法将发放的信任令牌的盲化随机数与兑换的信任令牌的解除盲化的随机数相关。因此,这提供了关于设备级和应用级信号维护用户隐私的技术优点。通过与和客户端设备的用户相关的信号无关地仅基于设备和应用信号发放信任令牌,可以进一步改善用户隐私。因此,与客户端设备的用户相关的此类信息,诸如浏览历史或对客户端设备的用户的个人化的其他数据,对于发放信任令牌不是必需的,因此无需将此信息传输到信任令牌发放器进行评估。通过这种方式,个人用户信息受到保护,因此这提供了维护用户隐私的技术优点。
可以以批量请求和发放信任令牌。这减少了放在信任令牌系统上的负担(例如,使用的CPU周期数),因为信任令牌系统基于客户端设备和应用的单个评估发放多个令牌,因此提供了减少发放多个信任令牌所需的资源的技术优点。这还减少了客户端设备处的时延,因为令牌可以在需要信任令牌验证的任何请求之前发放给客户端设备,而不是对每个请求等待客户端设备的评估,因此还提供了具有用于发放信任令牌的减少的时延的响应更快的系统的技术优点。
下面参考附图描述前述主题的各种特征和优点。附加特征和优点根据本文描述的主题和权利要求是显而易见的。
附图说明
图1是在其中信任令牌系统发放和兑换信任令牌的示例环境的框图。
图2是示出用于发放信任令牌的示例过程的流程图。
图3是示出用于兑换信任令牌的示例过程的流程图。
图4是示出用于处理包括基于兑换的信任令牌的签署的兑换记录的请求的示例过程的流程图。
图5是可以用于执行上述操作的示例计算机系统的框图。
各图中相同的附图标记和名称指示相同的元件。
具体实施方式
总体上,本文档描述了用于使用信任令牌来验证从其接收请求、通信或其他数据的设备和应用的完整性的系统和技术。从客户端设备接收的某些类型的请求的接收者希望确保请求是有效的,并且不是从受危害或欺诈性设备或应用接收的。例如,用户隐私系统可能希望确保从真正的客户端设备和从应用的官方构建而不是从运行在数据中心中的欺诈性虚拟机或具有恶意代码的应用的自定义构建接收改变用户的隐私设置的请求,从而增强了使用应用时的用户隐私。尽管以下描述主要是根据客户端设备发送的请求来说的,但这些技术可以用于验证从客户端设备接收的其他类型的数据或通信的完整性。
将发送可信度被(例如,请求的接收者)认为是重要的请求的应用,可以从信任令牌系统请求信任令牌。信任令牌系统可以评估客户端设备和应用的可信度,并且如果两者都被认为是受信任的,则信任令牌系统可以向客户端设备发放信任令牌。当应用稍后向接收者提交请求时,应用可以为签署的兑换记录(signed redemption record,SRR)兑换信任令牌,应用可以将信任令牌包括在请求中。如下文更详细地描述的,SRR可以包括由信任令牌系统生成的数字签名,以确保请求的数据不被操纵并证明客户端设备和应用被信任令牌系统评估和/或认为是可信的。这提供了一种用于确定客户端设备可信的安全手段,因为由信任令牌系统生成的数字签名验证客户端设备是可信的,并且数字签名还确保该验证未被操纵。
图1是在其中信任令牌系统130发放和兑换信任令牌的示例环境100的框图。示例环境100包括数据通信网络105,诸如局域网(LAN)、广域网(WAN)、互联网、移动网络或其组合。网络105连接客户端设备110、接收者的接收者设备120和信任令牌系统130。示例环境100可以包括许多不同的客户端设备110、信任令牌系统130和接收者设备120。
客户端设备110是能够通过网络105进行通信的电子设备。示例客户端设备110包括个人计算机、移动通信设备(例如,智能电话)以及可以通过网络105发送和接收数据的其他设备。
客户端设备110通常包括应用112,诸如网络浏览器和/或本机应用,以促进通过网络105发送和接收数据。本机应用是针对特定平台或特定设备开发的应用。在一些实施方式中,客户端设备110是数字媒体设备,例如,插入电视或其他显示器以将视频流传输到电视的流传输设备。数字媒体设备还可以包括网络浏览器和/或流传输视频和/或呈现资源的其他应用。
客户端设备110还包括受信任程序114。受信任程序114可以包括来自难以伪造的可靠的源的受信任代码。例如,受信任程序114可以是操作系统、操作系统的一部分、网络浏览器等。通常,受信任程序114难以渗透,并且犯罪者要篡改受信任程序114需要花费的时间和精力的量高得令人望而却步。此外,因为受信任程序114由可靠的源提供和维护,所以该源可以解决出现的任何漏洞。以这种方式使用这样的受信任程序提供了在客户端设备处增加的安全性的技术优点,因为受信任程序难以渗透。此外,受信任程序提供了减轻受信任程序中漏洞的优点,因为该程序由可靠的源维护。
受信任程序114可以是用户设备110本地的。例如,受信任程序114可以是用户设备110的操作系统的设备驱动程序。在一些实施方式中,受信任程序114完全在用户设备110本地操作,这减少了传输用户信息的需要。在一些实施方式中,受信任程序114可以在用户设备110本地并通过网络(诸如网络105)操作。例如,受信任程序114可以是安装在用户设备110上并通过网络105传输和接收信息的网络浏览器。
应用112可以向接收者的接收者设备120发送请求。接收者设备120可以是计算机(例如,服务器)、移动通信设备和可以通过网络105发送和接收数据的其他设备。请求可以包括更新设置(例如,用户隐私设置)的请求、对内容的请求、报告数据的请求、安装应用的请求和/或其他适当类型的请求。示例接收者是响应于请求而提供内容的内容提供者。
对于一些请求,应用112可以包括信任令牌或基于兑换的信任令牌的SSR,以验证请求正由受信任应用和受信任设备发送。应用112可以例如经由受信任程序114从信任令牌系统130请求一个或多个信任令牌。例如,应用112可以调用受信任程序114的应用编程接口(API)来请求(一个或多个)信任令牌。受信任程序114然后可以从信任令牌系统130请求(一个或多个)信任令牌。
受信任程序114可以收集一组数据并将其包括在对应用的信任令牌的请求中。这组数据可以包括针对每个请求的信任令牌的随机数(nonce)。随机数是任意(例如,随机或伪随机)数。在一些实施方式中,不是针对每个信任令牌包括明文随机数,而是请求包括针对每个请求的信任令牌的盲化(blinded)随机数。受信任程序114(或应用112本身)可以生成随机数并使用盲签名方案盲化随机数。对随机数进行盲化可以包括隐藏或模糊随机数的值,例如,通过将随机数与盲化因子组合。盲签名方案可以包括互联网工程任务组(IETF)可验证遗忘伪随机函数(VOPRF)协议、RSA(Rivest-Shamir-Adleman)或另一适当的盲签名方案。如下文更详细地描述的,随机数用于生成信任令牌,并且使用盲化随机数提供了提高用户隐私的技术优点。
对信任令牌的请求的该组数据可以包括设备级欺诈检测信号。设备级欺诈检测信号可以包括表示客户端设备的可以用于确定客户端设备是否受到危害或者客户端设备是作为正常客户端设备还是模拟客户端设备进行操作的操作特性或度量的数据。相对于模拟器,真正的客户端设备的某些操作特性和度量通常是不同的。在一些实施方式中,设备级欺诈检测信号包括应用级欺诈检测信号,其包括请求信任令牌的应用112的操作特性和度量。受信任程序114可以收集这些设备级欺诈检测信号并将这些信号包括在对信任令牌的请求中。
对信任令牌的请求中的该组数据还可以包括与发起对信任令牌的请求并且将最终使用信任令牌的应用112相关的数据。该数据可以包括应用的标识,例如,应用的包文件的包名称和可以用于确定客户端设备110上的应用112的实例是否是应用的官方构建的数据。该数据可以包括表示应用112的代码的数据。例如,受信任应用114可以使用加密散列函数生成应用112的代码的加密散列并且将代码的散列包括在请求中。该散列可以是应用112的(一个或多个)应用二进制文件的散列、应用112的可执行文件的散列和/或客户端设备110处当前运行的应用112的构建的所有文件的散列。在一些实施方式中,该数据还可以包括由应用112的开发者使用开发者的私钥签名的证书的散列。受信任程序114可以在请求时生成散列以确保散列表示在客户端设备110上运行的应用112的当前构建。
在一些实施方式中,对信任令牌的请求的该组数据可以包括正提交请求的客户端设备110的唯一设备标识符。该设备标识符可以是客户端设备的公钥。例如,客户端设备110可以包括非对称加密密钥对,其包括公钥和与公钥对应(例如,在数学上与之关联)的私钥。如下文更详细地描述的,设备标识符可以用于限制向给定客户端设备发放的信任令牌的数量和/或维护客户端设备110的可信度的历史记录。
信任令牌系统130可以从客户端设备110接收信任令牌请求,响应于至少一些请求发放信任令牌,并且为客户端设备110兑换信任令牌。信任令牌系统130包括信任令牌发放器132、设备评估器134和应用评估器136,其中的每一个都可以使用一个或多个数据处理装置(例如,一个或多个服务器计算机)来实现。在一些实施方式中,信任令牌发放器132、设备评估器134和应用评估器136中的两个或更多个在同一计算机上实现。
在一些实施方式中,信任令牌系统130由开发受信任程序114的实体维护和操作。例如,如果受信任程序114是操作系统,则信任令牌系统130可以由操作系统开发者操作。在一些实施方式中,信任令牌系统130由与开发受信任程序114的实体不同的实体操作,例如,由第三方设备和应用欺诈检测系统操作。
设备评估器134评估信任令牌请求的设备级欺诈检测信号以确定从其接收信任令牌请求的客户端设备110是否是受信任设备。设备评估器134可以基于欺诈检测信号确定客户端设备110的可信度级别。例如,可信度级别可以是数字尺度(scale),例如1-3、0-10、0-100或另一适当的尺度上的。如果可信度级别满足可信度阈值,例如达到或超过该阈值,则设备评估器134可以将客户端设备110分类为受信任设备。
在一些实施方式中,设备评估器134基于设备级欺诈检测信号来区分真正的客户端设备、模拟器、根设备(rooted device)和/或其他适当类别的设备。在该示例中,当客户端设备被分类在特定类别,例如,真正的客户端设备类别中时,设备评估器134可以将客户端设备分类为受信任设备。
设备评估器134可以将客户端设备110的(一个或多个)分类存储在设备信任数据库146或其他适当的数据结构中。对于每个客户端设备110,设备信任数据库146可以包括客户端设备110的设备标识符和客户端设备110的可信度的历史记录。该历史记录可以包括客户端设备110的一个或多个历史分类。例如,客户端设备110的可信度的历史记录可以包括对于给定时间段,客户端设备110的可信度级别和/或客户端设备110的分类(例如,受信任或不受信任和/或类别)。给定时间段可以包括从具有相同设备标识符的客户端设备110(因为设备标识符在一些实施方式中可以改变)或在有限时间段内(例如,上周、上个月、上一年等)接收的所有请求。
客户端设备110的可信度的历史记录可以用于确定是否响应于信任令牌请求而向客户端设备110发放信任令牌。在一些实施方式中,信任令牌发放器132可以考虑客户端设备110的可信度模式来确定是否向客户端设备110发放信任令牌。例如,恶意方可能以正常方式操作客户端设备110部分时间和以欺诈性方式操作客户端设备110部分时间。该客户端设备110的历史记录可以指示客户端设备110在某些时间点受信任而在其他时间点不受信任。换言之,可能存在客户端设备110被确定为可信的一个或多个先前实例,以及客户端设备110被确定为不可信的一个或多个先前实例。在该示例中,即使评估的结果是客户端设备110不被信任,信任令牌系统130也可以向客户端设备110发放信任令牌,以避免恶意方学习如何博弈系统。这提供了防止恶意方确定信任令牌发放器如何操作的技术优点,从而提供对信任令牌发放器的安全性。具体来说,如果恶意方要了解信任令牌系统是如何操作的,则该方可能能够操纵系统以获得信任令牌,尽管它是不可信的。因此,通过以这种方式防止恶意方了解系统如何工作,提供了提高的安全性。在另一示例中,如果历史记录指示客户端设备110在大多数时间或所有时间都不受信任,则信任令牌系统130可以不向客户端设备110发放信任令牌,除非客户端设备110对于至少阈值数量的连续评估或在阈值时间段(例如,一周、一个月等)内被认为受信任。因此,历史记录可以用于确定客户端设备是否可信,从而提供了提供用于检测设备是否可信的手段的技术优点。
应用评估器136评估信任令牌请求的数据以确定客户端设备110上的应用112的实例是否是应用的官方构建。应用评估器136可以访问包括应用112的官方构建的代码的散列的应用构建数据库148(或其他适当的数据结构)。例如,当应用开发者发布应用的新构建时,应用开发者可以将应用的代码提供给信任令牌系统130。信任令牌系统130可以使用与客户端设备110的受信任程序114用于生成应用112的代码的散列相同的加密函数来生成代码的散列。应用构建数据库148可以包括对于每个应用的应用的标识符以及对于应用的每个官方构建的应用的代码的散列。在一些实施方式中,信任令牌系统130可以从使应用可以用于下载到客户端设备110的应用商店接收每个应用的代码。
应用评估器136可以将信任令牌请求中包括的应用的散列与存储在应用构建数据库148中的应用的每个官方构建的应用的散列进行比较。应用评估器可以使用信任令牌请求中包括的应用112的标识符来识别应用构建数据库中的应用112的官方构建的散列。如果在信任令牌请求中的应用112的代码的散列与应用112的官方构建的代码的散列之间存在匹配,则应用评估器136可以确定在客户端设备110上运行的应用的实例是应用的官方构建,并且该应用是受信任应用。如果不存在匹配,则应用评估器136可以确定在客户端设备110上运行的应用的实例不是应用的官方构建。
在一些实施方式中,信任令牌请求不必包括应用112的标识符。在该示例中,应用评估器136可以将应用的代码的散列与多个应用的代码的散列进行比较以确定是否存在匹配。
在一些实施方式中,应用评估器136可以响应于在客户端设备110上运行的应用的实例不是官方构建来确定该实例不是受信任应用。在一些实施方式中,应用评估器136可以响应于确定实例不是官方构建而考虑附加信息。例如,应用评估器136可以考虑网络流量分析数据,该数据指示来自被分类为恶意或无效的应用的非官方构建的网络流量的百分比。如果来自应用的非官方构建的网络流量的至少阈值百分比(例如,80%、50%、100%或另一适当的阈值)被认为是恶意的或无效的,则应用评估器136可以确定应用的不是官方构建的任何实例不受信任。
信任令牌发放器132可以基于信任令牌请求中包括的数据和/或由设备评估器134和/或应用评估器136做出的确定来确定是否响应于信任令牌请求发放信任令牌。例如,信任令牌发放器132可以基于设备级欺诈检测信号和/或表示应用的代码的数据确定是否响应于信任令牌请求发放信任令牌。
在一些实施方式中,当设备评估器134确定客户端设备110是受信任设备和/或应用评估器136确定应用112是受信任应用时,信任令牌发放器132可以响应于信任令牌请求向客户端设备110发放信任令牌。在一些实施方式中,仅当客户端设备110被认为是受信任设备并且应用112被认为是受信任应用时,信任令牌发放器132才确定向客户端设备110发放信任令牌。在一些实施方式中,当设备评估器134或应用评估器136中的至少一个输出可信判决时,信任令牌发放器132确定发放信任令牌。其他实施方式可以仅包括设备评估器134或应用评估器132之一,使得当该一个评估器认为客户端设备110或应用112受信任时,信任令牌发放器132向客户端设备110发放令牌。用于发放信任令牌的示例过程在图2中示出并在下面进行描述。
信任令牌发放器132可以在令牌发放数据库142(或其他适当的数据结构)中维护发放给客户端设备110的信任令牌的数量的计数。令牌发放数据库142,对于每个设备标识符,可以包括在一个或多个时间段内,例如每天、每周、每月和/或总体而言,自从包括该设备标识符的第一信任令牌请求以来发放给与该设备标识符对应的客户端设备110的信任令牌的数量的计数。信任令牌发放器132可以使用该数据来限制向客户端设备110发放的信任令牌的数量或者完全防止信任令牌被发放到该设备。例如,如果例如基于客户端设备110的历史趋势,请求的信任令牌的数量对于客户端设备来说异常高,则信任令牌发放器132可以停止向客户端设备110发放信任令牌,因为客户端设备110可能最近受到危害。这提供了即使设备级和应用级信号指示设备是可信的也防止潜在不可信设备被发放信任令牌的技术优点,从而提供一种用于检测不可信设备的改进的方法。这还提供了通过防止不可信设备被认为是可信的来维护安全性的技术优点。
信任令牌发放器132还可以为客户端设备110兑换信任令牌。当客户端设备110的应用112将要发送SRR适合的请求时,应用112可以将兑换信任令牌的请求发送给信任令牌系统130。该请求可以包括向客户端设备110发放的信任令牌。信任令牌发放器132可以评估信任令牌,并且如果有效,则信任令牌发放器可以生成SRR并将SRR发送到客户端设备110。
当信任令牌发放器132兑换信任令牌时,信任令牌发放器132可以更新令牌兑换数据库144(或其他适当的数据结构)。信任令牌发放器132可以使用令牌兑换数据库144来确保每个信任令牌仅被兑换一次。令牌兑换数据库144对于每个兑换的信任令牌可以包括该信任令牌的随机数的明文值。当信任令牌发放器132接收兑换信任令牌的请求时,信任令牌发放器132可以将随机数的明文值与令牌兑换数据库144中的随机数的明文值进行比较。如果存在匹配,则信任令牌已经被兑换,并且信任令牌发放器可以不发放SRR。如果不存在匹配,则信任令牌发放器132可以发放SRR并且更新令牌兑换数据库144以包括被兑换的信任令牌的随机数的明文值,假设信任令牌也是有效的。用于兑换信任令牌的示例过程在图3中示出并在下面进行描述。
在兑换信任令牌之后,应用112可以向接收者的接收者设备120发送请求。该请求可以包括响应于兑现信任令牌而向客户端设备110(或应用112)发放的SRR。接收者设备120可以评估SRR以确定是否和/或如何对请求进行响应。用于处理包括SRR的请求的示例过程在图4中示出并在下面进行描述。
图2是示出用于发放信任令牌的示例过程的流程图。过程200可以例如由信任令牌系统(例如,图1的信任令牌系统130)来实现。过程200的操作也可以被实现为存储在非暂时性计算机可读介质上的指令,并且一个或多个数据处理装置执行指令可以使该一个或多个数据处理装置执行过程200的操作。为简洁起见,根据图1的信任令牌系统130来描述过程200。
信任令牌系统130从客户端设备110接收对一个或多个信任令牌的请求(202)。安装在客户端设备110上的应用112可以发起请求,使得应用112可以使用信任令牌在与接收者进行通信时验证客户端设备110的完整性。例如,应用112可以周期性地(例如,每天一次、每周一次等)或当应用112的被存储但未被兑换的信任令牌的数量下降到阈值或低于阈值时请求信任令牌。为了请求信任令牌,应用112可以调用客户端设备110的受信任程序114(例如,客户端设备110的操作系统)的API。
由信任令牌系统130接收的请求可以包括针对每个请求的信任令牌的随机数、设备级欺诈检测信号和与发起对信任令牌的请求的应用112相关的数据。在一些实施方式中,该请求还可以包括客户端设备110的唯一设备标识符。与应用相关的数据可以包括应用的标识符和应用的代码的散列。
信任令牌系统130评估设备级欺诈检测信号(204)。例如,信任令牌系统130的设备评估器134可以将欺诈检测信号中包括的操作特性和度量与真正客户端设备、模拟器、根设备等的对应特性和度量进行比较。如果客户端设备110的特性和度量类似于设备的多个类别之一,则设备评估器134可以将客户端设备110分类到该类别中。例如,设备评估器134对于每个操作特性或度量,访问真正的客户端设备的特性的第一值或第一值范围、模拟器的特性的第二值或第二值范围和/或根设备的特性的第三值或第三值范围。设备评估器134可以将客户端设备110的每个操作特性或度量与每个类别的设备的对应值或值范围进行比较。设备评估器134可以针对多个操作特性和度量执行该比较,并确定更多操作特性和度量是否在真正的设备、模拟器或根设备的对应范围内(或较接近该范围)。设备评估器134然后可以确定客户端设备110更类似于其更多度量在该类别的设备的范围内的类别的设备。在其他实施方式中,可以使用其他类别的设备并且可以使用其他类型的设备参数。在其他实施方式中,使用收集的操作特性和度量作为受监督或半监督的机器学习(ML)模型的输入信号并将已知设备的已知类别用作训练标签,可以训练ML模型将设备分类为多个设备类别。
在另一示例中,设备评估器134可以基于操作特性和度量向客户端设备110指派可信度级别。例如,设备评估器134可以将每个操作特性或度量与指示受信任设备的对应值或值范围进行比较。设备评估器134可以基于在受信任范围内和/或在受信任范围的对应阈值内的操作特性和度量的数量来指派可信度级别。
设备评估器134基于评估确定客户端设备110是否是受信任设备(206)。设备评估器134可以基于向客户端设备110指派的可信度级别来确定客户端设备110是否是受信任设备。例如,设备评估器134可以例如从数据库访问可信度阈值,并将可信度级别与可信度阈值进行比较。如果可信度级别满足(例如,达到或超过)阈值,则设备评估器134可以确定客户端设备110是受信任设备。如果可信度级别不满足阈值,则设备评估器134可以确定客户端设备110不是受信任设备。在一些实施方式中,阈值可以由使用信任令牌来检测欺诈的发放的信任令牌的用户,例如,发放的信任令牌的接收者来设置。阈值也可以由信任令牌系统130设置,例如,由信任令牌发放器132设置。
在另一示例中,设备评估器134可以基于向客户端设备110指派的类别来确定客户端设备110是否是受信任设备。设备评估器134可以将向客户端设备110指派的类别与被认为是受信任的一个或多个类别和被认为是不受信任的一个或多个类别进行比较。例如,如果设备评估器134将客户端设备110分类为真正的客户端设备,则设备评估器134可以确定客户端设备110是受信任设备。如果设备评估器134将客户端设备110分类为模拟器或根设备,则设备评估器134可以确定客户端设备110不是受信任设备。可以从数据库访问受信任设备和非受信任设备的类别。
在另一示例中,设备评估器134可以基于客户端设备110在给定时间段内(例如,在最近一小时、一天、一周或一个月等中)请求的信任令牌的数量来确定客户端设备110是否是受信任设备。例如,设备评估器134可以例如从数据库访问令牌阈值,并将客户端设备110在给定时间段期间请求的令牌的数量与阈值进行比较。如果客户端设备110在给定时间段期间请求的令牌的数量小于阈值,则设备评估器134可以确定客户端设备110受信任。如果客户端设备110在给定时间段期间请求的令牌的数量达到或超过阈值,则设备评估器134可以确定客户端设备110不受信任。这提供了即使设备级和应用级信号指示设备是可信的也防止潜在不可信设备被发放信任令牌的技术优点,从而提供一种用于检测不可信设备的改进的方法。
在一些实施方式中,设备评估器134可以基于设备级欺诈检测信号的评估和在给定时间段期间请求的信任令牌的数量的组合来确定客户端设备110是否是受信任设备。例如,设备评估器134可以仅在可信度级别满足其阈值(或向客户端设备110指派的类别是受信任类别)且客户端设备110请求的信任令牌的数量小于其阈值时才确定客户端设备110是受信任设备。
如果设备评估器134确定客户端设备110不是受信任设备,则信任令牌系统130可以不向客户端设备110发放信任令牌(208)。在一些实施方式中,如上所述,即使信任令牌被确定为不是受信任设备,信任令牌系统130也可以向客户端设备发放信任令牌。在这些特定实施方式中,这提供了防止不可信设备推断关于信任令牌系统如何操作的任何信息的技术优点,从而不可信设备不能操纵系统。因此,这增加了信任令牌系统的安全性和完整性。
如果设备评估器134确定客户端设备是受信任设备,则评估应用112的可信度(210)。信任令牌系统130的应用评估器136可以评估应用112的可信度。应用评估器136可以将在请求中接收的应用112的代码的散列与应用的已知官方构建的代码的散列进行比较以确定安装在客户端设备110上的应用112的实例是否是应用112的官方构建。如果在请求中接收的应用112的代码的散列匹配应用112的已知官方构建的代码的散列,则应用评估器136可以确定安装在客户端设备110上的应用112的实例是应用112的官方构建。如果不存在匹配,则应用评估器136可以确定安装在客户端设备110上的应用112的实例不是应用112的官方构建。
在一些实施方式中,设备评估器134基于应用112的代码是否已被证明为非恶意的来确定应用112是否是受信任应用。例如,诸如操作系统开发者和/或操作可以从其下载应用112的应用商店的实体的受信任方可以评估应用112的官方版本的代码以确定应用112的官方构建是否包括病毒、恶意软件或其他恶意应用逻辑。如果没有发现这样的恶意应用逻辑,则受信任方可以为应用112发放指示应用112不包括恶意应用逻辑的证书。如果受信任方发现恶意应用逻辑,则受信任方可以拒绝发放证书或发放指示应用112包括恶意应用逻辑的证书。受信任方可以评估应用的每个官方构建,并基于评估确定是否为每个官方构建发放相应的证书。在受信任方是应用商店的示例中,代替发放指示应用112是官方构建且不包括恶意应用逻辑的证书,应用商店可以在应用商店中发布应用,从而应用可以被广泛分发。在一些示例中,代替发放指示应用112是官方构建且不包括恶意应用逻辑的证书,受信任方可以将记录插入到列出应用112的所有已知可信任应用的数据库。
应用评估器136确定安装在客户端设备110上的应用112是否受信任(212)。在一些实施方式中,应用评估器136响应于确定应用112是官方构建而确定应用112是受信任的。如果应用112不是官方构建,则应用评估器可以考虑网络流量分析数据,该数据指示来自被分类为恶意或无效的应用的非官方构建的网络流量的百分比。如果来自应用的非官方构建的至少阈值百分比的网络流量被认为是恶意的或无效的,则应用评估器136可以确定不是官方构建的应用112的任何实例不受信任。如果小于阈值百分比的网络流量被认为是恶意的或无效的,则应用评估器136可以确定应用112受信任,尽管应用112不是官方构建。
在一些实施方式中,应用评估器136响应于确定应用112是官方构建并且响应于确定已经为客户端设备112上的应用112的构建发放了指示应用112不包括恶意应用逻辑的证书来确定应用112是受信用应用。也就是说,在该实施方式中,应用112必须满足两个标准。
如果应用评估器136确定应用112不受信任,则信任令牌系统130可以不向客户端设备110发放信任令牌(208)。如果应用评估器136确定应用112受信任,则信任令牌系统为应用112生成信任令牌。
在该示例过程中,信任令牌系统130仅在客户端设备110和应用112两者都被认为受信任时才发放信任令牌。在其他示例中,信任令牌系统130可以例如通过仅评估客户端设备110或应用112,在客户端设备110或应用112被认为受信任时发放信任令牌。
信任令牌系统130的信任令牌发放器132可以针对在请求中接收的每个随机数生成信任令牌(214)。信任令牌发放器132可以通过基于随机数的值生成数字签名来生成信任令牌。信任令牌可以是随机数和数字签名的组合。
在一些实施方式中,信任令牌发放器132通过使用与在客户端设备110处用于盲化随机数相同的盲签名方案对盲化随机数进行盲签名来生成信任令牌。以这种方式,信任令牌发放器132不能访问随机数的实际明文值,但能够生成稍后能够基于随机数的明文值进行验证的数字签名。在该示例中,信任令牌可以是盲化随机数和盲化随机数的盲签名的组合。如下所讨论的,对随机数进行盲化使得信任令牌发放器不能访问随机数的明文值提供了维护对用户数据的隐私的技术优点。这是因为信任令牌系统不能将(信任令牌发放器在发放信任令牌时看到的)盲化随机数与(兑换发放的令牌时看到)的对应的非盲化随机数相关,因此信任令牌系统不能通过尝试将发放的信任令牌与兑换的信任令牌相关来推断来自客户端设备的任何用户信息。
在一些实施方式中,信任令牌还可以包括附加数据,例如,以被编码到盲签名中的元数据的形式。编码的元数据可以帮助信任令牌发放器132比较各种令牌发放逻辑并确定哪一种在欺诈检测中最高效。此外,编码的元数据可以指示向设备110和应用112指派的可信度级别。信任令牌发放器132可以将少量信息以(一个或多个)隐藏位和签名验证密钥的形式编码到盲签名中。例如,如果可以通过四个验证密钥之一来验证盲签名,则信任令牌发放器132可以将两位信息编码到签名中。
在一些实施方式中,信任令牌发放器132可以使用客户端设备110的公钥来加密每个信任令牌。例如,对信任令牌的请求可以包括客户端设备110的公钥作为客户端设备110的唯一标识符。通过使用客户端设备110的公钥加密每个信任令牌,只有具有私钥的客户端设备110才能解密信任令牌。这确保提交对信任令牌的请求的客户端设备110确实具有私钥并且因此没有其他客户端设备可以获得发放的信任令牌。因此,这通过确保只有提交过请求并实际拥有与公钥对应的私钥的客户端设备才能兑换发放的信任令牌,对发放的信任令牌提供额外的安全性。因此,通过使用进行请求的客户端设备的公钥对每个信任令牌进行加密,提供了对发放的信任令牌的额外的安全性的技术优点。
信任令牌发放器132将信任令牌发送到客户端设备110(216)。如果使用客户端设备110的公钥对信任令牌进行了加密,则受信任程序114可以使用与公钥对应的私钥对信任令牌进行解密。如果使用了盲化随机数,则生成盲化随机数的应用112(或受信任程序114)可以验证每个信任令牌的盲签名。应用112或受信任程序114可以基于它为对信任令牌的请求创建的随机数的盲化值来验证盲签名。如果签名无效,则应用112或受信任程序114可以拒绝信任令牌。
如果签名有效,则应用112或受信任程序114可以使用用于对随机数进行盲化并对盲化随机数进行盲签名的盲签名方案来解除盲化随机数的盲化。解除随机数的盲化可以包括从随机数中去除盲化因子,使得随机数不再被模糊。根据盲签名方案,应用112或受信任程序114还可以例如通过从盲签名中去除盲化因子使用盲签名方案解除盲签名的盲化。
应用112然后可以针对每个信任令牌存储信任令牌的非盲化版本,其包括非盲化随机数(例如,明文随机数)和盲化或非盲化形式的盲签名。也就是说,应用112可以更新或生成包括非盲化随机数和盲签名的信任令牌的新版本。应用112可以将信任令牌存储在客户端设备110处的安全存储位置中。
图3是示出用于兑换信任令牌的示例过程300的流程图。过程300可以例如通过信任令牌系统(例如,图1的信任令牌系统130)来实现。过程300的操作也可以被实现为存储在非暂时性计算机可读介质上的指令,并且一个或多个数据处理装置执行该指令可以使一个或多个数据处理装置执行过程300的操作。为简洁起见,根据图1的信任令牌系统130来描述过程300。
信任令牌系统130从客户端设备110接收兑换信任令牌的请求(302)。在客户端设备110上运行的应用112可以响应于向要求请求包括SRR的接收者发起请求而发放兑换信任令牌的请求。例如,当网络浏览器导航到发布者的特定网站时,该网站或嵌入该网站中的另一域的模块可以请求网络浏览器兑换信任令牌以确保客户端设备110和网络浏览器是受信任的。
应用112可以从发放给应用112的信任令牌获得信任令牌,并向信任令牌系统130发送包括信任令牌的兑换请求。该请求还可以包括由应用112生成的公钥(或公钥的加密散列)。继续网络浏览器示例,该请求可以包括网络浏览器为浏览器呈现的网站的域而创建的公钥和识别该域的数据。网络浏览器可以为网络浏览器访问的每个域生成密钥对。每个密钥对可以包括公钥和对应的私钥。
如果使用盲化随机数来生成信任令牌,则用于兑换而被发送的信任令牌可以包括非盲化随机数和盲签名而不是盲化随机数。以此方式,信任令牌系统130不能将用于兑换而被提交的信任令牌与发放给应用112的信任令牌相关,这意味着信任令牌系统不能从发放并随后兑换的信任令牌推断关于客户端设备或客户端设备的用户的任何信息。因此,这提供了在兑换信任令牌时维护用户隐私的技术优点。由于信任令牌系统130可以存储用客户端设备110的设备标识符将发放的信任令牌(以及因此盲化随机数)与在发放信任令牌时进行评价的可信度级别关联的数据,因此信任令牌系统130将能够将来自客户端设备110的SRR的接收者与可信度级别相关。然而,在兑换时使用具有非盲化随机数的信任令牌防止将信任令牌与图2的操作204和210中的设备级欺诈检测信号和与应用112有关的数据相关,因为信任令牌系统130不能将非盲化随机数与盲化随机数相关。因此,该技术保护了用户的隐私。
信任令牌系统130尝试验证接收的信任令牌的盲签名(304)。例如,信任令牌系统130的信任令牌发放器132可以尝试使用用于对发放的信任令牌的盲化随机数进行盲签名的盲签名方案来验证盲签名。信任令牌发放器132可以使用盲签名方案和非盲化随机数的明文值来验证盲签名。
如果盲签名没有被成功验证(306),则信任令牌系统130可以不兑换信任令牌(308)。如果盲签名被成功验证,则信任令牌发放器132确定信任令牌是否已经被兑换(310)。该确定可以在验证盲签名之前、之后或与验证盲签名并行或以其他方式异步执行。
信任令牌发放器132可以将非盲化随机数与(例如,存储在令牌兑换数据库144中的)先前兑换的信任令牌的非盲化随机数进行比较。先前兑换的信任令牌可以包括来自该客户端设备110或来自多个客户端设备110的兑换的令牌。如果要兑换的信任令牌的非盲化随机数与先前兑换的信任令牌的非盲化随机数之间存在匹配,则信任令牌发放器132可以确定信任令牌先前已被兑换。如果要兑换的信任令牌的非盲化随机数与先前兑换的信任令牌的非盲化随机数之间不存在匹配,则信任令牌发放器132可以确定信任令牌先前未被兑换。
如果先前已经兑换信任令牌,则信任令牌发放器132可以不再次兑换信任令牌(308)。如果信任令牌还没有被兑换,则信任令牌发放器132可以兑换信任令牌并向应用112发放SRR(312)。
SRR可以包括一组数据,该组数据包括指示生成SRR的时间和日期的兑换时间戳、识别在兑换请求中识别的网站的域的数据、浏览器为该域创建的公钥和/或识别发放和兑换信任令牌的信任令牌系统130的数据(因为可能存在多个信任令牌系统)。SRR还可以包括使用信任令牌系统130的私钥生成的该组数据的数字签名。以这种方式,接收者和任何其他实体可以通过使用与信任令牌系统130的私钥对应的公钥验证数字签名来验证该组数据没有被操纵。将浏览器为域创建的公钥与使用信任令牌系统130的私钥签名的数据包括在一起将SRR绑定到该特定域和浏览器。信任令牌发放器132可以生成SRR并将SRR发送到请求兑换信任令牌的应用112。
信任令牌发放器132还可以更新令牌兑换数据库144以指示信任令牌已经被兑换(314)。例如,信任令牌发放器132可以将非盲化随机数的明文值添加到令牌兑换数据库144以防止信任令牌被多次兑换。
图4是示出用于处理包括基于兑换的信任令牌的签署的兑换记录的请求的示例过程400的流程图。过程400可以例如由接收者设备(例如,图1的接收者设备120)实现。过程400的操作也可以实现为存储在非暂时性计算机可读介质上的指令,并且一个或多个数据处理装置执行该指令可以使一个或多个数据处理装置执行过程400的操作。为了简洁起见,根据图1的信任令牌系统130来描述过程400。
接收者设备120从客户端设备110接收包括一个或多个SRR的请求(402)。该请求可以包括针对基于上述设备和应用评估而生成的兑换的信任令牌生成的SRR。在一些实施方式中,该请求可以包括基于信任令牌而生成的附加SRR,该信任令牌基于与客户端设备上的一个应用或多个应用的用户交互的评估而发放,例如,基于用户交互是真正的用户交互而不是模拟用户交互的评估和确定。该请求的(一个或多个)SRR可以包括由信任令牌系统130基于兑换的信任令牌为应用112(或图1中的受信任程序114)生成的(一个或多个)SRR。
该请求还可以包括请求的其他内容的数字签名,例如,包括SRR。应用112或受信任程序114可以使用应用112为域创建的私钥来生成数字签名。该私钥与应用112为域创建的公钥对应。该公钥或其加密散列结果被包括在SRR中。以这种方式,请求和SRR被绑定到域。
接收者设备120尝试确认(validate)每个SRR(404)。该确认可以包括尝试使用生成SRR的信任令牌系统130的公钥来验证SRR的数字签名。接收者设备120还可以确定兑换时间戳是否在当前时间的阈值时间量内以确保SRR不过时。
接收者设备120确定每个SRR是否被确认(406)。接收者设备120可以基于SRR的数字签名是否被验证和/或兑换时间戳是否在阈值时间量内来确定SRR是否被确认。如果数字签名被成功验证并且兑换时间戳在当前时间的阈值时间量内,则接收者设备120可以确定SRR被确认。如果数字签名没有被成功验证或者兑换时间戳不在当前时间的阈值时间量内,则接收者设备120可以确定SRR未被确认。
在一些实施方式中,接收者设备120还可以使用应用为域创建的公钥来验证请求的数字签名,例如,该公钥(或其加密散列结果)可以包括在SRR和/或请求本身中。如果数字签名不能被确认,则接收者设备120可以确定请求是无效的并且可以不对该请求进行响应。
如果每个SRR没有被确认,则接收者设备120可以不对该请求进行响应(408)。例如,接收者设备120可以忽略该请求。
如果每个SRR被确认,则接收者设备120对该请求进行响应(410)。例如,接收者设备120可以基于该请求,响应于请求提供内容、响应于请求更新数据或设置等。
图5是可以用于执行上述操作的示例计算机系统500的框图。系统500包括处理器510、存储器520、存储设备530和输入/输出设备540。组件510、520、530和540中的每一个可以例如使用系统总线550互连。处理器510能够处理用于在系统500内执行的指令。在一些实施方式中,处理器510是单线程处理器。在另一实施方式中,处理器510是多线程处理器。处理器510能够处理存储在存储器520中或存储设备530上的指令。
存储器520存储系统500内的信息。在一种实施方式中,存储器520是计算机可读介质。在一些实施方式中,存储器520是易失性存储器单元。在另一实施方式中,存储器520是非易失性存储器单元。
存储设备530能够为系统500提供大容量存储。在一些实施方式中,存储设备530是计算机可读介质。在各种不同的实施方式中,存储设备530可以包括例如硬盘设备、光盘设备、由多个计算设备通过网络共享的存储设备(例如,云存储设备)或某其他大容量存储设备。
输入/输出设备540为系统600提供输入/输出操作。在一些实施方式中,输入/输出设备540可以包括网络接口设备,例如,以太网卡;串行通信设备,例如,RS-232端口;和/或无线接口设备,例如,802.11卡中的一个或多个。在另一实施方式中,输入/输出设备可以包括被配置为接收输入数据并将输出数据发送到外部设备560(例如,键盘、打印机和显示设备)的驱动器设备。然而,也可以使用其他实施方式,诸如移动计算设备、移动通信设备、机顶盒电视客户端设备等。
虽然图5中已经描述了示例处理系统,但是本说明书中描述的主题和功能操作的实施方式可以在其他类型的数字电子电路中或者在计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构等效物,或在它们中的一个或多个的组合中实现。
本说明书中描述的主题的实施例和操作可以在数字电子电路中或在计算机软件、固件或硬件中实现,包括在本说明书中公开的结构及其结构等效物,或在它们中的一个或多个的组合中实现。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即,计算机程序指令的一个或多个模块,其编码在多个计算机存储介质(或一个计算机存储介质)上,用于供数据处理装置执行或控制其操作。替代地或另外地,程序指令可以被编码在人工生成的传播信号(例如机器生成的电、光或电磁信号)上,人工生成的传播信号被生成为对信息进行编码以传输到合适的接收器装置来供数据处理装置执行。计算机存储介质可以是计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备或它们中的一个或多个的组合或包括在其中。此外,虽然计算机存储介质不是传播信号,但计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质还可以是一个或多个单独的物理组件或介质(例如,多个CD、盘或其他存储设备)或包括在其中。
本说明书中描述的操作可以被实现为数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。
术语“数据处理装置”涵盖用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机、片上系统、或多个前述装置、设备和机器或其组合。该装置可以包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。该装置和执行环境可以实现各种不同的计算模型基础设施,诸如网络服务、分布式计算和网格计算基础设施。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明或过程语言,并且其可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适用于计算环境的其他单元。计算机程序可以但不必与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)、专用于所讨论的程序的单个文件或多个协调文件(例如、存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可以部署为在一个计算机上执行,或在位于一个站点或分布在多个站点并通过通信网络互连的多个计算机上执行。
本说明书中描述的过程和逻辑流可由一个或多个可编程处理器执行,该可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流也可以由专用逻辑电路来执行,并且装置也可以被实现为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适合于执行计算机程序的处理器包括例如通用和专用微处理器两者。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘)或操作地联接以从一个或多个大容量存储设备接收数据或将数据传送到一个或多个大容量存储设备或接收或传送两者。然而,计算机不必具有这样的设备。此外,计算机可以嵌入另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器),仅举几例。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如,内部硬盘或可移动盘;磁光盘;和CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或合并到专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示)监视器)和用户可以通过其向计算机提供输入的键盘和指向设备(例如,鼠标或轨迹球)的计算机上实现。也可以使用其他种类的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求,将网页发送到用户的客户端设备上的网络浏览器。
本说明书中描述的主题的实施例可以在包括后端组件(例如,作为数据服务器)或包括中间件组件(例如,应用服务器)或包括前端组件(例如,具有用户可以通过其与本说明书中描述的主题的实施方式进行交互的图形用户界面或网络浏览器的客户端计算机),或一个或多个此类后端、中间件或前端组件的任何组合的计算系统中实现。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网络(例如,互联网)和对等网络(例如,自组对等网络)。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络进行交互。客户端和服务器的关系是由于在相应的计算机上运行并且彼此之间具有客户端-服务器关系的计算机程序而产生的。在一些实施例中,服务器将数据(例如,HTML页面)传输到客户端设备(例如,为了向与客户端设备交互的用户显示数据和从与客户端设备交互的用户接收用户输入的目的)。可以在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
虽然本说明书包含许多具体的实施细节,但这些不应被解释为对任何发明的范围或可能要求保护的范围的限制,而是解释为对特定于特定发明的特定实施例的特征的描述。本说明书中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管在上面可能将特征描述为以某些组合发挥作用,甚至最初被如此要求保护,但在某些情况下,可以从组合中排除来自要求保护的组合的一个或多个特征,并且要求保护的组合可能涉及子组合或子组合的变体。
类似地,虽然在附图中以特定顺序描绘了操作,但这不应理解为要求以所示的特定顺序或按连续顺序执行此类操作,或者执行所有图示的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。而且,上述实施例中各种系统组件的分离不应理解为在所有实施例中都需要这样的分离,应当理解的是,所描述的程序组件和系统一般可以一起集成在单个软件产品中或封装到多个软件产品中。
因此,已经描述了本主题的特定实施例。其他实施例在以下权利要求的范围内。在某些情况下,权利要求中记载的动作可以以不同的顺序执行,但仍能实现期望的结果。此外,附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。

Claims (38)

1.一种计算机实现的方法,包括:
从客户端设备接收对一个或多个信任令牌的请求,所述请求包括:
(i)从所述客户端设备获得的一个或多个设备级欺诈检测信号或(ii)表示发起所述请求的应用的代码的数据中的至少一个;和
针对所述一个或多个信任令牌中的每一个的相应随机数;
基于(i)所述一个或多个设备级欺诈信号或(ii)表示所述应用的代码的数据中的至少一个确定向所述客户端设备发放所述一个或多个信任令牌;
响应于确定向所述客户端设备发放所述一个或多个信任令牌:
使用针对信任令牌的随机数生成所述一个或多个信任令牌中的每一个;以及
向所述客户端设备提供所述一个或多个信任令牌。
2.根据权利要求1所述的方法,其中,基于(i)所述一个或多个设备级欺诈信号或(ii)表示所述应用的代码的数据中的至少一个确定向所述客户端设备发放所述一个或多个信任令牌包括:
基于所述一个或多个设备级欺诈信号确定所述客户端设备是受信任设备;
基于表示所述应用的代码的数据确定所述应用是受信任应用;以及
响应于确定所述客户端设备是受信任设备并且所述应用是受信任应用,确定向所述客户端设备发放所述一个或多个信任令牌。
3.根据权利要求1或2所述的方法,其中,表示所述应用的代码的数据包括所述应用的代码的加密散列。
4.根据权利要求1所述的方法,其中,确定向所述客户端设备发放所述一个或多个信任令牌包括:
基于所述应用的代码确定所述应用是受信任应用;以及
响应于确定所述应用是受信任应用,确定向所述客户端设备发放所述一个或多个信任令牌。
5.根据权利要求2或4所述的方法,其中,确定所述应用是受信任应用包括:
将所述应用的代码的加密散列与所述应用的官方构建的代码的加密散列进行比较;以及
响应于所述应用的代码的加密散列匹配所述应用的官方构建的代码的加密散列,确定所述应用是受信任应用。
6.根据权利要求2或4所述的方法,其中,确定所述应用是受信任应用包括确定已经为所述应用发放指示所述应用不包括恶意应用逻辑的证书。
7.根据任一前述权利要求所述的方法,其中,针对每个信任令牌的随机数是使用盲签名方案盲化的盲化随机数。
8.根据权利要求7所述的方法,其中,生成所述一个或多个信任令牌中的每一个包括使用盲签名方案生成针对所述信任令牌的盲化随机数的盲签名,其中,所述信任令牌包括所述盲化随机数和所述盲化随机数的盲签名。
9.根据权利要求8所述的方法,还包括:
从所述客户端设备接收包括用于兑换的给定信任令牌的兑换请求,其中,所述给定信任令牌包括非盲化随机数和基于随机数的盲化版本生成的盲签名;
使用所述非盲化随机数和盲签名方案确认所述给定信任令牌的盲化签名;以及
响应于确认所述盲化签名,向所述客户端设备发送针对所述给定信任令牌的签署的兑换记录。
10.根据任一前述权利要求所述的方法,其中,所述请求还包括所述客户端设备的公钥,所述方法还包括使用所述客户端设备的公钥对所述一个或多个信任令牌中的每一个进行加密,并且其中,向所述客户端设备提供所述一个或多个信任令牌包括向所述客户端设备提供一个或多个加密的信任令牌。
11.根据任一前述权利要求所述的方法,其中,所述请求包括所述客户端设备的设备标识符,所述方法还包括使用所述设备标识符维护所述客户端设备的可信度的历史记录,其中,确定向所述客户端设备发放所述一个或多个信任令牌包括基于设备级欺诈检测信号和所述客户端设备的可信度的历史记录的组合来确定所述客户端设备是受信任设备。
12.根据权利要求11所述的方法,其中,基于所述设备级欺诈检测信号和所述客户端设备的可信度的历史记录的组合确定所述客户端设备是受信任设备包括:基于设备级欺诈检测信号、所述客户端设备的可信度的历史记录以及客户端设备在给定时间段期间请求的信任令牌的数量的组合来确定所述客户端设备是受信任设备。
13.一种系统,包括:
一个或多个处理器;和
存储指令的一个或多个存储设备,所述指令在由所述一个或多个处理器执行时使所述一个或多个处理器执行根据任一前述权利要求所述的方法。
14.一种承载指令的计算机可读介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行根据权利要求1至12中任一项所述的方法。
15.一种系统,包括:
一个或多个处理器;和
存储指令的一个或多个计算机可读介质,所述指令在由所述一个或多个处理器执行时使所述一个或多个处理器执行操作,所述操作包括:
从客户端设备接收对一个或多个信任令牌的请求,所述请求包括:
(i)从所述客户端设备获得的一个或多个设备级欺诈检测信号或(ii)表示发起所述请求的应用的代码的数据中的至少一个;和
针对所述一个或多个信任令牌中的每一个的相应随机数;
基于(i)所述一个或多个设备级欺诈信号或(ii)表示所述应用的代码的数据中的至少一个确定向所述客户端设备发放所述一个或多个信任令牌;
响应于确定向所述客户端设备发放所述一个或多个信任令牌:
使用针对信任令牌的随机数生成所述一个或多个信任令牌中的每一个;以及
向所述客户端设备提供所述一个或多个信任令牌。
16.根据权利要求15所述的系统,其中,基于(i)所述一个或多个设备级欺诈信号或(ii)表示所述应用的代码的数据中的至少一个确定向所述客户端设备发放所述一个或多个信任令牌包括:
基于所述一个或多个设备级欺诈信号确定所述客户端设备是受信任设备;
基于表示所述应用的代码的数据确定所述应用是受信任应用;以及
响应于确定所述客户端设备是受信任设备并且所述应用是受信任应用,确定向所述客户端设备发放所述一个或多个信任令牌。
17.根据权利要求15所述的系统,其中,表示所述应用的代码的数据包括所述应用的代码的加密散列。
18.根据权利要求15所述的系统,其中,确定向所述客户端设备发放所述一个或多个信任令牌包括:
基于所述应用的代码确定所述应用是受信任应用;以及
响应于确定所述应用是受信任应用,确定向所述客户端设备发放所述一个或多个信任令牌。
19.根据权利要求18所述的系统,其中,确定所述应用是受信任应用包括:
将所述应用的代码的加密散列与所述应用的官方构建的代码的加密散列进行比较;以及
响应于所述应用的代码的加密散列匹配所述应用的官方构建的代码的加密散列,确定所述应用是受信任应用。
20.根据权利要求18所述的系统,其中,确定所述应用是受信任应用包括确定已经为所述应用发放指示所述应用不包括恶意应用逻辑的证书。
21.根据权利要求15所述的系统,其中,针对每个信任令牌的随机数是使用盲签名方案盲化的盲化随机数。
22.根据权利要求21所述的系统,其中,生成所述一个或多个信任令牌中的每一个包括使用盲签名方案生成针对所述信任令牌的盲化随机数的盲签名,其中,所述信任令牌包括所述盲化随机数和所述盲化随机数的盲签名。
23.根据权利要求22所述的系统,其中,所述操作包括:
从所述客户端设备接收包括用于兑换的给定信任令牌的兑换请求,其中,所述给定信任令牌包括非盲化随机数和基于随机数的盲化版本生成的盲化签名;
使用所述非盲化随机数和盲签名方案确认所述给定信任令牌的盲化签名;以及
响应于确认所述盲签名,向所述客户端设备发送针对所述给定信任令牌的签署的兑换记录。
24.根据权利要求15所述的系统,其中,所述请求还包括所述客户端设备的公钥,所述操作还包括使用所述客户端设备的公钥对所述一个或多个信任令牌中的每一个进行加密,并且其中,向所述客户端设备提供所述一个或多个信任令牌包括向所述客户端设备提供一个或多个加密的信任令牌。
25.根据权利要求15所述的系统,其中,所述请求包括所述客户端设备的设备标识符,所述操作还包括使用所述设备标识符维护所述客户端设备的可信度的历史记录,其中,确定向所述客户端设备发放所述一个或多个信任令牌包括基于设备级欺诈检测信号和所述客户端设备的可信度的历史记录的组合来确定所述客户端设备是受信任设备。
26.根据权利要求15所述的系统,其中,基于设备级欺诈检测信号和所述客户端设备的可信度的历史记录的组合确定所述客户端设备是受信任设备包括基于所述设备级欺诈检测信号、所述客户端设备的可信度的历史记录以及客户端设备在给定时间段期间请求的信任令牌的数量的组合来确定所述客户端设备是受信任设备。
27.存储指令的一个或多个非暂时性计算机可读介质,所述指令在由一个或多个计算机执行时使所述一个或多个计算机执行操作,所述操作包括:
从客户端设备接收对一个或多个信任令牌的请求,所述请求包括:
(i)从所述客户端设备获得的一个或多个设备级欺诈检测信号或(ii)表示发起所述请求的应用的代码的数据中的至少一个;和
针对所述一个或多个信任令牌中的每一个的相应随机数;
基于(i)所述一个或多个设备级欺诈信号或(ii)表示所述应用的代码的数据中的至少一个确定向所述客户端设备发放所述一个或多个信任令牌;
响应于确定向所述客户端设备发放所述一个或多个信任令牌:
使用针对信任令牌的随机数生成所述一个或多个信任令牌中的每一个;以及
向所述客户端设备提供所述一个或多个信任令牌。
28.根据权利要求27所述的一个或多个非暂时性计算机可读介质,其中,基于(i)所述一个或多个设备级欺诈信号或(ii)表示所述应用的代码的数据中的至少一个确定向所述客户端设备发放所述一个或多个信任令牌包括:
基于所述一个或多个设备级欺诈信号确定所述客户端设备是受信任设备;
基于表示所述应用的代码的数据确定所述应用是受信任应用;以及
响应于确定所述客户端设备是受信任设备并且所述应用是受信任应用,确定向所述客户端设备发放所述一个或多个信任令牌。
29.根据权利要求27所述的一个或多个非暂时性计算机可读介质,其中,表示所述应用的代码的数据包括所述应用的代码的加密散列。
30.根据权利要求27所述的一个或多个非暂时性计算机可读介质,其中,确定向所述客户端设备发放所述一个或多个信任令牌包括:
基于所述应用的代码确定所述应用是受信任应用;以及
响应于确定所述应用是受信任应用,确定向所述客户端设备发放所述一个或多个信任令牌。
31.根据权利要求30所述的一个或多个非暂时性计算机可读介质,其中,确定所述应用是受信任应用包括:
将所述应用的代码的加密散列与所述应用的官方构建的代码的加密散列进行比较;以及
响应于所述应用的代码的加密散列匹配所述应用的官方构建的代码的加密散列,确定所述应用是受信任应用。
32.根据权利要求30所述的一个或多个非暂时性计算机可读介质,其中,确定所述应用是受信任应用包括确定已经为所述应用发放指示所述应用不包括恶意应用逻辑的证书。
33.根据权利要求27所述的一个或多个非暂时性计算机可读介质,其中,针对每个信任令牌的随机数是使用盲签名方案盲化的盲化随机数。
34.根据权利要求33所述的一个或多个非暂时性计算机可读介质,其中,生成所述一个或多个信任令牌中的每一个包括使用盲签名方案生成针对信任令牌的盲化随机数的盲签名,其中,所述信任令牌包括所述盲化随机数和所述盲化随机数的盲签名。
35.根据权利要求34所述的一个或多个非暂时性计算机可读介质,其中,所述操作包括:
从所述客户端设备接收包括用于兑换的给定信任令牌的兑换请求,其中,所述给定信任令牌包括非盲化随机数和基于随机数的盲化版本生成的盲签名;
使用所述非盲化随机数和盲签名方案确认所述给定信任令牌的盲化签名;以及
响应于确认所述盲化签名,向所述客户端设备发送针对所述给定信任令牌的签署的兑换记录。
36.根据权利要求27所述的一个或多个非暂时性计算机可读介质,其中,所述请求还包括所述客户端设备的公钥,所述操作还包括使用所述客户端设备的公钥对所述一个或多个信任令牌中的每一个进行加密,并且其中,向所述客户端设备提供所述一个或多个信任令牌包括向所述客户端设备提供一个或多个加密的信任令牌。
37.根据权利要求27所述的一个或多个非暂时性计算机可读介质,其中,所述请求包括所述客户端设备的设备标识符,所述操作还包括使用所述设备标识符维护所述客户端设备的可信度的历史记录,其中,确定向所述客户端设备发放所述一个或多个信任令牌包括基于设备级欺诈检测信号和所述客户端设备的可信度的历史记录的组合来确定所述客户端设备是受信任设备。
38.根据权利要求27所述的一个或多个非暂时性计算机可读介质,其中,基于设备级欺诈检测信号和所述客户端设备的可信度的历史记录的组合确定所述客户端设备是受信任设备包括:基于所述设备级欺诈检测信号、所述客户端设备的可信度的历史记录以及客户端设备在给定时间段期间请求的信任令牌的数量的组合来确定所述客户端设备是受信任设备。
CN202080017852.5A 2020-05-21 2020-12-11 验证设备和应用完整性 Pending CN113973503A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IL274840 2020-05-21
IL274840A IL274840B2 (en) 2020-05-21 2020-05-21 Device and application integrity verification
PCT/US2020/064602 WO2021236159A1 (en) 2020-05-21 2020-12-11 Verifying device and application integrity

Publications (1)

Publication Number Publication Date
CN113973503A true CN113973503A (zh) 2022-01-25

Family

ID=78707447

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080017852.5A Pending CN113973503A (zh) 2020-05-21 2020-12-11 验证设备和应用完整性

Country Status (7)

Country Link
US (1) US11886569B2 (zh)
EP (1) EP3938939B1 (zh)
JP (1) JP7189372B2 (zh)
KR (1) KR102536358B1 (zh)
CN (1) CN113973503A (zh)
IL (1) IL274840B2 (zh)
WO (1) WO2021236159A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102626841B1 (ko) 2021-12-28 2024-01-19 (주)드림시큐리티 동적 라이브러리의 자가 무결성 검증 방법 및 이를 위한 장치
US11695772B1 (en) * 2022-05-03 2023-07-04 Capital One Services, Llc System and method for enabling multiple auxiliary use of an access token of a user by another entity to facilitate an action of the user

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0020371D0 (en) * 2000-08-18 2000-10-04 Hewlett Packard Co Apparatus and method for establishing trust
JP4168679B2 (ja) * 2002-06-26 2008-10-22 ソニー株式会社 コンテンツ利用管理システム、コンテンツを利用し又は提供する情報処理装置又は情報処理方法、並びにコンピュータ・プログラム
WO2008027653A1 (en) * 2006-08-28 2008-03-06 Motorola, Inc. Method and apparatus for conforming integrity of a client device
US9208318B2 (en) 2010-08-20 2015-12-08 Fujitsu Limited Method and system for device integrity authentication
CN104395909B (zh) * 2012-09-18 2017-08-25 谷歌公司 用于多个服务供应商可信服务管理器和安全元件的接口连接的系统、方法和计算机程序产品
US10616186B2 (en) * 2017-04-14 2020-04-07 International Business Machines Corporation Data tokenization
US20220046023A1 (en) 2018-12-11 2022-02-10 Visa International Service Association Trust tokens for resource access
US11165579B2 (en) * 2019-08-29 2021-11-02 American Express Travel Related Services Company, Inc. Decentralized data authentication

Also Published As

Publication number Publication date
US11886569B2 (en) 2024-01-30
IL274840B2 (en) 2024-07-01
EP3938939B1 (en) 2023-04-26
IL274840B1 (en) 2024-03-01
US20230060782A1 (en) 2023-03-02
WO2021236159A1 (en) 2021-11-25
KR102536358B1 (ko) 2023-05-26
EP3938939A1 (en) 2022-01-19
JP7189372B2 (ja) 2022-12-13
JP2022536820A (ja) 2022-08-19
IL274840A (en) 2021-12-01
KR20210144687A (ko) 2021-11-30

Similar Documents

Publication Publication Date Title
CN113015974B (zh) 针对隐私保护的可验证同意
Brengel et al. Identifying key leakage of bitcoin users
KR102429406B1 (ko) 콘텐츠 플랫폼에서 사용자 상호작용 확인
JP2006244474A (ja) インターネットを介して識別情報を安全に開示する方法およびシステム
US11949688B2 (en) Securing browser cookies
EP3938939B1 (en) Verifying device and application integrity
CN114144993B (zh) 保护客户端设备通信的完整性的方法、系统和介质
KR20220039800A (ko) 그룹 서명을 통한 익명 이벤트 증명
KR20210020885A (ko) 신뢰되는 코드 증명 토큰으로 데이터 무결성 향상
KR102652364B1 (ko) 다중 수신자 보안 통신
US20240232322A1 (en) Verifying device and application integrity
KR102639228B1 (ko) 익명 이벤트 증명
JP2022172237A (ja) プライバシー保持アプリケーションおよびデバイスエラー検出
CN116034596A (zh) 具有令牌赎回的匿名认证
CN116348874B (zh) 使用鉴证令牌的安全归因的方法、系统以及介质
JP7438383B2 (ja) ウェブアプリケーションの信頼性の検証
CN118353668A (zh) 使用鉴证令牌的安全归因的方法、系统以及介质
CN113498514A (zh) 校验第三方内容在客户端设备上的显示

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