2

確認しようとしている署名付きの電子メールを受け取りました。

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 ツリー (IMHO) が適切に表示されます。

補足として、電子メールは MS Outlook 2010 で正常に検証されたものとして表示されます。

署名の何が問題なのか、またはここでヒットしているopensslの特徴は何か考えはありますか? 署名をチェックする (openssl の問題を除外する) ための openssl 以外のツールはありますか?

4

1 に答える 1

1

それでは、opensslメーリング リストの助けを借りて:

asn.1構造のエラーです。署名の形式が正しくありませんでした。それは asn1parse では問題を引き起こしませんが、OpenSSL がそれを検証しようとすると問題が発生します。
適切な DigestInfo 構造を持っておらず、生の SHA1 ハッシュだけを持っていたため、PKCS#1 仕様で言及されている RSA スキームに違反していました。

Outlook (およびその他のクライアント) は未加工の形式を許容しているようですが、openssl (および Thunderbird およびその他のクライアント) は許容していません。

于 2012-08-31T11:38:34.940 に答える