jump to navigation

Sicurezza assoluta con le One-Time Password April 8, 2006

Posted by laspinanelfianco in Sicurezza, Trusted Computing.
trackback

In attesa di sapere se dovremo morire berlusconiani o meno, torniamo a parlare di cose serie.

Ieri mi è arrivata una lettera di Banca Antonveneta che mi ingiunge gentilemente di passare a ritirare il mio nuovo Ge.Co.

Che cazzo è un Ge.Co!?

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 di Banca Antonveneta è 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 fosse riuscito ad entrare in possesso delle vostre credenziali di accesso al vostro 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 (vedi “Applied Cryprtography” di Bruce Schneier) ci dice che violare un sistema protetto da password “usa e getta” di questo tipo è effettivamente impossibile, non importa cosa si inventi l’hacker. 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, l’hacker 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.

In vita mia avevo già visto aggeggi di questo genere, alcuni dei quali prodotti da una delle aziende che ora produce (anche) i Fritz Chip. Ne ho visto anche alcune versioni implementate in software per i dispositivi palmari (PalmTop, Smart Phones e PDA), una delle quali è in grado di generare password lunghe fino a 16 caratteri alfanumerici (cioè numeri da 0 a 9 o lettere da A a Z, senza distinzione tra maiuscole e minuscole).

Potete vedere qualche implementazione di sistemi OTP a queste URL:
http://student.dei.uc.pt/~subtil/paranoia/
http://www.inner.net/opie
http://www.ocf.berkeley.edu/~jjlin/jsotp/about.html

Con una password di 16 caratteri di questo tipo (10 numero + 26 lettere per ognuna delle 16 posizioni) si deve “centrare” una password su 3,6×10^16 (36 alla 16), cioè 7,95×10^23 (Circa 8 alla 23-esima). La probabilità di vincere al Superenalotto è molto più elevata: circa 1 su 600.000.000 (1 su 6×10^7). Per farvi una idea di cosa voglia dire una probabilità di 1 su 8×10^23, provate a studiarvi questa pagina che parla dei grandi numeri:

http://kokogiak.com/megapenny/

A parte fare i miei più sinceri complimenti a Banca Antonveneta per questa scelta, e consigliare a tutti voi di aprire un conto corrente presso questa banca, vorrei dire una cosa:

Questo aggeggio (prodotto in Cina, dimensioni da portachiavi, pila al litio che dura 10 o 20 anni, costo approssimativo di meno di 20 centesimi di euro, nessun comando di nessun genere, per cui niente da capire, solo il display da leggere) permette di garantire una sicurezza di accesso ad un sistema assoluta (e quindi superiore a qualunque altro sistema). C’era davvero bisogno di piazzare un Fritz Chip in ogni dannato aggeggio elettronico del pianeta per difenderci da Virus, Worm, Cavalli di Troja, Hackers/Cypher/Intruder e via dicendo? Sono credibili le giustificazioni del Trusted Computing Group a sostegno del loro “ragnetto”?

Buona riflessione

PS: Se vi interessa l’argomento “numeri molto grandi o molto piccoli”, date un’occhiata a queste altre URL:

http://home.earthlink.net/~mrob/pub/math/largenum.htmlhttp://en.wikipedia.org/wiki/Large_numberhttp://www.sci.wsu.edu/math/faculty/hudelson/moser.html
http://mathforum.org/library/topics/large_numbers/
http://www.truthpizza.org/logic/bignum.htm
http://www.iun.edu/~cpanhd/C101webnotes/measurements/large-small-num.html

Cercando un po’ sulla rete con Google potete trovare anche qualche sito che spieghi cosa voglia dire una probabilità di 1 su un milione o di 1 su 8×10^23, ad esempio comparando queste probabilità con la probabilità di vincere al Superenalotto (1 su 600.000.000) o con quella di venire centrati da un meteorite (1 su 100.000.000, se non ricordo male).

Comments»

1. Enzo - April 8, 2006

Ma la “sincronizzazione” fra il Ge.Co. che ti tieni in tasca e l’equivalente sul server, com’è garantita? Da una specie di “sincronizzazione di partenza” (ciascuno dei due dispositivi parte dallo stesso numero e usa lo stesso algoritmo per la generazione dei numeri pseudo-casuali)? oppure da un qualche periodica comunicazione (via radio…?)? In quest’ultimo caso si potrebbe pensare di violare il sistema intercettando e decifrando la comunicazione. Nel primo (e più verosimile) caso si potrebbe violare il sistema *non* tentando di indovinare il numero generato in un particolare momento, *ma* riuscendo a scoprire il particolare algoritmo usato per la generazione dei numeri pseudo-casuali…

