Kennwörter und ihre Qualtät
Kennwörter werden eingesetzt, wenn sich Benutzer in Computern, Netzwerken oder Programmen anmelden und in Abhängigkeit von ihrer Anmeldung mit den zugehörigen Berechtigungen ausgestattet werden sollen.
Daneben werden Kennwörter auch dazu verwendet, um bestimmte Berechtigungen nachzuweisen: Wer das Kennwort (den richtigen Code) kennt, gilt z. B. als berechtigt, bestimmte Programme zu benutzen oder Türen zu öffnen.
Die Authentizität des sich auf diese weise Ausweisenden bleibt allerdings höchstens so lange gewahrt, wie das Kennwort geheim bleibt, das heißt, es Dritten nicht bekannt ist.
Das einfachste Verfahren besteht darin, innerhalb einer klar definierten Gruppe von Eingeweihten ein gemeinsam bekanntes Kennwort zu vereinbaren. In der IT-Technik spricht man von einem „Gruppenkennwort“. Das Wesentliche bei diesem Verfahren ist es, dass alle Kommunikationspartner das gleiche „richtige“ Kennwort kennen. Ein Nachteil dieses Verfahrens besteht darin, dass die unter dem betreffenden Kennwort durchgeführten Aktionen keiner konkreten Person mehr zugedordnet werden können, weshalb Gruppenkennwörtern nach Möglichkeit nicht eingesetzt werden sollten.
Um eine höhere Sicherheit zu erreichen, wird in der IT-Technik heute zu einem Kennwort eine kryptologische Quersumme (Hash) gebildet und nur diese wird auf der prüfenden Seite gespeichert. Das echte Kennwort ist idealerweise allein im Kopf seines Besitzers gespeichert. Wird nun das Kennwort verwendet, um einen Einlass in das System zu bekommen, wird zu dem eingegebenen Kennwort wieder die kryptologische Quersumme berechnet. Der Zugriff kann gewährt werden, wenn diese Quersumme mit der abgespeicherten Quersumme übereinstimmt. Diese Übereinstimmung gilt als ausreichend sicher, obwohl sie im mathematischen Sinne nicht wirklich eine Übereinstimmung des eingegebenen Kennworts mit dem Kenntwort bedeutet, zu dem die gespeicherte Quersumme berechnet wurde.
1. Wahl sicherer Kennwörter
Die Länge eines Kennwortes hängt davon ab, wofür es verwendet wird. Das Bundesamt für Sicherheit in der Informationstechnik (BSI) empfiehlt, für Onlinezugänge Kennwörter mit mindestens zwölf Groß- und Kleinbuchstaben sowie Sonderzeichen und Ziffern zu verwenden, für WLAN-Zugänge hingegen Kennwörter aus mindestens zwanzig Zeichen. Dies ist insbesondere dann nötig, wenn eine unbeschränkte Anzahl von Versuchen mit verschiedenen Kennwörtern einen Zugang zulässt und damit einen Angriff („Erraten“) nach der sogenannten Brute-Force-Methode ermöglicht.
Als Ausnahme gilt, dass ein solches „Erraten“ dann erheblich eingeschränkt ist, wenn es nur eine ausgesprochen beschränkte Anzahl von aufeinanderfolgenden Eingaben gibt (z. B. maximal drei Versuche, Aufruf zusätzlicher Eingaben ab einer bestimmten Anzahl Fehlversuchen usw., wie es z. B. bei den Verschlüsselungstechniken der meisten Banken angewendet wird), und danach der Eingebende ausgesperrt und auf einen nur persönlich zugängigen Schlüssel verwiesen wird. Sofern es sich nicht um extrem einfach gewählte Zahlenfolgen handelt (z. B. 1234 oder 9876), ist dieses auch heute nur durch Ausspähen effektiv zu überwinden. Gleiches gilt für die dreistelligen Verschlüsselungen an einem Koffer: Die in der Regel dreistellige Zahl bietet im Verlauf der Abfertigung nur wenige Zeit für ein Erraten und macht es dadurch sicherer: Voraussetzung ist allerdings, dass der Besitzer wenigstens die Werkseinstellung 000 vorher privat geändert hat.
Moderne Verschlüsselungsverfahren sind technisch so weit fortgeschritten, dass sie in der Praxis außer durch das Austesten aller möglichen Schlüssel – der Brute-Force-Methode – meist nur durch einen Wörterbuchangriff gebrochen werden können. Die Schwachstelle ist bei beiden Angriffen das vom Benutzer gewählte Kennwort. Damit ein Kennwort nicht unsicherer ist als die eigentliche Verschlüsselung (viele gängige Verfahren nutzen 128-Bit-Schlüssel), ist für dieses theoretisch eine Folge von etwa 20 zufälligen alphanumerischen Zeichen erforderlich. Falls das Kennwort nicht aus gleichverteilt zufälligen Zeichen besteht, sind sogar deutlich längere Zeichenfolgen nötig, um die gleiche Sicherheit zu erreichen.
2. Sicherheitsfaktoren
Die Sicherheit eines Kennwortes hängt vor allem davon ab, dass es geheim bleibt.
Weitere Faktoren zum Schutz des Kennwortes sind z. B.:
– Kennwörter zur Authentifizierung bieten die größte Sicherheit, wenn diese nur einmalig verwendet werden. Jeder wiederholte Einsatz des Kennwortes erhöht die Gefahr, bei unverschlüsseltem Transfer oder Spionage-Maßnahmen (wie z. B. durch Keylogging oder Phishing) das Kennwort zu verraten.
Kennwörter sollten regelmäßig geändert werden.
– Es empfiehlt sich, für jede Anwendung ein anderes Kennwort zu vergeben. Wird das Kennwort einer Anwendung durch einen Angreifer ermittelt, bleibt für den Angreifer der Zugriff auf eine andere Anwendung weiterhin verwehrt.
– Speziell gegen Phishing im Internet empfiehlt es sich, das Kennwort als Hash-Wert aus einem Kennwort, welches sich der Benutzer aussucht, sowie der Domain der Webseite zu bilden. Dies führt einerseits dazu, dass jede Webseite automatisch ein anderes Kennwort bekommt, selbst wenn der Benutzer immer das gleiche Kennwort eingeben sollte. Viele Phishingmethoden können auf diese Weise unterbunden werden. Gegen Keylogger hilft dies jedoch nur bedingt.
– Die Übertragung des Kennwortes vom Benutzer zum System sollte sicher sein, z. B. durch Verwendung von verschlüsselten Kanälen zur Übertragung (siehe auch TLS). Dadurch wird es bei sicherer Implementierung und ausreichender Stärke der Verschlüsselung für den Angreifer nahezu unmöglich, das Kennwort in Erfahrung zu bringen, da die Rechenkapazität heutiger Rechner bei weitem nicht ausreicht, um moderne Verschlüsselungen in angemessener Zeit zu knacken.
– Kennwörter dürfen nicht aufgeschrieben und nicht unverschlüsselt gespeichert werden. Bei der prüfenden Komponente muss das Kennwort gar nicht gespeichert werden, sondern nur ein mit einer kryptologischen Hashfunktion berechneter Hashwert. Um Angriffe auf den Hashwert mit Hilfe von Hash-Tabellen (z. B. Rainbow Tables) zu verhindern, muss in den Hashwert auch ein Zufallswert (Salt) eingehen. Zusätzlich sollte die Funktion rechenintensiv sein (z. B. PBKDF2) um ein schnelles Durchprobieren zu unterbinden.
– Viele Kennwörter können aufgrund ihrer Einfachheit von Angreifern leicht erraten werden. Da die meisten Kennwörter von menschlichen Benutzern eingegeben werden (im Gegensatz zur Erzeugung durch Zufallsgeneratoren) und vor allem leicht einprägsam sein müssen, kommen häufig einfach zu erratende Kennwörter zum Einsatz, wie z. B. der eigene Name oder der Name eines Familienmitgliedes, des Freundes oder Haustieres, sowie Geburtstage oder Adressen.
– Bei Erzeugung durch Zufallsgeneratoren ist zu beachten, dass die erhaltenen Kennwörter schlecht zu merken sind und der Nutzer daher tendiert sie zu speichern oder aufzuschreiben. Eine Alternative ist die Kombination von Zufallsmechanismen und einfach zu merkenden Elementen, z. B. wie bei der Verwendung von Diceware.
– Das Kennwort sollte lang genug sein, um nicht durch Ausprobieren (Brute-Force-Angriff) ermittelt werden zu können. Das System sollte außerdem einen ausreichend großen Zeichensatz verwenden, mit dem das Kennwort gebildet wird. Die erforderliche Länge und Zusammensetzung hängt von mehreren Faktoren ab:
– Welche Zeichen verwendet werden (Ziffern, Buchstaben, Sonderzeichen, geordnet nach Komplexität, da Ziffern nur zehn Variationen von 0–9, Buchstaben hingegen 26 oder mit Groß- bzw. Kleinschreibung sogar 52 Variationen pro Zeichen zulassen, welche einen Brute-Force-Angriff auf das Kennwort deutlich erschweren).
– Ein Kennwort kann auch mithilfe von Zeichen sicherer gemacht werden, die es auf der Tastatur nicht gibt, z. B. „®,¤,©“. Diese Zeichen werden meist bei Brute-Force-Angriffen außer acht gelassen. Zum Eintippen verwendet man unter Windows dann Alt + 0174, Alt + 0164 und Alt + 0169. Die Ziffern müssen bei eingeschaltetem Num-Lock auf dem Ziffernblock getippt werden. Diese Methode ist nicht auf allen Systemen anwendbar, da für das Kennwort entweder nur ein eingeschränkter Zeichensatz zulässig ist (z. B. einige Großrechner) oder eine Eingabe über eine physische Tastatur nicht möglich ist (z. B. bei Smartphones).
– Ein Kennwort sollte nicht auf der Grundlage eines Wörterbuchangriffs gefunden werden können. Dies kann durch Kunstwörter ohne logischen Bezug, wie z. B. „Pfeifenleuchte“ oder „Vogeltastatur“ nicht ganz verhindert werden, da Wörterbuchangriffe auf Listen bekannter Kennwörter und Begriffe zugreifen und komplexere Wörterbuchangriffe mit Hybrid-Funktion mehrere Wörterreihen kombinieren und so auch Kunstwörter brechen können. Durch die Kombination mehrerer Wörter erhöht sich die Anzahl der zu ratenden Kombinationen sehr schnell, so dass durch mehrere willkürlich ausgewählte Wörter durchaus starke Kennwörter erzeugt werden können. Der Einsatz von Leetspeak (Darstellung von Buchstaben durch ähnlich aussehende Ziffern- oder Sonderzeichen, z. B. „W1|<1P3|)14" für "WIKIPEDIA") kann dazu dienen, durch die eingestreuten Ziffern- oder Sonderzeichen einen Wörterbuchangriff zu erschweren und das Wort trotzdem lesbar zu halten.
- Das passwortprüfende System sollte nur eine kleine Anzahl von Log-In-Versuchen von einer IP-Adresse in einem bestimmten Zeitraum zulassen, z. B. nur ein Kennwort pro Sekunde. Ansonsten können Rate-Angriffe (Brute-Force) direkt auf das System gestartet werden.
3. Ungünstige Kennwörter
Hierzu zählt man die leichtesten Kennwörter, also Wörter die einen Sinn ergeben oder deren Verwendung als Kennwörter gut dokumentiert ist. Dies ist dann möglich, wenn durch Kompromittierung von Webseiten große Mengen von Kennwörtern bekannt werden. Zu diesen Kennwörtern zählen nicht nur statische Begriffe, sondern auch Bildungsmuster, die vorhersehbar sind. Dazu gehören
– Einfache Zeichenketten von der Tastatur, z. B. asdf, wsxedc, tzughj etc.
– Einfache Ziffernketten, 123456, 54321, 13131 etc.
– Typische Begriffe aus dem Bereich der Authentifikation, also Varianten von Kennwort, geheim und so weiter
– Eigennamen – da diese häufig in Wörterbüchern zu finden sind, wird ein Wörterbuchangriff ermöglicht und deren Abwandlung in der Form von Kose-, Ruf- und Spitznamen.
– Geburtsjahre, Geburtstage o. Ä. und deren Verwendung als Anhang an einen anderen Begriff
– Typische Techniken, um Kennwortwechsel zu vereinfachen, wie z. B. Anhängen von Ziffern oder Monatskürzeln an einen feststehenden Begriff.
– Kennwörter die bei anderen Anbietern (wo sie eventuell weitergegeben oder gestohlen werden können) genutzt werden, oder erratbare Abwandlungen.
Diese sogenannten Trivialpasswörter können in vergleichsweise übersichtlichen Listen zusammengefasst werden und sind leicht zu recherchieren. Kennwortcracker erzeugen sie seit vielen Jahren auch teilweise automatisch, daher besitzen sie keine Schutzwirkung mehr.
Generell sollte man Kennwörter verwenden, die den oben vorgestellten Mustern nicht folgen. Hierbei können Programme helfen, die sichere Kennwörter erstellen.
4. Bildung eines sicheren Kennworts
Bewährt hat sch für die Erzeugung geeigneter Kennwörter das Abkürzungsverfahren, bei dem ein Kennwort aus einem Sprachsatz oder einer Gedichtzeile erzeugt wird. Dieses Verfahren führt zu einem Kennwort, das vom Benutzer gut im Gedächtnis behalten werden kann und dennoch sicher ist.
Beispiel
Wir wählen den Satz „Ein Kennwort ist nur solange sicher, solange es Unbefugten nicht zugänglich ist.“.
Den Satz schreiben wir geringfügig um: „1 Kennwort ist nur solange sicher, solange es Unbefugten nicht zugänglich ist.“
Die Anfangsbuchstaben und Satzzeichen dieses Satzes lauten „1Kinss,seUnzi.“.
Ersetzen wir jetzt Buchstaben durch ähnlich aussehende Ziffern- oder Sonderzeichen, so ergibt sich das Kennwort „1|<inss,seUnzi.“.
6. Alternativen
Anstatt Kennwörter manuell eingeben zu lassen, können Schlüssel auch in einer Schlüsseldatei abgelegt werden. Bei Anwendungen wie beispielsweise SSH kann neben der Authentifizierung mit einem Kennwort auch ein Public-Key-Verfahren eingesetzt werden. Der Vorteil ist dabei, dass die Gegenstelle den geheimen privaten Schlüssel nicht zu sehen bekommt. Auch hier wird der private Schlüssel in einer Datei gehalten und kann gegen unbefugtes Auslesen mit einem Kennwort geschützt werden.