¿En qué parte de un certificado autofirmado se puede confiar?

12

Quiero asegurarme de que el remitente del Documento B sea la misma persona que me envió el Documento A. Ambos documentos están firmados con certificados autofirmados. No me interesa conocer la identidad real del remitente.

Cuando abro el certificado autofirmado con un visor de certificados, muestra el asunto del certificado, el emisor, el número de serie, el identificador de la clave del sujeto, la clave pública (gibberish muy largo), el resumen SHA1 de la clave pública, los datos X.509, Digesto SHA1 (¿de qué?), Y Digesto MD5 (¿de qué?).

Sé que el emisor del certificado autofirmado puede colocar elementos arbitrarios en (por ejemplo, falso) campos de "sujeto", "emisor", "número de serie", por lo que no tienen sentido. Pero no sé nada sobre otros campos.

Si los certificados contenidos en esos dos documentos tienen, por ejemplo, exactamente la misma cadena de "clave de clave pública SHA1", ¿eso significa que efectivamente están firmados por la misma persona? ¿Puede un atacante falsificarlo?

    
pregunta certnoob 16.01.2018 - 15:42
fuente

4 respuestas

22

Las claves públicas y privadas están vinculadas de forma tal que, si dos certificados tienen la misma clave pública, se crearon utilizando la misma clave privada.

Entonces, si asume que la clave privada se mantiene privada, la parte en la que puede confiar en los certificados para identificar al creador es la clave pública y, por extensión, el resumen de la clave pública.

    
respondido por el Sjoerd 16.01.2018 - 16:14
fuente
14

Si dos certificados autofirmados tienen claves públicas diferentes, no puede determinar si estos certificados fueron creados por la misma persona o no.

Si dos certificados autofirmados tienen la misma clave pública, al menos sabe que se usó la misma clave privada para crear los certificados. Si asume que esta clave privada secreta solo la conoce una persona, puede deducirla que la misma persona ha creado ambos certificados.
Si, por el contrario, debe asumir que varias personas pueden tener acceso a la misma clave privada, entonces al menos sabe que uno de los certificados fue emitido por una persona de este grupo y el otro por la misma persona o una persona diferente del mismo grupo.

    
respondido por el Steffen Ullrich 16.01.2018 - 15:55
fuente
1

Además de los puntos señalados por otros usuarios, si los documentos están firmados con MD5 o SHA-1, no puede confiar en que fueron firmados por la misma persona, incluso si las firmas son válidas y tienen el mismo público. clave (que normalmente sería suficiente).

El motivo de esto es que se ha encontrado que tanto el MD5 como el SHA-1 tienen puntos débiles que pueden explotarse para hacer que un documento controlado por un atacante parezca haber sido firmado por el autor original.

El ataque SHA-1 sigue siendo muy costoso, por lo que solo un atacante bien financiado podría intentarlo, pero el MD5 se puede explotar con hardware relativamente barato (los investigadores de la universidad han organizado ataques efectivos en el mundo real). p>

Ambos ataques dependerían de un oráculo firmante, por lo que puede que no sea aplicable a su situación, pero MD5 o SHA-1 son problemáticos, especialmente si tiene adversarios bien financiados.

    
respondido por el James_pic 17.01.2018 - 12:46
fuente
0

Creo que las matemáticas detrás de las funciones deberían mantenerlo relativamente seguro, dado que la clave pública en el certificado coincide con la clave pública del creador.

Sin embargo, a partir de su pregunta, parece que usted es nuevo en el concepto de resumen SHA y firmas digitales (la mayoría de las firmas son autofirmadas). Si desea conocer los principios, hay muchos sitios web y videos de YouTube que pueden ayudar. Los fundamentos son los siguientes. Hay dos funciones, una para la creación y otra para verificar. La función de creación toma la entrada como el resumen SHA del mensaje y la clave privada del creador y proporciona una salida como una firma digital. La función de verificación toma la entrada en la forma del mensaje (es un resumen de SHA), la clave pública de los creadores y la firma digital para proporcionar una salida lógica 'verdadero' o 'falso' dependiendo de si la firma digital es válida o no. También tenga en cuenta que el resumen SHA de un mensaje fijo no varía. Esta es una excelente manera de garantizar la integridad de los datos y prueba que un certificado es legítimo.

Pero una respuesta simple es que si la clave pública en el certificado coincide con la clave pública del creador, usted está relativamente seguro. Por ejemplo, dos claves públicas que tienen el mismo compendio SHA1 son increíblemente raras y difíciles de encontrar. Esto puede garantizar que sea altamente improbable que SHA1 sea el enlace débil, ya que puede verificar el resumen SHA1 de una clave dada con una calculada a partir de una clave pública (deben coincidir). También puede intentar verificar por sí mismo los diversos resúmenes mencionados en su pregunta para garantizar la legitimidad del certificado. Si la firma digital no es válida, su sistema operativo o su aplicación deberían detectarla a través de funciones integradas, si no aplica la función usted mismo. Así que en conclusión, verifique los compendios y la clave pública. Para su pregunta inicial, si confía en que el documento A haya sido enviado por un remitente legítimo, las claves públicas de ambos certificados deben coincidir. Si el atacante pretende simular ser el remitente original, se mostrará en el resumen y las firmas.

    
respondido por el Shubhanshu Dixit 16.01.2018 - 16:27
fuente

Lea otras preguntas en las etiquetas