Extending a secure key storage for transaction confirmation and cryptocurrency
11 claims: 1 independent, 10 dependent
- 1システムであって、生体認証入力、手動ユーザ入力を介して、及び/又はクライアント装置に関連する現在の状態を検出することによって、ユーザをセキュアに認証する前記クライアント装置上の認証部と、秘密鍵のセキュア記憶を維持するための鍵ストア回路及びロジックであって、 前記鍵ストア回路及びロジックは、 前記ユーザが前記認証部によって認証された状態で第1の秘密鍵を使用して 、前記認証部の1つ以上の属性及び入力データを含む デジタルオブジェクト 上に署名するための デジタル署名を計算 し 、 署名されるデジタルオブジェクトは前記第1の秘密鍵に対応する公開鍵を用いて信頼できる当事者によって検証可能である、 鍵ストア回路及びロジックと、を備える、システム。
- 2前記鍵ストア 回路及びロジック に統合され、前記デジタル署名を計算するために実行される差し込み可能なダイジェスト/ハッシュ回路/ロジックを更に備える、請求項1に記載のシステム。
- 3前記差し込み可能なダイジェスト/ハッシュ回路/ロジックが、 前記 入力データを指定の方法で前処理して、前記デジタルオブジェクトを生成するための前処理回路/ロジックを含む、請求項2に記載のシステム。
- 4前記ユーザからの認証を受信して前記デジタル署名を続行する前に、前記入力データに関連する有効情報をセキュアに表示するためのセキュアトランザクション回路/ロジックを更に備える、請求項3に記載のシステム。
- 5前記デジタルオブジェクトは前記認証部によって制御されない1つ以上のデータフィールドを含む、請求項1に記載のシステム。
- 6前記認証部によって制御されない1つ以上のデータフィールドは数でマークされ、データ構造が後に続く、請求項5に記載のシステム。
- 7前記信頼できる当事者は、いずれのエンティティが前記公開鍵と前記第1の秘密鍵のペアを生成するかを特定するためのものである、請求項1に記載のシステム。
- 8前記デジタル署名は前記ユーザを検証するためのユーザ検証方法の1つ以上の特性を示す、請求項1に記載のシステム。
- 9前記認証部の1つ以上の属性及び入力データはユーザによって確認された1つ以上のトランザクションテキスト、実際の個人識別番号(PIN)長及び前記認証部のファームウェアバージョンを含む、請求項1に記載のシステム。
- 10前記デジタルオブジェクトは前記信頼できる当事者によって検証されるべきビットコインのフォーマットされたメッセージを含む、請求項1に記載のシステム。
- 11前記署名されたデジタルオブジェクトは前記第1の秘密鍵とともに生成されたデジタル署名とともにブロックチェーンに追加されたブロックを含む、請求項1に記載のシステム。
Independent claims11
614 paragraphs in 2 sections, as filed
The present invention relates generally to the field of data processing systems, and more particularly to advanced user authentication techniques and related applications.
FIG. 1 illustrates an exemplary client 120 having a biometric authentication device 100. During normal operation, a biometric sensor 102 reads raw biometric data from a user (e.g., captures the user's fingerprint, records the user's voice, takes a snapshot of the user, etc.), and a feature extraction module 103 extracts specified characteristics of the raw biometric data (e.g., focuses on a particular region of the fingerprint, a particular facial feature, etc.). A matcher module 104 compares the extracted features 133 to biometric reference data 110 stored in a secure storage of 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 a user enrolls a fingerprint, voice sample, image, or other biometric data with the device 100. An application 105 may then use the score 135 to determine whether authentication was successful (e.g., whether the score is above a certain specified threshold).
The system is also designed to provide secure user authentication over a network using biometric sensors. In such a system, the score 135 and/or other authentication data generated by the application 105 may be transmitted over a network to authenticate the user by a remote server. For example, U.S. Patent Application Publication 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 "malware-in-the-browser" and "man-in-the-middle" attacks on transactions), and registration/management of client authentication tokens (e.g., fingerprint readers, facial recognition devices, smart cards, Trusted Platform Modules, etc.).
The assignee of the present patent application has developed various improvements to the authentication framework described in the '801 application. Some of these improvements are described in the following family of U.S. patent applications ("co-pending applications"), all of which were assigned to the assignee of the present application on December 29, 2012: 13/730,761, Query System and Method to Determine Authentication Capabilities; 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; 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.
Briefly, the co-pending application describes an authentication technique in which a user enrolls with a client biometric device to generate biometric template data (e.g., by finger swiping, snapping an image, recording a voice, etc.); registers the biometric device with one or more servers on a network (e.g., a website or other trusted party equipped with a secure transaction service as described in the co-pending application); and then authenticates with those servers using data exchanged during the enrollment process (e.g., a cryptographic key provisioned in the biometric device). Once authenticated, the user is permitted to perform one or more online transactions with the website or other trusted party. In the framework described in the co-pending application, sensitive information such as fingerprint data and other data that can be used to uniquely identify a user may be kept locally on the user's client device (e.g., a smartphone, notebook computer, etc.) to protect the user's privacy.
Authentication codes as described above require some form of user interaction, such as swiping a finger or entering a PIN. These "normal" authentication codes are intended to authenticate a user at a given point in time. Furthermore, "silent" authentication codes are also designed and available to authenticate a user's device (rather than the user) at a given point in time. These silent authentication codes can rely on information extracted from the user's device without user interaction (e.g., device ID transmission).
However, there are certain use cases where the explicit user interaction required presents too much friction (e.g., Near Field Communication (NFC) payments, frequently used applications that require authentication without being tied to a costly transaction), while "silent" authentication techniques such as device ID transmission do not provide sufficient certainty that the legitimate user remains in possession of the device.
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); and Koichiro Niinuma, Anil K. Jain, "Continuous User Authentication Using Temporal Information," Several "continuous" authentication methods have been proposed by the research community, such as BehavioSec, "Measuring FAR/FRR/EER in Continuous Authentication," Stockholm, Sweden (2009). While these methods generally provide a level of assurance that the legitimate user still owns the device without adding friction to the authentication process, they focus on a single modality (i.e., using a wearable token, gait recognition, face and clothing color recognition, and user keyboard input).
However, one problem that exists is that in some parts of the world, providing location data or other personal (e.g., face image, clothing color, gait or typing characteristics, ...) or environmental data (e.g., temperature, humidity, WLAN SSID, ...) directly to a trusted party to compensate for risk estimation that violates the user's privacy. Therefore, more advanced remote attestation techniques are needed that are non-invasive and adequately protect the end-user's privacy.
Furthermore, while the strength of current authentication methods (e.g., passwords, fingerprint authentication, etc.) remains fairly constant over time, the resulting risk changes based on the current environment in which authentication occurs (e.g., the device used, the network the device is connected to, etc.) It would be beneficial to select and/or combine authentication modalities based on the current detected risk.
Considering increasing the authentication assurance level, typical ways to increase the level of a given authentication method are to require a more complex password or to use a more accurate biometric authentication method such as fingerprint or face recognition. In practice, the authentication assurance level (or the transaction risk derived from it) also depends on other data such as whether the authentication was performed from the same device as before and whether the location of the authentication is realistically close to the location of the last successful authentication (e.g., an authentication at 1 pm in San Francisco and an authentication at 2 pm on the same day in Tokyo may not be realistic for one person).
Passwords are still the dominant and obvious authentication method. Unfortunately, they are easily attacked and these attacks scale well. Furthermore, entering passwords is tedious, especially on small devices such as smartphones. As a result, many users either do not use any password-based protection method at all or use trivial PIN codes to lock their mobile phones.
Some smartphones use fingerprint sensors to provide a more convenient method for authentication. The use of biometric modalities for authentication has been criticized for not being sufficiently spoof resistant to attacks and for potentially introducing privacy issues by not adequately protecting the biometric reference data.
Various "fusion" methods have been proposed to combine biometric modalities. Some of them address the usability issue by reducing the False Rejection Rate (FRR). Others address the security issue by reducing the False Acceptance Rate (FAR). These methods so far propose static fusion algorithms. Unfortunately, this approach still results in an assurance level that varies depending on the "other input" (as mentioned above).
For certain classes of transactions, the risk associated with the transaction may be closely related to the location where the transaction is taking place. For example, one may be advised to allow transactions that appear to originate from restricted countries, such as those listed in the U.S. Office of the Foreign Assets Control List (e.g., Cuba, Libya, North Korea, etc.). In other cases, it may be desirable to allow a transaction to proceed if stronger authentication mechanisms are used; for example, a transaction that takes place within a company's physical premises may require less authentication than one that takes place from a Starbucks located in a remote location where the company does not have operations.
However, reliable location data may not be readily available for a variety of reasons. For example, an end user's device may not have GPS capability, the user may be in a location where WiFi triangulation data is unavailable or unreliable, or the network provider may not support GPS or provide cell tower triangulation to augment WiFi triangulation. Other approaches to infer device location may not have a sufficient level of assurance to meet an organization's needs; for example, a reverse IP lookup to determine geographic location may not be granular enough or may be masked by proxies designed to mask the true network origin of the user's device.
In these cases, organizations seeking to assess the risk of a transaction may require additional data to provide them with additional assurance that an individual is located in a particular geographic area to drive authentication decisions.
Another challenge for organizations deploying authentication is matching the "strength" of the authentication mechanism to the inherent risk presented by a particular user's environment (location, device, software, operating system) and the demands made by the user or device and the organization's administrative policies (for access to restricted information or to perform certain operations).
Until now, organizations have had to rely on a fairly static response to the authentication needs of their users: they assess the risks that users face during operations they normally perform and the requirements of any applicable regulatory mandates, and then deploy an authentication solution to protect against the risks and achieve compliance. This typically requires organizations to deploy multiple authentication solutions to address the many different risks that their different users may face, which can be particularly costly and cumbersome to manage.
The technology described in the co-pending application provides an abstraction that allows organizations to identify existing capabilities on a user's device that can be used for authentication. This abstraction protects organizations from having to deploy a variety of different authentication solutions. However, organizations still need a way to invoke the "right" authentication mechanism when needed. Existing implementations do not provide any facility for organizations to describe what authentication mechanism is appropriate in a situation. As a result, organizations will likely need to codify their authentication policies in code , potentially fragile solutions that require code changes in the future to allow for the use of new authentication devices/tokens.
Electronic financial transactions today are primarily conducted over the World Wide Web using browser applications. Sites such as Amazon.com, Dell, and Walmart sell billions of dollars of goods through their online portals, and banks and brokerage firms allow their customers to transfer billions of dollars of funds from online accounts. One challenge with websites such as these is how to detect 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 the password through various techniques. Sometimes the password is weak in complexity and can be easily guessed or determined by brute force attacks. Other times, malware, worms or viruses can infect the user's computer. The password is then obtained by recording keystrokes or scanning memory or hard disk storage. If the actual device is stolen, the password can be recovered from data remaining in memory or storage. Once the password is compromised, criminals have the ability to access the account and withdraw or transfer funds.
To try to prevent damage caused by breaches of users' passwords, sites that handle financial transactions employ risk assessments in which a variety of metrics are used to determine whether the person initiating the transaction is actually the user who owns the account. Factors such as transaction time, transaction location, and transaction context are all good ways to assess whether a transaction poses a risk. For example, if a user does not normally have any activity on their account overnight, it would be unlikely that a transaction would be initiated between 3:00 AM and 3:00 PM. Similarly, if a user lives in the United States, but the transaction was initiated in South Korea, the difference in location would be a warning sign. Finally, if the amount being processed is significantly different in magnitude than normal, this is another signal of potential fraudulent activity.
Unfortunately, web browsers place very strict limitations on the information that websites can obtain about the client system. Because browsers expose the user's equipment to the outside (and possibly malicious) world, leaking more data than necessary is a unique security risk. Certainly, the time of the transaction, the location of the transaction (e.g., via the user's IP address), and the size of the transaction can be recorded. Websites currently use all of this data to determine whether a transaction is fraudulent. However, beyond these basic pieces of information provided by the browser, websites have no other information to utilize for risk assessment. Due to the limitations of the information that browsers can obtain, risk assessments of a user's transactions are not very accurate.
A better understanding of the present invention can be obtained from the following detailed description taken in conjunction with the following drawings.
A better understanding of the present invention can be obtained from the following detailed description taken in conjunction with the following drawings.
<figref num="1">1 illustrates an exemplary client having a biometric authentication device.</figref><figref num="2">1 illustrates one embodiment of a Non-Invasive Privacy-Preserving Authentication Apparatus (NIPPA).</figref><figref num="3">1 graphically illustrates operation of one embodiment of the present invention during a "legitimate user state" and the following legitimate user states:</figref><figref num="4">1 illustrates one embodiment of a method for non-invasive privacy-preserving authentication.</figref><figref num="5">1 illustrates a distance function used for location-based authentication in one embodiment.</figref><figref num="6">1 graphically illustrates the operation of one embodiment of the present invention using an expanded valid user status window.</figref><figref num="7">1 illustrates an adaptive authentication module according to one embodiment of the present invention.</figref><figref num="8">1 illustrates one embodiment of an adaptive authentication method.</figref><figref num="9">1 is a graphical illustration of adaptive authentication according to one embodiment.</figref><figref num="10">1 illustrates one embodiment of a compound authentication device having multiple components.</figref><figref num="11">1 illustrates one embodiment in which the two authentication devices share components.</figref><figref num="12">1 illustrates one embodiment of an authentication device that includes an authentication logic component for managing component authentication key (CAK) pairs for authenticating components.</figref><figref num="13">FIG. 2 is a transaction diagram illustrating one embodiment of authentication between two components.</figref><figref num="14">1 illustrates a static authentication device according to one embodiment of the present invention.</figref><figref num="15">1 illustrates a dynamic authentication device according to one embodiment of the present invention.</figref><figref num="16">1 illustrates an exemplary system architecture in which embodiments of the present invention may be implemented.</figref><figref num="17">1 illustrates one embodiment of a system for implementing location-aware application of authentication policies.</figref><figref num="18">1 illustrates an exemplary set of authentication policy rules.</figref><figref num="19">1 illustrates a method according to one embodiment of the present invention.</figref><figref num="20">1 illustrates one embodiment of the present invention in which location is determined or confirmed by the proximity of other peers or network devices.</figref><figref num="21">1 illustrates one embodiment of an authentication system using environmental sensors.</figref><figref num="22">1 illustrates one embodiment of an authentication method using environmental sensors.</figref><figref num="23">1 illustrates one embodiment of a system for adaptively applying authentication policies.</figref><figref num="24">1 illustrates one embodiment of a method for adaptively applying authentication policies.</figref><figref num="25">1 illustrates an exemplary client having a biometric authentication device.</figref><figref num="26A">1 illustrates one embodiment of an authentication engine including an eye tracking module and a face recognition module.</figref><figref num="26B">1 illustrates one embodiment of an authentication engine that includes a speech recognition module and a lip movement analysis module in combination with an eye tracking module and a face recognition module.</figref><figref num="27">1 illustrates an exemplary heatmap for a web page used in one embodiment of the present invention.</figref><figref num="28A">Illustrated are exemplary text, graphics, photos, videos, blank areas and other content that can be displayed to an end user.</figref><figref num="28B">Illustrated are exemplary text, graphics, photos, videos, blank areas and other content that can be displayed to an end user.</figref><figref num="29A">1 illustrates an embodiment of a method for performing eye tracking and face recognition based authentication as well as voice recognition and lip movement analysis authentication.</figref><figref num="29B">1 illustrates an embodiment of a method for performing eye tracking and face recognition based authentication as well as voice recognition and lip movement analysis authentication.</figref><figref num="30">1 illustrates different architectural configurations in which embodiments of the present invention may be implemented.</figref><figref num="31">1 illustrates one embodiment of a client architecture including a client risk assessment agent.</figref><figref num="32">1 illustrates exemplary types of client configuration data used by a client risk assessment agent.</figref><figref num="33">1 illustrates one embodiment of a method for performing client risk assessment during authentication.</figref><figref num="34">1 illustrates one embodiment of a client performing a secure transaction with a local device.</figref><figref num="35">1 illustrates one embodiment of a client architecture for performing secure transactions with a local device.</figref><figref num="36">1 illustrates one embodiment of a method for performing a secure transaction with a local device.</figref><figref num="37">1 illustrates one embodiment of a system for user verification of online transactions.</figref><figref num="38">1 illustrates details of one embodiment of a client for use in a system for user validation of online transactions.</figref><figref num="39">1 illustrates one embodiment of a method for user verification of an online transaction.</figref><figref num="40">1 illustrates one embodiment of a system for delegating trust from a trusted client device to a new client device.</figref><figref num="41">1 illustrates additional details of one embodiment of a system for delegating trust from a trusted client device to a new client device.</figref><figref num="42">1 illustrates one embodiment of a method for delegating trust from a trusted client device to a new client device.</figref><figref num="43">1 illustrates one embodiment of a system for synchronizing private data between devices.</figref><figref num="44">1 illustrates one embodiment of a method for adding a device to a trust circle.</figref><figref num="45">1 illustrates one embodiment of a method for synchronizing data between devices.</figref><figref num="46A">1 illustrates different exemplary architectural configurations in which embodiments of the present invention may be implemented.</figref><figref num="46B">1 illustrates different exemplary architectural configurations in which embodiments of the present invention may be implemented.</figref><figref num="47">FIG. 2 is a transaction diagram illustrating how an authenticator for a client device can be discovered.</figref><figref num="48">FIG. 2 is a transaction diagram showing how a user can register with an authentication device.</figref><figref num="49">FIG. 2 is a transaction diagram illustrating how a key is registered with an authentication device.</figref><figref num="50">FIG. 2 is a transaction diagram showing how user authentication can be implemented within an authentication framework.</figref><figref num="51">FIG. 2 is a transaction diagram illustrating how transaction details can be verified.</figref><figref num="52">1 illustrates an implemented query policy filter according to one embodiment of the present invention.</figref><figref num="53">FIG. 4 is a transaction diagram illustrating how a query policy registration operation is implemented in one embodiment of the invention.</figref><figref num="54">1 illustrates one embodiment of an architecture for implementing multiple authentication device processing.</figref><figref num="55A">1 illustrates three embodiments of the present invention for handling multiple authentication devices.</figref><figref num="55B">1 illustrates three embodiments of the present invention for handling multiple authentication devices.</figref><figref num="55C">1 illustrates three embodiments of the present invention for handling multiple authentication devices.</figref><figref num="56A">1 illustrates a transaction diagram for detecting and responding to a random challenge timeout.</figref><figref num="56B">1 illustrates a transaction diagram for detecting and responding to a random challenge timeout.</figref><figref num="57">1 illustrates an architecture for implementing privacy classes according to one embodiment of the present invention.</figref><figref num="58">FIG. 2 is a transaction diagram for implementing privacy classes according to one embodiment of the present invention.</figref><figref num="59">1 illustrates one embodiment of an architecture for using signatures for authentication and transactions.</figref><figref num="60">1 illustrates an exemplary embodiment of a computer system for implementing embodiments of the present invention.</figref><figref num="61">1 illustrates an exemplary embodiment of a computer system for implementing embodiments of the present invention.</figref><figref num="62">1 illustrates one embodiment in which metadata is used by a trusted party to authenticate a client.</figref><figref num="63">1 illustrates an exemplary architecture including a key master and an authenticator.</figref><figref num="64">1 illustrates another embodiment of an architecture for processing Bitcoin formatted messages.</figref><figref num="65">1 illustrates one embodiment for storing and processing virtual application identities and/or trusted party identities.</figref><figref num="66">1 illustrates one embodiment of an architecture for encrypting and generating proof data for blocks in a blockchain.</figref><figref num="67">1 illustrates a system according to one embodiment of the present invention.</figref><figref num="68">1 illustrates a system on a chip (SoC) according to one embodiment.</figref>
Described below are embodiments of an apparatus, method, and machine-readable medium for implementing advanced authentication techniques and related applications. Throughout the description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to those skilled in the art that the present invention may 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 in order to avoid obscuring the underlying principles of the present invention.
The embodiments of the invention discussed below involve client devices equipped with authentication capabilities such as biometric devices or PIN entry. These devices may be referred to herein as "tokens," "authentication devices," or "authenticators." Certain 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), while 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.
In a mobile biometric implementation, the biometric device may be remote from the trusted party. As used herein, the term "remote" means that the biometric device is not part of the security boundary of the computer to which it is communicatively coupled (e.g., not embedded in the same physical enclosure as the trusted party computer). As an example, the biometric device may be coupled to the trusted 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 trusted party may have no way of knowing if the device is one that is authenticated by the trusted party (e.g., one that provides an acceptable level of authentication and integrity protection) and/or if a hacker has compromised the biometric device. The degree of trust in a biometric device depends on the particular implementation of the device.
The term "local" is used herein to mean that the user is completing a transaction at a particular location, such as an automated teller machine (ATM) or point of sale (POS) retail checkout location. However, as described below, the authentication techniques used to authenticate the user may include a non-location component, such as communication over a network with a remote server and/or other data processing device. Additionally, while specific embodiments are described herein (such as an ATM or retail store), it should be noted that the underlying principles of the present invention may be implemented within the context of any system where transactions are initiated locally by an end user.
The term "trusted party" may be used herein to refer not only to the entity seeking to perform a user transaction (e.g., a website or online service performing the user transaction), but also to a secure transaction server implemented on behalf of that entity that may perform the basic authentication techniques described herein. The secure transaction server may be owned and/or under the control of the trusted party, or may be under the control of a third party that provides secure transaction services to the trusted party as part of a business arrangement.
The term "server" is used herein to refer to software running on a hardware platform (or across multiple hardware platforms) that receives requests from clients over a network, performs one or more operations in response, and sends a response to the client that typically includes the results of the operations. Servers respond to client requests to provide, or help provide, a network "service" to the client. Importantly, a server is not limited to a single computer (e.g., a single hardware device running server software), but may in fact span multiple hardware platforms potentially in multiple geographic locations.
A. Non-Invasive Privacy-Preserving Authentication
One embodiment of the present invention uses "normal" authentication techniques (e.g., finger swipes, code entry, etc.) to train the authentication system to recognize non-invasive authentication situations. Additionally, one embodiment returns the authentication state of the device to a trusted party rather than sensitive information such as device ID when authentication is required.
Some embodiments of the invention described below can operate completely frictionless (i.e., without the need for explicit user authentication). Behavioral or other techniques can be used to continually measure an assurance level that indicates the current assurance that an authenticated user is in the ownership of the device. The assurance level can be calculated, for example, based on the amount of time that has elapsed since the last explicit user authentication (e.g., unlocking a SIM card or phone with 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 can be considered to be in a "valid user state" and the assurance level is set to a maximum value (e.g., 100 on a normalized scale of -100 to 100).
Following a valid user state, the assurance level can be measured based on a combination of time since an explicit user authentication indicating that the device is owned by an authenticated user (e.g., based on non-invasive input detected from device sensors) and other variables. For example, the user's biometric gait can be measured using an accelerometer or other type of sensor in combination with software and/or hardware designed to generate a gait "fingerprint" from the user's normal walking pattern. Additionally, the distance to frequently visited destinations of a valid user can be tracked, stored, and subsequently used to determine the assurance level. For example, if the user is connecting to a trusted party from a known location, such as the user's home or work, the assurance level can be set to a relatively high value, whereas if the device is connecting from an unknown or remote location, the assurance level can be adjusted to a lower level.
Various other types of non-invasive measurements can be performed to determine whether an authenticated user owns a device, including, for example, the identity of the network or the device to which the client device is connected, such as a Bluetooth device, a Near Field Communication (NFC) device, a Wifi device such as a router or access point, a smart watch, other computing devices, a Nymi bracelet, etc., to name a few. Wifi devices can include visibility of Wifi networks in range, such as a Wifi router at home and Wifi-enabled computers used by colleagues and family members. Furthermore, certain specific characteristics of the client device, such as the characteristics of an acceleration sensor and the sensor pattern noise of a digital camera, can be used for non-invasive measurements. Touch screen gestures of normal user interactions can also be analyzed and stored as reference data and the user's typing behavior from normal user interactions. Of course, the above is merely exemplary. The basic principles of the present invention are not limited to any set of non-invasive variables.
The end result is that an assurance level can be transmitted to the trusted party in the authentication response that the legitimate user is still in possession of the device. In one embodiment, the assurance level is "signed" or authenticated by a key (e.g., a trusted party specific key established and certified during the registration phase as described below). In one embodiment, the assurance level is normalized to a value between -100 and 100, with -100 meaning "almost certainly not the legitimate user", 0 meaning "don't know" and 100 meaning "almost certainly the legitimate user".
In one embodiment, the trusted party may require the client device to use an additional "normal" authenticator response if the assurance level is not acceptable for the anticipated transaction. Regardless of the level of authentication required, one embodiment does not disclose any personal data to the trusted party. Instead, it uses a cryptographic key dedicated to one particular trusted party to authenticate the authenticator to the trusted party.
One embodiment of an architecture for providing non-invasive privacy-preserving authentication is shown in Figure 2, which includes a non-invasive privacy-preserving authenticator (NIPPA) 210 that includes an assurance calculator 212 for determining a current assurance level based on inputs (e.g., location, gait measurements, etc.) from a non-invasive authentication mechanism 230 and one or more explicit user authentication devices 220-221 (e.g., fingerprint sensors, input devices for entering ID codes, etc.). In one embodiment, the explicit user authentication devices 220-221 include the same or similar architecture as shown in Figure 1.
In the embodiment shown in FIG. 2, the non-invasive authentication unit 230 includes a location authentication module 231 for performing location-based authentication using a location sensor 241 and historical or user-specific location data stored in a user/location data store 245 (which may be implemented, for example, as a file system or database). By way of example and not limitation, the location sensor 241 may include a GPS device and/or a module for detecting the current access point or cell tower to which the 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. The location authentication module 231 determines the effect of the client device's current location on the assurance level. For example, if the device is currently in a "home" or "work" location (depending on the historical or user-specific location data 245), the assurance level may be adjusted upward. If the device is currently in a remote, unknown location, the assurance level may be adjusted downward. In addition to automatically training the system during a "valid user state" (as described herein) in one embodiment, the user has the ability to manually designate certain locations as "trusted" and therefore have a high assurance level (e.g., when the user is at home or at work). The results of the location authentication module 231 are provided to an assurance calculation module 212, which can be broken down into a calculation of the current assurance level.
The user behavior authentication module 232 relies on one or more user behavior sensors 242 to determine the extent to which the current user's behavior is consistent with historical user behavior (stored in user and location data storage 245). For example, the user behavior sensors 242 can provide accelerometer measurements that the user behavior authentication module can use to determine the gait of the user currently in possession of the device 200. It can then compare these measurements with the user's known gait (collected prior to explicit user authentication and subsequent to storage in storage 245) to arrive at a level of confidence that a legitimate user owns the device. The result is provided to the assurance calculation module 212 so that it can be factored into a calculation of the current assurance level.
Various other/additional authentication devices 233 may collect data from other/additional sensors 243 to perform authentication calculations, the results of which may be provided to the assurance calculation module 212 to be resolved into a calculation of the current assurance level.
2, the location authentication module 231, the user behavior module 232 and any other authentication modules 233 may form part of the assurance computation module 212. The basic principles of the present invention may be implemented using a variety of different logical configurations.
As shown, in one embodiment, the assurance calculation module 212 relies on a timer 211 to measure the amount of time that has passed since the last explicit user authentication. As described in more 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 "valid user state" and adjust the assurance measurement accordingly.
Once the assurance computation module 212 arrives at a current assurance measurement, it can communicate the measurement to an established trusted party (a cloud service in one embodiment) via the secure communication module 213. For example, each authenticator 220-221, including the non-invasive authenticator 230, can exchange keys specific to the trusted party and certified in a registration operation (pre-authentication). The assurance level returned to the authentication operation can be part of a message signed/encrypted by the trusted party's specific authentication key. Additionally, as described below, the message can also include a nonce (e.g., a random challenge) generated by the trusted party.
In one embodiment, the secure storage device 225 is a secure storage device provided to store authentication keys associated with each of the authenticators and used by the secure communication module 213 to establish secure communications with trusted parties.
As mentioned above, in one embodiment, NIPPA 210 leverages existing (explicit) user authentication techniques (e.g., password-based system login, SIM card unlock, etc.) to maintain the "authorized user" state within a defined time window (up to T1 seconds) after each such successful authentication. NIPPA 210 can periodically measure the user's behavior from various sensors 241-243 and update an internal reference data vector according to the measurements in the "authorized user" state. While not in the "authorized user" state, NIPPA 210 can calculate a normalized "distance" to the reference data vector based on the current measurements. This "distance" ensures that the authorized user is still considered to be in possession of the authenticator.
When asked to authenticate a user, NIPPA 210 can check to determine if it is in a "legitimate user" state. If so, the authentication is deemed successful and the maximum assurance level (e.g., 100) is returned. If not in a "legitimate user" state, NIPPA 210 can return an assurance level calculated by the assurance calculation module 212 based on the most recent measurement. NIPPA 210 can then combine the assurance level with the time difference td (td=tc-tm) of that measurement tm relative to the current time tc. In one embodiment, this is done using the following logic:
(1) If (Assurance Level 0), then the obtained assurance level = Assurance Level<sup>*</sup>(max(T0-td,0)/T0), where T0 is the maximum allowed time difference;
(2) If (Assurance Level < 0), then Obtained Assurance Level = Assurance Level.
The operation of one embodiment of the present invention according to the above formula is illustrated in Figure 3. At time t1, a user performs an explicit authentication (e.g., finger swipe, PIN entry, etc. to unlock the SIM card). The time window up to t1+T1 is considered the "valid user" state. As mentioned above, the non-invasive 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 can then be used to perform non-invasive authentication.
At time t2 (outside of the legitimate user state), the assurance calculation module 212 calculates the assurance level based on the non-invasive authenticator. The result is positive indicating that the device is almost under the full control of the legitimate user. After this calculation, the assurance level decreases over time (e.g., the legitimate user may expose the device to an unauthorized person). For example, at time t3, the assurance level has dropped significantly from time t2. In one embodiment, the non-invasive assurance level is only calculated periodically to avoid consuming excessive power and CPU performance.
At t5, another non-invasive assurance level calculation occurs. This time the result is negative, indicating that the device may not be under the full control of the legitimate user. This negative assurance level is not changed until another calculation is performed based on the non-invasive authenticator (e.g., at time t6).
A method according to one embodiment is illustrated in Figures 4-5. The method can be implemented in a system architecture such as that shown in Figure 2, but is not limited to any particular system architecture.
At 401, an explicit authentication event occurs, such as a swipe on a fingerprint sensor to unlock the device or entry of a PIN. A timer can also be started to measure the time elapsed since the explicit authentication event. At 402, an authorized user state is entered, and at 403, various aspects of the user's behavior can be measured and stored for later reference (e.g., location, user gait, etc.). If an authentication request (e.g., resulting from a transaction with a trusted party) occurs during the authorized user state determined at 404, a maximum assurance level is selected at 405 and sent to the trusted party at 420.
At 406, the system exits the authorized user state (e.g., because a timer indicates that a specified amount of time has passed). At 407, the system periodically measures the user's behavior by comparing data from the sensor against the internal reference data stored in operation 403. As an example, measurements related to the user's gait (collected while in the authorized user state) can be compared to the current gait measurements (collected in 407) and a correlation between the two (referred to as the "distance" to the reference data) can be calculated. If an authentication request is received outside the authorized user state determined in 408, a current assurance level is calculated at 409 based on the distance to the internal reference data and the latent time since an explicit authentication event. The assurance level is then transmitted to a trusted party at 420.
5, if the assurance level sent to the trusted party is acceptable for the current transaction with the user as determined in 501, the trusted party may send a response to the client device indicating successful authentication. If not, at 503, the trusted party may send a response to the client indicating that additional authentication is required (e.g., potentially explicit user authentication if non-invasive authentication is insufficient).
In an alternative embodiment, a trusted party may first specify the assurance level required for a particular transaction, and if non-invasive authentication techniques are insufficient, the system may ensure that the required assurance level is met, potentially using explicit user authentication, and the system may then send an indication of successful authentication (rather than the assurance level) to the trusted party.
As mentioned above, one embodiment of the present invention calculates distance from a set of known user positions to determine the level of assurance. With reference to Figure 6, location-based measurements (e.g., GPS, etc.) can be used to calculate a "distance" function as follows:
In a pre-processing operation, all measurement locations (Ln) are assigned to their nearest "region". A region is defined as a circle with a radius of r (e.g., 10 meters). The regions are arranged such that a minimum number of regions covers all Ln. All regions that cover less than M locations are removed from the set of regions (i.e., they are not considered "frequent" locations of the user).
Then "distance" (d) is determined using Distance = (Distance of current position (Lc) to nearest center of region (Rn))/r, where r is the radius of the region. This value is small or equal to 1 if Lc is inside an existing region, and can be very large if Lc is outside. The Assurance Level is then calculated using: Assurance Level = Max(100-50<sup>*</sup>floor(d),-100), which ranges from -100 to 100.
In some of the above embodiments, we assume that the legitimate user still has possession of the client device within a certain time window following explicit authentication or if the current behavior is very similar to the measured behavior, however, the above embodiments only update the behavioral baseline data within a certain time window after explicit authentication.
As shown in Figure 7, one embodiment of the present invention uses an extended time window to update behavioral criteria data (i.e., train the system) in addition to the standard time window for the legitimate user state. As a result, the completion time window (including the standard time window and the extended time window) can be defined as follows: (1) when the time window of the legitimate user state follows a successful explicit user authentication (i.e., t1...t1+T1), or (2) when the returned assurance level is equal to or greater than a certain threshold T (e.g., T=90 at t2, t4). It is not desirable to set the threshold to 0, since it is very easy for an attacker to "shift" the behavioral criteria in his favor.
B. Adaptive Authentication Technology
8 illustrates one embodiment of the present invention for implementing adaptive authentication techniques. As with the above-described embodiment, this embodiment includes one or more non-invasive authentication modules 230 for performing non-invasive 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 with the previous embodiment, the assurance calculation module 212 performs assurance calculations based, for example, on the time since the last explicit authentication (provided by timer 211) and/or authentication data provided by the various authentication modules 230, 222. The secure communication module 213 establishes secure communications with a trusted party 250 (e.g., using secure encryption keys as described above).
In one embodiment, the adaptive authentication module 800 dynamically selects among available non-invasive and explicit/invasive authentication techniques to reach a sufficient assurance level for the current transaction with the trusted party 250. Alternatively or additionally, the adaptive authentication module 810 at the trusted party 250 can perform an authentication selection technique to reach a sufficient assurance level. The basic principles of the invention remain the same regardless of whether the authentication selection technique is implemented in the client device 200 (by the adaptive authentication module 800) or in the trusted party 250 (by the adaptive authentication module 810).
Additionally, the "trusted party" 250 shown in Figure 8 may represent a trusted third party server that can implement the authentication techniques described herein on behalf of the trusted party and provide the results to the trusted party. Thus, although embodiments of the present invention are described in terms of a "trusted party," the underlying principles of the present invention may be implemented using a server outside the boundaries of the network operated by the trusted party.
As described in more detail below, in one embodiment, adaptive authentication module 810 includes a risk engine 812 to determine a risk level based on variables associated with the client device (e.g., round trip delay time of IP packets based on the current IP address, etc.). Additionally, an assurance level gain analysis element 811 can determine the amount by which the current assurance level must be increased to reach an acceptable assurance level. Although these elements are shown in FIG. 8 as components of trusted party adaptive authentication module 810, they may also be implemented in client adaptive authentication module 800 while still adhering to the underlying principles of the present invention.
In one embodiment, when a client device 200 connects to a trusted party 250 (e.g., to initiate a transaction), the risk engine 812 determines a risk (or assurance level) based on all currently available data, which may include, for example, the geographic location of the client device 200 (e.g., derived from an IP address or provided by a mobile network operator), the round trip delay time for packets sent between the client device 200 and the trusted party 250, the number of hops for network packets sent between the client device 200 and the trusted party 250, and a specific "user agent" string sent by a user agent running on the client device 200. In one embodiment, the risk engine 812 then evaluates this data to arrive at an implicit "risk score" (or a preliminary assurance level that is inversely related to the risk score) that can be used to determine the amount of additional assurance required to authenticate a user for a specified transaction.
In one embodiment, based on the implicit risk score, the adaptive authentication module in the trusted party 810 or client device 800 determines a set of one or more authentication modules 222, 230 that have the potential to increase the overall assurance level to the required level for the intended transaction (i.e., when combined with the preliminary assurance level/implicit risk score). In one embodiment, the assurance level gain analysis module 811 determines the amount of gain required, and the adaptive authentication module 800, 810 is provided with an indication of the required assurance level gain as a parameter. The adaptive authentication module 800, 810 then uses this "gain" parameter to determine the most convenient set of authentication techniques (non-invasive 230 and/or explicit 222) to achieve (at least) the required gain. The adaptive authentication module 800 can include a formal description of the selected set of authentication techniques depending on the trusted party 250 (e.g., as an authenticated extension). The trusted party 250 can then verify whether the resulting overall assurance level meets the required level.
By way of example, and not by way of limitation, the adaptive authentication module 800 can combine authentication modalities such as device fingerprinting (e.g., recognizing sensor imperfections or camera sensor pattern noise), environmental information (e.g., GPS-based location, location derived from a WIFI network, presence of wired or wireless connections to other gadgets such as Nymi, smart watches (pebble), or peripherals such as headsets, behavioral data (e.g., how the user takes the device out of their pocket, behavioral inputs, gait, etc.), the amount of time the device has been in a "trusted" state, and potentially the results of new explicit authentications using one or more authentication modalities (biometric or otherwise) necessary to achieve the required (remaining) gain in assurance level.
The result of the above technique is that the user can choose the most convenient authentication method. In the case of a smartphone, this can simply have access to the phone (see above). Instead of asking the user to select an authentication method and then requiring the user for other explicit authentication, the trusted party 250 sends an indication of the required assurance level gain to the adaptive authenticator 800, 810, which identifies a set of at least invasive authentication techniques. The adaptive authentication module 800, 810 does not always require explicit (invasive) user authentication (such as PIN entry or finger swipe), nor one based solely on non-invasive modalities. Instead, the authenticator selects an appropriate combination of all available modalities (on the client side) such that the required assurance level gain is achieved.
As detailed above, the time since the device was in a trusted state is important since hacking/spoofing modalities can take time. For example, if a user loses a phone and someone tries to hack it, it can take a day before a fingerprint can be captured from the display and used to gain access after a suitable rubber finger is created. As a result, a PIN entry required within 24 hours of the last trusted state is sufficient protection against this type of attack. The next level of attack is one where a fingerprint is captured before accessing the device. These attacks are not seen very often in practice. However, if the trusted party 250 requires protection against such attacks, the adaptive authentication module 800, 810 may need to consider location data or the presence of other gadgets or peripherals to accept biometric authentication modalities.
A method according to one embodiment of the present invention is illustrated in Figure 9. As noted above, a "trusted party" as used herein may be an actual party that relies on the correct authentication of a user, or it may be a third party service that authenticates a user on behalf of the trusted party.
At 901, a client device connects to a trusted party to perform a transaction (e.g., logging into an online account, financial transaction, etc.). At 902, the trusted party analyzes any available data related to the client device to determine a risk value and the assurance level gain required to authenticate the user. For example, the data may indicate that the user is connecting to the trusted party from an unknown network location (e.g., a foreign country that the user has not visited before) and/or that the number of network routing hops or latency between the client and the trusted 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 lowered). However, if the user has just recently been explicitly authenticated to the device (e.g., PIN entry), this will tend to reduce 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. This can be accomplished using a formula such as, for example, 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 adhering to the basic principles of the present invention.
An indication of the required assurance level gain is received at 903. If the non-invasive authentication techniques are sufficient to meet the assurance level gain determined at 904, they are used to authenticate the user at 905. If not, one or more explicit authentication modalities are implemented, potentially in combination with one or more non-invasive authentication modalities, at 907. As discussed above, the modality may be selected to be least burdensome to the end user (e.g., based on user-specified preferences).
10 graphically illustrates how the embodiments of the present invention described above can evaluate assurance levels to determine an authentication modality. At time t1, a user performs an explicit authentication (e.g., finger swipe, PIN entry, etc.). At time t2, a trusted party requests authentication with an assurance level gain of al4. Since a non-invasive authentication modality provides an assurance level higher than al4 al4 overall, there is no need to trigger an explicit authentication.
In contrast, at time t4, a trusted party requests authentication with an assurance level gain of al4. The non-invasive authentication modality (as shown in the graph) provides al5 at that time. As a result, in this case, the adaptive authenticator module selects at least one explicit authentication modality to increase the assurance level from al5 to al4.
One embodiment of the present invention uses implicit location-based authentication techniques to protect end-user privacy. As mentioned above, sharing a user's current location (e.g., as provided by GPS) with trusted parties raises significant privacy concerns. Thus, users are often reluctant to share such data.
To address these issues, one embodiment of the present invention uses geolocation as a factor in performing implicit user authentication, but does not disclose the user's location to trusted parties. This embodiment may be implemented alone (e.g., as part of a larger, more comprehensive authentication process) or in combination with other non-invasive 230 and/or explicit 222 authentication techniques described above. Instead of transmitting an actual location from the client device, a unique level of assurance may be transmitted based (at least in part) on geolocation data, thereby protecting the user's privacy.
One embodiment uses the following operations for user/device registration and trusted party registration.
1. The user obtains and specifies one or more locations where he/she would normally perform authentication with the website. This can be an area within a predefined mile or a specific location (such as work, home, transportation route, etc.). These selected locations can be stored locally on the client device and are not transmitted to a trusted party. These operations can be performed by the location authentication module 231 described above.
2. In one embodiment, after registration is complete, the client device shares a key with the trusted party over a secure communications channel (e.g., using the secure communications module 213 and other registration techniques described herein).
In one embodiment, the following actions are performed upon authentication:
1. The client device determines its current location using one or more geolocation techniques (eg, using a location sensor 241 such as an embedded GPS to obtain the current location).
2. The location authentication module 231 in the client compares the current location with previously registered locations and generates a score (e.g. 0 to 100) indicating the distance. The assurance calculation module 212 can then include the score in its assurance calculations (as described above).
3. The client device generates a signature, signs the score/assurance level and sends it to the trusted party 250 for final authentication.
C. Composite Authentication Unit
Some of the embodiments of the invention described herein use a client-side "authenticator" that encapsulates the following security-related functions: 1. Storage and use of cryptographic authentication keys; 2. Generation, storage and use of cryptographic authentication keys; 3. Local user verification or user presence verification; 4. Secure display of information about the end user.
In one embodiment, some of the above functions (eg, FIG. 3 and FIG. 4) are optional. Furthermore, one embodiment of the present invention includes an authentication unit that achieves the following security objectives:
1. Ensure that attestation keys: (a) are only used to attest authentication keys generated and protected by FIDO Authentication, and (b) never leave the FIDO Authentication boundary.
2. If local user verification (sometimes called "user authentication") is claimed to be supported, ensure that (a) authentication cannot be bypassed/forged by a software application (e.g., malware that "enters" a PIN into the authenticator), (b) confidentiality of the authentication data is protected (e.g., malware cannot access the PIN entered by either the user or the reference data), and (c) user authentication is required before generating a new authentication key and a time before using such an authentication key.
One way to implement the authenticator is to implement all of the components responsible for the above functions 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 implementation, the TA is signed to ensure that the authenticator cannot be modified at runtime and that the TEE protects the TA.
In one embodiment of the present invention, each authenticator is logically divided into multiple independent components, each of which includes independent security and authentication functions. For example, in FIG. 11, rather than implementing all of the components responsible for the above functions in a single module protected by a single shell, authenticator 1100 is implemented by two separate and independent authenticator components: a user verification component (UVC) 1101 and an authenticator kernel (AK) 1103, each with its own protection logic 1110 and 1112. In this example, AK 1103 securely manages attestation keys 1104 and authentication keys 1105 for authenticator 1100, and UVC 1101 manages user authentication/presence functions 1106 and secure display functions 1107 (specific examples of which are described below and in the co-pending application).
As described in more detail below, each component's protection logic 1110, 1112 may include a component authentication engine for authenticating all components with one or more other components executing on the client device (see, e.g., FIG. 13 and related documents). Additionally, the protection logic may leverage additional hardware/software protection mechanisms built into the client platform (e.g., secure elements (SEs), chain of trust technologies, trusted user interface technologies, OS-based protection mechanisms, etc.). Details relating to each of these embodiments are described below.
Figure 12 illustrates an embodiment of the invention in which multiple logical authenticators 1201-1202 are constructed from a set of protected authenticator components. Specifically, the component building blocks of logical authenticator 1201 include a User Verification Component (UVC) 1210 for managing user verification and presence, a Display Component (DC) 1212 (i.e., "What you see is what you sign") for ensuring that the information displayed to the end user is accurate and consistent with the transaction, and a User Authentication Component (UEC) 1213 for verifying that the information displayed to the end user is accurate and consistent with the transaction. The logical authenticator 1202 includes a UVC 1220 for managing user verification and presence, and an authenticator kernel (AK) component 1214 for securely managing the attestation key 1215 and the authentication key 1216. Hence, in this example, multiple logical authenticators share the same basic AK component 1214 for managing and protecting the keys. In other embodiments of the invention, other types of components can be shared between multiple authenticators. As mentioned above, each of the components has its own independent protection logic to ensure that the above security goals are met.
An authenticator constructed from components in this manner is referred to as a "composite authenticator" since it is composed of independent and separate components, each with its own protective shell. One advantage of the composite authenticator approach is that once components are constructed for one authenticator, they can be used across multiple authenticators, thereby allowing new secure authenticators to be constructed more efficiently. For example, as shown in FIG. 12, the same authenticator kernel component 1214 is shared between two logical authenticators 1201-1202. Furthermore, each authenticator component can be implemented in a manner optimized for its particular needs. For example, but not limited to, a SE/TEE can be further utilized to protect the authentication and user authentication keys of a face recognition based authenticator whose biometric segmentation and query algorithms may be too large to implement within a secure element (SE) or trusted execution environment (TEE). In this example, the authentication kernel component may be implemented within the SE/TEE, while the user verification component (e.g., including the segmentation and matching algorithms) can be executed outside of the SE/TEE. Similarly, a fingerprint-based authenticator implemented in the TEE can further utilize the SE authentication kernel, for example, to protect its attestations and user authentication keys and thus protect against hardware-based attacks such as differential power analysis (DPA).
In one embodiment, the following security measures are implemented to provide an acceptable level of security for the authenticator portion of the components described herein (e.g., "acceptable" to meet the security objectives specified above). These security measures are described with reference to Figure 13, which shows additional details associated with each of the components 1210, 1212, 1214 used to implement the authenticator 1201 in Figure 12.
1. Security Measures (SM) 1: In one embodiment, each component (e.g., user verification component 1210, display component 1212, or authentication kernel 1214 shown in Figs. 12-13) has its own "component authentication key" pair (CAK) (e.g., CAK pairs 1304, 1305, and 1306, respectively) that is used to register with other components and authenticate messages sent to other components (potentially mutually). As shown in Fig. 13, each component 1210, 1212, 1214 includes component authentication logic 1301, 1302, 1303, respectively, to enter into authentication transactions between components using CAK pairs 1304, 1305, 1306, respectively. In one embodiment, CAK pairs 1304, 1305, 1306 are public/private key pairs, although the underlying principles of the invention are not limited to such implementation. In this implementation, each component is equipped with the public keys of those components it needs to authenticate. For example, UVC 1210 knows the public keys (or at least can verify the public keys) 1321 of DC and AK, DC 1212 knows the public keys 1321 of UVC and AK, and AK 1214 knows the public keys of DC and UVC. In one embodiment, at startup, components first enter into a registration transaction for other components with which they need to communicate by sharing their public keys with these components, and can then authenticate with these components using the techniques described below.
2. Security Measure (SM) 2: Each component can authenticate other components that receive messages by verifying the public CAKs of these components. For example, in Fig. 13, AK 1214 can verify the public CAKs of all UVCs 1210 and DCs 1212 that it supports (i.e., the public keys in CAK pairs 1304 and 1305). UVCs and DCs can also verify the public CAK of AK 1214 (i.e., CAK pair 1306) if mutual authentication is implemented.
FIG. 14 is a transaction diagram illustrating how authentication may be performed between two components (AK 1214 and DC 1212). In transaction 1400, the component authentication logic 1303 of the AK generates a challenge and sends it to the component authentication logic 1302 of the DC 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 component authentication logic 1302 of the DC generates a signature over the challenge and potentially additional data (e.g., whether the user approved the contents of the transaction) using a private key from its CAK pair 1305. As will be appreciated by those skilled in the art, generating a signature may include implementing a hash function over the challenge using the private key. In transaction 1403, the component authentication logic 1302 of the DC sends the signature back to the component authentication logic 1303 of the AK for verification. The AK's component authentication logic 1303 knows the current challenge (e.g., the nonce it previously generated), the signature generated using the private key of the DC's CAK pair, and the public key of the DC's CAK pair. In transaction 1404, it uses the public key of the DC's CAK pair to verify the signature using a random number, thereby authenticating the DC. The DC can also verify the public key of the AK 1214 using a similar set of transactions if mutual authentication is implemented.
3. Security Measure (SM) 3: Depending on the particular implementation, additional security mechanisms can be utilized to protect the communication between components. These additional security mechanisms are illustrated in FIG. 13 as supplemental hardware/software protection mechanisms 1310. By way of example, but not by way of limitation, these hardware/software protection mechanisms 1310 can include those mechanisms built into the client platform, such as secure elements (SEs), chain of trust technologies, trusted user interface technologies, OS-level access control mechanisms, white-box cryptography, code obfuscation, and execution integrity protection. Using ARM® TrustZone or similar technologies, for example, the operating system can restrict access to the application programming interface (API) of the AK to only trusted programs (such as legitimate UVC and DC). As another example, the operating system can also add a package identifier of UVC or DC to any API call to the AK. However, it should be noted that the basic principles of the present invention are not limited to the specific hardware/software protection mechanisms described above.
By way of example, in one embodiment, the AK1214 is implemented as an applet in a secure element that provides a good protection mechanism for encryption keys but has no user interface. The UVC1210 can be implemented as a combination of hardware (e.g., a fingerprint sensor) and a trusted application in a trusted execution environment, both utilizing ARM TrustZone or similar technology. The DC1212 can be implemented as a trusted application using the "trusted user interface" feature as defined by Global Platform. Thus, in this embodiment, when a user swipes their finger on the fingerprint sensor, a trusted application is launched and verifies the fingerprint data against stored reference data. The score is then sent to the AK1214 implemented as a secure element that subsequently enters into a series of authentication transactions by a trusted party 1320 to authenticate the user (e.g., as described in the co-pending application).
Additionally, different UVCs may be implemented as software components running on a rich OS (e.g., Android) using a combination of white-box cryptography, code obfuscation, and runtime integrity protection. For example, an integrated video camera may be used in combination with facial recognition software. Other UVCs may be implemented as trusted applications or software running on a rich OS using a combination of white-box cryptography, code obfuscation, and runtime integrity protection and providing a PIN-based user verification method.
Therefore, the component-based approach described herein can be easily adapted to the requirements of different authentication technologies. For example, some types of authentication, such as voice recognition or face recognition, need to be implemented as software components using the normal local operating system due to the significant storage requirements and hardware interface requirements of these authentication types. All of these different types of authentication can be implemented in a secure and reliable manner using different UVC components that utilize the same AK component (which can be implemented as a secure element as described).
It should be noted that with the above approach, the various components logically communicate using cryptographically protected (e.g., signed) messages. This logical communication may be further "facilitated" by some other entity (e.g., the secure transaction logic described below). Furthermore, in one embodiment, the logical inter-component messaging described herein is transparent to the trusted party 1320, which enters into attestation and authentication transactions directly with the authenticator kernel 1214 (e.g., using the attestation key 1215 and authentication key 1216, respectively). In one embodiment, the AK uses the attestation key 1215 to verify the model and/or integrity of the authenticator upon registration. For example, the trusted party may send a challenge that the AK signs using the attestation key 1215. The trusted party then uses the corresponding key (e.g., the public key if the attestation key is a private key) to verify the signature. When the authenticator registers with a trusted party, the authentication key 1216 is assigned to that trusted party. The AK then uses the authentication key 1216 associated with the trusted party to ensure secure communication with that trusted party after registration.
As an additional security measure, in one embodiment, each component's authentication logic 1301-1303 can delete its CAK pair if a component compromise is detected.
Two different kinds of compound authenticators can be implemented utilizing the basic principles of the present invention: a "static" compound authenticator and a "dynamic" compound authenticator.
Static compound authentication part
Referring to FIG. 15, in one embodiment, a compound authenticator 1501 having the following characteristics is referred to herein as a "static" compound authenticator.
1. For each authenticator 1501, the trusted party 1320 has/must have access to a public certification key (which corresponds to the certification key pair 215, not the public "component authentication keys" (CAKs) 1304, 1306); and 2. For each supported combination of components (e.g., UVC, DC and AK), a specific authenticator certification ID (AAID) 1505 is pre-specified.
15, for a static compound authenticator, each individual authenticator 1501 is identified by its particular AAID 1505. The AK possesses one or more authentication keys 215 and selects one of the pre-defined AAIDs (and associated attestation keys) that will be used when conducting a transaction with a trusted party 1320.
Since the CAK pair is never shared with the trusted party 1320, it can be authenticator specific without affecting the user's privacy. This also means that if successful hacking of an individual component is detected, such keys can be revoked individually. Since the CAK is not used as a (publicly visible) "proof key", hacking of a component is not considered equivalent to hacking of the authenticator. Furthermore, since the communication and security mechanisms of the compound authenticator 1501 are not visible outside the authenticator, the implementation of a static compound authenticator does not affect the specifications that define the interaction between the authenticator 1501 and the trusted party 1320. In one embodiment, each component 1510, 1514 is assigned a unique component ID, which can be similar to the AAID, but which is related only to the AK 1514 (and not to the RP or other external entities).
As a further optimization, in one embodiment, the Online Certificate Status Protocol (OCSP, RFC2560) can be used as the revocation checking method (e.g., "validation") for each CAK certificate. Specifically, the AK 1514 may require a sufficiently recent OCSP response for attestation of the UVC or DC associated with the public CAK to accept the input message. The AK 1514 may also have one attestation key used for all AAIDs, or it may have one attestation key per AAID or a combination thereof, as desired.
In one embodiment, the AK can maintain a static list of AAIDs. Alternatively, it can accept AAIDs received from an external entity (e.g., UVC/DC) if they are 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 private signing_key can be owned by the AK vendor. The public signing_key can be a direct part of the AK's trust store (in a trust store implementation) or can be verified using some certificate stored in the trust store (i.e., chained to such a certificate).
The architecture of the user device 1500 shown in FIG. 15 also includes a browser/application 1510 for establishing communication with the trusted party 1320, and a secure transaction logic 1520 for enabling communication with the authenticator. For example, as shown, in one embodiment, the secure transaction logic 1520 enables messages to pass between the components 1510, 1514 of each authenticator 1501 by exposing application programming interfaces (APIs) for the various components. Thus, in this embodiment, all communication between the components, such as exchange of registration data and messages, occurs via the secure transaction logic 1520. By way of example, the secure transaction logic 1520 can also be implemented as a "secure transaction service" as described in the co-pending application (some of which are described below). The browser/application 1510 can be used to establish communication with the trusted party 1320 over a network such as the Internet.
Dynamic Combined Authentication Unit
With reference to FIG. 16, a compound authenticator 1601 with the following properties is a "dynamic compound authenticator": 1. if the "component authentication keys" (CAK) 1604, 1604 are treated as attestation keys, such that the trusted party 1320 has and needs the associated public key to verify the attestation message (e.g., referred to as "key registration data" in the OSTP specification); and 2. if the trusted party 1320 receives multiple AAIDs 1602, 1603 (depending on the number of components in the authenticator 1601). In one embodiment, it receives the AAIDs 1602, 1606 of all components 1610, 1614 of the authenticator 1601 as part of the registration message sent from the AK 1614 via the secure transaction logic 1620 and browser/application 1610. Although FIG. 16 illustrates only the UVC 1610 and AK 1614, an alternative embodiment (as shown in FIG. 3) sends the AAIDs for the AK, DC, and UVC to the RP 1320. As mentioned above, however, the basic principle of the present invention is not limited to any particular set of components for achieving authentication. In one embodiment, the registration message sent to the RP 1320 also has multiple (chained) signatures, one with the AK's attestation key 1605 and one for each of the other components (e.g., the UVC's attestation key 1604 and the DC's attestation key (not shown)). As mentioned above, in one embodiment, the AK 1614 includes the attestation messages of the other components in its own attestation message to the RP 1320 only if it trusts the communication with the other components.
Therefore, the dynamically constructed authenticator 1601 is realized by dynamically combining multiple components (or other methods of constructing two authenticators to obtain a new authenticator). Because the CAKs are associated with the RP in this implementation, they do not need to be authenticator specific in one embodiment to protect the user's privacy. Instead, they are pre-generated/populated as shared keys or authenticated using the Direct Anonymous Authentication (DAA) scheme, a cryptographic protocol that allows for authentication of trusted platforms while maintaining user privacy. Because multiple AAIDs and chained proof messages are visible to the RP, the implementation of dynamic composite authenticators impacts the authentication specifications used between the authenticator 1601 and the trusted party 1320.
UVC/DC certification verification
Regardless of whether a dynamic or static authenticator is used, in one embodiment, UVC210 and DC212 transmit their output data, such as the user verification result (UVC) and the user's acceptance of the displayed transaction text (DC) to AK214, so that it can be processed according to the authentication specifications used between AK214 and the trusted party 1320.
For registration, in a static authenticator embodiment, the UVC 210 and DC 212 can send a key registration message to the AK 214 that includes a component ID (not an AAID), which is an identifier similar to the AAID, but related only to the AK. In one embodiment, the user authentication key in the key registration message is empty, and the key registration message is signed by the CAK instead of the attestation key.
For authentication, in one embodiment, UVC 210 and DC 212 create a message signed by the CAK (not a user authentication key).
The following verification steps are implemented by the AK in one embodiment of the present invention.
1. Search an internal trust store that contains a list of acceptable public CAKs. The public CAKs may be stored directly in the trust store or may be public key certificates for each of the CAKs that chain to a root certificate in the trust store.
2. The AK verifies the signature of the input data from UVC and/or DC using the public CAK (e.g., as described above for SM1 and SM2).
3. Check for additional platform-specific protection mechanisms, such as using the package ID of the input data or similar platform-provided protection mechanisms.
4. Check the revocation status of the certificate containing the UVC or DC's public CAK. Since the AK is only interested in the revocation information of a very small number of certificates/keys (i.e., of the current UVC or DC), the Online Certificate Status Protocol (OCSP) (described above) can be used for revocation checking. The AK is not assumed to have a network connection, so an OCSP response is expected as part of the input data from the UVC and/or DC.
Optimized Verification Methodology
While asymmetric key operations are very expensive compared to symmetric key operations, further optimizations can be realized in one embodiment. In such a case, the key registration message created by UVC and/or DC sent to the AK includes the symmetric key SK (e.g., instead of an empty user authentication key field as described above). The modified key registration data message generated by 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 UVC and/or DC and sent to the AK is not asymmetrically signed using the CAK, but instead is secured using a hash-based message authentication code (HMAC) calculated by SK. The AK verifies the HMAC using the symmetric key received as part of the key registration data message.
D. Location-aware authentication technology
One embodiment of the invention implements an authentication policy that allows an authentication mechanism to be selected based on the physical location of the client device used for authentication. For example, the client and/or server can make a determination of the physical location of the client device and provide that location to a policy engine that evaluates an ordered set of policy rules. In one embodiment, these rules specify the location and authentication mechanism or class of mechanism that must be applied if the client's location matches the location definition in the rule.
As shown in FIG. 17, one embodiment of the present invention includes a client device 1700 having an authentication policy engine 1710 for implementing the location-aware authentication policies described herein. In particular, this embodiment includes a location class determination module 1740 for using the current location of the client device 1700 provided by a location sensor 1741 (e.g., a GPS device) to identify a current location "class." As described in more detail below, different location "classes" can be defined including known geographic points and/or regions. The location class data can be continuously updated and stored in a persistent location data store 1745 (e.g., a flash storage device or other persistent storage device). The location class determination module 1740 can then compare the current location provided by the sensor 1741 against the defined "classes" to determine a current location class for the client device 1700.
In one embodiment, the trusted party 1750 specifies an authentication policy to be implemented by the authentication policy engine 1710 for each transaction (as indicated by the dotted line from the trusted party to the authentication policy engine). Hence, the authentication policy can be tailored specifically to the authentication requirements of each trusted party. Furthermore, the level of authentication required can be determined based on the current transaction (as defined by the authentication policy). For example, a transaction involving the transfer of a significant amount of money may require a relatively high authentication assurance threshold, whereas a non-financial transaction may require a relatively low authentication assurance threshold. Thus, the location-aware authentication techniques described herein may be sufficient for certain transactions, but can be combined with more stringent authentication techniques for other transactions.
In one embodiment, the location class determination module 1740 provides the determined class to an authentication policy module 1711 which implements a set of rules to identify an authentication technique 1712 to use for the determined class. By way of example, and not by way of limitation, Figure 18 illustrates an exemplary set of rules 1-5 that specify one or more authentication techniques 1-5 that may be used for each defined location class 1-5. Although illustrated in Figure 18 as a table data structure, the underlying principles of the invention are not limited to any particular type of data structure for implementing the rule set.
Once the authentication policy engine 1710 selects a set of authentication technologies 1712, the authentication policy engine 1710 can implement the technologies using one or more explicit user authentication devices 1720-1721 and/or non-invasive authentication technologies 1742-1743 to authenticate the user by a trusted party 1750. By way of example and not limitation, the explicit user authentication 1720-1721 can include requiring the user to enter a secret code such as a PIN, fingerprint authentication, voice or facial recognition, and retinal scan.
Non-invasive authentication techniques 1742-1743 can include user behavior sensors 1742 that collect data regarding a user's behavior to authenticate the user. For example, a user's biometric gait can be measured using an accelerometer or other type of sensor 1742 in combination with software and/or hardware designed to generate a gait "fingerprint" of the user's normal walking pattern. As described below, other sensors 1743 can be used to collect data used for authentication. For example, network data can be collected identifying network/computing devices within a local vicinity of the client device 1700 (e.g., known peer computers, access points, cell towers, etc.).
In one embodiment, secure storage 1725 is a secure storage device used to store an authentication key associated with each of authentication devices 1720-1721. As described below, the authentication key can be used to establish a secure communication channel with trusted party 1750 via secure communication module 1713.
A variety of different "classes" of locations may be defined consistent with the underlying principles of the present invention. By way of example and not limitation, the following classes of locations may be defined:
Class 1: The client is within a specified radius of a specified location. In this class, the associated authentication policy is applied if the current client location is within a circle of a given radius centered at a specified latitude and longitude.
Class 2: The client is within a specified boundary area. In this class, if the client is located within an area bounded by a polygon defined by an ordered set of latitude and longitude pairs (e.g., a closed polygon), the associated authentication policy applies.
Class 3: The client is outside the specified boundary. In this class, if the client is located outside the area bounded by a polygon defined by an ordered set of latitude and longitude pairs (e.g., a closed polygon), the associated authentication policy applies.
In one embodiment, additional classes are defined using Boolean combinations of the above defined classes and policy rules. For example, the Boolean operations AND, OR, NOT and nesting of Boolean operations allows 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 various facilities owned by a company.
A variety of different mechanisms can be used to determine the client's current physical location (generally shown in FIG. 17 as location sensor 1741), including but not limited to:
GPS: An embedded GPS sensor can provide direct location details of the client. Emerging standards seek to add location verification provided functionality that addresses this shortcoming in current GPS solutions.
Geo-IP Lookup: A reverse lookup of a client's IP address can be used to determine a rough approximation of the client's location. However, the reliability of the location obtained by this method requires that the IP address be cross-checked against a blacklist of known compromised hosts that anonymize the proxy provider or a similar solution designed to obfuscate the host's source IP address.
Cell Tower Triangulation: Integration between the client, server and wireless carrier infrastructure enables the client and server to perform high resolution determination of physical location using cellular signal strength triangulation.
Wi-Fi Access Point Triangulation: A high 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 useful for determining the location of devices within a facility.
Location Displacement Estimation: The exact location of the device may be unknown, but the statistical probability of the location can be used as an approximation for the purposes of evaluating policies. This can be calculated by noting the change in the device's location relative to a starting point with a known location, where the user's device may have had a known starting point in the past, moving a known or estimated distance and orientation during which an approximate location can be calculated. Possible methods for calculating the displacement from the starting point include measurements collected from an accelerometer (i.e., using an accelerometer to measure how far the user has walked based on gait measurements), estimated distance traveled using changes in signal strength from a known fixed set of signal sources, and other methods.
Figure 19 illustrates one embodiment of a method for implementing a location-aware authentication policy. The method can be performed within the context of the system architectures illustrated in Figures 17-18, but is not limited to any particular system architecture.
At 1901, the location of the client is determined using one or more available techniques (e.g., GPS, triangulation, peer/network device detection, etc.). At 1902, one or more location classes (and potential Boolean combinations of classes) are identified for the current location based on an existing set of policy rules. At 1903, one or more authentication techniques are identified depending on the location class. For example, if the client device is currently in a known location, such as within a defined range of the user's home or work or other trusted location, minimal authentication may be required (or not required at all). In contrast, if the client device is currently in an unknown location and/or an untrusted known location, more stringent authentication (e.g., biometric authentication such as a fingerprint scan, PIN entry, etc.) may be required. At 1904, the authentication technique is employed, and if authentication is determined to be successful at 1905, the transaction requiring authentication is permitted at 1906.
As mentioned above, the level of authentication required can be determined based on the current transaction. For example, a transaction involving the transfer of a significant amount of gold may require a relatively high authentication assurance threshold, whereas a non-financial transaction may require a relatively low authentication assurance threshold. Thus, the location-aware authentication techniques described herein may be sufficient for certain transactions, but can be combined with more stringent authentication techniques for other transactions.
If the authentication is not successful, the transaction is blocked at 1907. At this stage, the transaction may be blocked entirely or may require additional authentication steps. For example, if the user entered an incorrect PIN, the user may be required to re-enter the PIN and/or perform biometric authentication.
The embodiments of the invention described herein provide many advantages for authentication systems. For example, the described embodiments can be used to effectively block access from unauthorized locations and reduce unauthorized access by limiting the locations at which a user is permitted to attempt authentication (e.g., as defined by a location class). Additionally, embodiments of the invention may selectively require strong authentication to address location-specific risks. For example, a trusted party can minimize the inconvenience of authentication when a user is entering a transaction from a known location, while retaining the ability to require strong authentication when a user/client connects from an unknown or unexpected location. Additionally, embodiments of the invention allow location-aware access to information. Alternatively, location-centric policies may be used by a trusted party to provide users with additional access to location-specific information. By way of example, and not by way of limitation, a user located at Walmart can be granted access to special offers from Amazon.com when logging into their Amazon.com account on their mobile phone.
As mentioned 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" is not tied to a set of physical coordinates (as with GPS), but instead is defined by the presence of a set of peer devices or other types of network devices. For example, during operation, the client's wireless network adapter (e.g., Wifi adapter, Bluetooth adapter, LTE adapter, etc.) can "see" a set of peer network devices (e.g., other computers, mobile phones, tablets, etc.) and network infrastructure devices (e.g., Wifi access points, cell towers, etc.) on a consistent basis. Hence, the presence of these devices can be used for authentication purposes when the user is operating. Other locations can be defined by the presence of devices in the same way as when the user is at home.
For example, using the techniques described herein, a location can be defined as "with work colleagues" or "at work," and the presence of a set of peer devices known to be owned by the user's work colleagues can be used as a proxy for the 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 at less risk than if no known devices are detected.
FIG. 20 illustrates one embodiment in which a "location" is defined by a set of peer devices and other network devices. In the illustrated example, client device 1700 "sees" two different peer devices 2005-2006 (e.g., client computers, mobile phones, tablets, etc.), two different wireless access points 2010-2011; and two different cell towers 2020-2021. As used herein, client device 1700 can "see" without formally establishing a connection with each of the other devices. For example, the client can see various peer devices connected to an operating LAN and/or see wireless signals generated by those devices regardless of whether the client connects to those devices. Similarly, client device 1700 can see the Basic Service Set Identifications (BSSIDs) for various different Wifi access points (e.g., nearby hotels, coffee shops, Wifi from operating Wifi access points). Client device 1700 can also see various different cell towers 2020-2021, potentially operated by even different cell carriers. The presence of these devices can be used to define a location "fingerprint" for the user's operating location.
As shown, device proximity detection logic 2001 in client device 1700 can capture data related to visible devices and compare the results against historical device proximity data 2004. Historical device proximity data 2004 can be generated over time and/or by a training process. For example, in one embodiment, a user can specify when he/she is at work, at home, or other location (either manually or when requested to do so by client 1700). In response, device proximity detection logic 2001 can detect nearby devices and persistently store the results as historical device proximity data 2004. When the user subsequently returns to the location, device proximity detection logic 2001 can compare the devices it currently "sees" against the devices stored as historical proximity data 2004 to generate a correlation between the two. In general, the stronger the correlation, the more likely it is to be in the client-specified location. Over time, devices that are regularly seen can be prioritized over other devices in historical device proximity data 2004 (e.g., because these devices tend to provide a more accurate correlation with the user's operating location).
In one embodiment, the authentication policy engine 1710 can use the correlation results provided by the device proximity detection logic 2001 to determine the level of authentication required by the user for each trusted party 1750. For example, if there is a high correlation (i.e., above a specified threshold), the authentication policy engine does not require explicit authentication by the end user. In contrast, if there is a low correlation (i.e., below a specified threshold) between the user's current location and the historical device proximity data 2004, the authentication policy engine 1710 can require more stringent authentication (e.g., biometric authentication such as a fingerprint scan and/or a PIN entry request).
In one embodiment, the device proximity detection logic 2001 identifies a set of other devices in the vicinity of the authenticated client. For example, if some of the user's peers have already been successfully authenticated, there may be a low risk associated with allowing the user to access certain data through a less trusted authenticator simply because the user is operating in the presence of his/her peers. In this embodiment, peer-to-peer communication over a standard such as 802.11n can be used to collect authentication tokens from peers that can be used to prove that these peers have already been authenticated.
In other embodiments, the device proximity detection logic 2001 can also detect previously authenticated devices paired with the user's client (e.g., the user's mobile phone or tablet). The presence of other authenticated devices used by the same user attempting to authenticate can be used as input to the authentication decision, especially when accessing the same application.
In one embodiment, historical device proximity data 2004 can be collected and shared among multiple devices and stored and maintained in an intermediate authentication service. For example, the history of groups of peer and network devices at each location can be tracked and stored in a central database accessible to the device proximity detection logic 2001 of each device. This database can be used as an input to determine the risk of an authentication attempt from a particular location.
E. Location Verification Using Supplemental Sensor and/or Location Data Embodiments
As mentioned above, one embodiment of the present invention utilizes data from additional sensors 1743 from the mobile device to provide supplemental inputs to the risk calculations used for authentication. These supplemental inputs can provide additional levels of assurance that can help confirm or refute the end user's device location claims.
As shown in FIG. 21, additional sensors 1743 that provide supplemental assurance of the device's location can 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 measurements that are respectively used by the supplemental data correlation module 2140 of the authentication policy engine 1710 to correlate against known supplemental data 2110 for the location provided by the location sensor 1741 (or location derived using various other techniques described herein). The results of the correlation are then used by the authentication policy module 1711 to select one or more authentication techniques 1712 for a particular transaction. As shown in FIG. 21, the supplemental location data 2110 can include data collected from external sources (e.g., the Internet or other mobile devices) and local data sources (e.g., historical data collected during a period when the device is known to be in the possession of a legitimate user).
The supplemental data correlation module 2140 can use data provided by the additional sensors 1743 in a variety of different ways to correlate against 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. By comparing humidity, temperature, or air pressure collected from the additional sensors 1743 against the real-time local weather data 2110, the supplemental data correlation module 2140 identifies cases where the sensor data is inconsistent with the local conditions. For example, if the client device's GPS reading indicates that it is outside the device and the temperature, humidity, or air pressure does not match the local weather conditions, the supplemental data correlation module 2140 can generate a low correlation score and the location can be deemed less reliable. As a result, the authentication policy module 1711 may require a stricter authentication technique 1712 (e.g., fingerprint, PIN entry, etc.) to authorize the transaction.
As another example, by comparing the altitude provided by the altimeter pressure sensor 2103 against the known geographic or network topology of the claimed location (comprising the supplemental location data 2110), the supplemental data correlation module 2140 can identify discrepancies that signal that the claimed location is not authentic. For example, if a reverse IP lookup of a user's claimed location identifies them as being in the Andes Mountains, but 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 deemed less reliable. As a result of a low correlation score, the authentication policy module 1711 can attempt to mitigate high risk by strong authentication for the transaction.
In one embodiment, the supplemental data correlation module 2140 compares data collected from sensors 1743 on the user's device against multiple other end users in the immediate area to identify anomalies that suggest the user is not operating in the same physical location as those known users. Note, for example, that if a set of authenticated users identify people operating in the same physical area, all of whose devices indicate that the local temperature in the area is 10° C., the supplemental data correlation module 2140 may generate a low correlation for an end user whose temperature sensor 2101 indicates that the local temperature is 20° C. As a result, the authentication policy 1711 may require stricter authentication techniques 1712.
As yet another example, the supplemental data correlation module 2140 can compare current measurements against historical data for a particular user. For example, as described above, sensor data can be analyzed during periods when the user is known to have the device 1700 in their possession (e.g., periods following explicit authentication). The supplemental data correlation module 2140 can then look for discontinuities in local data to identify suspicious behavior. For example, if the user's ambient temperature normally floats between 10°C and 20°C and it is currently 30°C, this can indicate 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.
The supplemental data correlation module 2140 can perform various different types of correlation between the sensor data and the supplemental location data while still adhering to the underlying principles of the present invention. For example, various known correlation mechanisms can be used to determine the statistical relationship between the two data sets. In one embodiment, the correlation score provided to the authentication policy engine 1711 includes a normalized value (e.g., between 0-1) indicating the level of correlation. In one embodiment, various threshold levels can be set for the difference detected between the sensor 1743 and the supplemental location data 2110. For example, if the temperature sensor 2101 measures a temperature that is more than 3 degrees out of the current temperature (collected from another device or the Internet), a first threshold can be triggered (resulting in a decrease in the correlation score). Then, each additional temperature that is 3 degrees out of the current temperature can result in a new threshold being met (resulting in a corresponding decrease in the correlation score). However, it should be noted that these are merely illustrative of one embodiment of the present invention. The underlying principles of the present invention are not limited to any particular method of performing the correlation.
A method according to one embodiment of the invention is illustrated in Figure 22. At 2201, the current location reported by the client device is read (e.g., via a GPS module in the device). At 2202, supplemental location data is collected for the reported location along with sensor data from the client device. As discussed above, the supplemental location data can be collected locally or remotely (e.g., from other clients and/or servers on the Internet) and can include data such as the current temperature, pressure and/or humidity for the reported location. The sensor data can be provided by temperature sensors, barometric or altimeter pressure sensors and/or humidity sensors.
A correlation is performed between the supplemental location data and the sensor data provided by the device's sensors at 2203. In one embodiment, a relatively high correlation results in a relatively high correlation score at 2204, while a low correlation results in a relatively low correlation score. As noted above, in one embodiment, the correlation score is a normalized value (e.g., between 0-1) that indicates the degree of similarity between the sensor readings and the supplemental data.
At 2205, one or more authentication techniques are selected (at least in part) based on the correlation score. For example, if a relatively low correlation score is provided, a more strict authentication technique may be selected, while if a relatively high correlation exists, a less strict authentication technique (potentially one that does not require explicit authentication by the end user) may be selected.
If the user successfully authenticates using the selected technique determined in 2206, the transaction is allowed to proceed at 2207. If not, the transaction is blocked at 2208.
Many advantages are realized with the above embodiments. For example, these embodiments provide an additional level of assurance for location data collection from other sources: they allow organizations to supplement location data collected from other sources (IP, GPS, etc.) to gain additional assurance that the location is authenticated. Additionally, embodiments of the present invention can block transactions from fraudulent locations, reducing fraudulent access by limiting the locations from which a user can attempt further authentication. Additionally, these embodiments can enforce stronger authentication to respond to location-specific risks (e.g., a trusted party can minimize the inconvenience of authentication when a user is accessing information from a known location, while retaining the ability to require stronger authentication when a user/client is accessing from an unknown or unexpected location or when the location of its veracity cannot be fully qualified using multiple inputs).
F. Adaptive application of authentication policies based on client authentication functions
23, one embodiment of the present invention includes an adaptive authentication policy engine 2345 that allows an organization, such as a trusted party having a secure transaction service 1750 (hereafter simply referred to as the "trusted party"), to specify the type of authentication that is appropriate for a particular class of interaction. As shown, the adaptive authentication policy engine 2345 can be implemented as a module within an authentication engine 2311 running at the trusted party 1750. In this embodiment, the adaptive authentication policy engine 2345 operates in response to a policy database 2325 that contains data about existing authentication devices 2329, authentication device classes 2328, interaction classes 2327, and authentication rules 2326.
In one embodiment, authentication device data 2329 includes data associated with each of the explicit user authentication devices 1720-1721 known for use by client 1700. For example, policy database 2325 may include an entry for a verification model 123 fingerprint sensor along with technical details associated with this sensor, such as how the sensor stores sensitive data (e.g., in cryptographically secure hardware, EAL3 certification, etc.) and the false accept rate (indicating how a trusted sensor produces a user authentication result).
In one embodiment, authentication device classes 2328 specify logical groupings of authentication devices 2329 based on the capabilities of those devices. For example, a particular authentication device class 2328 may be defined that (1) uses a fingerprint sensor, (2) stores sensitive data in cryptographically secure hardware that is EAL3 certified, and (3) uses a biometric matching process with a false acceptance rate of less than 1 in 1000. Another device class 2328 may use (1) a facial recognition device, (2) does not store sensitive data in cryptographically secure hardware, and (3) uses a biometric matching process with a false acceptance rate of less than 1 in 2000. Therefore, fingerprint sensor and facial recognition implementations that meet the above criteria are added to the appropriate authentication device class 2328.
Various personal attributes can be used to define authentication device classes such as the type of authentication factor (e.g., fingerprint, PIN, face), the level of hardware security assurance, the secret storage location, the location where cryptographic operations are performed by the authenticator (e.g., in a secure chip or secure enclosure), and various other attributes. Another set of attributes that can be used relates to the location on the client where the "match" operation is performed. For example, a fingerprint sensor can implement the capture and storage of fingerprint templates in a secure storage device of the fingerprint sensor itself, and perform all validation against those templates within the fingerprint sensor hardware itself, resulting in 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, resulting in a less secure environment. Various other attributes related to the implementation of "match" can also be used to define authentication device classes (e.g., whether the match is (or is not) performed in a form of a secure element, trusted execution environment (TEE), or other secure execution environment).
Of course, these are merely examples to illustrate the concept of authentication device classes. Various additional authentication device classes can be specified while still adhering to the basic principles. Furthermore, it should be noted that a single authentication device may be classified into multiple device classes, depending on how the authentication device class is defined.
In one embodiment, the policy database 2325 can be periodically updated to include data about new authentication devices 2329 as they come onto the market along with new authentication device classes 2328, potentially including new classes into which new authentication devices 2329 may be classified. Updates can be performed by the trusted party and/or by a third party responsible for providing updates for the trusted party (e.g., a third party selling the secure transaction server platform used by the trusted party).
In one embodiment, interaction classes 2327 are defined based on the particular transaction provided by the trusted party 2325. For example, if the trusted party is a financial institution, the interactions may be classified according to the monetary value of the transaction. A "high value interaction" may be defined as an interaction (e.g., a transfer, a withdrawal, etc.) involving amounts of $5000 or more, a "mid value interaction" may be defined as one involving amounts between $500 and $4999; and a "low value transaction" may be defined as one involving amounts of $499 or less.
In addition to the amounts involved, interaction classes may be defined based on the sensitivity of the data involved. For example, transactions that disclose confidential or private data of a user may be classified as "sensitive disclosure interactions," whereas those that do not disclose such data may be defined as "non-sensitive disclosure interactions." Various other types of interactions may be defined using different variables and various minimum, maximum, and intermediate levels.
Finally, a set of authentication rules 2326 may be defined to include authentication device 2329, authentication device class 2327, and/or interaction class 2327. By way of example, and not by way of limitation, a particular authentication rule may specify that for "high value transactions" (as specified by interaction class 2327), only fingerprint sensors that store sensed data in cryptographically secure hardware that is EAL3 certified, and that biometric matching processes with a false acceptance rate of less than 1 in 1000 (as specified as authentication device class 2328) may be used. If a fingerprint device is not available, the authentication rule may define other authentication parameters that are allowed. For example, the user may be required to enter a PIN or password and also answer a set of personal questions (e.g., previously provided by the user to a trusted party). Any of the above personal attributes specified for the authentication device and/or authentication device class may be used to define rules such as the type of authentication factor (e.g., fingerprint, PIN, face), the level of security assurance of the hardware, the storage location of secrets, the location where cryptographic operations are performed by the authenticator, etc.
Alternatively or additionally, a rule may specify that a particular attribute can take any value as long as other values are sufficient. For example, a trusted party may specify that a fingerprint authentication device that stores its seed in hardware and performs the calculations in hardware must be used, but does not care about the assurance level of the hardware (as defined by the Authentication Device Class 2328, which contains a list of authentication devices that meet these parameters).
Additionally, in one embodiment, a rule may simply specify that a particular authentication device 2329 may be used to authenticate a particular type of interaction. For example, an organization may specify that only "fingerprint sensors of verification model 123" are acceptable.
Additionally, a rule or set of rules can be used to create an ordered and ranked combination of authentication policies for an interaction. For example, a rule can specify a combination of policies for individual authentication policies, allowing for the creation of rich policies that accurately reflect the authentication preferences of a trusted party. This allows, for example, a trusted party to specify that a fingerprint sensor is preferred, but if none is available, then either a trusted platform module (TPM)-based authentication or facial recognition is also preferred as the next best option (e.g., in priority order).
In one embodiment, the adaptive authentication policy engine 2345 implements authentication rules 2326 that rely on the interaction class 2327, authentication device class 2328, and/or authentication equipment data 2329 in determining whether to allow a transaction with a client 1700. For example, in response to a user of the client device 1700 attempting to enter into a transaction with a trusted party's website or other online service 2346, the adaptive authentication policy engine 2345 can identify a set of one or more interaction classes 2327 and associated authentication rules 2326 that are applicable. These rules can then be applied via communication with an adaptive authentication policy module 2350 at the client device 1700 (illustrated in FIG. 23 as a component within the client's authentication engine 2310). The adaptive authentication policy module 2350 can then identify a set of one or more authentication techniques 2312 to comply with a specified authentication policy. For example, if a prioritized set of authentication techniques is specified by the trusted party's adaptive authentication policy engine 2345, the adaptive authentication policy module 2350 may select the highest priority authentication technique available at the client 1700.
The results of the authentication technique 2312 are provided to an 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 communicates the results of successful authentication to a trusted party authentication engine 2311 which allows the transaction.
In one embodiment, data from client device sensors 1741-1743 can also be used by the assurance calculation module 2340 to generate the assurance level. For example, a location sensor (e.g., a GPS device) can 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 can use this information to increase the assurance level. In contrast, if the client device 1700 is in an unexpected location (e.g., a foreign country not previously visited by the user), the assurance calculation module 2340 can use this information to decrease the assurance level (thereby requiring more stringent explicit user authentication to reach an acceptable assurance level). As discussed above, various additional sensor data, such as temperature, humidity, accelerometer data, etc., can be incorporated into the assurance level calculation.
The system shown in FIG. 23 can operate differently based on the specificity with which client authentication capabilities and other information are communicated to the trusted party. For example, in one embodiment, the specific model of each of the explicit user authentication devices 1720-1721 and the specific details of the security hardware/software and sensors 1741-1743 in the client device 1700 can be communicated to the trusted party 1750. Thus, in this embodiment, the adaptive authentication policy engine 2345 can specifically identify the desired mode of authentication 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 request authentication via a verification model 123 fingerprint sensor installed on the client for a specified transaction.
In other embodiments, only a general description of the authentication capabilities of the client device 1700 may be provided to protect the user's privacy. For example, the client device may communicate that it has a fingerprint sensor that stores sensitive data in cryptographically secure hardware certified to EAL3 and/or uses a biometric matching process that has a false acceptance rate of less than 1 in N. Similar general information related to the capabilities and specifications of other authentication devices may be specified without disclosing the specific models of these devices. The adaptive authentication policy engine 2345 may then use this general information to classify the authentication device into the appropriate authentication device class 2338 in the database 2325. In response to a request to perform a transaction, the adaptive authentication policy module 2345 may instruct the client device 1700 to use a specific authentication device if that class is sufficient to complete the transaction.
In yet another embodiment, the client device 1700 does not communicate any data related to the authentication function to the trusted party. Rather, in this embodiment, the adaptive authentication policy module 2345 communicates the level of authentication required, and the adaptive authentication policy module 2350 at the client selects one or more authentication techniques that satisfy the level of authentication. For example, the adaptive authentication policy module 2345 may communicate that the current transaction is classified as a "high value transaction" (specified by the interaction class 2327) that can use only a particular class of authentication device. As described above, it may also communicate the authentication classes in a prioritized manner. Based on this information, the adaptive authentication policy module 2350 at the client may select one or more authentication techniques 2312 required for the current transaction.
As shown in FIG. 23, the client device 1700 may include its own policy database 2390 to store/cache policy data for each trusted party. The policy database 2390 may include a subset of the data stored in the trusted party's policy database 2325. In one embodiment, a different set of policy data is stored in the database 2390 for each trusted party (reflecting each trusted party's different authentication policies). In these embodiments, a mere indication of a particular category of transaction (e.g., "high value transaction", "low value transaction", etc.) may be sufficient information for the adaptive authentication policy module 2350 in the client device 1700 to select the required authentication technique 2312 (i.e., because rules associated with various transaction types are available in the local policy database 2390). Thus, the adaptive authentication policy module 2345 may simply indicate the interaction class of the current transaction, which the adaptive authentication policy module 2350 uses to identify the authentication technique 2312 based on the rules associated with that interaction class.
A method for adaptive authentication based on client device capabilities is illustrated in Figure 24. The method may be implemented on the system illustrated in Figure 23, but is not limited to any particular system architecture.
At 2401, a client attempts to carry out a transaction with a trusted party. By way of example, and not limitation, the client may enter payment information for an online purchase or attempt to transfer funds between bank accounts. At 2402, the transaction is classified. For example, as discussed above, a transaction may be associated with a particular interaction class based on variables such as the amounts involved or the sensitivity of the information involved.
At 2403, one or more rules associated with the category of the transaction are identified. Referring to the example above, if the transaction is classified as a "high value transaction," then the rules associated with this transaction type may be selected. At 2404, the rules associated with the transaction type are executed and, as described above, information is sent to the client indicating an authentication request to complete the transaction. As described above, this may include identifying a particular authenticator, identifying a class of authenticator, or simply indicating the particular rules that need to be implemented (e.g., if the client maintains a local copy of the rules).
In either case, a set of one or more authentication techniques is selected at 2405 based on the rules and requirements specified via the client's authentication functionality. If the authentication is determined to be successful at 2406, the transaction is allowed at 2407. If not, the transaction is blocked at 2408 (or additional authentication is requested from the user).
There are many advantages realized from the embodiments of the invention described herein. For example, these embodiments can reduce the amount of work required to integrate authentication functionality into a trusted party. For example, instead of writing code to organize authentication policies, rules can be configured via a simple graphical user interface. Every trusted party that needs to be integrated has integration code that defines a policy for a class of interaction (e.g.: "Large Money Transfers") and uses that policy identifier when interacting with the policy engine to determine and utilize the correct authentication mechanism.
Additionally, these embodiments simplify management of authentication policies. By expressing authentication policies from code, this approach allows organizations to easily update their authentication policies without requiring code changes. Changes to reflect new interpretations of regulatory mandates or to address attacks on existing authentication mechanisms result in simple changes to policy and can be made quickly.
Finally, these embodiments allow for future improvements in authentication technology. As new authentication devices become available, organizations can evaluate their appropriateness to address new or emerging risks. Integrating a newly available authentication device requires only adding the authentication device to the policy. No new code needs to be written to immediately deploy new capabilities.
G. Systems and methods for eye tracking during authentication
In general, authentication techniques are robust against spoofing if (a) secret information is used for authentication or (b) fake input is difficult to generate. Most systems today rely on password-based authentication. Passwords need to be kept secure because they are easy to reproduce. Therefore, password attacks usually focus on gaining access to a user's password. Recent attacks have demonstrated vulnerabilities in servers where passwords are stored for verification.
In contrast to password-based authentication, when using biometrics for authentication, the biometric information is usually publicly available: for example, a fingerprint can be obtained from (almost) any object touched by the user, and similarly, a user's face is usually not hidden and can be seen and captured by someone, often publicly available on social networks.
In the real world, we can rely on our own recognition abilities when looking at people, because it is difficult to "generate" another person with the same biometric characteristics. For example, it is difficult to "generate" another person with the same face and mannerisms. This is because governments include photos of faces in passports, ID cards, driver's licenses, and other documents. However, in the virtual world, we do not need to "generate" another person with the same face to spoof the system, but only something that a computer recognizes, such as an image of a face. In other words, "the moral is that biometrics only work well if the verifier can be sure of two things: first, that the biometrics come from the person at the time of verification, and second, that the biometrics match the master biometrics on file" (see Reference 1 from the list of references provided before the claims of this specification).
In the past, research in automatic face recognition has focused on identifying the authenticity of faces using still and video images (see, for example, Reference 2 below). Some relatively robust face recognition techniques exist, and systems are commercially available today (see Reference 3). However, little attention has been paid to "liveness" detection, i.e., "verifying that a biometric matches a master biometric on file...". In some use cases, spoofing protection is not required or is even performed by a human (e.g., for law enforcement applications).
The ubiquity of cameras in computing devices such as notebooks and smartphones on the one hand, and the weakness of passwords as the most common authentication method on the other, have encouraged the adoption of biometric authentication methods in general, and facial recognition in particular. The first large-scale "trials" of facial recognition as an authentication method were made in Google's Android 4 (aka "Ice Cream Sandwich") and were based on still image recognition. These techniques can be easily fooled by photographs (see Reference 4). Even improved methods, including some sort of liveness detection in Android 4.1 (aka "Jelly Bean"), can be easily fooled by presenting two photographs in sequence on a computer display to the camera, one with an open eye and one electronically altered with a closed eye (see Reference 5).
While it could be argued that this weakness is due to resource constraints on mobile devices, it also indicates that commercially available software, even for PCs, and research into anti-spoofing detection is still very immature. The assignee of this patent application has performed tests using PC-based facial recognition software that confirm this finding.
The convincing BioTrust 3.00.4063 running on a Windows 7 based Samsung Series 5 notebook does not perform any liveness checks even with security settings set to "high." A simple facial image displayed on a normal computer monitor was enough to successfully spoof the system.
KeyLemon 2.6.5 running on a Macbook Air® performs a simple blink test as a liveness check. It can be successfully spoofed by displaying a sequence of three images: (1) a real image of the face (e.g., created by a webcam), (2) a modification of the real image where the eyes are recolored to see if they are closed, and (3) the real image again.
Anti-spoofing detection is not part of standard tests such as the NIST biometric vendor tests when comparing different algorithms. See, for example, References 6-8. One of the first known public competitions, organized by several researchers in 2011 (see Reference 9), showed early success of some algorithms, but it was based on videos with a resolution of 320 × 240 pixels. Typical computing devices offer a forward-facing camera resolution of at least 640 × 480 pixels.
FIG. 25 illustrates an exemplary client 2520 having a biometric device 2500 for performing facial recognition. In normal operation, a biometric sensor 2502 (e.g., a camera) reads raw biometric data from a user (e.g., snaps a picture of the user), and a feature extraction module 2503 extracts specified characteristics of the raw biometric data (e.g., focuses on a particular facial feature). A query module 2504 compares the extracted features with biometric template data 2510 stored in secure storage at 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 information with the device 2500. An application 2505 can then use the score or yes/no result to determine whether authentication was successful.
There are multiple potential points of attack to spoof a facial recognition system, identified in Figure 25 as (1)-(8) (see References 10, 11). There are well-known protection mechanisms to ensure the integrity of the biometric template (6) (e.g., using digital signatures) and to protect the integrity of the feature extractor (3), feature vector (4), query (5) and the final result (8) (e.g., by applying a combination of (a) white-box cryptography methods, (b) code obfuscation, and (c) device binding).
Protection mechanisms against replaying old captured data to the feature extractor (2) are (at least in theory) covered by the Trusted Computing Group approach and by potential extensions to ARM TrustZone. Essentially, the approach is to add cryptographic protection mechanisms (e.g. HMAC or digital signatures) to the sensor, encapsulating it in a tamper-proof way similar to the protection mechanisms used for current smart card chips. The feature extraction engine can check the integrity of the input data.
The embodiments of the invention described below utilize eye tracking techniques to verify the "liveness" of a user, but in one embodiment these techniques are combined with one or more existing techniques for detecting fake biometrics (see Reference 1). This is an area of ongoing research. Existing research has identified four different classes of protection approaches for fake biometrics (see Reference 12): 1. Data-Driven Characterization a. Still Images i. Detecting degradation in resolution by rescanning images analyzing the 2D Fourier spectrum (Reference 13) ii. Exploiting the different reflectance properties of real faces versus image prints. This theory is based on Lambertian reflectance properties (Reference 14) iii. Exploiting the different microtextures of real faces and image prints caused by printing defects (Reference 15) iv. Exploiting quality degradation and noise addition in printed images in combination with other methods (Reference 16) b. Video v. Each camera sensor has its own characteristics and recapturing the video displayed on a monitor causes artifacts. This can be used to detect spoofing (Reference 12).
vi. In the case of image-based spoofing, there is a dependency on the face background (Reference 17).
vii. In the case of spoofing attacks, faces typically exhibit more rigid body motion (Reference 18).
c. Combination of still and moving images (Reference 12) 2. User behavior modeling (Reference 12) 3. User interaction needs (Reference 12).
4. Additional equipment (Reference 12)
The most effective non-invasive mechanisms based solely on existing sensor technology appear to be based on a combination of motion, texture and liveness detection, see Reference 9.
Texture differences
The effects of printing and rescanning an image can be detected. It is intuitively clear that printing and rescanning does not improve the quality of an image. A study in reference 15 shows that the differences can be detected algorithmically by analyzing the microtexture: "A closer look at the differences between real faces and face prints reveals that human faces and prints reflect light in different ways, whereas photographs can be considered as planar rigid bodies, whereas human faces are complex non-rigid three-dimensional objects."
The algorithm has been tested against images contained in the NUAA photo faker database, and performance is reported to be an average of 16.5ms to process an image on a 2.4 GHz Intel Core 2 Duo CPU with 3GB RAM using unoptimized C++ code.
Infrared instead of visible light
It is difficult to display images or videos in the infrared spectrum. As a result, liveness detection based on capturing facial heat patterns, as proposed in Reference 19, is more robust than capturing visible light patterns. Unfortunately, infrared sensors are expensive and are not included in typical notebooks, tablets or smartphones.
Optical flow based methods
A real face is a three-dimensional object. The face is typically moving in normal conversation. The 2D motion of central face parts, i.e. parts with a short distance to the camera, is expected to be higher than the 2D motion of face regions with a long distance from the camera (References 20, 21, 22). For this kind of detection, a sequence of at least three consecutive images is required.
The work in Reference 21 is part of the SART-2 project, Biometric Security Systems for Mobile Workstations.
Moving images instead of still images
In Reference 23, a blink-based liveness detection method is described. The method appears to be fairly robust against simple photo-based spoofing attacks. In addition to recognizing faces, the method locates eyes and checks whether closing the eyes is visible in the observed image sequence. As can be seen from extensive testing of Android 4.1, the method is apparently not very robust against "photoshop" attacks. See Reference 5.
In general, to spoof such video-based systems, an attacker must generate a small image sequence and present the sequence to the sensor. In a world with powerful image editors, free video editors, and tablet PCs, this is relatively easy to accomplish.
Such methods are characterized as "known interactions", i.e., the attacker knows the required interactions in advance and can prepare a query image sequence.
In ref. 23 the scene and eye blink context are included in the analysis. Measured performance is about 50 ms per video frame (20 FPS) on an Intel Core2 Duo 2.8GHz with 2GB RAM.
Challenge-Response Methods In the context of biometric authentication, a challenge response is defined as follows:
This method is used to verify the presence of a person by eliciting a direct response from the individual. The response 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. The challenge response can be used to protect the system from attacks.
(National Science & Technology Council's Subcommittee on Biometrics) Multimodal Systems
Multimodal systems have been proposed to improve the robustness of biometric authentication methods against spoofing attacks, noisy data, etc., see Reference 25.
The effect of simulated spoofing attacks on such multimodal systems is analyzed in Reference 26. The main result is that not all fusion schemes improve the robustness against spoofing attacks, implying that for some fusion schemes it is sufficient to spoof only a single biometric authentication method to spoof the entire multimodal system. Analysis of existing schemes with real spoofing attacks yields similar results, see Reference 27.
In general, there are three different classes of multimodal systems:
1) A system that successfully spoofs a single trait is sufficient to spoof the entire system. Optimizing a multimodal system for small FRRs usually yields such results.
2) A system in which: a) multiple traits must be spoofed to successfully spoof the entire system; and, b) spoofing any one trait in this multimodal system is less complicated than spoofing the same trait in a single modal system.
3) Systems in which: a) multiple traits must be spoofed to successfully spoof the entire system; and b) spoofing any trait in this multi-modal system is more complicated than spoofing the same trait in a single modal system. The embodiments of the invention described below fall into this category.
One embodiment of the present invention performs eye tracking as part of the authentication process to measure responses to varying regions of interest that are randomly placed and displayed on the screen. For example, a sequence of random screen layouts mixing text, empty space, images and video clips can be presented to the user to induce eye movements in a non-invasive individual. At the same time, eye tracking technology is used to verify that the eyes are responding to the screen layout in an expected way. This information can then be combined with face recognition technology to verify that the expected face is still present. Furthermore, as described above, eye tracking and face recognition technology can be combined with other technologies (e.g., location-based authentication, non-invasive user presence detection, fingerprint scanning, etc.) to reach a sufficient level of assurance that the legitimate user owns the device.
Reading a web page or other type of content involves a smooth sweep of the eyes along the content, but not a series of short pauses and quick "flicks" (called "fixations"). The result of the series of fixations and flicks is called a "scanpath." Scanpaths are useful for analyzing cognitive intent, attention, and salience (see the current Wikipedia article on "Eye Tracking" en.wikipedia.org/wiki/Eye_tracking). A "heatmap" is an aggregate display showing the areas of fixations of groups of people when viewing a web page or email (Hartzell, "Crazy Egg Heatmap Shows Where People Click on Your Website" (November 30, 2012), now www.michaelhartzell.com/Blog/bid/92970/Crazy-Egg-Heatmap-shows-where-people-click-on-your-website).
As shown in Figure 26A, one embodiment of the present invention comprises an authentication engine 2610 in a client device 2600 that includes a facial recognition module 2604 for performing the facial recognition described herein and an eye tracking module 2605 for performing eye tracking operations. In one embodiment, the facial recognition module 2604 and the eye tracking module 2605 analyze a sequence of video images 2603 captured by a camera 2602 on the device to perform the respective operations.
To perform its facial recognition operations, the facial recognition module 2604 relies on facial recognition templates stored in a secure facial recognition database 2646. In particular, as described above, query logic within the facial recognition module 2604 compares facial features extracted from the video image 2603 with facial template data stored in the facial recognition database 2646 and generates a "score" based on the similarity of the extracted features to the facial template data. As described above, the facial template data stored in the database 2646 may be generated by an enrollment process in which a user enrolls a facial image or other biometric data in the device 2600. The score generated by the facial recognition module 2604 may then be combined with scores from other authentication modules (such as, for example, the eye tracking module 2605 described below) to form an assurance level 2606 that represents an assurance that a legitimate user is initiating the current transaction. In one embodiment, each score must reach a certain threshold to generate a sufficient assurance level 2606 for a particular transaction. In one embodiment (assuming a threshold has been reached), the scores can be added together or combined using other mathematical formulas (e.g., the scores can be weighted, averaged, added together, or combined in any other way).
To perform the eye tracking analysis, the eye tracking module 2605 relies on an eye tracking template stored in a secure eye tracking database 2645. Although illustrated 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, photos, videos, and/or blank areas (some examples of which are shown in Figures 28A-B below) that will be displayed to the user on the client device's display 2601, as well as the order in which the content will potentially be displayed. Additionally, the eye tracking template includes data identifying expected behavior 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). A query logic within the eye tracking module 2605 compares the actual movements (captured from the video image) with the expected movements of the user's eyes to arrive at a "score" based on the similarity of the expected movements with the actual movements. As described above, the score can then be combined with scores from other authentication modules (e.g., facial recognition module 2604) to form an assurance level 2606. The eye tracking template data stored in database 2646 may be compiled using recorded eye movements of other users and/or the actual user of the device in response to each displayed web page or other displayed image. For example, similar to face recognition templates, eye tracking templates may be generated as part of a registration process in which a user registers his/her eye movements with device 2600.
In one embodiment, the eye tracking module 2605 determines the correlation between the displayed image (which may include text, graphics, video, images, and/or blank areas) and the user's eye movement. For example, if a video is displayed in the bottom right corner of the display, most of the user's attention will be directed to this area. Therefore, if the eye tracking module 2605 detects that the user's eyes move to this area within a specified period (e.g., 2 seconds), it detects a high correlation between the user's eyes and the template, resulting in a relatively high score. In contrast, if the user's eyes do not move to this area (or do not move at all), the eye tracking module 2605 detects a low correlation and a corresponding low score.
As shown in FIG. 26A, various other explicit user authentication devices 2620-2621 and sensors 2643 can be configured on the client device 2600. These authentication devices and sensors can provide additional authentication data used by the authentication engine 2610 (if necessary) when generating the assurance level 2606 (i.e., in addition to the eye tracking and facial recognition described herein). For example, the sensors can 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 can use this data to increase the assurance level 2606. Conversely, if the client device is in an abnormal location (e.g., in another country), this can negatively impact the assurance level 2606. In this manner, authentication data can be generated non-invasively (i.e., using sensor data collected without explicit input from the end user).
Yet other non-invasive techniques include an authentication engine 2610 that monitors the time that has elapsed since the last explicit user authentication. For example, if the user has been authenticated using a fingerprint or other biometric device 2620-2621 or has recently (e.g., within the last 10 minutes) entered a password, it uses this information to increase the assurance level 2606. In contrast, if the user has not been explicitly authenticated for several days, it may require a more stringent authentication by the facial recognition module 2605 and eye tracking module 2605 (e.g., it may require a higher correlation with template data than usual to increase the assurance level to an acceptable value for the current transaction).
In one embodiment, the secure storage device 2625 is a secure storage device that stores authentication keys associated with each of the authenticators and provided for use by the secure communication module 2613 to establish secure communications with a trusted party (e.g., a cloud service 2650 or other type of network service).
FIG. 26B illustrates another embodiment in which the authentication engine 2610 includes a voice recognition module 2660 and a lip movement analysis module 2670 in addition to (or instead of) the face recognition module 2604 and the eye tracking module 2605. In one embodiment, the user's voice is captured via a microphone 2680 and the analog voice signal is converted to a digital signal via an analog-to-digital (A/D) converter 2681. The voice recognition module 2660 compares the digital voice signal to the user's voiceprint stored in the voice database 2665. In one embodiment, the voiceprint is generated during a training/enrollment process in which the user is prompted to speak certain words or phrases. Upon receiving the digitized voice signal resulting from the spoken language/phrase, the voice recognition module 2660 generates the voiceprint by capturing certain characteristics of the user's voice (e.g., spectral characteristics, phonetic-based classification, etc.) and storing the results in the voice database 2665. The voice recognition module 2660 may utilize a variety of voice recognition techniques in generating and comparing the voiceprint with the captured voice signal, including, but not limited to, techniques based on frequency estimation, hidden Markov models, Gaussian mixture models, pattern matching algorithms, neural networks, matrix representations, vector quantization, and decision trees.
In one embodiment, the user is prompted to speak a particular sequence of words and/or phrases that are displayed on the client device's display 2601. These can be the same or similar words/phrases used during the enrollment process so that the voice recognition module 2660 can compare similar voice characteristics to those captured in the voiceprint.
In response to that analysis, the voice recognition module 2660 generates a "score" or other value that indicates the degree to which the captured voice and voiceprint are similar or dissimilar. These results are then used by the authentication engine 2610 to increase or decrease the level of assurance 2606. For example, if there is a 97% chance that a legitimate user spoke the indicated word/phrase, the level of assurance 2606 can be increased. In contrast, if there is a 97% chance that a legitimate user did not speak the word/phrase, the level of assurance 2606 can be decreased.
Further, one embodiment also includes a lip analysis module 2670 that performs an analysis of the movement of the user's lips as the user utters the word/phrase. For example, the lip analysis module 2670 can compare the video image 2603 of the user as the user utters the word/phrase to determine the extent to which the audio stream captured via the microphone 2680 matches the video stream. If the user's lips are not synchronized with the captured audio stream, this can indicate that the current user is spoofing the system (e.g., playing a recording of the legitimate user's voice). To determine whether synchronization exists, the lip analysis module 2670 can be trained to associate specific phonetic symbols and volume levels with specific lip/mouth positions and/or movements. For example, periods when the user's mouth is open (i.e., lips separated) would be expected to result in a louder volume than when the user's mouth is closed (lips together). Similarly, vowel sounds would be expected to be heard during periods when the user's lips are separated and consonants would be expected to be heard during periods when the user's lips are together.
Additionally, in one embodiment, the lip movement analysis module 2670 can compare lip movements captured in the video images 2603 with baseline lip movements of the user stored in a lip movement database 2675. Similar to voiceprints, baseline lip movements can be captured during an enrollment process where images of a user speaking specific words/phrases are recorded and relevant data is extracted and stored in the database 2675.
In one embodiment, a score or other value is generated by the lip analysis module 2670 to indicate a correlation between the user's lip movements captured on the video 2603 and those expected. For example, if the audio and video appear to be synchronized, the lip analysis module 2670 may generate a relatively higher score than if the audio and video appear out of sync. Similarly, the lip analysis module 2670 may generate a relatively higher score if the lip movements detected in the video image 2603 have a high correlation with reference lip movements stored in the lip database 2675.
In one embodiment, the analyses of the voice recognition module 2660, lip movement analysis module 2670, face recognition module 2604 and/or eye tracking module 2605 may be combined to generate a level of assurance 2606 that provides a likelihood that a legitimate user owns the client device 2600. An embodiment of the invention may be implemented with any one of these modules, or any combination of these modules, to generate a level of assurance 2606. This level of assurance 2606 may then be used in combination with various other authentication techniques described herein.
Although some components from FIG. 26A are not shown in FIG. 26B to avoid obscuring additional features of this embodiment (e.g., sensor 2643, eye tracking database 2645, facial recognition database 2646, explicit user authentication devices 2620-2621, secure storage device 2625, etc.), these components can be considered to be included in the embodiment of FIG. 26B.
An exemplary "heat map" generated for a webpage is shown in Figure 27. The color codes represent the areas of the webpage where users fixed their eyes while viewing: red indicates the greatest amount of fixations (meaning that users tended to look at these areas more frequently), followed by yellow (indicating fewer fixations), blue (indicating even fewer fixations), and no color (indicating no fixations or fixations below the threshold).
When designing a web page, eye tracking and heat map analysis are performed as part of the usability analysis. Studies (see, for example, refs. 29, 30) have shown that web users spend 80% of their time looking at information above the fold of the page. Although users do not scroll, they allocate only 20% of their attention 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. Hence, a traditional layout makes the site more likely to be useful.
Spoofing attacks such as presenting still images or videos displayed on the monitor can be detected by the eye tracking module 205 as scan paths that likely do not correlate with the screen layout. Different types of eye tracking methods are available: high-precision specialized equipment and software based methods using standard webcams (see Reference 33).
FIG. 28A illustrates an exemplary grouping of text 2805 and image and/or video 2801 displayed on a client device's display 2601. In one embodiment, the grouping is integrated into a web page. However, the underlying principles of the invention are not limited to web-based organizations. The grouping can also be part of a screensaver or other application. In one embodiment, the text 2805 and image/video 2801 are displayed simultaneously. In another embodiment, the text is displayed first, followed by the image/video 2801. In either case, the expectation is that the user's eye will be directed to the bottom right of the display 2601 (where the image/video 2801 is displayed).
28B illustrates another example including a text area 2805 and three image/video elements 2800-2802. In one embodiment, image/video element 2800 is displayed first, followed by image/video element 2801, followed by image/video element 2802. In such a case, the user's eyes must move from the top right corner of the display to the bottom right and then to the bottom left.
In one embodiment, the particular image/video elements 2800-2802 and other content types are randomly selected by the eye tracking module 2605, thereby making authentication and spoofing difficult. Additionally, the particular location may be different than the location at which the different image/video elements 2800-2802 are randomly selected. In such a case, the eye movement template may specify a particular mode of operation for displaying the content, but not the actual content at the actual location. The eye tracking module 2605 assumes that the user's eyes must gravitate towards the content to be displayed, and generates a correlation and score based on the extent to which this is detected.
Additionally, rather than generating unique content, the eye tracking module 2605 can use existing content, such as existing web pages of the trusted party 2650 or images stored locally on the device. For example, if the trusted party is a financial institution and the user is entering into a financial transaction, a web page that is typically displayed during the transaction can be displayed. In such a case, the eye tracking module 2605 can retrieve a heat map of the web page (as shown in FIG. 27) from the eye tracking database 2645 and determine if a correlation exists between the heat map and the locations viewed by the end user.
In summary, the embodiments described herein can present a sequence of random screen layouts that mix text, empty space, images, and video clips, and continuously track the user's eyes which generate the captured scan path. A correlation is then made between the captured and expected scan paths. Furthermore, one embodiment of the present invention can then reconfirm that a face has been further recognized.
Not all people are equally attracted to the same images or image sequences. For example, some people are more attracted to technology than to animals, text, known or unknown human faces and bodies, mystical symbols or mathematical formulas. With this in mind, one embodiment of eye tracking module 2605 trains a person to the unique characteristics of eye movements induced by different types of images. The similarity of the characteristics measured from the video images 2603 and the reference data (stored in eye tracking database 2645) is then used to generate a level of assurance 2606 (i.e., the certainty that a legitimate user's eyes are following the "challenge" images, footage and other content displayed on display 2601).
A method according to one embodiment of the present invention is illustrated in Figures 29A-B. The method can be implemented in a system architecture such as that shown in Figure 26A, but is not limited to any particular system architecture.
29A, at 2901, a particular eye tracking template is selected for a given user and/or transaction. At 2902, a sequence of images of the user's face is captured while displaying content 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 specify the type of eye tracking in general, and the eye tracking module 2605 may determine how, where, and when to display the content.
Regardless of how the content is selected and displayed, facial recognition is performed at 2903 and eye tracking analysis is performed at 2904 using the sequence of captured images. A facial assurance level is generated at 2905 based on correlation of the captured images with facial templates. Similarly, an eye tracking assurance level is generated at 2906 based on correlation of the user's eye movements with expected movements of the user's eyes.
Figure 29B illustrates a sequence of speech recognition and lip movement correlation operations that can be performed in parallel with the operations of Figure 29A, or the operations of Figures 29A-B may be performed sequentially in any order until an acceptable level of assurance is reached.
At 2911, the voice and video of the current user who owns the client device are captured and digitized. At 2912, a particular voiceprint is selected from a voice database (e.g., previously recorded for the user during the enrollment process) and a voice recognition operation is performed. At 2917, a score/assurance level is generated indicative of the correlation between the current user's voice and voiceprint. At 2913, a correlation is determined between the digitized voice and the lip movements of the captured video of the current user, and at 2915, a score/assurance level is generated based on the synchronization level. At 2914, a correlation is performed between the captured lip movements in the video and the reference lip movement data collected during the enrollment process of the legitimate user. At 2916, a score/assurance level is generated indicative of the degree to which the captured lip movements match the reference lip movements. Following 2917, 2915, and/or 2916, the resulting score is combined with the results of 2905 and 2906 to generate a final assurance level at 2907. As discussed above, if the combined results are determined to be sufficient at 2907, the transaction is permitted at 2909. If not, additional authentication techniques may be required at 2908.
29A-B as parallel processes 2903/2905 and 2904/2906, the facial recognition operation 2903/2905 may be performed first, followed by the eye tracking operation 2904/2906 if the facial recognition operation yields a high correlation/assurance level (or vice versa). Similarly, the voice recognition operation 2912 and the lip movement operations 2912/1913, 2915/2916 may be performed in parallel or sequentially (e.g., until an acceptable assurance level is reached).
At 2907, a determination is made as to whether the combined results of facial recognition and eye tracking are sufficient to allow the current transaction to proceed. If so, the transaction is permitted at 2909. If not, at 2908, the transaction is not permitted or additional authentication techniques are required to increase the level of assurance. For example, at this stage, the user may be asked to swipe a finger over a fingerprint sensor or enter a PIN associated with the user's account. If it is determined at 2910 that the additional authentication techniques are sufficient, the transaction is permitted at 2909.
H. Systems and methods for collecting and using client data for risk assessment during authentication
Some types of authenticators are highly trusted, others are not. Hence there is a range of assurance that a trusted party can have the authenticator readings and certain types of client data that can be used for risk assessment (e.g. to adjust its assurance up or down). For example, if the remote authenticator has a secure element or a trusted execution environment (TEE), the authentication can be securely signed by an attestation key. The attestation key is inside the secure element and cannot be accessed by any external entity. The actual authentication operation is performed within the secure element. Using the signature of the attestation key, the trusted party can know for sure that the remote authenticator is responsible for the authentication attempt.
If the remote attester lacks a secure element, then the attestation signing must be done in software which opens the door for attacks. One way to mitigate this is to store the attestation key in a software-protected "white box". The attestation key cannot leave the white box and cannot perform signing on an authentication attempt. However, because the code doing the attestation and the white box doing the attestation signing are decoupled (and the white box is software-based), this is more reliable than using a secure element or trusted execution environment (TEE).
Finally, lacking all of the above, the entire authentication operation could be performed entirely in software. This is the least secure, since both the authentication code and the certification key itself can be compromised.
In any of the above examples, it would be beneficial if a trusted party could collect client data to determine the particular way in which authentication is performed so that client risk can be assessed at the time of authentication (e.g., when generating an assurance level as described below).
By improving risk assessment through additional data, one embodiment of the present invention avoids fraudulent transactions by collecting client data to assess the risk associated with each client. The level of risk associated with a client can be used to specify the authentication technique that must be used to authenticate the user for a particular transaction. To assess risk, one embodiment of the present invention determines (1) what types of data are useful for the risk calculation, (2) how to obtain the additional data that cannot be securely provided by the web browser, and (3) how to do so in a manner that does not violate the user's privacy.
One of the biggest reasons viruses, worms and malware infect computers is because the operating system has not been updated recently to close potential vulnerabilities. These vulnerabilities in the operating system, when made public, are very easy to exploit by criminals. The longer a system goes without an update, the more potential vulnerabilities exist to exploit and the greater the risk that passwords can be compromised by malicious code. Web browsers do not allow websites to access the update history of a user's computer. If they did, websites could identify potential victims based on vulnerabilities known to be on the system. Thus, one embodiment of the present invention operates as a secure agent that runs as a native application (rather than a browser plug-in) that collects client data to determine the current operating system version and/or how recently the operating system was updated.
One defense against malicious code is antivirus software (e.g., Windows® Defender®) after it has infected a user's computer. Even though malicious code has already infiltrated the system, the antivirus software at least alerts the user that something bad has happened, thereby limiting the eventual damage done. The user can change account passwords and verify recent transactions. However, if no antivirus software is installed or antivirus software is installed but not recently run, it is highly likely that the user is unaware that malicious code is present on the computer. Transactions occurring on that computer will be at high risk of fraud. Web browsers do not reveal whether antivirus software is installed on the computer. Therefore, in one embodiment, the native agent application deploys and collects client configuration data to determine whether antivirus software is installed and, if so, how recently it has been updated and/or run.
Another defense, especially against worms, is the firewall. When a software firewall is installed and enabled on a user's equipment, the number of entry points for attacks is greatly reduced. Open ports that normally service any request coming over the wire from random Internet hosts are neutered. Thus, the risk is eliminated since even if the service listening on the port has an unpatched security hole, no communication is allowed to access it. On the other hand, a computer running without a software firewall has a much greater chance of being infected with a worm, especially if it has not been updated recently. Web browsers can detect firewalls indirectly, with limited success, via port scanning. Thus, in one embodiment, a native agent application deploys and collects firewall configuration data to determine whether a firewall is installed and, if so, how it has been recently updated.
If a user's computer is physically stolen, a significant amount of information can be collected by criminals and used to commit fraud. If the user's equipment is password protected, and preferably the entire hard drive is encrypted with that password, the risk of information leaking due to theft is mitigated. If not, a higher level of risk can be assessed. Therefore, in one embodiment, the native agent application determines whether the contents of the hard drive have been encrypted and uses this information as part of the client's risk assessment.
Furthermore, as mentioned above, if the client uses a secure element or trusted execution environment (TEE) to perform the authentication, the trusted party can have a high assurance that the authentication provided by the client is legitimate. If the remote attester lacks a secure element, a software-protected "white box" can be used to protect the authentication data (e.g., the attestation key). However, as mentioned above, this is more reliable than using a secure element or trusted execution environment (TEE), since the code doing the authentication and the white box doing the authentication signing are decoupled (and the white box is software-based). Finally, lacking all of the above, the entire authentication operation (not the most secure method, as mentioned above) can be done entirely in software. One embodiment of the present invention allows the trusted party to collect the above client data to determine the particular way in which authentication is being performed, so that the risk of the client in performing the authentication can be assessed.
As shown in FIG. 30, in one embodiment of the present invention, the client device 3000 includes a client risk assessment agent 3004 that, in one embodiment, collects various types of client configuration data 3050 and responsively calculates a risk level for the client 3000. In one embodiment, the client 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. Thus, the client risk assessment agent 3004 is not subject to the limitations associated with browser plug-ins and other types of program code that are limited in their ability to access client data for security reasons. In other words, the client risk assessment agent 3004 is permitted to collect data that HTML and JavaScript code executing in a browser context would not be permitted to access. Thus, even though the authentication engine 3010 can be implemented within a browser context, it has access to additional risk analysis provided by the client risk assessment agent 3004 (it should be noted that the authentication engine 3010 does not have to be implemented within a browser context while still adhering to the basic principles of the present invention).
In one embodiment, the authentication 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 a pending transaction (e.g., a financial transaction, an online purchase, access to sensitive information in a user's account, etc.) with a remote trusted party 3051 over a network is completed. In one embodiment, the trusted party 3051 can specify the level of assurance required for a given transaction. For example, for a financial transaction involving the transfer of a significant amount of money, the trusted party 3051 may require a relatively higher level of assurance than, for example, a transaction involving access to a user's email account. Although illustrated as a single entity, the "trusted party" may include a website or other online service with a separate secure transaction server for performing the basic authentication techniques described herein.
In one embodiment, the assurance level calculation module 3006 sends the assurance level (e.g., specified as a value, ratio, code, etc.) to the trusted party 3051 without disclosing the user's sensitive information collected by the client risk assessment agent 3004, thereby protecting the user's privacy. In other embodiments, the assurance level calculation module 3006 knows the assurance level required for the current transaction, determines whether the assurance level is high enough, and sends an indication of whether the transaction is allowed or denied to the trusted party 3051, again without disclosing the user's private information to the trusted party 3051.
In one embodiment, communications between the client device 3000 and the trusted party 3051 are secured via a secure communications module 3013 that 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 invention are not limited to any particular type of encryption.
In one embodiment, the assurance level calculation module 3006 determines the assurance level based on risk data provided by the client risk assessment agent 3004 as well as current user authentication results 3005. In particular, the user authentication results 3005 can include the results of current or recent explicit user authentication via one or more explicit user authentication devices 3020-3021. This can include, for example, fingerprint authentication via a fingerprint authentication device, facial recognition authentication via a camera and facial recognition hardware/software, voice recognition via a microphone and voice recognition hardware/software, a retina scan 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.
In one embodiment, the secure storage 3025 cryptographically protects the biometric reference data records for each user authentication device 3020-3021 (e.g., wrapping the data using a symmetric key to secure the storage 3025). Although the secure storage 3025 is illustrated 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 records.
In addition to explicit user authentication, one embodiment of the authentication engine 3010 collects data from sensors 3043 to be used by the assurance calculation module 3006 to generate an assurance level. By way of 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 work or home, this increases the likelihood that the user is a legitimate user. In contrast, if the user is in an expected location, such as a foreign country not previously visited, this increases the likelihood that the user is not a legitimate user. Thus, in one embodiment, the assurance calculation module 3006 tends to increase the assurance level when the user is in an expected location and decrease the assurance level when the user is in an unexpected location.
Various additional 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 a current temperature/humidity that can be compared to a known temperature/humidity for a location specified by a location sensor. If the values are significantly different, this can indicate that the client device 3000 is being spoofed. The comparison of the claimed location and temperature/humidity can be made at a remote server, such as a secure transaction server 4632, described below with respect to Figures 46A-B. In other embodiments, an accelerometer in the device can be used to measure the user's gait and compare these measurements against the user's known gait. If the gait matches (within a specified threshold), this increases the likelihood that a legitimate user owns the client device 3000.
As shown in FIG. 31, various client configuration data relevant to risk determination may be collected and used including, for example, hardware data 3101, operating system data 3102, and application data 3103. By way of example, and not by way of 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 the current operating system version, the date the OS was updated, and the current boot mode (e.g., booted from hard drive). Application data 3103 may include an indication of whether a firewall is active, the firewall type and version, an indication of whether antivirus software is installed with updates to the current version and virus definition files, an indication of whether antivirus software is active (e.g., actively monitoring the client device at runtime), an indication of the last full and/or partial virus scan, and the results of the most recent virus scan. Additionally, application data 3103 or OS data 3102 may include an indication of whether data is stored in the user's persistent storage (e.g., hard drive, flash memory, etc.) in an encrypted or secure manner.
As described above, in one embodiment, the assurance level calculation module 3006 decomposes both the risk assessment data provided by the client risk assessment agent 3004 and the user authentication result 3005 to arrive at an assurance level that a legitimate user is attempting the current transaction. By way of example, and not by way of 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 calculation module 3006 that the client represents a higher risk than a client that has these characteristics enabled. Similarly, if the virus detection software has not been recently updated or run (e.g., within a threshold time), the client risk assessment agent 3004 may report an increased risk to the assurance level calculation module 3006. The risk level may be specified in a variety of ways while still adhering to the underlying principles of the present invention. For example, risk levels can be based on a ratio (e.g., 0%=minimal risk, 100%=maximal risk, and all numbers in between representing different levels of intermediate risk) or a number on a scale (e.g., 1=minimal risk, 10=maximal risk, and all numbers in between representing different levels of intermediate risk).
Regardless of how the risk data is provided, in one embodiment, the assurance level calculation module 3006 determines the level of authentication required 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 more reliable and/or explicit user authentication, such as a PIN/password entry and/or fingerprint scan, to authenticate the user for the current transaction. In contrast, 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-invasive user authentication, such as location-based authentication and/or reliance on recent explicit user authentication for the current transaction.
It should be noted that the data in Figure 31 is arranged in a tabular format for simplicity. The actual client configuration data 150 can be stored in a variety of different formats, including binary files, hierarchical file system structures, linked lists, and OS registry formats, to name a few. The underlying principles of the present invention are not limited to any particular format of configuration data.
As shown in FIG. 30, in one embodiment, the client risk assessment agent 3004 has access to the client configuration data 3050 via the OS (e.g., by making appropriate calls to application programming interfaces (APIs) exposed by the OS). In other embodiments, the client risk assessment agent 3004 accesses the client configuration data 3050 directly from the underlying file system in which the data is stored. In one embodiment, the client risk assessment agent 3004 has secure access to the underlying configuration data. Various security features may be implemented to ensure the security of the configuration data 3050, such as a chain of trust and secure enclaves.
One consideration that allows additional risk information to be provided to the website is that the rationale for why the browser did not provide this information in the first place is not ignored. Certainly, a malicious website could well use this information, and web browser developers have good reason to leave this information out of reach. Therefore, as noted above, in one embodiment, the basic client configuration data 3050 is not provided directly to the trusted party 3051. Rather, 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. All trusted parties 3051 need to know whether authentication was successful and/or the current assurance level (if an assurance level has been pre-specified). In this manner, the client configuration data 3050 is protected from this disclosure.
One embodiment of a method for assessing a client's risk upon authentication is shown in Figure 32. The method can be implemented on the architecture shown in Figures 30-31, but is not limited to any particular system architecture.
At 3201, client configuration data related to the client's risk is obtained. This may include, for example, the presence and current state of firewall or virus detection software and/or the current version of the operating system (e.g., was the OS recently updated). At 3202, the client configuration data is evaluated to determine a risk value for the client (e.g., a ratio, numerical value, or other data that can identify a risk level). At 3203, the client risk assessment is used to determine an assurance level. In one embodiment, a high risk value requires a higher assurance level (e.g., a risk value of 10 may require an assurance level of over 90%). In other embodiments, the assurance level itself is calculated based on the assessed risk. For example, as discussed above, the risk value can be included as one of many variables to determine the current assurance level (including previous or current user authentication).
At 3204, an authentication technique is selected that, if completed successfully, raises the level of assurance 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-invasive authentication may be sufficient.
At 3205, a determination is made as to whether the authentication was successful. If so, the transaction is permitted at 3208. If not, at 3206, one or more additional authentication techniques may be required or the transaction may be permitted. For example, if the current assurance level is insufficient, the user may be required to enter secret information previously provided to the trusted party 3051 or may provide other/additional authentication. If it is determined at 3207 that the additional authentication techniques are sufficient, the transaction is permitted at 3208. If not, the transaction is prohibited at 3206.
I. SYSTEM AND METHOD FOR AUTHENTICATING LOCAL TRANSACTIONS
Embodiments of the invention described herein include techniques for authenticating a user to initiate a local transaction via a local secure transaction device. By way of 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 a financial transaction. Similarly, a local transaction may include completing a payment to purchase goods or services at a retail store or other retail location equipped with a local secure transaction device.
As shown in FIG. 33, in one embodiment, a client device 3300 having a biometric authentication device and associated software authenticates over a network to a trusted party via a secure transaction service 3351 to perform a transaction on a local secure transaction device 3350. In particular, when a user of the client device 3300 wishes to perform a transaction locally using the secure transaction device 3350, it initiates a series of authentication transactions with the trusted party 3351 (examples of which are described below). For example, the user may be required to swipe a finger over a fingerprint sensor in the client device 3300 and/or enter a PIN or other secret code via the client's keypad. The result of the authentication may then be transmitted from the client device 3300 to the trusted 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.
In response to successful authentication, the trusted party 3351 can send a signal to the local secure transaction device 3350 to perform an operation. For example, if the local secure transaction device is an ATM, the signal can instruct the ATM to dispense a specified cash amount. If the local secure transaction device 3350 is a retail checkout device, an indication of successful payment can be sent and the user's account can be debited.
Further, as shown in Fig. 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 authentication process. The local secure channel can be established using wireless communication interfaces on the client device 3300 and the local secure transaction device 3350 using various wireless communication technologies such as Near Field Communication (NFC), Bluetooth or WiFi (e.g., 802.11x channel), for example. For example, when in the vicinity of the location secure transaction device 3350, the client device 3300 can perform a Near Field Communication (NFC) handshake over the wireless interface with the wireless interface of the local secure transaction device 3350 to exchange data during authentication and establish a local secure channel.
The mere presence of the local secure channel contains authentication data since it establishes the current location of the client device 3300. This information can therefore be used by the trusted party 3351 as proof of the current location of the client device 3300 during the authentication process. In one embodiment, the trusted 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 ensure the two location values match.
Additionally, the trusted party 3351 can send a secret code or other authentication data to the client device 3300, which can then relay to the local secure transaction device 3350 over the secure local channel to authenticate the client device. For example, in one embodiment, the trusted party 3351 sends a barcode to the client device 3300 and a corresponding code to the local secure transaction device. The local secure transaction device 3350 can then read the barcode (e.g., from the display of the client device 3300) using a barcode scanner or camera (i.e., compare the code read from the barcode with the code received from the trusted party) to perform authentication. Alternatively, the local secure transaction device 3350 can send the code read from the barcode to the trusted party who then verifies that the codes match. Conversely, the trusted party 3351 can send a secret code or other authentication data to the local secure transaction device 3350, which then relays the data to the client device 3300 for authentication. Hence, the local secure channel can be used to exchange data for various authentication techniques.
As mentioned above, in one particular embodiment, the local secure transaction device 3350 is an ATM machine. 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 available for tampering. For example, debit card records and pins can be easily stolen by low-tech devices such as hidden magnetic stripe readers, mirrors and video cameras. In one embodiment, a remote authentication technique involving communication between the client 3300 and the trusted party 3351 is used to provide significantly improved authentication for ATM machines. Integrated with this remote authentication, the ATM itself does not need to have legacy input/output controls such as a card reader, touch screen or keyboard. All it needs is a network connection and a slot to dispense cash. Its own authentication can be performed on the customer's client device 3300 equipped with a biometric authentication device.
In one embodiment, to withdraw cash, a user enters the vicinity of the ATM machine and initiates a remote authentication application to authenticate to trusted party 3351. The user then enters the amount to be withdrawn and swipes a finger using a fingerprint sensor on the mobile device (or any other type of user authentication as described below). If the user's presence and authentication is confirmed by trusted party 3351, the specified amount is dispensed from a slot in the ATM.
This embodiment not only provides stronger authentication, it also transforms complex and expensive ATMs into simple and reliable money 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 the biometric related authentication features are installed directly in the trusted party's client device 3300 and/or the secure transaction server 3351.
Additional architectural details of one embodiment of the 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 the local secure transaction device 3350 and the trusted 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 an authentication engine 3310 performs a remote authentication by the trusted party to verify that the client device 3300 is in the possession of a legitimate user.
In one embodiment, the authentication engine 3310 performs authentication by entering into a series of transactions with a trusted party's secure transaction server as described in the co-pending patent applications referenced above. For example, these transactions may include an enrollment process in which a user enrolls a client's biometric device to generate biometric template data (e.g., by swiping a finger, snapping an image, recording a voice, etc.). The enrollment may be under the direction of the trusted party's secure transaction server, or may be performed autonomously by the user. The user may then enroll the biometric device with the secure transaction servers over a network and subsequently be authenticated by these servers using data exchanged during the enrollment process (e.g., encryption keys provisioned to the biometric device).
In one embodiment, the authentication engine 3310 includes an assurance level calculation module 3306 for calculating an assurance level corresponding to the likelihood that a legitimate user possesses the client device 3300. This assurance level can then be used to determine whether the trusted party 3351 should authorize a local transaction (e.g., a financial transaction, a retail purchase, access to sensitive information in a user's account, etc.) at the local secure transaction device 3350. In one embodiment, the trusted party 3351 can specify the level of assurance required for a particular transaction. For example, for a financial transaction involving the transfer of a significant amount of money, the trusted party 3351 can require a relatively higher assurance level than, for example, a transaction involving access to a user's account.
In one embodiment, the assurance level calculation module 3306 sends the assurance level (e.g., specified as a value, ratio, code, etc.) to the trusted party 3351 without disclosing sensitive information of the user, thereby protecting the user's privacy. In another embodiment, the assurance level calculation module 3306 knows the assurance level required for the current transaction, determines whether the assurance level is high enough, and sends an indication of whether the transaction is allowed or denied to the trusted party 3351, again without disclosing any private information of the user to the trusted party 3351.
In one embodiment, communications between the client device 3300 and the trusted party 3351 are secured via a secure communications module 3313 that 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 invention are not limited to any particular type of encryption.
In one embodiment, the assurance level calculation module 3306 determines the assurance level based at least in part on a current user authentication result 3305, which may include a current or recent explicit user authentication result via one or more explicit user authentication devices 3320-3321. This may include, for example, fingerprint authentication via a fingerprint authentication device, facial recognition authentication via a camera and facial recognition hardware/software, voice recognition via a microphone and voice recognition hardware/software, a retina scan 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.
In one embodiment, the secure storage 3325 cryptographically protects the biometric reference data records for each user authentication device 3320-3321 (e.g., wrapping the data using a symmetric key to secure the storage 3325). Although the secure storage 3325 is illustrated 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 records.
In addition to explicit user authentication, one embodiment of the authentication engine 3310 collects data from sensors 3343 to be used by the assurance calculation module 3306 to generate an assurance level. By way of 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. In contrast, if a GPS reading indicates that the user is not near the local secure transaction device 3350, this indicates that the user initiating the transaction is not a legitimate user. Thus, in one embodiment, the assurance calculation module 3306 tends to increase the assurance level when the user is in an expected location and decrease the assurance level when the user is in an unexpected location.
Various additional 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 a current temperature/humidity that can be compared to a known temperature/humidity for a location specified by a location sensor. If the values are significantly different, this can indicate that the client device 3300 is being spoofed. The comparison of the claimed location and temperature/humidity can be made at a remote server, such as a secure transaction server used by a trusted party 3351. In other embodiments, an accelerometer in the device can be used to measure the user's gait and compare these measurements against the user's known gait. If the gait matches (within a specified threshold), this increases the likelihood that a legitimate user owns the client device 3300.
The local authentication application 3304 may be implemented in a variety of ways while still adhering to the underlying principles of the present invention. For example, in one embodiment, the local authentication application 3304 is specifically designed for a trusted party 3351. For example, the trusted party may be a financial institution (e.g., Wells Fargo, In the case of a bank such as Fargo®, the local authentication application 3304 may be an application designed specifically for/by that bank. In other embodiments, the same local authentication application 3304 may be shared among various trusted parties, e.g., as a universal local authentication application. Additionally, although illustrated in FIG. 34 as a separate logical element, the authentication engine 3310 in FIG. 34 may be integrated within the local authentication application 3304. In other embodiments, the local authentication application 3304 may be a web browser or an application that runs within a web browser context (e.g., when a user comes into proximity of a local secure transaction device 3350 or connects to a trusted party's web page to initiate a transaction).
The local authentication application 3304 can perform various local functions depending on the implementation required by the trusted party. For example, in one embodiment, the local authentication application 3304 receives a secret code (or other authentication data) provided by the trusted party 3351 and securely transmits the secret code (e.g., via a barcode or using other communication techniques as described above) to the local secure transaction device 3350 for authentication. Alternatively, in one embodiment, a user can manually enter the secret code into the local secure transaction device 3350. Similarly, authentication data such as the secret code received by the local secure transaction device 3350 can be relayed to the local authentication application 3304, which then relays the authentication data to the authentication engine 3310 and/or relies on the trusted party 3351 (e.g., as proof of the location of the client device 3300).
One embodiment of a method for authenticating a client device is shown in Figure 35. The method can be implemented on the architecture shown in Figures 33-34, but is not limited to any particular system architecture.
In 3501, a client enters the vicinity of a local secure transaction device (e.g., an ATM), and in 3502, a secure connection is established with the local secure transaction device over a local channel. As mentioned above, the local channel can be implemented using near field communication, Bluetooth, Wifi, or other types of protocols supported by both the client device and the local secure transaction device. Operation 3502 may not be required in some embodiments. For example, a local channel may not be required if the client device can be authenticated by a trusted party that has a high level of assurance that the client device is owned by a legitimate user, and if the client device can verify its current location to the trusted party.
At 3503, the client device authenticates the trusted party over the network. Any available technique can be used for this operation to generate a level of assurance that a legitimate user is in possession of the device. For example, the user can perform explicit authentication by swiping a finger over a biometric fingerprint device, capturing a face image for facial recognition, and/or entering a secret code. Alternatively, non-invasive authentication techniques can be performed by determining whether the user has recently (e.g., within a specified period of time) 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 authentication can be provided to the trusted party over the network in a manner that protects the user's privacy (e.g., without providing data that specifically identifies the client device). For example, as described above, the assurance level itself and/or an indication of the success or failure of the authentication can be provided to the trusted party without disclosing sensitive user information.
If authentication is determined to be successful at 3504, then the local transaction is permitted at 3507. In one embodiment, this involves the trusted party sending 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 operation may include dispensing a user-specified amount of cash. If the local secure transaction device is a debit device (e.g., a retail store or other location where a user is making a purchase), the signal sent by the trusted party may confirm payment for the transaction (and debit the user's account accordingly). It should be noted that these are merely examples. Furthermore, a variety of alternative applications may be used while adhering to the basic principles of the present invention.
If the authentication at 3504 fails (e.g., because an acceptable assurance level has not been reached), the transaction may be 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., secret code entry if the initial authentication was a fingerprint, etc.). If the additional techniques are determined to be sufficient at 3506, the transaction is allowed at 3507. If not, the transaction is again denied and/or additional authentication techniques are attempted.
J. User Verification for Online Transactions
There are various scenarios in which completing a transaction with a trusted party requires 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 need to approve a transaction initiated by a soldier, an administrator may need to approve a business transaction initiated by an employee, and an encryption key management system may require multiple users to approve a particular transaction before it can be delegated.
One embodiment of the invention uses the techniques described herein to provide strong authentication of users over a network to enable multi-user authentication applications. One such example is shown in FIG. 36, which illustrates a client device having a remote authentication function 3600 controlled by a user who is initiating a transaction with a trusted party (hereafter simply "trusted party") having a secure transaction service 3650. In one embodiment, a user of the client device 3600 authenticates with the trusted party 3650 using one or more of the remote authentication techniques described herein (e.g., providing a biometric input such as swiping a finger over a fingerprint sensor, a PIN or password input, etc.).
In the illustrated embodiment, the other client devices 3601-3602 have users registered with the trusted party as "approvers" for the user of client device 3600. Thus, for certain types of transactions (e.g., financial transactions involving amounts above a specified threshold), the trusted party may require approval from the users of client devices 3601-3602. As explained below, the remote attestation techniques described herein are used as part of the approval process.
In one embodiment, in response to successful authentication by the user of the client device 3600, notification generation logic in the trusted party 3650 sends notifications to other client devices 3601-3602 that the user registered as an "approver" indicating that the user of the client device 3600 is attempting to complete the transaction. The notifications can be sent in various ways based on the underlying principles of the invention. For example, if the client devices 3601-3602 are mobile devices, push notifications can be sent to the client devices 3601-3602. Alternatively or additionally, the notifications can be sent via email, text message (e.g., SMS), instant message, or any other technology capable of delivering messages to the client devices 3601-3602.
In one embodiment, the notification includes details of the transaction attempted by the user of the client device 3600. For example, if the transaction is a financial transaction, the notification may include the specific amount processed and the type of financial transaction made (e.g., withdrawal, account transfer, etc.). Alternatively, the notification may include a link, such as a hyperlink or other type of pointer, that directs the user of the client device 3601-3602 to an authorization service at a trusted party. In response to selecting a link, the user of the client device 3601-3602 may be provided with details of the transaction (e.g., in a web page or other useful format for providing information).
In one embodiment, in response to the notification and reviewing the transaction details, the user of client device 3601-3602 can confirm the request by performing remote authentication with a trusted party (e.g., using the multi-factor authentication techniques described herein) and indicating approval of the transaction.
Additional architectural details of client devices 3600-3602 for use in one embodiment of the present invention are shown in Figure 37. In particular, client devices 3600-3602 of this embodiment include a secure transaction application 3704 for communicating with a trusted party 3650 to coordinate the transaction approval techniques described herein. The secure transaction application 3704 may be a standalone application that interfaces with an authentication engine 3710 via a secure application programming interface (API). Alternatively, the secure transaction application 3704 may be implemented as a mobile device application or a web browser plug-in.
In addition to coordinating the user verification process described herein, in one embodiment, the secure transaction application 3704 ensures that the text displayed to each user is the actual text associated with the transaction. For example, the application 3704 can display the text in a secure window and prompt the user to provide authentication to verify the transaction. The application can start a timer and periodically verify the contents of the current window displayed to the user (e.g., by generating a signature of the contents). The verification period may be chosen randomly. Thus, the application continually ensures that each user sees valid transaction details in the window (thereby ensuring that the text of the transaction has not been altered by a "man in the middle" attack). If the application detects that the contents have been tampered with, it prevents a transaction verification from being generated.
In one embodiment, after the user provides valid authentication (e.g., swiping a finger over a fingerprint sensor), the client device identifies the user and generates a token (cryptographic signature) with the transaction details (e.g., the displayed text) and a random challenge provided by the trusted party (e.g., the token can be signed over the transaction details and a nonce). This allows the trusted party 3650 to verify that the transaction details have not been altered between the server and the client. In one embodiment, the application 3704 sends the generated token and username to the trusted party, which then identifies the user by username and validates the token. If the validation is successful, a confirmation message is sent to the client and the transaction is processed.
The above techniques may be implemented for requesting/confirming both transactions originating from client device 3600 and authorization transactions originating from users of client devices 3601-3602.
Referring to FIG. 37, in one embodiment, authentication can be performed via an authentication engine 3710 in client devices 3600-3602 designed to perform a series of transactions by a trusted party 3650 to remotely authenticate each user. For example, as described in the co-pending application, an authentication framework and related authentication techniques can be used, where a user registers (e.g., by finger swiping, image snapping, voice recording, etc.) with a client biometric authentication device 3720-3721 to generate biometric template data, registers the biometric authentication device with one or more trusted parties 3650 over a network (e.g., a website equipped with secure transaction services or other trusted parties), and then authenticates with those trusted parties 3650 using data exchanged during the registration process (e.g., encryption keys provisioned in the biometric authentication device). In one embodiment, "registration" by a trusted party includes exchanging symmetric or asymmetric keys with the trusted 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) can be used to share the key with the client over a secure communication channel (see, e.g., Request for Comments (RFC) 6063), however, the underlying principles of the invention are not limited to any particular key provisioning protocol.
During the authentication phase, the keys are used, for example, to generate signatures, verify signatures, and/or encrypt communications between clients 3600-3602 and trusted parties 3650. Once authenticated, the user is permitted to perform one or more online transactions. Additionally, in one embodiment, sensitive information such as fingerprint data and other data that can uniquely identify a user may be kept locally on the user's client device (e.g., a smart phone, notebook computer, etc.) to protect the user's privacy.
In one embodiment, the authentication engine 110 includes an assurance level calculation module 3706 for calculating an assurance level corresponding to the likelihood that a legitimate user owns the client device 100. It can then use this assurance level to determine whether the trusted party 3650 needs to approve the current transaction. In one embodiment, the trusted party 3650 can specify the assurance level required for a given transaction. For example, for a financial transaction involving the transfer of a significant amount of money, the trusted party 3650 can require a relatively higher assurance level than a transaction that does not involve, for example, an exchange of money or merely access to user information.
In one embodiment, the assurance level calculation module 106 transmits the assurance level (e.g., specified as a value, ratio, code, etc.) to the trusted party 3650 without disclosing any sensitive information of the user, 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 of whether the transaction is allowed or denied to the trusted party 3650, without disclosing any private information of the user to the trusted party 3650.
In one embodiment, communications between client devices 3600-3602 and trusted party 3650 are secured via secure communications 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 invention are not limited to any particular type of encryption.
In one embodiment, the assurance level calculation module 3706 determines the assurance level based at least in part on a current user authentication result 3705, which may include a current or recent explicit user authentication result via one or more explicit user authentication devices 3720-3721. This may include, for example, fingerprint authentication via a fingerprint authentication device, facial recognition authentication via a camera and facial recognition hardware/software, voice recognition via a microphone and voice recognition hardware/software, a retina scan 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.
In one embodiment, the secure storage 3725 cryptographically protects the biometric reference data records for each user authentication device 3720-3721 (e.g., wrapping the data using a symmetric key to secure the storage 3725). Although the secure storage 3725 is illustrated outside the secure perimeter of the authentication devices 3720-3721, in one embodiment each authentication device 3720-3721 can have its own integrated secure storage to cryptographically protect the biometric reference data records.
In addition to explicit user authentication, one embodiment of the authentication engine 3710 performs non-invasive authentication by collecting data from sensors 3743 that are used by the assurance calculation module 3706 to generate an assurance level. By way of example, the sensors 3743 may include a location sensor, such as a GPS sensor, to indicate the user's current location. If the client devices 3600-3602 are 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. In contrast, if a 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. Thus, in one embodiment, the assurance calculation module 3706 increases the assurance level if the user is in the expected location and decreases the assurance level if the user is in an unexpected location.
Various additional 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 a current temperature/humidity that can be compared to a known temperature/humidity for a location specified by a location sensor. If the values are significantly different, this can indicate that the client device 3600-3602 is spoofed. The comparison of the claimed location and temperature/humidity can be made at a remote server, such as a secure transaction server used by a trusted party 3650. In other embodiments, an accelerometer in the device can be used to measure the user's gait and compare these measurements against the user's known gait. If the gait matches (within a specified threshold), this increases the likelihood that a legitimate user owns the client device 3600-3602.
Other non-invasive authentication techniques include measuring the amount of time that has passed since the last successful user authentication. For example, if a user has performed an explicit user authentication very recently (e.g., swiping a finger over a fingerprint sensor only minutes ago), this tends to indicate that a legitimate user remains in possession of the client device (thereby providing a high baseline level of assurance). In contrast, if the last explicit authentication was hours or days ago, a new explicit user authentication may be required to reach an acceptable level of assurance.
A method according to one embodiment of the present invention is shown in Figure 38. 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 trusted 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 that requires authentication by one or more parents or guardians. The user is also authenticated at 3801 by implementing one or more of the authentication techniques described herein.
At 3802, the server selects N other users that need to confirm the transaction triggered by the user. For example, upon detecting the initiation of a transaction by a user, the trusted party can query its user database to determine that the transaction requires confirmation and identification of users who can confirm the transaction. In one embodiment, a subset of all users who can confirm the transaction can actually confirm the transaction. For example, if the user is a minor with two parents, in one embodiment, a notification may be sent to both parents, but confirmation by either parent allows the transaction to proceed. Similarly, there may be 10 users authorized to confirm a business transaction, but only two confirmations are required to allow the transaction to proceed.
In one embodiment, a push notification can be sent to those users' client devices that can confirm the transaction (e.g., if the users have client devices capable of receiving push notifications). Alternatively or additionally, the notification can be sent via email, text message (e.g., SMS), instant message, or any other technique 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.
Regardless of how the confirmation request is sent, at 3803, all or a subset of the N users authenticate with the server as part of 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 to a biometric authentication device on the client that has been previously registered with the trusted party (e.g., swiping a finger over a fingerprint scanner). As described above, details related to 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 a user confirms a transaction, he/she has seen actual unaltered text describing the transaction).
If it is determined at 3804 that the 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. If it is determined at 3805 that the confirmation timer has reached a threshold (e.g., hours, days, etc.), the transaction is prohibited at 3806. The method waits at 3804 for the minimum specified number of users to confirm the request until the timer threshold is reached.
K. SYSTEMS AND METHODS FOR DELEGATING TRUST
Existing authentication systems do not allow new authenticators to be enabled using authenticators registered with a trusted client. For example, if a user has a fingerprint sensor on a mobile phone that installs a voice authenticator on the phone after being registered with many websites, she has no way to automatically register her voice authenticator with all the websites she has used with the fingerprint sensor. Rather, in this case, the user must step through the same registration and registration process to register the voice authenticator with a trusted party. Similarly, if the user purchases a new device with a new set of authenticators, the user must re-register and re-register all of the new authenticators with the server.
The embodiments of the invention described below allow a user to easily activate and register an authenticator on a new client device using a trusted client device that has already been activated and registered with one or more trusted parties. In particular, these embodiments can be used to activate new authenticators, activate new client devices, and maintain registrations in sync across multiple client devices.
FIG. 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 with an authenticator registered with one or more trusted parties 3950, establishes a secure connection with a new client device 3900 of a user. The particular manner in which the secure connection is established is not relevant to the underlying principles of the present invention. Various technologies can be used, such as Near Field Communication (NFC), Bluetooth, direct Wifi, etc., using a Quick Response (QR) code to establish an HTTPS connection. In one embodiment, the devices can exchange a large random token (LRT) required for the secure connection, and can establish the connection by providing the captured LRT to an online service, and bootstrap the secure communication via the service.
In one embodiment, once a secure connection is established between the trusted client device 3902 and the new client device 3900, a secure protocol is implemented (described in more detail below) to transfer and consolidate registration data from the trusted device to the new device. Once the registration is transferred, another secure protocol is implemented between the new client device 3900 and the trusted party 3950 to verify the registration (e.g., HTTPS in one embodiment).
Although the embodiments described herein focus on the transfer of authentication data used in an authentication transaction with a trusted party 3950, a trusted party may not be required to adhere to the underlying principles of the invention. For example, a trusted device 3902 may establish a secure connection to provide authentication data to a new client device 3900 without any trusted party being involved in the system (e.g., to provide authentication data for locally authenticating with the new client device 3900).
As shown in FIG. 40, the trust delegation modules 4000-4001 can be executed on the new device 3900 and the trusted device 3902, respectively, to establish a secure connection, exchange registrations, and verify the registrations with the secure transaction service 4004 at each trusted party 3950. As used herein, a "trusted authenticator" is an authenticator that the user has already registered with one or more trusted parties. A new "new authenticator" is one that the user wants to enable registration of all trusted parties that are currently used with the trusted authenticator. Therefore, the authentication engine 3711 is considered a trusted authenticator if the user previously registered one or more user authentication devices 3720-3721 with the trusted party. The purpose of one embodiment is to enable the authentication engine 3710 of the new device 3900 from the new authenticator to the trusted authenticator. A "trusted device" is one that has a trusted authenticator, and a "new device" is one that has a new authenticator.
Trust delegation refers to the process of using a trusted authenticator to validate a new authenticator. Thus, the prerequisites for trust delegation are that a user has a trusted device, that the user has a new device, and that the user wants to delegate trust from the trusted device to the new device.
Referring to FIG. 40, in one embodiment, a user initiates a trust delegation application 4000 on a new client device 3900 and a trust delegation application 4001 on a trusted client device to establish an initial secure connection. In one embodiment, the trust delegation application can be an application on a mobile device specifically designed to perform the trust delegation operations described herein. In another embodiment, the trust delegation application can be a browser plug-in that executes in response to a user indicating that he/she wishes to perform a trust delegation (e.g., via a web page containing embedded JavaScript or other applets or executable program code). Furthermore, the trust delegation application 4000-4001 can be a software module within a larger application, such as an authentication application designed to manage authentication with trusted parties. However, it should be noted that the underlying principles of the present invention are not limited to any particular implementation of the trust delegation application 4000-4001.
In one embodiment, to approve a trust delegation operation on the trusted device 3902, the user authenticates locally with the trusted device's authentication engine 3711 (e.g., provides a biometric input to the user authentication devices 3722-3723). Similarly, in one embodiment, the user may locally authenticate using 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 delegation operations.
As described above, the trust delegation applications 4000-4001 can utilize any of the communication interfaces available on the respective client devices 3900, 3902 (e.g., a Bluetooth interface for a Bluetooth connection, an NFC interface for an NFC connection, etc.) to establish a secure connection.
Once the secure connection is established, in one embodiment, the trust delegation application 4001 of the trusted client 3902 provides data indicating the number (N) of keys at the trusted client that are registered to the trusted party. In response, in one embodiment, the trust delegation application 4000 generates N new device key pairs (ND_Uauth) including one private key (ND_Uauth.priv) and one public key (ND_Uauth.pub) and sends the N new device public keys to the trust delegation application 4001 of the trusted device 3902.
In one embodiment, the trust delegation application 4001 then signs each of the N new device public keys with its 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 a private key associated with a particular registration corresponding to the trusted party. The trust delegation application 4001 can also insert a timestamp into the generated signature that can be subsequently used by the trusted party to verify exactly when the trust delegation occurred. In one embodiment, the trust delegation application 4001 of the trusted client 3902 sends each of the generated signatures along with other registration data associated with each trusted party to the trust delegation application 4000 of the new client 3900. The data for each trusted party can include one or more trusted party ID codes (e.g., an application ID code that identifies a service at the trusted party), a registered username for a user of the trusted party, a key ID code used by the trusted party to find the appropriate key during authentication, and other data related to the authentication process.
In one embodiment, when the trust delegation application 4000 receives the signature and other registration data, it consolidates this data into local secure storage 3725 so that it can be subsequently used when a new client device 3900 connects to the trusted party 3950.
In one embodiment, after the registration database is stored in the local secure storage 3725, a series of bootstrap operations can be performed by the trust delegation application 4000 to take advantage of the delegated registrations in the new client device 3900 by trusted parties (e.g., websites, services, etc.) that were previously registered in the trusted client device 3902. Alternatively, the described bootstrap operations can be performed by the authentication engine 3710 itself (via direct communication with the secure transaction service 4004 as shown in FIG. 40). The basic principles of the invention remain the same regardless of which particular software components in the new client device 3900 perform the operations.
In particular, in one embodiment, the secure transaction service 4004 of the trusted party 3950 detects that there is a registration on a new client device 3900 using a remote authentication protocol supported by the secure transaction service 4002 and the trust delegation application 4000. In one embodiment, the user may first be prompted by the secure transaction service 4004 to perform a biometric or other form of authentication (e.g., entering a secure code) from the new client device 3900. Additionally, at this stage, the secure transaction service 4004 may verify the timestamp inserted into the signature to ensure that the timestamp is not older than a threshold amount of time.
Assuming the user successfully provides biometric or other authentication data with an acceptable level of assurance, the trust delegation application 4000 and/or new authenticator 3710 prepares a response that includes three proofs: 1. A proof (ND_Uauth.pub) over the new device public key associated with the trusted party. In one embodiment, the proof includes a signature generated over the public key (e.g., using the trusted party's public key).
2. Attestation (ND_Uauth.priv) using the new device private key associated with the trusted party. In one embodiment, to generate the attestation, the private key is used to generate a signature over content known by the trusted party (e.g., a random challenge sent by the trusted party). Since the trusted party is equipped with the public key (in step 1), it can decrypt the content, thereby verifying that the private key was used to encrypt the content.
3. A signature (TD_Uauth.sig) associated with the new device public key for this particular trusted party along with a key ID (TD_Uauth.keyid) previously generated by the trusted client device and used by the trusted party to locate the public key (e.g., so that the key ID can be used to query its secure transaction database 4025 to obtain the public key).
In one embodiment, all of the above data is sent to the Trusted Party Secure Transaction Service 4004 in a remote authentication response.
In one embodiment, after receiving the proof, the Secure Transaction Service 4004 may perform the following verifications: 1. Populate the trusted device's public key (TD_Uauth.pub) with the key ID.
2. Verify the signature (TD_Uauth.sig) generated by the trusted device using the trusted device's public key (TD_Uauth.pub).
3. Verify the signature (ND_Uauth.sig) generated by the new device's private key using the new device's public key (ND_Uauth.pub), and 4. Verify the attestation over the new device's public key (ND_Uauth.pub) associated with the trusted party. In one embodiment, this verification is performed using the trusted party's private key.
One embodiment of a method for securely transferring enrollment data from a trusted device to a new device is shown in Figure 41, and one embodiment of a method for verifying enrollment data of a trusted party is shown in Figure 42. These methods may be implemented within the context of the system architectures shown in Figures 39-40, although the underlying principles of the invention are not limited to any particular system architecture.
Referring first to Figure 41, in 4101, a new device establishes a secure communications channel with a trusted device and determines the number of key pairs (N) to generate. As mentioned above, this can be the number of key pairs registered with trusted parties and trusted mechanisms.
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 that is shared with the trusted party. At 4103, the N public keys are sent to the trusted device, which at 4104 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 enrollment data about the trusted party (e.g., key ID, application ID, etc.). Finally, at 4106, all of the enrollment data and signatures are integrated into a local secure database used by the authentication engine.
Referring now to FIG. 42, in 4201, the new client (which has already performed the delegation operation from FIG. 41) establishes a secure connection with the trusted party. In 4202, the trusted party detects that there is an existing registration that has been delegated to the new device. In response, in 4203, the trusted party makes an authentication request to the new device. The user can then authenticate using one or more biometric or other authentication techniques. As described above, in 4204, the new device prepares a response that includes a proof over the new device public key, a signature generated with the new device private key (e.g., over a challenge), and a signature generated with the trusted device's private key and associated key ID. In 4205, all data in the response is sent to the trusted party, who verifies the data included in the response in 4206 (see above for details of one embodiment). If the verification is successful, in 4207, the transaction attempted by the user is allowed.
The techniques described herein can be used to delegate trust between two authenticators in different devices (as described above). Additionally, in one embodiment, these techniques can be used to delegate trust between two authenticators in the same device. In this case, it is not necessary to establish a secure connection between the two devices, but all other operations may occur between the two authenticators within the devices.
Furthermore, it should be noted that some of the operations involved can be implemented in a variety of ways. For example, the secure protocol for delegating trust can be initiated by the trusted device rather than the new device. In either case, the new device (or more specifically, the authenticator in the new device) can generate new key-pair numbers (ND_Uauth), and the authenticator in the trusted device can sign the public keys of these key pairs.
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 (e.g., snaps a picture, creates a word processing document, etc.) or modifies an existing document on a device, the cloud service the user participates in typically stores a copy of the new/modified document "in the cloud." When the user accesses the cloud service from a second device (e.g., a work computer or other device used by another family member), the cloud service can be configured to synchronize the devices.
One problem that exists is that data is frequently stored in cloud services in unencrypted format, making it vulnerable to various types of cyber attacks and queries by federal agencies.
The embodiments of the invention described below provide a set of protocols and techniques that allow data to be synchronized between devices in a privacy-enhancing manner, without the cloud service having to access the data in the clear (e.g., in unencrypted form), thereby protecting the privacy of users.
As an initial issue, it should be noted that the techniques described below do not rely on the advanced authentication techniques described herein to synchronize data between devices. For example, these synchronization techniques can be used outside the context of a system for remote user authentication, as described for other embodiments of the present invention. However, these synchronization techniques can be used to implement the synchronization of these remote user authentication embodiments. For example, in one embodiment, registration data for each website or other online service visited by a user can be synchronized across multiple devices using these synchronization techniques.
As used herein, "Circle" refers to a network of devices trusted by a user, and "Circle id" refers to an identifier that identifies the Circle (e.g., one that cannot be easily guessed). "Circle Cloud" refers to an online service used to store information about the Circle and the Trust Chain (defined below) and serves as a communication hub for client devices. In one embodiment, the Circle Cloud does not store any sensitive data (at least in unencrypted form). The term "d.pub" refers to a device's public key, "d.priv" refers to a device's private key, and d.pub/d.priv refers to device d's asymmetric public/private key pair. In one embodiment, d.priv never leaves device d. "Trust Chain" refers to persistent data stored in the Circle Cloud that contains information about the devices trusted by the user and their relationships. "Circle Channel" refers to a secure communication channel provided by the Circle Cloud used by two (or more) devices to exchange and synchronize data between them.
One embodiment of the invention includes protocols and associated techniques for enabling new user devices to (a) join a circle and (b) subsequently synchronize with the circle. These embodiments are described with respect to FIG. 43, which shows three client devices 4301-4303, each having a privacy sync application 4311-4313, respectively, for implementing the protocols and techniques described herein, and a secure data store 4321-4332, respectively, for storing data used for joining and synchronizing. In this specification, device 4301 is sometimes referred to as device d1, device 4302 is sometimes referred to as device d2, and device 4303 is sometimes referred to as device d3.
In one embodiment, joining and synchronization occurs via multiple circle clouds 4350, which include multiple storage servers. A trust chain 4360 within the circle cloud 4350 maintains data-defined trust relationships between devices 4301-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. Join a club
Device 4302 (d2) joins an existing network of devices 4301 (d1) and 4303 (d3) that belong to a user (i.e., a "circle" of trusted devices). Device 4302 can only join an existing circle if other devices 4301 that are already part of that circle allow it.
One embodiment of a method for authenticating a new device 4302 using a trusted device 4301 is shown in Figure 44. In 4401, a user authenticates the new device 4302 on an existing trusted appliance 4301. For example, in one embodiment, the user can start their privacy sync application 4311 on the trusted device 4301 and a privacy sync application 4312 on the new client device 4302.
In 4402, in one embodiment, the privacy sync application 4311-4312 causes the devices 4301-4302 to establish a secure connection. To establish the secure connection, various technologies can be used such as Near Field Communication (NFC), Bluetooth, direct Wifi, etc., using a Quick Response (QR) code to establish an HTTPS connection.
In 4403, device 4301 sends secure data, referred to herein as "join1_data," to the 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.
In 4404, device 4302 reads join1_data and prepares a response that may include: HMAC(sk.sym,d2.pub|T)|d2.pub|T, where T is a timestamp.
trust-block1=S(d2.priv,d1.pub)|d1.pub|d2.pub.
Note that HMAC stands for hash-based message authentication code. In the above embodiment, the HMAC is generated by concatenating the timestamp and the public key of device 4302, and protecting the integrity of the result with sk.sym using HMAC or a similar algorithm. Additionally, trust-block1 includes a signature generated with the private key of device 4302 over the public key of device 4301. In one embodiment, the trust-block1 entry also includes a timestamp (T).
44, in 4405, device 4302 securely connects to circle cloud 4350 and sends a response including HMAC and trust-block1. Circle cloud 4350 stores the data received by device 4301 and waits for device 4301 to connect.
In 4406, device 4301 connects to the circle cloud using circle-id, verifies the integrity of the data included in device 4302's response from operation 4405, and generates trust-block2. In particular, in one embodiment, device 4301 reads d2.pub and T using sk.sym to verify the integrity (e.g., uses sk.sym to decrypt d2.pub and T). Device 4301 then signs d2.pub using its private key d1.priv, generating trust-block2=S(d1.priv,d2.pub)|d2.pub|d1.pub, which includes the signature generated over d2.pub by d1.priv. In one embodiment, trust-block2 also includes a timestamp (T). Device 4301 then transmits the above data including trust-block2 to circle cloud 4350.
In 4407, the circle cloud 4350 adds both trust blocks to the trust chain 4360. In one embodiment, after the above operations, device 4302 joins the circle associated with circle-id. All devices 4301, 4303 in this circle trust device 4302, and device 4302 trusts all of these devices. Note that any trusted device can authenticate new devices using the techniques described herein.
b. Synchronization with the group
During this process, devices 4301-4303 belonging to the same circle synchronize data between them. There can be different application specific sub-protocols implemented on top of this process. For example, an online cloud storage application may want to keep a user's data synchronized on all devices and keep an encrypted copy on the circle cloud. Other applications can propagate messages to devices in the circle. For example, in one embodiment, registration data used by one device to authenticate remote trusted parties can be synchronized between all devices in the circle. Various other applications and sub-protocols can be implemented while still adhering to the basic principles of the invention. All such sub-protocols can use the basic processing blocks described below.
Chain of Trust
As revealed in the "Join Circle" process (FIG. 44), what goes into the trust chain 4360 is evidence that device 2 claims to be trusted by device 1. Therefore, the trust chain 4360 is a chain of respective authentication blocks that claim 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. The trust chain 4360 is considered broken if there is a block where device 4301 claims to trust device 4302 and there is no block where device 4302 claims to trust device 4301. In one embodiment, the 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 sensitive information about the device.
In one embodiment, the trust chain 4360 includes multiple trust blocks, each block including the following data: {di.pub, dj.pub, S(di.priv, dj.pub), S(dj.priv, di.pub)} - i.e., the public key of each device and a signature generated using each device's private key on each other device's public key.
The above assertion means that device di trusts device dj and vice versa. In one embodiment, the trust chain 4360 is used by devices 4301-4302 to determine and verify devices that are in a circle. After the devices verify that they are in the same circle, they can use the circle channel 4370 to synchronize encrypted data between them.
In one embodiment, to determine whether device di is in the same circle as device dj, the following operations are performed: (a) construct a directional graph where each node is a device in the trust chain and each arrow corresponds to a block in the trust chain, and (b) determine whether a direct path exists connecting di and dj.
Circle Channel
In one embodiment, the process shown in Figure 45 is performed to synchronize data with 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. In 4501, device 4301 downloads the trust chain 4360 associated with the circle-id, identifies other devices in the same circle from the trust chain (e.g., devices 4302-4303), and uses the trust chain to obtain the public keys of other devices in the same circle.
In 4502, the device 4301 generates a random encryption key (REK) (e.g., using known techniques for random number generation). In 4503, the device 4301 derives a mutual session key (SK) for each of the other devices in the circle. In one embodiment, the device 4301 derives the SK using the Diffie-Hellman key exchange algorithm for each of the other devices. Diffie-Hellman is a well-known algorithm that allows two parties, without prior knowledge 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 automatically derive a new key (SK in this patent application) independently using its private key and the public key of the first device (and vice versa). In one embodiment, the device 4301 uses these techniques to generate a different SK for each other device 4302, 4303.
In 4504, device 4301 encrypts the REK with the SK derived for each device and binds them with the appropriate public key. For example, for device d1 generating SKi and SKj for devices di and dj, respectively, it uses the session key to encrypt the REK as follows: {d1.pub,di.pub,E(SKi,REK)} (for device di) {d1.pub,dj.pub,E(SKj,REK)} (for device dj). At the end of the process, each of devices di and dj can decrypt the REK using their respective session keys (derived independently by each device using Diffie-Hellman as described above).
At 4505, the device 4301 encrypts the data to be synchronized with the REK - i.e., E(REK, data to be synchronized). As discussed above, any data may be synchronized, such as, for example, multimedia files, productivity documents, and/or client configuration data (e.g., trusted party registration data as discussed above).
In 4507, the device 4301 provides the REKs encrypted with each SK and the data to be synchronized encrypted by the REKs to the circle channel: [{d1.pub, di.pub, E(SKi, REK)}, {d1.pub, dj.pub, E(SKj, REK)}, ...]
E(REK, data to be synchronized)
After the data is provided on the circle channel, in 4506, each device in the same circle downloads the record corresponding to their public key (e.g., {d1.pub, di.pub, E(SKi, REK)} for device di, derives the same SK (e.g., SKi), decrypts the REK, and uses the REK to decrypt the data to be synchronized.
In one embodiment, a "Join Circle" operation as described above may require user authentication on both device 1 and device 2. If this protocol is implemented using the remote authentication techniques described herein, the user may be required to, for example, "swipe" a finger to authenticate both devices to initiate and complete the "Join Circle" process. In contrast, in one embodiment, synchronizing data between devices as described does not require user authentication.
The protocols and associated techniques described herein allow a network of mutually trusting devices to be built. Importantly, all data sent to and from the cloud and stored in the cloud is encrypted. Thus, data can be synchronized between multiple devices without storing any sensitive data on the cloud, providing improved user privacy protection.
The embodiments of the present invention described above implement a private synchronization protocol for device synchronization where participating cloud storage devices cannot view any of the user's data in the clear (i.e., the data is encrypted in the cloud). These embodiments include a variety of novel and useful 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 authenticating other devices.
A system and method for implementing a chain of trust to indicate trust relationships between devices in the same circle.
A system and method for devices to use Diffie-Hellman or similar key exchange algorithms to generate mutual session keys and encrypted data with those keys.
A system and method where a hash of the circle-id is stored in the circle cloud instead of on the device itself.
A system and method that uses a challenge-response protocol to authenticate a device before allowing the Circle Cloud to place data within the Circle's Circle Channel.
A system and method in which a persistent circle group key is used to encrypt sync data.
An application that uses a private synchronization protocol described to share a user's data (documents, files, photos, etc.) between multiple devices and stores encrypted backups of that data on the cloud.
A system and method in which the device's private key (d.priv) and all operations using this key are implemented within an authenticator to remotely authenticate a user over a network.
An application that uses the private synchronization protocol described in conjunction with embodiments of the present invention to perform user-controlled trust delegation to new devices in order to share authenticator registrations between the user's devices.
- An application that uses the private synchronization protocol described in conjunction with embodiments of the present invention to perform user-controlled trust delegation to new devices for sharing new registrations between the user's devices, without the user having to authenticate with an authenticator each time a new registration is delegated to another device.
A set of authenticators belonging to the same user and forming a circle, using the private synchronization protocol described above to synchronize authentication key pairs so that these authenticators share registration of a single authenticator with other authenticators belonging to the same circle.
M. Exemplary System Architecture
It should be noted that the term "trusted party" is used herein to refer not just to the entity seeking to execute a user transaction (e.g., a website or online service executing a user transaction) but also to a secure transaction server implemented on behalf of that entity that can perform the underlying authentication techniques described herein. The secure transaction server may be owned and/or under the control of the trusted party, or may be under the control of a third party that provides secure transaction services to the trusted party as part of a business arrangement. These distinctions are specified in Figures 46A-B, described below, which show that "trusted parties" can include not only websites 4631 and other network services 4651, but also secure transaction servers 4632-4633 for performing authentication techniques on behalf of websites and networks.
In particular, Figures 46A-B illustrate two embodiments of a system architecture including client-side and server-side components for authenticating a user. The embodiment shown in Figure 46A uses a browser plug-in based architecture for communicating with a website, while the embodiment shown in Figure 46B does not require a browser. The various advanced authentication techniques and related applications described herein can be implemented in any of these system architectures. For example, the authentication engine (e.g., 230) in the client device described above can be implemented as part of a secure transaction service 4601 that includes an interface 4602. However, it should be noted that the above-described embodiments may be realized using hardware and software logic configurations other than those shown in Figures 46A-B.
Referring to FIG. 46A, the illustrated embodiment includes a client 4600 with one or more authentication devices 4610-4612 for enrolling and authenticating end users. As described above, authentication devices 4610-4612 can 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 (optical scanners 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 can enroll in a biometric device by providing biometric data (e.g., swiping a finger over the fingerprint device) that secure transaction service 4601 (via interface 4602) can store as biometric template data in secure storage 4620.
Although the secure storage 4620 is shown external to the secure peripherals of the authentication devices 4610-4612, in one embodiment each authentication device 4610-4612 may have its own integrated secure storage. Additionally, each authentication device 4610-4612 may cryptographically protect the biometric criteria data records (e.g., wrapping the data records to secure the storage 4620).
The 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 over a network and interfacing with a secure transaction plug-in 4605 executing within the context of a web browser 4604. As shown, the interface 4602 can also provide secure access to a secure storage device 4620 in the client 4600 that stores information associated with each of the authentication devices 4610-4612, such as a device identification code, a user identification code, user enrollment data (e.g., scanned fingerprint or other biometric data), and keys used to perform the secure authentication techniques described herein. For example, as described in more detail below, a unique key can be stored in each of the authentication devices and used when communicating with a server 4630 over a network such as the Internet.
In addition to registering the device, the secure transaction service 4601 may then register the biometric device with the secure transaction servers 4632-4633 over the network and then authenticate with these servers using data exchanged during the registration process (e.g., cryptographic keys provisioned to the biometric device). The authentication process may include any of the authentication techniques described herein (e.g., generating an assurance level at the client 4600 based on explicit or non-invasive authentication techniques and transmitting the results to the secure transaction servers 4632-4633).
As described below, certain types of network transactions are supported by the secure transaction plug-in 4605, such as HTTP or HTTPS transactions with web sites 4631 or other servers. In one embodiment, the secure transaction plug-in is initiated in response to certain HTML tags inserted into the HTML code of a web page by a web server 4631 (sometimes simply referred to as "server 4630") internal to the secure enterprise or web destination 4630. In response to detecting such a tag, the secure transaction plug-in 4605 can forward the transaction to the secure transaction service 4601 for processing. Additionally, for certain types of transactions (such as, for example, secure key exchange), the secure transaction service 4601 can open a direct communication channel with an internally located transaction server 4632 (i.e., co-located with the web site) or an externally located transaction server 4633.
The secure transaction servers 4632-4633 are coupled to a secure transaction database 4640 for storing user data, authentication device data, keys, and other secure information necessary 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 Figure 46A. For example, the website 4631 and the secure transaction servers 4632-4633 may be implemented within a single physical server or separate physical servers. Furthermore, the website 4631 and the transaction servers 4632-4633 may be implemented within integrated software modules executing on one or more servers to perform the functions described below.
As noted 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 embodiment in which a standalone application 4654 utilizes functionality provided by secure transaction services 4601 to authenticate a user over a network. In one embodiment, application 4654 is designed to establish a communication session with one or more network services 4651 that rely on secure transaction servers 4632-4633 to perform user/client authentication techniques, which are described in more detail below.
46A-B, the secure transaction servers 4632-4633 can generate keys which are then securely transmitted to the secure transaction service 4601 and stored in an authenticator in secure storage 4620. In addition, the secure transaction servers 4632-4633 manage a server-side secure transaction database 4640.
An exemplary series of transactions for an authenticator to discover, register, enroll, and authenticate are shown in Figures 47-51. Aspects of these transactions are used in the OSTP protocol discussed above (see OSTP Framework (March 23, 2011) for additional details incorporated herein). Understanding the basic operation of these transactions provides a context in which embodiments of the present invention may be implemented.
The operations described below include detecting an authentication device (Figure 47), registering a user with an authentication device (Figure 48), registering an authentication device (Figure 49), authenticating the user with the registered authentication device (Figure 50), and implementing a secure transaction after authentication (Figure 51).
Figure 47 illustrates a series of transactions for detecting authentication devices on a client device. Once device detection is successfully completed, the server 4730 has comprehensive information about the authentication devices connected to the client and can evaluate which devices are most suitable for use with the enhanced security infrastructure. The server 4730 only filters the list of authentication devices. Armed with this list, the user can select one (or a combination) of the authentication devices to use for further authentication and conducting secure transactions.
In operation, a user authenticates with a username and password in a browser and logs into a website. This is the only time the user is required to provide a username and password. Server 4730 determines (e.g., by querying secure transaction database 4720) that the user is not currently using enhanced security and provides a suggestion to the user to change to enhanced security.
In one embodiment, the server 4730 includes a "query devices" tag in the HTML page which the secure transaction plug-in 4705 detects. In response to detecting the tag, the secure transaction plug-in 4705 reroutes the request to the secure transaction service 4701 which then creates exhaustive information about all authentication devices attached to the system including the security characteristics of the devices. In one embodiment, the information is packaged in XML format using a pre-specified data schema before transmission.
The secure transaction plug-in 4705 receives this information from the secure transaction service 4701 and, in one embodiment, passes the information via a registered callback to the web page's JavaScript, which then chooses how to display the information in the browser 4704. A list filtered by the website can be shown to the user, who can select one or a combination of authentication devices.
FIG. 48 illustrates a series of transactions to register a user with an authentication device. In one embodiment, registration is a prerequisite to using the enhanced security provided by the embodiments of the invention described herein. Registration involves taking a biometric reading of the user (e.g., a fingerprint, a voice sample, etc.) so that the same authentication device can be used to authenticate the user during subsequent transactions. The registration operation can be performed solely on the client without interaction with the server 4730. The user interface provided for registration can be displayed in a browser extension or can be displayed in a separate application or mobile device application.
The registration operation may be initiated as soon as the device is detected. The user may use one or a group of the detected devices for added security. In operation, the user may select the device from a device list displayed in a browser, application, or mobile device application. For the browser-based implementation shown in FIG. 48, the secure transaction plug-in 4705 displays a device-specific registration graphical user interface (GUI). The secure transaction plug-in 4705 sends a device identifier and a registration request to the secure transaction service 4701 and waits for completion. If the user is already registered with the client's authentication device, the user may only need to verify their identity (i.e., they do not need to register again). If the user is not currently registered, the secure transaction service 101 initiates the registration process by activating the physical authentication device (e.g., via the device interface 4702). The user then interacts with the GUI of the secure transaction plug-in 4705 and follows the specified registration steps (e.g., swiping a finger, speaking into a microphone, snapping a picture, etc.). Once complete, the user is registered with the authentication device. What is important is that once a user is registered with a device, they can use this registration to register or authenticate to any website or network service described herein.
FIG. 49 illustrates a series of transactions for registration of 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 the secure storage 4720 of 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 described below, an asymmetric key may be used. In this embodiment, a public key may be stored by the secure transaction server 4732-4733 and a second associated private key may be stored in the secure storage 4720 of the client. Furthermore, in one embodiment (also described 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 server 4732-4733).
A secure key provisioning protocol such as the Dynamic Symmetric Key Provisioning Protocol (DSKPP) may be used to share the key with the client over a secure communication channel (see, e.g., Request for Comments (RFC) 6063). However, the underlying principles of the invention are not limited to any particular key provisioning protocol.
With reference to the specific details shown in FIG. 49, once user registration and/or authentication is complete, the server 4730 generates a randomly generated challenge (e.g., a cryptographic nonce) that must be presented by the client during device registration. The random challenge may be valid for a limited period of time. The secure transaction plug-in detects the random challenge and forwards it to the secure transaction service 4701. In response, the secure transaction service initiates an out-of-band session (e.g., an out-of-band transaction) with the server 4730 and communicates with the server 4730 using a key provisioning protocol. The server 4730 locates the user by username, verifies the random challenge, verifies the device's authentication code if one was sent, and creates a new entry in the secure transaction database 4720 for the user. It may also generate a key, write the key to the database 4720, and send the key back to the secure transaction service 4701 using the key provisioning protocol. Once complete, the authentication device and the server 4730 share the same key if a symmetric key was used, or a different key if an asymmetric key was used.
50 illustrates a sequence of transactions for user authentication with a registered authentication device. Once device registration is complete, the server 4730 accepts tokens generated by the local authentication device as valid authentication tokens.
50, which illustrates a browser-based implementation, a user enters a uniform resource locator (URL) for server 4730 in browser 4704. In an implementation using a standalone application or a mobile device application (rather than a browser), the user can enter a network address for a network service or application, and the application can automatically attempt to connect to the network service at the network address.
For a browser-based implementation, the website embeds a query for registered devices in an HTML page. This can be done in many ways other than embedding a query in an HTML page, such as via Javascript or using an HTTP header. The secure transaction plug-in 4705 receives the URL and sends it to the secure transaction service 4701 which searches in the secure storage 4720 (which includes the authentication device and user information databases, as described above) and determines if there is a registered user at this URL. If so, the secure transaction service 4701 sends the list of offered devices associated with this URL to the secure transaction plug-in 4705. The secure transaction plug-in then searches for registered JavaScript The API is called and this information is passed to the server 4730 (e.g., a website). The server 4730 selects the appropriate device from the sent device list, generates a random challenge, sends the device information, and asserts it back to the client. The website displays a corresponding user interface and requests authentication from the user. The user then provides the requested authentication means (e.g., finger swipe on a fingerprint reader, speaking for voice recognition, etc.). The secure transaction service 4701 identifies the user (this step can be omitted for devices that do not support user storage), retrieves the username from a database, generates an authentication token using a key, and sends this information to the website via the secure transaction plug-in. The server 4730 verifies the token by identifying the user from the secure transaction database 4720 and generating the same token at the server 4730 (e.g., using a copy of its key). Once verified, the authentication process is complete.
FIG. 51 illustrates a secure transaction for a browser-based implementation. The secure transaction is designed to provide strong security for certain types of transactions (e.g., financial transactions). In the illustrated embodiment, the user confirms each transaction before delegating the transaction. Using the illustrated technique, the user confirms exactly what he/she wants to delegate, and delegates exactly what he/she sees displayed in the GUI. In other words, the embodiment ensures that the transaction text is not altered by a "man in the middle" to delegate a transaction that the user did not confirm.
In one embodiment, the secure transaction plug-in 4705 displays a window 5101 in the browser context showing the details of the transaction. The secure transaction server 4701 periodically (e.g., at random intervals) verifies that the text displayed in the window has not been tampered with by anyone.
The following example helps highlight the operation of this embodiment: A user selects an item to purchase from a merchant site and selects "Checkout." The merchant site sends the transaction to a service provider (e.g., PayPal), which has secure transaction servers 4732-4733 that implement one or more of the inventive embodiments described herein. The merchant site authenticates the user and completes the transaction.
The secure transaction servers 4732-4733 receive the transaction details (TD) and place a "secure transaction" request into an HTML page and send it to the client 4700. The secure transaction request includes the transaction details and a random challenge (e.g., a random nonce). The secure transaction plug-in 4705 detects the request for a transaction confirmation message and forwards all data to the secure transaction service 4701. In an embodiment that does not use a browser or plug-in, the information may be sent directly from the secure transaction server to the secure transaction service on the client 4700.
For a browser-based implementation, the secure transaction plug-in 4705 displays a window 5101 with transaction details to the user (within the browser context) and requests the user to provide authentication to confirm the transaction. In embodiments not using a browser or plug-in, the secure transaction service 4701 or the application 4754 may display the window 5101. The secure transaction service 4701 starts a timer and verifies the contents of the window 5101 displayed to the user. The verification period may be chosen randomly. The secure transaction service 4701 ensures that the user sees valid transaction details in the window 5101. If it detects that the content has been tampered with, it prevents a verification token from being generated.
After the user provides valid authentication (e.g., a finger swipe on the fingerprint sensor), the device identifies the user and generates a token (cryptographic signature) with the transaction details and a random challenge (i.e., the token is calculated over the transaction details and a nonce). This allows the secure transaction server 4732-4733 to ensure that the transaction details have not been altered between the server and the client. The secure transaction service 4701 sends the generated token and username to the secure transaction plugin 4705 which forwards the token to the secure transaction server 4732-4733. The secure transaction server 4732-4733 identifies the user by username and validates the token. If validation is successful, a confirmation message is sent to the client and the transaction is processed.
SYSTEM AND METHOD FOR SECURE QUERY POLICY FOR DETERMINING CLIENT AUTHENTICATION CAPABILITIES - Patent application
As described above, one embodiment of the present invention implements a query policy in which a secure transaction server sends a server policy to a client indicating the authentication features accepted by the server. The client then analyzes the server policy to identify the subset of authentication features it supports and/or that the user has indicated a desire to use. The client then registers and/or authenticates the user using the subset of authentication tokens that match the provided policy. Thus, there is less impact to the client's privacy, since the client is not required to send exhaustive information about its authentication capabilities (e.g., all of its authentication devices) or other information that may be used to uniquely identify the client.
By way of example, and not limitation, a client may include many authentication capabilities such as, for example, a fingerprint sensor, voice recognition capabilities, face recognition capabilities, eye/optical recognition capabilities, Trusted Platform Module (TPM), and smart cards. However, for privacy reasons, a user may not want to reveal details about all of its capabilities to a requesting server. Thus, using the techniques described herein, a secure transaction server may send a server policy to a client indicating that it supports, for example, fingerprint, optical, or smart card authentication. The client may then compare the server policy against its own authentication capabilities and choose one or more of the available authentication options.
FIG. 52 illustrates one embodiment of a client-server architecture for implementing these techniques. As illustrated, a secure transaction service 4701 implemented in a client 4700 includes a policy filter 5201 for analyzing policies provided by the server 4730 and identifying a subset of authentication functions to be used for registration and/or authentication. In one embodiment, the policy filter 5201 is implemented as a software module that runs within the context of the secure transaction service 4701. However, it should be noted that the policy filter 5201 may be implemented in any manner and may include software, hardware, firmware, or any combination thereof, while still adhering to the underlying principles of the present invention.
The particular implementation shown in Figure 52 includes a secure transaction plug-in 4705 for establishing communications with a secure enterprise or web destination 4730 (sometimes simply referred to as a "server 4730") using the techniques described above. For example, the secure transaction plug-in can identify specific HTML tags that have been inserted into the HTML code by a 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.
The policy filter 5201 can determine the client authentication capabilities by reading the capabilities from the client's secure storage area 5220. As described above, the secure storage 5220 can contain a repository of all the client's authentication capabilities (e.g., all identification codes of the authentication devices). If the user has already registered the user with the authentication device, the user's registration data is stored in the secure storage 5220. If the client has already registered an authentication device with the server 4730, the secure storage can also store an encrypted private key associated with each authentication device.
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 be used. Depending on the configuration, policy filter 5201 can identify the complete list of authentication functions supported by both the client and the server, or a subset of the complete list. For example, if a 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 following overall subset of common authentication functions for the server: A, B, and C. Alternatively, as indicated by user preferences 5230 in FIG. 52, if a higher level of privacy is desired, a more limited subset of authentication functions can be identified for the server. For example, a user can indicate that only a single common authentication function should be identified for the server (e.g., either A, B, or C). In one embodiment, a user can establish a prioritization scheme for all of the authentication functions of the client 4700, and the policy filter can select the authentication function (or prioritized set of N authentication functions) with the highest priority common to both the server and the client.
Depending on what action is initiated by server 4730 (registration or authentication), as shown in Figure 52, secure transaction service 4730 performs that action on a filtered subset of authenticators (4710-4712) and sends an action response back to server 4730 via secure transaction plug-in 4705. Alternatively, in an embodiment that does not rely on the web browser plug-in 4705 component, information may be sent directly from secure transaction service 4701 to server 4730.
53 shows a transaction diagram illustrating additional details for an exemplary sequence of registration with query policy transactions. In the illustrated embodiment, the user has not previously registered the device with server 4730. Thus, at 5301, the user may enter a username and password as an initial one-time authentication step that is forwarded to server 4730 via client browser 4704 at 5302. However, it should be noted that a username and password are not required to adhere to the underlying principles of the present invention.
Because the user has not previously enrolled in enhanced security as determined in 5303, server 4730 transmits its server policy to the client in 5304. As discussed above, the server policy may include an indication of the authentication features supported by server 4730. In the illustrated example, the server policy is passed to secure transaction service 4701 via transaction 5306.
In transaction 5307, the secure transaction service 4701 compares the client's capabilities (and potentially other information such as device priority schemes and/or user preferences as described above) with server policies to arrive at a filtered list of authentication capabilities. The filtered list of devices (4702) then provides the public portions of these keys to the secure transaction service 4701 which generates keys (5308 and 5309) and then sends them back in that order to the server 4730 as a registration response. The server authenticates the authentication device and stores the public key in a secure transaction database. Token authentication, as used here, is the process of validating the authentication device identity during registration. It allows the server to cryptographically verify that the device reported by the client is actually the one claimed.
Alternatively or additionally, in 5307, the user may be provided with the opportunity to review the list and/or select the particular authentication features to be used with this particular server 4730. For example, the filtered list may show options for using authentication via fingerprint scan, facial recognition, and/or voice recognition. The user may then select to use one or more of these options when authenticating with the server 4730.
The above-described techniques for filtering server policies at the client may be implemented at various different stages of the sequence of transactions described above (e.g., during device discovery, device registration, device provisioning, user authentication, etc.) That is, the underlying principles of the present invention are not limited to the particular set of transactions and the particular order of transactions depicted in FIG.
Moreover, as noted above, a browser plug-in architecture is not required to adhere to the underlying principles of the present invention. For architectures involving a browser or browser plug-in (e.g., a standalone application or an application on a mobile device), the transaction diagram shown in Figure 53 (and the remainder of the transaction diagrams disclosed herein) can be simplified such that browser 4704 is removed and secure transaction service 4701 communicates directly with server 4730.
System and method for efficient enrollment, registration, and authentication with multiple authentication devices - Patents.com
An embodiment of the present invention can register, enroll and authenticate multiple devices simultaneously, thereby improving efficiency and user experience. For example, instead of requesting registration and authentication 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 to multiple devices in one operation or a series of sequential operations performed locally on the client. For authentication, several tokens/devices can be selected simultaneously for a particular transaction.
FIG. 54 illustrates one embodiment of a client-server architecture for implementing these techniques. As shown, the secure transaction service 4701 implemented in the client 4700 includes multiple device processing logic 5401 for performing specified operations such as registering and enrolling multiple devices at once without requiring continuous back-and-forth communication with the server 4730 as each device is registered/registered. Similarly, the server 4730 includes multiple device processing logic for issuing commands directed to multiple authentication devices. In one embodiment, the multiple device processing logic 5401 is implemented as a software module executed within the context of the secure transaction service 4701. However, it should be noted that the multiple device processing logic 5401 can be implemented in any manner while still adhering to the underlying principles of the present invention and can include software, hardware or firmware components or any combination thereof.
54 includes a secure transaction plug-in 4705 for establishing communications with a server 4730 (which, as noted above, may include a web server 4731 and secure transaction servers 4732-4733). Thus, server 4730 communicates with a secure transaction service 4701 via secure transaction plug-in 4705. As noted above, however, a browser-based plug-in architecture need not adhere to the underlying principles of the present invention.
The multiple device processing logic 5402 in the server 4730 can communicate commands to be executed by the multiple device processing logic 5401 in the client 4700 to perform operations on the multiple authentication devices 4710-4712. By way of example, the multiple device processing logic 5402 can generate N keys to be registered on each of the N authentication devices, which can then be securely transmitted to the multiple device processing logic 5401 along with commands to register the N devices. The multiple device processing logic 5401 can 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 can then be transmitted to the server 4730 to indicate the completion of registration of all N devices.
An exemplary multiple device transaction sequence is shown in Figures 55A-C. Figure 55A illustrates a multiple device registration process that can occur without any interaction with the server 4730 (e.g., registering a user on an authentication device can occur under the control of the secure transaction service 4701 at the client). In an alternative embodiment, the server 4730 can send a request to a client (not shown) to register a user on N devices. Figures 55B-C illustrate two different embodiments for registering multiple devices with the server 4730.
Referring to the registration process in FIG. 55A, at 5501, a user indicates a willingness to register with N authentication devices at the client (representing all or a subset of available authentication devices). In response, the secure transaction plug-in is invoked at 5502, and the user interacts with the secure transaction plug-in as shown (e.g., by placing a finger on a fingerprint sensor, speaking into a microphone, snapping a picture with a camera, etc.) during the registration process in which a device-specific graphical user interface (GUI) is generated as the user walks through processing or registering with authentication device #1 at 5503. In one embodiment, registration occurs for each of the N devices until registration is completed for the Nth device at 5504. Different device-specific scripts and/or user interfaces can be presented to the user to register the user with each authentication device. As described above, as the user registers with each device, the user registration data can be stored in secure storage 720 at the client 4700 and can be made accessible only via the secure transaction service 4701. Once registration of all N devices is complete, a notification may be sent to server 4730 via transactions 5504-5505.
Regardless of how the registration is performed, once complete, the transaction diagram shown in FIG. 55B can be used to register the N devices with the server 4730. At 5510, the server 4730 generates a user-specific random challenge, which may be valid only for a limited window of time and may include a randomly generated code such as a cryptographic nonce, as described above. At 5511, the random challenge is sent with a command to register the N authentication devices with the server 4730. At 5512, the secure transaction service 4701 forms a secure connection with the server 4730 and sends the 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 type of secure connection.
At 5513, the server 4730 authenticates the N devices, generates a key for each of the N devices, and transmits the N keys back to the secure transaction service over 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 invention are not limited to any particular key provisioning technique. Alternatively, in an embodiment that does not rely on the DSKPP protocol, keys may be generated at each authentication device and transmitted to the server 4730.
At 5514-5515, the secure transaction service's multiple device processing logic registers each of the N keys with each of the N devices. As described above, each key may be stored in the client's secure storage 720 and associated with its respective device. Once registration is complete for each authentication device, at 5516, a notification is sent to the server over a secure connection.
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 720 at the client and in the secure transaction database 4720 at the server 4730. In an alternative implementation, an asymmetric key pair may be generated, with one of the keys maintained as a public key in the secure transaction database 4720 at the server and a private key stored in the secure storage 720 at the client. However, it should be noted that the underlying principles of the present invention are not limited to any particular type of encryption key.
An alternative implementation in which keys are generated is shown in Figure 55C. In this implementation, after receiving a request to register a device with a random challenge at 5511, the multiple device processing logic of the secure transaction service 4701 generates 1120 N keys for each of the N devices. 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 described above. Once all the keys have been registered, the secure transaction service 4701 provides a notification to the server at 5515 along with the random challenge (to verify the client's identity). The server 4730 can then store the registrations in the secure transaction database 4720 as described above.
SYSTEM AND METHOD FOR PROCESSING RANDOM CHALLENGES WITHIN AN AUTHENTICATION FRAMEWORK - Patent application
One embodiment of the present invention improves the way random challenges are generated and processed by a server. In one embodiment, the random challenge includes a randomly generated code as a cryptographic nonce. In current systems, after a server sends a random challenge to a client, if the client does not respond within a specified timeout period, the random challenge is no longer valid and the client receives an error in response to a subsequent authentication attempt (e.g., a user swipes a finger over a fingerprint reader and is rejected).
In one embodiment of the invention, the client automatically detects that 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 sends it to the client, which can then use it to establish secure communications with the server. The end-user experience is improved because the user does not receive errors or rejections of the authentication request.
Figure 56A illustrates one such embodiment used within the context of a registration process, and Figure 56B illustrates an embodiment used within the context of an authentication process. However, it should be noted that the underlying principles of the invention may be used in contexts other than those shown in Figures 56A-B. For example, the techniques described herein may be used in any process in which time-sensitive code is communicated from a server to a client.
Referring first to FIG. 56A, in 5601, the server 4730 generates a random challenge and an indication of a timeout period. In one embodiment, the timeout period includes a period during which the random challenge is considered valid. After the timeout period has elapsed, 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 at which the random challenge is no longer valid. Upon reaching this point in time, the random challenge is invalid. In another embodiment, the timeout period is specified using a current timestamp (i.e., the time at which the random challenge was generated by the server 4730) and a duration. The secure transaction service 4701 can then calculate the timeout period by adding the duration value to the timestamp to calculate the point at which the random challenge becomes invalid. However, it should be noted that the underlying principles of the present invention are not limited to any particular technique for calculating the timeout period.
Regardless of how the timeout period is specified or calculated, at 5602, the random challenge and timeout indication are sent 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 that the random challenge has timed out and is no longer valid based on the timeout indication sent from the server 4730. By way of example, a user may turn off his/her client device or close the lid of his/her notebook computer before completing a series of transactions. If the transaction is one that requires user interaction, the user may simply walk away or ignore the message displayed in the GUI.
Upon detecting that the random challenge is no longer valid at 5604, the secure transaction service 4701 sends a request for a new random challenge to the server 4730 (via the secure transaction plug-in 4705 and browser 4704 in the illustrated example). At 5605, the server 4730 generates a new random challenge and a new timeout period indication. In one embodiment, the timeout period can be the same as in operation 5601 or can be changed. For example, the server 4730 can increase the duration of the timeout period to reduce data traffic by the client or to reduce the time to increase the level of security provided by the random challenge. At 5606, the new random challenge and timeout indication are sent to the secure transaction service 4701.
The remainder of the transaction occurs as described above. For example, the secure transaction service opens a direct secure connection to the server at 5607 to perform device registration and key exchange as described above with respect to Figure 49, Figure 55B or Figure 55C. At 5608, the server 4730 identifies the user (e.g., by username or other ID), authenticates the authentication device, and generates a key for the device. As described above, the key can be a symmetric or asymmetric key. At 5609, the key is sent over the secure connection to the secure transaction service 4701, which registers the key with the authentication device at 5610. At 5611, notification that registration is complete is sent to the server 4730.
Thus, in the embodiment shown in Figure 56A, the keys used for device registration are generated at the server 4730 as in the embodiment shown in Figure 55B, however the underlying principles of the invention can also be used in an embodiment in which the keys are generated by the secure transaction service 4701 at the client 4700, as described above with respect to Figure 55C.
Figure 56B illustrates one embodiment of the invention implemented within the context of an authentication process. At 5651, a user enters the URL of a particular website into browser 4704, which is directed to web server 4731 within enterprise/web destination servers 4730, which include 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 the devices registered with the website URL. Secure transaction service 4701 queries secure storage 720 at client 4700 to identify a list of devices which are sent back to server 4730 at 5653. At 5654, server 5654 selects a device to use for authentication, generates a random challenge and timeout indication, and sends this information back to secure transaction service 4701 at 5655.
At 5656, the secure transaction service 5656 automatically detects that the end of the timeout period has been reached and the random challenge is no longer valid. As discussed above, a variety of different techniques can be used to indicate and detect the end of the timeout period (see FIG. 56A and associated text). Upon detecting the end of the random challenge 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 an indication of the new timeout period. As discussed above, the new timeout period can be the same as that previously sent to the client or can be changed. In either case, at 5659, the new random challenge and timeout indication are sent to the secure transaction service 4701.
The remainder of the transaction diagram shown in FIG. 56B operates substantially similarly to the methods described above (see, e.g., FIG. 50). For example, at 5660, an authentication user interface is displayed (e.g., directing the user to swipe a finger over a fingerprint sensor), and at 5661, the user provides authentication (e.g., swipes a finger over a fingerprint scanner). At 5662, the secure transaction service verifies the user's identity (e.g., compares authentication data collected from the user with that stored in secure storage device 720) and uses a key associated with the authentication device to encrypt a random challenge. At 5663, the user name (or other ID code) and the encrypted random challenge are sent to the server 4730. Finally, at 5664, the server 4730 uses the user name (or other ID code) to identify the user in the secure transaction database 4720 and decrypts/verifies the random challenge using a key stored in the secure transaction database 4720 to complete the authentication process.
SYSTEM AND METHOD FOR HANDLING PRIVACY CLASSES WITHIN AN AUTHENTICATION FRAMEWORK - Patent application
In one embodiment, multiple classes of privacy protection can be predefined, selected and/or modified by the end user. The privacy classes can be defined based on the probability that the client can be identified using the leaked information. In privacy classes with relatively high privacy levels, relatively little information about the client device is revealed to perform the authentication techniques described herein. In one embodiment, the user can choose to disclose the minimum amount of information possible when communicating with different servers (i.e., select transactions with the lowest acceptable privacy that affect each website or network service).
FIG. 57 illustrates a high level architecture for implementing privacy classes. As illustrated, the secure transaction service 4701 of this embodiment includes privacy management logic 5701 for analyzing queries received from the server 4730 for client information, such as information related to an authentication device, enforcing privacy policies in response to such queries, and generating a response that includes the client information collected based on the particular privacy class in use. In one embodiment, the privacy management module 5701 is implemented as a software module that executes within the context of the secure transaction service 4701. However, it should be noted that the privacy management module 5701 may be implemented in any manner and may include software, hardware, firmware, or any combination thereof, while still adhering to the underlying principles of the present invention.
The privacy classes utilized by the privacy management logic 5701 can be pre-specified and stored in the client 4700 (e.g., stored in the secure storage 5720). In one embodiment, three privacy classes are defined: high privacy impact, medium privacy impact, and low privacy impact. Each privacy class can be defined based on the probability that the leaked information could be used to uniquely identify a user/client. For example, weak information for a low privacy impact transaction can result in a 10% probability of a user or machine being uniquely identified over the Internet. A medium privacy impact transaction can result in a 50% probability of a user or machine being uniquely identified, and a high privacy impact transaction can result in a 100% probability of a user or machine being uniquely identified. Various other classes of privacy levels can be defined while still adhering to the basic principles of the present invention.
In one embodiment, each trusted party (e.g., each website 4731 or service 4751) can specify a required privacy class or other privacy threshold. For example, websites and services that require an increased level of security can only be allowed to communicate according to a high privacy impact class, while other websites/services can be allowed to interact using a medium or low privacy impact class. In one embodiment, the client information query sent from the server 4730 includes an attribute that specifies the privacy class of the information to be obtained (i.e., low, medium, high). Thus, the privacy management logic 5701 stores information of the highest approved privacy class for each trusted party. In one embodiment, each time a trusted party requests information that belongs to a higher privacy class than the one already approved, the user is asked to permanently approve (or reject) this new privacy class for this trusted party. In response to the user's approval, the privacy management logic can store a new association between the trusted party (e.g., identified via a URL) and the new privacy class.
It should be noted that while user preferences 5730 are applied directly to the privacy management logic in FIG. 57 for simplicity, the user may specify preferences via a browser-based graphical user interface (not shown). In such a case, the user enters the privacy settings via a browser window. The secure transaction plug-in 4705 then stores the new settings in a settings data file accessible to or by 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.
Different types of client data can be specified at different privacy class levels including, for example, a device model identifier, client software information, client capabilities, and different levels of information associated with each authentication device configured on the client device (e.g., device ID code, vendor ID code, device class ID, etc.) Different combinations of this information may be collected to determine specific percentages in defining different privacy classes.
FIG. 58 illustrates a series of transactions for providing information to a requester using a defined privacy class. At 5801, the server 4730 generates a notification including a query for client device information. At 5802, the query is sent to the client and is eventually received by the secure transaction service 4701. At 5803, the privacy management logic of the secure transaction service determines the privacy class for the response and collects the necessary information. As described above, N different privacy class levels can be defined and the secure transaction service 4701 can select the one that meets the requirements of the requester while simultaneously leaking as little information as possible about the client. At 5804, the collected information is sent to the server 4730, which at 5805 uses the information for one or more subsequent transactions by the client.
SYSTEM AND METHOD FOR IMPLANTING AN AUTHENTICATION FRAMEWORK USING TRANSACTION SIGNATURES - Patent application
One embodiment of the present invention uses transaction signatures in a secure transaction server so that no transaction state needs to be maintained on the server to maintain a session with a client. In particular, transaction details such as the transaction text can be sent to the client signed by the server. The server may then verify that the signed transaction response received by the client is valid by verifying the signature. The server does not need to persistently store the contents of the transaction, which would consume a significant amount of storage space for a large number of clients and open the possibility of denial of service type attacks against the server.
One embodiment of the invention is shown in Figure 59 showing a website or other network service (5901) initiating a transaction with a client 4700. For example, a user may have selected items to purchase on the website and may be ready to check out and pay. In the illustrated example, the website or service 5901 hands off the transaction to a secure transaction server 5902 that includes signature processing logic 5903 for generating and verifying signatures (as described herein) and authentication logic for performing client authentication 5904 (e.g., using the authentication techniques described above).
In one embodiment, the authentication request sent from the secure transaction server 5902 to the client 4700 includes a random challenge, such as an encrypted nonce (as described above), transaction details (e.g., specific text presented to complete the transaction), and a signature generated by the signature processing logic 5903 over the random challenge and transaction details using a private key (known only to the secure transaction server).
Once the above information is received by the client, the user may receive an indication that authentication is required to complete the transaction. In response, the user may, for example, swipe a finger across a fingerprint scanner, snap an image, speak into a microphone, or perform any other type of authentication permitted for a given transaction. In one embodiment, once the user is successfully verified by the authentication device 4700, the client sends back to the server: (1) a random challenge and transaction text (both previously provided to the client by the server), (2) authentication data verifying that the user successfully completed authentication, and (3) a signature.
The authentication module 5904 on the secure transaction server 5902 may then verify that the user has been properly authenticated, and the signature processing logic 5903 uses the private key to recreate the signature over the random challenge and the transaction text. If the signature matches the one 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. The secure transaction server 5902 does not need to persistently store the transaction text (or other transaction data) in the secure transaction database 4720, thus conserving storage and processing resources.
Canonical Authentication System
Even after several years of IT revolution, passwords remain the most widely used authentication method. However, neither users nor service providers handle passwords properly, making this form of authentication inherently insecure. Meanwhile, over 100 million Trusted Platforms (TPMs) and over 150 million Secure Elements have been shipped, microphones and cameras are integrated into most smartphones and fingerprint sensors, and Trusted Execution Environments (TEEs) are on the rise. Better authentication methods exist than passwords or one-time passwords (OTPs).
In 2007, the average user had 25 accounts, used 6.5 passwords, and logged in 8 times a day. Today, things are much worse: an analysis of 6 million accounts showed that 10,000 common passwords had access to 30% of the accounts (Burnett, 2011). Even when looking at bank account passwords, 73% of users found that they shared their online bank password with at least one non-financial site (Trusteer, Inc., 2010), meaning that bank accounts are compromised when non-bank sites are hacked.
Several proposals have been made to replace passwords, including authentication, heterogeneous authentication, and trusted client environments.
Authentication Silos: Current alternatives each require their own server technology. Thus, current authentication architectures consist of silos, including authentication methods, associated client implementations, and associated server technologies.
Innovative authentication methods proposed by the research community have not been widely deployed because complete server software must be implemented and deployed in addition to the client implementation. Instead of having to compete for better user verification methods, authentication companies face a battle for the best server technology.
Heterogeneous authentication: Users can authenticate using a standalone PC, a tablet, or a smartphone. Employees can control some devices while others can be controlled by the user (David A. Willis, Gartner, 2013). The increased adoption of mobile devices and the BYOD trend leads to an increasingly heterogeneous authentication landscape. One authentication method that meets all needs seems to be out of reach.
Trusted client environment: Client-side malware can capture and disclose passwords or OTPs. It can modify transactions that are displayed and subsequently confirmed, or it can exploit authenticated communication channels to perform unintended actions. Authentication - even by username and password - requires at least one trusted component on the client side.
Today, password or OTP-based authentication alternatives do not scale. This is primarily due to the lack of an optimal combination of authentication building blocks. To address this limitation, one embodiment of the present invention identifies canonical building blocks that can be implemented in a variety of different ways, yet still result in a well-known functional authentication system that is suitable for integration within existing platform capabilities.
Recent large-scale attacks against passwords have all been focused on the server side. Such attacks are independent of the effort and security measures taken by the user. In the attack taxonomy shown in Figure 60, these attacks are labeled by (1). The introduction of protection measures against this single threat class will most likely shift the attacker's focus to attacks that steal and exploit authentication credentials from user devices (2-4), including impersonating users (2-3) and mimicking authentication sessions (4). Items (5) and (6) include physical theft of a user's device and exploitation of the device to steal data (5) and/or impersonate the user. However, attacks will most likely focus on some kind of scalable attack, i.e., attacks that have some fixed cost, but the potential for a large number of saleable goods. Physically attacking individual devices is possible, but is not scalable.
In one embodiment of the present invention, instead of storing hashed passwords with relatively low entropy, an asymmetric public key can be stored on the server and the associated private key can be stored in the device. Calculating the private key from a given public key is very resource intensive, since it requires factoring (RSA) or solving a discrete logarithm problem (DSA/ECDSA). The private key should be protected at least against malware attacks. In one embodiment, this is achieved using a trusted execution environment (TEE) or secure element (SE) on the client device.
Instead of extracting the private key, malware can simply attempt to exploit it, assuming that most client devices are always online. To protect against such attacks, (a) access to use the key should be limited to eligible apps, and (b) some kind of user interaction is required that cannot be emulated by malware. TrustedUI (GlobalPlatform, 2013) can be used to implement such kind of user interaction. Note that secure elements typically do not have a user interface and therefore do not provide this kind of protection.
When implementing the above mentioned protection measures, authentication is secure. However, an attacker may focus on attacking the app that controls the authentication session. Existing PC infection rates (APWG, 2014) demonstrate the feasibility of these kinds of attacks. If a mobile app has an authenticator with higher protection than current mobile apps, this authenticator can be used to display and obtain the user's confirmation of a particular transaction. In such a case, an infected app can result in (a) a malicious transaction that will be rejected by the user, or (b) a signed transaction that is modified after signing. This is the second use case for TrustedUI implementation.
In one embodiment, a Secure Element is used to protect the physical key extraction. The chip hardware underlying the SE typically implements state-of-the-art protection measures against physical attacks. (Dr. Sergei Skorobogatov, University of Cambridge, 2011). Additionally, in one embodiment, TrustedUI or other dedicated user verification hardware, such as a fingerprint sensor, may be used to meet the need for physical user interaction.
If an attacker gains physical access to the device, he or she can attempt to exploit the key instead of extracting it. To protect against such attacks, an effective user verification method is used that has a low false accept rate, good spoofing methods, and anti-hammer mechanisms (i.e., to effectively limit the number of potential brute force attempts).
Considering the dominance of scalable attacks, one embodiment focuses on countermeasures against physical attacks after implementing countermeasures against scalable attacks.
While good protection for client-side attestation is beneficial, in practice the remote party (i.e., the server side) also has an interest in understanding the security being used. As a result, one embodiment of the present invention "proves" client-side security properties to the remote server. To be effective, these attestation techniques need to be at least as strong as the client-side protection.
In practical solutions, the privacy of the attestations is also important. Methods such as Direct Anonymous Attestations (DAA) are a good choice. Unfortunately, the original DAA method was too slow when implemented on standard hardware. An improved pairing-based DAA scheme is much faster. The TCG of TPMv2 (Liqun Chen, HP Laboratories and Jiangtao Li, Intel Corporation, 2013) is adopted.
A typical signature consists of the signed object and the signature calculated using a private key controlled by the app, so that the verifier can trust the data in the signed object as much as if the app controlled the contents of the signed object.
As shown in FIG. 61, in one embodiment, the private key 6105 is protected by a certified authenticator 6102, which is more trusted than the app 6101. The authenticator can include a transaction confirmation component 6109 (e.g., to allow a user to confirm the text of a confirmation as described herein) and a user verification component 6106 (e.g., to allow biometric or other types of user authentication). In one embodiment, the attestation module 6103 uses the private key 6105 to generate a signature 6108 on an object including the authenticator attributes and the application data to generate a signed object 6107. As shown, in one embodiment, the signed object includes a concatenation of the attested attributes of the authenticator and the application data. The attributes used in the signed object can include, for example, (a) the transaction text confirmed by the user, (b) the actual personal identification number (PIN) length as opposed to a minimum PIN length, or (c) the firmware version of the authenticator implementation.
The illustrated implementation is more secure than existing systems because exclusive control of the key 6105 is granted to the authenticator 6102 (instead of granted to the app 6101). In one embodiment, the signed object, which is exclusively controlled by the authenticator 6102, has a "slot" reserved for data controlled by the app 6101 (identified as "app data" in FIG. 61). As a result, in this embodiment, the app 6101 is not allowed to arbitrarily create signed objects of any form. Because each signed object is similar, the object verification module 6111 of the trusted party 6110 can trust that the trusted attributes were contributed by the trusted authenticator 6102. In one embodiment, the object verification module 6111 verifies the signature 6108 using the public key and metadata 6112 (e.g., authenticator type, model and/or version) associated with the authenticator 6102.
In one embodiment, a set of canonical building blocks is defined that can be used to assemble an authentication system as shown in Figure 61. The specific set of building blocks includes:
1. Hardware and/or software for generating cryptographic keys and authenticating such keys to a remote party.
2. The hardware and/or software for generating the signatures tested.
3. Hardware and/or software to verify users.
4. Hardware and/or software that binds keys to entities (eg, restricting "use" access of such keys to a defined set of software applications).
Not all building blocks need to be present. An authentication system can be constructed using only building block #1. Other building blocks can be added as needed. The overall security and usability properties depend on the particular implementation of the building blocks used.
FIG. 62 illustrates one particular embodiment including a client-side authenticator 6201, a client-side platform 6202 (e.g., a mobile device using Android OS or Windows OS), a remote party 6203, and metadata 6304. One embodiment of the authenticator 6201 generates an authentication key and supports attestation of the authentication key to the remote party 6203. Various attestation methods are supported, including those mentioned above: FIDO Basic Attestation (Rolf Lindemann, Davit Baghdsaryan and Eric Tiffany, 2014), DAA (Ernie Brickell, Intel Corporation; Jan Camenisch, IBM Research; Liqun Chen, HP Laboratories, 2004), ECDAA (Ernie Brickell, Intel Corporation; Jiangtao Li, Intel Labs).
The remote party has access to metadata 6204 that it uses to verify the attestation object. The authenticator may be implemented as a physically separate entity (e.g., encrypted SD card, USB cryptographic token, etc.), but may also be physically embedded in the client-side platform (e.g., embedded secure element, TPM, TEE).
The authenticator 6201 may have the ability to verify a user, if desired. However, the underlying principles of the invention are not limited to any particular user verification method. However, a remote party can learn the user verification method by looking at the attestation object and metadata 6204.
Embodiments of the present invention are agnostic to any particular wire protocol or encoding of protocol messages. The only requirement is that assertions generated by the authenticator 6201, such as attestation objects and certified signature objects, must be "understood" by the remote party 6203. The specific form of the wire may depend on the particular platform.
This section is intended to give a first impression of how these canonical building blocks can be used.
In the current authentication framework, in the FIDO UAF specification, the client is very "heavyweight". With the approach described herein, the client can be easily split into two parts: (1) an application software development kit (AppSDK) that performs all of the protocol-related tasks (which are too specific to be implemented on the platform), and (2) platform functionality that implements security-related tasks such as binding keys to a set of software applications. With this approach, clients such as the FIDO client, which is a separate entity, disappear.
Below is an example of a FIDO UAF implemented on the Android platform extended to support these canonical building blocks.
AttestationType: There is no need to set it explicitly. All Android Apps know that they can only use the Android-Attestation method (e.g., via the FIDO AppSDK).
AAID: A unique identifier for the respective class of authenticator (e.g., "Authenticator Certificate ID" above). In one embodiment, the AAID is reduced to the Android KeyStore implementation using the user verification method specified when creating the key. The KeyStore looks up the AAID based on the user verification method (and its own static knowledge of the KeyStore cryptographic implementation).
Username: One embodiment allows the mobile app (via the AppSDK) to set the KeyAlias to the concatenation of the keyID and the username, if present.
AppID: Addressed using the appID binding (if supported).
In summary, one embodiment of the present invention includes a system for authenticating a client-side authenticator to a remote party, the system including: (1) a client-side authenticator that includes: (i) circuitry and/or program code for generating a cryptographic key pair (an "authentication key"); and (ii) circuitry and/or program code for proving the identity of the key-generating entity to the remote party.
(2) Data about the authenticator, including at least sufficient information to verify the proof made available to a remote party, this data being referred to above as "metadata."
(3) Circuitry and/or program code that performs cryptographic operations using the generated authentication private key to prove possession of the private authentication key to a remote party.
Furthermore, the authenticator may be known to restrict the use of the authentication private key to perform a well-defined cryptographic signing operation only on the signed object. This signed object contains data fields controlled by the authenticator and one or more data fields that are clearly marked to contain arbitrary data (not controlled by the authenticator). The authenticator can indicate such objects by starting them with a magic number MN, followed by a well-defined data structure. This signing operation is referred to herein as an "attested signature". This magic number MN can be chosen freely, but must be fixed and well known. An example of a way to set this magic number is "ATTESTED_SIGNATURE".
Additionally, in one embodiment, the client-side authenticator has the ability to verify the user using any user verification method, the characteristics of which are static (i.e., do not change over time for any authenticator) and described in the metadata. The user verification method may be arbitrarily complex and may consist of multiple biometric and non-biometric authentication methods (e.g., PIN or fingerprint, speaker recognition in combination with PIN/fingerprint, facial recognition, etc.).
Furthermore, in one embodiment, (a) the key may be used only for certified signatures, and (b) the authenticator has the ability to verify the user using a user verification method described in a data field (e.g., certified signature) whose characteristics are controlled by the authenticator. Note that the user verification method may be arbitrarily complex and may further consist of multiple biometric and non-biometric authentications (e.g., PIN or fingerprint, speaker recognition in combination with PIN/fingerprint, facial recognition, etc.).
In one embodiment, access to the private authentication key 6105 is limited to a specified set of applications. The set may further be limited to uses that are deemed equivalent by the platform (e.g., operating system). As an example, access to the authentication key may be limited by the operating system to applications that are signed using the same package signing key as the application that triggered the key generation. Furthermore, the set of applications may include applications that are considered equivalent by the application developer via a list of application facets that are considered equivalent.
In yet another embodiment, the authenticator 6102 supports securely displaying the transaction text and asking the user to confirm (or deny) this particular transaction. The transaction text may be cryptographically bound to the certified signature (i.e., a cryptographic hash of the transaction text is included in one of the fields controlled by the authenticator).
One embodiment of the present invention implements the security related tasks of the FIDO UAF/U2F stack (not belonging to the authenticator) on the platform (e.g., OS or web browser) and leaves the implementation of other protocol processing tasks to the app, thereby eliminating the need to implement specific protocols within the platform (i.e., eliminating the need to have a FIDO client).
SYSTEM AND METHOD USING A SECURE KEY STORE FOR TRANSACTION VERIFICATION AND CRYPTOCURRENCY IMPLEMENTATION - Patent application
Existing interfaces for secure key stores, such as the secure storage device 3725 described above, allow arbitrary data to be passed to the update method when computing the cryptographic signature, leaving control of the object being signed entirely to the calling application. One example of such an update method is described at the following URL, which describes a Java implementation for the Android platform: http://developer.android.com/reference/java/security/Signature.html#update(byte[])).
The data is interpreted by a signature algorithm implemented in a module that may be called "KeyMaster" (e.g., in a Trusted Execution Environment). This data is typically expected to be any data that is hashed using a particular hash algorithm associated with the signing key (e.g., SHA256 when used with the Elliptic Curve Digital Signature Algorithm).
This technique is difficult in "what you see is what you sign" (WYSIWYS) implementations because trust in the object being signed is limited to the operating system application level (e.g., the Android OS app level in Android implementations). WYSIWYS is an important security feature because it prevents attackers from tricking users into signing unwanted transactions. Further details related to this issue can be found in the following references:http://pdfs.semanticscholar.org/15ce/5b7ae2118cb1ab47b66392e0a565ae969f43.pdfhttp://www.sciencedirect.com/science/article/pii/S0167404898800058http://pdfs.semanticscholar.org/b52c/726fabe56bb7f929e8c6b11112afd78db359.pdf
The following documents, which are incorporated herein by reference, provide useful background for the embodiments of the invention described herein.
http://fidoalliance.org/specs/fido-v2.0-rd-20170927/fido-client-to-authenticator-protocol-v2.0-rd-20170927.html (Client-to-Auth Protocol, V2.0) http://www.w3.org/TR/webauthn (Web Authentication Specification) http://tools.ietf.org/html/rfc7049 (RFC7049, "CBOR")
Figure 63 illustrates one embodiment of an apparatus 6300 that addresses the above limitations. The exemplary apparatus includes a secure key store 6320 accessible via a key master 6310 and a key master extension 6311 for performing user authentication (e.g., using the techniques described herein). The key master and the key master extension form the authenticator 6100. One embodiment of the invention implements a new (derived) hash function constructed as follows: KM_DIGEST_WEBAUTHN_SHA256
In one embodiment, the input data 6301 is formatted using the Concise Binary Object Representation (CBOR) as described in RFC 7049 for the function authenticatorGetAssertion. The field "extensions" may include the txGeneric extensions as described in the Web Authentication specification referenced above.
b. If that extension is included, the Key Master implementation 6310 uses the Trusted Execution Environment's (TEE's) TrustedUI functionality to display the content in 6302 and asks the user to authorize the transaction using the Key Master extension 6311. Only if the user agrees to the transaction and the user is positively verified in 6303, does the Authenticator 6100 sign the associated response using the Key Master 6310 functionality.
c. The key master implementation 6310 then generates the final signed object and calculates the SHA256 hash of it in 6312 according to the Web Authentication specification.
At d.6313, the final Elliptic Curve Digital Signature Algorithm (ECDSA) signature is computed on this hash.
In one embodiment, the key can only be used in conjunction with this hashing algorithm, so that we do not blindly encode arbitrary hash values that may represent unwanted transactions.
Although this embodiment is described within the context of a particular input and output function, the underlying principles of the invention are not limited to this particular implementation. One embodiment performs similar operations but uses Bitcoin input/output functions. Figure 64 illustrates, for example, a Bitcoin format input message 6401. The key master implementation 6410 then uses the TrustedUI function of the trusted execution environment (TEE) to display the content at 6402 and prompts the user to authorize the Bitcoin transaction. Only if the user agrees and is correctly verified, does the authenticator 6100 sign the associated response. The key master implementation 6410 then generates a final signed object at 6412 and computes its SHA256 hash. It then computes the final ECDSA signature on the hash at 6413.
The above implementation has many advantages. For example, no major changes to the base OS are required, and one additional KM_DIGEST_<sup>*</sup>and hash algorithms need to be added. Advances in TEE security and TrustedUI features can be leveraged and made easily available to app vendors.
Additionally, existing hardware key attestation technology implemented in key stores can be leveraged, providing trusted parties with a strong indication of the underlying security. Finally, users can trust the system to display correct transaction and user approvals before actually authorizing/signing the transaction.
Virtual RP ID for FIDO and Web Authentication
FIDO authentication can be used to authenticate with a trusted party (RP). Thus, authenticators registered by the RP can be used. Although the authentication protocol is standardized, the process of registering additional authenticators is proprietary. It is not realistic to expect a critical mass of RPs to provide a standardized API for registering additional authenticators. An embodiment of the present invention provides the use of blockchain as a standardized method for registering additional authenticators.
FIDO and Web Authentication connect authentication keys (public key credential sources) to trusted parties by application ID (AppID in FIDO) or trusted party ID (RPID in Web Authentication). In the blockchain world, the ledger itself acts as an intermediary between users (represented by public keys) and any trusted parties that may evaluate the ledger content. As a result, at the time of public key creation, the name of the trusted party/parties for which the key will be used is not yet known. To avoid the problem of global correlation handles, users can generate multiple key pairs and use a single key pair (or even multiple key pairs) with one specific trusted party or a specific set of trusted parties at their discretion.
[0004] Embodiments of the present invention provide a technique for "virtual RP ID" configured in the FIDO world, thereby enabling FIDO authenticators to be used in a blockchain context. In particular, a FIDO client is the entity that validates the AppID. Similarly, in web authentication, the "platform" (i.e., web browser or operating system) is the entity that validates the RP ID.
One embodiment of the present invention includes a process and architecture for a FIDO client/platform to create a "virtual" AppID/RP ID of a particular syntax (e.g., did://34569876af768c7e797324). Such a "virtual" AppID/RP ID does not depend on an existing entry in any Domain Name Service (DNS). Furthermore, any virtual AppID/RP ID has an associated protocol name different from http and https. Such a "virtual" AppID/RP ID points to a particular entry in a blockchain that uses the "virtual" AppID/RP ID as a Disjoint Identifier (DID).
65 illustrates an example device 6500 having a record 6501 containing a "virtual" AppID/RP ID (e.g., integrated with a FIDO client) created and managed by the authentication engine 3710. The virtual ID contained in the DID record 6501 is associated with and used to authenticate with a trusted party 6503, as described herein.
In one embodiment, multiple "virtual" AppID/RP IDs 6502 are created to avoid sharing with entities that do not have the correlation handle. A DID record 6501 may contain multiple public key records, each of which may contain a certification statement for the public key and/or an "expiry date". When a new public key record is added to such a DID record 6501, the block DID record chain verifies that the new public key record is signed by a private key associated with some existing public key record contained in the record. When adding an entry with an expiry date, the associated public key will not be trusted after this date.
Furthermore, one embodiment of the invention introduces the DID record 6501 to the trusted party 6503 for authentication. In this "registration" process, the trusted party (RP) 6503 sends a signed nonce (e.g., in either FIDO or Web Authentication Signed Assertion format) to the device 6500, which returns the DID 6501 as an identifier. When verifying the registration response, the trusted party 6503 verifies that the public key correctly belongs to the associated DID 6501 and that the attestation statements indeed meet the requirements of the trusted party 6503 (e.g., sufficient security).
Each public key record in the record represents an authenticator registered to a particular "virtual" AppID/RP ID represented by DID 6501. This provides a standardized way for users to manage authenticators for different RPs without requiring each RP to implement the same protocol to allow users to add, combine, or remove authenticators.
"Blockchain" is a relatively new concept that has received significant attention in recent years. The best known blockchain is the one used in Bitcoin, but there are others including, for example, Ethereum. In general, a blockchain is a continuously growing set of records ("blocks") that are linked together and cryptographically secured. Each block may contain pointers that link it to previous blocks, associated transaction data, and timestamps.
Almost all blockchain technologies require public key signing of the data being appended. This essentially results in an identity associated with the public key. It is assumed that only the legitimate owner of the associated private key is able to create a signature with this private key. For example, in Bitcoin, the public key is the "owner" of the associated Bitcoin "currency", meaning that anyone with access to the associated private key can successfully claim ownership. If the private key is lost, the associated "currency" is lost, and if stolen, the "currency" can be claimed by someone else.
Modern blockchains like Ethereum (http://www.ethereum.org/) support more general concepts like smart contracts. In such a construction, the contraction interest is tied to a public key, and the impact is similar to Bitcoin, i.e. if the key is stolen the contraction interest can be claimed by someone else.
As a result, significant emphasis is placed on securely storing private keys. To meet this need, some companies maintain such private keys on behalf of their customers (e.g., "Bitcoin Account Services" for Bitcoin keys). Others include Mt.Gox BitX, Circle, and Coinbase. Such central services are ideal targets for thieves, and indeed Mt.Gox was hacked. Alternative examples include local "wallets", some of which are implemented in "software" running on rich operating systems, others in hardware tokens.
Unfortunately, at this stage, there is no way to revoke the private key associated with the public key, whether it is strongly protected in a hardware token or weakly protected in some "software" wallet. This also means that there is no proof of how well users of the Bitcoin account service protect their keys and how any kind of user interacts with the key needs before creating a signature. That is, it may depend on the "what-you-see-is-what-you-sign" feature and how it is implemented. More generally, the concept of such proof of keys in Bitcoin, Ethereum, and other blockchains does not exist.
One embodiment of the present invention uses the authenticator certification station described herein to document the security of private keys. Specifically, in one embodiment, the described authenticator architecture can be used to implement the following use cases:
1. The distribution of electronic cash is limited to "wallets" that have certain security characteristics. This may include, for example, only wallets or other secure storage devices that use a trusted execution environment to protect private keys.
2. A transaction is only approved if the user explicitly confirms the transaction on an authenticator, for example using techniques such as what-you-see-is-what-you-sign.
3. When a user uses a service (for example, when using a Bitcoin account service), they can verify how strongly their private key is protected.
Use cases like this help avoid surprises due to weak wallets and also support concepts like non-reputation.
To provide improved protection of users' private keys in these scenarios, one embodiment of the present invention introduces authenticators, authenticator certificates, and metadata statements for authentication to such blockchain concepts. Specifically, in one embodiment, a "blockchain authenticator" is used in a similar manner to the authenticators (including FIDO authenticators) described above, but with additional support for signing certain blockchain messages (in addition to assertions such as FIDO assertions).
The certificate may add attestation statements for the data block that is added to the blockchain when the public key is first introduced. Examples of such attestation statements include those defined in FIDO UAF Authenticator Commands, FIDO Alliance Implementation Draft 02, February 2017, Section 5.2 (TAG_UAFV1_REG_ASSERTION) and Section 4.2 (Registration Response Message), and Web Authentication: APIs to Access Public Key Credentials Level 1, W3C Working Draft 11, August 2017, Section 5.3.4 (Creating an Attestation Object).
In one embodiment, the attestation statement may be part of a block (e.g., as a special message type) such that (1) it does not include any personal data and (2) it is integrally protected by a signature. In one embodiment, an indication is added to the metadata statement associated with the authenticator to specify blockchain support (e.g., Bitcoin, Ethereum, ...). Furthermore, the blockchain block type may be used to reference the attestation function (e.g., Bitcoin signature script).
FIG. 66 reproduces some of the features described above with respect to FIG. 61. However, in this particular implementation, the attestation module 6103 generates a signed object 6607 that includes a new block 6608 added to the blockchain, along with a signature 6609 generated with a private key. In one particular implementation, the object to be signed may also include one or more attested attributes 6611. As previously described, the object to be signed may include a concatenation of attested attributes 6611 of the authenticator 6102 and the block 6608. Attested attributes 6611 used within the signed object may include, for example, (a) the transaction text as verified by the user, (b) the actual personal identification number (PIN) length as opposed to a minimum PIN length, or (c) the firmware version of the authenticator 6102. Unless otherwise noted, the other components of FIG. 66 operate substantially as described above with respect to FIG. 61.
Exemplary Data Processing Device
Fig. 67 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 Fig. 67 illustrates various components of a computer system, it is not intended to represent any particular architecture or manner of interconnecting the components, as such details are not pertinent to the present invention. It will be understood that other computer systems having fewer components or more components may also be used in accordance with the present invention.
As shown in Figure 67, a computer system 6700 in the form of a data processing system includes a bus(es) 6750 coupled to a processing system 6720, a power supply 6725, a memory 6730, and a non-volatile memory 6740 (e.g., a hard drive, flash memory, phase change memory (PCM), etc.). The bus(es) 6750 may be connected to each other via various bridges, controllers and/or adapters as are well known in the art. The processing system 6720 may retrieve instruction(s) from the memory 6730 and/or the non-volatile memory 6740 and may execute the instructions to perform operations as described above. A bus 6750 interconnects the above components together and also interconnects them to an optional dock 6760, a display controller and display device 6770, input/output devices 6780 (e.g., a NIC (Network Interface Card), cursor control (e.g., mouse, touch screen, touch pad, etc.), keyboard, etc.) and any wireless transceiver(s) 6790 (e.g., Bluetooth, WiFi, infrared, etc.).
64 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 6400 may be a handheld computer, a personal digital assistant (PDA), a mobile phone, a portable gaming system, a portable media player, a tablet, or a handheld computing device that may include a mobile phone, a media player, and/or a gaming system. As another example, data processing system 6400 may be an embedded processing device within a network computer or another device.
According to one embodiment of the present invention, an exemplary architecture of a data processing system 6400 can be used for the portable device described above. The data processing system 6400 includes a processing system 6420, which can include one or more microprocessors and/or systems on an integrated circuit. The processing system 6420 is coupled to a memory 6410, a power source 6425 (including one or more batteries), an audio input/output 6440, a display controller and display device 6460, any input/output 6450, input device(s) 6470, and a wireless transceiver(s) 6430. It will be understood that additional components not shown in FIG. 64 may also be part of the data processing system 6400 in certain embodiments of the present invention, and that fewer components than those shown in FIG. 64 can be used in certain embodiments of the present invention. Furthermore, it will be understood that one or more buses not shown in FIG. 64 can be used to interconnect various components as is well known in the art.
The memory 6410 can store data and/or programs for execution by the data processing system 6400. The audio input/output 6440 can include, for example, a microphone and/or speaker for playing music and/or providing telephony functionality via the speaker and microphone. The display controller and display device 6460 can include a graphical user interface (GUI). The wireless (e.g., RF) transceiver 6430 (e.g., WiFi transceiver, infrared transceiver, Bluetooth transceiver, wireless cellular transceiver, etc.) can be used to communicate with other data processing systems. One or more input devices 6470 allow a user to provide input to the system. These input devices can be a keypad, keyboard, touch panel, multi-touch panel, etc. Optional other input/output 6450 can be a connector for a dock.
As described above, embodiments of the present invention may include various steps. The steps may be embodied in machine-executable instructions that cause a general-purpose or special-purpose processor to perform particular steps. Alternatively, the steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.
The elements of the present invention may also be provided as a machine-readable medium that stores machine-executable program code, which may include, but is not limited to, floppy disks, optical disks, CD-ROMs and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, or other types of media/machine-readable media suitable for storing electronic program code.
Throughout the above description, for purposes of explanation, numerous specific details have been set forth to provide a thorough understanding of the present invention. However, it will be apparent to one 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 one 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. Virtually any type of client or peer data processing device may be used in some embodiments, including, for example, desktop or workstation computers. Thus, the scope and spirit of the present invention should be judged in terms of the following claims.
As described above, embodiments of the present invention may include various steps. The steps may be embodied in machine-executable instructions that cause a general-purpose or special-purpose processor to perform particular steps. Alternatively, the steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.
Contents2
75 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29 Sheet 30 Sheet 31 Sheet 32 Sheet 33 Sheet 34 Sheet 35 Sheet 36 Sheet 37 Sheet 38 Sheet 39 Sheet 40 Sheet 41 Sheet 42 Sheet 43 Sheet 44 Sheet 45 Sheet 46 Sheet 47 Sheet 48 Sheet 49 Sheet 50 Sheet 51 Sheet 52 Sheet 53 Sheet 54 Sheet 55 Sheet 56 Sheet 57 Sheet 58 Sheet 59 Sheet 60 Sheet 61 Sheet 62 Sheet 63 Sheet 64 Sheet 65 Sheet 66 Sheet 67 Sheet 68 Sheet 69 Sheet 70 Sheet 71 Sheet 72 Sheet 73 Sheet 74 Sheet 75
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| JP2017152880A | Cites | Japan |
| JP2016521403A | Cites | Japan |
| JP2017157926A | Cites | Japan |
| US20170317833A1 | Cites | United States of America |
17 members in 6 offices
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 15822531 | United States of America | – | |
| 201715822531 | United States of America | A | |
| 2018062608 | United States of America | W | |
| 2020546306 | Japan | A |
Members17
| Document | Office | Kind | |
|---|---|---|---|
| US2019164156A1 | United States of America | A1 | |
| WO2019104323A1 | World Intellectual Property Organization (WIPO) | A1 | |
| CN111386514A | China | A | |
| KR20200092368A | Republic of Korea | A | |
| EP3717998A1 | European Patent Office (EPO) | A1 | |
| JP2021504860A | Japan | A | |
| EP3717998A4 | European Patent Office (EPO) | A4 | |
| JP2023171851A | Japan | A | |
| JP7391860B2 | Japan | B2 | |
| US11868995B2 | United States of America | B2 | |
| KR102654886B1 | Republic of Korea | B1 | |
| US2024127235A1 | United States of America | A1 | |
| EP3717998B1 | European Patent Office (EPO) | B1 | |
| JP7603121B2This record | Japan | B2 | |
| CN111386514B | China | B | |
| JP2025041684A | Japan | A | |
| CN119961955A | China | A |
8 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Decision of grant or rejection writtenTRDD | TRDD | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Written request for application examinationJAPANESE INTERMEDIATE CODE: A621A621 | A621 |
Numbers
- Publication
- 7603121
- Application
- 164916
Titles2
- Japanese
- トランザクション確認及び暗号通貨のためのセキュアな鍵記憶装置の拡張
- English
- Secure Key Storage Extensions for Transaction Verification and Cryptocurrencies
Classification
- CPC, 21
- G06Q20/3829
- G06Q20/40145
- G06Q20/065
- G06Q20/4016
- G06Q2220/00
- H04L9/3239
- H04L9/3231
- H04L9/3247
- H04L9/3271
- H04L9/0894
- H04L9/12
- G06F21/64
- G06F21/32
- G06F2221/2111
- G06F21/72
- H04L63/0861
- H04L9/50
- G06Q2220/10
- H04L9/06
- H04L9/0825
- H04L9/0877
- IPC, 3
- G06F21 64
- G06F21 32
- H04L9 32
