Sì, ma ci sono potenzialmente conseguenze di vasta portata. Ho intenzione di rispondere alla tua domanda più in generale.
La semplice risposta è revocare la chiave di firma. Facile come quella risposta è per una chiave utente, ci sono ancora problemi. Ad esempio, chiunque potrebbe fare affidamento su quella firma sottoscritta e aggiornata in base al nostro CRL? In caso contrario, la revoca della chiave non ha alcun effetto reale.
Se dovessimo riformularlo solo un po ', e parleremo di una firma del codice o di una chiave per la firma del certificato, il problema è più grande. Puoi ancora "semplicemente" revocare la chiave ... ma l'impatto è che tutti quelli che fanno riferimento al nostro CRL non si fidano più di qualsiasi cosa firmata da quella chiave di firma! Come puoi immaginare, questo porterà a una notevole quantità di lavoro per rassegnare le dimissioni.
Il modo in cui revochi la chiave dipenderà, ovviamente, dal pacchetto specifico che stai utilizzando. In genere implica la compilazione di dati sulla chiave compromessa in un elenco di revoche di certificati che deve quindi essere distribuito a tutte le entità fidate.
Come vengono migrati automaticamente su una nuova chiave? Bene, se hanno perso il controllo della chiave è difficile immaginarlo come un processo automatico; è davvero più una reazione a un incidente. Per le normali modifiche alle chiavi, tuttavia, molti prodotti gestiscono automaticamente questo problema (Microsoft Certificate Services con autoenrollment, ad esempio, o con rinnovo certificato self-service) e con altri è piuttosto manuale (PGP, OpenSSL) anche se è possibile automatizzarlo un grado.
La difficoltà nella creazione di un sistema simile da zero è che, in genere, preferirai -non- per generare o memorizzare la chiave privata per il certificato, in particolare per un certificato utente; ti piacerebbe davvero che generassero la parte privata della chiave. Questo di solito significa che dovranno essere coinvolti in qualche modo.