6.5 La cifratura della password

Per motivi di sicurezza il sistema non memorizza le password in chiaro (o plain text), cioè così come sono digitate dalla tastiera, ma vengono cifrate (cammuffate) tramite opportuni algoritmi (programmi) di cifratura9.

Per aumentare il livello di sicurezza della password è bene non scrivere la stessa da nessuna parte o se la si scrive riporla in un luogo sicuro (lontano da occhi indiscreti). È buona norma utilizzare una password che abbia la minima correlazione con l’utente che la utilizza, non darla mai a nessuno, per nessun motivo ed assicurarsi che nessuno stia guardando la tastiera mentre la si digita. Inoltre è importante non inserire la password in un sistema che non si conosce ed è consigliabile cambiarla periodicamente.

Gli algoritmi di cifratura10 utilizzati attualmente da GNU/Linux sono DES e MD5. L’algoritmo DES (Data Encryption Standard) accetta password composte da un massimo di otto caratteri mentre MD5 (Message-Digest algorithm) non pone limiti al riguardo.

Un sistema di autenticazione basato sulla conservazione di una password cifrata ha una debolezza di fondo: conoscendo la stringa cifrata e l’algoritmo che la genera, si può determinare, per mezzo di un elevato numero di tentativi, una password conforme a quella originale (due password in chiaro sono “conformi” se entrambe - fissato l’algoritmo di cifratura - danno luogo alla stessa password cifrata). Un sistema che consente l’utilizzo di password con un massimo di otto caratteri è molto debole oggigiorno, perché tutte le combinazioni possibili possono essere provate in tempi brevi, anche con un elaboratore di media potenza di calcolo.

La cifratura avviene tramite la funzione crypt (man page crypt(3)). La scelta dell’algoritmo per la cifratura delle password viene effettuata in base al secondo parametro passato a crypt.

La funzione crypt utilizza sempre l’algoritmo di cifratura DES a meno che il secondo parametro (salt) non sia la stringa “$1$”; in tal caso viene utilizzato l’algoritmo MD5.