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

Analyse

Veröffentlicht: 10. Dez 2004

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

Dies ist der zweite Artikel aus unserer Serie zum Thema "Kennwort-Sätze oder Kennwörter". Im ersten Artikel haben wir uns mit den Grundlagen beschäftigt (Speicherung von Kennwörtern, etc.), in diesem Teil nutzen wir verschiedene mathematische Ansätze, um die relative Stärke der unterschiedlichen Kennwörter zu beleuchten, und im dritten Teil werden die Ergebnisse zusammengefasst. Ich werde Ihnen außerdem Tipps dazu geben, wie Sie Kennwörter auswählen und wie Sie eine Kennwortrichtlinie konfigurieren sollten.

*

Pro und Kontra im Bezug auf Kennwort-Sätze

Kennwort-Sätze werden aus mehreren Gründen modern – einer dieser Gründe ist die Entwicklung von Tools, die viele Kennwörter in wenigen Minuten knacken. Solche Tools sind allerdings nicht wirklich neu – das Tool Quakenbush Password Appraiser konnte so etwas schon 1998. Neu sind nur Theorie und Vorgehensweisen im Bezug auf den Zeit/Platz-Kompromiss – sie wurden von Dr. Phillippe Oechslin deutlich verbessert. Der Zeit/Platz-Kompromiss bedeutet, dass nicht alle möglichen Hashes gespeichert werden. Dies würde mehr Speicherplatz benötigen, als im gesamten Universum zur Verfügung steht (zumindest, wenn Sie versuchen NT-Hashes zu speichern). Die Speicherung alle möglichen NT-Hashes für einen Zeichensatz von 76 Zeichen würde zum Beispiel 5.652.897.009 Extrabyte Speicherplatz erfordern (was die uns heute bekannten Dateisysteme geringfügig überfordern würde). Auch die Speicherung aller LM-Hashes ist kaum möglich – hier wären 310 Terabyte notwendig. Um dieses Dilemma zu beseitigen, entwickelte Dr. Oechslin einen Kompromiss zwischen Zeit- und Platzbedarf. Bei diesem werden nur ein Teil des Hashwertes und des entsprechenden Kennworts gespeichert. Der Speicherbedarf kann so drastisch verringert werden. Für einen Zeichensatz von 76 Zeichen sind mit diesem Verfahren nun nur noch 17 Gigabyte Speicherplatz notwendig. Wie wir sehen werden, ist eins der Hauptargumente für Kennwort-Sätze die fehlende Möglichkeit Angriffe mit Hilfe von vorausberechneten Hashtabellen durchzuführen.

Argument 1: Benutzer können sich Kennwort-Sätze besser merken

Das erste Argument für Kennwort-Sätze ist, dass die Benutzer sich diese viel besser merken können als ein langes Kennwort (beispielsweise mit zehn oder mehr Zeichen). Das könnte so sein – da es aber einige Benutzer gibt, die tatsächlich so lange Kennwörter benutzen, ist dies schwer zu sagen. Um dieser Frage genauer nachzugehen, habe ich eine vollkommen unwissenschaftliche Studie entwickelt: Ich habe Administratoren nach ihrer Meinung gefragt. 99 Prozent sagten, dass die Benutzer Kennwörter mit zehn Zeichen nicht nur vergessen werden, sondern dass es bei solchen Kennwortanforderungen sogar zu einer Meuterei kommen wird. Können sich Benutzer so lange Kennwörter also merken? Möglicherweise – da nur wenige Tokens enthalten sind (Wörter in diesem Fall). Ein hervorragender Aufsatz, aus dem ich gerne zitiere, ist ein Klassiker von 1956 aus der Feder von George A. Miller: “The Magical Number Seven, Plus or Minus Two: Some Limits On Our Capacity For Processing Information". Dieser Aufsatz ist eine großartige Arbeit – es reicht eigentlich schon, den Titel zu lesen. Er sagt aus, dass Menschen nur begrenzte Möglichkeiten zur Verarbeitung von Informationen haben. Wir können uns nur sieben Informationen gleichzeitig merken (plus/minus zwei). Uns interessiert hier allerdings nicht so sehr, wie viele Informationen sich ein Mensch merken kann, sondern dass die menschliche Fähigkeit zur Informationsverarbeitung grundsätzlich sehr beschränkt ist (einige Quellen gehen davon aus, dass die Zahl eher bei fünf liegt. Ich kenne Menschen, die von maximal drei Informationen ausgehen – ich glaube allerdings, dass dies daran liegt, dass diese Personen einen sehr frustrierenden Job haben).

