パソコンのメールソフトでメールをend-to-end 暗号化する

Categories
< Back
You are here:
Print

パソコンのメールソフトでメールをend-to-end 暗号化する

パソコン用の無料メールソフトのひとつ、Thunderbird に暗号化機能が組み込まれました。少しの準備をすると追加ソフトなしで暗号メールを送受信できます。興味を感じられたら試してみてください。

ここではその準備の手順を短く説明します。この説明には能書きやちょっとした知識が役立ちそうなので、始めに書いておきました。能書きはいらないと思うときはそのあとの手順からご覧ください。

特に重要な能書き

これは OpenPGP という暗号の約束に従ったもので、 protonmail や tutanota とは違う暗号方式です。メールソフトなどが独立で暗号・復号処理するものです。

この方式では特定の1人に向けた暗号化メールを送ります。1回の暗号化で複数の受信者へ同報を送ることはできません。暗号化してメーリングリストへ送っても、それが届いた人のほとんどはメールを解読できません。裏返せば、自分宛てに送られた暗号だけが解読できます。他人宛てのメールが届いても解読できません。

ただの能書きとトリビア

Thunderbird 用には Enigmail という暗号化ソフトがあります。その作者が協力して Enigmail の機能がほぼそのまま組み込まれて Thunderbird 78 ができたので、暗号化ソフトを追加する手間は不要になりました。

準備のほとんどは暗号鍵というデータを作る作業です。この鍵は2個が1組となっていて、1個が公開鍵、他方は秘密鍵です。どちらも自分で作る自分専用の「鍵」ですが、公開鍵の方は「これが私の鍵です」といって公表しておく性質のものです。他方の秘密鍵は、もちろん自分だけが保管しておくべきデータです。

2個1組の鍵を作るためにかかる時間は私のパソコンで1-2分でした。「鍵生成」というボタンを押すだけで Thunderbird に組み込まれたプログラムが作ってくれます。このときに自分のメールアドレスを公開鍵の中に仕込んでいるようです。

暗号メールを送るとき:
暗号メールをAさんに送るときにはAさんの公開鍵を使います。Aさんの公開鍵はAさんからファイルでもらっておくとか、Aさんからメールで送ってもらうとか(そのメールの送信者が本当にAさんであることを確かめるのは、実はたいへんです)、Aさんが鍵サーバーに掲示しておいた公開鍵をダウンロードするとか(Thunderbird がやってくれます)、そんな操作が必要です。こうして手に入れたAさんの公開鍵は Thunderbird に教えておきます。一度教えておけば次からは(Aさんが別の鍵を使い始めない限り)教える操作は不要です。

いつものメール作成ウィンドウでメールを書き、宛先にAさんのアドレスを指定し、メニューで「暗号化する」を選び、送信ボタンを押します。人間がやることはこれだけです。

暗号メールを受ける(読む)とき:
Bさんから自分宛ての暗号メールを送ってもらうには、まずBさんにあなたの公開鍵を知らせておく必要があります。Bさんにあなたの公開鍵ファイルを渡しておくか、公開鍵をメールで送っておくか、あなたの公開鍵を鍵サーバーに掲示しておいてBさんにそれをダウンロードしてもらいます。Bさんにはあなたの公開鍵をBさんのメールソフトに登録してもらいます。

Bさんのソフトで暗号化したメールがBさんからあなたに届くと、Thunderbird は自動的に暗号を解読して、普通のメールのように表示します。表示の端の方に「暗号メールです」というマークがついています。あなたの公開鍵と同時にペアで作られた秘密鍵を Thunderbird は覚えていて、自分宛ての暗号メールが届くとその秘密鍵を使って自動的に解読してくれます。

このように、公開鍵とは誰かがあなた宛の暗号箱を閉めるための、世界へ公開された鍵と考えてよいでしょう。秘密鍵とは、あなた宛てに届いた暗号箱を開くための、自分だけの秘密にしておく鍵と考えてよいでしょう。

鍵の作り方、暗号メールの使い方

だいたい次の順序にそって手順を説明しています。ひととおり眺めてイメージをつかんでから作業することをおすすめします。
1. 準備、自分用の公開鍵と秘密鍵をいっしょに作ります。
2. テスト、やらなくてもいいけれど、練習のようなものです。
3. 公開鍵を公開する、だれでも使える鍵サーバーへ登録します。
4. 送り方・受け方
5. やっておくと良いこと

