# Keylogger

Un keylogger, in informatica, è uno strumento hardware o software in grado di effettuare la registrazione (logging) della tastiera di un computer, cioè è in grado di intercettare e catturare segretamente tutto ciò che viene digitato sulla tastiera senza che l'utente se ne accorga. Può essere usato per studiare l’interazione uomo-computer. L'attività viene definita keystroke logging, keylogging o keyboard capturing.

## Storia

Negli anni 1970, delle spie installarono dei primi modelli keylogger nell'ambasciata USA e al consolato di Mosca e San Pietroburgo, all'interno di macchine per scrivere Selectric II e Selectric III. Una prima versione di keylogger è stata scritta da Perry Kivolowitz e pubblicata sui newsgroup Usenet net.unix-wizards e net.sources il 17 novembre 1983.
Le ambasciate sovietiche usavano macchine per scrivere manuali, al posto delle elettriche, per le informazioni classificate, in quanto apparentemente immuni a questi attacchi. Al 2013, i servizi speciali russi utilizzano ancora macchine da scrivere.
Nel 2000, l'FBI utilizzò FlashCrest iSpy per ottenere la passphrase PGP del figlio del malavitoso Nicodemo Scarfo. Sempre nel 2000, l'FBI attirò due sospetti criminali informatici negli USA con un elaborato stratagemma, riuscendo a catturare i loro username e password con un keylogger installato segretamente su una macchina che essi utilizzavano per accedere ai loro computer in Russia. L'FBI utilizzò queste credenziali per violare i computer dei sospettati e ottenere le prove per perseguirli.
Nel 2011 sono stati trovati alcuni keylogger USB sul retro dei pc di due biblioteche britanniche della contea del Cheshire. Nell'ottobre del 2014 alcuni tecnici dell'Università di Birmingham, mentre eseguivano delle procedure di aggiornamento di un computer in un auditorium, hanno scoperto che uno studente aveva utilizzato un keylogger per rubare le password degli amministratori. Le indagini hanno portato a rintracciare il colpevole, che ne aveva approfittato per alzare i voti di cinque esami. Si ritiene sia il primo caso in cui uno studente inglese viene imprigionato per una truffa di questo genere.

## Descrizione generale

La scrittura di applicazioni software semplici per il keylogging può essere banale e, come qualsiasi altro programma informatico, può essere distribuito come un trojan o come parte di un virus. Ciò che non è banale per un utente malintenzionato, tuttavia, è installare un logger segreto di tastiera senza essere catturato e scaricare i dati registrati senza essere tracciati. Un attaccante che si connette manualmente a una macchina host per scaricare le battute registrate rischia di essere rintracciato. Un trojan che invia i dati keylogged a un indirizzo e-mail o un indirizzo IP fissi rischia di esporre l'attaccante.
Spesso i keylogger software sono trasportati e installati nel computer da worm o trojan ricevuti tramite Internet e hanno in genere lo scopo di intercettare password e numeri di carte di credito e inviarle tramite posta elettronica al creatore degli stessi. Un programma di keylogging può inserirsi fra il browser ed il World Wide Web. In questo caso intercetta le password, comunque vengano inserite nel proprio PC. La password viene catturata indipendentemente dalla periferica di input (tastiera, mouse, microfono): sia che l'utente la digiti da tastiera, sia che l'abbia salvata in un file di testo prima di collegarsi a Internet, che si limiti a inserirla con un copia/incolla in modo da evitarne la digitazione, sia che la password venga inserita tramite un programma di dettatura vocale. Anche in caso di connessione sicura (cifrata), se sul computer è presente un keylogger che invia le password in remoto, tali password potranno essere utilizzate dalla persona che le riceve.

## Tipologia

Esistono due tipi di keylogger:
* Hardware: un dispositivo che viene collegato al cavo di comunicazione tra la tastiera ed il computer o all'interno della tastiera.
* Software: un programma che controlla e salva la sequenza di tasti che viene digitata da un utente su un computer.

