暗号化メッセージアプリ Threema を使ってみた

Posted on by

FacebookがWhatsAppを買収した際にちょっと話題になったThreemaを使ってみました。

ドイツ人が大挙してWhatsAppからThreemaへ移行: Facebookの一員になったのでプライバシーが心配

エンドツーエンドの暗号化、つまり、

メッセージを送る人が暗号化

暗号文のままメッセージを送信

受け取る人のが復号

というのが売りのアプリです。

エンドツーエンドの暗号化の何がうれしいの?

LINEにしろ、WhatsAppにしろ、Facebook Messenger にしろ、運営側の人たちがメッセージを読めてしまうのではないか、という不安はあるわけで、それに答えるものといえるでしょう。

「LINEのメッセージは運営者に読まれてしまうのか?」
という疑問には、利用規約で答えられています。

LINE 利用規約を見ると、以下の記述があります。

10.7. 当社は、法令または本規約の遵守状況などを確認する必要がある場合、投稿コンテンツの内容を確認することができます。ただし、当社はそのような確認を行なう義務を負うものではありません。

「本規約の遵守状況などを確認する必要がある場合」
は広く解釈できる気もしますね。

警察からの令状があった場合しか、運営者や第三者がメッセージを閲覧することのない、カカオトークなどのアプリとの比較をしている記事もありました。

「LINE運営がトーク内容を確認できるなんて当たり前だろ」は本当なのか

ただ、令状があれば見せるのかという話になると、アメリカの会社であれば、
「NSAから開示しろと言われたら開示してしまうのではないか?」
という不安もあるわけです。

「開示を要求されても、そもそも私たちには読めません」
と言い切るところに他との違いがあります。

本当に運営者はメッセージを読めないのか?

これは実際のところはよくわかりません。

Wikipedia にも以下の記載があります。

Because Threema is a closed source proprietary application,[4] it is not possible to verify whether the claimed encryption standards are properly used and well implemented. Furthermore, it can not be verified if the product is free of intentional or accidental security flaws.[5] Attempting to reverse engineer the software is illegal.

Threema はソースコードが非公開のため、運営側が主張する暗号化技術が適切かつ十分に実装されているかどうかを確認することはできません。加えて、故意によるものにせよ事故によるものにせよ、プロダクトにセキュリティ上の問題が起こらないという確証も持てません。ソフトウェアのリバースエンジニアリングを試みるのは違法行為です。

まあ、そうでしょう。
疑えばきりがないので、
「あの会社は、利用規約には『読まない』と書いているけど本当か?」
というのと同じとも言えて、結局はその会社を信用するかどうかです。

「スイスの会社だし、NSAの要求にも屈することはなかろう」
と考えて使うのもよし。

使い方

iPhoneに入れてみたので、手順を紹介します。

Threema App Store

Threema App Store

Appストアです。

200円。
この値段から言っても、日本では流行らなさそうです。
「ただで集客して他で儲けよう」という発想ではないことの現れでもあるので、結果的には安いものだと思うのですが、無料アプリ以外使わないという人も多いですからね。

さて、インストールして開くと最初に出てくるのが次の画面です。

Threema - key generation

Threema – key generation

四角い領域で指をぐりぐり動かしてキーペアを生成しましょう。
これ、早速、一般の人には意味不明でしょうね。
IT系の人には
「PuTTYgenのあれか!公開鍵と秘密鍵ね。」
と、すぐにわかるのですが。

分からない人も、とりあえず言われるがままに指でなぞりながら待つと、次の画面に進みます。

Threema ID

Threema ID

IDが割り振られるので、これを使って他の人とメッセージのやり取りができるようになります。

セキュリティを考慮して、メッセージを送る相手が
「本当にあなたがメッセージを送ろうと思っている相手か」
について、3段階の「本人確認レベル」があると書かれています。

本人確認レベル 高:相手の端末に表示されQRコードを読み込んだ場合

本人確認レベル 中:連絡先の同期をした状態

本人確認レベル 低:相手のIDを手で打ち込んだ状態

直接会って、相手の端末に表示されたコードを読み込んでいるのですから、間違いなく本人です。
QRコードをメールで送ってもできちゃいそうですけど。

連絡先の同期は、次の手順で入力する電話番号やメールを元にするので、「すでに電話番号を知っている相手」であれば本人と確認できます。

