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


37

Wann hat Unix das Speichern von Klartext-Passwörtern in passwd aufgegeben? Wann wurde die Shadow-Datei eingeführt?


Hast du etwas gesucht?
Ken Sharp

Antworten:


62

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

  • Die ersten Unix-Systeme haben Passwörter im Klartext gespeichert. In Unix Third Edition wurde die cryptFunktion 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.
  • Als Unix von einer früheren Verschlüsselung auf die damals moderne DES umstellte , wurde sie auch durch mehrmaliges Iterieren von DES verlangsamt. Ich weiß nicht genau, wann das passiert ist: V6? V7?
  • Lediglich das Hashing des Kennworts ist für Angriffe mit mehreren Zielen anfällig: Durchsuchen Sie ein für alle Mal alle gängigen Kennwörter und suchen Sie in der Kennworttabelle nach einer Übereinstimmung. Das Einbeziehen eines Salzes in den Hashing-Mechanismus, bei dem jedes Konto über ein eindeutiges Salz verfügt, besiegt diese Vorberechnung. Unix erwarb 1979 in der siebten Ausgabe ein Salz .
  • Unix hat auch Regeln zur Komplexität von Passwörtern wie eine Mindestlänge in den 1970er Jahren eingeführt.

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.


Das Salz ist übrigens das, was verschlüsselt wird.
Joshua

Für diejenigen, die keinen Postscript-Viewer haben, habe ich hier eine pdf-
Version

8

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.


6

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.


5
Non-Shadow Password Storage! = Unhashed Plain Text Storage.
Rackandboneman
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.