IP Library Granted Patent US 11,558,409
Granted Patent B2
US 11,558,409 · App. 16/667,522 · Granted Jan 17, 2023

Detecting use of passwords that appear in a repository of breached credentials

Inventors: David Endler (Austin, TX); Alen Puzic (Austin, TX); Edward Ross (Austin, TX)
Assignee: SpyCloud, Inc.
H04L63/1425H04L63/0846H04L63/101H04L63/1433H04L63/1466
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 11,558,409
App. No.
16/667,522
Granted
Jan 17, 2023
Kind
B2
Abstract

Provided is a process that includes: obtaining with a distributed application comprising an identity management system, a first password; comparing with the distributed application, the first password to a set of compromised credentials within a database external to the network-accessible resource; receiving one or more passwords that match the first password based on the comparison; determining with the distributed application whether the one or more passwords satisfy a criterion; and in response to the determination that the one or more passwords satisfy the criterion, causing the first user associated with a first account and the first password to be notified that the first password has been compromised.

Claims (105)

1. A tangible, non-transitory, machine-readable medium storing instructions that when executed by one or more processors of an identity management system comprising a distributed application, the instructions effectuate operations comprising:

obtaining, by a password management application of the distributed application installed on a user computing device, a first password, the first password being associated with a first username of a first user account and serving to afford a first user access to a network-accessible resource;

providing, by the password management application, a single-sign-on service by which a plurality of different network-accessible resources are accessible by presentation of a plurality of different authentication credentials that are associated with the first user and that correspond to the plurality of different network-accessible resources;

comparing, with the distributed application, the first password to a set of compromised credentials within a first database external to the network-accessible resource, wherein the first database is continuously updated with additional compromised credentials and the comparison comprises a batch process for:

selecting, with the one or more processors, from a second database of the plurality of different authentication credentials associated with the first user, a subset of passwords added to the second database since a previous batch process; and

determining, with the one or more processors, one or more passwords representing an intersection of the set of compromised credentials with the selected subset of passwords;

receiving, with the distributed application, the one or more passwords that match the first password based on the comparison;

determining, with the distributed application, whether the one or more passwords satisfy a criterion of the first password; and

in response to the determination that the one or more passwords satisfy the criterion, causing, with the one or more processors, the first user associated with the first account and the first password to be notified that the first password has been compromised.

2. The medium of claim 1 , wherein

the distributed application comprises:

a remote credential-monitoring application external to the network-accessible resource; and

the password management application within the user computing device;

the remote credential-monitoring application is configured to expose an application program interface by which the first password is obtained from the password management application and to determine that the one or more passwords satisfy the criterion; and

the password management application is configured to, in response to the determination that the one or more passwords satisfy the criterion, cause the first user to be notified that the first password has been compromised and cause a controller of the network-accessible resource to be notified that the first password has been compromised.

3. The medium of claim 1 , wherein the first password is obtained via the password management application and in response to the first user inputting the first password via the password management application.

4. The medium of claim 1 , wherein comparing, with the distributed application, the first password to the set of compromised credentials comprises:

comparing the first password to the set of compromised credentials at a scheduled time responsive to a scheduled batch process by which an intersection of a first set and a second set of passwords is determined, the first set comprising more than 100 million compromised passwords and the second set comprising more than 1 million passwords that afford access to the network-accessible resource.

5. The medium of claim 1 , wherein comparing, with the distributed application, the first password to the set of compromised credentials comprises:

comparing the first password to the set of compromised credentials responsive to the first user attempting to create the first password associated with the first username via the password management application, the first user attempting to change a previous password associated with the first username to the first password via the password management application, or responsive to a scheduled batch process.

6. The medium of claim 1 , wherein the operations comprise:

in response to the determination that the one or more passwords satisfy the criterion, causing, with the one or more processors, the first user associated with the first user account to be notified to change the first password.

7. The medium of claim 1 , wherein determining whether the one or more passwords satisfy the criterion includes determining whether a number of the one or more passwords exceeds a threshold, and the operations comprise:

in response to the determination that the number of the one or more passwords exceeds the threshold, causing, with the one or more processors, a controller of the network-accessible resource to be notified regarding the determination that the number of the one or more passwords exceeds the threshold and instructing, with the one or more processors, the controller to block access to the first user account associated with the first password and the first username.

8. The medium of claim 1 , wherein the operations comprise:

determining, with the one or more processors, with the distributed application, whether the first password satisfies one or more criteria from among a plurality of criteria, wherein determining whether the first password satisfies a first criterion among the plurality of criteria includes determining whether the first password includes sequential characters and wherein the first criterion is satisfied in response to the determination that the first password includes sequential characters; and

in response to the determination that the first password satisfies the first criterion, causing, with the one or more processors, the first user associated with the first account and the first password to be notified to change the first password.

9. The medium of claim 1 , wherein the operations comprise:

