WhatsApp: La peggior autenticazione a due fattori che abbia mai visto!

Un’autenticazione a due fattori (o autenticazione a più fattori o strong authentication) è un metodo di autenticazione che si basa sull’utilizzo congiunto di due metodi di autenticazione individuale. {Wikipedia}

Ieri da un ReTweet di Federico Maggi ho appreso che WhatsApp aveva reso disponibile a tutti, e non solo ad un riestretto numero di utenti come avveniva dallo scorso novembre, l’autenticazione a due fattori. Questo ulteriore strato di protezione garantisce all’utente una maggior sicurezza e l’impossibilità di usare le vulnerabilità del protocollo telefonico SS7 per impossessarsi di un account WhatsApp altrui.

Il 2FA (two factor authentication) viene usualmente implementato mediante i seguente tre metodi:

  • pin/password (codice statico);
  • token/otp (password generata casualmente a cadenza temporale);
  • biometria (impronta digitale, iride, ecc).

WhatsApp ha scelto il primo metodo per implementare l’autenticazione a due fattori, probabilmente perché già il primo metodo è basato sull’autenticazione tramite One Time Password attraverso l’invio di un SMS al nuovo utente.

Sostanzialmente se un utente con 2FA cambia Smartphone dovrà inizialmente digitare il suo numero di cellulare, riceverà il primo codice OTP via SMS e successivamente digiterà la password del 2FA scelta in precedenza.

Comunemente il 2FA implementato tramite codice è una protezione “sconnessa” richiesta solo in una determinata azione, in questo caso l’autorizzazione ad abilitare un nuovo device. Non deve essere richiesta periodicamente altrimenti aumenta sensibilmente il rischio che tale codice possa essere esposto e quindi compromesso!

WhatsApp, come vedete nello screenshot di apertura, ha invece deciso di richiedere saltuariamente (al secondo giorno me l’ha già chiesto 2 volte) tale codice con l’intento di non farlo scordare all’utente. Oltretutto se veramente l’utente si scorda il codice e sta attivando un nuovo dispositivi è possibile effettuare l’attivazione via eMail!

Se state scuotendo la testa non avete visto ancora nulla, veramente!

Abbiamo finora capito che in linea teorica un codice statico sfruttato per il 2FA NON dovrebbe essere conservato digitalmente, ne portato appresso e generato casualmente come a rigor di logica dovrebbero essere tutti i codici/password. WhatsApp invece ti impone di ricordartelo spingendo l’utente ad usare un codice comune (una data di nascita, anniversario, ecc) o a memorizzarlo in qualche luogo facilmente raggiungibile (PostIt, Agenda, 1Password, ecc ecc) aumentando il rischio di esporre il codice.

Vi basta pensare che altri portali che sfruttano l’autenticazione a due fattori o magari anche tre richiedono di STAMPARE il codice e di conservarlo in un luogo sicuro come una CASSAFORTE. E ovviamente non ti chiedono di andare ad aprire la cassaforte tutti i giorni 🙂

Un esempio? Blockchain o 1Password!

Ma cosa succede se l’utente si scorda il codice della 2FA? Semplice basta cliccare su “Codice di accesso dimenticato” e per magia l’autenticazione a due fattori viene DISABILITATA! 😳

Basito, e ovviamente non si riceve neanche un avviso via eMail di tale disabilitazione!

Proseguendo l’analisi una volta attivata la Verifica a due fattori (o in due passaggi) è possibile disattivarla dalle impostazioni, l’applicazione NON richiede il codice precedentemente impostato per procedere alla disattivazione. E ovviamente non invia una notifica all’eMail indicata durante l’attivazione.

Ricapitolando:

  • WhatsApp richiede all’utente di inserire saltuariamente (probabilmente ogni giorno) il codice del 2FA quando la best-practice prevede di richiederlo solo all’attivazione di un nuovo device;
  • Se l’utente si scorda il codice della verifica in due passaggi (sul device già attivo) con un semplice click viene disabilitato l’ulteriore livello di sicurezza;
  • L’utente o un malintenzionato possono disabilitare la verifica in due passaggi senza che venga richiesto il codice originario.

Concludo lasciandovi uno screenshot postato su Twitter da Konrad Iturbe in cui si evince che il codice del 2FA viene conservato e salvato in chiaro (deducibile dalla brevità del campo). Preciso che non ho verificato quest’ultima notizia.

  • Pingback: WhatsApp e quell’autenticazione a due fattori “poco sicura” | Makuz News()

  • Gianfranco Catania

    “Il 2FA (two factor authentication) viene usualmente implementato mediante i seguente tre metodi:

    pin/password (codice statico);

    token/otp (password generata casualmente a cadenza temporale);

    biometria (impronta digitale, iride, ecc).

    WhatsApp ha scelto il primo metodo per implementare l’autenticazione a due fattori.”

    Scusami, il 2FA consiste nell’adottate 2 dei 3 fattori.
    Cosa significa “WhatsApp ha scelto il primo metodo per implementare l’autenticazione a due fattori” ?

    WhatsApp ha di fatto implementato (e pure male) l’autenticazione a 2 passaggi. Cosa ben diversa

  • il fatto che lo richiedano spesso era prevedibile, a loro interessa solo che gli utenti stiano 24/7 con whatsapp aperto e funzionante; la sicurezza non è nemmeno lontanamente ricercata dai dev di whatsapp, è solo fumo negli occhi