Passwortsicherheit, Länge, Komplexität
Die Sicherheit von Passwörten = Aufwand für Angreifer um das Passwort herauszufinden.
Angriffsmethoden auf Passworthashes im Vergleich
| Methoden zum Herausfinden: | Beispiel | Erfolg | Aufwand |
|---|---|---|---|
| Wissensbasierter Angriff | Name des Haustiers, der Ehefrau, Geburtstage... | ? | gering |
| Wörterbuch-Anrgiffe | nicht mehr als 10..20 Mio Wörter,sehr effizient | ? | gering |
| Brute Force | Alle Kombinationen von Zeichen ausprobieren | SICHER | sehr hoch |
Abwehrmassnahme des Benutzers
Aufwand zum Erraten hoch treiben. Es gibt dazu folgende Parameter:
- Zeichenraum (Zeichenumfang)
- Wortlänge
- Hashmethode*
Zeichenraum
| Raum | Grösse | ||
|---|---|---|---|
| a-z | 26 | ||
| a-z,A-Z | 52 | ||
| a-z,A-Z,0-9 | 64 | ||
| a-z,A-Z,0-9,$%&/()=... | 88* |
Brute-Force Aufwand
Die mögliche Kombination aus gegebenem Zeichenraum und Wortlänge muss möglichst so gross sein, dass das ausprobieren länger dauert als die geschützte Information von Wert ist. Die Anzahl X der möglichen Passwörter ( Länge N, Zeichenraum K ) Beispiel: Wortlänge N = 12 Zeichen mit dem Zeichenraum K = 64 (a-z,A-Z,0-9) Zeichenraum K vergrössert (übliche Sonderzeichen dazu):
Länge N um eins erhöht: Statt die teilweise umständlich zu schreibenden Sonderzeichen zu verwenden bringt es mehr Sicherheit die Wortlänge um eins zu erhöhen.
Trugschluss
Die Verwendung landesspezifischer Sonderzeichen erhöht die Sicherheit nur, wenn der Angreifer die Sprache NICHT weiss, ansonsten kann er sofort alle anderen landesspezifischen Sonderzeichen ausschliessen, was den Zeichenraum verkleinert.
Wie sicher ist Sicher?
Das hängt ab von der Rechenleistung mit der der Angreifer die Kombinationen durchprobieren kann. Das ändert sich ständig, denn ständig wird schnellere Computer-Hardware verfügbar.
Was kostet es den Angreifer?
Der Aufwand für einen Passwortbruch lässt sich auch in Form von Kosten darstellen, die für das Ausprobieren anfallen. Dabei ist angenommen, dass mit einem PC mit einer GPU gearbeitet wird das dann bei Vollast 500 W Leistung verbraucht und so einschliesslich Abschreibung der Anschaffung über 5 Jahre ca 4,– EUR Kosten pro Tag anfallen. Die Rechenleistung eines solchen PC+GPU Kombination liegt heute in der Grössenordnung von 50 Millionen Hashes / s (MD5). Supercomputer können heute in der Grössenordnung von 50 Billiarden (50×1015) Hash-Berechnungen pro Sekunde ausführen. Damit wird es aber nicht günstiger, nur schneller.
Beispiel
Passwort X2 benötigt 215×1021 Hashberechnungen. o.g. PC benötig dafür 4,3×1015 s. also 136 Mio Jahre und es kostet 199 Mrd EUR. Mit einem Supercomputer geht das 1 Mio mal schneller, also 136 Jahre, aber wie erwähnt nicht günstiger. Daran sieht man, dass sich Brute-Force nur für kurze Passwörter eignet. Es sind schon sehr viel längere Passwörter geknackt worden, aber mit Wörterbuch-Angriffen.
Bitcoin-Netzwerk wird mit einer Leistung von 69×1018 SHA256 Hashes/s (2019) angegeben. Das kann man zwar nicht einfach mal so zum Passwortknacken umfunktionieren, aber wenn man das könnte, wäre dieses Passwort in einer Stunde geknackt.
Stolperfallen, Angriffspunkte
Bequemlichkeit: häufigster Schwachpunkt der meisten Menschen, nicht nur wenn es um Sicherheit geht. Schwache Passwörter:
- Namen
- simple Zeichenfolgen (123456)
- Namen, evtl Kombiniert mit Geburtsjahr oder Telefonnummer
- Wörter oder Kombinationen aus solchen
- Filmtitel
- Filmzitate (I'll be back)
- Bibelzitate
- Gedicht-Auszüge
- Sprichwörter
Fazit
- Keinesfalls Wörter verwenden die in irgendwelchen Wörterbüchern oder Namenslisten vorkommen, auch nicht Klingonisch!
- Lieber ein längeres Passwort als exotische Sonderzeichen
- Keine auch noch so langen Zitate oder Gedichte verwenden, auch wenn diese leicht merkbar sind
- die üblichen Ersetzungschemen (O->0 oder E->3) bringen nichts, die sind in guten Wörterlisten schon eingearbeitet
- Sonderzeichen sind nicht auf allen Gerätetastaturen vorhanden und sind somit evtl. einschränkend
- Bei der Softwareauswahl darauf achten dass zum Speichern von Passwörtern möglichst sichere Hashalgorithmen verwendet werden. Keinesfalls so etwas wie MD5 oder NTLM.
Wenn möglich ist die Verwendung eines Passwormanagers sinnvoll, zum Beispiel KeePassXC Damit ist die Verwendung sehr langer Passwörter handhabbar selbst wenn diese nicht-mnemonische Zufallsfolgen sind. Solche kann man übrigens auch sehr gut mit openssl selber erzeugen:
openssl rand -base64 32
Base64 bedeutet also einen Zeichenraum von 64, aber wie gesagt man kann ja dafür ein paar Zeichen mehr nehmen.
Oder man eliminiert konsequent Sonderzeichen (+/)wobei sich der Zeichenraum auf 62 vermindert:
LAENGE=32; openssl rand -base64 $((LAENGE*2)) |sed -e 's/[^[:alnum:]]//g' |cut -c -${LAENGE}