Keytap2 - acoustic keyboard eavesdropping based on language n-gram frequencies

This is a proof-of-concept of an attack for recovering the contents of an unknown text just by analyzing the audio from the keyboard strokes.
No prior training is required.

Assumptions and requirements:
  • The text is in English
  • At least 100 characters of meaningful text are typed
  • Only letters ("a" - "z") and the "Space" keys are pressed (i.e. no Backspace, Shift, numbers, etc.)
  • Noisy mechanical keyboard
  • Microphone in the nearby vicinity of the keyboard

To run this program in the browser you will need support for pthreads with WebAssembly (i.e. Chrome or Firefox Nightly).
To enable WebAssembly pthreads and SharedArrayBuffer support, check this page.

Press the "Init" button to start:
View on GitHub