(ok, è comunque difficilissimo, ci sarebbero comunque un mare di complicazioni, sto effettivamente facendo l’avvocato del diavolo…)

Ah, mi perdoni se ti faccio le pulci?
7,95×10^23 NON e’ circa 8 alla 23-esima, ma 8 per 10 alla 23-esima (8^23 e’ “solo” circa 10^21…)? Ok, ok, lo sapevi, era solo un typo…😛
Altra curiosità: sono quasi sicuro che il nome del motore di ricerca google gioca sul termine goggle (con una sola “o” e doppia “g”, che in inglese indica degli occhiali tipo quelli per fare immersione, da usare, appunto, per la ricerca sul motore…) e sul termine googl (senza “e” finale, che indica il numero “stratosferico” di 10^100, dieci alla cento, a evocare l’infinità di cose che si vorrebbero poter trovare nel motore di ricerca…).
Tra parentesi, il numero 10^23 che ricorre spesso in questo tuo post, e’ proprio l’ordine di grandezza del numero di Avogadro!!!
Ah, un’ultima cosa sui grandi/piccoli numeri: qualcuno, vista appunto che la probabilità di vincere al superenalotto è così piccola, chiama questi giochi “tassa sulla stupidità”…

2. laspinanelfianco - April 8, 2006

Ciao Enzo,
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 (come immagini sia anche questo) 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.

> Ok, ok, lo sapevi, era solo un typo…

Mh… a volte mi fate più sveglio di quel che sono…

Google si chiama così esattamente per le ragioni che hai elencato. Lo spiegavano i fondatori in una vecchia intervista. Loro parlavano anche di “Googleplex”, che credo sia un equivalente di “Googl”.

Ciao
Alessandro Bottoni

Tommaso - January 21, 2011

