Die Grundsatzdiskussion: Kennwort-Sätze oder Kennwörter

Fazit

Veröffentlicht: 16. Nov 2004

Jesper M. Johansson, Ph.D., ISSAP, CISSP - Security Program Manager - Microsoft Corporation

Dies ist der letzte Artikel aus unserer Serie zum Thema "Kennwort-Sätze oder Kennwörter". Im ersten Artikel haben wir uns mit den Grundlagen (Speicherung von Kennwörtern, etc.) und im zweiten Teil mit der relative Stärke von Kennwörtern und einigen mathematischen Ansätzen zur deren Ermittlung beschäftigt. Der vorliegende letzte Teil fasst die Artikelserie zusammen und gibt einige Empfehlungen zur Auswahl von Kennwörtern und für die Konfiguration einer Kennwortrichtlinie.

*

Kennwörter oder Kennwortsätze?

Ob Kennwortsätze besser als Kennwörter sind, scheint von den persönlichen Vorlieben abhängig zu sein. Zweifellos ist ein Kennwortsatz mit neun Wörtern stärker als ein Kennwort mit neun Zeichen - wenn Sie jedoch keine neun Wörter verwenden können, dann nützt Ihnen das nichts. Außerdem ist nicht sehr viel gewonnen, wenn der Benutzer den Kennwortsatz bei dessen Eingabe laut rezitiert. Letztendlich können wir also ohne weitere Untersuchungen nicht genau sagen, welche von beiden Methoden die bessere ist. Einen entscheidenden Faktor sollten Sie jedoch berücksichtigen: Damit die erwartete Kennwort-Entropie auch tatsächlich erreicht wird, müssen Sie ein absolut zufälliges Kennwort mit neun Zeichen verwenden. Im Bezug auf Kennwortsätze sind unsere Annahmen zur Entropie aus dem letzten Teil konservativ genug, um auch Kennwortsätze nutzen zu können, die tatsächliche, sinnvolle Sätze darstellen. Daraus ergibt sich ein wichtiges Argument für Kennwortsätze: Sie sind einfacher zu merken. Wenn Sie es einfach finden, sich Kennwortsätze zu merken, dann verwenden Sie sie - ihre Verwendung bringt Ihnen ganz sicher keinen Nachteil gegenüber Kennwörtern.

Sicherere Kennwortsätze

Es gibt einen weiteren Punkt, der bedacht werden sollte. Sie können die Entropie eines Kennwortsatzes nämlich ganz einfach erhöhen: Vielleicht haben Sie schon einmal ein Kennwort mit einem @ statt dem Zeichen "a", einem $ statt dem Zeichen "s", usw. verwendet. Das ist zwar ein schöner Ansatz, aber Sie sind leider nicht der erste, der auf diese Idee gekommen ist. Jeder Kennwort-Cracker arbeitet mit diesen Varianten, und die Kennwörter werden daher auf diese Art nur unwesentlich sicherer. Da unsere Berechungen zur Entropie von Kennwörtern davon ausgehen, dass neun zufällige Zeichen aus einer Menge von 72 Zeichen ausgewählt werden, wirkt sich dieses Verfahren außerdem nicht auf den Entropiewert aus. Wenn jedoch bestimmte Wörter unseres Kennwortsatzes ersetzt werden, entfernen wir die entsprechenden Wörter sozusagen aus dem Wörterbuch. Somit wird das Knacken des Kennwortsatzes deutlich schwieriger. Wie viel schwieriger? Das hängt von der Entropie des verwendeten Zeichensatzes ab. Wenn wir 10 Zeichen zu unserem Zeichensatz mit 26 Zeichen hinzufügen, hat der neue Zeichensatz mit 36 Zeichen eine Entropie von 5,17 Bit. Jedes der 29 Zeichen unseres Kennwortsatzes stellt also 5,17 Bit dar. Damit hat der gesamte Kennwortsatz eine Entropie von 150 Bit. Da dies mehr als die 128 Bit für den Hash sind, haben wir die höchstmögliche Entropie erreicht. Um im Gegensatz hierzu den Mindestwert zu ermitteln, können wir auf die Berechungen von Shannon zurückgreifen - aus diesen ergibt sich eine minimale Entropie von 66,7 Bit für den gesamten Kennwortsatz. Der Spielraum ist also zwar recht hoch, das Knacken des Kennwortsatzes wird aber auf jeden Fall deutlich schwerer.

