Solaris hat mich mit verschiedenen Passwörtern mit den gleichen 8 ersten Zeichen eingegeben

42

Ich weiß nicht, ob dies normal ist, aber die Sache ist, sagen wir, ich habe einen Solaris-Benutzer namens gloaiza und sein Passwort ist password2getin

Ich logge mich mit PuTTY auf dem Server ein. Ich habe gerade 192.168.224.100 eingegeben und es wird ein Fenster angezeigt , in dem nach einem Benutzer gefragt wird. Also tippe ich gloaiza ein , frage nach einem Passwort und nehme an , ich tippe aus Versehen password2geti , und es hat funktioniert! Ich bin im Server!

Ist das normal? Es funktioniert auch, wenn ich so etwas wie password2getin2 setze .

Ich bin kein englischer Muttersprachler. Falls Sie etwas nicht verstehen, fragen Sie mich bitte

Betriebssystem: Oracle Solaris 10 1/13

Gloaiza
quelle
4
Was passiert unter acht Zeichen? Bringt passworkdich rein?
Thrig
@thrig Ok, mein aktuelles Passwort ist 9 Zeichen lang, so sagen wir , das Passwort ist pass2word, dann funktioniert es mit pass2wor, pass2word1, pass2worr1, und so weiter ... Ich denke , es mit allem , was funktioniert , wenn Sie geben pass2wor Ich glaube nicht , es ist ein großes ist Problem, ist aber auch nicht gut.
Gloaiza
3
Solange Sie die ersten 8 Zeichen richtig eingegeben haben, werden Sie hereingelassen. Bei älteren Solaris-Versionen wurde beim Generieren eines Kennworts leider die Verschlüsselung verwendet, Zeichen 9 und höher werden ignoriert.
MelBurslan
14
Eine sanfte Erinnerung für alle eingebetteten Entwickler, die hier denken: "Das könnte auf meinem System niemals passieren. " busyboxWird stillschweigend auf DES zurückgreifen, wenn Sie nicht alle richtigen Krypto-Optionen in seinem .config und Ihrem aktiviert haben libc. Nehmen Sie sich heute vielleicht eine Minute Zeit, um Ihre passwd/ shadowfiles zu überprüfen ? ;)
11
@drewbenn - wer zum Teufel hielt es für eine gute Idee, die Sicherheit stillschweigend herabzusetzen ? Jesus Christus.
Davor

Antworten:

65

Das Betriebssystem speichert einen Hash des Passworts in /etc/shadow(oder historisch gesehen an /etc/passwdeinem anderen Ort in einigen anderen Unix-Varianten). In der Vergangenheit war der erste verbreitete Kennwort-Hash ein DES-basiertes Schema, das nur die ersten 8 Zeichen des Kennworts berücksichtigte. Außerdem muss ein Passwort-Hashing-Algorithmus langsam sein. Das DES-basierte Schema war bei der Erfindung etwas langsam, für heutige Verhältnisse jedoch unzureichend.

Seitdem wurden bessere Algorithmen entwickelt. Solaris 10 verwendet jedoch standardmäßig das historische DES-basierte Schema. In Solaris 11 wird standardmäßig ein Algorithmus verwendet, der auf iteriertem SHA-256 basiert und modernen Standards entspricht.

Wenn Sie keine historische Kompatibilität mit alten Systemen benötigen, wechseln Sie zum iterierten SHA-256-Schema. Bearbeiten Sie die Datei /etc/security/policy.confund ändern Sie die CRYPT_DEFAULTEinstellung in 5, was für steht crypt_sha256. Möglicherweise möchten Sie auch gesetzt CRYPT_ALGORITHMS_ALLOWund CRYPT_ALGORITHMS_DEPRECATE.

Sobald Sie die Konfiguration geändert haben, führen Sie den Befehl aus, passwdum Ihr Kennwort zu ändern. Dadurch wird der Passwort-Hash mit dem aktuell konfigurierten Schema aktualisiert.

Gilles 'SO - hör auf böse zu sein'
quelle
1
Danke für die Antwort. Wenn Sie sagten " Wenn Sie keine historische Kompatibilität mit alten Systemen benötigen ", meinen Sie das wirklich so. Ist es möglich, das DES-basierte Schema wirklich zu benötigen und für einige nicht in der Lage zu sein, auf SHA-256 zu wechseln? Grund?
Gloaiza
11
@gloaiza Sie könnten, wenn Ihre Kennwort-Hash-Datei mit NIS oder einer anderen Methode mit einem Computer, auf dem ein wirklich altes Betriebssystem (wie Solaris 2.x) ausgeführt wird, gemeinsam genutzt wird. Ansonsten nein.
Gilles 'SO- hör auf böse zu sein'
21

