Login

MFA verstehen: Wie Mehr-Faktor-Authentifizierung Konten schützt

Mario ·

Ein Mitarbeiter gibt sein Passwort auf einer täuschend echten Webseite ein. Oder das Passwort stand in einem Datenleck bei einem Onlineshop, und er hat es auch für die Firma benutzt. In beiden Fällen hat der Angreifer jetzt das Passwort. Ohne weitere Schutzschicht steht ihm das Konto offen. Mit Mehr-Faktor-Authentifizierung bleibt die Tür dagegen zu: Er hat zwar das Passwort, aber nicht den zweiten Faktor.

Im Beitrag Authentifizierung und Autorisierung hast du die drei Faktoren Wissen, Besitz und Inhärenz kennengelernt und gesehen, dass jedes einzelne Verfahren Schwächen hat. Hier geht es um die Kombination.

Was ist MFA?

MFA steht für Multi-Faktor-Authentifizierung, auf Deutsch Mehr-Faktor-Authentifizierung. Man weist seine Identität mit mindestens zwei verschiedenen Faktoren nach, zum Beispiel mit Passwort (Wissen) und Smartphone (Besitz). Bei genau zwei Faktoren spricht man von Zwei-Faktor-Authentifizierung (2FA).

Auf das Wort „verschieden“ kommt es an. Zwei Passwörter sind keine Zwei-Faktor-Authentifizierung, denn beide gehören zum Faktor Wissen. Wer eines erbeutet, kann oft auch das andere erbeuten. Wirklich stark wird es erst, wenn ein Angreifer zwei unabhängige Dinge besorgen muss: etwas, das du weißt, und etwas, das du besitzt.

Das gestohlene Passwort allein genügt dem Angreifer nicht mehr.

Die Methoden im Vergleich

Methode Faktor Wie funktioniert es? Sicherheit
SMS-Code Besitz (Telefonnummer) Ein Code wird per SMS geschickt Besser als nichts, aber anfällig für SIM-Swapping und Abfangen
Authenticator-App (TOTP) Besitz (Gerät mit Geheimnis) Die App berechnet alle 30 Sekunden einen neuen sechsstelligen Code Gut, schützt aber nicht vor Echtzeit-Phishing
Push-Bestätigung Besitz Eine App fragt „Bist du das?“, du bestätigst Gut mit Zahlenabgleich, sonst anfällig für Bestätigungs-Müdigkeit
Hardware-Sicherheitsschlüssel (FIDO2) Besitz Ein kleiner USB- oder NFC-Schlüssel beweist die Identität per Kryptografie Sehr gut, widersteht Phishing
Passkeys Besitz (Gerät) und Biometrie oder PIN Ein Schlüsselpaar auf dem Gerät ersetzt das Passwort Sehr gut, widersteht Phishing
Smartcard, Zertifikat Besitz und PIN Digitales Zertifikat auf einer Karte Sehr gut, verbreitet in Behörden und Konzernen

Als Faustregel gilt: Jede Form von MFA ist besser als keine. Wo das Risiko hoch ist, etwa bei Administratorkonten, nimmt man die starken, phishing-resistenten Verfahren (FIDO2, Passkeys, Smartcards).

Wie ein Einmalcode (TOTP) entsteht

Die Authenticator-Apps nutzen das Verfahren TOTP (Time-based One-Time Password). Es steckt kein Zauber dahinter, nur Mathematik:

  1. Beim Einrichten tauschen Server und App ein gemeinsames Geheimnis aus. Das passiert beim Scannen des QR-Codes.
  2. Beide kennen die aktuelle Uhrzeit. Sie teilen sie in 30-Sekunden-Fenster auf und zählen diese Fenster durch.
  3. Aus Geheimnis und Fensterzähler berechnet eine kryptografische Funktion (HMAC) einen Wert. Daraus werden sechs Ziffern abgeleitet.
  4. Bei der Anmeldung tippst du den Code ein. Der Server rechnet dasselbe aus und vergleicht.

Weil Server und Gerät dieselbe Rechnung machen, braucht die App keine Verbindung zum Internet. Und weil sich der Code alle 30 Sekunden ändert, ist ein abgefangener Code kurz darauf wertlos. Das Verfahren ist im Standard RFC 6238 beschrieben. Als Beispiel eine kleine Python-Umsetzung:

import base64, hashlib, hmac, struct, time

