Zwei-Faktor-Authentifizierung

  1. Die Grundlagen der Zwei-Faktor-Authentifizierung
  2. Moderner zweiter Faktor: TOTP
    1. TOTP einrichten
  3. Hardware-Token
  4. Zweiter Faktor für dein CMS
    1. WordPress
    2. TYPO3
    3. Joomla!
    4. Shopware & Magento
  5. Fazit

Die Grundlagen der Zwei-Faktor-Authentifizierung

Bei vielen Dingen, die wir im Internet tun, stellt sich die Frage, ob unsere Anfrage an den Server authentisch ist – also ob sie wirklich von uns kommt oder ob sich nicht nur jemand anderes für uns ausgibt. Der einfachste Weg, um das herauszufinden, ist die Abfrage eines Passworts. Aber sind wir mal ehrlich: Unsere Passwörter sind nicht immer die besten – und auch gute Passwörter können erraten werden, wenn sie nicht lang bzw. sicher genug sind (Stichwort Brute-Force-Angriffe).

Besser ist hier schon die Zwei-Faktor-Authentifizierung – bzw. eigentlich sogar allgemein Multi-Faktor-Authentifizierung. Richtiger wäre eigentlich das Wort Authentisierung; da im Sprachgebrauch und im IT-Kontext beides aber quasi gleichbedeutend ist, verwende ich in diesem Beitrag das gebräuchlichere Wort Authentifizierung. Wo liegt der Unterschied? Das erfahrt ihr hier.

Dabei geht es darum, dass neben dem einen üblichen Faktor noch mindestens ein weiterer Faktor abgefragt wird. Diese Faktoren stammen in der Regel aus drei Kategorien:

  • Wissen: Etwas, das ich mir merken muss, z.B. ein Passwort
  • Haben: Etwas, das ich besitzen muss, z.B. eine physische Karte oder ein Smartphone
  • Sein: Etwas, das durch meine Person definiert ist, z.B. ein Fingerabdruck

Bei der Multi-/Zwei-Faktor-Authentifizierung werden dann zwei oder mehr Faktoren aus unterschiedlichen Kategorien kombiniert.

Eigentlich kennt dies bereits jeder von uns und benutzt es auch ständig – ja, sogar mein Opa, der mit seinen 89 Jahren sonst nichts mit Computern zu tun hat. Möchte er Geld bei der Bank abheben, benötigt er seine Girocard (Haben) und seine PIN (Wissen) – das sind zwei Faktoren aus unterschiedlichen Kategorien. Beim Onlinebanking sind es das Passwort (Wissen) und die App oder SMS auf dem Smartphone (Haben). Oder kennt noch jemand von euch die TAN-Geräte, mit denen man einen blinkenden Strichcode einscannen konnte? Auch dafür musste man erst einmal eine Girocard besitzen.

Durch die Kombination der unterschiedlichen Kategorien ergibt sich eine wesentlich höhere Sicherheit. Selbst wenn ein Angreifer mein Passwort kennen würde, müsste er mir trotzdem zusätzlich noch ein physisches Objekt stehlen – oder den Finger abschneiden :wink:

Zwei-Faktor-Authentifizierung

Moderner zweiter Faktor: TOTP

Die Erstellung eines zweiten Faktors aus einer anderen Kategorie ist gar nicht so trivial, wie es im ersten Moment klingen mag. Ein per E-Mail verschickter Freischaltcode – zusätzlich zum Passwort – gehört nämlich streng genommen auch zur Kategorie Wissen. Schließlich kann ich mir ja durch die Kenntnis des E-Mail-Passworts relativ einfach dieses Token beschaffen. Und der Versand von physischen Gegenständen, wie beispielsweise einer Girocard, lohnt sich erst bei wirklich hochkritischen Systemen; für den normalen Login bei einer Plattform ist dies eher nicht das passende Mittel.

Daher wurde bereits 2005 das Konzept eines Einmal-Passworts (One-Time Password) als Open-Source-Spezifikation veröffentlicht und 2011 durch eine zeitbasierte Komponente erweitert (Time-Based One-Time Password (TOTP)). Bei der Nutzung von TOTP wird auf Basis der aktuellen Zeit und einem während der Einrichtung ausgetauschten Schlüssels ein Token generiert, das nur eine begrenzte Zeit gültig ist.

Das passiert in der Regel in einer App auf dem Smartphone. Da die Spezifikation ein offener Standard ist, gibt es inzwischen einige Apps, die diesen Standard implementieren. Der bekannteste Vertreter ist sicherlich der Google Authenticator, ich persönlich verwende allerdings lieber die App OTP Auth. Im iOS-AppStore oder im Google-Play-Store sind aber auch noch einige andere Apps erhältlich. Ihr müsst also nicht zwangsläufig den Google Authenticator verwenden.

Ist der Faktor einmal eingerichtet – wie das geht, dazu kommen wir gleich – ist die Verwendung eigentlich recht einfach. Nach dem Login mit dem bekannten Passwort wird das Einmalpasswort abgefragt. Das schaut ihr euch in der App an und gebt es ein. Fertig. Das Einmalpasswort ist übrigens tatsächlich etwas länger gültig als von der App angezeigt – es besteht also kein Grund zur Hektik.

