2016年2月12日金曜日

【メール暗号化】ChromeのMailvelopeプラグインでメッセージ本文を暗号化して送信してみよう!

 一年半前に、【お試し】Google End-to-End Chromeプラグインの試用方法について(MacOS 10.9編)を試しましたが、「Just Say No t More End-to-End Tests(Google testing blog)」を見ると、まだ一般的な使い方はできない状況です(一年前の「Googleのエンド・ツー・エンド暗号化プラグイン開発、一歩前進―鍵サーバーはGoogleが運営(jp.techcrunch.com)」をみると結構使い勝手はよさそうなのですが・・・)。
 そこで、Mailvelopeというプラグインをつかって手軽にメッセージごと暗号化して送受信する方法についてお伝えします。いずれもPGP暗号を使います。またMailvelopeはFirefoxプラグインもあります。「GmailなどWebメールの暗号化には『Mailvelope』が便利(lifehacker)」によれば、Operaでも動作するようですね。

なお Mailvelopeはメール本文のみの暗号化で、添付ファイルは暗号化されないことに注意!!


添付はGoogleドライブなどを活用すればよいと思います。

以下、仕組みから利用方法までざっと纏めます!

仕組み


まず仕組みを理解しておくことが最初のステップです。
  1. 送信相手の公開鍵を使ってメールを暗号化して送信する
  2. 送信相手は公開鍵と対となる秘密鍵のパスワードをもって復号化して読む
がざっとした流れです。

つまりは、送信したい相手に Mailvelope等PGP暗号による公開鍵・秘密鍵を作成してもらい、そのうち公開鍵をもらってMailvelopeにインポートするのが第1ステップです。つまり相手の公開鍵で暗号化して、それを相手におくり、相手が作成した公開鍵とペアになっている秘密鍵(+パスワード)で解除するってことですね。公開鍵は流出しても、それを作成したペアとなる秘密鍵とパスワードを知らなければ読めないという仕組みです。公開鍵という名前の通り、この鍵は公開しておくものなので、メールで送っても構いませんしネットで公開しても問題ありません。

※この公開鍵・秘密鍵暗号は、SSHによるログインで広く使われていると思います。
サーバーへのログインなら、公開鍵を登録しているサーバしかアクセスできず、かつ秘密鍵とそのパスワード(パスフレーズと呼ばれる)を知らないとサーバーにアクセスできないという感じで..

メールを受け取る側(送信相手)


ステップ1. Chromeをインストールし、Mailvelopeプラグインをインストールする

  1. Chromeのダウンロードをしてインストール
  2. Chromeを起動し、Mailvelopeより、 MailvelopeプラグインのChrome版へアクセスし追加。

