Un certificado está firmado , lo que significa que no se puede cambiar un solo bit en él sin romper la firma. Los certificados son inmutables. Cuando desee "cambiar la clave" o "cambiar las fechas de validez", necesita un nuevo certificado. Renovación es un concepto de negocio; en el nivel X.509 hay un certificado, y luego hay otro, y ambos viven independientemente el uno del otro.
Un certificado contiene un nombre y una clave pública. La misma clave pública puede aparecer en varios certificados; no hay una regla técnica que obligue a una nueva generación de pares de claves cada vez que se emita un nuevo certificado. Sin embargo, puede haber reglas legales o empresariales : se supone que una CA debe seguir su política de certificación publicada, y esa política puede exigir un nuevo par de claves para la renovación de un certificado.
Podemos notar que cuando una CA quiere "renovar" un certificado sin cambiar la clave pública, entonces puede hacerlo por sí misma: la CA ya sabe todo lo que entra en el nuevo certificado. Por lo tanto, ese tipo de renovación se puede hacer automáticamente sin necesidad de hablar con el titular del certificado. No todos los CA hacen eso.
Para cada clave pública, hay una clave privada correspondiente. La clave privada, formalmente, es el conocimiento de los elementos matemáticos que permiten ejecutar las "operaciones de clave privada" (generación de firmas, descifrado asimétrico). Matemáticamente, este conocimiento puede ser codificado de varias maneras. En RSA, la clave pública es un par de grandes enteros:
- el módulo n
- el exponente público e
El módulo es un producto de dos enteros primos grandes p y q . La clave privada es, en realidad, el conocimiento de p y q . Sin embargo, en la práctica, la clave privada se codifica como varios enteros grandes:
- el módulo n
- el exponente público e
- p
- q
- el exponente privado d
-
d p = d mod p-1
-
d q = d mod q-1
-
1 / q mod p
El "exponente privado" es un valor d tal que e · d = 1 módulo tanto p-1 como q -1 . Sucede que hay varios (en realidad, infinitos) valores posibles para d , para una clave pública determinada (n, e) . Esto es lo que otros han señalado: puede tener "varias" claves privadas para la misma clave pública. Sin embargo, puedo argumentar que todas estas claves privadas son de hecho varias representaciones de una única clave privada "verdadera", que es el conocimiento de p y q . Todas estas llamadas claves privadas computarán las mismas cosas para las mismas entradas y producirán las mismas salidas. En realidad, solo hay una clave privada.
(Matemáticamente, buscando valores equivalentes para dp y dq se ha empleado para obtener algunos El rendimiento en algunas arquitecturas de bajo consumo, como las tarjetas inteligentes, es que hacer que dp sea un poco más largo puede implicar una mejora en el rendimiento si el valor más largo tiene un peso Hamming menor. )
Por lo tanto, diría que puede olvidar esta noción de "cambiar la clave privada sin cambiar la clave pública". Solo agrega confusión.
Finalmente, la clave pública de un servidor SSL está en el certificado del servidor, que es público y se envía al cliente. Si el cliente recuerda el último certificado utilizado por un servidor determinado, entonces puede informar cuándo se cambió ese certificado y qué ha cambiado exactamente. En particular, si la clave pública es la misma que la anterior u otra.
Hay un complemento de Firefox para eso.
Tenga en cuenta que los certificados que cambian son una ocurrencia normal en la Web, no solo para renovaciones (a CA, que vende certificados les gusta mucho cuando pueden vender más certificados, y ese es un controlador principal para los cortos plazos de vida de los certificados de servidores existentes ), pero también para múltiples interfaces: cuando un servidor está alojado en varias máquinas con equilibrio de carga, cada máquina puede tener su propio certificado, distinto de los certificados de otras interfaces.