Authentifizierung

Die Zwei-Faktor-Authentifizierung (2FA) ist ein Sicherheitsprozess, der von Benutzern verlangt, zwei verschiedene Identifikationsformen anzugeben, um ihre Identität zu verifizieren, bevor sie auf ein Konto oder System zugreifen.

Die Zwei-Faktor-Authentifizierung (2FA) ist eine Multi-Faktor-Authentifizierungsmethode (MFA), die die Sicherheit erhöht, indem zwei verschiedene Authentifizierungsfaktoren zur Verifizierung der Benutzeridentität erforderlich sind. Diese Faktoren werden typischerweise in drei Kategorien eingeteilt: etwas, das der Benutzer weiß (z. B. Passwort, PIN), etwas, das der Benutzer hat (z. B. ein physischer Token, Smartphone, Smartcard) und etwas, das der Benutzer ist (z. B. Fingerabdruck, Gesichtsscan). Eine gängige Implementierung beinhaltet ein Passwort (Wissensfaktor) kombiniert mit einem Einmalpasswort (OTP), das von einer Authenticator-App generiert oder per SMS gesendet wird (Besitzfaktor). Der Prozess beginnt damit, dass der Benutzer seine primäre Anmeldeinformation, normalerweise ein Passwort, eingibt. Nach erfolgreicher Validierung des ersten Faktors fordert das System den zweiten Faktor an. Die Gültigkeit des zweiten Faktors wird dann gegen einen voreingetragenen Wert oder einen zeitbasierten Algorithmus geprüft. Wenn beide Faktoren erfolgreich authentifiziert sind, wird der Zugriff gewährt. Der Hauptvorteil von 2FA ist seine Widerstandsfähigkeit gegen gängige Angriffsvektoren wie Phishing, Credential Stuffing und Brute-Force-Angriffe, da die Kompromittierung eines einzelnen Faktors nicht ausreicht, um unbefugten Zugriff zu erlangen. Nachteile sind jedoch erhöhte Benutzerreibung, die Möglichkeit verlorener oder gestohlener zweiter Faktoren und die Abhängigkeit von der Sicherheit des Zustellmechanismus des zweiten Faktors (z. B. SMS-Abfangen). Fortgeschrittene Implementierungen können risikobasierte Authentifizierung beinhalten, bei der das System die Anzahl oder Art der erforderlichen Faktoren dynamisch basierend auf dem Kontext, wie Standort, Gerät oder Tageszeit, anpasst.

        graph LR
  Center["Authentifizierung"]:::main
  Rel_authorization["authorization"]:::related -.-> Center
  click Rel_authorization "/terms/authorization"
  Rel_mfa_multi_factor_authentication["mfa-multi-factor-authentication"]:::related -.-> Center
  click Rel_mfa_multi_factor_authentication "/terms/mfa-multi-factor-authentication"
  Rel_single_sign_on_sso["single-sign-on-sso"]:::related -.-> Center
  click Rel_single_sign_on_sso "/terms/single-sign-on-sso"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Erkläre es wie einem 5-Jährigen

Es ist, als ob man zwei Schlüssel braucht, um eine besondere Schatzkiste zu öffnen: einen Schlüssel, den man kennt (wie einen geheimen Code), und einen anderen Schlüssel, den man hat (wie ein besonderes Spielzeug).

🤓 Expert Deep Dive

Die Zwei-Faktor-Authentifizierung (2FA) erweitert die Sicherheit grundlegend, indem sie einen zusätzlichen Verifizierungsmechanismus über die primäre Anmeldeinformation (typischerweise ein Passwort oder eine Passphrase) legt. Dieser Prozess folgt dem Prinzip der Multi-Faktor-Authentifizierung (MFA) und erfordert spezifisch zwei verschiedene Faktoren aus den folgenden Kategorien:

  1. Etwas, das Sie wissen: Passwörter, PINs, Antworten auf Sicherheitsfragen.
  2. Etwas, das Sie haben: Physische Token (z. B. YubiKey, RSA SecurID), Smartphones mit Authenticator-Anwendungen (z. B. Google Authenticator, Authy) oder SIM-Karten für SMS-basierte OTPs.
  3. Etwas, das Sie sind: Biometrische Daten wie Fingerabdrücke, Gesichtsscans oder Iris-Muster.

Eine gängige Implementierung beinhaltet zeitbasierte Einmalpasswörter (TOTP), standardisiert durch RFC 6238. TOTP-Algorithmen generieren alle 30-60 Sekunden einen neuen Code basierend auf einem gemeinsam genutzten geheimen Schlüssel (der bei der Ersteinrichtung bereitgestellt wird) und der aktuellen Zeit, oft synchronisiert über NTP. Die serverseitige Validierung beinhaltet die Neuberechnung der erwarteten OTPs für ein gegebenes Zeitfenster und den Vergleich mit dem vom Benutzer bereitgestellten Code.

Eine weitere verbreitete Methode sind HMAC-basierte Einmalpasswörter (HOTP), definiert in RFC 4226, die Codes basierend auf einem Zähler generieren, der bei jeder Verwendung inkrementiert wird. Der Server und der Client müssen synchronisierte Zähler beibehalten.

Fortgeschrittenere Implementierungen nutzen Universal 2nd Factor (U2F) und dessen Nachfolger FIDO2, die Public-Key-Kryptographie nutzen. Während der Registrierung wird ein eindeutiges privates/öffentliches Schlüsselpaar auf dem Sicherheitsschlüssel generiert und der öffentliche Schlüssel beim Dienst registriert. Die Authentifizierung beinhaltet, dass der Server eine Herausforderung sendet, die das FIDO-Gerät mit seinem privaten Schlüssel signiert, was der Server dann mit dem registrierten öffentlichen Schlüssel verifiziert. Dies bietet eine starke Resistenz gegen Phishing-Angriffe, da der Schlüssel das Gerät nie verlässt und an den spezifischen Ursprung (Domain) der Website gebunden ist.

📚 Quellen