Autenticazione CA e server client privata

1

Ho un'applicazione privata - che ha un server e molti client e voglio usare un'autenticazione a due vie (autenticazione client AKA) Utilizzo Tomcat server e java keytool per creare certificati TLS.

Se creo un'autorità di certificazione e creo su certificato (firmato dalla CA) per il server, e pre-installalo per tutti i client, allora possono autenticare il server (anche se in realtà non dovevo firmarlo con la CA, ma comunque) /

Se creo un certificato client, lo firmo con la CA e poi lo installo sul client:

  1. Il server deve contenere il certificato client (e la CA) o solo la CA nel truststore? E con questo intendo: c'è qualche posto in cui ho bisogno di "Ricordare" il certificato del cliente e controllare un file esistente (che ovviamente corrisponderà uno a uno con il certificato inviato dal client)

  2. Oppure basta controllare la firma della CA sul certificato, causando che nel mio sistema esiste solo una copia del certificato client, e crittograficamente - è sicuro che se la firma del CA esiste (e valida) sul certificato che un cliente mi ha inviato - è il client

posta Yoav R. 05.05.2015 - 00:14
fonte

1 risposta

0

La tua Opzione 2 è sufficiente e crittograficamente sicura. Se la firma della CA sul certificato del client viene convalidata (e la coppia di chiavi della firma della CA non è stata revocata a causa di compromissione) allora sì, si può presumere che il certificato sia autentico, cioè è stato emesso dalla CA e non è stato manomesso . Ricorda che una firma è un hash crittografato dell'intero certificato, quindi se anche un singolo carattere è stato modificato, la firma non riuscirà a convalidare.

Tuttavia, questo non ti dice nulla su chi ti ha inviato. I certificati sono pubblici, ognuno potrebbe avere una copia di tutti gli altri, così Alice potrebbe inviarti il certificato di Bob e dichiarare di essere Bob. Per poter autenticare il cliente, devono dimostrare di avere la chiave privata corrispondente. Ricorda che i certificati contengono solo chiavi pubbliche , le chiavi private corrispondenti non vengono mai trasformate in certificati e sono archiviate separatamente. Questo può essere fatto facendo in modo che il client invii un dato che ha firmato insieme al certificato.

Informazioni sulla opzione 1 : in un'infrastruttura a chiave pubblica completa in cui gli utenti finali possono crittografarsi l'uno per l'altro e verificare reciprocamente le firme, tutti hanno bisogno di accedere ai certificati a chiave pubblica di tutti gli altri. Ciò avviene di solito mantenendo la CA una copia dei certificati di tutti e mostrandoli in un luogo pubblico come su un sito HTTP o in una directory LDAP pubblica.

    
risposta data 05.05.2015 - 02:28
fonte

Leggi altre domande sui tag