[go: up one dir, main page]

HK1237157B - System and method for establishing trust using secure transmission protocols - Google Patents

System and method for establishing trust using secure transmission protocols Download PDF

Info

Publication number
HK1237157B
HK1237157B HK17111044.4A HK17111044A HK1237157B HK 1237157 B HK1237157 B HK 1237157B HK 17111044 A HK17111044 A HK 17111044A HK 1237157 B HK1237157 B HK 1237157B
Authority
HK
Hong Kong
Prior art keywords
authentication
verification
client
key
relying party
Prior art date
Application number
HK17111044.4A
Other languages
Chinese (zh)
Other versions
HK1237157A1 (en
Inventor
W‧J‧布兰克
Original Assignee
诺克诺克实验公司
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 诺克诺克实验公司 filed Critical 诺克诺克实验公司
Publication of HK1237157A1 publication Critical patent/HK1237157A1/en
Publication of HK1237157B publication Critical patent/HK1237157B/en

Links

Description

使用安全传输协议建立信任的系统和方法System and method for establishing trust using a secure transmission protocol

背景技术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 establishing trust using a secure transmission protocol.

相关领域说明Description of related fields

还已经设计了使用生物计量传感器经由网络提供安全用户验证的系统。在此类系统中,可经由网络发送由验证器生成的得分和/或其他验证数据,以向远程服务器验证用户。例如,专利申请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 and/or other authentication data generated by an authenticator can be sent over the 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申请中所描述的验证框架的多种改进。这些改进中的一些在以下一组美国专利申请(“共同未决的申请”)中描述,这些美国专利申请都被转让给本受让人:序列号13/730,761,名称为“Query System and Method to DetermineAuthentication Capabilities”(用于确定验证功能的查询系统和方法);序列号13/730,776,名称为“System and Method for Efficiently Enrolling,Registering,andAuthenticating With Multiple Authentication Devices”(使用多个验证装置有效地进行登记、注册和验证的系统和方法);序列号13/730,780,名称为“System and Method forProcessing Random Challenges Within an Authentication Framework”(用于在验证框架内处理随机质询的系统和方法);序列号13/730,791,名称为“System and Method forImplementing Privacy Classes Within an Authentication Framework”(用于在验证框架内实施隐私类别的系统和方法);序列号13/730,795,名称为“System and Method forImplementing Transaction Signaling Within an Authentication Framework”(用于在验证框架内实施交易信令的系统和方法);以及序列号14/218,504,名称为“AdvancedAuthentication Techniques and Applications”(高级验证技术和应用)(下文中称为“‘504申请”)。The assignee of the present application has developed various improvements to the authentication framework described in the '801 application. ,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”; and Serial No. 13/730,795 entitled “System and Method for Implementing Privacy Classes Within an Authentication Framework.” Transaction Signaling Within an Authentication Framework; and Serial No. 14/218,504, entitled “Advanced Authentication Techniques and Applications” (hereinafter referred to as the “‘504 Application”).

简而言之,在这些共同未决的申请描述的验证技术中,用户向客户端装置上的验证装置(或验证器)诸如生物计量装置(例如,指纹传感器)登记。当用户向生物计量装置登记时,(例如,通过轻扫手指、拍摄照片、记录语音等)捕捉生物计量参考数据。用户可随后经由网络向一个或多个服务器(例如,配备有安全交易服务的网站或其他依赖方,如共同待决的申请中所述)注册验证装置;并且随后使用在注册过程中交换的数据(例如,预置到验证装置中的密钥)向那些服务器验证。一旦通过验证,用户便获许与网站或其他依赖方执行一个或多个在线交易。在共同未决的申请所描述的框架中,敏感信息(诸如指纹数据和可用于唯一地标识用户的其他数据)可本地保持在用户的验证装置上,以保护用户的隐私。‘504申请描述了多种额外的技术,包括以下技术:设计复合验证器、智能地生成验证保证等级、使用非侵入式用户核验、将验证数据传送到新的验证装置、用客户端风险数据扩充验证数据、自适应地应用验证策略,以及创建信任圈等等。In short, in the authentication technology described in these co-pending applications, a user registers with an authentication device (or authenticator) on a client device, such as a biometric device (e.g., a fingerprint sensor). When a user registers with the biometric device, biometric reference data is captured (e.g., by swiping a finger, taking a photo, recording a voice, etc.). The user can then register the authentication device with one or more servers (e.g., websites or other relying parties equipped with secure transaction services, as described in the co-pending applications) via a network; and then authenticate with those servers using the data exchanged during the registration process (e.g., a key pre-set to the authentication 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 authentication device to protect the user's privacy. The '504 application describes a variety of additional techniques, including those for designing composite authenticators, intelligently generating authentication assurance levels, employing non-intrusive user verification, transmitting authentication data to new authentication devices, augmenting authentication data with client-side risk data, adaptively applying authentication policies, and creating circles of trust.

附图说明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:

图1A至图1B示出了安全验证系统架构的两个不同实施例;1A-1B illustrate two different embodiments of a security verification system architecture;

图2是示出了可如何将密钥注册到验证装置中的交易图;FIG2 is a transaction diagram illustrating how a key may be registered into an authentication device;

图3示出了显示远程验证的交易图;Figure 3 shows a transaction graph showing remote verification;

图4示出了向依赖方进行的验证可能如何使用依赖方应用程序;Figure 4 shows how authentication to a relying party might use a relying party application;

图5示出了用于通过使用安全通信协议建立信任来进行验证的系统的一个实施例;FIG5 illustrates one embodiment of a system for authentication using a secure communication protocol to establish trust;

图6示出了用于通过使用安全通信协议建立信任来进行验证的方法的一个实施例;FIG6 illustrates one embodiment of a method for authentication using a secure communication protocol to establish trust;

图7示出了用于实施本文所述的客户端和/或服务器的示例性数据处理架构;以及FIG. 7 illustrates an exemplary data processing architecture for implementing the clients and/or servers described herein; and

图8示出了用于实施本文所述的客户端和/或服务器的另一个示例性数据处理架构;FIG8 illustrates another exemplary data processing architecture for implementing the clients and/or servers described herein;

具体实施方式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输入)的验证装置。这些装置在本文中有时称为“令牌”、“验证装置”或“验证器”。尽管某些实施例注重于面部识别硬件/软件(例如,用于识别用户面部并且跟踪用户的眼球运动的相机和相关联软件),但有些实施例可利用额外的生物计量装置,包括(例如)指纹传感器、声音识别硬件/软件(例如,用于识别用户声音的麦克风和相关联软件)以及光学识别能力(例如,用于扫描用户视网膜的光学扫描器和相关联软件)。用户验证功能还可包括非生物计量形式,如PIN输入。验证器可使用装置,如可信平台模块(TPM)、智能卡和安全元件,来进行密码操作与密钥存储。The embodiments of the present invention discussed below relate to authentication devices with user verification capabilities (such as biometric forms or PIN entry). These devices are sometimes referred to herein as "tokens," "authentication devices," or "authenticators." Although 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). User authentication capabilities may also include non-biometric forms, such as PIN entry. Authenticators may use devices such as Trusted Platform Modules (TPMs), smart cards, and secure elements to perform cryptographic operations and key storage.