### Keylogger hardware

Il classico keylogger hardware consiste in un dispositivo elettronico da collegare sul cavo di comunicazione tra la tastiera ed il computer o è posizionato direttamente all'interno della tastiera stessa. Il dispositivo contiene un circuito elettronico che rileva la sequenza di segnali corrispondenti ai pulsanti utilizzati sulla tastiera e la memorizza nella memoria interna. Alcuni possono inviare i dati in rete o essere monitorati e comandati in remoto, in alternativa il dispositivo può essere recuperato fisicamente o i dati possono essere copiati accedendo alla memoria tramite una sequenza chiave segreta.
I keylogger hardware sono molto efficaci in quanto la loro installazione è molto semplice e il sistema non è in grado di accorgersi della loro presenza, infatti non c'è necessità di alcun software installato sul sistema operativo del computer da monitorare, di conseguenza il dispositivo risulta invisibile ai software antivirus. Quando installati fra la tastiera e il PC hanno le sembianze di un adattatore o appaiono come dei cavi di prolunga. Quando sono nascosti nella tastiera risultano del tutto invisibili.
Una importante misura di sicurezza è infatti utilizzare con cautela i computer pubblici di ambienti come biblioteche o internet point, considerarli inaffidabili ed evitare di inserire credenziali e password, in quanto non si ha il controllo completo della macchina.
Il vantaggio dei keylogger hardware risiede nel fatto che sono completamente indipendenti dal sistema operativo e sono in grado di intercettare anche le password di bootstrap, la cui digitazione avviene in fase di avvio prima del caricamento del sistema operativo e quindi non può essere rilevata via software.
Lo svantaggio principale al suo utilizzo è che è necessario ottenere l'accesso fisico alla tastiera o al computer. In un ambito aziendale può essere sfruttata la complicità di dipendenti, di esterni o del personale di servizio, che in pochi secondi possono installare dispositivi su postazioni di lavoro non monitorate.
* Firmware malevolo: Un firmware modificato a livello del BIOS del sistema gestisce gli eventi del controller della tastiera e li registra quando vengono processati. Si deve avere necessariamente l'accesso fisico al computer o quantomento un accesso di livello amministratore per poter caricare il firmware modificato nel BIOS, il quale è creato appositamente per la specifica tastiera in uso.
* Sniffing di una tastiera wireless: si sfrutta uno sniffer per intercettare i pacchetti, dei dati trasferiti da una tastiera o un mouse senza fili e il suo ricevitore. Quando la comunicazione tra i dispositivi è criptata, è necessario un attacco per decifrarla o sfruttare eventuali falle di sicurezza per poter accedere ai dati. Una volta che l'attacco ha avuto successo è possibile non solo la lettura delle informazioni ma anche il controllo diretto del computer attraverso l'invio di comandi.
* Tastiera di overlay: Un dispositivo con tastiera di forma adatta può essere posto al di sopra della tastiera degli sportelli automatici ATM per catturare i codici PIN dei clienti; il suo aspetto è tale che il dispositivo si integra visivamente con il resto dello sportello e difficilmente viene notato.
* Keylogger acustico: Sfruttando tecniche di crittoanalisi acustica è possibile distinguere il suono differente che ogni singolo tasto di una tastiera produce quando viene premuto. Non è necessario registrare singolarmente i suoni di una tastiera per l'identificazione; è possibile associare le singole firme acustiche con i relativi caratteri con metodi statistici come l'analisi frequenziale. La ripetività delle firme acustiche e i ritardi tra i diversi rumori dei pulsanti assieme ad altre informazioni di contesto come le caratteristiche della lingua in cui scrive l'utente o il contesto delle comunicazioni rendono possibile l'analisi per mappare i singoli suoni alle lettere. Il numero di dati registrati migliora l'efficacia del riconoscimento, è quindi richiesta la registrazione di una consistente quantità di campioni (almeno un migliaio di digitazioni).
* Emissioni elettromagnetiche: Una comune tastiera, come ogni altro dispositivo elettronico, emette radiazioni elettromagnetiche. È possibile catturare queste emissioni fino alla distanza di 20 metri, senza essere connessi fisicamente ad essa. Nel 2009, alcuni ricercatori svizzeri hanno testato 11 diverse tastiere con interfaccia USB, PS/2 e di computer portatili in una camera semi-anecoica, dimostrando che tutte erano vulnerabili a questo tipo di attacco, principalmente per il costo eccessivo di una schermatura aggiuntiva in fase di costruzione. I ricercatori hanno usato un ricevitore a banda larga per sintonizzarsi alla specifica frequenza di emissione delle tastiere.
* Sorveglianza video: Non è un vero e proprio attacco di keylogging, ma rimane un valido sistema per la cattura di password e codici PIN. Una semplice videocamera ben piazzata, come una di quelle per la sorveglianza di uno sportello automatico, può permettere a un criminale di ottenere PIN o password digitate dall'ignaro utente.
* Uso di prove fisiche: In un tastierino utilizzato per inserire un unico codice di sicurezza, come quello di un allarme casalingo, i pulsanti utilizzati frequentemente avranno un numero di impronte digitali decisamente superiore agli altri. Questo riduce i tentativi necessari per un attacco a forza bruta. Ad esempio: un codice di quattro cifre ha 10.000 possibili permutazioni, ma conoscere le quattro cifre di cui è composto limita a soli 24 (4!, 4 fattoriale) i tentativi necessari per indovinare la sequenza. Tecniche di ingegneria sociale possono aiutare a ridurli ulteriormente (ad esempio scoprendo eventuali significati dei numeri della sequenza).
* Sensori di uno smartphone: Alcuni ricercatori hanno dimostrato che è possibile catturare le vibrazioni delle digitazioni sulla tastiera di un vicino computer utilizzando gli accelerometri di uno smartphone. L'attacco è reso possibile collocando uno smartphone vicino alla tastiera sulla stessa scrivania o tavolo. L'accelerometro può rilevare le vibrazioni create dalla digitazione sulla tastiera e tradurre il segnale grezzo in frasi leggibili con una percentuale di accuratezza dell'80%. La tecnica implica il lavoro sulla probabilità per rilevare coppie di digitazioni piuttosto che digitazione di pulsanti singoli. Modella questi eventi tastiera in coppie e calcola se la coppia di pulsanti premuti è sul lato destro o sinistro della tastiera, se sono vicini o lontani tra loro sullo schema QWERTY. Una volta effettuata l'elaborazione, i risultati sono comparati con un dizionario precaricato in cui ogni parola è stata ottenuta nello stesso modo. Tecniche simili sono state dimostrate efficaci anche per la cattura di digitazioni su tastiere touch screen, mentre in alcuni casi in combinazione con giroscopi.

