Come funziona l'autenticazione client su https?

1

Recentemente ho scritto un'applicazione che chiama un servizio di terze parti per eseguire alcuni lavori. Questo servizio di terze parti richiede che autentichi la chiamata del client utilizzando un certificato client. Per questo, ho usato i metodi .NET forniti da C # per eseguire questo (aggiungendo "client.pfx" ai certificati client con la richiesta).

Una delle mie preoccupazioni è che l'API di questa terza parte afferma che dovrei eseguire questa chiamata sicura usando un URI che hanno fornito come parte del loro processo di autenticazione. Per me, questo sembra terribile perché un utente malintenzionato potrebbe fornire URL arbitrari e ricevere le richieste stesse e, a sua volta, i contenuti di client.pfx.

La mia domanda è, come funziona questa autenticazione client (da una sorta di vista generale)? L'intero certificato è inviato come parte della richiesta? È solo una firma della richiesta firmata con la chiave privata in client.pfx? Mi chiedo se la mia preoccupazione sia giustificata.

Grazie!

    
posta TheTFo 13.06.2018 - 16:36
fonte

1 risposta

3

L'autenticazione del client utilizzando un certificato client è molto simile all'autenticazione comune del server che utilizza un certificato del server.

Essenzialmente il client ha un certificato pubblico che contiene la chiave pubblica e il client ha la chiave privata corrispondente. L'autenticazione viene quindi eseguita dal client:

Il server può convalidare la firma creata dal client utilizzando la chiave pubblica contenuta nel certificato dei client. Il server inoltre convalida il certificato stesso nel solito modo, ovvero verifica se una catena di certificati può essere compilata su un certificato CA attendibile a livello locale, verificare la scadenza, la revoca, l'uso della chiave, ecc.

Per evitare di riprodurre la stessa firma in un secondo momento, il client non può scegliere quali dati devono essere firmati ma tutti i dati inviati e ricevuti finora nell'handshake TLS corrente vengono firmati che includono anche dati casuali dal server.

    
risposta data 13.06.2018 - 17:37
fonte

Leggi altre domande sui tag