lehrkraefte:blc:informatik:glf22:security

This is an old revision of the document!


Passwörter, Authentifikation

Am Schluss dieser Einheit sollten Sie einen Einblick in verschieden starke Möglichkeiten der Authentifizierung haben.

Für dieses Beispiel gehen wir davon aus, dass wir nur Kleinbuchstaben 'a' bis 'z' verwenden.

  1. Wie viele mögliche «Passwörter» der Länge 1 gibt es?
  2. Wie viele Passwörter der Länge der Länge 2 sind möglich?
  3. Wie viele mit Länge 8?
  4. Wie viele mit Länge 12?
  5. Wie sehen diese Zahlen aus, wenn wir auch noch Grossbuchstaben und Ziffern verwenden?

Lösungen

Lösungen

  1. $26$
  2. $26^2=676$ (für jeden möglichen ersten Buchstaben gibt es 26 Möglichkeiten für den zweiten, also $26\cdot 26$).
  3. $26^8 = 208'827'064'576 \approx 10^{11}$.
  4. $26^{12} = 95'428'956'661'682'176 \approx 10^{17}$
  5. $62$, $3844$, $218'340'105'584'896 \approx 10^{14}$, $3\cdot 10^{21}$.

Das Problem mit solchen Passwörtern ist, dass man die Buchstaben wirklich zufällig wählen sollte, damit man die berechnete Passwortstärke erhält. Tatsächlich verwenden Menschen aber meistens Wörter oder Namen, mit leicht abgeändert und mit Sonderzeichen angereichert werden. Das reduziert die Anzahl möglichen Passwörter wieder enorm. Und die Passwörter sind schwierig zu merken.

Einfacher zu merken sind Passwörter, wenn man 4 zufällige Wörter aneinander reiht. Wichtig ist, dass die Wörter zufällig ausgewählt werden!

  1. Wir nehmen an, wir hätten eine Liste mit 24'445 Wörtern. Wie viele Möglichkeiten gibt es, 4 Wörter hintereinander zu schreiben?
  2. Vergleichen Sie mit obigen Berechnungen.

Lösung

Lösung

  1. $24445^4 \approx 3\cdot 10^{17}$
  2. Die Passwortstärke ist also annähernd so gross, wie oben, nur dass diese nicht durch den Menschen verkleinert wird.

Hier finden Sie eine Liste mit 24'445 deutschen Wörtern: pwlist.txt.

Diese wurde aus folgender Liste gefiltert: https://sourceforge.net/projects/germandict/ (Häufige Wörter zwischen 6 und 9 Buchstaben lang).

Die Ursprüngliche Liste wurde aus Filmuntertiteln generiert.

Mit folgendem Python-Programm, können zufällige Wörter ausgewählt werden: pwgen.py

Generieren Sie einige Passwörter mit obiger Liste und obigem Programm. Versuchen Sie, das Python-Programm zu verstehen.

Womit steht und fällt die Sicherheit dieser Passwortgenerierung?

Antwort

Antwort

Die Vorraussetzung ist, dass die Auswahl wirklich zufällig erfolgt, und nicht irgendwie «nachhersagbar» ist. Würde der Zufallsgenerator bei jedem Programmstart das gleiche erzeugen, wäre das natürlich wertlos. Auch wenn z.B. nach 1000 Programmstarts wieder die gleichen Kombinationen erzeugt werden, ist die Sicherheit dahin.

Comicstrip zum Thema: https://xkcd.com/936/

Die Entropie eines Passworts ist die Anzahl der Ja/Nein-Fragen, die ein Angreifer nacheinander stellen muss, um das Passwort erst einzugrenzen und schließlich zu erraten. Da der Angreifer üblicherweise nicht auf jede dieser Ja/Nein-Fragen direkt eine Antwort bekommt, muss er die Ja/Nein-Fragen alle im Voraus kombinieren. Bereits bei 40 Ja/Nein-Fragen muss er dafür mehr als 1 Billion mögliche Passwörter ausprobieren.

Quelle: https://de.wikipedia.org/wiki/Passwort#Entropie

Nehmen wir an, Sie wollen sich bei der Webseite humpfdidumpf.ch anmelden.

  • Wie wird das Passwort übertragen? Was könnten da für Probleme auftauchen?
  • Wie wird das Passwort auf Korrektheit überprüft?
  • Die Webseite wird gehackt und der Angreifer bekommt die Daten zur Überprüfung der Benutzernamen/Passwörter in die Hände. Was könnte der Angreifer damit anstellen?
  • Wie kann man dem Angreifer sprichwörtlich die Suppe zum vornherein versalzen?

Lösungen

Lösungen

  • Die Übertragung muss verschlüsselt erfolgen (https), was heute praktisch immer der Fall ist.
  • Es gibt verschiedene Varianten, das zu bewerkstelligen:
    • Ganz schlecht: Die Passwörter sind im Klartext gespeichert und werden damit verglichen.
    • Schlecht: Es wird ein Hash der Passwörter gespeichert und dann die Hashes verglichen.
    • Gut: Neben dem Hash wird eine zufällige Zeichenkette (>10 Zeichen) gespeichert und dem Passwort angehängt. Erst dieses erweiterte Passwort wird gehasht.
    • Sehr gut: Anstatt einfach einen Hash aus dem gesalzenen Passwort zu berechnen, wird während knapp 1 Sekunde immer wieder der Hash vom Hash berechnet (eine bestimme Anzahl mal). Damit wird Passwörter durchprobieren zwecklos, weil der Rechenaufwand enorm ist. Für den Betreiber stellt das kein Problem dar, da sich die Benutzer ja nur punktuell anmelden.
  • Der Angreifer könnte sich als vertrauenswürdige angemeldete Personen ausgeben und damit
    • andere Leute zur Installation von Malware animieren.
    • zur Überweisung von Crypto oder anderen Werten veranlassen (Freund in Not).
    • die Benutzernamen/Passwort Kombination auf weiteren Seiten durchprobieren.
  • Je nachdem ist es trivial bis sehr schwierig an die Passwörter zu kommen, siehe oben.
  • lehrkraefte/blc/informatik/glf22/security.1685773854.txt.gz
  • Last modified: 2023/06/03 08:30
  • by Ivo Blöchliger