¿Por qué se puede descifrar el correo rellenado RSA-OAEP usando OpenSSL 1.0.1e?

1

He estado cifrando mensajes y especificando el relleno RSA-OAEP con OpenSSL 1.0.2k, usando el siguiente comando:

openssl cms -encrypt -in content.txt -out message.msg \
-recip public-key.pem -keyopt rsa_padding_mode:oaep

Y puede descifrarlos bien cuando aún se usa v1.0.2k.

Al intentar descifrar el mensaje en un entorno con OpenSSL 1.0.1e, esperaría que el descifrado fallaría, como en la documentación de OpenSSL cms, dice:

  

La compatibilidad con RSA-OAEP y RSA-PSS se agregó por primera vez a OpenSSL 1.1.0

Sin embargo, cuando uso el siguiente comando para intentar descifrar el mensaje (esto estaría dentro del entorno v1.0.1e), el mensaje se descifra correctamente y muestra el contenido original en texto sin formato.

openssl cms -decrypt -in message.msg -recip \
recipient-combined-key.pem -inkey private-key.pem

Espero que el descifrado falle en este caso, ¿es probable que la versión sin soporte para RSA-OAEP no tenga conocimiento del esquema de relleno utilizado?

También he probado los mensajes firmados utilizando el relleno RSA-PSS, y en ese caso, la firma no se puede verificar en la versión anterior de OpenSSL sin el soporte de RSA-PSS. ¿Alguien puede explicar por qué este es el caso del relleno PSS y no del relleno OAEP?

    
pregunta Andy Shearer 18.04.2018 - 10:24
fuente

1 respuesta

1

OpenSSL 1.0.1 admite los modos de relleno OAEP y PSS, es la herramienta cms que no lo hace. El uso de cms para descifrar con el relleno OAEP funciona en 1.0.1 incidentalmente porque la función de descifrado cms calls determina automáticamente el modo de relleno. La función a la que se llama para verificar una firma no hace esto y su valor predeterminado es PKCS1, por lo que falla.

La herramienta cms fue updated en 1.1.0 para, entre otras cosas, permitir el% co_de Opción% para que el relleno se pueda especificar al cifrar o firmar, y para determinar el tipo de relleno al verificar. Este cambio fue backported a 1.0.2.

    
respondido por el AndrolGenhald 18.04.2018 - 22:33
fuente

Lea otras preguntas en las etiquetas