Quando Unix ha smesso di archiviare le password in chiaro?


37

Quando Unix si è allontanato dalla memorizzazione di password in testo passwd in passwd? Inoltre, quando è stato introdotto il file shadow?


Hai cercato qualcosa?
Ken Sharp,

Risposte:


62

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).

  • I primi sistemi Unix memorizzavano le password in chiaro. Unix Third Edition ha introdotto la cryptfunzione 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.
  • Quando Unix passò da una cifra precedente all'allora moderno DES , fu anche rallentato ripetendo ripetutamente DES. Non so esattamente quando è successo: V6? V7?
  • Il semplice hashing della password è vulnerabile agli attacchi multi-target: esegue il hash di tutte le password più comuni una volta per tutte e cerca una corrispondenza nella tabella delle password. Includere un sale nel meccanismo di hashing, in cui ogni account ha un sale unico, sconfigge questo pre-calcolo. Unix ha acquisito un sale nella settima edizione nel 1979 .
  • Unix ha anche acquisito regole di complessità delle password come una lunghezza minima negli anni '70.

Originariamente l'hash della password era nel file leggibile pubblicamente /etc/passwd. Mettere l'hash in un file separato a /etc/shadowcui 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.


Per inciso, il sale è ciò che viene crittografato.
Joshua,

Per coloro che non hanno un visualizzatore Postscript, ho trovato una copia pdf del documento Morris & Thompson qui
grahamj42

8

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.


6

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.


5
Archiviazione password non shadow! = Archiviazione in chiaro del testo senza ombre.
rackandboneman,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.