Keystroke Biometric
Keylogger Implementation

According to Wikipedia (January 2011), "Keystroke logging (often called keylogging) is the action of tracking (or logging) the keys struck on a keyboard, typically in a covert manner so that the person using the keyboard is unaware that their actions are being monitored." Parents often install keylogger software on the home computer so they can track what their kids do on the computer and particularly what websites they visit.

Some keylogger software will not only record the sequence of keys struck but also their timing information, that is when a key is struck and when it is released. If this timing information is sufficiently accurate, it can be used for biometric purposes.

Over the last seven or so years we have developed the powerful Pace University Keystroke Biometric System (PKBS). This system was developed for text input applications like online exams requiring, for example, short text answers to questions. This system requires users to key text into a Java applet to produce PKBS input files.

Recently we have gone beyond text input to determine the utility of PKBS for arbitrary types of keyboard input: text, spreadsheet, program execution, etc. Initial work on this problem has been described in a Research Day 2011 paper from the Spring 2011 project and a Technical paper from the Fall 2011 project. These projects used the keylogger developed by Eric Fimbel.


We have had difficulty converting the Fimbel keylogger output into the PKBS input format files, and we don't know how the Fimbel data compares with the Java applet data in terms of biometric performance. Therefore, this semester we will implement our own keylogger software to produce output files appropriate for input to PKBS. Since we have Fimbel's Python code we will likely start there. This programming project is likely the most difficult project this semester, but good performance on this project will yield a high project grade.

Fast Agile XP Deliverables

We will use the agile methodology, particularly Extreme Programming (XP) which involves small releases and fast turnarounds in roughly two-week iterations. Many of these deliverables can be done in parallel by different members or subsets of the team.

The following is the current list of deliverables (ordered by the date initiated, initiated date marked in bold red if programming involved, deliverable modifications marked in red, completion date and related comments marked in green, pseudo-code marked in blue):

  1. 2/1 . Plan the semester's work with customers Vinnie and Ned.