まず最初に断っておくと、PGP/GPG(以下GPGで統一する)は当初考えられていたメールの暗号化ソフトとしては既に死んでいる。偉大ではあるが誰も使っていない90年代のテクノロジーである。二者で秘密通信を行いたいならSignalかOTRでも使おう。
では何のためにインストールするのか、あるいは現状使われているのかというと、ダウンロードしたファイルの正当性の検証、つまりそのファイルが何者かによってすり替えられていないかを確認するためである。
たとえばDebianやUbuntuのユーザがAPTを使いパッケージをダウンロードすると、自動でGPGによる検証が行われる。さらに言えばDebianのイメージ自体にも検証ファイルが添付されている。
Verifying authenticity of Debian CDs
そういうわけで、LinuxユーザならばほぼデフォルトでGPGがインストールされているのだが、残念ながら未だにデスクトップ環境の大多数を占めるWindowsではそうではない。
本稿はWindowsユーザを対象に、GPGフロントエンド(Gpg4win)のインストール、自身の暗号鍵(公開鍵・秘密鍵)及び失効証明書の生成、他ユーザの公開鍵の取得・署名ファイルの検証の説明を行う。
そういうわけでまずはダウンロードとインストールである。Gpg4winのサイトからダウンロードすればいいだけである…と書きたいのだが、残念ながらそうは問屋が卸さない。小さい問題と大きい問題が一つずつある。
小さい問題は大したことは無い。Gpg4winは寄付を求めるため初見ではダウンロードの方法がわかりにくいという点だが、これは説明を読めば問題ない。
大きい問題は…これはGpg4winに限らず検証に必ずつきまとう問題だが、「今回ダウンロードするGpg4winの正当性はどう検証するか?」である。と言うか本来、その検証を行うためにGPGを使いたいのだ。
もちろんGpg4winのサイトにはファイルのハッシュ値や、OpenPGP signatureが置かれている。しかし、もし攻撃者がサイトを既に乗っ取っていたらそれらは信用できない。
つまるところこの場合、我々は「完全かつ無条件に信頼する」ものが必ず必要となる。通常、OS(と言うかEdge、IE)やブラウザにプリインストールされている証明書がこれに該当する。通信経路がLet's Encryptで暗号化され、ダウンロードしたファイルの電子署名が正しければ、そのGpg4winは正当なものであると信頼して良いだろう。(この考え方は問題があり、それに対する代案がPGP/GPGの"Web of Trust"と言うシステムなのだが、これらは後述する)
話が長くなった。サクサクと作業を進めていこう。
Gpg4win - Secure email and file encryption with GnuPG for Windows
まずはGpg4winのサイトにアクセスし(Let's EncryptでHTTPS接続されていることを確認しよう)、"Download Gpg4win"をクリックする。そうすると寄付を求める画面が出るはずだ。
洒落臭いことにデフォルトで15ドルの寄付が選択されていて、"Donate & Download"となっておりダウンロードできない。なので$0をクリックすればボタンが変わり”Download"になる。
これで問題なくダウンロードできるはずだ。
ダウンロードしたファイル(現時点ではgpg4win-3.1.4.exeが最新版となる)を検証する。右クリックから「プロパティ」→「デジタル署名」→「詳細」でデジタル署名に問題が無いか確認する。
これでこのファイルの正当性は検証された、と認識して良い。インストールに進む。
インストールはGnuPG本体と、フロントエンドになるKleopatraの二つあれば問題ない。
何度かNextをクリックすればインストールは完了するはずだ。これでDL・インストール編は終了となる。初期設定、実用編に続く。