Che cosa ha fatto l'autorità di certificazione con il mio CSR?

6

Avevo bisogno di raggiungere un servizio web che non fosse mio.

Il reparto IT di quel servizio Web mi ha chiesto di inviare loro una CSR (richiesta di firma del certificato). Quindi, mi invierà un certificato firmato che posso includere nelle mie chiamate con PHP combinando quel certificato con la mia chiave privata.

Che cosa ha fatto l'autorità di certificazione per consentirmi di farlo? In che modo il webservice accetta ora le mie chiamate? Qualcuno può descrivermi passo passo quello che hanno fatto?

    
posta Marie 15.12.2012 - 20:24
fonte

2 risposte

4

Un CSR è un file che contiene la tua chiave pubblica e i dati che descrivono il tuo server, come il suo nome host ("nome comune"), ecc. Un'autorità di certificazione (CA) è un intermediario che tu e le parti collegate si fidano a vicenda. Una CA esaminerà il CSR inviato e quindi emetterà un certificato, che di solito corrisponde agli stessi dati del CSR più la firma digitale di CA. Quando offri questo certificato ai server a cui ti colleghi, controllano che la firma della CA sia valida e appartenga a una CA di cui si fidano. Ciò semplifica la procedura per garantire la fiducia tra le parti inserendola in una "autorità reciprocamente attendibile".

Ti suggerisco di cercare termini come "cos'è una richiesta di firma del certificato" e leggere alcuni articoli introduttivi sull'infrastruttura a chiave pubblica x509.

    
risposta data 16.12.2012 - 04:00
fonte
2

Un certificato è un oggetto che contiene un nome e una chiave pubblica e che è firmato. L'autorità di certificazione è l'entità che applica la firma: in tal modo, la CA afferma: " questa chiave pubblica è effettivamente di proprietà del ragazzo con tale nome". La proprietà della chiave è definita dal controllo della chiave privata corrispondente.

La richiesta di certificato è un oggetto che contiene un nome e una chiave pubblica, che invii a una CA. La CA compilerà il certificato (e quindi lo firmerà), inserendo i relativi dati; in particolare, inserirà la chiave pubblica inviata come parte della richiesta. Ovviamente, la CA lo farà solo dopo aver verificato che è davvero la tua chiave (suppongo, o almeno spero strongmente, che, nella tua situazione, il "dipartimento IT" abbia un modo ragionevolmente affidabile per assicurarsi che la richiesta di certificato hanno ricevuto è davvero quello che hai inviato). Naturalmente, per produrre la richiesta di certificato, è necessario generare una coppia di chiavi pubblica / privata. La chiave privata non ha mai lasciato il tuo computer; solo la parte pubblica è stata inviata alla CA.

Installando il certificato nella tua macchina, proprio lungo la chiave privata corrispondente, hai permesso a PHP di eseguire l'autenticazione del client basata su certificati. Il protocollo principale è SSL / TLS (quindi HTTPS, che è HTTP-over-SSL). Quando il client SSL si collega al server, eseguono alcune crittografie ("handshake") e il server può quindi richiedere un certificato dal client: il client deve quindi inviare il certificato e utilizzare il corrispondente chiave privata per rispondere a una sfida dal server (in pratica, calcolando una firma digitale ). Il server quindi convalida il certificato (cioè verifica la firma su cui è applicata la CA): questo certificato indica al server qual è la tua chiave pubblica, a quel punto il server può verificare la tua risposta alla sfida e , quindi, assicurati che ti stia davvero parlando.

Riepilogo: il server autentica il client verificando che il client controlli una chiave privata che corrisponde a una chiave pubblica specifica. Il certificato associa quella chiave pubblica al tuo nome. La CA stabilisce questo legame. Per produrre il certificato, la CA deve conoscere la tua chiave pubblica; la tua chiave pubblica è contenuta nella richiesta di certificato che hai inviato alla CA.

    
risposta data 28.12.2012 - 15:00
fonte

Leggi altre domande sui tag