zurück
Sichere Kennwörter
Einer der häufigsten Ursachen für erfolgreiche Einbrüche in ein System, liegt am Versagen die Zugangsberechtigungen zu überprüfen, der Authentifikation.
Bei der Authentifikation identifiziert sich also ein Benutzer an einem System, er authentifiziert sich.
Das bedeutet durch die Authentifikation beweist man seine Identität bzw. liefert einen Nachweis, dass man wirklich der ist, für den man sich ausgibt.
In der Informatik findet solch eine Authentifikation z.B. beim Anmelden am System statt oder wenn man sich z.B. an seinem E-Mail-Konto anmeldet.
Bei diesen Mechanismen ist meist das Kennwort der Identitätsnachweis für einen Benutzer.
Somit spielt das Kennwort oft bei der Authentifikation eine zentrale Rolle.
Doch wie kann sich ein Angreifer dies zunutze machen?
Meistens versuchen Angreifer, unautorisierten Zugang zu Computersystemen zu erlangen, indem sie durch gezieltes Raten die Passwörter von legitimen Benutzern knacken.
Dabei greifen diese entweder auf Social Engineering Techniken zurück oder verwenden Passwort-Cracker.
Diese Passwort-Cracker versuchen entweder durch Lücken im verwendeten Authentifikationsalgorithmus das Passwort zu knacken oder greifen auf Brute-Force- oder Dictionary-Angriffe zurück.
Bei Brute-Force-Angriffen werden einfach alle möglichen Varianten aus einem vorher definierten Pool aus Zeichen ausgeführt, der solange abläuft bis eine Übereinstimmung mit dem Kennwort des Benutzers gefunden wurde oder das definierte Ende erreicht ist.
Bei dem Dictionary-Angriff, auch als Wörterbuch-Angriff bezeichnet, ist der Pool ein Wörterbuch bzw. eine Datei mit vielen möglich Varianten die es für ein Kennwort geben könnte.
Durch gezieltes Social Engineering könnte ein Angreifer eine Dictionary-File (Wörterbuch-Datei) erstellen, bei der die Möglichkeiten auf ein Minimum reduziert sind.
Eine weitere, sehr beliebte Methode, ist bei Angreifern das Verwenden von so genannten
Rainbowtables. Dies ist eine von Philippe Oechslin entwickelte Datenstruktur, die eine schnelle, probabilistische Entschlüsselung von Hashwerten ermöglicht.
Sehr beliebt sind solche Tabellen bei Lanman/NTLM Hashes welche noch unter bestimmten Umständen bei Windows XP oder 2003 im Einsatz sind um Kompatibilität zwischen Pre-Windows 2000 Maschinen herzustellen.
Bei den meisten Linux Distributionen wird der Einsatz von solchen Datenstrukturen erschwert, indem man zum Salting greift. Dies ist eine zufällige Bitfolge die den Hash verändert.
Somit wird ersichtlich, dass nicht nur das Kennwort sondern auch das Computer-Authentifizierungsschema, der verwendete Verschlüsselungsalgorithmus, sowie die Implementierung der Authentifikation dabei eine bedeutende Rolle spielen.
Dennoch werde ich hier nur auf das Erstellen von sichereren Kennwörtern eingehen.
Auch der beste Algorithmus zum Verschlüsseln des Kennwortes oder das beste Computer-
Authentifizierungsschema bringt nichts, wenn das Kennwort nur 4 Zeichen hat und man es
einfach erraten kann.
Um einen Angreifer nun den Angriff auf das System zu erschweren, ist der erste Schritt
das Verwenden eines schwer zu erratenden Kennwortes.
Relativ sichere Kennwörter bestehen dabei aus einer Kombination von Buchstaben, Ziffern
und Sonderzeichen, wobei sich die Buchstaben auch in Groß- und Kleinbuchstaben
unterscheiden sollten.
Ein Beispiel für ein relativ sicheres Kennwort wäre zum Beispiel Ham1.iewT!S06, aber wer
kann sich ein solches Kennwort merken? Eine Möglichkeit dazu wäre, sich irgendeinen
Satz zu merken und halt nur die Anfangsbuchstaben verwendet, z.B.: Wir gehen gerne 5 mal
in Woche 33 Meter laufen!
Das Kennwort welches man jetzt daraus ableiten könnte, wäre dann Wgg5miW33Ml!
Die unten dargestellte Liste beschreibt Kennwörter, die man unter gar keinen Umständen
wählen sollte, da diese durch einen potentiellen Angreifer sehr leicht zu erraten sind.
Für ein unsicheres Kennwort gilt Folgendes:
1. Der eigene Name/Accountname
2. es ist leer
3. generell Namen
4. Der Name des Betriebssystems
5. Der Hostname des Computers
6. Telefonnummern
7. Autokennzeichen
8. Usernamen des verwendeten Computers
9. Ein Wort aus einem Wörterbuch, Fremdwörter oder Wörter aus anderen Sprachen
10. Geburtstage
11. Straßen oder Städtenamen
12. Einfache Zeichenfolgen wie abcd, 12345, qwertz (auch nicht in Großbuchstabgen!)
13. Tastaturmuster, wie z.B. asdf oder rewq
14. Alle genannten Varianten rückwärts geschrieben oder nur von einer Zahl gefolgt
Jetzt wo wir wissen, wie ein unsicheres Kennwort aussieht, gilt es zu definieren wie ein sicheres Kennwort aussieht.
Für ein sicheres Kennwort gilt Folgendes:
1. Es umfasst mindestens 8 Zeichen
2. Es unterscheidet sich deutlich von früheren Kennwörtern. Inkrementelle Kennwörter (Kennwort1, Kennwort2, Kennwort3 usw.) sind nicht sicher.
3. Es enthält Zeichen aus jeder der folgenden Gruppen:
- Kleinbuchstaben
- Großbuchstaben
- Ziffern
- Sonderzeichen
4. Es beinhaltet keines der Faktoren für ein unsicheres Kennwort
5. Es ist nirgends notiert, denn das hebt die ganze Sicherheit die das Kennwort darstellen soll auf. Z.B. nicht einen Zettel mit dem Kennwort auf der Rückseite des Monitors festkleben
Ein Kennwort kann die meisten Kriterien für ein sichereres Kennwort erfüllen, aber dennoch relativ unsicher sein. Ein Beispiel dafür wäre z.B. HalloWelt06!, der Grund wieso man solch ein Kennwort als unsicher betrachten muss, liegt wohl daran, dass man solch ein Kennwort in guten Wörterbüchern finden wird.
Um den Kennwörtern noch ein zusätzliches Maß an Sicherheit zu geben kann man unter Windows noch Zeichen aus dem erweiterten ASCI-Zeichensatz nehmen. So kann "®" mithilfe der Alt Taste wie folgt erstellt werden:
ALT+0174
Allerdings sollte man beim Erstellen seiner eigenen Kennwortrichtlinie festlegen, welche Sicherheitsziele man verfolgt. So sollten Vorgaben immer einen praktikablen Kompromiss zwischen folgenden Sicherheitszielen darstellen:
1. Die Zusammensetzung des Kennwortes muss so komplex sein das es nicht leicht erraten werden kann
2. Die Anzahl der möglichen Kennwörter in der Richtlinie muss so groß sein, dass es in keinen vertretbaren Zeitraum durch einfaches ausprobieren ermittelt werden kann.
3. Das Kennwort darf nicht zu kompliziert sein, damit der Benutzer mit vertretbarem Aufwand das Kennwort auswendig lernen kann.
Somit sollte man auch beim Setzen einer Kennwortrichtlinie für einen selber oder für ein Unternehmen bedenken, dass sich Sicherheit immer nach den Anforderungen richtet.
So kann eine Kennwortrichtlinie für private Zwecke z.B. für ein E-Mail Konto ganz anders aussehen als Administrator-Kennwort eines Servers und sollte es auch.
Denn die oben aufgestellten Kriterien für ein sicheres Kennwort sind sehr allgemein gehalten und müssen je nach Anforderung spezifiziert werden.
Um auf das Beispiel mit dem Administrator-Kennwort eines Servers zurück zu kommen, so sollte hier die minimale Kennwortlänge ruhig auf mehr Zeichen als 8 Zeichen erhöt werden. Genauso sollten sich Komplexität des Kennwortes und das Zusammenspiel der einzelnen Gruppen genauer und restriktiver gesetzt werden.
Einen weiteren wichtigen Faktor hierbei spielt auch die Dauer wie lange ein Kennwort gültig ist und nach welcher Anzahl an Tagen ein schon verwendetes Kennwort wieder benutzt werden darf.
Weitere Informationen hierzu sind folgenden Seiten zu entnehmen:
bsi-fuer-buerger.de
bsi.de
DoD
Zum Schluss sollte noch gesagt sein, dass man sich stets darüber im Klaren sein sollte, dass ein System nur so sicher ist wie sein schwächstes Kennwort.
Aus diesem Grund ist es Notwendig, alle Benutzer eines Systems darauf zu verweisen, starke Kennwörter zu verwenden, die nicht aus irgendwelchen bekannten Wörtern bestehen und am besten nicht den zuvor genannten Kriterien entsprechen.
Für Fragen oder Kritik stehe ich natürlich jederzeit zur Verfügung.
Schreibt einfach eine Email an:
duddits_at_remoteshell-security.com
Mit freundlichen Grüßen
duddits
Nach oben
|