web-dev-qa-db-ja.com

S / MIME署名付きのみの電子メールで正確に消化されるものは何ですか?

S/MIME署名付きのみの電子メールで正確に消化されるものは何ですか?

それは間違いなく元のメッセージのsha256ダイジェストだけではありません。つまり、

$ openssl dgst -sha256 <<< "Text"

まったく同じ「テキスト」を持つS/MIMEメール用に作成されたダイジェストは作成されません。

RFC 5751 (セクション3.4.3.2)でこれに関する情報を読んで理解しようとしましたが、それでも私にはわかりません。正確にはdigestedS/MIME電子メールの場合。

元のメッセージは、 ハッシュおよび暗号化 になる前にどのように準備および拡張されますか?

私が正しく理解していれば、準備のためにいくつかのCMS処理と転送エンコードが行われます。プロセス全体を簡単な言葉で表現することは可能ですか?

これらのようなメモ( セクション3.1 )はさらに混乱します:

これらの(3つの)ステップは、規範的ではなく説明的です。実装者は、結果が同じである限り、任意の手順を自由に使用できます。

このようなあいまいな説明に基づいて、さまざまな電子メールアプリケーションをどのように連携させることができますか?

1
user1511417

RFC 5652 、セクション5.4から

メッセージダイジェスト計算プロセスは、署名されているコンテンツまたは署名された属性とともにコンテンツのいずれかでメッセージダイジェストを計算します。

ただし、平文の(cms-)ダイジェストを手動で確認できます。

  1. Thunderbirdからの署名付きメールをTest.emlとして保存します
  2. メッセージダイジェストを確認してください:$ openssl cms -in Test.eml -cmsout -print
  3. メールから平文を切り取り、Test.txtに保存します
  4. すべてのハッシュを比較 ステップ2からダイジェストする:$ lua sha256-hash-Finder.lua Test.eml "4db15ae843e3 ... "
0
user1511417