PGP – 誰もが安心して使えるプライバシー/セキュリティ/認証機能

2013年11月6日

最近ニュースを見ていると、プライバシー、情報漏えいスパイ活動などに関する話題を多く目にします。現在ほとんどのコミュニケーションはオンライン、または少なくとも電子デバイス上で行われており、私たちは大切な情報を自ら守る方法について知っている必要があります。これは大企業だけでなく、日常的にコンピューターを使用するすべての人に当てはまることです。どんな人にもプライベートで守るべき情報があり、オンライン上でのコミュニケーションも避けられません。そんなとき、PGPは非常に強力でありながら簡単に使えて、オンラインコミュニケーションにセキュリティを追加してくれます。

pgp

フィル・ジマーマン(Phil Zimmermann)氏が開発したPretty Good Privacy(PGP)は、プライバシーを保護し、コミュニケーションに安全性を追加して、電子メッセージの真正性を保証してくれるコンピュータープログラムです。メール、ファイル、ハードディスクドライブ全体など、形式を問わず個人情報またはプライベートな情報を暗号化し、第三者によるオリジナルデータの盗聴や傍受を非常に困難にします。さらに「デジタル署名」という機能もあり、メッセージが送信中に改ざんされておらず、送信元があなた以外に存在しないということを受信側で確認できることから、安心感を与えてくれます。誰もがメッセージに署名を入れる世界になれば(実際、署名するのは簡単です)、フィッシング詐欺行為はとてもやりにくくなり、毎日大量に届くいたずらメールや偽メールも、苦労のわりには投資効果が得られなくなるため、あっさりとなくなるでしょう。

「PGPは、みんなが自分たちの手でプライバシーを守れるようにします。社会的にも、そうしたニーズが高まっています。だから開発したのです」- フィル・ジマーマン

20年以上も前に開発されたPGPのおかげで、私たちは大きく前進することができました。当時、ジマーマン氏は「免許なしに軍需品を輸出した」として米国政府から調査を受けました。40ビット以上の暗号化製品は軍需品とされていたからです(PGPは128ビット)。本件は不起訴となり、同氏は刑事罰に問われることはありませんでしたが、一部の主要な利害関係者が大きな関心を寄せ、厳しい監視下に置きたいと思うほど暗号化製品は強力なツールだということが浮き彫りになったわけです。

最終的に、強力な暗号化機能を備えたフル機能版のPGPは世界中の誰もが手に入れられる製品となりました。フリーソフトウェア財団では、GNU Privacy Guard(GnuPGまたはGPG)という独自のOpenPGP対応プログラムを開発、無償配布し、暗号化や復号化、署名機能で使用するライブラリを提供しています。誰もがPGPを簡単に使えるようにとOSにも幅広く対応しており、多くのグラフィカルユーザーインターフェイス(GUI)で使うことができます。

PGPのソースコードはダウンロードできるので、検証したり、バグを探したり、バックドアがないか確認したり、または純粋に学ぶこともできます。こうした検証を個人的に実行できないとしても、政府や特定の企業と関係のないセキュリティ意識の高いコミュニティが、PGPに対して第三者機関の干渉がないかを継続的に検証しているので、安心してください。こうした検証は、アルファベット3文字の某機関が現在の通信プロトコルの暗号化技術を迂回しようとしたことが発覚して以来、ますます重要となっています。

PGP/GPGを少なからず試してみて機能を確認したい、そう思い始めた方もいるのではないでしょうか。非対称暗号では、2種類の鍵を使用します。1つは秘密鍵で(復号化または電子署名に使用)、もう1つは公開鍵です(平文の暗号化または電子署名の検証に使用)。今すぐすべてを理解する必要はありませんが、より深く理解するには毎日使って経験を重ねることが重要です。とはいうものの、使用するOSで利用可能な全機能に手をつけるとき、少しでも楽な気分で始めたいものですね。そこで、公開鍵の基本的なコンセプトをいくつかご紹介しましょう。

PGP/GPGは主要なOSすべてに対応しているので、試さない手はありません

ここで言う鍵とは、アルファベットと数字で構成されたブロックまたは文字列のことです。この鍵はファイルにエクスポートする以外にも、(公開鍵については)世界中の人が利用できるよう鍵サーバーにアップロードすることができます。PGPで生成される鍵は、多様な暗号化アルゴリズムを使って暗号化されます。秘密鍵と公開鍵の両方は、このアルゴリズムで数学的に結びつけられています。システムのセキュリティを侵害することなく公開鍵を共有できるのは、こうした理由からです。

