2014-05-08 17 views
5

Sto lavorando con un fornitore di servizi REST e vogliono che utilizzi un certificato client fornito da loro durante la chiamata HTTP.Come funzionano i certificati client?

Come un certificato cliente ottiene l'autenticazione?
Se qualcuno ha una copia del certificato cliente, anche loro possono essere autenticati correttamente?
Un certificato cliente offre qualcos'altro oltre all'autenticazione?
In che modo differiscono dall'autenticazione tramite nome utente/password?

risposta

7

Come un certificato cliente ottiene l'autenticazione?

Essendo direttamente di fiducia da parte dei pari, o per essere firmato da qualcuno trust tra pari, o firmati da qualcuno che è attendibile da qualcuno trust tra pari, ecc

Se qualcuno ha un copia del certificato cliente, anche loro possono essere autenticati, giusto?

Errore. Avrebbero anche bisogno della chiave privata.

Un cliente cert offre altro oltre all'autenticazione?

No.

Come sono differenti da un'autenticazione nome utente/password?

Molto più sicuro. Non è possibile l'identificazione della password.

Tuttavia Non c'è alcuna cosa come un 'certificato client fornito da loro'. Il processo di generazione di un certificato client inizia con tu. Generate una coppia di chiavi e una richiesta di firma del certificato (CSR) e l'avete firmata da una CA. Oppure generi un certificato autofirmato. È quindi fornire il proprio certificato a . Se si propone di eseguire tutti questi passaggi e fornire la coppia di chiavi e il certificato risultanti, non sanno di cosa stanno parlando e dovrebbero essere severamente puniti per violazioni della sicurezza. Una chiave privata è privata solo se nessun altro ne ha una copia.

+0

Grazie. Come fa un server ad autenticare il client dopo che il client ha dato la chiave pubblica tramite il certificato? In altre parole, a cosa serve la chiave privata del certificato del cliente? – Suneel

+1

Il client fornisce non solo il suo certificato ma una firma digitale sul certificato (e altre cose) firmate dalla sua chiave privata. Il server verifica che con la chiave pubblica. Ciò dimostra che il cliente possiede quel certificato, ma solo se nessun altro ha o ha avuto accesso alla chiave privata. Ecco perché "fornito da loro" è completamente e completamente invalido e insicuro. Non possono generare un certificato senza una chiave privata e se generano la chiave privata non è privato. – EJP

+0

Un certificato SSL non è molto diverso da un nome utente/password. Sono entrambi solo cose che sai che nessun altro dovrebbe sapere.Un certificato SSL, al suo interno, è solo una coppia di chiavi asimmetrica (chiave pubblica/privata); può essere indovinato come se fosse una coppia nome utente/password. – Granger