No se puede descifrar el mensaje S / MIME cifrado


1

Después de enviar un correo electrónico firmado S / MIME a una compañía de seguros, su servidor de intercambio recogió mi certificado S / MIME y su respuesta fue encriptada S / MIME. Antes, usaban mi clave pública PGP para cifrar los mensajes que me enviaban, que pude descifrar. Nunca firmaron sus propios mensajes.

A pesar de que el certificado y la clave privada S / MIME están instalados en Thunderbird y Apple Mail, ninguno de ellos puede descifrar el mensaje. ( Thunderbird no puede descifrar el mensaje. El remitente usó uno de sus certificados para cifrar este mensaje. A pesar de eso, Thunderbird no pudo encontrar el certificado y la clave privada correspondiente ) .

Thunderbird y Apple Mail pueden descifrar los mensajes que recibo de otras entidades que usan mi certificado S / MIME para el cifrado, incluidos los mensajes de prueba y los mensajes de swiftmail / PHP.

La clave privada no está en una tarjeta inteligente, sino que se almacena en el módulo de seguridad de software de Thunderbird y en el llavero de Apple.

Estos son algunos de los encabezados de correo del correo electrónico no cifrado que recibí de la compañía de seguros:

Content-Transfer-Encoding: BASE64
Content-Disposition: attachment; filename=smime.p7m
Content-Type: application/pkcs7-mime; name=smime.p7m; 
 smime-type="enveloped-data"
...
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
...
MIME-Version: 1.0

Descifrado a mano como se sugiere en ¿Cómo descifrar un mensaje S / MIME roto enviado por Outlook? también falla:

$ openssl smime -decrypt -in msg.eml  -inkey privatekey.pem  -out decrypted.txt
Error decrypting PKCS#7 structure
140735747326920:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-22.50.2/libressl/crypto/evp/evp_enc.c:529:

¿Cómo encontrar lo que está mal en cuyo extremo?

Editar:

$ openssl smime -pk7out -in msg.eml | openssl asn1parse
    0:d=0  hl=4 l=27205 cons: SEQUENCE          
    4:d=1  hl=2 l=   9 prim: OBJECT            :pkcs7-envelopedData
   15:d=1  hl=4 l=27190 cons: cont [ 0 ]        
   19:d=2  hl=4 l=27186 cons: SEQUENCE          
   23:d=3  hl=2 l=   1 prim: INTEGER           :00
   26:d=3  hl=4 l= 457 cons: SET               
   30:d=4  hl=4 l= 453 cons: SEQUENCE          
   34:d=5  hl=2 l=   1 prim: INTEGER           :00
   37:d=5  hl=3 l= 172 cons: SEQUENCE          
   40:d=6  hl=3 l= 151 cons: SEQUENCE          
   43:d=7  hl=2 l=  11 cons: SET               
   45:d=8  hl=2 l=   9 cons: SEQUENCE          
   47:d=9  hl=2 l=   3 prim: OBJECT            :countryName
   52:d=9  hl=2 l=   2 prim: PRINTABLESTRING   :GB
   56:d=7  hl=2 l=  27 cons: SET               
   58:d=8  hl=2 l=  25 cons: SEQUENCE          
   60:d=9  hl=2 l=   3 prim: OBJECT            :stateOrProvinceName
   65:d=9  hl=2 l=  18 prim: PRINTABLESTRING   :Greater Manchester
   85:d=7  hl=2 l=  16 cons: SET               
   87:d=8  hl=2 l=  14 cons: SEQUENCE          
   89:d=9  hl=2 l=   3 prim: OBJECT            :localityName
   94:d=9  hl=2 l=   7 prim: PRINTABLESTRING   :Salford
  103:d=7  hl=2 l=  26 cons: SET               
  105:d=8  hl=2 l=  24 cons: SEQUENCE          
  107:d=9  hl=2 l=   3 prim: OBJECT            :organizationName
  112:d=9  hl=2 l=  17 prim: PRINTABLESTRING   :COMODO CA Limited
  131:d=7  hl=2 l=  61 cons: SET               
  133:d=8  hl=2 l=  59 cons: SEQUENCE          
  135:d=9  hl=2 l=   3 prim: OBJECT            :commonName
  140:d=9  hl=2 l=  52 prim: PRINTABLESTRING   :COMODO RSA Client Authentication and Secure Email CA
  194:d=6  hl=2 l=  16 prim: INTEGER           :7F9285XXXX...
  212:d=5  hl=2 l=  13 cons: SEQUENCE          
  214:d=6  hl=2 l=   9 prim: OBJECT            :rsaesOaep
  225:d=6  hl=2 l=   0 cons: SEQUENCE          
  227:d=5  hl=4 l= 256 prim: OCTET STRING      [HEX DUMP]:0068E5XXXX...
  487:d=3  hl=4 l=26718 cons: SEQUENCE          
  491:d=4  hl=2 l=   9 prim: OBJECT            :pkcs7-data
  502:d=4  hl=2 l=  29 cons: SEQUENCE          
  504:d=5  hl=2 l=   9 prim: OBJECT            :aes-256-cbc
  515:d=5  hl=2 l=  16 prim: OCTET STRING      [HEX DUMP]:CF1A61XXXX...
  533:d=4  hl=4 l=26672 prim: cont [ 0 ]        

2
Quizás esta pregunta y sus respuestas podrían ser útiles. Un comentario sugiere especificar el algoritmo. El remitente puede usar un algoritmo obsoleto. Pruebe openssl smime -pk7out -in msg.eml | openssl asn1parseel correo electrónico para analizarlo y mostrar el algoritmo utilizado sin intentar descifrarlo.
not2savvy

Por cierto, estoy usando un comando ligeramente diferente para descifrar correos electrónicos: openssl smime -decrypt -in msg.eml -recip recipient.pempero no tengo idea de si eso podría marcar la diferencia en su caso.
not2savvy

Mi openssl ( LibreSSL 2.2.7) me dice -recip file recipient certificate file for decryption. Por lo que entiendo, siempre se necesita una clave privada para el descifrado, que no forma parte del certificado (porque el certificado se puede compartir públicamente). ¿Qué hay exactamente dentro de ti recipient.pem?
Rainer Rillke

@ not2savvy gracias por los comandos de análisis de asn. Cuando analizo un mensaje enviado por mis clientes a mí mismo, veo que des-EDE3-CBCse usa y hay 2 entradas en el SET que comienzan en el desplazamiento 26, ambas usando lo mismo commonName. Aún no estoy seguro de cómo usar openssl aes-128-cbc/ cómo especificar el resumen del mensaje. Usar -mdcon openssl smimeno cambió nada.
Rainer Rillke

1
Por recipient.pemsupuesto, debe contener la clave privada para descifrar el correo electrónico.
not2savvy
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.