Metodo di gestione delle password

Voglio iniziare con un post tecnico: un sistema da me ideato per semplificare la gestione delle password nel nostro sistema casalingo.

Spesso ci rendiamo conto di quanto risulta difficile generare e ricordare a memoria le password di accounts,archivi protetti,documenti etc… e di quanto è necessario talvolta ricorrere a password robuste per prevenire eventuali attacchi.Molte soluzioni sono state brevettate,ad esempio l’APG cioè un modello standard capace di produrre password robuste,pseudocasuali con un’alta variabilità statistica e facilmente memorizzabili in quanto costituite da sillabe comuni e pronunciabili.Fantastico,ma è sempre un bel lavoro tenere a mente una grossa quantità di password,tanto quanto lo è gestire un database sufficientemente protetto che le possa gestire al posto nostro.

Fortunatamente il mondo della crittografia ci offre degli algoritmi capaci di “partorire” una stringa di caratteri esadecimali a partire da un blocco di bit in ingresso,questo tipo di algoritmi si chiama “hash”, e sono usati come applicazione nel contesto delle firme digitali.Il più comune è l’MD5, ma è tanto famoso quanto debole,infatti produce message digest di 128 bit,non troppo lunghi e spesso vulnerabili ai cosidetti birthday attacks. Per quello che ci serve però l’md5 va più che bene,ed è disponibile in un sistema Unix col comando da terminale “md5sum” che,se vogliamo passare semplici stringhe in ingresso,va usato in questo modo :

echo -n [frase] | md5sum.

Supponiamo adesso di dover inventare N passwords,per N files di un archivio da proteggere ognuno con una password diversa. Mappiamo in un file di testo,o in un database,il nome degli N files con un numero univoco per il file,nel seguente modo:

appunti elettronica   1
foto Venezuela        2
pdf tesi              3
archivio foto estate  4
etc...

a questo punto troviamo una parola chiave,tipo “casa” e determiniamo le N password calcolando N volte l’hash MD5 di “casa1″,”casa2″….”casaN” ottenendo il seguente risultato

casa1 -> a3e80ab55b9ba5dc0a1c5930616399a5
casa2 -> c096de0f6209cbee036edadba2bb71c8

Non ci crederete ma abbiamo trovato N password,robuste ,(32 caratteri esadecimali ognuna),per gli N files ,che a causa dell’ “effetto valanga” dell’algoritmo md5 sono tutte diverse tra loro e probabilmente di parecchio. (almeno la metà dei bit).

Notiamo che se qualcuno dovesse sottrarci una copia della mappa numerica ,non otterrebbe nulla di nulla perchè non conosce la parola “casa”,condizione necessaria per determinare le N passwords.Notiamo anche che tutto quello che ci serve è solo ricordare una parola,preferibilmente complessa ,e disporre di un foglio o un file,o un DB dove disporre la mappa numerica e il nostro fedele terminale per determinare le hash all’occorrenza.Il sistema ovviamente non si presta a situazioni in cui dobbiamo inserire password in pubblico (situazione comunque pericolosissima ed altamente sconsigliata) ,perchè sarebbe visibile tutto e questa è una limitazione,ma se si tratta di un uso esclusivamente privato e se abbiamo un gran numero di password da gestire come per esempio in un repository con 1500 files da proteggere con 1500 password diverse, è una scelta da tenere in considerazione.

5 Risposte a “Metodo di gestione delle password”

  1. Segnalazione: Ordeal’s Weblog « Emanuele Cipolla Dice:

    [...] [via Ordeal’s Weblog] [...]

  2. Fabrizio Mondo Dice:

    Ciao ordeal, ma non risulterebbe un pò complesso dovere calcolare ogni volta la password tramite md5sum, soprattutto quando ci si trova a dovere che ne so, fare un login in un terminale non proprio, o non potere avere accesso all’algoritmo di trasformazione dalla pass_semplice + numero alla pass di 32 bit?

    Illuminami…

  3. ordeal Dice:

    @Fabrizio, nel caso di servizi a cui devi accedere da un terminale non tuo ti conviene impostare ed usare la solita password a memoria,sempre ricordandoti che l’inserimento di una password in un terminale non tuo non ti garantisce il minimo margine di sicurezza,specialmente se il possessore del sistema non è un “amico fidato” (vedi keyloggers).
    Se il sistema è il tuo invece,per i casi semplici come lettura di posta e login su siti web, firefox memorizza le password nel suo db interno e quindi non hai il bisogno di ridigitarle,col guadagno che hai comunque una password difficilmente attaccabile dall’esterno in quanto molto grossa (il cracker non sa che avrà a che fare con 32 caratteri).
    Se poi ti ritrovi ad esempio ad avere un server ftp o un file server con molti files da progeggere con un certo livello di sicurezza,da destinare ad utenti diversi a cui hai assegnato password diverse,il vantaggio di ricordare solo una password(la nostra chiave master) anzichè 150,è enorme,e non rischi minimamente di perderla o di comprometterla,visto che la conosci solo tu.

  4. ViK Dice:

    Direi quasi geniale!

  5. emardesign Dice:

    Interessante anche questo ma forse un po’ scomodo da ricordare!

    A chi interessa: http://emardesign.wordpress.com/2008/01/10/scegliere-una-password-a-prova-dibruteforce/

Lascia una Risposta