Es perfectamente posible tener la misma clave pública en varios certificados distintos. Matemáticamente , las claves pública y privada están vinculadas (en el lenguaje RSA, usan el mismo módulo) y no hay nada que pueda hacer a favor o en contra. Simplemente es.
Técnicamente , una máquina determinada puede almacenar certificados y claves privadas en algunas estructuras dedicadas, y una clave privada debe estar vinculada de alguna manera al certificado, y / o viceversa, para que las aplicaciones puedan obtener cosas Yendo sin mucha ambigüedad.
En el mundo de Windows (CryptoAPI y CNG), el enlace es desde el certificado (en el "Mi" almacén de certificados) a la clave privada (en un antiguo estilo CSP de CryptoAPI, o un KSP de CNG de nuevo estilo). Es perfectamente posible tener varios certificados que apunten a la misma clave privada; Esta es incluso la situación normal en el caso de la renovación del certificado sin crear un nuevo par de claves. Los enlaces de los certificados a las claves privadas se pueden configurar de forma semiautomática con certutil
con el subcomando -repairstore
(normalmente, el proceso de emisión del certificado realiza un seguimiento de la solicitud y establece el enlace correctamente, pero en algunos casos el enlace debe restaurarse ). También se puede hacer programáticamente. El enlace se realiza por nombre (el "nombre del contenedor" en la terminología de Microsoft).
En los sistemas PKCS # 11 (por ejemplo, Firefox y la mayoría de las cosas basadas en certificados en Linux que no son puramente software), los certificados y las claves están vinculados en virtud de tener el mismo atributo CKA_ID
, y como se supone que ese atributo ser único para un tipo de objeto dado, puede tener problemas para tener dos certificados simultáneamente que apuntan a la misma clave privada.
En cualquier caso, varios dispositivos de hardware que almacenan y usan claves privadas (en particular, tarjetas inteligentes) no pueden realmente mantener una relación de muchos a uno de certificados a claves. Incluso con el "Proveedor de tarjeta inteligente base" de Windows y su API complementaria "MiniDriver", se espera que solo se pueda almacenar un certificado a la vez en una tarjeta inteligente con un enlace a la clave privada. Sin embargo, aún se pueden tener copias de varios certificados en el almacén de certificados (en la máquina, no en la tarjeta inteligente), todos apuntando a la clave privada en la tarjeta inteligente.
Revocación se realiza por certificado. Lo que se revoca es el certificado (es decir, el enlace entre su clave y su identidad), no la clave. Por supuesto, si varias CA han emitido certificados que vinculan su clave a su nombre y su clave es robada, entonces le gustaría que todos estos certificados sean revocados. Sin embargo, si una CA revoca su certificado por alguna otra razón (por ejemplo, no pagó una tarifa anual de "mantenimiento de certificados"), esto no tiene ningún impacto en el estado de revocación de los certificados emitidos por otra CA, incluso si tienen el mismo nombre. (suya) y la misma clave pública (también suya) que el certificado revocado.