Een echte tweaker wil natuurlijk een mechanisch toetsenbord met blue switches als het even kan, maar wat als juist dat lawaai gevaar oplevert? Een hacker heeft een tool gebouwd om teksten te achterhalen op basis van het geluid van toetsaanslagen. Al is dat gelukkig niet heel praktisch.
De tool heet Keytap2 en is gemaakt door de Bulgaarse hacker Georgi Gerganov. Hij heeft de tool op GitHub gezet. Keytap2 is een tool waarmee het mogelijk is een tekst te achterhalen op basis van het geluid van toetsaanslagen. Gerganov laat in een video zien hoe hij een stuk Engelse tekst kan achterhalen door een audiobestand af te spelen waarin iemand die tekst typt. Ook heeft hij een proof-of-concept-website gemaakt, die wel alleen werkt in browsers die WebAssembly ondersteunen.
Helemaal nieuw is Gerganovs tool niet. De '2' in de naam verklapt al dat het gaat om een verbeterde versie van de tool die hij in 2018 uitbracht. Keytap1 kon ook al een mechanisch toetsenbord afluisteren als daar een microfoon bij in de buurt stond. Maar die tool had een groot nadeel, legt Gerganov uit: het is dan nodig om eerst veel trainingsdata te verzamelen om een algoritme te maken. Dat hoeft nu niet meer, of in ieder geval in mindere mate.
De tool werkt nog steeds grotendeels op basis van de originele Keytap-tool. Daarbij wordt er een opname gemaakt van het geluid van toetsaanslagen. Op basis van die waveform filtert de tool de eerste 75 milliseconden van een toetsaanslag, die volgens Gerganov uniek zijn en dus kunnen worden gemapt. Vervolgens moeten die unieke uitkomsten worden vertaald naar de juiste tekens op het toetsenbord. Dat gebeurt op basis van een algoritme dat Gerganov zelf heeft geschreven.
In zijn oorspronkelijke Keytap-tool was het nodig om eerst veel trainingsdata te verzamelen, door eerst een opname te maken en die te vergelijken met de output-tekst. Dat moest bovendien van het specifieke toetsenbord zijn dat iemand gebruikt. Dat maakte de tool niet erg praktisch in gebruik.
De nieuwe versie van de tool hoeft geen specifieke trainingsdata van een 'slachtoffer' te hebben. In plaats daarvan kijkt Keytap2 naar n-grams, een linguïstische methode die de waarschijnlijkheid van lettercombinaties aangeeft. Keytap2 hoeft daarmee alleen getraind te worden op een algemene corpus-tekst. Wel moet de aanvaller dan weten in welke taal er wordt getypt. De proof-of-concept werkt alleen nog met Engelstalige input.
Volgens Gerganov is de tool daarna nog steeds niet helemaal betrouwbaar. "De uitkomst komt niet in de buurt van perfectie. Daar zitten verschillende factoren achter, zoals achtergrondgeluiden en de verschillende manieren waarop een toets wordt aangeslagen", schrijft hij. Daarom moeten toetsaanslagen in groepen worden opgedeeld, waar vervolgens een nieuw algoritme op wordt losgelaten om te berekenen hoe waarschijnlijk het is dat een toetsaanslag juist wordt vertaald.
Gerganov erkent dat de resultaten van de tool desondanks nog steeds kwetsbaar zijn. Het is bijvoorbeeld nog niet mogelijk de aanval te automatiseren, dus heeft de PoC een optie om de uitkomsten handmatig aan te passen. Ook is het nodig een mechanisch toetsenbord te gebruiken en is de tool nog vrij zwaar in het gebruik. Voorlopig kun je dus nog wel lekker wel blijven tikken zonder angst.