ここから手順の説明
1. 準備

自分用の公開鍵と秘密鍵をいっしょに作ります。もしすでに鍵ペアをもっていてそのパスワードを覚えていたら、それを使えるので新たに作る必要はありません。公開鍵と秘密鍵は1つのメールアドレス(自分のアドレス)に対して1回の操作で両方作られます。

ここでは Thunderbird に組み込まれた end-to-end 暗号ツールを使います。別のメールソフトにもできるものがあると思います。

お使いの Thunderbird でメールの送受信ができるように、Thunderbird でのアカウント設定を済ませておいてください。

● ツール > OpenPGP鍵マネージャー > 生成 > 新しい鍵ペア を選択します。そこでは 差出人 に自分のメールアドレスが表示されていることを確認して、 鍵を生成 ボタンを押し、表示メッセージを一瞥したら 確認 ボタンを押します。
1分ほどすると鍵ペアができて、鍵マネージャーにメールアドレスを伴って表示されます。準備はこれだけです。

ツール メニューは ALT キーをポンと押すと表示されます。Mac では Option か ⌘ キーを押すのだと思います。

 

2. テスト

誰でもテストで使える edward-ja@fsf.org というアドレスがあります。ここへ暗号メールを送り、そのメールに対する返信を暗号メールで送ってもらうテストです。

● まず、準備のところで鍵マネージャーに登録された自分の公開鍵をメールで edward-ja@fsf.org 宛てに送ります。それには 作成 ボタンを押し、宛先に edward-ja@fsf.org をコピペして、件名は何か適当なものを入れて、オプション > 公開鍵を添付 を選択して、送信します。(edward-ja からこれに対しての返信はありません。)

● 次に暗号メールを送るのですが、それには宛先の edward-ja@fsf.org の公開鍵が必要です。そこで ツール > OpenPGP鍵マネージャー を開いて(すでに開いているかも知れません)、さらに 鍵サーバー > オンラインで鍵を検索 を選択し、プロンプトのところに先ほどの edward-ja@fsf.org をコピペして OK を押します。
鍵が見つかって「…鍵をインポートしますか」とたずねてくるので、リストの下の方に日本語で「GnuPGボットのEdward」とあることを確認し、 受け入れる(未検証) を選んでから OK を押し、「成功…」というメッセージが出るのでまた OK を押します。

● 準備ができました。暗号メールを送ってみます。作成 ボタンを押し、宛先に edward-ja@fsf.org と、件名は何か適当なものを入れて、本文に何かメッセージを書いてみます。この本文が暗号化されて送信され、edward-ja で解読したのち改めて暗号化されて送り返されてくるはずです。オプション > 暗号が必要 を選択してから、送信します。

● メールが往復するための時間を待ってから、受信 ボタンを押して返信が届いているかを見てみます。たいていは1分もかからずに届きます。edward-ja から届いたメールを開くと、自動的に解読して表示されます。

3. 公開鍵を公開する

あなただけが解読できる暗号メールを送ってもらうためには送信者があなたの公開鍵を知っていなくてはいけません。鍵サーバーに登録しておけばいつでもわかるので便利です。登録してみましょう。

● ツール > OpenPGP鍵マネージャー を開くと(すでに開いているかも知れません)、あなたのメールアドレスと共に鍵が表示されているはずです。その鍵を右クリックしたら表示されるメニューで 鍵をファイルにエクスポートします を選びます。何やら長いファイル名になっていますが、このままでもいいし、もう少し短い名前(なんでもよい)に書き換えてもいいでしょう。そのファイルがどのフォルダ(ディレクトリ)に保存されるかを確認してから 保存 ボタンを押します。

● 次にブラウザで鍵サーバーを開きます。アドレスは https://keys.openpgp.org/ です。このページにある青文字の あなたの鍵をアップロード を左クリックします。参照.. ボタンを押して、先ほど公開鍵のエクスポートで作ったファイル(それが入っているフォルダを選ぶと一覧が出る)を左クリックでハイライトしてから 開く を押して確定させて、次に白抜き文字の青ボタンで アップロード を押します。アップロードは一瞬で終わりますが、その後に表示されるページをまだ閉じないでください。