Es gibt noch eine weitere Möglichkeit, die durch das Ersetzen von Wörtern zu erlangende zusätzliche Stärke zu berechnen. Unter http://www.ukradioamateur.org/extra/morse/html/c28.htm finden Sie Schätzungen zum Auftreten der einzelnen Buchstaben des Alphabets in der englischen Sprache. Nach diesen Schätzungen finden wir in einem englischen Kennwortsatz mit 25 Zeichen 21 unterschiedliche Zeichen (ohne Leerzeichen). Die häufigsten Zeichen sind E (3,25), T (2,3), N (1,98), R (1,9) und O (1,88). Für N und R (und für n und r) fallen mir keine anderen Varianten ein. Der Buchstabe E kann jedoch mit 3 ersetzt werden, T mit 7 und O mit 0. Nach den eben genannten Schätzungen gibt es 7 von diesen Zeichen in einem Kennwortsatz (3,25 + 2,3 + 1,88 - der Benutzer kann sich außerdem weitere Kombinationen ausdenken). Es gib also 2^7=128 unterschiedliche Kombinationen des Kennwortsatzes. Er ist daher 128 mal stärker als ohne die ersetzten Zeichen - und das nur mit allgemein üblichen Ersetzungen. Wenn sich der Benutzer eigene ungebräuchlichere Ersetzungen ausdenkt, dann kann die Stärke des Kennwortsatzes noch weiter gesteigert werden.

Durchsetzen von Kennwortrichtlinien

Vielleicht entscheiden Sie sich nach der Lektüre diese Artikelserie dazu, Ihre Kennwortrichtlinie so zu ändern, dass sie die Nutzung von Kennwortsätzen vorschreibt. Aber wie? Zuallererst sollten Sie die Kennwortrichtlinien der entsprechenden Gruppenrichtlinien konfigurieren. Hierzu möchte ich Ihnen einige Tipps geben. Erstens ist es eine gute Idee, ein eigenes Gruppenrichtlinienobjekt für die Kennwortrichtlinien zu verwenden. So ist es einfacher die Richtlinien im Fehlerfall wieder zu entfernen. Öffnen Sie das Snap-In "Active Directory-Benutzer und -Computer", klicken Sie mit der rechten Maustaste auf die Domäne und dann auf "Eigenschaften". Auf der Registerkarte "Gruppenrichtlinienobjekt" klicken Sie dann auf "Neu". Danach bearbeiten Sie das neue Gruppenrichtlinienobjekt und legen die entsprechenden Kennwortrichtlinien fest (unter "Computerkonfiguration\Windows Einstellungen\Sicherheitseinstellungen\Kontenrichtlinien\Kennwortrichtlinien"). Zweitens sollten Sie bedenken, dass Kennwortrichtlinien nur auf Domänenebene aktiv werden und dann für alle Benutzer der Domäne gelten. Sie können keine separaten Kennwortrichtlinien für einzelne OUs definieren. Wenn Sie einer OU eine Kennwortrichtlinie zuweisen, gelten dessen Einstellungen nur für die lokalen Konten auf dem Computer in dieser OU. Drittens sind die Einstellungen für die Kennwortrichtlinien leider eingeschränkt - es gibt nur sechs Stück. Für die meisten Systeme sollten Sie die Einstellungen aus dem Windows Server 2003 Security Guide verwenden:

Kennwortchronik erzwingen - verhindert die ständige Weiterverwendung alter Kennwörter. Empfohlene Einstellung: 24