在移动式生物计量的具体实施中,生物计量装置可远程于依赖方。如本文所用,术语“远程”意味着生物计量传感器不是其以通信方式耦接到的计算机的安全边界的一部分(例如,生物计量传感器未嵌入到与依赖方计算机相同的物理外壳中)。举例来说,生物计量装置可经由网络(例如,因特网、无线网络链路等)或经由外围输入(诸如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 authorized by the relying party (e.g., a device that provides an acceptable level of authentication strength and integrity protection) and/or whether a hacker has compromised or even replaced the biometric device. The confidence level of the biometric device depends on the specific implementation of the device.

本文中使用的术语“本地”指的是用户正亲自在特定位置处(诸如在自动取款机(ATM)或销售点(POS)零售结账处)进行交易的事实。然而,如下文所论述,用于验证用户的验证技术可能涉及非位置组件,诸如经由网络与远程服务器和/或其他数据处理装置的通信。此外,尽管本文中描述了特定实施例(诸如ATM和零售点),但应该指出的是,可在由最终用户在其内本地发起交易的任何系统的环境中实施本发明的基本原理。As used herein, the term "local" refers to the fact that a user is conducting a transaction in person at a specific location, such as at an automated teller machine (ATM) or a point-of-sale (POS) retail checkout. However, as discussed below, the authentication techniques used to authenticate a user 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 (such as ATMs and retail points of sale) are described herein, it should be noted that the underlying principles of the present invention may be implemented in the context of any system in which a transaction is initiated locally 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 (sometimes referred to as implemented on behalf of that entity, which entity can perform the underlying authentication techniques described herein). The secure transaction server 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.

示例性系统架构和交易Exemplary System Architecture and Transactions

图1A和图1B示出了包括用于注册验证装置和验证用户的客户端侧组件和服务器侧组件的系统架构的两个实施例。图1A所示的实施例使用基于web浏览器插件的架构来与网站通信,而图1B所示的实施例不需要web浏览器。本文所述的各种技术诸如向验证装置登记用户、向安全服务器注册验证装置和核验用户可在这些系统构架中的任一者上实施。因此,虽然图1A所示的架构用于展示下述若干实施例的操作,但相同的基本原理可在图1B所示的系统上容易地实施(例如,通过删除浏览器插件105,该浏览器插件充当用于在服务器130与客户端上的安全交易服务101之间通信的中介)。Figures 1A and 1B show two embodiments of a system architecture including client-side components and server-side components for registering verification devices and verifying users. The embodiment shown in Figure 1A uses an architecture based on a web browser plug-in to communicate with a website, while the embodiment shown in Figure 1B does not require a web browser. Various technologies described herein, such as registering a user with a verification device, registering a verification device with a secure server, and verifying a user, can be implemented on any of these system architectures. Therefore, although the architecture shown in Figure 1A is used to demonstrate the operation of several embodiments described below, the same basic principles can be easily implemented on the system shown in Figure 1B (for example, by deleting the browser plug-in 105, which acts as an intermediary for communicating between the server 130 and the secure transaction service 101 on the client).

首先转到图1A,所示实施例包括配备有一个或多个用于登记和核验最终用户的验证装置110至112(这些验证装置在本领域中有时称为验证“令牌”或“验证器”)的客户端100。如上所述,验证装置110至112可包括生物计量装置,诸如指纹传感器、声音识别硬件/软件(例如,用于识别用户声音的麦克风和相关联软件)、面部识别硬件/软件(例如,用于识别用户面部的相机和相关联软件)和光学识别功能(例如,用于扫描用户视网膜的光学扫描器和相关联软件),并且支持非生物计量形式(诸如PIN核验)。验证装置可使用可信平台模块(TPM)、智能卡或安全元件用于密码操作以及密钥存储。Turning first to FIG1A , the illustrated embodiment includes a client 100 equipped with one or more authentication devices 110 to 112 (these authentication devices are sometimes referred to in the art as authentication “tokens” or “authenticators”) for enrolling and verifying end users. As described above, the authentication devices 110 to 112 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), and support non-biometric modalities (such as PIN verification). The authentication device may use a Trusted Platform Module (TPM), a smart card, or a secure element for cryptographic operations and key storage.

验证装置110至112通过由安全交易服务101暴露的接口102(例如,应用程序编程接口或API)以通信方式耦接到客户端。安全交易服务101是用于经由网络与一个或多个安全交易服务器132至133通信以及用于与在web浏览器104的环境内执行的安全交易插件105介接的安全应用程序。如图所示,接口102还可提供对客户端100上的安全存储装置120的安全访问,该安全存储装置存储与每个验证装置110至112相关的信息,诸如装置识别代码、用户识别代码、受验证装置保护的用户登记数据(例如,所扫描的指纹或其他生物计量数据),以及用于执行本文所述安全验证技术的由验证装置包封的密钥。例如,如下文详细论述,唯一密钥可被存储到每个验证装置中并且在经由网络(诸如因特网)与服务器130通信时使用。Authentication devices 110 to 112 are communicatively coupled to the client via an interface 102 (e.g., an application programming interface or API) exposed by a secure transaction service 101. The secure transaction service 101 is a secure application for communicating with one or more secure transaction servers 132 to 133 via a network and for interfacing with a secure transaction plug-in 105 executed within the environment of a web browser 104. As shown, the interface 102 may also provide secure access to a secure storage device 120 on the client 100, which stores information related to each authentication device 110 to 112, such as a device identification code, a user identification code, user registration data protected by the authentication device (e.g., a scanned fingerprint or other biometric data), and a key encapsulated by the authentication device 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 used when communicating with the server 130 via a network (such as the Internet).

如下文论述,安全交易插件105支持某些类型的网络交易,诸如与网站131或其他服务器的HTTP或HTTPS交易。在一个实施例中,响应于由安全企业或Web目的地130内的网络服务器131(下文中有时简称为“服务器130”)插入到网页HTML代码中的特定HTML标签来启动安全交易插件。响应于检测到此类标签,安全交易插件105可将交易转发到安全交易服务101以进行处理。另外,对于某些类型的交易(例如,安全密钥交换),安全交易服务101可开启与当地交易服务器132(即,与网站位于同一地点)或异地交易服务器133的直接通信信道。As discussed below, secure transaction plugin 105 supports certain types of network transactions, such as HTTP or HTTPS transactions with a website 131 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 131 (hereinafter sometimes referred to as "server 130") within a secure enterprise or web destination 130. In response to detecting such a tag, secure transaction plugin 105 may forward the transaction to secure transaction service 101 for processing. In addition, for certain types of transactions (e.g., secure key exchange), secure transaction service 101 may open a direct communication channel with a local transaction server 132 (i.e., co-located with the website) or an off-site transaction server 133.

安全交易服务器132至133耦接到安全交易数据库120,安全交易数据库120用于存储用户数据、验证装置数据、密钥以及支持下文所述的安全验证交易所需要的其他安全信息。然而,应该指出的是,本发明的基本原理不需要分离图1A所示的安全企业或web目的地130内的逻辑组件。例如,网站131和安全交易服务器132至133可在单个物理服务器或分开的多个物理服务器内实施。此外,网站131和交易服务器132至133可在用于执行下文所述的功能的一个或多个服务器上所执行的集成软件模块内实施。Secure transaction servers 132-133 are coupled to secure transaction database 120, which is used 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 130 shown in FIG1A . For example, website 131 and secure transaction servers 132-133 may be implemented within a single physical server or multiple separate physical servers. Furthermore, website 131 and transaction servers 132-133 may be implemented within integrated software modules executed on one or more servers for performing the functions described below.

如上所述,本发明的基本原理不限于图1A所示的基于浏览器的架构。图1B示出替代性具体实施,其中独立应用程序154利用由安全交易服务101提供的功能来经由网络验证用户。在一个实施例中,应用程序154被设计为建立与一个或多个网络服务151的通信会话,这些网络服务依赖于安全交易服务器132至133来执行下文详细描述的用户/客户端验证技术。As mentioned above, the underlying principles of the present invention are not limited to the browser-based architecture shown in FIG1A . FIG1B illustrates an alternative implementation in which a standalone application 154 utilizes functionality provided by secure transaction service 101 to authenticate users via the network. In one embodiment, application 154 is designed to establish a communication session with one or more network services 151, which rely on secure transaction servers 132-133 to perform the user/client authentication techniques described in detail below.

在图1A和图1B所示的任一个实施例中,安全交易服务器132至133可生成密钥,这些密钥接着被安全地传输到安全交易服务101并存储到安全存储装置120内的验证装置中。另外,安全交易服务器132至133管理服务器端上的安全交易数据库120。In either embodiment shown in Figures 1A and 1B, the secure transaction servers 132-133 may generate keys that are then securely transmitted to the secure transaction service 101 and stored in a verification device within the secure storage device 120. In addition, the secure transaction servers 132-133 manage the secure transaction database 120 on the server side.