PGP/GPGは主要なOSすべてに対応しているので、試さない手はありません。前述したとおり、GNU PGPも使えますが、最適に動作できるようOSに特化して作られたツールもあります。Mac OS Xであれば、GPG Suiteがあります。これは、Apple Mail用プラグイン、すべての鍵を管理するためのキーチェーン、テキストやファイルの暗号化/復号化/署名/検証を行うGPGサービスなどが含まれています。このほか、GnuPGに相当するMacGPGというコマンドライン版もあります。Windowsを使っているのであれば、似たようなツールでGPG4Winがあります。これは、GnuPGのポート、キーチェーン、主要メールクライアント用のプラグインのほか、始めるのに必要な機能すべてが入っています。

必ず覚えておいていただきたいのは、鍵の安全性は作成時に使ったパスフレーズだけでなく、秘密鍵自体の機密性にも依存するということです。誰かが鍵ファイルやパスフレーズにアクセスできてしまうと(たとえばコンピューターにキーロガーを仕込まれているなど)、セキュリティ対策全体が深刻な影響を受けます。秘密鍵は決して配布せず、パスフレーズも自分だけが覚えられるもの(かつ、簡単にできないようなもの)にしてください。

PGPで新しいペアの鍵を生成するとき、鍵とパスフレーズの長さを選ぶことができます。これは、秘密鍵の保護につながります。長ければ長いほど、鍵の生成に時間がかかってしまいますが、生成自体は一度きりなので、私としては4,096ビット以上にすることをお勧めします。長期的に最大限の安全性を確保するのであれば、8,192ビットがベストですが、生成が完了するまで忍耐力を試されるでしょう。PGP/GPGの鍵生成の手順は、別の記事で紹介しています。

PGPは、公開鍵と秘密鍵の2種類を使います。後者は秘密に保管し、前者は誰にでも自由に配布できます

鍵とパスフレーズを最適な長さに設定することが重要なのは、どうしてでしょうか。たとえば、誰かがあなたのキーチェーンにアクセスし、秘密鍵ファイルのコピーを入手したとします。その人物はパスフレーズを知らなかったとしても、推奨される鍵の長さ(4,096ビットまたは8,192ビット)を使って暗号化システムを直接攻撃し、鍵を解読するという手段に出ることができます。ただし、現在のコンピューティング技術では解読に時間がかかりすぎ、ほぼ不可能ですが。もう1つの手段として、辞書攻撃またはブルートフォース攻撃で鍵の保護に使用したパスフレーズを探し出す方法があります。これは最もよく使われている方法で、暗号化データにアクセスするための、より直接的な手段と言えます。こうした攻撃も、秘密鍵を十分長く設定していれば阻止できる可能性があります。

自分だけのPGP鍵のペアが生成できたら、早速使ってみましょう。まず公開鍵をみんなに公開します。メール署名に含めて、最もメールし合う友達へ送りましょう。友達がその公開鍵でメッセージを暗号化するには、同じバージョンのPGP/GPGを使う必要があります。公開鍵では復号できないので、第三者にメールを復号化されることは絶対にありません。秘密鍵を持つあなただけが、友達からのメッセージを復号化できます。暗号化して返信するときは、友達の公開鍵で暗号化します。一方で、デジタル署名はこれとまったく逆を行います。メッセージを送信するときは、秘密鍵で「署名」をします。メッセージの検証は公開鍵を持っている人であれば誰もができ、あなた自身が署名したことや改ざんされていないことを確認できます。少し複雑に聞こえますが、メールクライアントを正しく設定していれば、署名/暗号化は2回クリックするだけでできてしまいます。

pgp-scr-basic

今回の記事では、PGPが難題を抱えてスタートしたこと、開発の歴史的背景の概要、PGPの基本的なセキュリティのコンセプト、留意したい推奨事項をご紹介しました。PGPを試してみて、ファイルや情報の暗号化/署名で活用するきっかけになれば幸いです。プライバシーは、常時オンラインに接続される現代において、私たち自身がそれぞれで守っていく必要があります。こうしたツールを利用すれば、簡単に身を守ることができます。そして、こうした対策へ一歩踏み出したことに遅かれ早かれ良かったと思う日が来るでしょう。

政府や情報機関は秘匿性を基本としており、犯罪者も同様です。では、一般の人たちはどうでしょうか。PGPが登場するまで、軍事レベルの暗号化機能は非常に高額でした。一般ユーザーは自分の通信や情報を他人から見られないようにすることができず、一部機関はそうしたことを望みませんでした。ニーズは存在し、実現される必要があった中で、PGPは20年をかけて私たちが自由とプライバシーの固有の権利を十二分に守れることを示してくれたのです。