1

2 番目の部分 (最初の部分は実際のメッセージ) で as/mime メッセージを作成する場合、メッセージに署名した証明書と署名の結果、つまりダイジェストの両方を提供する必要があります。それらを連結しますか?

バウンシーキャッスルなどのライブラリは使用していません。私は手作業でメッセージを作成しています。それらを互いに連結するだけですか、それとも間に新しい行を入れて連結するのですか、それともどのように行われますか? 私はBCでそれがどのように行われているかを調べようとしましたが、明確な答えがなくてもグーグルで調べました。

4

1 に答える 1

1

S/MIME 形式は CMS 仕様 (Cryptographic Message Syntax) に基づいており、暗号化、認証、または署名されたデータを運ぶためのデータ構造を標準化しています。S/MIME (および CMS) は、これらのデータ構造に ASN.1 表記を使用します。

S/MIME 署名付きメッセージでは、メッセージのデジタル署名と署名証明書の両方が電子メール MIME マルチパートの 2 番目の部分にカプセル化されます。メッセージ マルチパートを手動で作成することは可能ですが、S/MIME 署名はバイナリ形式であり、専用のライブラリを計算する必要があります。

いくつかの技術的な詳細:

  • S/MIME ASN.1 モジュールの最新バージョンは、RFC 5911で説明されています。
  • メッセージ署名に構造がContentInfo含まれていますSignedData
  • SignedDataは a が含まれますSignerInfo(電子メールは単一の送信者によって署名されているため、ほとんどの場合は 1 つだけです)。ASignerInfoには、メッセージのデジタル署名、署名アルゴリズム、および署名者証明書の一意の識別子 (たとえば、証明書の発行者とシリアル番号) が含まれます。
  • 証明書SignedData
于 2011-04-16T09:57:14.810 に答える