PKI e certificati

Una PKI (Public Key Infrastructure) è un sistema che contribuisce a realizzare comunicazioni protette tramite l'uso di certificati digitali. Reflection supporta l'uso di una PKI sia per l'autenticazione dell'host che per quella dell'utente.

Come per l'autenticazione con chiave pubblica, l'autenticazione con certificato utilizza una coppia di chiavi pubblica/privata per verificare l'identità dell'host. Tuttavia, nell'autenticazione con certificato, le chiavi pubbliche sono contenute all'interno di certificati digitali Parte integrante di una PKI (Public Key Infrastructure). I certificati digitali (chiamati anche certificati X.509) sono emessi da un'autorità di certificazione (CA), che garantisce la validità delle informazioni nel certificato. Ogni certificato contiene informazioni di identificazione sul proprietario del certificato, una copia della chiave pubblica del proprietario del certificato (utilizzata per crittografare e decrittografare messaggi e firme digitali) e una firma digitale (generata dalla CA in base al contenuto del certificato). La firma digitale viene utilizzata da un destinatario per verificare che il certificato non sia stato alterato e che sia attendibile. e in tal caso vengono utilizzate due coppie di chiavi. Ad esempio, per l'autenticazione del server, l'host dispone di una chiave privata e il CA dispone di una seconda chiave. L'host ottiene un certificato dalla CA. Questo certificato contiene informazioni di identificazione sull'host, una copia della chiave dell'host e una firma digitale Utilizzata per confermare l'autenticità e l'integrità di un messaggio trasmesso. In genere, il mittente dispone della chiave privata di una coppia di chiavi pubblica/privata, mentre il destinatario dispone della chiave pubblica. Per creare la firma, il mittente calcola un valore hash dal messaggio, quindi effettua la crittografia del valore calcolato utilizzando la propria chiave privata. Il destinatario esegue la decrittografia della firma con la chiave pubblica del mittente e calcola separatamente il valore hash del messaggio ricevuto. Se il valore decrittografato e il valore calcolato corrispondono, il destinatario ritiene attendibile che il mittente disponga della chiave privata e che il messaggio non sia stato alterato durante la trasmissione. creata utilizzando la chiave privata della CA. Questo certificato viene inviato al client durante la procedura di autenticazione. Per verificare l'integrità delle informazioni provenienti dall'host, il client deve disporre di una copia della chiave pubblica della CA, contenuta nel certificato principale per la CA. Non è necessario che il client disponga di una copia della chiave pubblica dell'host.

L'autenticazione con certificato risolve alcuni dei problemi presentati dall'autenticazione con chiave pubblica. Ad esempio, per l'autenticazione con chiave pubblica dell'host, l'amministratore del sistema deve distribuire le chiavi dell'host per ogni server a ciascun archivio di host conosciuti del client, oppure deve attendere che gli utenti client confermino correttamente l'identità dell'host quando si connettono a un host sconosciuto. Quando vengono utilizzati i certificati per l'autenticazione dell'host, è possibile utilizzare un unico certificato principale per la CA per l'autenticazione di più host. In molti casi, il certificato richiesto è già disponibile nell'archivio certificati di Windows.

Analogamente, se vengono utilizzate le chiavi pubbliche per l'autenticazione del client, è necessario che ciascuna chiave pubblica del client venga caricata sul server e che il server sia configurato in modo da riconoscere la chiave. Quando viene utilizzata l'autenticazione con certificato, è possibile ricorrere a un unico certificato principale per la CA per l'autenticazione di più utenti client.