Skip to content

A customizable authentication system based on keystroke biometrics, with a visualization dashboard.

Notifications You must be signed in to change notification settings

namsnath/KeystrokeDynamics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KeystrokeDynamics

A customisable authentication system based on keystroke biometrics, with a visualisation dashboard.


Screenshots

Screenshot 1 Screenshot 2


Introduction

Keystroke Dynamics or Biometrics is the manner and rhythm in which an individual types characters on a keyboard. These details are used to develop a unique biometric template of the user's typing pattern for future authentication.

How does it work?

  • A basic keystroke logger implemented in keystrokeLogger.js and used in the forms
  • Keystroke timings are recorded and sent to the server along with threshold details
  • Server processes input and checks it against the data in the DB

Keystroke features

  • Hold time (keydown-keyup)
  • Flight time (keyup-keydown)
  • DD time (keydown-keydown)

The detectors

Manhattan (Individual)

  • Uses Manhattan distance between the mean and the input of each feature
  • Allowed range is mean ± multiplier * SD
  • If a certain percentage of input features fall in this range, the attempt is accepted
  • Most effective when dealing with a small amount of data in the DB (<5 attempts) at default thresholds
  • User controls:
    • SD Multiplier
    • Acceptance percentage

Manhattan Filtered (Individual)

  • Same as the Manhattan detector, but with the outliers filtered out
  • Allowed data is in the range mean ± 2.5 * SD
  • Allows for a stricter dataset to compare against. Effective with >5 entries in the database at default thresholds
  • User controls:
    • SD Multiplier
    • Acceptance percentage

Manhattan (Population)

  • Uses Manhattan distance between the mean vector and the input vector
  • Responds to minor deviations in input patterns
  • Default thresholds are very strict
  • Works well a decent amount of data (<10 attempts)
  • User Controls
    • Distance threshold

Manhattan Filtered (Population)

  • Same as the Manhattan detector, but with the outliers filtered out
  • Responds to minor deviations in input patterns
  • Default thresholds are very strict
  • Works well a decent amount of data (<10 attempts)
  • User Controls
    • Distance threshold

Mahalanobis

  • Uses the Mahalanobis distance between the mean and input vectors
  • Quite sensitive to deviations in input patterns
  • Default thresholds are not too strict
  • Can be used in combination with the Manhattan detectors for a precise decision
  • User Controls
    • Distance threshold

Tech Stack

  • Node.JS
  • MongoDB
  • HTML
  • CSS (halfmoon)
  • JS

About

A customizable authentication system based on keystroke biometrics, with a visualization dashboard.

Topics

Resources

Stars

Watchers

Forks