2-Factor Authentication (2FA): cos’è, come funziona, perché utilizzarla Cosa si intende per autenticazione a due fattori (2FA, MFA) perché dovremmo utilizzarla ovunque possibile per rendere la nostra esperienza online (e non) più sicura

2-Factor Authentication (2FA): cos'è, come funziona, perché utilizzarla

L’autenticazione a due fattori (2FA), talvolta denominata verifica in due passaggi o autenticazione a doppio fattore, è uno strumento di sicurezza in base al quale all’utente è richiesto di fornire due diversi fattori di autenticazione per verificare la propria identità. Può essere utilizzata per rendere più sicuro l’accesso a qualsiasi tipo di risorsa con cui abbiamo modo di interagire: siti e servizi web, account finanziari o bancari, cassette di sicurezza, porte o cancelli di appartamenti e uffici, e così via.

In questo articolo cercheremo di spiegare le caratteristiche di questa modalità di accesso, i motivi che la rendono notevolmente più sicura degli strumenti di autenticazione tradizionali e come sia possibile utilizzarla per proteggere le nostre risorse online e offline.

Quando la password non basta

Come probabilmente già saprai, la maggior parte dei siti web nel 2019 si basa ancora sul buon vecchio metodo di autenticazione “username & password”, che è tra le peggiori tecniche possibili per proteggere i nostri dati. Ecco un elenco di ragioni che spiegano perché tale metodo non dovrebbe più essere utilizzato nel 2019:

  • Il furto di credenziali (o l’ottenimento fraudolento di credenziali “deboli”) sono le armi preferite dagli hacker, utilizzate nel 95 percento di tutti gli attacchi ai siti e servizi web.
  • Il furto di password è in costante evoluzione grazie all’utilizzo, da parte degli hacker, di strumenti come keylogging, phishing, pharming e così via, che negli ultimi anni sono diventati sempre più accessibili, diffusi e facili da utilizzare.
  • Il vasto numero di password che dobbiamo usare (e memorizzare) durante la nostra vita quotidiana (personale + aziendale) spinge utenti e dipendenti a eseguire molti comportamenti non sicuri, come ad esempio: utilizzo di password facili da ricordare (e quindi deboli); salvataggio delle credenziali nei browser / dispositivi di navigazione utilizzati; memorizzazione delle password in luoghi non sicuri (post-it, fogli di carta, file di testo); e così via.

Benché la maggior parte di tali minacce possa essere mitigata utilizzando una password complessa, la vera debolezza di questo approccio sta nel fatto che prevede un solo livello di protezione da un possibile accesso non autorizzato: questo significa che basta un singolo errore da parte nostra per consentire a un malintenzionato l’accesso non autorizzato ai nostri dati.

Fattori di Autenticazione

Un fattore di autenticazione è un metodo con cui un dispositivo di sicurezza riconosce l’identità di un utente al fine di concedere (o negare) l’accesso alle risorse richieste. Al giorno d’oggi, i fattori di autenticazione vengono generalmente suddivisi in tre tipologie:

  • Tipo 1 – Qualcosa che si conosce (something you know): include ogni tipo di password, PIN, combinazione, parola chiave, parola d’ordine, frase o risposta segreta, gesture, e così via. PIù in generale, qualsiasi cosa sia possibile ricordare e quindi scrivere, digitare, pronunciare, fare, mettere in atto o ricostruire in base a tecniche di memorizzazione.
  • Tipo 2 – Qualcosa che si possiede (something you have): include qualsiasi oggetto fisico: chiavi, smartphone, smart card, dispositivi USB, token, app o strumenti di autenticazione (come Google Authenticator) e così via.
  • Tipo 3 – Qualcosa che è parte di noi (something you are): include tutto ciò che fa parte del corpo umano e che può essere utilizzato per confermare l’identità di una persona: impronte digitali, scan retina, scan iride, scansione del palmo, riconoscimento vocale, riconoscimento facciale e così via.

Come si può facilmente comprendere, ciascuna di queste misure di sicurezza può essere teoricamente “crackata” da un malintenzionato o cyber-criminale: password e PIN possono essere indovinati, dedotti o ottenuti tramite tecniche di spionaggio o strumenti software appositi; pressoché qualsiasi oggetto fisico può essere rubato o clonato; le parti del corpo, benché generalmente considerate più sicure, possono essere “rubate”,  clonate o riprodotte in vari modi, come insegnano molti libri e film di spionaggio o che descrivono furti effettuati con l’impiego di tecnologie particolarmente sofisticate.

Two-Factor vs Multi-Factor

Sulla base di quanto detto poc’anzi, la differenza tra autenticazione a due fattori (Two-Factor Authentication o 2FA) e autenticazione a più fattori (Multi-Factor Authentication o MFA) risulta piuttosto semplice da comprendere: la prima non è altro che una implementazione della seconda che richiede la presenza di due tipologie di fattori differenti tra quelle descritte sopra. Similmente, l’autenticazione a tre fattori (Three-Factor Authentication o 3FA) è anch’essa un tipo di MFA che richiede la presenza di tutte e tre le tipologie identificate.

Autenticazione Multi-Password

2FA and MFA non dovrebbero essere confuse con l’autenticazione multi-password (Multi-Password Authentication o MPA), una metodologia di accesso che richiede l’inserimento di due (o più) set di credenziali (username e password differenti). Un classico esempio di Multi-Password Authentication è quello di un client software protetto da password e installato su un PC desktop di un utente specifico: per accedere al sistema, è dunque necessario prima effettuare l’accesso a Windows e poi il login al client. Un altro esempio è quello di una connessione remota (Remote Desktop) effettuata attraverso una connessione VPN, con l’utente che deve prima accedere alla VPN (utilizzando le credenziali apposite) e poi iniziare la connessione RDP autenticandosi al sistema remoto (Active Directory, VNC, SSH e/o altri metodi).

