Sí, pero hay consecuencias potencialmente de gran alcance. Voy a responder a tu pregunta de manera más general.
La respuesta simple es revocar la clave de firma. Tan fácil como esa respuesta es para una clave de usuario, todavía hay problemas. Por ejemplo, ¿todas las personas que podrían confiar en esa firma están suscritas y actualizadas en función de nuestra CRL? Si no, revocar la clave no tiene ningún efecto real.
Sin embargo, si tuviéramos que replantearlo un poco y hablar sobre una clave de firma de código o firma de certificado, el problema es mayor. Aún puede "simplemente" revocar la clave ... ¡pero el impacto es que todos los que hacen referencia a nuestra CRL ya no confiarán en nada firmado por esa clave de firma! Como puede imaginar, esto llevará a una cantidad significativa de trabajo para renunciar a todo.
La forma en que revoque la clave dependerá, por supuesto, del paquete específico que esté utilizando. Por lo general, implica llenar los datos sobre la clave comprometida en una lista de revocación de certificados que luego debe circular a todas las entidades de confianza.
¿Cómo se migran automáticamente a una nueva clave? Bueno, si han perdido el control de la clave, es difícil imaginar esto como un proceso automático; Realmente es más una reacción a un incidente. Sin embargo, para los cambios de clave normales, muchos productos manejan esto automáticamente (Servicios de Certificate Server de Microsoft con inscripción automática, por ejemplo, o con renovación de certificado de autoservicio) y con otros es bastante manual (PGP, OpenSSL), aunque ciertamente podría automatizarlo. un grado.
La dificultad de crear un sistema de este tipo desde cero es que, por lo general, preferirá -no- generar o almacenar la clave privada para el certificado, especialmente para un certificado de usuario; Realmente te gustaría que generaran la parte privada de la clave. Esto generalmente significa que deberán participar de alguna manera.