Quali sono le alternative alle password più comunemente utilizzate?

Antonio Antonino
Let’s work IT out
14 min readFeb 20, 2021

--

La parte A, dove si parla di cosa siano le password e di quali siano i loro problemi, è consultabile qui.

Come è stato detto nella parte A, le password rappresentano una soluzione al problema dell’autenticazione (ovvero della verifica dell’identità di un utente) che, sebbene molto efficiente per sistemi digitali, è decisamente non ottimale per l’utilizzo da parte di esseri umani. Per cui, in questo articolo, esploreremo quali siano le principali alternative alle password attualmente utilizzate, come funzionano (in linea di massima), e quali sono i loro vantaggi e svantaggi rispetto all’utilizzo delle password. Nello specifico, le soluzioni presentate includono Single Sign-On (SSO, o social login) e l’utilizzo di fattori biometrici (ad esempio impronte digitali).

Single Sign-On (SSO)

Probabilmente l’alternativa alle password più conosciuta e utilizzata è quella del Single Sign-On, altresì conosciuta come Social Login. È il processo utilizzato ogni volta che si preme il tasto “Accedi con Facebook”, “Accedi con Google”, o simili. Il social login permette a un utente di effettuare il login su una piattaforma utilizzando uno dei propri profili social. Prima di analizzare i pro e i contro di questa soluzione, cerchiamo di capire cosa succede esattamente “dietro le quinte” ogni volta che effettuiamo un login in questa maniera.

Il protocollo, ovvero lo “standard”, che viene utilizzato nei social login prende il nome di OAuth, abbreviazione di Open Authentication. Questo protocollo di autenticazione permette a una piattaforma, per esempio un gioco sul nostro smartphone, di delegare la verifica dell’identità di un utente a una piattaforma esterna, prendendo Facebook come esempio in questo caso. Per cui, il gioco in questione “si fida” di Facebook e del fatto che quest’ultimo abbia tutti gli strumenti necessari per essere in grado di verificare correttamente l’identità del nuovo utente. In più, il protocollo OAuth è stato progettato in maniera tale da rendere estremamente difficile (leggasi impossibile) per un utente falsificare la propria identità affermando che essa sia stata “certificata” da Facebook, in questo esempio. Quindi, per scopi dimostrativi, assumendo di utilizzare un gioco sullo smartphone e di voler utilizzare Facebook (tramite la sua app per smartphone) per creare un nuovo account, ciò che succede nel momento in cui premiamo il tasto “Accedi con Facebook” è il seguente:

  1. Il gioco rimanda l’utente all’app di Facebook.
  2. Se l’utente non ha già precedentemente effettuato il login nell’app di Facebook, quest’ultimo richiede all’utente di effettuare l’autenticazione utilizzando le proprie credenziali di Facebook, ovvero email e password. Questo processo, utilizzando la combinazione tradizionale di email e password, segue una procedura molto simile a quella descritta nella parte A. Nel caso in cui l’utente fosse già un utilizzatore dell’app di Facebook, questo step viene saltato, dato egli ha già precedentemente effettuato l’accesso al social network.
  3. A questo punto l’app di Facebook mostra all’utente quali informazioni il gioco in questione ha richiesto di poter accedere. Tipicamente, queste informazioni includono email, nome e cognome, e lista di amici. Tuttavia, a seconda del tipo di app, essa può richiedere un numero maggiore di dati all’utente. Per cui, è necessario prestare sempre molta attenzione a quali siano le informazioni che un’app richiede quando si effettua l’accesso con Facebook e valutare se le informazioni richieste dall’app siano necessarie o rappresentino comunque un giusto compromesso per i servizi che essa offre. Ciò è importante perché potreste ritrovarvi ad aver fornito accesso alle vostre informazioni personali (per esempio i messaggi) o ad aver autorizzato l’app o il gioco in questione a pubblicare su Facebook o mandare messaggi ai vostri contatti a vostro nome (com’è probabilmente il caso con quegli strani link che vi ritrovate nelle chat con alcuni dei vostri amici). Sebbene questi casi siano rari dato che le app che richiedono informazioni così personali vengono revisionate in maniera abbastanza rigorosa da Facebook, in linea di massima la diffusione di informazioni personali tramite questo metodo è tecnicamente possibile.
  4. Una volta presa visione di quali informazioni il gioco stia cercando di ottenere da Facebook su di esso, l’utente può accettare o modificare le informazioni fornite selezionandole individualmente. Per esempio, se il gioco sta cercando di accedere alla vostra email, al vostro nome, alla vostra lista di amici e alla vostra città di residenza, potete selezionare solo l’email e il vostro nome prima di premere “Continua”. In questo modo, il gioco avrà esclusivamente accesso ai dati che voi avete scelto di condividere. A seconda dell’applicazione, alcune informazioni possono essere richieste in maniera obbligatoria: in quel caso sta all’utente decidere se permettere all’app di accedere a quelle informazioni o se rifiutare completamente e magari utilizzare un metodo di autenticazione alternativo, ad esempio la più tradizionale password, anche se poi sarà comunque richiesto di fornire le stesse informazioni, ma in quel caso nessuno vieta di utilizzare Via Kal come indirizzo di residenza 🤫.
  5. A questo punto, l’app di Facebook rimanda l’utente all’app di gioco, con un codice di autenticazione (non visibile all’utente) che viene generato in maniera casuale e salvato da Facebook e che è specifico per questo utente e questo gioco. Oltre al codice e al corrispettivo utente, Facebook salva anche il tipo di informazioni che l’utente ha acconsentito di condividere (per esempio, indirizzo email e nome).
  6. Il gioco utilizza questo codice per poter richiedere a Facebook i dati dell’utente.
  7. Facebook verifica internamente che il codice sia valido (ovvero che sia un codice che Facebook ha effettivamente generato e che non sia scaduto), e in caso affermativo provvede a fornire al gioco le informazioni di cui ha bisogno e che l’utente ha precedentemente scelto di condividere.
  8. Da questo punto in poi, il processo di autenticazione continua ed è specifico per ogni singola app, per cui non può essere descritto qui.

