Mouse Movement System


This research is concerned with authentication of a remote user. As online classes gain a larger share of the educational market, it becomes necessary to verify that the person taking a test is actually the student enrolled in the class. Research has already shown that keystroke biometrics can aid in identification of an individual. Unfortunately, most online tests are multiple choice or true/false. These tests typically require little typing, because the user is selecting answers by moving to and clicking on a screen location. By tracking the movement of the mouse through different arcs it should be possible to verify or identify individuals, at least to some extent. The comparison would be made against an existing profile, just as has been successfully done with keystrokes. Additionally, mouse movement biometrics could be used to enhance or augment keystroke biometrics.

Two related technical papers: Identification Using Mouse Forces and User Re-Authentication via Mouse Movements. The second paper appears more relevant.


The components of the system should be similar to those of an earlier keystroke biometric system, see the Keystroke Biometric System on the Projects page at CS616-Spring2006. The first component captures mouse trajectories as the user moves the mouse, the second is a database on a server that stores the information collected, and the third transmits the data collected by the client program to the server.

Client Program

Initial literature investigation indicates 40 samples a second can be taken without impacting performance. This would involve a timer taking X/Y coordinates at preset intervals after a movement event is detected. Other mouse activities such as clicking and double clicking should be captured as well. Data capture will be turned off after mouse movement ceased. There will be a need for an install program or way to download the client program. Data collected should also include a timestamp and unique client identifier. This Java program is available to capture mouse trajectories.

Server Database

The database will need to store profiles that have been created and new data used for authentication. The profiles should be kept separate from the data used for authentication. The DBMS should be compatible to the existing keystroke biometrics database, but not a copy of it.

Data Transfer Agent

We may be able to convert the Java program that captures the mouse trajectory data into a Java applet, in which case the transfer program is part of the client program. Otherwise, we will need an independent program with the following properties:
  1. act asynchronously since data may not be available for transmission at all times
  2. reside on the client side and must be aware of disconnection from the server
  3. attempt retransmission if data transfer is not complete
For simplicity we will initially attempt to develop a Java applet.