1. ホーム
  2. email

[解決済み] 暗号化されたS/MIMEメッセージを復号化せずに、署名もされているか確認する方法

2022-02-18 01:30:37

質問

s/mime電子メールメッセージが暗号化されているときに、そのメッセージに署名が添付されているかどうかを判断する最も簡単な方法(計算機資源の点から)は何でしょうか?

署名だけのメッセージなら簡単です。なんとなく似ていますね。

添付署名の場合

   Content-Type: application/x-pkcs7-mime; smime-type=signed-data;
    name="smime.p7m"

または

デタッチドシグネチャの場合

   Content-Type: multipart/signed; protocol="application/x-pkcs7-signature";
    micalg=SHA1; boundary="----=_NextPart_000_00D2_01CD5850.61030BF0"

をヘッダに追加します。

しかし、メッセージが暗号化されている場合、Content-Typeヘッダーがどちらの場合も同じ(暗号化されているだけ、暗号化/署名されているだけ)であるため、署名もされているかどうかを判断できません。

  Content-Type: application/x-pkcs7-mime;
    smime-type=enveloped-data;
    boundary="----=_NextPart_000_000D_01CDC82B.98454D80";
    name="smime.p7m"

メッセージも署名されているかどうかを知るために、メッセージを復号化しなければならないということでしょうか。今のところ、メッセージを復号化する前に署名されているかどうかさえわからないようです(署名は暗号化されたデータの中にあるため)。あるいは、S/MIMEの暗号化・署名されたデータには、復号化せずに暗号化・署名されたデータと暗号化・署名されていないデータを区別できるようなパターンが残っているのかもしれません(復号化のための証明書がなければ可能かもしれません)?

どのように解決するのですか?

S/MIMEは柔軟性があり、署名と暗号化を自由に組み合わせることができます。 しかし、電子メールクライアントは、通常、すべて同じように動作します。 Outlook 2010、AppleのMail、Thunderbird 17はすべて署名した後に暗号化します。 これらの3つの結果はほぼ同じです。 メッセージのヘッダには、以下の3つのヘッダが含まれます。

Content-Type: application/pkcs7-mime; smime-type=enveloped-data;
    name="smime.p7m"
Content-Disposition: attachment; filename="smime.p7m"
Content-Transfer-Encoding: base64

メッセージの本文全体を暗号化し、base64エンコードするのです。

質問にお答えします。

<ブロッククオート

を判断する最も簡単な方法(計算機資源の観点から)は何でしょうか? s/mimeの電子メールメッセージに署名が添付されている場合、この メッセージは暗号化されていますか?

復号化するしかありません。

<ブロッククオート

ということを知るために復号化しなければならない、ということでしょうか。 も署名されているのですか?

はい。