Complessità della password

Spesso ci si chiede quanto deve o dovrebbe essere complessa una password, la risposta è che deve essere abbastanza complessa da resistere ad un attacco a forza bruta e ad un attacco a dizionario ed ovviamente non correlabile in modo semplice alle informazioni per così dire di “pubblico dominio” dell’utente.

Per dare una misura di quanto gli attacchi a forza bruta di siano evoluti anche grazie ad hardware sempre più performante semplicemente reperibile basta dare uno sguardo alle potenzialità della settima e ultima versione del tool L0phtCrack per il il password auditing o il recupero della password di sistemi Windows e Unix che stando al post di annuncio http://www.l0phtcrack.com/2016/08/646/Revamped L0phtCrack 7 Audits Windows and Unix Passwords Up to 500 Times Faster promette di essere fino a 500 volte più veloce della precedente versione grazie alla possibilità di utilizzare GPU quali l’AMD Radeon Pro Duo se disponibili.

Questo significa, come riportato nel post, che se nel 1998 L0phtCrack riusciva a forzare una password di 8 caratteri alfanumerica su Windows NT in 24 ore, oggi su una PC dotato di GPU con Windows 10  impiegherebbe 2 ore a forzare la stessa password:

”On a circa-1998 computer with a Pentium II 400 MHz CPU, the original L0phtCrack could crack a Windows NT, 8 character long alphanumeric password in 24 hours. On a 2016 gaming machine, at less hardware cost, L0phtCrack 7 can crack the same passwords stored on the latest Windows 10 in 2 hours. Windows passwords have become much less secure over time and are now much more easily cracked than in the era of Windows NT. Other OSes, such as Linux, offer much more secure password hashing, including the NSA recommended SHA-512.”

Come riportato nella Microsoft Password Guidance pubblicata il 1 Maggio 2016 Microsoft rileva più 10 milioni di attacchi al giorno mirati a compromettere credenziali e suggerisce le seguenti minime best practices per gli amministratori di sistema:

  1. Maintain an 8-character minimum length requirement (and longer is not necessarily better).
  2. Eliminate character-composition requirements.
  3. Eliminate mandatory periodic password resets for user accounts.
  4. Ban common passwords, to keep the most vulnerable passwords out of your system.
  5. Educate your users not to re-use their password for non-work-related purposes.
  6. Enforce registration for multi-factor authentication.
  7. Enable risk based multi-factor authentication challenges.

La lunghezza minima della password dovrebbe però essere alzata rispetto ai canonici 8 caratteri e dovrebbero essere usati caratteri alfabetici minuscoli e maiuscoli, numeri e caratteri non alfabetici.

In fatti testando le password tramite https://password.kaspersky.com/ si può rilevare che una botnet può forzare password contenenti caratteri alfabetici maiuscoli e minuscoli, numeri e caratteri non alfabetici con le seguenti tempistiche:



Lunghezza Password Botnet Conficker

8

51 secondi

9

9 minuti

10

2 ore

11

14 ore

12

6 giorni

Quindi occorre rivedere la minima lunghezza della password è portarla almeno a 12 caratteri, soprattutto nel caso di password che devono proteggere accessi raggiungibili tramite Internet come ad esempio macchine virtuali in cloud.

Azure infatti adotta la seguente policy per la password durante la creazione delle VM:

La password deve avere una lunghezza compresa tra 12 e 123 caratteri e includere almeno una lettera minuscola, una lettera maiuscola, un numero e un carattere speciale.