Art | Unix-Befehlsliste |
---|
passwd ist ein Befehl, der auf den meisten Unix- und Unix-ähnlichen Betriebssystemen verfügbar ist und es einem Benutzer ermöglicht, sein Kennwort zu ändern . passwd ist auch der Name der Datei , die die Passwörter auf denselben Systemen enthielt.
Das vom Benutzer eingegebene neue Passwort wird von einer Schlüsselableitungsfunktion verarbeitet , um eine Hash-Version des neuen Passworts zu erstellen . Diese Hash-Version wird vom Server gespeichert. Es wird nur die gehackte Version beibehalten. Das vom Benutzer eingegebene Passwort wird aus Sicherheitsgründen nicht gespeichert.
Wenn sich der Benutzer beim Server anmeldet, wird das vom Benutzer während des Anmeldevorgangs eingegebene Kennwort von derselben Funktion zur Schlüsselableitung verarbeitet und die resultierende Hash-Version mit der gespeicherten Version verglichen. Wenn die Hashes identisch sind, wird das eingegebene Passwort als korrekt angesehen und der Benutzer wird authentifiziert. Theoretisch ist es möglich, dass zwei verschiedene Passwörter denselben Hash erzeugen . Die als Schlüsselableitungsfunktion verwendeten kryptografischen Hash-Funktionen sind jedoch so konzipiert, dass es sehr schwierig und praktisch unmöglich ist, ein Kennwort zu finden, das denselben Hash erzeugt. Wenn der erzeugte Hash mit dem gespeicherten übereinstimmt, kann der Benutzer authentifiziert werden.
Der Befehl passwd kann zum Ändern von Kennwörtern für lokale Konten verwendet werden. Auf den meisten Systemen kann er auch zum Ändern von Kennwörtern verwendet werden, die in einem verteilten Authentifizierungsmechanismus wie NIS , Kerberos oder LDAP verwaltet werden .
Die Datei /etc/passwd ist eine Textdatenbank von Informationen über die Benutzer , die in das System einloggen können.
Der Name der Datei stammt von einer ihrer ursprünglichen Funktionen, die darin bestand, Daten zu speichern, die zur Überprüfung der Benutzerkontokennwörter verwendet wurden. Auf modernen Unix-Systemen werden Kennwörter jedoch in einer anderen Datei und dort in einer Hash- Form gespeichert .
Die Datei /etc/passwdverfügt normalerweise über Berechtigungen, mit denen sie von allen Benutzern des Systems gelesen werden kann (global lesbar), obwohl sie nur vom Root-Benutzer oder von einigen speziellen Befehlen bearbeitet werden kann .
Die Datei /etc/passwdist eine Textdatei , wobei jeder Datensatz ein Benutzerkonto beschreibt. Jeder Datensatz besteht aus sieben Feldern, die durch einen Doppelpunkt getrennt sind . Die Reihenfolge der Datensätze in der Datei ist normalerweise nicht wichtig.
Hier ist ein Beispiel für eine Aufnahme:
jsmith:x:1001:1000:Joe Smith,Room 1007,(234)555-8910,(234)5550044,email:/home/jsmith:/bin/shDie Felder von links nach rechts sind:
Die Datei /etc/shadowwird verwendet, um die Kennwortsicherheit zu erhöhen. Die Datei enthält eine Hash-Version der Passwörter, auf die nur sehr privilegierte Benutzer zugreifen können. Normalerweise werden diese Daten in Dateien gespeichert, die dem Root-Benutzer gehören und auf die nur dieser zugreifen kann.
Systemadministratoren können die Wahrscheinlichkeit von Brute-Force-Angriffen verringern, indem sie Hash-Passwörter für nicht privilegierte Benutzer unzugänglich machen. Eine einfache Möglichkeit, dies zu tun, besteht darin, die Datei /etc/passwdnur für den Root-Benutzer zugänglich zu machen . Dies würde jedoch den Zugriff auf andere Daten in der Datei, wie z. B. den Benutzernamen, auf Benutzer-ID-Zuordnungen beschränken, wodurch viele Programme und Dienstprogramme neu programmiert werden müssten .
Eine bessere Lösung besteht darin, eine Schattendatei zu erstellen, in der die Hashes der Kennwörter getrennt von den anderen Daten in der passwd-Datei gespeichert werden, auf die eine große Anzahl von Benutzern zugreifen kann. Diese Datei ist die Datei /etc/shadowauf Linux- und Unix-Systemen oder die Datei /etc/master.passwdauf BSD- Systemen . Diese Dateien können nur vom Root-Benutzer gelesen werden. (Der Zugriff auf Hash-Passwörter durch den Root-Benutzer wird als akzeptabel angesehen, da auf Systemen mit dem traditionellen Sicherheitsmodell "Allmächtiger Benutzer" der Root-Benutzer das Passwort trotzdem erhalten kann. Informationen auf andere Weise). Fast alle Betriebssysteme der jüngsten Unix mit Hash - Passwörtern und in einer Datei versteckt Schatten .
Die Verwendung einer Datei mit gehashten und versteckten Kennwörtern blockiert den Zugriff eines Angreifers auf gehashte Kennwörter nicht vollständig, da einige Netzwerkauthentifizierungssysteme das gehashte Kennwort über das Netzwerk übertragen (manchmal in Klartext , z. B. Telnet ), wodurch es für das Abfangen anfällig wird. Kopien von Systemdaten, wie beispielsweise System - Sicherungen geschrieben Magnetband oder optische Platte kann auch ein Mittel sein illegal gehashten Passwörter zu erhalten. Darüber hinaus sollten die Funktionen, die von legitimen Kennwortprüfprogrammen verwendet werden, so geschrieben sein, dass Schadprogramme nicht in kurzer Zeit eine große Anzahl von Authentifizierungsprüfungen durchführen können.
Es spielt keine Rolle, ob die Kennwortmaskierung auf einem bestimmten System implementiert ist. Die passwd-Datei muss für alle Benutzer lesbar sein, damit bestimmte Dienstprogramme funktionieren (z. B. damit das Ls- Dienstprogramm die Namen der Dateibesitzer anzeigt. 'Eine Datei). Dies bedeutet, dass ein Angreifer mit nicht privilegiertem Zugriff auf das System die Hash-Form des Kennworts aller Benutzer erhalten kann, wenn keine Maskierung implementiert ist.
Hashed Formen von Passwörtern können verwendet werden, um einen Offline- Brute-Force-Angriff zu starten. Dabei werden mögliche Passwörter relativ schnell gegen gehashte Passwörter getestet, ohne dass Systemsicherheitsgeräte benachrichtigt werden, die eine abnormale Anzahl erfolgloser Verbindungsversuche erkennen . Insbesondere wenn der Hash nicht salzig ist, ist es auch möglich, nach diesen Hash-Passwörtern in Regenbogentabellen zu suchen , Datenbanken, die speziell dafür entwickelt wurden, ein Passwort aus seiner Hash-Form zu finden.
Wenn die Kennwortmaskierung verwendet wird, zeigt die Datei /etc/passwdnormalerweise ein Zeichen wie "*" oder "x" im Kennwortfeld jedes Benutzers anstelle des gehashten Kennworts an, und die Datei /etc/shadowenthält normalerweise Folgendes für jeden Benutzer: