現在、Mailmanをメーリングリストマネージャーとして使用しています。 Mailmanは、メールメッセージの内容を変更します。問題は、一部のユーザーがデジタル署名されたメッセージを送信していて、変更によって署名が壊れることです。 Apple Mail、Outlook、およびThunderbirdでこの動作を確認しました。
問題は次のようです。S/ MIME署名付きメッセージはContent-Type: multipart/signed;
MIMEContent-Typeで実装されます。 Mailmanは、これをContent-Type: multipart/mixed
MIMEContent-Typeでラップします。外側のmixed
の内部で内側のsigned
を探すメールリーダーはありません。
クライアントを修正することはできません。 Mailmanを変更して、この動作を行わないようにする方法はありますか?
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つから削除して再送信し、署名がメールクライアントによって正しく検証されました。
問題は、電子メールクライアントの「スマートさ」の欠如ではありません。
むしろ、これはセキュリティの問題です。 バグ578295-ネストされたMIMEメッセージでS/MIME署名が表示/検証されない を参照してください。
見積もり:
部分的にしか署名されていない場合、メッセージは署名されません。特にThunderbirdのコンテキストでは、メッセージの一部のみが署名されている場合にメッセージが署名されていると主張した場合、攻撃者は、表示されないメッセージに署名されたコンテンツを添付して、署名されたメッセージのUIに表示する可能性があります。
したがって、電子メールクライアントが、部分的に署名されたマルチパートメッセージに署名がないか無効であると表示するのは正しいことです。