パスワードをなるべく安全に届ける方法

2020/11/24 追記

この記事は、執筆当時安全にファイルの送信ができていない人を想定とした記事です。クラウドストレージを業務で使えない人を対象として、メールに暗号化したファイルのパスワードをどうやって伝えるかという事を捻くりだして考えた記事です。 まず、最初に検討すべきは、メールでファイル送付する事をやめ、自身の管理下にあるクラウドストレージやチャットツールを使ってファイル共有し、またその手法が普及した際に偽リンクによるウィルスなどを介した侵入を防ぐ手法を確立する事です。 どうしてもシステムの更新ができないような状況の人に少しでも安全に使って欲しいとの思いから書いた記事です。


こんにちは。システム屋まそおの舩原です。

皆さんは、相手に送ったファイルのパスワードをどうやって伝えていますか? 添付ファイルの付いたEメールの本文にパスワードを書く? それとも添付ファイルとパスワードのEメールを分けて送信する? いやいや、電話でパスワードを伝える?

これはとても難しい問題です。 経路上での漏えいをどう防ぐか?が第一に重要ですが、相手の情報セキュリティーの能力にも依存します。

一番いいのは、安全を確立した経路でパスワードをやり取りする事です。

しかし、安全を確立した経路をもつのは難しいしコストがかかる場合もあります。

そこで、この記事では、パスワードをなるべく安全に届ける方法をご紹介したいと思います。 ただし、ここでご紹介する方法は、信頼できない部分もありリスクもあるので、そのリスクも思いつく限りご紹介して、 それを許容できるかどうかもご検討ください。

  • 直接会って伝える 一番安全な方法ですが、相手との距離が離れていればいるほど、手間がかかります。

  • 電話する 簡単な方法の一つです。電話に出た相手が本人かどうか確認できれば安全です。 リスクとしては、相手が電話に出れないと伝えられない。盗聴器がしかけられている可能性があります。

  • Facebook Messanger を使って伝える 簡単な方法の一つです。ブラウザ上では、https通信を行っているので、経路上で盗聴される可能性は極端に少ないです。 リスクとしては Facebook 社自体が盗聴した場合は意味をなさなくなります。また、伝える相手の Facebook を知らなくてはならないという問題もあります。

  • Twitter のダイレクトメッセージを使って伝える これも簡単な方法の一つです。こちらも Facebook と同様にhttps通信を行っていて、盗聴の可能性は低いです。 リスクとしては、Facebook と同様に twitter 社自体が盗聴した場合は意味をなしませんし、伝える相手の id を知っている必要があります。

  • Skype, Hangout を使って伝える Facebook, Twitter と同じ安全性とリスクがあります。ただ Skype については、 P2P技術を利用しているので Microsoft社が盗聴するリスクも低くなります。 [2020/11/24 追記: Skype は P2P でなくなりました。]

ここまでが、あまり特別な方法を必要としない方法でした。 次は特別な手法が必要になる方法をご紹介します。

  • PGP で暗号化してメールで送信 公開鍵暗号は強力で安全ですが、使い方を間違えると途端に安全性が下がるし、自分と相手双方に公開鍵の設定が必要です。 しかし、Eメールでパスワードを送りたいならばこの方法が安全です。

  • naisho というツールを使用 相手の GitHub の ID さえ知っていれば暗号化したメッセージを送れる naisho というのを作った で説明されているツールです。Githubに登録された公開鍵を利用してメッセージを暗号化できる仕組みです。 こちらも公開鍵の設定の仕方に注意が必要ですが、Github アカウントをもつユーザー同士ならば、PGPより手間が少なそうに思います。


メールにパスワード、暗号化されたファイルは絶対だめ!!

暗号化されたファイルをメールで送り、次のメールでパスワードを送るという手法がありますが、これはよくある間違いです。(2020/11/24 追記: 最近はPPAP (セキュリティ) という名称が考えられたようです) メールの送り先を間違えた場合添付ファイルを容易に開けられてしまいますし、また、電子メールの仕組み上、経路で盗聴されるリスクがあります。パスワードを安全に送れませんのでやめましょう。


パスワードをなるべく安全に届けたいので passend を作りました

最後に僕が作った Web アプリのご紹介です。 passend はパスワードを閲覧するシステムです。 移行前のブログでもご紹介しています。 https://masoojp.blogspot.com/2015/03/blog-post.html

メールアドレスベースの認証で送りたい相手のメールアドレスでパスワードが閲覧できます。 ポイントは、送りたい相手のアカウント登録は、送りたいパスワード登録後でいいという所です。

これにより送りたい相手のメールアドレスを、そのパスワードと紐づけておいてから そのURLをメールで送っていただくとそのメールアドレスのユーザーだけがパスワードにアクセスできる仕組みです。

github からダウンロードできます。MITライセンスです。良かったら使ってください。 https://github.com/masoo/passend

また、アプリの構築ができないという方のために、 https://passend.herokuapp.com/ で passend サービスを立ち上げていますのでご使用ください。

使い方の動画はYouTubeで公開しています。 https://youtu.be/FwqGShyzIIE