Con HTTPS ci sono tre meccanismi di autenticazione rilevanti:
-
Utilizza i certificati client TLS.
-
Utilizza l'autenticazione di accesso di base HTTP, ovvero l'intestazione Authorization
.
Questo è usato da https://user:[email protected]/
URL di stile.
-
Implementa la tua autenticazione su HTTPS.
Il client deve prima ottenere un token (come un cookie di sessione o JWT) dal server pubblicando alcune credenziali.
L'implementazione dell'autenticazione personale o l'utilizzo dell'autenticazione HTTP in genere richiede un segreto condiviso: la password. Ciò richiede che la password (con hash) sia stata precedentemente memorizzata sul server. Tali schemi di autenticazione in testo normale richiedono anche una connessione crittografata. Inoltre, il server a cui si connette il client deve essere autenticato, che generalmente viene eseguito con un certificato del server.
Invece di condividere le password a cui ogni server a cui si connette un client, è possibile utilizzare un servizio di autenticazione centrale. Questo servizio emette un token firmato quando un client fornisce le credenziali corrette. La chiave pubblica del servizio di autenticazione è nota a tutti i server, in modo che possano verificare l'autenticità del token. Il token viene solitamente fornito tramite l'header Authorization
HTTP.
Quando si utilizzano i certificati per i server interni (per i certificati client o per i certificati server), è necessario eseguire la propria autorità di certificazione (CA). La chiave CA viene utilizzata per firmare le chiavi pubbliche di tutti i server. La chiave pubblica della CA deve essere importata nella catena di attendibilità di tutti i server e i client. L'intero schema è compromesso una volta compromessa la chiave privata CA. Lo strumento della riga di comando openssl
può essere utilizzato per funzionare come CA, ovvero generare la chiave CA e firmare i certificati per altre chiavi.
I certificati client sono ben supportati nei client Web maturi, ma non sono comunemente usati come autenticazione per i siti Web a causa di motivi che non si applicano qui. Se eseguiti correttamente, i certificati client offrono un livello di sicurezza molto elevato e non risentono degli stessi problemi dell'autenticazione basata sul segreto pre-condiviso.