Skip to main content
QUICK REVIEW

[논문 리뷰] KeyDrown: Eliminating Keystroke Timing Side-Channel Attacks

Michael Schwarz, Moritz Lipp|arXiv (Cornell University)|2017. 06. 20.
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 공격을 방지함.
  • 모든 키 입력(실제 및 가짜 포함)을 공유 라이브러리를 통해 정확히 전파함으로써 일관된 캐시 행동을 유지하고 캐시 기반 측면 채널 泄露를 방지함.
  • 키 입력 처리 루틴이 항상 활성화되어 있고 타이밍 및 메모리 액세스에서 구분 불가능하도록 함으로써 사용자 공간 응용 프로그램에 대한 측면 채널 泄露를 방지함.
  • 커널 레벨 인터럽트 주입과 미세구조적 오버행을 조합하여 소프트웨어 스택 전반에서 측면 채널 우위를 완전히 제거함.
  • 실제 환경에서의 효과를 검증하기 위해 일반적인 x86 노트북 및 안드로이드 스마트폰에서 KeyDrown를 평가함.

실험 결과

연구 질문

  • RQ1전체 소프트웨어 스택, 즉 커널 및 사용자 공간을 포함해 키 입력 타이밍 측면 채널 공격을 완전히 제거할 수 있는 방어 메커니즘이 존재하는가?
  • RQ2가짜 키 입력이 인터럽트 기반 측면 채널 분석으로부터 탐지되는 것을 어느 정도 방지할 수 있는가?
  • RQ3실제 및 가짜 키 입력이 동일한 캐시 및 메모리 액세스 패턴을 보일 경우 Prime+Probe 및 Flush+Reload 공격을 완화할 수 있는가?
  • RQ4공격자가 여러 타이밍 트레이스를 수집할 수 있는 암호 입력 시나리오와 같이 실질적 및 가짜 키 입력 간의 구분 불가능성이 확보될 수 있는가?
  • RQ5모바일 플랫폼인 안드로이드 스마트폰과 같은 실용적 조건에서도 이 대응 조치가 여전히 효과를 가지는가?

주요 결과

  • KeyDrown는 공격자가 실질적 키 입력과 가짜 키 입력을 식별할 수 없도록 하여 측면 채널 분석에서 무작위 분류기 대비 0.0%의 우월성을 기록함.
  • 이 방어 조치는 x86 및 ARM 플랫폼에서 모두 인터럽트 기반 공격과 미세구조적 측면 채널 공격(Prime+Probe 및 Flush+Reload 포함)에 효과적임.
  • 일반적인 랩탑과 두 대의 안드로이드 스마트폰에서의 평가를 통해 KeyDrown가 타이밍 또는 캐시 정보로부터의 측면 채널 우위를 완전히 제거함을 확인함.
  • 입력 처리가 사용자 입력 완료 후 이루어지는 경우(예: 암호 필드 또는 텍스트 입력 폼에서) 기존 응용 프로그램에 대한 변경 없이도 이 메커니즘이 작동함.
  • 브라우저 기반 키 입력 타이밍 공격(예: 크롬의 이벤트 큐를 타겟으로 하는 공격)에 대해 측정 가능한 노이즈를 추가함으로써 효과적으로 이를 무력화함.
  • 가속도계 기반 공격이나 실시간 자동완성과 같은 응용 프로그램 수준의 행동과 같은 다른 소스에서 발생하는 측면 채널 泄露에는 효과가 없으며, 이는 범위 외임.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.