Simple Science

最先端の科学をわかりやすく解説

# コンピューターサイエンス# 暗号とセキュリティ

フォルトアタックに対するセキュアエレメントの新しい保護方法

この文書は、無許可のアクセスからセキュアな要素を守る方法を示してる。

― 1 分で読む


セキュアエレメントの強化セキュアエレメントの強化新しい方法が欠陥攻撃の脆弱性から守る。
目次

セキュアエレメントはスマホやコンピュータにあるんだけど、無許可でアクセスしようとするユーザーから攻撃されることがよくあるんだ。こういう攻撃が成功すると、ハッカーはソフトウェアの動きを変えたり、機密情報をゲットしたり、自分のコードを走らせたりできる。この文書では、こうした攻撃からセキュアエレメントを守るための新しい方法を説明するよ。余計なハードウェアを使わず、デバイスを遅くすることもない方法なんだ。

フォルトアタックの脅威

フォルトアタックは、誰かがチップの正常な動作を妨害しようとする時に起こる。電圧やクロックスピードを変えたり、レーザーを使ったりすることもあるんだ。こういうフォルトが起こると、チップ内部の重要なビットが変わることがある。それによって、攻撃者はソフトウェアの挙動をコントロールできるようになっちゃう。セキュアエレメントは、暗号鍵の保存やユーザーの確認などの敏感なタスクを扱うから特に狙われやすいんだ。

現在の保護方法

今のところ、フォルトアタックを防ぐための方法は、チップ上でスペースを取りすぎたり、攻撃を完全には止められなかったりすることが多い。既存の方法は多くの場合、限られた保護しか提供しなかったり、ハードウェアに大きな変更が必要だったりして、実装が高くて難しいことが多い。

新しい保護スキームの紹介

ここで紹介する新しいスキームは、制御フローの整合性を強化するために暗号化手法を使ってる。この新しい方法は、ハードウェアに最小限の変更を加えることでフォルトアタックの影響を制限できるんだ。ソフトウェアが呼び出す各関数をユニークな鍵で暗号化することで、攻撃者がソフトウェアの流れを妨害しようとしても、正しい鍵がないと暗号化されたコードは使えないんだ。

この方法の仕組み

プログラムが実行される前に、メモリにロードされて、その関数が暗号化される。プログラムが動くとき、正しい鍵があればのみコードを復号して実行するんだ。もし攻撃者が異なる鍵で別の関数に流れを変えようとすると、そのコードは実行されず、システムに警告が出る。

このスキームは、セキュアエレメントにすでにあるハードウェア機能を利用するから、余計なスペースや機能をあまり必要としないんだ。全体の設計変更は最小限で、チップ上のスペースが4%未満しか増えないんだ。

新しいスキームの利点

  1. 最小限のハードウェア変更: 新しい方法は、大きな修正なしでセキュアエレメントに追加できるから、生産コストを抑えられる。

  2. 低パフォーマンスオーバーヘッド: この新しい保護スキームを使ったプログラムは、特に速度が落ちることはない。作業にかかる時間の増加は小さくて、ユーザーは気づかないと思う。

  3. 強力なセキュリティ: すべての攻撃を防げるわけじゃないけど、この方法はソフトウェア内の制御フローを変えようとする試みに対してかなり良い保護を提供する。攻撃者が利用できる範囲を減らすんだ。

制御フローの整合性の重要性

制御フローの整合性(CFI)は、プログラムが意図したとおりに動くことを保証するために重要なんだ。攻撃者がプログラムの実行パスを不正に変えるのを防ぐことで、害のある命令を実行されるのを防ぐんだ。CFIと暗号化技術を統合することで、この新しいスキームは無許可アクセスに対する強力なバリアを作る。

フォルトアタックの仕組み

ソフトウェアを操作するために、攻撃者はチップの特定のエリアを狙うかもしれない:

  1. 到達不能な関数へのジャンプ: 攻撃者は、プログラムをアクセスできない関数にリダイレクトしようとするかも。

  2. 条件分岐の変更: 攻撃者は、ソフトウェアが従うパスを決めるコードの決定ポイントを操作できる。

  3. 直接操作: ハッカーは重要なレジスタやメモリのビットをひっくり返して、関数の呼び出し方やデータの処理方法を変えられる。

現在のチップにおける防御策

今のセキュアエレメントは、いくつかの方法でフォルトアタックに対する一定の保護を提供している。エラーチェックコードを使ってデータが変更されたかどうかを識別したり、エラーが検出された場合に自動でアクションを再試行する仕組みを持ってたりする。ただ、こうした対策はしばしば高度な攻撃を効果的に防げないんだ。

ハードウェアベースの保護

