Root und mein Passwort sind gleich

8

Wenn ich cat /etc/shadowdie verschlüsselten Passwörter von root und meinem Benutzer bekommen kann.

Diese Passwörter sind für jedes Konto gleich (ich weiß, schlechte Sicherheit), werden jedoch /etc/shadowals unterschiedliche verschlüsselte Zeichenfolgen angezeigt.

Warum? Werden für jeden unterschiedliche Algorithmen verwendet?

user75027
quelle
Ich würde empfehlen, dies als guten Ausgangspunkt zu lesen . Die kurze Antwort lautet, dass die Hashes gesalzen sind und dass ein Hash ohne Salz überhaupt kein Hash ist.
Boris die Spinne

Antworten:

10

Separate Benutzer bedeuten eine separate Benutzer-ID. Daher werden separate Hashes in den Algorithmus einbezogen.

Sogar ein Benutzer mit demselben Namen, demselben Kennwort und zur gleichen Zeit erstellt (mit fast sicherer Wahrscheinlichkeit) erhält einen anderen Hash. Es gibt andere Faktoren, die beim Erstellen der Verschlüsselung helfen.

Wenn Sie sich hier ein kurzes Beispiel ansehen möchten, kann es dies besser erklären.

Keine Zeit
quelle
17
Um nur das Wort hier zu erwähnen: Es heißt Salting the Hash.
Ulrich Schwarz
1
Separate Benutzer bedeuten nicht unbedingt separate Benutzer-IDs. Benutzer-IDs haben keinen Einfluss darauf. Der Primärschlüssel in /etc/passwd, /etc/shadowist der Benutzername nicht Benutzer - ID (die auch nicht in erwähnt wird /etc/shadow).
Stéphane Chazelas
Die Erklärung beantwortet die Frage nicht ganz. Was hat die Benutzer-ID damit überhaupt zu tun? Außerdem gibt die URL keinen Aufschluss über die Antwort auf die Frage.
Gegenmodus
@ StéphaneChazelas Nein, separate Benutzer bedeuten separate Benutzer-IDs. Es können mehrere Einträge in der Benutzerdatenbank (en) mit unterschiedlichen Benutzernamen für dieselbe Benutzer-ID vorhanden sein. Diese sind jedoch alle derselbe Benutzer, teilen alle Sicherheitskontexte (Dateieigentum, Signale usw.) und unterscheiden sich nur in den Anmeldemethoden ( zB unterschiedliche Passwörter und unterschiedliche Shells, die jedoch zu demselben Konto führen).
Gilles 'SO - hör auf böse zu sein'
@ Gilles, ich stimme nicht zu. Sie können verschiedene Benutzer mit derselben UID, aber unterschiedlichen GIDs und zusätzlichen GIDs (siehe, wie die Mitglieder in / etc / group nach Namen referenziert werden, nicht nach UIDs), unterschiedlichen Anmeldeparametern haben. Dies ist immer seltener, insbesondere wenn man diese Dinge berücksichtigt wie sudo funktioniert das nicht gut.
Stéphane Chazelas
2

Der Algorithmus ist der gleiche. Moderne Shadow-Suites verwenden steckbare Authentifizierungsmodule (PAM), und mit PAM können Sie einen Hashing-Algorithmus konfigurieren. Es geht nur um "Salting", was bedeutet, dass Sie das Passwort zufällig auswählen, um genau den Effekt zu erzielen, nach dem Sie fragen.

Salting ist eine Gegenmaßnahme zu Wörterbuchangriffen, bei denen ein Angreifer mit einem Wörterbuch bekannter Kennwort / Hash-Paare versucht herauszufinden, ob der angegebene Hashwert für ein unbekanntes Kennwort mit dem Hashwert für eines der bekannten Kennwörter übereinstimmt.

Durch das Salting wird verhindert, dass ein anderer Salt-Wert zu einem anderen Hash-Wert führt. Daher spielt es keine Rolle, dass das Kennwort gleich ist. (Es ist dennoch eine schlechte Praxis, aber aus anderen Gründen.) Damit der Wörterbuchangriff erfolgreich ist, muss der Angreifer nun Wörterbücher für jeden möglichen Salzwert haben. Ein wirklich zufälliges Salz von ausreichender Größe macht die Erfolgswahrscheinlichkeit eines solchen Angriffs vernachlässigbar.

Empfohlene Lektüre: Wie werden Passwörter unter Linux gespeichert (Hashing mit Schatten-Utils verstehen)

Gegenmodus
quelle
0

In der Schattendatei sehen Sie eine Zahl zwischen $$ (sagen wir $ 1 $ oder so ähnlich). Es zeigt an, welcher Hashing-Algorithmus von Ihrem Computer verwendet wird. Identifizieren Sie den Algorithmus und sehen Sie, wie er funktioniert. Zum Beispiel ist $ 6 $ SHA 512, das so konzipiert ist, dass selbst wenn 2 Personen dasselbe Passwort haben, der Hash-Digest ihres Passworts unterschiedlich ist.

RNJ
quelle