HK1236268B - System and method for authenticating a client to a device - Google Patents
System and method for authenticating a client to a device Download PDFInfo
- Publication number
- HK1236268B HK1236268B HK17109904.7A HK17109904A HK1236268B HK 1236268 B HK1236268 B HK 1236268B HK 17109904 A HK17109904 A HK 17109904A HK 1236268 B HK1236268 B HK 1236268B
- Authority
- HK
- Hong Kong
- Prior art keywords
- verification
- key
- transaction
- client
- user
- Prior art date
Links
Description
背景技术Background Art
技术领域Technical Field
本发明整体涉及数据处理系统的领域。更具体地讲,本发明涉及用于向装置验证客户端的系统和方法,所述装置诸如离线装置,或者与依赖方的连接性有限的装置。The present invention generally relates to the field of data processing systems. More particularly, the present invention relates to systems and methods for authenticating a client to a device, such as an offline device or a device with limited connectivity to a relying party.
相关领域说明Description of related fields
图1示出了具有生物计量装置100的示例性客户端120。正常运行时,生物计量传感器102从用户读取原始生物计量数据(例如,捕捉用户指纹,记录用户声音,拍摄用户的照片,等等),并且特征提取模块103提取原始生物计量数据的指定特征(例如,注重于指纹的某些区域、某些面部特征等等)。匹配器模块104将所提取的特征133与存储在客户端120上的安全存储装置中的生物计量参考数据110进行比较,并且基于所提取的特征与生物计量参考数据110之间的相似性来生成得分153。生物计量参考数据110通常是登记过程的结果,在登记过程中用户向装置100登记指纹、声音样本、图像或其他生物计量数据。应用程序105可接着使用得分135来确定验证是否成功(例如,得分是否高于某个指定阈值)。FIG1 illustrates an exemplary client 120 having a biometric device 100. During normal operation, the biometric sensor 102 reads raw biometric data from the user (e.g., captures the user's fingerprint, records the user's voice, takes a photo of the user, etc.), and the feature extraction module 103 extracts specified features from the raw biometric data (e.g., focusing on certain areas of the fingerprint, certain facial features, etc.). The matcher module 104 compares the extracted features 133 with biometric reference data 110 stored in secure storage on the client 120 and generates a score 153 based on the similarity between the extracted features and the biometric reference data 110. The biometric reference data 110 is typically the result of an enrollment process, in which the user enrolls a fingerprint, voice sample, image, or other biometric data with the device 100. The application 105 can then use the score 135 to determine whether authentication was successful (e.g., whether the score is above a specified threshold).
还已经设计了使用生物计量传感器经由网络提供安全用户验证的系统。在此类系统中,可经由网络发送由应用程序105生成的得分135和/或其他验证数据,以向远程服务器验证用户。例如,专利申请No.2011/0082801(“‘801申请”)描述了一种在网络上进行用户注册和验证的框架,这种框架提供强验证(例如,防御身份窃取和网络钓鱼)、安全交易(例如,防御交易中的“浏览器中的恶意软件”和“中间人”攻击)和客户端验证令牌的登记/管理(例如,指纹读取器、面部识别装置、智能卡、可信平台模块等等)。Systems that use biometric sensors to provide secure user authentication over a network have also been designed. In such systems, a score 135 and/or other authentication data generated by an application 105 can be sent over a network to authenticate the user to a remote server. For example, Patent Application No. 2011/0082801 (“the '801 Application”) describes a framework for user registration and authentication over a network that provides strong authentication (e.g., protection against identity theft and phishing), secure transactions (e.g., protection against “in-browser malware” and “man-in-the-middle” attacks during transactions), and registration/management of client authentication tokens (e.g., fingerprint readers, facial recognition devices, smart cards, trusted platform modules, etc.).
本申请的受让人已经开发出对‘801申请中所描述的验证框架的多种改进。这些改进中的一些在以下一组美国专利申请(“共同待决的申请”)中描述,这些美国专利申请全部在2012年12月29日提交并且转让给本受让人:序列号13/730,761,名称为“Query Systemand Method to Determine Authentication Capabilities”(用于确定验证能力的查询系统和方法);序列号13/730,776,名称为“System and Method for EfficientlyEnrolling,Registering,and Authenticating With Multiple AuthenticationDevices”(使用多个验证装置有效地进行登记、注册和验证的系统和方法);序列号13/730,780,名称为“System and Method for Processing Random Challenges Within anAuthentication Framework”(用于在验证框架内处理随机质询的系统和方法);序列号13/730,791,名称为“System and Method for Implementing Privacy Classes Within anAuthentication Framework”(用于在验证框架内实施隐私类别的系统和方法);序列号13/730,795,名称为“System and Method for Implementing Transaction SignalingWithin an Authentication Framework”(用于在验证框架内实施交易信令的系统和方法)。The assignee of the present application has developed various improvements to the authentication framework described in the '801 application. Some of these improvements are described in the following set of U.S. patent applications (the "co-pending applications"), all of which were filed on December 29, 2012 and assigned to the present assignee: Serial No. 13/730,761, entitled "Query System and Method to Determine Authentication Capabilities"; Serial No. 13/730,776, entitled "System and Method for Efficiently Enrolling, Registering, and Authenticating With Multiple Authentication Devices"; Serial No. 13/730,780, entitled "System and Method for Processing Random Challenges Within an Authentication Framework"; Serial No. 13/730,791, entitled "System and Method for Implementing Privacy Classes Within an Authentication Framework"; 13/730,795, entitled “System and Method for Implementing Transaction Signaling Within an Authentication Framework.”
简而言之,在这些共同待决的申请描述的验证技术中,用户向客户端的生物计量装置登记,以生成生物计量模板数据(例如,通过轻扫手指、拍摄照片、记录语音等);经由网络(例如,如共同待决的申请中所述的配备有安全交易服务的网站或其他依赖方)向一个或多个服务器注册生物计量装置;随后使用在注册过程中交换的数据(例如,预置到生物计量装置中的加密密钥)与那些服务器验证。一旦通过验证,用户便获许与网站或其他依赖方执行一个或多个在线交易。在共同待决的申请所描述的框架中,敏感信息(诸如指纹数据和可用于唯一地识别用户的其他数据)可本地保持在用户的客户端装置(例如,智能电话、笔记本计算机等等)上,以保护用户的隐私。In short, in the authentication techniques described in these co-pending applications, a user enrolls with a biometric device on a client to generate biometric template data (e.g., by swiping a finger, taking a photo, recording a voice, etc.); registers the biometric device with one or more servers via a network (e.g., a website or other relying party equipped with a secure transaction service as described in the co-pending applications); and then authenticates with those servers using data exchanged during the enrollment process (e.g., an encryption key pre-set to the biometric device). Once authenticated, the user is permitted to perform one or more online transactions with the website or other relying party. In the framework described in the co-pending applications, sensitive information (such as fingerprint data and other data that can be used to uniquely identify the user) can be maintained locally on the user's client device (e.g., a smartphone, laptop, etc.) to protect the user's privacy.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
可结合下列附图从以下具体实施方式更好地理解本发明,其中:The present invention may be better understood from the following detailed description in conjunction with the following drawings, in which:
图1示出了具有生物计量验证能力的示例性客户端装置;FIG1 illustrates an exemplary client device having biometric authentication capabilities;
图2A和图2B示出了安全验证系统架构的两个不同实施例;2A and 2B illustrate two different embodiments of a security verification system architecture;
图2C是示出可如何将密钥注册到验证装置中的事务图;FIG2C is a transaction diagram illustrating how a key may be registered into an authentication device;
图3A和图3B示出了使用安全显示器进行安全交易确认的实施例;3A and 3B illustrate an embodiment of secure transaction confirmation using a secure display;
图4示出了用未建立关系的装置执行交易验证的本发明的一个实施例;FIG4 illustrates an embodiment of the present invention for performing transaction verification using unconnected devices;
图5A和图5B是示出用于执行交易验证的两个不同实施例的事务图;5A and 5B are transaction diagrams illustrating two different embodiments for performing transaction verification;
图6示出了本发明的一个实施例中采用的额外架构特征;FIG6 illustrates additional architectural features employed in one embodiment of the present invention;
图7至图8示出了本发明的不同实施例中采用的不记名令牌的不同实施例;7 to 8 illustrate different embodiments of bearer tokens used in different embodiments of the present invention;
图9示出了示例性的“离线”和“半离线”验证场景;FIG9 shows exemplary “offline” and “semi-offline” verification scenarios;
图10示出了客户端和/或服务器的示例性系统架构;以及FIG10 illustrates an exemplary system architecture of a client and/or server; and
图11示出了客户端和/或服务器的另一个示例性系统架构。FIG. 11 illustrates another exemplary system architecture of a client and/or server.
具体实施方式DETAILED DESCRIPTION
下文描述用于实施高级验证技术及相关联应用的设备、方法和机器可读介质的实施例。在整个描述中,出于解释的目的,本文陈述了许多特定细节以便透彻理解本发明。然而,本领域的技术人员将容易明白,可在没有这些特定细节中的一些的情况下实践本发明。在其他情况下,为免模糊本发明的基本原理,已熟知的结构和装置未示出或以框图形式示出。The following describes embodiments of devices, methods, and machine-readable media for implementing advanced authentication techniques and associated applications. Throughout the description, for purposes of explanation, numerous specific details are set forth herein to provide a thorough understanding of the present invention. However, those skilled in the art will readily appreciate that the present invention can be practiced without some of these specific details. In other instances, well-known structures and devices are not shown or are shown in block diagram form to avoid obscuring the underlying principles of the present invention.
下文论述的本发明的实施例涉及具有验证能力(诸如生物计量装置或PIN输入)的客户端装置。这些装置在本文中有时称为“令牌”、“验证装置”或“验证器”。尽管某些实施例注重于面部识别硬件/软件(例如,用于识别用户面部并且跟踪用户的眼球运动的相机和相关联软件),但有些实施例可利用额外的生物计量装置,包括(例如)指纹传感器、声音识别硬件/软件(例如,用于识别用户声音的麦克风和相关联软件)以及光学识别能力(例如,用于扫描用户视网膜的光学扫描器和相关联软件)。验证能力还可包括非生物计量装置,诸如可信平台模块(TPM)和智能卡。The embodiments of the present invention discussed below relate to client devices with authentication capabilities (such as biometric devices or PIN entry). These devices are sometimes referred to herein as "tokens," "authentication devices," or "authenticators." While some embodiments focus on facial recognition hardware/software (e.g., a camera and associated software for recognizing a user's face and tracking the user's eye movements), some embodiments may utilize additional biometric devices, including, for example, fingerprint sensors, voice recognition hardware/software (e.g., a microphone and associated software for recognizing a user's voice), and optical recognition capabilities (e.g., an optical scanner and associated software for scanning a user's retina). Authentication capabilities may also include non-biometric devices, such as Trusted Platform Modules (TPMs) and smart cards.
在移动式生物计量的具体实施中,生物计量装置可远离依赖方。如本文所用,术语“远程”意味着生物计量传感器不是其以通信方式耦接到的计算机的安全边界的一部分(例如,生物计量传感器未嵌入到与依赖方计算机相同的物理外壳中)。举例来说,生物计量装置可经由网络(例如,因特网、无线网络链路等)或经由外围输入(诸如USB端口)耦接到依赖方。在这些条件下,依赖方可能无法知道装置是否为得到依赖方授权的装置(例如,提供可接受等级的验证和完整性保护的装置)以及/或者黑客是否已经危及生物计量装置。生物计量装置的置信度取决于装置的特定实施。In specific implementations of mobile biometrics, the biometric device may be remote from the relying party. As used herein, the term "remote" means that the biometric sensor is not part of the security perimeter of the computer to which it is communicatively coupled (e.g., the biometric sensor is not embedded in the same physical housing as the relying party's computer). For example, the biometric device may be coupled to the relying party via a network (e.g., the Internet, a wireless network link, etc.) or via a peripheral input (such as a USB port). Under these conditions, the relying party may not be able to know whether the device is an authorized device by the relying party (e.g., a device that provides an acceptable level of authentication and integrity protection) and/or whether a hacker has compromised the biometric device. The confidence level of the biometric device depends on the specific implementation of the device.
然而,如下文所论述,用于验证用户的验证技术可能涉及非位置组件,诸如经由网络与远程服务器和/或其他数据处理装置的通信。此外,尽管本文中描述了特定实施例(诸如ATM和零售点),但应该指出的是,可在由最终用户在其内本地或远程发起交易的任何系统的环境中实施本发明的基本原理。However, as discussed below, the authentication techniques used to authenticate users may involve non-location components, such as communication with a remote server and/or other data processing device via a network. Furthermore, while specific embodiments are described herein (such as ATMs and retail locations), it should be noted that the underlying principles of the present invention may be implemented in the context of any system in which transactions are initiated locally or remotely by an end user.
本文中有时使用术语“依赖方”来不仅指尝试与之进行用户交易的实体(例如,执行用户交易的网站或在线服务),也指代表那个实体实施的安全交易服务器(其可执行本文所述的基础验证技术)。提供远程验证能力的安全交易服务器可由依赖方拥有并且/或者在依赖方的控制下,或者可在作为业务安排的一部分向依赖方提供安全交易服务的第三方的控制下。The term "relying party" is sometimes used herein to refer not only to the entity with which a user transaction is attempted (e.g., a website or online service that performs the user transaction), but also to a secure transaction server implemented on behalf of that entity (which can perform the underlying authentication techniques described herein). The secure transaction server that provides remote authentication capabilities can be owned and/or under the control of the relying party, or can be under the control of a third party that provides secure transaction services to the relying party as part of a business arrangement.
本文中使用的术语“服务器”指的是在一个硬件平台上(或跨多个硬件平台)执行的软件,其经由网络从客户端接收请求,然后作为响应来执行一个或多个操作,并且将响应传输到客户端,该响应通常包括操作的结果。服务器对客户端请求做出响应,从而向客户端提供或帮助向客户端提供网络“服务”。值得注意的是,服务器不限于单个计算机(例如,用于执行服务器软件的单个硬件装置),而是实际上可散布在多个硬件平台上,有可能位于多个地理位置处。As used herein, the term "server" refers to software executed on a hardware platform (or across multiple hardware platforms) that receives requests from clients via a network, then performs one or more operations in response, and transmits a response to the client, which typically includes the results of the operations. The server responds to client requests, thereby providing or helping to provide network "services" to the client. It is worth noting that a server is not limited to a single computer (e.g., a single hardware device for executing server software), but can actually be distributed across multiple hardware platforms, potentially located in multiple geographical locations.
本文所述的本发明的实施例包括用于针对通过安全交易装置发起的交易验证用户的技术。举例来说,交易可为提款、转账或其他用户发起的操作,交易装置可为自动取款机(ATM)、销售点(PoS)交易装置或能够代表用户执行交易的其他装置。交易可涉及例如在配备有交易装置的零售店或其他零售点完成支付以购买商品或服务、经由交易装置提取资金、对交易装置执行维护,或需要针对其进行用户验证的任何其他交易。Embodiments of the present invention described herein include techniques for authenticating a user for transactions initiated through a secure transaction device. For example, a transaction may be a withdrawal, transfer, or other user-initiated operation, and the transaction device may be an automated teller machine (ATM), a point-of-sale (PoS) transaction device, or other device capable of performing transactions on behalf of a user. The transaction may involve, for example, completing a payment to purchase goods or services at a retail store or other retail location equipped with a transaction device, withdrawing funds via the transaction device, performing maintenance on the transaction device, or any other transaction for which user authentication is required.
本发明的一个实施例提供了用于在本地、甚至在装置离线(即,未连接到后端验证服务器)或半离线(即,仅周期性地连接到后端验证服务器)的情况下验证用户身份(即,核验用户)的技术。在一个实施例中,用户的客户端装置拥有缓存后端验证服务器(例如,代表依赖方操作)所生成的验证请求的能力,并且所述装置被提供有核验从用户的客户端装置传输到该装置的验证响应所需要的数据。One embodiment of the present invention provides a technique for verifying a user's identity (i.e., verifying a user) locally, even when the device is offline (i.e., not connected to a backend verification server) or semi-offline (i.e., only periodically connected to a backend verification server). In one embodiment, the user's client device has the ability to cache verification requests generated by a backend verification server (e.g., operating on behalf of a relying party), and the device is provided with the data required to verify the verification response transmitted from the user's client device to the device.
在讨论本发明的这些实施例的细节之前,本文先提供对远程用户验证技术的概述。这些和其他远程用户验证技术在共同待决的申请中有所描述,这些共同待决的申请被转让给本申请的受让人并且以引用方式并入本文。Before discussing the details of these embodiments of the present invention, this article first provides an overview of remote user authentication techniques. These and other remote user authentication techniques are described in co-pending applications, which are assigned to the assignee of the present application and are incorporated herein by reference.
远程用户验证技术Remote user authentication technology
图2A和图2B示出了包括用于远程验证用户的客户端侧组件和服务器侧组件的系统架构的两个实施例。图2A所示的实施例使用基于浏览器插件的架构来与网站通信,而图2B所示的实施例不需要浏览器。本文所述的各种验证技术和相关联的应用程序可在这些系统架构中的任一个上实施。例如,本文所述的客户端装置内的验证引擎可被实施为包括接口202的安全交易服务201的一部分。然而,应该指出的是,上文所述的实施例可使用除了图2A和图2B所示的那些之外的硬件与软件的逻辑布置来实施。Figures 2A and 2B show two embodiments of a system architecture comprising a client-side component and a server-side component for remotely verifying a user. The embodiment shown in Figure 2A uses a browser plug-in-based architecture to communicate with a website, while the embodiment shown in Figure 2B does not require a browser. Various verification techniques and associated applications described herein can be implemented on any of these system architectures. For example, the verification engine in the client device described herein can be implemented as a part for a secure transaction service 201 comprising an interface 202. However, it should be noted that the embodiments described above can be implemented using a logical arrangement of hardware and software other than those shown in Figures 2A and 2B.
转到图2A,图示实施例包括配备有一个或多个验证装置210至212的客户端200,这些验证装置用于登记和验证最终用户。如上所述,验证装置210至212可包括生物计量装置,诸如指纹传感器、声音识别硬件/软件(例如,用于识别用户声音的麦克风和相关联软件)、面部识别硬件/软件(例如,用于识别用户面部的相机和相关联软件)和光学识别功能(例如,用于扫描用户的视网膜的光学扫描器和相关联软件);以及非生物计量装置,诸如可信平台模块(TPM)和智能卡。用户可通过提供生物计量数据(例如,在指纹装置上轻扫手指)来登记生物计量装置,安全交易服务201可将这些生物计量数据作为生物计量模板数据(经由接口202)存储在安全存储装置220中。Turning to Figure 2A, the illustrated embodiment includes a client 200 equipped with one or more authentication devices 210 to 212 for enrolling and authenticating end users. As described above, the authentication devices 210 to 212 may include biometric devices such as fingerprint sensors, voice recognition hardware/software (e.g., a microphone and associated software for recognizing a user's voice), facial recognition hardware/software (e.g., a camera and associated software for recognizing a user's face), and optical recognition capabilities (e.g., an optical scanner and associated software for scanning a user's retina); as well as non-biometric devices such as Trusted Platform Modules (TPMs) and smart cards. A user may enroll a biometric device by providing biometric data (e.g., swiping a finger across a fingerprint device), which the secure transaction service 201 may store as biometric template data in the secure storage device 220 (via interface 202).
尽管安全存储装置220被示出为在验证装置210至212的安全周界之外,但在一个实施例中,每个验证装置210至212可具有其自身的集成安全存储装置。另外,每个验证装置210至212可按加密方式保护生物计量参考数据记录(例如,使用对称密钥包裹这些数据记录,以使存储装置220安全)。Although secure storage 220 is shown outside the secure perimeter of verification devices 210 to 212, in one embodiment, each verification device 210 to 212 may have its own integrated secure storage. Additionally, each verification device 210 to 212 may cryptographically protect biometric reference data records (e.g., wrapping these data records with a symmetric key to secure storage 220).
验证装置210至212通过由安全交易服务201暴露的接口202(例如,应用程序编程接口或API)以通信方式耦接到客户端。安全交易服务201是用于经由网络与一个或多个安全交易服务器232至233通信以及用于与在web浏览器204的环境内执行的安全交易插件205介接的安全应用程序。如图所示,接口202还可提供对客户端200上的安全存储装置220的安全访问,该安全存储装置存储与验证装置210至212中的每一个相关的信息,诸如装置识别代码(诸如验证器证实ID(AAID))、用户识别代码、用户登记数据(例如,所扫描的指纹或其他生物计量数据),以及用于执行本文所述的安全验证技术的密钥。例如,如下文详细论述,唯一密钥可被存储到每个验证装置中,随后在经由网络(诸如因特网)与服务器230通信时使用。Authentication devices 210 to 212 are communicatively coupled to the client via an interface 202 (e.g., an application programming interface or API) exposed by a secure transaction service 201. The secure transaction service 201 is a secure application for communicating with one or more secure transaction servers 232 to 233 via a network and for interfacing with a secure transaction plug-in 205 executed within the environment of a web browser 204. As shown, the interface 202 may also provide secure access to a secure storage device 220 on the client 200, which stores information related to each of the authentication devices 210 to 212, such as a device identification code (e.g., an authenticator attestation ID (AAID)), a user identification code, user enrollment data (e.g., a scanned fingerprint or other biometric data), and keys for performing the secure authentication techniques described herein. For example, as discussed in detail below, a unique key may be stored in each authentication device and subsequently used when communicating with the server 230 via a network (e.g., the Internet).
如下文论述,安全交易插件205支持某些类型的网络交易,诸如与网站231或其他服务器的HTTP或HTTPS交易。在一个实施例中,响应于由安全企业或Web目的地230内的网络服务器231(下文中有时简称为“服务器230”)插入到网页HTML代码中的特定HTML标签来启动安全交易插件。响应于检测到此类标签,安全交易插件205可将交易转发到安全交易服务201以进行处理。另外,对于某些类型的事务(例如,诸如安全密钥交换),安全交易服务201可开启与当地交易服务器232(即,与网站位于同一地点)或异地交易服务器233的直接通信信道。As discussed below, secure transaction plugin 205 supports certain types of network transactions, such as HTTP or HTTPS transactions with a website 231 or other server. In one embodiment, the secure transaction plugin is activated in response to a specific HTML tag inserted into the HTML code of a web page by a network server 231 (sometimes referred to hereinafter as "server 230") within a secure enterprise or web destination 230. In response to detecting such a tag, secure transaction plugin 205 may forward the transaction to secure transaction service 201 for processing. In addition, for certain types of transactions (e.g., such as secure key exchange), secure transaction service 201 may open a direct communication channel with a local transaction server 232 (i.e., co-located with the website) or an off-site transaction server 233.
安全交易服务器232至233耦接到安全交易数据库240以存储用户数据、验证装置数据、密钥以及支持下文所述的安全验证交易所需要的其他安全信息。然而,应该指出的是,本发明的基本原理不需要分离图2A所示的安全企业或web目的地230内的逻辑组件。例如,网站231和安全交易服务器232至233可在单个物理服务器或单独物理服务器内实施。此外,网站231和交易服务器232至233可在一个或多个服务器上所执行的集成软件模块内实施,以执行下文所述的功能。Secure transaction servers 232-233 are coupled to secure transaction database 240 to store user data, authentication device data, cryptographic keys, and other security information required to support secure authentication transactions as described below. However, it should be noted that the underlying principles of the present invention do not require the separation of logical components within the secure enterprise or web destination 230 shown in FIG2A. For example, website 231 and secure transaction servers 232-233 may be implemented within a single physical server or separate physical servers. Furthermore, website 231 and transaction servers 232-233 may be implemented within integrated software modules executed on one or more servers to perform the functions described below.
如上所述,本发明的基本原理不限于图2A所示的基于浏览器的架构。图2B示出替代性具体实施,其中独立应用程序254利用由安全交易服务201提供的功能来经由网络验证用户。在一个实施例中,应用程序254被设计为建立与一个或多个网络服务251的通信会话,这些网络服务依赖于安全交易服务器232至233来执行下文详细描述的用户/客户端验证技术。As mentioned above, the underlying principles of the present invention are not limited to the browser-based architecture shown in FIG2A . FIG2B illustrates an alternative implementation in which a standalone application 254 utilizes functionality provided by secure transaction service 201 to authenticate users via the network. In one embodiment, application 254 is designed to establish a communication session with one or more network services 251, which rely on secure transaction servers 232-233 to perform the user/client authentication techniques described in detail below.
在图2A和图2B所示的任一个实施例中,安全交易服务器232至233可生成密钥,这些密钥接着被安全地传输到安全交易服务201并存储到安全存储装置220内的验证装置中。另外,安全交易服务器232至233管理服务器端上的安全交易数据库240。2A and 2B , the secure transaction servers 232-233 may generate keys that are then securely transmitted to the secure transaction service 201 and stored in a verification device within the secure storage device 220. Additionally, the secure transaction servers 232-233 manage a secure transaction database 240 on the server side.
图2C示出了用于注册验证装置的一系列事务。如上所述,在注册期间,在验证装置与安全交易服务器232至233中的一个之间共享密钥。密钥存储在客户端200的安全存储装置220和由安全交易服务器232至233使用的安全交易数据库220内。在一个实施例中,密钥是由安全交易服务器232至233中的一个生成的对称密钥。然而,在下文论述的另一个实施例中,可使用不对称密钥。在该实施例中,公共密钥可由安全交易服务器232至233存储,并且第二相关私有密钥可存储在客户端上的安全存储装置220中。此外,在另一个实施例中,密钥可在客户端200上生成(例如,由验证装置或验证装置接口而不是安全交易服务器232至233生成)。本发明的基本原理不限于任何特定类型的密钥或生成密钥的方式。Figure 2C illustrates a series of transactions for registering an authentication device. As described above, during registration, a key is shared between the authentication device and one of the secure transaction servers 232-233. The key is stored in the secure storage 220 of the client 200 and in the secure transaction database 220 used by the secure transaction servers 232-233. In one embodiment, the key is a symmetric key generated by one of the secure transaction servers 232-233. However, in another embodiment discussed below, an asymmetric key may be used. In this embodiment, a public key may be stored by the secure transaction server 232-233, and a second, related private key may be stored in the secure storage 220 on the client. Furthermore, in another embodiment, the key may be generated on the client 200 (e.g., by the authentication device or authentication device interface rather than by the secure transaction server 232-233). The underlying principles of the present invention are not limited to any particular type of key or method of generating the key.
安全密钥预置协议(诸如动态对称密钥预置协议(DSKPP))可用于经由安全通信信道与客户端共享密钥(例如,见意见征求稿(RFC)6063)。然而,本发明的基本原理不限于任何特定密钥预置协议。A secure key provisioning protocol, such as the Dynamic Symmetric Key Provisioning Protocol (DSKPP), may be used to share keys with the client via a secure communication channel (see, for example, Request for Comments (RFC) 6063). However, the underlying principles of the invention are not limited to any particular key provisioning protocol.
转到图2C所示的具体细节,一旦用户登记或用户核验完成,服务器230便生成随机生成的质询(例如,密码随机数),客户端必须在装置注册期间呈现此质询。该随机质询可在有限时间段内有效。安全交易插件检测随机质询并将其转发到安全交易服务201。作为响应,安全交易服务发起与服务器230的带外会话(例如,带外事务),并使用密钥预置协议与服务器230通信。服务器230使用用户名定位用户、验证随机质询、在已经发送装置的证实代码(例如,AAID)的情况下验证该证实代码,并且在安全交易数据库220中为用户创建新条目。该服务器还可生成密钥或公共/私有密钥对,将密钥写入数据库220,并使用密钥预置协议将密钥发送回安全交易服务201。一旦完成,验证装置与服务器230便在使用对称密钥的情况下共享相同密钥,或者在使用不对称密钥的情况下共享不同密钥。Turning to the specific details shown in FIG2C , once user registration or user verification is complete, server 230 generates a randomly generated challenge (e.g., a cryptographic random number) that the client must present during device registration. This random challenge is valid for a limited period of time. The secure transaction plugin detects the random challenge and forwards it to secure transaction service 201. In response, secure transaction service initiates an out-of-band session (e.g., an out-of-band transaction) with server 230 and communicates with server 230 using a key provisioning protocol. Server 230 locates the user using the username, verifies the random challenge, verifies the device's authentication code (e.g., AAID) if it has been sent, and creates a new entry for the user in secure transaction database 220. The server may also generate a key or public/private key pair, write the key to database 220, and send the key back to secure transaction service 201 using a key provisioning protocol. Once complete, the authenticating device and server 230 share the same key if symmetric keys are used, or different keys if asymmetric keys are used.
图3A示出了用于基于浏览器的具体实施的安全交易确认。虽然示出了基于浏览器的具体实施,但相同的基本原理可使用独立应用程序或移动装置应用程序来实施。Figure 3A shows a secure transaction confirmation for a browser-based implementation. Although a browser-based implementation is shown, the same basic principles can be implemented using a standalone application or a mobile device application.
此安全交易确认被设计为向某些类型的交易(例如,金融交易)提供更强的安全性。在图示实施例中,用户在进行交易之前确认每个交易。使用图示技术,用户确认他/她究竟想要进行何种交易,并确实进行他/她在图形用户界面(GUI)的窗口301中看到的交易。换句话讲,该实施例确保“中间人”(MITM)或“浏览器中间人”(MITB)无法修改交易文本来进行用户没有确认的交易。This secure transaction confirmation is designed to provide enhanced security for certain types of transactions (e.g., financial transactions). In the illustrated embodiment, the user confirms each transaction before conducting it. Using the illustrated technique, the user confirms exactly what transaction they want to conduct and actually conducts the transaction they see in window 301 of the graphical user interface (GUI). In other words, this embodiment ensures that a "man in the middle" (MITM) or "man in the browser" (MITB) cannot modify the transaction text to conduct a transaction that the user has not confirmed.
在一个实施例中,安全交易插件205在浏览器环境中显示窗口301以展示交易细节。安全交易服务器201周期性地(例如,以随机间隔)核验窗口中所示的文本没有正被任何人篡改(例如,通过在所显示的文本上生成散列/签名)。在不同的实施例中,验证装置具有可信用户界面(例如,用于提供符合全球平台组织(GlobalPlatform)的可信UI的API)。In one embodiment, the secure transaction plug-in 205 displays a window 301 in the browser environment to display the transaction details. The secure transaction server 201 periodically (e.g., at random intervals) verifies that the text displayed in the window has not been tampered with by anyone (e.g., by generating a hash/signature on the displayed text). In various embodiments, the verification device has a trusted user interface (e.g., an API for providing a trusted UI compliant with the Global Platform organization).
以下例子将帮助突出显示该实施例的操作。用户从商家网站选择商品并选择“结账”。商家网站将交易发送到服务提供商(例如,PayPal),该服务提供商具有实施本文所述的本发明的一个或多个实施例的安全交易服务器232至233。商家网站验证用户并完成交易。The following example will help highlight the operation of this embodiment. A user selects an item from a merchant website and selects "Checkout." The merchant website sends the transaction to a service provider (e.g., PayPal) that has secure transaction servers 232-233 implementing one or more embodiments of the present invention described herein. The merchant website authenticates the user and completes the transaction.
安全交易服务器232至233接收交易细节(TD),并且将“安全交易”请求放在HTML页面中并发送到客户端200。安全交易请求包括交易细节和随机质询。安全交易插件205检测对交易确认消息的请求并将所有数据转发到安全交易服务201。在不使用浏览器或插件的实施例中,可将该信息直接从安全交易服务器发送到客户端200上的安全交易服务。Secure transaction servers 232-233 receive the transaction details (TD) and place a "secure transaction" request in an HTML page, sending it to client 200. The secure transaction request includes the transaction details and a random challenge. Secure transaction plug-in 205 detects the request for a transaction confirmation message and forwards all data to secure transaction service 201. In embodiments that do not use a browser or plug-in, this information can be sent directly from the secure transaction server to the secure transaction service on client 200.
就基于浏览器的具体实施来说,安全交易插件205向用户显示具有交易细节的窗口301(例如,在浏览器环境中),并要求用户提供验证以确认交易。在不使用浏览器或插件的实施例中,安全交易服务201、应用程序254(图2B)或验证装置210可显示窗口301。安全交易服务201启动计时器并验证正向用户显示的窗口301的内容。可随机选择验证周期。安全交易服务201确保用户在窗口301中看到有效交易细节(例如,生成有关细节的散列,并通过与正确内容的散列相比较来核验内容是否准确)。如果检测到内容已被篡改,则阻止生成确认令牌/签名。In a browser-based implementation, the secure transaction plug-in 205 displays a window 301 with the transaction details to the user (e.g., in a browser environment) and asks the user to provide verification to confirm the transaction. In embodiments that do not use a browser or plug-in, the secure transaction service 201, application 254 ( FIG. 2B ), or verification device 210 may display window 301. The secure transaction service 201 starts a timer and verifies the contents of window 301 being displayed to the user. The verification period may be randomly selected. The secure transaction service 201 ensures that the user sees valid transaction details in window 301 (e.g., generates a hash of the details and verifies the accuracy of the content by comparing it with a hash of the correct content). If it is detected that the content has been tampered with, the generation of the confirmation token/signature is blocked.
在用户提供有效核验数据(例如,通过在指纹传感器上轻扫手指)之后,验证装置核验用户,并使用交易细节和随机质询生成加密签名(有时称为“令牌”)(即,根据交易细节和随机数计算得到签名)。这允许安全交易服务器232至233确保尚未在服务器与客户端之间修改交易细节。安全交易服务201将所生成的签名和用户名发送到安全交易插件205,该安全交易插件将签名转发到安全交易服务器232至233。安全交易服务器232至233使用用户名标识用户并核验签名。如果验证成功,则向客户端发送确认消息并处理交易。After the user provides valid verification data (e.g., by swiping a finger across a fingerprint sensor), the authentication device verifies the user and generates a cryptographic signature (sometimes called a "token") using the transaction details and a random challenge (i.e., a signature calculated from the transaction details and a random number). This allows secure transaction servers 232-233 to ensure that the transaction details have not been modified between the server and the client. Secure transaction service 201 sends the generated signature and username to secure transaction plugin 205, which forwards the signature to secure transaction servers 232-233. Secure transaction servers 232-233 use the username to identify the user and verify the signature. If verification is successful, a confirmation message is sent to the client and the transaction is processed.
本发明的一个实施例实施一种查询策略,其中安全交易服务器将服务器策略传输到客户端,该服务器策略指示服务器所接受的验证功能。客户端接着分析服务器策略以标识其支持的以及/或者用户已经表明想要使用的验证功能的子组。客户端接着使用与所提供的策略匹配的验证令牌子组注册和/或验证用户。因此,对客户端的隐私具有较小影响,因为不需要客户端传输关于其验证功能的详尽信息(例如,所有其验证装置)或可用于唯一地识别客户端的其他信息。One embodiment of the present invention implements a query strategy in which a secure transaction server transmits a server policy to a client, indicating the authentication capabilities accepted by the server. The client then analyzes the server policy to identify a subset of authentication capabilities that the server supports and/or that the user has indicated they wish to use. The client then registers and/or authenticates the user using the subset of authentication tokens that matches the provided policy. Consequently, there is less impact on the client's privacy because the client is not required to transmit detailed information about its authentication capabilities (e.g., all of its authentication devices) or other information that could be used to uniquely identify the client.
以举例而非限制的方式,客户端可包括许多用户核验功能,诸如指纹传感器、声音识别功能、面部识别功能、眼球/光学识别功能、PIN核验等等。然而,出于隐私原因,用户可能不希望向请求服务器透露所有其功能的细节。因此,通过使用本文所述的技术,安全交易服务器可将服务器策略传输到客户端,该服务器策略指示其支持(例如)指纹、光学或智能卡验证。客户端可接着将服务器策略与其自己的验证功能进行比较,并选择一个或多个可用验证选项。By way of example and not limitation, a client may include a variety of user verification capabilities, such as a fingerprint sensor, voice recognition, facial recognition, eye/optical recognition, PIN verification, and so on. However, for privacy reasons, a user may not wish to reveal all details of their capabilities to the requesting server. Therefore, using the techniques described herein, a secure transaction server may transmit a server policy to the client indicating that it supports (for example) fingerprint, optical, or smart card authentication. The client may then compare the server policy with its own authentication capabilities and select one or more available authentication options.
本发明的一个实施例采用安全交易服务器上的交易签署,使得不需要在服务器上维持任何交易状态就能维持与客户端的会话。具体地讲,可将窗口301内所显示的诸如交易文本等交易细节发送到由服务器签署的客户端。服务器可接着通过验证签名来验证由客户端接收的已签署的交易响应是否有效。服务器不需要永久性地存储交易内容,因为对于大量客户端而言,这样做会消耗大量存储空间并且会导致对服务器的拒绝服务类型攻击的可能性。One embodiment of the present invention utilizes transaction signing on a secure transaction server, allowing the client session to be maintained without maintaining any transaction state on the server. Specifically, transaction details, such as the transaction text, displayed in window 301 can be sent to the client, where they are signed by the server. The server can then verify the validity of the signed transaction response received by the client by verifying the signature. The server does not need to permanently store the transaction content, as doing so would consume significant storage space for a large number of clients and could lead to the possibility of a denial-of-service attack on the server.
图3B中示出了本发明的一个实施例,其示出网站或其他网络服务311正在发起与客户端200的交易。例如,用户可能已在网站上选择了要购买的商品,并且可能已准备好结账付款。在图示例子中,网站或服务311将交易提交到安全交易服务器312,该安全交易服务器包括用于生成和核验签名(如本文所述)的签名处理逻辑313和用于执行客户端验证(例如,使用先前所述的验证技术)的验证逻辑314。One embodiment of the present invention is illustrated in FIG3B , which shows a website or other network service 311 initiating a transaction with a client 200. For example, a user may have selected items to purchase on the website and may be ready to check out and pay. In the illustrated example, the website or service 311 submits the transaction to a secure transaction server 312, which includes signature processing logic 313 for generating and verifying signatures (as described herein) and verification logic 314 for performing client authentication (e.g., using the authentication techniques previously described).
在一个实施例中,从安全交易服务器312发送到客户端200的验证请求包括随机质询(诸如密码随机数)(如上所述)、交易细节(例如,为完成交易而呈现的特定文本)、和由签名处理逻辑313使用私有密钥(仅安全交易服务器知道)在随机质询和交易细节上生成的签名。In one embodiment, the verification request sent from the secure transaction server 312 to the client 200 includes a random challenge (such as a cryptographic random number) (as described above), transaction details (e.g., specific text presented to complete the transaction), and a signature generated by the signature processing logic 313 using a private key (known only to the secure transaction server) on the random challenge and transaction details.
一旦客户端接收到以上信息,用户便可接收有关需要用户核验才能完成交易的指示。作为响应,用户可(例如)在指纹扫描器上轻扫手指,拍摄照片,对着麦克风说话,或执行针对给定交易所准许的任何其他类型的验证。在一个实施例中,一旦用户已经成功通过验证装置210的核验,客户端便将以下各项传输回服务器:(1)随机质询和交易文本(两者均由服务器在先前提供给客户端),(2)证明用户成功地完成验证的验证数据,以及(3)签名。Once the client receives the above information, the user may receive an indication that user verification is required to complete the transaction. In response, the user may, for example, swipe a finger on a fingerprint scanner, take a photo, speak into a microphone, or perform any other type of verification permitted for a given transaction. In one embodiment, once the user has successfully passed verification by the verification device 210, the client transmits the following back to the server: (1) a random challenge and transaction text (both of which were previously provided to the client by the server), (2) verification data proving that the user successfully completed verification, and (3) a signature.
安全交易服务器312上的验证模块314可接着确认用户已经正确地验证,并且签名处理逻辑313使用私有密钥在随机质询和交易文本上重新生成签名。如果该签名与客户端所发送的签名匹配,则服务器可验证交易文本与其最初从网站或服务311接收时相同。这节约了存储和处理资源,因为不需要安全交易服务器312将交易文本(或其他交易数据)永久性地存储在安全交易数据库120内。The verification module 314 on the secure transaction server 312 can then confirm that the user has been correctly authenticated, and the signature processing logic 313 uses the private key to regenerate a signature on the random challenge and the transaction text. If the signature matches the signature sent by the client, the server can verify that the transaction text is the same as when it was originally received from the website or service 311. This saves storage and processing resources because the secure transaction server 312 does not need to permanently store the transaction text (or other transaction data) in the secure transaction database 120.
用于向离线装置或连接性有限的装置验证客户端的系统和方法System and method for authenticating a client to an offline device or a device with limited connectivity
如所提及的,本发明的一个实施例包括用于在本地、甚至在用户装置和所述装置离线(即,未连接到依赖方的后端验证服务器)或半离线(即,用户装置未连接到依赖方,但所述装置连接到依赖方)的情况下验证用户(即,核验用户)的技术。图4示出了一种这样的布置,其中,具有先前向依赖方451注册过的验证装置的客户端400与交易装置450建立安全信道以便完成交易。以举例而非限制的方式,交易装置可为ATM、零售点处的销售点(PoS)交易装置、物联网(IoT)装置,或者能够与客户端400建立信道并且允许用户执行交易的任何其他装置。可使用任何无线通信协议来实施信道,这些无线通信协议以举例而非限制的方式,包括近场通信(NFC)和蓝牙(例如,如蓝牙核心规范版本4.0中提出的蓝牙低功耗(BTLE)协议)。当然,本发明的基本原理不限于任何特定通信标准。As mentioned, one embodiment of the present invention includes techniques for authenticating a user (i.e., verifying a user) locally, even when the user device and the device are offline (i.e., not connected to the relying party's backend authentication server) or semi-offline (i.e., the user device is not connected to the relying party, but the device is connected to the relying party). Figure 4 shows one such arrangement, in which a client 400 having an authentication device previously registered with a relying party 451 establishes a secure channel with a transaction device 450 to complete a transaction. By way of example, and not limitation, the transaction device may be an ATM, a point-of-sale (PoS) transaction device at a retail location, an Internet of Things (IoT) device, or any other device capable of establishing a channel with the client 400 and allowing the user to perform a transaction. The channel may be implemented using any wireless communication protocol, including, by way of example, and not limitation, near field communication (NFC) and Bluetooth (e.g., the Bluetooth Low Energy (BTLE) protocol as proposed in Bluetooth Core Specification Version 4.0). Of course, the underlying principles of the present invention are not limited to any particular communication standard.
如虚线箭头所指示,客户端400与依赖方451之间的连接和/或交易装置450与依赖方451之间的连接可能是偶尔发生的,或者可能不存在。支付领域内的实际应用程序通常依赖于此类“离线”使用情况。例如,拥有客户端400(例如,智能电话)的用户在交易时可能未与依赖方451连接,但可能想要通过向交易装置450验证来授权交易(例如,支付)。然而,在本发明的一些实施例中,客户端400和/或交易装置450的确与依赖方451交换一些信息(尽管未必在本文所述的验证或交易确认过程期间交换)。As indicated by the dashed arrows, connections between client 400 and relying party 451 and/or between transaction device 450 and relying party 451 may be sporadic or nonexistent. Real-world applications within the payment field often rely on such "offline" use cases. For example, a user with client 400 (e.g., a smartphone) may not be connected to relying party 451 at the time of a transaction, but may want to authorize the transaction (e.g., payment) by authenticating with transaction device 450. However, in some embodiments of the present invention, client 400 and/or transaction device 450 do exchange some information with relying party 451 (although not necessarily during the authentication or transaction confirmation process described herein).
按照惯例,已使用机密诸如即将被装置(例如,PoS交易装置或ATM)获取的个人识别号码(PIN)来实施用户核验。然后,所述装置将创建与依赖方的在线连接以便核验机密,或者将要求用户的验证器(例如,EMV银行卡)核验PIN。这种具体实施有几个缺点。该具体实施可能需要在线连接,但在线连接有时可能可用,但不总是可用。该具体实施还要求用户将长期有效机密输入承受肩窥风险和经受其他攻击的潜在不可信的装置中。另外,该具体实施本质上与特定的用户核验方法(例如,这种情况下的PIN)绑定。最后,该具体实施要求用户记住诸如PIN之类的机密,这对于用户来说可能不方便。Conventionally, user verification has been implemented using a secret such as a personal identification number (PIN) that is to be captured by a device (e.g., a PoS transaction device or ATM). The device will then establish an online connection with the relying party to verify the secret, or will require the user's authenticator (e.g., an EMV bank card) to verify the PIN. This implementation has several disadvantages. The implementation may require an online connection, which may sometimes be available, but not always. The implementation also requires the user to enter a long-term secret into a potentially untrusted device that is subject to the risk of shoulder surfing and other attacks. In addition, the implementation is inherently tied to a specific user verification method (e.g., a PIN in this case). Finally, the implementation requires the user to remember a secret such as a PIN, which may be inconvenient for the user.
本文所述的验证技术允许用户依赖于他/她自身的客户端的验证能力,所以在用户核验方法与安全性方面提供了明显更大的灵活性。具体地讲,在一个实施例中,用户客户端上的移动应用程序在该客户端连接到依赖方的时间期间缓存依赖方提供的验证请求。验证请求可包括与上述的验证请求相同(或相似)的信息(例如,与验证器相关联的随机数和公共密钥)以及附加信息,该附加信息包括依赖方生成的验证请求(的至少一部分)上的签名、核验密钥和指示验证请求在其内将保持有效的时间段(或相反,验证请求在其之后将过期的时间)的潜在定时数据。在一个实施例中,移动应用程序可缓存多个此类连接请求(例如,针对每个交易装置或交易装置类型有一个请求)。The verification techniques described herein allow a user to rely on the verification capabilities of his/her own client, thereby providing significantly greater flexibility in user verification methods and security. Specifically, in one embodiment, a mobile application on a user's client caches a verification request provided by a relying party during the time that the client is connected to the relying party. The verification request may include the same (or similar) information as the verification request described above (e.g., a random number and public key associated with the authenticator) as well as additional information, including a signature on (at least a portion of) the verification request generated by the relying party, a verification key, and potential timing data indicating the time period within which the verification request will remain valid (or conversely, the time after which the verification request will expire). In one embodiment, the mobile application may cache multiple such connection requests (e.g., one request for each transaction device or transaction device type).
在一个实施例中,在客户端/移动应用程序不能够与依赖方连接的情况下,已缓存的验证请求随后可用于与交易装置进行交易。在一个实施例中,移动应用程序基于已缓存的包含serverData和从交易装置接收的额外数据的验证请求,触发对验证响应的创建。然后将验证响应传输到交易装置,该交易装置随后使用依赖方所提供的核验密钥(例如,在交易装置与依赖方连接的时间期间)来核验该验证响应。具体地讲,交易装置可使用依赖方提供的密钥来核验包含在验证响应中的serverData上的签名。在一个实施例中,依赖方使用私有依赖方核验密钥来生成签名,并且交易装置使用对应的公共依赖方核验密钥(由依赖方向交易装置提供)来核验该签名。In one embodiment, in the event that the client/mobile application is unable to connect with the relying party, the cached verification request can subsequently be used to conduct a transaction with the transaction device. In one embodiment, the mobile application triggers the creation of a verification response based on the cached verification request containing serverData and additional data received from the transaction device. The verification response is then transmitted to the transaction device, which then verifies the verification response using a verification key provided by the relying party (e.g., during the time the transaction device is connected to the relying party). Specifically, the transaction device can use the key provided by the relying party to verify the signature on the serverData included in the verification response. In one embodiment, the relying party uses a private relying party verification key to generate the signature, and the transaction device verifies the signature using a corresponding public relying party verification key (provided by the relying party to the transaction device).
一旦交易装置核验完毕从验证响应提取的serverData,然后就可使用从验证请求提取的公共密钥(例如,Uauth.pub)来核验客户端/移动应用程序所生成的验证响应(例如,当客户端直接向依赖方验证时,采用与依赖方进行的上述核验相同或类似的方式)。Once the transaction device has verified the serverData extracted from the verification response, it can then use the public key extracted from the verification request (e.g., Uauth.pub) to verify the verification response generated by the client/mobile application (e.g., when the client authenticates directly to the relying party, in the same or similar manner as the above verification performed by the relying party).
在下文所述的替代性实施例中,依赖方直接向交易装置(而不是通过客户端装置上的移动应用程序)提供验证请求。在该实施例中,交易装置可以在从客户端上的移动应用程序接收到完成交易的请求时,要求来自依赖方的验证请求。一旦交易装置获得所述验证请求,就可以如上所述验证该请求和验证响应(例如,通过生成签名,并将该签名与现有签名进行比较)。In an alternative embodiment described below, the relying party provides a verification request directly to the transaction device (rather than through a mobile application on the client device). In this embodiment, the transaction device can request a verification request from the relying party when it receives a request to complete a transaction from the mobile application on the client. Once the transaction device obtains the verification request, it can verify the request and verification response as described above (e.g., by generating a signature and comparing it to an existing signature).
图5A是示出在客户端400缓存验证请求的一个实施例中,客户端400、交易装置450与依赖方之间的交互的事务图。该实施例有时被称为“全离线”实施例,因为其不要求交易装置450具有与依赖方的现有连接。5A is a transaction diagram illustrating the interactions between client 400, transaction device 450, and a relying party in one embodiment where client 400 caches validation requests. This embodiment is sometimes referred to as a "fully offline" embodiment because it does not require transaction device 450 to have an existing connection to the relying party.
在501处,客户端请求来自依赖方的可缓存验证请求。在502处,依赖方生成可缓存验证请求;在503处,验证请求被发送到客户端;在504处,客户端缓存验证请求。在一个实施例中,验证请求包括与即将用于验证的验证器相关联的公共密钥(Uauth.pub),以及使用依赖方核验密钥(RPVerifyKey)在公共密钥和随机数上生成的签名。如果使用不对称密钥,则依赖方用来生成签名的RPVerifyKey是具有对应的公共RPVerifyKey的私有密钥,依赖方已向交易装置提供该对应的公共RPVerifyKey(可能远在处理用户验证请求之前)。At 501, the client requests a cacheable authentication request from a relying party. At 502, the relying party generates a cacheable authentication request; at 503, the authentication request is sent to the client; at 504, the client caches the authentication request. In one embodiment, the authentication request includes the public key (Uauth.pub) associated with the authenticator to be used for authentication, and a signature generated over the public key and a random number using the relying party's verification key (RPVerifyKey). If asymmetric keys are used, the RPVerifyKey used by the relying party to generate the signature is a private key with a corresponding public RPVerifyKey that the relying party has provided to the transaction device (possibly well before processing the user authentication request).
在一个实施例中,验证请求还包括指示验证请求在其间将保持有效的时间长度的定时信息(例如,MaxCacheTime)。在该实施例中,可缓存验证请求的签名可通过公共验证密钥、随机数与MaxCacheTime的组合来生成(例如,ServerData=Uauth.pub|MaxCacheTime|serverNonce|Sign(RPVerifyKey,Uauth.pub|MaxCacheTime|serverNonce))。在一个实施例中,验证响应包括不止一个验证密钥(例如,针对能够验证用户的每个验证器有一个验证密钥),并且可通过所有这些密钥(例如,连同随机数和MaxCacheTime一起)生成签名。In one embodiment, the verification request also includes timing information (e.g., MaxCacheTime) indicating the length of time the verification request will remain valid. In this embodiment, the signature of the cacheable verification request can be generated by combining the public verification key, the nonce, and the MaxCacheTime (e.g., ServerData=Uauth.pub|MaxCacheTime|serverNonce|Sign(RPVerifyKey, Uauth.pub|MaxCacheTime|serverNonce)). In one embodiment, the verification response includes more than one verification key (e.g., one verification key for each authenticator capable of verifying the user), and the signature can be generated by all of these keys (e.g., together with the nonce and MaxCacheTime).
如所提及的,交易装置450或旨在执行验证请求/响应的离线核验的任何装置需要知道公共RPVerifyKey。该扩展是必需的,因为交易装置完全不清楚在依赖方处注册的验证密钥(即,用户装置与交易装置之间未建立任何关系)。因此,依赖方必须以安全的方式向交易装置(或其他装置)传送有关哪些密钥即将用于验证响应核验的信息。交易装置将核验MaxCacheTime,以确定已缓存的验证请求是否依然有效(以便遵守依赖方的有关已缓存的验证请求可使用多长时间的策略)。As mentioned, the transaction device 450, or any device designed to perform offline verification of authentication requests/responses, needs to know the public RPVerifyKey. This extension is necessary because the transaction device has no knowledge of the verification keys registered with the relying party (i.e., no relationship has been established between the user device and the transaction device). Therefore, the relying party must securely communicate to the transaction device (or other device) information about which keys will be used for verification of the authentication response. The transaction device will check MaxCacheTime to determine whether the cached authentication request is still valid (in order to comply with the relying party's policy on how long a cached authentication request can be used).
在505处,客户端建立与交易装置的安全连接并发起交易。例如,如果交易装置是PoS交易装置,则交易可涉及借记或信贷交易。如果交易装置是ATM,则交易可涉及现金提取或维护任务。本发明的基本原理不限于任何特定类型的交易装置或安全连接。另外,在505处,客户端可将已缓存的验证请求传输到交易装置。At 505, the client establishes a secure connection with the transaction device and initiates a transaction. For example, if the transaction device is a Point-of-Sale (PoS) transaction device, the transaction may involve a debit or credit transaction. If the transaction device is an ATM, the transaction may involve a cash withdrawal or maintenance task. The underlying principles of the present invention are not limited to any particular type of transaction device or secure connection. Additionally, at 505, the client may transmit a cached authentication request to the transaction device.
作为响应,在506处,交易装置可传输装置身份信息(例如,交易装置识别代码)、随机质询(随机数)以及任选地,以定义的语法完成交易的交易文本。然后,随机质询/随机数将被加密地绑定到验证响应。该机制允许装置核验用户核验是新生成的,尚未被缓存/重复使用。In response, at 506, the transaction device may transmit device identity information (e.g., a transaction device identification code), a random challenge (random number), and optionally, transaction text that completes the transaction in a defined syntax. The random challenge/random number will then be cryptographically bound to the verification response. This mechanism allows the device to verify that the user verification is freshly generated and has not been cached/reused.
为了支持诸如上述的交易确认(例如,参见图3A和图3B以及相关联文本),可能需要交易装置创建交易的标准化且人可读的表示。如本文所用,“标准化”意指能够由依赖方解析(例如,用于如下述操作511中所指示的最终核验)并且/或者能够由交易装置解析的格式。该格式需要是人可读的,因为交易确认要求验证器在客户端400的安全显示器上显示这些交易确认。这种编码的例子可为XML,此时XSLT用于可视化。To support transaction confirmations such as those described above (e.g., see Figures 3A and 3B and the associated text), a transaction device may need to create a standardized, human-readable representation of the transaction. As used herein, "standardized" means a format that can be parsed by a relying party (e.g., for final verification as indicated in operation 511 below) and/or by the transaction device. This format needs to be human-readable because transaction confirmations require the validator to display these transaction confirmations on a secure display at the client 400. An example of such an encoding may be XML, in which case XSLT is used for visualization.
在507处,为了生成验证响应,显示验证用户界面,用于指导用户使用特定的验证器在客户端上执行验证(例如,在指纹传感器上轻扫手指、输入PIN码、对着麦克风说话,等等)。一旦用户提供验证,客户端上的验证引擎就核验用户的身份(例如,将从用户收集的验证数据与存储在验证器的安全存储装置中的用户核验参考数据进行比较),并使用与验证装置相关联的私有密钥在随机质询上(可能还在交易装置ID和/或交易文本上)加密并/或生成签名。然后在508处,将验证响应传输到交易装置。At 507, to generate a verification response, an authentication user interface is displayed to guide the user to perform authentication on the client using a specific authenticator (e.g., swiping a finger on a fingerprint sensor, entering a PIN, speaking into a microphone, etc.). Once the user provides authentication, the authentication engine on the client verifies the user's identity (e.g., comparing the authentication data collected from the user with the user's verification reference data stored in the authenticator's secure storage) and encrypts and/or generates a signature on the random challenge (possibly also on the transaction device ID and/or transaction text) using a private key associated with the authentication device. The authentication response is then transmitted to the transaction device at 508.
在509处,如果所述验证引擎尚未将验证响应传输到交易装置,交易装置就使用公共RPVerifyKey来核验serverData(在505处接收)上的签名。一旦serverData得到核验,交易装置便知道与用于执行验证的验证器相关联的公共密钥(Uauth.pub)。交易装置使用该密钥来核验所述验证响应。例如,交易装置可使用公共验证密钥来解密或核验在随机数和任何其他相关信息(例如,交易文本、交易装置ID等)上生成的签名。如果交易装置执行了交易确认,则在508处,该交易装置可通过验证在交易文本上生成并且包含在验证响应中的签名来核验客户端上显示的交易文本。代替具有加密安全的serverData结构,交易装置还可使用与依赖方的在线连接(如果该连接可用(半离线情况))来核验未签名的serverData。At 509, if the verification engine has not yet transmitted a verification response to the transaction device, the transaction device verifies the signature on the serverData (received at 505) using the public RPVerifyKey. Once the serverData is verified, the transaction device knows the public key (Uauth.pub) associated with the authenticator used to perform the verification. The transaction device uses this key to verify the verification response. For example, the transaction device can use the public verification key to decrypt or verify the signature generated on the random number and any other relevant information (e.g., transaction text, transaction device ID, etc.). If the transaction device performs transaction confirmation, at 508, the transaction device can verify the transaction text displayed on the client by verifying the signature generated on the transaction text and included in the verification response. Instead of having a cryptographically secure serverData structure, the transaction device can also verify the unsigned serverData using an online connection to the relying party, if such a connection is available (semi-offline scenario).
在510处,取决于验证是成功还是失败,分别向客户端发送成功指示或失败指示。如果成功,则交易装置将允许交易(例如,记入帐户的借方/贷方来完成购买、支付现金、执行管理任务等)。如果失败,则交易装置将不允许交易并且/或者请求额外验证。At 510, depending on whether the verification succeeds or fails, a success indication or a failure indication is sent to the client. If successful, the transaction device will allow the transaction (e.g., debit/credit an account to complete the purchase, pay cash, perform an administrative task, etc.). If unsuccessful, the transaction device will not allow the transaction and/or request additional verification.
如果存在与依赖方的连接,则在511处,交易装置可传输对依赖方的验证响应和/或交易文本(假定依赖方是负责核验交易文本的实体)。可在依赖方处记录交易的记录,并且/或者依赖方可核验交易文本并确认交易(未示出)。If there is a connection with the relying party, the transaction device may transmit a verification response and/or transaction text to the relying party (assuming the relying party is the entity responsible for verifying the transaction text) at 511. A record of the transaction may be recorded at the relying party, and/or the relying party may verify the transaction text and confirm the transaction (not shown).
图5B是示出在交易装置具有与依赖方的连接并且从依赖方接收验证请求的一个实施例中,客户端400、交易装置450与依赖方之间的交互的事务图。该实施例有时被称为“半离线”实施例,因为尽管客户端未连接到依赖方,但交易装置450与依赖方连接。5B is a transaction diagram illustrating the interactions between client 400, transaction device 450, and a relying party in one embodiment in which the transaction device has a connection to the relying party and receives a verification request from the relying party. This embodiment is sometimes referred to as a "semi-offline" embodiment because, although the client is not connected to the relying party, the transaction device 450 is connected to the relying party.
在521处,客户端发起交易,从而建立与交易装置的安全连接(例如,NFC、蓝牙等)。在522处,交易装置作出响应,要求来自依赖方的验证请求。在523处,依赖方生成验证请求,然后在524处,将验证请求发送到交易装置。如在图5A所示的实施例中,验证请求可包括与客户端上即将用于验证的验证器相关联的公共密钥(Uauth.pub),以及使用依赖方核验密钥(RPVerifyKey)在公共密钥和随机数上生成的签名。如果使用不对称密钥,则依赖方用来生成签名的RPVerifyKey是具有对应的公共RPVerifyKey的私有密钥,依赖方向交易装置提供该对应的公共RPVerifyKey(可能远在处理用户验证请求之前)。代替具有加密安全的serverData结构,交易装置还可使用与依赖方的在线连接(如果该连接可用(半离线情况))来核验未签名的serverData。At 521, the client initiates a transaction, establishing a secure connection (e.g., NFC, Bluetooth, etc.) with the transaction device. At 522, the transaction device responds with a verification request from the relying party. At 523, the relying party generates a verification request and then, at 524, sends it to the transaction device. As in the embodiment shown in FIG5A , the verification request may include the public key (Uauth.pub) associated with the authenticator on the client that will be used for verification, as well as a signature generated using the relying party's verification key (RPVerifyKey) over the public key and a random number. If asymmetric keys are used, the RPVerifyKey used by the relying party to generate the signature is a private key with a corresponding public RPVerifyKey, which the relying party provides to the transaction device (possibly well before processing the user's verification request). Instead of using a cryptographically secure serverData structure, the transaction device may also verify the unsigned serverData using an online connection to the relying party, if available (semi-offline scenario).
在一个实施例中,serverData还包括指示验证请求在其间将保持有效的时间长度的定时信息(例如,MaxCacheTime)。在该实施例中,serverData的签名可通过公共验证密钥、随机数与MaxCacheTime的组合来生成(例如,ServerData=Uauth.pub|MaxCacheTime|serverNonce|Sign(RPVerifyKey,Uauth.pub|MaxCacheTime|serverNonce))。在一个实施例中,验证响应包括不止一个验证密钥(例如,针对每个验证器有一个验证密钥),并且可通过所有这些密钥(例如,连同随机数和MaxCacheTime一起)生成签名。In one embodiment, serverData also includes timing information (e.g., MaxCacheTime) indicating the length of time the verification request will remain valid. In this embodiment, the signature of serverData can be generated by combining the public verification key, the random number, and MaxCacheTime (e.g., ServerData=Uauth.pub|MaxCacheTime|serverNonce|Sign(RPVerifyKey, Uauth.pub|MaxCacheTime|serverNonce)). In one embodiment, the verification response includes more than one verification key (e.g., one for each verifier), and the signature can be generated by all of these keys (e.g., together with the random number and MaxCacheTime).
在一个实施例中,图5B中的事务图的剩余部分基本上如图5A中所示那样操作。在525处,交易装置可传输身份信息(例如,交易装置识别代码)、随机质询(随机数)以及任选地,以定义的语法完成交易的交易文本。然后,随机质询/随机数将被加密地绑定到验证响应。该机制允许装置核验用户核验是新生成的,尚未被缓存。In one embodiment, the remainder of the transaction diagram in FIG5B operates substantially as shown in FIG5A. At 525, the transaction device may transmit identity information (e.g., a transaction device identification code), a random challenge (random number), and optionally, transaction text that completes the transaction in a defined syntax. The random challenge/random number will then be cryptographically bound to the verification response. This mechanism allows the device to verify that the user verification is freshly generated and not already cached.
为了支持诸如上述的交易确认(例如,参见图3A和图3B以及相关联文本),可能需要交易装置创建交易的标准化且人可读的表示。如本文所用,“标准化”意指能够由依赖方解析(例如,用于如下述操作511中所指示的最终核验)并且/或者能够由交易装置解析的格式。该格式需要是人可读的,因为交易确认要求验证器在客户端400的安全显示器上显示这些交易确认。这种编码的例子可为XML,此时XSLT用于可视化。To support transaction confirmations such as those described above (e.g., see Figures 3A and 3B and the associated text), a transaction device may need to create a standardized, human-readable representation of the transaction. As used herein, "standardized" means a format that can be parsed by a relying party (e.g., for final verification as indicated in operation 511 below) and/or by the transaction device. This format needs to be human-readable because transaction confirmations require the validator to display these transaction confirmations on a secure display at the client 400. An example of such an encoding may be XML, in which case XSLT is used for visualization.
在526处,为了生成验证响应,显示验证用户界面,用于指导用户使用特定的验证器在客户端上执行验证(例如,在指纹传感器上轻扫手指、输入PIN码、对着麦克风说话,等等)。一旦用户提供验证,客户端上的验证引擎就核验用户的身份(例如,将从用户收集的验证数据与存储在验证器的安全存储装置中的用户核验参考数据进行比较),并使用与验证装置相关联的私有密钥在随机质询上(可能还在交易装置ID和/或交易文本上)加密并/或生成签名。然后在527处,将验证响应传输到交易装置。At 526, to generate a verification response, an authentication user interface is displayed to guide the user to perform authentication on the client using a specific authenticator (e.g., swiping a finger on a fingerprint sensor, entering a PIN, speaking into a microphone, etc.). Once the user provides authentication, the authentication engine on the client verifies the user's identity (e.g., comparing the authentication data collected from the user with user verification reference data stored in the authenticator's secure storage device) and encrypts and/or generates a signature on the random challenge (and possibly on the transaction device ID and/or transaction text) using a private key associated with the authentication device. The authentication response is then transmitted to the transaction device at 527.
在528处,如果所述验证引擎尚未将验证响应传输到交易装置,交易装置就使用公共RPVerifyKey来核验serverData(在524处接收)上的签名。一旦serverData得到核验,交易装置便知道与用于执行验证的验证器相关联的公共密钥(Uauth.pub)。交易装置使用该密钥来核验所述验证响应。例如,交易装置可使用公共验证密钥来解密或核验在随机数和任何其他相关信息(例如,交易文本、交易装置ID等)上生成的签名。如果交易装置执行了交易确认,则在528处,该交易装置可通过验证在交易文本上生成并且包含在验证响应中的签名来核验客户端上显示的交易文本。代替具有加密安全的serverData结构,交易装置还可使用与依赖方的在线连接(如果该连接可用(半离线情况))来核验未签名的serverData。At 528, if the verification engine has not yet transmitted the verification response to the transaction device, the transaction device verifies the signature on the serverData (received at 524) using the public RPVerifyKey. Once the serverData is verified, the transaction device knows the public key (Uauth.pub) associated with the authenticator used to perform the verification. The transaction device uses this key to verify the verification response. For example, the transaction device can use the public verification key to decrypt or verify the signature generated on the random number and any other relevant information (e.g., transaction text, transaction device ID, etc.). If the transaction device performs transaction confirmation, at 528, the transaction device can verify the transaction text displayed on the client by verifying the signature generated on the transaction text and included in the verification response. Instead of having a cryptographically secure serverData structure, the transaction device can also use an online connection with the relying party (if such a connection is available (semi-offline scenario)) to verify the unsigned serverData.
在529处,取决于验证是成功还是失败,分别向客户端发送成功指示或失败指示。如果成功,则交易装置将允许交易(例如,记入帐户的借方/贷方来完成购买、支付现金、执行管理任务等)。如果失败,则交易装置将不允许交易并且/或者请求额外验证。At 529, depending on whether the verification succeeds or fails, a success indication or a failure indication is sent to the client, respectively. If successful, the transaction device will allow the transaction (e.g., debit/credit an account to complete the purchase, pay cash, perform an administrative task, etc.). If unsuccessful, the transaction device will not allow the transaction and/or request additional verification.
在530处,交易装置可传输对依赖方的验证响应和/或交易文本(假定依赖方是负责核验交易文本的实体)。可在依赖方处记录交易的记录,并且/或者依赖方可核验交易文本并确认交易(未示出)。At 530, the transaction device may transmit a verification response and/or transaction text to the relying party (assuming the relying party is the entity responsible for verifying the transaction text). A record of the transaction may be recorded at the relying party, and/or the relying party may verify the transaction text and confirm the transaction (not shown).
如图6所示,在一个实施例中,在客户端上执行移动应用程序601,以结合验证客户端602(其可以是图2B中所示的安全交易服务201和接口202)来执行本文所述的操作。具体地讲,移动应用程序601可使用传输层安全(TLS)协议或其他安全通信协议,来打开到交易装置450上执行的web应用程序611的安全信道。交易装置上的web服务器612还可打开安全信道来与依赖方451通信(例如,以便如上所述那样检索验证请求并且/或者向依赖方451提供更新)。验证客户端602可直接与依赖方451通信,以例如检索可缓存的验证请求(如上文详细讨论的那样)。As shown in FIG6 , in one embodiment, a mobile application 601 is executed on a client to perform the operations described herein in conjunction with a verification client 602 (which may be the secure transaction service 201 and interface 202 shown in FIG2B ). Specifically, the mobile application 601 may use the Transport Layer Security (TLS) protocol or other secure communication protocol to open a secure channel to a web application 611 executed on the transaction device 450. The web server 612 on the transaction device may also open a secure channel to communicate with the relying party 451 (e.g., to retrieve verification requests and/or provide updates to the relying party 451 as described above). The verification client 602 may communicate directly with the relying party 451, for example, to retrieve cacheable verification requests (as discussed in detail above).
在一个实施例中,验证客户端602可识别依赖方和具有“AppID”的任何经授权的移动应用程序601,其中“AppID”是与依赖方可用的每个应用程序相关联的唯一代码。在依赖方提供多种在线服务的一些实施例中,用户在单个依赖方可拥有多个AppID(依赖方为每种服务提供一个AppID)。In one embodiment, the verification client 602 can identify the relying party and any authorized mobile applications 601 with an "AppID," which is a unique code associated with each application available to the relying party. In some embodiments where the relying party offers multiple online services, a user can have multiple AppIDs with a single relying party (the relying party provides one AppID for each service).
在一个实施例中,通过AppID识别的任何应用程序可具有识别用于与依赖方连接的允许机制和/或应用程序类型的多个“方面(facet)”。例如,特定依赖方可允许经由Web服务并且经由不同的特定于平台的移动应用程序(例如,Android应用程序、iOS应用程序等)进行访问。这些项中的每一个可使用不同的“FacetID”来识别,如图所示,依赖方可向验证引擎提供该“FacetID”。In one embodiment, any application identified by an AppID may have multiple "facets" that identify the permitted mechanisms and/or application types for connecting to a relying party. For example, a particular relying party may allow access via a web service and via different platform-specific mobile applications (e.g., an Android application, an iOS application, etc.). Each of these items may be identified using a different "FacetID," which the relying party may provide to the verification engine as shown.
在一个实施例中,调用移动应用程序601将其AppID传递到验证客户端602所暴露的API。在每个平台上,验证客户端602识别调用应用程序601,并确定其FacetID。然后,该验证客户端解析AppID,并且检查该FacetID是否包含在依赖方451提供的TrustedApp列表中。In one embodiment, the calling mobile application 601 passes its AppID to the API exposed by the verification client 602. On each platform, the verification client 602 identifies the calling application 601 and determines its FacetID. The verification client then resolves the AppID and checks whether the FacetID is included in the TrustedApp list provided by the relying party 451.
在一个实施例中,可使用诸如图7和图8中所示的不记名令牌来实施上文所述的可缓存验证请求。在本文所述的本发明的实施例中,令牌接收方(交易装置450)需要能够在不要求与令牌发布方(依赖方)建立另一个“在线”连接的情况下,对令牌、验证响应以及令牌与验证响应的绑定进行核验。In one embodiment, the cacheable authentication request described above may be implemented using a bearer token such as that shown in Figures 7 and 8. In the embodiments of the invention described herein, the token recipient (transaction device 450) needs to be able to verify the token, the authentication response, and the binding of the token to the authentication response without requiring another "online" connection to the token issuer (relying party).
应当区分两类不记名令牌:Two types of bearer tokens should be distinguished:
1。只能由接收方(例如,交易装置450)使用到发布方(例如,依赖方451)的不同信道来核验的令牌,令牌发布与令牌核验之间必须存在这类令牌。这类令牌在本文中被称为“未签名令牌”。1. A token that can only be verified by a recipient (e.g., transaction device 450) using a different channel to the issuer (e.g., relying party 451). This type of token must exist between token issuance and token verification. This type of token is referred to herein as an "unsigned token."
2。由于其具有加密结构(例如,因为其包含下述数字签名)而能够被接收方核验的令牌,该数字签名能够使用从令牌发布方接收的数据来核验(这种方式适合在特定令牌发布之前使用)。这类令牌在本文中被称为“已签名令牌”。2. A token that can be verified by the recipient because of its cryptographic structure (e.g., because it contains a digital signature as described below), which can be verified using data received from the token issuer (this approach is suitable for use before a particular token is issued). This type of token is referred to herein as a "signed token."
术语“已签名令牌结构”在本文中用来指包含Uauth.pub密钥的已签名令牌和包含该令牌的已签名结构这两者。The term "signed token structure" is used herein to refer to both the signed token containing the Uauth.pub key and the signed structure containing the token.
将已签名令牌绑定到验证密钥Bind the signed token to the verification key
如图7所示,在一个实施例中,为了将已签名令牌绑定到验证密钥,令牌发布方(例如,依赖方451):(a)将验证公共密钥(Uauth.pub)702添加到(待)签名令牌的待签名部分701;以及(b)将该已签名令牌加入验证响应的待签名部分。通过此操作,令牌接收方(例如,交易装置450)能够通过验证签名703(例如,上文所述的公共RPVerifyKey)来核验令牌。如果核验成功,则如前讨论的,令牌接收方能够提取公共密钥(Uauth.pub),并使用该公共密钥来核验所述验证响应。As shown in Figure 7, in one embodiment, to bind a signed token to a verification key, the token issuer (e.g., relying party 451) (a) adds the verification public key (Uauth.pub) 702 to the (to-be-)signed token's to-be-signed portion 701; and (b) adds the signed token to the to-be-signed portion of the verification response. This allows the token recipient (e.g., transaction device 450) to verify the token by verifying the signature 703 (e.g., the public RPVerifyKey described above). If verification is successful, the token recipient can extract the public key (Uauth.pub) as previously discussed and use it to verify the verification response.
将未签名令牌绑定到验证密钥Bind an unsigned token to a verification key
如图8所示,为了将未签名令牌802绑定到验证密钥,在一个实施例中,令牌发布方(例如,依赖方451)创建(至少)覆盖原始令牌802和待签名数据801(包括验证公共密钥(Uauth.pub))的已签名结构。能够通过使用与私有签名密钥相关的公共密钥(例如,上文所述的RPVerifyKey对)来验证签名803,从而核验所述已签名结构。需要与令牌接收方(例如,交易装置450)共享该公共签名密钥。能够在生成签名密钥对之后进行一次共享,这种方式适合在生成第一已签名结构之前使用。As shown in Figure 8, to bind an unsigned token 802 to a verification key, in one embodiment, the token issuer (e.g., relying party 451) creates a signed structure that covers (at least) the original token 802 and the data to be signed 801 (including the verification public key (Uauth.pub)). The signed structure can be verified by verifying the signature 803 using a public key associated with the private signing key (e.g., the RPVerifyKey pair described above). The public signing key needs to be shared with the token recipient (e.g., transaction device 450). Sharing can be done once after the signing key pair is generated, which is suitable for use before the first signed structure is generated.
本文所述的技术既支持“全离线”具体实施(即,交易装置450在交易时未连接到依赖方451),又支持“半离线”具体实施(即,交易装置在交易时连接到依赖方451,但客户端未连接到该依赖方)。The technology described in this article supports both "fully offline" specific implementations (i.e., the transaction device 450 is not connected to the relying party 451 at the time of the transaction) and "semi-offline" specific implementations (i.e., the transaction device is connected to the relying party 451 at the time of the transaction, but the client is not connected to the relying party).
甚至在全离线的情况下,仍期望交易装置450经由主机不时地连接到依赖方451。例如,主机可收集存储在交易装置450中的所有响应以便将其发送到依赖方,还可更新(如果需要的话)已撤销Uauth密钥(例如,自最后一次连接以来已经撤销的公共验证密钥)的列表。Even in a fully offline situation, it is still expected that the transaction device 450 will occasionally connect to the relying party 451 via the host. For example, the host can collect all responses stored in the transaction device 450 to send to the relying party, and can also update (if necessary) the list of revoked Uauth keys (e.g., public authentication keys that have been revoked since the last connection).
一些实施例还支持纯(会话)验证以及交易确认。甚至在交易确认的情况下,如果交易装置450将交易文本连同验证响应一起提交到依赖方451,则依赖方451能够核验交易。Some embodiments also support pure (session) authentication as well as transaction confirmation.Even in the case of transaction confirmation, if the transaction device 450 submits the transaction text together with the authentication response to the relying party 451, the relying party 451 can verify the transaction.
本文所述的技术有几个不同的使用案例/应用。例如:The technology described in this article has several different use cases/applications. For example:
1。支付用户已经向支付服务提供商(PSP)注册了他/她的验证器(例如,智能电话)。用户想要使用得到PSP授权的销售点装置(PoS),在某些商家处验证支付,但该PoS未与PSP建立可靠而永久的在线连接(例如,在公交车中)。在该例子中,PoS可被实施为交易装置450,PSP可被实施为上文所述的依赖方451,从而在尽管没有可靠而永久的连接的情况下,也允许进行交易。1. A paying user has registered their authenticator (e.g., a smartphone) with a payment service provider (PSP). The user wants to use a point-of-sale (PoS) device authorized by the PSP to authenticate payments at certain merchants, but the PoS does not have a reliable and permanent online connection with the PSP (e.g., on a bus). In this example, the PoS can be implemented as a transaction device 450, and the PSP can be implemented as a relying party 451 as described above, thereby allowing transactions to proceed despite the lack of a reliable and permanent connection.
2。物联网公司已经安装几个嵌入式装置(例如,在工厂、建筑物等中)。此类装置的维护由签约方雇用的技术人员执行。为执行维护,技术人员必须向装置验证,以便证明他/她有执行该项任务的资格。作了如下一些假定(基于实际的框架条件):2. The IoT company has installed several embedded devices (for example, in factories, buildings, etc.). Maintenance of these devices is performed by technicians employed by the contractor. To perform maintenance, the technician must authenticate himself/herself to the device to prove his/her qualifications for the task. The following assumptions are made (based on realistic framework conditions):
a。技术人员无法向每个此类装置执行注册(因为此类装置过多)。a. A technician cannot perform registration on every such device (due to the large number of such devices).
b。由于技术人员为数众多、此类技术人员的变动也相当大,所以无法保证每个装置上的合格技术人员列表始终是最新的。b. Due to the large number of technicians and the significant turnover of such technicians, it is not possible to ensure that the list of qualified technicians on each device is always up to date.
c。在维护时,所述装置和技术人员的计算机都没有可靠的网络连接。c. Neither the device nor the technician's computer had a reliable network connection at the time of maintenance.
使用上文所述的技术,公司能够一次(例如,在安装时)将信任锚(例如,公共RPVerifyKey)注入所有装置中。然后,每个技术人员向签约方(例如,依赖方451,其可为技术人员的雇主)注册。使用以上技术,技术人员将能够向每个装置验证。Using the techniques described above, a company can inject a trust anchor (e.g., a public RPVerifyKey) into all devices once (e.g., at installation time). Each technician then registers with a contracted party (e.g., relying party 451, which can be the technician's employer). Using the above techniques, the technician will be able to authenticate to each device.
上文所述的本发明的实施例可以在任何系统中实施,在该系统中,具有验证能力的客户端向依赖方注册,并且在该客户端与装置之间执行验证操作,所述装置(a)代表依赖方起作用,并且(b)在交易时处于离线状态(即,未与客户端已经向其注册的依赖方原始服务器建立可靠的网络连接)。在这种情况下,客户端从原始服务器接收可缓存的验证请求并缓存该验证请求。一旦需要验证响应,客户端便计算验证响应并且将其发送到装置。The embodiments of the present invention described above can be implemented in any system in which a client with authentication capabilities registers with a relying party and authentication operations are performed between the client and a device that (a) acts on behalf of the relying party and (b) is offline at the time of the transaction (i.e., does not have a reliable network connection to the relying party's origin server with which the client has registered). In this case, the client receives a cacheable authentication request from the origin server and caches the authentication request. Once an authentication response is required, the client calculates the authentication response and sends it to the device.
在另一个实施例中,客户端以加密安全方式将(在验证请求中接收的)信道绑定数据添加到所述响应。通过此操作,依赖方的原始服务器能够核验该请求已被合法客户端(而不是某个中间人)接收。In another embodiment, the client adds the channel binding data (received in the verification request) to the response in a cryptographically secure manner. By doing this, the original server of the relying party can verify that the request has been received by a legitimate client (rather than a middleman).
在一个实施例中,依赖方将额外的已验证数据添加到所述响应,所述已验证数据诸如Uauth.pub密钥(其允许装置核验该验证或交易确认响应),而不必联系依赖方服务器以检索已批准的Uauth.pub密钥。在另一个实施例中,依赖方要求客户端的用户先成功地执行验证,再发布“可缓存”验证请求(以防出现拒绝服务攻击)。在一个实施例中,依赖方要求客户端指出,需要的请求是可缓存的还是不可缓存的。如果是可缓存的,则依赖方可能需要所述响应中额外的验证数据(例如,上文所述的MaxCacheTime)。In one embodiment, the relying party adds additional verified data to the response, such as a Uauth.pub key (which allows the device to verify the verification or transaction confirmation response) without having to contact the relying party server to retrieve the approved Uauth.pub key. In another embodiment, the relying party requires the client's user to successfully perform verification before issuing a "cacheable" verification request (to prevent denial of service attacks). In one embodiment, the relying party requires the client to indicate whether the requested request is cacheable or non-cacheable. If cacheable, the relying party may require additional verification data in the response (e.g., the MaxCacheTime described above).
在一个实施例中,装置(诸如交易装置450)未与依赖方建立直接的网络连接,而是使用单独的计算机(在本文中有时称为“主机”)来与依赖方“同步”。该主机检索从装置收集的所有验证响应,并且将其转移到依赖方。另外,主机还可将已撤销Uauth密钥的列表复制到装置,以确保验证响应中不使用任一个已撤销密钥。In one embodiment, a device (such as transaction device 450) does not establish a direct network connection with a relying party, but instead uses a separate computer (sometimes referred to herein as a "host") to "sync" with the relying party. The host retrieves all verification responses collected from the device and transfers them to the relying party. In addition, the host may also copy a list of revoked Uauth keys to the device to ensure that no revoked keys are used in the verification responses.
在一个实施例中,装置(诸如交易装置450)向客户端发送随机值(例如,随机数),然后客户端以加密方式添加该随机值,作为对验证响应的扩展(在对该验证响应进行签名之前)。该已签名随机值用来证明装置的新鲜度。In one embodiment, a device (such as transaction device 450) sends a random value (e.g., a nonce) to the client, which then cryptographically adds the random value as an extension to the verification response (before signing the verification response). The signed random value is used to prove the freshness of the device.
在一个实施例中,客户端的验证器添加当前时间Ta,作为对验证响应的扩展(在对该验证响应进行签名之前)。所述装置/交易装置可将该时间与当前时间Td进行比较,只在Ta与Td之间的差值可接受时(例如,在该差值小于两分钟(abs(Td-Ta)<2min)的情况下)接受该响应。In one embodiment, the client's authenticator adds the current time, Ta, as an extension to the authentication response (before signing the authentication response). The device/transaction device can compare this time with the current time, Td, and only accept the response if the difference between Ta and Td is acceptable (e.g., if the difference is less than two minutes (abs(Td-Ta)<2min)).
在一个实施例中,依赖方向可缓存请求添加已验证的(即,已签名的)截止时间。如上所述,所述装置/交易装置只有在截止时间之前接收到所述响应时,才会接受该响应并将其视作有效的。In one embodiment, the relying party adds a verified (ie, signed) expiration time to the cacheable request. As described above, the device/transaction device will only accept the response and regard it as valid if it receives the response before the expiration time.
在一个实施例中,依赖方向可缓存请求添加已验证的(即,已签名的)数据块(例如,上文提及的“已签名令牌结构”),该数据块包括额外信息,诸如(但不限于)公共密钥、截止时间、最大交易值(例如,安全断言标记语言(SAML)断言、OAuth令牌、JSON Web签名(JWS)对象等)。所述装置/交易装置只有在已签名的数据块能够被核验为有效并且内容可接受的情况下,才可接受该响应并将其视作有效的。In one embodiment, the relying party adds a validated (i.e., signed) data block (e.g., the "signed token structure" mentioned above) to the cacheable request, which includes additional information such as (but not limited to) a public key, an expiration time, a maximum transaction value (e.g., a Security Assertion Markup Language (SAML) assertion, an OAuth token, a JSON Web Signature (JWS) object, etc.). The device/transaction device may only accept the response and consider it valid if the signed data block can be verified as valid and the content is acceptable.
在一个实施例中,依赖方只将未签名令牌添加到可缓存验证请求,但交易装置在交易时具有与依赖方的在线连接。交易装置在交易时使用与依赖方的在线连接来核验未签名令牌的真实性。In one embodiment, the relying party only adds the unsigned token to the cacheable verification request, but the transaction device has an online connection with the relying party at the time of the transaction. The transaction device uses the online connection with the relying party to verify the authenticity of the unsigned token at the time of the transaction.
图9示出了根据本发明的一个实施例的示例性“离线”和“半离线”验证场景。在该实施例中,拥有计算装置910的用户已经与依赖方930建立关系,并且可向依赖方验证。然而,在一些情况下,用户想要与已经与依赖方930建立关系、但未必已经与用户的计算装置910建立关系的装置970执行交易(例如,验证交易确认)。就该实施例而言,如果连接920和连接921在相关时间(例如,用户的计算装置910向装置970验证的时间,或者用户的计算装置910与装置970之间进行交易的时间)不存在或不稳定,则该交易被称为“全离线”。就该实施例而言,如果用户的计算装置910与依赖方930之间的连接920不稳定,但装置970与依赖方930之间的连接921是稳定的,则该交易被称为“半离线”。需注意,在该实施例中,要求用户的计算装置910与装置970之间的连接922在相关时间是稳定的。还期望验证器连接到用户的计算装置910。连接922可使用任何类型的通信信道/协议来实施,包括但不限于:蓝牙、蓝牙低功耗(BTLE)、近场通信(NFC)、Wifi、全球移动通信系统(GSM)、通用移动通信系统(UTMS)、长期演进(LTE)(例如,4G LTE)与TCP/IP。Figure 9 illustrates exemplary "offline" and "semi-offline" authentication scenarios according to one embodiment of the present invention. In this embodiment, a user with computing device 910 has already established a relationship with relying party 930 and can authenticate with it. However, in some cases, the user wishes to perform a transaction (e.g., verify a transaction confirmation) with device 970, which has already established a relationship with relying party 930 but not necessarily with the user's computing device 910. For purposes of this embodiment, if connection 920 and connection 921 are not present or unstable at the relevant time (e.g., when the user's computing device 910 authenticates with device 970, or when the transaction is conducted between the user's computing device 910 and device 970), the transaction is considered "fully offline." For purposes of this embodiment, if connection 920 between the user's computing device 910 and relying party 930 is unstable, but connection 921 between device 970 and relying party 930 is stable, the transaction is considered "semi-offline." Note that in this embodiment, connection 922 between the user's computing device 910 and device 970 is required to be stable at the relevant time. It is also desirable for the authenticator to be connected to the user's computing device 910. The connection 922 may be implemented using any type of communication channel/protocol, including but not limited to: Bluetooth, Bluetooth Low Energy (BTLE), Near Field Communication (NFC), Wi-Fi, Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UTMS), Long Term Evolution (LTE) (e.g., 4G LTE), and TCP/IP.
示例性数据处理装置Exemplary data processing apparatus
图10是示出可在本发明的一些实施例中使用的示例性客户端和服务器的框图。应当理解,尽管图10示出计算机系统的各种组件,但其并非意图表示互连组件的任何特定架构或方式,因为此类细节与本发明并不密切相关。应当理解,具有更少组件或更多组件的其他计算机系统也可与本发明一起使用。FIG10 is a block diagram illustrating an exemplary client and server that may be used in some embodiments of the present invention. It should be understood that although FIG10 illustrates various components of a computer system, it is not intended to represent any particular architecture or manner of interconnecting components, as such details are not germane to the present invention. It should be understood that other computer systems having fewer or more components may also be used with the present invention.
如图10所示,计算机系统1000,其为一种形式的数据处理系统,包括总线1050,该总线与处理系统1020、电源1025、存储器1030和非易失性存储器1040(例如,硬盘驱动器、快闪存储器、相变存储器(PCM)等)耦接。总线1050可通过如本领域中熟知的各种桥接器、控制器和/或适配器来彼此连接。处理系统1020可从存储器1030和/或非易失性存储器1040检索指令,并执行这些指令以执行如上所述的操作。总线1050将以上组件互连在一起,并且还将那些组件互连到可选底座1060、显示控制器与显示装置1070、输入/输出装置1080(例如,NIC(网络接口卡)、光标控件(例如,鼠标、触摸屏、触摸板等)、键盘等)和可选无线收发器1090(例如,蓝牙、WiFi、红外等)。As shown in Figure 10, computer system 1000, which is a form of data processing system, includes a bus 1050 that is coupled to a processing system 1020, a power supply 1025, a memory 1030, and a non-volatile memory 1040 (e.g., a hard drive, flash memory, phase change memory (PCM), etc.). The bus 1050 can be connected to each other through various bridges, controllers, and/or adapters as are well known in the art. The processing system 1020 can retrieve instructions from the memory 1030 and/or the non-volatile memory 1040 and execute these instructions to perform the operations described above. The bus 1050 interconnects the above components and also interconnects those components to an optional base 1060, a display controller and display device 1070, an input/output device 1080 (e.g., a NIC (network interface card), a cursor control (e.g., a mouse, touch screen, touchpad, etc.), a keyboard, etc.), and an optional wireless transceiver 1090 (e.g., Bluetooth, WiFi, infrared, etc.).
图11是示出可在本发明的一些实施例中使用的示例性数据处理系统的框图。例如,数据处理系统190可为手持式计算机、个人数字助理(PDA)、移动电话、便携式游戏系统、便携式媒体播放器、平板计算机或手持式计算装置(其可包括移动电话、媒体播放器和/或游戏系统)。又如,数据处理系统1100可为网络计算机或在另一个装置内的嵌入式处理装置。Figure 11 is a block diagram illustrating an exemplary data processing system that may be used in some embodiments of the present invention. For example, data processing system 190 may be a handheld computer, a personal digital assistant (PDA), a mobile phone, a portable gaming system, a portable media player, a tablet computer, or a handheld computing device (which may include a mobile phone, a media player, and/or a gaming system). For another example, data processing system 1100 may be a network computer or an embedded processing device within another device.
根据本发明的一个实施例,数据处理系统1100的示例性架构可用于上文所述的移动装置。数据处理系统1100包括处理系统1120,其可包括一个或多个微处理器和/或集成电路上的系统。处理系统1120与存储器1110、电源1125(其包括一个或多个电池)、音频输入/输出1140、显示控制器与显示装置1160、可选输入/输出1150、输入装置1170和无线收发器1130耦接。应当理解,在本发明的某些实施例中,图11中未示出的其他组件也可为数据处理系统1100的一部分,并且在本发明的某些实施例中,可使用比图11所示更少的组件。另外,应当理解,图11中未示出的一个或多个总线可用于使如本领域中熟知的各种组件互连。According to one embodiment of the present invention, an exemplary architecture of a data processing system 1100 can be used for the mobile device described above. The data processing system 1100 includes a processing system 1120, which may include one or more microprocessors and/or systems on integrated circuits. The processing system 1120 is coupled to a memory 1110, a power supply 1125 (which includes one or more batteries), an audio input/output 1140, a display controller and a display device 1160, an optional input/output 1150, an input device 1170, and a wireless transceiver 1130. It should be understood that in certain embodiments of the present invention, other components not shown in Figure 11 may also be part of the data processing system 1100, and in certain embodiments of the present invention, fewer components than shown in Figure 11 may be used. In addition, it should be understood that one or more buses not shown in Figure 11 can be used to interconnect various components as is known in the art.
存储器1110可存储数据和/或程序以供数据处理系统1100执行。音频输入/输出1140可包括麦克风和/或扬声器以(例如)播放音乐,以及/或者通过扬声器和麦克风提供电话功能。显示控制器与显示装置1160可包括图形用户界面(GUI)。无线(例如,RF)收发器1130(例如,WiFi收发器、红外收发器、蓝牙收发器、无线蜂窝电话收发器等)可用于与其他数据处理系统通信。所述一个或多个输入装置1170允许用户向系统提供输入。这些输入装置可为小键盘、键盘、触控面板、多点触控面板等。可选的其他输入/输出1150可为底座的连接器。Memory 1110 can store data and/or programs for execution by data processing system 1100. Audio input/output 1140 can include a microphone and/or speaker to (for example) play music, and/or provide telephone functionality through the speaker and microphone. Display controller and display device 1160 can include a graphical user interface (GUI). Wireless (e.g., RF) transceiver 1130 (e.g., WiFi transceiver, infrared transceiver, Bluetooth transceiver, wireless cellular phone transceiver, etc.) can be used to communicate with other data processing systems. The one or more input devices 1170 allow a user to provide input to the system. These input devices can be a keypad, keyboard, touch panel, multi-touch panel, etc. Optional other input/output 1150 can be a connector for the base.
本发明的实施例可包括如上文陈述的各种步骤。这些步骤可体现为致使通用处理器或专用处理器执行某些步骤的机器可执行指令。或者,这些步骤可由包含用于执行这些步骤的硬连线逻辑的特定硬件组件执行,或由编程的计算机组件和定制硬件组件的任何组合执行。Embodiments of the present invention may include the various steps set forth above. These steps may be embodied as machine-executable instructions that cause a general-purpose processor or a special-purpose processor to perform certain steps. Alternatively, these steps may be performed by specific hardware components that contain hard-wired logic for performing these steps, or by any combination of programmed computer components and custom hardware components.
本发明的元件还可被提供为用于存储机器可执行程序代码的机器可读介质。机器可读介质可包括但不限于软盘、光盘、CD-ROM和磁光盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡、或者适合于存储电子程序代码的其他类型的介质/机器可读介质。Element of the present invention can also be provided as machine-readable medium for storing machine executable program code.Machine-readable medium can include but is not limited to floppy disk, optical disk, CD-ROM and magneto-optical disk, ROM, RAM, EPROM, EEPROM, magnetic card or optical card or other types of medium/machine-readable medium that are suitable for storing electronic program code.
在整个前述描述中,出于解释的目的,陈述了许多特定细节以便透彻理解本发明。然而,本领域的技术人员将容易明白,可在没有这些特定细节中的一些的情况下实践本发明。例如,本领域的技术人员将容易明白,本文所述的功能模块和方法可被实施为软件、硬件或其任何组合。此外,虽然本文在移动计算环境的情形内描述本发明的一些实施例,但本发明的基本原理不限于移动计算具体实施。在一些实施例中,可使用几乎任何类型的客户端或对等数据处理装置,包括(例如)台式计算机或工作站计算机。因此,应依据所附权利要求书确定本发明的范围和精神。Throughout the foregoing description, for the purpose of explanation, many specific details have been set forth in order to provide a thorough understanding of the present invention. However, it will be readily apparent to those skilled in the art that the present invention may be practiced without some of these specific details. For example, it will be readily apparent to those skilled in the art that the functional modules and methods described herein may be implemented as software, hardware, or any combination thereof. Furthermore, although some embodiments of the present invention are described herein in the context of a mobile computing environment, the underlying principles of the present invention are not limited to mobile computing implementations. In some embodiments, virtually any type of client or peer data processing device may be used, including, for example, a desktop computer or a workstation computer. Therefore, the scope and spirit of the present invention should be determined based on the appended claims.
本发明的实施例可包括如上文陈述的各种步骤。这些步骤可体现为致使通用处理器或专用处理器执行某些步骤的机器可执行指令。或者,这些步骤可由包含用于执行这些步骤的硬连线逻辑的特定硬件组件执行,或由编程的计算机组件和定制硬件组件的任何组合执行。Embodiments of the present invention may include the various steps set forth above. These steps may be embodied as machine-executable instructions that cause a general-purpose processor or a special-purpose processor to perform certain steps. Alternatively, these steps may be performed by specific hardware components that contain hard-wired logic for performing these steps, or by any combination of programmed computer components and custom hardware components.
Claims (15)
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/448,641 | 2014-07-31 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1236268A1 HK1236268A1 (en) | 2018-03-23 |
| HK1236268B true HK1236268B (en) | 2021-04-30 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN106575416B (en) | System and method for authenticating a client to a device | |
| JP7798572B2 (en) | Systems and methods for efficient challenge-response authentication | |
| CN113302894B (en) | Secure account access | |
| CN106464673B (en) | Enhanced security for authenticating device registration | |
| KR102382474B1 (en) | System and method for establishing trust using secure transmission protocols | |
| CN104969528B (en) | Query system and method for determining authentication functionality | |
| KR102439782B1 (en) | Systems and methods for implementing hosted authentication services | |
| KR102905264B1 (en) | Systems and methods for protection against malware code injection | |
| HK40064425A (en) | System and method for efficient challenge-response authentication | |
| HK1236268B (en) | System and method for authenticating a client to a device | |
| HK1236268A1 (en) | System and method for authenticating a client to a device | |
| HK40081382A (en) | System and method for protection against malicious program code injection | |
| HK1234909A1 (en) | Enhanced security for registration of authentication devices | |
| HK1234909B (en) | Enhanced security for registration of authentication devices | |
| HK1237157A1 (en) | System and method for establishing trust using secure transmission protocols | |
| HK1237157B (en) | System and method for establishing trust using secure transmission protocols | |
| HK1236637B (en) | System and method for implementing a hosted authentication service | |
| HK1236637A1 (en) | System and method for implementing a hosted authentication service |