PGP 暗号化とは何ですか?

序文

PGP (Pretty Good Privacy) は、メッセージの暗号化と検証のための一連のアプリケーション プログラムです。PGP の主な開発者は Phil Zimmerman です。ジマーマンは 1991 年にインターネット上で PGP を無料でリリースしました。PGP 自体は商用アプリケーションであり、オープンソースの同等のものは GnuPG (GPG) と呼ばれます。PGP とその類は、OpenPGP データの暗号化と復号化の標準に従っています。

PGP 暗号化のしくみ

PGP 暗号化は、ハッシュ、データ圧縮、対称キー暗号化、公開キー暗号化の一連のアルゴリズムで構成されています。各ステップは複数のアルゴリズムをサポートしており、ユーザーは使用するアルゴリズムを選択できます。各公開鍵は、ユーザー名や電子メール アドレスにバインドされています。このシステムの初期バージョンは、Web of Trust または X.509 システムと呼ばれることがよくあります。X.509 システムは、後に PGP の実装に追加された、デジタル証明書証明機関に基づく階層スキームを使用していました。PGP 暗号化の現在のバージョンでは、自動鍵管理サーバーを使用して鍵を確実に保管します。

互換性

PGP が進化するにつれて、新しい機能とアルゴリズムをサポートするバージョンは、古い PGP システムが有効な秘密鍵を使用しても解読できない暗号化されたメッセージを作成できるようになりました。したがって、PGP 通信のパートナーは、互いの機能を知っているか、少なくとも PGP 設定に同意する必要があります。

守秘義務

PGP は機密メッセージの送信に使用できます。これを行うために、PGP は対称鍵と公開鍵の暗号化を組み合わせます。PGP は、対称鍵を必要とする対称暗号化アルゴリズムを使用してメッセージを暗号化します。セッション キーとも呼ばれる各対称キーは、1 回だけ使用されます。メッセージとそのセッション キーが受信者に送信されます。メッセージを復号化するには、セッション キーを受信者に送信する必要がありますが、送信中のメッセージを保護するために、受信者の公開キーで暗号化されます。セッション キーを復号化できるのは、受信者に属する秘密キーだけです。

デジタル署名

PGP は、メッセージ認証と整合性チェックをサポートしています。後者は、メッセージが送信中に変更されたかどうかを確認するために使用されます (つまり、メッセージの完全性を検証します)。一方、メッセージ認証は、送信者であると主張する個人またはエンティティによってメッセージが送信されたかどうかを判断するために使用されます (つまり、デジタル署名の検証)。メッセージのコンテンツは暗号化されているため、メッセージのコンテンツを変更すると、キーの復号化が失敗します。PGP では、これらの機能はメッセージの暗号化とともにデフォルトで有効になっており、プレーンテキスト認証にも適用できます。送信者は単に PGP を使用してメッセージのデジタル署名を作成します (署名アルゴリズムは RSA または DSA です)。具体的な手順は次のとおりです。 PGP はデータまたは情報からハッシュ (メッセージ ダイジェストを参照) を作成し、送信者の秘密鍵を使用してハッシュからデジタル署名を生成します。

信頼ネットワーク

メッセージを暗号化する場合でも、署名を検証する場合でも、メッセージの送信に使用される公開鍵が実際に意図した受信者に属していることに注意する必要があります。ある場所から公開鍵をダウンロードするだけでは保証されず、意図的な (または偶発的な) 偽装が可能です。最初のバージョンから、PGP はユーザーの公開鍵を「ID 証明書」で発行します。これも暗号化された方法で作成されるため、改ざんや偶発的な変更をすばやく検出できます。しかし、証明書への変更を検出するメカニズムを持つだけでは十分ではありません. このような検出メカニズムは、証明書が作成される前ではなく、作成された後の改ざんを防ぐためにのみ使用できます.

また、ユーザーは、証明書の公開鍵が実際に特定の個人/エンティティに属していることを何らかの形で保証する必要があります。最初のリリース以来、PGP 製品には、それを支援する内部の「検閲スキーム」、Web of Trust (GOOGLE) と呼ばれる信頼モデルが含まれています。特定の公開鍵 (具体的には、対応する鍵に対するユーザー名のバインディング情報) は、サードパーティのユーザーによってデジタル署名され、個人 (実際にはユーザー名を参照) と鍵の間の関連付けを証明できます。代わりに、署名には、関連付けに対するさまざまな程度の信頼が含まれます。多くのプログラムがこの情報を読み書きしますが、キーを信頼するかどうかを決定するために信頼レベルを使用するプログラムはごくわずかです。

トラスト ネットワーク メカニズムは、S/MIME スキームの集中管理された公開キー インフラストラクチャよりも優れていますが、ネットワークの一般大衆には広く採用されておらず、一般に Unix 好きの愛好家、オープン ソース ソフトウェア サークルなどの間でのみ採用されています。プライバシーに特別な注意を払い、コンピューターに精通した群衆の間で使用したことがあります。一般ユーザーが簡単に使用できるようにし、証明書を受け取り、その有効性を手動で検証する方法、これらの潜在的なプロモーションの障害は、まだ解決策を満たしていません。

証明書

最近の OpenPGP 仕様では, 信頼された認証局をサポートするために信頼署名を使用できます. 信頼署名は, 公開鍵がそのステートメントの所有者に属していることを示します, そして公開鍵の所有者によって署名された次のレベルの公開鍵も.信頼できる。ゼロレベル署名は、公開鍵の有効性のみが検証されるため、trust-web 署名に匹敵します。第 1 レベルの署名は、第 1 レベルの公開鍵を持つ人物がゼロレベルの署名を無制限に発行できるという点で認証局に似ています。2 次署名は、認証局のデフォルト リスト (Web ブラウザーに含まれているものなど) を使用するときにユーザーが依存しなければならない信頼の仮定に非常に似ています。これにより、鍵の所有者は追加の公開鍵認証局を作成できます。

PGP のすべてのバージョンには、証明書を取り消す (「取り消す」) メソッドが含まれています。ユーザーの秘密鍵が紛失またはクラックされた場合、通信のセキュリティを確保し続けるために、証明書をキャンセルするこの方法を採用する必要があります。このアプローチは、基本的に集中型 PKI スキームの証明書失効リストと同等です。最新の PGP バージョンでは、証明書の自動有効期限の設定もサポートされています。

特定の公開鍵が特定のユーザーに属していることを PGP が正しく判断する方法だけの問題ではありません。公開/秘密キー暗号化を使用するすべての暗号化システムはこの問題に悩まされており、現在満足のいく解決策はありません。元の PGP スキームでは、少なくともユーザーは承認/承認システムを使用するかどうかを選択できましたが、他の PKI スキームでは、ユーザーは中央認証局によって認証されたすべての証明書を信頼する必要がありました。

https://baijiahao.baidu.com/s?id=1738308154057002398&wfr=スパイダー&for=pc

おすすめ

転載: blog.csdn.net/weixin_45264425/article/details/130536054