Cryptographic authentication techniques for mobile devices
First Claim
1. A multifactor authentication method performed at a computing device, comprising:
- at registration time, obtaining a passcode from a user;
at registration time, generating a protocredential comprising one or more parameters combinable with the passcode to generate a credential;
at registration time, storing the protocredential in the computing device;
at registration time, generating the credential, the credential comprising a key pair, the key pair comprising a private key and a public key;
at registration time, using the credential to register the device and subsequently discarding the credential;
at authentication time, obtaining again the passcode from the user;
at authentication time, regenerating the credential from the protocredential stored in the computing device and the passcode obtained from the user, using a credential regeneration process having at least 1% probability of producing well-formed output and at most 0.1% probability of producing correct output from the protocredential and a random guess of the passcode, the random guess having a uniform probability distribution over the range of allowable passcodes; and
at authentication time, proving possession of the credential to a verifier by sending the public key and a proof of knowledge of the private key to the verifier over a secure connection after the verifier has authenticated to the computing device.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of authenticating a computing device to a back-end subsystem. In one embodiment a prover black-box in the computing device regenerates a credential containing a key pair from a PIN and a protocredential, and authenticates cryptographically to a verifier black-box in the back-end subsystem; then the verifier black-box sends an authentication token to the prover black-box as verifiable confirmation of the cryptographic authentication, the prover black-box sends the authentication token to an application front-end in the computing device, the application front-end sends the authentication token to an application back-end in the back-end subsystem, and the application back-end verifies the authentication token.
-
Citations
19 Claims
-
1. A multifactor authentication method performed at a computing device, comprising:
-
at registration time, obtaining a passcode from a user; at registration time, generating a protocredential comprising one or more parameters combinable with the passcode to generate a credential; at registration time, storing the protocredential in the computing device; at registration time, generating the credential, the credential comprising a key pair, the key pair comprising a private key and a public key; at registration time, using the credential to register the device and subsequently discarding the credential; at authentication time, obtaining again the passcode from the user; at authentication time, regenerating the credential from the protocredential stored in the computing device and the passcode obtained from the user, using a credential regeneration process having at least 1% probability of producing well-formed output and at most 0.1% probability of producing correct output from the protocredential and a random guess of the passcode, the random guess having a uniform probability distribution over the range of allowable passcodes; and at authentication time, proving possession of the credential to a verifier by sending the public key and a proof of knowledge of the private key to the verifier over a secure connection after the verifier has authenticated to the computing device. - View Dependent Claims (2, 3)
-
-
4. A multifactor authentication method performed at a computing device, comprising:
-
at registration time, generating a protocredential comprising one or more parameters combinable with one or more secrets not stored in the computing device to generate a credential; at registration time, storing the credential in the computing device; at registration time, generating the credential, the credential comprising a key pair, the key pair comprising a private key and public key; at registration time, using the credential to register the device and subsequently discarding the credential; at authentication time, obtaining from a user one or more secrets not stored in the computing device; at authentication time, regenerating the credential from the protocredential stored in the computing device and the one or more secrets not stored in the device obtained from the user, by a credential regeneration process that does not include decryption steps other than steps that decrypt zero or more encrypted bare parameters; and at authentication time, proving knowledge of the private key to a verifier by sending the public key and a proof of knowledge of the private key to the verifier over a secure connection after the verifier has authenticated to the computing device. - View Dependent Claims (5, 6, 7)
-
-
8. A system comprising:
-
a back-end subsystem; and a computing device programmed to register with the back-end subsystem and subsequently authenticate to the back-end subsystem, the computing device comprising an application front-end and a prover black-box, wherein at registration time, the computing device generates a protocredential comprising one or more parameters combinable with one or more secrets not stored in the computing device to generate a credential; at registration time, the computing device stores the protocredential; at registration time, the computing device generates the credential; at registration time, the computing device uses the credential to register with the back-end subsystem and subsequently discards the credential; at authentication time, the computing device obtains from a user one or more secrets not stored in the computing device; at authentication time, the prover black-box regenerates the credential from the protocredential stored in the computing device and the one or more secrets not stored in the device obtained from the user, using a credential regeneration process having at least 1% probability of producing well-formed output and at most 0.1% probability of producing correct output from guesses of the one or more secrets not stored in the computing device; at authentication time, the prover black-box authenticates cryptographically to the back-end subsystem by proving possession of the credential; at authentication time, the prover black-box receives an authentication token from the back-end subsystem as verifiable confirmation of the cryptographic authentication; at authentication time, the prover black-box sends the authentication token to the application front-end; and at authentication time, the application front-end sends the authentication token to the back-end subsystem. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computing device programmed to register with a back-end and subsequently authenticate to the back-end, the computing device comprising a prover black-box and an application front-end, the prover black-box being programmed to perform steps of:
-
at registration time, generating a protocredential comprising one or more parameters combinable with one or more secrets not stored in the computing device to generate a credential; at registration time, storing the protocredential in the computing device; at registration time, generating the credential; at registration time, discarding the credential after the device has registered with the back-end; at authentication time, regenerating the credential from the protocredential stored in the device and one or more secrets not stored in the computing device that have been obtained from a user, using a credential regeneration process having at least 1% probability of producing well-formed output and at most 0.1% probability of producing correct output from guesses of the one or more secrets not stored in the computing device; at authentication time, authenticating cryptographically to the back-end by proving possession of the credential; at authentication time, receiving an authentication token from the back-end; at authentication time, sending the authentication token to the application front-end, the authentication token being submissible to the back-end by the application front-end as verifiable confirmation of the cryptographic authentication.
-
Specification