Maximales Kennwortalter - stellt sicher, dass die Kennwörter so regelmäßig geändert werden, dass das Cracken oder Erraten möglichst schwer ist. Empfohlene Einstellung: zwischen 42 (Standardeinstellung) und 90

Minimales Kennwortalter - stellt sicher, dass der Benutzer nicht einfach mehrere Kennwortänderungen direkt nacheinander durchführt und so trotz Kennwortchronik wieder sein altes Kennwort verwenden kann. Empfohlene Einstellung: 2

Minimale Kennwortlänge - stellt eine Minimallänge der Kennwörter sicher. Bedenken Sie, dass die Verwendung von LM-Hashes bei Kennwörtern mit sieben oder acht Zeichen nur minimale Vorteile bringt. Weitere Informationen hierzu finden Sie im ersten Artikel dieser Serie. Empfohlene Einstellung: 8

Kennwort muss Komplexitätsvoraussetzungen entsprechen - stellt sicher, dass das Kennwort bestimmten Komplexitätsvoraussetzungen entspricht. Standardmäßig bedeutet das, dass das Kennwort Zeichen aus mindestens drei von vier möglichen Kategorien enthalten muss (Kleinbuchstaben, Großbuchstaben, Zahlen und nicht-alphanumerische Zeichen). Außerdem darf das Kennwort weder den Vornamen oder Nachnamen des Benutzers oder Teile dieser Namen enthalten. Bedenken Sie bitte, dass ein Kennwort, das den Komplexitätsvoraussetzungen entspricht, nicht zwingend sicher sein muss. Das Kennwort “Password1” entspricht zum Beispiel durchaus den Anforderungen. Empfohlene Einstellung: Aktiviert

Kennwörter für alle Domänenbenutzer mit umkehrbarer Verschlüsselung speichern - die umkehrbare Verschlüsselung wird auf Systemen verwendet, auf denen Anwendungen einen Zugriff auf Klartextkennwörter benötigen. Dies ist normalerweise nicht der Fall. Empfohlene Einstellung: Deaktiviert.

Warum Sie keine Kontosperrungsrichtlinien verwenden sollten

Im Sicherheitshandbuch wird zwar empfohlen, die Kontosperrungsrichtlinie auf 50 Fehlversuche festzulegen, ich möchte Sie jedoch dringend bitten, keine Kontosperrung zu konfigurieren. Wie im ersten Artikel der Serie beschrieben, sind die Chancen, dass ein Angreifer ein angemessenes Kennwort errät, so gering, dass diese Option nicht gerechtfertigt ist. Außerdem kann es gut sein, dass der Angreifer die Kontosperrung gegen Sie verwendet. Er braucht nur 50 fehlgeschlagene Anmeldeversuche für jedes Konto durchzuführen - womit er einen DoS-Angriff erreicht. Ein dritter Nachteil ist, dass die Arbeit mit den meisten Sicherheits-Bewertungstools bei aktivierter Kontosperrungsrichtline zur Sperrung aller Konten der Domäne führen wird. Ob Sie Kontensperrungsrichtlinien letztendlich nutzen oder nicht, hängt von Ihren Sicherheitsrichtlinien ab - wenn Sie einen Nutzen versprechen, stehen sie durchaus zur Debatte. Bedenken Sie jedoch, dass Probleme durch gesperrte Konten eine der am häufigsten auftretenden Anfragen beim Microsoft-Support Service sind - mit durchschnittlichen Kosten von 60 Euro pro Vorfall. Wenn Ihre Sicherheitsrichtlinie so streng ist, dass Sie meinen, diese Anfragen sind akzeptabel, und die Richtlinie keine angemessenen Kennwörter umsetzen kann, dann können Sie sich natürlich trotzdem für eine Kontensperrungsrichtlinie entscheiden. Wenn nicht, erweisen Sie Ihrem Helpdesk und Ihrem Budget einen Gefallen und lassen es.

