Qualcomm チップの脆弱性により、TrustZone ストレージから秘密鍵が抽出される

NCCグループの研究者 覆われていない 細部 脆弱性 (CVE-2018-11976) クアルコム チップに組み込まれており、ARM TrustZone テクノロジに基づいて、隔離されたエンクレーブ Qualcomm QSEE (Qualcomm Secure Execution Environment) にある秘密暗号キーの内容を特定できます。 問題は次のような形で現れます。 ほとんどの Androidプラットフォームをベースとしたスマートフォンで普及しているSnapdragon SoC。 問題を解決する修正はすでに行われています 含まれた 19 月の Android アップデートと Qualcomm チップの新しいファームウェア リリースで。 クアルコムが修正を準備するのに 2018 年以上かかりました; この脆弱性に関する情報は、XNUMX 年 XNUMX 月 XNUMX 日に初めてクアルコムに送信されました。

ARM TrustZone テクノロジを使用すると、メイン システムから完全に分離され、別の特殊なオペレーティング システムを使用して別の仮想プロセッサ上で実行される、ハードウェア分離された保護環境を作成できることを思い出してください。 TrustZone の主な目的は、暗号化キー、生体認証、支払いデータ、その他の機密情報のプロセッサーを分離して実行することです。 メイン OS との対話は、ディスパッチ インターフェイスを通じて間接的に実行されます。 秘密暗号化キーはハードウェアから分離されたキー ストア内に保存され、適切に実装されていれば、基盤となるシステムが侵害された場合でも漏洩を防ぐことができます。

この脆弱性は、楕円曲線処理アルゴリズムの実装に欠陥があり、データ処理の進行状況に関する情報が漏洩することが原因で発生します。 研究者らは、既存の間接的漏洩を利用して、ハードウェアで隔離された場所にある秘密鍵の内容を回復できるサイドチャネル攻撃手法を開発しました。 Android キーストア。 リークは、分岐予測ブロックのアクティビティの分析とメモリ内のデータへのアクセス時間の変化に基づいて判断されます。 この実験では、研究者らは、Nexus 224X スマートフォンで使用されているハードウェア分離されたキー ストアから 256 ビットおよび 5 ビットの ECDSA キーを復元することに成功しました。 キーを回復するには、約 12 個のデジタル署名を生成する必要があり、これには 14 時間以上かかりました。 攻撃の実行に使用されるツール キャッシュグラブ.

この問題の主な原因は、TrustZone とメイン システムでの計算用の共通のハードウェア コンポーネントとキャッシュの共有です。分離は論理的な分離のレベルで実行されますが、共通のコンピューティング ユニットを使用し、計算の痕跡とブランチに関する情報が含まれます。アドレスは共通プロセッサ キャッシュに保存されます。 Prime+Probe 方式を使用すると、キャッシュされた情報へのアクセス時間の変化の評価に基づいて、キャッシュ内の特定のパターンの存在をチェックすることで、データ フローと、デジタル署名の計算に関連するコード実行の兆候を監視できます。かなり高い精度を持つ TrustZone。

Qualcomm チップで ECDSA キーを使用してデジタル署名を生成する時間のほとんどは、各署名で変更されない初期化ベクトルを使用してループ内で乗算演算を実行することに費やされます (使節)。 攻撃者がこのベクトルの情報から少なくとも数ビットを回復できれば、秘密鍵全体を順次回復する攻撃を実行することが可能になります。

クアルコムの場合、そのような情報が漏洩した場所は、乗算アルゴリズムの 256 か所で特定されました。テーブル内でルックアップ操作を実行するときと、「ノンス」ベクトルの最後のビットの値に基づく条件付きデータ取得コードです。 クアルコムのコードにはサードパーティのチャネルを通じた情報漏洩に対抗するための手段が含まれているにもかかわらず、開発された攻撃手法ではこれらの手段を回避し、XNUMX ビット ECDSA キーを回復するのに十分な「ノンス」値の数ビットを特定することができます。

出所: オープンネット.ru

コメントを追加します