Introduzione
Oggi giorno la nostra vita digitale è sempre più rilevante ed imprenscindibile, di fatto tra online banking, servizi di backup e/o archiviazione dei nostri dati sensibili sui vari servizi in cloud, la posta elettronica e tanto altro, c’è un concreto rischio che i nostri dati vengano esposti e quindi acquisiti da altre persone.
Perché i nostri dati online sono a rischio ?
Quasi quotidianamente ci capita di scegliere, più o meno oculatamente, i servizi a cui ci vogliamo affidare e/o i dati che vogliamo condividere con essi (o che a volte ci troviamo costretti a condividere per poter accedere a quel determinato servizio).
Quindi ci abbiamo pensato bene, abbiamo (forse) calcolato i rischi e siamo contenti del nostro nuovo servizio di archiviazione in cloud di tutte le nostre foto. In un mondo ideale ci fermeremmo qui e saremmo davvero più che felici e ci sentiremmo abbastanza sicuri che, grazie alle nostre credenziali, nessuno potrà accedere alla nostra vita privata. Purtroppo la realtà è un po’ diversa ed in essa accade spesso che il nostro tanto caro servizio online venga preso di mira da un attacco informatico.
In uno scenario simile, la nostra password non risulterà sufficiente a difendere la nostra privacy.
Perchè una password non è sufficiente ?
Una password può essere semplicemente indovinata (alzi la mano chi non ha mai usato password banali come la propria data di nascita o parole come “password” o “12345678”….) o, nel caso fosse più complessa, potrebbe comunque essere rubata da un database che è stato posto sotto attacco. A questo punto i dati che l’utente ha deciso di condividere con il servizio che ha subito l’attacco sono totalmente esposti e se consideriamo che nella maggior parte dei casi l’utente medio utilizza la medesima password per tutti i servizi online a cui si registra è facile capire come i malintenzionati possono facilmente avere accesso a tutti i nostri dati presenti sia sul servizio vittima di attacco che in altri portali magari più robusti ed a prova di attacchi informatici ma resi vulnerabili dalla nostra tanto comoda password “universale”.
La frequenza con cui vengono esposte le nostre password da portali e/o servizi più o meno ritenuti sicuri è più alta di quanto non si immagini. Per avere un’idea e per sapere se, nostro malgrado, la nostra password è finita in mani sbagliate, basta visitare il sito haveibeenpwned per conoscere se il nostro indirizzo email è stato esposto oppure qui per verificare la stessa cosa ma per le nostre password.
Come possiamo allora proteggere veramente i nostri dati ? Esiste un modo ? La risposta è si ed ecco dove entra in gioco l’autenticazione a 2 fattori.
Che cosa è l’autenticazione a 2 fattori ?
L’autenticazione a 2 fattori (abbreviato 2FA dall’inglese 2 Factor Authentication), come suggerisce la parola stessa è un metodo per la quale l’autenticazione e quindi l’accesso ad un determinato servizio avviene tramite l’inserimento di 2 fattori, la nostra consueta password (magari, reduci dalla brutta esperienza, più complessa e diversa per ogni servizio) seguita da un secondo fattore che può essere uno tra i 3 di seguito elencati in ordine crescente di sicurezza:
- “Something you know” cioè qualcosa che conosci come un codice PIN, una seconda password o la risposta ad una domanda segreta concordata in fase di registrazione al servizio;
- “Something you have” cioè qualcosa che solo tu possiedi come ad esempio un dispositivo hardware dedicato come quelli forniti da alcune banche per l’accesso e/o per poter effettuare operazioni dispositive, oppure semplicemente il tuo smartphone, che tramite una “companion” app del servizio è in grado di generare un token di accesso, o ricevendo una notifica push con la richiesta di autorizzazione/negazione al servizio richiesto o con un app generica in grado di generare un codice provvisorio (questo ultimo punto verrà approfondito a breve…);
- “Something you are” cioè qualcosa che ti caratterizza come un impronta digitale, la scansione dell’iride o una scansione vocale.
Risulta chiaro che, potendo scegliere il servizio a cui affidarsi, è preferibile uno che fornisca questo livello di sicurezza aggiuntivo (ovvero l’implementazione di una forma di 2FA con uno dei fattori sopra elencati). Un interessante sito a cui fare riferimento in tal senso è twofactorauth.org, che mantiene un elenco aggiornato ed ordinato per categoria di portali e servizi con il dettaglio della tipologia di 2FA adottata.
Come difendersi nella pratica
Nella maggior parte dei casi, per quanto riguarda i servizi che implementano la 2FA, essi ricorrono all’uso di un codice TOTP (Time-based One Time Password) cioè un codice o password valida una sola volta che scade in ogni caso tipicamente entro 1 minuto e generata da un algoritmo a partire da una chiave segreta condivisa della lunghezza minima di 128 bit attraverso una funzione di hash basata su HOTP. Quando un servizio implementa il TOTP per la 2FA (ad esempio Twitter) non è necessario ricorrere all’app del servizio per la generazione di questo codice (anche perchè in questo caso, tranne pochissime eccezioni, non ne viene fornita una per questo scopo).
Esistono invece diverse app che sono dedicate a questa funzionalità o che la comprendono. Un elenco di app non esaustivo ma che comprende sicuramente i principali “attori” in questo senso sono Authy, Google Authenticator ed Enpass.
La mia scelta personale ricade su Authy per semplicità d’uso e versatilità ma utilizzo anche Enpass sia come sistema di backup del precedente (nella remota ipotesi che l’app non funzioni temporaneamente) sia come gestore di password in generale (Authy fornisce solo supporto alla 2FA).
2FA alla IESSOLUTIONS
Sui nostri prodotti che prevedono autenticazione come ad esempio la classe di prodotti Jixel abbiamo già di fatto implementato l’2FA con l’introduzione del supporto allo SPID che molto probabilmente verrà accompagnato nel prossimo futuro da un’autenticazione a due fattori nativa tramite TOTP.