Volver a firmar el certificado usando un algoritmo de hash diferente

1

Considere un certificado usado por una Autoridad de Certificación. Esto está actualmente hash utilizando SHA-1. Me gustaría mantener la misma clave pública / privada para esto, pero hash con SHA-256. Por hash it quiero decir hash la sección tbsCertificate, como se describe en RFC5280 - usando SHA-256, seguido de firmar el resumen con la clave privada de la CA original que realmente emitió el certificado.

Esto viene en el contexto de este artículo , donde se indica que

  

Si desea convertir un certificado de CA en una versión de ADCS antes de Windows Server 2012, debe exportar el certificado de CA fuera de la CA, importar en ADCS 2012 o posterior utilizando certutil.exe con la opción -KSP, luego exportar el certificado recién firmado como un archivo PFX y vuelva a importar en el servidor original.

Además del error de escritura (no hay -KSP, solo un interruptor -CSP).

Sin embargo, si utiliza una CA diferente para firmar un certificado, esto se traduce en el uso de una clave privada diferente, siempre que el Identificador de la Clave de Autoridad permanezca igual, y la clave pública de la CA a la que se hace referencia no verifique esta nueva firma. ¿Genera esto un certificado que podría fallar la validación?

    
pregunta Mihai Albert 28.01.2016 - 18:45
fuente

1 respuesta

1

Cuando instala ADCS, tiene la opción de generar un nuevo par de claves, o reutilizar un par de claves existente. La frase que cita parece indicar lo último:

  • Usted exporta el certificado y la clave privada desde una CA existente, como un archivo PFX.
  • Importa el PFX a una máquina con Windows Server 2012.
  • Instala ADCS en esa máquina y le indica que reutilice la clave privada que acaba de importar. ADCS luego procede a generar y firmar su certificado, utilizando la clave privada que indicó.
  • Usted vuelve a exportar el certificado y la clave de ese nuevo ADCS, nuevamente como un archivo PFX, y lo importa de nuevo en la máquina original.

El primer archivo PFX contiene un certificado y una clave privada porque para eso son los archivos PFX, pero aquí se ignora por completo el certificado; Sólo importa la clave privada. Simplemente sucede que las herramientas de Microsoft no pueden procesar una clave privada viajando "solo"; siempre acceden a las claves a través de certificados, por lo que debe haber un certificado.

Durante la importación en la máquina 2012, debe agregar una opción -csp "Microsoft Software Key Storage Provider" para que la clave privada se maneje en el nuevo sistema de criptografía (CNG) porque la anterior (CryptoAPI) no conoce SHA-256.

Por supuesto, es un poco extraño pasar por una máquina Windows 2012 adicional, ya que Windows 2008 o Windows 7 saben perfectamente cómo hacer criptografía con SHA-256. En cualquier caso, con un poco de programación, en última instancia no es difícil descodificar tbsCertificate del certificado existente, volver a utilizarlo con SHA-256, calcular la firma y envolver todo el conjunto en un nuevo certificado. Por supuesto, tendría que entender cómo funciona toda la codificación ASN.1 / DER, pero si desea administrar una CA correctamente, casi necesita saberlo de todos modos, por lo que es mejor que lo haga ahora.

Al sugerir un sistema adicional, ¡uno puede incluso sospechar que Microsoft está ganando dinero vendiendo licencias de Windows!

    
respondido por el Thomas Pornin 28.01.2016 - 19:06
fuente

Lea otras preguntas en las etiquetas