2010-02-01 7 views
19

Vor Jahren war es so, dass Unix-Passwörter auf 8 Zeichen begrenzt waren, oder dass, wenn Sie das Passwort länger als 8 Zeichen machten, das Extra keinen Unterschied machen würde.Sind Kennwörter auf modernen Unix/Linux-Systemen noch auf 8 Zeichen begrenzt?

Ist das immer noch der Fall bei den meisten modernen Unix/Linux-Systemen?

Wenn ja, wann wurden auf den meisten Systemen längere Passwörter möglich?

Gibt es einen einfachen Weg zu sagen, ob ein bestimmtes System längere Passwörter unterstützt und wenn ja, was wäre das effektive Maximum (wenn überhaupt)?

Ich habe einige Web-Suche zu diesem Thema gemacht und konnte wirklich nichts definitiv finden; Vieles von dem, was aufkam, war von den frühen 2000er Jahren, als ich dachte, dass die 8-Zeichen-Grenze immer noch üblich war (oder häufig genug, um an dieser Grenze festzuhalten).

Antwort

12

In glibc2 (jede modernen Linux-Distribution) die Passwort-Verschlüsselungsfunktion kann MD5/SHA-xxx (von einem Zaubersalz Präfix provoziert) verwendet werden, die dann als signifikant all die eingegebenen Zeichen behandelt (siehe man 3 crypt). Für einen einfachen Test auf Ihrem System, können Sie so etwas wie versuchen:

#!/bin/perl -w 
my $oldsalt = '@@'; 
my $md5salt = '[email protected]@$'; 
print crypt("12345678", $oldsalt) . "\n"; 
print crypt("123456789", $oldsalt) . "\n"; 
print crypt("12345678", $md5salt) . "\n"; 
print crypt("12345678extend-this-as-long-as-you-like-0", $md5salt) . "\n"; 
print crypt("12345678extend-this-as-long-as-you-like-1", $md5salt) . "\n"; 

(die auf meinem System gibt)

@@nDzfhV1wWVg 
@@nDzfhV1wWVg 
[email protected]@$PrkF53HP.ZP4NXNyBr/kF. 
[email protected]@$4fnlt5pOxTblqQm3M1HK10 
[email protected]@$D3J3hluAY8pf2.AssyXzn0 

Andere * ix Varianten unterstützen ähnlich - z.B. crypt(3) since at least Solaris 10. Es ist jedoch eine Nicht-Standard-Erweiterung - POSIX does not define it.

+1

Der md5-Hash, der '$ 1 $' verwendet, ist ** 22 ** Jahre alt. Es war früher Standard für das Hashing des "Schattens", ist aber mittlerweile unsicher. Niemand benutzte es ernsthaft im Jahr 2010. Die alte Krypta verwendete des, und nicht alle Zeichen waren signifikant. Es war nicht wirklich so kaputt ~ 1995, mit einem guten Passwort. –

+0

@AnttiHaapala Es ist sicherlich! Dies ist nur das einfachste Beispiel - die (verlinkte) Manpage für crypt gibt andere Werte für den Algorithmus an, z. B. $ 5 $ für SHA-256 und $ 6 $ für SHA-512. – jmb

1

Sie finden diese article von Interesse. Es gibt etwas namens PAM (Password Authentication Module), das Ihr Passwort über eine Reihe von Modulen (konfiguriert in /etc/pam.d/passwd oder /etc/pam.conf) ausführt, um festzustellen, ob das Passwort gültig ist oder nicht.

4

Nicht für Linux. Es ist nur 8, wenn Sie MD5 Hashing deaktivieren.

http://www.redhat.com/docs/manuals/linux/RHL-8.0-Manual/security-guide/s1-wstation-pass.html

Sie können Richtlinien verwalten Durchsetzung länger und auch komplexe Passwörter.

Die vollständigen Längen werden hier diskutiert:

http://www.ratliff.net/blog/2007/09/20/password-length/

+1

Verwendet Linux noch heute MD5? Ich frage, weil es als gebrochen gilt. –

