¿Es posible cambiar la CA que está usando un par de llaves?

1

Pretender Tomo la misma CSR y la envío a dos CA diferentes, como se describe en el siguiente escenario:

  1. Creo una CSR en Windows
  2. Presento el CSR y edito mis nombres SAN. La solicitud está pendiente en la CA
  3. espere 2 horas. sigue pendiente
  4. Enviar CSR enviado anteriormente en el paso # 1 a CA # 2
  5. Vuelva a cambiar los nombres de SAN, pero hágalo un poco diferente (orden, etc.) que en CA # 1 arriba

Luego obtengo una aprobación, firmada clave pública. Un técnico agrega este certificado a IIS o a la tienda de Cert. Desde este punto en adelante, todas las "Exportaciones" se unirán a este par de claves público / privado.

Unas horas más tarde, el certificado se envía desde CA # 2. Ambos certificados son "válidos"

Normalmente, simplemente comenzaría todo este proceso sin pensarlo, pero creo que sería bueno saber si es posible volver a vincular el certificado público (del paso 5) con la clave privada.

Pregunta

  1. ¿Tengo que preocuparme por la revocación?
  2. ¿Puedo volver a vincular una clave privada a una nueva pública?
pregunta random65537 11.03.2015 - 19:52
fuente

1 respuesta

3

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.

    
respondido por el Thomas Pornin 11.03.2015 - 20:28
fuente

Lea otras preguntas en las etiquetas