Un’illustrazione grafica di questi 8 step è mostrata qui sotto, e spero mi perdonerete le scarsissime doti grafiche 🙄🙄🙄.

A sinistra, un esempio della schermata mostrata da Facebook quando un’app vuole ottenere delle informazioni da quest’ultimo, con l’utente che può scegliere quali tra le informazioni facoltative fornire. A destra, un’illustrazione degli 8 step spiegati sopra.

Vantaggi

  • Molto più veloce registrarsi e autenticarsi a una piattaforma, senza dover generare e ricordare una nuova password ogni volta.
  • Integrazione con i propri account social. Per esempio, dando accesso alla propria lista di amici Facebook, è immediatamente possibile sapere quali siano coloro che hanno già scaricato il gioco e magari sfidarli, il che rende il tutto un po’ più avvincente, se si è abbastanza competitivi come il sottoscritto 😎.
  • Possibilità, per l’app o il sito in questione, di accedere a una base di utenti potenzialmente molto più ampia, data la velocità e facilità con cui è possibile per nuovi utenti registrarsi.

Svantaggi

  • Sebbene quasi un terzo della popolazione mondiale usi Facebook, il social login non permette a chi non è in possesso di un account Facebook (o Google, o Twitter) di registrarsi e usare la piattaforma. In questo caso, tipicamente le piattaforme offrono metodi alternativi come le più tradizionali password per questa classe di utenti.
  • Per ogni utente che intende registrarsi, la piattaforma deve fare affidamento su Facebook al momento della registrazione. Questo significa che, se per qualche motivo Facebook non dovesse essere accessibile in quel momento, il processo di registrazione non potrebbe essere completato.
  • Il rischio più grande di tutti è quello di permettere a Facebook di ottenere una quantità incredibile di informazioni circa le interazioni che ogni utente ha con ogni singola piattaforma. A lungo andare, e con il crescere del numero di piattaforme collegate al proprio profilo Facebook, il social network è in grado di tracciare un profilo dettagliatissimo dei suoi utenti, che gli permette di passare al contrattacco con la sua arma più potente: pubblicità mirate (che rappresentano più del 95% dei guadagni dei suoi guadagni ogni singolo anno, quindi…).
  • Strettamente collegato al punto precedente è il rischio di fare completamente affidamento su Facebook per ciò che riguarda la nostra identità digitale. Sebbene molto sicuri, i sistemi di Facebook sono attaccati da milioni di hacker ogni giorno. Se anche parte dell’informazione circa i suoi utenti dovesse finire nelle mani sbagliate, questi utenti malintenzionati sarebbero in grado di accedere alle stesse informazioni a cui Facebook può accedere, con il risultato che la vita privata degli utenti coinvolti potrebbe risultare compromessa per sempre, nei casi più gravi.

