TYPO3 MFA Extensions – Möglichkeiten der Zwei Faktor Authentifizierung

Inhaltsverzeichnis


Disclaimer

Vorab: Ich habe mich bei brandung und auch privat mit den aktuellen MFA Möglichkeiten im TYPO3 Umfeld auseinandergesetzt. Grundsätzlich sollte vor dem Produktiveinsatz gelten, dass ihr euch die Extensions anschaut. Zudem solltet ihr euch im Klaren sein, dass diese Möglichkeiten auch unterschiedlich sicher sind. Informiert euch dazu bitte selbstständig.

Die Extensions wurden sich alle für TYPO3 v13 angeschaut.


Was ist MFA?

Die Multi-Faktor-Authentifizierung (MFA) ist ein Sicherheitsverfahren, das die Identität eines Benutzers durch die Kombination von mindestens zwei verschiedenen Authentifizierungsfaktoren überprüft. Diese Faktoren können aus drei Hauptkategorien stammen: Wissen (z. B. Passwörter), Besitz (z. B. physische Tokens) und inhärente Merkmale (z. B. biometrische Daten wie Fingerabdrücke). Ziel ist es, den Schutz vor unbefugtem Zugriff zu erhöhen, indem zusätzliche Hürden für Angreifer geschaffen werden.

Auch TYPO3 unterstützt MFA bereits im Kern: Seit Version 11.1 bietet das System ein internes API-Framework zur Einbindung von MFA und liefert standardmäßig MFA-Provider wie das TOTP-Verfahren („Time-based One-Time Password“) sowie Wiederherstellungscodes. Damit kann das TYPO3-Backend zuverlässig mit einem zweiten Faktor abgesichert werden.

Mehr Informationen findest du in der offiziellen TYPO3-Dokumentation zur MFA.


MFA Email

Die EXT:mfa_email schickt einen 6-stelligen Code an die angegebene Email Adresse und bietet einen leichten Einsteig in die MFA Integration. Das Template der Email Adresse ist übrigens auch überschreibbar. Für v13 wurde meinerseits der Code aktualisiert und ich werde da zukünftig mit einen Blick drauf haben, da ich die Extension als Alternative für Kunden haben möchte.

image
image
TYPO3 TER
Github


MFA SMS

Bei SMS sollte direkt erwähnt sein, dass dies nur zur Vollständigkeit ergänzt wird. Empfohlen ist dieser Faktor nicht. Mit Hilfe von KI und der EXT:mfa_email habe ich ein Gegenstück für SMS bauen lassen. Es erstellt genauso einen 6-stelligen Code und arbeitet mit den Providern Twilio oder AWS.

Gerne könnt ihr die Extension als Basis für weitere Tests nutzen und für den Produktiveinsatz ready machen. Beim Versand mit Twilio und AWS kommen natürlich Kosten auf euch zu. Bei Twilio kann man bereits mit einer Sandbox arbeiten und bekommt hier auch Startguthaben, um den Versand zu testen.

image
Github


MFA Yubikey

Mit dem Yubikey gehen wir nun in den Hardwarebereich der Authentifizierung. Im Einsatz ist bei mir der Yubikey 5.

Ein YubiKey ist ein physischer Sicherheitsschlüssel, der nach dem FIDO2- oder U2F-Standard arbeitet. Bei der Anmeldung wird der Schlüssel per USB, NFC oder Lightning mit dem Gerät verbunden, und der Nutzer bestätigt die Anmeldung durch Berührung des Keys – dabei wird ein kryptografisch sicherer Nachweis an den Server gesendet. Der private Schlüssel bleibt dabei stets auf dem Gerät und verlässt dieses nie.

Gestolpert bin ich hier am Anfang über die Registrierung. Man benötigt für die EXT:mfa_yubikey eine Client ID und einen Client Key: https://upgrade.yubico.com/getapikey/ Diese Daten werden in den Extension Settings hinterlegt.

Danach geht es in die Benutzereinstellungen und dort kann man nun den Yubikey registrieren. Man gibt einen Namen ein, steckt den Yubikey ein und drückt den Button etwas länger. Hier gibt es unterschiedliche Möglichkeiten zum Steuern: https://www.yubico.com/support/download/

image
Wenn alles erfolgreich geklappt hat, muss ich beim TYPO3 Login nur den Button vom Yubikey nutzen. In meinem Falle Finger auf den Sensor legen.

image
TYPO3 TER
Github


MFA WebAuthn (Passkey)

Die Passkey Methode ist wohl mit am interessantesten, was gerade das Thema Sicherheit angeht. Hier habe ich mit der EXT:mfa_webauthn ein ddev unter Windows WSL2 gesteuert, welches die biometrische Erkennung von Windows nutzt.

Die Einrichtung der Umgebung ist einfacher als gedacht. Im Setup Bereich der TYPO3 MFA Umgebung gibt es nun "Built-in Authenticators". Dort gibt es lediglich einen "Add" Button. In meinem Falle wird ein Browser Dialog aufgerufen, der die Kombination aus Webseite und biometrischer Erkennung (Passkey) abspeichern möchte. Ich kann hier den Google Passwortmanager wählen oder "Windows Hello". Ich wähle Letzteres und dort wird der Schlüssel dann auch abgespeichert. Zuletzt vergebe ich noch einen Namen für den Login und ab sofort kann ich mich mit dem Passkey via "Windows Hello" anmelden.

Achtung: Beachtet bitte die Limitierungen dieser Methode: "Works only for one domain, multi domain sites need to have TYPO3 backend redirected to exactly one domain, or should use alternative MFA providers."

image

image
TYPO3 TER
Github


Fazit

Eine Empfehlung möchte ich euch nicht aussprechen, unten habe ich euch eine Übersicht erstellt, die euch helfen kann. Die Authenticator Apps sind wohl für uns mit die bequemste Lösung gerade. Wenn Kunden sich z.B. nur mit Email absichern möchten, müssen hier die Unterschiede in der Sicherheit klar gemacht werden. Grundsätzlich gibt euch aber die TYPO3 MFA API viele Möglichkeiten zur Ergänzung. So oder so: MFA ist wichtig.

Faktor Sicherheitsniveau Phishing-resistent Bemerkung
Passkey (FIDO2/WebAuthn) ⭐⭐⭐⭐⭐ Zukunftssicher, sehr stark, keine Passwörter erforderlich
YubiKey (Hardware-Token) ⭐⭐⭐⭐½ Physische Sicherheit, sehr hohe Schutzwirkung
Authenticator-App ⭐⭐⭐⭐ ⚠️ Gute Balance aus Sicherheit und Komfort, aber anfällig für Phishing
E-Mail-basierte MFA ⭐⭐ Einfach umzusetzen, aber unsicher bei kompromittierten Postfächern
SMS-basiert Veraltet, anfällig für SIM-Swapping – nur als Notlösung geeignet


Header Foto von Min An von Pexels: https://www.pexels.com/de-de/foto/kettengebundener-zaun-683402/