与远程注册验证装置并向依赖方进行验证相关的某些基本原理将结合图2至图5进行描述,然后详细介绍使用安全通信协议建立信任的本发明实施例。Certain basic principles related to remote registration of an authentication device and authentication of a relying party will be described in conjunction with Figures 2 to 5, followed by a detailed description of an embodiment of the present invention for establishing trust using a secure communication protocol.

图2示出了用于在客户端(例如,图1A至图1B中的客户端100上的装置110-112)上注册验证装置的一系列交易。为了简单起见,安全交易服务101和接口102被组合在一起作为验证客户端201,包括安全交易服务器132至133的安全企业或Web目的地130被表示为依赖方202。FIG2 illustrates a series of transactions for registering an authentication device on a client (e.g., devices 110-112 on client 100 in FIG1A-1B ). For simplicity, secure transaction service 101 and interface 102 are grouped together as authentication client 201, and secure enterprise or web destination 130, including secure transaction servers 132-133, is represented as relying party 202.

在注册验证器(例如,指纹验证器、语音验证器等)期间,在验证客户端201和依赖方202之间共享与验证器相关联的密钥。回顾图1A至图1B,密钥存储在客户端100的安全存储装置120和由安全交易服务器132至133使用的安全交易数据库120内。在一个实施例中,密钥是由安全交易服务器132至133中的一个生成的对称密钥。然而,在下文论述的另一个实施例中,使用了不对称密钥。在该实施例中,可以由安全交易服务器132至133生成公共/私有密钥对。公共密钥然后可由安全交易服务器132至133存储,并且相关私有密钥可存储在客户端上的安全存储装置120中。在一个另选的实施例中,密钥可在客户端100上生成(例如,由验证装置或验证装置接口而不是安全交易服务器132至133生成)。本发明的基本原理不限于任何特定类型的密钥或生成密钥的方式。During registration of an authenticator (e.g., a fingerprint authenticator, a voice authenticator, etc.), a key associated with the authenticator is shared between the authenticating client 201 and the relying party 202. Referring back to Figures 1A-1B, the key is stored in the secure storage 120 of the client 100 and in the secure transaction database 120 used by the secure transaction servers 132-133. In one embodiment, the key is a symmetric key generated by one of the secure transaction servers 132-133. However, in another embodiment discussed below, an asymmetric key is used. In this embodiment, a public/private key pair can be generated by the secure transaction server 132-133. The public key can then be stored by the secure transaction server 132-133, and the associated private key can be stored in the secure storage 120 on the client. In an alternative embodiment, the key can be generated on the client 100 (e.g., by the authenticating device or authenticating device interface rather than by the secure transaction server 132-133). 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)。然而,本发明的基本原理不限于任何特定密钥预置协议。在一个特定实施例中,客户端生成公共/私有密钥对并向服务器发送公共密钥,可以利用证实密钥证实它们。In one embodiment, a secure key provisioning protocol is employed to share keys with the client over a secure communication channel. An example of a key provisioning protocol is the Dynamic Symmetric Key Provisioning Protocol (DSKPP) (e.g., see Request for Comments (RFC) 6063). However, the underlying principles of the present invention are not limited to any particular key provisioning protocol. In a specific embodiment, the client generates a public/private key pair and sends the public key to the server, which can be verified using a verification key.

转到图2所示的具体细节,要启动注册流程,依赖方202生成随机生成的质询(例如,密码随机数),验证客户端201必须在装置注册期间呈现此质询。该随机质询可在有限时间段内有效。作为响应,验证客户端201发起与依赖方202的带外安全连接(例如,带外交易),并使用密钥预置协议(例如,上文提到的DSKPP协议)与依赖方202通信。为了发起安全连接,验证客户端201可以向依赖方202返回随机质询(可能带有在随机质询上生成的签名)。此外,验证客户端201可以传输用户的身份(例如,用户ID或其他代码)和待注册的验证装置的身份(例如,使用唯一地识别所注册的验证装置的类型的验证证实ID(AAID))。Turning to the specific details shown in Figure 2, to initiate the registration process, relying party 202 generates a randomly generated challenge (e.g., a cryptographic random number), which verification client 201 must present during device registration. This random challenge may be valid for a limited time period. In response, verification client 201 initiates an out-of-band secure connection (e.g., an out-of-band transaction) with relying party 202 and communicates with relying party 202 using a key provisioning protocol (e.g., the DSKPP protocol mentioned above). To initiate the secure connection, verification client 201 can return the random challenge to relying party 202 (possibly with a signature generated on the random challenge). In addition, verification client 201 can transmit the identity of the user (e.g., a user ID or other code) and the identity of the verification device to be registered (e.g., using an authentication confirmation ID (AAID) that uniquely identifies the type of verification device being registered).

该依赖方利用用户名或ID代码(例如,在用户账户数据库中)定位用户,(例如,使用签名或简单地比较随机质询与发送过的质询)证实随机质询,证实验证装置的验证代码(如果发送了验证代码(例如,AAID)),并在安全交易数据库(例如,图1A至图1B中的数据库120)中为用户和验证装置创建新条目。在一个实施例中,依赖方维护其接受验证的验证装置的数据库。它可以通过AAID(或其他验证装置代码)查询此数据库,以确定所注册的验证装置是否是验证可接受的。如果是,那么它将继续进行注册过程。The relying party locates the user using the username or ID code (e.g., in a user account database), verifies the random challenge (e.g., using a signature or simply comparing the random challenge to the challenge sent), verifies the verification code of the authentication device (if a verification code (e.g., AAID) was sent), and creates a new entry for the user and authentication device in a secure transaction database (e.g., database 120 in Figures 1A-1B). In one embodiment, the relying party maintains a database of authentication devices that it accepts for authentication. It can query this database by AAID (or other authentication device code) to determine whether the registered authentication device is acceptable for authentication. If so, it will continue with the registration process.

在一个实施例中,依赖方202为注册的每个验证装置生成验证密钥。它向安全数据库写入密钥,并利用密钥预置协议向验证客户端201发回密钥。一旦完成,验证装置与依赖方202便在使用对称密钥的情况下共享相同密钥,或者在使用不对称密钥的情况下共享不同密钥。例如,如果使用不对称密钥,那么依赖方202可以存储公共密钥并向验证客户端201提供私有密钥。在从依赖方202接收私有密钥时,验证客户端201向验证装置中预置密钥(在与验证装置相关联的安全存储装置之内存储密钥)。然后它可以在验证用户期间使用该密钥(如下所述)。在一个另选的实施例中,密钥由验证客户端201生成并使用密钥预置协议向依赖方202提供密钥。在任一种情况下,一旦完成预置,验证客户端201和依赖方202均具有密钥,且验证客户端201通知依赖方已完成。In one embodiment, relying party 202 generates a verification key for each verification device registered. It writes a key to a secure database and utilizes a key presetting protocol to send a key back to verification client 201. Once completed, verification device and relying party 202 share the same key when using a symmetric key, or share different keys when using an asymmetric key. For example, if an asymmetric key is used, relying party 202 can store a public key and provide a private key to verification client 201. When receiving the private key from relying party 202, verification client 201 presets a key (storing the key within the secure storage device associated with the verification device) in the verification device. Then it can use this key (as described below) during verification of the user. In an alternative embodiment, a key is generated by verification client 201 and a key presetting protocol is used to provide a key to relying party 202. In either case, once presetting is completed, verification client 201 and relying party 202 all have a key, and verification client 201 notifies relying party that it has been completed.

图3示出用于向注册的验证装置验证用户的一系列交易。一旦完成装置注册(如图2中所述),依赖方201将接受由客户端上的本地验证装置生成的验证响应(有时称为“令牌”)作为有效的验证响应。Fig. 3 illustrates a series of transactions for verifying a user to a registered verification device. Once device registration (as described in Fig. 2) is complete, relying party 201 will accept the verification response (sometimes referred to as a "token") generated by the local verification device on the client as a valid verification response.