Ricapitolando, il social login rappresenta un modo molto veloce e semplice di registrarsi a nuove piattaforme. Questa semplicità deriva dal fatto che sia l’utente che la piattaforma in questione si fidano di Facebook come intermediario. Da un lato, Facebook “promette” all’utente di custodire in maniera “““sicura””” le sue informazioni, e dall’altro permette alla piattaforma di ricevere informazioni veritiere circa i suoi utenti. Tuttavia, la facilità di utilizzo sacrifica di molto la privacy, visto che un utente che fa affidamento su Facebook quale intermediario per la maggior parte delle sue interazioni digitali fornisce egli stesso al social network informazioni super dettagliatissime (e non è un’esagerazione) circa le proprie abitudini, i propri interessi, e le persone con le quali si è più frequentemente in contatto. Personalmente, ritengo che l’utilizzo del social login rappresenti una valida alternativa laddove può portare benefici concreti che, presi nella loro totalità, offrono vantaggi maggiori della perdita di privacy che tale soluzione comporta, come per esempio il login in alcuni dei giochi sullo smartphone che non rivelano nulla di estremamente sensibile o compromettente.

Fattori biometrici

Un’altra tecnologia che sta diventando sempre più utilizzata dagli utenti comuni (ma che è usata da molto più tempo nei sistemi industriali, aziendali e governativi) è quella dell’autenticazione basata su fattori biometrici, come ad esempio l’impronta digitale o il volto. Questa tecnologia ha avuto un forte incremento nel suo utilizzo da quando, un po’ di anni fa, è stata aggiunta come opzione su molti smartphone, sotto forma di lettore di impronte digitali prima e di fotocamera per il riconoscimento facciale in un secondo momento. Tuttavia, i fattori biometrici non si riducono a queste due classi ma, a seconda dei requisiti di sicurezza di uno specifico sistema, possono includere:

  • voce
  • iride (od occhio più in generale)
  • calligrafia
  • battito cardiaco
  • qualsiasi altra cosa che possa unicamente identificare un essere umano

