Webメール上でPGPという暗号を使う
電子メールの暗号化について比較的普及している方式はPGPを使うものです。これを実現するにはいくつかの方法がありますが、比較的初心者にも導入しやすい方法として、Webメール上でPGPによる暗号化を図るためのツールが無償で公開されていますので、それを導入する方法について説明したいと思います。MailvelopeというFirefoxやGoogle Chromeのブラウザーに機能拡張の形でインストールして使う形のものです。なのでこれを用いるためにはまず、FirefoxかGoogle Chromeというブラウザーをインストールしてください。望ましいのはオープンソースであり、ブラウザーが個人情報の収集などを行うことのないFirefoxがお薦めです。
meilvelopeの信頼性についての評価
電子フロンティア財団(Electronic Frontier Foundation, EFF)というところが、暗号化による通信に関するアプリケーションへの評価を公開しておりmailvelopeは以下のように高い評価を得ています。
通信は暗号化されているか(メールアドレスやユーザーネームの暗号化は含まれない) | ○ |
プロバイダーにも解読できない暗号化をしているか | ○ |
通信相手が間違いのない相手であることの確認がとれるか | ○ |
パスワードが盗まれたとしても過去の通信内容は安全か | × |
第三者がチェックできるようにオープンソースになっているか | ○ |
暗号化の方法論は詳細に公開されているか | ○ |
オープンになっているコードが1年以内に信頼できる独立した組織にチェックされているか | ○ |
注)”パスワードが盗まれたとしても過去の通信内容は安全か”に×がついていますが、これはPGPという暗号化の方法論から来る問題で、mailvelope自体の問題ではありません。PGPでは基本的には同じ、公開鍵・秘密鍵のセットを使うという前提になっていますので、ある時点で秘密鍵が漏洩すれば過去の通信も解読されてしまうということになります。鍵を新しくすることで対応することはもちろんできますが。ただの欠点があるからといっても、PGPが破られたという話はこれまで聞いたことがないので、秘密鍵さえ安全に保管していれば最強の暗号であることは間違いありません。
注)mailvelopeを使うということは、GmailやHotmailなどの既存のサービスを使うことが前提です。この場合、本文はPGPにより完全に暗号化されていますが、例えばGmailを使っているとして、誰が、いつ、誰宛に、どういうタイトルのメールを出したか、IPアドレスは何番か、これらの情報はGoogleに把握されてしまいます。最近のセキュリティを重視したサービスでは、こうした問題をクリアするための工夫を凝らし始めています(例 tutanota, subrosa)。
ドイツ政府は、政府機関はもとより国民のプライバシー保護のために、DE-MailというドイツのメジャーなメールサービスにMailvelopeを使ったPGPの暗号化機能を組み込み、利用の普及を後押しするようです。国家をあげてPGPの普及に動くというのは凄い話ですね。
Prism BreakのEmail Encryptionの項目でも紹介されていて、これも信頼性の高さを示すひとつの傍証になりそうです。
Free Software Foundation “電子メール自己防衛”でもPGPという暗号方式を推奨しています。このページではGNUPGPを薦めていますが、mailvelopeもPGPであることにはかわりがありません。
Mailvelopeのインストール
まず、Mailvelopeのホームページにアクセスをしてください(https://www.mailvelope.com/)。Chrome Extensionと、Firefox Addonと書かれているのが見えます。自分のブラウザー環境に合わせてクリックし、Mailvelopeをインストールしてください。
Firefox Addonをインストールする場合を例に説明します。Mailvelopeのホームページ上のFirefox Addonをクリックすると、MailvelopeのAddonのページが開きます。
Add to FireFoxをクリックすると、インストールを続けるかどうかを尋ねてきますので「今すぐインストール」をクリックします。
無事にインストールが完了すると、以下のような表示になります。
Mailvelopeの設定
Mailvelopeのインストールが完了すると、図のような鍵のマークがブラウザーの右上に表示されますので、それをクリックしてください。するとOptionsという項目がありますので、それを選んでください。
ここでPGPに必要な設定、及びWebメールでMailvelopeを使えるようにするための設定などが行われます。
公開鍵、秘密鍵の生成
すでに自分のPGPの公開鍵と秘密鍵を持っている人は、Import Keysの項目を選んで、そこに自分の公開鍵と秘密鍵を取り込みます。しかし、これを読んでいるほとんどの人はまだ自分の公開鍵も秘密鍵も作ったことがない人がほとんどだと思いますので、自分の公開鍵と秘密鍵を取り込むところの説明は省略します。すでに、自分の公開鍵と秘密鍵を持っておられる方は、説明をしなくてもおそらく自分でできるでしょう。
それでは、まだ自分の公開鍵と秘密鍵を持っていない人は、それを作ることから始めましょう。Generate Keyを選んでください。そして、Nameに自分の名前を、Emailに自分のメールアドレスを、入力してください。
次に、Enter PassphraseにPassphraseを入力します。Passphraseとは何でしょうか? 自分の持つ秘密鍵を格納する際に秘密鍵をそのまま格納するのではなく、Passphrase+発生させた乱数を混ぜたものを鍵として暗号化して保存するという形をとります。つまり、パソコンに保存している秘密鍵を誰かがファイルとして盗み出そうとしても、最後の砦として、秘密鍵のファイルを開くためにはPassphrase+乱数で暗号化されたものを解読しないと使えないように守っているという理屈です。このPassphraseは、秘密鍵を使うたびに尋ねられます。秘密鍵を使うときというのは、自分の公開鍵で暗号化されたメールを開くとき、もうひとつは、自分がメールを送る際に電子署名をして送る場合のふたつです。Passphraseは、類推が困難で、自分しか知らない情報で、自分の頭で記憶しておけるものを選んでください。
Advancedという設定部分もあります。ここでは暗号化の際の鍵の長さを設定します。何もさわらないでも構いません。その場合2048ビットの長さの鍵が用いられますし、自分で設定を変えて4096ビットにしても構いません。当然長い方がセキュリティーは高くなります。
Submitボタンを押すと公開鍵と秘密鍵の生成の計算が始まります。公開鍵を教えて暗号化しても、自分の秘密鍵がなければ復号できないという不思議な暗号の背景には高度な数学が存在し、そのための計算をしてくれています。
以下の画面で完了です。自分の公開鍵と秘密鍵が作成され、保存・設定がされました。
Display Keysを選ぶと、生成された自分の鍵が表示されています。
鍵の確認と、公開鍵の取り出し
自分の鍵の行の、一番左の三角のアイコンをクリックすると、詳細が表示されてきます。
自分の鍵がオレンジ色で反転表示された状態で、Exportボタンをクリックすると、Display public keyという項目がありますので、それを選びます。
すると、自分の公開鍵(public key)が表示されます。ここに表示されている暗号のような文字列が公開鍵であり、コピー&ペーストで伝えたい人にメールで伝えるとよいでしょう。
あるいは、Create fileというボタンがあります。それをクリックするとDownload keyというボタンが表示されてくるので、クリックして自分のパソコン上に公開鍵のファイルを保存してもよいでしょう。図を見るとMasamichi_Honda_pub.ascという名前のファイルが作られ、保存されようとしているのがわかります。pubという文字列が公開鍵であることを意味していますので、確認すると良いでしょう。ファイルの拡張子は.ascとなっています。ファイル自体は普通のテキストファイルです。
人の公開鍵の取り込み
次に公開鍵の取り込みについて説明します。暗号メールをやり取りするためには、送りたい相手の公開鍵を手に入れ、それを元に暗号化を行って送信する必要があります。相手の公開鍵を取り込むためにまずImport Keysを選びます。
Paste key text here:と書かれたところに相手の公開鍵をペーストしてSubmitボタンを押せばOKです。相手の公開鍵の受け取る形式は色々で、メール本文にペーストしてくる場合もあるだろうし、テキストファイルの添付ファイルで送られてくることもあるでしょう。テキストファイルの場合、拡張子は.asc が一般的なようですが、.txt でも特に問題はないでしょう。
あるいは相手から.ascという拡張子の公開鍵が納められているファイルをもらった場合は、Select a key text file to importの下にある選択というボタンをクリックし、公開鍵のファイルを選んでSubmitボタンを押してもOKです。
人の鍵の取り込みに成功しますと、Display Keysを選ぶと、そこにその人の名前とメールアドレスなどが表示されてきます。
以上で、公開鍵・秘密鍵の生成、自分の公開鍵の取り出し、相手の公開鍵の取り込みまでできました。これで準備は整いました。あとは、暗号メールをやり取りするだけです。
Mailvelopeを使った、PGPによる暗号メールの送信
一番利用者が多いと思われるGmailを例にMailvelopeを用いたPGPによる暗号メールの送受信について説明してきます。MailvelopeはGmailで動かすための設定が最初からされていますので、特に特別な設定は必要ありません。
Gmailでメールを作成するために作成ボタンをクリックします。すると、新規メッセージというウインドウが開きます。よく見ると、本文を書く欄の右上に何やら見慣れないボタンが表示されてきています。ノートに鉛筆のアイコンで、アイコンの右に×がありますが、これはMailvelopeがちゃんと動作していることを意味しています。まずは、Toのところに宛先を入れ、件名も入れます。
そして、ノートに鉛筆のアイコンをクリックすると、以下のウインドウが開きます。ここに本文を書き込みます。書き終わりましたら、鍵のアイコンをクリックします。鍵のアイコンのクリックは文章をPGPによる暗号化を行うことを意味しています。
すると、暗号化するための公開鍵を選ぶ画面がでてきます。ここに出てくるリストは、自分のところに取り込んだ公開鍵が名前とメールアドレスの形で表示されています。送りたい相手を選んでAddボタンを押します。複数人にメールを送る場合は、複数選ぶこともできます。選び終わったらOKのボタンをクリックします。
すると下図のように、先ほどの本文がPGPの暗号に変換されました。この場合、先ほど選んだ公開鍵を元に暗号化がされているので、秘密鍵を持っている人にしか復号することはできません。
この画面の鍵のアイコンの左には、サインをしているようなアイコンが見えています。これは電子署名を行うためのボタンです。電子署名は、しなくても構わないものです。する場合は、自分のメールアドレスを選んでOKを押し、自分のPassphraseが尋ねられますので入力してOKをクリックします。
電子署名をすることの意味は、送信者が間違いのない相手であることの証明になります。送信者が自分の秘密鍵で電子署名をしたものは、その人の公開鍵で正しさが判定できるのです。言い換えると、公開鍵で正しいと判定されたものは、秘密鍵を持っている本人の署名に間違いがないと言えます。
最後に右下のTransferボタンを押しますと、暗号化された本文がGmailのメッセージとして挿入されていますので、送信を押して相手に送ります。
送られてきたメールを受信すると、右の図のように表示されます。ここでは受信しているMacには、GPG ToolsというMac用のPGPの暗号化ソフトがインストールされているので、自動的に復号されて表示されています。セキュリティの表示の右側に鍵マークと、Encryptedという表示があるのをみてはじめてこれはPGPの暗号メールであることに気がつきます。逆に言うと、Macの場合、暗号化を意識することなく普通に復号されて表示されてくるので使い勝手はとても良好です。
Gmail上でのPGPによる暗号メールの受信
次に、送られてきた暗号メールをGmail上でどのように受信できるのかを見てみたいと思います。
送られてきた暗号メールは開いた時点ではこのように表示されています。
封筒に鍵のついたアイコンが見えていますので、それをクリックしてみてください。すると、自分の秘密鍵用のPassphraseを尋ねられますので、入力してください。すると、復号されてメールの本文が見れるようになります。