HK1219326B - Advanced authentication techniques and applications - Google Patents
Advanced authentication techniques and applications Download PDFInfo
- Publication number
- HK1219326B HK1219326B HK16107359.2A HK16107359A HK1219326B HK 1219326 B HK1219326 B HK 1219326B HK 16107359 A HK16107359 A HK 16107359A HK 1219326 B HK1219326 B HK 1219326B
- Authority
- HK
- Hong Kong
- Prior art keywords
- authentication
- user
- client
- data
- transaction
- Prior art date
Links
Description
背景技术Background Art
相关申请的交叉引用CROSS-REFERENCE TO RELATED APPLICATIONS
本申请要求2013年3月22日提交的名称为“Advanced Methods ofAuthentication And Its Applications”(高级验证方法及其应用)的共同待决的美国临时专利申请No.61/804,568的权益和优先权。This application claims the benefit of and priority to co-pending U.S. Provisional Patent Application No. 61/804,568, filed on March 22, 2013, entitled “Advanced Methods of Authentication And Its Applications.”
本申请是2013年10月29日提交的名称为“Apparatus and Method ForImplementing Composite Authenticators”(用于实施复合验证器的设备和方法)的美国专利申请14/066,384的部分继续申请。This application is a continuation-in-part of U.S. patent application Ser. No. 14/066,384, filed on Oct. 29, 2013, and entitled “Apparatus and Method For Implementing Composite Authenticators.”
本申请还是2013年12月31日提交的名称为“System and Method For Non-Intrusive,Privacy-Preserving Authentication”(用于非侵入式隐私保护验证的系统和方法)的美国专利申请14/145,439的部分继续申请,该美国专利申请也要求2013年3月22日提交的名称为“Advanced Methods of Authentication And Its Applications”(高级验证方法及其应用)的共同待决的美国临时专利申请No.61/804,568的权益和优先权。This application is also a continuation-in-part of U.S. patent application 14/145,439, filed on December 31, 2013, entitled “System and Method For Non-Intrusive, Privacy-Preserving Authentication,” which also claims the benefit of and priority to co-pending U.S. provisional patent application No. 61/804,568, filed on March 22, 2013, entitled “Advanced Methods of Authentication And Its Applications.”
本申请还是2013年12月31日提交的名称为“System and Method For AdaptiveUser Authentication”(用于自适应用户验证的系统和方法)的美国专利申请14/145,466的部分继续申请,该美国专利申请也要求2013年3月22日提交的名称为“Advanced Methodsof Authentication And Its Applications”(高级验证方法及其应用)的共同待决的美国临时专利申请No.61/804,568的权益和优先权。This application is also a continuation-in-part of U.S. patent application Ser. No. 14/145,466, filed on Dec. 31, 2013, entitled “System and Method For Adaptive User Authentication,” which also claims the benefit of and priority to co-pending U.S. provisional patent application Ser. No. 61/804,568, filed on Mar. 22, 2013, entitled “Advanced Methods of Authentication And Its Applications.”
本申请还是2013年12月31日提交的名称为“System and Method For Location-Based Authentication”(用于基于位置的验证的系统和方法)的美国专利申请14/145,533的部分继续申请,该美国专利申请也要求2013年3月22日提交的名称为“Advanced Methodsof Authentication And Its Applications”(高级验证方法及其应用)的共同待决的美国临时专利申请No.61/804,568的权益和优先权。This application is also a continuation-in-part of U.S. patent application No. 14/145,533, filed on December 31, 2013, entitled “System and Method For Location-Based Authentication,” which also claims the benefit of and priority to co-pending U.S. provisional patent application No. 61/804,568, filed on March 22, 2013, entitled “Advanced Methods of Authentication And Its Applications.”
本申请还是2013年12月31日提交的名称为“System and Method For ConfirmingLocation Using Supplemental Sensor and/or Location Data”(用于使用补充传感器和/或位置数据确认位置的系统和方法)的美国专利申请14/145,607的部分继续申请,该美国专利申请也要求2013年3月22日提交的名称为“Advanced Methods of AuthenticationAnd Its Applications”(高级验证方法及其应用)的共同待决的美国临时专利申请No.61/804,568的权益和优先权。This application is also a continuation-in-part of U.S. patent application No. 14/145,607, filed on December 31, 2013, entitled “System and Method For Confirming Location Using Supplemental Sensor and/or Location Data,” which also claims the benefit of and priority to co-pending U.S. provisional patent application No. 61/804,568, filed on March 22, 2013, entitled “Advanced Methods of Authentication And Its Applications.”
技术领域Technical Field
本发明整体涉及数据处理系统的领域。更具体地讲,本发明涉及高级用户验证技术和相关联应用。The present invention generally relates to the field of data processing systems. More particularly, the present invention relates to advanced user authentication techniques and associated applications.
相关领域说明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日提交并且转让给本受让人:No.13/730,761,Query System and Methodto Determine Authentication Capabilities(用于确定验证能力的查询系统和方法);No.13/730,776,System and Method for Efficiently Enrolling,Registering,andAuthenticating With Multiple Authentication Devices(使用多个验证装置有效地进行登记、注册和验证的系统和方法);13/730,780,System and Method for ProcessingRandom Challenges Within an Authentication Framework(用于在验证框架内处理随机质询的系统和方法);No.13/730,791,System and Method for Implementing PrivacyClasses Within an Authentication Framework(用于在验证框架内实施隐私类别的系统和方法);No.13/730,795,System and Method for Implementing TransactionSignaling Within 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: No. 13/730,761, Query System and Method to Determine Authentication Capabilities; No. 13/730,776, System and Method for Efficiently Enrolling, Registering, and Authenticating With Multiple Authentication Devices; 13/730,780, System and Method for Processing Random Challenges Within an Authentication Framework; No. 13/730,791, System and Method for Implementing Privacy Classes Within an Authentication Framework; No. 13/730,795, 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 over a network with one or more servers (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.
验证器,诸如上文描述的那些验证器,需要某种形式的用户交互,如轻扫手指或输入密码。这些“普通”验证器旨在在给定时间点验证用户。另外,还可使用“无声”验证器在给定时间点验证用户的装置(而非用户)。这些无声验证器可依赖于从用户的装置提取的信息,而不需要用户交互(例如,发送机器ID)。Authenticators, such as those described above, require some form of user interaction, such as swiping a finger or entering a password. These "normal" authenticators are designed to authenticate a user at a given point in time. Alternatively, "silent" authenticators can be used to authenticate a user's device (rather than the user) at a given point in time. These silent authenticators can rely on information extracted from the user's device and do not require user interaction (e.g., sending a machine ID).
然而,在某些使用案例中,要求显式用户交互存在过多阻力(例如,近场通信(NFC)支付、要求验证但未绑定到高价值交易的频繁使用的应用程序),而“无声”验证技术(诸如发送机器ID)则不充分确定装置仍然由合法用户持有。However, in some use cases, requiring explicit user interaction presents too much friction (e.g., near field communication (NFC) payments, frequently used applications that require authentication but are not tied to high-value transactions), while "silent" authentication techniques (such as sending a machine ID) are insufficient to ensure that the device is still in the possession of the legitimate user.
研究团体已经提出了若干种“连续”验证方法,诸如Anthony J.Nicholson,“Mobile Device Security Using Transient Authentication”,“IEEE TRANSACTIONS ONMOBILE COMPUTING VOL.5,NO.11,pp.1489-1502(November 2006)(Anthony,J,Nicholson.使用瞬时验证的移动装置安全。IEEE移动计算学报,2006-11,5(11):1489-1502);MohammadO.Derawi,“Unobtrusive User-Authentication on Mobile Phones using BiometricGait Recognition”(2010)(Mohammad O.Derawi,移动电话上使用生物计量步态识别的不醒目用户验证。2010);Koichiro Niinuma,Anil K.Jain,“Continuous UserAuthentication Using Temporal Information”(Koichiro,Niinuma,Anil,K,Jain.使用时间信息的连续用户验证。http://www.cse.msu.edu/biometrics/Publications/Face/NiinumaJain_ContinuousAuth_SPIE10.pdf)。工业上甚至已经采用这些方法中的一些,诸如BehavioSec,“Measuring FAR/FRR/EER in Continuous Authentication,”Stockholm,Sweden(2009)(BehavioSec.在连续验证中测量FAR/FRR/EER.瑞典斯德哥尔摩:2009)。这些方法总体上提供合法用户仍持有装置的保证等级而不会向验证过程增加阻力,但这些方法注重于单种形式(即,使用可穿戴的令牌、步态识别、面部和服装颜色识别,以及用户的键盘输入)。The research community has proposed several "continuous" authentication methods, such as Anthony J. Nicholson, "Mobile Device Security Using Transient Authentication", "IEEE TRANSACTIONS ON MOBILE COMPUTING VOL. 5, NO. 11, pp. 1489-1502 (November 2006); Mohammad O. Derawi, "Unobtrusive User-Authentication on Mobile Phones using Biometric Gait Recognition" (2010); Koichiro Niinuma, Anil K. Jain, "Continuous User Authentication Using Temporal Information”(Koichiro, Niinuma, Anil, K, Jain. Continuous user authentication using temporal information. http://www.cse.msu.edu/biometrics/Publications/Face/NiinumaJain_ContinuousAuth_SPIE10.pdf). Some of these methods have even been adopted by industry, such as BehavioSec, “Measuring FAR/FRR/EER in Continuous Authentication,” Stockholm, Sweden (2009). These methods generally provide a level of assurance that the legitimate user still has possession of the device without adding friction to the authentication process, but these methods focus on a single modality (i.e., using a wearable token, gait recognition, facial and clothing color recognition, and keyboard input from the user).
然而,存在的一个问题是,直接向依赖方提供位置数据或其他个人数据(例如,面部图像、服装颜色、步态或打字特征......)或环境数据(例如,温度、湿度、WLAN SSID...)以对风险评估进行补充的做法,在有些世界区域中侵犯了用户的隐私。因此,需要更高级的远程验证技术,这种技术既要具有非侵入式,又要充分保护最终用户的隐私。However, there is a problem that directly providing location data or other personal data (e.g., facial images, clothing color, gait or typing characteristics...) or environmental data (e.g., temperature, humidity, WLAN SSID...) to relying parties to supplement risk assessments violates user privacy in some regions of the world. Therefore, more advanced remote verification technologies are needed that are both non-intrusive and fully protect the privacy of end users.
另外,当前验证方法(例如,密码、指纹验证等等)的强度随时间推移几乎恒定,但所导致的风险却基于执行验证的当前环境(例如,正在使用的机器、机器所连接到的网络等等)而变化。基于当前检测到的风险来选择并且/或者组合验证形式将是有利的。Additionally, the strength of current authentication methods (e.g., passwords, fingerprint authentication, etc.) is nearly constant over time, but the resulting risk varies based on the current environment in which authentication is performed (e.g., the machine being used, the network to which the machine is connected, etc.) It would be advantageous to select and/or combine authentication modalities based on the currently detected risk.
在考虑提高验证的保证等级时,我们想到了提高显式验证方法的等级的典型方法,如要求使用更复杂的密码,或者使用更准确的生物计量方法,如指纹或面部识别。实际上,验证的保证等级(或从其衍生的交易风险)还取决于其他数据,诸如是否从与之前相同的装置执行验证,以及验证的位置是否实际上靠近上次成功验证的位置(例如,下午1点在旧金山进行验证并且同一天下午2点在东京进行验证貌似对于一个人来说是不现实的)。When considering increasing the assurance level of authentication, we typically think of increasing the assurance level of explicit authentication methods, such as requiring a more complex password or using more accurate biometrics, such as fingerprint or facial recognition. In reality, the assurance level of authentication (or the transaction risk derived from it) also depends on other data, such as whether the authentication is performed from the same device as before, and whether the location of the authentication is actually close to the location of the last successful authentication (for example, it seems unrealistic for a person to authenticate in San Francisco at 1 p.m. and in Tokyo at 2 p.m. on the same day).
密码仍是主要的显式验证方法。遗憾的是,密码容易受到攻击并且那些攻击伸缩自如。另外,输入密码是麻烦的,尤其是在如智能电话等小型装置上。因而,许多用户根本不使用基于密码的保护方法来锁定其电话,或者他们使用微不足道的PIN码。Passwords remain the primary explicit authentication method. Unfortunately, passwords are vulnerable to attacks, and those attacks are highly scalable. Furthermore, entering a password is cumbersome, especially on small devices like smartphones. Consequently, many users don't use password-based protection to lock their phones, or they use a trivial PIN code.
一些智能电话正使用指纹传感器来提供较便利的验证方式。使用生物计量形式来进行验证已经因为不能提供足够的抗欺骗攻击能力以及由于可能无法恰当保护生物计量参考数据而引入的隐私问题而受到诟病。Some smartphones are using fingerprint sensors to provide a more convenient way to authenticate. Using biometric forms of authentication has been criticized for not providing sufficient resistance to spoofing attacks and for introducing privacy issues due to the potential failure to properly protect biometric reference data.
目前已经提出了结合使用多种生物计量形式的各种“融合”方法。其中,有些方法通过降低错误拒绝率(FRR)来解决可用性问题;有些方法通过降低错误接受率(FAR)来解决安全性问题。因而,这些方法目前已经提出了静态融合算法。遗憾的是,这种方式仍然导致保证等级视“其他输入”(如上文所述)而变化。Various "fusion" approaches have been proposed that combine multiple biometric modalities. Some address usability by reducing the false rejection rate (FRR), while others address security by reducing the false acceptance rate (FAR). Consequently, these approaches have proposed static fusion algorithms. Unfortunately, this approach still results in varying assurance levels depending on the "other inputs" (as described above).
对于某些类别的交易,与交易相关联的风险性可能与正在执行交易的位置密不可分。例如,可能不宜允许看起来从受限制的国家(诸如美国外国资产管制处清单上所列的那些国家,如古巴、利比亚、朝鲜等)发起的交易。在其他情况下,可能仅期望在使用更强验证机制的情况下允许进行交易;例如,从公司的物理场所内进行的交易所需的验证可能比从位于公司没有业务的偏远地区的星巴克进行的交易要少。For certain categories of transactions, the risk associated with the transaction may be inseparable from the location where the transaction is being performed. For example, it may be inappropriate to allow transactions that appear to originate from restricted countries (such as those listed on the U.S. Office of Foreign Assets Control list, such as Cuba, Libya, North Korea, etc.). In other cases, it may be desirable to allow transactions only if stronger authentication mechanisms are used; for example, transactions conducted from within a company's physical location may require less authentication than transactions conducted from a Starbucks located in a remote area where the company does not have business.
然而,出于多种原因可能不易得到可靠的位置数据。例如,最终用户的装置可能没有GPS能力;用户可能位于Wifi三角测量数据不可用或不可靠的位置;网络提供商可能不支持提供手机发射塔三角测量能力来增强GPS或WiFi三角测量能力。用于推断装置位置的其他方法可能没有足够的保证等级来满足组织的需要;例如,用于确定地理位置的反向IP查找可能粒度不够,或者可能被设计用于掩蔽用户装置的真实网络起源的代理掩蔽。However, reliable location data may not be readily available for a variety of reasons. For example, the end user's device may not have GPS capabilities; the user may be located in a location where Wi-Fi triangulation data is unavailable or unreliable; or the network provider may not support cell tower triangulation to augment GPS or Wi-Fi triangulation. Other methods for inferring a device's location may not provide a sufficient level of assurance to meet an organization's needs; for example, a reverse IP lookup used to determine geographic location may not be granular enough or may be masked by a proxy designed to obscure the true network origin of the user's device.
在这些情况下,设法评估交易风险性的组织可能需要额外数据为自己提供关于个人位于特定地理区域内的额外保证,以推动验证决策。In these cases, organizations seeking to assess the riskiness of a transaction may need additional data to provide them with additional assurance that the individual is located within a specific geographic region to drive the verification decision.
组织部署验证的另一个挑战是,使验证机制的“强度”与特定用户的环境(位置、装置、软件、操作系统)、用户或装置做出的请求(对访问受限信息或进行特定操作的请求)以及组织的管理策略所呈现的内在风险匹配。Another challenge for organizations deploying authentication is matching the "strength" of the authentication mechanism to the inherent risks presented by the specific user's environment (location, device, software, operating system), the requests made by the user or device (requests to access restricted information or perform specific actions), and the organization's management policies.
目前为止,组织不得不依赖于对用户验证需要的相当静态的响应:组织评估用户在正常执行的操作期间将面临的风险,以及任何适用法规的强制规定,然后部署验证方案来防御风险并实现合规。要做到这一点,组织通常需要部署多种验证方案来解决不同用户可能面临的多种多样的风险,而这可能管理起来特别昂贵并且麻烦。Until now, organizations have had to rely on a fairly static response to user authentication needs: they assess the risks users face during the course of their normal operations, as well as any applicable regulatory mandates, and then deploy authentication solutions to mitigate those risks and achieve compliance. To do this, organizations often need to deploy multiple authentication solutions to address the diverse range of risks different users may face, which can be extremely expensive and cumbersome to manage.
共同待决的申请中所描述的技术提供允许组织识别用户装置上能够用于验证的现有能力的抽象概念。这个抽象概念使组织不需要部署多种不同验证方案。然而,组织仍需要用于在必要时调用“正确”验证机制的方式。现有的具体实施未向组织提供描述什么验证机制在哪些情况下适用的能力。因此,组织将有可能需要将其验证策略编纂成代码,而这使得解决方案脆弱不堪,并且需要在将来改变代码才能使用新的验证装置/令牌。The technology described in the co-pending application provides an abstraction that allows organizations to identify existing capabilities on user devices that can be used for authentication. This abstraction eliminates the need for organizations to deploy multiple different authentication schemes. However, organizations still need a way to invoke the "correct" authentication mechanism when necessary. Existing implementations do not provide organizations with the ability to describe which authentication mechanism is applicable in which situations. As a result, organizations will likely need to codify their authentication policies, which makes the solution brittle and requires future code changes to use new authentication devices/tokens.
如今,主要使用浏览器应用程序通过万维网进行电子金融交易。Amazon.com、戴尔和沃尔玛等网站经由其在线门户网站出售数十亿美元的商品,而银行和经纪机构允许其客户在帐户之间在线转移数十亿美元的资金。这些网站等所面临的一个挑战是,如何检测欺诈活动。欺诈交易可能使这些公司损失数十亿美元。Today, electronic financial transactions are primarily conducted over the World Wide Web using browser applications. Websites like Amazon.com, Dell, and Walmart sell billions of dollars worth of goods through their online portals, while banks and brokerage firms allow their customers to transfer billions of dollars between accounts online. One challenge facing these websites and others is detecting fraudulent activity. Fraudulent transactions can cost these companies billions of dollars.
对付欺诈交易的第一道防线是用户的密码。然而,罪犯可通过多种技术获得密码。有时,密码的复杂性不够,并且可易于通过暴力攻击来猜中或确定。而有时,恶意软件、蠕虫或病毒会使用户的计算机受到感染。于是,可通过记录按键或者扫描存储器或硬盘存储装置来获得密码。如果实际装置被偷走,则可从保留在存储器或存储装置中的数据找回密码。一旦密码泄露,罪犯就能够访问帐户并且提取或转移资金。The first line of defense against fraudulent transactions is the user's password. However, criminals can obtain passwords through a variety of techniques. Sometimes, passwords lack sufficient complexity and can be easily guessed or determined through brute-force attacks. Other times, malware, worms, or viruses infect a user's computer. Passwords can be obtained by logging keystrokes or scanning memory or hard drive storage devices. If the physical device is stolen, the password can be retrieved from the data stored in the memory or storage device. Once the password is compromised, criminals can access accounts and withdraw or transfer funds.
为了设法防止因用户密码被攻破而造成损失,处理金融交易的网站采用了风险评估,在风险评估中,使用了各种度量来确定发起交易的人员是否实际上是拥有该帐户的用户。交易时间、交易位置和交易环境等因素都是评估交易是否有风险的良好方式。例如,如果用户通常不在晚上使用帐户进行任何活动,则与下午3:00相比,将较不可能在凌晨3:00发起交易。同样,如果用户生活在美国,但在韩国发起交易,则这种位置差异将是一种警告标志。最后,如果正在处理的金额在量值上明显不同于往常,则这也是潜在欺诈的另一个信号。To help prevent losses due to compromised user passwords, websites that process financial transactions employ risk assessments, using various metrics to determine whether the person initiating the transaction is actually the account holder. Factors such as the time of transaction, location, and environment are all good ways to assess whether a transaction is risky. For example, if a user typically does not perform any activity on their account at night, they will be less likely to initiate a transaction at 3:00 AM than at 3:00 PM. Similarly, if a user lives in the United States but initiates a transaction in South Korea, this location discrepancy would be a warning sign. Finally, if the amount being processed is significantly different in magnitude than usual, this is another sign of potential fraud.
遗憾的是,Web浏览器对网站能够获得客户端系统的什么信息设置了非常严格的限制。因为浏览器将用户的机器暴露到外部(并且可能是恶意的)世界,所以泄漏非必要的任何数据都会对其自身造成安全风险。当然,记录交易时间、交易位置(例如,经由用户的IP地址)和交易量值是可行的。网站当前使用所有这些数据来确定交易是否具有欺诈性。然而,除了浏览器所提供的这些基本信息片段之外,网站没有其他信息来用于风险评估。由于对浏览器能够获得什么信息的限制,对用户交易的风险评估不是非常精确。Unfortunately, web browsers place very strict restrictions on what information websites can access from client systems. Because browsers expose users' machines to the outside (and potentially malicious) world, leaking any unnecessary data creates a security risk. Of course, it's possible to record transaction times, transaction locations (e.g., via the user's IP address), and transaction amounts. Websites currently use all of this data to determine whether a transaction is fraudulent. However, beyond this basic snippet of information provided by the browser, websites lack additional information to use for risk assessment. Due to the limitations on what information browsers can access, risk assessments of user transactions are not very accurate.
附图说明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 equipped with a biometric device;
图2示出非侵入式隐私保护验证器(NIPPA)的一个实施例;FIG2 illustrates one embodiment of a non-intrusive privacy preserving authenticator (NIPPA);
图3用图形示出在“合法用户状态”期间和在合法用户状态之后的本发明的一个实施例的操作;FIG3 graphically illustrates the operation of one embodiment of the present invention during and after a “valid user state”;
图4示出非侵入式隐私保护验证方法的一个实施例;FIG4 illustrates an embodiment of a non-intrusive privacy-preserving authentication method;
图5示出一个实施例中用于基于位置的验证的距离函数;FIG5 illustrates a distance function for location-based authentication in one embodiment;
图6用图形示出使用扩展合法用户状态窗口的本发明的一个实施例的操作;FIG6 graphically illustrates the operation of one embodiment of the present invention using an extended valid user status window;
图7示出根据本发明的一个实施例的自适应验证模块;FIG7 illustrates an adaptive verification module according to an embodiment of the present invention;
图8示出自适应验证方法的一个实施例;FIG8 illustrates an embodiment of an adaptive verification method;
图9用图形示出根据一个实施例的自适应验证;FIG9 graphically illustrates adaptive verification according to one embodiment;
图10示出具有多个组件的复合验证器的一个实施例。FIG10 illustrates one embodiment of a composite validator having multiple components.
图11示出两个验证器共享组件的一个实施例。FIG11 illustrates one embodiment where two validators share components.
图12示出包括管理用于验证组件的组件验证密钥(CAK)对的组件验证逻辑的验证器的一个实施例。12 illustrates one embodiment of an authenticator including component authentication logic that manages component authentication key (CAK) pairs used to authenticate components.
图13示出事务图,其示出了两个组件之间的验证的一个实施例。FIG13 shows a transaction diagram illustrating one embodiment of authentication between two components.
图14示出根据本发明的一个实施例的静态验证器。FIG14 illustrates a static verifier according to one embodiment of the present invention.
图15示出根据本发明的一个实施例的动态验证器。FIG15 illustrates a dynamic validator according to one embodiment of the present invention.
图16示出其上可实施本发明实施例的示例性系统架构。FIG16 illustrates an exemplary system architecture upon which embodiments of the present invention may be implemented.
图17示出用于执行验证策略的位置感知应用程序的系统的一个实施例;FIG17 illustrates one embodiment of a system for executing a location-aware application for authentication policies;
图18示出一组示例性验证策略规则;FIG18 illustrates an exemplary set of authentication policy rules;
图19示出根据本发明的一个实施例的方法;FIG19 illustrates a method according to one embodiment of the present invention;
图20示出本发明的一个实施例,其中由其他对等装置或网络装置的接近性确定或确认位置;FIG20 illustrates an embodiment of the present invention in which location is determined or confirmed by the proximity of other peer devices or network devices;
图21示出使用环境传感器的验证系统的一个实施例;FIG21 illustrates one embodiment of a verification system using environmental sensors;
图22示出使用环境传感器的验证方法的一个实施例;FIG22 illustrates one embodiment of a verification method using an environmental sensor;
图23示出用于自适应地应用验证策略的系统的一个实施例;FIG23 illustrates one embodiment of a system for adaptively applying authentication policies;
图24示出用于自适应地应用验证策略的方法的一个实施例;以及FIG24 illustrates one embodiment of a method for adaptively applying authentication policies; and
图25示出配备有生物计量装置的示例性客户端;FIG25 illustrates an exemplary client equipped with a biometric device;
图26示出包括眼动跟踪模块和面部识别模块的验证引擎的一个实施例;FIG26 illustrates one embodiment of a verification engine including an eye tracking module and a facial recognition module;
图27示出本发明的一个实施例中所采用的网页的示例性热图;FIG27 illustrates an exemplary heat map of a web page employed in one embodiment of the present invention;
图28A至图28B示出可向最终用户显示的示例性文本、图形、照片、视频、空白区域和其他内容;28A-28B illustrate exemplary text, graphics, photos, videos, white space, and other content that may be displayed to an end user;
图29示出用于执行基于眼动跟踪和面部识别的验证的方法的一个实施例;FIG29 illustrates one embodiment of a method for performing authentication based on eye tracking and facial recognition;
图30示出可在其中实施本发明实施例的不同架构布置。FIG30 illustrates different architectural arrangements in which embodiments of the invention may be implemented.
图31示出包括客户端风险评估代理的客户端架构的一个实施例;FIG31 illustrates one embodiment of a client-side architecture including a client-side risk assessment agent;
图32示出客户端风险评估代理使用的示例性类型的客户端配置数据;FIG32 illustrates exemplary types of client configuration data used by the client risk assessment agent;
图33示出用于在验证期间执行客户端风险评估的方法的一个实施例;FIG33 illustrates one embodiment of a method for performing client risk assessment during authentication;
图34示出执行与本地装置的安全交易的客户端的一个实施例;FIG34 illustrates one embodiment of a client performing a secure transaction with a local device;
图35示出用于执行与本地装置的安全交易的客户端架构的一个实施例;FIG35 illustrates one embodiment of a client architecture for performing secure transactions with a local device;
图36示出用于执行与本地装置的安全交易的方法的一个实施例;FIG36 illustrates one embodiment of a method for performing a secure transaction with a local device;
图37示出用于在线交易用户确认的系统的一个实施例;FIG37 illustrates one embodiment of a system for user confirmation of online transactions;
图38示出在用于在线交易用户确认的系统中所使用的客户端的一个实施例的细节;FIG38 shows details of one embodiment of a client used in a system for user confirmation of online transactions;
图39示出用于在线交易用户确认的方法的一个实施例;FIG39 illustrates one embodiment of a method for user confirmation of online transactions;
图40示出用于从可信客户端装置向新客户端装置委托信任的系统的一个实施例;FIG40 illustrates one embodiment of a system for delegating trust from a trusted client device to a new client device;
图41示出用于从可信客户端装置向新客户端装置委托信任的系统的一个实施例的额外细节;FIG41 illustrates additional details of one embodiment of a system for delegating trust from a trusted client device to a new client device;
图42示出用于从可信客户端装置向新客户端装置委托信任的方法的一个实施例;FIG42 illustrates one embodiment of a method for delegating trust from a trusted client device to a new client device;
图43示出用于在装置之间同步专用数据的系统的一个实施例;FIG43 illustrates one embodiment of a system for synchronizing private data between devices;
图44示出用于将装置添加到信任圈的方法的一个实施例;FIG44 illustrates one embodiment of a method for adding a device to a circle of trust;
图45示出用于在装置之间同步数据的方法的一个实施例;FIG45 illustrates one embodiment of a method for synchronizing data between devices;
图46A至图46B示出可在其中实施本发明实施例的不同示例性架构布置。46A-46B illustrate different exemplary architectural arrangements in which embodiments of the invention may be implemented.
图47是示出可如何发现客户端装置上的验证装置的事务图。47 is a transaction diagram illustrating how an authentication device on a client device may be discovered.
图48是示出用户可如何向验证装置登记的事务图。Figure 48 is a transaction diagram showing how a user may register with an authentication device.
图49是示出可如何将密钥注册到验证装置中的事务图。Figure 49 is a transaction diagram showing how keys can be registered into an authentication device.
图50是示出可如何在验证框架内实施用户验证的事务图。Figure 50 is a transaction diagram showing how user authentication can be implemented within the authentication framework.
图51是示出可如何验证交易细节的事务图。Figure 51 is a transaction diagram showing how transaction details can be verified.
图52示出根据本发明的一个实施例实施的查询策略筛选器。Figure 52 shows a query policy filter implemented according to one embodiment of the present invention.
图53是示出如何在本发明的一个实施例中实施查询策略的注册操作的事务图。Figure 53 is a transaction diagram showing how the registration operation of the query strategy is implemented in one embodiment of the present invention.
图54示出用于实施多个验证装置处理的架构的一个实施例。Figure 54 illustrates one embodiment of an architecture for implementing multiple authentication device processing.
图55A至图55C示出用于多验证装置处理的本发明的三个实施例。Figures 55A to 55C illustrate three embodiments of the present invention for multi-authentication device processing.
图56A至图56B示出用于检测随机质询超时并对其做出响应的事务图。56A-56B illustrate transaction diagrams for detecting and responding to a random challenge timeout.
图57示出根据本发明的一个实施例的用于实施隐私类别的架构。Figure 57 shows an architecture for implementing privacy classes according to one embodiment of the present invention.
图58是根据本发明的一个实施例的用于实施隐私类别的事务图。Figure 58 is a transaction diagram for implementing privacy categories according to one embodiment of the present invention.
图59示出用于使用签名验证交易的架构的一个实施例。Figure 59 illustrates one embodiment of an architecture for verifying transactions using signatures.
图60至图61示出用于执行本发明实施例的计算机系统的示例性实施例。60-61 illustrate exemplary embodiments of a computer system for implementing embodiments of the present invention.
具体实施方式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 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)或销售点(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 implemented on behalf of that entity (which 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.
A.非侵入式隐私保护验证A. Non-Intrusive Privacy-Preserving Verification
本发明的一个实施例使用“普通”验证技术(例如,轻扫手指、输入代码等)来训练验证系统识别非侵入式验证情形。另外,一个实施例在需要验证时向依赖方返回装置的验证状态,而非诸如机器ID等敏感信息。One embodiment of the present invention trains the authentication system to recognize non-intrusive authentication scenarios using "normal" authentication techniques (e.g., swiping a finger, entering a code, etc.) Additionally, one embodiment returns the authentication status of the device to the relying party when authentication is required, rather than sensitive information such as a machine ID.
下文描述的本发明的一些实施例可完全无阻力地工作(即,不需要任何显式用户验证)。可利用行为技术或其他技术来连续测量指示装置由经授权用户持有的当前保证的保证等级。可例如基于自从上次显式用户验证(例如,使用PIN或手指轻扫进行SIM卡或电话解锁)以来已经过去的时间来计算保证等级。假设已经过去的时间量在特定阈值(例如,5秒、5分钟、1小时等)内,则装置可被视为处于“合法用户状态”并且保证等级被设为最大值(例如,在-100到100的标准化尺度下为100)。Some embodiments of the present invention described below may work completely frictionlessly (i.e., without requiring any explicit user authentication). Behavioral or other techniques may be utilized to continuously measure an assurance level that indicates the current assurance that the device is in the possession of an authorized user. The assurance level may be calculated, for example, based on the time that has elapsed since the last explicit user authentication (e.g., SIM card or phone unlock using a PIN or finger swipe). Assuming the amount of time that has elapsed is within a certain threshold (e.g., 5 seconds, 5 minutes, 1 hour, etc.), the device may be considered to be in a "legitimate user state" and the assurance level may be set to a maximum value (e.g., 100 on a standardized scale of -100 to 100).
在合法用户状态之后,可基于自从显式用户验证以来过去的时间与指示装置由经授权用户持有的其他变量(例如,基于从装置传感器检测到的非侵入式输入)的组合来测量保证等级。例如,可使用加速度计或其他类型的传感器以及被设计为从用户的正常步行模式生成步态“指纹”的软件和/或硬件,来测量用户的生物计量步态。另外,可跟踪、存储距合法用户的常去目的地的距离并且随后用于确定保证等级。例如,如果用户正从已知为用户的家或办公室的位置连接到依赖方,则保证等级可被设为相对较高的值,而如果装置正从未知位置或遥远的位置连接,则保证等级可被调整到较低等级。After the legitimate user state, the assurance level can be measured based on a combination of the time that has passed since explicit user authentication and other variables that indicate that the device is in the possession of an authorized user (e.g., based on non-intrusive input detected from the device's sensors). For example, the user's biometric gait can be measured using an accelerometer or other type of sensor and software and/or hardware designed to generate a gait "fingerprint" from the user's normal walking pattern. In addition, the distance to the legitimate user's frequented destinations can be tracked, stored, and subsequently used to determine the assurance level. For example, if the user is connecting to the relying party from a location known to be the user's home or office, the assurance level can be set to a relatively high value, while if the device is connecting from an unknown or remote location, the assurance level can be adjusted to a lower level.
可执行各种其他类型的非侵入式测量来确定装置是否由经授权用户持有,包括(例如)客户端装置所连接到的网络或装置的身份,诸如蓝牙装置、近场通信(NFC)装置、Wifi装置(诸如路由器或接入点)、智能手表、其他计算装置、Nymi手环,等等。Wifi装置可包括够得着的Wifi网络的可见性,诸如家中的个人Wifi路由器,以及同事或家庭成员使用的具Wifi功能的计算机。另外,可利用客户端装置的某些特定特征(诸如加速度传感器特征和数码相机传感器图案噪声)来进行非侵入式测量。还可分析正常用户交互的触摸屏手势并将其存储为参考数据,并且可以分析正常用户交互时的用户打字行为并将其存储为参考数据。当然,前述内容仅仅是几个例子;本发明的基本原理不限于任何的非侵入式变量组。Various other types of non-intrusive measurements can be performed to determine whether a device is in the possession of an authorized user, including, for example, the identity of the network or device to which the client device is connected, such as a Bluetooth device, a near-field communication (NFC) device, a Wi-Fi device (such as a router or access point), a smartwatch, other computing devices, a Nymi wristband, and the like. Wi-Fi devices can include visibility of accessible Wi-Fi networks, such as a personal Wi-Fi router in a home, and Wi-Fi-enabled computers used by coworkers or family members. Additionally, certain specific characteristics of the client device, such as accelerometer characteristics and digital camera sensor pattern noise, can be utilized for non-intrusive measurements. Touchscreen gestures during normal user interaction can also be analyzed and stored as reference data, and user typing behavior during normal user interaction can be analyzed and stored as reference data. Of course, the foregoing are merely a few examples; the underlying principles of the present invention are not limited to any set of non-intrusive variables.
最终结果是可在验证响应中将合法用户仍持有装置的保证等级发送到依赖方。在一个实施例中,通过密钥(例如,在注册阶段中建立并证实的依赖方特定密钥,如下文论述)“签署”或以其他方式验证保证等级。在一个实施例中,保证等级被标准化为-100到100之间的值,其中-100意味着“几乎确定其不是合法用户”,0意味着“不知道”,100意味着“几乎确定其是合法用户”。The end result is that a level of assurance that the legitimate user still possesses the device can be sent to the relying party in the verification response. In one embodiment, the assurance level is "signed" or otherwise verified by a key (e.g., a relying party-specific key established and certified during the registration phase, as discussed below). In one embodiment, the assurance level is normalized to a value between -100 and 100, where -100 means "almost certain it is not the legitimate user," 0 means "don't know," and 100 means "almost certain it is the legitimate user."
在一个实施例中,如果保证等级对于预期交易是不可接受的,则依赖方可要求客户端装置使用额外的“普通”验证器响应。不管要求什么等级的验证,有一个实施例不向依赖方公开个人数据,而是使用专用于一个特定依赖方的密码密钥来向依赖方验证验证器。In one embodiment, if the assurance level is unacceptable for the intended transaction, the relying party may require the client device to respond using an additional "normal" authenticator. Regardless of the level of authentication required, one embodiment does not disclose personal data to the relying party, but rather uses a cryptographic key specific to a particular relying party to authenticate the authenticator to the relying party.
图2中示出用于提供非侵入式隐私保护验证的架构的一个实施例,该架构包括非侵入式隐私保护验证器(NIPPA)210,而非侵入式隐私保护验证器(NIPPA)210包括用于基于来自非侵入式验证机制230(例如,位置、步态测量等)和一个或多个显式用户验证装置220至221(例如,指纹传感器、用于输入ID代码的输入装置等)的输入来确定当前保证等级的保证度计算器212。在一个实施例中,显式用户验证装置220至221包括如图1所示的相同或相似架构。FIG2 shows one embodiment of an architecture for providing non-intrusive privacy-preserving authentication, which includes a non-intrusive privacy-preserving authenticator (NIPPA) 210, and the non-intrusive privacy-preserving authenticator (NIPPA) 210 includes an assurance calculator 212 for determining a current assurance level based on input from a non-intrusive authentication mechanism 230 (e.g., location, gait measurement, etc.) and one or more explicit user authentication devices 220 to 221 (e.g., fingerprint sensor, input device for entering ID code, etc.). In one embodiment, the explicit user authentication devices 220 to 221 include the same or similar architecture as shown in FIG1.
在图2所示的实施例中,非侵入式验证230包括位置验证模块231,这个模块用于使用位置传感器241以及存储在用户/位置数据存储装置245(例如,其可被实施为文件系统或数据库)内的历史位置数据或用户指定的位置数据执行基于位置的验证。以举例而非限制的方式,位置传感器241可包括GPS装置和/或用于检测客户端200所连接到的当前接入点或手机发射塔(其可用于估计装置的当前位置)的模块。可使用能够提供与用户的位置相关的数据的任何传感器。位置验证模块231确定客户端装置的当前位置对保证等级的影响。例如,如果装置当前位于“家”或“办公室”位置(根据历史位置数据或用户指定的位置数据245),则可上调保证等级;而如果装置当前位于遥远的未知位置,则可下调保证等级。除了在一个实施例中在“合法用户状态”期间自动训练系统(如本文描述)之外,用户具有将某些位置手动指定为“可信”并且因此具有高保证等级(例如,当用户在家或在办公室时)的能力。位置验证模块231的结果提供到保证度计算模块212,在保证度计算模块212中,可以将位置验证模块231的结果计入到当前保证等级计算中。In the embodiment shown in FIG2 , non-intrusive authentication 230 includes a location authentication module 231 for performing location-based authentication using a location sensor 241 and historical or user-specified location data stored in a user/location data storage device 245 (e.g., which may be implemented as a file system or database). By way of example and not limitation, location sensor 241 may include a GPS device and/or a module for detecting the current access point or cell tower to which client 200 is connected (which may be used to estimate the device's current location). Any sensor capable of providing data related to the user's location may be used. Location authentication module 231 determines the impact of the client device's current location on the assurance level. For example, if the device is currently located at "home" or "office" (based on historical or user-specified location data 245), the assurance level may be adjusted upward, while if the device is currently located at a remote, unknown location, the assurance level may be adjusted downward. In addition to automatically training the system during a "legitimate user state" (as described herein), in one embodiment, users have the ability to manually designate certain locations as "trusted" and therefore having a high assurance level (e.g., when the user is at home or at the office). The result of the location verification module 231 is provided to the assurance level calculation module 212 , where the result of the location verification module 231 may be incorporated into the current assurance level calculation.
用户行为验证模块232依赖于一个或多个用户行为传感器242来确定当前用户行为与历史用户行为(存储在用户与位置数据存储装置245中)一致的程度。例如,用户行为传感器242可提供加速度计测量值,用户行为验证模块可使用加速度计测量值来确定当前持有装置200的用户的步态。之后,用户行为验证模块可将这些测量值与用户的已知步态(在先前显式用户验证之后收集并且存储在存储装置245中)进行比较,得出合法用户持有装置的置信等级。结果提供到保证度计算模块212,然后在保证度计算模块212中计入到当前保证等级计算中。The user behavior verification module 232 relies on one or more user behavior sensors 242 to determine the degree to which the current user behavior is consistent with historical user behavior (stored in the user and location data storage device 245). For example, the user behavior sensor 242 may provide accelerometer measurements, which the user behavior verification module may use to determine the gait of the user currently holding the device 200. The user behavior verification module may then compare these measurements with the user's known gait (collected after a previous explicit user verification and stored in the storage device 245) to derive a confidence level that the device is held by a legitimate user. The result is provided to the assurance calculation module 212, where it is then factored into the current assurance level calculation.
各种其他/额外验证装置233可从其他/额外传感器243收集数据以执行验证计算,验证计算的结果提供到保证度计算模块212,以计入在当前保证等级计算中。Various other/additional verification devices 233 may collect data from other/additional sensors 243 to perform verification calculations, the results of which are provided to the assurance calculation module 212 to be factored into the current assurance level calculation.
虽然在图2中示出为单独模块,但位置验证模块231、用户行为模块232和任何其他验证模块233可形成保证度计算模块212的一部分。本发明的基本原理可使用模块的各种不同逻辑布置来实施。2 as separate modules, the location verification module 231, the user behavior module 232, and any other verification modules 233 may form part of the assurance calculation module 212. The basic principles of the invention may be implemented using various different logical arrangements of modules.
如图所示,在一个实施例中,保证度计算模块212在测量自从上次显式用户验证以来已经过去的时间量时依赖于计时器211。如下文详细的论述,自从上次显式用户验证以来已经过去的时间量可用于确定装置当前是否处于“合法用户状态”并且相应地调整保证度测量值。As shown, in one embodiment, the assurance calculation module 212 relies on the timer 211 when measuring the amount of time that has passed since the last explicit user authentication. As discussed in detail below, the amount of time that has passed since the last explicit user authentication can be used to determine whether the device is currently in a "legitimate user state" and adjust the assurance measurement value accordingly.
一旦保证度计算模块212得出当前保证度测量值,其便可将测量值传送到经由安全通信模块213建立的依赖方(在一个实施例中为云服务)。例如,每个验证器220至221(包括非侵入式验证器230)可在注册操作(在验证之前)中交换依赖方特定的且经过证实的密钥。在验证操作中返回的保证等级可为通过依赖方特定的验证密钥签署/加密的消息的一部分。另外,如下文论述,该消息还可包括由依赖方生成的随机数(例如,随机质询)。Once the assurance calculation module 212 has determined the current assurance measurement, it can transmit the measurement to a relying party (in one embodiment, a cloud service) established via the secure communication module 213. For example, each verifier 220 to 221 (including the non-intrusive verifier 230) can exchange a relying party-specific and certified key in a registration operation (before verification). The assurance level returned in the verification operation can be part of a message signed/encrypted with the relying party-specific verification key. In addition, as discussed below, the message can also include a random number generated by the relying party (e.g., a random challenge).
在一个实施例中,安全存储装置225是被提供用于存储与每个验证器相关联并且被安全通信模块213用于与依赖方建立安全通信的验证密钥的安全存储装置。In one embodiment, secure storage 225 is a secure storage provided for storing authentication keys associated with each authenticator and used by secure communication module 213 to establish secure communications with relying parties.
如所提及的,在一个实施例中,NIPPA 210利用现有(显式)用户验证技术(例如,基于密码的系统登录、SIM卡解锁等)在每次此类成功验证之后的定义时间窗(多达T1秒)内维持“合法用户”状态。NIPPA210可从各种传感器241至243周期性地测量用户行为,并且在处于“合法用户”状态时,NIPPA 210可根据测量值更新其内部参考数据向量。在未处于“合法用户”状态时,NIPPA 210可基于当前测量值来计算距参考数据向量的标准化“距离”。这个“距离”被视为合法用户仍持有验证器的确定性。As mentioned, in one embodiment, NIPPA 210 utilizes existing (explicit) user authentication techniques (e.g., password-based system login, SIM card unlocking, etc.) to maintain the "legitimate user" status within a defined time window (up to T1 seconds) after each such successful authentication. NIPPA 210 can periodically measure user behavior from various sensors 241 to 243, and when in the "legitimate user" state, NIPPA 210 can update its internal reference data vector based on the measurements. When not in the "legitimate user" state, NIPPA 210 can calculate a normalized "distance" from the reference data vector based on the current measurements. This "distance" is considered to be the certainty that the legitimate user still holds the authenticator.
当被要求验证用户时,NIPPA 210可检查确定其是否处于“合法用户”状态。如果是,则视为验证成功并且返回最大保证等级(例如,100)。如果未处于“合法用户”状态,则NIPPA 210可返回由保证度计算模块212基于最新测量值计算出的保证等级。NIPPA 210可接着组合保证等级和相应测量值tm与当前时间tc的时间差td(td=tc-tm)。在一个实施例中,这个过程使用以下逻辑来完成:When asked to authenticate a user, NIPPA 210 may check to determine if the user is in the "valid user" state. If so, authentication is deemed successful and the maximum assurance level (e.g., 100) is returned. If the user is not in the "valid user" state, NIPPA 210 may return the assurance level calculated by assurance calculation module 212 based on the latest measurement. NIPPA 210 may then combine the assurance level with the time difference td (td=tc-tm) between the corresponding measurement tm and the current time tc. In one embodiment, this process is accomplished using the following logic:
(1)如果(保证等级>=0),则所得保证等级=保证等级*(最大(T0-td,0)/T0),其中T0是最大可接受时间差;以及(1) If (Guarantee Level>=0), then Resulting Guarantee Level=Guarantee Level*(Maximum (T0-td,0)/T0), where T0 is the maximum acceptable time difference; and
(2)如果(保证等级<0),则所得保证等级=保证等级。(2) If (guarantee level < 0), then the obtained guarantee level = guarantee level.
图3中示出根据以上公式的本发明的一个实施例的操作。在时间t1处,用户执行显式验证(例如,轻扫手指、输入PIN以解锁SIM卡等)。直到t1+T1的时间窗被视为“合法用户”状态。如所提及的,可在合法用户状态内训练非侵入式验证器。例如,可测量用户的步态,并且/或者可记录用户所访问的位置并且随后用于执行非侵入式验证。FIG3 illustrates the operation of one embodiment of the present invention according to the above formula. At time t1, the user performs explicit authentication (e.g., swiping a finger, entering a PIN to unlock a SIM card, etc.). The time window up to t1+T1 is considered the "valid user" state. As mentioned, the non-intrusive authenticator can be trained within the valid user state. For example, the user's gait can be measured, and/or the locations visited by the user can be recorded and subsequently used to perform non-intrusive authentication.
在时间t2(未处于合法用户状态)处,保证度计算模块212基于非侵入式验证器来计算保证等级。所得结果为正值,这代表装置有可能在合法用户的完全控制下。在这个计算之后,保证等级随时间推移而降低(例如,合法用户可能将装置暴露给了非合法人员)。例如,在时间t3处,保证等级已经比时间t2处的值显著变小。在一个实施例中,仅周期性计算非侵入式保证等级,以免消耗过多的功率和CPU性能。At time t2 (not in the authorized user state), the assurance calculation module 212 calculates the assurance level based on the non-intrusive verifier. The result is a positive value, which means that the device is likely under the full control of the authorized user. After this calculation, the assurance level decreases over time (for example, the authorized user may expose the device to unauthorized persons). For example, at time t3, the assurance level has become significantly lower than the value at time t2. In one embodiment, the non-intrusive assurance level is only calculated periodically to avoid consuming excessive power and CPU performance.
在t5处,发生另一个非侵入式保证等级计算。此时,所得结果为负,这代表装置有可能不在合法用户的完全控制下。这个负保证等级直到基于非侵入式验证器来执行另一个计算(例如,在时间t6处)时才发生改变。At t5, another non-intrusive assurance level calculation occurs. This time, the result is negative, indicating that the device is likely not under the full control of the legitimate user. This negative assurance level does not change until another calculation is performed based on the non-intrusive authenticator (e.g., at time t6).
图4至5中示出根据一个实施例的方法。该方法可在诸如图2所示的系统架构等系统架构内实施,但不限于任何特定系统架构。A method according to one embodiment is shown in Figures 4 to 5. The method may be implemented within a system architecture such as the system architecture shown in Figure 2, but is not limited to any particular system architecture.
在401处,发生显式验证事件,诸如在指纹传感器上轻扫手指或输入PIN以解锁装置。还可启动计时器来测量自从显式验证事件以来已经过去的时间。在402处,进入合法用户状态;在403处,可测量用户行为的各个方面并存储下来以供以后参考(例如,位置、用户步态等)。如果在404处确定在合法用户状态期间发生了验证请求(例如,从与依赖方的交易产生),则在405处选择最大保证等级并且在420处发送到依赖方。At 401, an explicit authentication event occurs, such as swiping a finger on a fingerprint sensor or entering a PIN to unlock the device. A timer may also be started to measure the time that has elapsed since the explicit authentication event. At 402, a valid user state is entered; at 403, various aspects of the user's behavior may be measured and stored for later reference (e.g., location, user gait, etc.). If, at 404, it is determined that an authentication request occurred during the valid user state (e.g., resulting from a transaction with a relying party), a maximum assurance level is selected at 405 and sent to the relying party at 420.
在406处,系统退出合法用户状态(例如,因为计时器指示已经过去指定的时间量)。在407处,系统周期性地通过将来自传感器的数据与在操作403中存储的内部参考数据进行比较来测量用户行为。举例来说,可将与用户步态相关联的测量值(在处于合法用户状态时收集)与当前步态测量值(在407处收集)进行比较,并且可计算两者之间的相关性(称为距参考数据的“距离”)。如果在408处确定在未处于合法用户状态时收到验证请求,则在409处,基于距内部参考数据的距离并且可能基于自从显式验证事件以来的时间来计算当前保证等级。接着在420处将保证等级传输到依赖方。At 406, the system exits the legitimate user state (e.g., because a timer indicates that a specified amount of time has elapsed). At 407, the system periodically measures user behavior by comparing data from the sensors with the internal reference data stored in operation 403. For example, measurements associated with the user's gait (collected while in the legitimate user state) can be compared with current gait measurements (collected at 407), and a correlation between the two (referred to as the "distance" from the reference data) can be calculated. If, at 408, it is determined that a verification request was received while not in the legitimate user state, then, at 409, a current assurance level is calculated based on the distance from the internal reference data and possibly the time since the explicit verification event. The assurance level is then transmitted to the relying party at 420.
转到图5,如果在501处确定传输到依赖方的保证等级对于与用户的当前交易为可接受的,则依赖方可向客户端装置发送指示验证成功的响应。如果不可接受,则在503处,依赖方可向客户端发送指示需要额外验证的响应(例如,如果非侵入式验证不充分,则有可能需要显式用户验证)。5 , if it is determined at 501 that the assurance level transmitted to the relying party is acceptable for the current transaction with the user, the relying party may send a response to the client device indicating successful authentication. If not, at 503, the relying party may send a response to the client device indicating that additional authentication is required (e.g., if non-intrusive authentication is insufficient, explicit user authentication may be required).
在替代实施例中,依赖方可最初指定特定交易所需要的保证等级,并且系统将确保满足所需要的保证等级,在非侵入式验证技术不充分的情况下系统有可能使用显式用户验证来确保。之后,系统可向依赖方发送验证成功的指示(而非保证等级)。In an alternative embodiment, a relying party may initially specify the assurance level required for a particular transaction, and the system will ensure that the required assurance level is met, possibly using explicit user authentication if non-intrusive authentication techniques are insufficient. The system may then send an indication of successful authentication (rather than an assurance level) to the relying party.
如上所述,本发明的一个实施例计算距一组已知用户位置的距离以确定保证等级。参见图6,可使用基于位置的测量值(例如,诸如GPS)来如下地计算“距离”函数。As described above, one embodiment of the present invention calculates distance from a set of known user locations to determine the assurance level. Referring to Figure 6, a "distance" function may be calculated as follows using location based measurements (such as GPS, for example).
在预处理操作中,所有测量位置(Ln)都会分配给其最近的“区域”。区域被定义为具有半径r(例如,10米)的圆圈。这些区域被设置为使得用最小数量的区域覆盖所有Ln。从区域集合中移除覆盖少于M个位置的所有区域(即,因为这些位置不被视为用户的“频繁”位置)。In a pre-processing operation, all measured locations (Ln) are assigned to their nearest "zone." A zone is defined as a circle with a radius r (e.g., 10 meters). These zones are set so that all Ln are covered by a minimum number of zones. All zones that cover fewer than M locations are removed from the zone set (i.e., because these locations are not considered "frequent" locations for the user).
接着使用“距离=(当前位置(Lc)到区域(Rn)的最近中心的距离)/r”来确定“距离”(d),其中r是区域的半径。如果Lc在现有区域内,则这个值小于或等于1;如果Lc在外部,则这个值可变得很大。接着使用下式计算保证等级:保证等级=最大(100-50*floor(d),-100);保证等级的值在-100至100的范围内。Next, the distance (d) is determined using "Distance = (distance from current position (Lc) to the nearest center of region (Rn)) / r," where r is the radius of the region. If Lc is within the existing region, this value is less than or equal to 1; if Lc is outside, this value can be much larger. The guarantee level is then calculated using the following formula: Guarantee Level = Maximum (100 - 50 * floor (d), -100); the guarantee level value is in the range of -100 to 100.
在有些上述实施例中,假设的是合法用户在显式验证之后的特定时间窗内仍持有客户端装置,或者假设当前行为非常类似于测得的行为。然而,上述实施例仅在显式验证之后的特定时间窗内更新行为参考数据。In some of the above embodiments, it is assumed that the legitimate user still possesses the client device within a specific time window after explicit authentication, or that the current behavior is very similar to the measured behavior. However, the above embodiments only update the behavior reference data within a specific time window after explicit authentication.
如图7所示,本发明的一个实施例除了合法用户状态的标准时间窗之外,还使用扩展时间窗来更新行为参考数据(即,训练系统)。因而,可如下地定义整个时间窗(包括标准时间窗和扩展时间窗):(1)如果在成功显式用户验证之后的合法用户状态时间窗(即,t1...t1+T1)内,或(2)如果返回的保证等级将高于某个阈值T(例如,T=90,在例如t2、t4等处)。将阈值设为0是不合需要的,因为这将使得攻击者很容易将行为参考“转变”为对他有利。As shown in FIG7 , one embodiment of the present invention uses an extended time window in addition to the standard time window of legitimate user status to update the behavioral reference data (i.e., train the system). Thus, the entire time window (including the standard time window and the extended time window) can be defined as follows: (1) if within the legitimate user status time window (i.e., t1...t1+T1) after successful explicit user authentication, or (2) if the returned assurance level will be above a certain threshold T (e.g., T=90, at, for example, t2, t4, etc.). Setting the threshold to 0 is undesirable because it would make it easy for an attacker to "turn" the behavioral reference in his favor.
B.自适应验证技术B. Adaptive Verification Technology
图8示出用于实施自适应验证技术的本发明的一个实施例。如在上文论述的实施例中,这个实施例包括一个或多个用于执行非侵入式验证(例如,基于位置、所感测到的用户行为等)的非侵入式验证模块230,以及一个或多个用于执行显式用户验证(例如,需要PIN、指纹扫描等)的显式验证模块222。另外,如在先前的实施例中,保证度计算模块212基于(例如)自从上次显式验证以来的时间(由计时器211提供)和/或由各种验证模块230、222提供的验证数据来计算保证度。安全通信模块213建立与依赖方250的安全通信(例如,使用安全加密密钥,如上文论述)。FIG8 illustrates one embodiment of the present invention for implementing adaptive authentication techniques. As in the embodiments discussed above, this embodiment includes one or more non-intrusive authentication modules 230 for performing non-intrusive authentication (e.g., based on location, sensed user behavior, etc.), and one or more explicit authentication modules 222 for performing explicit user authentication (e.g., requiring a PIN, fingerprint scan, etc.). Additionally, as in the previous embodiments, an assurance calculation module 212 calculates assurance based on, for example, the time since the last explicit authentication (provided by a timer 211) and/or authentication data provided by the various authentication modules 230, 222. A secure communication module 213 establishes secure communication with a relying party 250 (e.g., using a secure encryption key, as discussed above).
在一个实施例中,自适应验证模块800动态地在可用的非侵入式验证技术和显式/侵入式验证技术当中进行选择以得出对于与依赖方250的当前交易而言足够的保证等级。或者,或另外,依赖方250上的自适应验证模块810可执行验证选择技术来得出足够的保证等级。不管是在客户端装置200上(通过自适应验证模块800)还是在依赖方250上(通过自适应验证模块810)实施验证选择技术,本发明的基本原理仍然相同。In one embodiment, adaptive authentication module 800 dynamically selects among available non-intrusive authentication techniques and explicit/intrusive authentication techniques to derive a sufficient level of assurance for the current transaction with relying party 250. Alternatively, or in addition, adaptive authentication module 810 on relying party 250 may perform authentication selection techniques to derive a sufficient level of assurance. Regardless of whether the authentication selection techniques are implemented on client device 200 (via adaptive authentication module 800) or on relying party 250 (via adaptive authentication module 810), the underlying principles of the present invention remain the same.
此外,图8所示的“依赖方”250可表示可信第三方服务器,可信第三方服务器可代表依赖方实施本文所述的验证技术并且将结果提供给依赖方。因此,尽管以“依赖方”描述本发明的实施例,但本发明的基本原理可使用在由依赖方操作的网络的周界之外的服务器来实施。In addition, the "relying party" 250 shown in Figure 8 can represent a trusted third-party server that can implement the verification techniques described herein on behalf of the relying party and provide the results to the relying party. Therefore, although the embodiments of the present invention are described in terms of a "relying party," the basic principles of the present invention can be implemented using servers outside the perimeter of the network operated by the relying party.
如下文更详细的论述,在一个实施例中,自适应验证模块810包括风险引擎812以基于与客户端装置相关联的变量(例如,基于当前IP地址、IP包往返延迟时间等)来确定风险等级。另外,保证等级增益分析组件811可确定要得到可接受的保证等级必须将当前保证等级增加的量。尽管图8中将这些元件示出为依赖方的自适应验证模块810的组件,但这些元件还可在同时仍符合本发明的基本原理的情况下在客户端的自适应验证模块800内实施。As discussed in more detail below, in one embodiment, the adaptive verification module 810 includes a risk engine 812 to determine a risk level based on variables associated with the client device (e.g., based on the current IP address, the round-trip delay of the IP packet, etc.). Additionally, an assurance level gain analysis component 811 can determine the amount by which the current assurance level must be increased to achieve an acceptable assurance level. Although these elements are shown in FIG8 as components of the adaptive verification module 810 of the relying party, these elements can also be implemented within the adaptive verification module 800 of the client while still complying with the underlying principles of the present invention.
在一个实施例中,一旦客户端装置200连接到依赖方250(例如,以发起交易),风险引擎812便基于当前可用的所有数据来确定风险(或保证等级)。可用数据可包括,例如客户端装置200的地理位置(例如,从IP地址得出或由移动网络运营商提供)、在客户端装置200与依赖方250之间传输的包的往返延迟时间、在客户端装置200与依赖方250之间发送的网络包的跳数、由在客户端装置200上执行的用户代理发送的特定“用户代理”字符串,等等。在一个实施例中,风险引擎812接着评估这些数据以得出隐式“风险得分”(或与风险得分负相关的初始保证等级),这一得分可用于确定针对给定交易验证用户所需要的额外保证度的量。In one embodiment, once client device 200 connects to relying party 250 (e.g., to initiate a transaction), risk engine 812 determines the risk (or assurance level) based on all currently available data. The available data may include, for example, the geographic location of client device 200 (e.g., derived from the IP address or provided by the mobile network operator), the round-trip latency of packets transmitted between client device 200 and relying party 250, the number of network hops sent between client device 200 and relying party 250, a specific "user-agent" string sent by the user agent executing on client device 200, and the like. In one embodiment, risk engine 812 then evaluates this data to derive an implicit "risk score" (or an initial assurance level that is inversely correlated to the risk score), which can be used to determine the amount of additional assurance required to authenticate the user for a given transaction.
在一个实施例中,基于隐式风险得分,依赖方810或客户端装置800上的自适应验证模块确定一组有可能使整体保证等级增大到预期交易所需要的等级(即,当与初始保证等级/隐式风险得分组合时)的一个或多个验证模块222、230。在一个实施例中,保证等级增益分析模块811确定所需要的增益,并且自适应验证模块800、810获得关于所需保证等级增益的指示以作为参数。自适应验证模块800、810接着使用这个“增益”参数来确定一组最便利的验证技术(非侵入式230和/或显式222)以便实现(至少)所需的增益。自适应验证模块800可在对依赖方250的响应中加入对选定验证技术组的形式描述(例如,作为经验证的扩展)。依赖方250可接着验证所得的整体保证等级是否满足所需等级。In one embodiment, based on the implicit risk score, the adaptive authentication module on the relying party 810 or client device 800 determines a set of one or more authentication modules 222, 230 that are likely to increase the overall assurance level to the level required for the intended transaction (i.e., when combined with the initial assurance level/implicit risk score). In one embodiment, the assurance level gain analysis module 811 determines the required gain, and the adaptive authentication module 800, 810 obtains an indication of the required assurance level gain as a parameter. The adaptive authentication module 800, 810 then uses this "gain" parameter to determine a set of the most convenient authentication techniques (non-intrusive 230 and/or explicit 222) to achieve (at least) the required gain. The adaptive authentication module 800 may include a formal description of the selected authentication technique set in its response to the relying party 250 (e.g., as a verified extension). The relying party 250 may then verify whether the resulting overall assurance level meets the required level.
以举例而非限制的方式,自适应验证模块800可组合多种验证形式,诸如装置指纹识别(例如,识别传感器缺陷或相机传感器图案噪声);环境信息(例如,基于GPS的位置;从WIFI网络得出的位置;到其他小配件(如Nymi)、智能手表(pebble)或外围设备(如头戴式耳机)的有线或无线连接的存在等);行为数据(例如,用户从口袋中取出装置的方式、打字行为、步态等);自从装置处于“可信”状态以来的时间;以及可能的使用实现保证等级所需(剩余)增益所需要的一种或多种验证形式(生物计量或其他方式)的新显式验证的结果。By way of example and not limitation, the adaptive authentication module 800 may combine multiple forms of authentication, such as device fingerprinting (e.g., identifying sensor defects or camera sensor pattern noise); environmental information (e.g., GPS-based location; location derived from a WIFI network; the presence of a wired or wireless connection to other gadgets (such as Nymi), smart watches (pebbles), or peripherals (such as headphones); behavioral data (e.g., how the user removes the device from a pocket, typing behavior, gait, etc.); time since the device was in a "trusted" state; and the results of possible new explicit authentication using one or more forms of authentication (biometric or otherwise) required to achieve the desired (remaining) gain in assurance level.
以上技术的结果是用户可选择最便利的验证方法。如果装置是智能电话,这可能只是获得了电话的使用权限而已(见上文)。也可不要求用户选择验证方法并且随后需要用户进行另一种显式验证,而是由依赖方250将关于所需保证等级增益的指示发送到自适应验证器800、810,所述自适应验证器800、810识别一组侵入性最小的验证技术。自适应验证模块800、810并不总是需要显式(侵入式)用户验证(如输入PIN或轻扫手指),也不是单独基于非侵入式形式。相反,这种验证器选择(客户端侧上的)所有可用形式的恰当组合,以便实现所需的保证等级增益。The result of the above techniques is that the user can select the most convenient authentication method. If the device is a smart phone, this may simply be obtaining access to the phone (see above). Instead of requiring the user to select an authentication method and subsequently requiring the user to perform another explicit authentication, the relying party 250 may send an indication of the required assurance level gain to the adaptive authenticator 800, 810, which identifies a set of minimally invasive authentication techniques. The adaptive authentication module 800, 810 does not always require explicit (invasive) user authentication (such as entering a PIN or swiping a finger), nor is it based solely on non-invasive forms. Instead, such an authenticator selects the appropriate combination of all available forms (on the client side) to achieve the required assurance level gain.
如上文详细的论述,自从装置处于可信状态以来的时间非常重要,因为入侵/欺骗形式可能需要时间。例如,如果用户的电话遗失,而有人尝试入侵该电话,则可能需要一天的时间才能够从显示器捕捉指纹、制作适用的橡胶指套并且随后将其用于获取访问权限。因此,在自从上次处于可信状态过去24小时或更少时间之后要求输入PIN,将足以抵御这种类型的攻击。下一个等级的攻击是在获得使用权限之前捕捉指纹的攻击。这些攻击实际上较少看到。然而,如果依赖方250需要抵御此类攻击,则自适应验证模块800、810可能需要考虑位置数据或者其他小配件或外围设备的存在,以便接受生物计量形式。As discussed in detail above, the time since the device was in a trusted state is very important because forms of intrusion/spoofing can take time. For example, if a user's phone is lost and someone attempts to hack into the phone, it may take a day to capture a fingerprint from the display, create a suitable rubber finger ring, and then use it to gain access. Therefore, requiring a PIN to be entered after 24 hours or less has passed since the last time it was in a trusted state will be sufficient to protect against this type of attack. The next level of attack is an attack that captures the fingerprint before gaining access. These attacks are less commonly seen in practice. However, if the relying party 250 needs to protect against such attacks, the adaptive authentication modules 800, 810 may need to consider location data or the presence of other gadgets or peripherals in order to accept biometric forms.
图9中示出根据本发明的一个实施例的方法。如上文论述,如本文所使用的“依赖方”可为依赖于对用户准确验证的实际方或可为代表依赖方验证用户的第三方服务。A method according to one embodiment of the present invention is shown in Figure 9. As discussed above, a "relying party" as used herein may be the actual party relied upon for accurate authentication of a user or may be a third party service authenticating a user on behalf of the relying party.
在901处,客户端装置连接到依赖方以执行交易(例如,登录在线账户的交易、货币交易等)。在902处,依赖方分析与客户端装置相关的任何可用数据,确定风险值以及验证用户需要的所需保证等级增益。例如,这些数据可指示用户正从未知网络位置(例如,用户先前从未去过的外国)连接到依赖方并且/或者客户端与依赖方之间的网络路由跳数或延迟时间高于阈值。在这种情况下,可将风险值设为相对较高的值(或,相反地,隐式保证等级可较低)。然而,如果用户最近恰好向装置显式验证过(例如,输入PIN),则这往往会降低风险等级(或提高隐式保证等级)。At 901, a client device connects to a relying party to perform a transaction (e.g., a transaction to log into an online account, a monetary transaction, etc.). At 902, the relying party analyzes any available data associated with the client device and determines a risk value and a desired assurance level gain required to authenticate the user. For example, such data may indicate that the user is connecting to the relying party from an unknown network location (e.g., a foreign country that the user has never been to before) and/or that the number of network routing hops or latency between the client and the relying party is above a threshold. In such cases, the risk value may be set to a relatively high value (or, conversely, the implicit assurance level may be lower). However, if the user has recently explicitly authenticated to the device (e.g., by entering a PIN), this may tend to lower the risk level (or increase the implicit assurance level).
可基于完成交易所需要的保证等级确定保证等级增益。可(例如)使用诸如下式的公式来计算:隐式保证等级+保证等级增益=所需保证等级,或保证等级增益=所需保证等级-隐式保证等级。可在同时仍符合本发明的基本原理的情况下使用各种其他公式来确定保证等级增益。The assurance level gain can be determined based on the assurance level required to complete the transaction. For example, it can be calculated using a formula such as: Implicit Assurance Level + Assurance Level Gain = Required Assurance Level, or Assurance Level Gain = Required Assurance Level - Implicit Assurance Level. Various other formulas can be used to determine the assurance level gain while still complying with the underlying principles of the present invention.
在903处,接收关于所需要的保证等级增益的指示。如果在904处确定非侵入式验证技术足以实现保证等级增益,则在905处使用这些技术来验证用户。如果不是,则在907处,实施一种或多种显式验证形式,其中有可能与一种或多种非侵入式验证形式结合实施。如所提及的,可选择对最终用户最不繁琐的形式(例如,基于用户指定的偏好)。At 903, an indication of a desired assurance level gain is received. If, at 904, it is determined that non-intrusive authentication techniques are sufficient to achieve the assurance level gain, then at 905, the user is authenticated using these techniques. If not, at 907, one or more explicit authentication forms are implemented, possibly in conjunction with one or more non-intrusive authentication forms. As mentioned, the form that is least onerous for the end user may be selected (e.g., based on user-specified preferences).
图10用图形示出上文所述的本发明的实施例可如何评估保证等级以确定验证形式。在时间t1处,用户执行显式验证(例如,轻扫手指、输入PIN等)。在时间t2处,依赖方要求保证等级增益为al4的验证。非侵入式验证形式实现高于al4的保证等级al1,所以不需要触发显式验证。FIG10 graphically illustrates how the embodiment of the present invention described above can evaluate assurance levels to determine a form of authentication. At time t1, the user performs explicit authentication (e.g., swiping a finger, entering a PIN, etc.). At time t2, the relying party requests authentication with an assurance level gain of al4. The non-intrusive form of authentication achieves an assurance level al1 that is higher than al4, so no explicit authentication needs to be triggered.
相反,在时间t4处,依赖方要求保证等级增益为al4的验证。非侵入式验证形式在那个时间将仅实现al5(如图所示)。因而,在这种情况下,自适应验证器模块将选择至少一种显式验证形式来将保证等级从al5提高到al4。Conversely, at time t4, the relying party requires verification with an assurance level gain of al4. The non-intrusive verification form will only achieve al5 at that time (as shown in the figure). Therefore, in this case, the adaptive verifier module will select at least one explicit verification form to increase the assurance level from al5 to al4.
本发明的一个实施例以保护最终用户的隐私的方式采用隐式的基于位置的验证技术。如上所述,与依赖方共享用户的当前位置(例如,由GPS提供)会产生严重的隐私问题。因此,用户常常不愿意共享此类数据。One embodiment of the present invention employs implicit location-based authentication techniques in a manner that protects the privacy of the end user. As mentioned above, sharing a user's current location (e.g., provided by GPS) with a relying party can create serious privacy issues. Consequently, users are often reluctant to share such data.
为了解决这些问题,本发明的一个实施例在执行隐式用户验证时使用地理位置作为因素,但不向依赖方公开用户的位置。可单独实施这个实施例,也可结合上文所述的其他非侵入式验证技术230和/或显式验证技术222(例如,作为较大的综合验证过程的一部分)来实施这个实施例。也可不从客户端装置传输实际位置,而是仅(至少部分地)基于地理位置数据传输保证等级,从而保护用户的隐私。To address these issues, one embodiment of the present invention uses geographic location as a factor when performing implicit user authentication, but does not disclose the user's location to the relying party. This embodiment can be implemented alone or in combination with the other non-intrusive authentication techniques 230 and/or explicit authentication techniques 222 described above (e.g., as part of a larger, comprehensive authentication process). Rather than transmitting the actual location from the client device, the user's privacy can be protected by transmitting only a level of assurance based (at least in part) on the data's geographic location.
一个实施例采用以下操作向依赖方登记和注册用户/装置:One embodiment uses the following operations to enroll and register a user/device with a relying party:
1。用户挑选并指定其向网站执行验证时通常所在的一个或多个位置。这些位置可为在预定英里数内或特定位置内的区域(如办公室、家、交通路线等)。所选择的位置可本地存储在客户端装置上并且不发送到依赖方。这些操作可由上文所述的位置验证模块231执行。1. The user selects and specifies one or more locations where they typically authenticate to the website. These locations can be within a predetermined number of miles or within a specific location (e.g., office, home, transportation routes, etc.). The selected locations can be stored locally on the client device and not transmitted to the relying party. These operations can be performed by the location verification module 231 described above.
2。在一个实施例中,在登记完成之后,客户端装置经由安全通信信道与依赖方共享密钥(例如,使用本文所述的安全通信模块213和其他注册技术)。2. In one embodiment, after enrollment is complete, the client device shares a key with the relying party via a secure communication channel (eg, using secure communication module 213 and other enrollment techniques described herein).
在一个实施例中,在验证期间执行以下操作:In one embodiment, during verification the following operations are performed:
1。客户端装置使用一种或多种地理定位技术确定其当前位置(例如,使用位置传感器241(诸如嵌入式GPS芯片)检索当前位置)。1. The client device determines its current location using one or more geolocation techniques (e.g., using a location sensor 241 such as an embedded GPS chip to retrieve the current location).
2。客户端上的位置验证模块231将当前位置与已经登记的位置进行比较并且产生指示距离的得分(例如,从0到100)。保证度计算模块212可接着将得分放到保证度计算中(如上文所述)。2. The location verification module 231 on the client compares the current location with the already registered locations and generates a score indicating the distance (e.g., from 0 to 100). The assurance calculation module 212 can then incorporate the score into the assurance calculation (as described above).
3。客户端装置生成签名,对得分/保证等级进行签署,然后发送到依赖方250以用于最终验证。3. The client device generates a signature, signs the score/assurance level, and sends it to the relying party 250 for final verification.
C.复合验证器C. Composite Validator
本文所述的本发明的一些实施例采用客户端侧“验证器”,这些“验证器”包含以下安全性相关功能:Some embodiments of the invention described herein employ client-side "authenticators" that incorporate the following security-related functionality:
1.存储并使用密码证实密钥1. Store and use cryptographic verification keys
2.生成、存储并使用密码验证密钥2. Generate, store, and use password-verified keys
3.本地用户验证或验证用户存在与否3. Local user authentication or verification of user existence
4.向最终用户安全显示信息4. Safely display information to end users
在一个实施例中,一些上述功能(例如,3和4)是任选的。另外,本发明的一个实施例包括实施以下安全性目标的验证器:In one embodiment, some of the above functions (e.g., 3 and 4) are optional. In addition, one embodiment of the present invention includes a validator that implements the following security goals:
1.确保证实密钥:(a)仅用于证实由FIDO验证器生成并保护的验证密钥;并且(b)从不离开FIDO验证器边界。1. Ensure that attestation keys: (a) are only used to attest to attestation keys generated and protected by the FIDO Authenticator; and (b) never leave the FIDO Authenticator boundary.
2.如果要求支持本地用户验证(有时也称为“用户验证”),则确保:(a)软件应用程序(例如,向验证器中“输入”PIN的恶意软件)无法绕过/伪造验证;(b)保护验证数据的机密性(例如,恶意软件既无法访问用户输入的PIN也无法访问参考数据);并且(c)在生成新验证密钥之前要求进行用户验证并且在使用此类验证密钥之前达到时间。2. If support for local user authentication (sometimes also called "user verification") is required, ensure that: (a) authentication cannot be bypassed/forged by software applications (e.g., malware that "enters" a PIN into the authenticator); (b) the confidentiality of the authentication data is protected (e.g., malware cannot access either the user-entered PIN or the reference data); and (c) user authentication is required before generating new authentication keys and before using such authentication keys.
一种实施验证器的方式是,在由单个保护壳保护的单个模块中实施负责以上功能的所有组件。例如,可在于可信执行环境(TEE)中运行的可信应用程序(TA)中(例如,在支持可信执行的客户端平台上)实施整个验证器。在这种具体实施中,TA被签署,从而确保验证器无法被修改并且TEE在执行时保护TA。One way to implement the authenticator is to implement all components responsible for the above functionality in a single module protected by a single protective shell. For example, the entire authenticator can be implemented in a trusted application (TA) running in a trusted execution environment (TEE) (e.g., on a client platform that supports trusted execution). In this specific implementation, the TA is signed, ensuring that the authenticator cannot be modified and that the TEE protects the TA during execution.
在本发明的一个实施例中,每个验证器在逻辑上细分为多个独立组件,每个组件包括独立的安全和验证能力。例如,在图11中,并不是在由单个壳保护的单个模块中实施负责上述功能的所有组件,而是使用两个分开的独立验证器组件实施验证器1100:用户验证组件(UVC)1101和验证器内核(AK)1103,它们分别具有其自己的保护逻辑1110和1112。在这个例子中,AK 1103安全地为验证器1100管理证实密钥1104和验证密钥1105,并且UVC 1101管理用户验证/存在性功能1106和安全显示功能1107(其特定例子在下文中以及在共同待决的申请中描述)。In one embodiment of the present invention, each authenticator is logically subdivided into multiple independent components, each of which includes independent security and authentication capabilities. For example, in Figure 11, rather than implementing all of the components responsible for the above functions in a single module protected by a single shell, the authenticator 1100 is implemented using two separate independent authenticator components: the user verification component (UVC) 1101 and the authenticator kernel (AK) 1103, each of which has its own protection logic 1110 and 1112, respectively. In this example, the AK 1103 securely manages the confirmation key 1104 and the verification key 1105 for the authenticator 1100, and the UVC 1101 manages the user authentication/presence function 1106 and the secure display function 1107 (specific examples of which are described below and in the co-pending applications).
如下文详细的论述,每个组件的保护逻辑1110、1112可包括组件验证引擎,用于向在客户端装置上执行的一个或多个其他组件验证每个组件(例如,见图13和相关联文本)。另外,保护逻辑可利用内建到客户端平台的额外硬件/软件保护机制(例如,诸如安全元件(SE)、信任链技术、可信用户接口技术、基于OS的保护机制等)。下文陈述与这些实施例中的每个实施例相关联的细节。As discussed in detail below, the protection logic 1110, 1112 of each component may include a component verification engine for verifying each component to one or more other components executing on the client device (e.g., see FIG. 13 and associated text). In addition, the protection logic may utilize additional hardware/software protection mechanisms built into the client platform (e.g., such as secure elements (SEs), trust chain technology, trusted user interface technology, OS-based protection mechanisms, etc.). Details associated with each of these embodiments are set forth below.
图12示出本发明的一个实施例,在该实施例中由一组受保护验证器组件构建多个逻辑验证器1201和1202。具体地讲,用于逻辑验证器1201的组件构建块包括用于管理用户验证和存在性的用户验证组件(UVC)1210;用于确保向最终用户显示的信息恰好是交易确认的信息(即,“所见即所签”或WYSIWYS)的显示组件(DC)1212;以及用于安全地管理证实密钥1215(用于作为注册过程的一部分向依赖方证实验证器的模型和/或完整性)和验证密钥1216(用于对每个依赖方使用唯一的验证密钥建立与依赖方的安全通信)的验证器内核(AK)组件1214。用于逻辑验证器1202的组件构建块包括用于管理用户验证和存在性的UVC1220,以及用于安全地管理证实密钥1215和验证密钥1216的验证器内核(AK)组件1214。因此,在这个例子中,多个逻辑验证器共享同一基础AK组件1214以用于管理和保护密钥。在本发明的其他实施例中,可在多个验证器之间共享其他类型的组件。如上文所论述,每个组件都具有自己的独立保护逻辑,以用于确保满足上文所陈述的安全性目标。FIG12 illustrates an embodiment of the present invention, in which a plurality of logical validators 1201 and 1202 are constructed from a set of protected validator components. Specifically, the component building blocks for logical validator 1201 include a user verification component (UVC) 1210 for managing user verification and presence; a display component (DC) 1212 for ensuring that the information displayed to the end user is exactly what is confirmed by the transaction (i.e., "What You See Is What You Sign" or WYSIWYS); and an authenticator kernel (AK) component 1214 for securely managing attestation keys 1215 (used to verify the model and/or integrity of the validator to relying parties as part of the registration process) and verification keys 1216 (used to establish secure communications with relying parties using unique verification keys for each relying party). The component building blocks for logical validator 1202 include a UVC 1220 for managing user verification and presence, and an authenticator kernel (AK) component 1214 for securely managing attestation keys 1215 and verification keys 1216. Thus, in this example, multiple logical validators share the same base AK component 1214 for managing and protecting keys. In other embodiments of the present invention, other types of components may be shared between multiple validators. As discussed above, each component has its own independent protection logic to ensure that the security goals stated above are met.
以此方式由多个组件构建的验证器被称为“复合验证器”,因为这种验证器由分开的独立组件构成,这些独立组件各自具有自己的保护壳。复合验证器方法的一个好处是,一旦针对一个验证器构建了组件,便可跨多个验证器使用该组件,因而能够更有效地构建新的安全验证器。例如,如图12所示,在两个逻辑验证器1201和1202之间共享同一验证器内核组件1214。另外,每个验证器组件都可以针对其特定需要优化的方式来实施。以举例而非限制的方式,基于面部识别的验证器(其生物计量分割和匹配算法可能太大而无法在安全元件(SE)或可信执行环境(TEE)内实施)仍可利用SE/TEE来保护其证实密钥和用户验证密钥。在这个例子中,用户验证组件(例如,包括分割和匹配算法)可在SE/TEE外部运行,而验证内核组件可在SE/TEE内实施。相似地,在TEE中实施的基于指纹的验证器仍可利用SE验证内核来保护其证实密钥和用户验证密钥并且因此抵御基于硬件的攻击(例如,如差分功率分析(DPA))。An authenticator built from multiple components in this way is called a "composite authenticator" because it consists of separate, independent components, each with its own protective shell. One benefit of the composite authenticator approach is that once a component is built for one authenticator, it can be used across multiple authenticators, making it possible to build new secure authenticators more efficiently. For example, as shown in Figure 12, the same authenticator kernel component 1214 is shared between two logical authenticators 1201 and 1202. In addition, each authenticator component can be implemented in a manner optimized for its specific needs. By way of example and not limitation, an authenticator based on facial recognition (whose biometric segmentation and matching algorithm may be too large to be implemented within a secure element (SE) or trusted execution environment (TEE)) can still utilize the SE/TEE to protect its confirmation key and user authentication key. In this example, the user authentication component (e.g., including the segmentation and matching algorithm) can run outside the SE/TEE, while the authentication kernel component can be implemented within the SE/TEE. Similarly, a fingerprint-based authenticator implemented in a TEE can still utilize the SE authentication kernel to protect its attestation keys and user authentication keys and thus resist hardware-based attacks (e.g., such as differential power analysis (DPA)).
在一个实施例中,实施以下安全措施为本文所述的组件验证器提供可接受等级的安全性(例如,对于满足上文指定的安全性目标为“可接受”的)。这些安全措施将参考图13进行描述,图13示出与图12中用于实施验证器1201的各个组件1210、1212、1214相关联的额外细节。In one embodiment, the following security measures are implemented to provide an acceptable level of security for the component verifier described herein (e.g., "acceptable" for meeting the security goals specified above). These security measures will be described with reference to FIG13 , which shows additional details associated with the various components 1210, 1212, 1214 used to implement the verifier 1201 in FIG12 .
1.安全措施(SM)1:在一个实施例中,每个组件(例如,图12至13所示的用户验证组件1210、显示组件1212或验证内核1214)都具有自己的“组件验证密钥”对(CAK)(例如,分别是CAK对1304、1305和1306),用于(有可能相互地)向其他组件注册并且验证发送到其他组件的消息。如图13所指出的那样,每个组件1210、1212、1214分别包括组件验证逻辑1301、1302、1303,用于分别使用CAK对1304、1305、1306进入组件间验证事务。在一个实施例中,CAK对1304、1305、1306是公共/私有密钥对,但本发明的基本原理不限于此类具体实施。在这个具体实施中,每个组件被提供有其需要向其验证的那些组件的公共密钥。例如,UVC1210知道DC和AK的公共密钥(或至少能够验证公共密钥)1321;DC 1212知道UVC和AK的公共密钥1321;AK 1214知道DC和UVC的公共密钥。在一个实施例中,在启动时,组件最初通过与必须要通信的其他组件共享公共密钥来进入与那些组件的注册事务。该组件可接着使用下文描述的技术向那些组件进行验证。1. Security Measures (SM) 1 : In one embodiment, each component (e.g., user authentication component 1210, display component 1212, or authentication kernel 1214 shown in Figures 12-13) has its own "component authentication key" pair (CAK) (e.g., CAK pairs 1304, 1305, and 1306, respectively) used to register with other components (possibly mutually) and authenticate messages sent to them. As indicated in Figure 13, each component 1210, 1212, and 1214 includes component authentication logic 1301, 1302, and 1303, respectively, for entering into inter-component authentication transactions using CAK pairs 1304, 1305, and 1306, respectively. In one embodiment, CAK pairs 1304, 1305, and 1306 are public/private key pairs, but the underlying principles of the invention are not limited to this specific implementation. In this implementation, each component is provided with the public keys of the components with which it needs to authenticate. For example, UVC 1210 knows the public keys of DC and AK (or at least can verify the public keys) 1321; DC 1212 knows the public keys of UVC and AK 1321; AK 1214 knows the public keys of DC and UVC. In one embodiment, at startup, a component initially enters into a registration transaction with other components it must communicate with by sharing their public keys. The component can then authenticate itself to those components using the techniques described below.
2.安全措施(SM)2:每个组件都能够通过验证其从之接收消息的其他组件的公共CAK来验证这些其他组件。例如,在图13中,AK 1214可验证其支持的所有UVC 1210和DC1212的公共CAK(即,CAK对1304和1305中的公共密钥)。如果实施相互验证,则UVC和DC也可验证AK1214的公共CAK(即,在CAK对1306中)。2. Security Measure (SM) 2 : Each component can authenticate other components from which it receives messages by verifying their public CAKs. For example, in Figure 13, AK 1214 can verify the public CAKs of all UVCs 1210 and DCs 1212 it supports (i.e., the public keys in CAK pairs 1304 and 1305). If mutual authentication is implemented, the UVCs and DCs can also verify the public CAK of AK 1214 (i.e., in CAK pair 1306).
图14是示出可如何实施两个组件(AK 1214与DC 1212)之间的验证的事务图。在事务1400处,AK的组件验证逻辑1303生成质询并且在事务1401中将其发送到DC的组件验证逻辑1302。在一个实施例中,质询是组件验证逻辑1303选择的随机数字或随机数。在操作1402中,DC的组件验证逻辑1302使用来自其CAK对1305的私有密钥对质询生成签名并且可能生成额外数据(例如,用户是否已经批准交易的内容)。如本领域的技术人员所理解的那样,生成签名可能涉及使用私有密钥对质询实施散列函数。在事务1403处,DC的组件验证逻辑1302将签名发送回到AK的组件验证逻辑1303,以进行验证。AK的组件验证逻辑1303现在知道该质询(例如,其先前生成的随机数)、使用DC的CAK对的私有密钥生成的签名,以及DC的CAK对的公共密钥。在事务1404中,AK的组件验证逻辑1303使用DC的CAK对的公共密钥来使用随机数字验证签名,从而验证DC。如果实施相互验证,则DC也可使用一组类似事务验证AK1214的公共密钥。Figure 14 is a transaction diagram illustrating how authentication between two components (AK 1214 and DC 1212) can be implemented. At transaction 1400, the AK's component authentication logic 1303 generates a challenge and sends it to the DC's component authentication logic 1302 in transaction 1401. In one embodiment, the challenge is a random number or nonce selected by the component authentication logic 1303. In operation 1402, the DC's component authentication logic 1302 generates a signature for the challenge using the private key from its CAK pair 1305 and may also generate additional data (e.g., whether the user has approved the contents of the transaction). As will be understood by those skilled in the art, generating the signature may involve applying a hash function to the challenge using the private key. At transaction 1403, the DC's component authentication logic 1302 sends the signature back to the AK's component authentication logic 1303 for verification. The AK's component authentication logic 1303 now knows the challenge (e.g., the nonce it previously generated), the signature generated using the DC's CAK pair's private key, and the DC's CAK pair's public key. In transaction 1404, AK's component verification logic 1303 uses the public key of DC's CAK pair to verify the signature using the random number, thereby verifying DC. If mutual authentication is implemented, DC can also use a set of public keys similar to transaction verification AK1214.
3.安全措施(SM)3:视特定的具体实施而定,可利用额外安全机制来保护组件之间的通信。这些额外安全机制在图13中以补充硬件/软件保护机制1310示出。以举例而非限制的方式,这些硬件/软件保护机制1310可包括内建到客户端平台的那些机制,诸如安全元件(SE)、信任链技术、可信用户接口技术、OS层级访问控制机制、白盒加密、代码混淆和运行时完整性保护,等等。通过使用(例如) TrustZoneTM或类似技术,操作系统可将对AK的应用程序编程接口(API)的访问仅限于可信程序(例如,诸如合法UVC和DC)。又如,操作系统还可向对AK的任何API调用添加UVC的或DC的包识别符。然而,应该指出的是,本发明的基本原理不限于上文论述的特定硬件/软件保护机制。3. Security Measures (SM) 3 : Depending on the specific implementation, additional security mechanisms may be utilized to protect communications between components. These additional security mechanisms are illustrated in FIG13 as supplementary hardware/software protection mechanisms 1310. By way of example and not limitation, these hardware/software protection mechanisms 1310 may include those built into the client platform, such as secure elements (SEs), chain-of-trust technology, trusted user interface technology, OS-level access control mechanisms, white-box encryption, code obfuscation, and runtime integrity protection, among others. By utilizing, for example, TrustZone ™ or similar technology, the operating system can restrict access to the AK's application programming interface (API) to only trusted programs (e.g., such as legitimate UVC and DC). As another example, the operating system can also add a UVC or DC packet identifier to any API call to the AK. However, it should be noted that the underlying principles of the present invention are not limited to the specific hardware/software protection mechanisms discussed above.
举例来说,在一个实施例中,AK 1214实施为安全元件中的小程序,该小程序为密码密钥提供良好的保护机制,但没有用户接口。UVC1210在可信执行环境内可实施为硬件(例如,指纹传感器)和可信应用程序的组合,两者均利用ARM TrustZone或类似技术。DC1212可使用如全局平台所定义的“可信用户接口”能力实施为可信应用程序。因此,在这个实施例中,当用户在指纹传感器上轻扫手指时,可信应用程序启动并且对照所存储的参考数据验证指纹数据。接着,可信应用程序将得分发送到实施为安全元件的AK 1214,接着AK1214进入与依赖方1320的一系列验证事务以验证用户(例如,如共同待决的申请中所述)。For example, in one embodiment, AK 1214 is implemented as a small program in a secure element that provides a good protection mechanism for cryptographic keys but has no user interface. UVC 1210 can be implemented as a combination of hardware (e.g., a fingerprint sensor) and a trusted application within a trusted execution environment, both leveraging ARM TrustZone or similar technology. DC 1212 can be implemented as a trusted application using the "Trusted User Interface" capability as defined by the global platform. Thus, in this embodiment, when a user swipes their finger across the fingerprint sensor, the trusted application launches and verifies the fingerprint data against stored reference data. The trusted application then sends the score to AK 1214, implemented as a secure element, which then enters a series of authentication transactions with relying party 1320 to authenticate the user (e.g., as described in the co-pending application).
另外,可使用白盒加密、代码混淆和运行时完整性保护的组合将一个不同的UVC实施为在富OS(例如,安卓系统)中运行的软件组件。该UVC可例如使用集成摄像机和面部识别软件。可使用白盒加密、代码混淆和运行时完整性保护的组合并且提供基于PIN的用户验证方法,将另一个UVC实施为在富OS上运行的可信应用程序或软件。Additionally, a different UVC can be implemented as a software component running in a rich OS (e.g., Android) using a combination of white-box encryption, code obfuscation, and runtime integrity protection. This UVC can, for example, use an integrated camera and facial recognition software. Another UVC can be implemented as a trusted application or software running on a rich OS using a combination of white-box encryption, code obfuscation, and runtime integrity protection and providing a PIN-based user authentication method.
因此,本文所述的基于组件的方法能够轻松适应不同验证技术的要求。例如,有些类型的验证(诸如声音识别和面部识别)需要使用普通富操作系统来实施为软件组件,这是由于这些验证类型具有大量存储要求和硬件接口要求。所有这些不同类型的验证可借助利用同一AK组件(可如所论述的那样实施为安全元件)的不同UVC组件以安全可信方式来实施。Therefore, the component-based approach described herein can easily adapt to the requirements of different authentication technologies. For example, some types of authentication (such as voice recognition and facial recognition) need to be implemented as software components using common rich operating systems due to their large storage requirements and hardware interface requirements. All of these different types of authentication can be implemented in a secure and trusted manner using different UVC components using the same AK component (which can be implemented as a secure element as discussed).
需注意的是,通过使用以上方法,各种部件使用密码保护(例如,签署)的消息在逻辑上进行通信。这种逻辑通信仍可由某个其他实体(例如,诸如下文论述的安全交易逻辑)“促进”。此外,在一个实施例中,本文所述的逻辑组件间消息传送对于依赖方1320而言为透明的,该依赖方1320直接与验证器内核1214进入证实和验证事务(例如,分别使用证实密钥1215和验证密钥1216)。在一个实施例中,AK使用证实密钥1215在注册期间验证验证器的模型和/或完整性。例如,依赖方可发送AK使用证实密钥1215来签署的质询。依赖方接着使用对应密钥来验证签名(例如,如果证实密钥为私有密钥,则使用公共密钥)。一旦验证器已经向依赖方注册,便向那个依赖方分配验证密钥1216。AK接着使用与依赖方相关联的验证密钥1216确保在注册之后与那个依赖方安全通信。It should be noted that, using the above method, the various components logically communicate using cryptographically protected (e.g., signed) messages. This logical communication may still be "facilitated" by some other entity (e.g., such as the secure transaction logic discussed below). Furthermore, in one embodiment, the inter-logical component messaging described herein is transparent to the relying party 1320, which directly engages in authentication and verification transactions with the authenticator kernel 1214 (e.g., using authentication key 1215 and verification key 1216, respectively). In one embodiment, the AK uses authentication key 1215 to verify the authenticator's model and/or integrity during registration. For example, a relying party may send a challenge signed by the AK using authentication key 1215. The relying party then verifies the signature using the corresponding key (e.g., using the public key if the authentication key is private). Once the authenticator has registered with a relying party, a verification key 1216 is assigned to that relying party. The AK then uses the verification key 1216 associated with the relying party to ensure secure communication with that relying party after registration.
作为额外的安全措施,在一个实施例中,每个组件的组件验证逻辑1301至1303都可在检测到组件泄露的情况下删除其CAK对。As an additional security measure, in one embodiment, the component verification logic 1301 - 1303 of each component may delete its CAK pair if a component compromise is detected.
可利用本发明的基本原理实施两种不同类型的复合验证器:“静态”复合验证器和“动态”复合验证器。Two different types of composite verifiers can be implemented using the underlying principles of the invention: a "static" composite verifier and a "dynamic" composite verifier.
静态复合验证器Static Composite Validator
参见图15,在一个实施例中,具有以下特性的复合验证器1501在本文中称为“静态”复合验证器:15 , in one embodiment, a composite validator 1501 having the following characteristics is referred to herein as a “static” composite validator:
1.对于每个验证器1501,依赖方1320能够/需要访问公共证实密钥(对应于证实密钥对215,而不是公共“组件验证密钥”(CAK)1304、1306);并且1. For each authenticator 1501, the relying party 1320 has/needs access to a public certification key (corresponding to the certification key pair 215, not the public "Component Authentication Key" (CAK) 1304, 1306); and
2.对于每个受支持的组件组合(例如,UVC、DC和AK),已经预先指定了特定验证器证实ID(AAID)1505。2. For each supported component combination (eg, UVC, DC, and AK), a specific authenticator attestation ID (AAID) 1505 has been pre-assigned.
因此,如图15所示,对于静态复合验证器,每个相异验证器1501由其特定AAID1505识别。AK拥有一个或多个证实密钥215并且还选择一个预定义AAID(和相关证实密钥)以在与依赖方1320执行交易时使用。15, for a static composite authenticator, each distinct authenticator 1501 is identified by its specific AAID 1505. The AK possesses one or more attestation keys 215 and also selects a predefined AAID (and associated attestation key) to use when performing transactions with a relying party 1320.
因为从不与依赖方1320共享CAK对,所以CAK对可为验证器特定的,而不影响用户的隐私。这还意味着可在检测到对独立组件的成功入侵的情况下单独撤销此类密钥。因为CAK不用作(公开可见的)“证实密钥”,所以组件的入侵不被视为等同于验证器的入侵。另外,因为复合验证器1501的通信和安全机制在验证器外部不可见,所以静态复合验证器的具体实施不影响定义验证器1501与依赖方1320之间的交互的规范。在一个实施例中,每个组件1510、1514都被分配有可类似于AAID的唯一组件ID,但其仅与AK 1514相关(而不与RP或任何其他外部实体相关)。Because CAK pairs are never shared with relying parties 1320, CAK pairs can be specific to the authenticator without affecting the privacy of the user. This also means that such keys can be revoked individually in the event of a successful intrusion into an independent component being detected. Because the CAK is not used as a (publicly visible) "verification key", an intrusion into a component is not considered equivalent to an intrusion into the authenticator. Additionally, because the communication and security mechanisms of the composite authenticator 1501 are not visible outside the authenticator, the specific implementation of the static composite authenticator does not affect the specifications defining the interaction between the authenticator 1501 and the relying party 1320. In one embodiment, each component 1510, 1514 is assigned a unique component ID which may be similar to an AAID, but which is only associated with the AK 1514 (and not with the RP or any other external entity).
作为额外优化,在一个实施例中,可将在线证书状态协议(OCSP,RFC2560)用作每个CAK证书的撤销检验方法(例如,“验证”)。更具体地讲,AK 1514可要求对与公共CAK相关的UVC或DC的证书的足够近的OCSP响应,以便接受传入消息。AK 1514还可具有用于所有AAID的单一证实密钥,或者AK 1514可任选地针对每个AAID分别有一个证实密钥,或是它们的组合。As an additional optimization, in one embodiment, the Online Certificate Status Protocol (OCSP, RFC2560 ) can be used as a revocation verification method (e.g., "validation") for each CAK certificate. More specifically, the AK 1514 can require a sufficiently recent OCSP response for the UVC or DC certificate associated with the public CAK in order to accept an incoming message. The AK 1514 can also have a single confirmation key for all AAIDs, or the AK 1514 can optionally have a separate confirmation key for each AAID, or a combination thereof.
在一个实施例中,AK可维持静态AAID列表。或者,如果是用于更新列表的已签署“AAID更新”消息的一部分,则AAID可接受从外部实体(例如,UVC/DC)接收到的AAID。在一个实施例中,AAID更新消息具有以下结构:签名(signing_key,AAID|AK组件ID|UVC/DC的公共CAK)。AK供应商可拥有私有signing_key。公共signing_key要么直接是AK的TrustStore的一部分(在TrustStore具体实施中)要么可使用存储在TrustStore中的某个证书来验证(即,链接到此类证书)。In one embodiment, the AK may maintain a static list of AAIDs. Alternatively, the AAID may accept AAIDs received from an external entity (e.g., UVC/DC) as part of a signed "AAID Update" message used to update the list. In one embodiment, the AAID Update message has the following structure: Signature(signing_key, AAID | AK component ID | UVC/DC's public CAK). The AK vendor may own a private signing_key. The public signing_key is either directly part of the AK's TrustStore (in a TrustStore implementation) or can be verified using a certificate stored in the TrustStore (i.e., linked to such a certificate).
图15所示的用户装置1500的架构,还包括用于建立与依赖方1320的通信的浏览器/应用程序1510,以及用于启用与验证器的通信的安全交易逻辑1520。例如,如图所示,在一个实施例中,安全交易逻辑1520通过向各种组件暴露应用程序编程接口(API)来实现每个验证器1501的组件1510、1514之间的消息传递。因此,在这个实施例中,组件之间的所有通信(诸如注册数据和消息的交换)都经由安全交易逻辑1520来发生。举例来说,安全交易逻辑1520可实施为共同待决的申请(在下文中陈述关于该申请的多个部分)中所描述的“安全交易服务”。浏览器/应用程序1510可用于经由网络(诸如因特网)建立与依赖方1320的通信。The architecture of the user device 1500 shown in Figure 15 also includes a browser/application 1510 for establishing communication with the relying party 1320, and secure transaction logic 1520 for enabling communication with the authenticator. For example, as shown in the figure, in one embodiment, the secure transaction logic 1520 implements message passing between the components 1510 and 1514 of each authenticator 1501 by exposing an application programming interface (API) to various components. Therefore, in this embodiment, all communication between the components (such as the exchange of registration data and messages) occurs via the secure transaction logic 1520. For example, the secure transaction logic 1520 can be implemented as the "secure transaction service" described in the co-pending application (multiple sections of which are set forth below). The browser/application 1510 can be used to establish communication with the relying party 1320 via a network (such as the Internet).
动态复合验证器Dynamic Composite Validator
参见图16,在以下情况下,具有以下特性的复合验证器1601是“动态复合验证器”:Referring to FIG. 16 , a composite validator 1601 having the following characteristics is a “dynamic composite validator” if:
1.“验证密钥”(CAK)1604、1604被当作证实密钥,使得依赖方1320具有并且需要相关公共密钥来验证证实消息(例如,在OSTP规范中称为“密钥注册数据”);并且组件1. "Authentication Key" (CAK) 1604, 1604 is treated as a certification key, so that relying party 1320 has and needs the relevant public key to verify the certification message (e.g., called "Key Registration Data" in the OSTP specification); and component
2.依赖方1320接收多个AAID 1602、1603(取决于验证器1601中组件的数量)。在一个实施例中,依赖方1320经由安全交易逻辑1620和浏览器/应用程序1610将验证器1601的所有组件1610、1614的AAID 1602、1603作为从AK 1614发送的注册消息的一部分接收。尽管图16仅示出UVC 1610和AK 1614,但替代实施例(诸如图3所示)向RP 1320发送AK、DC和UVC的AAID。然而,如所提及,本发明的基本原理不限于用于实施验证器的任何特定组的组件。在一个实施例中,发送到RP 1320的注册消息还具有多个(链接)签名,其中一个签名具有AK的证实密钥1605,并且其他每个组件(例如,UCC的证实密钥1604和DC的证实密钥(未示出))都各自有一个签名。如所提及,在一个实施例中,当且仅当信任与其他组件的通信时,AK1614才在自己发往RP 1320的证实消息中包括其他组件的证实消息。2. Relying Party 1320 receives multiple AAIDs 1602, 1603 (depending on the number of components in Authenticator 1601). In one embodiment, Relying Party 1320 receives the AAIDs 1602, 1603 of all components 1610, 1614 of Authenticator 1601 as part of a registration message sent from AK 1614 via Secure Transaction Logic 1620 and Browser/Application 1610. Although FIG16 shows only UVC 1610 and AK 1614, alternative embodiments (such as that shown in FIG3) send the AAIDs of AK, DC, and UVC to RP 1320. However, as mentioned, the underlying principles of the present invention are not limited to any particular set of components for implementing an authenticator. In one embodiment, the registration message sent to RP 1320 also has multiple (linked) signatures, one of which has the AK's authentication key 1605, and one signature for each of the other components (e.g., the UCC's authentication key 1604 and the DC's authentication key (not shown)). As mentioned, in one embodiment, the AK 1614 includes the other component's confirmation message in its own confirmation message to the RP 1320 if and only if the communication with the other component is trusted.
因此,通过动态组合多个组件(或,换句话讲,组合两个验证器来得到一个新的验证器)来实施动态构成的验证器1601。因为在这个具体实施中CAK与RP相关,所以在一个实施例中,为了保护用户的隐私,CAK应当不是验证器所特定的。相反,CAK要么被预先生成/注入为共享密钥,要么使用直接匿名证实(DAA)方案来验证,其中DAA方案是实现可信平台的验证并同时保护用户隐私的密码协议。因为多个AAID和链接证实消息对RP为可见的,所以动态复合验证器的具体实施会影响验证器1601与依赖方1320之间使用的验证规范。Thus, a dynamically composed authenticator 1601 is implemented by dynamically combining multiple components (or, in other words, combining two authenticators to obtain a new authenticator). Because the CAK is associated with the RP in this implementation, in one embodiment, to protect the user's privacy, the CAK should not be specific to the authenticator. Instead, the CAK is either pre-generated/injected as a shared key or verified using a Direct Anonymous Authentication (DAA) scheme, which is a cryptographic protocol that enables authentication of a trusted platform while protecting the user's privacy. Because multiple AAIDs and chained authentication messages are visible to the RP, the specific implementation of the dynamic composite authenticator affects the authentication specification used between the authenticator 1601 and the relying party 1320.
UVC/DC断言验证UVC/DC Assertion Verification
不管使用动态验证器还是静态验证器,在一个实施例中,UVC 210和DC 212向AK214都发送其输出数据,诸如用户验证结果(UVC)和用户对所显示的交易文本的接受(DC),以便可根据在AK 214与依赖方1320之间所采用的验证规范进行处理。Regardless of whether a dynamic or static authenticator is used, in one embodiment, UVC 210 and DC 212 send their output data, such as the user verification result (UVC) and the user's acceptance of the displayed transaction text (DC), to AK 214 so that it can be processed according to the authentication specifications adopted between AK 214 and relying party 1320.
对于注册,在具有静态验证器的实施例中,UVC 210和DC 212可向AK 214发送密钥注册消息,该消息包含组件ID(而非AAID),其中组件ID是与AAID相似但仅与AK相关的识别符。在一个实施例中,密钥注册消息的用户验证密钥是空的,并且密钥注册消息由CAK签署而不是由证实密钥签署。For registration, in an embodiment with a static authenticator, UVC 210 and DC 212 may send a key registration message to AK 214 that includes a component ID (instead of an AAID), where a component ID is an identifier similar to an AAID but associated only with an AK. In one embodiment, the user authentication key of the key registration message is empty, and the key registration message is signed by a CAK instead of a certification key.
对于验证,在一个实施例中,UVC 210和DC 212创建由CAK(不是用户验证密钥)签署的消息。For authentication, in one embodiment, UVC 210 and DC 212 create a message signed by the CAK (not the User Authentication Key).
在本发明的一个实施例中,由AK实施以下验证步骤:In one embodiment of the present invention, the following verification steps are performed by the AK:
1.查找包含可接受公共CAK列表的内部信任库。公共CAK可要么直接存储在TrustStore中,要么可针对每个CAK各自存在链接到TrustStore中的根证书的公共密钥证书。1. Look up the internal truststore that contains a list of acceptable public CAKs. Public CAKs can either be stored directly in the TrustStore, or there can be a public key certificate for each CAK that chains to a root certificate in the TrustStore.
2.AK使用公共CAK验证来自UVC和/或DC的传入数据的签名(例如,如上文相对于SM1和SM2所论述)。2. The AK verifies the signature of the incoming data from the UVC and/or DC using the public CAK (eg, as discussed above with respect to SM1 and SM2).
3.检验额外的平台特定保护机制,诸如传入数据的包ID,或使用类似的平台提供的保护机制。3. Verify additional platform-specific protection mechanisms, such as package IDs for incoming data, or use similar platform-provided protection mechanisms.
4.检验包含UVC或DC的公共CAK的证书的撤销状态。因为AK仅对极少数证书/密钥(即,当前UVC或DC的证书/密钥)的撤销信息感兴趣,所以可利用在线证书状态协议(OCSP)(上文提及)撤销检验。假定AK不具有网络连接,因此OCSP响应预期作为来自UVC和/或DC的传入数据的一部分。4. Verify the revocation status of the certificate containing the public CAK of the UVC or DC. Because the AK is only interested in revocation information for a very small number of certificates/keys (i.e., the current UVC or DC's certificate/key), revocation verification using the Online Certificate Status Protocol (OCSP) (mentioned above) can be used. Assuming the AK has no network connectivity, the OCSP response is expected as part of the incoming data from the UVC and/or DC.
优化的验证方法Optimized verification method
可在一个实施例中实施进一步优化,其中与对称密钥操作相比,不对称密钥操作太过昂贵。在这种情况下,由UVC和/或DC创建的、发送到AK的密钥注册消息包含对称密钥SK(例如,代替如上所述的空用户验证密钥字段)。由UVC生成并且发送到AK的修改密钥注册数据消息,可使用AK的公共CAK(或属于目标组件的某个其他可信公共密钥)来加密。由UVC和/或DC生成并且发送到AK的修改签名消息,并没有使用CAK来不对称地签署,而是其使用用SK计算出的基于散列的消息验证代码(HMAC)来保护。AK使用作为密钥注册数据消息的一部分接收的对称密钥来验证HMAC。A further optimization may be implemented in one embodiment where asymmetric key operations are prohibitively expensive compared to symmetric key operations. In this case, the key registration message created by the UVC and/or DC and sent to the AK contains the symmetric key SK (e.g., in place of an empty User Authentication Key field as described above). The modified key registration data message generated by the UVC and sent to the AK may be encrypted using the AK's public CAK (or some other trusted public key belonging to the target component). The modified signature message generated by the UVC and/or DC and sent to the AK is not asymmetrically signed using the CAK, but is instead protected using a hash-based message authentication code (HMAC) calculated using SK. The AK verifies the HMAC using the symmetric key received as part of the key registration data message.
D.位置感知验证技术D. Location-aware verification technology
本发明的一个实施例实施允许基于正用于验证的客户端装置的物理位置来选择验证机制的验证策略。例如,客户端和/或服务器可确定客户端装置的物理位置,并且将那个位置馈送到评估一组有序策略规则的策略引擎。在一个实施例中,这些规则规定了位置类别以及在客户端位置与规则中的位置定义一致的情况下必须应用的一个或多个验证机制。One embodiment of the present invention implements an authentication policy that allows for the selection of an authentication mechanism based on the physical location of the client device being authenticated. For example, the client and/or server can determine the physical location of the client device and feed that location into a policy engine that evaluates a set of ordered policy rules. In one embodiment, these rules specify a location category and one or more authentication mechanisms that must be applied if the client location matches the location definition in the rule.
如图17所示,本发明的一个实施例包括具有验证策略引擎1710的客户端装置1700,所述验证策略引擎1710用于实施本文所述的位置感知验证策略。具体地讲,这个实施例包括位置类别确定模块1740,该模块用于使用由位置传感器1741(例如,GPS装置)提供的客户端装置1700的当前位置来识别当前位置“类别”。如下文详细的论述,可定义不同位置“类别”,包括已知地理点和/或区域。可连续更新位置类别数据并且将其存储在永久性位置数据存储装置1745(例如,快闪存储装置或其他永久性存储装置)中。位置类别确定模块1740可接着将传感器1741提供的当前位置与所定义的“类别”进行比较,以确定客户端装置1700的当前位置类别。As shown in Figure 17, one embodiment of the present invention includes a client device 1700 having an authentication policy engine 1710, which is used to implement the location-aware authentication policy described herein. Specifically, this embodiment includes a location category determination module 1740 that uses the current location of the client device 1700 provided by a location sensor 1741 (e.g., a GPS device) to identify a current location "category". As discussed in detail below, different location "categories" can be defined, including known geographic points and/or areas. The location category data can be continuously updated and stored in a permanent location data storage device 1745 (e.g., a flash memory device or other permanent storage device). The location category determination module 1740 can then compare the current location provided by the sensor 1741 with the defined "categories" to determine the current location category of the client device 1700.
在一个实施例中,依赖方1750为每个交易指定待由验证策略引擎1710实施的验证策略(如由从依赖方到验证策略引擎的虚线指示)。因此,可为每个依赖方的验证要求唯一地定制验证策略。另外,可基于当前交易来确定所需要的验证等级(如由验证策略定义)。例如,需要转移大量金钱的交易可要求相对较高的验证保证阈值,而非货币交易可要求相对较低的验证保证阈值。因此,本文所描述的位置感知验证技术对于某些交易可能是充分的,但对于某些交易,可与更严格的验证技术组合使用。In one embodiment, the relying party 1750 specifies a verification policy for each transaction to be implemented by the verification policy engine 1710 (as indicated by the dotted line from the relying party to the verification policy engine). Thus, the verification policy can be uniquely customized for the verification requirements of each relying party. In addition, the required verification level (as defined by the verification policy) can be determined based on the current transaction. For example, a transaction requiring the transfer of a large amount of money may require a relatively high verification assurance threshold, while a non-monetary transaction may require a relatively low verification assurance threshold. Therefore, the location-aware verification technology described herein may be sufficient for some transactions, but for some transactions, it may be used in combination with more stringent verification technologies.
在一个实施例中,位置类别确定模块1740将所确定的类别提供给验证策略模块1711,所述验证策略模块1711实施一组规则以识别待用于所确定类别的验证技术1712。以举例而非限制的方式,图18示出一组示例性规则1至5,这些规则指定可针对每个所定义的位置类别1至5使用的一种或多种验证技术1至5。虽然在图18中示出为表格数据结构,但本发明的基本原理不限于任何特定类型的数据结构来实施规则组。In one embodiment, the location category determination module 1740 provides the determined category to the verification policy module 1711, which implements a set of rules to identify the verification technique 1712 to be used for the determined category. By way of example and not limitation, FIG18 illustrates a set of exemplary rules 1 through 5 that specify one or more verification techniques 1 through 5 that may be used for each defined location category 1 through 5. Although illustrated as a tabular data structure in FIG18 , the underlying principles of the present invention are not limited to any particular type of data structure for implementing a rule set.
一旦验证策略引擎1710选择了一组验证技术1712,验证策略引擎1710便可使用一个或多个显式用户验证装置1720至1721和/或非侵入式验证技术1742至1743来实施这些技术,以向依赖方1750验证用户。以举例而非限制的方式,显式用户验证1720至1721可包括要求用户输入密码,诸如PIN、指纹验证、声音或面部识别,以及视网膜扫描,等等。Once the authentication policy engine 1710 selects a set of authentication techniques 1712, the authentication policy engine 1710 may implement these techniques using one or more explicit user authentication means 1720-1721 and/or non-intrusive authentication techniques 1742-1743 to authenticate the user to the relying party 1750. By way of example and not limitation, explicit user authentication 1720-1721 may include requiring the user to enter a password such as a PIN, fingerprint verification, voice or facial recognition, and retinal scan, among others.
非侵入式验证技术1742至1743可包括用户行为传感器1742,该传感器收集与用户行为相关的数据以用于验证用户。例如,可使用加速度计或其他类型的传感器1742以及被设计为生成用户的正常步行模式的步态“指纹”的软件和/或硬件,来测量用户的生物计量步态。如下文论述,可使用其他传感器1743收集用于验证的数据。例如,可收集网络数据,用于识别客户端装置1700的本地邻近处的网络/计算装置(例如,已知的对等计算机、接入点、手机发射塔等)。Non-intrusive authentication techniques 1742-1743 may include user behavior sensors 1742 that collect data related to user behavior for use in authenticating the user. For example, a user's biometric gait may be measured using an accelerometer or other type of sensor 1742 and software and/or hardware designed to generate a gait "fingerprint" of the user's normal walking pattern. As discussed below, other sensors 1743 may be used to collect data for authentication. For example, network data may be collected to identify network/computing devices (e.g., known peer computers, access points, cell phone towers, etc.) in the local vicinity of the client device 1700.
在一个实施例中,安全存储装置1725是用于存储与每个验证装置1720至1721相关联的验证密钥的安全存储装置。如下文论述,验证密钥可用于经由安全通信模块1713建立与依赖方1750的安全通信信道。In one embodiment, secure storage 1725 is a secure storage for storing verification keys associated with each verification device 1720 to 1721. As discussed below, the verification keys may be used to establish a secure communication channel with relying party 1750 via secure communication module 1713.
可定义符合本发明的基本原理的各种不同位置“类别”。以举例而非限制的方式,可定义以下位置类别:Various different location "categories" may be defined consistent with the underlying principles of the present invention. By way of example and not limitation, the following location categories may be defined:
类别1:客户端位于指定位置的给定半径内。在这个类别中,如果当前客户端位置位于以指定纬度和经度为中心的由具有给定半径的圆圈限定的区域内,则应用相关联的验证策略。Category 1: The client is within a given radius of a specified location. In this category, if the current client location is within an area bounded by a circle with a given radius centered at the specified latitude and longitude, the associated authentication policy is applied.
类别2:客户端位于指定边界区内。在这个类别中,如果客户端位于由一组有序纬度和经度对定义的多边形(例如,闭合多边形)所限定的区域内,则应用相关联的验证策略。Category 2: Client is located within a specified bounded area. In this category, if the client is located within an area bounded by a polygon (eg, a closed polygon) defined by a set of ordered latitude and longitude pairs, then the associated authentication policy is applied.
类别3:客户端位于指定边界外部。在这个类别中,如果客户端位于由一组有序纬度和经度对定义的多边形(例如,闭合多边形)所限定的区域外部,则应用相关联的验证策略。Category 3: Client is outside the specified boundary. In this category, if the client is outside the area bounded by a polygon (eg, a closed polygon) defined by an ordered set of latitude and longitude pairs, the associated authentication policy is applied.
在一个实施例中,使用上文定义的类别和策略规则的布尔组合定义额外类别。例如,布尔运算AND、OR、NOT和布尔运算的嵌套允许表达复杂条件。此类策略可用于(例如)实施在客户端位于公司所拥有的多种设施之一中时应用的策略。In one embodiment, additional categories are defined using Boolean combinations of the categories and policy rules defined above. For example, the Boolean operations AND, OR, NOT, and nesting of Boolean operations allow for the expression of complex conditions. Such policies can be used, for example, to implement policies that apply when a client is located in one of a variety of facilities owned by a company.
可使用各种不同机制确定客户端的当前物理位置(在图17中大体上表示为位置传感器1741),包括但不限于以下各项:The current physical location of the client (generally represented in FIG. 17 as location sensor 1741 ) may be determined using a variety of different mechanisms, including but not limited to the following:
GPS:嵌入式GPS传感器可直接提供客户端位置的详情。新出现的标准试图增加位置验证,旨在提供解决当前GPS方案中的缺点的能力。GPS: Embedded GPS sensors can directly provide details of the client's location. New emerging standards attempt to increase location verification, aiming to provide capabilities that address shortcomings in current GPS solutions.
地理IP查找:可借助对客户端IP地址的反向查找来确定客户端位置的粗略近似位置。然而,通过这种方法获得的位置的可信度需要对照已知遭侵入主机的黑名单来交叉检验IP地址、使代理提供商匿名或被设计为使主机的源IP地址模糊的类似方案。Geographic IP Lookup: A rough approximation of the client's location can be determined using a reverse lookup of the client's IP address. However, the reliability of the location obtained through this method requires cross-checking the IP address against a blacklist of known compromised hosts, anonymizing the proxy provider, or a similar scheme designed to obfuscate the host's source IP address.
手机发射塔三角测量:客户端、服务器与无线运营商基础设施之间的集成可允许客户端和服务器使用蜂窝信号强度三角测量以高分辨率确定物理位置。Cell Tower Triangulation: Integration between the client, server, and wireless carrier infrastructure allows the client and server to determine physical location with high resolution using cellular signal strength triangulation.
Wi-Fi接入点三角测量:一种用于确定物理位置的较高分辨率方法是对具有已知物理位置的附近Wifi接入点的信号强度进行三角测量。这种方法对于确定设施内装置的位置尤其有效。Wi-Fi access point triangulation: A higher-resolution method for determining physical location is to triangulate the signal strength of nearby Wi-Fi access points with known physical locations. This method is particularly effective for determining the location of devices within a facility.
位置位移推断:装置的确切位置可为未知的,但是出于评估策略的目的可将位置的统计概率用作近似值。可通过记录装置的位置相对于具有已知位置的起始点的变化来进行计算;用户的装置可能在过去具有已知起始点,并且在此期间已经移动了一个已知或估计距离和方位,这样便可计算出近似位置。计算从起始点的位移的可能方法可包括使用从加速度计收集的测量值(即,使用加速度计来基于步态测量值测量用户步行了多远)、来自一组已知固定信号源的信号强度的变化以及其他方法推断所行进的距离。Position displacement inference: The exact location of the device may not be known, but the statistical probability of the location can be used as an approximation for the purpose of evaluating strategies. This can be calculated by recording the change in the device's position relative to a starting point with a known location; the user's device may have had a known starting point in the past and has moved a known or estimated distance and orientation during that time, allowing an approximate location to be calculated. Possible methods for calculating displacement from a starting point may include using measurements collected from accelerometers (i.e., using accelerometers to measure how far the user has walked based on gait measurements), changes in signal strength from a set of known fixed signal sources, and other methods to infer distance traveled.
图19示出了用于实施位置感知验证策略的方法的一个实施例。该方法可在图17至18所示的系统架构的环境中内执行,但不限于任何特定系统架构。One embodiment of a method for implementing a location-aware authentication strategy is shown in Figure 19. The method may be performed within the context of the system architectures shown in Figures 17-18, but is not limited to any particular system architecture.
在1901处,使用一种或多种可用技术(例如,GPS、三角测量、对等/网络装置检测等)识别客户端的位置。在1902处,基于一组现有策略规则识别当前位置的一个或多个位置类别(以及可能的布尔类别组合)。在1903处,根据位置类别识别一种或多种验证技术。例如,如果客户端装置当前位于已知为用户的家或办公室的位置,或在另一个可信位置的限定半径内,则可要求进行最少的验证(或不要求验证)。相反,如果客户端装置当前位于未知位置和/或已知为不可信的位置,则可要求进行较严格的验证(例如,生物计量验证,诸如指纹扫描、PIN输入等)。在1904处,采用验证技术,并且如果在1905处确定验证成功,则在1906处对需要验证的交易进行授权。At 1901, the client's location is identified using one or more available technologies (e.g., GPS, triangulation, peer/network device detection, etc.). At 1902, one or more location categories (and possible Boolean category combinations) are identified for the current location based on a set of existing policy rules. At 1903, one or more authentication techniques are identified based on the location category. For example, if the client device is currently located at a location known to be the user's home or office, or within a defined radius of another trusted location, minimal authentication (or no authentication) may be required. Conversely, if the client device is currently located at an unknown location and/or a location known to be untrustworthy, more stringent authentication (e.g., biometric authentication, such as a fingerprint scan, PIN entry, etc.) may be required. At 1904, an authentication technique is employed, and if authentication is determined to be successful at 1905, then transactions requiring authentication are authorized at 1906.
如上所述,可基于当前交易来确定所需要的验证等级。例如,需要转移大量金钱的交易可要求相对较高的验证保证阈值,而非货币交易可要求相对较低的验证保证阈值。因此,本文所描述的位置感知验证技术对于某些交易可能是充分的,但对于某些交易,可与更严格的验证技术组合使用。As described above, the required level of authentication can be determined based on the transaction at hand. For example, transactions involving the transfer of large amounts of money may require a relatively high authentication assurance threshold, while non-monetary transactions may require a relatively low authentication assurance threshold. Thus, the location-aware authentication techniques described herein may be sufficient for some transactions, but for other transactions, they may be combined with more stringent authentication techniques.
如果验证不成功,则在1907处阻止交易。在这个阶段,可永久性地阻止交易或者可请求执行额外的验证步骤。例如,如果用户输入的PIN不正确,则可要求用户重新输入PIN并且/或者执行生物计量验证。If the verification is unsuccessful, the transaction is blocked at 1907. At this stage, the transaction may be permanently blocked or additional verification steps may be requested. For example, if the user entered an incorrect PIN, the user may be asked to re-enter the PIN and/or perform biometric verification.
本文所述的本发明的实施例为验证系统提供了很多好处。例如,所述实施例可用于有效阻止来自未授权位置的访问,从而通过限制准许用户尝试验证的位置(例如,由位置类别定义)来减少未授权访问。另外,本发明的实施例可选择性地要求执行较强验证来对位置特定风险做出响应。例如,依赖方可在用户正从已知位置进入交易时使验证的不便性减到最小,同时仍然保持在用户/客户端正从未知位置或意外位置连接时要求较强验证的能力。此外,本发明的实施例使得能够对信息进行位置感知访问。或者,依赖方可使用位置中心策略向用户提供对位置特定信息的额外访问。以举例而非限制的方式,当位于沃尔玛的用户在自己的移动电话上登录自己的Amazon.com账户时,可准许其访问来自Amazon.com的特价商品。Embodiments of the present invention described herein provide many benefits to verification systems. For example, the embodiments can be used to effectively prevent access from unauthorized locations, thereby reducing unauthorized access by limiting the locations (e.g., defined by location categories) where users are allowed to attempt verification. In addition, embodiments of the present invention can selectively require that stronger verification be performed to respond to location-specific risks. For example, a relying party can minimize the inconvenience of verification when a user is entering a transaction from a known location, while still maintaining the ability to require stronger verification when the user/client is connecting from an unknown or unexpected location. In addition, embodiments of the present invention enable location-aware access to information. Alternatively, a relying party can use location-centric policies to provide users with additional access to location-specific information. By way of example and not limitation, when a user at Walmart logs into their Amazon.com account on their mobile phone, they can be granted access to special offers from Amazon.com.
如上所述,可使用多种不同技术确定客户端装置1700的位置。在一个特定实施例中,“位置”的定义可不关联到一组物理坐标(如使用GPS时),而是由一组对等装置或其他类型的网络装置的存在来规定。例如,在工作时,客户端的无线网络适配器(例如,Wifi适配器、蓝牙适配器、LTE适配器等)可始终“看到”一组对等网络装置(例如,其他计算机、移动电话、平板计算机等)和网络基础设施装置(例如,Wifi接入点、手机发射塔等)。因此,在用户工作时可利用这些装置的存在来验证。可以类似方式由装置的存在来定义其他位置,诸如当用户在家时。As described above, the location of the client device 1700 can be determined using a variety of different techniques. In one particular embodiment, the definition of "location" may not be associated with a set of physical coordinates (such as when using GPS), but rather may be defined by the presence of a set of peer devices or other types of network devices. For example, when working, the client's wireless network adapter (e.g., Wi-Fi adapter, Bluetooth adapter, LTE adapter, etc.) can always "see" a set of peer network devices (e.g., other computers, mobile phones, tablet computers, etc.) and network infrastructure devices (e.g., Wi-Fi access points, cell phone towers, etc.). Therefore, the presence of these devices can be used to verify that the user is at work. Other locations can be defined by the presence of devices in a similar manner, such as when the user is at home.
例如,通过使用本文所述的技术,可将某个位置定义为“与我的同事在一起”或“在工作”,其中可将已知由用户的同事拥有的一组对等装置的存在作为需要由验证策略减轻的风险的代理。例如,如果用户被一组已知对等装置或其他类型的网络装置围绕,则可认为用户的风险比在没有检测到已知装置的情况下低。For example, using the techniques described herein, a location can be defined as "with my colleagues" or "at work," where the presence of a set of peer devices known to be owned by the user's colleagues can be used as a proxy for risk that needs to be mitigated by the authentication policy. For example, if a user is surrounded by a set of known peer devices or other types of network devices, the user can be considered to be less risky than if no known devices were detected.
图20示出一个实施例,其中“位置”由一组对等装置和其他网络装置定义。在所示出的例子中,客户端装置1700“看到”两个不同的对等装置2005和2006(例如,客户端计算机、移动电话、平板计算机等);两个不同的无线接入点2010和2011;以及两个不同的手机发射塔2020和2021。如本文所用,客户端装置1700可在没有与每个其他装置形式上建立连接的情况下“看到”。例如,客户端可看到连接到工作LAN的多种对等装置并且/或者可看到那些装置所生成的无线信号,而不管客户端是否连接到那些装置。相似地,客户端装置1700可看到多种不同Wifi接入点(例如,来自附近宾馆、咖啡店、工作Wifi接入点的Wifi)的基本服务集标识(BSSID)。客户端装置1700还可看到多种不同的手机发射塔2020和2021,可能甚至可看到由不同小区运营商运营的那些手机发射塔。可利用这些装置的存在为用户的工作位置定义位置“指纹”。FIG20 illustrates an embodiment in which a "location" is defined by a set of peer devices and other network devices. In the example shown, client device 1700 "sees" two different peer devices 2005 and 2006 (e.g., client computers, mobile phones, tablet computers, etc.); two different wireless access points 2010 and 2011; and two different cell phone towers 2020 and 2021. As used herein, client device 1700 can "see" without formally establishing a connection with each other device. For example, a client may see various peer devices connected to a work LAN and/or may see the wireless signals generated by those devices, regardless of whether the client is connected to those devices. Similarly, client device 1700 may see the Basic Service Set Identifiers (BSSIDs) of various different Wi-Fi access points (e.g., Wi-Fi from a nearby hotel, coffee shop, or work Wi-Fi access point). Client device 1700 may also see various different cell phone towers 2020 and 2021, potentially even those operated by different cell operators. The presence of these devices can be used to define a location "fingerprint" for the user's work location.
如图所示,客户端装置1700上的装置接近检测逻辑2001可捕捉与可见装置相关的数据,并且将结果与历史装置接近数据2004进行比较。可随时间推移并且/或者通过训练过程生成历史装置接近数据2004。例如,在一个实施例中,用户可(手动地,或在客户端1700提示时)指定何时他/她在工作、在家或在其他位置。作为响应,装置接近检测逻辑2001可检测附近的装置并且将结果永久性地存储为历史装置接近数据2004。当用户随后返回到该位置时,装置接近检测逻辑2001可将其当前“看到”的装置与存储为历史接近数据2004的装置进行比较,以生成两者之间的相关性。一般来讲,相关性越强,客户端越有可能位于指定位置处。随着时间的推移,可在历史装置接近数据2004中使经常看到的装置的优先级高于其他装置(例如,因为这些装置往往提供较准确的与用户工作位置的相关性)。As shown, device proximity detection logic 2001 on client device 1700 can capture data related to visible devices and compare the results with historical device proximity data 2004. Historical device proximity data 2004 can be generated over time and/or through a training process. For example, in one embodiment, a user can (manually or when prompted by client 1700) specify when they are at work, home, or another location. In response, device proximity detection logic 2001 can detect nearby devices and permanently store the results as historical device proximity data 2004. When the user subsequently returns to that location, device proximity detection logic 2001 can compare the devices it currently "sees" with the devices stored as historical proximity data 2004 to generate correlations between the two. Generally speaking, the stronger the correlation, the more likely the client is located at the specified location. Over time, frequently seen devices can be prioritized over other devices in historical device proximity data 2004 (for example, because these devices tend to provide more accurate correlations with the user's work location).
在一个实施例中,验证策略引擎1710可使用由装置接近检测逻辑2001提供的相关性结果来确定用户针对每个依赖方1750所需要的验证等级。例如,如果存在高相关性(即,高于指定阈值),则验证策略引擎可不要求最终用户执行显式验证。相反,如果用户的当前位置与历史装置接近数据2004之间的相关性较低(即,低于指定阈值),则验证策略引擎1710可要求执行较严格的验证(例如,生物计量验证,诸如指纹扫描和/或请求输入PIN)。In one embodiment, the verification policy engine 1710 may use the correlation results provided by the device proximity detection logic 2001 to determine the level of verification required by the user for each relying party 1750. For example, if there is a high correlation (i.e., above a specified threshold), the verification policy engine may not require the end user to perform explicit verification. Conversely, if the correlation between the user's current location and the historical device proximity data 2004 is low (i.e., below a specified threshold), the verification policy engine 1710 may require a stricter verification (e.g., biometric verification, such as a fingerprint scan and/or a request for a PIN).
在一个实施例中,装置接近检测逻辑2001识别客户端附近已验证的一组其他装置。例如,如果用户的若干名同事已经成功验证,则与允许用户使用较不可靠的验证器访问某些数据相关联的风险可能较小,这只是因为用户正在他/她的同伴面前进行操作。在这个实施例中,可利用经由诸如802.11n等标准的对等通信从对等装置收集验证令牌,这些验证令牌可用于证明那些对等装置已经过验证。In one embodiment, the device proximity detection logic 2001 identifies a group of other authenticated devices in the vicinity of the client. For example, if several of the user's colleagues have successfully authenticated, the risk associated with allowing the user to access certain data using a less reliable authenticator may be less, simply because the user is operating in the presence of his/her peers. In this embodiment, authentication tokens can be collected from peer devices using peer-to-peer communication via standards such as 802.11n, which can be used to prove that those peer devices have been authenticated.
在另一个实施例中,装置接近检测逻辑2001还可检测与用户的客户端配对的先前已验证装置(例如,诸如用户的移动电话或平板计算机)。正尝试验证的同一个用户所使用的另一个已验证装置的存在,可用作验证决策的输入,尤其是在访问同一个应用程序时。In another embodiment, the device proximity detection logic 2001 may also detect a previously authenticated device (e.g., such as the user's mobile phone or tablet) that is paired with the user's client. The presence of another authenticated device used by the same user attempting authentication may be used as input to authentication decisions, particularly when accessing the same application.
在一个实施例中,收集历史装置接近数据2004并在多个装置之间共享,并且可将历史装置接近数据2004存储并保留在中间验证服务上。例如,可跟踪各个位置中的多组对等装置和网络装置的历史并且将其存储在每个装置上的可供装置接近检测逻辑2001访问的中央数据库中。接着可将这个数据库用作输入,以确定来自特定位置的尝试验证的风险。In one embodiment, historical device proximity data 2004 is collected and shared among multiple devices, and can be stored and retained on an intermediate authentication service. For example, the history of multiple groups of peer devices and network devices in various locations can be tracked and stored in a central database on each device that can be accessed by the device proximity detection logic 2001. This database can then be used as input to determine the risk of an attempted authentication from a particular location.
E.用于使用补充传感器和/或位置数据确认位置的实施例E. Embodiments for Confirming Location Using Supplemental Sensors and/or Location Data
如上所述,本发明的一个实施例利用来自移动装置的额外传感器1743的数据向用于验证的风险计算提供补充输入。这些补充输入可提供能够帮助确认或驳斥最终用户的装置的位置的额外等级的保证。As described above, one embodiment of the present invention utilizes data from additional sensors 1743 of the mobile device to provide supplemental inputs to the risk calculation used for verification. These supplemental inputs can provide additional levels of assurance that can help confirm or refute the location of the end-user's device.
如图21所示,提供关于装置位置的补充保证的额外传感器1743,可包括温度传感器2101、湿度传感器2102和压力传感器2103(例如,气压或高度计压力传感器)。在一个实施例中,传感器分别提供温度、湿度和压力读数,验证策略引擎1710的补充数据相关性模块2140使用这些读数与已知的与位置传感器1741提供的位置(或使用本文描述的各种其他技术得出的位置)有关的补充数据2110建立相关性。接着,验证策略模块1711使用相关性结果为给定交易选择一种或多种验证技术1712。如图21所指示,补充位置数据2110可包括从外部源(例如,因特网或其他移动装置)和本地数据源(例如,在已经知道装置由合法用户持有期间收集的历史数据)收集的数据。As shown in FIG21 , additional sensors 1743 that provide supplemental assurance regarding the device's location may include a temperature sensor 2101, a humidity sensor 2102, and a pressure sensor 2103 (e.g., a barometric or altimeter pressure sensor). In one embodiment, the sensors provide temperature, humidity, and pressure readings, respectively, which the verification policy engine 1710's supplemental data correlation module 2140 uses to correlate supplemental data 2110 known to be associated with the location provided by the location sensor 1741 (or derived using various other techniques described herein). Verification policy module 1711 then uses the correlation results to select one or more verification techniques 1712 for a given transaction. As indicated in FIG21 , supplemental location data 2110 may include data collected from external sources (e.g., the internet or other mobile devices) and local data sources (e.g., historical data collected during periods when the device is known to be in the possession of a legitimate user).
补充数据相关性模块2140可使用额外传感器1743以多种不同方式提供的数据与补充位置数据2110建立相关性。例如,在一个实施例中,补充位置数据2110包括位置传感器1741提供的位置处的当前本地气象状况。补充数据相关性模块2140将从额外传感器1743收集的湿度、温度或气压与实时本地天气数据2110进行比较,识别传感器数据与本地状况不一致的情况。例如,如果客户端装置的GPS读数指示装置在室外,但温度、湿度或气压与本地天气状况不一致,则补充数据相关性模块2140可生成低相关性得分并且该位置可被认为是较不可信的。因此,验证策略模块1711可要求执行较严格的验证技术1712(例如,指纹、PIN输入等)来批准交易。The supplemental data correlation module 2140 can use data provided by the additional sensors 1743 in a variety of different ways to establish correlations with the supplemental location data 2110. For example, in one embodiment, the supplemental location data 2110 includes current local weather conditions at the location provided by the location sensor 1741. The supplemental data correlation module 2140 compares the humidity, temperature, or air pressure collected from the additional sensors 1743 with the real-time local weather data 2110, identifying instances where the sensor data is inconsistent with the local conditions. For example, if the client device's GPS reading indicates that the device is outdoors, but the temperature, humidity, or air pressure is inconsistent with the local weather conditions, the supplemental data correlation module 2140 can generate a low correlation score and the location can be considered less trustworthy. As a result, the verification policy module 1711 can require a stricter verification technique 1712 (e.g., fingerprint, PIN entry, etc.) to approve the transaction.
又如,补充数据相关性模块2140可将高度计压力传感器2103提供的海拔与声称位置的已知地理或网络拓扑(具有补充位置数据2110)进行比较,识别表明声称位置不真实的差异。例如,如果用户的声称位置的反向IP查找将位置识别为在安地斯山脉,但来自装置的高度计数据指示装置在海平面处,则补充数据相关性模块2140可生成低相关性得分并且该位置可被认为是较不可信的。由于低相关性得分的缘故,验证策略模块1711可尝试使用较强验证来减轻交易的较高风险。As another example, the supplemental data correlation module 2140 can compare the altitude provided by the altimeter pressure sensor 2103 with the known geography or network topology of the claimed location (with the supplemental location data 2110), identifying discrepancies that indicate the claimed location is not authentic. For example, if a reverse IP lookup of the user's claimed location identifies the location as being in the Andes Mountains, but the altimeter data from the device indicates that the device is at sea level, the supplemental data correlation module 2140 can generate a low correlation score and the location can be considered less trustworthy. Due to the low correlation score, the verification policy module 1711 can attempt to use stronger verification to mitigate the higher risk of the transaction.
在一个实施例中,补充数据相关性模块2140将从用户装置上的传感器1743收集的数据与临近区域中的多个其他最终用户进行比较,以识别表明用户不是在与那些已知用户相同的物理位置中进行操作的异常状况。例如,如果识别到正在同一物理区域中操作的一组已验证用户,并且所有那些用户的装置都表明该区域的本地温度为10℃,则补充数据相关性模块2140可对温度传感器2101指示本地温度为20℃的最终用户生成低相关性得分。因而,验证策略1711可要求执行较严格的验证技术1712。In one embodiment, the supplemental data correlation module 2140 compares the data collected from the sensor 1743 on the user's device with that of multiple other end users in the vicinity to identify anomalies that indicate the user is not operating in the same physical location as those known users. For example, if a group of authenticated users are identified as operating in the same physical area, and all of those users' devices indicate that the local temperature in that area is 10°C, the supplemental data correlation module 2140 may generate a low correlation score for the end user whose temperature sensor 2101 indicates a local temperature of 20°C. Consequently, the authentication policy 1711 may require that a stricter authentication technique 1712 be performed.
再如,补充数据相关性模块2140可针对特定用户将当前读数与历史数据进行比较。例如,如所提及的,可在已经知道用户持有装置1700期间(例如,在显式验证之后的时间段)分析传感器数据。接着,补充数据相关性模块2140可寻找本地数据的间断,以识别可疑行为。例如,如果用户的环境温度通常在10℃到20℃之间浮动并且用户的当前环境温度为30℃,则这可表明用户不在典型位置,从而生成低相关性,并致使验证策略模块1711要求对交易执行额外等级的审查。As another example, the supplemental data correlation module 2140 can compare current readings with historical data for a particular user. For example, as mentioned, the sensor data can be analyzed during a period when the user is known to be in possession of the device 1700 (e.g., a period after explicit authentication). The supplemental data correlation module 2140 can then look for gaps in the local data to identify suspicious behavior. For example, if the user's ambient temperature typically fluctuates between 10°C and 20°C and the user's current ambient temperature is 30°C, this may indicate that the user is not in a typical location, thereby generating a low correlation and causing the authentication policy module 1711 to request an additional level of scrutiny of the transaction.
补充数据相关性模块2140可在同时仍符合本发明的基本原理的情况下,在传感器数据与补充位置数据之间建立各种不同类型的相关性。例如,可使用各种已知相关性机制来确定两组数据之间的统计关系。在一个实施例中,提供给验证策略引擎1711的相关性得分包括指示相关性水平的标准化值(例如,介于0与1之间)。在一个实施例中,可针对所检测到的传感器1743与补充位置数据2110之间的差异设置各种阈值水平。例如,如果温度传感器2101测量到的温度与(从其他装置或因特网收集的)当前温度相差3度以上,则可触发第一阈值(导致相关性得分变低)。与当前温度每额外相差3度都可接着导致满足新的阈值(导致相关性得分相应降低)。然而,应该指出的是,这些仅仅是本发明的一个实施例的例子;本发明的基本原理不限于建立相关性的任何特定方式。The supplemental data correlation module 2140 can establish various different types of correlations between the sensor data and the supplemental location data while still complying with the underlying principles of the present invention. For example, various known correlation mechanisms can be used to determine the statistical relationship between the two sets of data. In one embodiment, the correlation score provided to the verification strategy engine 1711 includes a normalized value (e.g., between 0 and 1) indicating the level of correlation. In one embodiment, various threshold levels can be set for the difference between the detected sensor 1743 and the supplemental location data 2110. For example, if the temperature measured by the temperature sensor 2101 differs by more than 3 degrees from the current temperature (collected from another device or the internet), a first threshold can be triggered (causing the correlation score to become lower). Each additional 3 degrees difference from the current temperature can subsequently cause a new threshold to be met (causing a corresponding decrease in the correlation score). However, it should be noted that these are merely examples of one embodiment of the present invention; the underlying principles of the present invention are not limited to any particular manner of establishing correlations.
图22中示出根据本发明的一个实施例的方法。在2201处,读取客户端装置目前(例如,经由装置上的GPS模块)报告的当前位置。在2202处,针对所报告的位置收集补充位置数据,连同来自客户端装置的传感器数据。如上所述,可本地或远程(例如,在因特网上从其他客户端和/或服务器)收集补充位置数据,并且补充位置数据可包括诸如所报告位置的当前温度、压力和/或湿度等数据。可由温度传感器、气压或高度计压力传感器和/或湿度传感器提供传感器数据。FIG22 illustrates a method according to one embodiment of the present invention. At 2201, the current location currently reported by the client device (e.g., via a GPS module on the device) is read. At 2202, supplemental location data is collected for the reported location, along with sensor data from the client device. As described above, the supplemental location data may be collected locally or remotely (e.g., from other clients and/or servers over the Internet), and may include data such as the current temperature, pressure, and/or humidity of the reported location. The sensor data may be provided by a temperature sensor, a barometric or altimeter pressure sensor, and/or a humidity sensor.
在2203处,在补充位置数据与装置传感器所提供的传感器数据之间建立相关性。在一个实施例中,相对较高的相关性将在2204处导致相对较高的相关性得分,而较低的相关性将导致相对较低的相关性得分。如所提及的,在一个实施例中,相关性得分是指示传感器读数与补充数据之间的相似性的标准化值(例如,介于0与1之间)。At 2203, a correlation is established between the supplemental location data and the sensor data provided by the device sensor. In one embodiment, a relatively high correlation will result in a relatively high correlation score at 2204, while a low correlation will result in a relatively low correlation score. As mentioned, in one embodiment, the correlation score is a normalized value (e.g., between 0 and 1) indicating the similarity between the sensor reading and the supplemental data.
在2205处,(至少部分地)基于相关性得分选择一种或多种验证技术。例如,如果提供相对较低的相关性得分,则可选择较严格的验证技术,而如果存在相对较高的相关性,则可选择较不严格的验证技术(有可能是不要求最终用户执行显式验证的那些技术)。At 2205, one or more authentication techniques are selected based (at least in part) on the relevance score. For example, if a relatively low relevance score is provided, a more stringent authentication technique may be selected, while if a relatively high relevance exists, a less stringent authentication technique (potentially one that does not require the end user to perform explicit authentication) may be selected.
如果在2206处确定用户使用选定技术成功地进行了验证,则在2207处允许交易进行。如果不是,则在2208处阻止交易。If it is determined at 2206 that the user has successfully authenticated using the selected technique, then the transaction is allowed to proceed at 2207. If not, then the transaction is blocked at 2208.
上述实施例实现了许多益处。例如,这些实施例为从其他源收集的位置数据提供额外水平的保证:允许组织补充从其他源(IP、GPS等)收集的位置数据,以便获得关于位置是真实的额外保证。另外,本发明的实施例可阻止来自未授权位置的交易,从而通过限制用户可甚至尝试验证的位置来减少未授权访问。此外,这些实施例可迫使利用较强验证对位置特定风险作出响应(例如,依赖方可在用户正从已知位置访问信息时使验证的不便性减到最小,且同时仍然保持在用户/客户端正从未知位置或意外位置或者无法使用多个输入充分证明真实性的位置访问时要求执行较强验证的能力)。The above-described embodiments achieve a number of benefits. For example, these embodiments provide additional levels of assurance for location data collected from other sources: allowing organizations to supplement location data collected from other sources (IP, GPS, etc.) in order to obtain additional assurance that the location is authentic. Additionally, embodiments of the present invention can prevent transactions from unauthorized locations, thereby reducing unauthorized access by limiting the locations from which users can even attempt authentication. Furthermore, these embodiments can force the use of stronger authentication in response to location-specific risks (e.g., a relying party can minimize the inconvenience of authentication when a user is accessing information from a known location, while still maintaining the ability to require stronger authentication when the user/client is accessing from an unknown or unexpected location, or a location that cannot be adequately proven using multiple inputs).
F.基于客户端验证能力的验证策略自适应应用F. Adaptive application of authentication strategies based on client authentication capabilities
如图23所示,本发明的一个实施例包括自适应验证策略引擎2345,其允许组织-例如,具有安全交易服务的依赖方1750(下文中简称为“依赖方”)-指定哪些类型的验证对于特定交互类别而言为恰当的。如图所示,自适应验证策略引擎2345可实施为在依赖方1750处执行的验证引擎2311内的模块。在这个实施例中,自适应验证策略引擎2345根据策略数据库2325来执行,并且策略数据库2325含有用于现有验证装置2329、验证装置类别2328、交互类别2327和验证规则2326的数据。As shown in Figure 23, one embodiment of the present invention includes an adaptive authentication policy engine 2345 that allows an organization, for example, a relying party 1750 with a secure transaction service (hereinafter referred to as a "relying party"), to specify which types of authentication are appropriate for a particular interaction category. As shown, the adaptive authentication policy engine 2345 can be implemented as a module within the authentication engine 2311 executed at the relying party 1750. In this embodiment, the adaptive authentication policy engine 2345 is executed based on a policy database 2325, and the policy database 2325 contains data for existing authentication devices 2329, authentication device categories 2328, interaction categories 2327, and authentication rules 2326.
在一个实施例中,验证装置数据2329包含与已知与客户端1700一起使用的显式用户验证装置1720至1721中的每一个相关联的数据。例如,策略数据库2325可包括用于“有效性模型123”指纹传感器的条目,以及与这个传感器有关的技术细节,诸如传感器(例如,在密码安全硬件、EAL 3证书等中)存储敏感数据的方式和错误接受率(指示传感器在生成用户验证结果时有多可靠)。In one embodiment, authentication device data 2329 contains data associated with each of the explicit user authentication devices 1720-1721 known to be used with client 1700. For example, policy database 2325 may include an entry for a "validity model 123" fingerprint sensor, along with technical details about this sensor, such as how the sensor stores sensitive data (e.g., in cryptographically secure hardware, an EAL 3 certificate, etc.) and the false acceptance rate (an indication of how reliable the sensor is in generating user authentication results).
在一个实施例中,验证装置类别2328基于验证装置的能力来指定验证装置2329的逻辑分组。例如,可针对(1)指纹传感器定义一个特定验证装置类别2328,所述指纹传感器(2)在已通过EAL 3认证的密码安全硬件中存储敏感数据,并且(3)使用错误接受率小于千分之一的生物计量匹配过程。另一个装置类别2328可为(1)面部识别装置,其(2)不在密码安全硬件中存储敏感数据,并且(3)使用错误接受率小于两千分之一的生物计量匹配过程。因此,满足以上标准的指纹传感器或面部识别具体实施将添加到恰当的验证装置类别2328中。In one embodiment, the authentication device classes 2328 specify logical groupings of authentication devices 2329 based on their capabilities. For example, a specific authentication device class 2328 may be defined for (1) fingerprint sensors that (2) store sensitive data in cryptographically secure hardware that has passed EAL 3 certification, and (3) use a biometric matching process with a false acceptance rate of less than one in a thousand. Another device class 2328 may be (1) facial recognition devices that (2) do not store sensitive data in cryptographically secure hardware, and (3) use a biometric matching process with a false acceptance rate of less than one in two thousand. Thus, fingerprint sensors or facial recognition implementations that meet the above criteria will be added to the appropriate authentication device class 2328.
可使用各种单独属性定义验证装置类别,诸如验证因素的类型(例如,指纹、PIN、面部)、硬件的安全保证等级、保密信息的存储位置、验证器执行密码操作的位置(例如,在安全芯片或安全附件中)以及多种其他属性。可使用的另一组属性与客户端上执行“匹配”操作的位置相关。例如,指纹传感器可在指纹传感器自身上的安全存储装置中捕捉和存储指纹模板,并且在指纹传感器硬件自身内对照那些模板执行所有验证,从而形成高度安全的环境。作为另外一种选择,指纹传感器可仅是捕捉指纹的图像但使用主CPU上的软件来执行所有捕捉、存储和比较操作的外围设备,从而形成较不安全的环境。也可使用与“匹配”具体实施相关联的各种其他属性来定义验证装置类别(例如,是在(还是不在)安全元件、可信执行环境(TEE)或其他形式的安全执行环境中执行匹配)。Authentication device classes can be defined using various individual attributes, such as the type of authentication factor (e.g., fingerprint, PIN, face), the hardware's security assurance level, the storage location of confidential information, the location where the authenticator performs cryptographic operations (e.g., in a secure chip or secure enclosure), and a variety of other attributes. Another set of attributes that can be used relates to where the "match" operation is performed on the client. For example, a fingerprint sensor can capture and store fingerprint templates in secure storage on the fingerprint sensor itself and perform all verification against those templates within the fingerprint sensor hardware itself, creating a highly secure environment. Alternatively, the fingerprint sensor can be a peripheral device that simply captures an image of the fingerprint but uses software on the main CPU to perform all capture, storage, and comparison operations, creating a less secure environment. Authentication device classes can also be defined using various other attributes associated with the specific implementation of "matching" (e.g., whether matching is performed within (or not within) a secure element, trusted execution environment (TEE), or other form of secure execution environment).
当然,这些仅仅是用于示出验证装置类别的概念的例子。可在同时仍符合基础原理的情况下指定各种额外的验证装置类别。此外,应该指出的是,视如何定义验证装置类别而定,单个验证装置可被归类到多个装置类别。Of course, these are merely examples used to illustrate the concept of verification device categories. Various additional verification device categories may be specified while still adhering to the underlying principles. Furthermore, it should be noted that, depending on how the verification device categories are defined, a single verification device may be classified into multiple device categories.
在一个实施例中,可周期性地更新策略数据库2325,以在新验证装置2329上市时将其包括在内以及新验证装置类别2328的数据,其中新验证装置类别2328有可能包含新验证装置2329可归类到的新类别。这些更新可由依赖方和/或负责为依赖方提供更新的第三方(例如,出售依赖方使用的安全交易服务器平台的第三方)执行。In one embodiment, policy database 2325 may be periodically updated to include new authentication devices 2329 as they become available, as well as data for new authentication device categories 2328, which may include new categories into which new authentication devices 2329 may be categorized. These updates may be performed by relying parties and/or third parties responsible for providing updates to relying parties (e.g., third parties that sell secure transaction server platforms used by relying parties).
在一个实施例中,基于依赖方2325提供的特定交易来定义交互类别2327。例如,如果依赖方是金融机构,则可根据交易的币值对交互进行分类。“高值交互”可被定义为涉及(例如,转账、提取等)$5000或更多金额的类别;“中值交互”可被定义为涉及$500与$4999之间的金额的类别;“低值交易”可被定义为涉及$499或更少的金额的类别。In one embodiment, interaction categories 2327 are defined based on the specific transactions provided by relying party 2325. For example, if relying party is a financial institution, interactions may be categorized based on the monetary value of the transaction. A "high-value interaction" may be defined as a category involving (e.g., transfers, withdrawals, etc.) amounts of $5,000 or more; a "medium-value interaction" may be defined as a category involving amounts between $500 and $4,999; and a "low-value transaction" may be defined as a category involving amounts of $499 or less.
除了所涉及的金额之外,还可基于所涉及的数据的敏感性来定义交互类别。例如,公开用户的机密数据或其他私有数据的交易可被归类为“公开机密的交互”,而不公开此类数据的交易可被定义为“不公开机密的交互”。可使用不同变量和多种最低水平、最高水平和中间水平来定义各种其他类型的交互。In addition to the monetary value involved, interaction categories can also be defined based on the sensitivity of the data involved. For example, a transaction that discloses a user's confidential or other private data could be categorized as a "disclosed confidential interaction," while a transaction that does not disclose such data could be defined as a "non-disclosed confidential interaction." Various other types of interactions can be defined using different variables and a variety of minimum, maximum, and intermediate levels.
最后,可定义涉及验证装置2329、验证装置类别2327和/或交互类别2327的一组验证规则2326。以举例而非限制的方式,特定验证规则可指定对于(如交互类别2327所指定的)“高值交易”,仅可使用在已通过EAL 3认证的密码安全硬件中存储敏感数据并且使用错误接受率小于千分之一的生物计量匹配过程的指纹传感器(如被指定为验证装置类别2328的那样)。如果指纹装置不可用,则验证规则可定义可接受的其他验证参数。例如,可要求用户输入PIN或密码并且还回答一系列的个人问题(例如,用户先前向依赖方提供的个人问题)。可利用为验证装置和/或验证装置类别指定的任何上述单独属性定义规则,诸如验证因素类型(例如,指纹、PIN、面部)、硬件的安全保证等级、保密信息的存储位置、验证器执行密码操作的位置。Finally, a set of authentication rules 2326 may be defined that relate to authentication devices 2329, authentication device classes 2327, and/or interaction classes 2327. By way of example, and not limitation, a particular authentication rule may specify that for "high-value transactions" (as specified by interaction class 2327), only fingerprint sensors (as specified by authentication device class 2328) that store sensitive data in EAL 3-certified cryptographic security hardware and use a biometric matching process with a false acceptance rate of less than one in a thousand may be used. If a fingerprint device is not available, the authentication rule may define other acceptable authentication parameters. For example, the user may be required to enter a PIN or password and also answer a series of personal questions (e.g., personal questions previously provided by the user to the relying party). Rules may be defined using any of the aforementioned individual attributes specified for the authentication device and/or authentication device class, such as the authentication factor type (e.g., fingerprint, PIN, face), the hardware's security assurance level, the storage location of confidential information, and the location where the authenticator performs cryptographic operations.
作为另外一种选择或除此之外,可在规则中指定只要其他值是足够的,某些属性就能够采用任何值。例如,依赖方可指定必须使用指纹装置,并且该指纹装置在硬件中存储种子并且在硬件中执行计算,但不关心硬件的保证等级(如由包含满足这些参数的验证装置的列表的验证装置类别2328所定义)。Alternatively or in addition, it may be specified in the rules that certain attributes can take any value as long as other values are sufficient. For example, a relying party may specify that a fingerprint device must be used and that the fingerprint device stores the seed and performs the calculation in hardware, but is not concerned with the assurance level of the hardware (as defined by the verification device class 2328 containing a list of verification devices that meet these parameters).
此外,在一个实施例中,规则可仅指定只可使用特定验证装置2329来验证特定类型的交互。例如,组织可指定只有“有效性模型123指纹传感器”是可接受的。Additionally, in one embodiment, a rule may specify that only certain types of interactions may be authenticated using certain authentication devices 2329. For example, an organization may specify that only "validity model 123 fingerprint sensors" are acceptable.
另外,可使用一条规则或一组规则为交互创建验证策略的整齐有序组合。例如,这些规则可针对各个验证策略指定策略组合,从而允许创建准确反映依赖方的验证偏好的丰富策略。这种做法将允许(例如)依赖方指定指纹传感器是优选的,但如果没有指纹传感器可用,则基于可信平台模块(TPM)的验证或面部识别同样可优选作为下一个最佳替代方案(例如,以优先级顺序)。Additionally, a rule or set of rules can be used to create a neatly ordered combination of authentication policies for an interaction. For example, these rules can specify a combination of policies for each authentication policy, allowing for the creation of rich policies that accurately reflect the authentication preferences of the relying party. This would allow, for example, a relying party to specify that a fingerprint sensor is preferred, but if no fingerprint sensor is available, then Trusted Platform Module (TPM)-based authentication or facial recognition would also be preferred as the next best alternative (e.g., in order of priority).
在一个实施例中,当确定是否准许与客户端1700的交易时,自适应验证策略引擎2345依赖交互类别2327、验证装置类别2328和/或验证装置数据2329实施验证规则2326。例如,作为对客户端装置1700的用户尝试进入与依赖方网站或其他在线服务2346的交易的响应,自适应验证策略引擎2345可识别适用的一个或多个交互类别2327的组和相关联的验证规则2326。其可接着经由与客户端装置1700上的自适应验证策略模块2350(在图23中示出为客户端的验证引擎2310内的组件)的通信来应用这些规则。自适应验证策略模块2350可接着识别一种或多种验证技术2312的组以符合指定的验证策略。例如,如果依赖方的自适应验证策略引擎2345指定一组已设定优先级的验证技术,则自适应验证策略模块2350可选择客户端1700上可用的最高优先级验证技术。In one embodiment, when determining whether to permit a transaction with client 1700, adaptive authentication policy engine 2345 implements authentication rules 2326 based on interaction categories 2327, authentication device categories 2328, and/or authentication device data 2329. For example, in response to a user of client device 1700 attempting to enter into a transaction with a relying party website or other online service 2346, adaptive authentication policy engine 2345 may identify a set of one or more applicable interaction categories 2327 and associated authentication rules 2326. It may then apply these rules via communication with adaptive authentication policy module 2350 on client device 1700 (illustrated in FIG. 23 as a component within the client's authentication engine 2310). Adaptive authentication policy module 2350 may then identify a set of one or more authentication techniques 2312 that complies with the specified authentication policy. For example, if the relying party's adaptive authentication policy engine 2345 specifies a prioritized set of authentication techniques, adaptive authentication policy module 2350 may select the highest priority authentication technique available on client 1700.
验证技术2312的结果提供到保证度计算模块2340,该保证度计算模块2340生成当前用户是合法用户的保证等级。在一个实施例中,如果保证等级足够高,则客户端将把成功验证的结果传送到依赖方的验证引擎2311,之后该验证引擎2311将准许交易。The results of the verification technique 2312 are provided to the assurance calculation module 2340, which generates an assurance level that the current user is a legitimate user. In one embodiment, if the assurance level is high enough, the client will transmit the result of the successful verification to the relying party's verification engine 2311, which will then approve the transaction.
在一个实施例中,来自客户端装置传感器1741至1743的数据还可由保证度计算模块2340用来生成保证等级。例如,位置传感器(例如,GPS装置)可指示客户端装置1700的当前位置。如果客户端装置处于预期位置(例如,在家或在工作中),则保证度计算模块2340可使用该信息来提高保证等级。相反,如果客户端装置1700处于意外位置(例如,用户先前从未到访的外国),则保证度计算模块2340可使用该信息来降低保证等级(从而要求执行较严格的显式用户验证来达到可接受的保证等级)。如上文论述,可将各种额外传感器数据(诸如温度、湿度、加速度计数据等)综合到保证等级计算中。In one embodiment, data from the client device sensors 1741-1743 may also be used by the assurance calculation module 2340 to generate an assurance level. For example, a location sensor (e.g., a GPS device) may indicate the current location of the client device 1700. If the client device is in an expected location (e.g., at home or at work), the assurance calculation module 2340 may use this information to increase the assurance level. Conversely, if the client device 1700 is in an unexpected location (e.g., a foreign country that the user has never visited before), the assurance calculation module 2340 may use this information to decrease the assurance level (thereby requiring stricter explicit user authentication to achieve an acceptable assurance level). As discussed above, various additional sensor data (such as temperature, humidity, accelerometer data, etc.) may be integrated into the assurance level calculation.
图23中所示的系统可基于将客户端验证能力和其他信息传送到依赖方的特异性来不同地操作。例如,在一个实施例中,可将每个显式用户验证装置1720和1721的具体型号,以及客户端装置1700上的安全硬件/软件和传感器1741至1743的特定详情传送到依赖方1750。因而,在这个实施例中,自适应验证策略引擎2345可基于针对当前交易实施的验证规则和与客户端相关联的风险来明确地识别所需的验证模式。例如,自适应验证策略模块2345可针对给定交易请求经由安装在客户端上的“有效性模型123”指纹传感器进行验证。The system shown in FIG23 can operate differently based on the specificity of transmitting the client's authentication capabilities and other information to the relying party. For example, in one embodiment, the specific model of each explicit user authentication device 1720 and 1721, as well as the specific details of the security hardware/software and sensors 1741 to 1743 on the client device 1700, can be transmitted to the relying party 1750. Thus, in this embodiment, the adaptive authentication policy engine 2345 can explicitly identify the required authentication mode based on the authentication rules implemented for the current transaction and the risk associated with the client. For example, the adaptive authentication policy module 2345 can perform authentication for a given transaction request via the "validity model 123" fingerprint sensor installed on the client.
在另一个实施例中,为了保护用户的隐私,可仅提供对客户端装置1700的验证能力的一般描述。例如,客户端装置可传达其具有在已通过EAL 3认证的密码安全硬件中存储敏感数据并且/或者使用错误接受率小于N分之一的生物计量匹配过程的指纹传感器的消息。客户端装置可指定与其他验证装置的能力和规范相关的类似一般信息,而不公开那些装置的具体型号。接着,自适应验证策略引擎2345可使用这些一般信息在数据库2325内将验证装置归类到适用的验证装置类别2338。作为对执行交易的请求的响应,如果特定验证装置的类别足以完成交易,则自适应验证策略模块2345可接着指示客户端装置1700使用该特定验证装置。In another embodiment, to protect the user's privacy, only a general description of the authentication capabilities of the client device 1700 may be provided. For example, the client device may communicate that it has a fingerprint sensor that stores sensitive data in cryptographically secure hardware that has passed EAL 3 certification and/or uses a biometric matching process with a false acceptance rate of less than 1 in N. The client device may specify similar general information regarding the capabilities and specifications of other authentication devices without disclosing the specific models of those devices. The adaptive authentication policy engine 2345 can then use this general information to classify the authentication device into an applicable authentication device category 2338 within the database 2325. In response to a request to perform a transaction, if the category of a particular authentication device is sufficient to complete the transaction, the adaptive authentication policy engine 2345 can then instruct the client device 1700 to use that particular authentication device.
在又一个实施例中,客户端装置1700不向依赖方传送与其验证能力相关的任何数据。相反,在这个实施例中,自适应验证策略模块2345传达所需要的验证等级,并且客户端上的自适应验证策略模块2350选择满足那个验证等级的一种或多种验证技术。例如,自适应验证策略模块2345可传达当前交易被归类为“高值交易”(由交互类别2327指定)的消息,对于所述“高值交易”仅可使用某些类别的验证装置。如所提及的,自适应验证策略模块2345还可以已设定优先级的方式传达验证类别。基于该信息,客户端上的自适应验证策略模块2350可接着选择当前交易所需的一种或多种验证技术2312。In yet another embodiment, the client device 1700 does not transmit any data related to its verification capabilities to the relying party. Instead, in this embodiment, the adaptive verification policy module 2345 communicates the required verification level, and the adaptive verification policy module 2350 on the client selects one or more verification technologies that meet that verification level. For example, the adaptive verification policy module 2345 may convey that the current transaction is classified as a "high value transaction" (specified by the interaction category 2327), for which only certain categories of verification devices can be used. As mentioned, the adaptive verification policy module 2345 can also convey the verification categories in a prioritized manner. Based on this information, the adaptive verification policy module 2350 on the client can then select one or more verification technologies 2312 required for the current transaction.
如图23所指示,客户端装置1700可包括其自己的策略数据库2390,以用于存储/高速缓存每个依赖方的策略数据。策略数据库2390可包括存储在依赖方的策略数据库2325内的数据的子集。在一个实施例中,在数据库2390中针对每个依赖方存储了一组不同的策略数据(反映每个依赖方的不同验证策略)。在这些实施例中,特定交易类别(例如,“高值交易”、“低值交易”等)的仅有指示可为足以供客户端装置1700上的自适应验证策略模块2350选择必要的验证技术2312的信息(即,因为可在本地策略数据库2390内找到与各种交易类型相关联的规则)。因而,自适应验证策略模块2345可仅指示当前交易的交互类别,自适应验证策略模块2350使用该交互类别来基于与该交互类别相关联的规则识别验证技术2312。As indicated in FIG. 23 , client device 1700 may include its own policy database 2390 for storing/caching policy data for each relying party. Policy database 2390 may include a subset of the data stored within a relying party's policy database 2325. In one embodiment, a different set of policy data is stored in database 2390 for each relying party (reflecting each relying party's different authentication policies). In these embodiments, a mere indication of a particular transaction category (e.g., "high-value transaction," "low-value transaction," etc.) may be sufficient information for adaptive authentication policy module 2350 on client device 1700 to select the necessary authentication technology 2312 (i.e., because rules associated with various transaction types can be found within local policy database 2390). Thus, adaptive authentication policy module 2345 may simply indicate the interaction category of the current transaction, which adaptive authentication policy module 2350 uses to identify authentication technology 2312 based on the rules associated with that interaction category.
图24中示出基于客户端装置能力来执行自适应验证的方法。该方法可在图23所示的系统上实施,但不限于任何特定系统架构。A method for performing adaptive authentication based on client device capabilities is shown in Figure 24. This method can be implemented on the system shown in Figure 23, but is not limited to any particular system architecture.
在2401处,客户端尝试与依赖方执行交易。以举例而非限制的方式,客户端可输入支付信息进行在线购买或尝试在银行账户之间转移资金。在2402处,对交易进行归类。例如,如上文论述,可基于诸如所涉及的金额或所涉及的信息敏感性等变量来使交易与特定交互类别相关联。At 2401, a client attempts to perform a transaction with a relying party. By way of example and not limitation, the client may enter payment information to make an online purchase or attempt to transfer funds between bank accounts. At 2402, the transaction is categorized. For example, as discussed above, the transaction may be associated with a particular interaction category based on variables such as the amount involved or the sensitivity of the information involved.
在2403处,识别与该交易类别相关联的一个或多个规则。回到上例,如果交易被归类为“高值交易”,则可选择与这种交易类型相关联的规则。在2404处,执行与该交易类型相关联的规则,并且如上文论述,向客户端发送指示完成交易的验证要求的信息。如上文论述,此过程可涉及识别特定验证装置、识别验证装置的类别,或仅仅指示需要实施的特定规则(例如,如果客户端在本地保留了这些规则的复本)。At 2403, one or more rules associated with the transaction category are identified. Returning to the previous example, if the transaction is categorized as a "high value transaction," the rules associated with this transaction type may be selected. At 2404, the rules associated with the transaction type are executed, and as discussed above, information indicating the authentication requirements for completing the transaction is sent to the client. As discussed above, this process may involve identifying a specific authentication device, identifying a class of authentication device, or simply indicating specific rules that need to be implemented (e.g., if the client maintains a local copy of these rules).
在任何情况下,在2405处,基于经由规则和客户端的验证能力指定的要求来选择一组验证技术,这种验证技术由一种或多种验证技术组成。如果在2406处确定验证成功,则在2407处准许交易。如果不是,则在2408处阻止交易(或向用户请求执行额外验证)。In any case, a set of authentication techniques, consisting of one or more authentication techniques, is selected based on the requirements specified via the rules and the authentication capabilities of the client at 2405. If authentication is determined to be successful at 2406, the transaction is permitted at 2407. If not, the transaction is blocked at 2408 (or additional authentication is requested from the user).
通过本文所述的本发明的实施例可实现许多益处。例如,这些实施例减少了在依赖方处集成验证能力所需要的工作量。例如,不需要编写代码来编纂验证策略,可通过简单的图形用户界面配置规则。要完成集成,依赖方只需要针对交互类别(例如:“大笔金额转移”)定义策略并且在与策略引擎交互以确定待利用的正确验证机制时使集成代码使用相应的策略识别符。Numerous benefits can be achieved through the embodiments of the present invention described herein. For example, these embodiments reduce the effort required to integrate authentication capabilities at a relying party. For example, instead of writing code to codify authentication policies, rules can be configured through a simple graphical user interface. To complete the integration, the relying party simply defines a policy for an interaction category (e.g., "Large Amount Transfer") and has the integration code use the corresponding policy identifier when interacting with the policy engine to determine the correct authentication mechanism to utilize.
此外,这些实施例简化了验证策略管理。这种方法在代码外部表达验证策略,这使得组织可轻松地在不需要改变代码的情况下更新其验证策略。为反映法规要求的新诠释或响应于对现有验证机制的攻击而做出的变化,变成了策略的简单变化并且可快速生效。Furthermore, these embodiments simplify authentication policy management. This approach expresses authentication policy outside of code, making it easy for organizations to update their authentication policies without requiring code changes. Changes to reflect new interpretations of regulatory requirements or in response to attacks on existing authentication mechanisms become simple changes to policy and can be quickly implemented.
最后,这些实施例允许将来对验证技术进行改进。在有新的验证装置可用时,组织可评估其应对新风险或新兴风险的适宜性。要集成新近可用的验证装置,仅需要将验证装置添加到策略即可;不必编写新代码来立即部署新能力。Finally, these embodiments allow for future improvements to authentication technologies. As new authentication devices become available, organizations can assess their suitability for addressing new or emerging risks. Integrating newly available authentication devices simply requires adding the authentication device to the policy; there's no need to write new code to immediately deploy new capabilities.
G.用于在验证期间进行眼动跟踪的系统和方法G. Systems and Methods for Eye Tracking During Verification
一般来讲,如果(a)使用秘密信息进行验证或(b)很难产生假输入,则验证技术在应对欺骗方面具有良好的稳健性。如今,大多数系统依赖于基于密码的验证。密码易于复制,所以需要保密。因此,密码攻击通常集中在获取用户密码方面。最近的攻击已经表明,存储验证密码的服务器较为脆弱。Generally speaking, authentication technologies are robust against spoofing if (a) they use secret information for authentication or (b) it's difficult to generate false input. Today, most systems rely on password-based authentication. Passwords are easy to copy and therefore need to be kept secret. Consequently, password attacks often focus on obtaining user passwords. Recent attacks have demonstrated that servers storing authentication passwords are vulnerable.
与基于密码的验证相比,使用生物计量进行验证时,生物计量信息通常是公开的。例如,可从用户触摸过的(几乎)任何物体上取得用户的指纹。相似地,用户的面部通常不会隐藏起来,因此可被任何人看见并捕捉,而且常常会在社交网络上公布。Compared to password-based authentication, when using biometrics for authentication, the biometric information is typically public. For example, a user's fingerprint can be obtained from (almost) any object they touch. Similarly, a user's face is typically not hidden and can be seen and captured by anyone, often even published on social networks.
在真实世界中,在看一个人时我们可以依赖于我们自己的识别能力,因为很难“造出”具有相同生物计量特性的另一个人。例如,同样很难“造出”具有相同面部和习性的另一个人。这就是为什么政府在护照、身份证、驾驶证和其他文件上放置面部图片的原因。然而,在虚拟世界中,我们不必“造出”具有相同面部的另一个人来欺骗系统,只要造出计算机将识别的某些东西(如面部的图片)即可。换句话讲,“这寓意着,生物计量学只有在验证器能够验证两件事情时才奏效:一是验证时生物计量信息来自人,二是生物计量信息匹配存档的主生物计量信息”(见在本说明书的权利要求书之前提供的参考文献列表中的参考文献1)。In the real world, we can rely on our own recognition abilities when looking at a person because it's difficult to "create" another person with the same biometric characteristics. For example, it's equally difficult to "create" another person with the same face and mannerisms. This is why governments place facial images on passports, ID cards, driver's licenses, and other documents. However, in the virtual world, we don't have to "create" another person with the same face to trick the system; we just have to create something the computer will recognize (like a picture of the face). In other words, "the implication is that biometrics only works if the authenticator can verify two things: that the biometric information comes from a person at the time of authentication, and that the biometric information matches the primary biometric information on file" (see Reference 1 in the list of references provided before the claims of this specification).
过去,对自动面部识别的研究集中于使用静态图像和视频可靠地识别面部。参见例如下面的参考文献2。存在若干种相对稳健的面部识别技术并且在当前市面上可买到多种系统(见参考文献3)。然而,很少有人注意“活性”检测,即“确认生物计量信息与存档的主生物计量信息一致”。在若干种使用情况下,要么不需要欺骗防御,要么仍由人类执行欺骗防御(例如,在执法应用中)。In the past, research in automatic facial recognition has focused on reliably identifying faces using static images and videos. See, for example, Reference 2 below. Several relatively robust facial recognition technologies exist, and a variety of systems are currently commercially available (see Reference 3). However, little attention has been paid to "liveness" detection, i.e., "confirming that the biometric information is consistent with the primary biometric information on file." In several use cases, spoofing protection is either not required or is still performed by humans (e.g., in law enforcement applications).
一方面,笔记本计算机和智能电话等计算装置普遍都配备了相机,另一方面,密码这种最流行的验证方法具有缺点,这两个方面推动了生物计量验证方法、尤其是面部识别的流行。面部识别作为验证方法的第一次大规模“试验”出现在谷歌安卓4(又称“冰淇淋三明治”)中,且基于静态图像识别。但是使用照片便可以轻易骗过这些技术(见参考文献4)。尽管安卓4.1(又称“软心豆粒糖”)采用了改进的方法,加入了某种活性检测,但是在计算机显示器上向相机依序呈现两张照片(一张睁眼照片,一张经过电子修改的闭眼照片)仍可轻松欺骗过关(见参考文献5)。The widespread availability of cameras in computing devices like laptops and smartphones, coupled with the shortcomings of passwords as the most popular authentication method, have driven the popularity of biometric authentication methods, particularly facial recognition. The first large-scale experiment with facial recognition as an authentication method appeared in Google Android 4 (also known as "Ice Cream Sandwich") and was based on static image recognition. However, these technologies can be easily spoofed using photos (see Reference 4). Although Android 4.1 (also known as "Jelly Bean") implemented an improved method with a liveness check, it can still be easily spoofed by presenting two photos sequentially to the camera on a computer monitor—one with open eyes and one electronically altered with closed eyes—once displayed (see Reference 5).
虽然也许有人会说这个缺点是由于移动装置上的资源限制而造成的,但这也说明,可供PC使用的商用软件,甚至是对反欺骗检测的研究,尚未非常成熟。本申请的受让人使用基于PC的面部识别软件进行了测试,测试结果表明:While some might argue that this shortcoming is due to resource limitations on mobile devices, it also demonstrates that commercially available software for PCs, and even research on anti-spoofing detection, is still relatively immature. The assignee of this application conducted tests using PC-based facial recognition software, and the test results showed that:
即使将安全设置设为“高”,在基于Windows的Samsung Series笔记本计算机上运行的Cogent BioTrust 3.00.4063也根本不执行活性检查。在普通计算机监视器上显示的简单面部图像足以成功骗过系统。Even with security settings set to "High," Cogent BioTrust 3.00.4063 running on a Windows-based Samsung Series laptop performed no liveness check at all. A simple facial image displayed on a regular computer monitor was enough to successfully fool the system.
在Macbook 上运行的KeyLemon 2.6.5执行简单的眨眼测试,作为活性检验。只需展示如下一系列的3个图像便可成功骗过系统:(1)面部的真实图像(例如,由网络摄像头创建);(2)真实图像的修改图像,在这种修改图像中,对眼睛进行了重新上色,使得眼睛看起来似乎是闭上的;(3)又是真实图像。KeyLemon 2.6.5 running on a Macbook performs a simple eye-blink test as a liveness check. The system can be successfully fooled by simply showing a series of three images: (1) a real image of a face (e.g., created by a webcam); (2) a modified version of the real image in which the eyes have been recolored to appear closed; and (3) another real image.
比较不同算法时,反欺骗检测不是标准测试(诸如NIST生物计量供应商测试)的一部分。参见例如参考文献6至8。2011年由若干位研究人员组织的第一批已知公开赛之一(见参考文献9)展示了一些算法的早期成功,但是这些算法基于分辨率为320×240像素的视频。典型计算装置提供的前置摄像头的分辨率为至少640×480像素。When comparing different algorithms, anti-spoofing detection is not part of standard tests (such as the NIST biometric vendor tests). See, for example, References 6 to 8. One of the first known public competitions organized by several researchers in 2011 (see Reference 9) showed early success with some algorithms, but these algorithms were based on videos with a resolution of 320×240 pixels. Typical computing devices provide front-facing cameras with a resolution of at least 640×480 pixels.
图25示出具有用于执行面部识别的生物计量装置2500的示例性客户端2520。正常运行时,生物计量传感器2502(例如,相机)从用户读取原始生物计量数据(例如,拍摄用户的照片),并且特征提取模块2503提取原始生物计量数据的指定特征(例如,注重于某些面部特征等)。匹配器模块2504将所提取的特征与客户端2520上的安全存储装置中存储的生物计量模板数据2510进行比较,并且基于所提取的特征与生物计量模板数据2510之间的相似性来生成得分和/或“是/否”响应。生物计量模板数据2510通常是登记过程的结果,用户在登记过程中向装置2500登记面部图像或其他生物计量数据。接着,应用程序2505可使用得分或“是/否”结果来确定验证是否成功。FIG25 illustrates an exemplary client 2520 with a biometric device 2500 configured to perform facial recognition. During normal operation, a biometric sensor 2502 (e.g., a camera) reads raw biometric data from a user (e.g., by taking a photo of the user), and a feature extraction module 2503 extracts specified features from the raw biometric data (e.g., focusing on certain facial features, etc.). A matcher module 2504 compares the extracted features to biometric template data 2510 stored in secure storage on the client 2520 and generates a score and/or a yes/no response based on the similarity between the extracted features and the biometric template data 2510. The biometric template data 2510 is typically the result of an enrollment process in which a user enrolls a facial image or other biometric data with the device 2500. Application 2505 can then use the score or yes/no response to determine whether authentication was successful.
可从多个潜在攻击点来欺骗面部识别系统(见参考文献10、11),这些攻击点在图25中标识为(1)至(8)。已经有确保生物计量模板(6)的完整性(例如,通过使用电子签名)并且保护特征提取(3)、特征向量(4)、匹配器(5)及其最终结果(8)的完整性(例如,通过应用(a)白盒加密方法、(b)代码混淆和(c)装置绑定的组合)的熟知保护机制。Facial recognition systems can be deceived from multiple potential attack points (see references 10, 11), which are identified as (1) to (8) in Figure 25. There are well-known protection mechanisms that ensure the integrity of the biometric template (6) (e.g., by using an electronic signature) and protect the integrity of the feature extraction (3), feature vectors (4), matcher (5) and its final result (8) (e.g., by applying a combination of (a) white box cryptography methods, (b) code obfuscation and (c) device binding).
可信计算组织的方法中以及ARM TrustZone的潜在扩展中(至少理论上)涵盖了防止向特征提取单元(2)重新播放旧捕捉数据的保护机制。基本上,方法是向传感器添加密码保护机制(例如,HMAC或电子签名)并且以防篡改方式封装传感器,这类似于当前智能卡芯片中所使用的保护机制。接着,特征提取引擎可验证传入数据的完整性。The Trusted Computing Group's approach, and potential extensions to ARM TrustZone (at least in theory), include protection mechanisms to prevent replaying old captured data to the feature extraction unit (2). Essentially, the approach involves adding cryptographic protection mechanisms (e.g., HMAC or electronic signatures) to the sensor and packaging it in a tamper-proof manner, similar to the protection mechanisms currently used in smart card chips. The feature extraction engine can then verify the integrity of the incoming data.
尽管下文所述的本发明的实施例利用眼动跟踪技术来确认用户的“活性”,但在一个实施例中,这些技术与一种或多种检测假生物计量的现有技术(见参考文献1)组合使用。这个领域目前正在研究中。现有研究已经确定了针对假生物计量的四种不同类别的防御方法(见参考文献12):While the embodiments of the present invention described below utilize eye tracking technology to confirm a user's "liveliness," in one embodiment, these technologies are used in combination with one or more existing techniques for detecting fake biometrics (see Reference 1). This area is currently under research. Existing research has identified four different categories of defenses against fake biometrics (see Reference 12):
1.数据驱动的特征化1. Data-driven characterization
a.静态图像a. Still images
i.通过重新扫描图像并且分析2D傅立叶频谱来检测分辨率降低(参考文献13)i. Detecting resolution loss by rescanning the image and analyzing the 2D Fourier spectrum (Ref. 13)
ii.利用真实面部与图像印制品的不同反射特征。其理论基于朗伯反射特性(参考文献14)ii. Utilize the different reflective characteristics of real faces and image prints. The theory is based on the Lambertian reflectance characteristic (Reference 14)
iii.利用打印缺陷造成的真实面部与图像印制品的不同微观纹理(参考文献15)。iii. Exploiting the different microtextures of real faces and image prints caused by printing defects (Reference 15).
iv.利用打印图像上的降质和加噪并结合其他方法(参考文献16)。iv. Utilize degradation and noise addition on printed images and combine with other methods (Reference 16).
b.视频b. Video
v.每个相机传感器都有自己的特征,重新捕捉监视器上所显示的视频会造成伪影。可利用这点来检测欺骗(参考文献12)。v. Each camera sensor has its own characteristics, and recapturing the video displayed on the monitor will cause artifacts. This can be exploited to detect spoofing (Reference 12).
vi.如果使用图像进行欺骗,面部和背景之间会存在相依性(参考文献17)。vi. If images are used for spoofing, there will be dependencies between the face and the background (Reference 17).
vii.如果是欺骗攻击,面部的活动通常会较僵硬(参考文献18)。vii. In the case of a spoofing attack, facial movements are usually stiff (Reference 18).
c.静态图像与视频的组合(参考文献12)。c. Combination of static images and videos (Reference 12).
2.用户行为建模(参考文献12)。2. User behavior modeling (Reference 12).
3.用户交互需求(参考文献12)。3. User interaction requirements (Reference 12).
4.额外装置(参考文献12)。4. Additional devices (reference 12).
仅基于现有传感器技术的最有效非侵入式机制似乎是基于动作检测、纹理检测和活性检测的组合。参见参考文献9。The most effective non-intrusive mechanism based solely on existing sensor technology appears to be based on a combination of motion detection, texture detection, and liveness detection (see Ref. 9).
纹理差异Texture Differences
可检测对打印并重新扫描图片造成的影响。从直观上可以清楚看出,打印和重新扫描图像后,图像的质量并没有改善。参考文献15中的研究表明,可通过分析微观纹理来在算法上检测差异:“仔细查看真实面部与面部印制品之间的差异可以发现,人脸和印制品反射光的方式是不同的,因为人脸是复杂的非刚性3D物体,而照片可被看作是平面刚性物体。”The effects of printing and rescanning an image can be detected. It's intuitively clear that the image quality doesn't improve after printing and rescanning it. Research in Reference 15 suggests that differences can be algorithmically detected by analyzing microtexture: "A close examination of the differences between a real face and a print of a face reveals that faces and prints reflect light differently because faces are complex, non-rigid 3D objects, while photographs can be viewed as flat, rigid objects."
这种算法已经对照NUAA图片欺骗数据库中包括的图像进行过测试。据报告,使用未优化C++代码在具有3GB RAM的2.4GHz英特尔酷睿2双核CPU上处理图像的平均性能为16.5ms。The algorithm was tested against images included in the NUAA Image Spoofing Database, and reported an average performance of 16.5ms for processing images on a 2.4GHz Intel Core 2 Duo CPU with 3GB of RAM using unoptimized C++ code.
红外线,而非可见光Infrared, not visible light
很难在红外光谱中显示图像或视频。因此,如参考文献19中所提出的基于捕捉面部热图像的活性检测,将比以可见光捕捉图像更稳健。遗憾的是,红外传感器很昂贵,因此未纳入一般的笔记本计算机、平板计算机或智能电话中。It is difficult to display images or videos in the infrared spectrum. Therefore, liveness detection based on capturing thermal images of the face, as proposed in Reference 19, would be more robust than capturing images in visible light. Unfortunately, infrared sensors are expensive and therefore not included in typical laptops, tablets, or smartphones.
基于光流的方法Optical flow based methods
真实面部是三维物体。在正常交谈中面部通常会移动。预期面部中央部分的2D运动,即,与相机的距离较近的部分的2D运动,比与相机的距离较远的面部区域的2D运动高(参考文献20、21、22)。对于这种类型的检测,需要包含至少3个连续图像的序列。Real faces are three-dimensional objects. Faces typically move during normal conversation. The 2D motion of the central part of the face, that is, the part closer to the camera, is expected to be higher than the 2D motion of facial regions farther from the camera (References 20, 21, 22). For this type of detection, a sequence of at least three consecutive images is required.
参考文献21中的研究是SART-2项目(用于移动工作站的生物计量安全系统)的一部分。The research in reference 21 is part of the SART-2 project (Biometric Security System for Mobile Workstations).
运动图片,而非静态图像Moving pictures, not static images
在参考文献23中描述了基于眨眼的活性检测方法。这种方法似乎对于简单的基于照片的欺骗攻击相当稳健。除了识别面部之外,该方法还定位眼睛并且检查在所观测到的图像序列中是否能够看到闭眼。如从安卓4.1的大规模试验中看到,这种方法对于“photoshop”攻击明显不是非常稳健。参见参考文献5。Reference 23 describes a liveness detection method based on blinking. This method appears to be quite robust against simple photo-based spoofing attacks. In addition to recognizing faces, the method also locates eyes and checks whether closed eyes can be seen in the observed image sequence. As seen in large-scale experiments on Android 4.1, this method is clearly not very robust against "Photoshop" attacks. See Reference 5.
一般来讲,为了欺骗此类基于运动图片的系统,攻击者必须生成小图像序列并且必须向传感器展示该序列。在具有强大图像编辑器、免费视频编辑器和平板PC的世界中,这是非常容易做到的。Typically, to trick such motion-image-based systems, an attacker must generate a sequence of small images and present that sequence to the sensor. This is quite easy to do in a world of powerful image editors, free video editors, and tablet PCs.
此类方法以“公知交互”为特征,即,攻击者事先知道所需要的交互并且能够准备匹配的图像序列。Such methods are characterized by “known interactions”, i.e., the attacker knows the required interactions in advance and is able to prepare matching image sequences.
在参考文献23中,将场景和眨眼的情形纳入了分析中。在英特尔酷睿2双核2.8GHz的2GB RAM上测得的性能为大约每视频帧50毫秒(20fps)。In Reference 23, scenes and eye blinks are included in the analysis. The performance is measured to be approximately 50 milliseconds per video frame (20 fps) on an Intel Core 2 Duo 2.8 GHz with 2 GB of RAM.
质询响应方法Challenge Response Method
在生物计量的环境中,质询响应被定义为:In the context of biometrics, a challenge response is defined as:
一种通过引出来自个体的直接响应来确认人员存在的方法。响应可以是自愿的,也可以是非自愿的。在自愿响应中,最终用户将有意识地对系统所呈现的事物做出反应。在非自愿响应中,最终用户的身体自动地对刺激做出响应。可利用质询响应保护系统免受攻击。A method of confirming a person's presence by eliciting a direct response from the individual. Responses can be voluntary or involuntary. In a voluntary response, the end user consciously reacts to what the system presents. In an involuntary response, the end user's body automatically responds to the stimulus. Challenge response can be used to protect systems from attacks.
(National Science&Technology Council′s Subcommittee on Biometrics)(National Science & Technology Council’s Subcommittee on Biometrics)
多模态系统Multimodal systems
目前已经提出多模态系统来改善生物计量方法抵御欺骗攻击、噪声数据等的稳健性。参见参考文献25。Multimodal systems have been proposed to improve the robustness of biometric methods against spoofing attacks, noisy data, etc. See Ref. 25.
参考文献26中分析了模拟欺骗攻击对此类多模态系统的影响。得出的主要结果是,并非所有融合方案都能改善抵御欺骗攻击的稳健性,这意味着在一些融合方案中,只需欺骗单个生物计量方法便足以欺骗整个多模态系统。使用真实欺骗攻击对现有方案进行的分析得到了类似的结果。参见参考文献27。Reference 26 analyzes the impact of simulated spoofing attacks on such multimodal systems. The main result is that not all fusion schemes improve robustness against spoofing attacks, meaning that in some fusion schemes, fooling just a single biometric method is sufficient to fool the entire multimodal system. Similar results were obtained from an analysis of existing schemes using real spoofing attacks (see Reference 27).
一般来讲,存在三种不同类别的多模态系统:Generally speaking, there are three different categories of multimodal systems:
1)成功欺骗单个特征便足以欺骗整个系统的系统。针对小FRR优化多模态系统通常会导致此类结果。1) A system where successfully fooling a single feature is sufficient to fool the entire system. Optimizing a multimodal system for small FRR often leads to this type of result.
2)具有以下情况的系统:2) Systems with the following conditions:
a)必须欺骗不止一个特征才能成功欺骗整个系统;并且a) more than one characteristic must be deceived to successfully deceive the entire system; and
b)欺骗这个多模态系统中的任何一个特征都不比欺骗单模态系统中的相同特征复杂。b) Deceiving any one feature in this multimodal system is no more complex than deceiving the same feature in a unimodal system.
3)具有以下情况的系统3) Systems with the following conditions
a)必须欺骗不止一个特征才能成功欺骗整个系统;并且a) more than one characteristic must be deceived to successfully deceive the entire system; and
b)欺骗这个多模态系统中的任何一个特征都比欺骗单模态系统中的相同特征更复杂。下文所述的本发明的实施例属于这一类。b) It is more complex to spoof any one feature in this multimodal system than to spoof the same feature in a unimodal system. The embodiments of the present invention described below belong to this category.
本发明的一个实施例将眼动跟踪作为验证过程的一部分来执行以测量对屏幕上随机布置和显示的不同关注区的响应。例如,可向用户展示混合文本、空白区域、图像和视频剪辑的一系列随机屏幕布局,从而以非侵入式的方式引发用户的眼球运动。同时,使用眼动跟踪技术来确认眼球正以预期方式对屏幕布局做出反应。接着可结合该信息与面部识别技术来验证仍存在预期的面部。此外,如上文论述,可将眼动跟踪技术和面部识别技术与其他技术(例如,基于位置的验证、非侵入式用户存在检测、指纹扫描等)结合使用以达到对合法用户持有装置的足够保证等级。One embodiment of the present invention performs eye tracking as part of the authentication process to measure responses to different areas of interest that are randomly arranged and displayed on the screen. For example, a user may be presented with a series of random screen layouts that mix text, white space, images, and video clips, thereby eliciting eye movements from the user in a non-invasive manner. Simultaneously, eye tracking technology is used to confirm that the eyes are reacting to the screen layout in the expected manner. This information can then be combined with facial recognition technology to verify that the expected face is still present. Furthermore, as discussed above, eye tracking technology and facial recognition technology can be combined with other technologies (e.g., location-based authentication, non-invasive user presence detection, fingerprint scanning, etc.) to achieve a sufficient level of assurance that the legitimate user is in possession of the device.
阅读网页或其他内容类型不涉及眼球沿着内容进行平滑移动,涉及一系列短暂停留(称为“凝视”)和快速“扫视”。所得的一系列凝视和扫视被称为“扫描路径”。扫描路径可用于分析认知意向、兴趣和特色(“眼动跟踪”参见en.wikipedia.org/wiki/Eye_tracking处的当前维基百科文章)。“热图”是显示一组人在观看网页或电子邮件时凝视什么区域的集合表示(见Hartzell,“Crazy Egg Heatmap Shows Where People Click on YourWebsite”(Nov 30,2012)(Hartzell.Crazy Egg热图显示人们点击您网站的哪些部分。www.michaelhartzell.com/Blog/bid/92970/Crazy-Egg-Heatmap-shows-where-people-click-on-your-website,2012-11-30)。Reading a web page or other type of content does not involve a smooth movement of the eyeballs along the content, but rather a series of brief pauses (called "gazes") and rapid "scans." The resulting series of gazes and scans is called a "scan path." Scan paths can be used to analyze cognitive intent, interests, and characteristics (see the current Wikipedia article on "Eye Tracking" at en.wikipedia.org/wiki/Eye_tracking). A "heat map" is a collective representation showing where a group of people gaze while viewing a web page or email (see Hartzell, "Crazy Egg Heatmap Shows Where People Click on Your Website" (Nov 30, 2012) (Hartzell. Crazy Egg Heatmap Shows Where People Click on Your Website. www.michaelhartzell.com/Blog/bid/92970/Crazy-Egg-Heatmap-shows-where-people-click-on-your-website, 2012-11-30).
如图26所示,本发明的一个实施例包括客户端装置2600上的验证引擎2610,其包括用于执行面部识别的面部识别模块2604和用于执行本文所述的眼动跟踪操作的眼动跟踪模块2605。在一个实施例中,面部识别模块2604和眼动跟踪模块2605分析客户端装置上的相机2602捕捉的视频图像序列2603,以执行相应操作。As shown in Figure 26, one embodiment of the present invention includes an authentication engine 2610 on a client device 2600, which includes a facial recognition module 2604 for performing facial recognition and an eye tracking module 2605 for performing eye tracking operations described herein. In one embodiment, the facial recognition module 2604 and the eye tracking module 2605 analyze a video image sequence 2603 captured by a camera 2602 on the client device to perform corresponding operations.
为了执行面部识别操作,面部识别模块2604依赖于存储在安全面部识别数据库2646内的面部识别模板。具体地讲,如上文论述,面部识别模块2604内的匹配逻辑将从视频图像2603提取的面部特征与存储在面部识别数据库2646中的面部模板数据进行比较,并且基于所提取的特征与面部模板数据之间的相似性生成“得分”。如先前论述,存储在数据库2646中的面部模板数据可由登记过程生成,在登记过程中用户向客户端装置2600登记面部图像或其他生物计量数据。接着可将面部识别模块2604生成的得分与来自其他验证模块(例如,诸如下文论述的眼动跟踪模块2605)的得分综合,以形成保证等级2606,保证等级2606表示合法用户正发起当前交易的保证度。在一个实施例中,每个得分都必须达到特定阈值,才能针对特定交易生成足够的保证等级2606。在一个实施例中(假定已达到阈值),可将得分相加或使用其他数学公式进行综合(例如,可对得分进行加权、求平均值、相加或以任何其他方式进行综合)。To perform facial recognition operations, facial recognition module 2604 relies on facial recognition templates stored within secure facial recognition database 2646. Specifically, as discussed above, matching logic within facial recognition module 2604 compares facial features extracted from video image 2603 to facial template data stored in facial recognition database 2646 and generates a "score" based on the similarity between the extracted features and the facial template data. As previously discussed, the facial template data stored in database 2646 may be generated by an enrollment process in which a user registers a facial image or other biometric data with client device 2600. The score generated by facial recognition module 2604 can then be combined with scores from other verification modules (e.g., such as eye tracking module 2605, discussed below) to form an assurance level 2606, which represents the degree of confidence that a legitimate user is initiating the current transaction. In one embodiment, each score must meet a specific threshold to generate a sufficient assurance level 2606 for a particular transaction. In one embodiment (assuming the threshold has been reached), the scores may be summed or combined using another mathematical formula (eg, the scores may be weighted, averaged, summed, or combined in any other manner).
为了执行眼动跟踪分析,眼动跟踪模块2605依赖于存储在安全眼动跟踪数据库2645内的眼动跟踪模板。虽然示出为单独的数据库,但眼动跟踪数据库和面部识别数据库可实际上是同一个安全数据库。在一个实施例中,眼动跟踪模板指定将在客户端装置的显示器2601上向用户显示的文本、图形、图片、视频和/或空白区域(一些例子在下面的图28A至28B中示出),并且还有可能指定显示这些内容的次序。另外,眼动跟踪模板包括指定用户眼球响应于向用户显示的内容而产生的预期运动特征的数据(例如,呈热图的形式,见下文)。眼动跟踪模块2605内的匹配逻辑将用户眼球的预期运动与(从视频图像捕捉的)实际运动进行比较,从而基于预期运动与实际运动之间的相似性得出“得分”。如所提及的,可接着将该得分与来自其他验证模块(例如,诸如面部识别模块2604)的得分进行综合,以形成保证等级2606。存储在数据库2646中的眼动跟踪模板数据可使用其他用户和/或装置的实际用户响应于每个所显示的网页或其他显示图像做出的眼球运动的记录来编译。例如,如同面部识别模板,可作为登记过程的一部分生成眼动跟踪模板,在登记过程中用户向装置2600登记他/她的眼球运动。To perform eye tracking analysis, the eye tracking module 2605 relies on eye tracking templates stored in the secure eye tracking database 2645. Although shown as separate databases, the eye tracking database and the facial recognition database may actually be the same secure database. In one embodiment, the eye tracking template specifies the text, graphics, pictures, videos, and/or blank areas to be displayed to the user on the client device's display 2601 (some examples are shown in Figures 28A and 28B below), and may also specify the order in which these contents are displayed. In addition, the eye tracking template includes data specifying the expected movement characteristics of the user's eyes in response to the content displayed to the user (e.g., in the form of a heat map, see below). Matching logic within the eye tracking module 2605 compares the expected movement of the user's eyes with the actual movement (captured from the video imagery), deriving a "score" based on the similarity between the expected and actual movements. As mentioned, this score can then be combined with scores from other verification modules (e.g., such as the facial recognition module 2604) to form an assurance level 2606. The eye tracking template data stored in database 2646 can be compiled using records of eye movements made by other users and/or the actual user of the device in response to each displayed web page or other displayed image. For example, like facial recognition templates, eye tracking templates can be generated as part of an enrollment process in which a user registers his/her eye movements with device 2600.
在一个实施例中,眼动跟踪模块2605确定正显示的图像(可包括文本、图形、视频、图片和/或空白区域)与用户眼球运动之间的相关性。例如,如果在显示器的右下角显示运动视频,则绝大多数用户将把注意力转到这个区域。因此,如果眼动跟踪模块2605检测到用户的眼球已经在指定时间周期(例如,2秒)内移动到这个区域,则眼动跟踪模块2605将检测到用户眼球与模板之间存在高相关性,从而得到相对较高的得分。相反,如果用户的眼球没有移动到这个区域(或根本没有移动),则眼动跟踪模块2605将检测到低相关性,从而得到相应的低得分。In one embodiment, the eye tracking module 2605 determines the correlation between the image being displayed (which may include text, graphics, videos, pictures, and/or blank areas) and the user's eye movements. For example, if a sports video is displayed in the lower right corner of the display, most users will turn their attention to this area. Therefore, if the eye tracking module 2605 detects that the user's eyes have moved to this area within a specified time period (e.g., 2 seconds), the eye tracking module 2605 will detect a high correlation between the user's eyes and the template, resulting in a relatively high score. Conversely, if the user's eyes have not moved to this area (or have not moved at all), the eye tracking module 2605 will detect a low correlation, resulting in a correspondingly low score.
如图26所示,可在客户端装置2600上配置各种其他显式用户验证装置2620至2621和传感器2643。这些验证装置和传感器可提供验证引擎2610在生成保证等级2606时将使用的额外验证数据(在必要时)(即,除了本文所述的眼动跟踪和面部识别之外)。例如,传感器可包括位置传感器(例如,GPS),用以确定客户端装置2600的位置。如果客户端装置处于预期位置,则验证引擎可使用该数据来提高保证等级2606。相反,如果客户端装置处于不寻常位置(例如,另一个国家),则这可对保证等级2606造成负面影响。这样,可以非侵入方式生成验证数据(即,使用在没有来自最终用户的显式输入的情况下收集的传感器数据)。As shown in FIG26 , various other explicit user authentication devices 2620-2621 and sensors 2643 may be configured on the client device 2600. These authentication devices and sensors may provide additional authentication data (where necessary) to be used by the authentication engine 2610 when generating the assurance level 2606 (i.e., in addition to the eye tracking and facial recognition described herein). For example, the sensors may include a location sensor (e.g., GPS) to determine the location of the client device 2600. If the client device is in an expected location, the authentication engine may use this data to increase the assurance level 2606. Conversely, if the client device is in an unusual location (e.g., in another country), this may negatively impact the assurance level 2606. In this way, authentication data may be generated in a non-invasive manner (i.e., using sensor data collected without explicit input from the end user).
另外,另一种非侵入式技术涉及验证引擎2610监视自上次显式用户验证以来已经过去的时间。例如,如果用户最近(例如,在10分钟内)已经使用指纹或其他生物计量装置2620至2621进行过验证或已经输入过密码,则验证技术将使用这个信息来提高保证等级2606。相反,如果用户已经几天未进行显式验证,则验证技术可要求面部识别模块2605和眼动跟踪模块2605执行较严格的验证(例如,可要求执行比平常更高的与模板数据的相关性,以针对当前交易将保证等级提高到可接受的值)。Additionally, another non-intrusive technique involves the verification engine 2610 monitoring the time that has passed since the last explicit user verification. For example, if the user has recently (e.g., within 10 minutes) verified using a fingerprint or other biometric device 2620-2621 or entered a password, the verification technology will use this information to increase the assurance level 2606. Conversely, if the user has not explicitly verified for several days, the verification technology may require the facial recognition module 2605 and the eye tracking module 2605 to perform a stricter verification (e.g., a higher than usual correlation with the template data may be required to raise the assurance level to an acceptable value for the current transaction).
在一个实施例中,安全存储装置2625是被提供用于存储与每个验证器相关联并且被安全通信模块2613用于与依赖方(例如,云服务2650或其他类型的网络服务)建立安全通信的验证密钥的安全存储装置。In one embodiment, secure storage 2625 is a secure storage provided for storing authentication keys associated with each authenticator and used by secure communications module 2613 to establish secure communications with a relying party (e.g., cloud service 2650 or other type of network service).
图27中示出针对网页生成的示例性“热图”。彩色编码表示用户在观看时凝视的网页的区域。红色指示最高凝视量(意味着用户往往较频繁地观看这些区域),之后是黄色(指示较少凝视)、蓝色(指示更少凝视),接着是无色(指示没有凝视或低于阈值量的凝视)。An example "heat map" generated for a web page is shown in FIG27 . The color coding indicates the areas of the web page where users gazed while viewing. Red indicates the highest amount of gaze (meaning that users tend to look at these areas more frequently), followed by yellow (indicating less gaze), blue (indicating even less gaze), and then no color (indicating no gaze or gaze below a threshold amount).
在设计网页时,作为可用性分析的一部分执行眼动跟踪和热图分析。研究(例如,见参考文献29、30)发现,Web用户80%的时间花在观看页面折痕上方的信息。虽然用户确实会滚动屏幕,但用户仅将20%的注意力分配给折痕下方的信息。Web用户69%的时间花在观看页面的左半面,30%的时间花在观看右半面。因此,常规布局更有可能使网站盈利。When designing web pages, perform eye tracking and heatmap analysis as part of a usability analysis. Studies (e.g., see References 29 and 30) have found that web users spend 80% of their time looking at information above the fold. While users do scroll, they only devote 20% of their attention to information below the fold. Web users spend 69% of their time looking at the left half of the page and 30% looking at the right half. Therefore, conventional layouts are more likely to make websites profitable.
在监视器上呈现所显示的静态面部图像或视频等欺骗攻击可被眼动跟踪模块2605检测到,因为扫描路径将很可能与屏幕布局不相关。可使用不同类型的眼动跟踪方法:具有高准确性的专用设备和使用标准网络摄像头的基于软件的方法(见参考文献33)。Spoofing attacks such as presenting a static facial image or video displayed on a monitor can be detected by the eye tracking module 2605 because the scan path will most likely not be correlated with the screen layout. Different types of eye tracking methods can be used: dedicated equipment with high accuracy and software-based methods using standard webcams (see Reference 33).
图28A示出在客户端装置显示器2601上显示的文本2805以及图像和/或视频2801的示例性分组。在一个实施例中,该分组集成到网页中。然而,本发明的基本原理不限于基于Web的组织。该分组也可为屏幕保护程序或其他应用程序的一部分。在一个实施例中,同时显示文本2805和图像/视频2801。在另一个实施例中,首先显示文本,之后显示图像/视频2801。在任一情况下,预期的是,用户的眼球都将指向显示器2601的右下角(在该处显示图像/视频2801)。Figure 28A shows an exemplary grouping of text 2805 and images and/or videos 2801 displayed on a client device display 2601. In one embodiment, the grouping is integrated into a web page. However, the underlying principles of the present invention are not limited to Web-based organizations. The grouping can also be part of a screen saver or other application. In one embodiment, text 2805 and images/videos 2801 are displayed simultaneously. In another embodiment, the text is displayed first, followed by images/videos 2801. In either case, it is expected that the user's eyes will be directed to the lower right corner of the display 2601 (where the images/videos 2801 are displayed).
图28B示出包括文本区域2805和三个图像/视频元素2800至2802的另一个例子。在一个实施例中,首先显示图像/视频元素2800,接着显示图像/视频元素2801,之后显示图像/视频元素2802。在此类情况下,用户的眼球应从显示器的右上角移动到右下角,接着移动到左下角。28B shows another example including a text area 2805 and three image/video elements 2800 to 2802. In one embodiment, image/video element 2800 is displayed first, followed by image/video element 2801, and then image/video element 2802. In this case, the user's eyes should move from the upper right corner of the display to the lower right corner, and then to the lower left corner.
在一个实施例中,由眼动跟踪模块2605随机选择特定图像/视频元素2800至2802和其他内容类型,从而使得更难以预计和欺骗。另外,不同图像/视频元素2800至2802所在的特定位置是随机选择的。在此类情况下,眼球运动模板可指定用于显示内容的特定操作模式,但将不指定实际内容或实际位置。相反,由眼动跟踪模块2605选择内容和位置,眼动跟踪模块2605接着将假设用户的眼球应被吸引到正显示的内容并且基于检测到的程度生成相关性和得分。In one embodiment, the specific image/video elements 2800 to 2802 and other content types are randomly selected by the eye tracking module 2605, making it more difficult to predict and deceive. In addition, the specific locations where the different image/video elements 2800 to 2802 are located are randomly selected. In such cases, the eye movement template may specify a specific operating mode for displaying content, but will not specify the actual content or actual location. Instead, the content and location are selected by the eye tracking module 2605, which will then assume that the user's eyes should be drawn to the content being displayed and generate a correlation and score based on the degree of detected movement.
另外,眼动跟踪模块2605可使用现有内容,诸如依赖方2650的现有网页或装置上本地存储的图像,而不是生成自己的内容。例如,如果依赖方是金融机构并且用户正尝试进入金融交易,则可显示通常在交易期间显示的网页。在此类情况下,眼动跟踪模块2605可从眼动跟踪数据库2645检索网页的热图(诸如图27所示)并且确定是否存在与热图和最终用户正观看的位置的相关性。Additionally, rather than generating its own content, the eye tracking module 2605 can use existing content, such as an existing web page of the relying party 2650 or an image stored locally on the device. For example, if the relying party is a financial institution and the user is attempting to enter into a financial transaction, a web page typically displayed during a transaction can be displayed. In such a case, the eye tracking module 2605 can retrieve a heat map of the web page from the eye tracking database 2645 (such as that shown in FIG. 27 ) and determine whether there is a correlation between the heat map and the location the end user is looking at.
概括地说,本文所述的实施例可呈现混合文本、空白区域、图像和视频剪辑的一系列随机屏幕布局并且连续跟踪用户的眼球,从而产生所捕捉的扫描路径。接着在所捕捉的扫描路径与预期的扫描路径之间建立相关性。另外,本发明的一个实施例可接着重新验证仍识别到面部。In summary, the embodiments described herein can present a series of randomized screen layouts that mix text, white space, images, and video clips, and continuously track the user's eyes, thereby generating a captured scan path. A correlation is then established between the captured scan path and the expected scan path. Furthermore, one embodiment of the present invention can then re-verify that the face is still recognized.
并非所有人都同样被相同图像或图像序列吸引。例如,一些人更多地被技术吸引,而不是被动物、文本、已知或未知的人脸或人体、神秘符号或甚至数学公式吸引。据此,眼动跟踪模块2605的一个实施例学习由不同类型的图像触发的眼球运动的个人特定特征。接着使用来自视频图像2603的测得特征与参考数据(存储在眼动跟踪数据库2645中)的相似度来生成保证等级2606(即,合法用户的眼球正跟随在显示器2601上显示的“质询”图像、视频和其他内容的确定性)。Not all people are equally attracted to the same images or sequences of images. For example, some people are more attracted to technology than to animals, text, known or unknown human faces or bodies, cryptic symbols, or even mathematical formulas. Accordingly, one embodiment of the eye tracking module 2605 learns the person-specific characteristics of eye movements triggered by different types of images. The similarity of the measured characteristics from the video image 2603 to reference data (stored in the eye tracking database 2645) is then used to generate an assurance level 2606 (i.e., the certainty that the legitimate user's eyes are following the "challenge" image, video, or other content displayed on the display 2601).
图29中示出根据本发明的一个实施例的方法。该方法可在诸如图26所示的系统架构内实施,但不限于任何特定系统架构。A method according to one embodiment of the present invention is shown in Figure 29. The method may be implemented within a system architecture such as that shown in Figure 26, but is not limited to any particular system architecture.
在2901处,针对给定用户和/或交易选择特定眼动跟踪模板,并且在2902处,在根据模板显示内容时捕捉用户面部的图像序列。例如,模板可指定内容的类型、内容的位置和显示内容的时序。或者,模板可仅大致指定眼动跟踪类型,而眼动跟踪模块2605可确定如何、何处和何时显示内容。At 2901, a specific eye tracking template is selected for a given user and/or transaction, and at 2902, a sequence of images of the user's face is captured while content is displayed according to the template. For example, the template may specify the type of content, the location of the content, and the timing of displaying the content. Alternatively, the template may only generally specify the type of eye tracking, and the eye tracking module 2605 may determine how, where, and when to display the content.
不管如何选择和显示内容,都在2903处执行面部识别,并且在2904处使用所捕捉的图像序列执行眼动跟踪分析。在2905处,基于所捕捉的图像与面部模板之间的相关性生成面部保证等级。相似地,在2906处,基于用户眼球的运动与用户眼球的预期运动之间的相关性生成眼动跟踪保证等级。Regardless of how the content is selected and displayed, facial recognition is performed at 2903, and eye tracking analysis is performed using the captured image sequence at 2904. A face assurance level is generated based on a correlation between the captured image and the facial template at 2905. Similarly, an eye tracking assurance level is generated based on a correlation between the user's eye movements and the expected movement of the user's eyes at 2906.
虽然在图29中示出为并行操作2903/2905和2904/2906,但可先执行面部识别操作2903/2905,接着可仅在面部识别操作得到高相关性/保证等级的情况下执行眼动跟踪操作2904/2906(或反之亦然)。Although shown in FIG. 29 as parallel operations 2903/2905 and 2904/2906, the facial recognition operation 2903/2905 may be performed first, and then the eye tracking operation 2904/2906 may be performed only if the facial recognition operation yields a high correlation/assurance level (or vice versa).
在2907处,确定面部验证和眼动跟踪的综合结果是否足以允许进行当前交易。如果是,则在2909处准许交易。如果不是,则在2908处不允许交易或要求执行额外验证技术来提高保证等级。例如,在这个阶段,可要求用户在指纹传感器上轻扫手指或输入与用户帐户相关联的PIN。如果在2910处确定额外验证技术是足够的,则在2909处准许交易。At 2907, a determination is made as to whether the combined results of facial verification and eye tracking are sufficient to allow the current transaction to proceed. If so, the transaction is permitted at 2909. If not, the transaction is either not permitted at 2908 or additional verification techniques are required to increase the level of assurance. For example, at this stage, the user may be required to swipe their finger on a fingerprint sensor or enter a PIN associated with their account. If, at 2910, it is determined that the additional verification techniques are sufficient, the transaction is permitted at 2909.
H.用于在验证期间收集并利用客户端数据以供风险评估的系统和方法H. Systems and Methods for Collecting and Utilizing Client Data for Risk Assessment During Authentication
一些类型的验证器是非常值得信任的,而有些则不是。因此,对于验证器,依赖方可具有某个保证度范围,并且可使用某些类型的客户端数据执行风险评估(例如,以上调或下调该保证度)。例如,如果远程验证器具有安全元件或可信执行环境(TEE),则可使用证实密钥安全地签署该验证。证实密钥留在安全元件内部,任何外部实体均无法访问。实际验证操作也在安全元件内部执行。通过使用证实密钥签名,依赖方能够确定地知道有远程验证器负责验证尝试。Some types of authenticators are highly trustworthy, while others are not. Therefore, a relying party can have a certain range of assurance for an authenticator and can use certain types of client data to perform a risk assessment (e.g., adjust that assurance up or down). For example, if the remote authenticator has a secure element or trusted execution environment (TEE), the attestation can be securely signed using an attestation key. The attestation key remains inside the secure element and is inaccessible to any external entity. The actual authentication operation is also performed inside the secure element. By signing with the attestation key, the relying party can know with certainty that a remote authenticator was responsible for the authentication attempt.
如果远程验证器不含安全元件,则必须在软件中进行证实签署,而这会为攻击开启大门。一种减轻这个问题的方式是将证实密钥存储在受软件保护的“白盒”中。证实密钥无法离开白盒,并且会对验证尝试执行签署。然而,由于执行验证的代码与执行证实签署的白盒是分离的(并且白盒是基于软件的),所以与使用安全元件或可信执行环境(TEE)相比,这种方式较不值得信任。If the remote authenticator does not contain a secure element, attestation signing must be performed in software, which opens the door to attack. One way to mitigate this problem is to store the attestation key in a software-protected "white box." The attestation key cannot leave the white box and signs the authentication attempt. However, because the code performing the authentication is separate from the white box performing the attestation signing (and the white box is software-based), this approach is less trustworthy than using a secure element or trusted execution environment (TEE).
最后,如果没有所有以上各项,也可完全在软件中进行整个验证操作。这种方式是最不安全的,因为验证代码和证实密钥本身均可能受到危及。Finally, if none of the above are available, the entire authentication operation can be performed entirely in software. This is the least secure approach, as both the authentication code and the verification key itself can be compromised.
在任何上述例子中,如果依赖方能够收集客户端数据来确定正在执行验证的特定方式,使得能够在执行验证时(例如,在生成保证等级时,如下文论述)评估客户端风险,则将是有益的。In any of the above examples, it would be beneficial if the relying party could collect client data to determine the specific manner in which authentication is being performed so that client risk can be assessed when authentication is performed (e.g., when generating assurance levels, as discussed below).
通过经由额外数据改善风险评估,本发明的一个实施例通过收集客户端数据并且评估与每个客户端相关联的风险来避免欺诈交易。接着可利用与客户端相关联的风险等级来指定针对特定交易验证用户时必须使用的验证技术。为了评估风险,本发明的一个实施例确定(1)可用于风险计算的数据类型,(2)如何获得Web浏览器无法安全提供的额外数据,以及(3)如何以不危及用户隐私的方式进行评估。By improving risk assessment through additional data, one embodiment of the present invention avoids fraudulent transactions by collecting client data and assessing the risk associated with each client. The risk level associated with the client can then be used to specify the authentication technology that must be used to authenticate the user for a particular transaction. To assess risk, one embodiment of the present invention determines (1) the type of data that can be used to calculate risk, (2) how to obtain additional data that a web browser cannot securely provide, and (3) how to perform the assessment in a manner that does not compromise the user's privacy.
病毒、蠕虫和恶意软件使计算机受感染的其中一个最大原因是,操作系统最近尚未更新从而未关闭潜在漏洞。操作系统中的这些漏洞一旦被公众知晓,就很容易被犯罪分子利用。系统在没有更新的情况下运行越久,能够被利用的潜在漏洞就越多,并且密码可能受恶意代码危及的风险也越高。Web浏览器不允许网站访问用户计算机的更新历史。假如网站访问了,则网站可基于已知在其系统上的漏洞来识别潜在受害者。因此,本发明的一个实施例作为安全代理来运行,该安全代理作为本机应用程序(而非浏览器插件)来执行,用于收集客户端数据以确定当前操作系统版本和/或操作系统的更新近况。One of the biggest reasons why viruses, worms, and malware infect computers is that the operating system has not been recently updated to close potential vulnerabilities. Once these vulnerabilities in the operating system become known to the public, they can be easily exploited by criminals. The longer a system runs without updates, the more potential vulnerabilities that can be exploited, and the higher the risk that passwords may be compromised by malicious code. Web browsers do not allow websites to access the update history of a user's computer. If a website did access it, the website could identify potential victims based on known vulnerabilities on its system. Therefore, one embodiment of the present invention operates as a security agent that is executed as a native application (rather than a browser plug-in) to collect client data to determine the current operating system version and/or how recently the operating system has been updated.
用户计算机受到恶意代码感染后,其中一种抵御恶意代码的方法是使用防病毒软件(例如,)。即使恶意代码已经渗透到系统中,防病毒软件也将至少向用户警告已经发生了一些坏事情,从而限制最终造成的损害。用户可更改帐户密码并且核查最近的交易。然而,如果没有安装防病毒软件,或者安装了防病毒软件但最近尚未运行防病毒软件,则用户很可能不知道其计算机上存在恶意代码。在那台计算机上发生的交易具有较高的欺诈风险。Web浏览器将不会透露是否在计算机上安装了防病毒软件。因此,在一个实施例中,本机代理应用程序定位并收集客户端配置数据以确定是否已经安装了防病毒软件,并且如果安装了,还确定防病毒杀毒软件更新并且/或者运行的近况。After a user's computer is infected with malicious code, one way to defend against it is to use antivirus software (e.g., ). Even if the malicious code has already infiltrated the system, the antivirus software will at least warn the user that something bad has happened, thereby limiting the damage that is ultimately caused. The user can change their account passwords and review recent transactions. However, if the antivirus software is not installed, or if the antivirus software is installed but has not been run recently, the user is likely unaware of the presence of malicious code on their computer. Transactions occurring on that computer have a higher risk of fraud. The web browser will not reveal whether antivirus software is installed on the computer. Therefore, in one embodiment, the local agent application locates and collects client configuration data to determine whether antivirus software is installed, and if so, also determines the status of updates and/or operation of the antivirus software.
另一种抵御方法(尤其是在抵御蠕虫方面)是防火墙。如果在用户的机器上安装并启用了软件防火墙,这会大大减少攻击入口点的数量。通常将服务于从随机因特网主机经由导线发来的任何请求的开放端口会被削弱。因此,即使正在侦听端口的服务具有未修补的安全漏洞,风险也会被消除,因为不允许任何通信访问该服务。另一方面,在没有软件防火墙的情况下运行的计算机受蠕虫感染的可能性大得多,尤其是在其最近尚未更新的情况下。通过端口扫描,Web浏览器可间接检测成效有限的防火墙。因此,在一个实施例中,本机代理应用程序定位并收集防火墙配置数据以确定是否安装了防火墙,并且如果安装了,还确定防火墙的更新近况。Another defense method, especially against worms, is a firewall. If a software firewall is installed and enabled on the user's machine, this greatly reduces the number of entry points for attacks. Open ports that would normally serve any request coming in over the wire from a random Internet host are weakened. Therefore, even if the service listening on the port has an unpatched security vulnerability, the risk is eliminated because no communication is allowed to access the service. On the other hand, a computer running without a software firewall is much more likely to be infected by a worm, especially if it has not been updated recently. Web browsers can indirectly detect firewalls with limited success through port scanning. Therefore, in one embodiment, the local agent application locates and collects firewall configuration data to determine whether a firewall is installed, and if so, how recently the firewall has been updated.
如果用户的计算机实体失窃,则犯罪分子可收集大量信息并且用于实行欺诈。如果用户的机器受密码保护,并且优选地,整个硬盘驱动器被加密为那个密码,则由于盗窃而泄露信息的风险会被降低。如果没有进行密码保护,则可评估成具有较高的风险等级。因此,在一个实施例中,本机代理应用程序确定硬盘驱动器内容是否已被加密并且使用该信息作为其对客户端的风险评估的一部分。If a user's computer is physically stolen, criminals can gather a wealth of information and use it to commit fraud. If the user's machine is password-protected, and preferably the entire hard drive is encrypted to that password, the risk of information being compromised due to theft is reduced. If it is not password-protected, it may be assessed as having a higher risk level. Therefore, in one embodiment, the local agent application determines whether the hard drive contents are encrypted and uses this information as part of its risk assessment of the client.
另外,如上文论述,如果客户端使用安全元件或可信执行环境(TEE)来执行验证,则依赖方可具有客户端提供的验证系合法的高确定度。如果远程验证器不含安全元件,则可利用受软件保护的“白盒”来保护证实数据(例如,证实密钥)。然而,如所提及的,由于执行验证的代码与执行证实签署的白盒是分离的(并且白盒是基于软件的),所以与使用安全元件或可信执行环境(TEE)相比,这种方式较不值得信任。最后,如果没有所有以上各项,也可完全在软件中进行整个验证操作(如所提及的,这是最不安全的操作方式)。本发明的一个实施例允许依赖方收集上述客户端数据以确定正在执行验证的特定方式,使得能够在执行验证时评估客户端风险。Additionally, as discussed above, if the client uses a secure element or trusted execution environment (TEE) to perform the verification, the relying party can have a high degree of certainty that the verification provided by the client is legitimate. If the remote authenticator does not contain a secure element, a software-protected "white box" can be utilized to protect the verification data (e.g., the verification key). However, as mentioned, since the code performing the verification is separate from the white box that performs the verification signing (and the white box is software-based), this approach is less trustworthy than using a secure element or trusted execution environment (TEE). Finally, if all of the above are not available, the entire verification operation can also be performed entirely in software (as mentioned, this is the least secure way of operating). One embodiment of the present invention allows the relying party to collect the above-mentioned client data to determine the specific way in which the verification is being performed, so that the client risk can be assessed when performing the verification.
如图30所示,在本发明的一个实施例中,客户端装置3000包括客户端风险评估代理3004,客户端风险评估代理3004收集各种类型的客户端配置数据3050并且作为响应,计算客户端3000的风险等级。在一个实施例中,客户端风险评估代理3004是本机代码代理应用程序,设计为直接在客户端3000的本机操作系统(OS)3010内运行。因此,客户端风险评估代理3004不受与浏览器插件和其他类型的程序代码相关联的限制,出于安全原因,这些浏览器插件和程序代码访问客户端数据的能力受到限制。换句话讲,准许客户端风险评估代理3004收集在浏览器环境中运行的HTML和Javascript代码不被准许访问的数据。因此,即使可在浏览器环境内实施,验证引擎3010仍将能够访问由客户端风险评估代理3004提供的额外风险分析(但应该指出的是,验证引擎3010在同时仍符合本发明的基本原理的情况下不需要在浏览器背景内实施)。As shown in FIG30 , in one embodiment of the present invention, a client device 3000 includes a client-side risk assessment agent 3004 that collects various types of client configuration data 3050 and, in response, calculates a risk level for the client 3000. In one embodiment, the client-side risk assessment agent 3004 is a native code agent application designed to run directly within the native operating system (OS) 3010 of the client 3000. Therefore, the client-side risk assessment agent 3004 is not subject to the restrictions associated with browser plug-ins and other types of program code, which, for security reasons, have limited access to client data. In other words, the client-side risk assessment agent 3004 is permitted to collect data that HTML and JavaScript code running in a browser environment is not permitted to access. Therefore, even though it may be implemented within a browser environment, the verification engine 3010 will still be able to access the additional risk analysis provided by the client-side risk assessment agent 3004 (although it should be noted that the verification engine 3010 need not be implemented within a browser context while still conforming to the underlying principles of the present invention).
在一个实施例中,验证引擎3010包括保证等级计算模块3006,该模块用于计算与合法用户持有客户端装置3000的可能性对应的保证等级。随后可使用此保证等级来确定是否通过网络完成与远程依赖方3051的待决交易(例如,诸如金融交易、在线购买、访问用户账户中的机密信息等)。在一个实施例中,依赖方3051可指定给定交易所需要的保证等级。例如,对于涉及大额转账的金融交易,依赖方3051可能需要比(例如)涉及访问用户的电子邮件账户的交易相对更高的保证等级。虽然示出为单个实体,但“依赖方”可包括配备有用于执行本文所述的基础验证技术的单独安全交易服务器的网站或其他在线服务。In one embodiment, the verification engine 3010 includes an assurance level calculation module 3006 for calculating an assurance level corresponding to the likelihood that a legitimate user possesses the client device 3000. This assurance level can then be used to determine whether to complete a pending transaction (e.g., such as a financial transaction, an online purchase, accessing confidential information in a user's account, etc.) with a remote relying party 3051 over the network. In one embodiment, the relying party 3051 can specify the assurance level required for a given transaction. For example, for a financial transaction involving a large transfer of funds, the relying party 3051 may require a relatively higher assurance level than, for example, a transaction involving access to a user's email account. Although shown as a single entity, a "relying party" may include a website or other online service equipped with a separate secure transaction server for performing the basic verification techniques described herein.
在一个实施例中,保证等级计算模块3006将保证等级(例如,指定为值、百分比、代码等)传输到依赖方3051,而不公开由客户端风险评估代理3004收集的任何机密用户信息,从而保护用户的隐私。在另一个实施例中,保证等级计算模块3006知道当前交易所需要的保证等级,确定保证等级是否足够高,并且将关于交易是被准许还是拒绝的指示传输到依赖方3051,而同样不向依赖方3051公开用户的私人信息。In one embodiment, the assurance level calculation module 3006 transmits the assurance level (e.g., specified as a value, percentage, code, etc.) to the relying party 3051 without disclosing any confidential user information collected by the client risk assessment agent 3004, thereby protecting the user's privacy. In another embodiment, the assurance level calculation module 3006 knows the assurance level required for the current transaction, determines whether the assurance level is sufficiently high, and transmits an indication to the relying party 3051 as to whether the transaction is approved or denied, again without disclosing the user's private information to the relying party 3051.
在一个实施例中,客户端装置3000与依赖方3051之间的通信经由安全通信模块3013来保护,该安全通信模块3013可使用第一密钥加密传出通信并且使用第二密钥解密传入通信。在对称密钥加密方案中,第一密钥和第二密钥是相同的。在不对称密钥加密方案中,密钥是不同的。然而,本发明的基本原理不限于任何特定类型的加密。In one embodiment, communications between the client device 3000 and the relying party 3051 are secured via a secure communication module 3013, which can encrypt outgoing communications using a first key and decrypt incoming communications using a second key. In symmetric key encryption schemes, the first and second keys are the same. In asymmetric key encryption schemes, the keys are different. However, the underlying principles of the present invention are not limited to any particular type of encryption.
在一个实施例中,除了客户端风险评估代理3004所提供的风险数据之外,保证等级计算模块3006还基于当前用户验证结果3005来确定保证等级。具体地讲,用户验证结果3005可包括经由一个或多个显式用户验证装置3020至3021的当前或最近显式用户验证的结果。这可包括(例如)经由指纹装置的指纹验证、经由相机和面部识别硬件/软件的面部识别验证、经由麦克风和声音识别硬件/软件的声音识别、使用相机和相关联硬件/软件的视网膜扫描、最终用户经由小键盘进行的密码/PIN输入,和/或各种其他类型的显式用户验证装置和/或技术。In one embodiment, in addition to the risk data provided by the client risk assessment agent 3004, the assurance level calculation module 3006 determines the assurance level based on the current user authentication results 3005. Specifically, the user authentication results 3005 may include the results of the current or most recent explicit user authentication via one or more explicit user authentication devices 3020-3021. This may include, for example, fingerprint authentication via a fingerprint device, facial recognition authentication via a camera and facial recognition hardware/software, voice recognition via a microphone and voice recognition hardware/software, retinal scanning using a camera and associated hardware/software, password/PIN entry by the end user via a keypad, and/or various other types of explicit user authentication devices and/or technologies.
在一个实施例中,安全存储装置3025以密码保护每个用户验证装置3020至3021的生物计量参考数据记录(例如,使用对称密钥包裹数据以使得存储装置3025安全)。尽管安全存储装置3025被示出为在验证装置3020至3021的安全周界之外,但在一个实施例中,每个验证装置3020至3021可具有其自己的集成安全存储装置来以密码保护生物计量参考数据记录。In one embodiment, secure storage 3025 cryptographically protects the biometric reference data record for each user authentication device 3020-3021 (e.g., wrapping the data with a symmetric key to secure the storage 3025). Although secure storage 3025 is shown as being outside the secure perimeter of the authentication devices 3020-3021, in one embodiment, each authentication device 3020-3021 may have its own integrated secure storage to cryptographically protect the biometric reference data record.
除了显式用户验证之外,验证引擎3010的一个实施例从传感器3043收集数据以供保证度计算模块3006用来生成保证等级。举例来说,传感器3043可包括位置传感器(诸如GPS传感器)以指示用户的当前位置。如果客户端装置3000处于预期位置,诸如用户的工作地或住宅,则这增加了用户是合法用户的可能性。相反,如果用户处于意外位置,诸如用户先前从未到访的外国,则这增加了用户不是合法用户的可能性。因此,在一个实施例中,保证度计算模块3006将趋于在用户处于预期位置的情况下提高保证等级并且在用户处于意外位置的情况下降低保证等级。In addition to explicit user authentication, one embodiment of the verification engine 3010 collects data from sensors 3043 for use by the assurance calculation module 3006 in generating assurance levels. For example, the sensors 3043 may include a location sensor (such as a GPS sensor) to indicate the user's current location. If the client device 3000 is in an expected location, such as the user's workplace or residence, this increases the likelihood that the user is a legitimate user. Conversely, if the user is in an unexpected location, such as a foreign country that the user has never visited before, this increases the likelihood that the user is not a legitimate user. Therefore, in one embodiment, the assurance calculation module 3006 will tend to increase the assurance level if the user is in an expected location and decrease the assurance level if the user is in an unexpected location.
可使用各种其他传感器3043(诸如温度传感器、湿度传感器和加速度计)来收集与用户验证相关的数据。例如,温度/湿度传感器可提供当前温度/湿度,可将所述当前温度/湿度与由位置传感器指定的位置的已知温度/湿度进行比较。如果这些值明显不同,则这可指示客户端装置3000正被欺骗。声称位置与温度/湿度的比较可在远程服务器(诸如下文相对于图46A至46B所述的安全交易服务器4632)处进行。在另一个实施例中,装置上的加速度计可用于测量用户的步态并且将这些测量值与用户的已知步态进行比较。如果步态匹配(在指定阈值内),则这增加了合法用户持有客户端装置3000的可能性。Various other sensors 3043, such as temperature sensors, humidity sensors, and accelerometers, can be used to collect data relevant to user authentication. For example, a temperature/humidity sensor can provide the current temperature/humidity, which can be compared to the known temperature/humidity at the location specified by the location sensor. If these values differ significantly, this can indicate that the client device 3000 is being spoofed. The comparison of the claimed location with the temperature/humidity can be performed at a remote server, such as the secure transaction server 4632 described below with respect to Figures 46A and 46B. In another embodiment, an accelerometer on the device can be used to measure the user's gait and compare these measurements to the user's known gait. If the gait matches (within a specified threshold), this increases the likelihood that the legitimate user is in possession of the client device 3000.
如图31所示,可收集并使用与确定风险相关的各种类型的客户端配置数据,包括(例如)硬件数据3101、操作系统数据3102和应用程序数据3103。以举例而非限制的方式,硬件数据3101可包括客户端装置型号、处理器名称/类型、引导ROM版本和管理控制器版本。操作系统数据3102可包括当前操作系统版本、OS更新日期和当前引导模式(例如,从硬盘驱动器引导)。应用程序数据3103可包括关于防火墙是否激活、防火墙类型和版本的指示、关于是否安装了防病毒软件以及当前版本和对病毒定义文件的更新的指示、关于防病毒软件是否激活(例如,在运行期间积极监视客户端装置)的指示、上次全面和/或部分病毒扫描的指示以及最近病毒扫描的结果。另外,应用程序数据3103或OS数据3102可包括关于数据是以加密还是以其他安全方式存储在用户的持久性存储装置(例如,硬盘驱动器、快闪存储器等)上的指示。As shown in Figure 31, various types of client configuration data relevant to determining risk can be collected and used, including (for example) hardware data 3101, operating system data 3102 and application data 3103. By way of example and not limitation, hardware data 3101 may include client device model, processor name/type, boot ROM version and management controller version. Operating system data 3102 may include current operating system version, OS update date and current boot mode (for example, booting from a hard drive). Application data 3103 may include instructions on whether a firewall is activated, firewall type and version, instructions on whether anti-virus software and current version and updates to virus definition files are installed, instructions on whether anti-virus software is activated (for example, actively monitoring client devices during operation), instructions on the last comprehensive and/or partial virus scan and the results of the most recent virus scan. In addition, application data 3103 or OS data 3102 may include instructions on whether data is stored on a user's persistent storage device (for example, a hard drive, flash memory, etc.) in an encrypted or other secure manner.
如所提及,在一个实施例中,保证等级计算模块3006考虑由客户端风险评估代理3004提供的风险评估数据和用户验证结果3005两者以得出合法用户正尝试当前交易的保证等级。以举例而非限制的方式,如果客户端配置数据3050指示当前客户端没有活动的防火墙或病毒检测软件,则其可向保证度计算模块3006报告该客户端呈现比启用这些特征的客户端高的风险。相似地,如果病毒检测软件最近(例如,在阈值时间段内)尚未被更新或执行,则客户端风险评估代理3004可向保证等级计算模块3006报告升高的风险。可在同时仍符合本发明的基本原理的情况下以多种方式指定风险等级。例如,风险等级可基于百分比(例如,0%=最小风险,100%=最大风险,并且介于两者间的所有数字均表示不同等级的中间风险)或以某个标度计的数值(例如,1=最小风险,10=最高风险,并且介于两者间的所有数字均表示不同等级的中间风险)。As mentioned, in one embodiment, the assurance level calculation module 3006 considers both the risk assessment data provided by the client risk assessment agent 3004 and the user verification results 3005 to derive an assurance level that a legitimate user is attempting the current transaction. By way of example and not limitation, if the client configuration data 3050 indicates that the current client does not have an active firewall or virus detection software, it may report to the assurance level calculation module 3006 that the client presents a higher risk than clients that have these features enabled. Similarly, if the virus detection software has not been updated or executed recently (e.g., within a threshold time period), the client risk assessment agent 3004 may report an increased risk to the assurance level calculation module 3006. Risk levels can be assigned in a variety of ways while still complying with the underlying principles of the present invention. For example, risk levels can be based on a percentage (e.g., 0% = minimum risk, 100% = maximum risk, and all numbers in between represent varying levels of intermediate risk) or a numerical value on a scale (e.g., 1 = minimum risk, 10 = maximum risk, and all numbers in between represent varying levels of intermediate risk).
不管如何提供风险数据,在一个实施例中,保证等级计算模块3006均基于由客户端风险评估代理3004提供的风险数据来确定所需要的验证等级。例如,如果客户端风险评估指示相对高的风险值(例如,10当中的9或10),则保证等级计算模块3006可能需要更可靠的和/或显式的用户验证(诸如PIN/密码输入和/或指纹扫描)来针对当前交易验证用户。相反,如果客户端风险评估指示相对低的风险(例如,10当中的1或2),则保证等级计算模块3006可能需要针对当前交易进行非侵入式用户验证,诸如基于位置的验证和/或依赖于最近显式用户验证来进行当前交易。Regardless of how the risk data is provided, in one embodiment, the assurance level calculation module 3006 determines the required level of authentication based on the risk data provided by the client risk assessment agent 3004. For example, if the client risk assessment indicates a relatively high risk value (e.g., 9 or 10 out of 10), the assurance level calculation module 3006 may require a more reliable and/or explicit user authentication (such as PIN/password entry and/or fingerprint scanning) to authenticate the user for the current transaction. Conversely, if the client risk assessment indicates a relatively low risk (e.g., 1 or 2 out of 10), the assurance level calculation module 3006 may require non-intrusive user authentication for the current transaction, such as location-based authentication and/or reliance on the most recent explicit user authentication for the current transaction.
应该指出的是,为简单起见,将图31中的数据以表格格式布置。实际客户端配置数据150可以各种不同格式存储,包括二进制文件、分层文件系统布置、链表和OS注册表格式等等。本发明的基本原理不限于任何特定配置数据格式。It should be noted that for simplicity, the data in FIG31 is arranged in a table format. The actual client configuration data 150 can be stored in a variety of different formats, including binary files, hierarchical file system arrangements, linked lists, and OS registry formats. The underlying principles of the present invention are not limited to any particular configuration data format.
如图30所指示,在一个实施例中,客户端风险评估代理3004能够通过OS访问客户端配置数据3050(例如,通过对由OS暴露的应用程序编程接口(API)进行适当调用)。在另一个实施例中,客户端风险评估代理3004直接从存储数据的基础文件系统访问客户端配置数据3050。在一个实施例中,客户端风险评估代理3004能够安全访问基础配置数据。可实施各种安全特征以确保配置数据3050的安全性,诸如信任链技术和安全区域。As indicated in FIG30 , in one embodiment, the client risk assessment agent 3004 is able to access the client configuration data 3050 through the OS (e.g., by making appropriate calls to an application programming interface (API) exposed by the OS). In another embodiment, the client risk assessment agent 3004 accesses the client configuration data 3050 directly from the underlying file system where the data is stored. In one embodiment, the client risk assessment agent 3004 is able to securely access the underlying configuration data. Various security features may be implemented to ensure the security of the configuration data 3050, such as chain of trust techniques and secure zones.
允许向网站提供额外风险信息的一个考虑因素是不忽略浏览器为什么不首先提供这个信息的合理性。当然,恶意网站可充分利用这个信息并且Web浏览器开发者有很好的理由来使该信息不被恶意网站获取。因此,如所提及,在一个实施例中,基础客户端配置数据3050不被直接提供到依赖方3051。相反,在一个实施例中,由客户端风险评估代理3004直接在客户端装置上评估客户端风险数据,并且风险值被提供到保证等级计算。依赖方3051只需要知道验证是否成功(如果事先指定保证等级的话)和/或当前保证等级。这样就保护了客户端的配置数据3050不被公开。One consideration in allowing additional risk information to be provided to websites is not to ignore the rationale behind why browsers don't provide this information in the first place. Of course, malicious websites could exploit this information and web browser developers have good reasons to keep it hidden from malicious websites. Therefore, as mentioned, in one embodiment, the base client configuration data 3050 is not provided directly to the relying party 3051. Instead, in one embodiment, the client risk data is evaluated directly on the client device by the client risk assessment agent 3004, and the risk value is provided to the assurance level calculation. The relying party 3051 only needs to know whether the verification was successful (if an assurance level was specified in advance) and/or the current assurance level. This protects the client's configuration data 3050 from being publicly disclosed.
图32中示出用于在验证期间评估客户端风险的方法的一个实施例。该方法可在图30至31所示的架构上实施,但不限于任何特定系统架构。One embodiment of a method for assessing client risk during authentication is shown in Figure 32. The method may be implemented on the architecture shown in Figures 30 to 31, but is not limited to any particular system architecture.
在3201处,检索与客户端风险有关的客户端配置数据。这可包括(例如)防火墙或病毒检测软件的存在及当前状态和/或操作系统的当前版本(例如,OS的更新近况)。在3202处,评估客户端配置数据以确定客户端的风险值(例如,百分比、数值或能够指定风险等级的其他数据)。在3203处,使用客户端风险评估来确定保证等级。在一个实施例中,较高风险值需要较高保证等级(例如,风险值10可能需要高于90%的保证等级)。在另一个实施例中,基于所评估的风险来计算保证等级本身。例如,如上所述,风险值可被包括作为用于确定当前保证等级的许多变量(包括先前或当前用户验证)之一。At 3201, client configuration data related to client risk is retrieved. This may include, for example, the presence and current status of a firewall or virus detection software and/or the current version of the operating system (e.g., how recently the OS has been updated). At 3202, the client configuration data is evaluated to determine a risk value for the client (e.g., a percentage, numeric value, or other data capable of specifying a risk level). At 3203, the client risk assessment is used to determine an assurance level. In one embodiment, higher risk values require a higher assurance level (e.g., a risk value of 10 may require an assurance level higher than 90%). In another embodiment, the assurance level itself is calculated based on the assessed risk. For example, as described above, the risk value may be included as one of many variables (including previous or current user authentication) used to determine the current assurance level.
在3204处,选择验证技术,其在成功完成的情况下将使保证等级提高到当前交易的可接受等级。例如,如果风险高,则可能需要显式用户验证。如果风险低,则先前最近验证或非侵入式验证可为足够的。At 3204, an authentication technique is selected that, if successfully completed, will raise the assurance level to an acceptable level for the current transaction. For example, if the risk is high, explicit user authentication may be required. If the risk is low, a previous recent authentication or non-intrusive authentication may be sufficient.
在3205处,确定验证是否成功。如果是,则在3208处准许交易。如果不是,则在3206处,可能需要一种或多种额外验证技术或可能不允许交易。例如,如果当前保证等级不足,则可要求用户输入先前向依赖方3051提供的保密信息,或用户可提供其他/额外验证。如果在3207处确定额外验证技术是足够的,则在3208处准许交易。如果不是,则在3206处不允许交易。At 3205, a determination is made as to whether the verification is successful. If so, the transaction is permitted at 3208. If not, at 3206, one or more additional verification techniques may be required or the transaction may not be permitted. For example, if the current assurance level is insufficient, the user may be required to enter confidential information previously provided to the relying party 3051, or the user may provide other/additional verification. If, at 3207, it is determined that the additional verification techniques are sufficient, the transaction is permitted at 3208. If not, the transaction is not permitted at 3206.
I.用于针对本地交易执行验证的系统和方法I. Systems and Methods for Performing Authentication for Local Transactions
本文所述的本发明的实施例包括用于针对通过本地安全交易装置发起的本地交易验证用户的技术。举例来说,本地交易可为提款、转账或其他用户发起的操作,并且安全交易装置可为ATM或能够执行金融交易的其他本地装置。相似地,本地交易可涉及在配备有本地安全交易装置的零售店或其他零售点完成支付以购买商品或服务。Embodiments of the present invention described herein include techniques for authenticating a user for local transactions initiated through a local secure transaction device. For example, a local transaction may be a withdrawal, transfer, or other user-initiated operation, and the secure transaction device may be an ATM or other local device capable of performing financial transactions. Similarly, a local transaction may involve completing a payment for goods or services at a retail store or other retail location equipped with a local secure transaction device.
如图33所示,在一个实施例中,具有生物计量验证装置和相关联软件的客户端装置3300通过网络向具有安全交易服务的依赖方3351验证以在本地安全交易装置3350上执行交易。具体地讲,当客户端装置3300的用户希望在本地与安全交易装置3350执行交易时,其发起与依赖方3351的一系列验证事务(其例子在下文中描述)。例如,可能需要用户在客户端装置3300上的指纹读取器上轻扫手指以及/或者经由客户端小键盘输入PIN或其他密码。随后可将验证的结果从客户端装置3300传输到依赖方3351而不传输用户的私有数据(例如,指纹数据、PIN或任何其他私有用户数据),从而保护用户的隐私。As shown in FIG33 , in one embodiment, a client device 3300 having a biometric authentication device and associated software authenticates to a relying party 3351 having a secure transaction service over a network to execute a transaction on a local secure transaction device 3350. Specifically, when a user of client device 3300 wishes to execute a transaction locally with secure transaction device 3350, they initiate a series of authentication transactions with relying party 3351 (examples of which are described below). For example, the user may be required to swipe a finger on a fingerprint reader on client device 3300 and/or enter a PIN or other password via the client keypad. The results of the authentication can then be transmitted from client device 3300 to relying party 3351 without transmitting the user's private data (e.g., fingerprint data, PIN, or any other private user data), thereby protecting the user's privacy.
响应于成功验证,依赖方3351可向本地安全交易装置3350传输信号以执行操作。例如,如果本地安全交易装置是ATM,则信号可指示ATM发放指定量的现金。如果本地安全交易装置3350是零售结账装置,则可传输成功支付的指示并且可记入用户账户的借方。In response to successful authentication, relying party 3351 may transmit a signal to local secure transaction device 3350 to perform an action. For example, if the local secure transaction device is an ATM, the signal may instruct the ATM to dispense a specified amount of cash. If local secure transaction device 3350 is a retail checkout device, an indication of successful payment may be transmitted and the user's account may be debited.
另外,如图33所示,可在客户端装置3300与本地安全交易装置3350之间建立本地安全通信信道以补充用户验证过程。可使用客户端装置3300和本地安全交易装置3350上的无线通信接口,利用各种无线通信技术建立本地安全信道,所述无线通信技术诸如近场通信(NFC)、蓝牙或WiFi(例如,802.11x信道)等等。例如,当在本地安全交易装置3350附近时,客户端装置3300可经由其无线接口与本地安全交易装置3350的无线接口执行近场通信(NFC)握手,并且建立本地安全信道以在验证期间交换数据。33 , a local secure communication channel can be established between the client device 3300 and the local secure transaction device 3350 to supplement the user verification process. The local secure channel can be established using various wireless communication technologies, such as near field communication (NFC), Bluetooth, or WiFi (e.g., 802.11x channels), using wireless communication interfaces on the client device 3300 and the local secure transaction device 3350. For example, when in proximity to the local secure transaction device 3350, the client device 3300 can perform a near field communication (NFC) handshake with the wireless interface of the local secure transaction device 3350 via its wireless interface and establish a local secure channel to exchange data during verification.
本地安全信道的唯一存在性组成验证数据,因为其确立客户端装置3300的当前位置。因此,依赖方3351可在验证过程中使用此信息作为客户端装置3300的当前位置的证据。在一个实施例中,依赖方3351可将由本地安全交易装置3350提供的位置与由客户端装置3300报告的当前GPS位置进行比较以确认两个位置值是否匹配。The unique existence of the local secure channel constitutes authentication data because it establishes the current location of the client device 3300. Therefore, relying party 3351 can use this information during the authentication process as evidence of the current location of the client device 3300. In one embodiment, relying party 3351 can compare the location provided by the local secure transaction device 3350 with the current GPS location reported by the client device 3300 to confirm whether the two location values match.
另外,依赖方3351可将密码或其他验证数据传输到客户端装置3300,客户端装置3300可接着通过本地安全信道将密码或其他验证数据转送到本地安全交易装置3350以验证客户端装置。例如,在一个实施例中,依赖方3351将条形码传输到客户端装置3300并且将对应代码传输到本地安全交易装置。本地安全交易装置3350可接着使用条形码扫描器或相机读取条形码(例如,从客户端装置3300的显示器)以执行验证(即,将从依赖方接收的代码与从条形码读取的代码进行比较)。或者,本地安全交易装置3350可将从条形码读取的代码传输到依赖方,依赖方将接着确认代码是否匹配。相反,依赖方3351可将密码或其他验证数据传输到本地安全交易装置3350,本地安全交易装置3350将接着把这些数据转送到客户端装置3300以用于验证。因此,本地安全信道可用于针对多种验证技术交换数据。Additionally, relying party 3351 may transmit a password or other authentication data to client device 3300, which may then forward the password or other authentication data to local secure transaction device 3350 via a local secure channel for authentication of the client device. For example, in one embodiment, relying party 3351 transmits a barcode to client device 3300, and the corresponding code is transmitted to the local secure transaction device. Local secure transaction device 3350 may then use a barcode scanner or camera to read the barcode (e.g., from the display of client device 3300) to perform authentication (i.e., compare the code received from the relying party with the code read from the barcode). Alternatively, local secure transaction device 3350 may transmit the code read from the barcode to the relying party, which may then confirm whether the codes match. Conversely, relying party 3351 may transmit a password or other authentication data to local secure transaction device 3350, which may then forward this data to client device 3300 for authentication. Thus, a local secure channel can be used to exchange data for a variety of authentication techniques.
如所提及,在一个特定实施例中,本地安全交易装置3350是ATM装置。ATM机是易受攻击的装置,因为其输入/输出控件(例如,读卡器、键盘、屏幕、相机等)都暴露给“外界”,并且它们容易受到篡改。例如,可容易地用低技术装置(诸如隐藏的磁条读取器、镜子和摄影机)窃取借记卡记录和pin。在一个实施例中,使用涉及客户端3300与依赖方3351之间的通信的远程验证技术来为ATM机提供显著改进的验证。当与这种远程验证集成时,ATM本身不需要具有传统输入/输出控件,诸如读卡器、触摸屏或键盘。其需要的仅仅只是网络连接和用于发放现金的狭槽。验证本身可在配备有生物计量验证装置的顾客的客户端装置3300上执行。As mentioned, in one specific embodiment, the local secure transaction device 3350 is an ATM device. ATM machines are vulnerable devices because their input/output controls (e.g., card reader, keyboard, screen, camera, etc.) are exposed to the "outside world" and are easily tampered with. For example, debit card records and PINs can be easily stolen using low-tech devices (such as hidden magnetic stripe readers, mirrors, and cameras). In one embodiment, remote verification technology involving communication between the client 3300 and the relying party 3351 is used to provide significantly improved verification for ATM machines. When integrated with this remote verification, the ATM itself does not need to have traditional input/output controls such as a card reader, touch screen, or keyboard. All it needs is a network connection and a slot for dispensing cash. The verification itself can be performed on the customer's client device 3300 equipped with a biometric verification device.
在一个实施例中,对于现金提取,用户将来到ATM机附近并且发起远程验证应用程序以向依赖方3351验证。用户将接着输入提款金额并且在移动装置的指纹传感器上轻扫其手指(或用户进行如下文论述的任何其他类型的验证)。当向依赖方3351确认了用户的存在性和真实性时,从ATM的狭槽发放指定量的货币。In one embodiment, for a cash withdrawal, the user will approach the ATM machine and initiate a remote verification application to authenticate with the relying party 3351. The user will then enter the withdrawal amount and swipe their finger on the fingerprint sensor of the mobile device (or the user performs any other type of verification as discussed below). When the user's presence and authenticity are confirmed to the relying party 3351, the specified amount of currency is dispensed from the ATM's slot.
该实施例不仅提供更强的验证,而且还将复杂且昂贵的ATM转换为简单且可靠的取款机,这种取款机的构建和维护明显更便宜。这些新型ATM可使用很长时间。它们不需要频繁更新,因为直接在客户端装置3300和/或依赖方的安全交易服务器3351上引入了对生物计量相关验证功能的所有更新。This embodiment not only provides stronger authentication, but also transforms complex and expensive ATMs into simple and reliable cash dispensers that are significantly cheaper to build and maintain. These new ATMs can be used for a long time. They do not require frequent updates because all updates to biometric-related authentication functions are introduced directly on the client device 3300 and/or the relying party's secure transaction server 3351.
图34中示出本发明的一个实施例的额外架构细节。如图所示,该实施例的客户端装置3300包括本地验证应用程序3304,该应用程序与本地安全交易装置3350和依赖方3351两者进行通信以协调本文所述的各种本地验证技术。在一个实施例中,本地验证应用程序3304建立与本地安全交易装置3350的本地安全信道,并且验证引擎3310向依赖方执行远程验证以验证合法用户持有客户端装置3300。Additional architectural details of one embodiment of the present invention are shown in Figure 34. As shown, the client device 3300 of this embodiment includes a local authentication application 3304 that communicates with both a local secure transaction device 3350 and a relying party 3351 to coordinate the various local authentication techniques described herein. In one embodiment, the local authentication application 3304 establishes a local secure channel with the local secure transaction device 3350, and the authentication engine 3310 performs remote authentication with the relying party to verify that the legitimate user possesses the client device 3300.
在一个实施例中,验证引擎3310通过进入与依赖方的安全交易服务器的一系列交易来执行验证,如上文提及的共同未决的专利申请中所述。例如,这些事务可包括登记过程,在登记过程中用户向客户端的生物计量装置登记以生成生物计量模板数据(例如,通过轻扫手指、拍摄照片、记录声音等)。登记可在依赖方的安全交易服务器的指导下进行或可由用户自主地进行。用户可接着通过网络向安全交易服务器注册生物计量装置,并且随后使用在注册过程中交换的数据(例如,预置到生物计量装置中的加密密钥)向那些服务器验证。In one embodiment, the verification engine 3310 performs verification by entering into a series of transactions with a relying party's secure transaction server, as described in the co-pending patent application mentioned above. For example, these transactions may include a registration process in which a user registers with a client's biometric device to generate biometric template data (e.g., by swiping a finger, taking a photo, recording a voice, etc.). Registration may be performed under the guidance of the relying party's secure transaction server or may be performed autonomously by the user. The user may then register the biometric device with the secure transaction server over the network and subsequently authenticate to those servers using the data exchanged during the registration process (e.g., an encryption key pre-installed in the biometric device).
在一个实施例中,验证引擎3310包括保证等级计算模块3306,该模块用于计算与合法用户持有客户端装置3300的可能性对应的保证等级。随后可使用此保证等级来确定依赖方3351是否应授权本地安全交易装置3350处的本地交易(例如,诸如金融交易、零售购买、访问用户账户中的机密信息等)。在一个实施例中,依赖方3351可指定给定交易所需要的保证等级。例如,对于涉及大额转账的金融交易,依赖方3351可能需要比(例如)涉及访问用户的账户的交易相对更高的保证等级。In one embodiment, verification engine 3310 includes an assurance level calculation module 3306 for calculating an assurance level corresponding to the likelihood that a legitimate user possesses client device 3300. This assurance level can then be used to determine whether relying party 3351 should authorize a local transaction (e.g., such as a financial transaction, a retail purchase, access to confidential information in a user's account, etc.) at local secure transaction device 3350. In one embodiment, relying party 3351 can specify the assurance level required for a given transaction. For example, for a financial transaction involving a large transfer, relying party 3351 may require a relatively higher assurance level than, for example, a transaction involving access to a user's account.
在一个实施例中,保证等级计算模块3306将保证等级(例如,指定为值、百分比、代码等)传输到依赖方3351,而不公开任何机密用户信息,从而保护用户的隐私。在另一个实施例中,保证等级计算模块3306知道当前交易所需要的保证等级,确定保证等级是否足够高,并且将关于交易是被准许还是拒绝的指示传输到依赖方3351,而同样不向依赖方3351公开用户的私人信息。In one embodiment, assurance level calculation module 3306 transmits the assurance level (e.g., specified as a value, percentage, code, etc.) to relying party 3351 without disclosing any confidential user information, thereby protecting the user's privacy. In another embodiment, assurance level calculation module 3306 knows the assurance level required for the current transaction, determines whether the assurance level is high enough, and transmits an indication to relying party 3351 as to whether the transaction is approved or denied, again without disclosing the user's private information to relying party 3351.
在一个实施例中,客户端装置3300与依赖方3351之间的通信经由安全通信模块3313来保护,该安全通信模块3013可使用第一密钥加密传出通信并且使用第二密钥解密传入通信。在对称密钥加密方案中,第一密钥和第二密钥是相同的。在不对称密钥加密方案中,密钥是不同的。然而,本发明的基本原理不限于任何特定类型的加密。In one embodiment, communications between client device 3300 and relying party 3351 are secured via secure communication module 3313, which can encrypt outgoing communications using a first key and decrypt incoming communications using a second key. In symmetric key encryption schemes, the first and second keys are the same. In asymmetric key encryption schemes, the keys are different. However, the underlying principles of the present invention are not limited to any particular type of encryption.
在一个实施例中,保证等级计算模块3306至少部分地基于当前用户验证结果3305来确定保证等级,当前用户验证结果可包括经由一个或多个显式用户验证装置3320至3321的当前或最近显式用户验证的结果。这可包括(例如)经由指纹装置的指纹验证、经由相机和面部识别硬件/软件的面部识别验证、经由麦克风和声音识别硬件/软件的声音识别、使用相机和相关联硬件/软件的视网膜扫描、最终用户经由小键盘进行的密码/PIN输入,和/或各种其他类型的显式用户验证装置和/或技术。In one embodiment, the assurance level calculation module 3306 determines the assurance level based at least in part on current user authentication results 3305, which may include results of a current or most recent explicit user authentication via one or more explicit user authentication devices 3320 - 3321. This may include, for example, fingerprint authentication via a fingerprint device, facial recognition authentication via a camera and facial recognition hardware/software, voice recognition via a microphone and voice recognition hardware/software, retinal scanning using a camera and associated hardware/software, password/PIN entry by an end user via a keypad, and/or various other types of explicit user authentication devices and/or techniques.
在一个实施例中,安全存储装置3325以密码保护每个用户验证装置3320至3321的生物计量参考数据记录(例如,使用对称密钥包裹数据以使得存储装置3325安全)。尽管安全存储装置3325被示出为在验证装置3320至3321的安全周界之外,但在一个实施例中,每个验证装置3320至3321可具有其自己的集成安全存储装置来以密码保护生物计量参考数据记录。In one embodiment, secure storage 3325 cryptographically protects the biometric reference data record for each user authentication device 3320-3321 (e.g., wrapping the data with a symmetric key to secure the storage 3325). Although secure storage 3325 is shown as being outside the secure perimeter of the authentication devices 3320-3321, in one embodiment, each authentication device 3320-3321 may have its own integrated secure storage to cryptographically protect the biometric reference data record.
除了显式用户验证之外,验证引擎3310的一个实施例从传感器3343收集数据以供保证度计算模块3306用来生成保证等级。举例来说,传感器3343可包括位置传感器(诸如GPS传感器)以指示用户的当前位置。如果客户端装置3300处于预期位置,诸如本地安全交易装置3350的已知附近,则这增加了用户是合法用户的可能性。相反,如果GPS读数指示用户不在本地安全交易装置3350附近,则这指示发起交易的用户不是合法用户。因此,在一个实施例中,保证度计算模块3306将趋于在用户处于预期位置的情况下提高保证等级并且在用户处于意外位置的情况下降低保证等级。In addition to explicit user authentication, one embodiment of the verification engine 3310 collects data from sensors 3343 for use by the assurance calculation module 3306 in generating assurance levels. For example, the sensors 3343 may include a location sensor (such as a GPS sensor) to indicate the user's current location. If the client device 3300 is in an expected location, such as a known vicinity of the local secure transaction device 3350, this increases the likelihood that the user is a legitimate user. Conversely, if the GPS reading indicates that the user is not in the vicinity of the local secure transaction device 3350, this indicates that the user initiating the transaction is not a legitimate user. Therefore, in one embodiment, the assurance calculation module 3306 will tend to increase the assurance level if the user is in an expected location and decrease the assurance level if the user is in an unexpected location.
可使用各种其他传感器3343(诸如温度传感器、湿度传感器和加速度计)来收集与用户验证相关的数据。例如,温度/湿度传感器可提供当前温度/湿度,可将所述当前温度/湿度与由位置传感器指定的位置的已知温度/湿度进行比较。如果这些值明显不同,则这可指示客户端装置3300正被欺骗。声称位置和温度/湿度的比较可在远程服务器(诸如依赖方3351所使用的安全交易服务器)上进行。在另一个实施例中,装置上的加速度计可用于测量用户的步态并且将这些测量值与用户的已知步态进行比较。如果步态匹配(在指定阈值内),则这增加了合法用户持有客户端装置3300的可能性。Various other sensors 3343, such as temperature sensors, humidity sensors, and accelerometers, can be used to collect data relevant to user authentication. For example, a temperature/humidity sensor can provide the current temperature/humidity, which can be compared to the known temperature/humidity at the location specified by the location sensor. If these values are significantly different, this may indicate that the client device 3300 is being spoofed. The comparison of the claimed location and temperature/humidity can be performed on a remote server, such as a secure transaction server used by relying party 3351. In another embodiment, an accelerometer on the device can be used to measure the user's gait and compare these measurements to the user's known gait. If the gait matches (within a specified threshold), this increases the likelihood that the legitimate user is in possession of the client device 3300.
可在同时仍符合本发明的基本原理的情况下以多种方式实施本地验证应用程序3304。例如,在一个实施例中,针对依赖方3351专门设计本地验证应用程序3304。例如,如果依赖方是银行机构(例如,富国银行(Wells )),则本地验证应用程序3304可为由/为这家银行专门设计的应用程序。在另一个实施例中,可在多个依赖方当中共享同一本地验证应用程序3304,例如作为通用本地验证应用程序。此外,尽管在图34中示出为单独的逻辑组件,但图34中所示的验证引擎3310可集成在本地验证应用程序3304内。在另一个实施例中,本地验证应用程序3304可为Web浏览器或在Web浏览器环境内执行的应用程序(例如,当用户进入本地安全交易装置3350附近或连接到依赖方网页以发起交易时)。The local verification application 3304 can be implemented in a variety of ways while still complying with the basic principles of the present invention. For example, in one embodiment, the local verification application 3304 is designed specifically for the relying party 3351. For example, if the relying party is a banking institution (e.g., Wells Fargo), the local verification application 3304 can be an application designed specifically by/for this bank. In another embodiment, the same local verification application 3304 can be shared among multiple relying parties, such as as a general-purpose local verification application. In addition, although shown as a separate logical component in Figure 34, the verification engine 3310 shown in Figure 34 can be integrated within the local verification application 3304. In another embodiment, the local verification application 3304 can be a web browser or an application executed within a web browser environment (e.g., when a user comes into proximity with the local secure transaction device 3350 or connects to a relying party web page to initiate a transaction).
本地验证应用程序3304可执行多种本地功能,具体取决于依赖方所需要的具体实施。例如,在一个实施例中,本地验证应用程序3304接收由依赖方3351提供的密码(或其他验证数据)并且将密码安全地传输到本地安全交易装置3350以进行验证(例如,经由条形码或使用如上文论述的其他通信技术)。或者,在一个实施例中,用户可在本地安全交易装置3350中手动输入密码。相似地,可将由本地安全交易装置3350接收的验证数据(诸如密码)转送到本地验证应用程序3304,本地验证应用程序3304接着将验证数据转送到验证引擎3310和/或依赖方3351(例如,作为客户端装置3300的位置的证据)。The local verification application 3304 can perform a variety of local functions, depending on the specific implementation required by the relying party. For example, in one embodiment, the local verification application 3304 receives a password (or other verification data) provided by the relying party 3351 and securely transmits the password to the local secure transaction device 3350 for verification (e.g., via a barcode or using other communication technologies as discussed above). Alternatively, in one embodiment, the user can manually enter the password into the local secure transaction device 3350. Similarly, the verification data (such as the password) received by the local secure transaction device 3350 can be forwarded to the local verification application 3304, which then forwards the verification data to the verification engine 3310 and/or the relying party 3351 (e.g., as evidence of the location of the client device 3300).
图35中示出用于执行客户端装置的验证的方法的一个实施例。该方法可在图33至34所示的架构上实施,但不限于任何特定系统架构。One embodiment of a method for performing authentication of a client device is shown in Figure 35. The method may be implemented on the architecture shown in Figures 33-34, but is not limited to any particular system architecture.
在3501处,客户端进入本地安全交易装置(例如,ATM)附近,并且在3502处,经由本地信道与本地安全交易装置建立安全连接。如所提及,可使用近场通信、蓝牙、Wifi或客户端装置和本地安全交易装置两者支持的任何其他类型的协议来实施本地信道。在一些实施例中,可不需要操作3502。例如,当客户端装置能够以合法用户持有客户端装置的高保证等级向依赖方验证时,并且如果客户端装置能够向依赖方验证其当前位置,则本地信道可为不必要的。At 3501, the client enters the vicinity of a local secure transaction device (e.g., an ATM), and at 3502, establishes a secure connection with the local secure transaction device via a local channel. As mentioned, the local channel can be implemented using near-field communication, Bluetooth, Wi-Fi, or any other type of protocol supported by both the client device and the local secure transaction device. In some embodiments, operation 3502 may not be required. For example, if the client device can authenticate to the relying party with a high level of assurance that the client device is in the possession of the legitimate user, and if the client device can authenticate its current location to the relying party, then the local channel may not be necessary.
在3503处,客户端装置经由网络向依赖方验证。用于生成合法用户持有装置的保证等级的任何可用技术均可用于此操作。例如,用户可通过在生物计量指纹装置上轻扫手指、捕捉面部图像以用于面部识别、以及/或者输入密码来执行显式验证。或者,可执行非侵入式验证技术,诸如确定用户最近(例如,在指定时间段内)是否已经向客户端装置显式地验证和/或使用传感器数据,诸如位置数据、温度/压力数据和/或加速度计数据。At 3503, the client device authenticates to the relying party via the network. Any available technique for generating a level of assurance that a legitimate user possesses the device may be used for this operation. For example, the user may perform explicit authentication by swiping a finger on a biometric fingerprint device, capturing a facial image for facial recognition, and/or entering a password. Alternatively, non-intrusive authentication techniques may be performed, such as determining whether the user has recently (e.g., within a specified time period) explicitly authenticated to the client device and/or using sensor data, such as location data, temperature/pressure data, and/or accelerometer data.
不管如何生成保证等级,都可以保护用户隐私的方式(例如,不提供专门识别客户端装置的数据)经由网络将验证的结果提供给依赖方。例如,如先前提及,可将保证等级本身和/或对验证成功或失败的指示提供给依赖方,而不公开任何机密的用户信息。Regardless of how the assurance level is generated, the results of the verification can be provided to a relying party via a network in a manner that protects user privacy (e.g., without providing data that specifically identifies the client device). For example, as previously mentioned, the assurance level itself and/or an indication of the success or failure of the verification can be provided to the relying party without disclosing any confidential user information.
如果在3504处确定验证成功,则在3507处准许本地交易。在一个实施例中,这涉及依赖方传输指示本地安全交易装置执行一个或多个操作的信号。例如,如果本地安全交易装置是ATM,则所述操作可包括发放用户指定量的现金。如果本地安全交易装置是借记装置(例如,在零售店或用户正进行购买的其他位置),则由依赖方传输的信号可确认对交易的支付(并且相应地记入用户账户的借方)。应该指出的是,这些仅仅是示例性例子。可在同时仍符合本发明的基本原理的情况下采用各种替代应用程序。If verification is determined to be successful at 3504, the local transaction is permitted at 3507. In one embodiment, this involves the relying party transmitting a signal instructing the local secure transaction device to perform one or more operations. For example, if the local secure transaction device is an ATM, the operations may include dispensing a user-specified amount of cash. If the local secure transaction device is a debit device (e.g., at a retail store or other location where the user is making a purchase), the signal transmitted by the relying party may confirm payment for the transaction (and debit the user's account accordingly). It should be noted that these are merely illustrative examples. Various alternative applications may be employed while still complying with the underlying principles of the present invention.
如果在3504处的验证不成功(例如,因为未达到可接受的保证等级),则在3505处,拒绝交易并且/或者可能需要一种或多种额外验证技术。例如,可能需要用户使用一种或多种额外技术提供额外验证(例如,在初始验证是指纹的情况下输入密码,等等)。如果在3506处确定额外技术是足够的,则在3507处准许交易。如果不是,则再次拒绝交易并且/或者尝试额外验证技术。If the authentication at 3504 is unsuccessful (e.g., because an acceptable assurance level is not reached), the transaction is denied and/or one or more additional authentication techniques may be required at 3505. For example, the user may be required to provide additional authentication using one or more additional techniques (e.g., enter a password if the initial authentication was a fingerprint, etc.). If it is determined at 3506 that the additional techniques are sufficient, the transaction is permitted at 3507. If not, the transaction is denied again and/or the additional authentication techniques are attempted.
J.用于在线交易的用户确认J. User Confirmation for Online Transactions
在许多场景中,完成与依赖方的交易可能需要一个或多个其他用户的批准。以举例而非限制的方式,家长可能想要批准由孩子发起的金融交易,指挥官可能需要批准由士兵发起的交易,管理人员可能需要批准由雇员发起的商业交易,并且密码密钥管理系统可能需要多个用户批准特定交易之后方可进行该特定交易。In many scenarios, completing a transaction with a relying party may require approval from one or more other users. By way of example and not limitation, a parent may want to approve a financial transaction initiated by a child, a commander may want to approve a transaction initiated by a soldier, an administrator may want to approve a business transaction initiated by an employee, and a cryptographic key management system may require multiple users to approve a particular transaction before it can proceed.
本发明的一个实施例使用本文所述的技术来经由网络提供强用户验证,从而启用多用户确认应用程序。图36中示出一个此类例子,该图示出具有远程验证功能的客户端装置3600,其由尝试发起与具有安全交易服务的依赖方3650(下文中简称为“依赖方”)的交易的用户控制。在一个实施例中,客户端装置3600的用户使用本文所述的一种或多种远程验证技术(例如,提供生物计量输入,诸如在指纹传感器上轻扫手指、输入PIN或密码,等等)向依赖方3650验证。One embodiment of the present invention uses the techniques described herein to provide strong user authentication over a network, thereby enabling multi-user confirmation applications. An example of this is shown in FIG36 , which illustrates a client device 3600 with remote authentication capabilities, controlled by a user attempting to initiate a transaction with a relying party 3650 (hereinafter referred to as a "relying party") having a secure transaction service. In one embodiment, the user of client device 3600 authenticates to relying party 3650 using one or more remote authentication techniques described herein (e.g., providing biometric input, such as swiping a finger on a fingerprint sensor, entering a PIN or password, etc.).
在图示实施例中,其他客户端装置3601至3602具有向依赖方注册为客户端装置3600的用户的“批准人”的用户。因此,对于某些类型的交易(例如,涉及超过指定阈值的金额的金融交易),依赖方可能需要客户端装置3601至3602的用户的批准。如下文论述,本文所述的远程验证技术用作批准过程的一部分。In the illustrated embodiment, the other client devices 3601-3602 have users registered with the relying party as “approver” of the user of client device 3600. Thus, for certain types of transactions (e.g., financial transactions involving amounts exceeding a specified threshold), the relying party may require approval from the users of client devices 3601-3602. As discussed below, the remote verification techniques described herein are used as part of the approval process.
在一个实施例中,响应于客户端装置3600的用户的成功验证,依赖方3650处的通知生成逻辑向具有注册为“批准人”的用户的其他客户端装置3601至3602发送通知,该通知指示客户端装置3600的用户正尝试完成交易。可根据本发明的基本原理以多种方式发送通知。例如,如果客户端装置3601至3602是移动装置,则可向客户端装置3601至3602发送推送通知。作为另外一种选择或除此之外,可经由电子邮件、文本消息(例如,SMS)、即时消息或能够向客户端装置3601至3602递送消息的任何其他技术发送通知。In one embodiment, in response to successful authentication of the user of client device 3600, notification generation logic at relying party 3650 sends a notification to other client devices 3601-3602 that have users registered as "approver," indicating that the user of client device 3600 is attempting to complete a transaction. Notifications can be sent in a variety of ways based on the underlying principles of the present invention. For example, if client devices 3601-3602 are mobile devices, push notifications can be sent to client devices 3601-3602. Alternatively, or in addition, notifications can be sent via email, text message (e.g., SMS), instant message, or any other technology capable of delivering messages to client devices 3601-3602.
在一个实施例中,通知包括客户端装置3600的用户正尝试的交易的细节。例如,如果交易是金融交易,则通知可包括正被处理的特定金额以及正被执行的金融交易的类型(例如,提款、账户间转账等等)。或者,通知可包括链接(诸如超链接或其他类型的指针),其将客户端装置3601至3602的用户引导到依赖方上的批准服务。一旦选择链接,就可向客户端装置3601至3602的用户提供交易的细节(例如,以网页或用于提供信息的其他有用格式)。In one embodiment, the notification includes details of the transaction being attempted by the user of client device 3600. For example, if the transaction is a financial transaction, the notification may include the specific amount being processed and the type of financial transaction being performed (e.g., a withdrawal, an account transfer, etc.). Alternatively, the notification may include a link (such as a hyperlink or other type of pointer) that directs the user of client device 3601-3602 to an approval service on the relying party. Upon selecting the link, the details of the transaction may be provided to the user of client device 3601-3602 (e.g., in a web page or other useful format for providing information).
在一个实施例中,在对通知做出响应并且审查交易的细节后,客户端装置3601至3602的用户可通过向依赖方执行远程验证(例如,使用本文所述的多因素验证技术)并且指示批准交易来确认请求。In one embodiment, after responding to the notification and reviewing the details of the transaction, the user of client device 3601-3602 may confirm the request by performing remote authentication with the relying party (e.g., using the multi-factor authentication techniques described herein) and indicating approval of the transaction.
图37中示出本发明的一个实施例中所采用的客户端装置3600至3602的额外架构细节。具体地讲,该实施例的客户端装置3600至3602包括安全交易应用程序3704,该应用程序用于与依赖方3650通信并且协调本文所述的交易批准技术。安全交易应用程序3704可为独立应用程序,其经由安全应用程序编程接口(API)与验证引擎3710介接。或者,安全交易应用程序3704可被实施为移动装置应用程序或Web浏览器插件。FIG37 illustrates additional architectural details of client devices 3600-3602 employed in one embodiment of the present invention. Specifically, client devices 3600-3602 of this embodiment include a secure transaction application 3704, which is used to communicate with relying party 3650 and coordinate the transaction approval techniques described herein. Secure transaction application 3704 can be a standalone application that interfaces with verification engine 3710 via a secure application programming interface (API). Alternatively, secure transaction application 3704 can be implemented as a mobile device application or a web browser plug-in.
除了协调本文所述的用户确认过程之外,在一个实施例中,安全交易应用程序3704还确保向每个用户显示的文本是与交易相关的实际文本。例如,应用程序3704可在安全窗口内显示文本并且要求用户提供验证以确认交易。该应用程序可启动计时器并且周期性地验证正向用户显示的当前窗口的内容(例如,通过在内容上生成签名)。可随机选择验证周期。因此,该应用程序持续确保每个用户在窗口内看到有效交易细节(从而确保交易文字尚未被“中间人”攻击修改)。如果该应用程序检测到内容已被篡改,则其阻止生成对交易的确认。In addition to coordinating the user confirmation process described herein, in one embodiment, secure transaction application 3704 also ensures that the text displayed to each user is the actual text related to the transaction. For example, application 3704 may display the text within a secure window and request verification from the user to confirm the transaction. The application may start a timer and periodically verify the contents of the current window being displayed to the user (e.g., by generating a signature on the content). The verification period may be randomly selected. Thus, the application continuously ensures that each user sees valid transaction details within the window (thereby ensuring that the transaction text has not been modified by a "man-in-the-middle" attack). If the application detects that the content has been tampered with, it prevents the generation of a confirmation for the transaction.
在一个实施例中,在用户提供有效验证(例如,在指纹传感器上轻扫手指)之后,客户端装置识别用户并生成具有交易细节(例如,所显示的文本)和从依赖方提供的随机质询的令牌(密码签名)(例如,令牌可为对交易细节和随机数的签名)。这允许依赖方3650确保尚未在服务器与客户端之间修改交易细节。在一个实施例中,应用程序3704将所生成的令牌和用户名发送到依赖方,依赖方接着使用该用户名识别用户并且验证令牌。如果验证成功,则向客户端发送确认消息并处理交易。In one embodiment, after the user provides valid authentication (e.g., swiping a finger on a fingerprint sensor), the client device identifies the user and generates a token (cryptographic signature) with the transaction details (e.g., displayed text) and a random challenge provided by the relying party (e.g., the token can be a signature of the transaction details and a random number). This allows the relying party 3650 to ensure that the transaction details have not been modified between the server and the client. In one embodiment, the application 3704 sends the generated token and username to the relying party, which then uses the username to identify the user and verify the token. If the authentication is successful, a confirmation message is sent to the client and the transaction is processed.
可针对源自客户端装置3600的交易请求/确认以及针对源自客户端装置3601至3602的用户的批准事务实施以上技术。The above techniques may be implemented for transaction requests/confirmations originating from client device 3600 as well as for approval transactions originating from users of client devices 3601 - 3602 .
返回到图37,在一个实施例中,可经由客户端装置3600至3602上的验证引擎3710执行验证,该验证引擎被设计为与依赖方3650执行一系列事务以远程验证每个用户。例如,如共同未决的申请中所描述,可采用验证框架和相关联的验证技术,其中用户向客户端的生物计量装置3720至3721登记,以生成生物计量模板数据(例如,通过轻扫手指、拍摄照片、记录声音等等);经由网络向一个或多个依赖方3650(例如,配备有安全交易服务的网站或其他依赖方)注册生物计量装置;并且随后使用在注册过程中交换的数据(例如,预置到生物计量装置中的加密密钥)向那些依赖方3650验证。在一个实施例中,向依赖方“注册”包括针对每个用户验证装置3720至3721与依赖方交换对称或不对称密钥并将密钥存储在与每个验证装置3720至3721相关联的安全存储装置3725内。安全密钥预置协议(诸如动态对称密钥预置协议(DSKPP))可用于经由安全通信信道与客户端共享密钥(例如,见请求注解(RFC)6063)。然而,本发明的基本原理不限于任何特定密钥预置协议。Returning to FIG37 , in one embodiment, authentication may be performed via an authentication engine 3710 on client devices 3600-3602, which is designed to execute a series of transactions with relying parties 3650 to remotely authenticate each user. For example, as described in the co-pending applications, an authentication framework and associated authentication techniques may be employed, wherein a user registers with a client's biometric device 3720-3721 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 relying parties 3650 (e.g., a website equipped with a secure transaction service or other relying party) via a network; and subsequently authenticates to those relying parties 3650 using data exchanged during the registration process (e.g., an encryption key pre-set to the biometric device). In one embodiment, "registering" with a relying party includes exchanging symmetric or asymmetric keys with the relying party for each user authentication device 3720-3721 and storing the keys in a secure storage device 3725 associated with each authentication device 3720-3721. 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.
在验证阶段中,密钥用于(例如)生成签名、验证签名、以及/或者加密客户端3600至3602与依赖方3650之间的通信。一旦通过验证,用户便获许执行一个或多个在线交易。另外,在一个实施例中,敏感信息(诸如指纹数据和可唯一地识别用户的其他数据)可本地保持在用户的客户端装置(例如,智能电话、笔记本计算机等等)上,以保护用户的隐私。During the authentication phase, keys are used, for example, to generate signatures, verify signatures, and/or encrypt communications between clients 3600-3602 and relying party 3650. Once authenticated, the user is permitted to perform one or more online transactions. In addition, in one embodiment, sensitive information (such as fingerprint data and other data that can uniquely identify the user) can be stored locally on the user's client device (e.g., smartphone, laptop, etc.) to protect the user's privacy.
在一个实施例中,验证引擎110包括保证等级计算模块3706,该模块用于计算与合法用户持有客户端装置100的可能性对应的保证等级。其可接着使用此保证等级来确定依赖方3650是否应授权当前交易。在一个实施例中,依赖方3650可指定给定交易所需要的保证等级。例如,对于涉及大额转账的金融交易,依赖方3650可需要比(例如)不涉及货币兑换或仅访问用户信息的交易相对更高的保证等级。In one embodiment, verification engine 110 includes an assurance level calculation module 3706 for calculating an assurance level corresponding to the likelihood that a legitimate user possesses client device 100. It can then use this assurance level to determine whether relying party 3650 should authorize the current transaction. In one embodiment, relying party 3650 can specify the assurance level required for a given transaction. For example, for financial transactions involving large transfers, relying party 3650 may require a relatively higher assurance level than, for example, transactions that do not involve currency exchange or merely access to user information.
在一个实施例中,保证等级计算模块106将保证等级(例如,指定为值、百分比、代码等)传输到依赖方3650,而不公开任何机密用户信息,从而保护用户的隐私。在另一个实施例中,保证等级计算模块3706知道当前交易所需要的保证等级,确定保证等级是否足够高,并且将关于交易是被准许还是拒绝的指示传输到依赖方3650(而不向依赖方3650公开用户的私人信息)。In one embodiment, the assurance level calculation module 106 transmits the assurance level (e.g., specified as a value, percentage, code, etc.) to the relying party 3650 without disclosing any confidential user information, thereby protecting the user's privacy. In another embodiment, the assurance level calculation module 3706 knows the assurance level required for the current transaction, determines whether the assurance level is high enough, and transmits an indication to the relying party 3650 as to whether the transaction is approved or denied (without disclosing the user's private information to the relying party 3650).
在一个实施例中,客户端装置3600至3602与依赖方3650之间的通信经由安全通信模块3713来保护,该安全通信模块3713可使用第一密钥加密传出通信并且使用第二密钥解密传入通信。在对称密钥加密方案中,第一密钥和第二密钥是相同的。在不对称密钥加密方案中,密钥是不同的。然而,本发明的基本原理不限于任何特定类型的加密。In one embodiment, communications between client devices 3600-3602 and relying party 3650 are secured via secure communication module 3713, which can encrypt outgoing communications using a first key and decrypt incoming communications using a second key. In symmetric key encryption schemes, the first and second keys are the same. In asymmetric key encryption schemes, the keys are different. However, the underlying principles of the present invention are not limited to any particular type of encryption.
在一个实施例中,保证等级计算模块3706至少部分地基于当前用户验证结果3705来确定保证等级,当前用户验证结果可包括经由一个或多个显式用户验证装置3720至3721的当前或最近显式用户验证的结果。这可包括(例如)经由指纹装置的指纹验证、经由相机和面部识别硬件/软件的面部识别验证、经由麦克风和声音识别硬件/软件的声音识别、使用相机和相关联硬件/软件的视网膜扫描、最终用户经由小键盘进行的密码/PIN输入,和/或各种其他类型的显式用户验证装置和/或技术。In one embodiment, the assurance level calculation module 3706 determines the assurance level based at least in part on current user authentication results 3705, which may include results of a current or most recent explicit user authentication via one or more explicit user authentication devices 3720-3721. This may include, for example, fingerprint authentication via a fingerprint device, facial recognition authentication via a camera and facial recognition hardware/software, voice recognition via a microphone and voice recognition hardware/software, retinal scanning using a camera and associated hardware/software, password/PIN entry by an end user via a keypad, and/or various other types of explicit user authentication devices and/or techniques.
在一个实施例中,安全存储装置3725以密码保护每个用户验证装置3720至3721的生物计量参考数据记录(例如,使用对称密钥包裹数据以使得存储装置3725安全)。尽管安全存储装置3725被示出为在验证装置3720至3721的安全周界之外,但在一个实施例中,每个验证装置3720至3721可具有其自己的集成安全存储装置来以密码保护生物计量参考数据记录。In one embodiment, secure storage 3725 cryptographically protects the biometric reference data record for each user authentication device 3720-3721 (e.g., wrapping the data with a symmetric key to secure the storage 3725). Although secure storage 3725 is shown as being outside the secure perimeter of the authentication devices 3720-3721, in one embodiment, each authentication device 3720-3721 may have its own integrated secure storage to cryptographically protect the biometric reference data record.
除了显式用户验证之外,验证引擎3710的一个实施例通过从传感器3743收集数据以供保证度计算模块3706用来生成保证等级,来执行非侵入式验证。举例来说,传感器3743可包括位置传感器(诸如GPS传感器)以指示用户的当前位置。如果客户端装置3600至3602处于预期位置,诸如已知附近(例如,“家”或“办公室”位置),则这增加了用户是合法用户的可能性。相反,如果GPS读数指示用户不处于预期位置,则这指示发起交易的用户不是合法用户。因此,在一个实施例中,保证度计算模块3706将在用户处于预期位置的情况下提高保证等级并且在用户处于意外位置的情况下降低保证等级。In addition to explicit user authentication, one embodiment of the authentication engine 3710 performs non-intrusive authentication by collecting data from sensors 3743 for use by the assurance calculation module 3706 in generating assurance levels. For example, the sensors 3743 may include a location sensor (such as a GPS sensor) to indicate the user's current location. If the client device 3600 to 3602 is in an expected location, such as a known vicinity (e.g., a "home" or "office" location), this increases the likelihood that the user is a legitimate user. Conversely, if the GPS reading indicates that the user is not in the expected location, this indicates that the user initiating the transaction is not a legitimate user. Therefore, in one embodiment, the assurance calculation module 3706 will increase the assurance level if the user is in the expected location and decrease the assurance level if the user is in an unexpected location.
可使用各种其他传感器3743(诸如温度传感器、湿度传感器和加速度计)来收集与用户验证相关的数据。例如,温度/湿度传感器可提供当前温度/湿度,可将所述当前温度/湿度与由位置传感器指定的位置的已知温度/湿度进行比较。如果这些值明显不同,则这可指示客户端装置3600至3602正被欺骗。声称位置和温度/湿度的比较可在远程服务器(诸如依赖方3650所使用的安全交易服务器)上进行。在另一个实施例中,装置上的加速度计可用于测量用户的步态并且将这些测量值与用户的已知步态进行比较。如果步态匹配(在指定阈值内),则这增加了合法用户持有客户端装置3600至3602的可能性。Various other sensors 3743, such as temperature sensors, humidity sensors, and accelerometers, can be used to collect data relevant to user authentication. For example, a temperature/humidity sensor can provide the current temperature/humidity, which can be compared to the known temperature/humidity at the location specified by the location sensor. If these values are significantly different, this can indicate that the client device 3600 to 3602 is being spoofed. The comparison of the claimed location and temperature/humidity can be performed on a remote server, such as a secure transaction server used by relying party 3650. In another embodiment, an accelerometer on the device can be used to measure the user's gait and compare these measurements to the user's known gait. If the gait matches (within a specified threshold), this increases the likelihood that the legitimate user is in possession of the client device 3600 to 3602.
另一种非侵入式验证技术包括测量自从上次成功用户验证以来已经过去的时间量。例如,如果用户最近已经执行了显式用户验证(例如,就在几分钟之前在指纹读取器上轻扫手指),则这将往往指示合法用户仍持有客户端装置(从而导致高基线保证等级)。相反,如果上次显式验证已经是几小时或几天之前了,则可能需要新的显式用户验证来达到可接受的保证等级。Another non-intrusive authentication technique involves measuring the amount of time that has passed since the last successful user authentication. For example, if the user has recently performed an explicit user authentication (e.g., swiping a finger across a fingerprint reader just a few minutes ago), this will often indicate that the legitimate user still possesses the client device (thereby resulting in a high baseline assurance level). Conversely, if the last explicit authentication was several hours or days ago, a new explicit user authentication may be required to achieve an acceptable assurance level.
图38中示出根据本发明的一个实施例的方法。在3801处,客户端的用户触发需要N个其他用户确认的交易。例如,依赖方处的用户账户可指示由用户发起的某些类型的交易(或所有交易)需要一个或多个其他用户确认。例如,用户的账户可将用户识别为未成年人,从而需要一个或多个家长或监护人授权。在3801处,还通过实施本文所述的一种或多种验证技术来验证用户。FIG38 illustrates a method according to one embodiment of the present invention. At 3801, a user of a client triggers a transaction that requires confirmation by N other users. For example, the user's account at a relying party may indicate that certain types of transactions (or all transactions) initiated by the user require confirmation by one or more other users. For example, the user's account may identify the user as a minor, thereby requiring authorization from one or more parents or guardians. At 3801, the user is also authenticated by implementing one or more authentication techniques described herein.
在3802处,服务器选择必须确认用户所触发的交易的N个其他用户。例如,在检测到用户发起交易后,依赖方可查询其用户数据库,以确定交易需要确认以及能够确认该交易的用户的身份。在一个实施例中,能够确认交易的所有用户的子组可实际上确认交易。例如,在一个实施例中,如果用户是有两位家长的未成年人,则可向两位家长发送通知,但任一位家长的确认都将允许交易继续进行。相似地,可有10个用户被授权确认商业交易,但只需要其中2个确认来允许交易继续进行。At 3802, the server selects N other users who must confirm the transaction triggered by the user. For example, upon detecting that a user has initiated a transaction, the relying party may query its user database to determine that the transaction requires confirmation and the identities of the users who can confirm the transaction. In one embodiment, a subset of all users who can confirm the transaction may actually confirm the transaction. For example, in one embodiment, if the user is a minor with two parents, notifications may be sent to both parents, but confirmation by either parent will allow the transaction to proceed. Similarly, there may be 10 users authorized to confirm a business transaction, but only confirmation from two of them is required to allow the transaction to proceed.
在一个实施例中,可将推送通知发送到能够确认交易的那些用户的客户端装置(例如,如果用户具有能够接收推送通知的客户端装置)。作为另外一种选择或除此之外,可经由电子邮件、文本消息(例如,SMS)、即时消息或能够向客户端装置递送消息的任何其他技术发送通知。在一个实施例中,可向服务器注册用户以通过两个或更多个通信信道接收确认消息。例如,用户可接收包含确认请求的推送通知和电子邮件两者。In one embodiment, a push notification can be sent to the client devices of those users who are able to confirm the transaction (e.g., if the user has a client device capable of receiving push notifications). Alternatively, or in addition, the notification can be sent via email, text message (e.g., SMS), instant message, or any other technology capable of delivering a message to a client device. In one embodiment, a user can be registered with the server to receive confirmation messages via two or more communication channels. For example, a user can receive both a push notification and an email containing a confirmation request.
不管如何发送确认请求,在3803处,N个用户的全部或子组均在确认过程中向服务器执行验证。任何远程验证技术可用于验证用户并确认交易。例如,用户可通过向先前已经向依赖方注册的客户端上的生物计量装置提供生物计量数据(例如,在指纹扫描器上轻扫手指)来确认交易。如上所述,可经由能够安全地显示文本和其他信息(即,确保当用户确认交易时,他/她已经查看描述交易的实际未更改文本)的安全交易应用程序向用户提供与交易相关联的细节。Regardless of how the confirmation request is sent, at 3803, all or a subset of the N users authenticate to the server in the confirmation process. Any remote authentication technique can be used to authenticate the user and confirm the transaction. For example, the user can confirm the transaction by providing biometric data (e.g., swiping a finger on a fingerprint scanner) to a biometric device on a client that has previously registered with the relying party. As described above, details associated with the transaction can be provided to the user via a secure transaction application that can securely display text and other information (i.e., ensuring that when the user confirms the transaction, he/she has viewed the actual, unaltered text describing the transaction).
一旦在3804处确定最小指定数量的用户已经确认了请求,便在3807处准许交易。该方法的一个实施例启动确认计时器以测量自从发送确认请求以来已经过去的时间量。一旦在3805处确定确认计时器已经达到阈值(例如,几小时、一天等),便在3806处不允许交易。方法在3804处等待最小指定数量的用户确认请求,直到达到计时器阈值。Once it is determined at 3804 that a minimum specified number of users have confirmed the request, the transaction is permitted at 3807. One embodiment of the method starts a confirmation timer to measure the amount of time that has elapsed since the confirmation request was sent. Once it is determined at 3805 that the confirmation timer has reached a threshold (e.g., a number of hours, a day, etc.), the transaction is not permitted at 3806. The method waits at 3804 for a minimum specified number of users to confirm the request until the timer threshold is reached.
K.用于委托信任的系统和方法K. Systems and Methods for Delegating Trust
现有验证系统不允许使用可信客户端上的注册验证器启用新验证器。例如,如果用户的电话上有她已经向多个网站注册的指纹传感器,并且接着她在电话上安装了声音验证器,则她无法自动地向她注册指纹传感器的所有网站注册其声音验证器。相反,在这种情况下,用户必须逐步通过相同的登记和注册过程来向依赖方注册声音验证器。相似地,如果用户购买了具有一组新验证器的新装置,则用户必须向服务器重新登记和重新注册所有新验证器。Existing authentication systems don't allow for the use of registered authenticators on trusted clients to enable new authenticators. For example, if a user has a fingerprint sensor on their phone that they've already registered with multiple websites, and then they install a voice authenticator on their phone, they can't automatically register their voice authenticator with all the websites where they registered their fingerprint sensor. Instead, in this case, the user must step through the same registration and enrollment process to register their voice authenticator with the relying party. Similarly, if the user purchases a new device with a new set of authenticators, they must re-register and re-enroll all the new authenticators with the server.
下文描述的本发明的实施例允许用户容易地使用已经启用并向一个或多个依赖方注册的可信客户端装置来启用并注册新客户端装置上的验证器。具体地讲,这些实施例可用于启用新验证器、启用新客户端装置、以及在多个客户端装置之间保持注册同步。The embodiments of the present invention described below allow a user to easily use a trusted client device that has already been enabled and registered with one or more relying parties to enable and register an authenticator on a new client device. Specifically, these embodiments can be used to enable a new authenticator, enable a new client device, and keep registrations synchronized across multiple client devices.
图39提供根据本发明的一个实施例的信任委托的高级概览。可信装置3902(即,具有向一个或多个依赖方3950注册的验证器的装置)建立与用户的新客户端装置3900的安全连接。建立安全连接的具体方式与本发明的基本原理无关。可使用各种技术,诸如近场通信(NFC)、蓝牙、Wifi Direct、使用快速响应(QR)代码以及建立HTTPS连接。在一个实施例中,装置可交换安全连接所需要的大型随机令牌(LRT),并且可通过向在线服务提供所捕捉的LRT来建立连接并且经由该服务自举安全通信。Figure 39 provides a high-level overview of trust delegation according to one embodiment of the present invention. A trusted device 3902 (i.e., a device having a validator registered with one or more relying parties 3950) establishes a secure connection with a user's new client device 3900. The specific manner in which the secure connection is established is not relevant to the underlying principles of the present invention. Various technologies may be used, such as near field communication (NFC), Bluetooth, Wifi Direct, using Quick Response (QR) codes, and establishing an HTTPS connection. In one embodiment, the devices may exchange a large random token (LRT) required for the secure connection and may establish a connection by providing the captured LRT to an online service and bootstrapping secure communications via the service.
在一个实施例中,一旦在可信客户端装置3902与新客户端装置3900之间建立安全连接,便实施安全协议(下文详细描述)以将注册数据从可信装置传送并集成到新装置。一旦已经传送注册内容,便在新客户端装置3900与依赖方3950之间实施另一个安全协议(例如,在一个实施例中为HTTPS)来验证注册内容。In one embodiment, once a secure connection is established between the trusted client device 3902 and the new client device 3900, a secure protocol (described in detail below) is implemented to transfer and integrate the registration data from the trusted device to the new device. Once the registration content has been transferred, another secure protocol (e.g., HTTPS in one embodiment) is implemented between the new client device 3900 and the relying party 3950 to verify the registration content.
尽管本文所述的实施例注重于传送用于与依赖方3950的验证事务的验证数据,但为了符合本发明的基本原理,可不需要依赖方。例如,可信装置3902可建立安全连接以向新客户端装置3900提供验证数据,而在系统中不会涉及任何依赖方(例如,以提供用于在本地向新客户端装置3900验证的验证数据)。Although the embodiments described herein focus on transmitting authentication data for authentication transactions with relying parties 3950, a relying party may not be required in order to be consistent with the underlying principles of the present invention. For example, trusted device 3902 may establish a secure connection to provide authentication data to new client device 3900 without involving any relying parties in the system (e.g., to provide authentication data for local authentication to new client device 3900).
如图40所示,可分别在新装置3900和可信装置3902上执行信任委托模块4000至4001,以建立安全连接、交换注册内容、以及向每个依赖方3950上的安全交易服务4004验证注册内容。如本文所用,“可信验证器”是用户已经向一个或多个依赖方注册的验证器。“新验证器”是用户希望使用当前用于可信验证器的所有依赖方注册内容进行启用的验证器。因此,如果验证引擎3711先前已经向依赖方注册了一个或多个用户验证装置3720至3721,则该验证引擎被视为可信验证器。一个实施例的目标是将新装置3900的验证引擎3710从新验证器转变为可信验证器。“可信装置”是具有可信验证器的装置,“新装置”是具有新验证器的装置。As shown in Figure 40, trust delegation modules 4000 to 4001 can be executed on the new device 3900 and the trusted device 3902 respectively to establish a secure connection, exchange registration content, and verify the registration content to the secure transaction service 4004 on each relying party 3950. As used herein, a "trusted authenticator" is an authenticator that a user has registered with one or more relying parties. A "new authenticator" is an authenticator that the user wishes to enable using all relying party registration content currently used for the trusted authenticator. Therefore, if the verification engine 3711 has previously registered one or more user verification devices 3720 to 3721 with the relying party, then the verification engine is considered a trusted authenticator. The goal of one embodiment is to convert the verification engine 3710 of the new device 3900 from a new authenticator to a trusted authenticator. A "trusted device" is a device with a trusted authenticator, and a "new device" is a device with a new authenticator.
信任委托是指使用可信验证器启用新验证器的过程。因此,信任委托的先决条件是:用户具有可信装置;用户具有新装置;用户想要从可信装置向新装置委托信任。Trust delegation is the process of enabling a new authenticator using a trusted authenticator. Therefore, the prerequisites for trust delegation are: the user has a trusted device; the user has a new device; and the user wants to delegate trust from the trusted device to the new device.
返回到图40,在一个实施例中,用户发起新客户端装置3900上的信任委托应用程序4000和可信客户端装置上的信任委托应用程序4001,以建立初始安全连接。在一个实施例中,信任委托应用程序可为移动装置应用程序,其专门被设计来执行本文所述的信任委托操作。在另一个实施例中,信任委托应用程序可为响应于用户指示他/她希望执行信任委托而执行的浏览器插件(例如,经由具有嵌入式Javascript或其他小程序或可执行程序代码的网页)。此外,信任委托应用程序4000至4001可为较大应用程序(诸如被设计为管理向依赖方的验证的验证应用程序)内的软件模块。然而,应该指出的是,本发明的基本原理不限于信任委托应用程序4000至4001的任何特定具体实施。Returning to Figure 40, in one embodiment, the user initiates a trust delegation application 4000 on the new client device 3900 and a trust delegation application 4001 on the trusted client device to establish an initial secure connection. In one embodiment, the trust delegation application may be a mobile device application that is specifically designed to perform the trust delegation operations described herein. In another embodiment, the trust delegation application may be a browser plug-in that is executed in response to the user indicating that he/she wishes to perform trust delegation (e.g., via a web page with embedded Javascript or other applet or executable program code). In addition, the trust delegation applications 4000 to 4001 may be software modules within a larger application (such as a verification application designed to manage verification to a relying party). However, it should be noted that the underlying principles of the present invention are not limited to any particular implementation of the trust delegation applications 4000 to 4001.
在一个实施例中,为了批准可信装置3902上的信任委托操作,用户在本地向可信装置上的验证引擎3711验证(例如,向用户验证装置3722至3723提供生物计量输入)。相似地,在一个实施例中,用户可在本地向新客户端装置3900上的验证引擎3710验证。这两个验证步骤可提供对信任委托应用程序4000至4001执行委托过程的授权。In one embodiment, to approve the trust delegation operation on the trusted device 3902, the user locally authenticates to the authentication engine 3711 on the trusted device (e.g., by providing biometric input to the user authentication devices 3722-3723). Similarly, in one embodiment, the user may locally authenticate to the authentication engine 3710 on the new client device 3900. These two authentication steps may provide authorization for the trust delegation applications 4000-4001 to perform the delegation process.
如所提及,信任委托应用程序4000至4001可利用其相应客户端装置3900、3902上可用的任何通信接口来建立安全连接(例如,用于蓝牙连接的蓝牙接口、用于NFC连接的NFC接口等)。As mentioned, the trust delegation applications 4000-4001 may utilize any communication interface available on their respective client devices 3900, 3902 to establish a secure connection (eg, a Bluetooth interface for a Bluetooth connection, an NFC interface for an NFC connection, etc.).
一旦建立安全连接,在一个实施例中,可信客户端3902的信任委托应用程序4001便提供指示向依赖方注册的可信客户端上的密钥数量(N)的数据。作为响应,在一个实施例中,信任委托应用程序4000生成N个新装置密钥对(ND_Uauth),密钥对包括一个私有密钥(ND_Uauth.priv)和一个公共密钥(ND_Uauth.pub),并且信任委托应用程序4000将这N个新装置公共密钥发送到可信装置3902上的信任委托应用程序4001。Once the secure connection is established, in one embodiment, the trust delegation application 4001 of the trusted client 3902 provides data indicating the number of keys (N) on the trusted client that are registered with the relying party. In response, in one embodiment, the trust delegation application 4000 generates N new device key pairs (ND_Uauth), each comprising a private key (ND_Uauth.priv) and a public key (ND_Uauth.pub), and sends the N new device public keys to the trust delegation application 4001 on the trusted device 3902.
在一个实施例中,信任委托应用程序4001接着用对应的可信装置私有密钥(TD_Uauth.priv)签署这N个新装置公共密钥中的每一个,以生成与N个新装置公共密钥中的每一个相关联的签名(TD_Uauth.sig)。在一个实施例中,“对应”的私有密钥是与向对应的依赖方进行的特定注册相关联的私有密钥。信任委托应用程序4001还可向所生成的签名中插入时戳,该时戳可随后由依赖方用来验证发生信任委托的确切时间。在一个实施例中,可信客户端3902的信任委托应用程序4001接着将每个所生成的签名以及与每个依赖方相关联的其他注册数据传输到新客户端3900上的信任委托应用程序4000。每个依赖方的数据可包括:一个或多个依赖方ID代码(例如,识别依赖方处的服务的应用程序ID代码)、在依赖方处为用户注册的用户名、在验证期间由依赖方用来定位恰当密钥的密钥ID代码、以及与验证过程相关的任何其他数据。In one embodiment, the trust delegation application 4001 then signs each of the N new device public keys with the corresponding trusted device private key (TD_Uauth.priv) to generate a signature (TD_Uauth.sig) associated with each of the N new device public keys. In one embodiment, the "corresponding" private key is the private key associated with a specific registration with the corresponding relying party. The trust delegation application 4001 may also insert a timestamp into the generated signature, which can then be used by the relying party to verify the exact time when the trust delegation occurred. In one embodiment, the trust delegation application 4001 of the trusted client 3902 then transmits each generated signature and other registration data associated with each relying party to the trust delegation application 4000 on the new client 3900. The data for each relying party may include: one or more relying party ID codes (e.g., an application ID code identifying a service at the relying party), a username registered for the user at the relying party, a key ID code used by the relying party to locate the appropriate key during authentication, and any other data relevant to the authentication process.
在一个实施例中,一旦信任委托应用程序4000接收到签名和其他注册数据,其便将这些数据集成到本地安全存储装置3725中,使得其可随后在新客户端装置3900连接到依赖方3950时使用。In one embodiment, once the trust delegation application 4000 receives the signature and other registration data, it integrates this data into the local secure storage 3725 so that it can be used later when the new client device 3900 connects to the relying party 3950.
在一个实施例中,在注册数据已存储在本地安全存储装置3725中之后,信任委托应用程序4000可执行一系列自举操作,以利用新客户端装置3900上的向先前已经向可信客户端装置3902注册的依赖方(例如,网站、服务等)进行的已委托注册。或者,所描述的自举操作可由验证引擎3710本身执行(经由与安全交易服务4004的直接通信,如图40所示)。不管新客户端装置3900上的哪个特定软件组件执行这些操作,本发明的基本原理都保持不变。In one embodiment, after the registration data has been stored in the local secure storage device 3725, the trust delegation application 4000 can perform a series of bootstrapping operations to utilize the delegated registration on the new client device 3900 with the relying party (e.g., website, service, etc.) that has previously registered with the trusted client device 3902. Alternatively, the described bootstrapping operations can be performed by the verification engine 3710 itself (via direct communication with the secure transaction service 4004, as shown in Figure 40). Regardless of which specific software component on the new client device 3900 performs these operations, the basic principles of the invention remain unchanged.
具体地讲,在一个实施例中,依赖方3950的安全交易服务4004检测到在新客户端装置3900上存在使用由安全交易服务4002和信任委托应用程序4000支持的远程验证协议的注册内容。在一个实施例中,安全交易服务4004可最初要求用户从新客户端装置3900执行生物计量验证或其他形式的验证(例如,输入安全代码)。另外,在该阶段,安全交易服务4004可验证插入到签名中的时戳并确保时戳不早于阈值时间量。Specifically, in one embodiment, secure transaction service 4004 of relying party 3950 detects the presence of registered content on new client device 3900 that uses a remote authentication protocol supported by secure transaction service 4002 and trust delegation application 4000. In one embodiment, secure transaction service 4004 may initially require the user to perform biometric authentication or other form of authentication (e.g., entering a security code) from new client device 3900. Additionally, at this stage, secure transaction service 4004 may verify the timestamp inserted into the signature and ensure that the timestamp is no older than a threshold amount of time.
假设用户成功地以可接受的保证等级提供生物计量或其他验证数据,则信任委托应用程序4000和/或新验证器3710准备包括以下三个断言的响应:Assuming the user successfully provides biometric or other authentication data with an acceptable level of assurance, the trust delegation application 4000 and/or the new authenticator 3710 prepares a response that includes the following three assertions:
1.对与依赖方相关联的新装置公共密钥(ND_Uauth.pub)的证实。在一个实施例中,该证实包括在公共密钥上生成的签名(例如,使用依赖方的公共密钥)。1. Verification of the new device public key (ND_Uauth.pub) associated with the relying party. In one embodiment, the verification includes a signature generated on the public key (eg, using the relying party's public key).
2.使用与依赖方相关联的新装置私有密钥(ND_Uauth.priv)的断言。在一个实施例中,为了生成该断言,使用私有密钥来在依赖方已知的内容(例如,诸如从依赖方发送的随机质询)上生成签名。因为向依赖方提供了公共密钥(在步骤1中),所以依赖方可解密该内容,从而验证私有密钥是否用于加密该内容。2. An assertion using the new device private key (ND_Uauth.priv) associated with the relying party. In one embodiment, to generate this assertion, the private key is used to generate a signature on content known to the relying party (e.g., such as a random challenge sent from the relying party). Because the relying party was provided with the public key (in step 1), the relying party can decrypt the content, thereby verifying that the private key was used to encrypt the content.
3.先前由可信客户端装置生成并且与用于该特定依赖方的新装置公共密钥相关联的签名(TD_Uauth.sig),以及由依赖方用来定位公共密钥的密钥ID(TD_Uauth.keyid)(例如,使得其可使用该密钥ID来查询其安全交易数据库4025以检索公共密钥)。3. A signature (TD_Uauth.sig) previously generated by the trusted client device and associated with the new device public key for that particular relying party, and a key ID (TD_Uauth.keyid) used by the relying party to locate the public key (e.g., so that it can use that key ID to query its secure transaction database 4025 to retrieve the public key).
在一个实施例中,接着在远程验证响应中将所有以上数据传输到依赖方的安全交易服务4004。In one embodiment, all of the above data is then transmitted to the relying party's secure transaction service 4004 in a remote verification response.
在一个实施例中,在接收到以上断言之后,安全交易服务4004可执行以下验证:In one embodiment, after receiving the above assertion, the secure transaction service 4004 may perform the following verification:
1.使用密钥ID定位可信装置的公共密钥(TD_Uauth.pub);1. Use the key ID to locate the public key of the trusted device (TD_Uauth.pub);
2.使用可信装置的公共密钥(TD_Uauth.pub)验证由可信装置生成的签名(TD_Uauth.sig);2. Use the public key of the trusted device (TD_Uauth.pub) to verify the signature generated by the trusted device (TD_Uauth.sig);
3.使用装置的公共密钥(ND_Uauth.pub)验证由新装置的私有密钥生成的签名(ND_Uauth.sig);以及3. Use the device's public key (ND_Uauth.pub) to verify the signature (ND_Uauth.sig) generated by the new device's private key; and
4.验证对与依赖方相关联的新装置公共密钥(ND_Uauth.pub)的证实。在一个实施例中,使用依赖方的私有密钥执行此验证。4. Verify the confirmation of the new device public key (ND_Uauth.pub) associated with the relying party. In one embodiment, this verification is performed using the relying party's private key.
图41中示出用于安全地将注册数据从可信装置传送到新装置的方法的一个实施例,并且图42中示出用于向依赖方验证注册数据的方法的一个实施例。尽管这些方法可在图39至40所示的系统架构的环境内实施,但本发明的基本原理不限于任何特定系统架构。One embodiment of a method for securely transferring registration data from a trusted device to a new device is shown in Figure 41, and one embodiment of a method for verifying registration data to a relying party is shown in Figure 42. Although these methods may be implemented within the context of the system architecture shown in Figures 39-40, the underlying principles of the invention are not limited to any particular system architecture.
首先转到图41,在4101处,新装置建立与可信装置的安全通信信道并确定要生成的密钥对的数量(N)。如所提及,这可为可信装置向依赖方注册的密钥对的数量。41 , at 4101, the new device establishes a secure communication channel with the trusted device and determines the number of key pairs to generate (N). As mentioned, this may be the number of key pairs that the trusted device has registered with the relying party.
在4102处,新装置生成N个新的公共/私有密钥对。在利用对称密钥的替代具体实施中,新装置可生成要与依赖方共享的单个(对称)密钥。在4103处,将N个公共密钥发送到可信装置,并且在4104处,可信装置用对应私有密钥签署每个公共密钥以生成签名。在4105处,将签名连同用于依赖方的其他注册数据(例如,密钥ID、应用程序ID等)发送到新装置。最后,在4106处,将所有注册数据和签名集成在由验证引擎使用的本地安全数据库内。At 4102, the new device generates N new public/private key pairs. In an alternative implementation utilizing symmetric keys, the new device can generate a single (symmetric) key to be shared with the relying party. At 4103, the N public keys are sent to the trusted device, and at 4104, the trusted device signs each public key with the corresponding private key to generate a signature. At 4105, the signature is sent to the new device along with other registration data for the relying party (e.g., key ID, application ID, etc.). Finally, at 4106, all registration data and signatures are integrated into a local secure database used by the verification engine.
现在转到图42,在4201处,新客户端(已经执行了图41的委托操作)建立与依赖方的安全连接。在4202处,依赖方检测到存在已经被委托给新装置的现有注册内容。作为响应,在4203处,依赖方向新装置发出验证请求。用户可接着使用一种或多种生物计量或其他验证技术进行验证。如上文论述,在4204处,新装置准备响应,该响应包括对新装置公共密钥的证实、用新装置私有密钥生成的签名(例如,在质询上)、以及用可信装置的私有密钥生成的签名和相关联的密钥ID。在4205处,将响应中的所有数据传输到依赖方,并且在4206处,依赖方验证响应中包含的数据(参见上文了解一个实施例的细节)。如果验证成功,则在4207处,用户正尝试的交易被获准。Now turning to Figure 42, at 4201, the new client (having performed the delegation operation of Figure 41) establishes a secure connection with the relying party. At 4202, the relying party detects that there is an existing registration content that has been delegated to the new device. In response, at 4203, the relying party issues a verification request to the new device. The user can then use one or more biometrics or other verification techniques for verification. As discussed above, at 4204, the new device prepares a response, which includes a confirmation of the new device's public key, a signature generated with the new device's private key (e.g., on a challenge), and a signature generated with the private key of the trusted device and the associated key ID. At 4205, all data in the response is transmitted to the relying party, and at 4206, the relying party verifies the data contained in the response (see above for details of one embodiment). If the verification is successful, then at 4207, the transaction the user is attempting is approved.
本文所述的技术可用于在不同装置上的两个验证器之间委托信任(如上所述)。另外,在一个实施例中,这些技术可用于在同一装置上的两个验证器之间委托信任。在这种情况下,不需要建立两个装置之间的安全连接,但可在装置内的两个验证器之间执行所有其他操作。The techniques described herein can be used to delegate trust between two authenticators on different devices (as described above). Additionally, in one embodiment, these techniques can be used to delegate trust between two authenticators on the same device. In this case, a secure connection between the two devices does not need to be established, but all other operations can be performed between the two authenticators within the device.
此外,应该指出的是,所涉及的一些操作可以各种方式来实施。例如,用于委托信任的安全协议可由信任装置而不是新装置发起。在任一种情况下,新装置(或,更具体地讲,新装置上的验证器)可生成多个新密钥对(ND_Uauth),并且可信装置上的验证器可签署这些密钥对中的公共密钥。Furthermore, it should be noted that some of the operations described can be implemented in various ways. For example, the security protocol for delegated trust can be initiated by the trusted device rather than the new device. In either case, the new device (or, more specifically, the authenticator on the new device) can generate multiple new key pairs (ND_Uauth), and the authenticator on the trusted device can sign the public keys of these key pairs.
L.用于隐私增强型数据同步的系统和方法L. Systems and methods for privacy-enhanced data synchronization
所存在的当前系统用于使用云服务在多个客户端装置之间同步数据。当用户在装置上创建新文档(例如,拍摄照片、创建文字处理文档等)或修改现有文档时,用户所订购的云服务将通常“在云中”存储新文档/已修改文档的复本。当用户从第二装置(例如,在工作地的计算机或由不同家庭成员所使用的另一个装置)访问云服务时,云服务可被配置为同步该装置。Current systems exist for synchronizing data between multiple client devices using cloud services. When a user creates a new document on a device (e.g., takes a photo, creates a word processing document, etc.) or modifies an existing document, the cloud service to which the user subscribes will typically store a copy of the new/modified document "in the cloud." When the user accesses the cloud service from a second device (e.g., a computer at work or another device used by a different family member), the cloud service can be configured to synchronize that device.
存在的一个问题是:数据经常在云服务中以未加密格式存储,这使得数据容易受到各种类型的网络攻击和联邦机构的查询。One problem is that data is often stored in an unencrypted format within cloud services, making it vulnerable to various types of cyberattacks and inquiries by federal agencies.
下文所述的本发明的实施例提供一组协议和技术,它们允许以隐私增强方式在装置之间同步数据。通过使用这些协议和技术,云服务不再访问呈明文(例如,未加密格式)的数据,从而保护用户的隐私。The embodiments of the present invention described below provide a set of protocols and technologies that allow data to be synchronized between devices in a privacy-enhancing manner. By using these protocols and technologies, cloud services no longer have access to data in plain text (e.g., unencrypted format), thereby protecting the user's privacy.
首先应该指出的是,下文所述的用于在装置之间同步数据的技术并不依赖于本文所述的高级验证技术。例如,可在如针对本发明的其他实施例所描述的远程用户验证系统的环境外采用这些同步技术。然而,这些同步技术可用于针对这些远程用户验证实施例执行同步。例如,在一个实施例中,可使用这些同步技术在多个装置之间同步用于用户所访问的每个网站或其他在线服务的注册数据。First, it should be noted that the techniques described below for synchronizing data between devices do not rely on the advanced authentication techniques described herein. For example, these synchronization techniques can be employed outside the context of remote user authentication systems as described with respect to other embodiments of the present invention. However, these synchronization techniques can be used to perform synchronization for these remote user authentication embodiments. For example, in one embodiment, these synchronization techniques can be used to synchronize registration data for each website or other online service visited by a user across multiple devices.
如本文所用,“圈子”意指用户所信任的装置组成的网络,并且“圈子id”意指识别圈子的识别符(例如,无法轻易猜到的识别符)。“圈子云”意指用于存储关于圈子和信任链(下文定义)的信息并且充当客户端装置的通信枢纽的在线服务。在一个实施例中,圈子云不存储任何机密数据(至少不呈未加密格式)。术语“d.pub”是指装置的公共密钥,“d.priv”是指装置的私有密钥,并且d.pub/d.priv是指装置d的不对称公共/私有密钥对。在一个实施例中,d.priv从不离开装置d。“信任链”意指存储在圈子云上的持久性数据,其包含关于用户所信任的装置及其关系的信息。“圈子信道”意指由圈子云提供的安全通信信道,其由两个(或更多个)装置用来在它们之间交换和同步数据。As used herein, "circle" means a network of devices trusted by a user, and "circle id" means an identifier that identifies a circle (e.g., an identifier that cannot be easily guessed). "Circle cloud" means an online service that stores information about circles and trust chains (defined below) and acts as a communication hub for client devices. In one embodiment, the circle cloud does not store any confidential data (at least not in unencrypted format). The term "d.pub" refers to the public key of a device, "d.priv" refers to the private key of a device, and d.pub/d.priv refers to the asymmetric public/private key pair of device d. In one embodiment, d.priv never leaves device d. "Trust chain" means persistent data stored on the circle cloud that contains information about the devices trusted by the user and their relationships. "Circle channel" means a secure communication channel provided by the circle cloud that is used by two (or more) devices to exchange and synchronize data between them.
本发明的一个实施例包括用于允许新用户装置(a)加入圈子并且(b)随后与圈子同步的协议和相关联技术。将结合图43描述这些实施例,该图示出三个客户端装置4301至4303,其分别具有用于实施本文所述的协议和技术的隐私同步应用程序4311至4313,以及用于存储加入和同步所使用的数据的安全数据存储装置4321至4332。装置4301在本文中有时称为装置d1,装置4302有时称为装置d2,装置4303有时称为装置d3。One embodiment of the present invention includes protocols and associated technologies for allowing new user devices to (a) join a circle and (b) subsequently synchronize with the circle. These embodiments will be described in conjunction with FIG43, which shows three client devices 4301 through 4303, each having a privacy synchronization application 4311 through 4313 for implementing the protocols and technologies described herein, and secure data storage devices 4321 through 4332 for storing data used for joining and synchronization. Device 4301 is sometimes referred to herein as device d1, device 4302 is sometimes referred to herein as device d2, and device 4303 is sometimes referred to herein as device d3.
在一个实施例中,通过包括多个存储服务器的圈子云4350执行加入和同步。圈子云4350内的信任链4360维持定义装置4301至4303之间的信任关系的数据,如下文所述。圈子信道4370包括由圈子云提供的安全通信信道,其由两个或更多个装置用来交换和同步数据。In one embodiment, joining and synchronization are performed via a circle cloud 4350 comprising multiple storage servers. A trust chain 4360 within the circle cloud 4350 maintains data defining trust relationships between devices 4301 to 4303, as described below. A circle channel 4370 comprises a secure communication channel provided by the circle cloud that is used by two or more devices to exchange and synchronize data.
a.加入圈子a. Join the circle
装置4302(d2)加入属于用户的装置4301(d1)和4303(d3)组成的现有网络(即,可信装置的“圈子”)。只有在已经是现有圈子的一部分的另一个装置4301授权的情况下,装置4302才能加入那个圈子。Device 4302 (d2) joins an existing network (i.e., a "circle" of trusted devices) consisting of devices 4301 (d1) and 4303 (d3) belonging to the user. Device 4302 can only join that circle if another device 4301 that is already part of the existing circle authorizes it.
图44中示出用于使用可信装置4301授权新装置4302的方法的一个实施例。在4401处,用户在现有可信装置4301上授权新装置4302。例如,在一个实施例中,用户可发起可信装置4301上的隐私同步应用程序4311和新客户端装置4302上的隐私同步应用程序4312。One embodiment of a method for authorizing a new device 4302 using a trusted device 4301 is shown in Figure 44. At 4401, a user authorizes a new device 4302 on an existing trusted device 4301. For example, in one embodiment, the user may initiate a privacy sync application 4311 on the trusted device 4301 and a privacy sync application 4312 on the new client device 4302.
在4402处,在一个实施例中,隐私同步应用程序4311至4312致使装置4301至4302建立安全连接。可使用各种技术建立安全连接,诸如近场通信(NFC)、蓝牙、Wifi Direct、使用快速响应(QR)代码以及建立HTTPS连接。At 4402, in one embodiment, the privacy sync applications 4311-4312 cause the devices 4301-4302 to establish a secure connection. The secure connection may be established using various technologies, such as near field communication (NFC), Bluetooth, Wifi Direct, using a Quick Response (QR) code, and establishing an HTTPS connection.
在4403处,装置4301将安全数据发送到新装置4302,本文中将该数据称为“join1_data”。在一个实施例中,join1_data包括以下字段:{d1.pub,sk.sym,circle-id},其中d1.pub是装置4301的公共密钥,sk.sym是装置4301所生成的随机生成的会话密钥,并且circle-id是识别装置4302正加入的圈子的唯一识别代码。At 4403, device 4301 sends secure data, referred to herein as "join1_data," to new device 4302. In one embodiment, join1_data includes the following fields: {d1.pub, sk.sym, circle-id}, where d1.pub is the public key of device 4301, sk.sym is a randomly generated session key generated by device 4301, and circle-id is a unique identification code that identifies the circle that device 4302 is joining.
在4404处,装置4302读取join1_data并且准备响应,该响应可包括以下各项:At 4404, the device 4302 reads the join1_data and prepares a response, which may include the following:
·HMAC(sk.sym,d2.pub|T)|d2.pub|T,其中T是时戳HMAC(sk.sym, d2.pub|T)|d2.pub|T, where T is the timestamp
·trust-block1=S(d2.priv,d1.pub)|d1.pub|d2.pub·trust-block1=S(d2.priv, d1.pub)|d1.pub|d2.pub
请注意,HMAC代表基于散列的消息验证代码。在以上实施例中,通过使用HMAC或类似算法将装置4302的公共密钥与时戳连在一起并且用sk.sym保护该结果的完整性来生成HMAC。另外,trust-block1包括使用装置4302的私有密钥在装置4301的公共密钥上生成的签名。在一个实施例中,trust-block1条目还包括时戳(T)。Note that HMAC stands for Hash-based Message Authentication Code. In the above embodiment, the HMAC is generated by concatenating the public key of device 4302 with a timestamp using an HMAC or similar algorithm and protecting the integrity of the result with sk.sym. In addition, trust-block 1 includes a signature generated over the public key of device 4301 using the private key of device 4302. In one embodiment, the trust-block 1 entry also includes a timestamp (T).
返回到图44,在4405处,装置4302安全连接到圈子云4350并且传输包括HMAC和trust-block1的响应。圈子云4350存储由装置4301接收的数据,并且等待装置4301连接。44 , at 4405 , device 4302 securely connects to circle cloud 4350 and transmits a response including HMAC and trust-block 1. Circle cloud 4350 stores the data received by device 4301 and waits for device 4301 to connect.
在4406处,装置4301使用圈子id连接到圈子云,验证装置4302在操作4405中的响应中所包含的数据的完整性,并且生成trust-block2。具体地讲,在一个实施例中,装置4301使用sk.sym读取并验证d2.pub和T的完整性(例如,使用sk.sym解密d2.pub和T)。装置4301接着使用其自己的私有密钥d1.priv签署d2.pub,并生成trust-block2=S(d1.priv,d2.pub)|d2.pub|d1.pub,其包括用d1priv在d2.pub上生成的签名。在一个实施例中,trust-block2还包括时戳(T)。装置4301接着将以上包括trust-block2的数据发送到圈子云4350。At 4406, device 4301 connects to the circle cloud using the circle id, verifies the integrity of the data contained in the response of device 4302 in operation 4405, and generates trust-block2. Specifically, in one embodiment, device 4301 uses sk.sym to read and verify the integrity of d2.pub and T (for example, decrypts d2.pub and T using sk.sym). Device 4301 then signs d2.pub using its own private key d1.priv and generates trust-block2 = S(d1.priv, d2.pub) | d2.pub | d1.pub, which includes the signature generated on d2.pub using d1priv. In one embodiment, trust-block2 also includes a timestamp (T). Device 4301 then sends the above data including trust-block2 to circle cloud 4350.
在4407处,圈子云4350将这两个信任块添加到信任链4360。在一个实施例中,在以上操作之后,装置4302加入与圈子id相关联的圈子。这个圈子中的所有装置4301、4303信任装置4302,并且装置4302信任所有这些装置。请注意,任何可信装置均可使用本文所述的技术授权新装置。At 4407, circle cloud 4350 adds these two trust blocks to trust chain 4360. In one embodiment, after the above operations, device 4302 joins the circle associated with the circle ID. All devices 4301 and 4303 in this circle trust device 4302, and device 4302 trusts all of these devices. Note that any trusted device can authorize a new device using the techniques described herein.
b.与圈子同步b. Synchronize with circles
在这个过程中,属于同一圈子的装置4301至4303在它们之间同步数据。可紧接这个过程之后实施不同的应用程序特定的子协议。例如,在线云存储应用程序可能想要保持用户的数据在所有装置上同步并且将加密复本保留在圈子云上。另一个应用程序可将消息传播到圈子中的装置。例如,在一个实施例中,可跨圈子中的所有装置同步一个装置用来向远程依赖方验证的注册数据。可在同时仍符合本发明的基本原理的情况下实施各种其他应用程序和子协议。所有此类子协议可使用下文所述的基本过程块。During this process, devices 4301-4303 belonging to the same circle synchronize data between themselves. Various application-specific sub-protocols may be implemented following this process. For example, an online cloud storage application may want to keep a user's data synchronized across all devices and retain an encrypted copy on the circle's cloud. Another application may broadcast a message to devices in the circle. For example, in one embodiment, registration data used by one device to authenticate with a remote relying party may be synchronized across all devices in the circle. Various other applications and sub-protocols may be implemented while still adhering to the basic principles of the present invention. All such sub-protocols may utilize the basic process blocks described below.
信任链Chain of Trust
如“加入圈子”过程(图44)中所展示,进入信任链4360的是断言装置2受装置1信任的证据。因此,信任链4360是一连串授权块,其中的每一个断言两个装置之间的信任关系。在一个实施例中,信任链是可交换的,这意味着如果装置4301信任装置4302,则装置4302信任装置4301。如果存在断言装置4301信任装置4302的块而不存在断言装置4302信任装置4301的块,则信任链4360被视为破裂。在一个实施例中,信任链4360还是可传递的,这意味着如果装置4301信任装置4302并且装置4302信任装置4303,则装置4301信任装置4303。在一个实施例中,信任链是圈子id特定的,并且不包含关于装置的任何机密信息。As shown in the "Join a Circle" process (Figure 44), what enters trust chain 4360 is evidence asserting that device 2 is trusted by device 1. Therefore, trust chain 4360 is a series of authorization blocks, each of which asserts a trust relationship between two devices. In one embodiment, the trust chain is commutative, meaning that if device 4301 trusts device 4302, then device 4302 trusts device 4301. If there is a block asserting that device 4301 trusts device 4302 but no block asserting that device 4302 trusts device 4301, then trust chain 4360 is considered broken. In one embodiment, trust chain 4360 is also transitive, meaning that if device 4301 trusts device 4302 and device 4302 trusts device 4303, then device 4301 trusts device 4303. In one embodiment, the trust chain is circle ID-specific and does not contain any confidential information about the devices.
在一个实施例中,信任链4360包括多个信任块并且每个块包括以下数据:{di.pub,dj.pub,S(di.priv,dj.pub),S(dj.priv,di.pub)}-即,每个装置的公共密钥,以及使用每个装置的私有密钥在每个其他装置的公共密钥上生成的签名。In one embodiment, the trust chain 4360 includes multiple trust blocks and each block includes the following data: {di.pub, dj.pub, S(di.priv, dj.pub), S(dj.priv, di.pub)} - that is, the public key of each device, and the signature generated on the public key of each other device using the private key of each device.
以上断言意味着装置di信任装置dj并且反之亦然。在一个实施例中,装置4301至4302使用信任链4360来确定并验证哪些装置在圈子中。在装置验证它们在同一个圈子中之后,它们可使用圈子信道4370来在它们之间同步加密数据。The above assertion means that device di trusts device dj and vice versa. In one embodiment, devices 4301 to 4302 use trust chain 4360 to determine and verify which devices are in the circle. After the devices verify that they are in the same circle, they can use circle channel 4370 to synchronize encrypted data between them.
在一个实施例中,为了确定装置di是否与装置dj在相同的圈子中,执行以下操作:(a)构造有向图,其中每个节点是信任链中的装置并且每个箭头对应于信任链中的块,并且(b)确定是否存在连接di与dj的直连路径。In one embodiment, to determine whether device di is in the same circle as device dj, the following operations are performed: (a) a directed graph is constructed in which each node is a device in the trust chain and each arrow corresponds to a block in the trust chain, and (b) a determination is made as to whether there is a direct path connecting di and dj.
圈子信道Circle Channel
在一个实施例中,实施图45所示的过程以在同一圈子中的其他装置之间同步数据。在图示例子中,装置4301(d1)是具有新数据并且想要发送到其他装置的装置。在4501处,装置4301下载与圈子id相关联的信任链4360,从信任链识别同一圈子中的其他装置(例如,装置4302至4303),并且使用信任链获得同一圈子中的其他装置的公共密钥。In one embodiment, the process shown in FIG45 is implemented to synchronize data between other devices in the same circle. In the illustrated example, device 4301 (d1) is a device that has new data and wants to send it to other devices. At 4501, device 4301 downloads the trust chain 4360 associated with the circle ID, identifies other devices in the same circle (e.g., devices 4302 to 4303) from the trust chain, and uses the trust chain to obtain the public keys of the other devices in the same circle.
在4502处,装置4301生成随机加密密钥(REK)(例如,使用已知的随机数生成技术)。在4503处,装置4301针对圈子中的每个其他装置得出双向会话密钥(SK)。在一个实施例中,装置4301使用Diffie-Hellman密钥交换算法相对于每个其他装置得出SK。Diffie-Hellman是一种熟知的算法,其允许彼此先前不了解的两方共同建立共享秘密密钥。在这种情况下,例如,如果第一装置具有密钥对并且将其公共密钥提供给第二装置,则第二装置可独立地使用其私有密钥和第一装置的公共密钥来自动得出新密钥(在本申请中为SK)(并且反之亦然)。在一个实施例中,装置4301使用这些技术来为每个其他装置4302、4303生成不同SK。At 4502, device 4301 generates a random encryption key (REK) (e.g., using known random number generation techniques). At 4503, device 4301 derives a two-way session key (SK) for each other device in the circle. In one embodiment, device 4301 derives the SK with respect to each other device using the Diffie-Hellman key exchange algorithm. Diffie-Hellman is a well-known algorithm that allows two parties that are not previously aware of each other to jointly establish a shared secret key. In this case, for example, if a first device has a key pair and provides its public key to a second device, the second device can independently use its private key and the public key of the first device to automatically derive a new key (SK in this application) (and vice versa). In one embodiment, device 4301 uses these techniques to generate a different SK for each other device 4302, 4303.
在4504处,装置4301针对每个装置用每个导出的SK加密REK并且将恰当的公共密钥与其绑定在一起。例如,对于分别针对装置di和dj生成SKi和SKj的装置d1,其使用会话密钥来如下加密REK:At 4504, device 4301 encrypts REK with each derived SK for each device and binds the appropriate public key to it. For example, for device d1, which generates SKi and SKj for devices di and dj respectively, it uses the session key to encrypt REK as follows:
{d1.pub,di.pub,E(SKi,REK)}(对于装置di){d1.pub, di.pub, E(SKi, REK)} (for device di)
{d1.pub,dj.pub,E(SKj,REK)}(对于装置dj){d1.pub, dj.pub, E(SKj, REK)} (for device dj)
在该过程的最后,装置di和dj中的每一个能够使用其相应会话密钥(已由每个装置使用Diffie-Hellman独立地得出,如上文论述)解密REK。At the end of this process, each of devices di and dj is able to decrypt REK using its respective session key (which has been independently derived by each device using Diffie-Hellman, as discussed above).
在4505处,装置4301用REK加密待同步数据——即,E(REK,data-to-be-synced)。如所提及,可以此方式同步任何数据,诸如多媒体文件、效率文档和/或客户端配置数据(例如,依赖方注册数据,如上文论述),等等。At 4505, the device 4301 encrypts the data to be synchronized with the REK, i.e., E(REK, data-to-be-synced). As mentioned, any data can be synchronized in this manner, such as multimedia files, productivity documents, and/or client configuration data (e.g., relying party registration data, as discussed above), etc.
在4507处,装置4301向圈子信道提供用每个SK加密的REK和用REK加密的待同步数据:At 4507, the device 4301 provides the circle channel with the REK encrypted with each SK and the data to be synchronized encrypted with the REK:
[{d1.pub,di.pub,E(SKi,REK)},{d1.pub,dj.pub,E(SKj,REK)},...][{d1.pub, di.pub, E(SKi, REK)}, {d1.pub, dj.pub, E(SKj, REK)},...]
E(REK,data-to-be-synced)E(REK, data-to-be-synced)
在已经将该数据提供给圈子信道之后,在4506处,同一圈子中的各个装置下载对应于其公共密钥的记录(例如,用于装置di的{d1.pub,di.pub,E(SKi,REK)}),得出相同SK(例如,SKi),解密REK,并且使用REK解密待同步数据。After the data has been provided to the circle channel, at 4506, each device in the same circle downloads the record corresponding to its public key (e.g., {d1.pub, di.pub, E(SKi, REK)} for device di), derives the same SK (e.g., SKi), decrypts REK, and uses REK to decrypt the data to be synchronized.
在一个实施例中,如上所述的“加入圈子”操作可能需要对装置1和装置2进行用户验证。当使用本文所述的远程验证技术实施该协议时,可能需要用户(例如)“轻扫”手指来对两个装置进行验证,从而发起并完成“加入圈子”过程。与此相反,在一个实施例中,如所描述的在装置之间同步数据可能不需要用户验证。In one embodiment, the "join circle" operation described above may require user authentication of both device 1 and device 2. When implementing the protocol using the remote authentication techniques described herein, the user may be required to authenticate both devices by, for example, "swiping" a finger to initiate and complete the "join circle" process. In contrast, in one embodiment, synchronizing data between devices as described may not require user authentication.
本文所述的协议和相关联技术允许构建彼此信任的装置组成的网络。值得注意的是,传输到云和从云传输以及存储在云中的所有数据均被加密。因此,可在多个装置之间同步数据而不在云上存储任何机密数据,从而使用户隐私保护得到改进。The protocols and associated technologies described herein allow for the construction of a network of mutually trusting devices. Notably, all data transmitted to, from, and stored in the cloud is encrypted. This allows for data to be synchronized between multiple devices without storing any confidential data in the cloud, improving user privacy.
上文所述的本发明的实施例实施私有同步协议来实现装置同步,其中参与的云存储装置无法查看任何呈明文的用户数据(即,数据在云中被加密)。这些实施例包括各种新颖且有益的特征,包括但不限于:The embodiments of the present invention described above implement a private synchronization protocol to achieve device synchronization, wherein participating cloud storage devices cannot view any user data in plain text (i.e., the data is encrypted in the cloud). These embodiments include various novel and beneficial features, including but not limited to:
·一种实施装置同步协议的系统和方法,其中装置具有用于授权其他装置的公共密钥和私有密钥。• A system and method for implementing a device synchronization protocol in which devices have public and private keys for authorizing other devices.
·一种实施信任链以指示同一圈子内的装置之间的信任关系的系统和方法。• A system and method for implementing a chain of trust to indicate trust relationships between devices within the same circle.
·一种系统和方法,其中装置使用Diffie-Hellman或类似密钥交换算法来生成双向会话密钥并且用那些密钥加密数据。• A system and method in which devices use a Diffie-Hellman or similar key exchange algorithm to generate two-way session keys and encrypt data with those keys.
·一种系统和方法,其中圈子id的散列存储在圈子云中而非存储在装置本身上。• A system and method where a hash of the circle id is stored in the circle cloud rather than on the device itself.
·一种系统和方法,其中圈子云使用质询响应协议来在允许装置将任何数据放入圈子的圈子信道中之前验证该装置。• A system and method in which the circle cloud uses a challenge-response protocol to authenticate a device before allowing it to put any data into the circle's circle channel.
·一种系统和方法,其中使用持久性圈子群组密钥来加密同步数据。• A system and method in which a persistent circle group key is used to encrypt synchronized data.
·一种应用程序,其使用所描述的私有同步协议来在多个装置之间共享用户的数据(文档、文件、照片等)并将数据的加密备份存储在云上。• An application that uses the described proprietary synchronization protocol to share a user's data (documents, files, photos, etc.) between multiple devices and store encrypted backups of the data on the cloud.
·一种系统和方法,其中装置的私有密钥(d.priv)和使用此密钥的所有操作在验证器内部实施以经由网络远程验证用户。• A system and method where a device's private key (d.priv) and all operations using this key are implemented inside an authenticator to remotely authenticate a user over a network.
·一种应用程序,其结合本发明的实施例使用所描述的私有同步协议来执行对新装置的用户控制信任委托,从而在用户的装置之间共享验证器注册内容。• An application that uses the described proprietary synchronization protocol in conjunction with embodiments of the present invention to perform user-controlled trust delegation to a new device, thereby sharing authenticator registration content between the user's devices.
·一种应用程序,其结合本发明的实施例使用所描述的私有同步协议来执行对新装置的用户控制信任委托,从而在用户的装置之间共享新注册内容,其中用户不需要在每次向其他装置委托新注册内容时都向验证器进行验证。An application that uses the described proprietary synchronization protocol in conjunction with embodiments of the present invention to perform user-controlled trusted delegation to new devices, thereby sharing new registration content between the user's devices, where the user does not need to authenticate to the authenticator each time a new registration content is delegated to another device.
·属于同一用户并且形成圈子的一组验证器,其中这些验证器使用上文所述的私有同步协议来同步验证密钥对,以便与属于同一圈子的其他验证器共享单个验证器的注册内容。A group of validators belonging to the same user and forming a circle, where these validators synchronize their validation key pairs using the private synchronization protocol described above in order to share a single validator's registration with other validators belonging to the same circle.
M.示例性系统架构M. Exemplary System Architecture
应该指出的是,本文中使用术语“依赖方”不仅指尝试与之进行用户交易的实体(例如,执行用户交易的网站或在线服务),也指代表那个实体实施的安全交易服务器(其可执行本文所述的基础验证技术)。安全交易服务器可由依赖方拥有并且/或者在依赖方的控制下,或者可在作为商业安排的一部分向依赖方提供安全交易服务的第三方的控制下。这些区别在下文论述的图46A至46B中列举,这些附图示出“依赖方”可包括网站4631和其他网络服务4651,以及用于代表网站和网络服务执行验证技术的安全交易服务器4632至4633。It should be noted that the term "relying party" as used herein refers 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 the secure transaction server implemented on behalf of that entity (which can perform the basic verification 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. These distinctions are illustrated in Figures 46A to 46B discussed below, which show that a "relying party" can include a website 4631 and other network services 4651, as well as secure transaction servers 4632 to 4633 for performing verification techniques on behalf of the website and network services.
具体地讲,图46A至46B示出包括用于验证用户的客户端侧组件和服务器侧组件的系统架构的两个实施例。图46A所示的实施例使用基于浏览器插件的架构来与网站通信,而图46B所示的实施例不需要浏览器。本文所述的各种高级验证技术和相关联的应用程序可在这些系统架构中的任一个上实施。例如,上文所述的客户端装置内的验证引擎(例如,230)可被实施为包括接口4602的安全交易服务4601的一部分。然而,应该指出的是,上文所述的实施例可使用除了图46A至46B所示的那些之外的硬件与软件的逻辑布置来实施。Specifically, Figure 46 A to 46B illustrate two embodiments of the system architecture comprising the client-side component and server-side component for verifying the user. The embodiment shown in Figure 46 A uses the architecture based on browser plug-in to communicate with the website, and the embodiment shown in Figure 46 B does not need a browser. Various advanced authentication technologies and associated applications as described herein can be implemented on any one of these system architectures. For example, the authentication engine (e.g., 230) in the client device described above can be implemented as a part for the secure transaction services 4601 comprising interface 4602. However, it should be noted that the embodiments described above can be implemented using the logical arrangement of hardware and software except those shown in Figure 46 A to 46B.
转到图46A,图示实施例包括配备有一个或多个验证装置4610至4612的客户端4600,这些验证装置用于登记和验证最终用户。如上所述,验证装置4610至4612可包括生物计量装置,诸如指纹传感器、声音识别硬件/软件(例如,用于识别用户声音的麦克风和相关联软件)、面部识别硬件/软件(例如,用于识别用户面部的相机和相关联软件)、以及光学识别功能(例如,用于扫描用户的视网膜的光学扫描器和相关联软件);以及非生物计量装置,诸如可信平台模块(TPM)和智能卡。用户可通过提供生物计量数据(例如,在指纹装置上轻扫手指)来登记生物计量装置,安全交易服务4601可将这些生物计量数据作为生物计量模板数据(经由接口4602)存储在安全存储装置4620中。Turning to Figure 46A, the illustrated embodiment includes a client 4600 equipped with one or more authentication devices 4610 to 4612 for enrolling and authenticating an end user. As described above, authentication devices 4610 to 4612 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 4601 may store as biometric template data in secure storage 4620 (via interface 4602).
尽管安全存储装置4620被示出为在验证装置4610至4612的安全周界之外,但在一个实施例中,每个验证装置4610至4612可具有其自己的集成安全存储装置。另外,每个验证装置4610至4612可以密码保护生物计量参考数据记录(例如,使用对称密钥包裹这些数据记录以使得存储装置4620安全)。Although secure storage 4620 is shown outside the secure perimeter of verification devices 4610 to 4612, in one embodiment, each verification device 4610 to 4612 may have its own integrated secure storage. Additionally, each verification device 4610 to 4612 may cryptographically protect biometric reference data records (e.g., wrapping these data records with a symmetric key to secure storage 4620).
验证装置4610至4612通过由安全交易服务4601暴露的接口4602(例如,应用程序编程接口或API)以通信方式耦接到客户端。安全交易服务4601是用于经由网络与一个或多个安全交易服务器4632至4633通信以及用于与在web浏览器4604的环境内执行的安全交易插件4605介接的安全应用程序。如图所示,接口4602还可提供对客户端4600上的安全存储装置4620的安全访问,该安全存储装置4620存储与每个验证装置4610至4612相关的信息,诸如装置识别代码、用户识别代码、用户登记数据(例如,所扫描的指纹或其他生物计量数据),以及用于执行本文所述的安全验证技术的密钥。例如,如下文详细论述,唯一密钥可被存储到每个验证装置中并且在经由网络(诸如因特网)与服务器4630通信时使用。Authentication devices 4610-4612 are communicatively coupled to the client via an interface 4602 (e.g., an application programming interface or API) exposed by a secure transaction service 4601. The secure transaction service 4601 is a secure application for communicating with one or more secure transaction servers 4632-4633 via a network and for interfacing with a secure transaction plug-in 4605 executed within a web browser 4604. As shown, the interface 4602 may also provide secure access to a secure storage device 4620 on the client 4600, which stores information related to each authentication device 4610-4612, such as a device identification code, a user identification code, user registration 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 used when communicating with the server 4630 via a network (such as the Internet).
除了装置登记之外,安全交易服务4601还可接着经由网络向安全交易服务器4632至4633注册生物计量装置,并且随后使用在注册过程中交换的数据(例如,预置到生物计量装置中的加密密钥)向那些服务器验证。验证过程可包括本文所述的任何验证技术(例如,基于显式或非侵入式验证技术在客户端4600上生成保证等级并将结果传输到安全交易服务器4632至4633)。In addition to device registration, the secure transaction service 4601 may then register the biometric device with secure transaction servers 4632-4633 via the network, and subsequently authenticate with those servers using the data exchanged during the registration process (e.g., an encryption key pre-set to the biometric device). The authentication process may include any of the authentication techniques described herein (e.g., generating an assurance level on the client 4600 based on explicit or non-intrusive authentication techniques and transmitting the result to the secure transaction servers 4632-4633).
如下文论述,安全交易插件4605支持某些类型的网络交易,诸如与网站4631或其他服务器的HTTP或HTTPS交易。在一个实施例中,响应于由安全企业或Web目的地4630内的网络服务器4631(下文中有时简称为“服务器4630”)插入到网页HTML代码中的特定HTML标签来启动安全交易插件。响应于检测到此类标签,安全交易插件4605可将交易转发到安全交易服务4601以进行处理。另外,对于某些类型的事务(例如,诸如安全密钥交换),安全交易服务4601可开启与当地交易服务器4632(即,与网站位于同一地点)或异地交易服务器4633的直接通信信道。As discussed below, secure transaction plugin 4605 supports certain types of network transactions, such as HTTP or HTTPS transactions with a website 4631 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 4631 (sometimes referred to hereinafter as "server 4630") within a secure enterprise or web destination 4630. In response to detecting such a tag, secure transaction plugin 4605 may forward the transaction to secure transaction service 4601 for processing. In addition, for certain types of transactions (e.g., such as secure key exchange), secure transaction service 4601 may open a direct communication channel with a local transaction server 4632 (i.e., co-located with the website) or an off-site transaction server 4633.
安全交易服务器4632至4633耦接到安全交易数据库4640以存储用户数据、验证装置数据、密钥以及支持下文所述的安全验证交易所需要的其他安全信息。然而,应该指出的是,本发明的基本原理不需要分离图46A所示的安全企业或web目的地4630内的逻辑组件。例如,网站4631和安全交易服务器4632至4633可在单个物理服务器或单独物理服务器内实施。此外,网站4631和交易服务器4632至4633可在一个或多个服务器上所执行的集成软件模块内实施以执行下文所述的功能。Secure transaction servers 4632-4633 are coupled to a secure transaction database 4640 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 4630 shown in FIG46A. For example, website 4631 and secure transaction servers 4632-4633 may be implemented within a single physical server or separate physical servers. Furthermore, website 4631 and transaction servers 4632-4633 may be implemented within integrated software modules executed on one or more servers to perform the functions described below.
如上所述,本发明的基本原理不限于图46A所示的基于浏览器的架构。图46B示出替代性具体实施,其中独立应用程序4654利用由安全交易服务4601提供的功能来经由网络验证用户。在一个实施例中,应用程序4654被设计为建立与一个或多个网络服务4651的通信会话,这些网络服务依赖于安全交易服务器4632至4633来执行下文详细描述的用户/客户端验证技术。As mentioned above, the underlying principles of the present invention are not limited to the browser-based architecture shown in Figure 46A. Figure 46B illustrates an alternative implementation in which a standalone application 4654 utilizes functionality provided by secure transaction service 4601 to authenticate users via the network. In one embodiment, application 4654 is designed to establish a communication session with one or more network services 4651, which rely on secure transaction servers 4632-4633 to perform the user/client authentication techniques described in detail below.
在图46A至46B所示的任一个实施例中,安全交易服务器4632至4633可生成密钥,这些密钥接着被安全地传输到安全交易服务4601并存储到安全存储装置4620内的验证装置中。另外,安全交易服务器4632至4633管理服务器端上的安全交易数据库4640。46A-46B , secure transaction servers 4632-4633 may generate keys that are then securely transmitted to secure transaction service 4601 and stored in a verification device within secure storage 4620. Additionally, secure transaction servers 4632-4633 manage a secure transaction database 4640 on the server side.
图47至51中示出用于执行验证装置发现、登记、注册和验证的一系列示例性事务。上文所述的OSTP协议中已经采用了这些事务的一些方面(参见OSTP框架(2011年3月23日)了解其他细节,所述OSTP框架以引用的方式并入本文中)。对这些事务的基本操作的理解将提供可实施本发明的实施例的环境。A series of exemplary transactions for performing authentication device discovery, registration, enrollment, and authentication are shown in Figures 47 to 51. Some aspects of these transactions have been adopted in the OSTP protocol described above (see the OSTP Framework (March 23, 2011) for additional details, which is incorporated herein by reference). An understanding of the basic operation of these transactions will provide an environment in which embodiments of the present invention can be implemented.
下文所述的操作包括检测验证装置(图47);向验证装置登记用户(图48);注册验证装置(图49);向注册的验证装置验证用户(图50);以及在验证之后实施安全交易(图51)。The operations described below include detecting the verification device (Figure 47); registering the user with the verification device (Figure 48); registering the verification device (Figure 49); authenticating the user with the registered verification device (Figure 50); and implementing a secure transaction after authentication (Figure 51).
图47示出用于在客户端机器上检测验证装置的一系列事务。在成功完成装置检测之后,服务器4730拥有关于附接到客户端的验证装置的详尽信息并且将能够评估哪个(哪些)装置最适合与增强型安全基础设施一起使用。只有服务器4730筛选验证装置列表。将向用户提供此列表,并且用户可选择一个(或一组)验证装置来用于进一步验证和实施安全交易。Figure 47 shows a series of transactions for detecting authentication devices on a client machine. After successful device detection, server 4730 has comprehensive information about the authentication devices attached to the client and will be able to evaluate which (which) devices are most suitable for use with the enhanced security infrastructure. Only server 4730 screens the list of authentication devices. This list will be provided to the user, and the user can select one (or a group of) authentication devices for further verification and implementation of secure transactions.
在操作中,用户在浏览器中使用用户名和密码来验证并登录网站。只有在这时需要用户提供用户名和密码。服务器4730确定用户当前没有使用增强型安全性(例如,通过查询安全交易数据库4720)并向用户建议更改为增强型安全性。In operation, a user authenticates and logs into a website using a username and password in a browser. Only then is the user required to provide their username and password. Server 4730 determines that the user is not currently using enhanced security (e.g., by querying secure transaction database 4720) and recommends that the user change to enhanced security.
在一个实施例中,服务器4730在安全交易插件4705检测到的HTML页面中包括“查询装置”标签。响应于检测到此标签,安全交易插件4705将请求重新路由到安全交易服务4701,安全交易服务4701接着准备关于附接到系统的所有验证装置的详尽信息,该信息包括装置的安全特征。在一个实施例中,在传输之前使用预先指定的数据模式以XML格式封装该信息。In one embodiment, server 4730 includes a "Query Device" tag in the HTML page that is detected by secure transaction plugin 4705. In response to detecting this tag, secure transaction plugin 4705 reroutes the request to secure transaction service 4701, which then prepares detailed information about all authentication devices attached to the system, including the device's security features. In one embodiment, this information is packaged in XML format using a pre-specified data schema before transmission.
安全交易插件4705从安全交易服务4701接收该信息,并且在一个实施例中,经由注册的回叫将该信息传递到网页的JavaScript。其接着选择如何在浏览器4704中显示该信息。可向用户展示由网站筛选的列表,并且用户可选择一个或一组验证装置。The secure transaction plugin 4705 receives this information from the secure transaction service 4701 and, in one embodiment, passes it to the web page's JavaScript via a registered callback. It then chooses how to display the information in the browser 4704. The user can be presented with a list filtered by the website and can select one or a group of authentication devices.
图48示出用于向验证装置登记用户的一系列事务。在一个实施例中,登记是使用由本文所述的本发明的实施例所提供的增强型安全性的先决条件。登记涉及取得用户的生物计量读数(例如,指纹、声音样本等),使得同一验证装置可用于在后续交易期间验证用户。可在不与服务器4730交互的情况下单独地在客户端上进行登记操作。被提供用于登记的用户界面可在浏览器扩展件中显示,或者可在单独的应用程序或移动装置应用程序中显示。Figure 48 illustrates a series of transactions for registering a user with an authentication device. In one embodiment, registration is a prerequisite for using the enhanced security provided by embodiments of the present invention described herein. Registration involves taking a biometric reading (e.g., fingerprint, voice sample, etc.) of the user so that the same authentication device can be used to authenticate the user during subsequent transactions. Registration operations can be performed independently on the client without interacting with server 4730. The user interface provided for registration can be displayed in a browser extension or in a separate application or mobile device application.
一检测到装置,就可发起登记操作。用户可选择使用一个或一组已发现的装置来实现增强型安全性。在操作中,用户可在浏览器、应用程序或移动装置应用程序中从所显示的装置列表中选择一个装置。对于图48所示的基于浏览器的具体实施,安全交易插件4705显示装置特定的登记图形用户界面(GUI)。安全交易插件4705将装置识别符和登记请求传输到安全交易服务4701并等待完成。如果已经向客户端上的验证装置登记了用户,则用户可仅需要验证其身份(即,将不需要用户再次登记)。如果用户当前尚未登记,则安全交易服务101通过激活物理验证装置(例如,经由装置接口4702)来开始登记过程。用户接着与安全交易插件4705GUI交互并遵循指定的登记步骤(例如,轻扫手指、对着麦克风说话、拍摄照片等)。一旦完成,便将向验证装置登记了用户。值得注意的是,一旦向装置登记了用户,其便可使用此登记来向任何网站或网络服务进行注册或验证,如本文所述。Once a device is detected, a registration operation can be initiated. The user can choose to use one or a group of discovered devices to achieve enhanced security. In operation, the user can select a device from a displayed list of devices in a browser, application, or mobile device application. For the browser-based implementation shown in Figure 48, the secure transaction plugin 4705 displays a device-specific registration graphical user interface (GUI). The secure transaction plugin 4705 transmits the device identifier and registration request to the secure transaction service 4701 and waits for completion. If the user is already registered with the authentication device on the client, the user may only need to verify their identity (i.e., the user will not need to register again). If the user is not currently registered, the secure transaction service 101 begins the registration process by activating the physical authentication device (e.g., via device interface 4702). The user then interacts with the secure transaction plugin 4705 GUI and follows the designated registration steps (e.g., swiping a finger, speaking into a microphone, taking a photo, etc.). Once completed, the user is registered with the authentication device. Notably, once a user is registered with a device, they can use this registration to register or authenticate with any website or network service, as described herein.
图49示出用于注册验证装置的一系列事务。在注册期间,在验证装置与安全交易服务器4732至4733中的一个之间共享密钥。密钥存储在客户端4700的安全存储装置4720和由安全交易服务器4732至4733使用的安全交易数据库4720内。在一个实施例中,密钥是由安全交易服务器4732至4733中的一个生成的对称密钥。然而,在下文论述的另一个实施例中,可使用不对称密钥。在该实施例中,公共密钥可由安全交易服务器4732至4733存储,并且第二相关私有密钥可存储在客户端上的安全存储装置4720中。此外,在一个实施例(也在下文中论述)中,密钥可在客户端4700上生成(例如,由验证装置或验证装置接口而不是安全交易服务器4732至4733生成)。Figure 49 illustrates a series of transactions for registering an authentication device. During registration, a key is shared between the authentication device and one of the secure transaction servers 4732-4733. The key is stored in secure storage 4720 on the client 4700 and in a secure transaction database 4720 used by the secure transaction servers 4732-4733. In one embodiment, the key is a symmetric key generated by one of the secure transaction servers 4732-4733. 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 servers 4732-4733, and a second, related private key may be stored in secure storage 4720 on the client. Furthermore, in one embodiment (also discussed below), the key may be generated on the client 4700 (e.g., by the authentication device or authentication device interface rather than by the secure transaction servers 4732-4733).
安全密钥预置协议(诸如动态对称密钥预置协议(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.
转到图49所示的具体细节,一旦用户登记或用户验证完成,服务器4730便生成随机生成的质询(例如,密码随机数),客户端必须在装置注册期间呈现此质询。该随机质询可在有限时间段内有效。安全交易插件检测随机质询并将其转发到安全交易服务4701。作为响应,安全交易服务发起与服务器4730的带外会话(例如,带外事务),并使用密钥供应协议与服务器4730通信。服务器4730使用用户名定位用户,验证随机质询,在已经发送装置的验证代码的情况下验证该验证代码,并且在安全交易数据库4720中为用户创建新条目。其还可生成密钥,将密钥写入到数据库4720,并使用密钥预置协议将密钥发送回到安全交易服务4701。一旦完成,验证装置与服务器4730便在使用对称密钥的情况下共享相同密钥,或者在使用不对称密钥的情况下共享不同密钥。Turning to the specific details shown in FIG49 , once user registration or user verification is complete, server 4730 generates a randomly generated challenge (e.g., a cryptographic random number), which 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 4701. In response, secure transaction service initiates an out-of-band session (e.g., an out-of-band transaction) with server 4730 and communicates with server 4730 using a key provisioning protocol. Server 4730 locates the user using the username, verifies the random challenge, verifies the device's verification code if it has already been sent, and creates a new entry for the user in secure transaction database 4720. It also generates a key, writes the key to database 4720, and sends the key back to secure transaction service 4701 using a key provisioning protocol. Once completed, the authenticating device and server 4730 share the same key if symmetric keys are used, or different keys if asymmetric keys are used.
图50示出用于向注册的验证装置验证用户的一系列事务。一旦装置注册完成,服务器4730便将接受由本地验证装置生成的令牌作为有效验证令牌。Figure 50 shows a series of transactions for authenticating a user to a registered authentication device.Once device registration is complete, server 4730 will accept the token generated by the local authentication device as a valid authentication token.
转到图50所示的具体细节,该图示出基于浏览器的具体实施,用户在浏览器4704中输入服务器4730的统一资源定位符(URL)。在使用独立应用程序或移动装置应用程序(而非浏览器)的具体实施中,用户可输入网络服务的网络地址,或者应用程序或移动装置应用程序可自动尝试连接到该网络地址的网络服务。50 , which illustrates a browser-based implementation, a user enters the uniform resource locator (URL) of a server 4730 into a browser 4704. In an implementation using a stand-alone application or mobile device application (rather than a browser), the user may enter the network address of the web service, or the application or mobile device application may automatically attempt to connect to the web service at the network address.
对于基于浏览器的具体实施,网站在HTML页面中嵌入对已注册装置的查询。这可以在HTML页面中嵌入查询之外的许多方式进行,诸如通过Javascript或使用HTTP标头。安全交易插件4705接收URL并将其发送到安全交易服务4701,安全交易服务4701搜索安全存储装置4720(如所论述,其包括验证装置和用户信息的数据库)并确定是否有用户在该URL内登记。如果是,则安全交易服务4701将与该URL相关联的已预置装置列表发送到安全交易插件4705。安全交易插件接着调用已注册的JavaScript API并将此信息传递到服务器4730(例如,网站)。服务器4730从所发送的装置列表选择恰当的装置,生成随机质询,并将装置信息和参数发送回到客户端。网站显示对应的用户界面并要求用户进行验证。用户接着提供所要求的验证措施(例如,在指纹读取器上轻扫手指、说话以进行声音识别等)。安全交易服务4701识别用户(对于不支持存储用户的装置,可跳过此步骤),从数据库获得用户名,使用密钥生成验证令牌,并且经由安全交易插件将该信息发送到网站。服务器4730从安全交易数据库4720识别用户,并且通过在服务器4730上生成相同令牌(例如,使用其密钥复本)来验证令牌。一旦验证,验证过程便完成。For a browser-based implementation, the website embeds a query for registered devices in an HTML page. This can be done in many ways besides embedding the query in the HTML page, such as through JavaScript or using HTTP headers. Secure transaction plugin 4705 receives the URL and sends it to secure transaction service 4701. Secure transaction service 4701 searches secure storage 4720 (which, as discussed, includes a database of authenticated devices and user information) and determines whether a user is registered at the URL. If so, secure transaction service 4701 sends a list of pre-configured devices associated with the URL to secure transaction plugin 4705. The secure transaction plugin then calls a registered JavaScript API and passes this information to server 4730 (e.g., a website). Server 4730 selects the appropriate device from the sent device list, generates a random challenge, and sends the device information and parameters back to the client. The website displays the corresponding user interface and requests user authentication. The user then provides the required authentication measure (e.g., swiping a finger on a fingerprint reader, speaking for voice recognition, etc.). Secure transaction service 4701 identifies the user (this step can be skipped for devices that do not support storing user names), obtains the username from the database, generates a verification token using the key, and sends this information to the website via the secure transaction plugin. Server 4730 identifies the user from secure transaction database 4720 and verifies the token by generating the same token on server 4730 (e.g., using a copy of its key). Once verified, the verification process is complete.
图51示出用于基于浏览器的具体实施的在验证之后的安全交易。此安全交易被设计为为某些类型的交易(例如,金融交易)提供更强安全性。在图示实施例中,用户在进行交易之前确认每个交易。使用图示技术,用户确认他/她想要进行什么交易并且进行他/她所看见的在GUI中显示的确切内容。换句话讲,该实施例确保“中间人”无法修改交易文本来进行用户没有确认的交易。FIG51 illustrates a secure transaction after verification for a browser-based implementation. This secure transaction 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 proceeding. Using the illustrated technique, the user confirms what transaction they wish to conduct and proceeds with the transaction exactly as they see it displayed in the GUI. In other words, this embodiment ensures that a "middleman" cannot modify the transaction text to conduct a transaction without the user's confirmation.
在一个实施例中,安全交易插件4705在浏览器环境中显示窗口5101以展示交易细节。安全交易服务器4701周期性地(例如,以随机时间间隔)验证窗口中所示的文本没有正被任何人篡改。In one embodiment, the secure transaction plug-in 4705 displays a window 5101 in the browser environment to show the transaction details. The secure transaction server 4701 periodically (e.g., at random time intervals) verifies that the text shown in the window is not being tampered with by anyone.
以下例子将帮助突出显示该实施例的操作。用户从商家网站选择商品并选择“结账”。商家网站将交易发送到服务提供商(例如,PayPal),该服务提供商具有实施本文所述的本发明的一个或多个实施例的安全交易服务器4732至4733。商家网站验证用户并完成交易。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 4732-4733 that implement one or more embodiments of the present invention described herein. The merchant website authenticates the user and completes the transaction.
安全交易服务器4732至4733接收交易细节(TD),并且将“安全交易”请求放在HTML页面中并发送到客户端4700。安全交易请求包括交易细节和随机质询(例如,随机数)。安全交易插件4705检测对交易确认消息的请求并将所有数据转发到安全交易服务4701。在不使用浏览器或插件的实施例中,可将该信息直接从安全交易服务器发送到客户端4700上的安全交易服务。Secure transaction servers 4732-4733 receive the transaction details (TD) and place a "secure transaction" request in an HTML page and send it to client 4700. The secure transaction request includes the transaction details and a random challenge (e.g., a random number). Secure transaction plug-in 4705 detects the request for a transaction confirmation message and forwards all data to secure transaction service 4701. 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 4700.
对于基于浏览器的具体实施,安全交易插件4705向用户显示具有交易细节的窗口5101(在浏览器环境中)并要求用户提供验证以确认交易。在不使用浏览器或插件的实施例中,安全交易服务4701或应用程序4754可显示窗口5101。安全交易服务4701启动计时器并验证正向用户显示的窗口5101的内容。可随机选择验证周期。安全交易服务4701确保用户在窗口5101中看见有效交易细节。如果它检测到内容已被篡改,则其阻止生成确认令牌。For browser-based implementations, secure transaction plug-in 4705 displays window 5101 with transaction details to the user (in the browser environment) and asks the user to provide verification to confirm the transaction. In embodiments that do not use a browser or plug-in, secure transaction service 4701 or application 4754 may display window 5101. Secure transaction service 4701 starts a timer and verifies the contents of window 5101 being displayed to the user. The verification period may be randomly selected. Secure transaction service 4701 ensures that the user sees valid transaction details in window 5101. If it detects that the content has been tampered with, it prevents the generation of a confirmation token.
在用户提供有效验证(例如,在指纹传感器上轻扫手指)之后,装置识别用户,并使用交易细节和随机质询生成令牌(密码签名)(即,根据交易细节和随机数计算得到令牌)。这允许安全交易服务器4732至4733确保尚未在服务器与客户端之间修改交易细节。安全交易服务4701将所生成的令牌和用户名发送到安全交易插件4705,安全交易插件4705将令牌转发到安全交易服务器4732至4733。安全交易服务器4732至4733使用用户名识别用户并验证令牌。如果验证成功,则向客户端发送确认消息并处理交易。After the user provides valid authentication (e.g., swiping a finger across a fingerprint sensor), the device identifies the user and generates a token (cryptographic signature) using the transaction details and a random challenge (i.e., the token is calculated based on the transaction details and the random number). This allows secure transaction servers 4732-4733 to ensure that the transaction details have not been modified between the server and the client. Secure transaction service 4701 sends the generated token and username to secure transaction plugin 4705, which forwards the token to secure transaction servers 4732-4733. Secure transaction servers 4732-4733 use the username to identify the user and verify the token. If verification is successful, a confirmation message is sent to the client and the transaction is processed.
用于确定客户端验证功能的安全查询策略的系统和方法System and method for determining a secure query policy for client authentication functionality
如所提及,本发明的一个实施例实施一种查询策略,其中安全交易服务器将服务器策略传输到客户端,该服务器策略指示服务器所接受的验证功能。客户端接着分析服务器策略以识别其支持以及/或者用户已经表明想要使用的验证功能的子组。客户端接着使用与所提供的策略匹配的验证令牌子组注册和/或验证用户。因此,对客户端的隐私具有较小影响,因为不需要客户端传输关于其验证功能的详尽信息(例如,所有其验证装置)或可用于唯一地识别客户端的其他信息。As mentioned, 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.
以举例而非限制的方式,客户端可包括许多验证功能,诸如指纹传感器、声音识别功能、面部识别功能、眼球/光学识别功能、可信平台模块(TPM)和智能卡等等。然而,出于隐私原因,用户可能不希望向请求服务器透露所有其功能的细节。因此,通过使用本文所述的技术,安全交易服务器可将服务器策略传输到客户端,该服务器策略指示其支持(例如)指纹、光学或智能卡验证。客户端可接着将服务器策略与其自己的验证功能进行比较,并选择一个或多个可用验证选项。By way of example and not limitation, a client may include a variety of authentication capabilities, such as a fingerprint sensor, voice recognition, facial recognition, eye/optical recognition, a Trusted Platform Module (TPM), and a smart card, among others. 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.
图52示出用于实施这些技术的客户端-服务器架构的一个实施例。如图所示,在客户端4700上实施的安全交易服务4701包括策略筛选器5201,其用于分析服务器4730所提供的策略并识别要用于注册和/或验证的验证功能子组。在一个实施例中,策略筛选器5201被实施为在安全交易服务4701的环境内执行的软件模块。然而,应该指出的是,策略筛选器5201可在同时仍符合本发明的基本原理的情况下以任何方式来实施,并且可包括软件、硬件、固件或其任何组合。Figure 52 illustrates one embodiment of a client-server architecture for implementing these techniques. As shown, secure transaction service 4701 implemented on client 4700 includes a policy filter 5201, which analyzes the policy provided by server 4730 and identifies a subset of authentication functions to be used for registration and/or authentication. In one embodiment, policy filter 5201 is implemented as a software module that executes within the context of secure transaction service 4701. However, it should be noted that policy filter 5201 can be implemented in any manner while still consistent with the underlying principles of the present invention and may include software, hardware, firmware, or any combination thereof.
图52中所示的特定具体实施包括安全交易插件4705,其用于使用先前论述的技术建立与安全企业或Web目的地4730(有时简称为“服务器4730”)的通信。例如,安全交易插件可识别由web服务器4731插入到HTML代码中的特定HTML标签。因此,在这个实施例中,将服务器策略提供到安全交易插件4705,安全交易插件4705将其转发到实施策略筛选器5201的安全交易服务4701。The particular implementation shown in FIG52 includes a secure transaction plug-in 4705 for establishing communication with a secure enterprise or web destination 4730 (sometimes referred to simply as "server 4730") using the techniques previously discussed. For example, the secure transaction plug-in can identify specific HTML tags inserted into the HTML code by the web server 4731. Thus, in this embodiment, the server policy is provided to the secure transaction plug-in 4705, which forwards it to the secure transaction service 4701, which implements the policy filter 5201.
策略筛选器5201可通过从客户端的安全存储区域5220读取功能来确定客户端验证功能。如先前论述,安全存储装置5220可包括所有客户端验证功能(例如,所有验证装置的识别代码)组成的存储库。如果用户已经向其验证装置登记了用户,则用户的登记数据被存储在安全存储装置5220内。如果客户端已经向服务器4730注册了验证装置,则安全存储装置还可存储与每个验证装置相关联的加密秘密密钥。The policy filter 5201 can determine the client authentication capabilities by reading the capabilities from the client's secure storage area 5220. As previously discussed, the secure storage 5220 can include a repository of all client authentication capabilities (e.g., identification codes for all authentication devices). If the user has registered the user with their authentication device, the user's registration data is stored in the secure storage 5220. If the client has registered authentication devices with the server 4730, the secure storage can also store the cryptographic secret keys associated with each authentication device.
通过使用从安全存储装置5220提取的验证数据和由服务器提供的策略,策略筛选器5201可接着识别要使用的验证功能子组。根据配置,策略筛选器5201可识别客户端和服务器两者所支持的验证功能的完整列表,或可识别完整列表的子组。例如,如果服务器支持验证功能A、B、C、D和E,并且客户端具有验证功能A、B、C、F和G,则策略筛选器5201可向服务器识别共同验证功能的整个子组:A、B和C。或者,如果需要较高隐私等级,如在图52中由用户偏好5230指示,则可向服务器识别更有限的验证功能子组。例如,用户可指示应仅向服务器识别单个共同验证功能(例如,A、B或C之一)。在一个实施例中,用户可针对客户端4700的所有验证功能确立优先化方案,并且策略筛选器可选择服务器和客户端两者共有的最高优先级的验证功能(或N个验证功能的优先化组)。Using the authentication data extracted from secure storage 5220 and the policy provided by the server, policy filter 5201 can then identify a subset of authentication functions to use. Depending on the configuration, policy filter 5201 can identify the full list of authentication functions supported by both the client and the server, or it can identify a subset of the full list. For example, if the server supports authentication functions A, B, C, D, and E, and the client has authentication functions A, B, C, F, and G, policy filter 5201 can identify the entire subset of common authentication functions: A, B, and C, to the server. Alternatively, if a higher level of privacy is desired, as indicated by user preferences 5230 in FIG. 52 , a more limited subset of authentication functions can be identified to the server. For example, the user can indicate that only a single common authentication function (e.g., one of A, B, or C) should be identified to the server. In one embodiment, the user can establish a prioritization scheme for all authentication functions of client 4700, and the policy filter can select the highest priority authentication function (or prioritized group of N authentication functions) shared by both the server and the client.
根据服务器4730发起了何种操作(注册还是验证),安全交易服务4730对筛选的验证装置子组(4710至4712)执行该操作,并经由安全交易插件4705将操作响应发送回到服务器4730,如图52所示。或者,在不依赖于Web浏览器的插件4705组件的实施例中,可将该信息直接从安全交易服务4701传递到服务器4730。Depending on which operation (registration or authentication) was initiated by the server 4730, the secure transaction service 4730 performs the operation on the selected authentication device subset (4710 to 4712) and sends the operation response back to the server 4730 via the secure transaction plug-in 4705, as shown in Figure 52. Alternatively, in an embodiment that does not rely on the plug-in 4705 component of the web browser, this information can be passed directly from the secure transaction service 4701 to the server 4730.
图53示出了事务图,其展示使用查询策略事务的一系列示例性注册的额外细节。在图示实施例中,用户先前没有向服务器4730注册装置。因此,在5301处,用户可输入用户名和密码作为初始的一次性验证步骤,在5302处,用户名和密码经由客户端浏览器4704转发到服务器4730。然而,应该指出的是,为了符合本发明的基本原理,不一定需要用户名和密码。FIG53 shows a transaction diagram illustrating additional details of an exemplary series of registrations using a query strategy transaction. In the illustrated embodiment, the user has not previously registered the device with server 4730. Therefore, at 5301, the user may enter a username and password as an initial, one-time verification step, which are forwarded to server 4730 via client browser 4704 at 5302. However, it should be noted that a username and password are not necessarily required in order to comply with the underlying principles of the present invention.
因为在5303处确定用户先前未以增强型安全性注册,所以在5304处,服务器4730将其服务器策略传输到客户端。如所提及,服务器策略可包括对服务器4730所支持的验证功能的指示。在图示例子中,经由事务5306将服务器策略传递到安全交易服务4701。Because it is determined at 5303 that the user has not previously registered with enhanced security, server 4730 transmits its server policy to the client at 5304. As mentioned, the server policy may include an indication of the authentication functionality supported by server 4730. In the illustrated example, the server policy is communicated to secure transaction service 4701 via transaction 5306.
在事务5307处,安全交易服务4701将服务器策略与客户端的功能(以及有可能其他信息,诸如装置优先级方案和/或用户偏好,如上所述)进行比较,以得到验证功能的筛选列表。装置的筛选列表(4702)接着生成密钥(5308和5309),并且接着将这些密钥的公共部分提供到安全交易服务4701,安全交易服务4701又将这些作为注册响应发送回到服务器4730。服务器证实验证装置并将公共密钥存储在安全交易数据库中。此处所采用的令牌证实是在注册期间确认验证装置身份的过程。其允许服务器以密码确保客户端所报告的装置实际上是其声称的那个装置。At transaction 5307, secure transaction service 4701 compares the server policy with the client's capabilities (and possibly other information, such as a device priority scheme and/or user preferences, as described above) to derive a filtered list of authentication capabilities. The filtered list of devices (4702) then generates keys (5308 and 5309) and then provides the public portion of these keys to secure transaction service 4701, which in turn sends these back to server 4730 as a registration response. The server authenticates the authentication device and stores the public key in the secure transaction database. Token authentication, as employed here, is the process of confirming the identity of the authentication device during registration. It allows the server to cryptographically ensure that the device reported by the client is actually the device it claims to be.
作为另外一种选择或除此之外,在5307处,可向用户提供审查列表和/或选择要与该特定服务器4730一起使用的特定验证功能的机会。例如,筛选列表可指示使用借助指纹扫描、面部识别和/或声音识别进行的验证的选项。用户可接着选择在向服务器4730验证时使用这些选项中的一个或多个。Alternatively or additionally, at 5307, the user may be provided with an opportunity to review the list and/or select a particular authentication function to be used with this particular server 4730. For example, the filter list may indicate options for using authentication using fingerprint scanning, facial recognition, and/or voice recognition. The user may then select one or more of these options to use when authenticating to the server 4730.
上文针对在客户端处筛选服务器策略所描述的技术可在上文所述的一系列事务的各种不同阶段(例如,在装置发现、装置注册、装置预置、用户验证等期间)实施。也就是说,本发明的基本原理不限于图53所陈述的该组特定事务和特定事务次序。The techniques described above for filtering server policies at the client can be implemented at various stages in the series of transactions described above (e.g., during device discovery, device registration, device provisioning, user authentication, etc.). That is, the underlying principles of the invention are not limited to the specific set of transactions and specific transaction order set forth in FIG.
此外,如先前提及,为了符合本发明的基本原理,不一定需要浏览器插件架构。对于不涉及浏览器或浏览器插件的架构(例如,诸如独立应用程序或移动装置应用程序),图53所示的事务图(以及本文所公开的事务图的其余部分)可简化,使得浏览器4704被移除,并且安全交易服务4701直接与服务器4730通信。Furthermore, as previously mentioned, a browser plug-in architecture is not necessarily required to comply with the underlying principles of the present invention. For architectures that do not involve a browser or browser plug-in (e.g., such as a standalone application or a mobile device application), the transaction diagram shown in FIG53 (and the rest of the transaction diagrams disclosed herein) can be simplified such that the browser 4704 is removed and the secure transaction service 4701 communicates directly with the server 4730.
用于有效地向多个验证装置登记、注册和验证的系统和方法System and method for efficient registration, enrollment, and authentication with multiple authentication devices
本发明的一个实施例能够同时登记、注册和验证多个装置,从而提升效率和用户体验。例如,不同于一次针对单个装置请求注册和验证,可将装置的列表发送到客户端。可接着在客户端上本地执行的一个操作或一系列顺序操作中将对称或不对称密钥注册到多个装置中。为了验证,可为给定交易同时选择若干个令牌/装置。One embodiment of the present invention enables simultaneous registration, enrollment, and verification of multiple devices, improving efficiency and user experience. For example, rather than requesting registration and verification for a single device at a time, a list of devices can be sent to the client. Symmetric or asymmetric keys can then be registered with multiple devices in a single operation or a series of sequential operations performed locally on the client. For verification purposes, several tokens/devices can be selected simultaneously for a given transaction.
图54示出用于实施这些技术的客户端-服务器架构的一个实施例。如图所示,在客户端4700上实施的安全交易服务4701包括多装置处理逻辑5401,该逻辑用于执行指定操作,诸如一次登记和注册多个装置而不需要在登记/注册每个装置时与服务器4730进行持续的来回通信。相似地,服务器4730包括多装置处理逻辑,该逻辑用于发布指向多个验证装置的命令。在一个实施例中,多装置处理逻辑5401被实施为在安全交易服务4701的环境内执行的软件模块。然而,应该指出的是,多装置处理逻辑5401可在同时仍符合本发明的基本原理的情况下以任何方式来实施,并且可包括软件、硬件或固件组件或者其任何组合。Figure 54 illustrates one embodiment of a client-server architecture for implementing these techniques. As shown, the secure transaction service 4701 implemented on the client 4700 includes multi-device processing logic 5401, which is used to perform specified operations, such as registering and registering multiple devices at once without the need for continuous back-and-forth communication with the server 4730 when registering/registering each device. Similarly, the server 4730 includes multi-device processing logic for issuing commands directed to multiple authentication devices. In one embodiment, the multi-device processing logic 5401 is implemented as a software module executed within the environment of the secure transaction service 4701. However, it should be noted that the multi-device processing logic 5401 can be implemented in any manner while still complying with the basic principles of the present invention and can include software, hardware or firmware components, or any combination thereof.
如在上文所述的实施例中,图54所示的特定具体实施包括安全交易插件4705,其用于建立与服务器4730(如所论述,其可包括网站服务器4731和安全交易服务器4732至4733)的通信。因此,服务器4730经由安全交易插件4705与安全交易服务4701通信。然而,如所提及,为了符合本发明的基本原理,不一定需要基于浏览器的插件架构。As in the embodiments described above, the particular implementation shown in Figure 54 includes a secure transaction plug-in 4705 for establishing communication with a server 4730 (which, as discussed, may include a website server 4731 and secure transaction servers 4732-4733). Thus, the server 4730 communicates with the secure transaction service 4701 via the secure transaction plug-in 4705. However, as mentioned, a browser-based plug-in architecture is not necessarily required in order to conform to the underlying principles of the present invention.
服务器4730上的多装置处理逻辑5402可传送待由客户端4700上的多装置处理逻辑5401执行的命令,该多装置处理逻辑5401对多个验证装置4710至4712执行操作。举例来说,多装置处理逻辑5402可生成要向N个验证装置中的每一个注册的N个密钥,并且接着将其连同注册N个装置的命令安全地传输到多装置处理逻辑5401。多装置处理逻辑5401可接着针对所有N个装置(例如,针对验证装置4710至4712)同时或在一系列顺序操作中执行注册而不与服务器进行进一步交互。可接着将单个响应发送到服务器4730以指示所有N个装置的注册完成。The multi-device processing logic 5402 on the server 4730 may transmit commands to be executed by the multi-device processing logic 5401 on the client 4700, which performs operations on multiple authentication devices 4710-4712. For example, the multi-device processing logic 5402 may generate N keys to be registered with each of the N authentication devices and then securely transmit them to the multi-device processing logic 5401 along with commands to register the N devices. The multi-device processing logic 5401 may then perform registration for all N devices (e.g., for the authentication devices 4710-4712) simultaneously or in a series of sequential operations without further interaction with the server. A single response may then be sent to the server 4730 to indicate that registration for all N devices is complete.
图55A至55C中示出一系列示例性多装置事务。图55A示出多装置登记过程,其可在不与服务器4730进行任何交互的情况下执行(例如,可在客户端上的安全交易服务4701的控制下执行向验证装置登记用户)。在替代实施例中,服务器4730可向客户端(未示出)传输请求以向N个装置登记用户。图55B至55C示出用于向服务器4730注册多个装置的两个不同实施例。A series of exemplary multi-device transactions are shown in Figures 55A through 55C. Figure 55A illustrates a multi-device registration process that can be performed without any interaction with server 4730 (e.g., registering a user with an authentication device can be performed under the control of secure transaction service 4701 on the client). In an alternative embodiment, server 4730 can transmit a request to a client (not shown) to register a user with N devices. Figures 55B through 55C illustrate two different embodiments for registering multiple devices with server 4730.
转到图55A中的登记过程,在5501处,用户表明想要向客户端上的N个验证装置(代表可用验证装置的全部或子组)登记。作为响应,在5502处,调用安全交易插件,并且在5503处,生成装置特定的图形用户界面(GUI)以使用户遍历该过程或向验证装置#1登记。在登记过程中,用户根据指示与安全交易插件交互(例如,通过将手指放置在指纹传感器上方、对着麦克风说话、用摄像头拍摄照片等等)。在一个实施例中,针对N个装置中的每一个执行登记,直到在5504处针对第N个装置的登记完成为止。可向用户呈现不同的装置特定脚本和/或用户界面以向每个单独验证装置登记用户。如先前所论述,在用户向每个装置登记时,可将用户登记数据存储在客户端4700上的安全存储装置720内并使其仅能够通过安全交易服务4701来访问。一旦针对所有N个装置的登记都完成,便可经由事务5504至5505向服务器4730发送通知。Turning to the registration process in Figure 55A, at 5501, the user indicates a desire to register with N authentication devices on the client (representing all or a subset of the available authentication devices). In response, at 5502, the secure transaction plugin is invoked, and at 5503, a device-specific graphical user interface (GUI) is generated to guide the user through the process or register with authentication device #1. During the registration process, the user interacts with the secure transaction plugin as instructed (e.g., by placing a finger over the fingerprint sensor, speaking into the microphone, taking a photo with the camera, etc.). In one embodiment, registration is performed for each of the N devices until registration for the Nth device is complete at 5504. The user may be presented with a different device-specific script and/or user interface to register the user with each individual authentication device. As previously discussed, as the user registers with each device, the user registration data may be stored in secure storage 720 on client 4700 and accessible only through secure transaction service 4701. Once registration for all N devices is complete, a notification may be sent to server 4730 via transactions 5504-5505.
不管如何执行登记,一旦完成,便可使用图55B中所示的事务图来向服务器4730注册N个装置。在5510处,服务器4730生成用户特定的随机质询,如先前所述,该随机质询可仅在有限时间窗内有效并且可包括随机生成代码,诸如密码随机数。在5511处,将随机质询连同向服务器4730注册N个验证装置的命令一起传输。在5512处,安全交易服务4701创建与服务器4730的安全连接,并将用于N个装置的识别数据连同随机质询一起传输。在一个实施例中,安全连接为HTTPS连接。然而,本发明的基本原理不限于任何特定安全连接类型。Regardless of how registration is performed, once completed, the transaction diagram shown in FIG55B can be used to register N devices with server 4730. At 5510, server 4730 generates a user-specific random challenge. As previously described, this random challenge may be valid only within a limited time window and may include a randomly generated code, such as a cryptographic nonce. At 5511, the random challenge is transmitted along with a command to register N authentication devices with server 4730. At 5512, secure transaction service 4701 establishes a secure connection with server 4730 and transmits identification data for the N devices along with the random challenge. In one embodiment, the secure connection is an HTTPS connection. However, the underlying principles of the present invention are not limited to any particular secure connection type.
在5513处,服务器4730证实N个装置,为N个装置中的每一个生成密钥,并且将这N个密钥经由安全连接发送回到安全交易服务。在一个实施例中,使用动态对称密钥预置协议(DSKPP)来经由安全连接与客户端交换密钥。然而,本发明的基本原理不限于任何特定密钥预置技术。或者,在不依赖于DSKPP协议的实施例中,可在每个验证装置中生成密钥并接着将其传输到服务器4730。At 5513, server 4730 authenticates the N devices, generates a key for each of the N devices, and sends these N keys back to the secure transaction service via the secure connection. In one embodiment, the Dynamic Symmetric Key Provisioning Protocol (DSKPP) is used to exchange keys with the client over the secure connection. However, the underlying principles of the present invention are not limited to any particular key provisioning technique. Alternatively, in an embodiment that does not rely on the DSKPP protocol, a key can be generated in each authentication device and then transmitted to server 4730.
在5514至5515处,安全交易服务的多装置处理逻辑将N个密钥中的每一个注册到N个装置中的每一个中。如先前所述,每个密钥可被存储在客户端上的安全存储装置720内并与所述安全存储装置内的相应装置相关联。一旦针对每个验证装置完成注册,便在5516处经由安全连接将通知发送到服务器。At 5514-5515, the multi-device processing logic of the secure transaction service registers each of the N keys with each of the N devices. As previously described, each key can be stored in the secure storage device 720 on the client and associated with the corresponding device in the secure storage device. Once the registration is completed for each verification device, a notification is sent to the server via a secure connection at 5516.
在一个实施例中,注册到每个验证装置中的密钥是对称密钥。因此,每个密钥的相同复本被存储在客户端上的安全存储装置720和服务器4730上的安全交易数据库4720中。在替代具体实施中,可生成不对称密钥对,其中一个密钥作为公共密钥维持在服务器上的安全交易数据库4720中,并且私有密钥存储在客户端的安全存储装置720中。然而,应该指出的是,本发明的基本原理不限于任何特定类型的加密密钥。In one embodiment, the keys registered with each authentication device are symmetric keys. Therefore, identical copies of each key are stored in the secure storage device 720 on the client and the secure transaction database 4720 on the server 4730. In an alternative implementation, an asymmetric key pair may be generated, with one key maintained as a public key in the secure transaction database 4720 on the server, and a private key stored in the secure storage device 720 on the client. However, it should be noted that the underlying principles of the present invention are not limited to any particular type of cryptographic key.
图55C中示出替代具体实施,其中在客户端而不是服务器4730上生成密钥。在该具体实施中,在5511处将对注册装置的请求连同随机质询一起接收之后,在1120处,安全交易服务4701的多装置处理逻辑针对N个装置中的每一个生成N个密钥。一旦生成,便在5513至5514处向N个装置中的每一个注册密钥并将注册内容存储在安全存储装置720内,如先前所述。一旦所有密钥都已注册,安全交易服务4701便在5515处将通知连同随机质询(用于验证客户端的身份)一起提供给服务器。服务器4730可接着将注册内容存储在安全交易数据库4720中,如上所述。FIG55C illustrates an alternative implementation in which keys are generated on the client rather than on the server 4730. In this implementation, after receiving a request to register a device along with a random challenge at 5511, the multi-device processing logic of the secure transaction service 4701 generates N keys for each of the N devices at 1120. Once generated, the keys are registered with each of the N devices at 5513-5514 and the registrations are stored in the secure storage 720, as previously described. Once all keys have been registered, the secure transaction service 4701 provides a notification to the server at 5515 along with a random challenge (for verifying the client's identity). The server 4730 may then store the registrations in the secure transaction database 4720, as described above.
用于在验证框架内处理随机质询的系统和方法System and method for processing random challenges within an authentication framework
本发明的一个实施例改进了由服务器生成和处理随机质询的方式。在一个实施例中,随机质询包括随机生成的代码,诸如密码随机数。在当前系统中,在服务器将随机质询传输到客户端之后,如果客户端未在指定超时时段内做出响应,则随机质询不再有效,并且客户端将响应于后续验证尝试接收到错误(例如,用户将在指纹读取器上轻扫手指并被拒绝)。One embodiment of the present invention improves the way random challenges are generated and processed by the server. In one embodiment, the random challenge includes a randomly generated code, such as a cryptographic nonce. In current systems, after the server transmits the random challenge to the client, if the client does not respond within a specified timeout period, the random challenge is no longer valid and the client will receive an error in response to subsequent authentication attempts (e.g., the user will swipe their finger on a fingerprint reader and be rejected).
在本发明的一个实施例中,客户端自动地检测质询是否已经过期并且透明地向服务器请求新质询(即,在没有用户干预的情况下)。服务器接着生成新的随机质询并将其传输到客户端,客户端可接着用其建立与服务器的安全通信。最终用户体验得以改善,因为用户不会接收到验证请求的错误或拒绝。In one embodiment of the present invention, the client automatically detects whether the challenge has expired and transparently requests a new challenge from the server (i.e., without user intervention). The server then generates a new random challenge and transmits it to the client, which the client can then use to establish secure communication with the server. The end-user experience is improved because the user does not receive an error or rejection of the authentication request.
图56A示出在注册过程的环境内使用的一个此类实施例,并且图56B示出在验证过程的环境内使用的实施例。然而,应该指出的是,可在除了图56A至56B所示的那些之外的其他环境中采用本发明的基本原理。例如,本文所述的技术可与从服务器向客户端传送时间敏感代码的任何过程一起使用。FIG56A shows one such embodiment used within the context of a registration process, and FIG56B shows an embodiment used within the context of a verification process. However, it should be noted that the underlying principles of the invention can be employed in other contexts than those shown in FIG56A through 56B. For example, the techniques described herein can be used with any process that transmits a time-sensitive code from a server to a client.
首先转到图56A,在5601处,服务器4730生成随机质询和对超时时段的指示。在一个实施例中,超时时段包括随机质询被视为有效所在的时间段。在超时时段已经过去之后,随机质询不再被服务器4730视为有效。在一个实施例中,超时时段被简单地指定为随机质询将不再有效时的时间点。一旦达到这个时间点,随机质询便无效。在另一个实施例中,通过使用当前时戳(即,服务器4730生成随机质询的时间)和持续时间来指定超时时段。安全交易服务4701可接着通过将持续时间值相加到时戳来计算随机质询变无效时的时间点,从而计算出超时时间。然而,应该指出的是,本发明的基本原理不限于用于计算超时时段的任何特定技术。First, turning to Figure 56A, at 5601, the server 4730 generates a random challenge and an indication of a timeout period. In one embodiment, the timeout period includes the time period during which the random challenge is considered valid. After the timeout period has passed, the random challenge is no longer considered valid by the server 4730. In one embodiment, the timeout period is simply specified as the point in time when the random challenge will no longer be valid. Once this point in time is reached, the random challenge is invalid. In another embodiment, the timeout period is specified by using the current timestamp (i.e., the time when the server 4730 generates the random challenge) and the duration. The secure transaction service 4701 can then calculate the point in time when the random challenge becomes invalid by adding the duration value to the timestamp, thereby calculating the timeout period. However, it should be noted that the basic principles of the present invention are not limited to any specific technology for calculating the timeout period.
不管如何指定或计算超时时段,在5602处,都会将随机质询和超时指示传输到安全交易服务4701(在图示例子中经由浏览器4704和安全交易插件4705)。在5603处,安全交易服务4701基于从服务器4730发送的超时指示检测随机质询是否已经超时并且不再有效。举例来说,用户可能在完成一系列事务之前已经关闭了他/她的客户端机器或合上他/她的笔记本计算机的盖子。如果交易需要用户交互,则用户可能只是已经走开或忽略GUI内显示的消息。Regardless of how the timeout period is specified or calculated, at 5602, the random challenge and timeout indication are transmitted to the secure transaction service 4701 (in the illustrated example, via the browser 4704 and the secure transaction plug-in 4705). At 5603, the secure transaction service 4701 detects whether the random challenge has timed out and is no longer valid based on the timeout indication sent from the server 4730. For example, the user may have shut down their client machine or closed the lid of their laptop before completing a series of transactions. If the transaction requires user interaction, the user may have simply walked away or ignored the message displayed within the GUI.
在5604处,在检测到随机质询不再有效后,安全交易服务4701将对新的随机质询的请求传输到服务器4730(在图示例子中经由安全交易插件4705和浏览器4704)。在5605处,服务器4730生成新的随机质询和对超时时段的新指示。在一个实施例中,该超时时段与在操作5601中的相同或可被修改。例如,服务器4730可增加超时时段的持续时间以减少与客户端的数据流量,或减少持续时间以提高随机质询所提供的安全等级。在5606处,将新的随机质询和超时指示传输到安全交易服务4701。At 5604, upon detecting that the random challenge is no longer valid, secure transaction service 4701 transmits a request for a new random challenge to server 4730 (in the illustrated example, via secure transaction plugin 4705 and browser 4704). At 5605, server 4730 generates a new random challenge and a new indication of a timeout period. In one embodiment, the timeout period is the same as in operation 5601 or may be modified. For example, server 4730 may increase the duration of the timeout period to reduce data traffic with the client, or decrease the duration to increase the level of security provided by the random challenge. At 5606, the new random challenge and timeout indication are transmitted to secure transaction service 4701.
事务的剩余部分如先前所述那样发生。例如,安全交易服务在5607处开启直接通向服务器的安全连接,以便执行装置注册和密钥交换,如上文结合图49、图55B或图55C所论述。在5608处,服务器4730识别用户(例如,使用用户名或其他ID),证实验证装置,并为装置生成密钥。如所提及,该密钥可为对称密钥或不对称密钥。在5609处,经由安全连接将密钥传输到安全交易服务4701,并且在5610处,安全交易服务4701将密钥注册到验证装置中。在5611处,将指示注册已完成的通知传输到服务器4730。The remainder of the transaction occurs as previously described. For example, the secure transaction service opens a secure connection directly to the server at 5607 to perform device registration and key exchange, as discussed above in conjunction with Figures 49, 55B, or 55C. At 5608, server 4730 identifies the user (e.g., using a username or other ID), verifies the authentication device, and generates a key for the device. As mentioned, this key can be a symmetric key or an asymmetric key. At 5609, the key is transmitted to secure transaction service 4701 via the secure connection, and at 5610, secure transaction service 4701 registers the key with the authentication device. At 5611, a notification indicating that registration is complete is transmitted to server 4730.
因此,在图56A所示的实施例中,在服务器4730处生成用于装置注册的密钥,如同在图55B所示的实施例中一样。然而,本发明的基本原理还可在由客户端4700上的安全交易服务4701生成密钥的实施例(诸如上文结合图55C所述的实施例)中使用。Thus, in the embodiment shown in Figure 56A, keys for device registration are generated at server 4730, as in the embodiment shown in Figure 55B. However, the underlying principles of the present invention can also be used in embodiments where keys are generated by secure transaction service 4701 on client 4700, such as the embodiment described above in conjunction with Figure 55C.
图56B示出在验证过程的环境内实施的本发明的一个实施例。在5651处,用户将特定网站URL输入到浏览器4704中并被引导到企业/web目的地服务器4730内的web服务器4731,服务器4730包括安全交易服务器4732至4733。在5652处,将查询发送回到安全交易服务(经由浏览器和插件)以确定向该网站的URL注册哪个(哪些)装置。在5653处,安全交易服务4701查询客户端4700上的安全存储装置720以识别发送回到服务器4730的装置的列表。在5654处,服务器5654选择装置以用于验证,生成随机质询和超时指示,并且在5655处,将该信息发送回到安全交易服务4701。FIG56B illustrates one embodiment of the present invention implemented within the context of an authentication process. At 5651, a user enters a specific website URL into a browser 4704 and is directed to a web server 4731 within an enterprise/web destination server 4730, which includes secure transaction servers 4732-4733. At 5652, a query is sent back to the secure transaction service (via the browser and plug-in) to determine which device(s) are registered with the website's URL. At 5653, the secure transaction service 4701 queries the secure storage 720 on the client 4700 to identify a list of devices that is sent back to the server 4730. At 5654, the server 5654 selects a device for authentication, generates a random challenge and a timeout indication, and at 5655, sends this information back to the secure transaction service 4701.
在5656处,安全交易服务5656自动检测在达到超时时段的末尾时随机质询不再有效。如上所述,可采用各种不同的技术来指示和检测超时时段的结束(参见图56A和相关联文本)。在检测到随机质询过期后,在5657处,安全交易服务4701透明地(即,在没有用户干预的情况下)通知服务器4730并请求新的随机质询。作为响应,在5658处,服务器4730生成新的随机质询和对超时时段的新指示。如所提及,新的超时时段可与先前发送到客户端的超时时段相同或可被修改。在任一种情况下,在5659处,将新的随机质询和超时指示发送到安全交易服务4701。At 5656, the secure transaction service 5656 automatically detects that the random challenge is no longer valid when the end of the timeout period is reached. As described above, a variety of different techniques can be used to indicate and detect the end of the timeout period (see Figure 56A and associated text). After detecting that the random challenge has expired, at 5657, the secure transaction service 4701 transparently (i.e., without user intervention) notifies the server 4730 and requests a new random challenge. In response, at 5658, the server 4730 generates a new random challenge and a new indication of the timeout period. As mentioned, the new timeout period can be the same as the timeout period previously sent to the client or can be modified. In either case, at 5659, the new random challenge and timeout indication are sent to the secure transaction service 4701.
图56B所示的事务图的剩余部分以与如上所述基本相同的方式进行操作(例如,参见图50)。例如,在5660处,显示验证用户界面(例如,引导用户在指纹传感器上轻扫手指),并且在5661处,用户提供验证(例如,在指纹扫描器上轻扫手指)。在5662处,安全交易服务验证用户的身份(例如,将从用户收集的验证数据与存储在安全存储装置720中的数据进行比较)并使用与验证装置相关联的密钥来加密随机质询。在5663处,将用户名(或其他ID代码)和加密随机质询发送到服务器4730。最后,在5664处,服务器4730使用用户名(或其他ID代码)在安全交易数据库4720内识别用户,并且使用存储在安全交易数据库4720中的密钥解密/验证随机质询以完成验证过程。The remainder of the transaction diagram shown in FIG56B operates in substantially the same manner as described above (e.g., see FIG50 ). For example, at 5660, an authentication user interface is displayed (e.g., directing the user to swipe a finger across a fingerprint sensor), and at 5661, the user provides authentication (e.g., swiping a finger across a fingerprint scanner). At 5662, the secure transaction service verifies the user's identity (e.g., comparing authentication data collected from the user with data stored in secure storage device 720) and encrypts a random challenge using a key associated with the authentication device. At 5663, the username (or other ID code) and the encrypted random challenge are sent to server 4730. Finally, at 5664, server 4730 uses the username (or other ID code) to identify the user within secure transaction database 4720 and decrypts/verifies the random challenge using a key stored in secure transaction database 4720 to complete the authentication process.
用于在验证框架内实施隐私类别的系统和方法Systems and methods for implementing privacy categories within an authentication framework
在一个实施例中,最终用户可预先定义、选择以及/或者修改多个隐私保护类别。可基于能够使用透露的信息识别出客户端的概率来定义隐私类别。在具有相对较高隐私等级的隐私类别,透露关于客户端装置的相对较少信息来执行本文所述的验证技术。在一个实施例中,用户可选择公开在与不同服务器通信时可能的最少量的信息(即,可选择对每个网站或网络服务具有允许的最低隐私影响的交易)。In one embodiment, an end user can pre-define, select, and/or modify multiple privacy protection categories. The privacy categories can be defined based on the probability that the client can be identified using the disclosed information. In privacy categories with relatively high privacy levels, relatively little information about the client device is disclosed to perform the authentication techniques described herein. In one embodiment, the user can choose to disclose the least amount of information possible when communicating with different servers (i.e., can select transactions with the lowest privacy impact allowed for each website or network service).
图57示出用于实施隐私类别的高级架构。如图所示,该实施例的安全交易服务4701包括隐私管理逻辑5701,其用于分析从服务器4730接收的对客户端信息(诸如与验证装置有关的信息)的查询,响应于此类查询实施隐私策略,并且生成响应,该响应包含基于使用中的特定隐私类别来收集的客户端信息。在一个实施例中,隐私管理模块5701被实施为在安全交易服务4701的环境内执行的软件模块。然而,应该指出的是,隐私管理模块5701可在同时仍符合本发明的基本原理的情况下以任何方式来实施,并且可包括软件、硬件、固件或其任何组合。Figure 57 illustrates a high-level architecture for implementing privacy categories. As shown, the secure transaction service 4701 of this embodiment includes privacy management logic 5701, which is used to analyze queries for client information (such as information related to authentication devices) received from the server 4730, implement privacy policies in response to such queries, and generate responses containing client information collected based on the specific privacy categories in use. In one embodiment, the privacy management module 5701 is implemented as a software module that executes within the environment of the secure transaction service 4701. However, it should be noted that the privacy management module 5701 can be implemented in any manner while still consistent with the basic principles of the present invention and can include software, hardware, firmware, or any combination thereof.
隐私管理逻辑5701所利用的隐私类别可被预先指定并存储在客户端4700上(例如,存储在安全存储装置5720内)。在一个实施例中,定义了三个隐私类别:高隐私影响、中隐私影响和低隐私影响。可基于透露的信息能够用于唯一地识别用户/客户端的概率来定义每个隐私类别。例如,针对低隐私影响交易透露的信息可导致经由因特网唯一地识别用户或机器的概率为10%;中隐私影响交易可导致唯一地识别用户或机器的概率为50%;并且高隐私影响交易可导致唯一地识别用户或机器的概率为100%。可在同时仍符合本发明的基本原理的情况下定义各种其他隐私类别等级。The privacy categories utilized by the privacy management logic 5701 can be pre-specified and stored on the client 4700 (e.g., within the secure storage device 5720). In one embodiment, three privacy categories are defined: high privacy impact, medium privacy impact, and low privacy impact. Each privacy category can be defined based on the probability that the disclosed information can be used to uniquely identify the user/client. For example, the information disclosed for a low privacy impact transaction may result in a 10% probability of uniquely identifying the user or machine via the Internet; a medium privacy impact transaction may result in a 50% probability of uniquely identifying the user or machine; and a high privacy impact transaction may result in a 100% probability of uniquely identifying the user or machine. Various other privacy category levels can be defined while still consistent with the underlying principles of the present invention.
在一个实施例中,每个依赖方(例如,每个网站4731或服务4751)可指定所需要的隐私类别或其他隐私阈值。例如,需要高度安全等级的网站和服务可仅允许根据高隐私影响类别的通信,而其他网站/服务可准许使用中隐私影响类别或低隐私影响类别的交互。在一个实施例中,从服务器4730发送的对客户端信息的查询包括指定应检索哪个隐私类别的信息(即,低、中、高)的属性。因此,隐私管理逻辑5701将针对每个依赖方存储最高批准隐私类别的信息。在一个实施例中,每当依赖方要求属于比已批准的隐私类别高的隐私类别的信息时,将提示用户针对该依赖方永久性地批准(或拒绝)此新的隐私类别。响应于用户批准,隐私管理逻辑可存储依赖方(例如,经由URL所识别)与新隐私类别之间的新关联性。In one embodiment, each relying party (e.g., each website 4731 or service 4751) can specify a desired privacy category or other privacy threshold. For example, websites and services requiring a high level of security may only allow communications according to the high privacy impact category, while other websites/services may permit interactions using the medium or low privacy impact categories. In one embodiment, a query for client information sent from server 4730 includes an attribute specifying which privacy category information should be retrieved (i.e., low, medium, or high). Thus, privacy management logic 5701 stores information of the highest approved privacy category for each relying party. In one embodiment, whenever a relying party requests information belonging to a higher privacy category than the one already approved, the user is prompted to permanently approve (or deny) this new privacy category for that relying party. In response to user approval, privacy management logic may store a new association between the relying party (e.g., identified via a URL) and the new privacy category.
尽管在图57中为简单起见将用户偏好5730直接应用于隐私管理逻辑,但应该指出的是,用户可经由基于浏览器的图形用户界面(未示出)来指定偏好。在这种情况下,用户将经由浏览器窗口输入隐私设置。安全交易插件4705将接着将新设置存储到隐私管理逻辑5701,或存储到隐私管理逻辑5701能够访问的配置数据文件。简而言之,本发明的基本原理不限于用于配置隐私管理逻辑的任何特定机制。Although user preferences 5730 are applied directly to the privacy management logic in FIG57 for simplicity, it should be noted that the user can specify preferences via a browser-based graphical user interface (not shown). In this case, the user would enter the privacy settings via a browser window. The secure transaction plug-in 4705 would then store the new settings in the privacy management logic 5701 or in a configuration data file accessible to the privacy management logic 5701. In short, the underlying principles of the present invention are not limited to any particular mechanism for configuring the privacy management logic.
可在各种隐私类别等级指定各种类型的客户端数据,包括(例如)机器型号识别符、客户端软件信息、客户端功能,以及与在客户端装置上配置的每个验证装置有关的各种等级的信息(例如,装置ID代码、供应商ID代码、装置类别ID等)。可收集这些信息的不同组合以确定上文指定的定义不同隐私类别的百分比。Various types of client data may be specified at various privacy category levels, including, for example, machine model identifiers, client software information, client capabilities, and various levels of information related to each authentication device configured on the client device (e.g., device ID code, vendor ID code, device category ID, etc.). Different combinations of this information may be collected to determine the percentages specified above that define the different privacy categories.
图58示出用于使用已定义的隐私类别向请求方提供信息的一系列事务。在5801处,服务器4730生成包含对客户端装置信息的查询的通知。在5802处,将查询发送到客户端并且最终由安全交易服务4701接收。在5803处,安全交易服务的隐私管理逻辑确定响应的隐私类别并且收集必要信息。如上文所述,可定义N个不同的隐私类别等级,并且安全交易服务4701可选择符合请求方的要求且同时透露尽可能少的关于客户端的信息的隐私类别等级。在5804处,将所收集的信息发送到服务器4730,并且在5805处,服务器将该信息用于与客户端的一个或多个后续交易。Figure 58 illustrates a series of transactions for providing information to a requester using defined privacy categories. At 5801, server 4730 generates a notification containing a query for client device information. At 5802, the query is sent to the client and ultimately received by secure transaction service 4701. At 5803, the privacy management logic of the secure transaction service determines the privacy category of the response and collects the necessary information. As described above, N different privacy category levels can be defined, and secure transaction service 4701 can select a privacy category level that meets the requester's requirements while revealing as little information about the client as possible. At 5804, the collected information is sent to server 4730, and at 5805, the server uses the information for one or more subsequent transactions with the client.
用于使用交易签署实施验证框架的系统和方法System and method for implementing a verification framework using transaction signing
本发明的一个实施例采用安全交易服务器上的交易签署,使得不需要在服务器上维持任何交易状态就能维持与客户端的会话。具体地讲,可将诸如交易文本等交易细节发送到由服务器签署的客户端。服务器可接着通过验证签名来验证由客户端接收的已签署的交易响应是否有效。服务器不需要永久性地存储交易内容,因为对于大量客户端而言,这样做会消耗大量存储空间并且会导致对服务器的拒绝服务类型攻击的可能性。One embodiment of the present invention utilizes transaction signing on a secure transaction server, enabling the maintenance of client sessions without maintaining any transaction state on the server. Specifically, transaction details, such as transaction text, can be sent to the client, 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 this would consume significant storage space for a large number of clients and could lead to the possibility of denial-of-service attacks on the server.
图59中示出本发明的一个实施例,其示出网站或其他网络服务(5901)发起与客户端4700的交易。例如,用户可能已在网站上选择了要购买的商品,并且可能已准备好结账付款。在图示例子中,网站或服务5901将交易切换到安全交易服务器5902,安全交易服务器5902包括用于生成和验证签名(如本文所述)的签名处理逻辑5903和用于执行客户端验证(例如,使用先前所述的验证技术)的验证逻辑5904。One embodiment of the present invention is illustrated in Figure 59, which shows a website or other network service (5901) initiating a transaction with a client 4700. For example, a user may have selected an item to purchase on the website and may be ready to check out and pay. In the illustrated example, the website or service 5901 hands the transaction over to a secure transaction server 5902, which includes signature processing logic 5903 for generating and verifying signatures (as described herein) and authentication logic 5904 for performing client authentication (e.g., using the authentication techniques previously described).
在一个实施例中,从安全交易服务器5902发送到客户端4700的验证请求包括随机质询(诸如密码随机数)(如上所述)、交易细节(例如,为完成交易而呈现的特定文本)、和由签名处理逻辑5903使用私有密钥(仅安全交易服务器知道)在随机质询和交易细节上生成的签名。In one embodiment, the verification request sent from the secure transaction server 5902 to the client 4700 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 5903 using a private key (known only to the secure transaction server) on the random challenge and transaction details.
一旦客户端接收到以上信息,用户便可接收有关需要验证才能完成交易的指示。作为响应,用户可(例如)在指纹扫描器上轻扫手指,拍摄照片,对着麦克风说话,或执行针对给定交易所准许的任何其他类型的验证。在一个实施例中,一旦用户已经在客户端4700上成功验证,客户端便将以下各项传输回服务器:(1)随机质询和交易文本(两者均由服务器在先前提供给客户端),(2)证明用户成功地完成验证的验证数据,以及(3)签名。Once the client receives the above information, the user may receive an indication that authentication 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 authentication permitted for a given transaction. In one embodiment, once the user has successfully authenticated on the client 4700, the client transmits the following back to the server: (1) a random challenge and transaction text (both previously provided to the client by the server), (2) authentication data proving that the user successfully authenticated, and (3) a signature.
安全交易服务器5902上的验证模块5904可接着确认用户已经正确地验证,并且签名处理逻辑5903使用私有密钥在随机质询和交易文本上重新生成签名。如果该签名与客户端所发送的签名匹配,则服务器可验证交易文本与其最初从网站或服务5901接收时相同。这节约了存储和处理资源,因为不需要安全交易服务器5902将交易文本(或其他交易数据)永久性地存储在安全交易数据库4720内。The verification module 5904 on the secure transaction server 5902 can then confirm that the user has been properly authenticated, and the signature processing logic 5903 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 5901. This saves storage and processing resources because the secure transaction server 5902 does not need to permanently store the transaction text (or other transaction data) in the secure transaction database 4720.
示例性数据处理装置Exemplary data processing apparatus
图60是示出可在本发明的一些实施例中使用的示例性客户端和服务器的框图。应当理解,尽管图60示出计算机系统的各种组件,但其并非意图表示互连组件的任何特定架构或方式,因为此类细节与本发明并不密切相关。应当理解,具有更少组件或更多组件的其他计算机系统也可与本发明一起使用。FIG60 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 while FIG60 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.
如图60所示,计算机系统6000,其为一种形式的数据处理系统,包括总线6050,该总线与处理系统6020、电源6025、存储器6030和非易失性存储器6040(例如,硬盘驱动器、快闪存储器、相变存储器(PCM)等)耦接。总线6050可通过如本领域中熟知的各种桥接器、控制器和/或适配器来彼此连接。处理系统6020可从存储器6030和/或非易失性存储器6040检索指令,并执行这些指令以执行如上所述的操作。总线6050将以上组件互连在一起,并且还将那些组件互连到可选底座6060、显示控制器与显示装置6070、输入/输出装置6080(例如,NIC(网络接口卡)、光标控件(例如,鼠标、触摸屏、触摸板等)、键盘等)和可选无线收发器6090(例如,蓝牙、WiFi、红外等)。As shown in Figure 60, computer system 6000, which is a form of data processing system, includes a bus 6050, which is coupled to a processing system 6020, a power supply 6025, a memory 6030, and a non-volatile memory 6040 (e.g., a hard drive, flash memory, phase change memory (PCM), etc.). The bus 6050 can be connected to each other through various bridges, controllers, and/or adapters as are well known in the art. The processing system 6020 can retrieve instructions from the memory 6030 and/or the non-volatile memory 6040 and execute these instructions to perform the operations described above. The bus 6050 interconnects the above components together and also interconnects those components to an optional base 6060, a display controller and display device 6070, an input/output device 6080 (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 6090 (e.g., Bluetooth, WiFi, infrared, etc.).
图61是示出可在本发明的一些实施例中使用的示例性数据处理系统的框图。例如,数据处理系统6100可为手持式计算机、个人数字助理(PDA)、移动电话、便携式游戏系统、便携式媒体播放器、平板计算机或手持式计算装置(其可包括移动电话、媒体播放器和/或游戏系统)。又如,数据处理系统6100可为网络计算机或在另一个装置内的嵌入式处理装置。Figure 61 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 6100 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 6100 may be a network computer or an embedded processing device within another device.
根据本发明的一个实施例,数据处理系统6100的示例性架构可用于上文所述的移动装置。数据处理系统6100包括处理系统6120,其可包括一个或多个微处理器和/或集成电路上的系统。处理系统6120与存储器6110、电源6125(其包括一个或多个电池)、音频输入/输出6140、显示控制器与显示装置6160、可选输入/输出6150、输入装置6170和无线收发器6130耦接。应当理解,在本发明的某些实施例中,图61中未示出的其他组件也可为数据处理系统6100的一部分,并且在本发明的某些实施例中,可使用比图61所示更少的组件。另外,应当理解,图61中未示出的一个或多个总线可用于使如本领域中熟知的各种组件互连。According to one embodiment of the present invention, an exemplary architecture of a data processing system 6100 can be used for the mobile device described above. The data processing system 6100 includes a processing system 6120, which may include one or more microprocessors and/or systems on integrated circuits. The processing system 6120 is coupled to a memory 6110, a power supply 6125 (which includes one or more batteries), an audio input/output 6140, a display controller and a display device 6160, an optional input/output 6150, an input device 6170, and a wireless transceiver 6130. It should be understood that in certain embodiments of the present invention, other components not shown in Figure 61 may also be part of the data processing system 6100, and in certain embodiments of the present invention, fewer components than shown in Figure 61 may be used. In addition, it should be understood that one or more buses not shown in Figure 61 can be used to interconnect various components as known in the art.
存储器6110可存储数据和/或程序以供数据处理系统6100执行。音频输入/输出6140可包括麦克风和/或扬声器以(例如)播放音乐,以及/或者通过扬声器和麦克风提供电话功能。显示控制器与显示装置6160可包括图形用户界面(GUI)。无线(例如,RF)收发器6130(例如,WiFi收发器、红外收发器、蓝牙收发器、无线蜂窝电话收发器等)可用于与其他数据处理系统通信。所述一个或多个输入装置6170允许用户向系统提供输入。这些输入装置可为小键盘、键盘、触控面板、多点触控面板等。可选的其他输入/输出6150可为底座的连接器。The memory 6110 can store data and/or programs for execution by the data processing system 6100. The audio input/output 6140 may 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 6160 may include a graphical user interface (GUI). A wireless (e.g., RF) transceiver 6130 (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 6170 allow a user to provide input to the system. These input devices may be a keypad, a keyboard, a touch panel, a multi-touch panel, etc. Optional other input/output 6150 may 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 (8)
Applications Claiming Priority (15)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201361804568P | 2013-03-22 | 2013-03-22 | |
| US61/804,568 | 2013-03-22 | ||
| US14/066,384 | 2013-10-29 | ||
| US14/066,384 US9887983B2 (en) | 2013-10-29 | 2013-10-29 | Apparatus and method for implementing composite authenticators |
| US14/145,439 | 2013-12-31 | ||
| US14/145,607 | 2013-12-31 | ||
| US14/145,533 | 2013-12-31 | ||
| US14/145,466 US10706132B2 (en) | 2013-03-22 | 2013-12-31 | System and method for adaptive user authentication |
| US14/145,466 | 2013-12-31 | ||
| US14/145,439 US9396320B2 (en) | 2013-03-22 | 2013-12-31 | System and method for non-intrusive, privacy-preserving authentication |
| US14/145,533 US9305298B2 (en) | 2013-03-22 | 2013-12-31 | System and method for location-based authentication |
| US14/145,607 US9367676B2 (en) | 2013-03-22 | 2013-12-31 | System and method for confirming location using supplemental sensor and/or location data |
| US14/218,504 US10270748B2 (en) | 2013-03-22 | 2014-03-18 | Advanced authentication techniques and applications |
| US14/218,504 | 2014-03-18 | ||
| PCT/US2014/031344 WO2014153462A2 (en) | 2013-03-22 | 2014-03-20 | Advanced authentication techniques and applications |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| HK42021023700.4A Division HK40033287B (en) | 2013-03-22 | 2016-06-24 | Advanced authentication techniques and applications |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| HK42021023700.4A Addition HK40033287B (en) | 2013-03-22 | 2016-06-24 | Advanced authentication techniques and applications |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1219326A1 HK1219326A1 (en) | 2017-03-31 |
| HK1219326B true HK1219326B (en) | 2021-02-05 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7636476B2 (en) | Advanced authentication technology and its applications | |
| JP7603121B2 (en) | Secure Key Storage Extensions for Transaction Verification and Cryptocurrencies | |
| US11831409B2 (en) | System and method for binding verifiable claims | |
| US12126613B2 (en) | System and method for pre-registration of FIDO authenticators | |
| US10237070B2 (en) | System and method for sharing keys across authenticators | |
| US10091195B2 (en) | System and method for bootstrapping a user binding | |
| US10637853B2 (en) | Authentication techniques including speech and/or lip movement analysis | |
| US10769635B2 (en) | Authentication techniques including speech and/or lip movement analysis | |
| WO2018027148A1 (en) | Authentication techniques including speech and/or lip movement analysis | |
| US20250124438A1 (en) | System and method for speculative attestation and associated techniques | |
| HK1219326B (en) | Advanced authentication techniques and applications | |
| HK40033287A (en) | Advanced authentication techniques and applications |