IP Library › Granted Patent US 9,912,483
Granted Patent B2
US 9,912,483 · App. 15/209,631 · Granted Mar 6, 2018

Systems and methods to secure user identification

Inventors: Mark Carlson (Half Moon Bay, CA); Michael Steven Bankston (Oakland, CA); Kalpana Jogi (San Francisco, CA); Timothy Gallagher (Highlands Ranch, CO); Alesia Panagiotides (San Mateo, CA)
Assignee: Visa International Service Association
H04L9/3247G06F17/30867G06Q20/325G06Q20/387G06Q20/389G06Q20/3825G06Q20/4014H04L9/3242H04L63/0428H04L63/08H04L63/0823H04L63/12H04L63/123H04L67/10H04L9/3215H04L63/0807H04L2209/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 9,912,483
App. No.
15/209,631
Granted
Mar 6, 2018
Kind
B2
Abstract

A computing apparatus configured to verify a digital signature applied on a set of data received from a user device, including an user ID assigned by a partner system to uniquely identify a user of the user device among customers of the partner system, and a user device identifier identifying the user device. The digital signature is generated via applying a cryptographic one-way hash function on a combination of the set of data and a secret, shared between the computing apparatus and the partner system via a secure communication channel separate from a channel used to receive the set of data.

Claims (68)

1. A method, comprising:

receiving, with a server from a user device, a communication including:

a digital signature;

user information of a user of the user device; and

a first user identifier configured to identify the user of the user device among a plurality of first users of the server, wherein the first user identifier is generated by a computing device, separate from the server and the user device, based on a combination of:

the user information of the user that is received in the computing device from the user device before the communication is received in the server; and

a second user identifier of the user configured to identify the user of the user device among a plurality of second users of the computing device;

extracting the second user identifier from the first user identifier; and

validating an integrity of the communication based on the first user identifier, the second user identifier extracted from the first user identifier, and the user information of the user received in the communication, wherein validating the integrity of the communication comprises:

combining, with the server, the second user identifier extracted from the first user identifier and the user information of the user received in the communication with a secret shared between the server and the computing device,

generating, with the server, a combined dataset based on combining the second user identifier and the user information of the user with the secret,

applying, with the server, a hash function to the combined dataset,

generating, with the server, a hash result based on applying the hash function to the combined dataset, and

comparing, with the server, the hash result to the digital signature, and

determining, with the server, whether the hash result matches the digital signature based on comparing the hash result to the digital signature; and

determining to grant access to a service associated with the server based on validating the integrity of the communication.

2. The method of claim 1 , wherein the secret is not communicated between the computing device and the server through the user device.

3. The method of claim 1 , wherein the receiving of the communication is in response to the user device transmitting a query to the server.

4. The method of claim 3 , wherein the communication is received via parameters embedded via a query string submitted from the user device.

5. The method of claim 4 , further comprising:

pre-filling, by the server, a plurality of fields in an enrollment form using the user information of the user received in the communication; and

transmitting, from the server to the user device, the enrollment form pre-filled using the user information received in the communication.

6. The method of claim 1 , wherein applying the hash function to the combined dataset includes applying a cryptographic one-way hash function to the combined dataset.

7. The method of claim 6 , wherein the dataset further includes a secret that is shared between the server and the computing device and not communicated via the user device.

8. The method of claim 7 , wherein the secret represents the computing device in a digital signature applied on the dataset.

9. A non-transitory computer storage medium storing instructions configured to instruct a server to perform a method, the method comprising:

receiving, with the server from a user device, a communication including:

a digital signature;

user information of a user of the user device; and

a first user identifier configured to identify the user of the user device among a plurality of first users of the server, wherein the first user identifier is generated by a computing device, separate from the server and the user device, based on a combination of:

the user information of the user that is received in the computing device from the user device before the communication is received in the server; and

a second user identifier of the user among a plurality of second users of the computing device;

extracting the second user identifier from the first user identifier; and

validating an integrity of the communication based on the first user identifier, the second user identifier extracted from the first user identifier, and the user information of the user received in the communication, wherein validating the integrity of the communication comprises:

combining, with the server, the second user identifier extracted from the first user identifier and the user information of the user received in the communication with a secret shared between the server and the computing device,

generating, with the server, a combined dataset based on combining the second user identifier and the user information of the user with the secret,

applying, with the server, a hash function to the combined dataset,

generating, with the server, a hash result based on applying the hash function to the combined dataset, and

comparing, with the server, the hash result to the digital signature, and

determining, with the server, whether the hash result matches the digital signature based on comparing the hash result to the digital signature; and

determining to grant access to a service associated with the server based on validating the integrity of the communication.

10. The non-transitory computer storage medium of claim 9 , wherein the secret is not communicated between the computing device and the server through the user device.

11. The non-transitory computer storage medium of claim 9 , wherein the receiving of the communication is in response to the user device transmitting a query to the server.

12. The non-transitory computer storage medium of claim 11 , wherein the communication is received in the server via parameters embedded via a query string submitted from the user device.

13. The non-transitory computer storage medium of claim 12 , wherein the method further comprises:

pre-filling, by the server, a plurality of fields in an enrollment form using the user information of the user received in the communication; and

transmitting, from the server to the user device, the enrollment form pre-filled using the user information received in the communication.

14. A server, comprising:

at least one microprocessor; and

a memory storing instructions configured to instruct the at least one microprocessor to:

receive, with the server from a user device, a communication including:

a digital signature;

user information of a user of the user device; and

a first user identifier configured to identify the user of the user device among a plurality of first users of the server, wherein the first user identifier is generated by a computing device, separate from the server and the user device, based on a combination of:

the user information of the user that is received in the computing device from the user device before the communication is received in the server; and

a second user identifier of the user among a plurality of second users of the computing device;

extract the second user identifier from the first user identifier; and

validate an integrity of the communication based on the first user identifier, the second user identifier extracted from the first user identifier, and the user information of the user received in the communication, wherein the instructions that are configured to instruct the at least one microprocessor to validate the integrity of the communication, are to instruct the at least one microprocessor to:

combine the second user identifier extracted from the first user identifier and the user information of the user received in the communication with a secret shared between the server and the computing device,

generate a combined dataset based on combining the second user identifier and the user information of the user with the secret,

apply a hash function to the combined dataset,

generate a hash result based on applying the hash function to the combined dataset, and

compare the hash result to the digital signature, and

determine whether the hash result matches the digital signature based on comparing the hash result to the digital signature; and

determine to grant access to a service associated with the server based on validating the integrity of the communication.

15. The server of claim 14 , wherein the secret is shared between the server and the computing device and not communicated via the user device.

16. The server of claim 15 , wherein the secret represents the computing device in the digital signature.

17. The server of claim 16 , wherein the hash function is a cryptographic one-way hash function based on SHA-256 designed by the National Security Agency (NSA) and published in 2001 by the National Institute of Standards and Technology (NIST) as a U.S. Federal Information Processing Standard.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2016
From: CARLSON, MARK; BANKSTON, MICHAEL STEVEN; JOGI, KALPANA; GALLAGHER, TIMOTHY WILLIAM; PANAGIOTIDES, ALESIA
To: VISA INTERNATIONAL SERVICE ASSOCIATION
Reel/Frame 039162/0511 →
Continuity (4)
Continuation 14459749 · Aug 14, 2014
Continuation 13623784 · Sep 20, 2012
Provisional Application 61537552 · Sep 21, 2011
Related Publication 20160323259A1 · Nov 3, 2016