Daten sind unsere Leidenschaft!
© Fotolia By bluebay2014

Sinnvolle und unsinnige Festlegungen bei Passwörtern

Spätestens beim Einrichten einer neuen Datenbank steht jeder Oracle-DBA vor der Frage, was für Passwörter er zulassen soll.

In Oracle besteht die Möglichkeit, das neue Passwort eines Benutzers durch eine selbstdefinierte Prozedur zu überprüfen, damit es nicht zu trivial ausfällt und somit nicht zu einfach erraten werden kann. Aber wie soll eine solche Prüffunktion aussehen?

Zum Glück hat Oracle bereits ein Beispiel mitgeliefert. Im Verzeichnis

„ORACLE_BASE/ORACLE_HOME/RDBMS/ADMIN“

befindet sich das Skript „UTLPWDMG.SQL“. Führt man dieses Skript mit SQL*Plus als SYSDBA aus, so werden zwei Funktionen implementiert: verify_function_11G und verify_function (für Datenbanken älter als 11G). Mit dem SQL-Befehl:

ALTER PROFILE default LIMIT
PASSWORD_VERIFY_FUNCTION verify_function_11G;

wird die Prüffunktion verify_function_11G für alle Benutzer aktiviert.
Damit müssen alle Passwörter die folgenden Kriterien erfüllen:

  • Das Passwort muss eine Länge zwischen 8 und 30 Zeichen (je einschließlich) haben
  • Das Passwort darf nicht identisch mit dem Benutzernamen sein, oder dem Benutzernamen rückwärts geschrieben, oder dem Benutzernamen plus Zahlen
  • Ebenfalls nicht zulässig als Passwort ist der Servername sowie der Servername plus Zahl zwischen 1 und 100 (je einschließlich)
  • Zu triviale Passwörter wie etwa oracle1, abcdefg1, user1234 etc. sind ebenfalls nicht erlaubt
  • Das Passwort muss minde*stens einen Buchstaben und mindestens eine Zahl enthalten
  • Das Passwort muss sich vom vorherigen Passwort um mindestens drei Zeichen unterscheiden.

Diese Festlegungen erscheinen alle sinnvoll. Dennoch empfehle ich, das Skript UTLPWDMG.SQL an einem Punkt zu ändern. Dies betrifft nicht
die Funktionen, sondern einen Befehl, der direkt nach der Definition der Funktion verify_function_11G ausgeführt wird. Er lautet:

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 180 PASSWORD_GRACE_TIME 7 […]

Diese beiden Parameter bewirken, dass die Benutzer alle 180 Tage ein neues Passwort vergeben müssen. Der zweite setzt eine
„Gnadenfrist“ („grace time“) von sieben Tagen für die Vergabe eines neuen Passworts.

Auf den ersten Blick erscheint dies eine sinnvolle Steigerung der Passwortsicherheit zu sein. In der Praxis zeigt sich
jedoch, damit jede Menge Nachteile einhergehen, vor allem in Kombination mit den obigen Bedingungen. So werden sich die
meisten Benutzer einfach zwei Passwörter ausdenken und zwischen diesen hin- und herschalten. Außerdem gewöhnen sich
Benutzer an ihr Passwort. Wenn sie nun gezwungen werden, es zu ändern, dann geschieht es oft, dass sie am nächsten
Arbeitstag das neue Passwort vergessen haben – und dann die Administratoren um Hilfe beim Zurücksetzen des Passworts
bitten müssen. Oder sie schreiben sich das neue Passwort auf – tun also genau das, vor dem seit Jahrzehnten alle
Sicherheitsratgeber warnen. Der Hauptnachteil jedoch ist, dass auch für reine Batch-User nun eine PASSWORD_LIFE_TIME
von 180 Tagen gilt, wie Robert Marz in seinem Artikel Stolpersteine bei der Migration auf Oracle 11g (R2) ausführt. Daher empfehle
ich, entweder das Skript UTLPWDMG.SQL so abzuändern, dass der Befehl lautet:

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED […]

oder nach Ausführung des Skripts den Befehl

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

als SYSDBA von Hand auszuführen.

Bildnachweise: Titelbild ©Fotolia_129638819

Das könnte Sie auch interessieren

Bleiben Sie informiert:

its-people hilft Ihnen...

Weitere Blogthemen: