web-dev-qa-db-ja.com

PGPはS / MIMEとどう違うのですか?

S/MIMEは、一般的なMIMEタイプの暗号化のための抽象化されたシステムですか?なぜ一方を選択したいのですか、または両方を同時に使用できるのですか?

73
Tyler Gillies

概要:S/MIMEとPGPはどちらも「安全なメール送信」を提供しますが、異なるエンコーディング、フォーマット、ユーザーツール、およびキー配布モデルを使用します。


S/MIME[〜#〜] mime [〜#〜][〜#〜]にビルドしますcms [〜#〜] 。 MIMEは、任意のデータを電子メールに入れる標準的な方法であり、「タイプ」(データの意味が明確に示されている)と膨大な数のエンコーディングルールおよびその他の相互運用性の詳細を備えています。 CMSは「暗号化メッセージ構文」を意味します。これは、データを暗号化および署名するためのバイナリ形式です。 CMSは、公開鍵の配布を X.509証明書 に依存しています。 X.509は、トップダウンの階層型PKIをサポートするように設計されています。多数のユーザー(またはおそらく中間CA)の少数の「ルート証明機関」問題(つまり、署名)証明書。ユーザー証明書には、名前(電子メールのコンテキストでは、電子メールアドレス)と公開鍵が含まれており、CAによって署名されています。ボブにメールを送信したい人は、ボブの証明書を使用して公開鍵を取得します(メールを暗号化して、ボブだけがそれを読むことができるようにするために必要です)。ボブの証明書の署名を検証することは、バインディングが本物であることを確認する方法です。つまり、これは実際にはボブの公開鍵であり、他人の公開鍵ではありません。

PGPは実際には OpenPGP 標準の実装です(歴史的に、OpenPGPは既存の [〜#〜] pgp [〜を標準化する方法として定義されました#〜] ソフトウェアはそうでしたが、現在は他の実装、特に無料のオープンソース GnuPG )があります。 OpenPGPは独自の暗号化方法(CMSと同様の機能)とエンコード形式を定義します。特に、「ASCIIアーマー」と呼ばれるエンコードレイヤーにより、バイナリデータを無傷でメールで送信できます(ただし、 MIMEとOpenPGP )。公開鍵の配布では、OpenPGPは Web of Trust に依存しています。これは、誰もが潜在的なCAである分散型PKIと見なすことができます。 WoTのセキュリティ基盤はredundancyです:manyの人々によって署名されているため、公開鍵を信頼できます(アイデアは攻撃者が「長い間だれもだますことができない」場合)。

理論的には、エンタープライズのコンテキストでは、WoTはうまく機能しません。 X.509階層型PKIは、想定される企業の意思決定構造に合わせて作成できるため、より適切です。一方、WoTは、従業員が独自のセキュリティポリシー決定を行うことに依存しています。

実際には、ほとんどのメール送信ソフトウェアは既にS/MIMEを実装していますが(Outlook Expressでも約10年間S/MIMEを実装しています)、証明書の登録プロセスは外部エンティティとの相互作用が複雑で、手動による介入が必要です。 OpenPGPのサポートには通常プラグインを追加する必要がありますが、そのプラグインには鍵の管理に必要なものがすべて付属しています。 Web of Trustは実際には使用されていません。人々は公開鍵を交換し、別の媒体を介してバインドすることを保証します(たとえば、「キーフィンガープリント」(キーのハッシュ値)を電話でスペルアウトします)。次に、人々が(PGPの「キーリング」で)通常電子メールを交換する人々の公開鍵のコピーを保持します。これにより、適切なセキュリティが確保され、面倒がなくなります。安全な電子メールを顧客と交換する必要があるときは、PGPをそのまま使用します。

OpenPGPは、一部のLinuxディストリビューション(少なくともDebianとUbuntuがそれを行う)のソフトウェアパッケージにデジタル署名するなど、他の非メールタスクの署名形式としても使用されます。

71
Thomas Pornin

すべてのIPは、ネットワーキングにおけるデータ伝送の安全でスムーズなフローを促進するように設計されています。 S/MIMEとPGPはどちらも、インターネット上のメッセージに対する認証とプライバシーに使用されるプロトコルです。 PGPはPretty Good Privacyの略で、インターネットのデータ転送に暗号化プライバシーと認証を提供するデータ暗号化および復号化コンピュータープログラムです。 PGPは、データ交換のセキュリティ問題を最大化するための電子データの署名、暗号化、復号化に広く使用されています。プロトコルS/MIMEは、Secure/Multipurpose Internet Mail Extensionsを指します。 S/MIMEは最近、MicrosoftやNetscapeなどの有名なソフトウェア会社の最新バージョンのWebブラウザーに含まれており、世界中の多くのベンダーによって広く受け入れられています。また、公開鍵の暗号化とMIMEデータの署名の標準としても使用されます。 S/MIMEはIETF標準に基づいており、RFCドキュメントで最も一般的に定義されています。 S/MIMEは、Originの認証、メッセージの整合性、否認防止および電子データ送信アプリケーションのデータセキュリティサービスを提供します。

S/MIMEは、PGPおよびその前身と非常によく似ています。 S/MIMEは、メッセージのPKCS#7データ形式と、証明書のX.509v3形式から派生しています。 PGP暗号化は、ハッシュ、データ圧縮、対称鍵暗号、および公開鍵暗号のシリアルな組み合わせを使用します。

PGPを使用している間、あるユーザーは別のユーザーに直接公開鍵を渡すことができます。または、2番目のユーザーは最初のユーザーから公開鍵を取得できます。 PGPは信頼を作成するためのポリシーを義務付けていないため、各ユーザーは受信した鍵の信頼の長さを自由に決定できます。 S/MIMEを使用すると、送信者または受信者は事前に鍵を交換する必要がなく、両方が信頼できる共通の認証者を共有します。

S/MIMEは、その強さ、X.509証明書サーバーによる一元化されたキー管理のサポート、および広範な業界サポートにより、管理の観点からPGPより優れていると見なされています。 PGPは、操作するために追加のプラグインまたはダウンロードを必要とするため、エンドユーザーの観点から見るとより複雑です。 S/MIMEプロトコルにより、ほとんどのベンダーは、追加のソフトウェアを使用せずに暗号化された電子メールを送受信できます。

S/MIMEは、スプレッドシート、グラフィック、プレゼンテーション、映画などのすべてのアプリケーションを安全に変換できるので便利ですが、PGPは、プレーンな電子メールまたはテキストメッセージのセキュリティ問題に対処するために作成されました。 S/MIMEは、コストの面でも非常に手頃な価格です。

概要: S/MIMEおよびPGPプロトコルは、鍵交換に異なる形式を使用します。 PGPは各ユーザーの鍵交換に依存しますS/MIMEは、階層的に検証された認証者を鍵交換に使用します。 PGPは、プレーンテキストメッセージのセキュリティ問題に対処するために開発されました。ただし、S/MIMEは、あらゆる種類の添付ファイル/データファイルを保護するように設計されています。今日、S/MIMEは多くの商用電子メールパッケージに組み込まれているため、安全な電子産業を支配することが知られています。 S/MIME製品は、PGP製品よりも入手しやすく、低価格です。

13
nikoo28

ウィキペディアのエントリで「行間を読む」と、答えに近づく場合があります。 S/MIME

公開鍵の暗号化とMIMEデータの署名の標準

ここでMIMEは、単純な以上のトランスポートの標準ASCIIテキストを元のSMTPメールシステム上で転送します。S/ MIMEをデジタル証明書と統合し、購入した(したがってCAによってスタンプおよび認証された)またはローカルで生産された(したがって自己署名)。

PGPについては、暗号化/署名を処理する外部アプリケーションとして説明し、電子メールアプリケーションと透過的に統合して、そのようなサービスを提供する場合があります。各ユーザーは自分の公開鍵と秘密鍵のペアを取得し、これをすべての操作に使用します。

@chrisが指摘しているように、それぞれが動作する信頼モデルは少し異なりますが、IMHOではどちらか一方の安全性が低下するわけではありません。

実際には、2つのソリューションには多かれ少なかれ交換可能なキーがあります。 PGPが発行した鍵ペアをメールアプリケーションのS/MIMEで使用することができます(私はそう思います)逆も同様です。誰かがこの最後の問題を修正してください...

私にとっての主な決定要因はコストです:

[〜#〜] pgp [〜#〜]:ニーズに合ったソフトウェアソリューション+ソフトウェアの更新コスト+鍵交換の管理コスト

に比べ:

S/MIME:ローカルで作成された証明書に対して証明書サーバーを実行するための管理コスト+公開キーの配布のための管理コストOR CAから証明書を購入するコスト+更新料

ほとんどの電子メールクライアントはS/MIMEを「すぐに使える」状態で既にサポートしているため、この場合の元のコストが削減されることを忘れないでください。

8
George

数年後ですが、重要だと思います。ヨーロッパでは、定義された拡張(CAdES、XAdESなど)のため、デジタル署名はCMSを使用する必要があります。

したがって、PGPはその分野では役に立たず、S/MIMEが唯一の方法です。

0

2018年からいくつかの視点を追加: efail が発生しました。最初はOpenPGPとS/MIMEの両方が脆弱だったので、それはいくつかの興味深い視点を追加します。しかし、OpenPGPは、MDC(変更検出チェック)を必須にするすべての重要な実装のため、ほとんどが修正されています。ただし、S/MIMEの問題は、MDCのようなものはありません。したがって、脆弱なままです。私が理解していることから、それはS/MIMEよりも分散型OpenPGPを支持する重要な議論です。

0
foss

S/MIMEはSSL PKIに依存します。公開鍵付きのSSL証明書があり、それが認証局(CA)によって署名されているという事実は、それが実際の鍵であることを「証明」します。一方、PGPにはPKIがありません。パスポート(鍵署名者)を見せている間、または他の多くの人々がこのチェックを行って署名したので、その人の鍵を信頼している間に、その人にその人の公開鍵が本当に属しているかどうかを確認します彼の鍵。

CAセキュリティの最近の進展により、S/MIMEを信頼しない非常に大きな理由があると思います:-) PGPの「信頼のWeb」モデルは、S/MIMEほど簡単に使用できませんが、努力すれば、より多くのセキュリティが得られます。

どちらのシステムも最終的に非対称暗号化を使用することになり、公開鍵の信頼がどのように確立されるかは実際には異なります。

0
chris