Service protecting privacy while monitoring password and username usage
A service monitors password and username use while maintaining username and password privacy by receiving a hash of a username, a hash of a password, and a host name and comparing the received hashes against a database of associated host names and hashes of usernames and passwords. When the comparison determines that the hash of the new password meets certain conditions, e.g., no hash in the database matches the hash of the new password, then the new password may be allowed and the service informs the security component accordingly.
1. A method comprising:
creating, by a security component, a first hash of a user name associated with a user account, a second hash of a password associated with the user name and a host name;
receiving, by a service, the first hash, the second hash, and the host name;
accessing, by the service, a database containing host names and associated username hashes and password hashes associated with the username hashes;
comparing, by the service, the second hash to password hashes of the database; and
notifying, by the service, the security component that the password is allowable for use by the user account for accessing the host:
when the comparison does not result in matching the second hash to a password hash in the database; or
when the comparison results in matching the second hash to at least one password hash in the database, and the first hash is compared, by the service, to all username hashes associated with the at least one matching password hash, and the first hash does not match any of the username hashes associated with the at least one matching password hash.
2. The method of claim 1 , wherein the comparing, by the service, the second hash to password hashes of the database, includes comparing the second hash only to a subset of password hashes, the subset of password hashes including only those password hashes that are associated with username hashes that are associated with the received host name.
3. The method of claim 2 , wherein:
containing host names and associated username hashes and password hashes associated with the username hashes, includes:
containing hostname hashes and associated username hashes and password hashes associated with the username hashes, the method further comprising:
creating, by the security component, a third hash of the host name, wherein:
the comparing the second hash only to a subset of password hashes includes comparing the second hash only to a subset of password hashes, the subset of password hashes including only password hashes that are associated with username hashes that are associated with the third hash.
4. The method of claim 1 , further comprising:
storing, by the service on the database, the first hash associated with the second hash when the password is determined to be allowable.
5. The method of claim 1 , wherein the security component is a security component on a network-enabled client device and the service is a security service operating on a network-enabled server.
6. A method comprising:
creating, by a security component, a first hash of a user name associated with a user account, a second hash of a password associated with the user name and a host name;
receiving, by a service, the first hash, the second hash, and the host name;
accessing, by the service, a database containing host names and associated username hashes and password hashes associated with the username hashes;
comparing, by the service, the second hash to password hashes of the database; and
notifying, by the service, the security component that the password is allowable for use by the user account for accessing the host:
when the comparison does not result in matching the second hash to a password hash in the database; or
when the comparison results in matching the second hash to at least one password hash in the database, and the at least one matching password hashes are associated with less than a first limit of associated username hashes.
7. The method of claim 6 , wherein the comparing, by the service, the second hash to password hashes of the database, includes comparing the second hash only to a subset of password hashes, the subset of password hashes including only those password hashes that are associated with username hashes that are associated with the received host name.
8. The method of claim 7 , wherein:
a database containing host names and associated username hashes and password hashes associated with the username hashes, includes:
a database containing hostname hashes and associated username hashes and password hashes associated with the username hashes, the method further comprising:
creating, by the security component, a third hash of the host name, wherein:
the comparing the second hash only to a subset of password hashes includes comparing the second hash only to a subset of password hashes, the subset of password hashes including only password hashes that are associated with username hashes that are associated with the third hash.
9. A method comprising:
creating, by a security component, a first hash of a user name associated with a user account, a second hash of a password associated with the user name and a host name;
receiving, by a service, the first hash, the second hash, and the host name;
accessing, by the service, a database containing host names and associated username hashes and password hashes associated with the username hashes;
comparing, by the service, the second hash to password hashes of the database; and
notifying, by the service, the security component that the password is allowable for use by the user account for accessing the host:
when the comparison does not result in matching the second hash to a password hash in the database; or
when the comparison results in matching the second hash to at least one password hash in the database, and the at least one matching password hashes are associated with the first hash less than a second limit of matches.
10. The method of claim 9 , wherein the comparing, by the service, the second hash to password hashes of the database, includes comparing the second hash only to a subset of password hashes, the subset of password hashes including only those password hashes that are associated with username hashes that are associated with the received host name.
11. The method of claim 10 , wherein:
a database containing host names and associated username hashes and password hashes associated with the username hashes, includes:
a database containing hostname hashes and associated username hashes and password hashes associated with the username hashes, the method further comprising:
creating, by the security component, a third hash of the host name, wherein:
the comparing the second hash only to a subset of password hashes includes comparing the second hash only to a subset of password hashes, the subset of password hashes including only password hashes that are associated with username hashes that are associated with the third hash.
12. A system comprising at least one processor and memory storing instructions configured to cause at least one processor to perform actions including:
receiving, from a client device, a first hash of a user name associated with a user account, a second hash of a password associated with the user name and a host name;
accessing a database containing host names and associated username hashes and password hashes associated with the username hashes;
comparing the second hash to password hashes of the database; and
notifying the client device that the password is allowable for use by the user account for accessing the host:
when the comparison does not result in matching the second hash to a password hash in the database; or
when the comparison results in matching the second hash to at least one password hash in the database, and the first hash is compared to all username hashes associated with the at least one matching password hash, and the first hash does not match any of the username hashes associated with the at least one matching password hash.
13. The system of claim 12 , wherein the comparing the second hash to password hashes of the database, includes comparing the second hash only to a subset of password hashes, the subset of password hashes including only those password hashes that are associated with username hashes that are associated with the received host name.
14. The system of claim 13 , wherein:
a database containing host names and associated username hashes and password hashes associated with the username hashes, includes:
a database containing hostname hashes and associated username hashes and password hashes associated with the username hashes, the instructions further configured to cause the at least one processor to perform actions including:
receiving a third hash of the host name from the client device, wherein:
the comparing the second hash only to a subset of password hashes includes comparing the second hash only to a subset of password hashes, the subset of password hashes including only password hashes that are associated with username hashes that are associated with the third hash.
15. The system of claim 12 , the instructions further configured to cause the at least one processor to perform actions including:
storing, on the database, the first hash associated with the second hash when the password is determined to be allowable.
16. The method of claim 12 , wherein the at least one processor and memory are part of a network-enabled server.
17. A non-transitory storage medium storing computer-readable instructions, which when executed, cause a security component executing on at least one processor to perform actions including:
receiving, from a client device, a first hash of a user name associated with a user account, a second hash of a password associated with the user name and a host name;
accessing a database containing host names and associated username hashes and password hashes associated with the username hashes;
comparing the second hash to password hashes of the database; and
notifying the client device that the password is allowable for use by the user account for accessing the host:
when the comparison does not result in matching the second hash to a password hash in the database; or
when the comparison results in matching the second hash to at least one password hash in the database, and the first hash is compared to all username hashes associated with the at least one matching password hash, and the first hash does not match any of the username hashes associated with the at least one matching password hash.
18. The non-transitory storage medium of claim 17 , wherein the comparing the second hash to password hashes of the database, includes comparing the second hash only to a subset of password hashes, the subset of password hashes including only those password hashes that are associated with username hashes that are associated with the received host name.
19. The non-transitory storage medium of claim 18 , wherein:
a database containing host names and associated username hashes and password hashes associated with the username hashes, includes:
a database containing hostname hashes and associated username hashes and password hashes associated with the username hashes, the instructions further configured to cause the at least one processor to perform actions including:
receiving a third hash of the host name from the client device, wherein:
the comparing the second hash only to a subset of password hashes includes comparing the second hash only to a subset of password hashes, the subset of password hashes including only password hashes that are associated with username hashes that are associated with the third hash.
20. The non-transitory storage medium of claim 17 , the instructions further configured to cause the at least one processor to perform actions including:
storing, on the database, the first hash associated with the second hash when the password is determined to be allowable.