Dies wird zumindest in einer Solaris 10-Standardkonfiguration und einer älteren Konfiguration erwartet.

Ihr System verwendet den alten Unix- crypt_unixAlgorithmus, der die Anzahl der verwendeten Zeichen auf acht begrenzt.

Dies ist auf der passwdHandbuchseite dokumentiert :

Passwörter müssen so erstellt werden, dass sie die folgenden Anforderungen erfüllen:

  Jedes Passwort muss PASSLENGTH-Zeichen enthalten, in denen PASSLENGTH definiert ist
  / etc / default / passwd und ist auf 6 gesetzt. Einstellen von PASSLENGTH auf mehr als acht
  Für Zeichen muss policy.conf (4) mit einem unterstützten Algorithmus konfiguriert werden
  mehr als acht Zeichen .

Da dieser Algorithmus im Wesentlichen veraltet ist. Sie sollten zu etwas Besserem wechseln (die verfügbaren Werte sind auf der crypt.confHandbuchseite aufgeführt), indem Sie die CRYPT_ALGORITHMS_DEPRECATEund CRYPT_DEFAULT-Einträge in die /etc/security/policy.confDatei eingeben .

Siehe http://docs.oracle.com/cd/E19253-01/816-4557/concept-63/index.html

jlliagre
quelle
1
Es ist nicht wahr, dass "je höher desto besser". Algorithmus 2a(bcrypt) kann das Beste sein .
Hören Sie auf, Monica
@OrangeDog Punkt genommen, Rat entfernt
jlliagre
7

Siehe diesen Thread in Oracle-Foren :

Das von Ihnen beschriebene Verhalten wird erwartet, wenn das standardmäßige Kennwortverschlüsselungsschema "crypt_unix" verwendet wird. Dieses Schema verschlüsselt nur die ersten acht Zeichen eines Kennworts. Daher müssen nur die ersten acht Zeichen übereinstimmen, wenn das Kennwort erneut eingegeben wird. Dies ist kein "Bug", sondern eine bekannte Einschränkung des Algorithmus. Er wird aus Gründen der Abwärtskompatibilität weitgehend beibehalten und ist auf Solaris-Systemen bei der Installation leider als Standard festgelegt.

Stellen Sie Ihr Betriebssystem so ein, dass MD5- oder Blowfish-Algorithmen anstelle von crypt_unix verwendet werden, um dieses Problem zu beheben.

Dies kann in der Datei /etc/security/policy.conf geändert werden. Sie können zulässige Verschlüsselungsalgorithmen festlegen und die Verwendung des Algorithmus "crypt_unix" ablehnen (verbieten) und den Standardwert in einen sichereren ändern.

Weitere Informationen finden Sie in Ihrem "Solaris 10-Systemverwaltungshandbuch: Sicherheitsdienste".

Siehe auch Ändern des Passwortalgorithmus (Task Map) und insbesondere Festlegen eines Algorithmus für die Passwortverschlüsselung :

Geben Sie die Kennung für den von Ihnen gewählten Verschlüsselungsalgorithmus an.

...

Geben Sie den Bezeichner als Wert für die Variable CRYPT_DEFAULT in die Datei /etc/security/policy.conf ein.

...

Weitere Informationen zum Konfigurieren der Algorithmusoptionen finden Sie auf der policy.conf(4)Manpage.

Andrew Henle
quelle
2

Nur zu Ihrer Information, dies ist auch auf IBM AIX-Systemen bis Version 7.1 der Fall.

Es ist schon komisch, weil dieses System mit dem ich gearbeitet hat eine Politik , „kann nicht die letzten 10 Passwörter wiederverwenden“, der tut die ganze Passwort Länge beachten Sie, aber dann prüft nur die ersten 8 Zeichen bei der Anmeldung. So können Sie Ihre Passwörter einstellen könnten wie easypass_%$xZ!01, easypass_%&ssY!02, easypass_%$33zoi@@, ... für jede obligatorische Kennwortänderung, hält effektiv easypassals Kennwort für Jahre.

walen
quelle