Zwei-Faktor-Authentifizierung
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:
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.
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
Mit der TYPO3 11.5 LTS Version wurde Multi-Faktor-Authentifizierung in TYPO3 nativ implementiert. Standardmäßig werden nur die beschriebenen Einmal-Passwörter unterstützt, es ist aber möglich die Funktion durch Extensions zu erweitern. Philipp erzählt euch mehr dazu in seinem Beitrag Feine Features: TYPO3 LTS-Version 11.5 ist da.
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.
Kommentare
Hallo, dies ist ein schöner Artikel, der mal wieder aufzeigt, wie wichtig eine vernünftige Authentifizierung jenseits eines einzigen Passworts ist. Aus dieser Erkenntnis sollten aber auch für den Betrieb Ihrer eigenen account-Verwaltung Konsequenzen gezogen werden. Habe ich es bisher übersehen - oder gibt es für die Verwaltungsoberfläche mittlerweile einen besseren Schutz als die einfache Eingabe der Kundennummer und eines Passwortes? - Das ist eine ernst gemeint Frage, denn bei 2FA wäre ich sofort dabei! Viele Grüße C.G.
Wenn du mehr zur Neuentwicklung des Kundencenters wissen möchtest, findest du unter dem Stichwort „Mittwald Inside“ ein paar Beiträge im Blog zu dem Thema.
Nun ist es ja schon eine Weile her, dass das Kundencenter im neuen Design erschienen ist. Sollte da nicht auch 2FA dabei sein?
Wie und wo schaltet man die 2-FA aus?
Die sollte man aus- und einschalten können.