Thunderbirdを使用してメッセージを暗号化しようとしています。メッセージに署名したくない。暗号化は受信者の公開鍵で行われます。受信機の証明書をインポートしました。しかし、メッセージを送信しようとすると、Thunderbirdは私の証明書を要求します。どうして?
送信者がThunderbirdを使用してS/MIME暗号化メッセージを受信者に送信する場合、Thunderbirdが送信者の証明書をメッセージとともに受信者に送信できるように、受信者の証明書に加えて送信者の証明書が必要です。これには2つの理由があります。
1)受信者がメッセージの送信者のデジタル署名を確認できるようにするため。送信者の証明書の送信者の公開鍵に対応する送信者の秘密鍵を使用して、メッセージにデジタル署名が付けられます。
2)受信者が暗号化されたメッセージで送信者に返信できるようにします。
Thunderbird(および他の電子メールクライアント)も、電子メールを暗号化するために独自の証明書を必要とします。
どうしてこんなことに?
メールを送信すると、メールは送信されるだけでなく、そのコピーがsentフォルダーに保存されます。その結果、暗号化された電子メールを送信する場合、電子メールは受信者だけでなく自分自身も暗号化する必要があります。そうしないと、送信したメールの自分のコピーを読むことができません。つまり、メッセージは受信者と送信者の両方の公開鍵を使用して暗号化されるため、両方が秘密鍵を使用してメッセージを復号化できます。 (複数の受信者に送信する場合も同じメカニズムが使用されます。)
上記は RFC 8551 S/MIME 4.0メッセージ仕様 (およびその前身)で指定されています。セクション3.3エンベロープのみのメッセージの作成、ステップ2から引用:
各受信者のコンテンツ暗号化キー(CEK)のコピーを暗号化することに加えて、CEKのコピーは発信者のために暗号化され、EnvelopedDataに含まれる必要があります(SHOULD)。
コンテンツ暗号化キー(CEK)は、アドホック生成の対称キー(CEK)を使用してメッセージコンテンツを暗号化する実際のメカニズムを指すことに注意してください。次に、この鍵は公開鍵を使用して非対称的に暗号化されます。したがって、簡単にするために、メッセージが公開鍵で暗号化されていると言う場合、これは実際にはCEKのみが公開鍵で暗号化され、メッセージに添付されることを意味します。詳細な仕様は RFC 5652暗号メッセージ構文(CMS) にあります。
理論的には、電子メールクライアントは受信者用に暗号化し、送信されたコピーを暗号化せずに残しておくことができますが、ユーザーが気付かない可能性が高いセキュリティホールが作成されるため、まったく望ましくありません。