わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

ThunderbirdでPGP〜鍵ペアのエクスポート

複数のPCで,自分の鍵ペアを共有する方法について,スクリーンショットを交えて説明します.
説明に入る前に,「やってはいけない」ことを書きます.別々のPCで鍵ペアを生成しては,いけません.同じユーザーID(メールアドレス)に対して,別々の鍵IDが割り振られます.このとき,暗号化して送ってもらう人に,どの鍵IDを伝えればいいのでしょうか? あるメール環境で「この鍵で暗号化して」と伝えても,別の環境では復号できないのです.
そうではなく,あるところで鍵ペアを生成し,それを,自分が管理する他のPCへ,受け渡しすべきです.なお,秘密鍵を含みますので,公開鍵サーバを介するわけにはいきません.
さてそのような鍵ペアをやりとりする方法として,次の4通りが考えられます.

  • Thunderbird + Enigmailでエクスポートし,gpgでインポートする.
  • Thunderbird + Enigmailでエクスポートし,(別環境の)Thunderbird + Enigmailでインポートする.
  • gpgでエクスポートし,(別環境の)gpgでインポートする.
  • gpgでエクスポートし,Thunderbird + Enigmailでインポートする.

操作の単位としては,次の4通りができればよいとなります.

  • Thunderbird + Enigmailでエクスポートする.
  • Thunderbird + Enigmailでインポートする.
  • gpgでエクスポートする.
  • gpgでインポートする.

本日のエントリでは,この中で,「Thunderbird + Enigmailでエクスポートする」ための操作手順を中心に解説します.残りについても,エントリの終わりに,それぞれ簡単に記します.

エクスポート

まずThunderbirdを起動し,メニューから,OpenPGP(N)>鍵の管理(Y)を選びます.

「OpenPGP鍵の管理」というウィンドウが表示されます.

そこで,エクスポートしたい鍵を選択してから,メニューでファイル(F)>ファイルへ鍵を書き出す(E)を選びます.

鍵ペアに対する操作では,次のポップアップが出ます.

ここでは「秘密鍵を含めてエクスポート」のボタンを押します.すると,ファイルの保存をするため,Windowsではおなじみのウィンドウが開きます.

デフォルトで保存されるディレクトリ(Cドライブ直下!),ファイル名(長すぎる!)が気に入りませんので,変更します.

「保存」のボタンを押すと,成功のポップアップが出ます.

デスクトップにファイルが作られます.

このファイルを,ブラウザにドラッグ&ドロップしてみます.先頭・途中・末尾はそれぞれ以下のとおりとなりました.



鍵ファイルを暗号化

このファイルを,メールにつけて送り,別環境でそれを受け取るのでもかまいませんが,ひと工夫できます.
あらかじめ,Lhazというソフトウェアをインストールします.Windows XPを使用している人は,指示の通り「Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ」をダウンロードし,先にインストールしておきます.
先ほどの,ascで終わるファイルを右クリックして,送る(N)>Lhazを選びます.

ファイルに対するメニューは消え,代わりにLhazのメニューが出ます.デフォルトではZIP圧縮ですが,その最後の行(右端に,右向き三角形があります)をクリックし,「暗号化ZIP圧縮(P)」を選びます.

メニュー内容が変わります.

これで,「このフォルダに圧縮(H)」を選びます.ポップアップが出ます.

パスワードを入力します.「選択/可視入力」に打ち込めばパスワードがそのまま表示されます.周囲に人がいるときは,「不可視入力」を使いましょう.タイプミスをしていないか不安なら,「再入力」の左をチェックし,同じのを打ち込むと,いいでしょう.
「デフォルトパスワードに追加」というチェックボックスがあります.これは利便性と安全性を左右するオプションです.
チェックをつけると,このPCのLhazで以後,暗号化ZIPで圧縮するとか解凍するとかいうときに,パスワードをプルダウンメニューから選ぶことができます*1.ということで,秘密鍵を使用するためのパスフレーズを,ここでのパスワードとしておくと,秘密鍵パスフレーズを忘れたときに,このLhazに立ち返ればいいのです
ただしそうすると,パスワード情報がPCの中に入っていますから,そのPCを取得した(もしくはそのPCの管理権限を持っている),悪意のある人は,パスワード=パスフレーズを知ることができてしまいます.
利便性に倒すなら,「デフォルトパスワードに追加」にチェックをつけ,安全性に倒すなら,つけないようにしましょう.
それでOKボタンを押します.

暗号化されたzipファイルが作られました.これをメールに貼り付けて,送りましょう.
なお,前述のようにZIP解凍用のパスワードを,秘密鍵使用のためのパスフレーズと同じにして,メールで送った場合,そのファイルが盗聴されて,パスワード=パスフレーズがクラックされる(割り出される)可能性は,暗号化zipをせずに送り,秘密鍵パスフレーズがクラックされる可能性と,ほぼ同じです.「秘密に持っておくべき情報」が同一だからです.

Thunderbird + Enigmailでインポートするには

Thunderbirdのメニューから,OpenPGP(N)>鍵の管理(Y)を選びます.
そうして出てくる,「OpenPGP鍵の管理」に対して,メニューから,ファイル(F)>鍵をファイルから読み込む(I)を選びます.
それで,ファイルを開いてください.

gpgでエクスポートするには

鍵IDを知るには,「gpg --list-keys」です.
「gpg -a -o 鍵ファイル名1 --export-secret-keys 鍵ID」で,秘密鍵がファイル化されます.
「gpg -a -o 鍵ファイル名2 --export 鍵ID」で,公開鍵がファイル化されます.
それらをcatでつないで一つのファイルにすれば,ファイル化された鍵ペアとなります.もちろん,別々のファイルのままでやりとりしてもかまいません.

gpgでインポートするには

「gpg --import 鍵ファイル名」です.
鍵ファイルは公開鍵であっても秘密鍵であっても,一つのファイルに複数の鍵情報があっても,かまいません.

*1:Lhaz以外でも,同じ機能を持つソフトウェアはあります.それを使い慣れているなら,Lhazのインストールは不要です.