Ge.Co. È l’acronimo di “Generatore di Codici”. Si tratta di un aggeggio elettronico, simile ad un telecomando per la porta del garage e dotato di un piccolo display a LCD. Su quel piccolo display a LCD viene visualizzata una “password” numeri casuali di sei cifre che cambia ogni 30 secondi.
Per accedere ai servizi di home banking della tua banca è necessario digitare username e password (tradizionale) e questo codice (che ovviamente è sincronizzato con un analogo aggeggio che si trova sul server).
In pratica, se anche qualche furbacchione riuscisse ad entrare in possesso delle tue credenziali di accesso al tuo sistema di home banking, dovrebbe comunque riuscire a calcolare questa password in modo che sia quella giusta per il momento esatto in cui tenta l’accesso. Si tratta chiaramente di qualcosa di quasi impossibile da realizzare.
Più esattamente, la teoria (ed anche la pratica) della crittografia ci dice che violare un sistema protetto da password “usa e getta” di questo tipo è effettivamente impossibile, non importa cosa si inventi chi cerca di violarla. L’unico modo di riuscire ad entrare nel sistema è quello di impossessarsi del Ge.Co.
Questi sistemi si chiamano
“One-Time Pad” o “One-Time Password” e sono caratterizzati dal fatto che la password non viene mai riutilizzata. Di conseguenza, il malintenzionato non ha nessuna informazione “storica” su cui basarsi per “calcolare” la nuova password e deve tirare ad indovinare. Già con 6 cifre decimali, riuscire ad indovinare la password vuol dire indovinare un numero tra un milione.
L’allineamento tra i due dispositivi è garantito solo dai loro due orologi interni. Con i normali orologetti Casio che si trovano nei sacchetti delle patatine (basati su Z80 e Intel 4004) è possibile mantenere allineati i due orologi, all’interno dei 30 secondi di tolleranza, per diversi milioni di anni.
Nei sistemi migliori non c’è un “algoritmo” per generare i numeri. Sono sequenze casuali di numeri altrettanto causali (generati da una piastra CCD e da un programma) ed immagazzinati nei due dispositivi (con lo stesso ordine). Viene semplicemente scandita l’intera sequenza (ordinata) un valore alla volta. Con sequenze come quelle citate, bastano pochi Kb di memoria (ROM) per immagazzinarle.