转向图3中所示的具体细节,响应于用户发起与依赖方202的需要验证的交易(例如,发起从依赖方网站进行支付,访问私有用户账户数据等),依赖方202生成包括随机质询(例如,密码随机数)的验证请求。在一个实施例中,随机质询具有与其关联的时间限制(例如,它在指定的一段时间内是有效的)。依赖方还可以标识要由验证客户端201用于验证的验证器。如上文所提及,依赖方可以注册客户端上可用的每个验证装置,并且存储每个注册的验证器的公共密钥。因此,它可以使用验证器的公共密钥或可以使用验证器ID(例如,AAID)来标识要使用的验证器。或者,它可以为客户端提供验证选项的列表,用户可以从该列表进行选择。Turning to the specific details shown in Figure 3, in response to a user initiating a transaction with a relying party 202 that requires verification (e.g., initiating a payment from a relying party website, accessing private user account data, etc.), the relying party 202 generates a verification request including a random challenge (e.g., a cryptographic random number). In one embodiment, the random challenge has a time limit associated with it (e.g., it is valid for a specified period of time). The relying party can also identify the authenticator to be used by the verification client 201 for verification. As mentioned above, the relying party can register each verification device available on the client and store the public key of each registered authenticator. Therefore, it can use the public key of the authenticator or can use the authenticator ID (e.g., AAID) to identify the authenticator to be used. Alternatively, it can provide the client with a list of verification options from which the user can select.

响应于接收到验证请求,可以为用户呈现请求验证的图形用户界面(GUI)(例如,形式为验证应用/应用的网页或GUI)。用户然后进行验证(例如,在指纹读取器上轻扫手指等)。作为响应,验证客户端201生成验证响应,该验证响应包含随机质询上的签名,带有与验证器相关联的私有密钥。它还可以包括其他相关数据,例如,验证响应中的用户ID代码。In response to receiving the verification request, a graphical user interface (GUI) requesting verification may be presented to the user (e.g., in the form of a verification application/webpage or GUI of the application). The user then performs verification (e.g., swiping a finger on a fingerprint reader, etc.). In response, the verification client 201 generates a verification response that includes a signature on the random challenge with a private key associated with the authenticator. It may also include other relevant data, such as a user ID code in the verification response.

在接收验证响应时,依赖方可以证实随机质询上的签名(例如,使用与验证器相关联的公共密钥)并确认用户的身份。一旦完成验证,用户便获许进入与依赖方的安全交易,如图所示。Upon receiving the verification response, the relying party can verify the signature on the random challenge (e.g., using the public key associated with the authenticator) and confirm the user's identity. Once verification is complete, the user is allowed to enter into a secure transaction with the relying party, as shown in the figure.

可以使用安全通信协议,例如传输层安全(TLS)或安全套接字层(SSL)在依赖方201和验证客户端202之间建立用于图2至图3所示的任何或所有交易的安全连接。A secure connection for any or all of the transactions shown in Figures 2-3 may be established between relying party 201 and verifying client 202 using a secure communication protocol, such as Transport Layer Security (TLS) or Secure Sockets Layer (SSL).

使用安全传输协议建立信任的系统和方法System and method for establishing trust using a secure transmission protocol

如上文所提及,在使用远程验证的某些具体实施中,诸如TLS或SSL的安全通信协议可以用于在依赖方与验证客户端之间安全地交换数据。简而言之,TLS和SSL是在通常不安全的通信信道(例如,因特网)上提供安全通信的密码协议。这些协议使用实施非对称密码的X.509证书来交换对称密钥。然后在通信会话期间使用此对称密钥来加密双方之间的数据信道。尽管此详细描述的其余部分将集中于TLS的使用,但是可以使用诸如SSL的其他密码协议来实施本发明的基本原理。As mentioned above, in certain specific implementations using remote authentication, secure communication protocols such as TLS or SSL can be used to securely exchange data between the relying party and the authentication client. In short, TLS and SSL are cryptographic protocols that provide secure communication over typically insecure communication channels (e.g., the Internet). These protocols use X.509 certificates that implement asymmetric cryptography to exchange symmetric keys. This symmetric key is then used to encrypt the data channel between the two parties during the communication session. Although the remainder of this detailed description will focus on the use of TLS, other cryptographic protocols such as SSL can be used to implement the basic principles of the present invention.

在一个实施例中,TLS用于保护依赖方与验证客户端之间的通信信道并验证发送者的身份。也就是说,通过使用X.509证书所支持的非对称密码,一方(例如,验证客户端)能够验证对方(例如,依赖方)的身份,或反之亦然。对方的身份可以体现在代码或名称中,该代码或名称例如识别依赖方(例如,“RPNAME”)或识别验证客户端、或该客户端上用于与依赖方建立通信信道的特定应用程序(例如,“AppID”)。当验证客户端与依赖方之间存在直接信道时(如上文提供的示例中),由于通常通过因特网发送数据并且TLS总是可用的,使用TLS可很好地满足此用途。In one embodiment, TLS is used to protect the communication channel between the relying party and the verification client and to verify the identity of the sender. That is, by using asymmetric cryptography supported by X.509 certificates, one party (e.g., the verification client) can verify the identity of the other party (e.g., the relying party), or vice versa. The identity of the other party can be embodied in a code or name that, for example, identifies the relying party (e.g., "RPNAME") or identifies the verification client, or a specific application on the client that is used to establish a communication channel with the relying party (e.g., "AppID"). When there is a direct channel between the verification client and the relying party (as in the example provided above), since data is typically sent over the Internet and TLS is always available, the use of TLS can well meet this purpose.

然而,在诸如iOSTM、AndroidTM和近场通信(NFC)交易的某些计算装置平台上,此TLS假设不成立。如图4大致所示,在这些平台上,预期第三方代码(例如,依赖方应用程序410)管理依赖方402与验证客户端401之间的所有通信。因此,依赖方应用程序410基本上类似于依赖方402与验证客户端401之间的中间人。此外,验证客户端401没有关于依赖方应用程序410所建立的TLS连接的有效性的信息。它必须仅依赖第三方代码来做出此决定,并使用IPC机制来转交验证请求(如图所示)。这些IPC机制可以访问发送应用程序的识别代码(例如,“集束ID”),但是使用集束ID核验发送者/接收者的身份(例如,RPNAME、AppID)的真实性主要依赖于操作系统、以及对分发依赖方应用程序的应用程序商店所实施的审查过程的关注。However, on certain computing device platforms such as iOS , Android and near field communication (NFC) transactions, this TLS assumption does not hold true. As roughly shown in Figure 4, on these platforms, it is expected that third-party code (e.g., relying party application 410) manages all communications between relying party 402 and verification client 401. Therefore, relying party application 410 is basically similar to a middleman between relying party 402 and verification client 401. In addition, verification client 401 does not have information about the validity of the TLS connection established by relying party application 410. It must only rely on third-party code to make this decision and use IPC mechanisms to forward the verification request (as shown). These IPC mechanisms can access the identification code (e.g., "bundle ID") of the sending application, but the authenticity of the identity (e.g., RPNAME, AppID) of the sender/receiver verified using bundle ID mainly depends on the attention of the operating system and the review process implemented by the application store that distributes the relying party application.

在使用NFC时,情况甚至更糟,因为没有诸如伴随传输机制的集束ID的识别代码。NFC由一般的多用途互联网邮件扩展(MIME)处理程序处理。验证客户端401必须假定声称的任何识别代码(例如,RPNAME)是正确的,并且验证请求来自有效源。When using NFC, the situation is even worse because there is no identification code such as a bundle ID that accompanies the transport mechanism. NFC is handled by a general Multipurpose Internet Mail Extensions (MIME) handler. The authenticating client 401 must assume that any identification code claimed (e.g., RPNAME) is correct and that the authentication request comes from a valid source.

