IP Library Granted Patent US 10,616,213
Granted Patent B2
US 10,616,213 · App. 16/242,885 · Granted Apr 7, 2020

Password manipulation for secure account creation and verification through third-party servers

Inventors: Ismail Cem Paya (San Francisco, CA); Kevin Nguyen (San Francisco, CA)
Assignee: Airbnb, Inc.
H04L63/083H04L9/0897H04L9/321H04L9/3226H04L63/0823
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,616,213
App. No.
16/242,885
Granted
Apr 7, 2020
Kind
B2
Abstract

A method and system for deterring attacks at potential breach points between servers and an account and login server for creating and subsequent verification of accounts. Various cryptographic primitives are used to manipulate passwords to generate verifiers. The verifiers are used with external hardware security modules (HSMs) to eliminate HSMs and intermediate steps between the HSM and login servers as potential breach points.

Claims (58)

1. A computer implemented method comprising:

receiving, at a trusted server, a login request comprising a login password and an account identifier (ID);

accessing, at the trusted server, a verifier associated with the account ID, the verifier generated using an invertible masking operation on an original account password for the account ID and an encrypted version of a random number;

masking, at the trusted server using the invertible masking operation, the login password with the verifier to generate a complementary verifier;

sending, from the trusted server to an untrusted server communicatively coupled to but distinct from the trusted server, a decryption request comprising the complementary verifier by:

generating, at the trusted server, a blinding factor;

encrypting, at the trusted server, the blinding factor; and

performing, at the trusted server, a blinding operation on the complementary verifier and the encrypted blinding factor;

receiving, at the trusted server, a decryption status from the untrusted server; and

determining, at the trusted server, an outcome of the login request based on the decryption status.

2. The computer implemented method of claim 1 , wherein masking, at the trusted server using the invertible masking operation, the login password with the verifier comprises performing an invertible mathematical operation on the login password and the verifier.

3. The computer implemented method of claim 2 , wherein the invertible mathematical operation includes at least one mathematical operation from a group consisting of: a multiplication operation, an addition operation, an AND operation, an OR operation, an XOR operation, and an XNOR operation.

4. The computer implemented method of claim 1 , wherein the invertible masking operation is invertible such that performing the invertible masking operation on the verifier and the original account password results in the encrypted version of the random number.

5. The computer implemented method of claim 1 , wherein determining the outcome of the login request based on the decryption status comprises:

determining that the outcome of the login request is a successful login responsive to the decryption status indicating a decryption of the complementary verifier was successful.

6. The computer implemented method of claim 1 , wherein determining the outcome of the login request based on the decryption status comprises:

determining that the outcome of the login request is an unsuccessful login responsive to the decryption status indicating a decryption of the complementary verifier was unsuccessful.

7. The computer implemented method of claim 1 , wherein determining the outcome of the login request based on the decryption status comprises:

accessing, at the trusted server, an unencrypted version of the random number, wherein the unencrypted version of the random number was used to generate the verifier using the invertible masking operation;

extracting, from the decryption status, a decrypted complementary verifier; and

determining that the outcome of the login request is a successful login responsive to the decrypted complementary verifier matching the unencrypted version of the random number.

8. The computer implemented method of claim 1 , wherein determining the outcome of the login request based on the decryption status comprises:

accessing, at the trusted server, an unencrypted version of the random number, wherein the unencrypted version of the random number was used to generate the verifier using the invertible masking operation;

extracting, from the decryption status, a decrypted complementary verifier; and

determining that the outcome of the login request is an unsuccessful login responsive to the decryption status indicating the decryption of the complementary verifier was unsuccessful or that the decrypted complementary verifier does not match the unencrypted version of the random number.

9. The computer implemented method of claim 1 , wherein determining an outcome of the login request based on the decryption status comprises:

extracting, from the decryption status, a decrypted blinded complementary verifier; and

applying, at the trusted server, a reverse blinding operation on the decrypted blinded complementary verifier.

10. The computer implemented method of claim 1 , wherein sending, from the trusted server to the untrusted server, a decryption request comprising the complementary verifier further comprises sending, from the trusted server to the untrusted server, a decryption request comprising the blinded complementary verifier.

11. A non-transitory computer readable storage medium comprising computer program instructions that, when executed by a processor, cause the processor to perform the steps of:

receiving, at a trusted server, a login request comprising a login password and an account identifier (ID);

