without root access unprivileged user level xlookupstring linux keylogger keylogging password cracking password guessing timing attack timing side channel attack side channel keyboard mapping keycode keysym keystroke brute force
Abstract:
The problem of maintaining the confidentiality of sensitive information in computer systems is typically addressed by mechanisms such as memory protection and access controls to resources. These techniques only protect confidential information through overt channels. Computer hardware and software both can leak sensitive information through covert or side channels. Side channels leak secrets through some observable aspect of a program's execution, such as memory access patterns and power usage. We examine here a side channel created by the X11 window system's translation of keyboard codes to printable character strings. We present an attack method involving timing the translation of keyboard input to printable strings. Finally, we investigate ways in which an unprivileged process can be used to guess passwords via brute force or dictionary, without having subverted the system in any way.