determining, with the one or more processors, with the distributed application, whether the first password satisfies one or more criteria from among a plurality of criteria, wherein determining whether the first password satisfies a first criterion among the plurality of criteria includes determining whether the first password includes repetitive characters and wherein the first criterion is satisfied in response to the determination that the first password includes repetitive characters; and

in response to the determination that the first password satisfies the first criterion, causing, with the one or more processors, the first user associated with the first account and the first password to be notified to change the first password.

10. The medium of claim 1 , wherein the first database is continuously updated with additional compromised credentials, and the operations comprise:

generating a second criterion for the comparison, the criterion being generated at least based on whether another comparison identifying the first password has been previously made; and

receiving, from the first database, the one or more passwords that match the first password based on the comparison and the second criterion for the comparison.

11. The medium of claim 10 , wherein receiving the one or more passwords that match the first password based on the comparison and the second criterion for the comparison comprises:

receiving, from a subset of the first database, the one or more passwords that match the first password in response to determining that the other comparison identifying the first password has been previously made.

12. The medium of claim 1 , wherein the first password is compared to the set of compromised credentials

responsive to an update to the first database.

13. The medium of claim 1 , wherein the operations comprise:

receiving metadata associated with the one or more passwords, the metadata including one or more usernames associated with the one or more passwords;

determining whether the one or more usernames match the first username; and

in response to the determination that the first username matches the one or more usernames, causing, with the one or more processors, a controller of the network-accessible resource to be notified that the first username and the first password have been compromised, instructing, with the one or more processors, the controller of the network-accessible resource to block access to the first user account associated with the first password and the first username, and causing, with the one or more processors, the first user associated with the first user account on the network-accessible resource to be notified to change the first password.

14. The medium of claim 1 , wherein:

the match is determined based on a cryptographic hash collision.

15. The medium of claim 1 , wherein the operations comprise:

notifying the first user via the password management application to change the first password.

16. The medium of claim 1 , wherein

the set of compromised credentials comprise more than 100 million compromised credentials; and

determining that a second password does not appear in the set of compromised credentials is performed within 5 seconds of obtaining the second password.

17. The medium of claim 16 , wherein

the second password is determined to not appear in the set of compromised credentials based on a probabilistic data structure or a content-addressable data structure to which data describing the set of compromised credentials is written.

18. The medium of claim 1 , wherein the operations comprise:

determining, with the one or more processors, with the distributed application, whether the first password satisfies one or more criteria from among a plurality of criteria, wherein determining whether the first password satisfies a first criterion among the plurality of criteria includes determining whether the first password includes one or more context-specific words and wherein the first criterion is satisfied in response to the determination that the first password includes one or more context-specific words; and

in response to the determination that the first password satisfies the first criterion, causing, with the one or more processors, the first user associated with the first account and the first password to be notified to change the first password.

19. A method, comprising:

obtaining, with one or more processors and by a password management application of a distributed application installed on a user computing device, a first password, the first password being associated with a first username of a first user account and serving to afford a first user access to a network-accessible resource;

providing, by the password management application, a single-sign-on service by which a plurality of different network-accessible resources are accessible by presentation of a plurality of different authentication credentials that are associated with the first user and that correspond to the plurality of different network-accessible resources;

comparing, with the distributed application, the first password to a set of compromised credentials within a first database external to the network-accessible resource, wherein the first database is continuously updated with additional compromised credentials and the comparison comprises a batch process for:

selecting, with the one or more processors, from a second database of the plurality of different authentication credentials associated with the first user, a subset of passwords added to the second database since a previous batch process; and

determining, with the one or more processors, one or more passwords representing an intersection of the set of compromised credentials with the selected subset of passwords;

receiving, with the distributed application, the one or more passwords that match the first password based on the comparison;

determining, with the distributed application whether the one or more passwords satisfy a criterion of the first password; and

in response to the determination that the one or more passwords satisfy the criterion, causing, with the one or more processors, the first user associated with a first account and the first password to be notified that the first password has been compromised.

20. The method of claim 19 , wherein

the distributed application comprises:

a remote credential-monitoring application external to the network-accessible resource; and

the password management application within the user computing device;

the remote credential-monitoring application is configured to expose an application program interface by which the first password is obtained from the password management application and to determine that the one or more passwords satisfy the criterion; and

the password management application is configured to, in response to the determination that the one or more passwords satisfy the criterion, cause the first user to be notified that the first password has been compromised and cause a controller of the network-accessible resource to be notified that the first password has been compromised.

21. The method of claim 19 , wherein the first password is obtained via the password management application and in response to the first user inputting the first password via the password management application.

22. The method of claim 19 , wherein comparing, with the distributed application, the first password to the set of compromised credentials comprises:

comparing the first password to the set of compromised credentials at a scheduled time responsive to a scheduled batch process by which an intersection of a first set and a second set of passwords is determined, the first set comprising more than 100 million compromised passwords and the second set comprising more than 1 million passwords that afford access to the network-accessible resource.

23. The method of claim 19 , wherein comparing, with the distributed application, the first password to the set of compromised credentials comprises:

