TsgcWSAPIServer_WebAuthn

Nur die OpenSSL 3.

Einführung

Die Komponente TsgcWSAPIServer_WebAuthn bietet eine einfache, aber leistungsstarke Lösung zur Implementierung des WebAuthn-Relying-Party-Servers und ermöglicht passwortlose Authentifizierung in Ihrer Webanwendung. Eine WebAuthn-Anwendung besteht aus einem WebAuthn-Server, der die serverseitige Registrierung und Authentifizierung verarbeitet, und einer clientseitigen Anwendung, die normalerweise eine JavaScript-Anwendung ist.

 

WebAuthn erfordert die Verwendung sicherer Verbindungen (SSL/TLS), daher müssen die OpenSSL-Bibliotheken bereitgestellt und mit dem Server konfiguriert werden.

 

Nur die OpenSSL-3.0.0+-API wird unterstützt, daher funktionieren frühere OpenSSL-Versionen möglicherweise nicht.

 

Konfiguration

 

Der TsgcWSAPIServer_WebAuthn muss über die Eigenschaft Server an einen HTTP-Server angehängt werden, TsgcWebSocketHTTP_Server oder TsgcWebSocketServer_HTTPAPI. Sie können die Server-Endpunkte konfigurieren, die die Registrierungs- und Authentifizierungsoptionen behandeln, sowie die WebAuthn-Optionen wie unterstützte Algorithmen, Origins und mehr.

 

Endpoints-Optionen

Hier können Sie die Server-Endpunkte konfigurieren, die die HTTP-/JavaScript-Anfragen zur Verwendung von WebAuthn als Authenticator behandeln. Die Komponente ist bereits mit Standard-Endpunkten konfiguriert, aber Sie können alle von ihnen an Ihre Bedürfnisse anpassen.

 

 

Beispiel: wenn Ihr Server auf der Domain www.test.com lauscht, ist die Anforderung an die Authentifizierungsoptionen standardmäßig http://www.test.com/sgcWebAuthn/Authentication/Options

 

WebAuthn Options

In dieser Eigenschaft können Sie die Hauptoptionen der WebAuthn-Server-Komponente konfigurieren.

 

 

WebAuthn verwendet Origins, um Same-Origin-Policy-Einschränkungen durchzusetzen, die für die Verhinderung von Phishing- und Cross-Site-Angriffen unerlässlich sind. Während der WebAuthn-Registrierungs- und Authentifizierungsprozesse wird der Origin vom Browser und vom Authenticator streng validiert.

 

 

 

In WebAuthn ist crossOrigin ein boolescher Parameter, der angibt, ob die WebAuthn-Operation aus einem cross-origin Kontext heraus durchgeführt wird, wie zum Beispiel einem iframe, das aus einem anderen Origin als der Top-Level-Browsing-Kontext eingebettet ist.

Dieser Parameter wurde eingeführt, um Browsern und Authenticatoren zu helfen, Authentifizierungsanfragen in eingebetteten Umgebungen sicher zu verarbeiten — ein häufiges Szenario in modernen Webanwendungen.

 

 

WebAuthn unterstützt eine Vielzahl von kryptografischen Algorithmen für die Generierung und Verifizierung von Public-Key-Anmeldedaten. Diese Algorithmen werden während der Registrierung von Anmeldedaten (mit navigator.credentials.create()) und der Authentifizierung (mit navigator.credentials.get()) verwendet und gewährleisten das sichere Signieren und Validieren von Challenges mithilfe asymmetrischer Schlüsselpaare. Der Server ist standardmäßig mit ES256 und RS256 konfiguriert, die die häufigsten Algorithmen sind. Sie können jederzeit über die Eigenschaft Algorithms ändern, welche Algorithmen unterstützt werden. Die folgenden Algorithmen werden unterstützt:

 

 

In WebAuthn ist Attestierung ein optionaler Mechanismus, der es dem Authenticator (z. B. Gerät oder Sicherheitsschlüssel) ermöglicht, während der Erstellung von Anmeldedaten Informationen über seinen Hersteller, sein Modell und seine Sicherheitsmerkmale bereitzustellen. Diese Informationen helfen der Relying Party (RP) zu entscheiden, ob sie dem Authenticator vertrauen soll.

 

Verschiedene Attestierungsformate definieren, wie diese Daten strukturiert und verifiziert werden. Drei häufig verwendete Formate sind android-key, packed und andere wie fido-u2f, apple oder none. Standardmäßig sind alle Attestierungsformate aktiviert. Unten finden Sie die Liste der unterstützten Attestierungsformate:

 

 

 

 

 

 

 

In der WebAuthn-API ist AllowCredentials ein optionales Feld, das während des Authentifizierungsvorgangs (über navigator.credentials.get()) verwendet wird. Es gibt eine Liste von Credential-IDs an, die berechtigt sind, den Benutzer zu authentifizieren für eine bestimmte Relying Party (RP). Dieser Mechanismus ermöglicht es der RP zu steuern, welche Credentials für einen Anmeldeversuch als gültig betrachtet werden. Die Eigenschaft credentials hat die folgenden Felder:

 

 

 

 

WebAuthn Protocol

 

 

 

 

 

Referenz