Autenticazione a due fattori #2FA

In questo articolo affronteremo il tema dell’autenticazione a due fattori e per che questa è fortemente consigliata sugli exchange.

Il primo fattore, comune in molti siti, è dato dall’inserimento di username e password. La protezione con la password viene solitamente fortificata dalla scelta di password complesse e dal blocco dell’utenza dopo alcuni tentativi esatti. In questo modo si contrastano sia gli attacchi di brute force dove sostanzialmente vi sono programmi che provano ad indovinare la password facendo un elevato numero di tentativi.

Vi è però una tipologia di attacco che rende poco sicuro l’utilizzo di questo solo fattore ed è il men in the middle. Banalmente vi è il modo di intercettare l’username e la password dell’utente (es. su un virus sul computer) e poi utilizzarla in un secondo momento. Per ovviare a questo problema vi è l’utilizzo di un secondo fattore.

L’otp (one time password) via sms, ovvero un codice che vi arriva via sms da utilizzare una sola volta, è un possibile secondo fattore proposto da molti exchange (es. coinbase). È dovuto dal fatto che l’otp che vi arriva via sms si può utilizzare una sola volta e dopo alcune decine di secondi diventa inutilizzabile.

Il problema di questo secondo fattore è che sugli attuali smartphone ci sono svariate applicazioni che hanno il permesso di lettura degli sms. Affiancandolo alla sola user e password è sicuramente più sicura ma non elimina del tutto il problema del men in the middle.

Un secondo fattore più sicuro è quello dato dagli opt generati direttamente su un proprio dispositivo, come ad esempio quello fornito da Google Authenticator. In questo caso l’otp viene generato su un applicazione sicura dove solo l’utente può leggerlo. Anche in questo caso il codice scade dopo alcune decine di secondi.

Con Google authenticator il problema man in the middle non viene eliminato del tutto, perché comunque l’otp deve essere digitato e viaggiare su internet, però il rischio diventa ridotto: il malfattore deve intercettare l’otp mentre viene digitato (o mentre viene spedito via internet) e dovrebbe utilizzarlo velocemente prima che scada o che venga consumato dall’utente. Il tempo a disposizione del malfattore per rubare l’otp e utilizzarlo al posto dell’utente diventa quindi veramente minimo.

Nell’ambito del trading spesso questi secondi fattori vengono inseriti solo alla login o al trasferimento dei fondi fuori dell’exchange. Per non rallentare il trading non vengono richiesti sulle singole transazioni di trading.

In ambito bancario, per ridurre o quasi eliminare, il problema men in the middle, nell’ambito della normativa europea #PSD2 si sta introducendo un secondo fattore ancora più sicuro: la firma della transazione.

In caso di firma della trasazione il codice che viene generato è legato alla singola transazione e non può essere utilizzato per transazioni diverse anche se intercettato. Quindi se io creo un codice, relativo allo spostamento di 1btc verso il wallet A, anche intercettando il codice non posso utilizzarlo per spostare 1btc verso il wallet B. Risultando quindi molto più sicuro.