Come forse saprai, recentemente abbiamo vissuto il Password Day. Si tratta di un evento istituito nel 2013, che cade il primo giovedì di Maggio di ogni anno. Il suo scopo è ricordare l'importanza che le password rivestono nella sicurezza e nella tutela dei dati personali. Le password, abbinate agli username, sono il meccanismo utilizzato dagli utenti per accedere ai propri account sui siti web. Creare password complesse, sempre diverse e difficili da indovinare rappresenta quindi un punto fondamentale nella riservatezza delle proprie informazioni. In questo post, analizzeremo alcune buone pratiche per la creazione delle password e la loro conservazione.
Il concetto di password sicura si è evoluto nel tempo. Se fino a qualche anno fa non erano infatti richiesti particolari criteri per la sua creazione, oggi questo non è più realistico. Tramite attacchi brute-force, i pirati informatici sono infatti in grado di effettuare tantissimi tentativi di login in una frazione di secondo. Ad ogni tentativo, un software installato su un PC prova a effettuare il login su un sito web utilizzando una password generata automaticamente. Se il tentativo fallisce, ne viene effettuato un altro cambiando una sola lettera della password. Il processo è ripetuto finché viene indovinata la password corretta. Questa tecnica dà risultati tanto più rapidi quanto è potente il PC utilizzato per l'attacco. Una volta guadagnato l'accesso, il pirata è in grado di accedere ai dati personali dell'utente memorizzati sul sito.
Fortunatamente, oggi molti siti si sono dotati di meccanismi per prevenire attacchi di brute-force. Una tecnica efficace è quella bloccare temporaneamente l'account dell'utente se si verificano troppi tentativi di login falliti in un breve arco di tempo. Un'altra strategia è utilizzare meccanismi antispam, come ad esempio Google Recapcha. Si tratta di software in grado di discriminare i comportamenti degli esseri umani da quelli dei bot. In questo modo, solo agli utenti reali viene permesso di effettuare il login. La tecnica più efficace resta però quella di fare in modo che gli utenti creino password sicure per accedere ai siti. Vediamo qualche consiglio in questa direzione.
Il concetto alla base della sicurezza delle password è molto semplice: tanto più sono complesse, tanto più è difficile indovinarle. Facciamo un esempio per chiarire il concetto. Supponiamo di avere un sito senza alcuna protezione per evitare gli attacchi brute-force. Supponiamo che agli utenti sia permesso creare password composte da sole lettere minuscole, con una lunghezza minima di 3 caratteri. Un utente potrebbe quindi creare una password del tipo "abc". Il PC utilizzato dall'hacker effettua un primo tentativo di login utilizzando la password "aaa", un secondo con "aab", e un terzo con "aac", e così via. Nel giro di pochissimo tempo, il PC è in grado di scoprire la combinazione corretta. E' evidente che tanto più è potente il PC, tanto prima riuscirà indovinare la password ed accedere all'account. Come possiamo quindi rendere più forte questa password?
Un primo vincolo può essere quello della lunghezza minima. Se il sito web obbliga l'utente ad utilizzare una password di almeno 8 caratteri al posto di 3, il numero di possibili combinazioni passa da 9261 (calcolato come 213, supponendo un alfabeto di 21 lettere) a oltre 37 miliardi (calcolato come 218). Come è facile intuire, questo rende molto più difficile indovinarla. Al giorno d'oggi, un valore di lunghezza minima accettabile è 8 caratteri.
Un'altra strategia per aumentare la complessità delle password è utilizzare caratteri di tipologie differenti. Con questo intendiamo l'impiego di caratteri come lettere maiuscole, numeri e caratteri speciali. Se il sito web obbliga gli utenti a inserire almeno una lettera maiuscola, un numero e un carattere speciale, il numero di combinazioni aumenta sensibilmente. Nell'esempio precedente, si giunge ad un numero totale che supera i 79 mila miliardi di combinazioni.
Spesso gli hacker sono a conoscenza di alcune informazioni personali degli utenti: il nome, l'indirizzo di residenza, la data di nascita. Per questo motivo, è sconsigliabile utilizzare nelle password questo tipo di dati. Anche le parole di senso comune vengono spesso utilizzate nei tentativi di attacco. La strategia migliore è quindi utilizzare parole difficili, senza senso compiuto (meglio se inventate), o comunque non ricollegabili all'utente stesso. Esistono siti dedicati appositamente alla generazione di password casuali, chiamati password generator.
Una buona pratica nell'utilizzo delle password è quella di differenziarle nei siti web. Sappiamo che è difficile dover tenere a mente tante password, ma questo aumenta sensibilmente la sicurezza dei dati personali. Il motivo è presto detto. Come accennato nell'introduzione, le password sono sempre associate agli username. Molte volte gli utenti per pigrizia utilizzano la stessa combinazione di username e password su tutti i siti. Questo fa sì che, se un hacker riesce ad ottenere l'accesso ad un sito, automaticamente lo ottiene anche per tutti quelli a cui è iscritto l'utente. Per questo motivo, è molto importante utilizzare credenziali di accesso uniche per ogni sito.
Per invogliare gli utenti a diversificare le password, sono nati molti meccanismi per memorizzare le credenziali di accesso sui siti. Oggi la maggiorparte dei browser moderni (Chrome, Firefox) ha la possibilità di salvare questi dati in assoluta sicurezza. In alternativa, esistono portali (chiamati password manager), che fanno esattamente la stessa cosa. Il vantaggio è poter utilizzare credenziali sempre diverse, senza però doverle tenere tutte a mente. Ovviamente, se si utilizza un browser su un PC condiviso, è importante eseguire il logout dal browser una volta terminata la navigazione, per evitare che altri utenti possano utilizzare le nostre credenziali.
Una tecnica moderna per proteggere gli account da accessi indesiderati è l'autenticazione a 2 fattori (2-Factor authentication, 2FA). Per poter effettuare il login su un sito non basta conoscere le credenziali, ma è necessario anche avere a disposizione un codice numerico che cambia frequentemente (es. ogni 30 secondi). Il codice viene fornito da una App installata sullo smartphone. La tecnica si chiama a 2 fattori perché per accedere, è necessario disporre sia di qualcosa che l'utente conosce (la sua password), sia di qualcosa che l'utente possiede (lo smartphone). Questo rende gli attacchi particolarmente complessi.
In questo post abbiamo sottolineato l'importanza di utilizzare password forti per garantire la sicurezza dei dati personali. Abbiamo analizzato alcune strategie per creare buone password, resistenti agli attacchi hacker. Abbiamo capito come memorizzare le credenziali di accesso e come rendere gli account più sicuri con l'autenticazione a 2 fattori. Lo scopo di tutte queste pratiche è rendere il web un luogo sicuro, in cui salvare le proprie informazioni con la garanzia che nessuno possa scoprirle senza il nostro permesso.