データの整合性を常にチェックするハードウェア保護もある。例えば、特定のチップはビットがひっくり返った時に検出して、実行を停止したりセキュリティレスポンスを起動したりする。ただ、こうした方法はコストがかかるし、ハードウェアの面積要求を倍増させることもある。

ソフトウェアベースの保護

ソフトウェアの防御策は変更されたコンパイラツールチェインの下に含まれる。これは、特定のツールでコンパイルされたプログラムが重要な情報をメモリの別エリア(シャドウスタック)に保存することを意味してて、攻撃者が重要な制御フローを操作するのが難しくなる。でも、これらの方法は限られたカバーしか提供せず、特定の攻撃形態には苦しむことが多い。

セキュリティにおける暗号化の役割

制御フローを保護するために暗号化を使うことで、攻撃がプログラムの正常な動作を妨害しても、彼らが操作しようとするデータは暗号化されて使えないまま残ることを保証するんだ。この新しい方法が提供する特定の強化は、関数を復号するための鍵がユニークであることを意味して、全体のセキュリティが強化される。

新しい保護方法の実装

この新しい方法を実装するために、以下のステップを踏む:

  1. コンパイル: まず、プログラムをユニークな暗号化鍵を各関数に割り当てるための高度なツールチェインでコンパイルする。

  2. ロード: プログラムをメモリにロードする時、鍵を使ってコードを暗号化して、正しい鍵だけで実行できるようにする。

  3. 実行: 実行時に、関数が呼び出されるたびに、アクティブな鍵が必要な鍵と照合される。一致しなければ、実行は停止される。

パフォーマンスの評価

新しい方法の効果をテストするために、作業にかかる追加の時間や結果として得られるプログラムのサイズを測るベンチマークを実施した。新しいスキームはパフォーマンスにわずかな影響を与えたが、一般的には気にならない程度だった。ほとんどのユーザーは通常の使い方では違いに気づかないだろう。

面積オーバーヘッド

新しい暗号化方法は、チップが占有する全体の面積を約4%増加させた。このフォルトアタックに対する高いレベルの保護を考えると、このトレードオフは好ましいと考えられる。

まとめ

サイバー脅威が進化し続ける中で、セキュアエレメントは敏感なデータやシステムを守るために適応しなきゃならない。この文書で説明した新しい方法は、大きなコストやパフォーマンスへの影響なしにセキュリティを強化するための有望な手段を提供する。暗号化と制御フローの整合性を効果的に組み合わせることで、今日のデジタル環境に必要なセキュリティ層を追加できるんだ。

将来の課題

この方法の今後の改善には、条件分岐の操作といった特定の攻撃タイプに対してさらに強固にする方法を探ることが含まれるかもしれない。また、実際のシナリオでのパフォーマンスの影響についての継続的な評価が、技術をさらに洗練させるのに役立つだろう。

要するに、この新しいアプローチは、セキュアエレメント上で動くソフトウェアのセキュリティを強化するための一歩を示していて、セキュリティと効率の両方を提供するんだ。

オリジナルソース

タイトル: SCRAMBLE-CFI: Mitigating Fault-Induced Control-Flow Attacks on OpenTitan

概要: Secure elements physically exposed to adversaries are frequently targeted by fault attacks. These attacks can be utilized to hijack the control-flow of software allowing the attacker to bypass security measures, extract sensitive data, or gain full code execution. In this paper, we systematically analyze the threat vector of fault-induced control-flow manipulations on the open-source OpenTitan secure element. Our thorough analysis reveals that current countermeasures of this chip either induce large area overheads or still cannot prevent the attacker from exploiting the identified threats. In this context, we introduce SCRAMBLE-CFI, an encryption-based control-flow integrity scheme utilizing existing hardware features of OpenTitan. SCRAMBLE-CFI confines, with minimal hardware overhead, the impact of fault-induced control-flow attacks by encrypting each function with a different encryption tweak at load-time. At runtime, code only can be successfully decrypted when the correct decryption tweak is active. We open-source our hardware changes and release our LLVM toolchain automatically protecting programs. Our analysis shows that SCRAMBLE-CFI complementarily enhances security guarantees of OpenTitan with a negligible hardware overhead of less than 3.97 % and a runtime overhead of 7.02 % for the Embench-IoT benchmarks.

著者: Pascal Nasahl, Stefan Mangard

最終更新: 2023-03-24 00:00:00

言語: English

ソースURL: https://arxiv.org/abs/2303.03711

ソースPDF: https://arxiv.org/pdf/2303.03711

ライセンス: https://creativecommons.org/licenses/by/4.0/

変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。

オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。

著者たちからもっと読む

類似の記事

機械学習ディープラーニングのためのインメモリコンピューティングの進展

新しいアルゴリズムは、インメモリコンピューティングを使って深層ニューラルネットワークのトレーニング効率を向上させる。

― 1 分で読む