● 公開鍵は登録できたのですが、まだメールアドレスでは検索できません。前のステップで開いたままにしてあるページの 検証のメールを送る をクリックすると確認メールが送られてきます。(クリックしたらそのページはもう閉じてもよいし、放置してもかまいません。)

● 送られてくる確認メールを開き、ちょっと変な日本語ですが「…以下のリンクをクリックして…」と指示のある長いリンクをクリックします(またはそのリンクをブラウザに貼り付けます。)これで世界のだれでもがあなたのメールアドレスを手がかりに公開鍵を検索して見つけられるようになりました。

4. 送り方・受け方

● 暗号メールを送るには、宛先のメールアドレスに対応した公開鍵を鍵マネージャーに登録しておく必要があります。登録は1度だけで充分です。テストメールを edward-ja に送るとき鍵サーバーから検索した方法を思い出してください。ほとんど繰り返しになりますがこんな手順です。
ツール > OpenPGP鍵マネージャー を開いて(すでに開いているかも知れません)、さらに 鍵サーバー > オンラインで鍵を検索 を選択し、プロンプトのところに宛先のメールアドレスをコピペして OK を押します。
見つかれば「…鍵をインポートしますか」とたずねてくるので、受け入れる(未検証) を選んでから OK を押し、「成功…」というメッセージが出るのでまた OK を押します。

● 暗号メールの送り方は暗号でないときとほとんど同じです。違うのは送信するときまでには オプション > 暗号が必要 を選択しておくことだけです。

● 暗号メールを受信したときは、特に何もしなくてもメールソフトが解読して表示してくれます。暗号化されていたことを示す OpenPGP という表示がメールヘッダのあたりに表示されます。

5. やっておくと良いこと

● メールソフトの起動パスワードを設定しましょう。
Thunderbird ではマスターパスワードと呼んでいます。
編集 > 設定 > セキュリティーとプライバシー(左の列にあります) > マスターパスワードを使用する(中程の列をスクロールして下を見ると出てきます)にチェック印をつけます。パスワードをきいてくるので、覚えやすいが推測されにくいパスワードを設定します。

私はひどいパスワードを使っているので「パスワード品質レベル」が低得点でしたが、それでも設定できました。

せっかく暗号メールを使うのですから、パソコンが盗まれたりしたときにあなた以外の誰かが暗号を解読できたり、あなたを装って署名付きメールを送ったのでは情けない。メールソフトを起動するたびにマスターパスワードを入力することになって面倒なのですが、もっとよい方法ができるまでの不便だとおもって我慢することにします。

● 秘密鍵のバックアップを作っておきましょう
ツール > OpenPGP鍵マネージャー を開くと(すでに開いているかも知れません)、自分の鍵を左クリックでハイライトしてから、ファイル > 秘密鍵をファイルにバックアップ保存 を選びます。何やら長いファイル名になっていますが、このままにしておきましょう。ファイル名の末尾付近に secret の文字があって、秘密鍵のバックアップだとわかるようになっています。どのフォルダに保存されるかを覚えておいてください。
保存 をクリックするとパスワードを設定するようにきかれるので、覚えやすいが推測されにくいパスワードを決めます。OK を押すとバックアップファイルが作られます。

あと一歩です。そのバックアップファイルを、普段はあまり持ち歩かないUSBメモリなどに移動しておきましょう。パソコンの中にバックアップファイルがあっても必要な時には役に立たないし外部へ漏洩の危険さえあります。

秘密鍵による暗号はかなり破りにくいようですが、推測されにくい程度のパスワードはずっと破りやすい。秘密鍵のバックアップがもし外部へ漏洩するとパスワードはいずれ破られて秘密鍵がバレてしまうと考えたほうがよさそうです。外部漏洩に気づいたらバレる前に急いで新しい鍵ペアを作り(ほんの1-2分ですし)、新しい公開鍵を公開して他の人に知らせましょう。
鍵サーバーの古い公開鍵に無効という印をつけられるはずなので、詳しく分かったら追記します。

2021.2.9
岡山文人


クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。
Table of Contents