¿Cómo verificar la integridad del par de claves privadas?

Puede verificar la integridad de un certificado SSL y un par de claves privadas con la utilidad
utilidad OpenSSL
y sus líneas de comando.

El proceso consta de cuatro pasos:

  1. Verifique que la clave privada no ha sido alterada.
  2. Verifique que el valor del módulo coincide con la clave privada y el par de certificados SSL.
  3. Realizar correctamente el cifrado con la clave pública del certificado y el descifrado con la clave privada.
  4. Confirmar la integridad del archivo, que está firmado con la clave privada.

Verificar la integridad de la clave privada

Ejecute el siguiente comando: openssl rsa -in [key-file .key] -check -noout

He aquí un ejemplo de una clave privada corrupta:

error de clave privada

A continuación se enumeran otros errores derivados de una clave alterada/falsificada:

  • Error de clave RSA: p no es primo
  • Error de clave RSA: n no es igual a p q
  • Error de clave RSA: d e no congruente con 1
  • Error de clave RSA: dmp1 no es congruente con d
  • Error de clave RSA: iqmp no es inverso de q

Si has encontrado alguno de los errores anteriores, tu clave privada ha sido manipulada y puede que no funcione con tu clave pública. Considere la posibilidad de crear una nueva clave privada y solicitar un certificado de sustitución.

He aquí un ejemplo de clave privada que cumple la integridad:

clave rsa ok

Verifique que el valor del módulo coincide con la clave privada y el par de certificados SSL.


Nota:

El módulo de la clave privada y del certificado deben coincidir exactamente.

Para ver el módulo del certificado ejecute el comando:

openssl x509 -noout -modulus -in [certificate-file .cer]

Para ver la clave privada Modulus ejecute el comando:

openssl rsa -noout -modulus -in [key-file .key]

Cifrar con la clave pública de y descifrar con la clave privada

1. Obtenga la clave pública del certificado:

openssl x509 -in [certificate-file .cer] -noout -pubkey > certificatefile.pub.cer

2. Cifrar el contenido del archivo test.txt utilizando la clave pública

Cree un nuevo archivo llamado test.txt (puede utilizar el Bloc de notas) con el contenido “mensaje de prueba”. Ejecute el siguiente comando para crear un mensaje cifrado en el archivo cipher.txt.

openssl rsautl -encrypt -in test.txt -pubin -inkey certificatefile.pub.cer -out cipher.txt

3. Descifrar de cipher.txt utilizando la claveprivada
Realice el siguiente comando para descifrar el contenido de cipher.txt.

openssl rsautl -decrypt -in cipher.txt -inkey [key-file .key]

Asegúrese de que puede descifrar el contenido de su archivo cipher.txt en su terminal. La salida del terminal debe coincidir con el contenido del archivo test.txt.

Si el contenido no coincide, la clave privada ha sido manipulada y puede que no funcione con tu clave pública. Considere la posibilidad de crear una nueva clave privada y solicitar un certificado de sustitución. He aquí un ejemplo de mensaje descifrado:

prueba de mensajes

4. Confirmar la integridad del archivo firmado con la clave privada

Ejecute el siguiente comando para firmar el archivo test.sig y test.txt con su clave privada:

openssl dgst -sha256 -sign [key-file .key] -out prueba.sig prueba.txt

Ahora, verifica los archivos firmados con tu clave pública extraída del paso 1.

openssl dgst -sha256 -verify archivocertificado.pub.cer -firma prueba.sig prueba.txt

Asegúrese de que la salida del terminal es exactamente como en el ejemplo siguiente:

verificado ok
Si tu clave privada es manipulada, recibirás el siguiente mensaje:

fallo de verificación
En este caso, deberá crear una nueva clave privada y solicitar un certificado de sustitución.

Fuente: Base de conocimientos de Digicert

Ahorre un 10% en certificados SSL al realizar su pedido hoy mismo.

Emisión rápida, cifrado potente, 99,99% de confianza del navegador, asistencia dedicada y garantía de devolución del dinero en 25 días. Código del cupón: SAVE10