O-Key
Questo tipo di chiavetta è utilizzata nel banking online. Ad ogni cliente viene consegnato un generatore di codici personale, questa chiavetta produce un codice numerico diverso ogni volta che viene premuto il pulsante presente su di esso. Nel caso della chiavetta dell’istituto Intesa San Paolo il codice viene visualizzato sul display per circa sedici secondi.
Ad ogni accesso quindi l’utente utilizzerà un codice generato dinamicamente, sempre diverso, da abbinare al proprio codice cliente e pin di accesso al servizio.
L’oggetto concreto
Sulla chiavetta c’è una chiave pubblica detta seed. Sul server di autenticazione c’è un’altra, privata, assegnata all'account dell'utente al momento in cui si sottoscrive il contratto. Sulle chiavette, alla pressione del pulsante, viene generato un nuovo numero. Il risultato ottenuto si chiama token, ed è quello visualizzato. Utilizzando il token per autenticarci, il server remoto lo decodifica usando la sua chiave privata. Poi confronta il risultato con il suo date-time. In questo modo riesce a verificare la correttezza di un token.
Le chiavette implementano un algoritmo detto RSA, dal nome degli inventori Rivest, Shamir, Adleman. Per comprenderne il funzionamento ci si può avvalere di un semplice esempio: A deve mandare a B un documento segreto contenuto in una valigetta senza che C possa scoprirne il contenuto.
A inserisce il documento nella valigetta, la chiude col suo lucchetto e la spedisce a B; C non è in grado di scoprirne il contenuto, ma neanche B.
B aggiunge il suo lucchetto alla valigetta e la rispedisce ad A; C non può accedere al contenuto.
A toglie il suo lucchetto e rispedisce la valigetta a B; C continua a non poterla aprire.
B apre la valigetta e finalmente può leggere il documento.
In realtà il processo si avvale di una crittografia numerica.
B sceglie due numeri primi p e q molto grandi (per esempio di 300 cifre) e li moltiplica ottenendo N, quindi calcola φ(N) = (p-1) (q-1) e sceglie un altro numero e = primo numero tale che MCD (e, φ(N)) = 1, infine invia i numeri che ha ottenuto ad A; chiunque può vedere questo numero (chiave pubblica: e, N).
A usa questi numeri per cifrare il messaggio M mediante la formula C=Me mod N e manda il messaggio cifrato a B, chiunque può vederlo, ma non decifrarlo.
B riceve il messaggio e calcola il numero d tale che e*d mod φ = 1 (chiave privata: d, N) e decifra il messaggio mediante la formula M=Cd mod N.
L’oggetto virtuale
http://www.crittologia.eu/critto/rsa/rsa_demo.phtml
Biblio/sitografia
Singh S., Codici & segreti, RCS, 1999, pagg. 378-380
Impedovo M., Aritmetica e crittografia: l’algoritmo RSA, ALICE 2006 n° 21