+0

@Steven: IIRC, ja es verwendet immer noch standardmäßig MD5. Es verwendet ein einigermaßen gutes Salz, aber es ist etwas sicher vor Rainbow Table Attacken, aber nicht so sicher wie es sein könnte. – rmeador

+1

Interessant. Ich erinnere mich vage daran, dass einige Unix-Varianten mehr als einen Hashalgorithmus unterstützen. –

0

Ich denke, um die Zeit, wenn die tatsächlichen Passwörter von/etc/passwd verschoben wurden Schatten, auf Linux. Ich vermute um 2000, Red Hat 6.x hatte lange Passwörter IIRC. Um 2000 gab es immer noch eine Menge alter SUN, und sie hatten ein Passwort und einen Benutzernamen.

5

Fragen Sie nach dem crypt Algorithmus?

http://linux.die.net/man/3/crypt

"durch die niedrigste 7 Bits von jedem der ersten acht Zeichen des Schlüssels unter ..."

„The glibc2 Version dieser Funktion hat die folgenden zusätzlichen Merkmale. ... Der gesamte Schlüssel ist hier von Bedeutung (anstatt nur die ersten 8 Bytes). "

Hier ist ein Hinweis, wie lange diese Änderung vor sich ging.

Glibc 2 HOWTO 
    Eric Green, [email protected] 
    v1.6, 22 June 1998 
12

Obwohl die original DES-based algorithm verwendet nur die ersten acht Zeichen des Passworts, Linux, Solaris und andere neuere Systeme nun zusätzlich andere Passwort-Hash-Algorithmen wie MD5 unterstützen, die diese Grenze nicht haben. Manchmal ist es erforderlich, den alten Algorithmus weiter zu verwenden, wenn Ihr Netzwerk ältere Systeme enthält und wenn NIS verwendet wird. Sie können feststellen, dass der alte DES-basierte Algorithmus weiterhin verwendet wird, wenn Sie vom System angemeldet werden, wenn Sie nur die ersten 8 Zeichen Ihres 8-stelligen Passworts eingeben.

Da es sich um einen Hashalgorithmus handelt, hat MD5 keine intrinsische Grenze. Verschiedene Schnittstellen erfordern jedoch im Allgemeinen some limit of at least 72 characters.

Obwohl das verschlüsselte Passwort ursprünglich in einer weltweit lesbaren Datei gespeichert wurde (/etc/passwd), wird es normalerweise in einer separaten Shadow-Datenbank (z. B. /etc/shadow) gespeichert, die nur von root gelesen werden kann. Daher ist die Stärke des Algorithmus nicht mehr so ​​wichtig wie früher. Wenn jedoch MD5 nicht ausreicht, kann Blowfish oder SHA stattdessen auf einigen Systemen verwendet werden. Und Solaris unterstützt Pluggable-Passwort-Verschlüsselungsmodule, so dass Sie any crazy scheme verwenden können. Wenn Sie LDAP oder eine andere gemeinsam genutzte Benutzerdatenbank verwenden, müssen Sie natürlich einen Algorithmus auswählen, der auf allen Ihren Systemen unterstützt wird.

+0

Große Infos und Links - Danke für die Antwort! Es gab viele gute Antworten, also akzeptierte ich die, die mir Code gab, um festzustellen, ob es sicher war, Kennwörter> 8 zu verwenden, aber ich bewertete alle guten Antworten, einschließlich Ihrer, als richtig. Vielen Dank! – Chirael

+0

Kein Problem. Übrigens ist es immer * sicher *, Kennwörter mit mehr als 8 Zeichen zu verwenden, wenn das Kennwort stackoverflow ist, kann es auch Stackoverload akzeptieren. Durch das Hinzufügen der zusätzlichen Zeichen kann die Erinnerung leichter und die Sicherheit nicht verringert werden. Bedenken Sie auch, dass alle Algorithmen Hash-Kollisionen haben können und mehr als ein Passwort akzeptieren, besonders wenn sie lang sind. – mark4o

Verwandte Themen