14.4 DES, MD5 e Crypt

Parti riscritte e aggiornate da Bill Swingle.

Ogni utente su un sistema UNIX® ha una password associata con il proprio account. È pvviamente necessario che queste password siano note solamente all'utente e al sistema operativo vero e proprio. Per poter mantenere segrete queste password, sono cifrate con quello che si chiama un “one-way hash”, ovvero possono essere facilmente cifrate ma non decifrate. In altre parole, quel che poco fa abbiamo dato per ovvio non è neanche vero: il sistema operativo in sé non conosce realmente la password, conosce soltanto la forma cifrata della password. L'unico modo per ricavare la password in chiaro è una brutale ricerca nell'intero spazio delle password possibili.

Sfortunatamente l'unico modo sicuro di cifrare le password quando UNIX è nato era di utilizzare DES (Data Encryption Standard). Questo non era un grosso problema per gli utenti residenti in USA, ma dato che il codice sorgente riguardante DES non poteva essere esportato al di fuori degli USA, FreeBSD ha dovuto cercare un modo per poter contemporaneamente essere in regola con la legge USA e mantenere la compatibilità con tutte le altre varianti UNIX che ancora utilizzavano DES.

La soluzione è stata quella di suddividere le librerie di cifratura in modo tale che gli utenti USA potessero installare le librerie DES ed utilizzarlo ma gli utenti internazionali avessero comunque a disposizioni metodi crittografici che potessero essere esportati all'estero. Questo è il modo in cui FreeBSD adottò MD5 come metodo di cifratura di default. MD5 è considerato più sicuro di DES, quindi installare DES è una possibilità pensata principalmente per motivi di compatibilià.

14.4.1 Riconoscere il funzionamento del tuo crypt

Attualmente la libreria supporta gli algoritmi DES, MD5 e Blowfish. Per default FreeBSD utilizza MD5 per cifrare le password.

È piuttosto semplice identificare il tipo di cifratura utilizzato; ad esempio uno dei metodi è di leggere il file /etc/master.passwd. Le password cifrate con l'hash MD5 sono più lunghe e iniziano con i caratteri $1$. Le password che iniziano con $2a$ sono cifrate con Blowfish. Le password DES non hanno alcun carattere identificativo particolare, ma sono più corte e sono codificate in un alfabeto di 64 caratteri che non include il $, quindi una stringa relativamente corta che non inizia con un simbolo di dollaro è molto probabilmente una password DES.

Il formato utilizzato per le nuove password è deciso dal valore del campo passwd_format nel file /etc/login.conf, che può avere i valori di des, md5 oo blf. Fai riferimento alla pagina del manuale login.conf(5) per avere ulteriori informazioni sulle configurazioni di login.

Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Per domande su FreeBSD, leggi la documentazione prima di contattare <questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a <doc@FreeBSD.org>.