CN113498515A - 在内容平台上验证用户交互 - Google Patents

在内容平台上验证用户交互 Download PDF

Info

Publication number
CN113498515A
CN113498515A CN202080003023.1A CN202080003023A CN113498515A CN 113498515 A CN113498515 A CN 113498515A CN 202080003023 A CN202080003023 A CN 202080003023A CN 113498515 A CN113498515 A CN 113498515A
Authority
CN
China
Prior art keywords
data
interaction
application
operating system
macs
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202080003023.1A
Other languages
English (en)
Other versions
CN113498515B (zh
Inventor
G.王
S.赫勒
G.霍格本
A.D.雅各布森
M.赖特
N.N.克拉莱维奇四世
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 CN113498515A publication Critical patent/CN113498515A/zh
Application granted granted Critical
Publication of CN113498515B publication Critical patent/CN113498515B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • 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
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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
    • 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/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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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
    • 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
    • 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/2133Verifying human interaction, e.g., Captcha

Abstract

方法、系统和装置,包括编码在计算机存储介质上的计算机程序,以验证与内容平台上显示的特定内容的交互是否是实际人类用户的交互。可以从在客户端设备上执行的第一应用接收生成点击验证令牌的请求。该请求可以包括第一交互的第一参数集的数据和第一消息认证码(MAC)集。如果第一MAC集与第二MAC集匹配,则可以生成点击验证令牌,其中该第二MAC集是使用包括在该请求中的数据中的一些生成的。点击验证令牌可以被提供给第一应用,其中第一应用又可以将该令牌提供给内容验证系统。内容验证可以使用该令牌来验证第一交互是否是实际人类用户交互。

Description

在内容平台上验证用户交互
背景技术
本说明书大体涉及检测内容呈现中可能发生的错误,并验证与内容平台上显示的特定内容项的交互是否是实际人类用户的交互。
客户端设备可以使用应用(例如,网页浏览器、本地应用)来访问内容平台(例如,搜索平台、社交媒体平台或托管内容的另一个平台)。内容平台可以在客户端设备上启动的应用内显示可以由一个或多个内容提供者提供的内容。在一些情况下,应用可能会错误地记录与内容平台上提供的并在应用内显示的内容的交互。这可能是由于许多原因,诸如其中显示内容平台的应用(包括应用的软件开发工具包(software development kit,SDK))中的错误和/或内容平台中的错误。
发明内容
一般而言,本说明书中描述的主题的一个创新方面可以体现在包括以下操作的方法中:从在客户端设备上执行的第一应用接收生成点击验证令牌(click verificationtoken)的请求,该点击验证令牌用于验证与被提供用于在第一应用中显示的特定内容项的第一交互是否是客户端设备的用户的交互,其中该请求包括由第一应用标识为从操作系统获得的初始证明(attestation)数据,该初始证明数据包括:第一参数集的数据,由第一应用标识为描述第一交互;和第一消息认证码(message authentication code,MAC)集,由第一应用标识为是使用第一参数集的数据生成;从操作系统获得指定第一MAC集与第二MAC集是否相同的指示,其中第二MAC集由操作系统使用包括在该请求中的第一参数集的数据生成;响应于获得指定第一MAC集与第二MAC集相同的指示,生成用于验证第一交互是否是客户端设备的用户的交互的点击验证令牌,其中该点击验证令牌的有效载荷包括(1)描述第一交互的第一参数集的数据和(2)标识该特定内容项数据的数据;以及向第一应用提供所生成的点击验证令牌。该方面的其他实施例包括被配置为执行该方法的动作的相应系统、设备、装置和计算机程序。计算机程序(例如,指令)可以被编码在计算机存储设备上。这些和其他实施例可以各自可选地包括以下特征中的一个或多个。
在一些实施方式中,方法可以包括由操作系统在客户端设备上第一应用的执行期间检测用户与客户端设备的显示器的第一交互;由操作系统针对用户的第一交互获得描述第一交互的第一参数集的数据;由操作系统使用第一参数集的数据来生成第一MAC集;由操作系统向第一应用提供数据,该数据包括(1)由操作系统获得的第一参数集的数据;和(2)由操作系统生成的第一MAC集;并且其中包括在初始证明数据中的数据表示由操作系统提供给第一应用的数据。
在一些实施方式中,使用第一参数集的数据生成第一MAC集可以包括:使用第一参数集的数据,生成与和客户端设备的显示器的物理用户接触相对应的第一用户动作的第一MAC和与物理用户接触从显示器的释放相对应的第二用户动作的第二MAC;该请求中包括的第一MAC集包括第一MAC和第二MAC;由操作系统使用第一参数集的数据生成的第二MAC集包括(1)使用该请求中包括的第一参数集的被标识为与第一用户动作相对应的数据生成的第三MAC和(2)使用该请求中包括的第一参数集的被标识为与第二用户动作相对应的数据生成的第四MAC;以及仅当操作系统确定第一MAC集与第二MAC集相同时,才从操作系统获得指定第一MAC与第二MAC相同的指示,该确定包括确定(1)第一MAC与第三MAC相同以及(2)第二MAC与第四MAC相同。
在一些实施方式中,第一参数集可以包括以下参数中的一个或多个:用户动作;显示器的对应于用户动作的位置;用于执行用户动作的工具;标识用户动作被执行的时间的时间戳;以及从其中接收用户动作的源。
在一些实施方式中,第一MAC集和第二MAC集中的每一个可以使用散列消息认证码(hashed message authentication code)算法和由操作系统存储的秘密密钥来生成。
在一些实施方式中,生成点击验证令牌可以包括由与第一应用和操作系统分离的第二应用生成点击验证令牌。
在一些实施方式中,第一应用可以是用户应用或本地应用;并且第二应用可以是在客户端设备上的安全环境中操作的可信应用。
在一些实施方式中,方法可以包括由第一应用向内容验证系统发送所生成的点击验证令牌;从内容验证系统接收指示第一交互是用户交互的消息,其中只有当内容验证系统基于该点击验证令牌确认第一交互是用户交互时,从内容验证系统接收到的消息才被生成。
本说明书中描述的主题的特定实施例可以被实施来实现以下优点中的一个或多个。本说明书中描述的技术可以识别在客户端设备上执行的应用(可以包括该应用的SDK)中的错误(例如,软件错误、漏洞等)和/或内容平台中的错误,其中该应用呈现由该内容平台提供的内容页面。例如,这种错误可能会错误地将与应用中显示的内容的交互记录为实际人类用户的交互。在一些情况下,这种错误可能是软件错误,但也可能是由恶意实体注入的错误,其中该恶意实体注入的错误可能损害了应用、其SDK、内容提供者和内容平台之间的通信信道,或者与应用一起显示的内容平台。为了识别这种错误或恶意动作,本说明书中描述的技术可以验证与被提供用于在第一应用中显示的特定内容项(例如,由第三方内容提供者提供的第三方内容项或由内容平台提供的有机内容项(organic content item))的交互是由客户端设备的实际人类用户进行的交互。
本说明书中描述的技术还提供了对与被提供用于在客户端设备上执行的第一应用中显示的特定内容项(例如,由第三方内容提供者提供的第三方内容项或由内容平台提供的有机内容项)的交互是由客户端设备的实际人类用户进行的交互的独立验证。换句话说,本说明书中描述的内容交互验证技术不仅仅依赖于由应用和/或其SDK(或在应用内执行的内容平台)(例如,由应用和/或其SDK(或在应用内执行的内容平台)提交的数据)产生的关于与应用中显示的内容的(多个)交互的呈现(如传统解决方案中的情况)。相反,本说明书中描述的技术依赖于客户端设备的独立处理——例如,单独或与在客户端设备上执行的单独应用合作的操作系统(和/或网页浏览器)的处理——以执行这种验证。本文描述的技术分析与在内容平台上提供并在客户端设备上显示的内容的交互,并生成内容验证令牌,该内容验证令牌可以用于验证与被提供用于在应用中显示的特定内容项的特定交互是否是客户端设备的实际人类用户的交互。
相关地,本说明书中描述的技术使得能够从客户端设备向内容提供者(或另一个内容验证实体)安全传输信息,该信息可以被内容提供者(或另一个内容验证实体)用来验证与特定内容项的第一交互是否是实际人类用户的交互。恶意应用、SDK或其他软件组件可能试图篡改或伪造(1)由操作系统(或网页浏览器)记录和处理并提供给应用的关于交互的数据、和/或(2)由客户端设备发送给内容提供者(或另一个内容验证实体)的用于验证特定交互是否是实际人类用户交互的数据。恶意实体的这种干预可能导致特定交互被错误地验证为实际人类用户交互。为了克服这种恶意干预,本说明书中描述的技术利用特定加密技术来使得从操作系统到应用以及从应用/客户端设备到内容提供者的信息传输安全。因此,在本说明书中描述的内容验证过程不太可能屈服于旨在在内容验证过程中欺骗内容提供者(或另一个适当的验证系统)的恶意或欺诈动作。
本说明书中描述的主题的一个或多个实施例的细节在以下附图和描述中阐述。根据说明书、附图和权利要求,本主题的其他特征、方面和优点将变得明显。
附图说明
图1是其中内容被提供用于在客户端设备上的应用内访问的内容平台内显示的示例环境的框图。
图2是示出了用于检测错误并验证与被提供用于在应用中显示的特定内容项的交互是否是实际人类用户的交互的示例过程的泳道图。
图3是示例计算机系统的框图。
不同附图中相同的附图标记和名称指示相同的元件。
具体实施方式
本公开涉及计算机实施的方法和系统,这些方法和系统检测在内容呈现中可能发生的错误,并且验证与显示在内容平台上的特定内容项的交互是否是客户端设备的人类用户的实际交互,或者交互的指示是否已经由计算机程序生成或者以其他方式被错误地识别为人类用户的交互。
内容提供者(或另一个适当的内容验证系统)可能想要验证与特定内容项的交互(在本说明书中也称为第一交互)——该特定内容项提供给内容平台以在客户端设备上执行的应用(也称为第一应用)内显示(或以其他方式提供以供显示)——是客户端设备的人类用户的交互,而不是人类交互的一些篡改指示。在本说明书中描述的技术——如下所述以及在整个说明书中详细描述的——通过与内容提供者(或另一个适当的内容验证系统)合作,通过依赖客户端设备的可信软件过程(诸如操作系统的安全/特权代码(privilegedcode)、网页浏览器和/或可信系统应用(如在本说明书中进一步描述的)),实现这种交互验证(在本说明书中也称为点击验证)。
如在本说明书中进一步描述的,可信应用(trusted application)(其可以是客户端设备的操作系统或网页浏览器的部分或与其分离)从第一应用接收生成点击验证令牌的请求。可以例如由内容验证系统使用该点击验证令牌验证与在应用内的内容页面上的特定内容项的交互(例如,由内容提供者提供的第三方内容项或由内容平台提供/发布的有机内容项)是实际人类用户的交互。
在生成该点击验证令牌之前,可信应用确定由第一应用标识为从操作系统(或网页浏览器)获得的包括在请求中的特定数据是否确实是从操作系统(或网页浏览器)生成和/或获得的。该数据可以包括由第一应用标识为描述第一交互的第一参数集的数据、以及由第一应用标识为使用第一参数集的数据生成的第一消息认证码(MAC)集。可信应用将该数据提供给操作系统(或网页浏览器),其中该操作系统(或网页浏览器)使用包括在请求中的第一参数集的数据生成第二MAC集。
如果第二MAC集与第一MAC集不相同,则操作系统(或网页浏览器)确定第一交互不是实际人类用户的交互,并且应用(和/或其SDK)和/或内容平台中可能存在错误。
另一方面,如果第二MAC集与第一MAC集相同,则操作系统(或网页浏览器)推断第一交互是实际人类用户的交互。在这种情况下,操作系统(或网页浏览器)还向可信应用指示第一MAC集与第二MAC集相同,因此,包括在该请求中的数据是真实的(并且没有伪造/损害)。
响应于确定第一MAC集与第二MAC集相同,可信应用使用包括在请求中的第一参数集的数据生成点击验证令牌。在生成该令牌时,可信应用在点击验证令牌的有效载荷中包括(1)描述第一交互的第一参数集的数据和/或(2)标识该特定内容项的数据。
点击验证令牌随后由内容提供者(或另一个内容验证系统)使用来验证第一交互是否是实际人类用户的交互,或者第一交互是否被错误地生成和/或篡改。作为点击验证的部分,内容提供者证实(validate)点击验证令牌是否真实(authentic)。如果不是真实的,则内容提供者推断第一交互不是实际人类用户的交互,并且应用(和/或其SDK)和/或内容平台中可能存在错误。如果内容提供者确定点击验证令牌是真实的,则它使用规则引擎或另一个统计模型(例如,监督或无监督的机器学习模型)来确定第一参数集的数据是否指示第一交互是实际人类用户的交互。基于该处理,内容提供者可以推断第一交互是实际人类用户的交互,或者推断第一交互不是实际人类用户的交互。当内容提供者推断第一交互不是实际人类用户的交互时,内容提供者可以向该应用和/或内容平台提供消息,指示该应用(和/或其SDK)和/或内容平台中可能存在错误。
以下将更详细地描述上述特征和附加特征。
图1是示例环境100,其中内容被提供用于在客户端设备上的应用内访问的内容平台内显示。示例环境100包括网络150,诸如局域网(local area network,LAN)、广域网(wide area network,WAN)、互联网或它们的组合。网络150连接客户端设备102、内容平台140和内容提供者130。示例环境100可以包括许多不同的内容提供者130、内容平台140和客户端设备102。
客户端设备102是能够通过网络150请求和接收内容的电子设备。示例客户端设备102包括个人计算机、移动通信设备、数字助理设备以及能够通过网络150发送和接收数据的其他设备。客户端设备102典型地包括用户应用(诸如网页浏览器),以便于通过网络150发送和接收数据,但是由客户端设备102执行的本地应用也可以便于通过网络150发送和接收内容。在客户端设备102处呈现的内容的示例包括网页、文字处理文档、便携式文档格式(portable document format,PDF)文档、图像、视频和搜索结果页面。
内容平台140是能够分发内容的计算平台(例如,参考图3描述的数据处理装置)。示例内容平台140包括搜索引擎、社交媒体平台、新平台、数据聚合器平台或其他内容共享平台。每个内容平台140可以由内容平台服务提供者操作。
内容平台140可以发布并使其自己的内容可用。例如,内容平台140可以是发布其自己的新闻文章的新闻平台。内容平台140还可以呈现由不属于内容平台140的部分的一个或多个内容提供者130提供的内容。在上述示例中,新闻平台还可以呈现由一个或多个内容提供者130提供的第三方内容。作为另一个示例,内容平台140可以是不发布任何其自己的内容、但是聚合和呈现由不同内容提供者130提供的第三方内容的数据聚合器平台。
如本说明书中所使用的,内容提供者130可以是数据处理装置(如参考图3所描述的),并且可以包括服务器、储存库或存储由一个或多个实体生成和/或发布的内容并且响应于对来自这些实体的内容的请求向内容平台140和/或客户端设备102提供内容的其他存储设备。
当客户端设备102访问应用(应用A 104(诸如浏览器或本地应用))内由内容平台140提供的内容页面时,内容页面上的脚本向不属于内容平台140的部分的一个或多个内容提供者130请求内容。响应于对内容的这个请求,内容提供者130提供可以作为内容项(例如,内容项CI1 106或内容项CI2 108)在应用内呈现的第三方内容。
客户端设备102可以与内容提供者130合作来验证与内容提供者130提供的特定内容项的交互是否是用户交互。客户端设备102和内容提供者130合作执行该验证的技术总结如下,并参考图2进行更详细的描述。
在一些实施方式中(如参考图2所述),应用104请求可信应用生成点击验证令牌,该点击验证令牌用于证实与内容项CI1 106的交互是否是用户交互,其中该内容项CI1 106在应用104内的内容页面上提供并显示在客户端设备的显示器的特定部分。如本说明书中所使用的,可信应用是在设备上的安全环境中操作并执行特定核心设备服务(类似于由操作系统内的特权/内核代码执行的设备服务)的应用。在一些实施方式中,可信应用本身可以是操作系统或网页浏览器的部分,或者由操作系统供应商(或网页浏览器供应商)实施和/或发布。
在生成点击验证令牌并将该令牌提供给应用104时使用与操作系统(例如,操作系统118内的特权或可信代码,其包括软件组件(诸如设备驱动器110和MAC生成器112))(或网页浏览器)合作的这个可信应用。应用104将该点击验证令牌提供给内容提供者130,内容提供者130又使用该点击验证令牌来执行该交互是客户端设备102的实际人类用户的交互的验证。如本说明书中所使用的,操作系统中的特权或可信代码是仅在内核模式下操作的操作系统代码(即,只能由操作系统而不能由任何其他用户、应用或实体执行的代码/指令)。因此,特权或受信代码不太可能被其他应用/实体侵入。
在一些实施方式中(也如参考图2所述),操作系统118(而不是可信应用,其中可信应用可以是操作系统118的部分或与操作系统118分离)生成点击验证令牌,并将该点击验证令牌提供给应用104。
参考图2更详细地描述了图1中的上述组件中的每一个的结构和/或操作。
图2是示出了用于检测错误并验证与被提供用于在第一应用中显示的特定内容项的交互是否是实际人类用户的交互的示例过程200的泳道图。过程200的操作在以下被描述为由图1中描述和描绘的系统的组件来执行;然而,这种描述仅仅是为了说明的目的。过程200的操作可以由任何合适的设备或系统来执行,例如,参考图3描述的任何合适的数据处理装置。过程200的操作也可以被实施为存储在非暂时性计算机可读介质上的指令。
应用A 104(在以下描述中也称为第一应用或应用104)展现(render)内容页面(在202处)。在一些实施方式中,当应用104展现内容页面时,它提供内容项CI1 106和CI2 108以用于在应用104内显示。如参考图1所述,这些内容项中的一个或多个可以是从一个或多个内容提供者130获得的第三方内容项。
在客户端设备102上应用104的执行期间,客户端设备102的操作系统118检测客户端设备102的用户与显示的内容项(诸如CI1 106)的第一交互(在204处)。在一些实施方式中,用户的第一交互由两个用户动作事件构成:对应于与客户端设备的显示器的物理用户接触的第一用户动作、以及对应于物理用户接触从显示器的释放的第二用户动作。然而,第一交互可以是单个用户动作(例如,手势)或多于两个的用户动作。
在一些实施方式中,操作系统118的设备驱动器110(例如,在带有触摸屏的设备上,设备显示驱动;在具有键盘、鼠标或轨迹球的设备上,这些设备的相应设备驱动器)可以主动监听并记录与客户端设备102的显示器的每次用户交互,诸如在显示器的部分上的鼠标点击,在触敏显示器的部分上的触摸(用手指或像触笔的另一个物体)。可替换地,设备驱动器110可以响应于应用授予设备驱动器110在该应用的执行期间记录这种交互的许可,监听并记录显示器上的用户交互。
设备驱动器110获得用户的第一交互的第一参数集的数据(在206处)。在一些实施方式中,在检测到用户的第一交互时,设备驱动器110记录关于描述用户的第一交互的参数中的一个或多个的信息。这些参数的非限制性示例包括:(1)用户动作的标识(例如,对应于与显示器的物理用户接触的动作,对应于物理用户接触从显示器的释放的另一个动作);(2)客户端设备102的显示器的对应于(多个)用户动作的位置(例如,显示器上对应于用户动作的X-Y坐标);(3)用于执行动作的工具(例如,鼠标、触笔、手指);(4)从其中接收用户动作的源(例如,显示器/触摸屏、鼠标、用于手势识别的相机);以及(5)标识用户动作被执行的时间的时间戳(例如,精确到微秒或毫秒的时间,时间戳也可以是用户动作的日期)。
例如,假设第一交互包括两个用户动作:对应于与设备102的显示器的物理用户接触的第一用户动作(例如,触摸屏幕、当指针在显示器的特定点时按下鼠标按钮)以及对应于物理用户接触从显示器的释放的第二用户动作(例如,释放触摸屏幕,当指针在显示器的特定点时释放鼠标按钮)。在该示例中,设备驱动器110记录描述第一用户动作的第一参数集(例如,一个或多个参数)(诸如上述参数)的第一数据集以及描述第二用户动作的相同的第一参数集的第二数据集。
MAC生成器112使用第一参数集的数据生成第一MAC令牌集(在208处)。在一些实施方式中,第一MAC集包括对应于每个用户动作的单独的MAC。使用构成第一交互的两个动作的上述示例,MAC生成器112(1)使用对应于第一用户动作(例如,与客户端设备的显示器的物理用户接触)的、第一参数集的数据生成第一MAC,并且(2)使用对应于第二用户动作(例如,对应于物理用户接触从显示器的释放的第二用户动作)的、第一参数集的数据生成第二MAC。可替换地,第一MAC集可以包括对应于构成用户的第一交互的所有动作的单个MAC。
在一些实施方式中,MAC生成器112使用基于散列的消息认证码(hash-basedmessage authentication code,HMAC)算法(例如,HMAC-SHA256算法)生成第一MAC集中的每个MAC。在一些实施方式中,MAC生成器112使用操作系统118的秘密密钥(其被存储在客户端设备102内的安全位置)来生成由设备驱动器110获得的第一参数集的数据的HMAC。可替换地,MAC生成器112可以在生成HMAC时使用另一个安全密钥。
例如,如果两个用户动作构成第一交互,则MAC生成器112(1)使用对应于第一用户动作的第一参数集的数据生成第一HMAC(即,第一MAC)以及(2)使用对应于第二用户动作的第一参数集的数据生成第二HMAC(即,第二MAC)。可替换地,代替为每个用户动作生成单独的令牌,MAC生成器112使用与构成用户的第一交互的用户动作中的每一个相对应的第一参数集的数据生成单个HMAC(即,MAC)。
可替换地,代替生成HMAC,MAC生成器112可以使用其他对称或非对称加密或认证算法来生成一个或多个令牌,其中所述一个或多个令牌加密或以其他方式使得构成第一用户交互的用户动作的第一参数集的数据安全。
为了方便和简单起见,以下描述假设第一交互由两个用户动作构成,并且MAC生成器112为每个用户动作的第一参数集的数据生成单独的HMAC(或使用另一种加密或认证技术生成的单独令牌)。然而,如上所述,第一交互可以由一个或多个用户动作构成,并且MAC生成器112可以使用(多个)用户动作中的每一个的第一参数集的数据来生成单独的HMAC(或使用另一种加密或认证技术生成的令牌),或者为所有(多个)用户动作的第一参数集的数据生成单个HMAC(或使用另一种加密或认证技术生成的令牌)。
操作系统118向应用104发送初始证明数据(在210处)。在一些实施方式中,操作系统118将在操作204-208中获得和/或处理的所述一个或多个数据项打包成初始证明数据。因此,初始证明数据可以包括(1)由设备驱动器110获得的第一参数集的数据和/或(2)由MAC生成器112生成的第一MAC集。初始证明数据中的每个数据项可以存储在单独的数据结构中,或者可以与初始证明数据的其他数据项一起存储在单个数据结构中。在任一种情况下,单独的数据结构或单个数据结构的集合仍然被称为初始证明数据。
应用104接收由操作系统118发送的初始证明数据(在212处)。在一些实施方式中,应用104将初始证明数据与特定内容项的第一交互相关联,在这种情况下,特定内容项是CI1 106。例如,应用104可以存储数据结构,该数据结构包括(1)标识特定内容项的数据以及(2)用户与特定内容项的第一交互的初始证明数据。
应用A104向应用B 160(也称为第二应用或应用160)发送生成点击验证令牌的请求,并且应用B 160从应用A 104接收该生成点击验证令牌的请求(在214处)。如本说明书中所使用的,点击验证令牌是经数字签名的令牌,该经数字签名的令牌用于证实与被提供用于在应用中显示的特定内容项的交互(例如,无论是基于鼠标点击、与客户端设备102的显示器的手指或触笔触摸)是否是客户端设备的实际人类用户的交互。参考操作224描述关于点击验证令牌的生成的细节。在一些实施方式中,应用B 160是可信应用(如本说明书中所述),其与应用A 104和操作系统118分离。在其他实施方式中,应用B 160可以是操作系统118的部分,或者由操作系统供应商实施和/或发布。
在一些实施方式中,可以是本地应用的应用104可以包括使应用104生成该请求的软件开发工具包(SDK)或应用编程接口(application programming interface,API)。在应用104是网页浏览器的实施方式中,在页面上执行的脚本可以生成该请求。
在一些实施方式中,生成点击验证令牌的请求包括由应用104标识为从操作系统118获得的初始证明数据。该请求还可以包括标识特定内容项(CI1 106)的数据。
应用104随该请求提供的初始证明数据可以包括(1)由应用104标识为描述第一交互的第一参数集的数据以及(2)由应用104标识为使用第一参数集的数据生成的第一MAC集。包括在该请求中的第一参数集的数据可以包括被标识为对应于第一用户动作的、该第一参数集的数据、以及被标识为对应于第二用户动作的、该第一参数集的数据。在一些实施方式中,初始证明数据可以作为数组(或另一种适当的数据结构)来提供。
由应用104在该请求中包括的初始证明数据可以是操作系统118在操作210处发送给应用104的对应于第一用户交互的初始证明数据。在一些实施方式中,两组数据是相同的。在替代实施方式中,两组数据可以基本相同,但是变换后的数据仍然代表原始数据。例如,可以应用一些变换,例如,包括在该请求中的初始证明数据中的X-Y坐标可以是屏幕的绝对坐标,而由操作系统118收集的X-Y坐标可以是对该应用更有意义的一些其他坐标系统。
然而,应用104还可以提供不同的初始证明数据集,其中该不同的初始证明数据集不同于为用户的第一交互生成的初始证明数据(在操作210处为用户的第一交互生成的初始证明数据)。这可能是由于应用104和/或内容平台140中的错误。在一些情况下,这也可能指示恶意实体/应用试图损害点击验证。
在一些实施方式中,在从应用104接收到请求时,应用B 160在已经确认从应用104接收到的请求中包括的初始证明数据实际上是由操作系统118生成/获得的之后,生成点击验证令牌。该验证确保应用104或内容平台140中没有错误,并且还识别任何恶意实体/应用试图包括被设计为不适当地获得点击验证的伪造或无效数据。在一些实施方式中,应用B160的验证请求请求操作系统118证实在该请求中接收到的初始证明数据是由操作系统118生成的。与验证初始证明数据的请求一起,应用B 160向操作系统118发送从应用104接收到的(在操作214处从应用104接收到的)请求中包括的初始证明数据。
响应于操作214,操作系统118验证从应用104接收到的(在操作214处从应用104接收到的)请求中包括的初始证明数据是否是由操作系统118生成和/或获得的(在218、220处)。在一些实施方式中,如以下段落所述,操作系统118分两个步骤执行该验证。
第一,操作系统118使用在操作214处提供的初始证明数据中包括的第一参数集的数据生成第二MAC集。在一些实施方式中,MAC生成器112使用在操作214处提供的初始证明数据中包括的第一参数集的数据来生成HMAC(或使用适当的加密或认证算法生成的另一种安全令牌)的集合(以参考操作208描述的相同方式来生成)。因此,MAC生成器112可以(1)使用该请求中包括的第一参数集的由应用104标识为对应于第一用户动作的数据来生成第三HMAC集或使用适当的加密或认证算法生成的另一种安全令牌(即,第三MAC)、以及(2)针对包括在该请求中的由应用104标识为对应于第二用户动作的第一参数集生成第四HMAC或使用适当的加密或认证算法生成的另一种安全令牌(即,第四MAC)。MAC生成器112使用与生成第一MAC集(在操作208生成的第一MAC集)中使用的相同的(多种)算法和密钥来生成HMAC(或其他适当的安全令牌)。
第二,操作系统118确定第一MAC集与第二MAC集是否相同。使用上述示例来说明该比较,其中第一MAC集和第二MAC集中的每一个包括两个MAC,每个MAC都对应于单独的用户动作。因此,在上述示例中,包括在由应用104提供的初始证明数据中的第一MAC集包括(1)由应用104标识为对应于第一用户动作的第一MAC以及(2)由应用104标识为对应于第二用户动作的第二MAC。继续该示例,第二MAC集包括(1)使用该请求中包括的第一参数集的被标识为与第一用户动作相对应的数据生成的第三MAC以及(2)使用该请求中包括的第一参数集的被标识为与第二用户动作相对应的数据生成的第四MAC。操作系统118通过确定(1)第一MAC与第三MAC是否相同以及(2)第二MAC与第四MAC是否相同来确定第一MAC集与第二MAC集是否相同。
如果操作系统确定第一MAC集与第二MAC集相同(例如,第一MAC与第三MAC相同,并且第二MAC与第四MAC相同),操作系统118推断初始证明数据有效(即,初始证明数据由操作系统118生成,并向应用B 160提供指示,指定第一MAC集与第二MAC集相同。另一方面,如果操作系统确定第一MAC集与第二MAC集不相同(例如,第一MAC与第三MAC不相同和/或第二MAC与第四MAC不相同),则操作系统118推断初始证明数据无效(即,初始证明数据不是由操作系统118生成的),并向应用B 160提供指示,指定第一MAC集与第二MAC集不相同。
在一些实施方式中,代替生成MAC集(在操作208、218和220处),操作系统118可以存储作为初始证明数据的部分被包括的所有数据(或者使用加密散列函数生成的、它们的加密散列)。操作系统118将该数据(或它的密码散列)发送给应用104。然后,当应用B 160请求验证初始证明数据时(在操作216处),操作系统118可以通过将该接收到的数据(或它的密码散列)与保存的初始证明数据(或它的密码散列)进行比较来验证接收到的初始证明数据确实是由操作系统生成的。
响应于从操作系统118接收到指定第一MAC集与第二MAC集是否相同的指示,应用B160的令牌生成器114生成点击验证令牌(在224处)。在一些实施方式中,由令牌生成器114生成的点击验证令牌是可以包括数据集的证明令牌,该数据集至少包括用户标识符和有效载荷,并且在一些情况下,还包括设备完整性令牌(换句话说,设备完整性令牌可以但不必包括在有效载荷中)。证明令牌还包括该数据集的数字签名。以下段落描述了该数据集中的每个数据项以及该数据集的数字签名。
可以包括在证明令牌中的用户标识符包括客户端设备102的公钥。例如,客户端设备102可以生成和/或维护包括设备私钥和设备公钥的一对或多对密钥。设备公钥对应于设备私钥,并且在数学上链接到设备私钥。使用私钥进行数字签名的数据只能使用相应的公钥进行验证。同样,使用公钥加密的数据只能使用相应的私钥解密。
可以包括在证明令牌中的有效载荷包括操作214的请求中包括的以下数据:(1)描述第一交互的第一参数集的数据以及(2)标识特定内容项的数据。数据项中的每一个——包括标识特定内容项的数据和一个或多个属性的数据——可以作为数组(或另一个数据结构)被包括在有效载荷中,其中该数组的每个位置包括单独属性的数据。在操作系统118确定第一MAC集与第二MAC集不相同的情况下,应用B 160可以简单地在有效载荷中包括消息,该消息包括操作系统118指定第一MAC集与第二MAC集不相同的指示。在一些情况下,该证明的有效载荷可以被加密,例如,使用公共-私有密钥技术。例如,有效载荷可以用内容验证系统的公钥签名,其中该有效载荷只能使用内容验证系统的私钥解密。
可以被包括在证明令牌中的完整性令牌包括设备完整性令牌,该设备完整性令牌使得实体能够确定请求120是否是由可信客户端设备110发送的。设备完整性令牌可以由第三方设备完整性系统发布,其中该第三方设备完整性系统评估客户端设备的欺诈信号,并基于该评估向客户端设备分配可信度级别。客户端设备102的设备完整性令牌可以包括(1)指示生成设备完整性令牌时客户端设备102的可信度(或完整性)级别的判定、(2)指示生成设备完整性令牌的时间的设备完整性令牌创建时间、以及(3)客户端设备102的唯一标识符(例如,客户端设备的设备公钥或其衍生物)。设备完整性令牌还可以包括设备完整性令牌中的数据的数字签名。该数字签名可以使用设备完整性系统的私钥生成。
例如,设备完整性系统可以使用其私钥对数据进行签名,该私钥由系统保密地维护。接收设备完整性令牌的实体可以使用设备完整性系统的公钥来验证设备完整性令牌的签名。在设备完整性令牌和证明令牌两者中包括客户端设备102的设备公钥将这两个令牌绑定在一起。换句话说,通过将客户端设备102的设备公钥包括在设备完整性令牌中,证明令牌的接收者可以确定为该客户端设备102生成了设备完整性令牌。这使得其他方无法在向仿真器(emulator)或受损害的客户端设备的请求中包括可信设备的设备完整性令牌。
可以被包括在证明令牌中的数字签名可以是上述数据集(或其一些变体)的数字签名。该数字签名是使用设备私钥生成的,该设备私钥可以由客户端设备102的操作系统118安全且保密地维护。例如,数字签名可以是有效载荷(加密或未加密的)、用户标识符(例如,设备公钥)和完整性令牌的数字签名。在一些实施方式中,操作系统118使用椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm,ECDSA)来生成数字签名,但是也可以使用其他签名技术,诸如RSA。
在一些实施方式中,代替证明令牌,令牌生成器114可以生成另一种类型的安全令牌,该另一种类型的安全令牌也可以用于使得初始证明的全部/子集的通信安全。例如,可以使用第三方完整性系统的私钥对该数据进行数字签名。随后接收点击验证令牌的实体(诸如内容提供者130)可以从第三方完整性系统请求相应的公钥,然后使用该密钥来验证签名和属性数据。
回到过程200,应用B 160向应用A 104提供生成的点击验证令牌。
应用A 104向内容提供者130(或另一个适当的内容验证系统)发送点击验证令牌。该点击验证令牌可以是操作系统118在操作222处生成的令牌,或者它可以是应用104标识为点击验证令牌的另一个数据项。
在接收到点击验证令牌后,内容提供者130(或另一个适当的内容验证系统)证实点击验证令牌(在224处)。在一些实施方式中,作为该证实的部分,内容提供者130解密点击验证令牌的有效载荷,以获得第一参数集的数据(假设有效载荷被加密的情况)。
在证明令牌被用作点击验证令牌的实施方式中,内容提供者130使用包括在证明令牌中的设备公钥来证实包括在令牌中的数字签名。在这种实施方式中,内容提供者130使用设备的公钥,以使用经解密的有效载荷中包括的数据项、设备公钥和设备完整性令牌来生成数字签名,并将该生成的数字签名与包括在证明令牌中的数字签名进行比较。如果该比较没有揭示相同的数字签名,则内容提供者130推断第一交互不是客户端设备102的用户的交互。在这种情况下,内容提供者130可以向应用104发送消息,指示应用104(和/或其SDK)和/或内容平台140中可能存在错误。另一方面,如果该比较揭示相同的数字签名,则内容提供者130获得描述第一交互的第一参数集的数据,其中该数据被包括在证明令牌的有效载荷中,并继续该点击验证。
在一些实施方式中,如果证明令牌包括经签名的设备完整性令牌,则内容提供者130可以与适当的设备完整性系统交互以获得该系统的公钥(如上所述)。内容提供者130通过验证设备完整性令牌中的数字签名,使用该公钥来验证设备完整性令牌确实是由设备完整性系统创建的,并且在创建之后没有被修改。如果使用所获得的公钥成功地验证了设备完整性令牌中的数字签名,并且如果经验证的设备完整性令牌中存在的设备完整性数据指示该设备是可信的,则内容提供者130继续其内容证实。然而,如果不能使用所获得的公钥来验证设备完整性令牌,和/或如果在验证令牌时获得的设备完整性数据指示设备不可信,则内容提供者130可以停止任何进一步的内容证实。在这种情况下,内容提供者130还可以向应用104发送消息,指示发送了要用于内容证实的数字签名令牌的客户端设备102中可能存在错误。
作为点击验证的部分,内容提供者130基于描述第一交互并被包括在证明令牌中的第一参数的数据来验证第一交互是否是用户的交互。在一些实施方式中,内容提供者130可以包括规则引擎,该规则引擎存储规则集以评估第一参数集的数据是否指示第一交互是用户的交互。这种规则的非限制性示例在以下段落中提供。
点击验证规则的一个示例包括与用户动作相对应的设备显示器的位置(例如,设备显示器的X-Y坐标、在应用104上显示的内容页面内的特定内容槽(content slot))是否对应于/匹配在应用104内显示的第三方内容项CI1 106的位置(例如,指定设备显示的部分、由内容平台140分配给特定内容项(CI1 106)的应用104的部分的坐标范围)。如果是这样,则第一交互更可能是由实际人类用户进行的;否则,第一交互不太可能是由实际人类用户与内容项106进行的。另一个示例是两个事件的X-Y坐标(例如,手指向下(finger down)和手指向上(finger up))彼此显著不同,这可以指示与内容项的用户交互更可能是拖动而不是点击。另一个示例是在两个事件的时间戳之间可能经过了相当长的时间(例如,手指向下和手指向上)(例如,大于1分钟),这可以指示所记录的交互可能来自放在触摸屏上一些对象(例如,铅笔),而不是用户点击内容项。另一个示例是这两个事件(例如,手指向下和手指向上)不按时间顺序排列,例如,手指向上事件的时间戳比手指向下事件的时间戳旧。如果是这样,第一交互可能不是由实际人类用户进行的;否则,第一交互可能是由实际人类用户与内容项106进行的。
点击验证规则的另一个示例包括确定用于执行用户动作的工具是否与从其中接收用户动作的源一致(例如,匹配)。因此,例如,如果使用鼠标来执行用户动作,但是用户动作的源是触摸屏,则该情况指示不一致(因为预期的工具可能是触笔或手指)。这种不一致反过来指示第一交互不太可能是由实际人类用户进行的。
点击验证规则的另一个示例包括确定用户动作是否过时(stale)。基于时间戳和接收到验证点击验证令牌的请求(在操作224处)的时间之间的差异是否满足(例如,达到或超过)过时阈值(其可以是指定持续时间的预定阈值,其中超过该持续时间的接收到的时间戳可以被认为是过时的)。因此,如果过时阈值是两分钟,则接收到的时间戳2:14:15被认为是过时的,如果接收到验证点击验证令牌的请求的时间是比时间戳的时间晚两分钟或更晚(例如,2:17:10)。过时的用户动作可以指示第一交互不太可能是由实际人类用户生成的。相反,未过时的用户动作可以指示第一交互可能是由实际人类用户进行的。
上述规则中的一个或多个(以及基于第一交互的第一参数集的数据和/或标识内容项的数据的其他适当规则)可以被组合以获得指定第一交互是实际人类用户进行的交互的可能性的分数。在一些实施方式中,可以为规则中的每一个分配权重,并且规则引擎为每个规则分配分数。规则引擎通过组合(例如,相加)每个规则的加权分数(例如,通过将每个规则的权重乘以为该规则生成的相应分数)来生成总分数。如果该总分数满足(例如,达到或超过)特定阈值(例如,预定阈值),则规则引擎确定第一交互是实际人类用户进行的交互;否则,规则引擎确定第一交互不是实际人类用户进行的交互。
在一些实施方式中,代替规则引擎,统计模型(诸如(监督或无监督的)机器学习模型)可以用于确定第一交互的第一参数集的数据是否指示第一交互是实际用户的交互。例如,在使用多个用户交互的训练数据被训练时,监督机器学习模型可以被训练来做到这一点,其中该训练数据包括每个交互的参数集的数据、以及指示训练数据中特定交互的参数数据是否是实际用户的交互的相应标签集。
如果内容提供者130(或另一个内容验证系统)确定第一交互是实际人类用户的交互,则内容提供者130(或另一个内容验证系统)生成指示第一交互是实际人类用户的交互的消息。另一方面,如果内容提供者130(或另一个内容验证系统)确定第一交互不是实际人类用户的交互,则内容提供者130(或另一个内容验证系统)生成指示第一交互不是实际人类用户的交互的消息。在这种情况下,内容提供者130还可以指示应用(和/或其SDK)和/或内容平台中可能存在错误。
在上述过程流程和系统实施方式中,应用B 160生成点击验证令牌。在替代实施方式中,操作系统118(代替应用B 160)可以生成点击验证令牌。在这种实施方式中,当操作系统118执行操作204和206时,它不需要执行操作208和210来安全地将为第一用户交互获得的第一参数集的数据(使用HMAC或其他加密算法)发送到应用A 104。类似地,验证初始证明数据是否由操作系统118生成的操作(即,操作216-220)也不需要被执行。相反,操作系统118可以直接生成点击验证令牌(以参考操作222所述的相同方式),并且将第一交互的第一参数集的所获得的/生成的数据包括在点击验证令牌的有效载荷中。在这种实施方式中,令牌生成器114被包括在操作系统118中,并且被操作系统118用于生成点击验证令牌。参考图2描述的其他操作仍然可以由相同的实体在该实施方式中执行。
在另一个替代实施方式中,应用B 160是操作系统118的部分。在这种实施方式、以及类似于在前面段落中描述的实施方式中,当操作系统118执行操作204和206时,它不需要执行操作208和210来安全地将为第一用户交互获得的第一参数集的数据发送(使用HMAC或其他加密算法)到应用A 104。类似地,验证初始证明数据是否由操作系统118生成的操作(即,操作216-220)也不需要被执行。相反,应用B 160(在该实施方式中是操作系统118的部分)可以直接生成点击验证令牌(以参考操作222所描述的相同方式),并且将第一交互的第一参数集的所获得的/生成的数据包括在点击验证令牌的有效载荷中。参考图2描述的其他操作仍然可以由相同的实体在该实施方式中执行。
在另一个替代实施方式中,操作系统118(无论它是可以包括在操作系统118中的应用B 160还是操作系统118的另一个(多个)组件)可以生成点击验证令牌。在该实施方式中,如上述参考图2执行操作204-212。此外,对于操作214,应用A 104向操作系统118请求点击验证令牌,操作系统118反过来执行初始证明数据证实(如参考操作218和220所述)。换句话说,使应用B 160向操作系统118发送初始证明数据的操作216可以但不必在该实施方式中执行。此外,在该实施方式中,操作系统118生成点击验证令牌(以参考操作222所述的相同方式),并且将第一交互的第一参数集的数据包括在点击验证令牌的有效载荷中。换句话说,在该实施方式中,令牌生成器114被包括在操作系统118内,并且被操作系统118用于生成点击验证令牌。参考图2描述的其他操作仍然可以由相同的实体在该实施方式中执行。
在一些实施方式中,网页浏览器代替操作系统执行由操作系统118在参考图2描述的过程中执行的操作。过程200的操作的简要概述描述如下,其中操作系统118的操作现在由网页浏览器执行。
当使用网页浏览器展现内容页面时,该过程开始。在这种情况下,在/当呈现内容页面时,脚本(例如,Javascript)执行并请求浏览器的本机代码(native code)来收集初始证明数据。可替换地,网页浏览器的本机代码在检测到与设备显示器的这种交互(例如,触摸屏上的触摸、显示器特定部分的鼠标点击)时自动开始处理用户交互——而没有应用104的任何提示。浏览器的本机代码具有运行在由浏览器展现的网页上的脚本所不具有的特权,并且通常任何脚本都很难渗透(penetrate)浏览器的本机代码。
浏览器的本机代码随后执行(单独或与操作系统118协作)检测第一交互并获得描述第一交互的第一参数集的操作。
浏览器的本机代码与操作系统118的设备驱动器110交互,以检测第一交互并获得描述第一交互的第一参数集(如在操作204和206中)。可以包括MAC生成器112的浏览器的本地代码可以生成第一MAC集(如参考操作208所述)。浏览器将由MAC生成器112用来生成第一MAC集的密钥存储在安全位置。浏览器的本地代码向应用104发送包括第一MAC集的初始证明数据并且应用104接收包括第一MAC集的初始证明数据(如操作210和212)。
在浏览器中执行的脚本请求应用B 160生成点击验证令牌,并且该请求可以包括初始证明数据(如参考操作214所述)。应用B 160可以是与网页浏览器分离的可信应用,或者可替换地,应用B 160可以是网页浏览器的部分。在任一情况下,应用B 160请求网页浏览器验证它是否生成了初始证明数据(以与操作系统118在操作218和220执行类似操作基本相同的方式)。基于该验证,可以是网页浏览器的部分或与其分离的应用B 160可以生成点击验证令牌(以与参考操作222所述的基本相同的方式)。然后,应用B将所生成的点击验证令牌返回给应用A 104。在一些实施方式中,代替将所生成的点击验证令牌返回给应用A104,应用B 160可以直接将所生成的点击验证令牌插入到HTTP报头中。这防止了调用脚本看到所生成的点击验证令牌,这又防止了任何进一步的安全问题(例如,脚本或任何其他实体损害令牌的进一步企图)并且具有隐私益处(例如,防止点击验证令牌中包括的数据被轻易访问)。应用A 104将所生成的点击验证令牌提供给内容提供者130(或另一个内容验证系统),然后内容提供者130(或另一个内容验证系统)证实点击验证令牌(如参考操作224所述)。
图3是可用于执行上述操作的示例计算机系统300的框图。系统300包括处理器310、存储器320、存储设备330和输入/输出设备340。组件310、320、330和340中的每一个可以互连,例如,使用系统总线350互连。处理器310能够处理指令以用于在系统300内执行。在一个实施方式中,处理器310是单线程处理器。在另一个实施方式中,处理器310是多线程处理器。处理器310能够处理存储在存储器320中或存储设备330上的指令。
存储器320存储系统300内的信息。在一个实施方式中,存储器320是计算机可读介质。在一个实施方式中,存储器320是易失性存储单元。在另一个实施方式中,存储器320是非易失性存储单元。
存储设备330能够为系统300提供大容量存储。在一个实施方式中,存储设备330是计算机可读介质。在各种不同的实施方式中,存储设备330可以包括例如硬盘设备、光盘设备、由多个计算设备通过网络共享的存储设备(例如,云存储设备)或一些其他大容量存储设备。
输入/输出设备340为系统300提供输入/输出操作。在一个实施方式中,输入/输出设备340可以包括网络接口设备(例如,以太网卡)、串行通信设备(例如,RS-232端口)、和/或无线接口设备(例如,802.11卡)中的一个或多个。在另一个实施方式中,输入/输出设备可以包括被配置为接收输入数据并将输出数据发送到其他输入/输出设备的驱动设备,例如,键盘、打印机和显示设备360。然而,也可以使用其他实施方式,诸如移动计算设备、移动通信设备、机顶盒电视客户端设备等。
尽管在图3中已经描述了示例处理系统,但是本说明书中描述的主题和功能性操作的实施方式中可以在其他类型的数字电子电路中实施,或者在包括本说明书中公开的结构及其结构等同物的计算机软件、固件或硬件中实施,或者在它们中的一个或多个的组合中实施。
媒体不一定对应于文件。媒体可以存储在保存其他文档的文件的部分中,存储在专用于所讨论的文档的单个文件中,或者存储在多个协同文件中。
本说明书中描述的主题和操作的实施例可以在数字电子电路中实施,或者在包括本说明书中公开的结构及其结构等同物的计算机软件、固件或硬件中实施,或者在它们中的一个或多个的组合中实施。本说明书中描述的主题的实施例可以实施为一个或多个计算机程序,即,编码在计算机存储媒介(或介质)上的计算机程序指令的一个或多个模块,以用于由数据处理装置执行或控制数据处理装置的操作。可替换地,或者另外,程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,该传播信号被生成以对信息进行编码来传输到合适的接收装置,以用于数据处理装置执行。计算机存储介质可以是或被包括在计算机可读存储设备、计算机可读存储基底、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是或被包括在一个或多个单独的物理组件或媒介中(例如,多个CD、磁盘或其他存储设备)。
本说明书中描述的操作可以被实施为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收到的数据执行的操作。
术语“数据处理装置”包括用于处理数据的所有种类的装置、设备和机器,包括例如可编程处理器、计算机、片上系统、或前述中的多个或组合。该装置可以包括专用逻辑电路,例如,FPGA(field programmable gate array,现场可编程门阵列)或ASIC(application-specific integrated circuit,专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时(runtime)环境、虚拟机或它们中的一个或多个的组合的代码。该装置和执行环境可以实现各种不同的计算模型基础设施,诸如网页服务、分布式计算和网格计算基础设施。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明性或程序性语言,并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适合在计算环境中使用的其他单元。计算机程序可以,但不是必须,对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件(例如,存储在标记语言文档中的一个或多个脚本)的部分中,存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以被部署为在一台计算机上或者在位于一个站点或跨多个站点分布并通过通信网络互连的多台计算机上执行。
本说明书中描述的程序和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行动作。程序和逻辑流程也可以由专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))来执行,并且装置也可以被实现为专用逻辑电路(例如,FPGA或ASIC)。
适于执行计算机程序的处理器包括例如通用微处理器和专用微处理器两者。通常,处理器将从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的基本元件是根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括或者可操作地耦合以从其接收数据或向其传送数据或者两者兼有的用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘)。然而,计算机不必须具有这种设备。此外,计算机可以嵌入到另一个设备中,例如,移动电话、个人数字助理(personal digital assistant,PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(Global Positioning System,GPS)接收器或便携式存储设备(例如,通用串行总线(universal serial bus,USB)闪存驱动器),仅举几个示例。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、媒介和存储设备,包括例如:半导体存储设备(例如,EPROM、EEPROM和闪存设备);磁盘(例如,内部硬盘或可移动磁盘);磁光盘;和CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或并入专用逻辑电路。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有用于向用户显示信息的显示设备(例如,阴极射线管(CRT,cathode ray tube)或液晶显示器(LCD,liquid crystal display))、以及用户可以通过该指其向计算机提供输入的指向设备(例如,鼠标或轨迹球)的计算机上实施。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网页浏览器接收到的请求,将网页发送到用户客户端设备上的网页浏览器。
本说明书中描述的主题的实施例可以在包括后端组件(例如,数据服务器)的计算系统中实施,或者在包括中间件组件(例如,应用服务器)的计算系统中实施,或者在包括前端组件(例如,具有图形用户界面或网页浏览器的客户端计算机,用户可以通过其与本说明书中描述的主题的实施方式交互)的计算系统中实施,或者在一个或多个这种后端、中间件或前端组件的任何组合中实施。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括局域网(local area network,“LAN”)和广域网(wide area network,“WAN”)、内部网络(例如,互联网)和对等网络(例如,自组织对等网络)。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且典型地通过通信网络进行交互。客户端和服务器的关系是通过运行在各自的计算机上并且彼此具有客户端-服务器关系的计算机程序产生的。在一些实施例中,服务器发送数据(例如,HTML页面)到客户端设备(例如,为了向与客户端设备交互的用户显示数据和从与客户端设备交互的用户接收用户输入的目的)。可以在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
虽然本说明书包含许多具体的实施方式细节,但是这些不应被解释为对任何发明或所要求保护的范围的限制,而是对特定发明的特定实施例的特定特征的描述。本说明书中在单独实施例的上下文中描述的一些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独实施或者在任何合适的子组合中实施。此外,尽管特征可以在上文中被描述为在一些组合中起作用,并且甚至最初被如此要求保护,但是在一些情况下,来自所要求保护的组合的一个或多个特征可以从该组合中删除,并且所要求保护的组合可以针对子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该理解为要求以所示的特定顺序或顺序执行这些操作或者要求执行所有示出的操作,以获得期望的结果。在一些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应该被理解为在所有实施例中都需要这种分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品中。
因此,已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。在一些情况下,权利要求中列举的动作可以以不同的顺序执行,并且仍然获得期望的结果。此外,附图中描述的过程不一定需要所示的特定顺序或顺序来实现期望的结果。在一些实施方式中,多任务和并行处理可能是有利的。

Claims (20)

1.一种计算机实施的方法,包括:
从在客户端设备上执行的第一应用接收生成点击验证令牌的请求,所述点击验证令牌用于验证与被提供用于在所述第一应用中显示的特定内容项的第一交互是否是所述客户端设备的用户的交互,其中所述请求包括由所述第一应用标识为从所述操作系统获得的初始证明数据,所述初始证明数据包括:
第一参数集的数据,由所述第一应用标识为描述所述第一交互;和
第一消息认证码(MAC)集,由所述第一应用标识为是使用所述第一参数集的数据生成的;
从所述操作系统获得指定所述第一MAC集与第二MAC集是否相同的指示,其中所述第二MAC集是由所述操作系统使用包括在所述请求中的所述第一参数集的数据生成的;
响应于获得指定所述第一MAC集与所述第二MAC集相同的指示,生成用于验证所述第一交互是否是所述客户端设备的所述用户的交互的点击验证令牌,其中所述点击验证令牌的有效载荷包括(1)描述所述第一交互的第一参数集的数据和(2)标识所述特定内容项数据的数据;以及
向所述第一应用提供所生成的点击验证令牌。
2.根据权利要求1所述的计算机实施的方法,还包括:
由所述操作系统在所述客户端设备上所述第一应用的执行期间检测所述用户与所述客户端设备的显示器的第一交互;
由所述操作系统针对所述用户的第一交互获得描述所述第一交互的所述第一参数集的数据;
由所述操作系统使用所述第一参数集的数据生成所述第一MAC集;
由所述操作系统向所述第一应用提供数据,所述数据包括(1)由所述操作系统获得的所述第一参数集的数据;和(2)由所述操作系统生成的所述第一MAC集;并且
其中,包括在所述初始证明数据中的数据表示由所述操作系统提供给所述第一应用的数据。
3.根据权利要求2所述的计算机实施的方法,其中:
使用所述第一参数集的数据生成所述第一MAC集包括使用所述第一参数集的数据,来生成与和所述客户端设备的显示器的物理用户接触相对应的第一用户动作的第一MAC、和与所述物理用户接触从所述显示器的释放相对应的第二用户动作的第二MAC;
包括在所述请求中的所述第一MAC集包括所述第一MAC和所述第二MAC;
由所述操作系统使用所述第一参数集的数据生成的所述第二MAC集包括(1)使用所述请求中包括的所述第一参数集的被标识为与所述第一用户动作相对应的数据生成的第三MAC和(2)使用所述请求中包括的所述第一参数集的被标识为与所述第二用户动作相对应的数据生成的第四MAC;并且
仅当所述操作系统确定所述第一MAC集与所述第二MAC集相同时,才从所述操作系统获得指定所述第一MAC集与所述第二MAC集相同的指示,其中所述确定包括确定(1)所述第一MAC与所述第三MAC相同以及(2)所述第二MAC与所述第四MAC相同。
4.根据权利要求2或3所述的计算机实施的方法,其中,所述第一参数集包括以下参数中的一个或多个:
用户动作;
所述显示器的对应于所述用户动作的位置;
用于执行所述用户动作的工具;
标识所述用户动作被执行的时间的时间戳;和
从其中接收所述用户动作的源。
5.根据权利要求2至4中任一项所述的计算机实施的方法,其中所述第一MAC集和所述第二MAC集中的每一个是使用散列消息认证码算法和由所述操作系统存储的秘密密钥来生成的。
6.根据权利要求2至5中任一项所述的计算机实施的方法,其中:
生成所述点击验证令牌包括由与所述第一应用和所述操作系统分离的第二应用生成所述点击验证令牌。
7.根据权利要求6所述的计算机实施的方法,其中:
所述第一应用是用户应用或本地应用;并且
所述第二应用是在所述客户端设备上的安全环境中操作的可信应用。
8.根据权利要求2至7中任一项所述的计算机实施的方法,还包括:
由所述第一应用向内容验证系统发送所生成的点击验证令牌;
从所述内容验证系统接收指示所述第一交互是用户交互的消息,其中仅当所述内容验证系统基于所述点击验证令牌确认所述第一交互是用户交互时,从所述内容验证系统接收到的所述消息才被生成。
9.一种系统,包括:
一个或多个存储器设备,存储指令;和
一个或多个数据处理装置,被配置为与所述一个或多个存储器设备交互,并且在执行所述指令时执行操作,所述操作包括:
从在客户端设备上执行的第一应用接收生成点击验证令牌的请求,所述点击验证令牌用于验证与被提供用于在所述第一应用中显示的特定内容项的第一交互是否是所述客户端设备的用户的交互,其中所述请求包括由所述第一应用标识为从所述操作系统获得的初始证明数据,所述初始证明数据包括:
第一参数集的数据,由所述第一应用标识为描述所述第一交互;和
第一消息认证码(MAC)集,由所述第一应用标识为是使用所述第一参数集的数据生成的;
从所述操作系统获得指定所述第一MAC集与第二MAC集是否相同的指示,其中所述第二MAC集是由所述操作系统使用包括在所述请求中的所述第一参数集的数据生成的;
响应于获得指定所述第一MAC集与所述第二MAC集相同的指示,生成用于验证所述第一交互是否是所述客户端设备的所述用户的交互的点击验证令牌,其中所述点击验证令牌的有效载荷包括(1)描述所述第一交互的第一参数集的数据和(2)标识所述特定内容项数据的数据;以及
向所述第一应用提供所生成的点击验证令牌。
10.根据权利要求9所述的系统,其中,所述一个或多个数据处理装置被配置为执行操作,所述操作还包括:
由所述操作系统在所述客户端设备上所述第一应用的执行期间检测所述用户与所述客户端设备的显示器的第一交互;
由所述操作系统针对所述用户的第一交互获得描述所述第一交互的所述第一参数集的数据;
由所述操作系统使用所述第一参数集的数据生成所述第一MAC集;
由所述操作系统向所述第一应用提供数据,所述数据包括(1)由所述操作系统获得的所述第一参数集的数据;和(2)由所述操作系统生成的所述第一MAC集;并且
其中,包括在所述初始证明数据中的数据表示由所述操作系统提供给所述第一应用的数据。
11.根据权利要求10所述的系统,其中:
使用所述第一参数集的数据生成所述第一MAC集包括使用所述第一参数集的数据,来生成与和所述客户端设备的显示器的物理用户接触相对应的第一用户动作的第一MAC、和与所述物理用户接触从所述显示器的释放相对应的第二用户动作的第二MAC;
包括在所述请求中的所述第一MAC集包括所述第一MAC和所述第二MAC;
由所述操作系统使用所述第一参数集的数据生成的所述第二MAC集包括(1)使用所述请求中包括的所述第一参数集的被标识为与所述第一用户动作相对应的数据生成的第三MAC和(2)使用所述请求中包括的所述第一参数集的被标识为与所述第二用户动作相对应的数据生成的第四MAC;并且
仅当所述操作系统确定所述第一MAC集与所述第二MAC集相同时,才从所述操作系统获得指定所述第一MAC集与所述第二MAC集相同的指示,其中所述确定包括确定(1)所述第一MAC与所述第三MAC相同以及(2)所述第二MAC与所述第四MAC相同。
12.根据权利要求9或10所述的系统,其中所述第一参数集包括以下参数中的一个或多个:
用户动作;
所述显示器的对应于所述用户动作的位置;
用于执行所述用户动作的工具;
标识所述用户动作被执行的时间的时间戳;和
从其中接收所述用户动作的源。
13.根据权利要求9至12中任一项所述的系统,其中,所述第一MAC集和所述第二MAC集中的每一个是使用散列消息认证码算法和由所述操作系统存储的秘密密钥生成的。
14.根据权利要求9至13中任一项所述的系统,其中:
生成所述点击验证令牌包括由与所述第一应用和所述操作系统分离的第二应用生成所述点击验证令牌。
15.根据权利要求9至14中任一项所述的系统,其中,所述一个或多个数据处理装置被配置为执行操作,所述操作还包括:
由所述第一应用向内容验证系统发送所生成的点击验证令牌;
从所述内容验证系统接收指示所述第一交互是用户交互的消息,其中仅当所述内容验证系统基于所述点击验证令牌确认所述第一交互是用户交互时,从所述内容验证系统接收到的所述消息才被生成。
16.一种存储指令的非暂时性计算机可读介质,所述指令在由一个或多个数据处理装置执行时使得所述一个或多个数据处理装置执行操作,所述操作包括:
从在客户端设备上执行的第一应用接收生成点击验证令牌的请求,所述点击验证令牌用于验证与被提供用于在所述第一应用中显示的特定内容项的第一交互是否是所述客户端设备的用户的交互,其中所述请求包括由所述第一应用标识为从所述操作系统获得的初始证明数据,所述初始证明数据包括:
第一参数集的数据,由所述第一应用标识为描述所述第一交互;和
第一消息认证码(MAC)集,由所述第一应用标识为是使用所述第一参数集的数据生成的;
从所述操作系统获得指定所述第一MAC集与第二MAC集是否相同的指示,其中所述第二MAC集是由所述操作系统使用包括在所述请求中的所述第一参数集的数据生成的;
响应于获得指定所述第一MAC集与所述第二MAC集相同的指示,生成用于验证所述第一交互是否是所述客户端设备的所述用户的交互的点击验证令牌,其中所述点击验证令牌的有效载荷包括(1)描述所述第一交互的第一参数集的数据和(2)标识所述特定内容项数据的数据;以及
向所述第一应用提供所生成的点击验证令牌。
17.根据权利要求16所述的非暂时性计算机可读介质,其中,所述指令使得所述一个或多个数据处理装置执行操作,所述操作还包括:
由所述操作系统在所述客户端设备上所述第一应用的执行期间检测所述用户与所述客户端设备的显示器的第一交互;
由所述操作系统针对所述用户的第一交互获得描述所述第一交互的所述第一参数集的数据;
由所述操作系统使用所述第一参数集的数据生成所述第一MAC集;
由所述操作系统向所述第一应用提供数据,所述数据包括(1)由所述操作系统获得的所述第一参数集的数据;和(2)由所述操作系统生成的所述第一MAC集;并且
其中,包括在所述初始证明数据中的数据表示由所述操作系统提供给所述第一应用的数据。
18.根据权利要求17所述的非暂时性计算机可读介质,其中:
使用所述第一参数集的数据生成所述第一MAC集包括使用所述第一参数集的数据,来生成与和所述客户端设备的显示器的物理用户接触相对应的第一用户动作的第一MAC、和与所述物理用户接触从所述显示器的释放相对应的第二用户动作的第二MAC;
包括在所述请求中的所述第一MAC集包括所述第一MAC和所述第二MAC;
由所述操作系统使用所述第一参数集的数据生成的所述第二MAC集包括(1)使用所述请求中包括的所述第一参数集的被标识为与所述第一用户动作相对应的数据生成的第三MAC和(2)使用所述请求中包括的所述第一参数集的被标识为与所述第二用户动作相对应的数据生成的第四MAC;并且
仅当所述操作系统确定所述第一MAC集与所述第二MAC集相同时,才从所述操作系统获得指定所述第一MAC集与所述第二MAC集相同的指示,其中所述确定包括确定(1)所述第一MAC与所述第三MAC相同以及(2)所述第二MAC与所述第四MAC相同。
19.根据权利要求16至18中任一项所述的非暂时性计算机可读介质,其中,所述第一MAC集和所述第二MAC集中的每一个是使用散列消息认证码算法和由所述操作系统存储的秘密密钥生成的。
20.根据权利要求17至19中任一项所述的非暂时性计算机可读介质,其中,所述指令使得所述一个或多个数据处理装置执行操作,所述操作包括:
由所述第一应用向内容验证系统发送所生成的点击验证令牌;
从所述内容验证系统接收指示所述第一交互是用户交互的消息,其中仅当所述内容验证系统基于所述点击验证令牌确认所述第一交互是用户交互时,从所述内容验证系统接收到的消息才被生成。
CN202080003023.1A 2020-02-06 2020-02-06 在内容平台上验证用户交互的方法及系统 Active CN113498515B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/016998 WO2021158227A1 (en) 2020-02-06 2020-02-06 Verifying user interactions on a content platform

Publications (2)

Publication Number Publication Date
CN113498515A true CN113498515A (zh) 2021-10-12
CN113498515B CN113498515B (zh) 2022-10-14

Family

ID=69771149

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080003023.1A Active CN113498515B (zh) 2020-02-06 2020-02-06 在内容平台上验证用户交互的方法及系统

Country Status (9)

Country Link
US (1) US20220123944A1 (zh)
EP (1) EP3887981B1 (zh)
JP (1) JP7184927B2 (zh)
KR (1) KR102429406B1 (zh)
CN (1) CN113498515B (zh)
AU (1) AU2020260457B2 (zh)
BR (1) BR112020022548A2 (zh)
CA (1) CA3100322C (zh)
WO (1) WO2021158227A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230069097A1 (en) * 2021-08-31 2023-03-02 Visa International Service Association Mobile device data security using shared security values
WO2023138135A1 (zh) * 2022-01-21 2023-07-27 华为技术有限公司 人机识别的方法和装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11777992B1 (en) 2020-04-08 2023-10-03 Wells Fargo Bank, N.A. Security model utilizing multi-channel data
US11720686B1 (en) * 2020-04-08 2023-08-08 Wells Fargo Bank, N.A. Security model utilizing multi-channel data with risk-entity facing cybersecurity alert engine and portal
US11706241B1 (en) 2020-04-08 2023-07-18 Wells Fargo Bank, N.A. Security model utilizing multi-channel data
IL285887B1 (en) * 2021-08-26 2024-03-01 Google Llc Secure attribution using anonymous signals
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

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020138735A1 (en) * 2001-02-22 2002-09-26 Felt Edward P. System and method for message encryption and signing in a transaction processing system
CN101106455A (zh) * 2007-08-20 2008-01-16 北京飞天诚信科技有限公司 身份认证的方法和智能密钥装置
US20090292924A1 (en) * 2008-05-23 2009-11-26 Johnson Erik J Mechanism for detecting human presence using authenticated input activity
US20160285873A1 (en) * 2013-03-06 2016-09-29 Marvell World Trade Ltd. Secure simple enrollment
CN108769041A (zh) * 2018-06-06 2018-11-06 深圳壹账通智能科技有限公司 登录方法、系统、计算机设备和存储介质
CN110291754A (zh) * 2017-03-01 2019-09-27 苹果公司 使用移动设备的系统访问

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050278235A1 (en) 2004-06-10 2005-12-15 International Business Machines Corporation Method and system for a contract option
US20050278253A1 (en) * 2004-06-15 2005-12-15 Microsoft Corporation Verifying human interaction to a computer entity by way of a trusted component on a computing device or the like
JP5432999B2 (ja) * 2009-06-23 2014-03-05 パナソニック株式会社 暗号鍵配布システム
US20140282696A1 (en) * 2013-03-15 2014-09-18 Qualcomm Incorporated Advertising download verification
US20150150109A1 (en) * 2013-11-27 2015-05-28 Adobe Systems Incorporated Authenticated access to a protected resource using an encoded and signed token
US9860241B2 (en) * 2014-04-15 2018-01-02 Level 3 Communications, Llc Device registration, authentication, and authorization system and method
CN107342998A (zh) * 2017-07-04 2017-11-10 四川云物益邦科技有限公司 通过移动存储设备实现的个人信息提取方法
US10932129B2 (en) * 2017-07-24 2021-02-23 Cisco Technology, Inc. Network access control

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020138735A1 (en) * 2001-02-22 2002-09-26 Felt Edward P. System and method for message encryption and signing in a transaction processing system
CN101106455A (zh) * 2007-08-20 2008-01-16 北京飞天诚信科技有限公司 身份认证的方法和智能密钥装置
US20090292924A1 (en) * 2008-05-23 2009-11-26 Johnson Erik J Mechanism for detecting human presence using authenticated input activity
US20160285873A1 (en) * 2013-03-06 2016-09-29 Marvell World Trade Ltd. Secure simple enrollment
CN110291754A (zh) * 2017-03-01 2019-09-27 苹果公司 使用移动设备的系统访问
CN108769041A (zh) * 2018-06-06 2018-11-06 深圳壹账通智能科技有限公司 登录方法、系统、计算机设备和存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230069097A1 (en) * 2021-08-31 2023-03-02 Visa International Service Association Mobile device data security using shared security values
US11722900B2 (en) * 2021-08-31 2023-08-08 Visa International Service Association Mobile device data security using shared security values
WO2023138135A1 (zh) * 2022-01-21 2023-07-27 华为技术有限公司 人机识别的方法和装置

Also Published As

Publication number Publication date
JP2022522316A (ja) 2022-04-18
BR112020022548A2 (pt) 2022-10-11
CN113498515B (zh) 2022-10-14
EP3887981A1 (en) 2021-10-06
AU2020260457B2 (en) 2021-10-21
WO2021158227A1 (en) 2021-08-12
CA3100322A1 (en) 2021-08-06
AU2020260457A1 (en) 2021-08-26
CA3100322C (en) 2023-07-18
EP3887981B1 (en) 2022-04-06
JP7184927B2 (ja) 2022-12-06
KR20210102057A (ko) 2021-08-19
KR102429406B1 (ko) 2022-08-05
US20220123944A1 (en) 2022-04-21

Similar Documents

Publication Publication Date Title
CN113498515B (zh) 在内容平台上验证用户交互的方法及系统
EP3808049B1 (en) Systems and methods for authenticated control of content delivery
CN113015974A (zh) 针对隐私保护的可验证同意
AU2020260456B2 (en) Verifying display of third party content at a client device
US11949688B2 (en) Securing browser cookies
KR102470639B1 (ko) 신뢰되는 코드 증명 토큰으로 데이터 무결성 향상
JP2022544461A (ja) クライアントデバイスからの通信の完全性の保護
JP2022536565A (ja) クラウドソーシングを用いて偽情報に対処すること
JP7279209B2 (ja) 不正行為の検出のためのクロスドメイン頻度フィルタ
KR20210131989A (ko) 프라이버시 보호 애플리케이션 및 장치 오류 검출
CN114127715A (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
GR01 Patent grant
GR01 Patent grant