come funziona il generatore di codici?

ciao, la mia banca mi ha fornito di un generatore di codice per accedere alla mia home banking in modo che nessuno mi possa clonare i codici. Ad ogni pressione del tasto questo apparecchietto genera un numero di 6 cifre che abbinato ad altri codici che digito sul sito mi permette l'accesso. Mi spiegate come funziona? ho fatto alcune ipotesi ma non sono certo,sono solo curioso di sapere come fa. ciao

-------------------------------- Inviato via

formatting link

Reply to
harry
Loading thread data ...

Che banca è? La Credem? Hai descritto Mr.Pin

Comunque, ipotizzo anche io.

In base alle specifiche, il codice dovrebbe essere valido per circa 30 secondi. Quindi alla base di tutto dovrebbe esserci un orologio che è bene o male sincronizzato con quello della banca (penso che un paio di secondi di tolleranza ci possano stare dentro, quindi può utilizzare un banalissimo orologio al quarzo).

Altro parametro è sicuramente il numero seriale del Mr.Pin (lo chiamo così per comodità). Consideriamo il caso che scala meglio: ogni serie di Mr.Pin possiede un algoritmo che genera numeri casuali. Dal momento che generare numeri a capocchia per un computer è impossibile, vengono normalmente creati numeri pseudocasuali. Questo tipo di algoritmi generano quindi numeri che sembrano essere casuali, ma in realtà non lo sono.

Chiavi per generare tali elementi possono essere il tempo e il "seme", ossia un valore di riferimento.

Applicando due volte lo stesso algoritmo nella stessa fascia temporale e con lo stesso seme, si ottiene lo stesso numero. Ed ecco fatto il gioco.