comparing the first password to the set of compromised credentials responsive to the first user attempting to create the first password associated with the first username via the password management application, the first user attempting to change a previous password associated with the first username to the first password via the password management application, or responsive to a scheduled batch process.

24. The method of claim 19 , further comprising:

in response to the determination that the one or more passwords satisfy the criterion, causing, with the one or more processors, the first user associated with the first user account to be notified to change the first password.

25. The method of claim 19 , wherein determining whether the one or more passwords satisfy the criterion includes determining whether a number of the one or more passwords exceeds a threshold, and the method further comprises:

in response to the determination that the number of the one or more passwords exceeds the threshold, causing, with the one or more processors, a controller of the network-accessible resource to be notified regarding the determination that the number of the one or more passwords exceeds the threshold and instructing, with the one or more processors, the controller to block access to the first user account associated with the first password and the first username.

26. The method of claim 19 , further comprising:

determining, with the one or more processors, with the distributed application, whether the first password satisfies one or more criteria from among a plurality of criteria, wherein determining whether the first password satisfies a first criterion among the plurality of criteria includes determining whether the first password includes sequential characters and wherein the first criterion is satisfied in response to the determination that the first password includes sequential characters; and

in response to the determination that the first password satisfies the first criterion, causing, with the one or more processors, the first user associated with the first account and the first password to be notified to change the first password.

27. The method of claim 19 , further comprising:

determining, with the one or more processors, with the distributed application, whether the first password satisfies one or more criteria from among a plurality of criteria, wherein determining whether the first password satisfies a first criterion among the plurality of criteria includes determining whether the first password includes repetitive characters and wherein the first criterion is satisfied in response to the determination that the first password includes repetitive characters; and

in response to the determination that the first password satisfies the first criterion, causing, with the one or more processors, the first user associated with the first account and the first password to be notified to change the first password.

28. The method of claim 19 , wherein the first database is continuously updated with additional compromised credentials, and the method further comprises:

generating a second criterion for the comparison, the criterion being generated at least based on whether another comparison identifying the first password has been previously made; and

receiving, from the first database, the one or more passwords that match the first password based on the comparison and the second criterion for the comparison.

29. The method of claim 28 , wherein receiving the one or more passwords that match the first password based on the comparison and the second criterion for the comparison comprises:

receiving, from a subset of the first database, the one or more passwords that match the first password in response to determining that the other comparison identifying the first password has been previously made.

30. The method of claim 19 , wherein the first password is compared to the set of compromised credentials

responsive to an update to the first database.

31. The method of claim 19 , further comprising:

receiving metadata associated with the one or more passwords, the metadata including one or more usernames associated with the one or more passwords;

determining whether the one or more usernames match the first username; and

in response to the determination that the first username matches the one or more usernames, causing, with the one or more processors, a controller of the network-accessible resource to be notified that the first username and the first password have been compromised, instructing, with the one or more processors, the controller of the network-accessible resource to block access to the first user account associated with the first password and the first username, and causing, with the one or more processors, the first user associated with the first user account on the network-accessible resource to be notified to change the first password.

32. The method of claim 19 , wherein:

the match is determined based on a cryptographic hash collision.

33. The method of claim 19 , further comprising: notifying the first user via the password management application to change the first password.

34. The method of claim 19 , wherein

the set of compromised credentials comprise more than 100 million compromised credentials; and

determining that a second password does not appear in the set of compromised credentials is performed within 5 seconds of obtaining the second password.

35. The method of claim 34 , wherein

the second password is determined to not appear in the set of compromised credentials based on a probabilistic data structure or a content-addressable data structure to which data describing the set of compromised credentials is written.

36. The method of claim 19 , further comprising:

determining, with the one or more processors, with the distributed application, whether the first password satisfies one or more criteria from among a plurality of criteria, wherein determining whether the first password satisfies a first criterion among the plurality of criteria includes determining whether the first password includes one or more context-specific words and wherein the first criterion is satisfied in response to the determination that the first password includes one or more context-specific words; and

in response to the determination that the first password satisfies the first criterion, causing, with the one or more processors, the first user associated with the first account and the first password to be notified to change the first password.

Assignments (3)
SECURITY INTEREST Recorded Apr 9, 2024
From: SPYCLOUD, INC.
To: CANADIAN IMPERIAL BANK OF COMMERCE, AS ADMINISTRATIVE AGENT
Reel/Frame 067042/0751 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2022
From: PUZIC, ALEN; ROSS, EDWARD
To: SPYCLOUD, INC.
Reel/Frame 061520/0614 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2019
From: ENDLER, DAVID
To: SPYCLOUD, INC.
Reel/Frame 050882/0214 →
Continuity (2)
Provisional Application 62753793 · Oct 31, 2018
Related Publication 20200137096A1 · Apr 30, 2020
Cited By (4)
US 12,267,340 US 12,437,079 US 12,537,852 US 12,602,460