Die Definition eines Informationsteils hängt außerdem davon ab, was wir gerade machen. Bei einem zufälligen Kennwort mit 10 Zeichen ist ein Informationsteil ein Zeichen. Nach Miller sind die meisten Menschen also nicht in der Lage, sich ein solches Kennwort zu merken. Ein Benutzer wäre aber sehr wohl in der Lage, sich ein Kennwort mit 10 Zeichen zu merken, dass aus zwei oder drei Wörtern (bzw. Informationsteilen) besteht.

Wenn wir davon ausgehen, dass ein Benutzer sich sieben Informationsteile (bzw. Wörter oder Zeichen) merken kann, dann liegt die maximale Länge für ein Kennwort bei neun Zeichen – diese Annahme wurde auch durch empirische Studien belegt. Um die Stärke von Kennwörtern zu bewerten, habe ich versucht, 28.000 Kennwörter aus einer großen Domäne zu knacken. Von diesen habe 23.311 (bzw. 83%) vollständig und weitere 13,16% teilweise knacken können. Auch wenn dieses Beispiel nicht vollständig repräsentativ ist, basieren die Statistiken im Rest des Artikels auf dieser Analyse. Sie untermauert die Theorie, dass die menschlich mögliche Grenze für Kennwörter bei 9 Zeichen liegt: 64% der geknackten Kennwörter der Domäne waren neun Zeichen oder weniger lang (die Minimalanforderung für Kennwörter lag in der Domäne bei sieben Zeichen). Mehr als 90,37% aller Domänenkennwörter waren kürzer als 15 Zeichen (ohne die Kennwörter selbst zur Verfügung zu haben, ist es nicht genau möglich zu sagen, wie viele es exakt waren – daher wurde bei Kennwörtern ohne LM-Hash davon ausgegangen, dass diese 15 Zeichen oder mehr umfassten).

Bei einem Kennwort-Satz stellt jedes Wort einen Informationsteil dar. Die durchschnittliche Länge eines englischen Wortes liegt bei fünf Zeichen (eine Studie zu deutschen Wörtern ist leider nicht vorhanden – die durchschnittliche Wortlänge dürfte jedoch erfahrungsgemäß ebenfalls nicht unter fünf Zeichen liegen). In einer Umfrage unter 45 PGP-Benutzern von 1995 stellte Arnold Reinhold fest, dass die Wortzahl in einem PGP-Kennwort-Satz bei durchschnittlich 5,3 Zeichen lag. Interessanterweise stellte Arnold Reinhold außerdem fest, dass fünf Achtel aller Wörter in einem englischen Wörterbuch zu finden waren. Auch diese Studie ist zu klein, um wissenschaftlichen Bestand zu haben – sie ist jedoch die beste, die in diesem spärlich untersuchten Bereich zur Verfügung steht.

Wenn wir nun wieder George Miller ins Spiel bringen, dann stellen wir fest, dass sich ein Benutzer einen Satz mit sieben Wörtern mit durchschnittlich insgesamt 41 Zeichen merken kann. Es gibt bei dieser Annahme allerdings mehrere Vorbehalte: Es ist zum Beispiel eher ungewöhnlich, dass ein echter Kennwort-Satz so lang ist. Mein eigener aktueller Kennwort-Satz ist beispielsweise nur 35 Zeichen lang – und diesen empfinde ich schon als mühsam. Außerdem hat Arnold Reinhold festgestellt, dass ein durchschnittlicher Kennwort-Satz nur vier Wörter lang ist.

