PDA

Visualizza la versione completa : Algoritmo cifratura O-key Intesa - San Paolo


MrX87
25-12-2009, 19:39
Ciao a tutti, volevo sapere di più sulla chiavetta O-key usata dalla Intesa - San Paolo; viene data agli intestatari di conti correnti per accedere ai loro conti da internet, e fornisce una serie di 6 cifre che cambiano dopo qualche secondo che si ripreme il tasto per generare il codice! per maggiori informazioni sulla chiavetta vi mando su questo sito
http://www.appuntidigitali.it/1459/o-key-password-dinamiche-per-contrastare-il-phishing/

Alex'87
25-12-2009, 19:49
Cosa vorresti sapere? :spy:

MrX87
25-12-2009, 20:28
Era per sapere per sommi capi il funzionamento, tipo l'algoritmo usato per generare i codici, ovviamente non voglio sapere i dettagli perchè sarà un algoritmo blindato! oppure sapere come fanno a essere sincronizzati pc e chiavetta...dovrebbe significare che nel momeno che si inserisce il codice della chiavetta, il server che riceve il codice ha "installato" l'algoritmo simile a quello della chiavetta per poter stabilire se i codice è valido o meno...giusto il ragionamento??

XWolverineX
25-12-2009, 22:43
Semplicemente l'O-KEY ha un suo algoritmo interno che, in funzione di vari parametri (anche l'orario o persino la temperatura ambientale) generano un codice con un finale di riconoscimento.

Il server, ovviamente, sa riconoscere in modo opportuno se il codice generato è valido o meno.
Per la durata, bhè mettiamo caso che



f(15:30) = 598654


Il server da tale codice riesce a capire che è stato generato alle 15:30..quindi se è passato troppo tempo, timeout, non lo accettiamo.

MItaly
25-12-2009, 22:59
Però un normale orologio al quarzo non credo che disponga della precisione necessaria... probabilmente o contiene un quarzo particolarmente preciso oppure mantiene l'ora aggiornata tramite il solito radiofaro di Francoforte.

Difficile poi credere che nel codice ci finiscano dati ambientali... per la verifica di correttezza i dati utilizzati per il codice devono essere presenti sia sul server che sulla chiavetta, per cui probabilmente si tratterà di ora e identificativo cliente.

MrX87
25-12-2009, 23:37
Difficile poi credere che nel codice ci finiscano dati ambientali... per la verifica di correttezza i dati utilizzati per il codice devono essere presenti sia sul server che sulla chiavetta, per cui probabilmente si tratterà di ora e identificativo cliente.

quoto pienamente le parole di Mitaly....è molto difficile che ci siano parametri che riguardano la temperatura, altrimenti l'algoritmo presente sul server non funziona!!

Per il resto, mi sembra molto simile il discorso delle funzioni di hash, in fin dei conti, l'algoritmo della chiavetta altro non fa che associare a una chiave ( in questo esempio l'ora---vedi f(15:30) = "codice" ) ad un codice. il dubio che mi sorge è che quando ho studiato queste cose, avevo letto che ci sono alcune funzioni di hash che data una chiave è possibile fare un procedimento diciamo di criptaggio, ma non è possibile fare il procedimento inverso, ovvero dal codice trovare la chiave, e se si riesce è moolto complesso!
Spero di ricordare bene queste cose...se c'è qualcuno che ne sa qualcosa in più ne sono grato...
ciao

aleritty
26-12-2009, 00:08
Io sapevo che la chiave generava il codice a partire dall'orario (precisione al minuto, non al secondo quindi non importa il quarzo...) e che il server visto l'account richiedente va a pescare che algoritmo usa quella "chiave", guarda l'orario e genera (in teoria) lo stesso codice, se corrisponde si accede, sennò nisba!

A quanto pare tempo fa era saltato fuori che alcune banche usavano lo stesso algoritmo per vari account rendendo la cosa molto meno affidabile.

bubi1
26-12-2009, 11:10
Ho letto certe bo**te in questo thread, e non potevo non intervenire :D

La O-key, la chiavetta della Unicredit, le chiavette della maggiorparte delle banche, implementato tutte lo stesso algoritmo: rsa. Che e' un algoritmo asimmetrico, cioe basato su una copia di chiavi privata/pubblica.

Oggi sul mercato, ci sono principalmente 3 tipi di chiavette:
1. Quella sviluppata dalla RSA Security che fa parte della EMC2, e viene chiamata RSA SecurID, e si stima occupi ~70% del mercato dell'autenticazione a due fattori. In Italia viene usata ad esempio dalla Unicredit.
2. Quella sviluppata dalla Vasco, chiamata Digipass. In Italia viene usata ad esempio dalla Intesa San Paolo.
3. Altri sconosciuti alla scienza :spy:

Il funzionamente di base non cambia, si tratta sempre dell'algoritmo rsa.

Il tutto funziona cosi: Sulla chiavetta c'e' una chiave (seed), detta pubblica. Sul server di autenticazione c'e' un altra, privata, assegnata all'account dell'utente.
Sulle chiavette, ogni 15, 30, 60 secondi (e altre variazioni, puo cambiare di banca in banca), o alla pressione del pulsante, viene generato un nuovo numero. Naturalmente si tratta del datetime corrente crittato con la chiave pubblica. Il risultato ottenuto si chiama token, ed e' quello che vediamo sul display della chiavetta. Se usiamo il token che vediamo per autenticarci, il server remoto, lo decodifica usando la sua chiave privata. Poi confronta il risultato con il suo datetime, tenendo anche contro dell'intervallo di cui sopra. In questo modo riesce a verificare la correttezza di un token.

Per quanto riguarda la sincronizzazione delle ore: Il server ovviamente sara' sempre sincronizzato con l'orologio atomico. Sulla chiavetta e' probabile che sia stato usato un meccanismo abbastanza affidabile che non si desincronizzi troppo durante i 3 anni della durata della chiavetta. Poi, se va avanti/rimane indietro di qualche secondo, non importa. Come dicevo sopra, la chiave viene generata non sul datetime comprendente il secondo corrente, ma sull'intervallo corrente. Spesso molti server mantengono la validita' di un token anche un paio di secondi dopo la scandeza.

Il fatto che le banche usino la stessa chiave publica/privata per diversi account (e non l'algoritmo, quello ovviamente e' sempre unico, quello adottato dalla banca) e' una leggenda metropolitana. La copia delle chiavi viene generata non solo in base ai dati del cliente, ma anche ad altre chiavi, progressivi etc, per garantire l'univocita'.

MItaly
26-12-2009, 16:08
Originariamente inviato da bubi1
Ho letto certe bo**te in questo thread, e non potevo non intervenire :D

Be', comunque alla fine andando a logica non eravamo andati troppo fuori strada... :stordita:

aleritty
26-12-2009, 16:17
Hai ragione, ho usato a sproposito il termine algoritmo mentre intendevo quello che tu chiami seed (e che io chiamo chiave normalmente, non so in questo ambito)!

In ogni caso il fatto che ci siano seed condivisi tra più account non è una leggenda metropolitana a quanto pare visto che ne sono state ritirate parecchie di chiavette...

Loading