質問に答えずに調査した後、それが可能で、PGPとs/mime(?)を使用して電子メールに署名することが理にかなっている場合は、ここで回答を得たいと考えています。
PGPとS/MIMEは同じ目的を満たすことを知っています。それらは同じ暗号ユーティリティで署名を作成しますが、異なる形式を示します。この2つのツールの違いについての質問は、すでにここで尋ねられました: PGPはS/MIMEとどう違うのですか? .
はるかに多くのクライアントがS/MIMEと互換性があります。メールごとにPGPとS/MIMEの署名を提供することは可能ですか?PGPとS/MIMEユーザーを満足させることができますか?
PGPとS/MIMEの両方で署名できます。 Oliver Schmidtの応答とは逆に、 PGPを使用した外部署名 を作成することができます(テキストだけでなく、PGPキーで任意のファイルに署名できます-実行可能ファイル(.exe
)はインライン署名の良い候補)。これは " PGP/MIME "と呼ばれます。
PGPファイルの外部署名は*.sig
であり、S/MIMEは通常 PKCS#7 形式の場合は*.p7s
の形式になります。外部署名を使用している場合は、両方を使用していないため、順序は問題になりません(メールクライアントがサポートしている限り)。 PGPユーザーはS/MIME添付ファイルを無視できるため、別の回答で提案されているようにそれらをカプセル化することは技術的に機能するはずです。
何を使用するかに関する大きな問題は、受信者が何を期待しているか、および電子メールクライアントが何を実行できるか(または外部ツールの種類)によって異なります。古いクライアントの中には、外部のPGP署名をサポートしていないものがあります。
長い話を簡単に言うと、はい、それはうまくいき、それは理にかなっています。
これを説明しようとします:
PGPは署名inside電子メール本文を保存します。
PGPで署名されたメールの本文は通常、
-----BEGIN PGP SIGNED MESSAGE-----
で始まり、ハッシュアルゴリズムとメッセージのクリアテキストが続き、-----BEGIN PGP SIGNATURE-----
、ASCIIで保護された署名、-----END PGP SIGNATURE-----
が続きます。
代わりにS/MIMEは、メールにContent-Type: multipart/signed
ヘッダーを定義し、署名(PKCS#7)添付ファイルにを格納します。ヘッダーは、署名を確認する方法をS/MIME互換クライアントに通知します(ここでパラメーターboundary, protocol and micalg
が関連します)。自身が署名を検証できると判断した場合は、添付ファイルを読み取って比較することでこれを行います。
したがって、PGPおよびS/MIMEはメッセージテキストをそのままにします。最初にPGPで署名すると、すべてのPGP要素(-----BEGIN PGP SIGNATURE-----
など)がS/MIME署名の一部になります。最初にS/MIMEで署名すると、両方の署名が独立します。ただし、どちらの注文でも機能します。