Come preannunciato, vi voglio presentare un progetto che ho messo a punto a Gennaio di quest’anno e che ho poi migliorato nei mesi successivi. Il suo nome è Keyper, nato dall’unione di Key + Keeper; il motivo è semplice: lo scopo del dispositivo è quello di memorizzare le password personali e di digitarle, ad esempio in una casella di testo di una pagina web, quando si preme un tasto.

Keyper_1

Il Keyper è composto da un Arduino Micro e da una scheda dalle stesse dimensioni dell’Arduino. Nel complesso il dispositivo è poco più grande di una pen drive: misura, infatti, 19mm x 18mm x 50mm. La scheda ospita cinque pulsanti, un LED bicolore e un chip di memoria EEPROM. Quest’ultimo memorizza in modo cifrato le password che vengono scritte quando si premono i pulsanti.

Keyper_2

Il Keyper viene visto dal computer come una normale tastiera USB. L’immissione della password, quindi, appare al sistema operativo come un utente che preme dei tasti. Proprio questa caratteristica rende il dispositivo universalmente accettato senza la necessità di utilizzare driver esterni.

Keyper_3

È possibile conservare (almeno per ora) fino a 4 password diverse, dalla lunghezza di massimo 128 caratteri ciascuna. Quando il Keyper viene alimentato deve essere innanzitutto sbloccato: non è possibile digitare una password se prima non è stato immesso un pin di sblocco. Quest’ultimo, infatti, funge da chiave di decifratura della memoria: non conoscendo il pin, non si può risalire alle password memorizzate. Dopo due minuti di inattività il Keyper “dimentica” il pin immesso e quindi blocca nuovamente la periferica, impedendone l’uso da parte di terzi qualora ci si allontanasse dal computer.

Keyper_4

Le password possono essere impostate utilizzando l’interfaccia virtuale seriale dell’Arduino: quando si connette il dispositivo al computer, oltre alla tastiera appare una nuova porta seriale. Utilizzando programmi quali PuTTY, Minicom o anche direttamente l’ambiente di sviluppo di Arduino, è possibile comunicare con il Keyper utilizzando quest’interfaccia seriale. Il menu con le opzioni che possono essere effettuate sono mostrate nell’immagine che segue:

Keyper_5

Windows, purtroppo, è l’unico sistema operativo che richiede l’installazione dei driver per poter riconoscere correttamente l’Arduino come una porta seriale. Tali driver possono essere trovati dentro la cartella d’installazione dell’ambiente di sviluppo scaricabile a questo indirizzo. Ci tengo a precisare, però, che questi non sono necessari per far riconoscere il Keyper come una tastiera; infatti, anche ignorando le richieste di installazione dei driver mancanti, sarà possibile utilizzare il dispositivo per inserire le password, ma non potrà essere aperta la console di gestione del dispositivo, non essendo installata la porta seriale.

I collegamenti elettrici che uniscono l’Arduino ai pulsanti, al LED e alla memoria li ho realizzati a mano su una scheda mille fori a doppia faccia, come si vede da un’immagine precedente, ma possono essere facilmente riprodotti su una basetta sperimentale. La memoria usata è una EEPROM con interfaccia I2C della serie 24AAxxx oppure 24LCxxx di Microchip. Quella presentata in foto fa parte della serie 24LC256 da 256Kbit, ma il Keyper è stato testato anche con altre memorie.