it-swarm.com.de

Wann hat Unix aufgehört, Passwörter im Klartext zu speichern?

Wann hat sich Unix von der Speicherung von Klartext-Passwörtern in passwd entfernt? Wann wurde die Schattendatei eingeführt?

37
ZDOSA

Informationen zur frühen Geschichte der Speicherung von Unix-Passwörtern finden Sie in Robert Morris und Ken Thompsons Passwortsicherheit: Eine Fallgeschichte . 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 wurden).

  • Die ersten Unix-Systeme haben Passwörter im Klartext gespeichert. Unix Third Edition hat die Funktion crypt eingeführt, die das Passwort hascht. Es wird eher als "Verschlüsselung" als als "Hashing" beschrieben, da die moderne kryptografische Terminologie noch nicht etabliert war und ein Verschlüsselungsalgorithmus verwendet wurde, wenn auch auf unkonventionelle Weise. Anstatt das Kennwort mit einem Schlüssel zu verschlüsseln, der nur dann rückgängig gemacht werden kann, wenn Sie den Schlüssel haben (der auf dem System gespeichert werden müsste), verwenden sie das Kennwort als Schlüssel.
  • Als Unix von einer früheren Chiffre zur damals modernen DES wechselte, wurde es auch durch mehrmaliges Iterieren von DES) langsamer gemacht Ich weiß nicht genau, wann das passiert ist: V6? V7?
  • Das bloße Hashing des Kennworts ist anfällig für Angriffe mit mehreren Zielen: Hashing aller gängigen Kennwörter ein für alle Mal und suchen Sie in der Kennworttabelle nach einer Übereinstimmung. Das Einbeziehen eines Salzes in den Hashing-Mechanismus, bei dem jedes Konto ein eindeutiges Salz enthält, verhindert diese Vorberechnung. Unix erwarb ein Salz in Siebte Ausgabe 1979 .
  • Unix erwarb auch Regeln für die Komplexität von Passwörtern, beispielsweise eine Mindestlänge in den 1970er Jahren.

Ursprünglich befand sich der Passwort-Hash in der öffentlich lesbaren Datei /etc/passwd. Den Hash in eine separate Datei einfügen /etc/shadow dass nur das System (und der Systemadministrator) darauf zugreifen konnten, war eine der vielen Innovationen von Sun, die Mitte der 1980er Jahre aus der Zeit um SunOS 4 stammten. Es breitete sich allmählich auf andere Unix-Varianten aus (teilweise über den Drittanbieter Shadow Suite , dessen Nachkomme heute noch unter Linux verwendet wird) und war erst Mitte der neunziger Jahre überall verfügbar.

Im Laufe der Jahre wurde der Hashing-Algorithmus verbessert. Der größte Sprung war Poul-Henning Kamps MD5-basierter Algorithmus im Jahr 1994, der den DES-basierten Algorithmus durch einen mit einem besseren Design ersetzte. Die Beschränkung auf 8 Kennwortzeichen und 2 Salzzeichen wurde aufgehoben und die Langsamkeit erhöht. Siehe IEEE Entwickeln mit Open Source-Software , Januar - Februar 2004, S. 7–8 . Die SHA-2-basierten Algorithmen, die heute der De-facto-Standard sind, basieren auf demselben Prinzip, jedoch mit etwas besserem internen Design und vor allem einem konfigurierbaren Langsamkeitsfaktor.

Ich habe noch keine primäre Quelle, aber laut dieser TrustedSec-Beitrag (Hervorhebung von mir):

Frühe Systeme speicherten Passwörter im Klartext, aber schließlich wurde dies durch sicherere Formen der Passwortspeicherung ersetzt. Robert Morris entwickelte eine Krypta basierend auf der m-209-Verschlüsselungsmaschine und sie erschien in Version 3 Unix, obwohl Crypt erst in der 6. Ausgabe von Unix (1974) zum Speichern von Passwörtern verwendet wurde.

Laut mehreren Quellen wurde Version 3 UNIX in Februar 1973 veröffentlicht.

Aus dem Originalpapier von Thompson und Morris können wir bestätigen, dass der Klartext-Speicher ursprünglich verwendet wurde:

Das UNIX-System wurde zuerst mit einer Kennwortdatei implementiert, die die tatsächlichen Kennwörter aller Benutzer enthielt. Aus diesem Grund musste die Kennwortdatei stark vor dem Lesen oder Schreiben geschützt werden.

/ etc/shadow wurde in mehreren UNIX-Zweigen angezeigt, wie in anderen Antworten angegeben.

8
Royce Williams

Gemäß dem Abschnitt Geschichte auf der passwd Seite der Wikipedia,

Password Shadowing trat erstmals in Unix-Systemen mit der Entwicklung von SunOS Mitte der 1980er Jahre auf, [10] System V Release 3.2 im Jahr 1988 und BSD4.3 Reno im Jahr 1990. Anbieter, die Ports aus früheren UNIX-Releases ausgeführt hatten, schlossen dies jedoch nicht immer ein Die neuen Kennwort-Shadowing-Funktionen in ihren Versionen machen Benutzer dieser Systeme Angriffen auf Kennwortdateien ausgesetzt.

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 von den Sicherheitsmechanismen des zugrunde liegenden Datenrepositorys behandelt.

Im Jahr 1987 erlebte die Autorin der ursprünglichen Shadow Password Suite, Julie Haugh, einen Computereinbruch und schrieb die erste Version der Shadow Suite mit den Befehlen login, passwd und su. Die ursprüngliche Version, die für das Betriebssystem SCO Xenix) 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 in vielen frühen Distributionen enthalten und weiterhin in vielen aktuellen Linux-Distributionen enthalten.

6
VGe0rge