Da come si legge qui (http://en.wikipedia.org/wiki/SecurID) su ognuno di questi aggeggi e’ salvato un seme (seed), ovvero una stringa pseudocasuale, che combianto col clock del dispositivo stesso e processato da un appposito algoritmo a primo acchitto inviolabile perche’ eseguito in hardware, genera questa one time password, che poi non e’ nemmeno one time perche’ se ne genera una ogni 30 secondi, e lavora con un insieme di valori contenente un milione di elementi diversi, in un anno (348 giorni precisamente) avrebbe sparato via fuori tutte le possibili combinazioni e sarebbe da buttare.
Il server dall’altro lato probabilmente conosce l’algoritmo, e’ sincronizzato col clock ed in piu’ conosce il seed di ogni utente registrato, quindi esegue lo stesso algoritmo e confronta la “one time password” da lui generata con quella fornita dall’utente

3. daniele - April 8, 2006

Anche all’Unicredit Banca mi hanno dato una robetta simile. Una password dura 30 secondi e poi viene scartata completamente. Non so il tuo, ma il adirittura non si può spegnere, rimane sempre acceso non si può nemmeno cambiare la batteria; il consulente mi ha detto che cesserà di funzionare nel 2012, dopodiché lo devo riportare e me ne daranno uno nuovo.

4. cam - April 8, 2006

A parte lo spreco di di ‘ste cose usa e getta..
non ho capito come sono sincronizzati.. praticamente e’ come se in banca avessero il mio stesso aggeggino, no?

5. Alessandro Bottoni - April 9, 2006

Ciao Daniele, Ciao Cam,

> Anche all’Unicredit Banca mi hanno dato una robetta simile.
> Una password dura 30 secondi e poi viene scartata
> completamente. Non so il tuo, ma il adirittura non si può
> spegnere, rimane sempre acceso non si può nemmeno
> cambiare la batteria; il consulente mi ha detto che cesserà
> di funzionare nel 2012, dopodiché lo devo riportare e
> me ne daranno uno nuovo.

Funziona così anche il mio. Totale assenza di comandi e quindi totale assenza di cose da capire e da gestire. Totalmente chiuso ed impenetrabile, persino per cambiare le pile. Durata limitata nel tempo. Sono tutte caratteristiche che ne accrescono la sicurezza.

> A parte lo spreco di di ’ste cose usa e getta..
> non ho capito come sono sincronizzati..
> praticamente e’ come se in banca avessero il mio stesso
> aggeggino, no?

Esatto. Dentro l’aggeggino c’ è (o ci dovrebbe essere) un elenco di circa 6.300.000 numeri casuali di 6 cifre (circa 37 Mbit in formato “raw”, probabilmente compressi) che viene scandito una riga alla volta alla stessa “velocità” sul tuo aggeggino e sul server.

Sul server non è necessario che ci sia lo stesso aggeggino. Probabilmente c’è semplicemente un database che contiene la stessa lista di numeri. Non conosco i dettagli del sistema usato dalle banche ma è anche possibile che ci sia una lista diversa per ogni utente (identificata dalla sua coppia username/password).

Naturalmente è possibile che il sistema usato dalle banche sia stato semplificato per ragioni di costo e di complessità, rispetto al “massimo teorico”. Pertanto è possibile che esista una lista sola per tutti gli utenti ed è possibile che i numeri vengano generati da un algoritmo. Queste sono scelte implementative che sono note solo a chi produce il sistema. Anche certi sistemi usati in ambienti Military&Intelligence non sfruttano questa tecnica fino al suo massimo teorico, per varie ragioni.

Ciao

Alessandro Bottoni

6. Enzo - April 9, 2006

> (circa 37 Mbit in formato “raw”, probabilmente compressi)

Se sono veramente numeri casuali, la compressione non dovrebbe portare ad alcun “risparmio”…🙂

7. blau - April 9, 2006

Sembra un Fob della RSA, molto diffuso nelle grandi aziende per l’accesso a sedi e ai servizi della intranet.
http://en.wikipedia.org/wiki/Key_fob

8. laspinanelfianco - April 9, 2006

Ciao Blau,
si, l’aggeggio in questione è sicuramente un “clone” del RSA SecurID ma è decisamente più rozzo ed economico.

Ho trovato descrizione tecnica e foto del RSA Key Fob sul loro sito:
http://www.rsasecurity.com/press_release.asp?doc_id=5524
http://www.rsasecurity.com/node.asp?id=1157
http://www.rsasecurity.com/node.asp?id=1392

C’è anche un rivenditore online:
http://www.superwarehouse.com/RSA_G2/b/230/c/455
Si parte da oltre 52 US$ al pezzo. Questo spiega perchè le banche diano ai clienti dei cloni cinesi.

Ciao Enzo,
yep! è vero: se è veramente roba casuale non c’è vantaggio dalla compressione. Stavo scrivendo con il solo lobo mentale destro (quello artistico) in funzione…

Ciao

Alessandro Bottoni

9. Guido Trotter - April 10, 2006

Attenzione alle affermazioni sensazionalistiche… ‘…ci dice che violare un sistema protetto da password “usa e getta” di questo tipo è effettivamente impossibile, non importa cosa si inventi l’hacker. L’unico modo di riuscire ad entrare nel sistema è quello di impossessarsi del Ge.Co.’. Questa affermazione è esagerata… è estremamente improbabile violare un sistema del genere tramite brute forcing della password, ma non è certo escluso che questo possa essere violato in altro modo.

Inoltre teniamo conto che la generazione delle password “one time” è sempre subordinata alla qualità degli algoritmi usati per generarle, e delle chiavi di partenza.

10. CarpeDiem - April 11, 2006

Ciao, Enzo,

non è il caso che si tratti di Consortium global control system in questo caso? Tocca a rivedere il “Matrix” (quelli che hanno ingliotito il red pill).
Se qu è interessato, fatteci il viaggetto
http://www.cassiopaea.org/ (ora in inglese, francese, spagnolo,e polacco)

libri di David Jacobs e Laura Knight-Jadczyk (Wave series) su amazon.com

11. Enzo - April 12, 2006
12. Elena - February 8, 2007

Salve a tutti. In questi giorni mi sto interrogando su come funzionano questi aggeggi delle banche e mi sorge un domanda. Se come dite sono sincronizzati temporalmente e se è vero che, come dice la mia banca, la password cambia ogni 16 secondi, cosa succede se per esempio non riesco a scrivere il numero in 16 secondo? Oppure ne leggo uno che entro un secono scade e magari a causa del drift del clock nella banca è già scaduto? Io non riesco a crederci che si basino su questo tipo di sincronizzazione. Voi sapete chiarimi questi aspetti? Grazie

13. luke - August 21, 2007

è possibile violare una password utente di windows senza usare programmi?
se si, come?

14. assunz - December 11, 2007

ciao..voi ke ne capite di numeri e aggeggi mi sapreste calcolare una password di quattro cifre dall 1 al 9?
aiutatemi per favore mi son dimenticata la pass del mio cell…grazie

15. Giuseppe - December 15, 2007

Io con il mio pass ho fatto un test. In pratica mi sono scritto una serie di password generate e poi man mano le ho usate ed è sempre andato tutto bene (nell’arco dello stesso giorno). Quindi sono arrivato alla conclusione che l’unica cosa che fa l’aggeggino è quella di leggere in modo sequenziale una serie di numeri prestabiliti. …MA…non finisce qui…la mia conclusione era errata!!!
Perché Haimé il test è fallito quando ho deciso di fare un viaggio senza portarmi dietro il cosetto, ma solo una serie di password che mi sarebbero potute servire…E mio malgrado ho scoperto che dopo 15 giorni quelle password non funzionavano più…quindi credo proprio che al suo interno abbia davvero un orologio!
Ma a questo punto non ho capito se genera la password a seconda del tempo o se la SCEGLIE a seconda del tempo.
Chi mi aiuta?

16. killer - April 15, 2008

“Loro parlavano anche di “Googleplex”, che credo sia un equivalente di “Googl”.””

Googleplex e’ il nome del palazzo che ospita la sede centrale di google.

per maggiori info: http://www.ippolita.net/google

17. hyppos - July 18, 2008

Questi dispositivi sono sicuramente più comodi, soprattutto se si deve accedere all’Internet Bancking da computer non fidati; io comunque mi trovo molto bene anche col caro – e ormai vecchio a quanto pare – certificato personale che la banca mi rilascia una volta all’anno: lo salvo in una partizione criptata di una chiavetta usb e all’occorrenza lo installo sul pc, premurandomi di rimuoverlo alla fine delle operazioni.

18. hyppos - July 18, 2008

Aggiungo: visto anche che si sono registrati casi di pishing a sistemi OTP, il certificato sembrerebbe dare maggiori garanzie.

necosi - May 6, 2009

pishing a sistemi OTP? Link?

19. Ettore - July 27, 2009

Ho letto quello che hai scritto di questo aggeggino che chiami Ge. Co. che ti ha dato la banca e che ti da un codice nuovo ogni 30 secondi.
Mi vengono in mente due casi:
1) I “Ge Co” forniti dalla banca sono tutti diversi tra loro e forniscono codici associati a ciascun utente. In questo caso però se qualcuno riesce a carpire nome utente e password (con un programma keylog ad esempio) e poi ti ruba il “Ge Co” potrebbe rubarti denaro dal conto corrente.
2) I “Ge Co” forniti dalla banca sono tutti uguali: In questo caso tutti i Ge Co forniscono numeri identici e non ci sarebbe nemmeno la necessità di rubarlo.
Le poste italiane invece mi hanno fornito un altro aggeggino che a mio parere è più sicuro. Si tratta di un lettore della carta “postamat”. quando si vede fare una operazione su internet il sito delle poste fornisce un numero ad esempio 123. Questo numero viene digitato sulla tastiera del lettore dentro al quale è stata inserita la carta “postamat” e digitato il PIN. di risposta il lettore produce un numero ad esempio 456 che deve essere copiato nel sito delle poste. La forza di questo meccanismo è che il codice segreto viene digitato nel lettore e non nel computer (dove potrebbero essere installati dei programmi che leggono quello che viene digitato sulla tastirea)
Quindi anche se qualcuno rubasse il lettore e la carta postamat e fosse stato in grando di impossessarsi del mio nome utente e password non potrebbe comunque effettuare operazioni sul mio conto corrente.