更具体地讲,在iOS装置上,使用多重验证客户端的AppDelegate代码中的openURL()调用的sourceApplication参数来确定正在与验证客户端401通信的应用程序410:-(BOOL)application:(UIApplication*)application openURL:(NSURL*)urlsourceApplication:(NSString*)sourceApplication annotation:(id)annotationMore specifically, on iOS devices, the application 410 that the authentication client 401 is communicating with is determined using the sourceApplication parameter of the openURL() call in the multi-factor authentication client's AppDelegate code: -(BOOL)application:(UIApplication*)application openURL:(NSURL*)urlsourceApplication:(NSString*)sourceApplication annotation:(id)annotation

在此示例中,sourceApplication包含调用应用程序的集束ID。集束ID是调用应用程序的plist清单中的唯一字符串,其识别AppleTM数据库中的应用程序。建议以相反表示法使用公司的基础URL(例如,com.paypal.app)来部分构建集束ID。这样,假定Apple审查此字符串以确保应用程序不试图欺骗其他应用程序。In this example, sourceApplication contains the calling application's bundle ID. The bundle ID is a unique string in the calling application's plist manifest that identifies the application in Apple 's database. It is recommended to partially construct the bundle ID using the company's base URL (e.g., com.paypal.app) in reverse notation. This assumes that Apple reviews this string to ensure that the application is not attempting to deceive other applications.

对于Android装置,首先从系统Binder调用getCallingUid(),以返回分配给依赖方进程的Linux uid,该依赖方进程将当前交易发送到正在处理的多重验证进程,例如:For Android devices, first call getCallingUid() from the system Binder to return the Linux uid assigned to the relying party process that sent the current transaction to the multi-factor authentication process being processed, for example:

int callerUId=Binder.getCallingUid();;int callerUId=Binder.getCallingUid();;

然后,应用程序从系统PackageManager检索与用户ID相关联的包。使用依赖方的基础URL作为组成部分但以相反表示法为包命名(例如,“com.fido.android.sample.app.paypal”)。例如:The application then retrieves the package associated with the user ID from the system PackageManager. The package is named using the relying party's base URL as a component but in reverse notation (for example, "com.fido.android.sample.app.paypal"). For example:

String packageNames[]=mPackageManager.getPackagesForUid(callerUId);;String packageNames[]=mPackageManager.getPackagesForUid(callerUId);;

在使用NFC时,不存在可以映射到对方标识符(例如,RPNAME或AppID)的可信任信息片段。在Android上使用NFC时,请求通过多用途互联网邮件扩展(MIME)处理程序到达,并且不可识别调用者。因此,包含在请求中的任何标识符可以是有效的,也可以不是有效的。When using NFC, there is no trusted piece of information that can be mapped to a peer identifier (for example, RPNAME or AppID). When using NFC on Android, requests arrive through a Multipurpose Internet Mail Extensions (MIME) handler and do not identify the caller. Therefore, any identifier included in the request may or may not be valid.

本发明的一个实施例通过使用可信证书签名验证请求和源标识符来解决这些限制问题。可针对移动装置的根证书存储进行验证的来自web服务器的SSL X.509证书是在一个实施例中采用的一个选项。然而,依赖方的验证服务器可能没有访问该密钥的权限。专门为验证服务器生成新X.509证书是另一个选项,但这意味着管理又一个X.509证书的附加开销。One embodiment of the present invention addresses these limitations by using a trusted certificate to sign the verification request and source identifier. One option employed in one embodiment is an SSL X.509 certificate from a web server that can be verified against the mobile device's root certificate store. However, the relying party's verification server may not have access to the key. Generating a new X.509 certificate specifically for the verification server is another option, but this implies the additional overhead of managing yet another X.509 certificate.

为了避免这些问题,图5所示的本发明的一个实施例使用来自分散式公共密钥基础设施(PKI)的自签名证书来签名来自依赖方502的验证服务器520的验证请求和对应的源标识符(例如,“RPNAME”标识符)。具体地讲,在一个实施例中,自签名证书包括私有密钥522、以及存储在验证服务器520上的公共密钥文件525中的一个或多个公共密钥。不同于X.509证书,这些自签名证书不能被它们自身信任,因为没有将它们连接到根可信证书的链。To avoid these problems, one embodiment of the present invention, shown in Figure 5, uses a self-signed certificate from a decentralized public key infrastructure (PKI) to sign the verification request and corresponding source identifier (e.g., the "RPNAME" identifier) from the verification server 520 of the relying party 502. Specifically, in one embodiment, the self-signed certificate includes a private key 522 and one or more public keys stored in a public key file 525 on the verification server 520. Unlike X.509 certificates, these self-signed certificates cannot be trusted by themselves because there is no chain connecting them to a root trusted certificate.

在一个实施例中,为了建立信任,通过使用可信证书526(例如,用于打开TLS连接的现有X.509可信证书)建立的安全通信信道,将存储在web服务器上的公共密钥文件525中的公共密钥传输到客户端装置500(例如,移动智能电话)上的验证客户端530。使用TLS可确保从正确的所有者获得公共密钥文件525中的易受攻击的自签名公共密钥,因为可以针对根证书存储(如果使用X.509或其他已知标准)核验用于通过因特网从web服务器传输这些密钥的可信证书/密钥526。然后,文件526中的那些自签名公共密钥可以被隐含地信任,并且用于核验包括源标识符(例如,RPNAME)的验证请求523。In one embodiment, to establish trust, public keys stored in a public key file 525 on a web server are transmitted to a verification client 530 on a client device 500 (e.g., a mobile smartphone) via a secure communication channel established using a trusted certificate 526 (e.g., an existing X.509 trusted certificate used to open a TLS connection). Using TLS ensures that the vulnerable self-signed public keys in the public key file 525 are obtained from the correct owner because the trusted certificate/key 526 used to transmit these keys from the web server over the Internet can be verified against a root certificate store (if X.509 or other known standards are used). Those self-signed public keys in the file 526 can then be implicitly trusted and used to verify verification requests 523 that include a source identifier (e.g., RPNAME).

验证服务器520可能以与上文参考图3描述的相同方式和相同情况生成验证请求523。例如,验证服务器520可以生成随机质询并且识别待使用的客户端侧验证器(例如,使用针对验证器注册的公共密钥)。随机质询和验证器ID信息可以封装在验证请求523中。The verification server 520 may generate a verification request 523 in the same manner and under the same circumstances as described above with reference to FIG3. For example, the verification server 520 may generate a random challenge and identify the client-side authenticator to be used (e.g., using a public key registered for the authenticator). The random challenge and authenticator ID information may be encapsulated in the verification request 523.

另外,在一个实施例中,使用分散式PKI的私有密钥522来签名验证请求523。如所提及的,在一个实施例中,私有密钥522对应于文件525中的公共密钥。例如,可以使用公共密钥中的一个来证实私有密钥522所生成的任何签名。Additionally, in one embodiment, the private key 522 of the decentralized PKI is used to sign the verification request 523. As mentioned, in one embodiment, the private key 522 corresponds to the public key in the file 525. For example, any signature generated by the private key 522 can be verified using one of the public keys.

再次,为了建立信任,通过使用可信证书521(例如,用于打开TLS连接的现有X.509可信证书)建立的安全通信信道,将使用验证服务器520上的私有密钥522签名的验证请求523传输到客户端装置500上的依赖方应用程序510。在一个实施例中,可信证书521与可信证书526相同,后者用于与验证客户端530建立TLS信道。然后,使用TLS信道将私有密钥签名的验证请求523连同源标识符(例如,用于识别依赖方的RPNAME)一起传输到依赖方应用程序510。Again, to establish trust, a verification request 523 signed using a private key 522 on the verification server 520 is transmitted to the relying party application 510 on the client device 500 via a secure communication channel established using a trusted certificate 521 (e.g., an existing X.509 trusted certificate used to open a TLS connection). In one embodiment, the trusted certificate 521 is the same as the trusted certificate 526 used to establish the TLS channel with the verification client 530. The private key-signed verification request 523 is then transmitted to the relying party application 510 using the TLS channel along with a source identifier (e.g., an RPNAME used to identify the relying party).

