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.
CCS CONCEPTS• Security and privacy → Side-channel analysis and countermeasures; Systems security; Operating systems security; ACM Reference format: pages. https://doi.org/XX.XXX/XXX_X
INTRODUCTIONModern computer systems leak sensitive user information through side channels. Among software-based side channels, information can leak, for example, from the system or from microarchitectural components such as the CPU cache [12] or the DRAM [36]. Historically, side-channel attacks have exploited these information leaks to infer cryptographic secrets [4,25,34,51], whereas more recent attacks even target keystroke timings and sensitive user input directly [15,33,36]. -print, arXiv, 2017 M. Schwarz et al.
Pre