La mia organizzazione deve emettere (e revocare) certificati client OpenVPN per le persone che lavorano in remoto.
Il nostro sistema si basa su una configurazione CA OpenSSL standard e sugli strumenti easy-rsa e l'intera directory vive in un repository git che i membri del team IT clonano localmente sui loro laptop dove generano e firmano i certificati VPN, quindi aggiornano il repo remoto.
La passphrase della chiave privata della CA principale viene memorizzata separatamente in un sistema di gestione delle password locale che è protetto da una password che non memorizziamo da nessuna parte.
La nostra preoccupazione è che chiunque sia mai stato un membro del team IT e se ne vada, può facilmente conservare una copia della chiave privata CA principale e la sua passphrase e può generare e firmare certificati VPN validi a volontà anche dopo che è stato revocato . Attualmente, l'unico modo per impedirlo è quello di cambiare la chiave CA radice e ri-emettere certificati VPN a tutti gli utenti (enorme dolore!)
Qual è la migliore soluzione pratica che le persone usano?
1) Avere procedure migliori e generare / firmare solo certificati VPN client su un singolo host con un criterio di accesso limitato? Questo ci rallenterà notevolmente nelle operazioni giornaliere e non impedisce realmente ad un amministratore di scpare la chiave privata da qualche altra parte se lo desidera.
2) Proteggi correttamente la chiave CA radice come sopra, ma usa certs intermedi per la firma dei certificati VPN giorno per giorno? Come funziona esattamente? Quando un membro del team IT esce, capisco che possiamo revocare il certificato intermedio che è ora "compromesso" e rilasciarne uno nuovo dalla CA principale, ma cosa succede ai certificati VPN esistenti che sono stati firmati con il certificato precedente? Quello che sto leggendo su cerattivi intermedi sembra suggerire che restano validi, ma non capisco come.
Grazie!