IP Library Granted Patent US 10,491,605
Granted Patent B2
US 10,491,605 · App. 15/333,944 · Granted Nov 26, 2019

Secure interface using non-secure element processors

Inventors: Justin Lee Brickell (San Francisco, CA); Jonathan Kingsley Blatter (New York, NY); Bobby Wieler (New York, NY); Harry Lee Butler, IV (New York, NY); Ignacio Carlos Blanco (San Francisco, CA); Denis Lila (Oakland, CA)
Assignee: GOOGLE LLC
H04L63/123G06F21/45G06Q20/3227G06Q20/3278G06Q20/385G06Q20/40
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,491,605
App. No.
15/333,944
Granted
Nov 26, 2019
Kind
B2
Abstract

A bundle of public counters and a corresponding bundle of private counters are created and transmitted to a user device. The user device receives a request and processes the request without accessing a secure element processor on the user device. The user device calculates a security code using the private counter and a number. The user device transmits the calculated security code and one of the bundle of public counters in response to the request. A receiver of the response to the request determines the validity of the public counter and looks up the corresponding private counter using the public counter. The receiver determines the validity of the security code by recomputing it using the private counter and the number.

Claims (41)

1. A system to securely interface between non-secure element processors and service provider systems, comprising:

a mobile computing device comprising a non-secure element storage device and a non-secure element processor communicatively coupled to the non-secure element storage device, wherein the non-secure element processor executes application code instructions that are stored in the non-secure element storage device to cause the mobile computing device to:

receive, from a merchant computing device, a request comprising a random number;

retrieve one of a bundle of public limited use values and a corresponding one of a bundle of private limited use values from the non-secure element storage device;

generate a security code using the random number and the one of the bundle of private limited use value;

generate a response to the request comprising (1) the public limited use value that corresponds to the private limited use value used to generate the security code and (2) the generated security code;

transmit, to the merchant computing device, the response to the request, wherein the response to the request is transmitted by the merchant computing device to an account management computing system for approval; and

receive an approval notification indicating that the account management computing system confirmed the validity of the generated security code using the received public limited use value.

2. The system of claim 1 , wherein the non-secure element processor further executes application code instructions that are stored in the non-secure element storage device to cause the system to determine that the one of the bundle of public limited use values and the corresponding one of the bundle of private limited use values are available.

3. The system of claim 1 , wherein the account management computing system uses the public limited use value included in the response to retrieve the corresponding private limited use value, and uses the retrieved corresponding private limited use value to recompute the generated security code.

4. The system of claim 3 , wherein the account management computing system confirms a validity of the generated security code by confirming the recomputed security code matches the generated security code included in the response to the request.

5. The system of claim 1 , wherein the non-secure element processor executes further application code instructions that are stored in the non-secure element storage device to cause the system to receive the bundle of public limited use values from a separate computing system.

6. The system of claim 1 , wherein the bundle of public limited use values comprises a set of randomly generated values that are limited in time and number.

7. The system of claim 1 , wherein the account management computing system confirms validity of the security code generated using the random number and the private limited use value.

8. The system of claim 7 , wherein confirming the validity of the generated security code comprises determining that the public limited use value is not expired and not previously used.

9. A computer-implemented method to securely interface between non-secure element processors and service provider systems, comprising:

by a non-secure element processor of a mobile computing device:

receiving, from a service provider computing device, a request comprising a random number;

retrieving one of a bundle of public limited use values and a corresponding one of a bundle of private limited use values;

generating a security code using the random number and the private limited use value;

generating a response to the request comprising (1) the public limited use value that corresponds to the private limited use value used to generate the security code and (2) the generated security code;

transmitting, to the service provider computing device; the response to the request, wherein the response to the request is transmitted by the service provider computing device to an account management computing system for approval; and

receiving an approval notification indicating that the account management computing system confirmed the validity of the generated security code using the received public limited use value.

10. The computer-implemented method of claim 9 , further comprising determining, by the non-secure element processor of the mobile computing device, that the public limited use value and the corresponding private limited use value are available.

11. The computer-implemented method of claim 9 , wherein the account management computing system uses the public limited use value included in the response to retrieve the corresponding private limited use value, and uses the retrieved corresponding private limited use value to recompute the generated security code.

12. The computer-implemented method of claim 11 , wherein the account management computing system confirms a validity of the generated security code by confirming the recomputed security code matches the generated security code included in the response to the request.

13. The computer-implemented method of claim 9 , wherein the bundle of public limited use values comprises a set of randomly generated values that are limited in time and number.

14. The computer-implemented method of claim 9 , wherein the account management computing system confirms validity of the security code generated using the random number and the private limited use value.

15. The computer-implemented method of claim 14 , wherein confirming the validity of the generated security code comprises determining that the public limited use value is not expired and not previously used.

16. A computer program product, comprising:

a non-transitory computer-readable storage device having computer-executable program instructions embodied therein that when executed by a computer cause the computer to securely interface between non-secure element processors and service provider systems, comprising computer-readable program instructions to:

receive, from a service provider computing device, a request comprising a random number;

retrieve one of a bundle of public limited use values and a corresponding one of a bundle of private limited use values;

generate a security code using the random number and the private limited use value;

generate a response to the request comprising (1) the public limited use value that corresponds to the private limited use value used to generate the security code and (2) the generated security code;

transmit, to the service provider computing device, the response to the request, wherein the response to the request is transmitted by the service provider computing device to an account management computing system for approval; and

receive an approval notification indicating that the account management computing system confirmed the validity of the generated security code using the received public limited use value.

17. The computer program product of claim 16 , further comprising computer-readable program instructions to determine that the public limited use value and the corresponding private limited use value are available.

18. The computer program product of claim 16 , wherein the bundle of public limited use values comprises a set of randomly generated values that are limited in time and number.

19. The computer program product of claim 16 , wherein the account management computing system confirms validity of the security code generated using the random number and the private limited use value.

20. The computer program product of claim 19 , wherein confirming the validity of the generated security code comprises determining that the public limited use value is not expired and not previously used.

Assignments (2)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044129/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: BRICKELL, JUSTIN LEE; BLATTER, JONATHAN KINGSLEY; WIELER, BOBBY; BUTLER, HARRY LEE, IV; BLANCO, IGNACIO CARLOS; LILA, DENIS
To: GOOGLE INC.
Reel/Frame 040540/0194 →
Continuity (4)
Continuation 14469560 · Aug 26, 2014
Continuation 14133591 · Dec 18, 2013
Provisional Application 61897520 · Oct 30, 2013
Related Publication 20170104765A1 · Apr 13, 2017