I sistemi di autenticazione che utilizzano uno o più di questi fattori biometrici generalmente implementano diverse fasi, in maniera molto simile a ciò che avviene con i sistemi di autenticazione basati su password. In questo esempio assumiamo che un sistema utilizzi il riconoscimento facciale per autenticare i propri utenti, ma il discorso è molto simile se, al posto del riconoscimento facciale, si considera un’impronta digitale, un’iride, o altri fattori biometrici. Per cui, il sistema di autenticazione in questione implementa la procedura di autenticazione con le seguenti tre fasi, così schematizzate:

  1. Registrazione: per poter utilizzare il riconoscimento facciale, l’utente deve registrare il proprio volto sulla piattaforma. Nei sistemi tradizionali basati su password, questo corrisponde alla scelta della password da associare all’ account di un dato utente. I requisiti che le diverse piattaforme richiedono ai propri utenti in questa fase di registrazione sono fondamentali e determinano la sicurezza dell’intero sistema. Per esempio, per evitare che qualcuno possa registrarsi con la faccia di altra gente, le piattaforme tipicamente richiedono all’utente di compiere in tempo reale azioni quali ruotare la testa, chiudere uno o entrambi gli occhi per un certo periodo di tempo, tirare fuori la lingua, e simili. Aziende come Apple hanno speso anni e anni di ricerca per studiare un modo di aggiungere il riconoscimento facciale sugli iPhone, e qui c’è un video che mostra il processo di registrazione che Apple richiede agli utenti di un iPhone per registrare un volto. In questo modo, è molto difficile per l’ormai famoso hacker malintenzionato riuscire a ingannare il sistema utilizzando altre facce, ottenute tramite foto, video, o altri strumenti, data la complessità delle azioni richieste all’utente (al suo volto) in fase di registrazione.
  2. Trasformazione e salvataggio: come per le password, il volto di un utente non può essere salvato in un’immagine o in una serie di immagini in stile selfie. Questo perché, per un sistema digitale, conservare e processare immagini vere e proprie è una procedura molto inefficiente. Per cui, una volta che l’utente ha superato tutte le “sfide” che il sistema ha richiesto in fase di registrazione del volto, il sistema “trasforma” le informazioni relative al viso dell’utente in un formato che un computer, che non ha parenti né amici, sia in grado di riconoscere in futuro. Questa trasformazione permette al sistema di poter salvare il volto e utilizzarlo per riconoscere lo stesso utente quando si ripresenta in futuro. Come funziona questa trasformazione? A partire dall’immagine di un volto, un sistema di riconoscimento facciale tipicamente estrapola informazioni chiave, chiamate landmark, quali la distanza tra gli occhi, il rapporto tra la distanza tra gli occhi e la distanza tra occhi e naso, la larghezza della bocca, la forma e la dimensione della mandibola, e tanti altri punti che anche noi esseri umani usiamo per identificare i volti delle persone che conosciamo, senza rendercene conto. Come per le funzioni di hash utilizzate per trasformare le password, ci sono moltissime tecniche diverse per trasformare l’immagine di un volto in una serie di misurazioni chiave, e quasi ogni azienda che utilizza riconoscimento facciale ne sviluppa una diversa da tutte le altre che tiene cara per sé, a seconda delle loro esigenze. Una volta che una determinata faccia è stata convertita in una serie di landmark, quindi, questi vengono salvati nel sistema pronti per essere utilizzati successivamente per autenticare lo stesso utente tramite il suo volto.
  3. Comparazione: quando, in futuro, un utente vuole autenticarsi con il suo volto, esso presenterà la sua ormai famosa faccia a una qualche sorta di dispositivo, in genere una fotocamera o una telecamera, che il sistema utilizza per riconoscere gli utenti. A questo punto, il dispositivo cattura una serie di immagini relative alla faccia dell’utente e applica ancora una volta il processo di trasformazione della faccia in una serie di landmark, come spiegato al punto precedente. Completata questa trasformazione, il sistema cerca internamente quale sia la faccia salvata più simile a quella dell’utente che ha di fronte. Sì, più simile significa che il processo di riconoscimento facciale non fornisce la certezza matematica che una data faccia appartenga a uno specifico individuo, ma piuttosto fornisce un valore di probabilità che, se al di sopra di una certa soglia, chiamata soglia di confidenza, può essere considerata un “match”. Il valore di tale soglia dipende dal sistema e dalla specifica tecnica usata per trasformare il viso in landmark facciali. Chiaramente, una soglia di confidenza molto alta renderà quasi impossibili i falsi positivi, ovvero i casi in cui una faccia appartenente a un individuo A venga considerata valida per autenticare un individuo B, cioè che un’altra persona possa autenticarsi a mio nome avendo una faccia “molto simile” alla mia. Allo stesso tempo, però, una soglia di confidenza molto alta renderà anche più probabili i falsi negativi, ovvero quegli episodi in cui la faccia appartenente a un individuo A venga considerata invalida per autenticare quello stesso individuo A, cioè che il sistema si rifiuta di accettare la mia squisita faccia come valida per autenticare me stesso, la mia persona, me medesimo. A seconda del bilanciamento tra sicurezza e usabilità, diverse piattaforme utilizzano diversi valori come soglia di confidenza, così da evitare che gente non autorizzata possa accedere agli account di altri utenti (falsi positivi) ma allo stesso tempo evitare che un utente debba provare ad autenticarsi dieci volte prima di venire riconosciuto dal sistema (falsi negativi).
Da sinistra a destra: come Snapchat vedeva la mia faccia quattro anni fa (le linee non fanno altro che unire i punti chiave della mia faccia, incluso occhi, naso, bocca, fronte e mandibola); io al lavoro su un’app di riconoscimento facciale (in fase iniziale) nel 2017 durante la Apple Developer Academy a Napoli; il risultato finale dell’app, in grado di riconoscere un utente in base alla sua faccia e di mostrare i suoi profili social (grazie anche al mio compare Alberto nella foto e al resto del piccolo team).

Vantaggi

  1. Livelli di sicurezza più alti rispetto alle password tradizionali. Dato che un viso appartiene alla categoria delle “cose che un utente è”, è più difficile per utenti malintenzionati rubare questa informazione, perché significherebbe rubare il viso di una persona. Poiché i diversi sistemi in cui un viso è utilizzato salvano solo una rappresentazione dello stesso, anche nei casi in cui questa informazione dovesse venire compromessa e fosse accessibile a utenti non autorizzati, sarebbe estremamente complicato per questi ultimi generare un volto, magari stampato in 3D, a partire dalla sua rappresentazione. Se combinato con un secondo fattore di autenticazione quale un PIN più o meno semplice da ricordare, l’utilizzo del riconoscimento facciale aumenta drasticamente il livello di sicurezza di un account.
  2. A differenza delle password, l’utilizzo di fattori biometrici è molto più semplice e in molti casi avviene in una frazione di secondo senza che l’utente se ne accorga (vedi lo sblocco dell’iPhone). In più, l’utilizzo di fattori biometrici non richiede all’utente di generare e memorizzare diverse password per diversi siti, riducendo le possibilità di utilizzarne di vulnerabili a causa della pigrizia.

Svantaggi

  1. Poiché immutabili, i fattori biometrici rappresentano un elevato rischio nel caso in cui essi venissero compromessi. Se è vero che oggi è molto difficile generare un volto a partire dalla sua rappresentazione in landmark che possa superare i test dei vari sistemi di autenticazione, non è detto che lo stesso sia valido nei prossimi anni. Mentre una password compromessa è semplice da cambiare, lo stesso non si può dire di un volto o di un’impronta digitale, che per definizione sono stabili nel tempo (ovvero non cambiano) e identificano in maniera univoca un individuo.
  2. Se l’utilizzo di una password non rivela niente circa il suo possessore, l’utilizzo di fattori biometrici, proprio perché identificano univocamente un individuo, rappresentano un fattore discriminante che apre potenzialmente la porta al tracciamento delle attività di un singolo utente su tutti i sistemi che esso utilizza. Dato che, in maniera ipotetica, la faccia utilizzata per autenticarsi su Facebook DEVE essere la stessa utilizzata per autenticarsi su Google, è tecnicamente possibile unire le attività che quell’utente ha effettuato in entrambi i sistemi. In più, è anche tecnicamente possibile per un sistema vietare l’accesso ai propri servizi a individui di certe etnie, o anche semplicemente di un certo genere, cosa che non è così immediata utilizzando una semplice password.
  3. Come menzionato in precedenza, a seconda del bilanciamento di cui un sistema ha bisogno tra sicurezza e immediatezza d’uso, l’autenticazione tramite fattori biometrici non garantisce la totale certezza che un utente considerato “valido” tramite la sua faccia sia effettivamente un utente autorizzato. Il passato è pieno di casi (come per esempio questo) in cui, per velocizzare la procedura di riconoscimento, vari sistemi hanno “semplificato” un po’ troppo il processo di autenticazione, e reso possibile l’accesso a utenti che non dovrebbero essere autorizzati.

In poche parole, i sistemi di autenticazione basati su tratti biometrici rappresentano sicuramente una tecnologia promettente che migliora a vista d’occhio di anno in anno. A ogni modo, l’utilizzo di un elemento così unico come il nostro viso o la nostra impronta digitale deve essere analizzato in maniera estremamente approfondita, specialmente in quegli scenari in cui l’informazione non resta nel dispositivo dell’utente, come avviene nel caso dello sblocco di un iPhone, ma viaggia attraverso Internet per raggiungere posti di cui non siamo nemmeno a conoscenza (immaginate di effettuare il login in Facebook con la vostra faccia). In più, proprio per la sua unicità e per il fatto che sia difficile da cambiare nel tempo, l’utilizzo del viso come mezzo potente di identificazione è stato portato all’estremo in alcuni esempi di regimi totalitari, che fanno del riconoscimento facciale l’arma di identificazione numero uno.

E quindi?

Ok, siamo arrivati alla fine! Mi premeva scrivere questo articolo innanzitutto per spiegare, molto in breve, come funzionano alcuni dei sistemi che utilizziamo praticamente quotidianamente, che è un po’ anche il focus di questa serie di “racconti”. Inoltre, considerato ciò che è stato scritto fino a questo punto, si evince che, a oggi, le password rappresentano il miglior compromesso tra sicurezza, privacy e usabilità, se usate, come spiegato nella parte A, con le giuste precauzioni (ovvero utilizzando password lunghe e complesse, diverse per ogni sito, con l’aiuto di un password manager e di un’app per l’autenticazione a due fattori, e bla bla bla). Tuttavia, ogni soluzione ha i suoi pro e i suoi contro, come abbiamo visto, e la scelta di quando utilizzare una o l’altra e in quali occasioni dipende dalle preferenze personali.

Credo sia molto importante capire ed essere consapevoli di ciò che succede “dietro le quinte” quando usiamo Facebook o quando usiamo il nostro smartphone, perché non è vero che “lontano dagli occhi, lontano dal cuore”. Bisogna tenere almeno un pochino a cuore la propria privacy, e ciò è possibile solo dopo essere diventati consapevoli della quantità e soprattutto della qualità delle informazioni che quotidianamente “regaliamo” in cambio di accesso a servizi quali Facebook e Google.

Come sempre, potete trovarmi su LinkedIn e su Twitter.

Saluti,

Antonio

References

--

--

Antonio Antonino
Let’s work IT out

Security-focused software engineer, passionate about privacy and distributed systems.