Skip to main content
QUICK REVIEW

[論文レビュー] KeyDrown: Eliminating Keystroke Timing Side-Channel Attacks

Michael Schwarz, Moritz Lipp|arXiv (Cornell University)|Jun 20, 2017
Security and Verification in Computing参考文献 35被引用数 9
ひとこと要約

KeyDrown は、カーネルレベルで多数の偽のキーストロークを注入し、すべてのソフトウェアレイヤーにわたって伝搬することで、キーストロークタイミング側信道攻撃を完全に排除する包括的な防御メカニズムである。リアルなキーストロークと偽のキーストロークが同一のタイミングとキャッシュ動作を示すようにすることで、割り込み監視、Prime+Probe、Flush+Reload 攻撃による検出を不可能にし、攻撃者がそれらを区別できなくなる。評価では、ランダム分類と比較して 0.0% のアドバンテージを達成した。

ABSTRACT

Besides cryptographic secrets, side-channel attacks also leak sensitive user input. The most accurate attacks exploit cache timings or interrupt information to monitor keystroke timings and subsequently infer typed words and sentences. Previously proposed countermeasures fail to prevent keystroke timing attacks as they do not protect keystroke processing among the entire software stack. We close this gap with KeyDrown, a new defense mechanism against keystroke timing attacks. KeyDrown injects a large number of fake keystrokes in the kernel to prevent interrupt-based attacks and Prime+Probe attacks on the kernel. All keystrokes, including fake keystrokes, are carefully propagated through the shared library in order to hide any cache activity and thus to prevent Flush+Reload attacks. Finally, we provide additional protection against Prime+Probe for password input in user space programs. We show that attackers cannot distinguish fake keystrokes from real keystrokes anymore and we evaluate KeyDrown on a commodity notebook as well as on two Android smartphones. We show that KeyDrown eliminates any advantage an attacker can gain from using interrupt or cache side-channel information.

研究の動機と目的

  • 既存の対策がソフトウェアスタック全体にわたるキーストローク処理を保護できないというギャップを埋める。
  • キーボード割り込みタイミングを悪用する割り込みベースの側信道攻撃を防止する。
  • キャッシュおよびメモリアクセスパターンの側信道攻撃、例えば Prime+Probe や Flush+Reload を軽減する。
  • 複数のトレースが入手可能であっても、攻撃者がリアルなキーストロークと偽物を区別できないように保証する。
  • アプリケーションレベルの変更を要せず、一般のテキスト入力およびパスワードフィールドの両方に対して有効な防御を提供する。

提案手法

  • カーネルレベルで多数の偽キーストロークを注入し、割り込みベースの側信道分析からリアルなキーストロークのタイミングを隠蔽する。
  • リアルなキーストロークと偽のキーストロークの制御フローおよびデータアクセスパターンを統一することで、カーネル上で Prime+Probe や Flush+Reload 攻撃を防止する。
  • 共有ライブラリを通じて、偽のキーストロークを含むすべてのキーストロークを丁寧に伝搬させ、一貫性のあるキャッシュ動作を維持し、キャッシュベースの側信道漏洩を防止する。
  • キーストローク処理ルーチンが常にアクティブで、タイミングおよびメモリアクセスにおいて区別不能であることを保証することで、ユーザースペースのアプリケーションに対する側信道漏洩を防止する。
  • カーネルレベルの割り込みインジェクションとマイクロアーキテクチャ的オブスクリーションの組み合わせにより、ソフトウェアスタック全体で側信道のアドバンテージを完全に排除する。
  • 実世界の環境での有効性を検証するため、コンsumer x86 ノートブックおよび Android スマartフォンで KeyDrown を評価する。

実験結果

リサーチクエスチョン

  • RQ1ソフトウェアスタック全体(カーネルおよびユーザースペースを含む)でキーストロークタイミング側信道攻撃を完全に排除できる防御メカニズムは存在するか?
  • RQ2偽キーストロークが割り込みベースの側信道分析による検出をどの程度効果的に防止できるか?
  • RQ3リアルなキーストロークと偽のキーストロークが同一のキャッシュおよびメモリアクセスパターンを示す場合、Prime+Probe や Flush+Reload 攻撃は軽減可能か?
  • RQ4攻撃者がパスワード入力のシナリオのように複数のタイミングトレースを入手した場合でも、リアルなキーストロークと偽物を区別できない状態を実現可能か?
  • RQ5Android スマartフォンなどのモバイルプラットフォームを含む実用的条件下でも、この対策は有効性を保つのか?

主な発見

  • KeyDrown は、攻撃者がリアルなキーストロークと偽物を区別できないことを確認し、側信道分析においてランダム分類と比較して 0.0% のアドバンテージを達成した。
  • この防御は、x86 および ARM プラットフォームの両方で、割り込みベースの攻撃およびマイクロアーキテクチャ的側信道攻撃(Prime+Probe や Flush+Reload を含む)に対して有効である。
  • コンsumer ノートブックおよび2台の Android スマartフォンでの評価により、キーストロークのタイミングおよびキャッシュ情報からの側信道的アドバンテージが完全に排除されたことが確認された。
  • 入力処理がユーザー入力の完了後に実行される場合(パスワードフィールドやテキスト入力フォームなど)、既存のアプリケーションに変更を加えずに動作する。
  • ブラウザベースのキーストロークタイミング攻撃(例:Chrome のイベントキューを標的とする攻撃)に対しても、測定可能なノイズを追加し、効果的に無効化した。
  • 加速度計ベースの攻撃やリアルタイムの自動補完などのアプリケーションレベルの動作といった、他のソースからの側信道漏洩については有効ではないが、これは範囲外である。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。