¿Se requiere que las autoridades de certificación obedezcan al algoritmo de firma (hashing) especificado en el CSR?

14

Estaba jugando un poco con algoritmos de firma, tratando de determinar qué CA entre las que uso están emitiendo certificados SHA2 actualmente.

Generé un CSR especificando el hash SHA256 (usando gnutls-certtool con hash param y openssl req con el -sha256 param) y el CSR muestra claramente sha256WithRSAEncryption como el algoritmo de firma.

$ openssl req -noout -text -in test.csr

Certificate Request:
    ...
    Signature Algorithm: sha256WithRSAEncryption
        ...

Sin embargo, el certificado resultante de la entidad emisora de certificados se rellena con sha1WithRSAEncryption .

$ openssl x509 -noout -text -in test.crt

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: ... (...)
        Signature Algorithm: sha1WithRSAEncryption

Por supuesto, generar un CSR con --hash SHA1 ( sha1WithRSAEncryption hash) hará que el certificado resultante use sha1WithRSAEncryption (como se esperaba).

La CA indica que el hash debe especificarse como parte del pedido, no del CSR (que es algo que no puedo hacer en cualquier caso dado que estoy enviando el pedido a través de un servicio de terceros).

De ahí la pregunta. ¿Debería la CA obedecer al algoritmo hash especificado en la CSR?

    
pregunta Simone Carletti 11.09.2014 - 00:23
fuente

2 respuestas

14

El algoritmo de firma especificado al crear el CSR corresponde al resumen del mensaje utilizado para firmar la solicitud en sí mismo , no se pretende pedirle a la AC que prefiera ese algoritmo al firmar su certificado.

El MD utilizado en la CSR establece el nivel de confianza en su , pero no implica qué algoritmo se usa en el certificado, ya que la firma no depende de ese resumen sino de la clave pública.

La mayoría de las CA se adhieren al mismo algoritmo para un certificado de emisión específico, a menos que se descubra que es "débil", ignorando qué resumen de mensaje usó en su solicitud.

Una buena CA rechazaría cualquier CSR firmado con MD5 (por precaución ya que no deberían confiar en usted), y debería obligarlo a usar SHA256 para cualquier certificado que pretenda usar durante más de dos años a partir de hoy (2014) , ya que Microsoft (y quizás otros) rechazarán los certificados firmados con SHA-1 o inferior en enero de 2017.

    
respondido por el NuTTyX 11.09.2014 - 19:06
fuente
1

Desde mi experiencia, las CA tienen sus propios ajustes y a menudo no están dispuestos (o no pueden hacerlo, porque está conectado a su software) a cambiar nada en él. Estoy hablando de campos obligatorios de Asunto, uso de claves, uso extendido de claves, ...

Por ejemplo, le gustaría tener L, ST, C en el Asunto, pero CA cortará está desactivado y obtendrá su certificado solo con C = condado. O envía un .csr simple y obtiene un certificado con usos especiales de claves extendidas, como la autenticación de cliente (1.3.6.1.5.5.7.3.2) y la autenticación de servidor (1.3.6.1.5.5.7.3.1). Y muchas veces también obtienes SAN igual a CN, gratis.

Si desea que el certificado se firme con sha1 o sha256, debe solicitar a la RA = autoridad de registro. RA envía la solicitud real a la CA y puede configurar los ajustes, incluido el algoritmo de hash utilizado.

Las CA utilizan la firma en el archivo .csr solo para verificar que usted posee la clave privada, nada más.

    
respondido por el Tomas 18.02.2015 - 13:34
fuente

Lea otras preguntas en las etiquetas