前回の記事、「ジャーナリスト向け、セキュリティ/オンラインプライバシー講座」で取り上げたPGPの使い方をITに詳しくないジャーナリストにも使えるように、できるだけわかりやすく、そして覚えやすいように、WindowsとmacOSで解説いたします。また、初心者の方が混乱しないように、PGPとGnuPGとの違いも取り上げず、GnuPGも全てPGPとします。今回は短い記事です。
前提知識
PGPとは、Pretty Good Privacyの略で、フィル・ジマーマンによって、1991年にアメリカで開発された暗号ソフトウェアです。
当時アメリカには暗号技術の輸出規制が存在していました。PGPはそれに抵触しており、輸出が規制されてしまいましたが、ジマーマンはアメリカ合衆国憲法修正第一条で、「合衆国議会は言論もしくは出版の自由の権利を侵す法律を制定してはならない」とされていることを逆手に取り、PGPのソースコードを本に書いて出版し、アメリカ国外へ拡散させることに成功しました。そうしてPGPが世界へと広がったのです。
簡単にPGPの機能を説明していきましょう。わかりやすさを最優先しているので、正確には違う点もございます。
公開鍵暗号
まず、PGPは公開鍵暗号を使用します。公開鍵暗号とは、広く目に触れても良い公開鍵と、自分だけが隠し持っていないといけない秘密鍵のペアを生成し、公開鍵で暗号化したデータは秘密鍵で、秘密鍵で暗号化したデータは公開鍵で復号化出来る機能を持つ暗号のことです。公開鍵で暗号化したものは秘密鍵でしか復号化できず、秘密鍵で暗号化したものは公開鍵でしか復号化できません。
公開鍵は通信する他者と共有し、秘密鍵はユーザーだけが保持します。秘密鍵が他人の手に渡ると、公開鍵で暗号化されたデータの全てが復号化可能となり、暗号の意味をなしません。絶対に送ったりしないようにしましょう。
暗号化
①送信者は、受信者の公開鍵を使用して、メッセージを暗号化します。
②送信者はまた、自分の秘密鍵を使用して、メッセージにデジタル署名を行います。これによってメッセージの真正性と完全性が保証されます。
復号化
①受信者は自分の秘密鍵を使用して、メッセージを復号します。
②受信者は送信者の公開鍵を使用して、メッセージのデジタル署名が正当であることを確認します。
WindowsでPGPを使う
WindowsでPGPを使うには、Gpg4winというソフトを使用します。
このサイトからダウンロードして、インストールしてください。
ダウンロードが完了したら、真ん中の新しい鍵ペア、若しくは、左上のファイルから、新しいOpenPGP鍵ペアを生成を選択します。
ダイアログが表示されたら、自分の名前とこのPGPの鍵を使うメールアドレスを入力してOKをクリックします。
これでPGPの公開鍵と秘密鍵が生成されました。
PGPの鍵には有効期限があります。今回の場合は3年後ですね。期限が切れたら使用できません。
あとはエクスポートから、公開鍵のファイルを生成して、通信したい相手に安全な方法で共有します。安全な方法はあとで説明します。
相手にも同じことをしてもらいます。
インポートで相手に生成してもらった公開鍵のファイルを読み込みます。
自分の公開鍵で暗号化されたファイルを復号化したい時は、復号/検証を選択して、復号します。
macOSでPGPを使う
私はmacOSを持っていないので、画像での説明はできません。文章のみでの説明となります。ご了承ください。
macOSではGPGToolsを使用します。サイトからインストールしたら、GPG Keychainというアプリがあるはずです。それを起動してください。
起動したら、左上からNewを選択して、必要な情報を入力してください。
鍵を生成したら、上のエクスポートで、公開鍵を共有できます。
同じく上のインポートで、相手に生成してもらった公開鍵のファイルを読み込みます。
ThunderbirdでPGPを使う
ThunderbirdでPGPを使用するには、設定からエンドツーエンド暗号化を選択、新しい鍵を生成するか、先程生成した鍵をインポートしてください。
Proton MailでPGPを使う
Proton MailでPGPを使うのは非常に簡単です。
設定から、Encryption and keysを選択し、Email encryption keysから生成するか、すでに作成されている鍵をインポートしてください。
自分がメールを送るときは、送信相手のメールアドレスをProton Mail上の連絡先に追加するか、過去にやり取りしていれば表示される一覧から相手の連絡先をクリックして、設定マークをクリックし、拡張PGP設定を表示をクリックして、公開鍵をアップロード、メールを暗号化をオンにしてください。
鍵の安全な共有方法
鍵の共有方法にはいくつか方法があります。
一番安全なのは手渡しですが、それをするくらいなら、インターネットでやり取りせずに直接あって話をすればいいということになるでしょう。
ですので、インターネット上でやり取りする方法を考える必要があります。
①チャットツールを使う
前回の記事で取り上げたチャットツールは、もちろんPGPをしようしなくても暗号化されているチャットツールです。それを使うのが理想ですが、そうではなくても、LINEやSlackのようなチャットツールでも構いません。そもそも公開鍵暗号は見られてもいいものですから、それが相手方に届くまでに改ざんされていなければいいのです。
②鍵サーバーを使う
PGPの公開鍵を共有して検索する鍵サーバーというものがあります。そちらのサーバーに公開鍵を登録して、誰でも見られるように出来ます。
ただ、気をつけなくてはいけないのは、メールアドレスを公開することになるので、スパムメールが弾着しやすくなります。注意してください。
鍵サーバーの一覧を載せておきます。
key.opengpg.org(キーの削除可能、メアドの検証あり)
Hockeypuck OpenPGP keyserver(キーの削除不可能、メアドの検証なし)
MIT PGP Public Key Server(キーの削除可能、メアドの検証なし)
まとめ
もっと短い記事にするつもりだったのですが、ダラダラと書いてしまいました。悪い癖だね。画像が少なくて、分かりにくいところもあるかもしれないので、そこは適宜検索しながら進めてください。
ジャーナリストの方なら、バンバン連絡してください。詳細にお教えします。