Antworten:
Informationen zur frühen Geschichte der Speicherung von Unix-Passwörtern finden Sie in Robert Morris und Ken Thompsons Password Security: A Case History . Sie erklären, warum und wie früh Unix-Systeme die meisten Funktionen erworben haben, die heute noch als wichtige Funktionen der Kennwortspeicherung angesehen werden (aber besser gemacht).
crypt
Funktion eingeführt, die das Kennwort enthält. Es wird eher als "Verschlüsselung" als als "Hash" bezeichnet, da die moderne kryptografische Terminologie noch nicht etabliert war und einen Verschlüsselungsalgorithmus verwendete, wenn auch auf unkonventionelle Weise. Anstatt das Kennwort mit einem Schlüssel zu verschlüsseln, der sich bei Vorhandensein des Schlüssels (der auf dem System gespeichert werden muss) trivialerweise rückgängig machen lässt, wird das Kennwort als Schlüssel verwendet.Ursprünglich befand sich der Passwort-Hash in der öffentlich lesbaren Datei /etc/passwd
. Das Speichern des Hashs in einer separaten Datei /etc/shadow
, auf die nur das System (und der Systemadministrator) zugreifen konnten, war eine der vielen Neuerungen von Sun, die Mitte der 1980er Jahre auf SunOS 4 zurückgingen. Es breitete sich allmählich auf andere Unix-Varianten aus (teilweise über die Shadow-Suite von Drittanbietern, deren Nachfolger bis heute unter Linux verwendet wird) und war bis etwa Mitte der neunziger Jahre nicht überall verfügbar.
Im Laufe der Jahre wurden Verbesserungen am Hashing-Algorithmus vorgenommen. Der größte Sprung war 1994 der MD5-basierte Algorithmus von Poul-Henning Kamp , der den DES-basierten Algorithmus durch einen besseren Algorithmus ersetzte. Die Beschränkung auf 8 Passwort- und 2 Salt-Zeichen wurde aufgehoben und die Langsamkeit erhöht. Siehe IEEEs Entwicklung mit Open Source-Software , Januar – Februar. 2004, p. 7–8 . Die SHA-2-basierten Algorithmen, die heute de facto Standard sind, basieren auf demselben Prinzip, haben jedoch ein etwas besseres internes Design und vor allem einen konfigurierbaren Langsamkeitsfaktor.
Ich habe noch keine primäre Quelle, aber laut diesem TrustedSec-Beitrag (Schwerpunkt meiner):
Frühe Systeme speicherten Passwörter im Klartext, aber letztendlich wurde dies durch sicherere Formen der Passwortspeicherung ersetzt. Robert Morris entwickelte eine Krypta auf der Basis der m-209-Chiffriermaschine und diese erschien in Version 3 Unix , obwohl Crypt erst in der 6. Edition von Unix (1974) zum Speichern von Passwörtern verwendet wurde.
Laut mehreren Quellen wurde Version 3 UNIX im Februar 1973 veröffentlicht .
Aus dem Originalpapier von Thompson und Morris können wir bestätigen, dass der Klartextspeicher ursprünglich verwendet wurde:
Das UNIX-System wurde zunächst mit einer Kennwortdatei implementiert, die die tatsächlichen Kennwörter aller Benutzer enthielt. Aus diesem Grund musste die Kennwortdatei stark gegen Lesen oder Schreiben geschützt werden.
/ etc / shadow tauchte in mehreren UNIX-Zweigen auf, wie in anderen Antworten angegeben.
Gemäß der Geschichte Abschnitt in der Wikipedia ist passwd Seite,
Mit der Entwicklung von SunOS Mitte der 1980er-Jahre [10] und BSD4.3 Reno im Jahr 1990 trat das Shadowing von Passwörtern erstmals in Unix-Systemen auf. Bei Anbietern, die Ports aus früheren UNIX-Versionen verwendet hatten, waren dies jedoch nicht immer der Fall Die neuen Kennwort-Shadowing-Funktionen in ihren Releases setzen Benutzer dieser Systeme Angriffen durch Kennwortdateien aus.
Systemadministratoren können auch die Speicherung von Kennwörtern in verteilten Datenbanken wie NIS und LDAP anstelle von Dateien auf jedem verbundenen System veranlassen. Im Fall von NIS wird der Schattenkennwortmechanismus häufig noch auf den NIS-Servern verwendet. Bei anderen verteilten Mechanismen wird das Problem des Zugriffs auf die verschiedenen Benutzerauthentifizierungskomponenten durch die Sicherheitsmechanismen des zugrunde liegenden Datenrepositorys gelöst.
1987 erlebte die Autorin der ursprünglichen Shadow Password Suite, Julie Haugh, einen Einbruch am Computer und schrieb die erste Version der Shadow Suite mit den Befehlen login, passwd und su. Die ursprüngliche Version, die für das SCO Xenix-Betriebssystem geschrieben wurde, wurde schnell auf andere Plattformen portiert. Die Shadow Suite wurde 1992 ein Jahr nach der ursprünglichen Ankündigung des Linux-Projekts auf Linux portiert und war in vielen frühen Distributionen enthalten und ist weiterhin in vielen aktuellen Linux-Distributionen enthalten.