IP Library Granted Patent US 10,461,933
Granted Patent B2
US 10,461,933 · App. 15/008,388 · Granted Oct 29, 2019

Methods for secure credential provisioning

Inventors: Eric Le Saint (Los Altos, CA); Soumendra Bhattacharya (Union City, CA)
Assignee: Visa International Service Association
H04L9/3226H04L9/0822H04L9/0825H04L9/0841H04L9/0861H04L9/0891H04L9/0894H04L9/321H04L63/045H04L63/0435H04L9/14H04L2209/56
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,461,933
App. No.
15/008,388
Granted
Oct 29, 2019
Kind
B2
Abstract

Embodiments can provide methods for securely provisioning sensitive credential data, such as a limited use key (LUK) onto a user device. In some embodiments, the credential data can be encrypted using a separate storage protection key and decrypted only at the time of a transaction to generate a cryptogram for the transaction. Thus, end-to-end protection can be provided during the transit and storage of the credential data, limiting the exposure of the credential data only when the credential data is required, thereby reducing the risk of compromise of the credential data.

Claims (86)

1. A computer-implemented method, comprising:

determining, by a user device, a one-time user public key;

sending, by the user device to a provisioning server computer, a provisioning request message including the one-time user public key;

receiving, by the user device, an encrypted provisioning response message from the provisioning server computer, the encrypted provisioning response message comprising encrypted credential data;

determining, by the user device, a response shared secret using a static server public key;

determining, by the user device, a response session key from the response shared secret, the response session key usable for decrypting the encrypted provisioning response message;

decrypting, by the user device, the encrypted provisioning response message using the response session key to determine the encrypted credential data;

determining, by the user device, a storage protection key from the response shared secret, the storage protection key being different from the response session key and usable for decrypting the encrypted credential data;

encrypting, by the user device, the storage protection key with a key encryption key to generate an encrypted storage protection key;

storing, by the user device, the encrypted storage protection key;

storing, by the user device, the encrypted credential data;

retrieving, by the user device, the encrypted credential data;

retrieving, by the user device, the encrypted storage protection key;

decrypting, by the user device, the encrypted storage protection key using the key encryption key to obtain the storage protection key; and

decrypting, by the user device, the encrypted credential data using the storage protection key to obtain credential data.

2. The computer-implemented method of claim 1 , wherein the encrypted credential data includes a limited use key (LUK) or key derivation data for a single use key (SUK).

3. The computer-implemented method of claim 1 , wherein the encrypted credential data is stored in a storage server remotely connected to the user device and the encrypted storage protection key is stored in the user device.

4. The computer-implemented method of claim 1 , wherein the retrieving of the encrypted credential data is in response to an indication to generate a cryptogram used for authenticating an authorization request message, the method further comprising:

generating the cryptogram using the credential data.

5. The computer-implemented method of claim 4 , wherein decrypting the encrypted credential data using the storage protection key comprises:

deriving a credential encryption key using the storage protection key and key derivation data for the credential encryption key, the key derivation data comprises data specific to the user device; and

decrypting the encrypted credential data using the credential encryption key.

6. The computer-implemented method of claim 4 , wherein the cryptogram is generated using a cryptogram key derived from the credential data.

7. The computer-implemented method of claim 1 , wherein a blinded static server public key is received with the encrypted provisioning response message, and wherein the response shared secret is determined using the blinded static server public key.

8. The computer-implemented method of claim 1 , wherein determining the one-time user public key comprises generating an ephemeral user key pair comprising an ephemeral user private key and an ephemeral user public key, wherein the ephemeral user public key is used as the one-time user public key.

9. The computer-implemented method of claim 1 , wherein determining the one-time user public key comprises blinding a static user public key.

10. A computer-implemented method, comprising:

determining, by a user device, a one-time user public key;

generating, by the user device, a request shared secret using a static server public key and a user private key corresponding to the one-time user public key;

encrypting, by the user device, request data using the request shared secret to obtain encrypted request data;

sending, by the user device to a provisioning server computer, a provisioning request message including the one-time user public key and the encrypted request data;

receiving, by the user device, an encrypted provisioning response message from the provisioning server computer, the encrypted provisioning response message comprising encrypted credential data;

determining, by the user device, a response shared secret using the static server public key;

determining, by the user device, a response session key from the response shared secret, the response session key usable for decrypting the encrypted provisioning response message;

decrypting, by the user device, the encrypted provisioning response message using the response session key to determine the encrypted credential data;

