La password

closeQuesto articolo è stato pubblicato 8 anni 1 mese 24 giorni giorni fa quindi alcuni contenuti o informazioni presenti in esso potrebbero non essere più validi.

Qualche giorno mi andava di chiarire ad un/una collega (no, non dirò mai chi) il concetto di password. Visto che non l’ho tartassato con mille spiegazioni, ecco che le scrivo qui. Potrebbe essere un post un po’ noioso, me ne rendo conto ancora prima di scriverlo, se l’argomento non vi interessa, passate pure a leggere altro. Sappiate però che ognuno di voli lettori avrà almeno 4-5 password da gestire, potrebbe quindi tornarvi utile.

Iniziamo dal concetto di password (o “parola chiave”, come la definisce la Legge Italiana). Una password è genericamente un assieme di caratteri/numeri/simboli che, se associata all’utente corretto, permette l’accesso a risorse. Quindi

Utente + Password = Accesso

Di che risorse stiamo parlando? E’ semplice, ma vi farò lo stesso qualche esempio

  1. Casella di posta elettronica (privata o aziendale)
  2. PC (personale o aziendale)
  3. Sito di Internet Banking
  4. Forum vari
  5. Social network
  6. …e tanti altri ancora

Una volta fatto logon su un sistema si può accedere, secondo vari privilegi impostati dagli amministratori, ai più svariati contenuti:

  1. La posta elettronica personale/aziendale
  2. I contatti
  3. File personali/di lavoro
  4. Conto corrente e movimenti bancari
  5. Idee personali/politiche/religiose/sessuali espresse sui forum
  6. Connettività Internet tramite il router in casa
  7. …e molto altro ancora

A questo punto mi pare abbastanza chiaro che la password deve essere abbastanza resistente da violare. Secondo me vale questa semplice formula

Password facile = facile gestione = rischio elevato

Quindi la password deve essere abbastanza complessa per non essere violata, ma gestita in modo da non doversela dimenticare ad ogni accesso. Tutta questa complicazione va poi moltiplicata per il numero di password che si devon utilizzare. Ad esempio, tra lavoro e password personali credo di aver superato abbondantemente le 60.

Come si attacca una password? Il primo metodo, che tutti avranno tantato almeno una volta, è quello di andare a tentativi. Dipendentemente dal tempo a disposizione, queste sono le prove che farei io:

  • Password vuota
  • uguale al nome utente
  • nome e/o cognome della persona
  • data di nascita  nel formato ggmmaa o ggmmaaaa
  • Nomi dei familiari (genitori, moglie, figli)
  • Date di nascita o di eventi della famiglia (matrimonio, evednti speciali, …)
  • “password”, “Password”, “p@assword”, “passw0rd” o una delle combinazioni
  • “admin”
  • password da 1 a otto numeri, in sequenza: “1”, “12”, … “12345678”
  • Serie di caratteri come sono disposti sulla tastiera, tipo “qwerty”

In questo modo però, in un’ora di tempo non si potranno fare più di 60-70 tentativi (ma a volte potrebbero bastare). E se invece fosse un PC (arbitrariamente potente) a tentare l’accesso? In questo caso la faccenda si fa dannatamente seria. Un sistema informatico, anche se poco potente può provare ad accedere con decine e decine di password al minuto, facendo tutte le combinazioni possibili. Provo a fare un esempio semplice per far capire la portata del rischio.

Immaginiamo che un calcolatore possa provare 10 password al secondo, con tutti i caratteri ASCII (256 caratteri). Per azzeccare una password di un carattere dovrà fare 256 tentativi, quindi ci impiegherà 26 secondi. Se la password fosse di 2 caratteri i tentativi sarebbero già 65.536 per un totale di 110 minuti. Con una password di 8 caratteri le possibilità salirebbero a 18.446.744.073.709.551.616 (diciotto milioni di miliardi) per un totale di quasi 60 miliardi di anni. Da questo esempio si evince che più la password è lunga, meglio resisterà ad attacchi di “brute force”

Ma in realtà il calcolatore è stupido, ma chi fa i programmi per attaccare i sistemi non lo è, quindi ad esempio escluderà tutti i caratteri che non sono presenti sulle tastiere (da 256 scendiamo a circa 100); Inoltre, i moderni calcolatori sono molto più veloci dell’esempio, credo che ormai si arrivi a testare almeno 50.000.000 di password al secondo. Rifacciamo il calcolo: con una password di 8 caratteri ci sono 10 mila miliardi di possibilità, a 50 milioni di test al secondo fa 6 anni e mezzo. ma prima di iniziare dalle password da un carattere, poi quelle da due, i sistemi provano con le password standard, poi con un dizionario di parloe comuni; quindi spesso la trovano facilmente. Dalla vostra parte ci sono però i sistemi che vi chiedono l’inserimento delle credenziali; alla quarta password sbagliata l’account viene temporaneamente bloccato o viene richiesto di inserire a mano uno di quei fastidiosissimi testi difficli da leggere, insomma, c’è qualcuno che vi protegge.

