Latest evidence-based health information
Apps

やられた!WhatsAppの基本的な欠陥により、攻撃者がメッセージを解読できる可能性がある

やられた!WhatsAppの基本的な欠陥により、攻撃者がメッセージを解読できる可能性がある
やられた!WhatsAppの基本的な欠陥により、攻撃者がメッセージを解読できる可能性がある

オランダの開発者によると、人気のモバイルメッセージングアプリケーションWhatsApp Messengerには、暗号実装に重大な設計上の欠陥があり、攻撃者が傍受したメッセージを解読できる可能性があるという。

問題は、クライアントとWhatsAppサーバー間の送受信ストリームの暗号化に同じキーが使われていることだ、とオランダのユトレヒト大学でコンピュータサイエンスと数学を学んでおり、Mac OS X用のオープンソース・インスタントメッセージングクライアント「Adium」の主任開発者でもあるティイス・アルケメイド氏は述べた。

「RC4はPRNG(擬似乱数生成器)の一種で、バイト列を生成し、暗号化する平文とXOR(暗号演算)する。同じストリームで暗号文をXORすることで、平文を復元できる」とアルケメイド氏は火曜日、この問題を詳細に説明したブログ記事で述べた。

このため、2 つのメッセージが同じキーで暗号化され、オープンなワイヤレス ネットワークなどで攻撃者がそれらのメッセージを傍受した場合、攻撃者はそれらのメッセージを分析してキーをキャンセルし、最終的に元のプレーンテキスト情報を復元することができます。

アルケメイド氏は水曜日、このような方法で鍵を再利用することは、WhatsAppの開発者が認識しておくべきだった暗号実装の基本的な誤りだと述べた。これは1950年代のソ連や、1995年のマイクロソフトのVPNソフトウェアで犯された誤りと同じだと同氏は述べた。

アルケメイド氏はこの脆弱性を悪用する概念実証コードを公開しましたが、当初はWhatsApp公式クライアントではなく、オープンソースライブラリ「WhatsPoke」でテストしました。その後、アルケメイド氏はNokia Series 40およびAndroidデバイス向けのWhatsAppクライアントにも問題が存在することを確認しました。

「iOSクライアントでも状況は変わらないと思います」と彼は語った。

WhatsApp は、メッセージを認証するために、HMAC (ハッシュベースのメッセージ認証コード) 操作にも同じ RC4 暗号化キーを使用します。

これにより、攻撃者はユーザーがサーバーに送信したメッセージを傍受し、WhatsAppサーバーから送信されたかのようにユーザーに再送信することが可能になるが、これは簡単に悪用できるものではないとアルケメイド氏は述べた。

オランダ人開発者は、問題を公表する前にWhatsAppに連絡を取ろうとはしなかった。「WhatsAppが安全ではないことを人々に知ってもらうことが重要だと考えており、すぐに修正されるとは思っていませんでした」と彼は述べた。

この問題を解決するために、暗号化の実装全体を再考する必要はないとアルケメイド氏は述べた。双方向の暗号化とメッセージ認証にそれぞれ異なる鍵を生成する方法を追加すれば、問題は解決すると彼は述べた。

アルケメイド氏によると、ユーザーは今のところ、WhatsApp 接続を傍受できる人はメッセージを解読することもできると想定し、過去の WhatsApp の会話が危険にさらされていると考えるべきだという。

問題が解決されるまで、ユーザーが自分自身を守るためにできる唯一のことは、アプリケーションの使用をやめることだとアルケメイド氏は述べた。

WhatsAppは電子メールでの声明で、「WhatsAppはセキュリティを真剣に受け止めており、製品の改善策を常に検討しています」と述べた。「フィードバックはありがたいのですが、ブロガーの記事は理論的なシナリオを描いているのではないかと懸念しています。また、すべての会話が侵害されたとみなすべきだとする記述は正確ではありません」と同社は述べた。

同社は、なぜこのシナリオは理論上のものであり、この発言は不正確だと考えているのかというさらなる説明を求める要請には応じなかった。

ボルチモアのジョンズ・ホプキンス大学の暗号学教授マシュー・グリーン氏によると、WhatsAppはRC4ストリーム暗号を使用しているため、送信メッセージと受信メッセージの両方に同じキーを使用することは問題である。

「XORベースの暗号の既知の特徴として、同じ(疑似)ランダムバイト列で暗号化された2つのメッセージがある場合、暗号文のXOR演算を行うことができることが挙げられます」と彼は述べた。「RC4バイトが打ち消され、2つのメッセージのXOR演算が得られるのです。」

「場合によっては、これは意味不明な情報になります」とグリーン氏は述べた。「しかし、少なくとも1つの受信メッセージの一部のフィールドが何であるかが分かれば、それらを簡単にキャンセルし、他のメッセージからメッセージビットを復元できます。」

グリーン氏は、他にも使えるトリックがあると述べた。「これは本当に厄介なことであり、最悪の場合、メッセージが平文になっていると想定しておく必要があります。」

午後1時に更新し、WhatsAppと暗号学教授からのコメントを追加しました。

Otpoo

Health writer and researcher with expertise in evidence-based medicine and healthcare information.