在一个实施例中,依赖方应用程序510提取底层私有密钥签名的验证请求(即,拆解TLS数据),并且将该验证请求提供给客户端装置500上的验证客户端530。依赖方应用程序510可以使用已知的进程间通信(IPC)机制与验证客户端530通信。然而,本发明的基本原理不限于用于在客户端装置500上交换信息的任何特定通信机制。In one embodiment, relying party application 510 extracts the underlying private key-signed verification request (i.e., disassembles the TLS data) and provides the verification request to verification client 530 on client device 500. Relying party application 510 can use known inter-process communication (IPC) mechanisms to communicate with verification client 530. However, the underlying principles of the present invention are not limited to any particular communication mechanism for exchanging information on client device 500.

在接收私有密钥签名的验证请求523时,验证客户端530使用来自公共密钥文件的公共密钥来验证签名。如果签名是有效的,则其接着如上所述生成验证响应。例如,响应于用户的成功验证,其可以使用验证器的私有密钥来生成包括在验证请求523中的随机质询上的签名,并且将所得的验证响应传输到验证服务器520(例如,直接传输或经由依赖方应用程序510传输)。一旦验证服务器520使用对应的公共验证器密钥核验该签名,向依赖方502验证用户并且允许用户完成期望的交易。Upon receiving a private key-signed verification request 523, the verification client 530 verifies the signature using the public key from the public key file. If the signature is valid, it then generates a verification response as described above. For example, in response to a successful verification of the user, it can use the authenticator's private key to generate a signature on the random challenge included in the verification request 523, and transmit the resulting verification response to the verification server 520 (e.g., directly or via the relying party application 510). Once the verification server 520 verifies the signature using the corresponding public authenticator key, it authenticates the user to the relying party 502 and allows the user to complete the desired transaction.

使用本文所述的技术,验证请求523和源标识符(例如,RPNAME)由集中式SSLX.509密钥以加密方式核验,同时仍保持分散式PKI提供的灵活性和极小的管理开销。通过利用包含那些证书的文件位于某个确定的web服务器上的事实,隐含地信任自签证书的有效性具有一定风险。任何能够在web服务器上修改此文件的人都可以更改公共密钥。然而,只要像能够管理X.509证书一样谨慎地保护对文件的访问,通过任一解决方案授予的信任都应当是类似的。Using the techniques described herein, the authentication request 523 and the source identifier (e.g., RPNAME) are cryptographically verified by a centralized SSL X.509 key, while still maintaining the flexibility and minimal management overhead provided by a decentralized PKI. By taking advantage of the fact that the file containing those certificates is located on a specific web server, implicitly trusting the validity of self-signed certificates carries a certain risk. Anyone who can modify this file on the web server can also change the public key. However, as long as access to the file is carefully protected as X.509 certificates can be managed, the trust granted by either solution should be similar.

图6中示出根据本发明的一个实施例的方法。该方法可使用图5所示的架构来实施,但不限于任何具体架构。A method according to one embodiment of the present invention is shown in Figure 6. The method may be implemented using the architecture shown in Figure 5, but is not limited to any specific architecture.

在601处,在代表依赖方的验证服务器处生成第一验证相关通信。在一个实施例中,第一验证相关通信包括上文所提及的验证请求523(例如,包含随机质询、验证器ID等)。At 601, a first authentication-related communication is generated at a verification server on behalf of a relying party. In one embodiment, the first authentication-related communication includes the verification request 523 mentioned above (eg, including a random challenge, a verifier ID, etc.).

在602处,使用来自分散式公共密钥基础设施(PKI)的自签名证书的第一密钥来签名第一验证相关通信。在一个实施例中,第一密钥包括上文所论述的私有密钥522。At 602, a first authentication-related communication is signed using a first key from a self-signed certificate of a decentralized public key infrastructure (PKI). In one embodiment, the first key comprises the private key 522 discussed above.

在603处,使用现有可信通信基础设施,与客户端装置上的依赖方应用程序建立第一安全信道。在一个实施例中,使用现有可信通信基础设施包括使用可信X.509证书与依赖方建立安全传输层安全(TLS)信道。At 603, a first secure channel is established with a relying party application on the client device using an existing trusted communication infrastructure. In one embodiment, using the existing trusted communication infrastructure includes establishing a secure Transport Layer Security (TLS) channel with the relying party using a trusted X.509 certificate.

在604处,通过第一安全通信信道将第一验证相关通信传输到依赖方应用程序。如所提及的,在一个实施例中,与通信一同提供的源标识符(例如,RPNAME)。At 604, the first verification-related communication is transmitted to the relying party application via the first secure communication channel. As mentioned, in one embodiment, a source identifier (eg, RPNAME) is provided with the communication.

在605处,使用现有可信通信基础设施,与客户端装置上的验证客户端建立第二安全通信信道。如所提及的,在一个实施例中,使用现有可信通信基础设施包括使用可信X.509证书与依赖方建立安全TLS信道。At 605, a second secure communication channel is established with the verification client on the client device using the existing trusted communication infrastructure. As mentioned, in one embodiment, using the existing trusted communication infrastructure includes establishing a secure TLS channel with the relying party using a trusted X.509 certificate.

在606处,通过第二安全通信信道将来自分散式PKI的自签名证书的第二密钥传输到验证客户端。在一个实施例中,第二密钥包括与来自分散式PKI的自签名证书相关联的公共密钥。还可以经由公共密钥文件526(如上文所论述)提供一个或多个附加密钥。At 606, a second key from the self-signed certificate of the decentralized PKI is transmitted to the verification client via a second secure communication channel. In one embodiment, the second key comprises a public key associated with the self-signed certificate from the decentralized PKI. One or more additional keys may also be provided via public key file 526 (as discussed above).

在607处,从依赖方应用程序向验证客户端提供具有签名的第一验证相关通信。在一个实施例中,这是遵循客户端装置上的现有进程间通信(IPC)机制来执行的。At 607, a first authentication-related communication with a signature is provided from the relying party application to the authenticating client. In one embodiment, this is performed compliant with existing inter-process communication (IPC) mechanisms on the client device.

在608处,验证客户端使用第二密钥验证通过第一密钥生成的签名。如果验证成功,则验证客户端响应于第一验证相关通信而生成第二验证相关通信。例如,如上文所论述,如果第一验证相关通信包含验证请求,则第二验证相关通信可包含验证响应。为了生成响应,验证客户端可以首先要求用户在客户端装置上执行验证(例如,轻扫手指、记录语音、输入代码等)。如果验证成功,则验证客户端可以传输成功验证的指示以及其他可核验的信息(例如,随验证请求一起提供的随机质询)。一旦验证服务器接收到第二验证相关通信,可以向依赖方验证用户,并且允许用户进入与依赖方的交易。At 608, the verification client verifies the signature generated by the first key using the second key. If the verification is successful, the verification client generates a second verification-related communication in response to the first verification-related communication. For example, as discussed above, if the first verification-related communication includes a verification request, the second verification-related communication may include a verification response. To generate the response, the verification client may first require the user to perform verification on the client device (e.g., swipe a finger, record a voice, enter a code, etc.). If the verification is successful, the verification client may transmit an indication of successful verification and other verifiable information (e.g., a random challenge provided with the verification request). Once the verification server receives the second verification-related communication, it may verify the user to the relying party and allow the user to enter into a transaction with the relying party.

示例性数据处理装置Exemplary data processing apparatus

图7是示出可在本发明的一些实施例中使用的示例性客户端和服务器的框图。应当理解,尽管图7示出计算机系统的各种组件,但其并非意图表示互连组件的任何特定架构或方式,因为此类细节与本发明并不密切相关。应当理解,具有更少组件或更多组件的其他计算机系统也可与本发明一起使用。FIG7 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 FIG7 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.