def totp(secret_b32, digits=6, step=30, t=None):
    key = base64.b32decode(secret_b32)
    zaehler = int((time.time() if t is None else t) // step)
    h = hmac.new(key, struct.pack(">Q", zaehler), hashlib.sha1).digest()
    offset = h[-1] & 0x0F
    code = (struct.unpack(">I", h[offset:offset + 4])[0] & 0x7FFFFFFF) % 10 ** digits
    return str(code).zfill(digits)

# Testwert aus RFC 6238 (SHA-1, 8 Stellen, Zeit 59 s)
print(totp("GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ", digits=8, t=59))   # 94287082

# Aktueller Code zu einem Demo-Geheimnis
print(totp("JBSWY3DPEHPK3PXP"))

Die Funktion teilt die Unix-Zeit durch 30 (der Zähler), berechnet den HMAC, wählt über das letzte Byte vier Bytes aus und kürzt das Ergebnis auf die gewünschte Stellenzahl. Die erste Ausgabe ist der Testwert aus dem Standard und lautet 94287082. Stimmt er, ist die Umsetzung korrekt. Die zweite Ausgabe ändert sich alle 30 Sekunden. Das Geheimnis JBSWY3DPEHPK3PXP ist ein bekanntes Demo-Geheimnis und darf nie für echte Konten verwendet werden.

Die Uhren müssen dabei halbwegs übereinstimmen. Weicht die Uhr des Geräts oder Servers zu stark ab, passen die Codes nicht mehr. Deshalb sorgt man auch hier für einen gemeinsamen Zeitserver (NTP), wie im Beitrag Monitoring verstehen angemerkt.

Wie schwer ist ein sechsstelliger Code zu erraten?

Sechs Ziffern ergeben 106 = 1.000.000 mögliche Codes. Ein einzelner Rateversuch trifft mit einer Wahrscheinlichkeit von 1 zu einer Million. Die Absicherung steckt im Zusammenspiel mit dem Zeitfenster und der Sperre:

Fünf Versuche vor einer Sperre: 5 ÷ 1.000.000 = 0,0005 %

Ohne Sperre müsste ein Angreifer in einem 30-Sekunden-Fenster
alle Codes durchprobieren: 1.000.000 ÷ 30 ≈ 33.333 Versuche pro Sekunde

Über das Netz sind solche Raten gegen einen ordentlich abgesicherten Dienst nicht erreichbar, vor allem, wenn dieser Fehlversuche begrenzt. Deshalb ist die Sperre nach einigen Fehlversuchen Teil guter Anmeldesysteme.

Server und App rechnen unabhängig voneinander denselben Code aus Geheimnis und Zeit.

Wie Angreifer MFA zu umgehen versuchen

MFA ist kein Allheilmittel. Angreifer haben ihre Methoden angepasst, und gute Verteidigung kennt sie:

Angriff Wie funktioniert er? Schutz
Echtzeit-Phishing (Proxy-Seite) Eine gefälschte Seite leitet Passwort und Einmalcode sofort an die echte Seite weiter und übernimmt die Sitzung Phishing-resistente Verfahren (FIDO2, Passkeys), Schulung
Bestätigungs-Müdigkeit (MFA-Fatigue) Der Angreifer löst mit gestohlenem Passwort immer wieder Push-Anfragen aus, bis der genervte Benutzer zustimmt Zahlenabgleich (Number Matching), Begrenzung der Anfragen, Meldung bei unerwarteten Anfragen
SIM-Swapping Der Angreifer übernimmt die Telefonnummer des Opfers und empfängt dessen SMS App oder Sicherheitsschlüssel statt SMS
Diebstahl der Sitzung Schadsoftware stiehlt das Anmelde-Cookie nach erfolgreicher Anmeldung Aktuelle Endgeräte, Virenschutz, kurze Sitzungsdauer
Angriff über den Helpdesk Der Angreifer bittet den Support, den zweiten Faktor „zurückzusetzen“ Klare Prüfung der Identität vor jedem Reset

Warum sind FIDO2 und Passkeys dagegen so widerstandsfähig? Der Schlüssel ist an die Webadresse gebunden. Er antwortet nur der echten Domain, für die er eingerichtet wurde. Auf einer gefälschten Seite mit anderer Adresse liefert er schlicht nichts, egal wie gut sie aussieht. Der Mensch kann sich nicht täuschen lassen, weil er gar nichts eintippt. Das Thema Phishing vertieft der Beitrag Phishing erkennen.

Wo man MFA zuerst einführt

Nicht alles auf einmal, sondern nach Risiko:

  1. Administratorkonten. Wer alles darf, ist das lohnendste Ziel.
  2. Fernzugriffe wie VPN und Remote-Desktop, weil sie von außen erreichbar sind.
  3. E-Mail und Cloud-Dienste. Wer das Postfach kontrolliert, kann Passwörter anderer Dienste zurücksetzen.
  4. Passwortmanager und wichtige Fachanwendungen.
  5. Alle übrigen Konten nach und nach.

Notfälle einplanen

MFA hat einen Haken: Geht der zweite Faktor verloren, ist man ausgesperrt. Darauf muss man vorbereitet sein:

  • Zwei Faktoren registrieren: Neben der App zum Beispiel einen zweiten Hardware-Schlüssel oder ein zweites Gerät.
  • Backup-Codes ausdrucken und sicher verwahren. Es sind Einmalcodes für den Notfall.
  • Notfallkonten (Break-Glass): Mindestens ein Administratorkonto, das nicht an die normale MFA-Infrastruktur gekoppelt ist, mit sehr langem Passwort in einem Safe. Sein Gebrauch wird besonders überwacht.
  • Klarer Reset-Prozess mit sicherer Identitätsprüfung, damit der Support nicht zum Einfallstor wird.

Praxisbeispiel: MFA in der Firma

Die Firma führt MFA in zwei Phasen ein. Phase 1 betrifft die risikoreichsten Zugänge:

Zugang Faktor 1 Faktor 2
Administratorkonten (Server, Netzwerkgeräte) Passwort oder SSH-Schlüssel mit Passphrase Hardware-Sicherheitsschlüssel (FIDO2)
VPN für Mitarbeiter im Homeoffice Benutzername und Passwort über RADIUS Code aus der Authenticator-App
E-Mail und Cloud-Dienste Benutzername und Passwort Code aus der Authenticator-App oder Push mit Zahlenabgleich

Das VPN bindet sich dabei an denselben RADIUS-Server, der schon für das WLAN im Beitrag WLAN-Sicherheit beschrieben wurde. Die Kosten für die Administratoren sind überschaubar. Annahme: 6 Administratoren, jeder bekommt zwei Sicherheitsschlüssel (einen zum Arbeiten, einen als Reserve), Stückpreis 55 Euro:

6 × 2 × 55 € = 660 €

Im Vergleich zu den 2.560 Euro jährlichem Ransomware-Risiko aus dem Beitrag IT-Sicherheit Grundlagen ist das ein kleiner Betrag. Die Authenticator-Apps für die übrigen Mitarbeiter kosten nichts.

Der Ablauf der Einführung: Pilotgruppe aus der IT, danach Schulung für alle mit einer Anleitung für Verlust des Telefons, dann die Umstellung nach Abteilungen. Wer Ausnahmen braucht, bekommt sie dokumentiert und befristet, und die Geschäftsleitung ist ausdrücklich nicht von der Regel ausgenommen, denn sie ist das häufigste Ziel gezielter Angriffe. Für die Administrator-Zugänge per SSH kommt zusätzlich der Schlüssel aus dem Beitrag zur Authentifizierung zum Einsatz.

MFA nach Risiko einführen, mit Notfallplan für den Verlust des zweiten Faktors.

Einmalcodes selbst erzeugen und prüfen

Unter Linux kannst du mit dem Programm oathtool (Paket oath-toolkit) Einmalcodes aus einem Geheimnis erzeugen. Das ist praktisch, um das Verfahren auszuprobieren oder die Einrichtung zu prüfen. Mit dem Demo-Geheimnis von oben:

oathtool --totp -b JBSWY3DPEHPK3PXP

Die Option --totp wählt das zeitbasierte Verfahren, -b sagt, dass das Geheimnis in Base32 vorliegt. Die Ausgabe ist dieselbe sechsstellige Zahl, die auch eine App oder das Python-Beispiel liefert. Für echte Konten gehört das Geheimnis nie in die Kommandozeile oder in Skripte, wo andere es mitlesen können.

Typische Fehler und Missverständnisse

  • Zwei Passwörter für Zwei-Faktor halten. Es müssen verschiedene Faktoren sein.
  • SMS als einzige Methode für Administratoren. Sie ist die schwächste Variante. Nutze App oder Sicherheitsschlüssel.
  • Keine zweite Methode registriert. Beim Verlust des Telefons ist man ausgesperrt.
  • Backup-Codes ungeschützt ablegen. Ein Foto im Handy oder eine Datei auf dem Desktop macht sie wertlos.
  • Push-Anfragen ohne Gegenprüfung bestätigen. Eine Anfrage, die du nicht ausgelöst hast, bestätigst du nie.
  • Ausnahmen für „wichtige“ Personen. Gerade die Geschäftsleitung ist ein bevorzugtes Ziel.
  • Reset ohne Identitätsprüfung. Der Helpdesk wird sonst zum Umweg um MFA.
  • „Mit MFA ist das Passwort egal.“ Beide gehören zusammen, ein schwaches Passwort bleibt eine Schwäche.
  • Den QR-Code der Einrichtung speichern oder weitergeben. Er enthält das Geheimnis.
  • MFA als Ersatz für Schulung sehen. Menschen müssen Phishing erkennen können, auch mit MFA.

Zum Üben

  1. Warum sind zwei Passwörter keine Zwei-Faktor-Authentifizierung?
  2. Ein TOTP-Code hat sechs Ziffern. Wie viele Codes gibt es, und wie groß ist die Chance, bei fünf Versuchen zu raten?
  3. Wie lange ist ein typischer TOTP-Code gültig?
  4. Warum ist der SMS-Code schwächer als eine Authenticator-App?
  5. Warum widerstehen FIDO2-Sicherheitsschlüssel Phishing?
  6. Was ist MFA-Fatigue, und was hilft dagegen?
  7. Nenne zwei Möglichkeiten, wie man sich bei Verlust des Telefons wieder anmelden kann.
  8. Sechs Administratoren bekommen je zwei Sicherheitsschlüssel zu 55 Euro. Was kostet das?

Lösungen: (1) Beide gehören zum selben Faktor, dem Wissen. Wer eines erbeutet, kann oft auch das andere erbeuten. (2) 106 = 1.000.000 Codes. Bei fünf Versuchen 5 ÷ 1.000.000 = 0,0005 Prozent. (3) Typischerweise 30 Sekunden. (4) SMS lassen sich durch SIM-Swapping umleiten oder abfangen. Die App rechnet den Code auf dem Gerät aus. (5) Der Schlüssel ist an die Webadresse gebunden und antwortet nur der echten Domain. Auf einer gefälschten Seite liefert er nichts. (6) Der Angreifer löst mit gestohlenem Passwort immer wieder Push-Anfragen aus, bis der Benutzer zustimmt. Dagegen helfen Zahlenabgleich, Begrenzung der Anfragen und die Regel, unerwartete Anfragen nie zu bestätigen und zu melden. (7) Zum Beispiel ein zweiter registrierter Faktor (zweiter Schlüssel oder Gerät), Backup-Codes, ein Reset über den Support mit sicherer Identitätsprüfung. (8) 6 × 2 × 55 € = 660 €.

Das solltest du dir merken

  • MFA verlangt mindestens zwei verschiedene Faktoren. Ein gestohlenes Passwort genügt dem Angreifer dann nicht mehr.
  • TOTP-Codes entstehen aus einem gemeinsamen Geheimnis und der Uhrzeit und gelten etwa 30 Sekunden.
  • Nicht jede Methode ist gleich stark. SMS ist schwach, Apps sind gut, FIDO2 und Passkeys widerstehen Phishing.
  • Angreifer versuchen, MFA zu umgehen: Echtzeit-Phishing, Bestätigungs-Müdigkeit, SIM-Swapping, Sitzungsdiebstahl, Helpdesk-Reset.
  • Führe MFA nach Risiko ein: Administratoren, Fernzugriff, E-Mail und Cloud zuerst.
  • Plane den Notfall: zwei Faktoren, Backup-Codes, Break-Glass-Konto und einen Reset-Prozess mit Prüfung.

MFA schützt die Anmeldung. Der Verkehr zwischen Netzen braucht ebenfalls einen Wächter, der festlegt, was durchdarf. Wie moderne Firewalls das mit Regeln, Zonen und Filtern erledigen, zeigt der nächste Beitrag: Firewall verstehen.

Weiterlesen