IDを手で打ち込むのは、IDの受け渡し方によっては、なりすましもあり得ます。
オレオレ詐欺で、
「母ちゃん、俺携帯番号変わったから」
と嘘の電話をしてから1週間後にその電話を使って詐欺電話をする、みたいな手口もありますね。
そういうことです。

このように、
「その人、本当にあなたがメッセージを送ろうと思っている相手ですか?」
というのを気にしている点が面白いですね。
このアプリの思想の現れです。

Threema Sync Contacts

Threema Sync Contacts

電話帳を使って、Threemaをすでに使っている人と連絡先を同期する仕組みです。
LINEなどと同じです。

ただ、よく見ると、「電話番号やEmailアドレスそのものは送られない」と書かれています。
送るのは、電話番号やEmailアドレスを変換したハッシュ値だけです。

つまり、

+81-80-1234-5678 → qw9Seio38u3ikuOi2nhBV

と言うような感じで、原型をとどめない複雑な文字や数字に変換した結果をサーバに送るということです。
こういう手法はよく使われるのですが、ポイントは、
左から右への変換はできるけれど、右からは左には変換できないような計算式
が使われていることです。
これにより、運営者にも電話番号がわからない仕組みになっています。

もう少し詳しく言います。
例えば、こんな感じです。
Aさん、Bさん、Cさんは友達同士で、
Cさんの電話帳にはAさんとBさんの電話番号が入っているとします。

Aさん:すでに登録済み – サーバに電話番号のハッシュ値あり

Bさん:登録していない

Cさん:今登録した

という状況のとき、以下の操作が行われます。

Cさんの端末からサーバに、
Aさんの電話番号のハッシュ値が送られる

Aさんのハッシュ値がサーバ側で見つかり、
CさんはAさんと連絡が取れるようになる

Cさんの端末からサーバに、
Bさんの電話番号のハッシュ値が送られる

Bさんのハッシュ値はサーバ側で見つからない

サーバに送られたBさんのハッシュ値はサーバから削除される

このように、Threema のサーバには、Bさんの連絡先は、ハッシュ値すら保存されません
なので、アプリを使っていない人の情報は全く収集されないのです。
LINEが流行り出した当時に問題になった、
「勝手に連絡帳のデータが収集される」
という事態が防がれていることがわかるでしょう。

Threema Link Email and Phone Number

Threema Link Email and Phone Number

一つ前の画面の説明が長くなりましたが、この画面で、Emailアドレスと電話番号を入力します。
入力すると、入力したアドレスにメールが来て、電話番号にSMSがとどきます。
受け取ったことを確認すると、認証完了です。

※私が使っていたauの端末にはSMSが届きましたが、Softbankの端末を使っていた人にはSMSが届きませんでした。

Threema Nickname

Threema Nickname

ニックネームはファーストネームかペンネームを入れるのを推奨、と書かれています。

Threema Contact

Threema Contact

コンタクトリストの同期で見つかった人は、上の図のようにVerification Levelが2段階目になっています。

Threema Scan ID

Threema Scan ID

Scan IDのメニューでQRコードの読み込みをすると、Verification Levelが3段階目に上がります。

Threema Not Opened

Threema Not Opened

「こんにちは」というメッセージを送ったところです。
未開封のマークがついています。

Threema Opened

Threema Opened

開封されるとこのようなマークになります。

日本でも流行る?

どうでしょう?
個人的には良さそうに思えますが、無料でできるツールがあるのに200円を払う人がどれだけいるかと考えると、そんなにいないんじゃないでしょうか。

この記事にはできるだけわかりやすく書いたつもりですが、この暗号化やプライバシー保護の考え方は、どちらかというと玄人向けで、一般の人には中々難しい部分もあると思います。

逆に、こういうことに詳しい人になればなるほど、
「本当に運営者が読めないことは、この記事にも書いてある通り確証がない」
「プライバシー情報の扱いのリスクを踏まえた上で他のアプリを使えばよい」
「Googleにあれだけ分析されていて、今さらプライバシーなんて」
という見方もできるわけで、。

プライバシー保護という見えない部分以外の機能で言えば、
無料通話の使えない、
スタンプの使えないLINE、
と言ってしまえばそれまでです。

ということで、
主流にはならないかもしれませんが、
じわじわと広がることを期待して、しばらく使ってみようと思います。

Category: Tech | Tags: