Eine Multifaktor Authentifizierung ergänzt das unsichere Verfahren “Username/Passwort” um mindestens einen weiteren Faktor, um den Beweis zu erbringen, dass die Person, die sich an einer Anwendung anmeldet, tatsächlich der berechtigte Nutzer eines Accounts ist. In den meisten Fällen wir eine Zweifaktor Authentifizierung benutzt, die aus den Komponenten.

  • Passwort (wie bisher) → Wissen
  • Token → Besitz

zusammensetzt.

Token

Leider werden selbst bei großen Unternehmen immer noch Verfahren genutzt, die zwar als Zweifaktor Authentifizierung bezeichnet werden, aber dennoch unsicher sind. Dazu gehört z.B. die Nutzung einer SMS als zweiter Faktor, selbst ein großer Online-Versender macht immer noch diesen Fehler. Auch ein Smartphone alleine muss als zweiter Faktor heute als ungeeignet angesehen werden. Die Angabe einer Telefonnummer für eine wirksame Multifaktor-Authentifizierung ist absolut überflüssig und kontraproduktiv. In solchen Fällen ist es besser auf die Funktion zu verzichten, denn es stellt sich die Frage, ob der Anbieter hier seine IT-Sicherheit im Griff hat.

Wie macht man es richtig?

Als Webmaster sollte man sich schon sorgfältig überlegen, wie man eine Multifaktor Authentifizierung richtig umsetzt. Es sind dabei auch Datenschutzaspekte zu berücksichtigen. Ein Online-Versender benötigt sicherlich zwingend Name und Adresse des Bestellers, um den Vertrag erfüllen zu können, eine Telefonnummer wird zur Vertragserfüllung jedoch nicht benötigt und darf daher allenfalls als "optional" abgefragt werden. Als geeignete Verfahren für eine Multifaktor Authentifizierung sind zu nennen:

  • TOTP - zeitbasierte Einmal-Passwörter. Dazu benötigt der Benutzer einen Authenticator.
  • FIDO/UAF - nutzt ein (USB) Token als zweiten Faktor.
  • Client Zertifikate - Diese Lösung bietet sich insbesondere für Unternehmen an, die ihren Mitarbeitern einen sicheren und komfortablen Zugang zu den Unternehmensanwendungen ermöglichen wollen. Das Verfahren bietet sich auch zur Absicherung von APIs an.

Für TOTP wird ein Smartphone und eine TOTP App benötigt. Hier ist insbesondere FreeOTP zu empfehlen, weil der Source-Code offengelegt ist. Von Closed-Source Lösungen ist im Security-Umfeld grundsätzlich abzuraten, weil eine unabhängige Prüfung des Codes deutlich erschwert wird. Als sehr praktisch hat sich auch der Yubico Authenticator erwiesen, bei der ein Yubikey an das Gerät angesteckt werden muss. Die Secrets für TOTP werden hier im Yubikey gespeichert und nicht auf dem Smartphone.

FIDO/UAF werden ebenfalls vom Yubikey unterstützt. Der Vorteil bei FIDO/UAF liegt darin, dass man keine gesonderte App/Smartphone braucht. Es wird jedoch ein Token benötigt, dass dieses Verfahren unterstützt. Aufgrund der Tatsache, dass in einer Anwendung typischerweise mehrere Tokens registriert werden können, ist so auch im Falle dass eine Token defekt ist, ein Backup vorhanden.

Client Zertifikate gelten in Verbindung mit Smartcards als eines der sichersten Verfahren. Der Aufwand für den Betrieb ist allerdings recht hoch, so benötigt man eine Public Key Infrastructure (PKI) um Client Zertifikate auszustellen oder zu widerrufen. Ein TPM2 Modul ist letztlich auch eine Smartcard, hat aber den Nachteil, dass es fest mit dem Endgerät verbunden ist und nicht entfernt werden kann. Zertifikate haben i.d.R. auch ein begrenzte Gültigkeit, was zwar für mehr Sicherheit sorgt, allerdings muss auch sichergestellt werden, dass die Zertifikate auch rechtzeitig verlängert oder neu ausgestellt werden.