Stiamo pianificando di usare 2 way ssl invece di token username / password per l'autenticazione. Qualcuno sa qual è la penalizzazione delle prestazioni per l'utilizzo di SSL a 2 vie?
Se per "2-Way" intendi "SSL con autenticazione client basata su certificato", allora puoi aspettarti il seguente overhead:
CertificateRequest
che contiene l'elenco dei nomi della CA radice che il server utilizzerà per convalidare il certificato client. A seconda dell'elenco di tale CA, questo messaggio può avere una dimensione non trascurabile (ad esempio 10 kilobyte). Naturalmente, in qualsiasi configurazione ragionevole, il server dovrebbe accettare solo una o due CA, lasciando questa dimensione del messaggio molto al di sotto di 1 kilobyte (ma molti Windows / IIS non sono molto ragionevoli). L'autenticazione del client con i certificati non comporta alcun roundtrip aggiuntivo, ma significa altri dati durante l'handshake iniziale (come spiegato sopra, fino a poche dozzine di kilobyte) e qualche CPU in più (in quantità simili a ciò che il server deve calcolare comunque). Una volta che questi giochi di certificati sono stati riprodotti, il resto della connessione è identico a quello che si verificherebbe senza un certificato client. Nessun impatto ulteriore.
Inoltre:
L'autenticazione login + password ha un overhead più grande perché dovrai inviare un reindirizzamento a una pagina di accesso e quindi verificare la password. L'elaborazione della pagina di accesso, l'interfaccia grafica supplementare sul client e l'hashing lento sul server per la verifica della password, incorreranno nei costi generali della rete e della CPU, che annullano i costi dei certificati client. Pertanto, passare da login + password a certificati è probabile che abbassare i costi della rete e della CPU sul server.
(Ma certificati significa gestione dei certificati e PKI , e di nuovo costi molto più grandi.)
I certificati client vengono utilizzati per l'autenticazione e la negoziazione delle chiavi in SSL. Viene ancora utilizzata una chiave di sessione, quindi non dovrebbero esserci differenze dopo che è stata stabilita una connessione. Non sono sicuro di quante penalità ci sarebbe per la fase di autenticazione, ma non mi aspetto che sia significativa rispetto al fatto di dover eseguire un hash sicuro su una password. Potrebbe essere più veloce.
Leggi altre domande sui tag tls