Pur trattandosi di un sistema indubbiamente più sicuro di qualsiasi approccio single-password, il multi-password authentication si basa su una singola tipologia di fattore di autenticazione ed è quindi riconducibile all’insieme delle metodologie Single-Factor Authentication (SFA) e quindi più vulnerabile di un approccio basato sull’utilizzo combinato di due o più fattori.

Autenticazione vs Autorizzazione

Per comprendere meglio la necessità di passare da un metodo di autenticazione a fattore singolo a una tecnica basata su due (o più) fattori può essere utile analizzare la differenza tra i moderni concetti di autenticazione e autorizzazione. In linea generale, il termine autenticazione si riferisce a qualsiasi processo di verifica che un controllore (sia esso un essere umano o un sistema automatizzato) effettua per stabilire che l’utente sia chi (o cosa) dice di essere. Questo è vero anche in informatica e nel contesto del World Wide Web (WWW), dove la parola authentication è utilizzata per indicare qualsivoglia tecnica utilizzata da un sito web o servizio per raccogliere un set di credenziali da un utente (solitamente attraverso un browser web o altro client) e verificarle internamente. Il processo di autenticazione non va confuso con quello di autorizzazione, il cui scopo  è quello di confermare che l’utente possa avere accesso all’azione che desidera eseguire. In altre parole, l’autenticazione riguarda l’identità dell’utente, mentre l’autorizzazione riguarda ciò che l’utente è autorizzato a fare. I due concetti, ovviamente, sono in molti casi collegati: una volta stabilita l’identità dell’utente (authentication), è solitamente possibile determinare a quali risorse può avere accesso (authorization); al tempo stesso, poiché ciascuno di loro presenta delle caratteristiche (e delle modalità di verifica) diverse, è opportuno tenerli distinti.

Per comprendere meglio la distanza logica tra questi due concetti apparentemente simili possiamo prendere a esempio due casi reali, piuttosto comuni nel WWW:

  • Un sito web offre alcuni contenuti gratuiti (con registrazione obbligatoria) ed altri a pagamento ai propri utenti: questi ultimi sono sempre autenticati, ma l’autorizzazione ad accedere ai contenuti è diversa tra chi ha effettuato il pagamento e chi non lo ha fatto. In altre parole, il sito riconosce l’identità dell’utente (autenticazione) e la utilizza per determinare se quest’ultimo e autorizzato all’accesso di determinate risorse oppure no: nello specifico, l’utente non pagante è un classico esempio di utente autenticato e, al tempo stesso, non autorizzato.
  • Un sito web offre alcuni contenuti disponibili pubblicamente a chiunque, anche senza obbligo di registrazione. L’utente che accede ai suddetti contenuti è un tipico esempio di utente non autenticato, eppure autorizzato.
Per ulteriori approfondimenti sui concetti di autenticazione e autorizzazione, altri esempi, login tramite provider di terze parti (Facebook, Google) e una panoramica delle tecniche di autenticazione e autorizzazione più diffuse, suggeriamo di leggere questo articolo.

Alla luce di questo discorso, il problema principale delle tecniche di autenticazione a fattore singolo diventa quantomai evidente: tale approccio non fornisce al sistema strumenti adeguati per confermare l’identità dell’utente in modo ragionevolmente sicuro (autenticazione), rischiando in tal modo di concedere l’autorizzazione di accesso a persone o entità diverse. Si tratta di un problema estremamente comune della maggior parte dei siti web che richiedono un login a fattore singolo basato su username e password: credenziali che vengono spesso rubate e talvolta persino volontariamente cedute ad altri (colleghi, familiari, ecc.) per i motivi più disparati: se vi è mai capitato di ordinare un pranzo su JustEat o di aver effettuato un acquisto su Amazon utilizzando un account di amico o aziendale, sapete già di cosa stiamo parlando.

Questo tipo di comportamenti sono quasi sempre indice di un approccio alla sicurezza informatica estremamente superficiale, che può essere considerato in qualche modo “accettabile” soltanto in alcuni contesti molto specifici  e – soprattutto – che non prevedono la presenza di dati personali o altrimenti riservati. In tutti gli altri casi, è indubbio come un approccio più consapevole – e la l’adozione di un metodo di autenticazione a più fattori – sia certamente più indicato. La necessità di adottare metodologie di accesso più sicure è stata recentemente riconosciuta anche dal Regolamento Europeo per la Protezione dei Dati (GDPR), che nell’Art. 32 – Sicurezza del trattamento impone ai titolari e ai responsabili del trattamento dei dati di adottare le misure più adeguate per limitare l’accesso ai dati personali al solo personale autorizzato.

Questo articolo fa parte di una serie di approfondimenti e riflessioni sul GDPR e sulle modalità di applicazione del Nuovo Regolamento Europeo della Protezione dei Dati in Italia, con focus specifico sulla compliance rispetto alla normativa previgente in materia civile e penale. Leggi gli altri articoli.

 

About Ryan

IT Project Manager, Web Interface Architect e Lead Developer di numerosi siti e servizi web ad alto traffico in Italia e in Europa. Dal 2010 si occupa anche della progettazione di App e giochi per dispositivi Android, iOS e Mobile Phone per conto di numerose società italiane. Microsoft MVP for Development Technologies dal 2018.

View all posts by Ryan

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.