web-dev-qa-db-ja.com

S / MIMEデジタル署名を壊さないようにmailmanを構成できますか?

現在、Mailmanをメーリングリストマネージャーとして使用しています。 Mailmanは、メールメッセージの内容を変更します。問題は、一部のユーザーがデジタル署名されたメッセージを送信していて、変更によって署名が壊れることです。 Apple Mail、Outlook、およびThunderbirdでこの動作を確認しました。

問題は次のようです。S/ MIME署名付きメッセージはContent-Type: multipart/signed; MIMEContent-Typeで実装されます。 Mailmanは、これをContent-Type: multipart/mixed MIMEContent-Typeでラップします。外側のmixedの内部で内側のsignedを探すメールリーダーはありません。

クライアントを修正することはできません。 Mailmanを変更して、この動作を行わないようにする方法はありますか?

6
vy32

Mailmanは、すべてのメッセージにヘッダーまたはフッターを追加するように構成されている可能性があります。 [非ダイジェストオプション]ページからアクセスできるmsg-headerおよびmsg-footerパラメーターを確認してください。

pass_mime_typesに[コンテンツフィルタリング]セクションで許可されるタイプの1つとしてapplication/pkcs7-signatureが含まれていることを確認することも重要です。

Mailmanがヘッダーまたはフッターを追加するように構成されている場合、新しいMIMEパーツを作成し、元のメッセージのルートパーツと連結することにより、メッセージを変更します。この動作の理由については、 Mailman wiki (wiki.list.org)で詳しく説明されています。

元の署名付きメッセージはそのままですが、ほとんどのメールクライアントは、multipart/signedがルートMIME部分である場合にのみSMIME署名を正しく解釈するようです。テストとして、mailmanによって挿入された余分なMIMEパーツをテストメッセージの1つから削除して再送信し、署名がメールクライアントによって正しく検証されました。

3
Nic

問題は、電子メールクライアントの「スマートさ」の欠如ではありません。

むしろ、これはセキュリティの問題です。 バグ578295-ネストされたMIMEメッセージでS/MIME署名が表示/検証されない を参照してください。

見積もり:

部分的にしか署名されていない場合、メッセージは署名されません。特にThunderbirdのコンテキストでは、メッセージの一部のみが署名されている場合にメッセージが署名されていると主張した場合、攻撃者は、表示されないメッセージに署名されたコンテンツを添付して、署名されたメッセージのUIに表示する可能性があります。

したがって、電子メールクライアントが、部分的に署名されたマルチパートメッセージに署名がないか無効であると表示するのは正しいことです。

2
Endzone