Entering Passwords Through Eye Movement
Stu Dennison writes "Ars Technica has a post up on a new service called EyePassword. EyePassword is a system that attempts to mitigate the issues of shoulder-surfing via a novel approach to user input: no hands required. With EyePassword, a user enters their password using an on-screen keyboard that detects the orientation of their pupils. From the article: 'The gaze-tracking system functions by shining an invisible infrared beam on a user's face. The beam produces a tiny reflection in the eyes that stays put, no matter where a person looks (provided they do not move their head too much). By tracking the stable position of this reflection and the relative position of a person's pupils, the system is able to calculate which keys or buttons a user wishes to input, and interpret the information accordingly ... more than 80 percent of those tested preferred the EyePassword method. Additionally, when testing EyePassword input using an input method where users visually "dwell" on the characters they wish to input, error rates were comparable to keyboarding.'"
I hope it can be made quite accurate; I've often thought something like this would massively increase my productivity - I'd love to be able to perform tasks without having to take my hand of the keyboard to use the mouse. If I could look at an area of the screen and just hit a key to left/right click it'd make a lot of my common mouse tasks obsolete.
The problem for the cracker, however, is that they'd have to have two vantage points at once, one watching the eyes, the other watching the virtual keyboard the eyes were focusing on, to get a position reference on it. Otherwise they'd have roughly the same problem as pupil tracking without the reflected spot, no reference fix. Was that movement a single letter, or to the other side of the keyboard, or somewhere in between? Just observing the eyes could certainly significantly cut down the brute force search space, thereby equally weakening the strength of the password, but it'd be anything but a one for one correspondence. (The reason the software doesn't have this problem is because it is aware of the relative position and size of the virtual keyboard onscreen.)
One could even deliberately reposition the virtual keyboard after every number of characters, as well, thus further throwing off third party eye monitors.
What TFA didn't mention, however, even tho it compared with keyloggers, is that presumably this would replace typed input as just another type of input device. As such, one may not even have to modify the keylogger to have access to the character input stream from the eye input device driver, just as it does from the keyboard device driver. A keylogger generally logs the character input stream, not the raw symbol stream, and the character input stream remains the same, no matter what device it's from or how exotic it may be. The only way around that would be a custom vertically integrated application that handles the entire stack monolithically, instead of as components tying into the conventional input stack. That'd be a huge implementation and portability headache, as it would have to be custom developed for each hardware and software combination implementation. Possible, yes, in embedded or limited hardware/software situation such as (say) ATMs, but not generally deployable without running into the conventional keylogger trojan challenges everyone else faces.
Duncan
Duncan
"Every nonfree program has a lord, a master,
and if you use the program, he is your master."
R Stallman