Erzwingen von Kennwortanforderungen

Wie Sie inzwischen möglicherweise bemerkt haben, sind die Einstellungen für Kennwortrichtlinien in Gruppenrichtlinien nicht sonderlich flexibel. Tatsächlich garantieren sie nicht einmal besonders gute Kennwörter. Wenn Sie beispielsweise die Einstellung "Netzwerksicherheit: LAN-Manager Hashwerte bei nächster Kennwortänderung nicht speichern" unter Computerkonfiguration\Windows einstellungen\Sicherheitseinstellungen\Lokale Richtlinien\Sicherheitsoptionen nicht konfiguriert haben, werden auch weiterhin schwache LM-Hashes gespeichert. Wenn Sie komplexe Kennwörter vorschreiben, heißt das außerdem nicht, dass die Kennwörter nicht geknackt oder erraten werden können. Und schlussendlich können Sie keine Kennwörter mit mehr als 14 Zeichen vorschreiben.

Es gibt eine Möglichkeit diese Probleme zu beseitigen (es sind allerdings Programmierkenntnisse erforderlich): Sie können einen eigenen Kennwortfilter schreiben. Ein Kennwortfilter ist eine einfache DLL, die das Kennwort bei einer Kennwortänderung im Klartext entgegennimmt und dieses dann auf Einhaltung der definierten Kennwortrichtlinien überprüft. Der Kennwortfilter kann zum Beispiel prüfen, ob das Kennwort in einem Wörterbuch vorhanden ist, ob bestimmte unternehmensspezifische Worte enthalten sind, usw. Die möglichen Überprüfungen unterliegen keinerlei Einschränkung - solange Sie sie programmieren können und der Vorgang nicht zu lange dauert. Sie können zum Beispiel Filter erstellen, die für Administratoren stärkere Kennwörter als für Benutzer vorschreiben.

Wie diese Kennwortfilter erstellt werden, würde den Umfang dieses Artikels sprengen. Weitere Informationen können Sie jedoch in den folgenden Ressourcen erhalten (alle Links englischsprachig):

Dokumentation der Funktionen PasswordChangeNotify, InitializeChangeNotify und PasswordFilter in der MSDN Library unter http://msdn.microsoft.com

Ein Beispiel-Kennwortfilter: http://msdn.microsoft.com/library/en-us/secmgmt/security/sample_password_filter.asp

Installation und Registrieren einer eigenen Kennwortfilter-DLL: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secmgmt/security/installing_and_registering_a_password_filter_dll.asp

Überlegungen zur Programmierung von Kennwortfiltern: http://msdn.microsoft.com/library/en-us/secmgmt/security/password_filter_programming_considerations.asp

Es gibt noch eine Sache, die Sie über Kennwortfilter wissen sollten. Es handelt bei den Filtern meist um unter C/C++ entwickelte DLLs - diese werden in den LSA-Prozess auf dem Domänencontroller geladen. Pufferüberläufe in den Filter-DLLs können gravierende Auswirkungen auf die Sicherheit haben, und Sie sollten bei ihrer Programmierung extrem vorsichtig sein um keine schwerwiegenden Sicherheitslücken zu verursachen.

Fazit

Ich habe in diesem Artikel einige logische und empirische Untersuchungen in die Diskussion um Kennwörter und Kennwortsätze eingebracht. Bevor Sie irgendwelche Schlussfolgerungen ziehen, sollte Ihnen jedoch unbedingt klar sein, dass die ganze Diskussion theoretischer Natur ist. Wenn ein Angreifer Zugriff auf die Kennwort-Hashes hat, dann hat er Ihre Domäne bereits gehackt - Ihr Netzwerk ist in diesem Fall vollständig kompromittiert. Wenn der Angreifer Zugriff auf ein Tool hat, das Kennwort-Hashes direkt verarbeiten kann, ist das Knacken von Kennwörtern außerdem unnötig. Und wenn Ihre Benutzer nicht verstehen, wie sichere Kennwörter aufgebaut sein müssen oder die entsprechenden Sicherheitsrichtlinien nicht unterstützen, nützt Ihnen auch das beste Verfahren nichts.

