メッセージング大手のWeChatは、アプリ開発者が改変したネットワークプロトコルを使用しており、それによってセキュリティ上の弱点が生じたと研究者らは主張している。
WeChatは、TLS 1.3をベースにした暗号化プロトコルであるMMTLSを使用しています。開発者は基本的に標準のTLSに微調整を加えたものの、その結果、アプリの暗号化実装は「決定論的IVの使用や前方秘匿性の欠如など、10億人のユーザーが利用するアプリに期待される暗号化レベルとは一致していない」状態となっています。
これは、MMTLS のネットワーク セキュリティの包括的なレビューを実施したトロント大学の Citizen Lab によるものです。
Appleの「悪夢のような」SSL/TLS証明書の有効期限短縮にシステム管理者が激怒
続きを読む
以前の研究でMMTLSが特定されていましたが、より徹底的な分析により、当初考えられていた1層ではなく2層の暗号化が採用されていることが明らかになりました。平文コンテンツは「ビジネス層暗号化」と呼ばれるものでラップされ、その結果得られた暗号文はMMTLS暗号化でラップされ、この暗号文がWeChatネットワーク上で送信されます。
研究者らは、暗号セキュリティの問題のほとんどは、2016年にMMTLSが導入されるまでネットワークリクエストの唯一の暗号化層であったWeChatのAES-CBCベースのビジネス層暗号化にあったことを発見した。
実際、研究者が今回WeChatへの攻撃に成功しなかった唯一の理由は、WeChatがMMTLSに覆われたためです。以前はパディングオラクル攻撃など、様々な種類の攻撃が可能でしたが、昨年にはCitizen Labが、テンセント社が開発した別の暗号化方式が、この種の攻撃に対して依然として脆弱であることが判明したと発表しました。
しかし、研究者が発見した最も深刻な問題は、ビジネス層の暗号化ではユーザーIDやリクエストURIなどのメタデータが暗号化されず、プレーンテキストで漏洩してしまうことだった。
「例えば、MMTLSがフロントWeChatサーバー(MMTLS復号化を処理)で終了した後、対応する内部WeChatサーバーに転送される内部WeChatリクエストは再暗号化されず、ビジネス層暗号化のみを使用して暗号化される可能性がある」とCitizen Labは述べた。
WeChatのイントラネット内に設置されたネットワーク盗聴器、つまりネットワークタップは、転送されたリクエストのビジネス層暗号化を攻撃する可能性があります。しかし、このシナリオはあくまで推測の域を出ません。Tencentは当社の情報開示に対する回答で、ビジネス層暗号化の問題を懸念しており、より問題の多いAES-CBCからAES-GCMへと徐々に移行していることを示唆しています。そのため、Tencentもこの点を懸念しています。
結局のところ、暗号文をMMTLSでラップすることで、WeChatの暗号化プロトコルには、現在既知の攻撃につながる可能性のある脆弱性は存在しません。しかし、研究者らが「軽微」と表現した問題は、標準の未変更版TLSには存在しません。
研究者らの理解では、WeChatで送信されたメッセージは盗聴の危険から安全である。しかしながら、テンセントは現地の法律に基づき、中国共産党からのデータ提供要求に応じる必要がある。また、WeChatの通信はエンドツーエンドで暗号化されておらず、アプリのサーバーがすべてのメッセージを復号して読み取るとシチズン・ラボは述べている。
研究者たちは、中国で実際に使用されているバージョンにアクセスできていれば、別の発見があったかもしれない。しかし、中国の電話番号は政府の要件により国民IDと紐付けられているため、アクセスが困難だったため、中国以外の番号を使用する必要があり、その結果、アプリの動作が異なっていた。
中国特有の傾向
研究者らによると、開発者が従来のやり方に逆らって独自の暗号化システムを開発するのは中国でのみ一般的であり、一般的にこうしたシステムはどれも標準の TLS 1.3 や QUIC 実装ほど効果的ではないという。
Citizen Labは近年、様々なアプリで同様の慣行が見受けられることを発見しました。TLS認証局システムに関する以前の懸念にもかかわらず、セキュリティの観点からは標準的な実装が通常最善の選択肢です。Citizen Labはこれを「中国のセキュリティ環境に特有の、増加傾向にある懸念すべき傾向」と表現しました。
同様に、中国では、開発者が悪質なISPの横行する行為を軽減するために、カスタムドメイン検索システムを導入していることが知られています。彼らはしばしばDNSハイジャックに手を染め、広告を表示したり、ウェブトラフィックをリダイレクトして広告詐欺を働いたりしています。これは長年にわたり蔓延している問題であり、大手インターネット企業も異議を唱えてきましたが、依然として問題となっています。
たとえば、WeChat のコードの多くは、ネットワークやログ記録などの共通の基本機能をアプリに提供するオープンソースのインフラストラクチャ コンポーネントである Tencent Mars から直接取得されています。
Mars には NewDNS と呼ばれる機能があります。これは、WeChat にあるこのカスタム ドメイン検索システムの一例です。
研究者たちは、MarsはWeChat以外のアプリでも広く普及していると考えています。情報セキュリティ担当者は、Marsコンポーネントがトランスポート暗号化を提供していないことを考えると、これは問題だと述べています。MMTLSはオープンソースのMarsコンポーネントの一部ではなく、WeChat専用のものです。
- 70万台以上のDrayTekルーターがインターネット上で無防備状態にあり、リモートハイジャックの危険にさらされている
- ServiceNowのルート証明書の失策でユーザーは困惑
- FBI長官、中国が連邦政府に突きつけられた26万台のボットネットを「焼き払った」と発言
- 20ドルと失効ドメインで、セキュリティ専門家がインターネットの完全性を損なうことができた方法
これと、Mars の実装に関する開発者向けの正式なドキュメントが不足していること (開発者の多くは GitHub などのプラットフォーム上のコミュニティの知恵に頼っている) を組み合わせると、間違いが発生する可能性が高くなり、セキュリティが弱まる可能性があります。
Citizen Labは、アプリのセキュリティ強化のため、標準のTLS、またはQUICとTLSの組み合わせを採用することをTencentに提案したと述べた。®