Multi-Faktor-Authentifizierung in ASP.NET Core

Abgeschlossen

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.

Multi-Factor Authentication

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 Dinge erhalten, die Ihnen bekannt sind (z. B. Ihr Kennwort und Ihren Spitznamen in der Kindheit). Es ist aber schwieriger, sowohl etwas, das Sie wissen als auch etwas, das Sie haben oder sind zu kompromittieren.

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:

  • Microsoft Authenticator
  • Google Authenticator
  • LastPass Authenticator

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 liegt daran, dass die einzige Möglichkeit zum Generieren des Codes der in der App gespeicherte Schlüssel ist.

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.