安全なメッセージング・アプリとは(追記あり)
ちょっと古い話で恐縮だが。
まず EFF では「安全なメッセージング・アプリ」の要件として以下の7項目を挙げている。 (日本語訳は ASCII.jp の記事を拝借した)
- Encrypted in transit? (メッセージは暗号化して送られているか)
- Encrypted so the provider can't read it? (プロバイダーに読まれないように暗号化されているか)
- Can you verify contacts' identities? (連絡先の確認が可能か)
- Are past comms secure if your keys are stolen? (キーが盗まれた場合でも過去の通信が安全といえるか)
- Is the code open to independent review? (コードが開示されているか)
- Is security design properly documented? (セキュリティ・デザインは正しく文書化されているか)
- Has there been any recent code audit? (コードがしっかりと監査されているか)
主要なメッセージング・アプリについて,この要件を満たしているかどうかを調べたのが以下の表である。
| 要件1 | 要件2 | 要件3 | 要件4 | 要件5 | 要件6 | 要件7 | |
|---|---|---|---|---|---|---|---|
| AIM | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| BlackBerry Messenger | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| BlackBerry Protected | ◯ | ◯ | ◯ | ☓ | ☓ | ☓ | ☓ |
| ChatSecure + Orbot | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| CryptoCat | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| Ebuddy XMS | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| Facebook chat | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ◯ |
| FaceTime | ◯ | ◯ | ☓ | ◯ | ☓ | ◯ | ◯ |
| Google Hangouts/Chat "off the record" | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ◯ |
| Hushmail | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| iMessage | ◯ | ◯ | ☓ | ◯ | ☓ | ◯ | ◯ |
| iPGMail | ◯ | ◯ | ◯ | ☓ | ☓ | ◯ | ☓ |
| Jitsi + Ostel | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ☓ |
| Kik Messenger | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| Mailvelope | ◯ | ◯ | ◯ | ☓ | ◯ | ◯ | ◯ |
| Mxit | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| Off-The-Record Messaging for Mac (Adium) | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ☓ |
| Off-The-Record Messaging for Windows (Pidgin) | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| PGP for Mac (GPGTools) | ◯ | ◯ | ◯ | ☓ | ◯ | ◯ | ☓ |
| PGP for Windows Gpg4win | ◯ | ◯ | ◯ | ☓ | ◯ | ◯ | ☓ |
| ☓ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ | |
| RetroShare | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ☓ |
| Secret | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| Signal / RedPhone | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| Silent Phone | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| Silent Text | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| Skype | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| SnapChat | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ◯ |
| StartMail | ◯ | ☓ | ◯ | ☓ | ☓ | ◯ | ☓ |
| Subrosa | ◯ | ◯ | ◯ | ☓ | ◯ | ◯ | ◯ |
| SureSpot | ◯ | ◯ | ◯ | ☓ | ◯ | ◯ | ☓ |
| Telegram | ◯ | ◯ | ◯ | ☓ | ◯ | ◯ | ☓ |
| TextSecure | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| Threema | ◯ | ◯ | ◯ | ◯ | ☓ | ◯ | ☓ |
| Viber | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ◯ |
| Virtru | ◯ | ☓ | ☓ | ☓ | ☓ | ◯ | ◯ |
| ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ◯ | |
| Wickr | ◯ | ◯ | ☓ | ◯ | ☓ | ☓ | ◯ |
| Yahoo! Messenger | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
この中でメールアプリ(MUA; Mail User Agent)が混じっているが,ここでは除外する。 電子メールは仕組み上,要件4(いわゆる perfect forward secrecy)を満たすことができないからだ。 メールソフトを除いた一覧がこれ。
| 要件1 | 要件2 | 要件3 | 要件4 | 要件5 | 要件6 | 要件7 | |
|---|---|---|---|---|---|---|---|
| AIM | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| BlackBerry Messenger | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| BlackBerry Protected | ◯ | ◯ | ◯ | ☓ | ☓ | ☓ | ☓ |
| ChatSecure + Orbot | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| CryptoCat | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| Ebuddy XMS | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| Facebook chat | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ◯ |
| FaceTime | ◯ | ◯ | ☓ | ◯ | ☓ | ◯ | ◯ |
| Google Hangouts/Chat "off the record" | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ◯ |
| iMessage | ◯ | ◯ | ☓ | ◯ | ☓ | ◯ | ◯ |
| Jitsi + Ostel | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ☓ |
| Kik Messenger | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| Mxit | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| Off-The-Record Messaging for Mac (Adium) | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ☓ |
| Off-The-Record Messaging for Windows (Pidgin) | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| ☓ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ | |
| RetroShare | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ☓ |
| Secret | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| Signal / RedPhone | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| Silent Phone | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| Silent Text | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| Skype | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| SnapChat | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ◯ |
| Subrosa | ◯ | ◯ | ◯ | ☓ | ◯ | ◯ | ◯ |
| SureSpot | ◯ | ◯ | ◯ | ☓ | ◯ | ◯ | ☓ |
| Telegram | ◯ | ◯ | ◯ | ☓ | ◯ | ◯ | ☓ |
| TextSecure | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| Threema | ◯ | ◯ | ◯ | ◯ | ☓ | ◯ | ☓ |
| Viber | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ◯ |
| ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ◯ | |
| Wickr | ◯ | ◯ | ☓ | ◯ | ☓ | ☓ | ◯ |
| Yahoo! Messenger | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
「安全な」というからには当然 End-to-End での暗号化機能が必須なわけだが,これには要件1と要件2を両方共満たす必要がある。 暗号化機能がない糞アプリを抜き出す。
| 要件1 | 要件2 | 要件3 | 要件4 | 要件5 | 要件6 | 要件7 | |
|---|---|---|---|---|---|---|---|
| AIM | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| BlackBerry Messenger | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| Ebuddy XMS | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| Facebook chat | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ◯ |
| Google Hangouts/Chat "off the record" | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ◯ |
| Kik Messenger | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| Mxit | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| ☓ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ | |
| Secret | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| Skype | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
| SnapChat | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ◯ |
| Viber | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ◯ |
| ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ◯ | |
| Yahoo! Messenger | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
わはは。 メジャーなメッセージング・アプリが出揃ってしまった。 少なくともこれらのアプリを「安全なメッセージング・アプリ」と思って使ってはいけない。 これらのアプリによるメッセージ交換はサービスプロバイダや諜報機関などに筒抜けだと思った方がいい。
さて,残ったもののうち,要件3と要件4を両方共満たすアプリを絞り込んでみよう。
| 要件1 | 要件2 | 要件3 | 要件4 | 要件5 | 要件6 | 要件7 | |
|---|---|---|---|---|---|---|---|
| ChatSecure + Orbot | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| CryptoCat | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| Jitsi + Ostel | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ☓ |
| Off-The-Record Messaging for Mac (Adium) | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ☓ |
| Off-The-Record Messaging for Windows (Pidgin) | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| RetroShare | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ☓ |
| Signal / RedPhone | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| Silent Phone | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| Silent Text | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| TextSecure | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| Threema | ◯ | ◯ | ◯ | ◯ | ☓ | ◯ | ☓ |
これらのアプリはひとまず「安全」と言ってよいと思う。 みなさんが使ってるアプリはこの中に含まれているだろうか。
要件5から要件7はセキュリティ管理の観点からみた要件である。 これらの要件を満たしていないアプリは将来的に危殆化を招いたり脆弱性の発見が遅れる可能性がある(つまり 0-day 攻撃に弱いアプリといえる)。 全ての要件を満たしたアプリは以下のとおり。
| 要件1 | 要件2 | 要件3 | 要件4 | 要件5 | 要件6 | 要件7 | |
|---|---|---|---|---|---|---|---|
| ChatSecure + Orbot | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| CryptoCat | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| Off-The-Record Messaging for Windows (Pidgin) | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| Signal / RedPhone | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| Silent Phone | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| Silent Text | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| TextSecure | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
この中で個人的におすすめなのは RedPhone と TextSecure である。 まぁ知り合いに勧められて導入してるんだけどね。 でも,誰もこれで遊んでくれないのよ。
結局メッセージング・アプリで一番大事なのは「相手がいること」なのよね。 私もふだん家族や友人とは Facebook Messanger とキャリアメールでやりとりしてるもん(LINE は捨てた。 Ingress は HO がメイン。まぁプライバシーを重視する人は Ingress しないと思うけど)。 その辺の使い分けをどうするかだよね。
おまけ。
最初の表から MUA を抜き出してみる。 ただし,要件4(perfect forward secrecy)は除外する。
| 要件1 | 要件2 | 要件3 | 要件5 | 要件6 | 要件7 | |
|---|---|---|---|---|---|---|
| Hushmail | ◯ | ☓ | ☓ | ☓ | ☓ | ☓ |
| iPGMail | ◯ | ◯ | ◯ | ☓ | ◯ | ☓ |
| Mailvelope | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
| PGP for Mac (GPGTools) | ◯ | ◯ | ◯ | ◯ | ◯ | ☓ |
| PGP for Windows Gpg4win | ◯ | ◯ | ◯ | ◯ | ◯ | ☓ |
| StartMail | ◯ | ☓ | ◯ | ☓ | ◯ | ☓ |
| Virtru | ◯ | ☓ | ☓ | ☓ | ◯ | ◯ |
要件4を除くと Mailvelope がパーフェクトなのがわかる。 Mailvelope は Web メール用の暗号化ツールだ。 Chrome または Firefox の拡張機能として導入できる。 なんだ。 これなら Google の End-to-End とか要らんじゃん。 後で調べてみよう。
【追記】敢えて LINE を評価してみる
フィードバックで LINE の評価例をいただいたので早速反映させてみる。
| 要件1 | 要件2 | 要件3 | 要件4 | 要件5 | 要件6 | 要件7 | |
|---|---|---|---|---|---|---|---|
| LINE | ◯ | ◯/☓ | ☓ | ☓ | ☓ | ☓ | ☓ |
実は LINE には「タイマートーク」という機能がある。
タイマートークは、通常のトークとは別に作られる1対1の専用トークルームです。
送信したテキストや画像などは隠されたされた状態で送られ、受信者が各メッセージをタップすると、設定された時間だけ内容が表示され、設定時間を越えると、メッセージは削除されます。
※削除されたメッセージは復元できません。
タイマートークは次の環境でご利用いただけます。
・Android・iOS LINEのバージョン4.5.0以上
※LINEのバージョンが古い場合はこちらからアップデートをしてください。
・日本、中国以外でご登録いただいているお客さま
なお、対象とならないOSや国家ではご利用いただけません。
ヘルプセンター | LINE androidより
「タイマートーク」を使用する限りにおいては End-to-End 暗号化が行われているようだ(つまり要件2を満たす,ように見える)。
どういうことかというと「日本人にプライバシーなど不要」と思われているということやね。 さすが韓国企業はやることがエグいねぇ(笑)
まぁ,私はもう LINE は捨てたのでどうでもいいけど。
