Das Linux-Betriebssystem ermöglicht die sichere Speicherung von Benutzerkennwörtern durch einen speziellen Mechanismus. Die Kennwörter werden in der Datei /etc/shadow gespeichert, die nur für den Systemadministrator verfügbar ist. Dies ist der Hauptort, an dem sich die verschlüsselten Passwörter der Benutzer befinden. Die Datei /etc/shadow enthält Informationen über jeden Benutzer, einschließlich seiner Anmeldeinformationen wie Benutzername, verschlüsseltes Passwort und andere Kontoeinstellungen.
In der Datei /etc/shadow werden die Passwörter der Benutzer verschlüsselt gespeichert. Wenn Sie ein Passwort eingeben, vergleicht das System es mit der verschlüsselten Version, die in der Datei gespeichert ist. Wenn das Kennwort mit dem verschlüsselten Wert übereinstimmt, wird dem Benutzer Zugriff auf das System gewährt. Diese Speicherung von Kennwörtern bietet eine hohe Sicherheit, denn selbst wenn ein Angreifer Zugriff auf die Datei /etc/shadow erhält, kann er die entschlüsselten Kennwörter nicht lesen.
Neben der Datei /etc/shadow verwendet das Linux-Betriebssystem auch die Datei /etc/passwd, um Benutzerinformationen zu speichern. Die Datei /etc/passwd enthält Informationen zu jedem Benutzer, einschließlich dessen Name, Benutzer-ID (UID), Gruppen-ID (GID), Home-Verzeichnis und Befehlsshell. Die Datei /etc/passwd enthält jedoch keine verschlüsselten Passwörter. Stattdessen enthält es ein «x», um anzuzeigen, dass sich das Passwort des Benutzers in der Datei /etc/shadow befindet.
Insgesamt ist der Schutz von Benutzerpasswörtern auf einem Linux-Betriebssystem einer der wichtigsten Sicherheitsaspekte. Mit kryptografischen Verschlüsselungsmethoden und korrekter Speicherung von Kennwörtern können Sie die Vertraulichkeit und den Schutz der Benutzeranmeldeinformationen sicherstellen.
Wie und wo werden die Benutzerpasswörter unter Linux gespeichert?
Im Linux-Betriebssystem werden die Passwörter der Benutzer verschlüsselt gespeichert. Sie werden in der Datei /etc/shadow gespeichert, die für den Root-Benutzer schreibgeschützt ist.
Die Datei /etc/shadow enthält Informationen über jeden Benutzer, einschließlich seines Namens, des verschlüsselten Passworts sowie Informationen über das Ablaufdatum des Passworts und anderer Sicherheitseinstellungen. Passwörter werden mit einer Hash-Funktion gespeichert, die verhindert, dass sie gelesen oder wiederhergestellt werden.
Bei der Anmeldung wird das vom Benutzer eingegebene Passwort mit dem in der Datei /etc/shadow gespeicherten Hash verglichen. Wenn die Hashes übereinstimmen, greift der Benutzer auf das System zu.
Es ist wichtig zu beachten, dass die Datei /etc/shadow für den Superuser schreibgeschützt ist, sodass die Passwörter der Benutzer nicht direkt gelesen werden können.
| Spalte | Die Beschreibung |
|---|---|
| Anmeldung | Benutzername |
| Verschlüsseltes Passwort | Kennworthash-Wert |
| Datum der Kennwortänderung | Datum der letzten Kennwortänderung |
| Mindestdauer des Kennworts | Die minimale Zeit in Tagen, die der Benutzer nach der Installation des Kennworts nicht ändern kann |
| Maximale Gültigkeitsdauer des Kennworts | Die maximale Zeit in Tagen, für die der Benutzer das aktuelle Kennwort verwenden kann |
| Warnung zum Ändern des Kennworts | Die Zeit in Tagen, für die der Benutzer aufgefordert werden muss, sein Passwort zu ändern |
| Zeitraum der Inaktivität | Die Zeit in Tagen, in der das Kennwort möglicherweise inaktiv ist, bevor es als veraltet gilt |
| Gültigkeitsdauer des Kontos | Das Datum, an dem das Benutzerkonto gesperrt wird |
Daher sind das verschlüsselte Speichern von Benutzerpasswörtern und das Einschränken des Zugriffs auf die Datei /etc/shadow nur für den Superuser die wichtigsten Sicherheitsmaßnahmen unter Linux.
Dateien, die für die Speicherung von Kennwörtern zuständig sind
/etc/passwd: Diese Datei enthält Informationen über alle Benutzer des Systems, einschließlich ihrer Namen, IDs und Home-Verzeichnisse. Die Kennwörter der Benutzer selbst werden hier jedoch nicht gespeichert, stattdessen werden hier Kennworthashes gespeichert. Der Passwort-Hash ist das Ergebnis der Anwendung einer Hash-Funktion auf das Passwort des Benutzers und wird verwendet, um zu überprüfen, ob das eingegebene Passwort korrekt ist.
/etc/shadow: diese Datei enthält die verschlüsselten Passwörter aller Benutzer des Systems. Darüber hinaus werden Informationen zum Zeitpunkt der letzten Änderung des Kennworts, zu Einschränkungen bei der Verwendung des Kennworts und anderen damit verbundenen Daten gespeichert. Die Datei /etc/shadow ist selbst vom Systemverwalter vor dem Lesen geschützt.
/etc/group: Diese Datei enthält Informationen zu Benutzergruppen. Jede Zeile in der Datei enthält den Gruppennamen, das Gruppenkennwort, die Gruppen-ID und eine Liste der Benutzer, die zu dieser Gruppe gehören.
Anmerkung: Alle oben beschriebenen Dateien erfordern spezielle Berechtigungen, um auf die darin enthaltenen Daten zuzugreifen und diese zu ändern.
Hashing von Kennwörtern
Der Hauptzweck des Kennworthashings besteht darin, zu verhindern, dass Angreifer Passwörter lesen und verwenden, falls eine Datenbank mit Passwörtern in ihre Hände fällt. Durch Hashing können Sie Passwörter verschlüsselt speichern, ohne dass sie entschlüsselt werden können.
Beim Hashing eines Kennworts wird ein Hashing-Algorithmus verwendet, der das Kennwort in einen unverständlichen Hash-Code umwandelt. Ein Hash-Code ist eine eindeutige Folge von Zeichen, die das Ergebnis eines Hashalgorithmus darstellt. Hash-Codes sind eine einseitige Funktion, was bedeutet, dass es nicht möglich ist, das ursprüngliche Passwort aus seinem Hash-Code wiederherzustellen.
Das Linux-Betriebssystem verwendet verschiedene Algorithmen zum Hashing von Passwörtern wie MD5, SHA-1, SHA-256 und andere. Jeder Algorithmus hat seine eigene einzigartige Eigenschaft und Sicherheitsstufe. Je komplexer der Algorithmus ist, desto sicherer sind die gespeicherten Passwörter.
Wenn Sie ein Benutzerkonto auf einem Linux-System erstellen, wird das Kennwort des Benutzers mithilfe des ausgewählten Hashalgorithmus in einen Hash-Code konvertiert. Der resultierende Hash wird dann in einer sicheren Systemdatenbank gespeichert. Wenn Sie versuchen, einen Benutzer beim System zu authentifizieren, wird das eingegebene Passwort ebenfalls gehasht und mit dem in der Datenbank gespeicherten Hash verglichen. Wenn die Hashes übereinstimmen, ist die Authentifizierung erfolgreich.
Das Hashing von Kennwörtern ist ein wichtiger Sicherheitsmechanismus, der es ermöglicht, Benutzerkonten zu schützen und unbefugten Zugriff auf das System zu verhindern. Es wird jedoch empfohlen, eine Kombination aus einem starken Passwort und einem ausgeklügelten Hash-Algorithmus zu verwenden, um maximale Sicherheit zu gewährleisten.
Wo befinden sich die Passwort-Hashes der Benutzer?
Die Passwörter der Benutzer im Linux-Betriebssystem werden verschlüsselt in speziellen Dateistrukturen gespeichert. Der spezifische Speicherort der Dateien mit Kennworthashes hängt von der Betriebssystemkonfiguration ab.
Bei den meisten Linux-Distributionen werden Passworthashes in der Datei /etc/shadow gespeichert. Diese Datei ist schreibgeschützt für den Root-Benutzer und enthält Informationen zu jedem Benutzer des Systems, einschließlich dessen Name, Passwort-Hash, Metadaten und anderen Informationen.
Das Dateiformat /etc/shadow lautet wie folgt:
| Das Feld | Die Beschreibung |
|---|---|
| Benutzername | Name des Benutzerkontos |
| Passwort-Hash | Verschlüsselter Hash des Benutzerpassworts |
| Datum der letzten Kennwortänderung | Datum der letzten Änderung des Benutzerpassworts |
| Mindestdauer des Kennworts | Die Mindestanzahl an Tagen, die bis zur Änderung des Kennworts vergehen müssen |
| Maximale Gültigkeitsdauer des Kennworts | Die maximale Anzahl von Tagen, nach denen ein Benutzer gezwungen wird, sein Passwort zu ändern |
| Kündigungsfrist | Die Anzahl der Tage, in denen ein Benutzer eine Warnung erhalten muss, wenn das Kennwort geändert werden muss |
| Zeitraum der Inaktivität | Die Anzahl der Tage, in denen ein Benutzer inaktiv ist, nach denen sein Konto gesperrt wird |
| Todesdatum des Kontos | Das Datum, nach dem das Benutzerkonto gesperrt wird |
| Reserviert | Reserviertes Feld |
Neben der Datei /etc/shadow können bei einigen Linux-Distributionen Benutzerpasswörter in anderen Dateien oder Datenbanken wie /etc/passwd, /etc/gshadow oder einem LDAP-Server gespeichert werden. Die Verwendung von /etc/shadow ist jedoch die gebräuchlichste und empfohlene Option.