在我向一家保险公司发送了一封 S/MIME 签名的电子邮件后,他们的 Exchange 服务器获取了我的 S/MIME 证书,并且他们的回复是 S/MIME 加密的。之前,他们使用我的 PGP 公钥加密发送给我的消息,而我可以解密。他们从未签署过自己的消息。
尽管 Thunderbird 和 Apple Mail 中安装了证书和私人 S/MIME 密钥,但它们都无法解密该消息。(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
按照建议手动解密如何解密 Outlook 发送的损坏的 S/MIME 消息?也失败了:
$ 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 ]