TOTP einrichten

Aber wie kommt das Token jetzt in meine App? Das passiert eigentlich bei allen Plattformen auf einem ähnlichen Weg. In den Account-Einstellungen gibt es in der Regel einen Button „2-Faktor-Authentifizierung einrichten/aktivieren“ (z.B. bei GitLab unter Nutzer › Account, bei GitHub unter Einstellungen › Account security). Hier wird dann ein QR-Code angezeigt, der mit der App auf dem Smartphone gescannt werden kann. So werden die Daten direkt an die App übertragen. In der App könnt ihr noch einen Namen für die Anwendung vergeben und das war es dann auch schon.

Die Recovery-Codes solltet ihr unbedingt sicher speichern. Diese werden relevant, wenn ihr euer Smartphone verliert oder es kaputt geht, denn ohne das Gerät könnt ihr euch ja nicht mehr anmelden.

Hardware-Token

Neben dem zweiten Faktor per Smartphone gibt es auch Hardware-Token, die eine ähnliche Funktionalität besitzen. Diese Token gehören zur Kategorie Haben, da sie tatsächlich kleine Geräte im Formfaktor eines USB-Sticks sind. Der bekannteste Vertreter ist vermutlich der Yubikey, der gerade in letzter Zeit mit dem vielen Homeoffice auch einiges an medialer Aufmerksamkeit erhalten hat.

Diese Hardware-Token unterstützen teilweise auch das bereits genannte TOTP-Protokoll oder andere Protokolle zum Erstellen eines Einmalpassworts. Bei diesen wird meistens anhand eines privaten Schlüssels, der auf dem Hardware-Token gespeichert ist, das Einmalpasswort generiert. Bei Einrichten speichert der Server den öffentlichen Schlüssel und kann so das beim Login generierte Passwort verifizieren.

Zweiter Faktor für dein CMS

Auch für die meisten CMS gibt es inzwischen gute Möglichkeiten, um eine 2-Faktor-Authentifizierung einzurichten.

2-Faktor-Authentifizierung

WordPress

Für WordPress gibt es einige Plugins, die 2FA umsetzen; ich würde aber unbedingt das Plugin Two-Factor verwenden. Es ist als sog. Feature-Plugin angelegt, mit dem Ziel, dass der Code in Zukunft in den Core des CMS integriert wird. Ist das der Fall, müsst ihr nichts weiter machen.

Zur Einrichtung müsst ihr einfach nur das Plugin installieren und aktivieren. In den Profileinstellungen gibt es den Abschnitt „Two-Factor-Einstellungen“, unter dem ihr die Einstellungen für euren Benutzer anpassen bzw. einrichten könnt. Allgemeine Einstellungen gibt es in der Oberfläche nicht, Entwickler können aber über die vom Plugin bereitgestellten Hooks ein paar Sachen konfigurieren. Mehr dazu in der Beschreibung des Plugins.

Eine Übersicht zum Thema Sicherheit in WordPress findet ihr im Beitrag WordPress – aber sicher.

TYPO3

In der Vorschau von TYPO3 11 gibt es bereits eine Implementierung für Multi-Faktor-Authentifizierung. Philipp erzählt euch mehr dazu in seinem Beitrag TYPO3 11: Ein erster Blick auf die beiden Sprint-Releases.

Wer jetzt schon loslegen möchte, kann mal im TYPO3 Extension Repository gucken. Dort gibt es aktuell schon 3 Extensions, die man ausprobieren kann.

Joomla!

Bei Joomla! ist es tatsächlich am einfachsten, denn hier kommt 2FA direkt in der Basisinstallation schon mit. Ihr müsst es lediglich aktivieren. Eine Anleitung dazu gibt es in der Dokumentation von Joomla!.

Shopware & Magento

Möchtet ihr  2FA für Shopware, gibt es unterschiedliche Lösungen. Die von uns kostenfrei bereitgestellte App„Mittwald Security Tools“ bietet neben anderen nützlichen Features auch eine Zwei-Faktor-Authentifizierung mit einem Hardware-Token. Alternativ gibt es für den Backend-Login aber auch andere Apps, wie beispielsweise Multi-Faktor-Authentifizierung, die auch TOTP unterstützen. Sollen auch eure Kunden 2FA nutzen können, ist eine andere App nötig, wie z.B. Zwei-Faktor-Authentifizierung.

Magento bringt für den Admin Login schon die Möglichkeit für 2FA mit. Mehr dazu findet ihr in der Dokumentation von Magento. Soll auch für Kunden die Möglichkeit für 2FA geboten werden, ist allerdings eine zusätzliche Extension, wie bspw. Two-Factor Authentication von Amasty, nötig.

Fazit

Ein zweiter Faktor kann die Sicherheit des Logins erheblich erhöhen. 100%ige Sicherheit bietet zwar auch ein zweiter Faktor nicht, aber Angriffe werden dadurch sehr viel schwieriger. Die Einrichtung ist in den meisten Systemen recht einfach und der Mehraufwand beim Login überschaubar. Wer also das Thema Sicherheit ernst nimmt und die Website oder den Onlinehop als wesentlichen Bestandteil seines Business ansieht, sollte sich mit diesem Thema unbedingt beschäftigen.

Kommentar hinzufügen