Complessità delle password e riduzione dello spazio di ricerca durante attacchi brute force

La complessità della password viene sempre mentalmente associata ad un aumento della difficoltà di riuscire a indovinare a reperire la password tramite attacchi a brute force.Se però si analizza dal punto di vista statistico la questione si può notate come talvolta la complessità della password va a ridurre il numero delle possibili password e quindi riduce i tempi in cui è possibile individuare una password tramite attacco a forza bruta.

Per capire i motivi che stanno alla base della riduzione del numero delle possibili password in relazione a determinati requisiti sulla complessità della password bisogna tenere presente le seguenti:

  • L’attaccante conosce la policy di complessità della password richiesta, questo scenario è applicabile ad esempio a tutte le password di servizi a cui ci si può iscrivere tramite Internet. Inoltre vi possono essere scenari in cui è possibile ottenere tali informazioni tramite attacchi di ingegneria sociale.
  • La complessità della password di basa sull’utilizzare password che siano composte da caratteri appartenenti alle diverse classi ovvero caratteri minuscoli, caratteri maiuscoli, numeri e altri caratteri. Occorre però notare che se le classi caratteri minuscoli, caratteri maiuscoli hanno 26 possibili diversi caratteri, la classe dei numeri ha 10 possibili diversi caratteri e la classe degli altri caratteri ha un numero di caratteri che dipende da quali caratteri simbolici vengono accettati, ad esempio i sistemi Microsoft accettano 32 caratteri speciali come indicato in Password must meet complexity requirements, ma ad esempio Legamail accetta 16 caratteri speciali come indicato in La mia password contiene caratteri speciali e non riesco ad accedere alla mia casella dall’App. Ne consegue che se si forza l’utilizzo di classi di caratteri numeri e simboli a causa del fatto che tali classi hanno, o possono avere, meno caratteri diversi rispetto alla classi delle lettere si può verificare una riduzione del numero di password possibili e quindi una riduzione del tempo in cui un attacco a forza bruta può individuare una password.

A tal proposito si vedano le considerazioni fatte nell’articolo Effect of password policies on keyspace reduction in cui l’autore ha presentato i dati in forma tabellare le seguenti:

  • correlazione tra il numero totali dei caratteri di una password, il numero di classi di caratteri usati e il numero di password possibili
  • correlazione tra il numero totali dei caratteri di una password, il numero minimo di caratteri nelle specifiche classi di caratteri usati e il numero di password possibili

L’autore analizzando queste correlazioni ha tratto le seguenti conclusioni:

“For example, for printable US-ASCII (95 different characters) and length 8 requiring at least 3 character classes (out of four: digits, lowercase letters, uppercase letters, and other characters) reduces the keyspace by only 5.5% (so it is a reasonable thing to do). However, requiring at least 2 characters of each class (which for length 8 implies exactly 2 characters of each class) reduces the keyspace for length 8 by a factor of 52.9 (which is almost as bad as making passwords one character shorter) and for length 9 by a factor of 17.6.”

Quindi occorre prestare attenzione al fatto che le politiche di password possono in realtà andare in determinati casi a ridurre i tempi di un attacco a forza bruta, si prenda sempre ad esempio il caso di Legalmail le cui password policies sono reperibili nel seguente Manuale Utente Legalmail:

“La nuova password deve contenere da otto a venti caratteri, deve contenere almeno un numero e una lettera, non può contenere lo User-ID, non può contenere più di due caratteri uguali consecutivi, deve essere diversa dalle ultime cinque utilizzate in precedenza.”

Infatti se ipotizziamo che un’utente abbia usato una password 8 caratteri e generiamo tutte le password che è possibile generare con 8 caratteri utilizzando caratteri minuscoli, maiuscoli, numeri e i 16 caratteri speciali accettati (vedi precedentemente) da questo insieme possiamo togliere:

  • tutte le password che non hanno lettere
  • tutte le password che hanno più di 7 lettere
  • tutte le password che non hanno numeri
  • tutte le password che hanno più di 7 numeri
  • tutte le password che hanno due o più caratteri uguali consecutivi
  • tutte le password che contengono lo User-ID sia con lettere maiuscole che minuscole

La possibilità che password policies siano più deleterie che utili è anche evidenziato nel seguente Password policy recommendations for Office 365:

Some common approaches and their negative impacts
These are some of the most commonly used password management practices, but research warns us about the negative impacts of them.

 

Password expiration requirements for users
Password expiration requirements do more harm than good, because these requirements make users select predictable passwords, composed of sequential words and numbers which are closely related to each other. In these cases, the next password can be predicted based on the previous password. Password expiration requirements offer no containment benefits because cyber criminals almost always use credentials as soon as they compromise them.

 

Requiring long passwords
Password length requirements (greater than about 10 characters) can result in user behavior that is predictable and undesirable. For example, users who are required to have a 16-character password may choose repeating patterns like fourfourfourfour or passwordpassword that meet the character length requirement but aren’t hard to guess. Additionally, length requirements increase the chances that users will adopt other insecure practices, such as writing their passwords down, re-using them, or storing them unencrypted in their documents. To encourage users to think about a unique password, we recommend keeping a reasonable 8-character minimum length requirement.

 

Requiring the use of multiple character sets
Password complexity requirements reduce key space and cause users to act in predictable ways, doing more harm than good. Most systems enforce some level of password complexity requirements. For example, passwords need characters from all three of the following categories:

  • uppercase characters
  • lowercase characters
  • non-alphanumeric characters

Most people use similar patterns, for example, a capital letter in the first position, a symbol in the last, and a number in the last 2. Cyber criminals know this, so they run their dictionary attacks using the most common substitutions, “$” for “s”, “@” for “a,” “1” for “l”. Forcing your users to choose a combination of upper, lower, digits, special characters has a negative effect. Some complexity requirements even prevent users from using secure and memorable passwords, and force them into coming up with less secure and less memorable passwords.

A riguardo si veda anche l’articolo Password Exhaustion: Predicting the End of Password Usefulness pubblicato dal Systems and Internet Infrastructure Security Laboratory della Pennsylvania State University in cui viene fatta un’analisi statistica sulle password e viene riportato quanto segue:

“Password policies serve to reduce the amount of work an attacker is required to do to recover random passwords by reducing the possible password space.”

“We conclude that password policies, while useful for eliminating the weakest passwords, can severely restrict the pool of passwords attackers must search. Requiring users to pick only a subset of potential passwords can drastically reduce the password space provided by perfectly random passwords in that system. The time to crack a perfect password is reduced by up to a factor of 30.”