Flujo de verificación y autenticación para el certificado de canto de código X509

1

Estoy desarrollando una actualización de FW para dispositivos integrados (no conectada a Internet) y estoy usando certificados de firma de código para verificar la identidad del emisor de la actualización de FW (la actualización de FW está firmada con nuestra clave privada). Implementé un analizador ASN.1 en FW (no puedo usar alguna implementación conocida debido a restricciones de memoria) y funciona bien. También tengo la clave pública de la CA raíz descargada en el dispositivo de forma segura durante el proceso de producción. Mi pregunta es:

Cuando busqué un flujo común de autenticación de certificados y algoritmo de verificación, se indica en todas partes que debo verificar el nombre de host (CN) de la CA que emitió el certificado, así como el nombre y los detalles del emisor de CSR. Parece que no entiendo por qué el simple hecho de verificar la firma no es suficiente para mis necesidades, tengo la clave pública de CA ya instalada, de modo que cualquier certificado que no haya sido firmado por esta CA específica fallará en la autenticación RSA. ¿Hay alguna razón por la que también deba verificar el contenido del certificado y no solo la firma?

Gracias,

    
pregunta Dima Shifrin 14.06.2017 - 11:21
fuente

1 respuesta

0

Si está almacenando una clave pública de CA de confianza, es posible que no tenga que hacer nada más. Esto supone un par de cosas:

  • La CA nunca realizará ninguna revocación
  • Todas las firmas que verifique serán generadas por la misma CA

También es importante tener en cuenta que la CA caducará en algún momento (como se indica en el certificado de CA), y puede llegar un punto en el que deje de confiar en esta CA. Debería tener alguna forma de evitar que su código confíe en las cosas firmadas por la CA.

Realmente no es necesario ir por la ruta completa a menos que esté lidiando con muchas CA intermedias potenciales, firmadas por algunas raíces (que aún son código duro). Debido a que solo evaluará la CA intermedia cuando la vea, deberá realizar un conjunto completo de verificaciones. Lo que obtiene al recorrer esta ruta es que puede confiar en muchas más CA, y puede verificar si se ha revocado algo en la cadena.

    
respondido por el Lampshade 14.06.2017 - 17:10
fuente

Lea otras preguntas en las etiquetas