Argument 2: Länger ist stärker

Ein weiteres Argument für Kennwort-Sätze ist, dass diese länger und somit auch stärker sind. Längere Kennwörter werden als besser angesehen, da das Knacken solcher Kennwörter länger dauert. Wie ich bereits erwähnt habe, sind zum Knacken eines Kennwortes mit acht Zeichen 11 Monate mehr notwendig als für ein Kennwort mit sieben Zeichen. Das gilt natürlich nur dann, wenn das Kennwort tatsächlich zufällig ist und jedes Zeichen mit gleich hoher Wahrscheinlichkeit im Kennwort auftaucht. Wenn das Kennwort nicht zufällig ist, treffen diese Berechnungen nicht mehr zu.

Ein weiteres oft vorgebrachtes Argument für lange Kennwörter ist, dass bei mehr als 14 Zeichen keine LM-Hashes generiert werden. Wenn wir jedoch davon ausgehen, dass LM-Hashes auch anders entfernt werden können, dann handelt es sich hierbei nicht mehr um ein zwingendes Argument für Kennwort-Sätze. Gibt es also ein wirklich eindeutiges Argument für lange Kennwörter? Im Grunde nicht wirklich. Heutige Tools zum Knacken von Kennwörtern arbeiten zwar auf Basis von Zeichen, es gibt aber keinen Grund, der dagegen spräche, dass zukünftige Tools nicht stattdessen Wörter nutzen – tatsächlich gehen sogar einige Personen davon aus, dass es so sein wird. Lange Kennwörter bieten also keinen dauerhaften Vorteil; sie beseitigen lediglich die Gefahr durch die heute verfügbaren Tools.

Argument 3: Kennwort-Sätze ermöglichen einen höheren "Zufallsfaktor"

Es gibt einen eindeutigen Vorteil im Bezug auf Kennwort-Sätze: eine höhere Entropie. Entropie ist die allgemeine Maßeinheit für Zufälligkeit. Sie wird durch drei Komponenten beeinflusst: die Anzahl der ausgewählten Elemente, die Größe der Menge aus der diese ausgewählt wurden, und die Wahrscheinlichkeit, mit der jedes Element ausgewählt wird. Da Kennwort-Sätze länger als Kennwörter sind, ist auch ihr Entropie-Potential größer – und zwar sogar dann, wenn beide den gleichen Zeichensatz verwenden. Dies ist darum erwähnenswert, weil Tools zum Knacken von Kennwörtern mit Wahrscheinlichkeitsrechungen arbeiten können. Statt einfach nur jede mögliche Buchstabenkombination eines Kennwortes durchzuprobieren, beginnen solche Tools normalerweise mit Wörtern aus einem Wörterbuch. Danach probieren sie Permutationen aus häufig vorkommenden Buchstaben. Daher kann es ein, dass unsere Annahme von 28 Tagen für ein Kennwort mit sieben Zeichen nicht richtig ist. Tatsächlich ist es sogar oft möglich, ein Kennwort mit sieben Zeichen, abhängig von deren Zusammensetzung, in wenigen Sekunden zu knacken. Die Entropie ist somit eine weit bessere Maßeinheit für die Stärke von Kennwörtern, als deren Länge und der verwendete Zeichensatz.

Lassen Sie uns einen Blick auf einige Beispiel werfen: Tests zeigten, dass mehr als 83% aller Kennwörter unseres oben genannten Beispiels ausschließlich aus Buchstaben, Zahlen und den Symbolen !@#$%^&*()-_+= bestanden. Der Zeichensatz umfasst also 26+26+10+14=76 Zeichen (in Englisch – in Deutsch sind es ein paar Zeichen mehr). 80 Prozent der Zeichen in den Kennwörtern stammten außerdem aus einer Gruppe von nur 32 der verfügbaren 76 Zeichen. Diese 32 am häufigsten verwendeten Zeichen waren ea1oirn0st2lud!m3hcyg94kSbpM758B (sortiert nach ihrer Häufigkeit). Noch weit interessanter ist außerdem, dass 10% der Kennwörter ausschließlich aus diesen 32 Zeichen bestanden.

