US20230289787A1 - Authentication using a secure circuit - Google Patents
Authentication using a secure circuit Download PDFInfo
- Publication number
- US20230289787A1 US20230289787A1 US18/174,414 US202318174414A US2023289787A1 US 20230289787 A1 US20230289787 A1 US 20230289787A1 US 202318174414 A US202318174414 A US 202318174414A US 2023289787 A1 US2023289787 A1 US 2023289787A1
- Authority
- US
- United States
- Prior art keywords
- server system
- user
- public key
- token
- computing device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 35
- 230000004044 response Effects 0.000 claims abstract description 35
- 238000004891 communication Methods 0.000 claims description 12
- 230000007246 mechanism Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 239000004744 fabric Substances 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000011449 brick Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004570 mortar (masonry) Substances 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/12—Payment architectures specially adapted for electronic shopping systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/32—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
- G06Q20/322—Aspects of commerce using mobile devices [M-devices]
- G06Q20/3223—Realising banking transactions through M-devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/32—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
- G06Q20/322—Aspects of commerce using mobile devices [M-devices]
- G06Q20/3227—Aspects of commerce using mobile devices [M-devices] using secure elements embedded in M-devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/385—Payment protocols; Details thereof using an alias or single-use codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4014—Identity check for transactions
- G06Q20/40145—Biometric identity checks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0861—Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
- H04W12/069—Authentication using certificates or pre-shared keys
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
Definitions
- This disclosure relates generally to processors, and, more specifically, to processors that use public key encryption.
- an online store may maintain shipping information and/or payment information for a user, so that the user does not have to reenter this information for each purchase.
- a user is typically asked to authenticate by providing some user credential such as a user name and password.
- a computing device includes a secure circuit usable to facilitate authenticating a user.
- the secure circuit may be configured to generate a public key pair usable to authenticate a user of the computing device.
- the computing device may authenticate the user with a server system by sending authentication information supplied by the user to the server system.
- the computing device may receive a first token usable to register the public key pair with the server system.
- the computing device may send, to the server system, a request to register the public key pair for authenticating the user, and the request may include the first token and identify a public key of the public key pair.
- the computing device performs a subsequent authentication for the user that includes receiving a challenge from the server system, requesting that the secure circuit generate, with a private key of the public key pair, a digital signature for the challenge, and providing the digital signature to the server system in a response to the challenge.
- FIGS. 1 A and 1 B are block diagrams illustrating examples of a system for authenticating using a public key pair generated by a secure circuit in a computing device.
- FIGS. 2 A- 2 C are communication diagrams illustrating examples of an exchange to establish trust and register a public key pair.
- FIG. 3 is a communication diagram illustrating an example of a payment process in which a user is authenticated.
- FIG. 4 is a communication diagram illustrating an example of a cancelation process.
- FIG. 5 is a block diagram illustrating an example of components in the secure circuit.
- FIGS. 6 A- 6 C are flow diagram illustrating examples of methods performed by components of the authentication system.
- a “secure circuit configured to perform a cryptographic operation” is intended to cover, for example, an integrated circuit that has circuitry that performs this function during operation, even if the integrated circuit in question is not currently being used (e.g., a power supply is not connected to it).
- an entity described or recited as “configured to” perform some task refers to something physical, such as a device, circuit, memory storing program instructions executable to implement the task, etc. This phrase is not used herein to refer to something intangible.
- the “configured to” construct is not used herein to refer to a software entity such as an application programming interface (API).
- API application programming interface
- first,” “second,” etc. are used as labels for nouns that they precede, and do not imply any type of ordering (e.g., spatial, temporal, logical, etc.) unless specifically stated.
- first and second processing cores can be used to refer to any two of the eight processing cores.
- first and second processing cores are not limited to physical processing cores 0 and 1, for example.
- the term “based on” is used to describe one or more factors that affect a determination. This term does not foreclose the possibility that additional factors may affect a determination. That is, a determination may be solely based on specified factors or based on the specified factors as well as other, unspecified factors.
- a determination may be solely based on specified factors or based on the specified factors as well as other, unspecified factors.
- the present disclosure describes embodiments in which a user may authenticate with an entity via a digital signature generated by a secure circuit in the user's computing device (as opposed to repeatedly being required to enter a credential each time the user wants to authenticate with the entity).
- the computer device may perform a registration process for a public key pair generated by the secure circuit in order to begin authenticating using a digital signature generated by a private key of the pair.
- the process may begin with the computing device establishing trust with a server system of the entity by presenting authentication information of the user to the server system.
- the server system may generate an indication that trust has been established with the computing device and, in some embodiments, may present the indication as a token to the computing device (or store it in the system in other embodiments).
- the computing device submit a request to register a public key pair generated by the secure circuit in the device. This request may include the token and information indicative of the public key of the pair (e.g., the public key or a hash of the public key).
- the server system may register the public key pair allowing the computing device to later generate a digital signature in order to authenticate the user.
- this registration process may be performed within the context of making a purchase using the computing device. That is, a user may establish trust with the server system when attempting to make a purchase, and the user's computing device may receive a token allowing the computing device to register a public key pair. In other words, the computing device may leverage the trust established to authorize a purchase in order to register a public key pair. This public key pair may then be used to authenticate for making future purchases.
- the computing device restricts access to generating digital signatures by using a biosensor included in the computing device.
- the biosensor may be configured to collect biometric information from a biometric credential presented by the user—e.g., fingerprint information from the user's finger. The biosensor may present this information to the secure circuit, which compares the information against previously stored biometric information of the user. If a match is detected, the secure circuit may generate a digital signature for authenticating the user. If a match is not detected, the secure circuit may decline a request to generate the digital signature.
- Examples of the registration process is described in greater detail below with respect to FIGS. 1 A and 2 A- 2 C .
- Examples of a process for making purchases are described in greater detail below with respect to FIGS. 1 B and 3 .
- An example of a key cancelation is discussed with respect to FIG. 4 .
- An example of contents within the secure circuit is discussed below with respect to FIG. 5 .
- Embodiments of related methods are described with respect to FIGS. 6 A- 6 C .
- system 10 includes a computing device 100 and a payment system 140 .
- Computing device 100 may correspond to any suitable computer system. Accordingly, in some embodiments, device 100 may be a mobile device (e.g., a mobile phone, a tablet, personal data assistant (PDA), etc.), desktop computer system, server system, network device (e.g., router, gateway, etc.), microcontroller, etc.
- computing device 100 includes a system on a chip (SOC) 110 , memory 120 , biometric sensor 130 (more briefly “biosensor” 130 ).
- SOC system on a chip
- SOC 110 may be integrated onto a single semiconductor substrate as an integrated circuit chip. In some embodiments, the components may be implemented on two or more discrete chips in a system. As shown, SOC 110 may include a central processing unit (CPU) 112 configured to execute a payment application 122 stored in memory 120 . SOC 110 may also include a secure enclave processor (SEP) 114 . In some embodiments, system 10 may be implemented differently than shown.
- CPU central processing unit
- SEP secure enclave processor
- Payment application 122 is an application that allows a user to request payments for various purchases.
- application 122 may present a store front that offers products and/or services available for purchase.
- application 122 may present various digital content available for purchase such as music, videos, books, and/or applications.
- Payment system 140 is a server system (i.e., a collection of one or more server computers) that processes payment requests from an application 122 .
- system 140 may maintain various payment information about a user, such as a user's billing address and credit card information, in order to facilitate processing a payment request.
- an application 122 may present authentication information for the user in order to use the existing payment information stored in system 140 .
- this authentication information may include a user name and password entered into computing device 100 via a touch screen of device 100 , keyboard, or other form of interface.
- system 140 may allow the previously stored payment information to be used in making a payment for a purchase. As will be discussed below, in various embodiments, system 140 may allow a payment application 122 to register a public key pair for authenticating instead of asking the user to renter his or her authentication information for each purchase.
- Secure enclave processor (SEP) 114 is one embodiment of a secure circuit or a secure component configured to generate and maintain a public key pair, which may be used for authentication.
- the term “secure circuit” refers to a circuit that protects an isolated, internal resource from being directly accessed by an external circuit.
- This internal resource may be memory that stores sensitive data such as personal information (e.g., biometric information, credit card information, etc.), encryptions keys, random number generator seeds, etc.
- This internal resource may also be circuitry that performs services/operations associated with sensitive data. As will be described below, these services may include various cryptographic services such as authentication, encryption, decryption, etc.
- Secure services may include secure key generation, which may include shared secret keys and asymmetric keys (i.e., public and private keys).
- SEP 114 may determine whether to perform a requested operation, such as generating a digital signature, based on biometric information collected by biosensor 130 in order to confirm that the requested operation is associated with an authorized user.
- Biosensor 130 in one embodiment, is configured to detect biometric data for a user of computing device 100 .
- Biometric data may be data that uniquely identifies the user among other humans (at least to a high degree of accuracy) based on the user's physical or behavioral characteristics.
- sensor 130 is a finger print sensor that captures fingerprint data from the user.
- SEP 114 may maintain previously captured fingerprint data of an authorized user and compare it against newly received fingerprint data from sensor 130 in order to authenticate a user. (In another embodiment, biosensor 130 may perform the comparison.) If the fingerprint data matches, SEP 114 may permit performance of a requested service.
- communications between SEP 114 and biosensor 130 may be encrypted using a key shared between SEP 114 and biosensor 130 such that another circuit (e.g., CPU 112 ) is unable to view communicated fingerprint data.
- another circuit e.g., CPU 112
- other types of biometric data may be captured by sensor 130 such as voice recognition (identifying the particular user's voice), iris scanning, etc.
- SEP 114 may also compare information collected from sources other than sensor 130 in order to verify the identity of a user, in some embodiments.
- computing device 100 may include other user interface circuits (e.g., a touch screen) configured to receive authentication information (e.g., a passcode or password) from a user, and SEP 114 may verify that the received authentication information is correct.
- authentication information e.g., a passcode or password
- payment application 122 may perform a registration process for a public key pair generated by SEP 114 in order to allow a user to subsequently authenticate with payment system 140 using a digital signature generated by a private key of the pair and without having to provide a user name and password.
- this registration process includes the communication of elements 141 - 146 discussed below. It is noted, while various authentication techniques are described herein within the context of facilitating payment processing, these techniques may also be used in other embodiments in which authentication is used for some purpose other than making a purchase.
- the registration process may begin with payment application 122 communicating user authentication information 141 to payment system 140 in order to establish trust between computing device 100 and payment system 140 .
- this information 141 may be communicated to system 140 in response to a user's request to authenticate using a biometric credential supplied by the user. For example, in one embodiment, a user may select a setting in application 122 to enable authentication in this manner.
- information 141 may be communicated in response to a user requesting to purchase an item.
- authentication information 141 may include a user name and password enter by the user into, for example, a touch screen of device 100 .
- authentication information 141 may include one or more values (e.g., a password equivalent token (PET) discussed below with FIGS. 2 A- 2 C ) derived from a user name and password provided by the user.
- authentication information 141 may also include a unique account identifier for the user (referred to below as DSID), a machine identifier (MID) that uniquely identifies computing device 100 , and/or a one-time token (OTP).
- DSID unique account identifier for the user
- MID machine identifier
- OTP one-time token
- Authentication information 141 may, however, include any suitable information to establish trust with system 140 .
- application 122 may receive a token 142 .
- Authenticated token 142 is an indication that trust has been established with payment system 140 —e.g., that the user has been authenticated.
- token 142 may include a portion (or all) of information 141 , which has been signed by system 140 .
- system 140 may merely store token 142 locally (i.e., in a memory of system 140 ) for future retrieval.
- authenticated token 142 may be used to register a public key pair generated by SEP 114 with payment system 140 .
- payment application 122 may issue a key request 143 to SEP 114 to generate a public key pair to be registered with payment system 140 .
- a key request 143 may be issued after a user has requested to authenticate with a biometric credential.
- SEP 114 may generate the key pair and return the public key 144 of the pair.
- SEP 114 may store the key pair with usage criteria indicating that the private key cannot be used to generate a digital signature without first confirming biometric information received from biosensor 130 .
- application 122 may issue a registration request 145 to payment system 140 in order to register the public key pair generated by SEP 114 .
- request 145 includes authenticated token 142 and public key 144 .
- application 122 is leveraging the previous trust established earlier with the communication of information 141 . In cases where information 141 was communicated to facilitate a purchase, application 122 does not have to ask the user to provide information 141 multiple times—e.g., once to initiate payment and again to register a public key pair.
- request 145 may include (or be accompanied with) additional information such as a DSID, MID, a digital signature generated by a device key stored in SEP 114 that is separate from the public key pair, etc.
- registration request 145 is a certificate signing request (CSR), which may be in compliance with a standard format such as defined by the public-key cryptography standards (PKCS) #10 specification.
- system 140 may act as a certificate authority (CA).
- CA certificate authority
- payment system 140 may provide a corresponding registered key token 146 .
- Register key token 146 indicates that a particular public key pair has been registered and may be used to verify a digital signature generated by the private key of the pair. As will be discussed below with FIG. 1 B , application 122 may provide this token 146 when presenting a digital signature to authenticate with system 140 . In other embodiments, payment system 140 may store token 146 locally for subsequent authentications. In some embodiments, token 146 may identify the public key of the registered pair by including the public key (or a hash of the public key), which may be signed by system 140 . In some embodiments, token 146 may include additional information such as the DSID, MID, an expiration period for the registration, etc.
- token 146 is a certificate in compliance with a standard format such as the X.509 standard.
- application 122 may continue to maintain token 146 so that it can be used for multiple subsequent authentications using the public key pair.
- token 146 may be usable even after computing device 100 has been restarted. That is, application 122 does not have to resubmit authentication information 141 and reregister a public key pair after device 100 has performed a boot sequence.
- FIG. 1 B a block diagram of system 10 during authentication using a register public key pair is depicted. In the illustrated embodiment, this authentication is performed via elements 151 - 155 . In other embodiments, the authentication may be performed differently than shown.
- the authentication process begins with a payment request 151 to initiate making payment for a purchase.
- this request 151 may include the registration token 146 obtained during registration of the public key pair as discussed above. In other embodiments, this token may be submitted later such as with the challenge response 154 .
- payment system 140 may issue a corresponding challenge 152 to verify that device 100 is in possession of the previously registered public key pair.
- this challenge includes random data, which may be derived using a pseudo-random number generator with the token 146 being used as a seed.
- payment application 122 may provide the challenge 152 to SEP 114 along with a request for SEP 114 to generate a signature 153 using the private key of the registered public key pair.
- SEP 114 may ask biosensor 130 to collect biometric information from a biometric credential supplied by the user in order to determine that an authorized user is present.
- SEP 114 may generate the requested signature 153 .
- Payment application 122 may then convey this signature 153 in a response 154 to the challenge 152 . If payment system 140 is able to successfully determine that the signature 153 is valid, payment system 140 may authorize payment for the requested purchase and notify payment application 122 that payment has been authorized by providing an indication 155 .
- FIG. 2 A a communication diagram of an exchange between a user, SEP 114 , payment application 122 , and payment system 140 for a registration 200 of a public key pair is depicted.
- registration 200 is performed in response to a user making a request 202 to authenticate with system 140 using biosensor 130 (referred to as “touch id” in FIGS. 2 A- 4 ).
- payment application 122 may issue a key request 143 for SEP 114 to generate a public key pair and receive the public key 144 of the pair.
- Application 122 may then convey authentication information 141 and receive authenticated token 142 .
- application 122 may issue a registration request 145 including the public key 144 and token 142 to system 140 .
- system 140 may provide a registered key token 146 .
- FIG. 2 B a communication diagram of an exchange between a user, SEP 114 , payment application 122 , and payment system 140 for a registration 210 of a public key pair is depicted.
- registration 210 is performed in response to a user making a request 212 to make a purchase.
- payment application 122 may provide information 141 as shown and receive a corresponding authenticated token 142 .
- Application 122 may then issue a purchase request 214 including the token 142 .
- application 122 may issue a key request 143 to SEP 114 and receive a public key 144 .
- Application 122 may then issue a registration request 145 including this key.
- request 145 does not include the token 142 as system 140 temporarily maintains the token 142 from request 214 .
- system 140 may return a registered key token 146 .
- FIG. 2 C a communication diagram of an exchange between a user, SEP 114 , payment application 122 , and payment system 140 for a registration 220 of a public key pair is depicted.
- registration 220 is performed in response to application 122 submitting a payment request 222 that includes a key token 146 that is no longer valid.
- application 122 may receive an indication 224 of the token's invalidity.
- application 122 may need to resubmit elements 141 - 145 to get a new token 146 as shown.
- FIG. 3 a communication diagram of an exchange between a user, SEP 114 , payment application 122 , and payment system 140 for a purchase 300 using a previously registered public key pair is depicted.
- purchase 300 is performed in response to a user request 302 to purchase an item.
- payment application 122 may issue a payment request 151 to system 140 to initiate the payment process.
- this request includes the registered key token 146 .
- payment system 140 may issue a challenge 152 , which is conveyed by application 122 to SEP 114 .
- SEP 114 may generate a corresponding signature 153 and send it to application 122 .
- Application 122 may send a response 154 to the challenge 152 and include the signature 153 .
- payment system 140 may send an indication 155 that payment has been authorized.
- cancelation 400 is performed in response to a user request 402 to discontinue using biosensor 130 to authenticate.
- application 122 may submit authentication information 141 to system 140 in order to receive a token 142 .
- Application 122 may then submit a cancelation request 404 to update the settings for the registered public key pair on system 140 .
- SEP 114 includes a filter 510 , secure mailbox 520 , processor 530 , secure ROM 540 , cryptographic engine 550 , and key storage 560 coupled together via an interconnect 570 .
- SEP 114 may include more (or less) components than shown in FIG. 5 .
- SEP 114 is a secure circuit that protects an internal, resource such as components 530 - 560 and keys 562 and 564 .
- SEP 114 implements a secure circuit through the use of filter 510 and secure mailbox 520 .
- Filter 510 is circuitry configured to tightly control access to SEP 114 to increase the isolation of the SEP 114 from the rest of the computing device 100 , and thus the overall security of the device 100 . More particularly, in one embodiment, filter 510 may permit read/write operations from a CPU 112 (or other peripherals on a fabric coupling CPU 112 and SEP 114 ) to enter SEP 114 only if the operations address the secure mailbox 520 . Other operations may not progress from the fabric 150 into SEP 114 . Even more particularly, filter 510 may permit write operations to the address assigned to the inbox portion of secure mailbox 520 , and read operations to the address assigned to the outbox portion of the secure mailbox 520 . All other read/write operations may be prevented/filtered by the filter 510 .
- filter 510 may respond to other read/write operations with an error.
- filter 510 may sink write data associated with a filtered write operation without passing the write data on to local interconnect 570 .
- filter 510 may supply nonce data as read data for a filtered read operation.
- Nonce data e.g., “garbage data”
- Filter 510 may supply any data as nonce data (e.g. all zeros, all ones, random data from a random number generator, data programmed into filter 510 to respond as read data, the address of the read transaction, etc.).
- filter 510 may only filter incoming read/write operations.
- the components of the SEP 114 may have full access to the other components of computing device 100 including CPU 112 , memory 120 , and biosensor 130 . Accordingly, filter 510 may not filter responses from fabric 150 that are provided in response to read/write operations issued by SEP 114 .
- Secure mailbox 520 is circuitry that, in some embodiments, includes an inbox and an outbox. Both the inbox and the outbox may be first-in, first-out buffers (FIFOs) for data.
- the buffers may have any size (e.g. any number of entries, where each entry is capable of storing data from a read/write operation).
- the inbox may be configured to store write data from write operations sourced from CPU 112 .
- the outbox may store write data from write operations sourced by processor 530 .
- a “mailbox mechanism” refers to a memory circuit that temporarily stores 1 ) an input for a secure circuit until it can be retrieved by the circuit and/or 2 ) an output of a secure circuit until it can be retrieved by an external circuit.
- software executing on CPU 112 may request services of SEP 114 via an application programming interface (API) supported by an operating system of computing device 100 —i.e., a requester may make API calls that request services of SEP 114 . These calls may cause corresponding requests to be written to mailbox mechanism 520 , which are then retrieved from mailbox 520 and analyzed by processor 530 to determine whether it should service the requests. Accordingly, this API may be used to request the generation of a public key pair as well as generation of a signature 153 . By isolating SEP 114 in this manner, secrecy of maintained keys 562 and 564 may be enhanced.
- API application programming interface
- SEP processor 530 is configured to process commands received from various sources in computing device 100 (e.g. from processor 112 ) and may use various secure peripherals to accomplish the commands. In the case of operations that involve keys 562 and 564 , SEP processor 530 may provide appropriate commands to cryptographic engine 550 in order to perform those operations. In various embodiments, SEP processor 530 may execute securely loaded software that facilitates implementing functionality descried with respect to SEP 114 . This software may include encrypted program instructions loaded from a trusted zone in memory 120 .
- Secure ROM 540 is a memory configured to program instruction for booting SEP 114 .
- ROM 540 may respond to only a specific address range assigned to secure ROM 540 on local interconnect 570 .
- the address range may be hardwired, and processor 530 may be hardwired to fetch from the address range at boot in order to boot from secure ROM 540 .
- Filter 510 may filter addresses within the address range assigned to secure ROM 540 (as mentioned above), preventing access to secure ROM 540 from components external to the SEP 114 .
- secure ROM 540 may include other software executed by SEP processor 530 during use. This software may include the program instructions to process inbox messages and generate outbox messages, code to interface to the cryptographic engine 310 , etc.
- Cryptographic engine 550 is circuitry configured to perform cryptographic operations for SEP 114 , including key generation as well as encryption and decryption using keys in storage 560 .
- Cryptographic engine 550 may implement any suitable encryption algorithm such as DES, AES, RSA, etc.
- engine 550 may further implement elliptic curve cryptography (ECC).
- ECC elliptic curve cryptography
- engine 550 is responsible for generating signatures 153 discussed above.
- Key storage 560 is a local memory (i.e., internal memory) configured to store keys. As shown, storage 560 may include a public key pair 562 , which may be generated by engine 550 in order to produce digital signatures 153 . Storage 560 may also include a device key 564 that is associated with computing device 100 and may be used to sign registration request 145 . In some embodiments, storage 560 may use different techniques for the storage of keys. For example, in some embodiments, storage 560 may include a non-volatile memory for the storage of a key pair 562 . In some embodiment, storage 560 includes a set of fuses that are burnt during a fabrication of SEP 114 (or more generally device 100 ) in order to record key 564 .
- method 600 may be performed by a computing device having a secure circuit (e.g., SEP 114 ) configured to generate a public key pair (e.g., public key pair 462 ) usable to authenticate a user of the computing device.
- a user is authenticated with a server system (e.g., payment system 140 ) by sending authentication information (e.g., information 141 ) supplied by the user to the server system.
- a server system e.g., payment system 140
- authentication information e.g., information 141
- a first token (e.g., authenticated token 142 ) is received in response to the server system verifying the authentication information, the first token being usable to register the public key pair with the server system.
- a request (e.g., request 145 ) is sent to the server system to register the public key pair for authenticating the user.
- the request includes the first token and identifies a public key of the public key pair.
- step 606 may also include receiving a second token (e.g., registered key token 146 ) usable to verify a digital signature produced by a private key of the public key pair.
- method 610 is performed by a computer system (e.g., payment system 140 ) to which a user is authenticating.
- a request e.g., a request including information 141
- a mobile device e.g., computing device 100
- a first indication e.g., authenticated token 142
- the first indication specifying that trust has been established with the mobile device.
- a public key pair of the mobile device is registered based on the first indication and in response to a registration request (e.g., request 145 ) from the mobile device that specifies a public key of the public key pair.
- a second indication e.g., registered key token 146
- the public key pair is registered and including information indicative of the public key.
- method 630 may be performed by an application (e.g., payment application 122 ) executing on a computing device.
- a request is received from a user to authenticate with a biometric credential supplied by the user.
- a secure circuit in the computing device is instructed (e.g., via request 143 ) to generate a public key pair usable to produce a digital signature in response to presentation of the biometric credential.
- the public key pair is registered with a server system configured to authenticate the user by verifying the digital signature.
- step 636 includes sending authentication information (e.g., information 141 ) supplied by the user via a touch screen of the computing device.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Finance (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
Techniques are disclosed relating to authentication using public key encryption. In one embodiment, a computing device includes a secure circuit, a processor, and memory. The secure circuit is configured to generate a public key pair usable to authenticate a user of the computing device. The memory has program instructions stored therein that are executable by the processor to cause the computing device to perform operations including authenticating the user with a server system by sending authentication information supplied by the user. The operations further include, in response to the server system verifying the authentication information, receiving a first token usable to register the public key pair with the server system and sending, to the server system, a request to register the public key pair for authenticating the user. In such an embodiment, the request includes the first token and identifies a public key of the public key pair.
Description
- The present application is a continuation of U.S. application Ser. No. 15/275,281, entitled “AUTHENTICATION USING A SECURE CIRCUIT,” filed Sep. 23, 2016 (now U.S. Pat. No. 11,593,797), which claims priority to U.S. Provisional App. No. 62/349,053, entitled “AUTHENTICATION USING A SECURE CIRCUIT,” filed Jun. 12, 2016; the disclosures of each of the above-referenced applications are incorporated by reference herein in their entireties.
- This disclosure relates generally to processors, and, more specifically, to processors that use public key encryption.
- Many people now prefer to visit online stores to make purchases because of the added convenience over visiting traditional brick and mortar stores. When visiting an online store, a user may view multiple items, which can be added to a shopping cart for later review and eventual check out. To expedite the purchasing process, an online store may maintain shipping information and/or payment information for a user, so that the user does not have to reenter this information for each purchase. In order to protect this information, a user is typically asked to authenticate by providing some user credential such as a user name and password.
- In various embodiments, a computing device is disclosed that includes a secure circuit usable to facilitate authenticating a user. The secure circuit may be configured to generate a public key pair usable to authenticate a user of the computing device. The computing device may authenticate the user with a server system by sending authentication information supplied by the user to the server system. In response to the server system verifying the authentication information, the computing device may receive a first token usable to register the public key pair with the server system. The computing device may send, to the server system, a request to register the public key pair for authenticating the user, and the request may include the first token and identify a public key of the public key pair. In some embodiments, the computing device performs a subsequent authentication for the user that includes receiving a challenge from the server system, requesting that the secure circuit generate, with a private key of the public key pair, a digital signature for the challenge, and providing the digital signature to the server system in a response to the challenge.
-
FIGS. 1A and 1B are block diagrams illustrating examples of a system for authenticating using a public key pair generated by a secure circuit in a computing device. -
FIGS. 2A-2C are communication diagrams illustrating examples of an exchange to establish trust and register a public key pair. -
FIG. 3 is a communication diagram illustrating an example of a payment process in which a user is authenticated. -
FIG. 4 is a communication diagram illustrating an example of a cancelation process. -
FIG. 5 is a block diagram illustrating an example of components in the secure circuit. -
FIGS. 6A-6C are flow diagram illustrating examples of methods performed by components of the authentication system. - This disclosure includes references to “one embodiment” or “an embodiment.” The appearances of the phrases “in one embodiment” or “in an embodiment” do not necessarily refer to the same embodiment. Particular features, structures, or characteristics may be combined in any suitable manner consistent with this disclosure.
- Within this disclosure, different entities (which may variously be referred to as “units,” “circuits,” other components, etc.) may be described or claimed as “configured” to perform one or more tasks or operations. This formulation—[entity] configured to [perform one or more tasks]—is used herein to refer to structure (i.e., something physical, such as an electronic circuit). More specifically, this formulation is used to indicate that this structure is arranged to perform the one or more tasks during operation. A structure can be said to be “configured to” perform some task even if the structure is not currently being operated. A “secure circuit configured to perform a cryptographic operation” is intended to cover, for example, an integrated circuit that has circuitry that performs this function during operation, even if the integrated circuit in question is not currently being used (e.g., a power supply is not connected to it). Thus, an entity described or recited as “configured to” perform some task refers to something physical, such as a device, circuit, memory storing program instructions executable to implement the task, etc. This phrase is not used herein to refer to something intangible. Thus, the “configured to” construct is not used herein to refer to a software entity such as an application programming interface (API).
- The term “configured to” is not intended to mean “configurable to.” An unprogrammed FPGA, for example, would not be considered to be “configured to” perform some specific function, although it may be “configurable to” perform that function and may be “configured to” perform the function after programming.
- Reciting in the appended claims that a structure is “configured to” perform one or more tasks is expressly intended not to invoke 35 U.S.C. § 112(f) for that claim element. Accordingly, none of the claims in this application as filed are intended to be interpreted as having means-plus-function elements. Should Applicant wish to invoke Section 112(f) during prosecution, it will recite claim elements using the “means for” [performing a function] construct.
- As used herein, the terms “first,” “second,” etc. are used as labels for nouns that they precede, and do not imply any type of ordering (e.g., spatial, temporal, logical, etc.) unless specifically stated. For example, in a processor having eight processing cores, the terms “first” and “second” processing cores can be used to refer to any two of the eight processing cores. In other words, the “first” and “second” processing cores are not limited to physical processing cores 0 and 1, for example.
- As used herein, the term “based on” is used to describe one or more factors that affect a determination. This term does not foreclose the possibility that additional factors may affect a determination. That is, a determination may be solely based on specified factors or based on the specified factors as well as other, unspecified factors. Consider the phrase “determine A based on B.” This phrase specifies that B is a factor is used to determine A or that affects the determination of A. This phrase does not foreclose that the determination of A may also be based on some other factor, such as C. This phrase is also intended to cover an embodiment in which A is determined based solely on B. As used herein, the phrase “based on” is thus synonymous with the phrase “based at least in part on.”
- The present disclosure describes embodiments in which a user may authenticate with an entity via a digital signature generated by a secure circuit in the user's computing device (as opposed to repeatedly being required to enter a credential each time the user wants to authenticate with the entity). As will be described in greater detail below, in various embodiments, the computer device may perform a registration process for a public key pair generated by the secure circuit in order to begin authenticating using a digital signature generated by a private key of the pair. The process may begin with the computing device establishing trust with a server system of the entity by presenting authentication information of the user to the server system. After the server system successfully verifies this information, the server system may generate an indication that trust has been established with the computing device and, in some embodiments, may present the indication as a token to the computing device (or store it in the system in other embodiments). In response to receiving this token, the computing device submit a request to register a public key pair generated by the secure circuit in the device. This request may include the token and information indicative of the public key of the pair (e.g., the public key or a hash of the public key). After verifying the token, the server system may register the public key pair allowing the computing device to later generate a digital signature in order to authenticate the user.
- In some embodiments, this registration process may be performed within the context of making a purchase using the computing device. That is, a user may establish trust with the server system when attempting to make a purchase, and the user's computing device may receive a token allowing the computing device to register a public key pair. In other words, the computing device may leverage the trust established to authorize a purchase in order to register a public key pair. This public key pair may then be used to authenticate for making future purchases.
- In various embodiments, the computing device restricts access to generating digital signatures by using a biosensor included in the computing device. In such an embodiment, the biosensor may be configured to collect biometric information from a biometric credential presented by the user—e.g., fingerprint information from the user's finger. The biosensor may present this information to the secure circuit, which compares the information against previously stored biometric information of the user. If a match is detected, the secure circuit may generate a digital signature for authenticating the user. If a match is not detected, the secure circuit may decline a request to generate the digital signature.
- Examples of the registration process is described in greater detail below with respect to
FIGS. 1A and 2A-2C . Examples of a process for making purchases are described in greater detail below with respect toFIGS. 1B and 3 . An example of a key cancelation is discussed with respect toFIG. 4 . An example of contents within the secure circuit is discussed below with respect toFIG. 5 . Embodiments of related methods are described with respect toFIGS. 6A-6C . - Turning now to
FIG. 1A , a block diagram of asystem 10 during registration of a public key pair for authentication is depicted. In the illustrated embodiment,system 10 includes acomputing device 100 and apayment system 140.Computing device 100 may correspond to any suitable computer system. Accordingly, in some embodiments,device 100 may be a mobile device (e.g., a mobile phone, a tablet, personal data assistant (PDA), etc.), desktop computer system, server system, network device (e.g., router, gateway, etc.), microcontroller, etc. In the illustrated embodiment,computing device 100 includes a system on a chip (SOC) 110,memory 120, biometric sensor 130 (more briefly “biosensor” 130). As implied by the name SOC, the components of theSOC 110 may be integrated onto a single semiconductor substrate as an integrated circuit chip. In some embodiments, the components may be implemented on two or more discrete chips in a system. As shown,SOC 110 may include a central processing unit (CPU) 112 configured to execute apayment application 122 stored inmemory 120.SOC 110 may also include a secure enclave processor (SEP) 114. In some embodiments,system 10 may be implemented differently than shown. -
Payment application 122, in one embodiment, is an application that allows a user to request payments for various purchases. In some embodiments,application 122 may present a store front that offers products and/or services available for purchase. For example, in one embodiment,application 122 may present various digital content available for purchase such as music, videos, books, and/or applications. Once a user has selected a particular item for purchase,application 122 may communicate withpayment system 140 in order to facilitate payment for the purchase. -
Payment system 140, in one embodiment, is a server system (i.e., a collection of one or more server computers) that processes payment requests from anapplication 122. In various embodiments,system 140 may maintain various payment information about a user, such as a user's billing address and credit card information, in order to facilitate processing a payment request. When a user wants to submit payment for a purchase, anapplication 122 may present authentication information for the user in order to use the existing payment information stored insystem 140. In some embodiments, this authentication information may include a user name and password entered intocomputing device 100 via a touch screen ofdevice 100, keyboard, or other form of interface. Ifsystem 140 is able to successfully verify this information,system 140 may allow the previously stored payment information to be used in making a payment for a purchase. As will be discussed below, in various embodiments,system 140 may allow apayment application 122 to register a public key pair for authenticating instead of asking the user to renter his or her authentication information for each purchase. - Secure enclave processor (SEP) 114 is one embodiment of a secure circuit or a secure component configured to generate and maintain a public key pair, which may be used for authentication. As used herein, the term “secure circuit” refers to a circuit that protects an isolated, internal resource from being directly accessed by an external circuit. This internal resource may be memory that stores sensitive data such as personal information (e.g., biometric information, credit card information, etc.), encryptions keys, random number generator seeds, etc. This internal resource may also be circuitry that performs services/operations associated with sensitive data. As will be described below, these services may include various cryptographic services such as authentication, encryption, decryption, etc. Secure services may include secure key generation, which may include shared secret keys and asymmetric keys (i.e., public and private keys). In some embodiments,
SEP 114 may determine whether to perform a requested operation, such as generating a digital signature, based on biometric information collected bybiosensor 130 in order to confirm that the requested operation is associated with an authorized user. -
Biosensor 130, in one embodiment, is configured to detect biometric data for a user ofcomputing device 100. Biometric data may be data that uniquely identifies the user among other humans (at least to a high degree of accuracy) based on the user's physical or behavioral characteristics. For example, in some embodiments,sensor 130 is a finger print sensor that captures fingerprint data from the user. In one embodiment,SEP 114 may maintain previously captured fingerprint data of an authorized user and compare it against newly received fingerprint data fromsensor 130 in order to authenticate a user. (In another embodiment,biosensor 130 may perform the comparison.) If the fingerprint data matches,SEP 114 may permit performance of a requested service. In some embodiments, communications betweenSEP 114 andbiosensor 130 may be encrypted using a key shared betweenSEP 114 andbiosensor 130 such that another circuit (e.g., CPU 112) is unable to view communicated fingerprint data. In some embodiments, other types of biometric data may be captured bysensor 130 such as voice recognition (identifying the particular user's voice), iris scanning, etc. It is noted thatSEP 114 may also compare information collected from sources other thansensor 130 in order to verify the identity of a user, in some embodiments. Accordingly,computing device 100 may include other user interface circuits (e.g., a touch screen) configured to receive authentication information (e.g., a passcode or password) from a user, andSEP 114 may verify that the received authentication information is correct. - In various embodiments,
payment application 122 may perform a registration process for a public key pair generated bySEP 114 in order to allow a user to subsequently authenticate withpayment system 140 using a digital signature generated by a private key of the pair and without having to provide a user name and password. In the illustrated embodiment, this registration process includes the communication of elements 141-146 discussed below. It is noted, while various authentication techniques are described herein within the context of facilitating payment processing, these techniques may also be used in other embodiments in which authentication is used for some purpose other than making a purchase. - As shown, the registration process may begin with
payment application 122 communicatinguser authentication information 141 topayment system 140 in order to establish trust betweencomputing device 100 andpayment system 140. As will be discussed below with respect toFIG. 2A , in some embodiments, thisinformation 141 may be communicated tosystem 140 in response to a user's request to authenticate using a biometric credential supplied by the user. For example, in one embodiment, a user may select a setting inapplication 122 to enable authentication in this manner. As will be discussed below with respect toFIG. 2A , in some embodiments,information 141 may be communicated in response to a user requesting to purchase an item. In some embodiments,authentication information 141 may include a user name and password enter by the user into, for example, a touch screen ofdevice 100. In other embodiments,authentication information 141 may include one or more values (e.g., a password equivalent token (PET) discussed below withFIGS. 2A-2C ) derived from a user name and password provided by the user. In some embodiments,authentication information 141 may also include a unique account identifier for the user (referred to below as DSID), a machine identifier (MID) that uniquely identifiescomputing device 100, and/or a one-time token (OTP).Authentication information 141 may, however, include any suitable information to establish trust withsystem 140. In response tosystem 140 verifyinginformation 141,application 122 may receive a token 142. -
Authenticated token 142, in one embodiment, is an indication that trust has been established withpayment system 140—e.g., that the user has been authenticated. In some embodiments, token 142 may include a portion (or all) ofinformation 141, which has been signed bysystem 140. Although shown inFIG. 1A as being provided toapplication 122, in some embodiments,system 140 may merely store token 142 locally (i.e., in a memory of system 140) for future retrieval. In various embodiments, authenticated token 142 may be used to register a public key pair generated bySEP 114 withpayment system 140. - In response to receiving a token 142 (or in conjunction with sending information 141),
payment application 122 may issue akey request 143 toSEP 114 to generate a public key pair to be registered withpayment system 140. In some embodiments, akey request 143 may be issued after a user has requested to authenticate with a biometric credential. In response to receiving arequest 143,SEP 114 may generate the key pair and return thepublic key 144 of the pair. In some embodiments,SEP 114 may store the key pair with usage criteria indicating that the private key cannot be used to generate a digital signature without first confirming biometric information received frombiosensor 130. - After receiving a
public key 144 and a token 142,application 122 may issue aregistration request 145 topayment system 140 in order to register the public key pair generated bySEP 114. In the illustrated embodiment,request 145 includes authenticatedtoken 142 andpublic key 144. Notably, in includingtoken 142,application 122 is leveraging the previous trust established earlier with the communication ofinformation 141. In cases whereinformation 141 was communicated to facilitate a purchase,application 122 does not have to ask the user to provideinformation 141 multiple times—e.g., once to initiate payment and again to register a public key pair. In some embodiments,request 145 may include (or be accompanied with) additional information such as a DSID, MID, a digital signature generated by a device key stored inSEP 114 that is separate from the public key pair, etc. In some embodiments,registration request 145 is a certificate signing request (CSR), which may be in compliance with a standard format such as defined by the public-key cryptography standards (PKCS) #10 specification. In such an embodiment,system 140 may act as a certificate authority (CA). In response to verifying the information in arequest 145,payment system 140 may provide a corresponding registeredkey token 146. - Register
key token 146, in one embodiment, indicates that a particular public key pair has been registered and may be used to verify a digital signature generated by the private key of the pair. As will be discussed below withFIG. 1B ,application 122 may provide this token 146 when presenting a digital signature to authenticate withsystem 140. In other embodiments,payment system 140 may store token 146 locally for subsequent authentications. In some embodiments, token 146 may identify the public key of the registered pair by including the public key (or a hash of the public key), which may be signed bysystem 140. In some embodiments, token 146 may include additional information such as the DSID, MID, an expiration period for the registration, etc. In some embodiments, token 146 is a certificate in compliance with a standard format such as the X.509 standard. In various embodiments,application 122 may continue to maintain token 146 so that it can be used for multiple subsequent authentications using the public key pair. In one such embodiment, token 146 may be usable even after computingdevice 100 has been restarted. That is,application 122 does not have to resubmitauthentication information 141 and reregister a public key pair afterdevice 100 has performed a boot sequence. - Turning now to
FIG. 1B , a block diagram ofsystem 10 during authentication using a register public key pair is depicted. In the illustrated embodiment, this authentication is performed via elements 151-155. In other embodiments, the authentication may be performed differently than shown. - In the illustrated embodiment, the authentication process begins with a
payment request 151 to initiate making payment for a purchase. In some embodiments, thisrequest 151 may include theregistration token 146 obtained during registration of the public key pair as discussed above. In other embodiments, this token may be submitted later such as with thechallenge response 154. In response to receiving thisrequest 151,payment system 140 may issue acorresponding challenge 152 to verify thatdevice 100 is in possession of the previously registered public key pair. In some embodiments, this challenge includes random data, which may be derived using a pseudo-random number generator with the token 146 being used as a seed. - After receiving a
challenge 152,payment application 122 may provide thechallenge 152 toSEP 114 along with a request forSEP 114 to generate asignature 153 using the private key of the registered public key pair. Before generating thesignature 153,SEP 114 may askbiosensor 130 to collect biometric information from a biometric credential supplied by the user in order to determine that an authorized user is present. Upon successfully confirming the biometric information,SEP 114 may generate the requestedsignature 153.Payment application 122 may then convey thissignature 153 in aresponse 154 to thechallenge 152. Ifpayment system 140 is able to successfully determine that thesignature 153 is valid,payment system 140 may authorize payment for the requested purchase and notifypayment application 122 that payment has been authorized by providing anindication 155. - Turning now to
FIG. 2A , a communication diagram of an exchange between a user,SEP 114,payment application 122, andpayment system 140 for aregistration 200 of a public key pair is depicted. In the illustrated embodiment,registration 200 is performed in response to a user making arequest 202 to authenticate withsystem 140 using biosensor 130 (referred to as “touch id” inFIGS. 2A-4 ). In response to this request,payment application 122 may issue akey request 143 forSEP 114 to generate a public key pair and receive thepublic key 144 of the pair.Application 122 may then conveyauthentication information 141 and receive authenticatedtoken 142. After receiving this token fromsystem 140,application 122 may issue aregistration request 145 including thepublic key 144 and token 142 tosystem 140. Aftersystem 140 verifies this information,system 140 may provide a registeredkey token 146. - Turning now to
FIG. 2B , a communication diagram of an exchange between a user,SEP 114,payment application 122, andpayment system 140 for aregistration 210 of a public key pair is depicted. In the illustrated embodiment,registration 210 is performed in response to a user making arequest 212 to make a purchase. When receiving thisrequest 212,payment application 122 may provideinformation 141 as shown and receive a corresponding authenticatedtoken 142.Application 122 may then issue a purchase request 214 including the token 142. After the purchase has been processed,application 122 may issue akey request 143 toSEP 114 and receive apublic key 144.Application 122 may then issue aregistration request 145 including this key. In the illustrated embodiment,request 145 does not include the token 142 assystem 140 temporarily maintains the token 142 from request 214. Upon receiving therequest 145,system 140 may return a registeredkey token 146. - Turning now to
FIG. 2C , a communication diagram of an exchange between a user,SEP 114,payment application 122, andpayment system 140 for aregistration 220 of a public key pair is depicted. In the illustrated embodiment,registration 220 is performed in response toapplication 122 submitting apayment request 222 that includes akey token 146 that is no longer valid. As shown,application 122 may receive anindication 224 of the token's invalidity. As a result,application 122 may need to resubmit elements 141-145 to get anew token 146 as shown. - Turning now to
FIG. 3 , a communication diagram of an exchange between a user,SEP 114,payment application 122, andpayment system 140 for apurchase 300 using a previously registered public key pair is depicted. In the illustrated embodiment,purchase 300 is performed in response to a user request 302 to purchase an item. As shown,payment application 122 may issue apayment request 151 tosystem 140 to initiate the payment process. In the illustrated embodiment, this request includes the registeredkey token 146. Upon receiving thisrequest 151,payment system 140 may issue achallenge 152, which is conveyed byapplication 122 toSEP 114. After verifying fingerprint information of the user,SEP 114 may generate acorresponding signature 153 and send it toapplication 122.Application 122, in turn, may send aresponse 154 to thechallenge 152 and include thesignature 153. After verifying this information,payment system 140 may send anindication 155 that payment has been authorized. - Turning now to
FIG. 4 , a communication diagram of an exchange between a user,SEP 114,payment application 122, andpayment system 140 for acancelation 400 is depicted. In the illustrated embodiment,cancelation 400 is performed in response to auser request 402 to discontinue usingbiosensor 130 to authenticate. As shown, after receiving this request,application 122 may submitauthentication information 141 tosystem 140 in order to receive a token 142.Application 122 may then submit acancelation request 404 to update the settings for the registered public key pair onsystem 140. - Turning now to
FIG. 5 , a block diagram of additional components inSEP 114 is depicted. In the illustrated embodiment,SEP 114 includes afilter 510,secure mailbox 520,processor 530,secure ROM 540,cryptographic engine 550, andkey storage 560 coupled together via aninterconnect 570. In some embodiments,SEP 114 may include more (or less) components than shown inFIG. 5 . As noted above,SEP 114 is a secure circuit that protects an internal, resource such as components 530-560 andkeys SEP 114 implements a secure circuit through the use offilter 510 andsecure mailbox 520. -
Filter 510 is circuitry configured to tightly control access toSEP 114 to increase the isolation of theSEP 114 from the rest of thecomputing device 100, and thus the overall security of thedevice 100. More particularly, in one embodiment,filter 510 may permit read/write operations from a CPU 112 (or other peripherals on afabric coupling CPU 112 and SEP 114) to enterSEP 114 only if the operations address thesecure mailbox 520. Other operations may not progress from the fabric 150 intoSEP 114. Even more particularly,filter 510 may permit write operations to the address assigned to the inbox portion ofsecure mailbox 520, and read operations to the address assigned to the outbox portion of thesecure mailbox 520. All other read/write operations may be prevented/filtered by thefilter 510. In some embodiments,filter 510 may respond to other read/write operations with an error. In one embodiment,filter 510 may sink write data associated with a filtered write operation without passing the write data on tolocal interconnect 570. In one embodiment,filter 510 may supply nonce data as read data for a filtered read operation. Nonce data (e.g., “garbage data”) may generally be data that is not associated with the addressed resource within theSEP 114.Filter 510 may supply any data as nonce data (e.g. all zeros, all ones, random data from a random number generator, data programmed intofilter 510 to respond as read data, the address of the read transaction, etc.). - In various embodiments,
filter 510 may only filter incoming read/write operations. Thus, the components of theSEP 114 may have full access to the other components ofcomputing device 100 includingCPU 112,memory 120, andbiosensor 130. Accordingly, filter 510 may not filter responses from fabric 150 that are provided in response to read/write operations issued bySEP 114. -
Secure mailbox 520 is circuitry that, in some embodiments, includes an inbox and an outbox. Both the inbox and the outbox may be first-in, first-out buffers (FIFOs) for data. The buffers may have any size (e.g. any number of entries, where each entry is capable of storing data from a read/write operation). Particularly, the inbox may be configured to store write data from write operations sourced fromCPU 112. The outbox may store write data from write operations sourced byprocessor 530. (As used herein, a “mailbox mechanism” refers to a memory circuit that temporarily stores 1) an input for a secure circuit until it can be retrieved by the circuit and/or 2) an output of a secure circuit until it can be retrieved by an external circuit.) - In some embodiments, software executing on CPU 112 (e.g., application 122) may request services of
SEP 114 via an application programming interface (API) supported by an operating system ofcomputing device 100—i.e., a requester may make API calls that request services ofSEP 114. These calls may cause corresponding requests to be written tomailbox mechanism 520, which are then retrieved frommailbox 520 and analyzed byprocessor 530 to determine whether it should service the requests. Accordingly, this API may be used to request the generation of a public key pair as well as generation of asignature 153. By isolatingSEP 114 in this manner, secrecy of maintainedkeys -
SEP processor 530 is configured to process commands received from various sources in computing device 100 (e.g. from processor 112) and may use various secure peripherals to accomplish the commands. In the case of operations that involvekeys SEP processor 530 may provide appropriate commands tocryptographic engine 550 in order to perform those operations. In various embodiments,SEP processor 530 may execute securely loaded software that facilitates implementing functionality descried with respect toSEP 114. This software may include encrypted program instructions loaded from a trusted zone inmemory 120. -
Secure ROM 540 is a memory configured to program instruction for bootingSEP 114. In some embodiments,ROM 540 may respond to only a specific address range assigned to secureROM 540 onlocal interconnect 570. The address range may be hardwired, andprocessor 530 may be hardwired to fetch from the address range at boot in order to boot fromsecure ROM 540.Filter 510 may filter addresses within the address range assigned to secure ROM 540 (as mentioned above), preventing access to secureROM 540 from components external to theSEP 114. In some embodiments,secure ROM 540 may include other software executed bySEP processor 530 during use. This software may include the program instructions to process inbox messages and generate outbox messages, code to interface to the cryptographic engine 310, etc. -
Cryptographic engine 550 is circuitry configured to perform cryptographic operations forSEP 114, including key generation as well as encryption and decryption using keys instorage 560.Cryptographic engine 550 may implement any suitable encryption algorithm such as DES, AES, RSA, etc. In some embodiments,engine 550 may further implement elliptic curve cryptography (ECC). In various embodiments,engine 550 is responsible for generatingsignatures 153 discussed above. -
Key storage 560 is a local memory (i.e., internal memory) configured to store keys. As shown,storage 560 may include a publickey pair 562, which may be generated byengine 550 in order to producedigital signatures 153.Storage 560 may also include adevice key 564 that is associated withcomputing device 100 and may be used to signregistration request 145. In some embodiments,storage 560 may use different techniques for the storage of keys. For example, in some embodiments,storage 560 may include a non-volatile memory for the storage of akey pair 562. In some embodiment,storage 560 includes a set of fuses that are burnt during a fabrication of SEP 114 (or more generally device 100) in order to record key 564. - Turning now to
FIG. 6A , amethod 600 for registering a public key pair is depicted. In some embodiments,method 600 may be performed by a computing device having a secure circuit (e.g., SEP 114) configured to generate a public key pair (e.g., public key pair 462) usable to authenticate a user of the computing device. Instep 602, a user is authenticated with a server system (e.g., payment system 140) by sending authentication information (e.g., information 141) supplied by the user to the server system. In step 604, a first token (e.g., authenticated token 142) is received in response to the server system verifying the authentication information, the first token being usable to register the public key pair with the server system. Instep 606, a request (e.g., request 145) is sent to the server system to register the public key pair for authenticating the user. In some embodiments, the request includes the first token and identifies a public key of the public key pair. In some embodiments,step 606 may also include receiving a second token (e.g., registered key token 146) usable to verify a digital signature produced by a private key of the public key pair. - Turning now to
FIG. 6B , anothermethod 610 for registering a public key pair is depicted. In some embodiments,method 610 is performed by a computer system (e.g., payment system 140) to which a user is authenticating. In step 612, a request (e.g., a request including information 141) is received to establish trust with a mobile device (e.g., computing device 100) such that the request includes authentication information for a user of the mobile device. In step 614, a first indication (e.g., authenticated token 142) is generated in response to verifying the authentication information, the first indication specifying that trust has been established with the mobile device. Instep 616, a public key pair of the mobile device is registered based on the first indication and in response to a registration request (e.g., request 145) from the mobile device that specifies a public key of the public key pair. Instep 618, a second indication (e.g., registered key token 146) is generated indicating that the public key pair is registered and including information indicative of the public key. - Turning now to
FIG. 6C , anothermethod 630 of registering a public key pair is depicted. In some embodiments,method 630 may be performed by an application (e.g., payment application 122) executing on a computing device. Instep 632, a request is received from a user to authenticate with a biometric credential supplied by the user. Instep 634, a secure circuit in the computing device is instructed (e.g., via request 143) to generate a public key pair usable to produce a digital signature in response to presentation of the biometric credential. In step 636, the public key pair is registered with a server system configured to authenticate the user by verifying the digital signature. In some embodiments, step 636 includes sending authentication information (e.g., information 141) supplied by the user via a touch screen of the computing device. - Although specific embodiments have been described above, these embodiments are not intended to limit the scope of the present disclosure, even where only a single embodiment is described with respect to a particular feature. Examples of features provided in the disclosure are intended to be illustrative rather than restrictive unless stated otherwise. The above description is intended to cover such alternatives, modifications, and equivalents as would be apparent to a person skilled in the art having the benefit of this disclosure.
- The scope of the present disclosure includes any feature or combination of features disclosed herein (either explicitly or implicitly), or any generalization thereof, whether or not it mitigates any or all of the problems addressed herein. Accordingly, new claims may be formulated during prosecution of this application (or an application claiming priority thereto) to any such combination of features. In particular, with reference to the appended claims, features from dependent claims may be combined with those of the independent claims and features from respective independent claims may be combined in any appropriate manner and not merely in the specific combinations enumerated in the appended claims.
Claims (21)
1-20. (canceled)
21. A computing device, comprising:
a processor; and
memory having program instructions stored therein that are executable by the processor to cause the computing device to perform operations including:
as part of a first exchange with a server system to facilitate a particular type of operation for a user:
receiving a first token from the server system in response to providing valid user-supplied authentication information to the server system, wherein the first token enables registering of a public key of a public key pair so that the server system can subsequently authenticate the user without the valid user-supplied authentication information; and
receiving a second token from the server system as part of registering the public key with the server system using the first token; and
as part of a second exchange with the server system to facilitate the particular type of operation for the user:
using a private key of the public key pair to generate a digital signature; and
sending the second token and the digital signature to the server system to enable authentication of the user without sending the valid user-supplied authentication information, wherein the second token enables the server system to verify the digital signature.
22. The computing device of claim 21 , further comprising a secure circuit configured to generate the public key pair, wherein the operations further comprise:
as part of the second exchange:
receiving a challenge from the server system; and
requesting that the secure circuit generate, with the private key, the digital signature for the challenge.
23. The computing device of claim 22 , wherein the operations further comprise:
in response to receiving the first token, requesting that the secure circuit generate the public key pair; and
providing the first token and the public key to the server system to register the public key with the server system.
24. The computing device of claim 23 , wherein the requesting that the secure circuit generate the public key pair includes issuing a request to a mailbox mechanism of the secure circuit, wherein the mailbox mechanism is configured to isolate circuitry in the secure circuit from being accessed by the processor.
25. The computing device of claim 21 , further comprising a biosensor configured to detect biometric data from the user, wherein the operations further comprise:
causing a biometric authentication of the user to be performed using the biosensor, wherein the digital signature is generated in response to the user providing valid biometric data.
26. The computing device of claim 25 , wherein the operations further comprise:
in response to receiving a user request to discontinue using the biosensor to authenticate as part of an exchange with the server system to facilitate the particular type of operation, issuing a cancellation request to the server system to unregister the public key.
27. The computing device of claim 25 , further comprising a secure circuit configured to perform at least a portion of the biometric authentication, wherein the secure circuit and the biosensor are configured to encrypt communications between each other using a shared key.
28. The computing device of claim 21 , wherein the first token includes at least a portion, signed by the server system, of the valid user-supplied authentication information.
29. A non-transitory computer-readable medium having program instructions stored thereon that are executable by a computer system to perform operations comprising:
as part of a first exchange with a server system to facilitate a particular type of operation for a user:
receiving a first token from the server system in response to providing valid user-supplied authentication information to the server system, wherein the first token enables registering of a public key of a public key pair so that the server system can subsequently authenticate the user without the valid user-supplied authentication information; and
receiving a second token from the server system as part of registering the public key with the server system using the first token; and
as part of a second exchange with the server system to facilitate the particular type of operation for the user:
using a private key of the public key pair to generate a digital signature; and
sending the second token and the digital signature to the server system to enable authentication of the user without sending the valid user-supplied authentication information, wherein the second token enables the server system to verify the digital signature.
30. The non-transitory computer-readable medium of claim 29 , wherein the operations further comprise:
before the using of the private key to generate the digital signature, requesting that the user provide valid biometric data.
31. The non-transitory computer-readable medium of claim 29 , wherein the operations further comprise:
before the using of the private key to generate the digital signature, receiving a challenge from the server system, wherein the digital signature is generated based on the challenge.
32. The non-transitory computer-readable medium of claim 29 , wherein the operations further comprise:
in response to receiving a user request to discontinue using biometric data to authenticate as part of an exchange with the server system to facilitate the particular type of operation, issuing a cancellation request to the server system to unregister the public key.
33. The non-transitory computer-readable medium of claim 29 , wherein the operations further comprise:
deriving a value from a username and password of the user; and
sending the value as the valid user-supplied authentication information to the server system as part of the first exchange.
34. A method, comprising:
as part of a first exchange with a server system to facilitate a particular type of operation for a user, a computing device:
receiving a first token from the server system in response to providing valid user-supplied authentication information, wherein the first token enables registering of a public key of a public key pair so that the server system can subsequently authenticate the user without the valid user-supplied authentication information; and
receiving a second token from the server system as part of registering the public key with the server system using the first token; and
as part of a second exchange with the server system to facilitate the particular type of operation for the user, the computing device:
using a private key of the public key pair to generate a digital signature; and
sending the second token and the digital signature to the server system to enable authentication of the user without sending the valid user-supplied authentication information, wherein the second token enables the server system to verify the digital signature.
35. The method of claim 34 , further comprising:
storing, by the computing device and in association with the private key, usage criteria that indicates that the private key cannot be used to generate a digital signature without performing a biometric authentication of the user.
36. The method of claim 35 , further comprising:
updating, by the computing device, a setting of a client application that is used in the first exchange to indicate that biometric authentication is to be used for subsequent exchanges with the server system to perform the particular type of operation.
37. The method of claim 34 , further comprising:
performing, by the computing device, a biometric authentication of the user, wherein the digital signature is generated in response to the user providing valid biometric data.
38. The method of claim 34 , further comprising:
in response to receiving the first token, the computing device causing the public key pair to be generated; and
sending, by the computing device, a registration request to the server system to register the public key with the server system, wherein the registration request includes a machine identifier that identifies the computing device.
39. The method of claim 38 , wherein the second token identifies the machine identifier and an expiration date of a registration of the public key.
40. The method of claim 34 , wherein the second exchange with the server system is performed after a restart of the computing device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/174,414 US20230289787A1 (en) | 2016-06-12 | 2023-02-24 | Authentication using a secure circuit |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662349053P | 2016-06-12 | 2016-06-12 | |
US15/275,281 US11593797B2 (en) | 2016-06-12 | 2016-09-23 | Authentication using a secure circuit |
US18/174,414 US20230289787A1 (en) | 2016-06-12 | 2023-02-24 | Authentication using a secure circuit |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/275,281 Continuation US11593797B2 (en) | 2016-06-12 | 2016-09-23 | Authentication using a secure circuit |
Publications (1)
Publication Number | Publication Date |
---|---|
US20230289787A1 true US20230289787A1 (en) | 2023-09-14 |
Family
ID=60573995
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/275,281 Active 2039-09-13 US11593797B2 (en) | 2016-06-12 | 2016-09-23 | Authentication using a secure circuit |
US18/174,414 Pending US20230289787A1 (en) | 2016-06-12 | 2023-02-24 | Authentication using a secure circuit |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/275,281 Active 2039-09-13 US11593797B2 (en) | 2016-06-12 | 2016-09-23 | Authentication using a secure circuit |
Country Status (1)
Country | Link |
---|---|
US (2) | US11593797B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230131060A1 (en) * | 2021-10-22 | 2023-04-27 | Microsoft Technology Licensing, Llc | Secure authentication using attestation tokens and inviolable quotes to validate request origins |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180114226A1 (en) * | 2016-10-24 | 2018-04-26 | Paypal, Inc. | Unified login biometric authentication support |
US20180270226A1 (en) * | 2017-03-15 | 2018-09-20 | Motorola Mobility Llc | Secure Transfer of User Information Between Devices Based on User Credentials |
WO2019231252A1 (en) | 2018-05-31 | 2019-12-05 | Samsung Electronics Co., Ltd. | Electronic device for authenticating user and operating method thereof |
US11038684B2 (en) * | 2018-06-28 | 2021-06-15 | Microsoft Technology Licensing, Llc | User authentication using a companion device |
US10569174B1 (en) | 2018-09-27 | 2020-02-25 | Microsoft Licensing Technology, LLC | Implementing a graphical overlay for a streaming game based on current game scenario |
JP2020521341A (en) * | 2019-03-29 | 2020-07-16 | アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited | Cryptographic key management based on identification information |
WO2019120321A2 (en) | 2019-03-29 | 2019-06-27 | Alibaba Group Holding Limited | Cryptographic key management based on identity information |
KR102234825B1 (en) * | 2019-03-29 | 2021-04-02 | 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. | Secure execution of cryptographic operations |
EP3622665B1 (en) * | 2019-03-29 | 2021-07-28 | Advanced New Technologies Co., Ltd. | Cryptography chip with identity verification |
EP3949332A1 (en) | 2019-05-06 | 2022-02-09 | Apple Inc. | Standalone wearable device configuration and interface |
US11528271B2 (en) | 2019-05-06 | 2022-12-13 | Apple Inc. | Authenticating and creating accounts on behalf of another user |
US11669883B2 (en) * | 2019-06-01 | 2023-06-06 | Apple Inc. | Security model and interface for digital purchases on a wearable device |
US11743254B2 (en) * | 2019-08-12 | 2023-08-29 | Lenovo (Singapore) Pte. Ltd. | Device authentication across unsecure network |
JP7383796B2 (en) * | 2019-08-21 | 2023-11-20 | グーグル エルエルシー | Authentication app for consent architecture |
US11804955B1 (en) * | 2019-09-13 | 2023-10-31 | Chol, Inc. | Method and system for modulated waveform encryption |
US11784799B2 (en) * | 2019-12-16 | 2023-10-10 | The Toronto-Dominion Bank | Secure distribution and management of cryptographic keys within a computing environment using distributed ledgers |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7958362B2 (en) * | 2005-10-11 | 2011-06-07 | Chang Gung University | User authentication based on asymmetric cryptography utilizing RSA with personalized secret |
US8838975B2 (en) * | 2006-10-31 | 2014-09-16 | Blackberry Limited | System and method for protecting a password against brute force attacks |
US20090307140A1 (en) * | 2008-06-06 | 2009-12-10 | Upendra Mardikar | Mobile device over-the-air (ota) registration and point-of-sale (pos) payment |
KR100910378B1 (en) * | 2008-10-06 | 2009-08-04 | 주식회사 오엘콥스 | System and method for issuing electronically accredited certificate using encrypted image |
US8751802B2 (en) * | 2010-06-30 | 2014-06-10 | Sandisk Il Ltd. | Storage device and method and for storage device state recovery |
US20130297513A1 (en) * | 2012-05-04 | 2013-11-07 | Rawllin International Inc. | Multi factor user authentication |
US9887989B2 (en) * | 2012-06-23 | 2018-02-06 | Pomian & Corella, Llc | Protecting passwords and biometrics against back-end security breaches |
US9436940B2 (en) * | 2012-07-09 | 2016-09-06 | Maxim Integrated Products, Inc. | Embedded secure element for authentication, storage and transaction within a mobile terminal |
US8775757B2 (en) * | 2012-09-25 | 2014-07-08 | Apple Inc. | Trust zone support in system on a chip having security enclave processor |
US9003196B2 (en) * | 2013-05-13 | 2015-04-07 | Hoyos Labs Corp. | System and method for authorizing access to access-controlled environments |
US9363259B2 (en) * | 2013-05-23 | 2016-06-07 | Symantec Corporation | Performing client authentication using onetime values recovered from barcode graphics |
US10235512B2 (en) * | 2014-06-24 | 2019-03-19 | Paypal, Inc. | Systems and methods for authentication via bluetooth device |
US20160065374A1 (en) | 2014-09-02 | 2016-03-03 | Apple Inc. | Method of using one device to unlock another device |
US10826712B2 (en) * | 2015-06-30 | 2020-11-03 | Visa International Service Association | Confidential authentication and provisioning |
US9916432B2 (en) * | 2015-10-16 | 2018-03-13 | Nokia Technologies Oy | Storing and retrieving cryptographic keys from biometric data |
SE1551459A1 (en) * | 2015-11-11 | 2017-05-12 | Authentico Tech Ab | Method and system for user authentication |
US9832024B2 (en) * | 2015-11-13 | 2017-11-28 | Visa International Service Association | Methods and systems for PKI-based authentication |
-
2016
- 2016-09-23 US US15/275,281 patent/US11593797B2/en active Active
-
2023
- 2023-02-24 US US18/174,414 patent/US20230289787A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230131060A1 (en) * | 2021-10-22 | 2023-04-27 | Microsoft Technology Licensing, Llc | Secure authentication using attestation tokens and inviolable quotes to validate request origins |
US12081678B2 (en) * | 2021-10-22 | 2024-09-03 | Microsoft Technology Licensing, Llc | Secure authentication using attestation tokens and inviolable quotes to validate request origins |
Also Published As
Publication number | Publication date |
---|---|
US11593797B2 (en) | 2023-02-28 |
US20170357967A1 (en) | 2017-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230289787A1 (en) | Authentication using a secure circuit | |
US11764954B2 (en) | Secure circuit for encryption key generation | |
US11252136B2 (en) | System and method for identity verification across mobile applications | |
US12113792B2 (en) | Authenticator centralization and protection including selection of authenticator type based on authentication policy | |
US20230353360A1 (en) | Secure remote token release with online authentication | |
US20230351377A1 (en) | Document importation into secure element | |
US11436597B1 (en) | Biometrics-based e-signatures for pre-authorization and acceptance transfer | |
US20130219481A1 (en) | Cyberspace Trusted Identity (CTI) Module | |
WO2019179394A1 (en) | Method, terminal, and authentication server for retrieving identity information | |
CN110741370A (en) | Biometric authentication using user input | |
US20130042111A1 (en) | Securing transactions against cyberattacks | |
US11164179B2 (en) | Secure credential storage and retrieval | |
US11139964B1 (en) | Biometric authenticated biometric enrollment | |
US11658959B2 (en) | User authentication framework | |
US12033142B2 (en) | Authenticator app for consent architecture | |
TW202137199A (en) | Method of authenticating biological payment device, apparatus, electronic device, and computer-readable medium | |
JP2023545951A (en) | Verification system and method | |
WO2021249527A1 (en) | Method and apparatus for implementing motopay, and electronic device | |
WO2016173211A1 (en) | Application identifier management method and device | |
CA3030608A1 (en) | Method for providing secure digital signatures | |
US20230237172A1 (en) | Data broker | |
US20170372306A1 (en) | Payment by mobile device secured by f-puf | |
US20240265381A1 (en) | Custody service for authorising transactions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |