Oggi non è più sufficiente proteggere i propri account con una password forte: è opportuno – anzi necessario – utilizzare l’autenticazione forte (strong authentication), nota anche come autenticazione a due fattori (2FA: two factor authentication).
Indice degli argomenti
Le debolezze delle “semplici” password
Dovrebbe essere ormai noto a tutti quanto sia importante usare password molto complesse e sempre diverse. Così come diventa indispensabile usare strumenti per riuscire a ricordare le tante password (e tutte differenti) che ci troviamo a gestire.
Si stima che oggi un utente medio abbia circa un centinaio di password: impossibile riuscire a ricordale tutte. Per questo sono di grande aiuto i password manager, applicazioni dedicate a conservare tutte le nostre password in modo sicuro e – ovviamente – crittografato.
Ma se anche mettiamo in pratica le buone regole sopra descritte, non possiamo escludere che una password venga rubata o scoperta. Magari non per causa nostra, ma potrebbe comunque succedere. Sono frequenti i casi di violazione di siti (data breach) con il furto massivo di migliaia o milioni di password: in questi casi le nostre password finiscono nel mercato nero del web e qualcuno potrebbe usarle.
Per rendersene conto potrebbe bastare una visita al famoso sito Have i been pwned? (il cui nome si potrebbe tradurre con: “Sono stato violato?”).
É stato realizzato dall’esperto australiano di cyber security Troy Hunt a fine 2013 e oggi contiene circa 9,5 miliardi di account violati (raccolti da tutti i data breach di cui si ha notizia).
Se uno username che utilizziamo per i nostri account è presente nell’elenco, dobbiamo essere consapevoli che assieme a quello username anche una qualche nostra password sarà stata rubata.
Un’autenticazione basata solo su password è dunque intrinsecamente debole, anche se la password impostata è robusta, perché la sicurezza dell’account dipende da un solo fattore, appunto la password.
Per innalzare i livelli di sicurezza sono state introdotte perciò le tecniche di “strong authentication” o autenticazione a due o più fattori.
Che cos’è l’autenticazione a due fattori
Definita anche 2FA o MFA (Multi-Factor Authentication), rappresenta un’ulteriore sicurezza ed è oggi il sistema di protezione più sicuro che abbiamo a disposizione per proteggere i nostri account.
Come detto in premessa, non può più essere considerata un “lusso” da applicare solo negli account bancari, ma dovrebbe essere utilizzata quanto più possibile, soprattutto per tutti quegli account – personali e aziendali – nei quali si trovano dati importanti. Quelli da proteggere con maggior attenzione sono gli account e-mail (se la nostra e-mail viene violata, tutta la nostra vita risulterà esposta), i servizi cloud e qualsiasi account aziendale.
Vedremo in seguito come ormai tutti i siti importanti rendono disponibile l’autenticazione a due fattori in forma facoltativa (quindi da attivare come opzione aggiuntiva).
Per accedere a qualunque sistema digitale (computer, bancomat, siti web o altro) dovremo dapprima “presentarci” inserendo il nostro username. Poi dovremo “dimostrare” che siamo proprio noi: questa è la fase di “autenticazione” che può avvenire in tre diversi modi:
- Conoscenza: “Una cosa che sai”, per esempio una password o il PIN.
- Possesso: “Una cosa che hai”, come uno smartphone o un token di sicurezza (quelle piccole “chiavette” che ci davano le banche e che generavano un codice a 6 cifre).
- Inerenza: “Una cosa che sei”, come l’impronta digitale, il timbro vocale, il viso, l’iride, o qualunque altro dato biometrico.
In molti casi l’autenticazione avviene con la sola password: si tratta di autenticazione ad un fattore.
Si parla invece di 2FA se si usano almeno due dei tre fattori sopra elencati. Ma non basta: la condizione affinché si possa definire “autenticazione a due fattori” si verifica solo quando i due fattori utilizzati sono di matrice differente: in altre parole se, per esempio, si usa “Una cosa che sai” + “Una cosa che hai”.
Mentre non può essere – a rigore – considerata 2FA un’autenticazione fatta con due password (perché due fattori della stessa natura).
Esiste anche l’autenticazione a tre fattori (3FA), ovviamente se vengono richiesti tre fattori.
È molto meno usata, uno dei casi più noti in cui viene impiegata è nello SPID (il Sistema Pubblico di Identità Digitale), ma solo quello di livello 3 (disponibile con Poste Italiane e Aruba).
Qui l’autenticazione viene basata sui tre fattori che sono: password, l’App PosteID e il PIN SPID 3. Viceversa, la versione 2 di SPID utilizza la 2FA: password e l’App PosteID.
Come funziona l’autenticazione a due fattori
Utilizzare la 2FA non è difficile e non abbiamo quindi alcun motivo per non adottarla: dopo aver inserito la password (primo fattore) del proprio account, sarà richiesto di digitare un secondo fattore, che nella maggior parte dei casi è un codice numerico. Questo secondo fattore in genere viene ottenuto attraverso lo smartphone (sotto forma di sms o tramite un’apposita applicazione) o tramite un token fisico.
A differenza della password, il secondo codice è di fatto inattaccabile, perché generato in maniera pseudocasuale secondo uno specifico algoritmo ed ha una durata molto limitata nel tempo (solitamente 30 secondi). Per questo motivo, lo si definisce anche OTP: “one time password”.
Il secondo fattore può essere – in alternativa – di tipo biometrico (”una cosa che sei”). Ne abbiamo un esempio nelle applicazioni per smartphone che ci forniscono le banche: per aprire l’app e anche per eseguire operazioni dispositive (ad esempio: fare un bonifico), ci viene richiesta la seconda autenticazione con l’impronta digitale o con il riconoscimento facciale.
Come ottenere il secondo fattore di autenticazione di tipo numerico
Il secondo fattore in forma numerica (one time password) è la soluzione più frequentemente usata nella 2FA.
Ci sono modalità differenti per ottenerlo:
OTP con Sms, ma meglio evitare
Attraverso un SMS che ci viene inviato sul nostro smartphone: è una modalità molto diffusa, ma è indiscutibilmente la meno sicura. Ciò a causa della ormai nota vulnerabilità del protocollo Signalling System No 7 (SS7). Inoltre, richiede di avere lo smartphone connesso alla rete cellulare. Ma il vero motivo che rende sconsigliabile questo metodo è soprattutto un altro: la truffa ormai frequente e conosciuta come SIM Swap Fraud. In pratica, un malintenzionato può riuscire a trasferire da una SIM card a un’altra il nostro numero di telefono. Portare a termine un’operazione di SIM swapping illegittima significa ottenere il completo accesso al numero di telefono del legittimo (e ignaro) proprietario di tale numero. Soprattutto permette di ricevere l’SMS con i codici di autenticazione a due fattori, ovviamente per realizzare operazioni bancarie.
Il proprietario dello smartphone si troverà con il dispositivo muto e disconnesso dalla rete. Quando si sarà reso conto che la sua SIM non è più attiva potrebbe essere troppo tardi ed i soldi già scomparsi dal suo conto corrente.
Applicazioni dedicate per ottenere gli OTP
Evitiamo dunque di scegliere l’opzione SMS ed utilizziamo invece applicazioni dedicate. Quando il sito rende disponibile questa opzione (non è sempre possibile, ma possiamo verificarlo attraverso il sito Two Factor Auth), consiglio di sceglierla, perché è il metodo più pratico, non richiede la copertura telefonica ed è sicuro. Tali applicazioni sono definite “Soft Token”: in pratica si comportano esattamente come i token hardware (vedi figura) che ci venivano forniti dalle banche: generano un OTP a 6 cifre, associato ad uno specifico account.
Esistono numerose applicazioni del genere: le più note – tutte gratuite – sono Authy, Google Authenticator, Microsoft Authenticator. Anche i migliori password manager offrono questa funzionalità.
Token usb per i due fattori: lo standard del futuro
Con un Token hardware: non si usano più quelli che venivano in passato forniti dalle banche, che sono in via di dismissione, perché considerati non sicuri (ne spiegheremo in seguito il motivo). Sono invece stati creati nuovi tipi di token, secondo lo standard FIDO U2F Security Key. Trattasi di uno standard di autenticazione open source, creato inizialmente da Google e da Yubico e successivamente confluito nella FIDO (“Fast IDentity Online”) Alliance.
Ne esistono numerosi modelli: i più semplici richiedono l’inserimento in una porta USB (in figura una U2F Security Key prodotta da Yubico), quelli più avanzati (per esempio YubiKey) operano anche con NFC (Near Field Communication) o via Bluetooth come i Titan Security Key di Google (quindi possono essere utilizzati anche con gli smartphone che non hanno la porta USB). I costi partono dai 20 dollari fino a 50-60 dollari ed oltre.
Non è certamente il sistema più economico. Ma il limite maggiore è dovuto al fatto che si tratta di una tecnologia recente, quindi non ancora utilizzabile con tutti i servizi. Solo alcuni browser la supportano, tra questi Chrome, Firefox ed Opera.
Diventerà comunque lo standard del prossimo futuro, anche perché è già conforme ai livelli crittografici più elevati, tra cui la FIPS 140-2 (“Validation Ensures Strong Security and Compliance”) ed il livello 3 di autenticazione (AAL3) indicato nelle linee guida NIST SP800-63B (di cui parleremo in seguito). Garantisce anche la conformità alla direttiva europea PSD2 per quanto riguarda la Strong Customer Authentication (SCA).
Attenzione, non tutti i servizi accettano questi hardware.
Come attivare l’autenticazione a due fattori
La modalità di attivazione dell’autenticazione a due fattori è – più o meno – sempre la stessa: dopo essersi registrati al sito, si accede alla pagina delle “Impostazioni di Sicurezza” (il nome può anche essere leggermente diverso, ma si tratta sempre della sezione dove andiamo, per esempio, per modificare la password).
Si sceglie di attivare la 2FA, dopodiché il sito ci chiederà in che modo vogliamo ricevere il codice: il metodo più diffuso in tutti i siti è attraverso un SMS, quindi dovremo indicare uno smartphone “affidabile” al quale ci verrà inviato il codice. Consiglio di registrare sempre DUE o più numeri di telefono, per maggior sicurezza (poi, ad ogni successivo login, ci verrà chiesto di scegliere su quale dispositivo vogliamo ricevere il codice).
Alcuni siti permettono di scegliere, in alternativa al codice via SMS, l’uso delle succitate applicazioni (soft token) in grado di generare il codice temporaneo (OTP). Come detto, se disponibile, è la scelta preferibile: in questo caso l’abbinamento viene fatto attraverso la lettura di un QRcode che compare sullo schermo del computer e che dovremo inquadrare con la camera dello smartphone, nel quale abbiamo preventivamente aperto l’applicazione.
Nella fase di attivazione dell’autenticazione a due fattori in genere (ma ogni sito potrebbe avere comportamenti differenti) ci verrà fornita anche una chiave di recupero (molto complessa, da conservare a parte).
Di regola per la 2FA si usano Password + Codice OTP, la chiave di recupero è la “soluzione di emergenza” da utilizzare solo in caso di: password dimenticata o dispositivo smarrito o rubato.
Ai successivi login, oltre a username e password, dovremo inserire il codice OTP a 6 cifre visualizzato dall’applicazione e che ogni 30 secondi verrà rigenerato.
Esiste – quasi in tutti i siti – una comoda opzione che ci permetterà di non dover più inserire nei login successivi il codice OTP: questa opzione si chiama in genere: “considera questo dispositivo attendibile” (o qualcosa di simile) e va attivata una tantum.
In pratica, poiché l’autenticazione a due fattori è finalizzata ad evitare accessi da computer o dispositivi diversi dai nostri, potremo fare in modo che il sito riconosca che stiamo facendo il login dal nostro “abituale” dispositivo e non ci richieda più il secondo fattore di autenticazione.
I servizi che offrono l’autenticazione a due fattori
Ad eccezione dei servizi di internet banking, che ce la impongono, in tutti gli altri siti non siamo obbligati ad usare l’autenticazione a due fattori.
È un’opzione facoltativa, ma che consiglio caldamente, almeno per i servizi più importanti quali, per esempio: Amazon, Apple ID (iCloud), Dropbox, Evernote, Facebook, Google, LinkedIn, Microsoft, PayPal, Twitter, Yahoo!, WordPress eccetera.
In pratica, tutti i siti importanti la rendono disponibile (ed in molti casi la consigliano).
Sul sito Two Factor Auth si può consultare l’elenco completo delle centinaia di siti ove è possibile attivarla, suddivisi per categorie. Inoltre, per ogni sito sono indicate le opzioni disponibili (SMS, hard token, soft token ecc.).
Un ulteriore vantaggio derivante dall’uso della 2FA: se la attiviamo, non ci verranno più chieste le deprecate domande di sicurezza. Un ottimo motivo in più per sceglierla.
Autenticazione a due fattori: le indicazioni del NIST
Possiamo trovare utili indicazioni sull’uso dell’autenticazione a due fattori anche nelle linee guida emesse dal NIST.
Ricordiamo che il NIST (National Institute of Standards and Technology) è un’agenzia del governo degli Stati Uniti d’America che si occupa della gestione delle tecnologie. Fa parte del DoC, Department of Commerce (Ministero del Commercio).
Il NIST è nato nel 1901 ed ha come compito istituzionale quello di sviluppare standard tecnologici. In particolare, pubblica i Federal Information Processing Standard (FIPS), che definiscono gli standard obbligatori del governo statunitense.
Ovviamente gli standard definiti dal NIST non sono cogenti in Europa, tuttavia per la loro autorevolezza sono considerati un punto di riferimento a livello non solo USA, ma in tutto il mondo.
Il NIST tratta dell’uso delle password e dell’autenticazione a due fattori nella SP 800-63 ed in particolare nella SP 800-63-3 “Digital Identity Guidelines”, disponibile a questo link: e nella SP 800-63B “Digital Identity Guidelines – Authentication and Lifecycle Management”.
Nella SP 800-63-3 la tabella 5.2 definisce i tre livelli AAL (Authenticator Assurance Level), mentre al paragrafo 6.2 “Selecting AAL” vengono indicate le modalità per selezionare i livelli di autenticazione più appropriati per ogni tipo di servizio digitale.
I livelli AAL 2 e 3 richiedono l’uso dell’autenticazione forte a più fattori.
Nella SP 800-63B vengono esaminate le varie modalità disponibili per l’autenticazione a due fattori. Al cap. 4.2 viene illustrata la AAL 2, mentre al cap. 4.3 si tratta la AAL 3.
Viene stabilito che quando si usa una combinazione di due fattori di autenticazione, singolo, uno deve essere un segreto memorizzato, cioè una password (capitolo 5.1.1), mentre il secondo autenticatore deve essere basato sul possesso (cioè “qualcosa che hai”). Quindi il richiedente (colui che fa il login) deve dimostrare il possesso e il controllo di due distinti fattori di autenticazione, che abbiano il requisito di “garantire una resistenza all’impersonificazione” (in altre parole: impedire che qualcuno li possa usare al nostro posto).
Al successivo capitolo 5.1.3 Out-of-Band Devices viene deprecato l’utilizzo della linea telefonica per ricevere il secondo fattore OTP, proprio per il rischio di SIM swap (di cui abbiamo parlato in precedenza).
Viene invece consigliato l’utilizzo di un “Multi-Factor OTP Device”, come spiegato al cap. 5.1.5: potrebbe trattarsi anche di uno smartphone (“una cosa che hai”), che attraverso un’applicazione apposita genere un codice OTP “time-based”(come precedentemente spiegato).
Qui si evidenzia un aspetto molto importante: per maggior sicurezza lo smartphone deve essere preventivamente attivato da “qualcosa che sai” (una password di sblocco) oppure da “qualcosa che sei” (l’impronta digitale, la faccia, ecc.).
Quest’ultimo non è un passaggio da sottovalutare e ci fa capire perché, con l’entrata in vigore della Direttiva (UE) 2015/2366 (PSD2) non sono più ammessi i token hardware (le chiavette in plastica che generavano un codice a 6 numeri) per l’autenticazione nei siti bancari: erano dispositivi non sicuri, dal momento che potevano essere attivati senza alcun codice di sicurezza. Quindi in caso di furto o smarrimento, chiunque avrebbe potuto utilizzarli.
La Strong Customer Authentication (SCA) nel mondo bancario
Sappiamo che sono state le banche ad introdurre per prime l’autenticazione a più fattori.
Ma recentemente questa è stata rivista e potenziata per effetto della Direttiva (UE) 2015/2366 nota come PSD2 (Payment Services Directive 2).
Questa direttiva dell’Unione Europea è stata recepita dall’Italia con il D.Lgs. 15 dicembre 2017, n. 218 e sostituisce la precedente Direttiva 2007/64/CE (c.d. Payment Services Directive).
La PSD2 è ora in vigore in tutti gli stati dell’Unione Europea, a seguito dell’adozione del Regolamento delegato (UE) 2018/389 pubblicato il 27 novembre 2017. In quanto Regolamento (e non direttiva) questo è obbligatorio e direttamente applicabile in ciascuno degli Stati membri dal 14 settembre 2019 (come specificato in art.38).
Successivamente a questa data, molti utenti hanno ricevuto, da parte della propria banca, comunicazioni che hanno reso più severe (e complicate!) le modalità di accesso ai servizi di internet banking: ciò è proprio la diretta conseguenza dell’applicazione della PSD2.
Infatti, questa direttiva affronta in modo importante l’autenticazione a più fattori, che viene definita Strong Customer Authentication (SCA). Ora è stata regolamentata in modo più forte e resa obbligatoria per le operazioni bancarie online (via internet e mobile).
Viene definita in modo molto preciso nella PSD2 all’art.4 comma 30 come:
«autenticazione forte del cliente»: un’autenticazione basata sull’uso di due o più elementi, classificati nelle categorie della conoscenza (qualcosa che solo l’utente conosce), del possesso (qualcosa che solo l’utente possiede) e dell’inerenza (qualcosa che caratterizza l’utente), che sono indipendenti, in quanto la violazione di uno non compromette l’affidabilità degli altri, e che è concepita in modo tale da tutelare la riservatezza dei dati di autenticazione.
Le condizioni nelle quali deve essere obbligatoriamente applicata sono definite all’art. 97:
“Gli Stati membri provvedono a che un prestatore di servizi di pagamento applichi l’autenticazione forte del cliente quando il pagatore:
- accede al suo conto di pagamento on line;
- dispone un’operazione di pagamento elettronico;
- effettua qualsiasi azione, tramite un canale a distanza, che può comportare un rischio di frode nei pagamenti o altri abusi”.
L’art. 74 stabilisce le responsabilità del pagatore e quelle del “prestatore di servizi di pagamento” (PSP: payment service provider). Quest’ultimo viene obbligato ad esigere un’autenticazione forte. In particolare (comma 2): “Se il prestatore di servizi di pagamento del pagatore non esige un’autenticazione forte del cliente, il pagatore non sopporta alcuna conseguenza finanziaria salvo qualora abbia agito in modo fraudolento. Qualora non accettino un’autenticazione forte del cliente, il beneficiario o il suo prestatore di servizi di pagamento rimborsano il danno finanziario causato al prestatore di servizi di pagamento del pagatore”.
Concludiamo l’esame della PSD2 citando l’art. 98: questo assegna ad EBA (European Banking Authority) il compito di emanare le “Norme tecniche di regolamentazione in materia di autenticazione e comunicazione”.
EBA ha rilasciato le Regulatory Technical Standards (RTS), adottate il 27 novembre 2017 dalla Commissione Europea con il regolamento delegato (UE) 2018/389 e quindi cogenti dal 14 settembre 2019.
Le RTS specificano appunto i requisiti delle procedure di autenticazione forte (SCA) e le relative esenzioni d’uso, nonché i requisiti per la protezione delle credenziali di sicurezza degli utenti.
Senza entrare nel dettaglio delle RTS, possiamo comunque affermare che le regole di sicurezza per la SCA sono – in pratica – quelle che abbiamo illustrato nei punti precedenti: dovranno, per esempio, essere eliminati i vecchi token hardware che, come abbiamo spiegato, non garantiscono un adeguato standard di sicurezza.
Molte banche hanno già ritirato questi token, altre lo faranno a breve. Vengono sostituiti dalle applicazioni installate sugli smartphone che richiedono un meccanismo di sblocco da parte dell’utente (o da sistemi con un equivalente livello di sicurezza).
Le RTS fissano anche le deroghe all’uso della SCA. Questa non è obbligatoria per:
- micropagamenti (non superiori a 30 euro);
- pagamenti per trasporti e parcheggi effettuati presso terminali non presidiati (per es. il biglietto della metro).
Inoltre, il PSP può essere esentato dall’applicazione della SCA a condizione che abbia condotto una specifica analisi del rischio associato alla transazione stessa (la c.d. TRA: Transaction Risk Analysis).
Il PSP deve inoltre tenere conto, per la valutazione in tempo reale, dei seguenti fattori di rischio:
- le precedenti abitudini di spesa dell’utente (tipologie di importi e servizi di pagamento fruiti);
- il luogo in cui si trovano sia il pagatore sia il beneficiano nel momento del pagamento, il mezzo ed il canale usati per compierlo;
- segnali di un eventuale uso scorretto e abnorme dello strumento di pagamento.