### Keylogger software

È un software creato appositamente per rilevare e memorizzare la sequenza dei pulsanti che viene digitata sulla tastiera del computer che deve essere monitorato. Questi dati possono anche venire trasmessi in remoto senza la necessità di dover accedere fisicamente al computer. Normalmente l'esecuzione del programma è nascosta.
Vengono utilizzati da aziende informatiche per la risoluzione di problemi tecnici per computer e reti aziendali; anche l'uso a livello familiare o aziendale è legittimo quando vi sono esigenze di monitoraggio dell'uso delle risorse informatiche, senza che gli utenti ne siano a conoscenza. La potenza di questa tipologia di strumenti è sfruttata anche in modo illecito su computer di accesso pubblico per impadronirsi di password o dati sensibili.
Esistono keylogger anche per smartphone e tablet dotati di sistemi operativi come Android o iOS, in grado di monitorare anche la cronologia di navigazione web, i testi inseriti, registri delle chiamate, l'utilizzo delle applicazioni completo di durata temporale, il segnale gps.

## Tecniche di keylogging software

* Hypervisor Un keylogger può teoricamente risiedere in un hypervisor malevolo in esecuzione al di sotto del sistema operativo, che non viene in alcun modo manomesso; diventa a tutti gli effetti una macchina virtuale. Un esempio è il rootkit Blue Pill.
* a livello Kernel Un programma sulla macchina ottiene un accesso root (cioè con privilegi di amministratore) e si nasconde all'interno del sistema operativo, iniziando a intercettare i segnali delle digitazioni sulla tastiera che passano attraverso il kernel. Un keylogger che risiede a livello del kernel è difficilmente rilevabile, specialmente per applicazioni che non hanno diritti di amministratore. Spesso è implementato come un rootkit che sabota il kernel del sistema operativo per ottenere accessi non autorizzati all'hardware del computer. Diventa quindi molto potente, potendo agire come un driver di una tastiera e ottenendo l'accesso a qualsiasi informazione digitata che viene inviata al sistema operativo.
* uso delle API Un keylogger che aggancia le API della tastiera all'interno di una applicazione in esecuzione. Registra quindi gli eventi dalla tastiera come fosse un componente di un'applicazione legittima. Il keylogger riceve un evento ogni volta che l'utente preme o rilascia un tasto, quindi lo può registrare. API Windows come GetAsyncKeyState, GetForegroundWindow e simili sono utilizzate per acquisire in modo attivo lo stato della tastiera o per registrarsi a questi eventi. Può anche essere effettuato il polling dal BIOS dei codici di autenticazione precedenti al boot, non ancora eliminati dalla memoria.
* Form grabbing Un malware che memorizza le informazioni inserite in un form di una pagina web quando vengono inviate tramite submit, tipicamente cliccando su un oggetto button o premendo il tasto Invio. Le informazioni vengono memorizzate prima che siano inviate dal browser. Questo metodo è più efficace di un normale keylogger software perché acquisisce i dati anche se inseriti tramite tastiere virtuali, auto completamento dei form o copia e incolla, ma è limitato all'uso su un browser.
* Memory injection Questo tipo di keylogger è di tipo Man-in-the-Browser, sfrutta quindi le vulnerabilità di un browser web. Le tabelle di memoria associate con il browser e altre funzioni di sistema sono modificate tramite injection direttamente in memoria o mediante patch, in modo da bypassare i sistemi di controllo utente (Windows UAC o analoghi di altri sistemi). Trojan come Zeus o Spyeye utilizzano questo metodo. I sistemi non-Windows dispongono di meccanismi di protezione analoghi che il keylogger deve compromettere. 7 con una funzionalità aggiunta che consente l'accesso a dati registrati localmente da una postazione remota. La comunicazione remota può essere raggiunta quando si utilizza uno di questi metodi: i dati vengono caricati in un sito web, in un database o in un server FTP. I dati vengono periodicamente inviati via email a un indirizzo email pre-definito. I dati vengono trasmessi in modalità wireless tramite un sistema hardware collegato. Il software consente un accesso remoto alla macchina locale da Internet o dalla rete locale, per i registri dati memorizzati sulla macchina di destinazione
* Sniffing di rete Catturare i pacchetti in transito in una rete permette di recuperare eventuali password in chiaro inviate con POST. Fortunatamente l'uso di connessioni HTTPS esclude il problema.
* Basato su Javascript: Un tag di script dannoso viene iniettato in una pagina web mirata e ascolta gli eventi chiave come onKeyUp. Gli script possono essere iniettati tramite una varieta’ di metodi tra cui scripting cross-site,man-in-the-browser, man-in-the-middle.
* Keylogger con accesso remoto: Software keylogger con la funzionalità di poter inviare a una location remota i dati memorizzati localmente. Possono essere sfruttati vari metodi per la comunicazione: upload verso un sito, una base di dati o un server FTP; invio periodico di posta elettronica verso un indirizzo predefinito; trasmissione wifi da un sistema già compromesso; login remoto alla macchina locale da internet o dalla rete locale per recuperare i dati.
* Registrazione di tasti in scrittura per la ricerca di processo: La registrazione di tasti è ora un metodo di ricerca consolidato per lo studio dei processi di scrittura. Sono stati sviluppati diversi programmi per raccogliere i dati di processo online delle attività di scrittura, tra cui Inputlog, Scriptlog e Translog. La registrazione di tasti è legittimamente utilizzata come strumento di ricerca appropriato in un certo numero di contesti di scrittura. Questi includono studi sui processi di scrittura cognitiva, come: descrizioni delle strategie di scrittura, lo sviluppo della scrittura dei bambini (con e senza problemi di scrittura), ortografia, prima e seconda lingua e competenze specialistiche quali la traduzione e il sottotitolo. La registrazione di tasti può essere utilizzata per la ricerca di scrittura, in particolare può anche essere integrato nei settori educativi per l'apprendimento secondario delle lingue, per le abilità di programmazione e per le abilità di digitazione.
* Caratteristiche correlate: I keylogger di software possono essere aumentati con funzionalità che catturano le informazioni utente senza affidarsi alle prese di tasti da tastiera come unico input. Alcune di queste caratteristiche includono: Registrazione di appunti. Tutto ciò che è stato copiato negli appunti può essere catturato dal programma.
* Registrazione dello schermo: Le schermate sono state prese per catturare informazioni basate su grafica. Le applicazioni con abilità di registrazione dello schermo possono assumere screenshot di tutto lo schermo, di una sola applicazione o addirittura appena intorno al cursore del mouse. Possono prendere questi screenshot periodicamente o in risposta ai comportamenti dell'utente (ad esempio quando un utente fa clic sul mouse). Un'applicazione pratica che viene utilizzata da alcuni keylogger con questa abilità di registrazione dello schermo, è quella di prendere piccoli screenshot intorno a dove un mouse ha appena cliccato; sconfiggendo così le tastiere basate sul web (ad esempio, le tastiere a schermo basate sul web spesso utilizzate dalle banche) e qualsiasi tastiera sullo schermo a schermo intero senza protezione da schermate. Programmaticamente cattura il testo in un controllo. L'API di Microsoft Windows consente ai programmi di richiedere il testo "valore" in alcuni controlli. Ciò significa che alcune password possono essere catturate, anche se sono nascoste dietro le maschere di password (di solito asterischi). La registrazione di ogni programma / cartella / finestra aperta includeva uno screenshot di ogni sito web visitato, la registrazione di query di motori di ricerca, conversazioni di messaggistica istantanea, scaricamento FTP e altre attività basate su Internet (inclusa la larghezza di banda utilizzata).Un esempio di keylogger di uno screen capture, che contiene informazioni potenzialmente riservate e private. L'immagine in basso contiene il risultato del testo corrispondente di keylogger.
* Trojan: I ricercatori hanno elaborato diversi metodi per risolvere questo problema. Essi hanno presentato un attacco di password in cui il trojan di registrazione di tasti è installato usando un virus o un worm. Il cryptotrojan crittografa asimmetricamente le coppie di login / password combinate usando la chiave pubblica dell'autore del trojan e trasmette in modo segreto il testo ciphertext risultante. Il testo cifrato può essere codificato stenograficamente e inviato ad un bollettino pubblico come Usenet.