20. Ettore - July 27, 2009

Ho letto quello che hai scritto di questo aggeggino che chiami Ge. Co. che ti ha dato la banca e che ti da un codice nuovo ogni 30 secondi.
Mi vengono in mente due casi:
1) I “Ge Co” forniti dalla banca sono tutti diversi tra loro e forniscono codici associati a ciascun utente. In questo caso però se qualcuno riesce a carpire nome utente e password (con un programma keylog ad esempio) e poi ti ruba il “Ge Co” potrebbe rubarti denaro dal conto corrente.
2) I “Ge Co” forniti dalla banca sono tutti uguali: In questo caso tutti i Ge Co forniscono numeri identici e non ci sarebbe nemmeno la necessità di rubarlo.
Le poste italiane invece mi hanno fornito un altro aggeggino che a mio parere è più sicuro. Si tratta di un lettore della carta “postamat”. quando si vede fare una operazione su internet il sito delle poste fornisce un numero ad esempio 123. Questo numero viene digitato sulla tastiera del lettore dentro al quale è stata inserita la carta “postamat” e digitato il PIN. di risposta il lettore produce un numero ad esempio 456 che deve essere copiato nel sito delle poste. La forza di questo meccanismo è che il codice segreto viene digitato nel lettore e non nel computer (dove potrebbero essere installati dei programmi che leggono quello che viene digitato sulla tastirea)
Quindi anche se qualcuno rubasse il lettore e la carta postamat e fosse stato in grando di impossessarsi del mio nome utente e password non potrebbe comunque effettuare operazioni sul mio conto corrente a meno che non conosca anche il codice segreto.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: