PGP(Pretty Good Privacy)とは:電子メール暗号化・認証とOpenPGP規格の概要
PGP(Pretty Good Privacy)とは?電子メールの暗号化・署名・認証の仕組みとOpenPGP規格(RFC4880)をわかりやすく解説。
PGP(Pretty Good Privacy)は、暗号によるプライバシーと認証を提供するコンピュータプログラムです。PGPは電子メールやその他のデジタル通信の安全性を高めるために、電子メールの署名、暗号化、および復号を行う目的で広く使われてきました。1991年にフィル・ジマーマン(Phil Zimmermann)によって作成され、その後の標準化と実装を経て今日に至ります。
基本的なしくみ
PGPはハイブリッド暗号方式を採用しています。具体的には、通信の実データは高速な共通鍵暗号(例:AESなど)で暗号化され、その共通鍵自体を公開鍵暗号(RSAやElGamalなど)で暗号化して送る方式です。この組み合わせにより、処理速度と鍵配布の利便性を両立します。
主な要素:
- 公開鍵/秘密鍵ペア:送受信者はそれぞれの公開鍵を配布し、秘密鍵で復号や署名を行います。
- デジタル署名:送信者はメッセージに署名して送信元の認証と内容の完全性を保証します。
- ASCIIアーマー:バイナリデータをメールなどで安全に送るために、Base64風のテキスト形式に変換する機能。
- 圧縮:署名・暗号化の前にデータを圧縮して転送効率とセキュリティを向上させることが多いです。
鍵管理と信頼モデル
PGPは従来の中央集権的な認証局(PKI)とは別に、ユーザー間の相互署名によって信頼を築く「Web of Trust(信頼の網)」というモデルを特徴としてきました。ユーザーは他者の公開鍵に署名することで、その鍵の正当性を第三者に示します。
その一方で、現代の運用では公開鍵サーバ(キーサーバ)や、組織内での管理されたPKIと組み合わせて使われることも多く、用途やポリシーに応じて信頼モデルを選択します。また、鍵の失効(revocation)や有効期限の管理が重要です。
標準化と実装
PGPの仕様は独自進化とオープンな標準化を経ており、現在はOpenPGP規格(RFC 4880)に準拠する実装が事実上の標準となっています。多くの実装があり、代表的なものにフリー実装のGnuPG(GPG)があります。GnuPGは商用・非商用を問わず広く使われ、OpenPGPとの互換性を保つための基盤になっています。
主な用途
- 電子メールの暗号化と署名(送信者認証、機密保持、改ざん検出)
- ファイルやバックアップデータの暗号化
- ソフトウェア配布物の署名(検証による改ざん防止)
- ドキュメントや契約書の電子署名
歴史と法的背景
PGPは1991年の登場以来、暗号技術の普及と市民のプライバシー保護に大きな影響を与えました。初期の頃は米国の輸出規制(暗号輸出規制)により論争が起きましたが、後に規制が緩和され、コードや実装は国際的に広まりました。
利点と注意点
利点:エンドツーエンドの暗号化が可能で、送信者認証とメッセージの完全性を同時に提供できます。多くのクライアントやツールが対応しているため実用性が高いです。
注意点:
- メタデータ(送信先、日時、件名など)は暗号化しても漏れることがある。
- 鍵が漏洩すると復旧が難しいため、秘密鍵の保護(パスフレーズやハードウェアトークン)が必須です。
- 既存のPGP仕様は完璧な前方秘匿性(forward secrecy)を自動的には提供しない点に留意する必要があります。
- アルゴリズムやハッシュ関数の強度は時とともに変わるため、最新の推奨設定・実装を利用することが重要です。
導入とベストプラクティス
- 信頼できる実装(例:GnuPG)を使い、定期的にアップデートする。
- 秘密鍵はオフラインや専用のハードウェア(HSM、スマートカード)で保護する。
- 公開鍵を配布する際は指紋(fingerprint)を電話や対面で確認するなど、なりすまし対策を取る。
- 鍵の失効や再発行ポリシーを整備しておく。
まとめると、PGP(およびOpenPGP準拠の実装)は長年にわたり電子メールやファイルの機密性・認証を確保するための主要なツールであり、適切な鍵管理と最新の実装を用いることで高い実用性を発揮します。
OpenPGP
OpenPGPはInternet Standards Trackにあり、現在の仕様はRFC 4880(2007年11月)である。OpenPGPは現在も開発中であり、RFC2440の後継であるRFC4880が提案規格とされています。多くのメールクライアントでは、RFC3156に記載されているように、OpenPGPに準拠したメールセキュリティが提供されています。
フリーソフトウェア財団は、GNUプライバシーガード(略称:GnuPGまたはGPG)と呼ばれる独自のOpenPGP準拠のプログラムを開発しました。GnuPGはGNU General Public License (GPL) の下ですべてのソースコードとともに自由に利用でき、暗号化、復号化、署名機能のためにGnuPGライブラリと対話するいくつかのグラフィカルユーザーインタフェース (GUI) とは別に遠方に維持されています (KGPG, Seahorse, MacGPG を参照)。他にもいくつかのベンダーがOpenPGPに準拠したソフトウェアを開発しています。
関連ページ
- FreeOTFE - ディスクの暗号化
- PuTTY - SSH暗号化
百科事典を検索する