## Applicazioni ed utilizzo

Possono essere utilizzati per vari scopi: ad esempio anche da un datore di lavoro per controllare l’uso dei loro computer da parte dei propri dipendenti, oppure per attività di spionaggio o di investigazione, anche da privati, sebbene ciò implichi il rispetto della normativa a tutela della privacy. Esistono numerosi metodi keylogging: variano da approcci hardware e software all’analisi acustica.

### KeySweeper

Nel 2015 il ricercatore di sicurezza informatica Samy Kamkar ha sviluppato KeySweeper, un dispositivo basato su Arduino che appare e funziona a tutti gli effetti come un caricatore USB di uno smartphone, ma di nascosto registra, decripta e memorizza i dati digitati sulle tastiere wireless Microsoft. Il dispositivo è dotato di una batteria ricaricabile, quindi rimane attivo anche in caso non sia stato inserito in una presa elettrica. Il progetto include anche un tool web-based per il monitoraggio in tempo reale delle digitazioni, capace di inviare avvisi tramite SMS per digitazioni particolari come nomi utente o indirizzi URL.
Gli schemi per la costruzione dell'hardware e l'intero software del dispositivo sono a disposizione online, completi di spiegazioni approfondite; di conseguenza nell'aprile del 2016 l'FBI ha emanato un comunicato alle aziende private, per avvisare del pericolo di questi keylogger decisamente insospettabili in quanto appaiono come innocui oggetti di uso comune. Nel documento sono incluse informazioni tecniche e strategie per difendersi, come ad esempio l'uso di tastiere cablate per le postazioni di lavoro sensibili o di moderni modelli dotati di crittografia AES (Advanced Encryption Standard), molto più resistenti ai tentativi di decriptazione.