Die maximale Entropie eines Zeichensatzes mit 76 Zeichen ist R=Log2 76 = 6,25 Bits pro Zeichen. Die maximale Entropie wird normalerweise als erreichbare Obergrenze der Entropie angesehen und setzt voraus, dass alle Zeichen mit gleicher Wahrscheinlichkeit ausgewählt werden.

C.E. Shannon berechnete die Entropie pro Zeichen bei 8 Zeichen allerdings mit 2,3 Bits pro Zeichen für englischsprachige Kennwörter (C.E. Shannon, “Predication and Entropy in Printed English”, Bell System Technical Journal, Ausg. 30, 1951, S. 50-64). Es muss jedoch berücksichtigt werden, dass Shannons Arbeit auf dem englischen Standardzeichensatz mit 26 Zeichen basiert – nicht auf einem Zeichensatz mit 76 Zeichen wie in unserem Fall. Wir haben aber ja auch festgestellt, dass die meisten Benutzer nicht mehr als 32 Zeichen verwenden. Die tatsächliche Entropie eines Kennwortes ist wahrscheinlich trotzdem größer als der von Shannon berechnete Wert von 2,3 – aber auch kleiner als die maximale Entropie von 6,25. Der Wert 5 (Log2 32) ist zwar etwas höher als der von mir vermutete tatsächliche Wert, er sollte für unsere Zwecke aber als maximaler Entropiewert pro Bit eines Kennwortes genügen. Da ein durchschnittliches Kennwort 9,16 Zeichen lang ist (wir runden ab auf 9), gibt es nicht mehr als 9*5=45 Bits Entropie.

Ein Argument für Kennwort-Sätze ist, dass die meisten Menschen über ein Vokabular von mehr als 76 Wörtern verfügen. Ein Kennwort-Satz wird theoretisch nur von den in der jeweiligen Sprache verfügbaren Wörtern eingeschränkt. In einem Oxford-Englisch-Wörterbuch finden Sie ca. 616.500 Wörter – 614.000 dieser Wörter werden allerdings wohl nur von wenigen Personen genutzt. Der durchschnittliche Wortschatz eines Amerikaners umfasst laut dem Sprachwissenschaftler Richard Lederer 10.000 – 20.000 Wörter. Laut James L. Fidelholtz sind es 50.000 – 70.000 Wörter (wenn wir einen Europäer fragen, dann würden die Schätzungen wohl noch unter diesen Werten liegen). Beide Fachleute stimmten jedoch darin überein, dass der Großteil dieses Wortschatzes lediglich unbewusst ist. Das heißt, Sie erkennen ein Wort, wenn Sie es hören – Sie würden es aber nicht von selbst verwenden. Ein durchschnittlicher Mensch nutzt also nur einen Bruchteil des oben angegebenen Wortschatzes.

Lassen Sie uns einmal annehmen, dass Kennwort-Sätze auf einem Wortschatz von nur 300 Wörtern basieren. Hierbei handelt es sich einerseits zwar um eine recht konservative Einschätzung, aber andererseits machen die meisten Wörter ja auch in einem bestimmten Kontext mit anderen Wörtern Sinn. Die Verwendung von zufälligen Kennwort-Sätzen wird somit also deutlich eingeschränkt.