如图7所示,计算机系统700,其为一种形式的数据处理系统,包括总线750,该总线与处理系统720、电源725、存储器730和非易失性存储器740(例如,硬盘驱动器、快闪存储器、相变存储器(PCM)等)耦接。总线750可通过如本领域中熟知的各种桥接器、控制器和/或适配器来彼此连接。处理系统720可从存储器730和/或非易失性存储器740检索指令,并执行这些指令以执行如上所述的操作。总线750将以上组件互连在一起,并且还将那些组件互连到可选底座760、显示控制器与显示装置770、输入/输出装置780(例如,NIC(网络接口卡)、光标控件(例如,鼠标、触摸屏、触摸板等)、键盘等)和可选无线收发器790(例如,蓝牙、WiFi、红外等)。As shown in FIG7 , a computer system 700, which is a form of data processing system, includes a bus 750 coupled to a processing system 720, a power supply 725, a memory 730, and a non-volatile memory 740 (e.g., a hard drive, flash memory, phase change memory (PCM), etc.). The bus 750 can be connected to each other through various bridges, controllers, and/or adapters as are well known in the art. The processing system 720 can retrieve instructions from the memory 730 and/or the non-volatile memory 740 and execute these instructions to perform the operations described above. The bus 750 interconnects the above components and also interconnects those components to an optional base 760, a display controller and display device 770, an input/output device 780 (e.g., a NIC (network interface card), a cursor control (e.g., a mouse, a touch screen, a touchpad, etc.), a keyboard, etc.), and an optional wireless transceiver 790 (e.g., Bluetooth, WiFi, infrared, etc.).

图8是示出可在本发明的一些实施例中使用的示例性数据处理系统的框图。例如,数据处理系统800可为手持式计算机、个人数字助理(PDA)、移动电话、便携式游戏系统、便携式媒体播放器、平板计算机或手持式计算装置(其可包括移动电话、媒体播放器和/或游戏系统)。又如,数据处理系统800可为网络计算机或在另一个装置内的嵌入式处理装置。Figure 8 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 800 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 800 may be a network computer or an embedded processing device within another device.

根据本发明的一个实施例,数据处理系统800的示例性架构可用于上文所述的移动装置。数据处理系统800包括处理系统820,其可包括一个或多个微处理器和/或集成电路上的系统。处理系统820与存储器810、电源825(其包括一个或多个电池)、音频输入/输出840、显示控制器与显示装置860、可选输入/输出850、输入装置870和无线收发器830耦接。应当理解,在本发明的某些实施例中,图8中未示出的其他组件也可为数据处理系统800的一部分,并且在本发明的某些实施例中,可使用比图8所示更少的组件。另外,应当理解,图8中未示出的一个或多个总线可用于使如本领域中熟知的各种组件互连。According to one embodiment of the present invention, an exemplary architecture of a data processing system 800 can be used for the mobile device described above. The data processing system 800 includes a processing system 820, which may include one or more microprocessors and/or systems on integrated circuits. The processing system 820 is coupled to a memory 810, a power supply 825 (which includes one or more batteries), an audio input/output 840, a display controller and a display device 860, an optional input/output 850, an input device 870, and a wireless transceiver 830. It should be understood that in certain embodiments of the present invention, other components not shown in Figure 8 may also be part of the data processing system 800, and in certain embodiments of the present invention, fewer components than shown in Figure 8 may be used. In addition, it should be understood that one or more buses not shown in Figure 8 can be used to interconnect various components as is known in the art.

存储器810可存储数据和/或程序以供数据处理系统800执行。音频输入/输出840可包括麦克风和/或扬声器以(例如)播放音乐,以及/或者通过扬声器和麦克风提供电话功能。显示控制器与显示装置860可包括图形用户界面(GUI)。无线(例如,RF)收发器830(例如,WiFi收发器、红外收发器、蓝牙收发器、无线蜂窝电话收发器等)可用于与其他数据处理系统通信。所述一个或多个输入装置870允许用户向系统提供输入。这些输入装置可为小键盘、键盘、触控面板、多点触控面板等。可选的其他输入/输出850可为底座的连接器。The memory 810 can store data and/or programs for execution by the data processing system 800. The audio input/output 840 can include a microphone and/or a speaker to (for example) play music, and/or provide telephone functionality through the speaker and microphone. The display controller and display device 860 can include a graphical user interface (GUI). A wireless (e.g., RF) transceiver 830 (e.g., a WiFi transceiver, an infrared transceiver, a Bluetooth transceiver, a wireless cellular phone transceiver, etc.) can be used to communicate with other data processing systems. The one or more input devices 870 allow a user to provide input to the system. These input devices can be a keypad, a keyboard, a touch panel, a multi-touch panel, etc. Optional other input/output 850 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 (24)