### Nelle distribuzioni GNU/Linux

Nel sistema Linux è possibile installare vari programmi di questo tipo, presenti in uno o più repository. Ad esempio nelle distribuzioni Debian e derivate aprendo un emulatore di terminale si può installare utilizzando il comando apt in modalità root:
apt install logkeys

## Contromisure

Come ogni altro problema di sicurezza informatica, la prima e la più efficace difesa contro un keylogger, sia hardware o software, è l'uso consapevole del computer da parte dell'utente.
La comodità di utilizzare un computer non conosciuto per effettuare operazioni delicate può permettere a un malintenzionato di carpire informazioni, tramite keylogger o anche con numerose altre tecniche di sniffing; è quindi buona norma eseguire tali operazioni dal proprio computer o da un computer fidato, la cui sicurezza sia comprovata. Nel caso del keylogging in Windows 10 della Microsoft, basta modificare alcune impostazioni relative alla privacy nel computer.
Esistono diverse possibili contromisure a seconda della diversa natura della tipologia di keylogging da combattere, di conseguenza la loro efficacia può variare sensibilmente.
* Antispyware Un antikeylogger è un software di protezione specificamente creato per rilevare keylogger software su un computer. Spesso è anche in grado di cancellare o bloccare l'esecuzione del programma spia. Questo tipo di software di sicurezza effettua una verifica più stringente di un comune antivirus o antispyware, che invece potrebbe non rilevare o addirittura trascurare alcuni keylogger quando sono parte di software legittimi; esso però non fa distinzione tra keylogger legittimi e malware, tutti vengono identificati e rimossi quando possibile. La scansione può essere una ricerca di eventuali programmi presenti nella lista delle firme, semplice ed efficace per rilevare malware conosciuti ma pressoché inutile in caso di versioni modificate degli stessi. Un'alternativa valida può essere un'analisi euristica che verifica come i singoli processi lavorano in un computer o che ricerchi alcuni schemi ricorrenti nel codice in esecuzione, bloccando quelli che si comportano come keylogger. Questo sistema è potenzialmente più sicuro e può scoprire versioni poco diffuse di malware, ma c'è il rischio di ottenere dei falsi positivi e bloccare funzionalità di programmi che non hanno intenti malevoli, rendendone difficile l'utilizzo da parte di un utente poco esperto. In ogni caso, l'efficacia di una applicazione di sicurezza dipende dal livello di privilegi di cui è in possesso sulla macchina: può rilevare keylogger con diritti più scarsi ma non potrà farlo con quelli che lavorano a un livello superiore. Come già precedentemente specificato, nessuno dei software di protezione può rilevare o intervenire in caso di keylogger hardware.
* Live CD/USB Riavviare un computer utilizzando un Live CD o un drive USB protetto in scrittura è una valida contromisura ai keylogger software, sempre che il media live sia verificato come sicuro e che il sistema operativo che contiene sia aggiornato e protetto in modo da essere inattaccabile una volta caricato. La soluzione non è efficace in caso di keylogger hardware o caricati nel BIOS.
* Monitor di Rete Conosciuto anche come Reverse-firewall, può essere usato per avvertire l'utente quando un'applicazione tenta di connettersi alla rete, per non permettere al sospetto keylogger di "chiamare casa" per trasmettere le informazioni recuperate sul computer.
* Programmi di riempimento automatico (Filler) Possono prevenire l'azione del keylogger in quanto l'utente non deve digitare interamente password o altri dati sensibili sulla tastiera. Sono spesso utilizzati nei browser web per il riempimento dei dati nelle pagine di acquisto o in quelle di autenticazione. Una volta che i dati sugli account o le informazioni sensibili sono state inserite nel programma di riempimento, esso completerà i form senza altro intervento sulla tastiera o l'uso degli appunti (clipboard) del sistema operativo. In questo modo le possibilità di registrazione dei dati privati vengono sensibilmente ridotte. L'accesso fisico alla macchina rimane un problema di sicurezza; possono poi venire installati software in grado di intercettare le informazioni mentre sono presenti nel sistema operativo o mentre transitano sulla rete. In quest'ultimo caso TLS (Transport Layer Security) può ridurre il rischio di intercettazione di sniffer e proxy malevoli.
* Password monouso (one-time password, OTP) L'uso di una password monouso può vanificare l'uso di un keylogger, in quanto quella stringa chiave verrà immediatamente invalidata dopo essere stata utilizzata. Un esempio sono i codici di verifica di backup rilasciati agli utenti Google che hanno attivato l'autenticazione a due fattori. È una soluzione molto utile per i casi in cui si debba utilizzare un computer pubblico; rimane il rischio che un attaccante che abbia il controllo remoto su un computer possa attendere che la vittima inserisca le credenziali prima di effettuare transazioni non autorizzate a suo nome mentre la sessione autenticata è attiva.
* Token di sicurezza L'uso di smart card o altri token può migliorare la sicurezza contro attacchi ripetuti sfruttando un attacco di keylogging riuscito. Nonostante la password o passphrase sia stata scoperta, l'accesso alle informazioni protette viene permesso solo conoscendo anche i codici generati dal token, anche se si è a conoscenza delle digitazioni, delle azioni del mouse, degli appunti del sistema operativo e così via. Alcuni token di sicurezza funzionano come generatori di password monouso hardware, altri implementano una autenticazione crittografata di tipo Challenge–response, che aumenta la sicurezza in modo simile a una password monouso. Lettori di smartcard e le loro tastiere per l'inserimento dei codici PIN possono essere vulnerabili al keylogging attraverso attacco supply chain, in cui un attaccante sostituisce il lettore hardware con uno che registra il PIN dell'utente.
* Tastiera USB alternativa Una tastiera con interfaccia USB, magari di dimensioni compatte e di proprietà dell'utente, può essere un pratico accorgimento per eliminare il rischio di un keylogger hardware sul computer. La tecnologia plug and play è ormai diffusa su ogni computer e permette in pochi secondi di avere un secondo dispositivo di input fidato in tempi rapidissimi. Su un computer pubblico una tastiera USB costruita in silicone trasparente permette di verificare la presenza di un keylogger interno che risulterebbe immediatamente visibile, e può essere collegata velocemente al bisogno su qualsiasi computer per il tempo necessario all'inserimento di dati sensibili e password.
* Tastiera su Schermo Le tastiere su schermo vengono messe a disposizione da tutte le distribuzioni Linux, Mac OS/Mac OS X, Windows XP e successivi tra le risorse per l'accesso facilitato, o distribuite anche da alcuni antivirus come Kaspersky. Esse inviano normali messaggi di eventi tastiera ai programmi per produrre testo. Alcuni keylogger possono però registrare questi messaggi in transito tra un programma e un altro, oppure possono effettuare screenshot di quanto è visualizzato sullo schermo, periodicamente o in risposta a certi eventi come click del mouse. Per contro non si ha un vero trasferimento di dati dalla tastiera fisica, quindi un keylogger hardware non è più efficace.
* Software di interferenza È uno strumento che tenta di ingannare i keylogger introducendo digitazioni casuali in modo da sporcare di dati fasulli le informazioni registrate. In pratica questo comporta al programma spia di memorizzare più informazioni di quelle necessarie, che dovranno poi essere filtrate per estrarne quelle di interesse. L'efficacia di questo strumento, specialmente nei casi in cui è mischiata alla criptoanalisi, non è chiara.
* Riconoscimento vocale Simile al caso della tastiera su schermo, la conversione software dal parlato può essere usata per vanificare l'azione di un keylogger, almeno fino a quando non si hanno digitazioni o azioni del mouse. Il punto debole di questa tecnologia può essere la tecnica con cui il software invia il testo riconosciuto al programma di elaborazione del testo.
* Riconoscimento calligrafico e gesture del mouse Molti smartphone, tablet e PDA possono convertire i movimenti del pennino o del dito sul loro touch screen per acquisire testo comprensibile. Le gesture dei mouse sfruttano lo stesso principio convertendo i movimenti del puntatore in azioni definite o in testo. Allo stesso modo le tavolette grafiche, che aggiungono la possibilità di rilevare diversi livelli di pressione, o le penne ottiche. Tutti questi dispositivi soffrono della stessa vulnerabilità, legata alla tecnica con cui il software di acquisizione invia il testo riconosciuto al programma che lo dovrà utilizzare.
* Espansore/registratore di Macro Con l'aiuto di numerosi programmi, è possibile espandere un insieme di caratteri apparentemente casuale in un testo di senso compiuto e sensibile al contesto. La principale debolezza di questa tecnica è che questi programmi inviano le proprie digitazioni direttamente al programma destinatario. In ogni caso è sufficiente utilizzare tecniche alternative come inviare click del mouse su aree non responsive del programma destinatario, inviare caratteri senza senso, cliccare con il mouse su un'area target (come un campo password) e spostarsi avanti e indietro.
* Metodi non tecnologici Alternare la digitazione delle credenziali per un login e di caratteri a caso altrove nella finestra attiva può fare registrare al keylogger molte informazioni, anche se possono essere facilmente filtrate successivamente. Un utente può similmente spostare il cursore usando il mouse mentre digita, per fare memorizzare le informazioni in un ordine errato, oppure digitando un frammento iniziale di password con l'ultima lettera e usare il mouse per muovere il cursore per ogni lettera seguente. Un'alternativa può essere sfruttare il menu contestuale per rimuovere, tagliare, copiare e incollare parti del testo digitato senza usare la tastiera. Un attaccante in grado di catturare solo una parte della password può avere uno spazio di possibili chiavi di dimensione inferiore per un attacco di forza bruta. Altre tecniche sfruttano la sostituzione dei caratteri selezionati con il mouse al successivo carattere digitato. Ad esempio, se la password è "chiave", un utente può inserire il primo carattere "c", quindi una sequenza diversa come "defghi"; poi seleziona con il mouse gli ultimi 6 caratteri e inserisce il secondo carattere della password, "h", che ne prenderà il posto. Queste tecniche presumono che un keylogger non sia in grado di monitorare gli appunti del sistema operativo, il testo selezionato in un form, o l'acquisizione di screenshot in caso di eventi pulsante o click del mouse. In caso di keylogger evoluti si rivelano inefficaci.