TsgcWSAPIServer_WebAuthn

Solo OpenSSL 3.

Introduzione

Il componente TsgcWSAPIServer_WebAuthn fornisce una soluzione semplice ma potente per implementare il server Relying Party WebAuthn, abilitando l'autenticazione senza password nella propria applicazione web. Un'applicazione WebAuthn è composta da un server WebAuthn che gestisce la registrazione e l'autenticazione lato server e da un'applicazione lato client che di solito è un'applicazione javascript.

 

WebAuthn richiede l'uso di connessioni sicure (SSL/TLS), quindi le librerie OpenSSL devono essere distribuite e configurate con il server.

 

È supportata solo l'API OpenSSL 3.0.0+, pertanto le versioni precedenti di OpenSSL potrebbero non funzionare.

 

Configurazione

 

Il TsgcWSAPIServer_WebAuthn deve essere collegato a un server HTTP, TsgcWebSocketHTTP_Server o TsgcWebSocketServer_HTTPAPI utilizzando la proprietà Server. Può configurare gli endpoint del server che gestiranno le opzioni di registrazione e autenticazione, e le opzioni WebAuthn come gli algoritmi supportati, le origini e altro.

 

Opzioni degli endpoint

Qui è possibile configurare gli endpoint del server che gestiranno le richieste HTTP/JavaScript per utilizzare WebAuthn come autenticatore. Il componente è già configurato con endpoint predefiniti, ma è possibile modificarli tutti per adattarli alle proprie esigenze.

 

 

Esempio: se il server è in ascolto sul dominio www.test.com, la richiesta alle opzioni di autenticazione per impostazione predefinita sarà http://www.test.com/sgcWebAuthn/Authentication/Options

 

Opzioni WebAuthn

In questa proprietà può configurare le opzioni principali del componente WebAuthn Server.

 

 

WebAuthn utilizza le origini per applicare i vincoli della politica same-origin, essenziali per prevenire phishing e attacchi cross-site. Durante i processi di registrazione e autenticazione WebAuthn, l'origine viene rigorosamente validata dal browser e dall'autenticatore.

 

 

 

In WebAuthn, crossOrigin è un parametro booleano che indica se l'operazione WebAuthn viene eseguita da un contesto cross-origin, ad esempio un iframe incorporato da un'origine diversa rispetto al contesto di navigazione di primo livello.

Questo parametro è stato introdotto per aiutare browser e autenticatori a gestire in modo sicuro le richieste di autenticazione in ambienti incorporati, uno scenario comune nelle moderne applicazioni web.

 

 

WebAuthn supporta una varietà di algoritmi crittografici per la generazione e la verifica delle credenziali a chiave pubblica. Questi algoritmi vengono utilizzati durante la registrazione delle credenziali (con navigator.credentials.create()) e l'autenticazione (con navigator.credentials.get()), e garantiscono la firma e la validazione sicure delle challenge utilizzando coppie di chiavi asimmetriche. Il server è configurato per impostazione predefinita con ES256 e RS256, che sono gli algoritmi più comuni. È possibile modificare in qualsiasi momento quali algoritmi sono supportati dalla proprietà Algorithms. Sono supportati i seguenti algoritmi:

 

 

In WebAuthn, l'attestazione è un meccanismo opzionale che consente all'autenticatore (ad esempio dispositivo o chiave di sicurezza) di fornire informazioni sul proprio produttore, modello e caratteristiche di sicurezza durante la creazione delle credenziali. Queste informazioni aiutano la Relying Party (RP) a decidere se fidarsi dell'autenticatore.

 

Diversi formati di attestazione definiscono come questi dati sono strutturati e verificati. Tre formati comunemente utilizzati sono android-key, packed e altri come fido-u2f, apple o none. Per impostazione predefinita, tutti i formati di attestazione sono abilitati. Di seguito è riportato l'elenco dei formati di attestazione supportati:

 

 

 

 

 

 

 

Nell'API WebAuthn, AllowCredentials è un campo facoltativo utilizzato durante il processo di autenticazione (tramite navigator.credentials.get()). Specifica un elenco di ID credenziale autorizzati ad autenticare l'utente per una determinata Relying Party (RP). Questo meccanismo consente alla RP di controllare quali credenziali sono considerate valide per un tentativo di accesso. La proprietà credentials contiene i seguenti campi:

 

 

 

 

Protocollo WebAuthn

 

 

 

 

 

Riferimento