Obwohl niemand letztendlich sagen kann, ob Kennwortsätze oder Kennwörter stärker sind, zeigen Mathematik und Logik, dass ein Kennwortsatz mit fünf oder sechs Wörtern ungefähr genauso stark ist wie ein absolut zufälliges Kennwort mit 9 Zeichen. Da sich die meisten Menschen eher an einen Satz mit sechs Wörtern als an 9 vollkommen zufällige Zeichen erinnern können, scheinen Kennwortsätze jedoch gegenüber Kennwörtern im Vorteil zu sein. Außerdem kann die Stärke von Kennwortsätzen durch absichtliche Rechtschreibfehler oder indem bestimmte Zeichen durch andere ersetzt werden noch deutlich gesteigert werden - dies ist mit einem zufälligen Kennwort mit neun Zeichen nicht möglich. Im Gegensatz zu dem, was Sie in der Schule gelernt haben, sind Rechtschreibfehler also durchaus recht nützlich.

Zum Abschluss möchte ich Ihnen noch ein paar Tipps um Umgang mit Kennwortsätzen geben. Erstens: Damit er so stark wie ein zufälliges Kennwort ist, muss ein Kennwortsatz mehr als vier Wörter lang sein (vorzugsweise sechs Wörter). Zweitens sollten die Wörter nicht zu kurz sein. Kurze Wörter können mit Standardtools recht einfach geknackt werden. Drittens sollte die Stärke des Kennwortsatzes durch das Ersetzen bestimmter Zeichen oder durch absichtliche Rechtschreibfehler weiter erhöht werden (eine gute Möglichkeit ist es auch, zusätzliche Leerzeichen hinzuzufügen und andere Leerzeichen wegzulassen). Viertens: Der Satz muss keine logische Bedeutung haben. Und fünftens und letztens: es ist absolut lebenswichtig, dass Sie eine Kombination aus Groß- und Kleinbuchstaben, Zahlen und Symbolen verwenden. Hierbei sollten Sie die Symbole nicht verwenden, die sich auf der Tastatur über den Zahlen befinden (diese werden von Angreifern als erstes probiert).

Wenn Sie mir in dieser Artikelserie bis hierhin treu geblieben sind, und sich für die Verwendung von Kennwortsätzen entschieden haben, dann möchte ich Sie um einen Gefallen bitten: Wenn Sie uns helfen möchten, dann schicken Sie mir Kennwort-Sätze, die Sie verwenden würden, an die E-Mail-Adresse passstud@microsoft.com (vorzugsweise nicht die, die Sie im Moment verwenden!)*. Ich hoffe, dass ich genügend Ergebnisse zusammen bekomme, um einige Analysen zu Kennwort-Sätzen durchführen zu können. Sollte dies der Fall sein, werde ich versuche die Ergebnisse in einer weiteren Kolumne zu veröffentlichen.

Wie immer, ist diese Kolumne für Sie gedacht. Wenn Sie ein bestimmtes Thema interessiert, oder wenn es einen besseren Weg gibt, über den wir Sie bei der Sicherung Ihrer Systeme unterstützen können, dann lassen Sie uns es wissen. Schreiben Sie mir einfach eine E-Mail.

* Wir speichern ausschließlich die von Ihnen eingesendeten Kennwort-Sätze. Ihre E-Mail-Adresse oder andere persönliche Daten werden nicht gespeichert. Die eingesendeten Kennwort-Sätze werden mit anderen Kennwort-Sätzen zusammengefasst - sie können nicht zu Ihrer E-Mail oder anderen möglicherweise vorhanden persönlichen Daten zugeordnet werden.


**
In diesem Beitrag
**