Patent Publication Number: US-2022222332-A1

Title: Systems and methods for providing secure passwords

Description:
FIELD 
     Examples of the present disclosure relate generally to systems and methods for identifying password insecurities; and more particularly, to systems and methods for identifying the use of common cultural terms in passwords and intervening to decrease the vulnerability of such passwords. 
     BACKGROUND 
     Consumer data is one of the most valuable commodities in today&#39;s digital economy. As a result, the number of entities that store sensitive information, such as names, addresses, social security numbers, banking information, and the like, has also grown. As custodians of this sensitive information, it is important for these entities to protect the information from fraudulent access. Despite many efforts, however, data breaches remain a major concern. 
     A common feature of large-scale data breaches is the widespread use of common passwords. The simple password “qwerty,” for example, has been found millions of times across data breaches. And qwerty is far from the only culprit of the widespread reuse of the same or similar passwords. Humans prefer readable strings of characters that make the password easy to remember. It is common, therefore, for numerous users in a single database to adopt terms from popular culture, or cultural terms, as their password. A common password, for example, may include TaylorSwift, t@ylor$wift, or any variation thereof. 
     An issue with passwords containing cultural terms is that the passwords are easier for bad actors to guess. If a hacker attempts to break into a database with a brute-force attack, for example, the hacker does not need to know anything personal about the account holder who uses a cultural term. The hacker only needs access to common phrases known by anyone, modify them as necessary, and continue attacking until access is granted. 
     Current systems for password security do not acknowledge this potential for insecurity. Systems do not actively check to make sure that a password term is common knowledge or easily attainable. At best, current systems merely inform the account holder, when the password is being created, that the password is too short, contains too few special characters (e.g., !, @, #, $, %, etc.), is similar to a previous password, etc. In addition, current systems do not adapt to change password insecurities. A term that is not popular today, for example, may become popular next week. 
     What is needed, therefore, is a system and method that identifies these types of insecurities by monitoring terms that are common in culture. The system and method may also provide a remedy for such insecurities by denying an insecure password, for example, and/or suggesting more secure passwords. 
     BRIEF SUMMARY OF THE INVENTION 
     Examples of the present disclosure relate generally to systems and methods for identifying password insecurities and, more particularly, to systems and methods for identifying the use of common cultural terms in passwords and intervening to decrease the vulnerability of such passwords. The systems and methods can include searching a plurality of websites to identify a plurality of cultural terms. The cultural terms can include names of celebrities, politicians, movies, etc. The searching of the cultural terms can be performed by a backend system, which can then store the plurality of cultural terms in a database for later retrieval. 
     An identification system can then receive a password from a user device or third-party for verification. The identification system can compare the password to a plurality of cultural terms saved in the database. The comparison can be based on a similarity score calculated to approve or deny the password base on how similar the password is to each of the cultural terms. If the password is exactly the same as a cultural term, for example, the password can be denied. The similarity score can also provide some room for the user to adopt a password that includes a cultural term. The password may be approved, if the password has a certain number of different or additional characters than the cultural term. If the number of similar characters is below a predetermined threshold, on the other hand, the password can be denied. 
     If the password is denied based on the similarity score, the identification system can transmit a first notification to a recommendation system indicating that the password has been denied. The recommendation system can then generate a suggested password. The suggested password can be a random string of characters, similar to a CAPTCHA. In some examples, the suggested password can be a random human-readable password, which can look like common phrases so that the password is easy to remember. The suggested password can also be generated by combining cultural terms from the database in an uncommon way. In any example, the suggested password can also be compared to cultural terms to make sure the suggested password does not run afoul of security requirements. 
     The cultural terms and/or passwords can be received and stored in a variety of formats. In some examples, a password can be received in a plaintext format and then compared to plaintext cultural terms. In other examples, the cultural terms and/or passwords can be encrypted with the same encryption key or hashed with the same hash function. In these cases, the hashed or encrypted terms can be compared to determine the similarity scores. 
     These and other aspects of the present disclosure are described in the Detailed Description below and the accompanying figures. Other aspects and features of examples of the present disclosure will become apparent to those of ordinary skill in the art upon reviewing the following description of specific, exemplary examples of the present invention in concert with the figures. While features of the present disclosure can be discussed relative to certain examples and figures, all examples of the present disclosure can include one or more of the features discussed herein. Further, while one or more examples can be discussed as having certain advantageous features, one or more of such features can also be used with the various examples of the invention discussed herein. In similar fashion, while exemplary examples can be discussed below as device, system, or method examples, it is to be understood that such exemplary examples can be implemented in various devices, systems, and methods of the present invention. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate multiple examples of the presently disclosed subject matter and serve to explain the principles of the presently disclosed subject matter. The drawings are not intended to limit the scope of the presently disclosed subject matter in any manner In the drawings: 
         FIG. 1  is a diagram of an example of a system that can be used to implement one or more examples of the present disclosure; 
         FIG. 2  is a timing diagram of an example of a method for identifying and remedying password insecurity, according to some examples of the present disclosure; 
         FIG. 3  is a flowchart depicting an example of a method for comparing passwords to cultural terms based on a similarity score, according to some examples of the present disclosure; 
         FIG. 4  is a flowchart depicting an example of a method for generating a suggested password, according to some examples of the present disclosure; 
         FIGS. 5 and 6  are flowcharts of examples of methods for identifying and remedying password insecurity, according to some examples of the present disclosure; 
         FIG. 7  is a flowchart of an example of a process for identifying password insecurity, according to some examples of the present disclosure; 
         FIG. 8  is a component diagram of an example of an identification system, according to some examples of the present disclosure; and 
         FIG. 9  is a component diagram of an example of a user device, according to some examples of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     Examples of the present disclosure include systems and methods for identifying cultural terms in passwords and determining if the password is a potential insecurity. Throughout this disclosure, it can be understood that a “cultural term” is a common word or phrase that is known to the general public. This can include, for example, names of celebrities, politicians, athletes, and the like. A cultural term can also include common phrases that are not associated with a particular person, such as titles of television shows, titles of movies, prevalent political phrases (e.g., “electoral college”), catch phrases, and the like. The term can also include prevalent businesses or entities (e.g., Tesla®), among other things. 
     The system can include one or more components, which may or may not be a part of a single system or computing environment, that can identify cultural terms, compare passwords with the cultural terms, and approve or deny the password based on the comparison. When the system “denies” a password because it is too similar to a cultural term, it does not necessarily mean the user cannot use the password. The system may warn the user that the password is insecure by sending a notification to a user device. In other examples, denying the password can mean that the password is blocked and cannot be used. In some examples, the system can also generate a more secure password and suggest it to the user. 
     In some examples, the system can store the cultural terms in a database for later retrieval by an identification system. The passwords can be stored in a database in, for example, plaintext, encrypted, hashed, or similar formats. The systems described herein can be used to compare passwords to cultural terms regardless of how the cultural terms and passwords are saved, for example, by applying the same encryption keys or hash functions to both the passwords and the cultural terms. In other words, the hashed version of the password can be compared to hashed versions of cultural terms to identify similarities. 
     The systems described herein also provide certain thresholds that enable a user to have a cultural-password, provided that the password is sufficiently different. Using the “Taylor Swift” example from above, the system can determine if the password is too similar to the celebrity&#39;s name by calculating a similarity score between the password and the name. If enough characters are changed and/or added to the name, for example, the password may not be compromised despite being somewhat similar to the name. The similarity score is described in greater detail below. 
     Reference will now be made in detail to exemplary examples of the disclosed technology, examples of which are illustrated in the accompanying drawings and disclosed herein. Wherever convenient, the same references numbers will be used throughout the drawings to refer to the same or like parts. 
       FIG. 1  is a diagram of an example system  100  that can be used to implement one or more examples of the present disclosure. A more detailed explanation of some of the components of the system  100  are described below with reference to  FIGS. 8 and 9 . It is beneficial, however, to provide a brief overview to describe the components of the systems and methods for identifying password insecurities described herein. 
     The system  100  can include an authentication system  102 , which can be associated with a company or entity that enables users to log in to an account. The authentication system  102 , for example, can be an online retailer, banking institution, social media site, or any other service that provides access using passwords. As discussed below, the authentication system  102  can also be a standalone service that can be used by external systems, such as, for example, an external authentication system  140 , to assess password security. 
     The authentication system  102  can include a backend system  110  that includes a database  116  for storing cultural terms and/or passwords. The backend system  110  can also include one or more processors  112  that enables the backend system  110  to crawl websites, and review other data, to identify cultural terms to be stored in the database  116 . 
     The authentication system  102  can include an identification system  118  that also includes one or more processors  120 . The one or more processors  120  can receive a password, access the database  116  of the backend system  110 , and compare the password with the cultural terms stored in the database  116 . In some examples, the authentication system  102  can transmit a notification to a recommendation system  126  indicating that a password is denied because it is too similar to a cultural term (e.g., by using a similarity score). The recommendation system  126  can also include one or more processors  128  that can be used to generate a suggested password that is more secure than the denied password. 
     The backend system  110 , identification system  118 , and recommendation system  126  can communicate with each other via a wired or wireless local network  134 . In some examples, the backend system  110 , identification system  118 , and/or recommendation system  126  can all be associated with the same entity (e.g., a single bank or internet service provider). In other examples, any, or all, of the components can be associated with different entities. 
     The authentication system  102  can communicate with a user device  136  via a wired or wireless network, for example network  138 . In this example, the authentication system  102  can receive a password directly from a user logging into an account associated with the authentication system  102 . The authentication system  102  can be associated with an online retailer, for example, enabling the retailer to evaluate the password strength of its account holders. In other examples, the authentication system  102  can communicate with an external authentication system  140  via the wired or wireless network  138 . In this example, the authentication system  102  can act as a security clearinghouse for third parties to ensure the third party has secure passwords across all of their user accounts. 
       FIG. 2  is a timing diagram of a method  200  for identifying and remedying password insecurity, according to some examples of the present disclosure. At  205 , the backend system  110  of the authentication system  102  can search a plurality of websites to identify cultural terms. The backend system  110  can search websites using a web crawler, for example, or store a predetermined list of Uniform Resource Locators (URLs) to search. In other examples, the backend system  110  can compile a list of popular URLs by simply performing web searches. So, for example, the web crawler can identify that a subset of websites, including websites A and B, include terms that are popular across numerous websites (e.g., urbandictionary.com) and thus, may comprise a reliable source of cultural terms. The backend system  110  can then save the URLs for websites A and B to a list for future searching. 
     The backend system  110  can also crawl websites associated with specific subject matter to identify specific cultural terms. The backend system  110  can crawl music sites, for example, to identify musicians, musical acts, song titles, lyrics, etc. that qualify as cultural terms. Similarly, the backend system  110  can crawl news sites (e.g., to identify politicians, current events, or political terms), movie and television sites (e.g., to identify actors and popular movies), and/or sports sites (e.g., to identify popular athletes or sports teams). 
     After crawling the websites, the backend system  110  can determine if one or more terms in the search should be qualified as a cultural term. This can be completed, for example, by determining if the term or a variation of the term was found a predetermined number of times and/or consistently over a certain period of time. If the backend system  110  searches the plurality of websites and identifies the term “Beatles” and/or “The Beatles” more than a certain number of times, that term can be saved as a cultural term. 
     The threshold can be any suitable number that enables cultural terms to be identified without being unmanageable. If running a search on a particular cultural term with a threshold of 1,000 hits, for example, comes back with an excessive or unmanageable number of results, the threshold may be too low. This may cause the search to return less popular cultural terms and overly limit the number of possible passwords. In this case, the threshold can be reset to a higher number (e.g., 10,000, 100,000, 1,000,000, or more) to produce a more manageable list. The backend system  110  can also identify cultural terms based on the prevalence of the term over a period of time. If the backend system  110  searches the plurality of websites and identifies the terms “Beatles” and/or “The Beatles,” a relatively low number of times (e.g., 1,000 times), for example, the backend system  110  can then determine how long the term has appeared (e.g., using search histories). If the backend system  110  determines that the term has been popular for a sufficient amount of time, the term can be identified a cultural term. Similarly, if the backend system  110  runs the search again later and the number of hits either increases or stays constant, for example, the term can also be identified a cultural term. 
     At  210 , the backend system  110  can save the identified cultural terms in a database (e.g., database  116 ). The cultural terms can be saved in any number of formats including, but not limited to, plaintext, encrypted, or hashed formats. In some examples, the cultural terms can be saved in the same format as the passwords on the system  100 . 
     At  215 , an identification system  118  can receive a password. The password can be received from a variety of devices, including a user device  136  or an external authentication system  140 . If the password is received from the user device  136 , for example, the user device  136  can be associated with the authentication system  102  associated with a website that stores user accounts and passwords. In other examples, the password can be received from the external authentication system  140  using the authentication system  102  as an “outside service” to check the security of passwords. The password can also be received from the backend system  110  (e.g., from the database  116  of the backend system  110 ). The stored passwords can be periodically checked with the authentication system  102 , for example, for continued security. This can help to identify passwords that become cultural terms as more cultural terms are added to the database  116 . 
     At  220 , the identification system  118  can access the database of the backend system  110  to retrieve the cultural terms and to receive passwords. This can enable the authentication system  102  to actively monitor the security of stored passwords on the back end, as opposed to waiting to receive a password on the front end (e.g., from the user device  136  or external authentication system  140 ). 
     At  225 , the identification system  118  can compare the password with the cultural terms saved at the backend system  110 . The cultural terms and/or passwords can be stored in the database of the backend system  110  in, for example, plaintext, encrypted, hashed, or similar formats. If the cultural terms are saved in plaintext format, no other function is required to decrypt or translate the terms. 
     The database of the backend system  110  can also include security measures that protect the cultural terms and/or passwords saved in the database  116 . In this case, the system may need to complete additional steps to compare the password with the cultural terms. The passwords and/or cultural terms stored in the database can be encrypted, for example. Encryption enables a system to receive a plaintext term, encrypt the term with an encryption key, and then store the encrypted version of the term. The backend system  110  can encrypt the cultural terms using a first encryption key. At  225 , the identification system  118  can compare the password with the encrypted cultural terms by either (1) decrypting the encrypted cultural terms using the first encryption key and comparing the plaintext cultural terms with the plaintext password or (2) encrypting the password with the first encryption key and comparing the encrypted password with the encrypted cultural terms. 
     Another example of securing the passwords and/or cultural terms includes hashing the terms with a hash function. This includes taking an input, like a plaintext term, and applying a hash function to the input to create a “hashed” term. Hashed terms using the same hash function can have the same number of characters. Unlike encryption, hashing a term only operates in one direction; a system cannot take the hashed term and turn it back into the plaintext version (i.e., there is no “decryption”). This characteristic makes hash functions a desirable method for securing passwords. In the case of a backend system  110  that stores hashed cultural terms and/or hashed passwords, at  225  the identification system  118  can compare the received password with the hashed cultural terms by (1) hashing the password with the same hash function used on the cultural term and (2) comparing the hashed password with the hashed cultural term. 
     The ability to compare cultural terms and passwords that are not in plaintext format is a significant improvement to the technical field of password security systems. Comparing passwords or cultural terms that are saved as plaintext may be straight forward, but comparing terms that are altered in some way requires a degree of processing that can be achieved by the algorithms and methods described in the present disclosure. 
     The identification system  118  can compare the similarity of the password and the stored cultural terms by determining if the received password is exactly the same as the cultural term. In this example, the identification system  118  can access the database  116  to determine if the password “BobMarley,” for example, is found verbatim as a saved cultural term. The identification system  118  can also apply a more conservative approach. The system can enable a user to adopt a cultural-password provided that a quantity of matching characters between the password and the cultural term is below a certain threshold. Alternatively, the system can enable a user to adopt a cultural-password provided that a quantity of different characters is above a certain threshold. This can be completed by calculating the similarity scores described with reference to  FIG. 3 . 
     After comparing the password with the cultural terms at  225 , the identification system  118  can either approve or deny the password. At  230 , the identification system  118  approves the password. Approving the password can enable the user to adopt or continue using that password. Denying the password can prohibit the user from using the password, for example by deactivating the password or requesting the user to provide a different password. In other examples, a recommendation system  126  can generate a suggested password. 
     At  235 , the received password is denied, and the identification system  118  transmits a notification to the recommendation system  126  indicating that the password has been denied. The systems described herein can periodically monitor passwords saved at the backend system  110 . In these cases, the identification system  118  can deactivate the denied password when the notification is transmitted. 
     At  240 , the recommendation system  126  can generate a suggested password. The suggested password can be a random human-readable password. A human-readable password can be a term or phrase that includes one or more common words. Humans prefer readable strings of characters that make the password easy to remember. These readable strings can include common words such as “vacation,” “alphabet,” and/or any other common word or combination of common words. The human-readable password can also be a variation of the common word that includes numbers and/or special characters in the place of a letter (e.g., “@lphab3t” instead of “alphabet”). To create the random human-readable password, the recommendation system  126  can include one or more processors (e.g., processor  128 ) that generates the passwords from a list of common terms stored in a database  132  associated with the recommendation system  126 . 
     At  245 , the recommendation system  126  can access the backend system  110  to retrieve the cultural terms. At  250 , the recommendation system  126  can then compare the suggested password to the cultural terms. These steps can be similar to  220  and  225  where the identification system  118  compared the password with the cultural terms. By comparing the suggested password against the cultural terms, the system  100  can ensure that what was an ordinary, common human-readable term does not grow in popularity over time to become a cultural term. The password terms “president” or “pre$id3nt,” for example, can be common terms for three years but can be identified as a cultural term during an election year. As discussed below with reference to  FIG. 4 , the recommendation system  126  can also access the backend system  110  to retrieve two cultural terms and combine them to create the suggested password. 
     At  255 , the recommendation system  126  can transmit the suggested password to the user device  136  and/or the external authentication system  140 . The user can adopt the suggested password or attempt a new password, and the new password can be sent back through the system to ensure the new password is approved by the system  100 . 
       FIG. 3  is a flowchart depicting an example method  300  of comparing passwords to cultural terms based on a similarity score, according to some examples of the present disclosure. Method  300  can be performed in whole or in part by the components of the identification system  118  or the recommendation system  126 . Method  300  can include similar steps to those described above with reference to  225  and  250  in  FIG. 2 . 
     Method  300  can begin at block  305 , which includes receiving a password. The password can be received from a user device (e.g., user device  136 ), from an external system (e.g., external authentication system  140 ), and/or from a backend system (e.g., backend system  110 ). The user device or the external system may be considered a frontend, and a user can be entering the password to access a site or can be entering the password to create a new password at this step. A password received from the external authentication system  140  can be referred to as an “external password.” If the password is received from the backend system, the system may be accessing previously-created passwords to assess whether the passwords remain secure. 
     At block  310 , method  300  includes accessing a backend system database (e.g., database  116 ) to identify the cultural terms. At block  315 , method  300  includes comparing the password with a first cultural term in the database. The password, of course, can be compared to any number of cultural terms stored in the database. 
     In some examples, instead of comparing the password to the cultural term verbatim, the password and/or cultural terms can be modified to determine if the password is a variation of the cultural term. The password may be “T@ylor$wift1234,” for example, and the system can determine if that password is a variation or modification of a cultural term in the database. At block  320 , method  300  can include replacing at least a portion of the first cultural term with a different letter, number, or symbol. A symbol can include special characters like !, @, #, $, %, etc. The term “T@ylor$wift1234” includes a modification to the “a” in Taylor by replacing the letter with the symbol “@.” The system can modify at least a portion of “TaylorSwift” and then method  300  can proceed to block  315 , where the password can be compared to the modified cultural term. In some examples, the password can be modified according to this process and then be compared to the cultural terms. If the password is “T@ylor$wift,” for example, the system can modify the password by replacing the “@” or the “$” and then compare the modified password to cultural terms in the database. 
     The cultural term can be modified by adding characters (e.g., letters, numbers, or symbols) to the cultural term, as shown at block  325 . The term “T@ylor$wift1234” includes the modification of adding the characters “1234” to the term “T@ylor$wift.” The system can add the additional characters to the cultural term and then method  300  can proceed to block  315 , where the password can be compared to the modified cultural term. Again, the password can instead be modified according to this process and then can be compared to the cultural terms. 
     The identification system  118  and/or recommendation system  126  can complete the modifications of the cultural term and/or password. In some systems, the backend system  110  can modify the cultural terms before the identification system  118  and/or recommendation system  126  accesses the database, thereby relieving the identification system  118  and/or recommendation system  126  of some of the processing requirements. The present systems can also compare encrypted or hashed terms by applying the same encryption key or hash function to both the password and cultural terms. 
     The similarity score described in  FIG. 3  can have various levels of strictness. In one example, and as shown at block  330 , method  300  can include determining whether the password is an exact match with the cultural term, i.e., the system approves passwords if they are not found verbatim in the database. If the term is stored in the database, method  300  includes denying the password at block  335 ; if the term is not stored in the database, method  300  includes approving the password at block  340 . 
     In some examples, instead of basing the approval/denial of the password solely on whether there is an exact match to a cultural term, the system can instead provide a threshold of similar or different characters that are permitted by the system. The system can approve a password if a quantity of matching characters is less than a predetermined quantity and, conversely, deny the password if the quantity of matching characters is greater than the predetermined quantity. Accordingly, at block  345 , method  300  can include determining if a number of matching characters between the password and the cultural term is within those thresholds. The password can include “T@ylor$wift1234,” for example, and the cultural term stored at the backend system  110  can include the term “Taylor Swift.” Between these two terms, the characters “T,” “ylor,” and “wift” are similar, matching characters, for a total of nine matching characters. If the system has a maximum quantity of eight matching characters, the system can deny the password at block  335 . Alternatively, if the system has a maximum quantity of nine or more matching characters, the system can approve the password at block  340 . This system enables a user to adopt common terms that may be easy for them to remember, provided that the password is sufficiently different than the common terms. 
     The threshold at block  345  can also be described in terms of differences between the password and the first cultural term. The system can instead approve the password if a predetermined number of differences between the two terms is greater than a minimum quantity of differences; the system can deny the password if a number of differences between the two terms is less than the minimum. To illustrate using the example above, the password can include “T@ylor$wift1234,” and the cultural term stored at the backend system  110  can include the term “Taylor Swift.” The differences between the two terms include: (1) the change of the “a” to “@,” (2) the deletion of the space between the first and last name, (3) the change of the “S” to “$”, and (4) the addition of four numbers, for a total of seven differences between the cultural term and the password. If the system requires a minimum of eight differences, for example, the system can deny the password at block  335 . Alternatively, if the system requires a minimum of seven or fewer differences, the system can approve the password at block  340 . 
     The predetermined maximum similarities and/or minimum differences can be altered if the system is encrypting or hashing the terms. The term “president,” for example, includes nine characters, but the encrypted or hashed version of the term may have more or less characters. The system can adjust the predetermined minimum- or maximum-thresholds based on the characteristics of the encryption key or the hashing function. Again, this is a significant improvement to the technical field of password security systems. Such an adjustment would not be possible without a computing system that can encrypt or hash the terms. 
       FIG. 4  is a flowchart depicting an example method  400  of generating a suggested password, according to some examples of the present disclosure. Method  400  can be performed in whole or in part by the components of the recommendation system  126  described herein. Method  400  can begin at block  405 , which includes receiving a notification from the identification system  118  indicating a password has been denied. This step can be similar to  235  in  FIG. 2 . 
     At block  410 , method  400  can include generating a suggested password. The recommendation system  126  can generate the suggested password by combining random letters, numbers, or special characters. The random string of characters can be entirely random and not resemble a word, similar to the random characters in a CAPTCHA. Humans prefer easy-to-remember passwords, which oftentimes means that users prefer human-readable phrases that resemble words (e.g., the “@lphab3t” example described above). The recommendation system  126  can, therefore, generate the suggested password to include a human-readable string of characters, as described above in reference to  240  in  FIG. 2 . 
     If the suggested password includes a human-readable string of characters, the term could run afoul of terms saved as cultural terms. Accordingly, at block  415 , method  400  can include comparing the suggested password with a first cultural term based on a similarity score. Block  415  can be similar to method  300  described with reference to  FIG. 3 . 
     At block  420 , method  400  can include determining, based on the similarity score, if the suggested password should be approved. If the suggested password is approved, method  400  can include transmitting the suggested password to a user device (e.g., user device  136 ) and/or an external system (e.g., external authentication system  140 ). If the recommendation system  126  determines, based on the similarity score, that the suggested password should be denied, the recommendation system  126  can generate a second suggested password at block  410 . At block  425 , method  400  can include transmitting the suggested password to a user device. 
     The suggested password can be created by using the cultural terms stored at the backend system  110 . Passwords that combine two common terms in an uncommon or nonsensical way can be very secure passwords. The passwords “PabloPicasso” or “MartinScorsese” may be easy to break because a hacker only needs to input common phrases (e.g., celebrity names) into their password attack. The password “PabloScorsese,” however, may be more secure because this is not a common phrase nor is it easily guessed. To this end, at block  430 , method  400  can include accessing the backend system database and retrieving at least two cultural terms. At block  435 , method  400  can include combining the at least two cultural terms to create the suggested password. Method  400  can then proceed to block  415 , where the suggested password is compared to cultural terms based on the similarity score. At block  425 , method  400  can include transmitting the suggested password to a user device. The recommendation system  126  can also encrypt or hash the suggested password with the same key or hash function described above to create a hashed suggested password. 
       FIG. 5  is a flowchart of an example method  500  for identifying and remedying password insecurity, according to some examples of the present disclosure. Method  500  can be performed, for example, by the example authentication system  102  described in  FIG. 1 . Method  500  can begin at block  505 , which includes searching a plurality of websites to identify a plurality of cultural terms. At block  510 , method  500  can include storing, for example in a database  116  of a backend system  110 , the plurality of cultural terms. The terms can be stored in, for example, plaintext, hashed, or encrypted formats. 
     At block  515 , method  500  can include receiving a password. The password can be received from a frontend, such as from a graphical user interface (GUI) of a user device asking the user to input the password. The frontend can also include the frontend of third party system, for example an external authentication system  140 . The third party system can communicate with the authentication system  102  via an application programming interface (API), for example API  148 . The API can enable certain data (e.g., cultural terms saved in the backend system, approval or denial notifications of the password, and/or suggested passwords generated by the recommendation system  126 ) to be transferred between the systems, while preventing other data (e.g., passwords or accounts associated with the authentication system  102 ) from transferring between the systems. The API can also be employed in the steps described at  215  of  FIG. 2  and at block  305  of  FIG. 3 . 
     At block  520 , method  500  can include comparing the password to a first cultural term based on a first similarity score. This comparing step can be similar to the comparing steps shown at  225  in  FIG. 2  and in method  300  of  FIG. 3 . 
     At block  525 , method  500  can include denying the password based on the first similarity score. This denial could be based, for example, on the identification system determining that the password is exactly the same as a cultural term, a quantity of matching characters between the password and a cultural term is greater than a predetermined quantity, a quantity of different characters between the password and a cultural term is less than a predetermined quantity, and/or the like. 
     At block  530 , method  500  can include transmitting a first notification to a recommendation system indicating that the password has been denied. At block  535 , method  500  can include generating, with the recommendation system, a suggested password. The suggested password can be generated according to the example method  400  described with reference to  FIG. 4 . 
     At block  540 , method  500  can include transmitting the suggested password to a user device or an external authentication system. Method  500  can end after block  540 . In other examples, additional steps can be performed according to the examples described herein. 
       FIG. 6  is a flowchart of an example process  600  for identifying and remedying password insecurity, according to some examples of the present disclosure. Process  600  can be performed, for example, by the authentication system  102  described in  FIG. 1 . Process  600  can begin at block  605 , which includes receiving a password. The password can be received from a user device, a backend system storing passwords, or an external authentication system. 
     At block  610 , process  600  includes searching a database comprising a plurality of cultural terms. The database can be associated with the authentication system or it can be associated with a separate entity. A third-party entity can, for example, provide backend services that include searching for and storing cultural terms. The third-party entity can then enable external systems, such as the authentication system  102 , to have access to the cultural terms. 
     At block  615 , process  600  includes comparing the password to the plurality of cultural terms based on a similarity score between the password and the plurality of cultural terms. The similarity score can be calculated based on the example method  300  described with reference to  FIG. 3 . In some examples, the password can be hashed or encrypted prior to comparing the password with the cultural terms. After comparing the password to the plurality of cultural terms, the system can approve or deny the password. 
     At block  620 , process  600  includes approving the password based on the similarity score. The identification system can determine that the password is not exactly the same as a cultural term from the plurality of cultural terms, that a quantity of matching characters between the password and a cultural term is less than a predetermined quantity, that a quantity of different characters between the password and a cultural term is greater than a predetermined quantity, and/or the like. Process  600  can end after block  620 , and the user can proceed with the password. 
     Alternatively, at block  625 , process  600  includes denying the password based on the similarity score. The identification system can determine that the password is exactly the same as a cultural term from the plurality of cultural terms, that a quantity of matching characters between the password and a cultural term is greater than a predetermined quantity, that a quantity of different characters between the password and a cultural term is less than a predetermined quantity, and/or the like. 
     At block  630 , process  600  includes generating a suggested password. The suggested password can be generated by the example method  400  described with reference to  FIG. 4 . Process  600  can end after block  630 . In other examples, additional steps can be performed according to the examples described herein. 
       FIG. 7  is a flowchart of an example process  700  for identifying password insecurity, according to some examples of the present disclosure. Process  700  can be performed by the authentication system  102  described in  FIG. 1 . Process  700  can begin at block  705 , which includes searching a plurality of websites to identify a first cultural term. The websites can be searched according to the example steps described with reference to  205  in  FIG. 2 . A backend system, for example backend system  110 , can use a web crawler to search a variety of websites to identify cultural terms. 
     At block  710 , process  700  includes storing the first cultural term in a database. At block  715 , process  700  can include hashing the first cultural term with a first hash function to create a first hashed cultural term. The first hash function can be applied to any quantity of cultural terms. 
     At block  720 , process  700  includes receiving a password. At block  725 , process  700  includes hashing the password with the first hash function to create a hashed password. At this point, both the password and the first cultural term have been hashed with the same hash function. 
     At block  730 , process  700  includes comparing the hashed password to the first hashed cultural term. At block  735 , process  700  includes approving or denying the password based on a similarity score. The similarity score can be calculated by using example method  300  in  FIG. 3 . An identification system can determine that the hashed password is exactly the same as the first hashed cultural term, that a quantity of matching characters between the hashed password and the first hashed cultural term is greater than a predetermined quantity, that a quantity of different characters between the hashed password and the first hashed cultural term is less than a predetermined quantity, and/or the like. In some examples, instead of using a hash function, process  700  can include encrypting the terms with an encryption key. Process  700  can end after block  735 . In other examples, additional steps can be performed according to the examples described herein. 
     Referring again to the system  100  described in  FIG. 1 , the backend system  110  can include one or more processors  112 , a memory  114 , and data storage, for example in database  116 . The identification system  118  can include one or more processors  120 , a memory  122 , and data storage, for example in database  124 . The recommendation system  126  can include or more processors  128 , a memory  130 , and data storage, for example in database  132 . 
     The authentication system  102  can comprise the backend system  110 , the identification system  118 , and the recommendation system  126  as a single device. In other examples, the backend system  110 , the identification system  118 , and the recommendation system  126  can be separate devices communicating with each other via a local network  134 . The local network  134  can be of any suitable type, including individual connections via the internet such as wired or wireless networks. The wired networks can be an Ethernet network and the wireless networks can be cellular or WiFi™ networks, for example. In some examples, local network  134  can connect terminals, services, and mobile devices using direct connections such as radio-frequency identification (RFID), near-field communication (NFC), Bluetooth™, low-energy Bluetooth™ (BLE), WiFi™, ZigBee™, ambient backscatter communications (ABC) protocols, USB, WAN, or LAN. Because the information transmitted can be personal or confidential (e.g., it can include passwords), the connections can also be encrypted or otherwise secured. 
     The authentication system  102  can communicate with external devices via a network  138 , which can be similar to local network  134 . The external devices that communicate with the authentication system  102  can include a user device  136  and/or an external authentication system  140 , as described herein. The external authentication system  140  can include one or more processors  142 , a memory  144 , and data storage, for example in database  146 . In some examples, and as described above, the authentication system  102  can communicate with the external authentication system  140  via an API  148 . The API can enable the external authentication system  140  to access the services provided by the authentication system  102  while also safeguarding sensitive information stored within the authentication system  102 . 
       FIG. 8  is a component diagram of an example identification system  118 , according to some examples of the present disclosure.  FIG. 8  provides additional detail to the components of the identification system  118  shown in  FIG. 1 . As described above, the identification system  118  can include a processor  120 . The processor  120  can include one or more of a microprocessor, microcontroller, digital signal processor, co-processor or the like or combinations thereof capable of executing stored instructions and operating upon stored data. The processor  112  of the backend system  110 , the processor  128  of the recommendation system  126 , and/or the processor  142  of the external authentication system  140  can be similar to processor  120 . 
     As described above, the identification system  118  can include a memory  122 . The memory  122  can include, in some implementations, one or more suitable types of memory (e.g., volatile or non-volatile memory, random access memory (RAM), read only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic disks, optical disks, floppy disks, hard disks, removable cartridges, flash memory, a redundant array of independent disks (RAID), and the like), for storing files including an operating system, application programs (including, for example, a web browser application, a widget or gadget engine, and or other applications, as necessary), executable instructions and data. The memory  114  of the backend system  110 , the memory  130  of the recommendation system  126 , and/or the memory  144  of the external authentication system  140  can be similar to memory  122 . 
     The memory  122  of the identification system  118  can contain an operating system (“OS”)  810  that can run one or more programs  815 . The one or more programs  815  can perform one or more functions of the disclosed examples. The one or more programs  815  can include, for example, an application for comparing the passwords to the cultural terms, for example by calculating the similarity scores described herein. The backend system  110 , recommendation system  126 , and/or external authentication system  140  can include an OS and/or one or more programs similar to those described for the identification system  118 . One or more programs of the recommendation system  126 , for example, can include an application for generating a suggested password, as described herein. 
     The memory  122  can also include any combination of one or more databases, including for example database  124 , controlled by memory controller devices (e.g., server(s), etc.) or software, such as document management systems, Microsoft® SQL databases, SharePoint® databases, Oracle® databases, Sybase® databases, or other relational databases. 
     The identification system  118  can include a communication interface  820  for communicating with external systems or internal (e.g., within the authentication system  102 ) systems. The communication interface  820  can include a serial port, a parallel port, a general-purpose input and output (GPIO) port, a game port, a universal serial bus (USB), a micro-USB port, a high definition multimedia (HDMI) port, a video port, an audio port, a Bluetooth™ port, a near-field communication (NFC) port, another like communication interface, or any combination thereof. The communication interface  820  can include a transceiver  825  to communication with compatible devices. A transceiver  825  can be compatible with one or more of: radio-frequency identification (RFID), near-field communication (NFC), Bluetooth™, low-energy Bluetooth™ (BLE), WiFi™, ZigBee™, ambient backscatter communications (ABC) protocols, or similar technologies that enables the identification system  118  to communicate via the local network  134  and/or the network  138  described herein. The backend system  110 , recommendation system  126 , and/or external authentication system  140  can include any or all of the components described for the identification system  118 . 
       FIG. 9  is a component diagram of an example user device  136  that can be used to enter a password for approval by the authentication system  102 , according to some examples of the present disclosure. The user device  136  can be a mobile computing device (e.g., a smart phone, tablet computer, smart wearable (e.g., a smart watch), portable laptop computer, voice command device, wearable augmented reality device, or other mobile computing device) or a stationary device (e.g., desktop computer). The user device  136  can include a processor  905  similar to the processor  120  described above for the identification system  118 . The user device  136  can also include a memory  910 , operating system  915 , one or more programs  920 , and/or data storage  925 , which can be similar to the memory  122 , OS  810 , one or more programs  815 , or database  124 , respectively, as described for the identification system  118 . The user device  136  can also include a communication interface  945  that includes a transceiver  950 , which can be similar to the communication interface  820  and transceiver  825  described above. 
     The operating system  915  can enable the user device  136  to operate the various applications described herein. A program  920 , for example, can include an application associated with the authentication system  102 . The authentication system  102  can be associated with an online retailer, banking institution, social media site, or any other digital service that has user accounts that are accessed by users entering a password. Accordingly, the program  920  can include an application enabling the user to log into or provide a password for the digital service. The operating system  915  can operate an account provider application that enables the user device  136  to display a GUI associated with the authentication system  102 . 
     The user device  136  can also include one or more input/output (“I/O”) devices  930  that can include one or more interfaces for receiving signals or input from devices and providing signals or output to one or more devices that allow data to be received and/or transmitted by the user device  136 . For example, the user device  136  can include interface components, which can provide interfaces to one or more input devices, such as one or more keyboards, mouse devices, touch screens, track pads, trackballs, scroll wheels, digital cameras, microphones, sensors, and the like, that enable the user device  136  to receive data from one or more users. 
     The user device  136  can also include a user interface (“U/I”) device  935  for receiving user input data, such as data representative of a click, a scroll, a tap, a press, or typing on an input device that can detect tactile inputs. According to some examples, U/I device  935  can include some or all of the components described with respect to I/O device  930  above. The U/I device  935  can be defined as the “input” of the user device  136 . The user device  136  can also include a geographic location sensor (“GLS”)  945  for determining the geographic location of the user device  136 . 
     The user device  136  can include a display  955 . The display  955  can provide visual representation of the various websites, applications, and/or GUIs described herein. The display  955  can also be a U/I device  935  in the case that the user device  136  has touchscreen capabilities. In other words, in some examples the display  955  can be the “input” of the user device  136 . 
     While the present disclosure has been described in connection with a plurality of exemplary aspects, as illustrated in the various figures and discussed above, it is understood that other similar aspects can be used, or modifications and additions can be made, to the described aspects for performing the same function of the present disclosure without deviating therefrom. For example, in various aspects of the disclosure, methods and compositions were described according to aspects of the presently disclosed subject matter. However, other equivalent methods or composition to these described aspects are also contemplated by the teachings herein. Therefore, the present disclosure should not be limited to any single aspect, but rather construed in breadth and scope in accordance with the appended claims. 
     The components described in this disclosure as making up various elements of the systems and methods are intended to be illustrative and not restrictive. Many suitable components that would perform the same or similar functions as the components described herein are intended to be embraced within the scope of the disclosure. Such other components not described herein can include, but are not limited to, for example, similar components that are developed after development of the presently disclosed subject matter. 
     Examples of the present disclosure can be implemented according to at least the following clauses: 
     Clause 1: A method for identifying and remedying password insecurity, the method comprising: searching, with a backend system, a plurality of websites to identify a plurality of cultural terms; storing, in a database of the backend system, the plurality of cultural terms; receiving, at an identification system, a password; comparing, with the identification system, the password to a first cultural term based on a first similarity score between the password and the first cultural term; denying, with the identification system, the password based on the first similarity score; transmitting, from the identification system, a first notification to a recommendation system indicating that the password has been denied; generating, with the recommendation system, a suggested password; and transmitting, from the recommendation system, the suggested password to a user device. 
     Clause 2: The method of clause 1, further comprising: deactivating, with the identification system, the password when the password has been denied. 
     Clause 3: The method of any of clauses 1-2, wherein generating the suggested password comprises: generating, with the recommendation system, a first random human-readable password; comparing, with the recommendation system, the first random human-readable password to the first cultural term based on a second similarity score between the password and the first random human-readable password; and either: approving, with the recommendation system, the first random human-readable password based on the second similarity score; or denying, with the recommendation system, the first random human-readable password based on the second similarity score; and generating, with the recommendation system, a second random human-readable password. 
     Clause 4: The method of any of clauses 1-3, wherein receiving a password comprises at least one of: receiving, at the identification system, the password from a user device logging into an account associated with the identification system; or receiving, with the identification system, the password from a plurality of passwords stored in the database. 
     Clause 5: The method of any of clauses 1-4, further comprising: hashing, by the backend system, the first cultural term with a first hash function to create a first hashed cultural term; and hashing, with the identification system, the password with the first hash function to create a hashed password; wherein comparing the password to the first cultural term comprises comparing the hashed password to the first hashed cultural term. 
     Clause 6: The method of any of clauses 1-5, wherein: the first similarity score is determined by calculating a quantity of matching characters between the password and the first cultural term; and the password is denied if the quantity of matching characters is greater than a predetermined quantity. 
     Clause 7: The method of clause 6, further comprising: replacing at least a portion of characters in the first cultural term with a different letter, number, or symbol to create a modified cultural term; or adding one or more characters to the first cultural term to create the modified cultural term; wherein calculating the quantity of matching characters between the password and the first cultural term comprises calculating a quantity of matching characters between the password and the modified cultural term. 
     Clause 8: A system for identifying and remedying password insecurity, the system comprising: one or more processors; and a memory in communication with the one or more processors and storing instructions that, when executed by the one or more processors, cause the system to: receive a password; search a database comprising a plurality of cultural terms; compare the password to the plurality of cultural terms based on a similarity score between the password and the plurality of cultural terms; and either: approve the password based on the similarity score; 
     or deny the password based on the similarity score; and generate a suggested password. 
     Clause 9: The system of clause 8, wherein: the instructions further cause the system to communicate with an external authentication system via an application programming interface; and the password is received from the external authentication system. 
     Clause 10: The system of any of clauses 8-9, wherein: the plurality of cultural terms is hashed with a first hash function; and the instructions further cause the system to hash the password with the first hash function and prior to comparing the password to the plurality of cultural terms. 
     Clause 11: The system of any of clauses 8-10, wherein: the similarity score is determined by calculating a quantity of matching characters between the password and plurality of cultural terms; and the password is denied if the quantity of matching characters is greater than a predetermined quantity. 
     Clause 12: The system of any of clauses 8-11, wherein generating the suggested password comprises combining at least a portion of a first cultural term with at least a portion of a second cultural term of the plurality of cultural terms. 
     Clause 13: A system for identifying password insecurity, the system comprising: one or more processors; and a memory in communication with the one or more processors and storing instructions that, when executed by the one or more processors, cause the system to: search a plurality of websites to identify a first cultural term; store the first cultural term in a database; hash the first cultural term with a first hash function to create a first hashed cultural term; receive a password; hash the password with the first hash function to create a hashed password; compare the hashed password to the first hashed cultural term; and approve or deny the password based on a similarity score. 
     Clause 14: The system of clause 13, wherein, when the password has been denied by the system, the instructions further cause the system to: generate a suggested password comprising a human-readable string of characters; and transmit the suggested password to a user device. 
     Clause 15: The system of clause 14, wherein the instructions further cause the system to: hash the suggested password with the first hash function to create a hashed suggested password; compare the hashed suggested password to the first hashed cultural term; and approve the suggested password based on the similarity score. 
     Clause 16: The system of any of clauses 14-15, wherein generating the suggested password comprises combining at least a portion of a second cultural term with at least a portion of a third cultural term from the database. 
     Clause 17: The system of any of clauses 13-16, wherein receiving the password comprises: receiving the password from a user device logging into an account associated with the system; or 
     receiving the password from a plurality of passwords stored in the database. 
     Clause 18: The system of any of clauses 13-17, wherein: the password is an external password, and to receive the password, the instructions further cause the system to: communicate with an external authentication system via an application programming interface; and receive, from the external authentication system, the external password. 
     Clause 19: The system of any of clauses 13-18, wherein: the similarity score is determined by calculating a quantity of matching characters between the password and the first cultural term; and the password is denied if the quantity of matching characters is greater than a predetermined quantity. 
     Clause 20: The system of clause 19, wherein the instructions further cause the system to: replace at least a portion of characters in the first cultural term with a different letter, number, or symbol to create a modified cultural term; or add one or more characters to the first cultural term to create the modified cultural term; wherein calculating the quantity of matching characters between the password and the first cultural term comprises calculating a quantity of matching characters between the password and the modified cultural term. 
     Exemplary Use Cases 
     The following exemplary use cases describe examples of a typical user flow pattern. They are intended solely for explanatory purposes and not limitation. 
     Account holder, Christie, wishes to enter a new password for her new banking account. Christie enters her username and enters the password “H@milt0n2020,” since she is a fan of the musical and it is easy to remember. An identification system of the banking website receives the password and accesses a backend system storing cultural terms. The identification system then compares “H@milt0n2020” to the saved cultural terms and identifies the term “Hamilton.” The identification system then calculates a similarity score between the attempted password and the cultural term. The similar characters between the two terms is “h,” “milt,” and “n,” for a total of six similar characters. The identification system has a maximum similarity of five characters, and therefore denies the password. 
     The identification system then transmits a notification to a recommendation system indicating the password was denied. The recommendation system then generates the suggested password, “$tr@wBerry,” an example of a human-readable password, and transmits the suggested password to Christie&#39;s user device. Christie can adopt the suggested password or try a new password. 
     In another example case, the recommendation system instead generates the suggested password, “p@ra$ite.” The recommendation system accesses the backend system and compares “p@ra$ite” to the cultural terms saved therein. The recommendation system identifies that the term “Parasite” is saved as a cultural term because it is a popular movie. The recommendation system calculates a similarity score and identifies the similar characters to include “p,” “ra,” and “ite,” for a total of six similar characters. The recommendation system also has a maximum similarity of five characters, and therefore denies the suggested password. The recommendation system creates a new suggested password, “$tr@wBerry,” compares it to the cultural terms, and approves the password. The password “$tr@wBerry” is then transmitted to Christie&#39;s user device. 
     In a similar example case, Christie enters her username and enters the password “H@milt0n2020.” The identification system of the banking website receives the password and accesses the backend system storing cultural terms. The identification system then compares “H@milt0n2020” to the saved cultural terms and identifies the term “Hamilton.” The identification system then calculates a similarity score between the attempted password and the cultural term. The differences between the characters includes: (1) changing the “a” to an “@,” (2) changing the “o” to an “0,” and (3) adding the characters “2020,” for a total of six differences. The identification system has a minimum difference threshold of six different terms, and therefore approves the password for use because it is not overly similar to “Hamilton.” 
     In another exemplary use case, Lisa wishes to enter a new password for her new social media account. Lisa enters a username and enters the password “Be@tles1964,” since she is a fan of the band and it is easy to remember. The identification system of the social media sites receives the password, hashes the password, and compares the hashed password to hashed cultural terms saved in the backend system. Using the same process as described above for Christie, the social media system can compare the hashed cultural terms with the hashed password using a similarity score to approve or deny Be@tles1964. In other words, the hashed versions of the password and the cultural terms will have the same number of similarities and differences.