¿El módulo de un certificado TLS identifica de manera única al cliente?

3

Estoy trabajando en un proyecto utilizando una configuración del grupo de confianza . Quiero una manera de identificar de manera única a cada actor en el sistema, idealmente también en las reemisiones de certificados.

En mi opinión, el módulo de un certificado TLS identifica de forma única al cliente, y no debe cambiar cuando se vuelve a emitir el certificado. Lo único que cambiaría el módulo sería si la clave privada estuviera comprometida y, por lo tanto, cambiada. ¿Es correcto?

EDITAR: también, ¿es correcto suponer que hay una asignación 1: 1 entre las claves privadas y los módulos?

    
pregunta Ryan Kennedy 09.07.2015 - 15:38
fuente

1 respuesta

5

Si estamos hablando de RSA, entonces la clave pública es, nominalmente, la combinación de:

  • El módulo n
  • El exponente público e

mientras que la clave privada es el conocimiento de los factores primos de n (tradicionalmente, n es el producto de dos factores primos p y q de tamaño similar). Formalmente , la clave privada es realmente la combinación del módulo y el exponente privado d , pero si sabes n , e y d luego puede volver a calcular los factores p y q .

Por lo tanto, si dos claves públicas distintas comparten el mismo módulo (de ahí los mismos factores), entonces tienen la "misma" clave privada, en el sentido de que cualquiera que conozca la clave privada para una de las claves públicas también conoce la Clave privada para la otra clave pública. Por lo tanto, las dos claves son "iguales" o al menos corresponden al mismo conocimiento privado.

Así que, de hecho, puede afirmar que solo el módulo RSA identifica de manera única una clave privada, por lo tanto (presumiblemente) un propietario de clave privada.

Sin embargo , debe cuidarse de que si bien una clave privada normalmente la conoce un solo propietario (de lo contrario no es realmente "privada"), una sola persona puede poseer perfectamente varias pares de teclas. En particular, cuando un certificado se "vuelve a emitir", este es realmente un certificado nuevo, que puede o no contener la misma clave. Esto depende de los procedimientos de la AC: algunos volverán a emitir certificados con la misma clave pública, mientras que otros insistirán en la generación de un nuevo par de claves. No se puede asumir de manera confiable que cuando un servidor "renueva" su certificado, el nuevo certificado incluirá la misma clave pública.

Además, la noción de "módulo" es específica de RSA, y no se aplica a otros tipos de claves púbicas, en particular claves de EC (utilizadas, por ejemplo, para ECDSA). Si desea identificar las cosas por clave pública, se recomienda utilizar simplemente la clave pública entera , como se codifica en el certificado.

    
respondido por el Thomas Pornin 09.07.2015 - 16:13
fuente

Lea otras preguntas en las etiquetas