Um die tatsächliche Entropie eines Kennwort-Satzes zu errechnen, müssen wir wissen, wie viele Wörter verwendet werden. Im Mittel wurden in der oben erwähnten PGP-Studie vier Wörter genutzt; der Durchschnitt lag jedoch höher. Um es uns nicht allzu schwer zu machen, lassen Sie uns von einer durchschnittlichen Länge bei Kennwort-Sätzen von 5 Wörtern ausgehen. Wenn jedes Wort im Durchschnitt fünf Zeichen lang ist, ergeben das 25+4=29 Zeichen (vier Leerzeichen) im gesamten Kennwort-Satz. Die Entropie hängt nun natürlich davon ab, welche Berechnung Sie zugrunde legen: Bei Shannons 2,3 Bit pro Zeichen in einem Wort mit 8 Zeichen kommen wir auf eine maximale Entropie von 29*2,3=66,7 Bit. Hierbei handelt es sich um eine gute Annähung zur Obergrenze der Entropie eines Kennwort-Satzes. Im Vergleich mit der Entropie eines Kennwortes mit 9 Zeichen von 45 Bit ist der Kennwort-Satz also eindeutig im Vorteil. Im Bezug auf die Untergrenze können wir Bruce Schneiers Berechung von 1,3 Bit pro Zeichen nutzen; sie basiert auf einer Studie von Thomas Cover (B. Schneier, “Applied Cryptography, 2nd Edition”, Wiley, 1996). Shannon errechnete ca. 1,3 Bit für Wörter mit 16 Zeichen. Daher ist dieser Wert möglicherweise bei unseren Kennwörtern mit fünf Zeichen nicht vollkommen korrekt. Auf jeden Fall ist die Entropie bei einem Wert von 1,3 mit 29*1,3= 37,7 niedriger als bei einem Kennwort mit 9 Zeichen. Sie müssten in diesem Fall schon Kennwort-Sätze mit sechs Zeichen langen Wörtern verwenden, um ungefähr die gleiche Entropie wie mit einem Kennwort mit neun Zeichen zu erreichen. Außerdem berücksichtig unsere Berechnung der Entropie von Kennwort-Sätzen den zu erwartenden Wortschatz nicht. Sobald Kennwort-Sätze häufiger verwendet werden, können wir davon ausgehen, dass Angreifer auch Tools zum Knacken von Kennwort-Sätzen nutzen werden - diese werden dann ganz einfach auf Basis von Wörtern statt auf Basis von Zeichen arbeiten. Diese Situation würde jedoch auch unsere Vorgehensweise in der Berechnung der Zufälligkeit von Kennwörtern grundlegend ändern. Die Verwendung von Wörtern als Einheit ist nun passender als die Verwendung von Zeichen. Wenn unser Wortschatz für Kennwort-Sätze 300 Wörter umfasst, und wir davon ausgehen, dass diese zufällig kombiniert werden können, erhalten wir eine maximale Entropie pro Wort von Log2 300 = 8,23 Bit. Bei einem Kennwort-Satz von fünf Wörtern erreichen wir also eine Entropie von 8,23*5= 41,2 Bit. Bei sechs Wörtern wären wir bei einer Entropie von 49,4 Bit.

Durch die Verwendung von Wörtern als Einheit erscheinen Kennwort-Sätze erst einmal sehr viel weniger attraktiv als Kennwörter. Tatsächlich ist ein Kennwort-Satz mit fünf oder sechs Wörtern ungefähr genauso stark wie ein Kennwort mit neun Zeichen – ich möchte allerdings darauf hinweisen, dass es sich hierbei nicht um ein wissenschaftlich untermauertes Ergebnis handelt. Die ermittelten Entropiewerte müssten über weitere Studien bestätigt werden.

Abschließende Überlegungen

In diesem Teil unserer kleinen Kennwort-Artikelserie haben wir einen ersten Schritt hin zur Analyse von Kennwörtern und Kennwort-Sätzen unternommen. Wie Sie vielleicht bemerkt haben, ist uns über die von den Benutzern verwendeten Kennwort-Sätzen nicht sonderlich viel bekannt. Um mehr zu diesem Thema zu erfahren, bitten wir Sie im einen Gefallen: Wenn Sie uns helfen möchten, dann schicken Sie uns Kennwort-Sätze, die Sie verwenden würden, an die E-Mail-Adresse passstud@microsoft.com (vorzugsweise nicht die, die Sie im Moment verwenden!)*. Wir hoffen, dass wir genügend Ergebnisse zusammen bekommen, um einige Analysen zu Kennwort-Sätzen durchführen zu können.

* 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
**