accessing, at the trusted server, a verifier associated with the account ID, the verifier generated using an invertible masking operation on an original account password for the account ID and an encrypted version of a random number;

masking, at the trusted server using the invertible masking operation, the login password with the verifier to generate a complementary verifier;

sending, from the trusted server to an untrusted server communicatively coupled to but distinct from the trusted server, a decryption request comprising the complementary verifier by:

generating, at the trusted server, a blinding factor;

encrypting, at the trusted server, the blinding factor; and

performing, at the trusted server, a blinding operation on the complementary verifier and the encrypted blinding factor;

receiving, at the trusted server, a decryption status from the untrusted server; and

determining, at the trusted server, an outcome of the login request based on the decryption status.

12. The non-transitory computer readable storage medium of claim 11 , wherein masking, at the trusted server using the invertible masking operation, the login password with the verifier comprises performing an invertible mathematical operation on the login password and the verifier.

13. The non-transitory computer readable storage medium of claim 12 , wherein the invertible mathematical operation includes at least one mathematical operation from a group consisting of: a multiplication operation, an addition operation, an AND operation, an OR operation, an XOR operation, and an XNOR operation.

14. The non-transitory computer readable storage medium of claim 11 , wherein the invertible masking operation is invertible such that performing the invertible masking operation on the verifier and the original account password results in the encrypted version of the random number.

15. The non-transitory computer readable storage medium of claim 11 , wherein determining an outcome of the login request based on the decryption status comprises:

determining that the outcome of the login request is a successful login responsive to the decryption status indicating a decryption of the complementary verifier was successful.

16. The non-transitory computer readable storage medium of claim 11 , wherein determining the outcome of the login request based on the decryption status comprises:

determining that the outcome of the login request is an unsuccessful login responsive to the decryption status indicating a decryption of the complementary verifier was unsuccessful.

17. The non-transitory computer readable storage medium of claim 11 , wherein determining the outcome of the login request based on the decryption status comprises:

accessing, at the trusted server, an unencrypted version of the random number, wherein the unencrypted version of the random number was used to generate the verifier using the invertible masking operation;

extracting, from the decryption status, a decrypted complementary verifier; and

determining that the outcome of the login request is a successful login responsive to the decrypted complementary verifier matching the unencrypted version of the random number.

18. The non-transitory computer readable storage medium of claim 11 , wherein determining an outcome of the login request based on the decryption status comprises:

accessing, at the trusted server, an unencrypted version of the random number, wherein the unencrypted version of the random number was used to generate the verifier using the invertible masking operation;

extracting, from the decryption status, a decrypted complementary verifier; and

determining that the outcome of the login request is an unsuccessful login responsive to the decryption status indicating the decryption of the complementary verifier was unsuccessful or that the decrypted complementary verifier does not match the random number.

19. The non-transitory computer readable storage medium of claim 11 , wherein determining an outcome of the login request based on the decryption status comprises:

extracting, from the decryption status, a decrypted blinded complementary verifier; and

applying, at the trusted server, a reverse blinding operation on the decrypted blinded complementary verifier.

20. The non-transitory computer readable storage medium of claim 11 , wherein sending, from the trusted server to the untrusted server, a decryption request comprising the complementary verifier further comprises sending, from the trusted server to the untrusted server, a decryption request comprising the blinded complementary verifier.

Assignments (7)
RELEASE (REEL 054586 / FRAME 0033) Recorded Nov 1, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: AIRBNB, INC.
Reel/Frame 061825/0910 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Apr 21, 2021
From: TOP IV TALENTS, LLC
To: AIRBNB, INC.
Reel/Frame 055997/0907 →
RELEASE OF SECURITY INTEREST Recorded Mar 8, 2021
From: CORTLAND CAPITAL MARKET SERVICES LLC
To: AIRBNB, INC.
Reel/Frame 055527/0531 →
SECURITY AGREEMENT Recorded Nov 19, 2020
From: AIRBNB, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054586/0033 →
FIRST LIEN SECURITY AGREEMENT Recorded Apr 21, 2020
From: AIRBNB, INC.
To: CORTLAND CAPITAL MARKET SERVICES LLC
Reel/Frame 052456/0036 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Apr 17, 2020
From: AIRBNB, INC.
To: TOP IV TALENTS, LLC, AS COLLATERAL AGENT
Reel/Frame 052433/0416 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2019
From: PAYA, ISMAIL CEM; NGUYEN, KEVIN
To: AIRBNB, INC.
Reel/Frame 048008/0707 →