ステップ2. 公開鍵と秘密鍵を作成

  1. 拡張機能( chrome://extensions ) にあるMailvelope のオプションを開く
  2. 左サイドメニューの「Generate Key」をクリック
  3. 下記の項目を入力し、Submitボタンをクリック
     Name: 名前
     Email: 自分のメールアドレス
     Enter Password: 秘密鍵用パスワード(他で利用していないパスワードにしましょう)
     Re-Enter Password: 秘密鍵用パスワードを再度入力

  4. 左サイドメニューの「Display Keys」をクリックし、先ほど作成した鍵が登録されていることを確認します。

ステップ3. 作成した公開鍵を相手に渡す

  1. 左サイドメニューの「Display Keys」をクリックし、作成した鍵にマウスポインタを合わせると「i」マークがでます。これをクリックします。
  2. そして上部タブ「Export」をクリックして、「Public」(公開鍵)が選択されているのを確認して「Save」ボタンを押し保存します。
    ※間違っても Private(秘密鍵)は送信しないように!
  3. このファイル「◯◯_pub.asc」を相手の手渡します。
    ※-----BEGIN PGP PUBLIC KEY BLOCK-----
       公開鍵の羅列
       -----END PGP PUBLIC KEY BLOCK-----
     そのものを送っても構いません。


メールを送信する側(送信側)


ステップ1. Chromeをインストールし、Mailvelopeプラグインをインストールする

  1. Chromeのダウンロードをしてインストール
  2. Chromeを起動し、Mailvelopeより、 MailvelopeプラグインのChrome版へアクセスし追加。

ステップ2. 送信したい相手の公開鍵をもらって登録

  1. 拡張機能( chrome://extensions ) にあるMailvelope のオプションを開く
  2. 左サイドメニューの「Import Keys」をクリックし、「Select a key text file to import」ボタンをクリックし、送信相手からもらった公開鍵ファイルを選択しインポートする
     ※あるいは公開鍵をファイルではなくメール等で貰った場合には、
    -----BEGIN PGP PUBLIC KEY BLOCK-----
       公開鍵の羅列
    -----END PGP PUBLIC KEY BLOCK-----
    をまるごと、テキストエリアにコピー&ペーストしてください。
  3. 左サイドメニューの「Display Keys」をクリックし、相手の公開鍵が登録されていることを確認

ステップ3. 相手の公開鍵を使ってメールを送信する

  1. Chromeより、Gmailへログインします。
  2. メールを作成して、必要な情報を入れます。宛先、件名、メッセージ本文等
  3. 下図の赤丸の部分にアイコンをクリックします
  4. するとメッセージ本文が入力された「別ウィンドウ」が開きます。
    ※ここでも文章の変更は可能。
  5. OKなら「Encrypt」ボタンでメッセージ本文を暗号化します。
    ※電子署名を加えたいなら、Encryptのかわりに「Sign」をクリックしてください。
  6. 相手の公開鍵を選択して「Add」し、Encrypt forに公開鍵が登録されたら「OK」をクリックしましょう。
  7. うまくいけばPGP暗号化されたメッセージ( -----BEGIN PGP MESSAGE-----から始まる)が表示されるので、「Transfer」ボタンを押しましょう
  8. すると、メッセージ本文にPGP暗号化されたメッセージが入ります。
    宛先や件名に間違いないか確認して、送信します。


メールを受け取る側(送信相手)

  1. PGP暗号化されたメールを受け取ると、下記のように鍵マークになります。
  2. この鍵をクリックすると、自分の公開鍵名(Generate Keyで作成した時のNameとEmail)がでていることを確認して、その際設定した秘密鍵のパスワードを入力します。
  3. 成功すれば、下図のようにメール本文の中身が読めます。
    メールを開く度にパスワードが必要です。
    ※上記でパスワードを保存(Remember password temporarily」をしていれば不要(ただし一時的と書かれているように一定期間過ぎると再度パスワードは必要になるはず)

以上、図で説明すると長くなりましたが、最初の一度相手とやり取りしてしまえば、2度目は、送信側はステップ3から、受信側はそのメールをパスワードで開くだけなので簡単です。

重要なメールならば、このような相手にパスワードを伝えること無く安全に暗号化する仕組みをつかうのもまた一つの方法です。

でも早くGoogleには Google End-to-Endを実装してもらいたいものです...
公開鍵を相手に渡さなくてもGoogleの方で一元的に保存しておいて、それを選択できるようなので楽になりますしねぇ。

付録:ちょっとまって!利用しているウェブメールでは暗号化ボタンが出てこないんだけど?


その通り。登録制なのです。
初期は、Yahoo.comやGmail等いくつかしか登録されていません。

以下が登録方法です。


  1. 登録したいウェブメールを開く
  2. Chromeの右上にある「鍵」(Mailvelope)をクリックして「Add」ボタンを押す
  3. すると登録画面にでるので、そのウェブメールのURLのドメイン部分(Yahoo! Japanなら 「yahoo.co.jp」が登録されているか確認
  4. 該当するウェブメールを再読み込み
以上で、メール作成すると暗号化ボタンが出てきますし、PGP暗号化されたメールがあれば鍵付きになります。PGP暗号化されたメールといっても、Mailvelope以外で暗号化されたものは試してません(ちょっと時間の余裕が・・・・)。

2016年2月12日 @kimipooh

0 件のコメント:

コメントを投稿