1.一种方法,包括:1. A method comprising: 在代表依赖方的验证服务器处生成第一验证相关通信,所述第一验证相关通信被指向具有一个或多个验证器的客户端装置;generating, at a verification server on behalf of a relying party, a first verification-related communication directed to a client device having one or more authenticators; 使用来自分散式公共密钥基础设施(PKI)的自签名证书的第一密钥来签名所述第一验证相关通信;signing the first verification-related communication using a first key from a self-signed certificate of a decentralized public key infrastructure (PKI); 使用可信安全通信基础设施,与所述客户端装置上的依赖方应用程序建立第一安全通信信道;establishing a first secure communication channel with a relying party application on the client device using a trusted secure communication infrastructure; 通过所述第一安全通信信道将具有所述签名的所述第一验证相关通信传输到所述依赖方应用程序;transmitting the first verification-related communication with the signature to the relying party application via the first secure communication channel; 使用可信安全通信基础设施,与所述客户端装置上的验证客户端建立第二安全通信信道;establishing a second secure communication channel with the authentication client on the client device using the trusted secure communication infrastructure; 通过所述第二安全通信信道将来自所述分散式PKI的所述自签名证书的第二密钥传输到所述验证客户端;transmitting a second key of the self-signed certificate from the decentralized PKI to the verification client via the second secure communication channel; 从所述依赖方应用程序向所述验证客户端提供所述第一验证相关通信;以及providing the first authentication-related communication from the relying party application to the authentication client; and 所述验证客户端使用所述第二密钥来验证在所述第一验证相关通信上通过所述第一密钥生成的所述签名。The verification client uses the second key to verify the signature generated by the first key on the first verification-related communication. 2.根据权利要求1所述的方法,其中所述第一密钥包括所述分散式PKI的私有密钥,并且所述第二密钥包括对应的公共密钥。2 . The method of claim 1 , wherein the first key comprises a private key of the decentralized PKI and the second key comprises a corresponding public key. 3.根据权利要求1所述的方法,其中所述可信安全通信基础设施包括可信证书,所述可信证书可用于建立针对所述第一和/或所述第二安全通信信道的安全传输层安全(TLS)连接。3. The method of claim 1, wherein the trusted secure communication infrastructure comprises a trusted certificate, the trusted certificate being usable to establish a secure Transport Layer Security (TLS) connection for the first and/or the second secure communication channel. 4.根据权利要求3所述的方法,其中所述可信证书包括X.509证书。The method of claim 3 , wherein the trusted certificate comprises an X.509 certificate. 5.根据权利要求1所述的方法,还包括:5. The method according to claim 1, further comprising: 所述验证客户端响应于所述第一验证相关通信而生成第二验证相关通信。The authentication client generates a second authentication-related communication in response to the first authentication-related communication. 6.根据权利要求5所述的方法,其中所述第一验证相关通信包括在代表所述依赖方操作的验证服务器处生成的验证请求,并且所述第二验证相关通信包括由所述验证客户端生成的验证响应。6. The method of claim 5, wherein the first authentication-related communication comprises an authentication request generated at an authentication server operating on behalf of the relying party, and the second authentication-related communication comprises an authentication response generated by the authentication client. 7.根据权利要求6所述的方法,其中所述验证请求包括随机质询、以及使用与所述客户端装置上的验证器相关联的公共密钥在所述随机质询上生成的签名。7. The method of claim 6, wherein the authentication request comprises a random challenge and a signature generated over the random challenge using a public key associated with an authenticator on the client device. 8.根据权利要求7所述的方法,其中所述验证客户端使用与所述验证器相关联的私有密钥来验证所述签名。8. The method of claim 7, wherein the verification client verifies the signature using a private key associated with the authenticator. 9.根据权利要求8所述的方法,其中所述验证客户端响应于使用所述客户端装置上的所述验证器中的一个或多个实现的成功用户验证而生成所述验证响应。9. The method of claim 8, wherein the authentication client generates the authentication response in response to successful user authentication achieved using one or more of the authenticators on the client device. 10.根据权利要求9所述的方法,其中所述客户端装置上的所述验证器包括指纹验证器。10. The method of claim 9, wherein the authenticator on the client device comprises a fingerprint authenticator. 11.根据权利要求1所述的方法,其中从所述依赖方应用程序向所述验证客户端提供所述第一验证相关通信还包括在所述依赖方应用程序与所述验证客户端之间实施进程间通信(IPC)。11. The method of claim 1 , wherein providing the first authentication-related communication from the relying party application to the authentication client further comprises implementing inter-process communication (IPC) between the relying party application and the authentication client. 12.根据权利要求1所述的方法,其中在公共密钥文件中通过所述第二安全通信信道传输所述自签名证书的所述第二密钥。12. The method of claim 1, wherein the second key of the self-signed certificate is transmitted over the second secure communication channel in a public key file. 13.一种用于执行验证的系统,包括:13. A system for performing verification, comprising: 客户端装置,所述客户端装置具有一个或多个验证器、验证客户端和依赖方应用程序;a client device having one or more of an authenticator, an authentication client, and a relying party application; 代表依赖方操作的验证服务器,所述验证服务器生成被指向所述客户端装置的第一验证相关通信;an authentication server operating on behalf of a relying party, the authentication server generating a first authentication-related communication directed to the client device; 所述验证服务器使用来自分散式公共密钥基础设施(PKI)的自签名证书的第一密钥来签名所述第一验证相关通信;the verification server signing the first verification-related communication using a first key from a self-signed certificate of a decentralized public key infrastructure (PKI); 所述验证服务器使用可信安全通信基础设施,与所述客户端装置上的依赖方应用程序建立第一安全通信信道;The verification server establishes a first secure communication channel with a relying party application on the client device using a trusted secure communication infrastructure; 所述验证服务器通过所述第一安全通信信道将具有所述签名的所述第一验证相关通信传输到所述依赖方应用程序;the verification server transmitting the first verification-related communication with the signature to the relying party application via the first secure communication channel; 所述验证服务器使用可信安全通信基础设施,与所述客户端装置上的验证客户端建立第二安全通信信道;The verification server establishes a second secure communication channel with the verification client on the client device using a trusted secure communication infrastructure; 所述验证服务器通过所述第二安全通信信道将来自 所述分散式PKI的所述自签名证书的第二密钥传输到所述验证客户端;The verification server transmits a second key of the self-signed certificate from the decentralized PKI to the verification client via the second secure communication channel; 所述依赖方应用程序向所述验证客户端提供所述第一验证相关通信;以及the relying party application providing the first authentication-related communication to the authentication client; and 所述验证客户端使用所述第二密钥来验证在所述第一验证相关通信上通过所述第一密钥生成的所述签名。The verification client uses the second key to verify the signature generated by the first key on the first verification-related communication. 14.根据权利要求13所述的系统,其中所述第一密钥包括所述分散式PKI的私有密钥,并且所述第二密钥包括对应的公共密钥。14. The system of claim 13, wherein the first key comprises a private key of the decentralized PKI and the second key comprises a corresponding public key. 15.根据权利要求13所述的系统,其中所述可信安全通信基础设施包括可信证书,所述可信证书可用于建立针对所述第一和/或所述第二安全通信信道的安全传输层安全(TLS)连接。15. The system of claim 13, wherein the trusted secure communication infrastructure includes a trusted certificate, the trusted certificate being usable to establish a secure Transport Layer Security (TLS) connection for the first and/or the second secure communication channel. 16.根据权利要求15所述的系统,其中所述可信证书包括X.509证书。16. The system of claim 15, wherein the trusted certificate comprises an X.509 certificate. 17.根据权利要求13所述的系统,还包括:17. The system of claim 13, further comprising: 所述验证客户端响应于所述第一验证相关通信而生成第二验证相关通信。The authentication client generates a second authentication-related communication in response to the first authentication-related communication. 18.根据权利要求17所述的系统,其中所述第一验证相关通信包括在代表所述依赖方操作的验证服务器处生成的验证请求,并且所述第二验证相关通信包括由所述验证客户端生成的验证响应。18. The system of claim 17, wherein the first authentication-related communication comprises an authentication request generated at an authentication server operating on behalf of the relying party, and the second authentication-related communication comprises an authentication response generated by the authentication client. 19.根据权利要求18所述的系统,其中所述验证请求包括随机质询、以及使用与所述客户端装置上的验证器相关联的公共密钥在所述随机质询上生成的签名。19. The system of claim 18, wherein the authentication request comprises a random challenge and a signature generated over the random challenge using a public key associated with an authenticator on the client device. 20.根据权利要求19所述的系统,其中所述验证客户端使用与所述验证器相关联的私有密钥来验证所述签名。20. The system of claim 19, wherein the verification client verifies the signature using a private key associated with the authenticator. 21.根据权利要求20所述的系统,其中所述验证客户端响应于使用所述客户端装置上的所述验证器中的一个或多个实现的成功用户验证而生成所述验证响应。21. The system of claim 20, wherein the authentication client generates the authentication response in response to successful user authentication achieved using one or more of the authenticators on the client device. 22.根据权利要求21所述的系统,其中所述客户端装置上的所述验证器包括指纹验证器。22. The system of claim 21, wherein the authenticator on the client device comprises a fingerprint authenticator. 23.根据权利要求13所述的系统,其中从所述依赖方应用程序向所述验证客户端提供所述第一验证相关通信还包括在所述依赖方应用程序与所述验证客户端之间实施进程间通信(IPC)。23. The system of claim 13, wherein providing the first authentication-related communication from the relying party application to the authentication client further comprises implementing inter-process communication (IPC) between the relying party application and the authentication client. 24.根据权利要求13所述的系统,其中在公共密钥文件中通过所述第二安全通信信道传输所述自签名证书的所述第二密钥。24. The system of claim 13, wherein the second key of the self-signed certificate is transmitted over the second secure communication channel in a public key file.
HK17111044.4A 2014-07-31 2015-07-30 System and method for establishing trust using secure transmission protocols HK1237157B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/448,697 2014-07-31

Publications (2)

Publication Number Publication Date
HK1237157A1 HK1237157A1 (en) 2018-04-06
HK1237157B true HK1237157B (en) 2021-03-05

Family

ID=

Similar Documents

Publication Publication Date Title
CN106664208B (en) System and method for establishing trust using secure transport protocol
CN106464673B (en) Enhanced security for authenticating device registration
CN106575326B (en) System and method for implementing one-time passwords using asymmetric encryption
CN106575416B (en) System and method for authenticating a client to a device
CN107111478B (en) System and method for integrating authentication services within a network architecture
US8112787B2 (en) System and method for securing a credential via user and server verification
KR102439782B1 (en) Systems and methods for implementing hosted authentication services
CN113711560A (en) System and method for efficient challenge-response verification
HK1237157B (en) System and method for establishing trust using secure transmission protocols
HK1237157A1 (en) System and method for establishing trust using secure transmission protocols
HK40064425A (en) System and method for efficient challenge-response authentication
HK1236636B (en) System and method for implementing a one-time-password using asymmetric cryptography
HK1236637B (en) System and method for implementing a hosted authentication service
HK1234909B (en) Enhanced security for registration of authentication devices
HK1234909A1 (en) Enhanced security for registration of authentication devices
HK1236268B (en) System and method for authenticating a client to a device
HK1236636A1 (en) System and method for implementing a one-time-password using asymmetric cryptography
HK1236268A1 (en) System and method for authenticating a client to a device
HK1236637A1 (en) System and method for implementing a hosted authentication service