Risposte:
Per le prime notizie sull'archiviazione delle password Unix, leggi Password Security di Robert Morris e Ken Thompson : A Case History . Spiegano perché e in che modo i primi sistemi Unix hanno acquisito la maggior parte delle funzionalità che sono ancora viste oggi come le funzionalità importanti dell'archiviazione delle password (ma fatte meglio).
crypt
funzione che ha la password. È descritto come "crittografia" anziché "hashing" perché la terminologia crittografica moderna non era ancora stata stabilita e utilizzava un algoritmo di crittografia, sebbene in modo non convenzionale. Invece di crittografare la password con una chiave, che sarebbe banale da annullare quando si dispone della chiave (che dovrebbe essere memorizzata nel sistema), usano la password come chiave.Originariamente l'hash della password era nel file leggibile pubblicamente /etc/passwd
. Mettere l'hash in un file separato a /etc/shadow
cui solo il sistema (e l'amministratore di sistema) poteva accedere era una delle tante innovazioni che provenivano da Sun, risalente a circa SunOS 4 a metà degli anni '80. Si è diffuso gradualmente ad altre varianti Unix (in parte tramite la suite shadow di terze parti il cui discendente è ancora usato su Linux oggi) e non era disponibile ovunque fino alla metà degli anni '90 circa.
Nel corso degli anni, sono stati apportati miglioramenti all'algoritmo di hashing. Il salto più grande è stato l' algoritmo basato su MD5 di Poul-Henning Kamp nel 1994, che ha sostituito l'algoritmo basato su DES con uno con un design migliore. Ha rimosso la limitazione di 8 caratteri password e 2 caratteri salt e ha aumentato la lentezza. Guarda lo sviluppo IEEE con software open source , gennaio-febbraio. 2004, pag. 7–8 . Gli algoritmi basati su SHA-2 che sono oggi lo standard di fatto si basano sullo stesso principio, ma con un design interno leggermente migliore e, soprattutto, un fattore di lentezza configurabile.
Non ho ancora una fonte primaria, ma secondo questo post TrustedSec (enfatizzazione mia):
I primi sistemi memorizzavano le password in chiaro, ma alla fine questo è stato sostituito da forme più sicure di archiviazione delle password. Robert Morris ha sviluppato cripta basata sulla macchina di cifratura m-209 ed è apparso nella versione 3 Unix , sebbene Crypt non fosse usato per memorizzare le password fino alla sesta edizione Unix (1974).
Secondo diverse fonti, la versione 3 UNIX è stata rilasciata nel febbraio 1973 .
Dal documento originale di Thompson e Morris , possiamo confermare che l'archiviazione in testo normale è stata originariamente utilizzata:
Il sistema UNIX è stato inizialmente implementato con un file di password che conteneva le password effettive di tutti gli utenti, e per tale motivo il file di password doveva essere pesantemente protetto dalla lettura o dalla scrittura.
/ etc / shadow è apparso in più rami di UNIX come indicato in altre risposte.
Secondo la sezione Cronologia nella pagina passwd di Wikipedia ,
L'ombreggiatura delle password è apparsa per la prima volta nei sistemi Unix con lo sviluppo di SunOS a metà degli anni '80, [10] System V Release 3.2 nel 1988 e BSD4.3 Reno nel 1990. Ma i fornitori che avevano eseguito porte da versioni precedenti di UNIX non sempre includevano le nuove funzionalità di shadowing della password nelle loro versioni, lasciando gli utenti di quei sistemi esposti ad attacchi di file password.
Gli amministratori di sistema possono anche organizzare la memorizzazione di password in database distribuiti come NIS e LDAP, anziché in file su ciascun sistema collegato. Nel caso di NIS, il meccanismo della password shadow è spesso ancora utilizzato sui server NIS; in altri meccanismi distribuiti il problema dell'accesso ai vari componenti di autenticazione dell'utente è gestito dai meccanismi di sicurezza del repository di dati sottostante.
Nel 1987 l'autore dell'originale Shadow Password Suite, Julie Haugh, sperimentò una violazione del computer e scrisse la versione iniziale della Shadow Suite contenente i comandi login, passwd e su. La versione originale, scritta per il sistema operativo SCO Xenix, è stata rapidamente trasferita su altre piattaforme. Shadow Suite è stata trasferita su Linux nel 1992 un anno dopo l'annuncio originale del progetto Linux, ed è stata inclusa in molte prime distribuzioni e continua ad essere inclusa in molte attuali distribuzioni Linux.