Multi-Faktor-Authentifizierung in ASP.NET Core
In der vorherigen Lerneinheit haben Sie ASP.NET Core Identity angepasst und erweitert. In dieser Lerneinheit erfahren Sie mehr über die Multi-Faktor-Authentifizierung und deren Implementierung in Identity.
Mehrstufige Authentifizierung
Bei der Multi-Faktor-Authentifizierung (MFA) wird vom Benutzer bei der Anmeldung ein zusätzliches Identifizierungsmerkmal angefordert. Dabei kann es sich um den Code einer App, den Wert eines Hardwaretokens oder einen biometrischen Scan handeln. Wenn ein zweiter Authentifizierungstyp erforderlich ist, wird die Sicherheit erhöht.
Der für die Authentifizierung erforderliche Nachweis wird in drei Typen kategorisiert:
- Etwas, was Sie wissen, z. B. ein Kennwort oder eine Sicherheitsfrage.
- Etwas, das Sie haben, z. B. ein Hardwaretoken oder eine App auf Ihrem Smartphone.
- Etwas, das Sie sind, z. B. ein Fingerabdruck- oder Gesichtsscan.
Ein Großteil der Effektivität von MFA entsteht durch unterschiedliche Authentifizierungstypen. Ein Angreifer kann möglicherweise Zugriff auf mehrere Informationen erhalten, die Sie kennen, z. B. Ihr Kennwort und Ihr Spitzname als Kind. Es ist jedoch schwieriger, etwas zu kompromittieren, das Sie wissen und das Sie haben oder sind.
Zeitbasiertes Einmalkennwort
Zeitbasierte Einmalkennwörter (Time-based One-Time Password, TOTP) sind ein bekannter Algorithmus, der eindeutige numerische Codes generiert, die nach 30 Sekunden ablaufen. Der Algorithmus benötigt zwei Eingaben: die aktuelle Uhrzeit und einen eindeutigen Schlüssel.
Bei der Registrierung gibt der Benutzer den Schlüssel in eine TOTP-kompatible App ein. Zu diesen Apps gehören:
- anfordern und präsentieren.
- Google Authenticator.
- Und viele weitere!
Die Eingabe des Schlüssels in die App kann mit einem QR-Code optimiert werden. Die App verwendet den Schlüssel und die aktuelle Uhrzeit, um alle 30 Sekunden eindeutige Codes zu generieren und anzuzeigen. Wenn der Code, den die App generiert, mit dem vom Server erwarteten Code übereinstimmt, ist die Authentifizierung erfolgreich. Der Algorithmus ist so ausgelegt, dass geringfügige Unterschiede zwischen den Zeiten auf dem Gerät und dem Server keine Rolle spielen.
Im Rahmen der MFA wird der Benutzer in der Regel zusammen mit einem Kennwort zur Eingabe eines TOTP-Codes aufgefordert. Das Kennwort ist etwas, was Sie wissen, und der Code ist ein Beweis für etwas, was Sie haben. Dies ist die einzige Möglichkeit zum Generieren des Codes mit dem in der App gespeicherten Schlüssel.
Die ASP.NET Core-Projektvorlagen mit Identität enthalten standardmäßig Unterstützung der Multi-Faktor-Authentifizierung für TOTP-Authentifikator-Apps. Das Formular zum Konfigurieren einer Authentifikator-App der Razor Pages-Vorlage stellt einen Registrierungsschlüssel mit 32 Zeichen für das Seeding des Tokenwerts bereit. Die Vorlage generiert jedoch standardmäßig keinen QR-Code.
Hinweis
Codes, die über SMS-Textnachrichten gesendet werden, sind eine gängige Alternative zu TOTP. Schließlich ist das Telefon, das die SMS-Nachricht empfängt, etwas, was Sie haben. Eine SMS für MFA kann von einem Angreifer jedoch relativ einfach vereitelt werden. Daher gelten SMS-Codes nicht mehr als sichere Form der MFA.
Zusammenfassung
In dieser Lerneinheit haben Sie gelernt, was die Multi-Faktor-Authentifizierung ist und wie sie standardmäßig in ASP.NET Core Identity implementiert wird. In der nächsten Lerneinheit können Sie das vorhandene Formular zum Konfigurieren einer Authentifikator-App anpassen, um einen QR-Code zur Verfügung zu stellen, der den Registrierungsschlüssel enthält.