Zum Inhalt springen

Authentifizierung

Woher weiß mein Computer, mein Handy, oder meine FH Mailbox wer ich bin?

Das ist die Problemstellung der Authentifizierung (oder auf englisch kürzer: Authentication).

Wie kann ich meine Identität beweisen?

  • etwas, was ich weiß: ein Passwort
  • etwas, was ich bin: Gesicht, Fingerabdruck, Retina
  • etwas, was ich habe: einen geheimen Schlüssel

Spätestens seit Covid wird für wichtige Systeme “Zwei Faktor Authentisierung” verwendet, man braucht also zwei unabhängige Methoden.

Wir werden vier Methoden näher betrachten:

  1. Passwörter
  2. TOTP
  3. Passkeys
  4. Schlüsselpaare (Öffentlich/Privat)

Alt, weit verbreitet, und durch das menschliche Gedächtnis eng beschränkt.

Wenn man ein paar Jahre lang das Internet verwendet braucht man hunderte und tausende von Passwörtern für die verschiedenen Dienste.

Warum sollte man nicht dasselbe Passwort für verschiedene Dienste verwenden?

Jeden Tag wird irgendwo am Netz eingebrochen und eine Datenbank mit User-Daten wird gestohlen. Die Daten werden dann verkauft. Hier ein sehr altes Beispiel:

Laut Europäischem Datenschutz müssten die Betroffenen so eines Einbruchs immer informiert werden.

Meist sind die Passwörter nicht einfach als Text gespeichert, sondern zuerst mit einer Hash-Funktion behandelt. Dadurch kann man nicht das Passwort auslesen, man sieht nur “den Hash”.

Aber man kann ausprobieren ob ein bestimmtes Wort das Passwort ist - weil es denselben “Hash” ergibt. Mit einem guten Wörterbuch und einer Hitliste der beliebtesten Passwörter kann man viel erreichen.

Eines, das schon auf einer Liste der beliebten Passwörter steht. Das kann man bei https://haveibeenpwned.com/Passwords ausprobieren:

  • Eines das nicht auf der Liste der bekannten Passwörter steht
  • das möglichst lang ist
  • das ich mir sicher merken kann
  • das ich auf verschiedenen Eingabegeräten sicher eingeben kann (also eher keine Umlaute)

Wenn ich mir drei starke Passwörter merken kann bin ich gut versorgt:

  • Ein “Master-Passwort” für den Passwortmanager
  • Ein Passwort für meine wichtigste E-Mail
  • Ein Passwort für meinen Cloud Speicher (z.B. NextCloud, Dropbox, …)

Mein Passwortmanager soll sich die 2500 Passwörter für meine vielen Internet-Dienste merken.

Wenn man liest “Zwei Faktor (2F) Authentisierung mit dem Microsoft/Google/xxx Authenticator” dann ist das in Wirklichkeit gar nicht von einem bestimmten “Authenticator” abhängig. Das Verfahren zum Erzeugen der zeitabhängigen Einmalpasswörter ist als RFC 6238 veröffentlicht, ist ein offener Standard und frei von Patenten.

Beim Einrichten muss einmal der geheime Schlüssel vom Server auf mein Gerät übertragen werden - mittels QR Code, oder einfach als Zeichenkette.

Zur Authentifizierung brauchen beide Seiten die genaue Uhrzeit (abgerundet auf 30 Sekunden) Sie berechnen aus der Uhrzeit und dem geheimen Schlüssel das “Einmalpasswort”.

Siehe Wikipedia: Time-based one-time password

Der PassKey ist ein Verfahren das kein Passwort braucht. Das Verfahren besteht aus offenen Standards: WebAuthn und CTAP2 / X.1278 Ich brauche eine Software, die den PassKey erzeugen, speichern und verwenden kann, dafür gibt es mehrere Angebote.

Wenn ich mich zum ersten Mal bei einer neuen Domain mit PassKey anmelden will, erstellt meine Software ein Schlüsselpaar aus öffentlichem und privatem Schlüssel. Der private Schlüssel wird im Passwortmanager gespeichert, der öffentliche Schlüssel an den Dienst übermittelt.

Will ich mich später wieder anmelden, dann wird ein “Challenge-Response” Verfahren angewandt: Der Dienst sendet einen Zufallstext als “Challenge”. Meine Software fragt bei mir um Erlaubnis, dass der Passkey verwendet werden darf. Falls ja unterzeichnet die Software den Challenge-Text mit meinem privaten Schlüssel und schickt ihn zurück. Der Dienst kann nun mit dem öffentlichen Schlüssel prüfen, ob die Signatur stimmt.

Anmeldung mit öffentlichem und privatem Schlüssel

Abschnitt betitelt „Anmeldung mit öffentlichem und privatem Schlüssel“

Wie Schlüsselpaare und asymmetrische Kryptologie funktionieren wurde schon in den 1970er Jahren erfunden. Im Passkey sind sie einfach zu verwenden.

Für das interaktive Arbeiten auf einem Server über ssh und für die Verwaltung von Code-Dateien mit git werden wir ein Schlüsselpaare selbst erzeugen und nutzen.

Auf dieser Ebene ist alles unbequemer: die Schlüssel werden als zwei Dateien im Ordner .ssh gespeichert. Die eine Datei hat keine Endung, sie enthält den privaten Schlüssel. Die andere Datei hat die Endung .pub und enthält den öffentlichen Schlüssel.