Sunday, June 10, 2012

Zwei-Faktor-Authentifizierung für das TYPO3 Backend

Wenn ein TYPO3 Backend Login erst mal geknackt ist, hat es ein Angreifer nicht mehr allzu schwer sich Zugang zu Daten (z.B. Userdaten) oder sogar zum Webserver zu verschaffen. Glücklicherweise kann man TYPO3 auch um eigene Authentifizierungs-Dienste erweitern, sodass ein Angreifer mit gestohlenen Benutzerdaten nicht automatisch Zugriff auf das TYPO3 Backend bekommt.

So einen Authentifizierungs-Dienst habe ich mir vor ein paar Jahren mal programmiert, nachdem ein Arbeitskollege mir einen YubiKey zur Verfügung gestellt hat. Der YubiKey ist ist Token, welchen man an einen USB Port seines Rechners anschließt und welcher dann per Knopfdruck ein OTP (one time password) generiert. Das OTP kann dann von einen Cloud Authentifizierungs-Cluster des Herstellers oder auch durch einen eigenen Authentifizierungs-Server verifiziert werden. Ganz simpel und vor allem Plattform-Unabhängig, denn der USB Token funktioniert unter jedem Betriebssystem gleich.

Die Veröffentlichung meiner Extension scheiterte seinerzeit an der Erstellung der Dokumentation, da ich keine Lust hatte mir meinen Windows Rechner mit OpenOffice vollzumüllen. Nun, wo ich komplett auf Linux umgestiegen bin, habe ich wohl keine Entschuldigung mehr und habe mich nun endlich mal hingesetzt und eine Dokumentation erstellt und die Extension sf_yubikey heute veröffentlicht.

Was macht die Extension sf_yubikey?

Die Extension erweitert das TYPO3 Backend Login um ein zusätzliches Feld, wo der User beim Backend Login neben seinen Userdaten auch ein OTP eingeben muss. Da der YubiKey USB Token auf Knopfdruck das OTP "eingibt", ist der neue Login-Prozess nicht sonderlich komplizierter geworden.


Der Backend Loginprozess erhält somit eine Zwei-Faktor-Authentifizierung, wo ein Angreifer nun neben den Benutzernamen und das dazugehörige Passwort auch das YubiKey USB Token das User braucht, um sich erfolgreich am TYPO3 Backend anzumelden.

Die Zwei-Faktor-Authentifizierung kann im Backend von TYPO3 pro User festgelegt werden.

Voraussetzungen für den Gebrauch von sf_yubikey

Die Extension funktioniert leider nicht out-of-the-box. Zum einen muss der Webserver über CURL und PEAR verfügen. Das sollte heutzutage aber eigentlich zum Standard gehörten. Zum anderen muss man die PHP Klasse Auth_Yubico installiert haben, welche aber dank PEAR recht einfach zu installieren ist. Die PHP Klasse erhält man hier.

Neben den Server-Voraussetzungen braucht man natürlich auch einen YubiKey sowie einen Yubico API Key, welchen man hier kostenlos erstellen lassen kann.

Feedback erwünscht

Ich habe die Extension wie erwähnt heute veröffentlicht und bin gespannt, ob ich auch Feedback erhalten werden und ob sie überhaupt jemand nutzt. Im TYPO3 Forge habe ich für Feedback und Bugreports ein entsprechendes Projekt eingerichtet.

No comments:

Post a Comment