Не может расшифровать зашифрованное сообщение S / MIME

527
Rainer Rillke

После того как я отправил подписанное письмо S / MIME в страховую компанию, их обменный сервер забрал мой сертификат S / MIME, и их ответ был зашифрован S / MIME. Раньше они использовали мой открытый ключ PGP для шифрования отправленных мне сообщений, которые я смог расшифровать. Они никогда не подписывали свои собственные сообщения.

Несмотря на то, что сертификат и закрытый ключ S / MIME установлены в Thunderbird и Apple Mail, ни один из них не может расшифровать сообщение. ( Thunderbird не может расшифровать сообщение. Отправитель использовал один из ваших сертификатов для шифрования этого сообщения. Несмотря на это, Thunderbird не смог найти сертификат и соответствующий закрытый ключ. )

Сообщения, которые я получаю от других организаций, использующих мой сертификат S / MIME для шифрования, могут быть расшифрованы с помощью Thunderbird и Apple Mail, в том числе самостоятельно отправленные тестовые сообщения и сообщения из swiftmail / PHP.

Закрытый ключ находится не на смарт-карте, а хранится в программном модуле безопасности Thunderbird и брелке Apple.

Вот некоторые из заголовков писем незашифрованной электронной почты, которую я получил от страховой компании:

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 

Расшифровка вручную, как предложено в разделе Как дешифровать испорченное сообщение S / MIME, отправленное Outlook? также не удается:

$ 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: 

Как найти, что не так, на чьей стороне?

Редактировать:

$ 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 ]  
1
Может быть [этот вопрос и его ответы] (https://stackoverflow.com/questions/34304570/how-to-resolve-the-evp-decryptfinal-ex-bad-decrypt-during-file-decryption) могут быть полезны. [Один комментарий предлагает] (https://stackoverflow.com/a/39641378/284111) указать алгоритм. Отправитель может использовать устаревший алгоритм. Попробуйте `openssl smime -pk7out -in msg.eml | openssl asn1parse` в электронном письме, чтобы проанализировать его и отобразить используемый алгоритм, не пытаясь расшифровать его. not2savvy 5 лет назад 1
Кстати, я использую немного другую команду для дешифрования писем: `openssl smime -decrypt -in msg.eml -recip receient.pem`, но я понятия не имею, может ли это изменить ситуацию в вашем случае. not2savvy 5 лет назад 0
Мой openssl (`LibreSSL 2.2.7`) сообщает мне` -Reip файл файла сертификата получателя для расшифровки`. Из того, что я понимаю, вам всегда нужен закрытый ключ для расшифровки, который не является частью сертификата (поскольку сертификат может быть общедоступным). Что именно находится внутри вашего `receient.pem`? Rainer Rillke 5 лет назад 0
@ not2savvy спасибо за команды разбора asn. Когда я анализирую сообщение, отправленное моими клиентами самому себе, я вижу, что используется `des-EDE3-CBC`, и есть две записи в SET, начинающиеся со смещения 26, обе используют одно и то же` commonName`. Пока не уверен, как использовать `openssl aes-128-cbc` / как указать алгоритм дайджеста сообщения. Использование `-md` с` openssl smime` ничего не изменило. Rainer Rillke 5 лет назад 0
Конечно, в «receient.pem» должен быть закрытый ключ для расшифровки электронной почты. not2savvy 5 лет назад 1
Термин «сертификат» не ограничивается использованием только для публичных сертификатов, поэтому не раздражайтесь. Файл pem может содержать как закрытые, так и открытые ключи. not2savvy 5 лет назад 0

0 ответов на вопрос

Похожие вопросы