Matrix: Install security update to fix end-to-end encryption flaws

Matrix 分散通信プラットフォームは、ソフトウェア開発キット (SDK) のエンドツーエンド暗号化に影響を与える 2 つの重大な脆弱性に関するセキュリティ警告を公開しました。

これらの欠陥を悪用する攻撃者は、Matrix 通信の機密性を破り、メッセージの内容を読み取り可能な形式で公開する中間者攻撃を実行する可能性があります。

バグの影響を受けるクライアントは、Element、Beeper、Cinny、SchildiChat、Circuli、Synod.im など、matrix-js-sdk、matrix-ios-sdk、matrix-android-sdk2 を使用しているクライアントです。

別の暗号化実装を使用している他のクライアント (Hydrogen、ElementX、Nheko、FluffyChat、Syphon、Timmy、Gomuks、Pantalaimon など) は影響を受けません。

Matrix は、問題が修正されたことを強調しており、通信を安全に保つためにユーザーが行う必要があるのは、利用可能な更新を IM クライアントに適用することだけです。

Matrix の発表では、欠陥を悪用するのは簡単な作業ではなく、実際に悪用された形跡は見られないと主張しています。

脆弱性の詳細

セキュリティの問題は、プロトコル自体ではなく、暗号化メカニズムの実装にあります。これらは、Brave Software、ロンドンのロイヤル ホロウェイ大学、およびシェフィールド大学の研究者によって発見され、責任を持って Matrix に開示されました。

このグループは、調査結果を詳述し、バグを悪用する 6 つの攻撃例を提示するテクニカル ペーパーも公開しています。

要約すると、チームによって発見された重大な重大度の欠陥は次のとおりです。

CVE-2022-39250 : matrix-js-sdk の SAS 検証でのキー/デバイス識別子の混乱により、悪意のあるサーバー管理者がクロス署名の使用時に絵文字ベースの検証を破り、ターゲット ユーザーではなく自分自身を認証できるようになります。
CVE-2022-39251 : matrix-js-sdk のプロトコル混乱バグにより、スプーフィングされた送信者からのメッセージが誤って受信され、信頼できる送信者になりすます可能性が生じます。同じ欠陥により、悪意のあるホームサーバー管理者がターゲットのアカウントにバックアップ キーを追加できるようになります。
CVE-2022-39255 : CVE-2022-39251 と同じですが、matrix-ios-sdk (iOS クライアント) に影響します。
CVE-2022-39248 : CVE-2022-39251 と同じですが、matrix-android-sdk2 (Android クライアント) に影響します。

上記の問題とは別に、次のような重大度の低い問題も見つかりました。

CVE-2022-39249 : matrix-js-sdk の半信頼のなりすましの問題により、リクエストなしで転送されたキーが受け入れられ、サーバー内の他のユーザーのなりすましが可能になります。クライアントはこれらのメッセージを受信側で疑わしいものとしてマークするため、バグの重大度は低くなります。
CVE-2022-39257 : CVE-2022-39249 と同じですが、matrix-ios-sdk (iOS クライアント) に影響します。
CVE-2022-39246 : CVE-2022-39249 と同じですが、matrix-android-sdk2 (Android クライアント) に影響します。

また、識別番号をまだ受け取っていない問題が 2 つあります。そのうちの 1 つは、悪意のあるホームサーバーがユーザーに代わって招待状を偽造したり、デバイスをユーザー アカウントに追加したりすることを可能にする問題です。

2 つ目は、AES 初期化ベクトルを使用せずに添付ファイル、シークレット、および対称キーのバックアップを暗号化するために AES-CTR を使用することを指しており、安全ではありません。

マトリックス セキュリティ

欠陥を発見した研究者が指摘していることの 1 つは、Matrix の暗号化ビルディング ブロックは堅牢ですが、プロジェクトにはすべてを安全にまとめる緩い方法があるように見えるということです。

テクニカル ペーパーで強調されているように、さまざまな種類のバグ (設計上安全でない、プロトコルの混乱、ドメイン分離の欠如、実装のバグ) と、影響が複数のサブプロトコルとライブラリに広がっているという事実が、これを裏付けているようです。

これらの脆弱性は、観察された実装と仕様のエラーに加えて、Matrix のセキュリティ保証に対する統一された正式なアプローチの欠如を浮き彫りにしています。

むしろ、仕様と実装は、新しい機能を追加する新しいサブプロトコルで「有機的に」成長したように見え、コアプロトコルのセキュリティ保証をうっかり覆してしまいます。

これは、ここで報告された特定の脆弱性を修正する以外に、Matrix/Megolm が正式なセキュリティ分析を受けて設計の信頼性を確立する必要があることを示唆しています。

Matrix は現在、Rust で記述された、よりクリーンで安全な第 2 世代および第 3 世代の SDK の開発に注力しています。

2022 年 6 月にリリースされたバージョン 102 で Matrix VOIP とチャットのサポートを追加したThunderbird も、昨日、問題に対処するセキュリティ アップデートをプッシュしました。