【问题标题】:Why does verify smime signature fail?为什么验证 smime 签名失败?
【发布时间】:2012-08-21 11:39:50
【问题描述】:

我收到一封带有签名的电子邮件,我正在尝试验证。

我正在使用 openssl openssl smime -inform SMIME -CAfile all.pem -verify -in signed.eml 检查,这给出了错误:

4144:error:0D07209B:asn1 encoding routines:ASN1_get_object:too long:asn1_lib.c:142:
4144:error:0D068066:asn1 encoding routines:ASN1_CHECK_TLEN:bad object header:tasn_dec.c:1302:
4144:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:379:Type=X509_SIG
4144:error:21071069:PKCS7 routines:PKCS7_signatureVerify:signature failure:pk7_doit.c:978:
4144:error:21075069:PKCS7 routines:PKCS7_verify:signature failure:pk7_smime.c:312:

谷歌搜索了一段时间后,这首先似乎是 asn.1 结构的错误。但是运行openssl asn1parse -i -in sig.txt(sig.txt 只是之前的 signed.eml 的签名)没有错误,并且很好地显示了 ASN.1 树(恕我直言)。

附带说明:电子邮件在 MS Outlook 2010 中显示为已成功验证。

您知道签名可能有什么问题,或者我在这里遇到了 openssl 的哪些特性吗?除了 openssl 是否有其他工具可以检查签名(以排除 openssl 问题)?

【问题讨论】:

    标签: email openssl digital-signature smime


    【解决方案1】:

    好的,在 openssl mailing list 的帮助下:

    asn.1 结构的错误。签名格式不正确。这不会导致 asn1parse 出现问题,但当 OpenSSL 尝试验证它时会出现问题。
    它没有正确的 DigestInfo 结构,只有原始 SHA1 哈希,这违反了 PKCS#1 规范中提到的 RSA 方案。

    Outlook(和其他客户端)似乎可以容忍原始格式,而 openssl(以及 Thunderbird 和其他客户端)则不能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-06
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 2018-03-09
      • 1970-01-01
      • 2017-11-28
      • 2013-10-28
      相关资源
      最近更新 更多