Negli ultimi due anni, il concetto di autenticazione a due fattori (2FA), a lungo appannaggio dei geek, ha trovato la sua strada nel mainstream. Tuttavia, il discorso è ancora in gran parte limitato all’uso della 2FA per le password una tantum via SMS. Triste a dirsi, questa non è l’opzione più affidabile. Ecco perché:
- È facile sbirciare le password inviate via SMS se le notifiche del lock-screen sono abilitate.
- Anche se le notifiche sono disattivate, una scheda SIM può essere rimossa e installata in un altro smartphone, dando accesso ai messaggi SMS con le password.
- I messaggi SMS contenenti password possono essere intercettati da un Trojan che si annida all’interno dello smartphone.
- Utilizzando varie tattiche subdole (persuasione, corruzione, ecc.), i criminali possono procurarsi una nuova scheda SIM con il numero della vittima in un negozio di telefonia mobile. I messaggi SMS andranno quindi a questa scheda, e il telefono della vittima sarà disconnesso dalla rete.
- I messaggi SMS con password possono essere intercettati attraverso una falla di base nel protocollo SS7 utilizzato per trasmettere i messaggi.
Nota che anche il più high-tech e laborioso dei metodi di furto di password SMS di cui sopra (sfruttamento SS7) è già stato utilizzato nella pratica. Il resto è routine quotidiana per i cattivi. Detto questo, non abbiamo a che fare con delle ipotesi, ma con una minaccia reale.
In generale, le password SMS non sono molto sicure, e a volte sono molto insicure. Quindi ha senso scrutare l’orizzonte per le alternative quando si tratta di 2FA, che è l’argomento di oggi.
- Codici monouso in un file o su carta
- C’è un’app anche per questo: Authenticator apps
- Come funzionano le app di autenticazione
- Compatibilità tra app e servizi 2FA
- Le migliori app per l’autenticazione a due fattori
- 1. Google Authenticator
- 2. Duo Mobile
- 3. Microsoft Authenticator
- 4. FreeOTP
- 5. Authy
- 6. Yandex.Key
- Autenticatori hardware FIDO U2F: YubiKey e altri
- Come funzionano i token FIDO U2F
- Quali tipi di dispositivi U2F ci sono
- Cosa scegliere: SMS, app o YubiKey?
Codici monouso in un file o su carta
Il modo più semplice per sostituire le password monouso basate su SMS è usare, sì, password monouso, ma preparate in anticipo. Non è l’opzione peggiore, soprattutto per i servizi in cui si accede di rado. Anche per il buon vecchio Facebook, questo metodo può andare bene, soprattutto come piano di riserva.
È abbastanza semplice: Su richiesta, il servizio genera e visualizza una dozzina di codici monouso che possono essere utilizzati in seguito per autenticare un login. Questi codici possono essere stampati o scarabocchiati e messi in una cassaforte. O, ancora più semplicemente, possono essere salvati in note criptate in un password manager.
Non è così importante se i codici sono tenuti in formato fisico o digitale – ciò che conta è che (1) non si perdano e (2) non possano essere rubati.
C’è un’app anche per questo: Authenticator apps
Oltre a tutti gli “uni” di questa frase, un insieme di codici unici generati una sola volta ha uno svantaggio: Prima o poi finirà, e potresti rimanere senza codice nel momento più inopportuno. Fortunatamente, c’è un modo migliore: I codici monouso possono essere generati al volo usando una piccola e (di solito) molto semplice app di autenticazione.
Come funzionano le app di autenticazione
È molto facile usare le app 2FA. Ecco cosa devi fare:
- Installa l’app autenticatore sul tuo smartphone,
- Vai alle impostazioni di sicurezza del servizio con cui vuoi usare l’app,
- Seleziona 2FA (supponendo che l’opzione esista); il servizio ti mostrerà un codice QR che può essere scansionato direttamente nell’app 2FA,
- Scansiona il codice con l’app – inizierà a generare un nuovo codice unico ogni 30 secondi.
I codici sono creati sulla base di una chiave (nota solo a te e al server) e del tempo corrente, arrotondato a 30 secondi. Entrambi i componenti sono gli stessi per voi e per il servizio, quindi i codici sono generati in modo sincrono. Questo algoritmo è chiamato OATH TOTP (Time-based One-Time Password), ed è di gran lunga il più usato.
Esiste un’alternativa, conosciuta come OATH HOTP (HMAC-based One-Time Password). Invece dell’ora corrente, questo algoritmo usa un contatore che aumenta di 1 per ogni nuovo codice creato. Ma si incontra raramente nella vita reale, perché il suo uso complica la generazione sincrona dei codici sul lato app e servizio. In parole povere, c’è un rischio non trascurabile che il contatore vada in tilt proprio nel momento sbagliato, e che la vostra password monouso non funzioni.
Quindi, OATH TOTP può essere considerato lo standard de facto (anche se ufficialmente non è nemmeno uno standard, come insistono i creatori nella specifica).
Compatibilità tra app e servizi 2FA
La stragrande maggioranza delle app 2FA usa lo stesso algoritmo, quindi qualsiasi app può essere usata per i servizi che supportano gli autenticatori; fate la vostra scelta.
Ovviamente, come per ogni regola generale, ci sono delle eccezioni. Per ragioni note solo a loro, alcuni servizi preferiscono creare le proprie app 2FA che funzionano solo per loro. Per di più, i servizi stessi non funzionano con altre app se non le loro.
Questo è particolarmente comune tra i principali editori di videogiochi: per esempio, Blizzard Authenticator, Steam Mobile con Steam Guard integrato, Wargaming Auth, e altri sono tutti incompatibili con app e servizi di terze parti. Solo queste app personalizzate possono essere utilizzate con le relative piattaforme di gioco.
Questa strana strada è stata presa anche da Adobe con il suo Adobe Authenticator, che funziona solo con gli account AdobeID. Tuttavia, è possibile utilizzare altri autenticatori per autenticarsi in AdobeID, quindi non è affatto chiaro perché fosse necessaria un’app separata.
In ogni caso, la maggior parte delle normali aziende IT non limita gli utenti nella scelta delle app 2FA. E anche se un’azienda decide improvvisamente di creare la propria app, la maggior parte delle volte può essere utilizzata per proteggere non solo i propri account, ma anche quelli di altri servizi.
Basta scegliere l’app authenticator che ti piace di più in termini di caratteristiche aggiuntive – funzionerà con la maggior parte dei servizi che generalmente supportano le app 2FA.
Le migliori app per l’autenticazione a due fattori
La scelta delle app 2FA è sorprendentemente ampia. Cerca “authenticator” in Google Play o App Store, e vedrai decine di opzioni. Non consigliamo di installare la prima app su cui metti gli occhi, potrebbe non essere la più sicura. Ricordate che state per affidargli le chiavi dei vostri account (non conoscerà le vostre password, naturalmente, ma state aggiungendo 2FA perché le password hanno la tendenza a perdere). In generale, vale la pena optare per un’app fatta da uno sviluppatore importante e affidabile.
Anche se la funzione di base di tutte queste app è la stessa – creare codici monouso utilizzando uno stesso algoritmo, alcuni autenticatori hanno funzioni extra o caratteristiche di interfaccia che potrebbero piacere. Ecco alcune delle opzioni più interessanti.
1. Google Authenticator
Piattaforme supportate: Android, iOS
Come notato da tutti i media tecnologici, Google Authenticator è il più facile da usare di tutte le molte applicazioni 2FA là fuori. Non ha nemmeno alcuna impostazione. Tutto quello che permette di fare è aggiungere un nuovo token (il nome dato al generatore di codici per un singolo account) o cancellarne uno esistente. Per copiare un codice tutto quello che devi fare è toccarlo. Questo è tutto!
Tuttavia, tale semplicità ha uno svantaggio: Se non ti piace qualcosa dell’interfaccia o vuoi più funzioni, dovrai installare un’altra app di autenticazione.
+ Molto facile da usare.
2. Duo Mobile
Piattaforme supportate: Android, iOS
Duo Mobile è anche estremamente user-friendly, minimalista e privo di impostazioni aggiuntive. Ha un vantaggio rispetto a Google Authenticator: Duo Mobile tiene i codici nascosti per impostazione predefinita – per vederli, l’utente deve toccare il token specifico. Se, come me, non ti piace avere un mucchio di codici per tutti i tuoi account in mostra pubblica ogni volta che apri l’autenticatore, allora questa caratteristica di Duo Mobile è per te.
+ Nasconde i codici di default.
3. Microsoft Authenticator
Piattaforme supportate: Android, iOS
Microsoft ha anche scelto l’approccio senza fronzoli con il suo autenticatore minimalista. Detto questo, Microsoft Authenticator è notevolmente più ricco di funzionalità di Google Authenticator. Per cominciare, anche se tutti i codici sono mostrati per impostazione predefinita, ogni token può essere configurato separatamente per essere nascosto.
In secondo luogo, Microsoft Authenticator semplifica la firma negli account Microsoft. Dopo aver inserito la password, tutto quello che devi fare è toccare il pulsante nell’app per confermare il login – e questo è tutto, non c’è bisogno nemmeno di inserire un codice una tantum.
+ Può essere configurato per nascondere i codici.
+ Caratteristiche extra per la firma negli account Microsoft.
4. FreeOTP
Piattaforme supportate: Android, iOS
Ci sono quattro ragioni per cui potreste scegliere questo bambino di Red Hat. Primo, il software è open source. Secondo, è l’app più leggera della nostra lista – la versione iOS è solo 750KB (in confronto, il minimalista Google Authenticator richiede quasi 14MB, e l’app Authy, discussa di seguito, è un enorme 44MB.)
Terzo, l’app nasconde i codici per default, mostrandoli solo se il token viene toccato. Quarto, ma non meno importante, FreeOTP consente di configurare i token in modo molto flessibile e manuale, se lo si desidera. Naturalmente, è supportato anche il solito metodo di creazione dei token, attraverso la scansione di un codice QR.
+ Nasconde i codici di default.
+ Occupa solo 750KB.
+ Open source.
+ Impostazioni massime quando si crea un token manualmente.
5. Authy
Piattaforme supportate: Android, iOS, Windows, macOS, Chrome
Authy è la più fantasiosa delle app 2FA, con il vantaggio principale che tutti i token sono memorizzati nel cloud. Questo rende possibile l’accesso ai token da qualsiasi dispositivo. Allo stesso tempo, semplifica la migrazione a nuovi dispositivi. Non c’è bisogno di riattivare 2FA in ogni servizio, quindi è possibile continuare a utilizzare i token esistenti.
I token nel cloud sono crittografati con una chiave basata su una password definita dall’utente, il che significa che i dati sono memorizzati in modo sicuro e non sono affatto facili da rubare. È anche possibile impostare un PIN di accesso per l’app o proteggerla con un’impronta digitale se il tuo smartphone è dotato del giusto scanner.
Il principale svantaggio di Authy è che richiede di impostare un account collegato a un numero di telefono cellulare – altrimenti non funziona affatto.
+ I token sono memorizzati nel cloud, consentendo loro di essere utilizzati su tutti i tuoi dispositivi.
+ La migrazione ad altri dispositivi è molto facile per questa stessa ragione.
+ Accesso all’app protetto da PIN o impronta digitale.
+ Solo il codice dell’ultimo token usato viene mostrato sullo schermo.
+ A differenza di altre app, supporta non solo Android e iOS, ma anche Windows, macOS e Chrome.
– Non funziona senza un account Authy collegato a un numero di telefono.
6. Yandex.Key
Piattaforme supportate: Android, iOS
Secondo me, il concetto dietro Yandex.Key la rende la migliore app per 2FA. Per prima cosa, non richiede una registrazione immediata – si può iniziare ad usarla con la stessa facilità di Google Authenticator. Per un altro, ha diverse caratteristiche aggiuntive disponibili per coloro che non sono timidi con le impostazioni.
In primo luogo, Yandex.Key può essere bloccato con un PIN o un’impronta digitale. In secondo luogo, consente di creare una copia di backup protetta da password dei token nella nuvola Yandex (questa fase richiede un numero di telefono) e ripristinarla su qualsiasi dispositivo utilizzato. Allo stesso modo, è possibile trasferire i token su un nuovo dispositivo quando è necessario migrare.
Yandex.Key riesce a combinare la semplicità di Google Authenticator con la funzionalità estesa di Authy, a seconda di ciò che si preferisce. L’unico inconveniente dell’app è che l’interfaccia non è così facile da usare con un gran numero di token.
+ Minimalismo all’inizio, funzionalità estese disponibili attraverso le impostazioni.
+ Copie di backup dei token possono essere create nel cloud per l’uso su più dispositivi e la migrazione a quelli nuovi.
+ L’accesso all’app è protetto da PIN o impronta digitale.
+ Solo il codice dell’ultimo token utilizzato viene mostrato sullo schermo.
+ Sostituisce la password permanente dell’account Yandex.
– Con molti token, non è così facile trovare quello necessario.
Autenticatori hardware FIDO U2F: YubiKey e altri
Se un’app che genera codici monouso ti sembra un modo troppo fragile e impalpabile per proteggere i tuoi account, e vuoi qualcosa di più solido e affidabile che blocchi il tuo account con una chiave che va letteralmente in tasca, allora non cercare oltre i token hardware basati sullo standard U2F (Universal 2nd Factor), creato dalla FIDO Alliance.
Come funzionano i token FIDO U2F
I token hardware U2F sono i beniamini degli specialisti della sicurezza, soprattutto perché, dal punto di vista dell’utente, funzionano in modo molto semplice. Per iniziare, basta collegare il token U2F al dispositivo e registrarlo in un servizio compatibile. L’intero processo richiede solo un paio di clic.
Dopo di che, per confermare il login al servizio, è necessario collegare il token U2F al dispositivo da cui si sta accedendo e toccare il pulsante del token (alcuni dispositivi richiedono un PIN o una scansione dell’impronta digitale, ma questa è una funzione extra). Questo è tutto – nessuna impostazione complessa, inserendo lunghe sequenze di caratteri casuali, o altri mumbo-jumbo spesso associati con la parola crittografia.
Inserire la chiave e premere il pulsante – e questo è davvero tutto
Al tempo stesso, sotto il cofano le cose sono intelligenti e crittograficamente solide: Quando si registra un token su un servizio, viene creata una coppia di chiavi crittografiche – privata e pubblica. La chiave pubblica è memorizzata sul server, e quella privata è memorizzata in un chip Secure Element, che è il cuore del token U2F, e non lascia mai il dispositivo.
La chiave privata viene utilizzata per crittografare la conferma di accesso, che viene passata al server e può essere decifrata utilizzando la chiave pubblica. Se qualcuno che finge di essere te cerca di trasferire una conferma di login crittografata con la chiave privata sbagliata, allora decifrandola con la chiave pubblica produrrà un linguaggio incomprensibile, e il servizio non concederà l’accesso all’account.
Quali tipi di dispositivi U2F ci sono
L’esempio più famoso e comune di U2F è YubiKey, fatto da Yubico. L’azienda ha essenzialmente guidato questo standard ma ha scelto di renderlo aperto, per cui è stata creata la FIDO Alliance. E poiché lo standard è aperto, la vostra scelta non è limitata: I dispositivi compatibili con U2F sono prodotti e venduti da varie aziende, e i negozi online offrono una gamma di modelli diversi.
YubiKey – forse il token U2F più popolare
Per esempio, Google ha recentemente introdotto una suite di autenticatori sotto lo slogan Google Titan Security Keys. Infatti, sono chiavi prodotte da Feitian Technologies (il secondo produttore più popolare di token U2F, dopo Yubico) per il quale Google ha sviluppato il proprio firmware.
Ovviamente, tutti gli autenticatori hardware compatibili con lo standard U2F funzioneranno altrettanto bene con qualsiasi servizio che sia anche compatibile con questo standard. Tuttavia, ci sono differenze, la più importante delle quali sono le interfacce supportate dalla chiave. Questo determina direttamente con quali dispositivi può funzionare:
USB: per la connessione ai PC (non importa se hanno Windows, Mac o Linux; le chiavi funzionano senza installare alcun driver). Oltre alla solita USB-A, ci sono chiavi per USB-C.
NFC: richiesto per l’uso con smartphone e tablet Android.
Bluetooth: richiesto su dispositivi mobili che non hanno NFC. Per esempio, i possessori di iPhone hanno ancora bisogno di un autenticatore basato su Bluetooth. Anche se iOS ora permette alle app di utilizzare NFC (prima di quest’anno, solo Apple Pay era permesso), la maggior parte degli sviluppatori di app compatibili con U2F devono ancora approfittare della funzione. Gli autenticatori Bluetooth hanno un paio di svantaggi: in primo luogo, hanno bisogno di essere caricati; in secondo luogo, impiegano molto più tempo per connettersi.
I modelli base di token U2F di solito supportano solo U2F e costano $10-$20. Altri dispositivi più costosi ($20-$50) possono anche funzionare come una smart card, generare password monouso (compresi OATH TOTP e HOTP), generare e memorizzare chiavi di crittografia PGP ed essere utilizzati per accedere a Windows, macOS, Linux e così via.
Cosa scegliere: SMS, app o YubiKey?
Quindi, cosa scegliere per l’autenticazione a due fattori? Non esiste una risposta universale a questa domanda. Varie versioni e combinazioni di 2FA possono essere utilizzate per diversi servizi. Per esempio, gli account di massima priorità (una casella di posta collegata ad altri account, ecc.) dovrebbero essere protetti al massimo – cioè, bloccati con un token U2F hardware con tutte le altre opzioni 2FA bloccate. In questo modo si può essere sicuri che nessuno potrà mai accedere al proprio account senza questo token.
Una buona opzione è quella di collegare due chiavi al proprio account, come per le chiavi della macchina: una è sempre in tasca, l’altra è in un luogo sicuro nel caso in cui la prima venga persa. Inoltre, è possibile utilizzare diversi tipi di chiavi: Per esempio, un’app di autenticazione sul tuo smartphone come principale, e un token U2F o un foglietto di carta con password monouso nella tua cassaforte come backup.
In ogni caso, il consiglio principale è quello di evitare di usare password monouso basate su SMS quando possibile. È vero, non è sempre possibile. I servizi finanziari, per esempio, sono notoriamente conservatori e raramente offrono l’autenticazione attraverso qualcosa di diverso dagli SMS.
.