Diciamo che è stata scelta una buona password, non banale e di un numero di caratteri sufficienti. Però, la utilizzate, in accoppiata con lo stesso utente, dappertutto. Cosa ne sapete voi se il sito dove vi state registrando memorizza la password in chiaro o no? Vi fidate di un gestore di un sito che non conoscete?

Cosa vuol dire memorizzare la password “in chiaro”? Semplice, se la mia password è “pippo”, nella tabella di tutti gli utenti del tal servizio, per ogni account utente verrà scritto “pippo” nella casella che si chiama “Password”. Chi gestisce il DB  accede alle password e le legge tutte. I sistemi seri fanno una cosa diversa: memorizzano la password sotto forma di hash, il più usato è l’ash di tipo MD5. In parola povere, la password viene codificata secondo un algoritmo matematico che la modifica in un'”accozzaglia” di caratteri univoci, l’unico modo per verificare se la password è corretta è convertire quella inserita con lo stesso metodo e vedere se il risultato della conversione è lo stesso della password memorizzata. Dall’hash non c’è modo di tornare alla password originaria. Come faccio a sapere che l’algoritmo non ha buchi o insicuresse? E’ semplice: è un algoritmo pubblico e controllabile da tutti, anche se abbastanza complesso; questo impedisce allos viluppatore di inserire delle backdoor. (ah, il codice Open Source!)

Esempi di conversioni in MD5

pippo” –> “0c88028bf3aa6a6a143ed846f2be1ea4“,
Pippo” –> “4a057a33f1d8158556eade51342786c6“,

due stringhe completamente diverse tra di loro anche se il testo di origine differisce solo per una maiuscola/minuscola. Non esiste modo di tornare alla password originale da questa stringa. E’ dimostrato matematicamente

Quali sono i sistemi che memorizzano le password in crittografia non reversibile (di cui sono sicuro, io che scrivo)?

  • Windows (il vostro amministratore di rete NON può sapere le vostre password)
  • Unix e derivati
  • Siti in Joomla
  • Siti in WordPress
  • I software ben sviluppati

Se avete un sistema di posta, basato su Linux, che si chiama qMail, invece la password può essere memorizzata in chiaro. Non usate la vostra password standard! Mi pare che Aruba utilizzi quel sistema.

E la legge italiana che cosa dice? Nel D.lgs 196/03 (la famosa legge sulla privacy) è indicato che ogni persona che ha l’accesso a dati personali, sensibili, giudiziari deve avere un utente e una parola chiave, strettamente personali e che deve cambiare regolarmente. Utilizzare la password “condivisa” in ufficio non è una cosa saggia, per una lunga serie di motivi.

  • Se qualcuno combina danni con il tuo utente, il colpevole sei tu. Se dici che hai dato al password al collega è ancora peggio
  • Se qualcuno cancella o modifica dei tuoi documenti, con il tuo utente, devi dare la colpa a te stesso
  • Se qualcuno compie atti puniti dalla legge, come indicato prima, il colpevole sei tu

Se qualcuno di quelli che fa manutenzione sul PC sistema ti chiede la password, hai due possibilità: gliela inserisci e stai a guardare quello che fa oppure gli dici che la può cambiare e comunque stai a guardare quello che fa.

Quindi, dopo questa lunga e noiosissima spiegazione (spero sia stata abbastanza chiara), riassumo come devono essere le password:

  1. Non riconducibili a “caratteristiche” dell’utente
  2. Lunghe, da 8 caratteri in su. Se hanno caratteri “misti” (maiuscole, minuscole, numeri, simboli) è meglio
  3. Diverse per ogni sito/settore di utilizzo
  4. Riservatissime!

Ma, adesso, come faccio a rivordarmi 30 passowrd diverse?

Non avevo detto che era comodo…

Io uso un programmino gratuito e molto domodo: KeePass, con una password accedete a tutte le altre, se installato in una chiavetta USB lo avete sempre con voi (a patto di non memorizzare un file di testo con la password generale nella stessa chiavetta…)

Ancora qualche piccola informazione che potrebbe tornare utile.

Siate sempre diffidenti dei PC pubblici, potrebbe essere installato un “keylogger” che memorizza tutti i caratteri digitati e in quel caso anche se la password è complicatissima e lunghissima, chi avrà poi accesso al log del sistema potrà leggerla in chiaro, credo che un bel copia/incolla della password sia un’ottima alternativa (ma da qualche parte dovete scriverla prima, magari in un file di testo, mischiata ad altri caratteri astrusi). Nel link della Wiki è indicato che intercettano anche i copia/incolla… bhe, è devastante…

Ricordate che in giro per il mondo le tastiere dei PC cambiano, soprattutto a livello di simboli ed accentate. Non sperate di trovare il carattere “à” su una tastiera americana. Inspiegabilmente, cambia anche la disposizione dei caratteri, quindi le password memorizzate come schema di tasti da premere diventano inutilizzabili.

Bene, adesso… di corsa a cambiare le password!

Nota importante, da leggere prima di commentare

Questo è un blog scritto per passione, non fornisco quindi risposte di tipo professionale, se avete bisogno di un aiuto tecnico rivolgetevi ad un professionista di fiducia, non offendetevi se mi astengo dal rispondere. Vi ringrazio per la comprensione.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.