Due Mr.Pin diversi hanno numeri seriali diversi, quindi nello stesso momento generano 2 codici diversi. Un Mr.Pin in due momenti diversi genera due codici diversi (a patto che la distanza delle due prove sia sufficientemente lunga da fargli cambiare base temporale). Al tuo conto corrente è stato associato il tuo Mr.Pin, quindi al momento del login il computer della banca è come se interrogasse un clone del tuo Mr.Pin (in pratica esegue l'algoritmo partendo dal seriale del tuo Mr.Pin). Se i due numeri generati corrispondono, sei autorizzato. Se i due numeri non corrispondono, come si dice nei gratta e vinci, Riprova, sarai più fortunato.

Comunque è più una domanda di tipo informatico, piuttosto che elettronico.

Domandina invece per te, decisamente ot per il ng, ma è una mia curiosità: come funziona? bene o male?

Luca

Reply to
Luca Pascali

Il Mon, 25 Jun 2007 18:37:06 +0000, harry ha scritto:

Per me sincronizzare una cosa alimentata a batteria - di cui non si conosce lo stato di carica, in un ambiente di cui non si conoscono le variazioni di temperatura - oggi a londra 13°C, oggi a Bari 45°C - mi sembra un problema non da poco... Il tempo non è importante, serve solo per aggiornare ogni tanto il codice.

E' il codice che ha un signoficato in sè, un po' come i numeri di serie dei programmi oppure i vari crc o numeri primi... Insomma, la chiavetta sa come generare il numero, non necessariamente casuale, e la banca sa come verificare se quel numero è stato generato da una chiavetta...

A occhio sembra semplice, e anche se il grado di sicurezza non è poi così elevato, la sensazione di sicurezza c'è, il cliente è contento e la banca continua a spillargli soldi. Ovviamente IMHO :-)

Reply to
SilverLeo

Anche la BNL lo fa, penso sia una pratica diffusa...

Non credo che si basino sul tempo per generare il codice. Si tratta di chiavi OTP (One Time Password) e possono essere generate al momento oppure anche memorizzate in una tabella. In una memoria di 1 MB puoi memorizzare oltre 350.000 codici di 6 cifre decimali (se ne usi 10 al giorno vai avanti quasi un secolo...).

Dal momento che le altre chiavi sono statiche possono essere benissimo valide entrambe le soluzioni, ma sinceramente non ho informazioni su cosa utilizzano in realtà. Io avevo realizzato per conto di una ditta entrambi i sistemi, per usi del genere sono quasi equivalenti.

Tieni conto che non è necessario seguire l'ordine preciso.. se premi due volte il pulsante (e quindi generi due numeri di fila) l'accesso al servizio ce l'hai ugualmente.

Anche se non è rivolta a me aggiungo i miei 0.02$:

IMHO è un sistema semplice e relativamente sicuro ma utilizzabile solo in alcuni casi. Inoltre funziona decentemente se abbinato ad altri controlli come protocolli di comunicazione cifrati e verifica della permanenza della connessione per evitare casi di phishing.

Ciao! Marco / iw2nzm

Reply to
Marco Trapanese

Funziona... però fisso che a forza di portarmela dietro(casa-lavoro) la perderò. Preferivo una password, è un costo inultile che indirettamente pago.

E' molto utile x chi è abituato a mettere la propria data di nascita come pw...

Reply to
Roby

Aggiunta...

Non potrebbe funzionare come una svegia radiocontrollata? In più in codice potrebbe essere generato con il dedesimo algoritmo per tutte le chiavette, ma con seme dipendende dal proprietario (Es: numero di conto) e dall'ora, con tolleranza di qualche secondo.

IMHO

Reply to
Roby

Io preferisco il metodo della tessera con i codici in tabella.

Ti chiedono il tuo pin e ti dicono di inserire i codici in D4 e F3 La tessera ha una tabella 8x4 o di altre dimensioni dove, in stile battaglia navale, ci sono numeri di due cifre. Il sistema ti chiede ogni volta una coppia differente di numeri.

Anche qui, il sistema ha la pecca di essere "bucato" se ti rubano o fotografano la tessera, ma dal punto di vista delle sicurezze, se ti rubano la chiave qualsiasi forma essa abbia, sei sempre fregato.

LP

Reply to
Luca Pascali

Non è detto. Per lo meno non lo è in maniera così scontata. Lo è per le chiavi statiche, quelle dinamiche invece - se ben progettate - rendono molto robusto il sistema contro i furti della chiave.

Ciao Marco / iw2nzm

Reply to
Marco Trapanese

ho il okey della san paolo è non perde un colpo,ciao

-------------------------------- Inviato via

formatting link

Reply to
harry

Quoto. Avete presente come funzionano i rolling-code dei telecomandi? ecco per me il funzionamento e' molto simile.

Reply to
Ulx

Ammiravo la mia cresta allo specchio quando Marco Trapanese ha detto :

no, si basano sul tempo. io ho quella di unicredit e non ha nessun pulsante, genera codici ogni minuto e li visualizza in continuazione sul display. Il funzionamento è esattamente quello descritto da Luca Pascali, con la riserva sul seme che potrebbe non essere il seriale ma un altro numero che non è dato sapere a meno di non trovarsi dal lato della banca.

--
Nuno on zx-6r '04 working in progress...
Cambiassi donna come cambio idea sarei già endorser Hatù
*** www.gladio.org ***
Reply to
N1

Difficile. Ci vorrebbe un'antenna abbastanza grande (come la chiave) e consumerebbe troppo IMHO. E' anche da scartare il meccanismo dell'ora perchè la precisione sarebbe di circa 1/2 minuti l'anno. E non secondi. A meno di non usare qualche bel RTC con una compensazione in temperatura/tensione con le palle. Insomma troppo complicato. Per non parlare del fatto che se non sbaglio l'ora legale/solare non viene decisa di anno in anno? Cioè non vorrei dire una boiata ma non viene cambiata in giorni differenti ogni tanto?

Reply to
Er Palma

Ah ok, allora sono macchine diverse. La mia della BNL è sempre spenta. Schiacciando un pulsante genera un codice e lo visualizza per una decina di secondi poi si cancella. Ma uno qualsiasi dei codici generati è valido (immagino non ancora usati.. ma non ho fatto la prova sinceramente).

Ciao! Marco / iw2nzm

Reply to
Marco Trapanese

Questo è un ottimo punto.

Qui, invece, sbagli. I sistemi informatici (non Windows) generalmente hanno l'orologio interno impostato sempre su UTC, quindi ora di Greenwich e nessun DST (ora legale). In visualizzazione, poi, aggiungono la differenza dovuta al fuso orario e all'ora legale (se presente nel fuso selezionato). In questo modo, se scambi informazioni con l'Australia, utilizzi sempre lo stesso tempo (normalmente dovrebbe essere uno Unix Epoch Time, ossia il numero di secondi a partire dal 1 gennaio 1970 a mezzanotte secondo il fuso orario UTC). Poi noi siamo a GMT+1, l'Australia a GMT+9, quindi il valore che per noi corrisponde alle 19:35:02 del 26 giugno 2007, per loro corrisponde alle 03:35:02 del 27 giugno 2007.

Basta che siano sincronizzate (a meno dei problemi della tua prima obiezione) sull'UTC ed ecco che non hai problemi di DST o di fuso orario.

Luca

Reply to
Luca Pascali

Anche in alcuni programmi industriali che ho scritto avevano un problema simile. Ipottizzando l'uso di una tabella di codici precalcolati, possiamo approssimare la cosa come una sequenza di numeri (il che rende il problema uguale sia che i numeri siano stati precalcolati, sia che i numeri vengano calcolati al volo mediante un algoritmo basato su un indice incrementale).

Ho il codice 1 (quello del'attivazione). Viene riconosciuto, utilizzato e bruciato. Provo con il 2, riconosciuto, utilizzato e bruciato. Vado con il 6. Problema: i codici 3,4 e 5 sono stati saltati. Soluzione 1) codice 6 riconosciuto e utilizzato, bruciati i codici 3, 4,

5 e 6. Soluzione 2) si imposta una tolleranza massima (10 codici) e se il codice riconosciuto è entro questi 10 dall'ultimo utilizzato, si procede come se fosse la soluzione 1, altrimenti si rifiuta il codice e si deve contattare l'assistenza.

La soluzione 2 risulta essere molto chiusa (e poco adatta a questi generatori di codice), mentre la soluzione 1, coadiuvata da un costo sempre più basso delle memorie flash, permette di generare milioni di codici e registrarli nella chiavetta (4 megabyte possono contenere

1.048.576 codici da 0 a 4.294.967.296, quindi codici fino a 9 cifre (la decima l'abbuoniamo), e possiamo ipotizzare anche che di questi 4 byte a numero 3 siano il codice e 1 sia il checksum (magari con i bit di codice e checksum mischiati)

Luca

Reply to
Luca Pascali

Il Tue, 26 Jun 2007 19:49:50 +0200, Luca Pascali ha scritto:

Il problema della soluzione 1 è che così i codici valid1 diventano tantissimi, e aumenta la probabilità di azzeccarci tirando a caso (è un po' come giocare alla lotteria, se prendi 10 biglietti la probabilità di vincere è ovviamente risibile, se ne compri un milione si incomincia a ragionare...). Che io sappia nei sistemi rolling-code il numero di codici considerati validi è sempre limitato, tipicamente a 256 codici o giù di lì. Ciao Luca

--
When I smile, tell me some bad news
Before I laugh and act like a fool
Reply to
Elbarto

E' la stessa cosa.

Certo, uno qualsiasi dei codici e' valido, limitatamente a 30 secondi da quando e' stato creato pero'...

Reply to
Giovine

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.