determining, by the user device, a storage protection key from the response shared secret, the storage protection key being different from the response session key and usable for decrypting the encrypted credential data;

encrypting, by the user device, the storage protection key with a key encryption key to generate an encrypted storage protection key;

storing, by the user device, the encrypted storage protection key; and

storing, by the user device, the encrypted credential data.

11. The computer-implemented method of claim 10 , wherein the encrypted credential data includes a limited use key (LUK) or key derivation data for a single use key (SUK).

12. The computer-implemented method of claim 10 , wherein the encrypted credential data is stored in a storage server remotely connected to the user device and the encrypted storage protection key is stored in the user device.

13. A computer system, comprising:

a memory that stores computer-executable instructions; and

a processor configured to access the memory and execute the computer-executable instructions to:

determine a one-time user public key;

send, to a provisioning server computer, a provisioning request message including the one-time user public key;

receive an encrypted provisioning response message from the provisioning server computer, the encrypted provisioning response message comprising encrypted credential data;

determine a response shared secret using a static server public key;

determine a response session key from the response shared secret, the response session key usable for decrypting the encrypted provisioning response message;

decrypt the encrypted provisioning response message using the response session key to determine the encrypted credential data;

determine a storage protection key from the response shared secret, the storage protection key being different from the response session key and usable for decrypting the encrypted credential data;

encrypt the storage protection key with a key encryption key to generate an encrypted storage protection key;

store the encrypted storage protection key;

store the encrypted credential data;

retrieve the encrypted credential data;

retrieve the encrypted storage protection key;

decrypt the encrypted storage protection key using the key encryption key to obtain the storage protection key; and

decrypt the encrypted credential data using the storage protection key to obtain credential data.

14. The computer system of claim 13 , wherein the encrypted credential data is stored in a storage server remotely connected to the computer system.

15. The computer system of claim 13 , wherein the computer-executable instructions further include instructions for:

in response to an indication to generate a cryptogram used for authenticating an authorization request message, retrieving the encrypted credential data;

retrieving the encrypted storage protection key;

decrypting the encrypted storage protection key using the key encryption key to obtain the storage protection key;

decrypting the encrypted credential data using the storage protection key to obtain the credential data; and

generating the cryptogram using the credential data.

16. The computer system of claim 15 , wherein decrypting the encrypted credential data using the storage protection key comprises:

deriving a credential encryption key using the storage protection key and key derivation data for the credential encryption key, the key derivation data comprises data specific to the computer system; and

decrypting the encrypted credential data using the credential encryption key.

17. The computer system of claim 13 , wherein the credential data includes a limited use key (LUK) or key derivation data for a single use key (SUK).

18. A computer system, comprising:

a memory that stores computer-executable instructions; and

a processor configured to access the memory and execute the computer-executable instructions to:

determine a one-time user public key;

generate a request shared secret using a static server public key and a user private key corresponding to the one-time user public key;

encrypt request data using the request shared secret to obtain encrypted request data;

send, to a provisioning server computer, a provisioning request message including the one-time user public key and the encrypted request data;

receive an encrypted provisioning response message from the provisioning server computer, the encrypted provisioning response message comprising encrypted credential data;

determine a response shared secret using the static server public key;

determine a response session key from the response shared secret, the response session key usable for decrypting the encrypted provisioning response message;

decrypt the encrypted provisioning response message using the response session key to determine the encrypted credential data;

determine a storage protection key from the response shared secret, the storage protection key being different from the response session key and usable for decrypting the encrypted credential data;

encrypt the storage protection key with a key encryption key to generate an encrypted storage protection key;

store the encrypted storage protection key; and

store the encrypted credential data.

19. The computer system of claim 18 , wherein the determining of the one-time user public key comprises generating an ephemeral user key pair comprising an ephemeral user private key and an ephemeral user public key, wherein the ephemeral user public key is used as the one-time user public key.

20. The computer system of claim 18 , wherein the determining of the one-time user public key comprises blinding a static user public key.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2016
From: LE SAINT, ERIC; BHATTACHARYA, SOUMENDRA
To: VISA INTERNATIONAL SERVICE ASSOCIATION
Reel/Frame 037713/0384 →
Continuity (2)
Provisional Application 62108468 · Jan 27, 2015
Related Publication 20160218875A1 · Jul 28, 2016
Cited By (4)
US 12,333,528 US 12,591,884 US 12,640,921 US 12,641,065