通信の秘密を守る

今やインターネットの通信は覗き見されているというのが常識となっている。国家が検閲していたり、犯罪組織が通信内容を盗んだり。

現在ではブラウザからログイン情報や支払い情報などを送信するときはhttpではなくhttpsで通信するというのは常識となっている。そればかりかGoogleなどはすべての通信をhttpsにするべきだと言っているし、実際そうなりつつある。

しかし、今やプライベートなやり取りの主流となったチャットアプリではまだ完全に通信の秘密が守られない。アプリとサーバー間の通信をSSL化したところで、サーバーに平文で保存されたりしていたらそこから盗み見られてしまう。そうならないためにはエンドツーエンドの暗号化通信が求められる。そこでエンドツーエンドの暗号化通信を実装しているチャットアプリをまとめてみた。

iMessage

アップルのiMessageは早くからエンドツーエンドの暗号化通信を実装していて、アップル自身でも通信内容を見ることができないのは有名だ。しかし、iMessageはiPhone同士でのやり取りは完全に暗号化されるが、相手がiPhoneでない場合は非暗号化通信のSMSやMMSが使われる。注意深く画面を見ればそれがiMessageなのかSMS/MMSなのかはわかるが、まぎらわしいのが難点だ。

WatsApp

WhatsAppはすべての通信においてエンドツーエンドの暗号化通信を実装している。WhatsAppは電話番号をユーザーIDとして使うので電話番号を持たないタブレットやPCではユーザー登録ができない。しかし、一度電話機でアプリをセットアップすれば、そのアプリで認証することによってWeb上やMac/WindowsアプリでWhatsAppを使うことができる。

Telegram

Telegramもエンドツーエンドの暗号化通信を実装しているが、普通に使っている時には有効化されていない。 "Secret Chat" を使った時だけがエンドツーエンドの暗号化になる。 "Secret Chat" には "self-destruct timer" という機能もあり、この機能を設定すると相手が読んでから設定した時間が経過するとメッセージを自動削除することができる。設定できる時間は1秒から1週間までだ。

Telegramも電話番号をユーザーIDとして使うが、電話番号を持たない端末からでも任意の電話番号に承認用SMSを送信することでユーザー登録やログインができる。つまり、いわゆるガラケーでもPCと併用して利用できるということだ。ただし、Web版などではエンドツーエンドの暗号化通信は利用できない。

Signal

Edward Snowdenが愛用しているということで有名になったチャットアプリだ。Signalもまた電話番号をユーザーIDとして使うので電話番号を持たない端末では利用できない。他の広く使われているチャットアプリに比べると機能も少ないし、スタンプなどもない。安全な通信に特化したアプリだ。

Wire

Wireもすべての通信を暗号化している。Wireはメールアドレスで登録できるので、電話機を持っていなくても利用できる。同一アカウントを使って複数の端末でログインすることは可能だが、過去に他の端末で受信したメッセージは新しい端末では見ることができない。これはWhatsAppが電話番号を持つ端末を唯一のキーとして扱うのに対して、Wireでは端末ごとに個別のキーを持っているからだ。これにより、一度ログインした端末を別の端末から削除することもできる。

LINE

日本では最大のユーザー数を持つLINEも "Letter Sealing" というエンドツーエンドの暗号化通信を実装している。この “Letter Sealing” は当初は標準では無効で、意図的に設定を有効にしたユーザー間のみ暗号化通信ができていたのだが、現在では標準で有効になっていて、暗号化通信が有効な場合はチャット画面の上に南京錠マークが表示されるようになった。

Facebook Messenger

FacebookもMessengerにエンドツーエンドの暗号化通信を実装してきた。やり方はTelegram方式で、秘密メッセージとして送信したもののみがエンドツーエンドの暗号化通信になり、指定時間後に削除する機能があるのもTelegramと同じだ。

Allo

Googleが公式リリースしたばかりのAlloもTelegramやFacebook同様シークレットモードの時だけエンドツーエンドの暗号化が可能だ。Alloは電話番号をユーザーIDとして使うので従来からGoogleが提供しているHangoutsと違い利用には電話番号が必要だ。

まとめ

通信の安全を確保するという意味ではすべての通信を暗号化するWhatsAppかSignalが安心だ。電話機だけでなくPCからも使いたいというならWireも良い選択だろう。メッセージの相手が全てiPhoneユーザーならiMessageが最良だが、一人でも非iPhoneユーザーがいるなら使い分けが面倒だ。

ユーザー数の多いFacebookやLINEは相手に合わせる必要があれば利用を拒否しなくてもいいが、全面的に信用したいとは思わない。今後ユーザーが増えてくるかもしれないAlloも今のところこちらのカテゴリだ。

Telegramはイスラム過激派が使っていたりする関係でアメリカ政府から嫌われているが、ヨーロッパでは比較的受け入れられているようだ。日本ではわざわざ使う必要もないかな、という程度だ。