Per verificare l’identità di un utente all’interno di un un sistema informatico viene tradizionalmente impiegata una sequenza alfanumerica di caratteri: la password.

L’autenticazione avviene quindi nella maggior parte dei casi attraverso un unico fattore (la password) e ciò espone l’utente a innumerevoli rischi. Perché se è vero che questa può essere eccessivamente complessa, è pur sempre vero che esistono tantissimi modi, non sempre legati all’hacking, per trovarla.

L’ autenticazione a due fattori è un metodo di autenticazione che si basa sull’uso congiunto di due metodi di autenticazione.  Solitamente dopo essersi autenticati attraverso “una cosa che conosci” come la password avviene una seconda autenticazione con “una cosa che hai” (il numero di cellulare) o “una cosa che sei” (impronta digitale o l’iride dell’occhio).

Questo aumenta parecchio la sicurezza del nostro account, rendendo impossibile l’autenticazione se non si è in possesso dei requisiti necessari.

Qualche sera fa ero alla ricerca di un sistema di autenticazione a due fattori su WordPress, ma non trovando niente di particolarmente esaltante ho deciso di crearne uno.

Ecco la mia idea su WordPress:

  • L’utente entra nella sua pagina di login ed inserisce username e password per proseguire (Fattore #1)
  • Per completare la procedura di autenticazione l’utente inserisce un codice alfanumerico (token) che viene generato dal plugin per lui e gli viene inviato “in qualche modo” (Fattore #2)

Il “qualche modo” è lo strumento o servizio che viene utilizzato per inviare il token.

Perché ho pensato subito a Telegram

Quando ho deciso di creare il plugin, non ci ho pensato due volte: volevo che l’autenticazione a due fattori passasse attraverso Telegram.

Per chi non conoscesse Telegram è un servizio di messaggistica istantanea come WhatsApp, ma completamente senza scopo di lucro e con delle API completamente gratuite e utilizzabili da tutti.

Telegram è il perfetto mezzo di comunicazione per inviare all’utente il token generato. Infatti l’utente deve completare il suo login con “qualcosa che ha” : il cellulare (chi non ce l’ha?) e l’app Telegram, che si può scaricare gratuitamente su qualunque piattaforma ed è possibile utilizzarlo anche su computer e tablet.

Da questa idea nasce il plugin WP Two Factor Authentication with Telegram che potrai scaricare direttamente dalla Plugin Directory di WordPress.

Funzionalità del plugin

Il plugin ha due funzioni:

  • Introduce l’autenticazione a due fattori su WordPress utilizzando Telegram
  • Invia delle notifiche di login falliti su un account Telegram impostato

Installazione

Puoi scaricare il plugin dal Plugin Directory ufficiale.

Version:1.5
Requires:4.7.4 or higher
Compatible up to:4.9.8
Released:20 April 2017
Downloads:693
Last Updated:13 May 2018
Ratings:
5
(5 star out of 5)

Configurazione

Dopo aver installato correttamente il plugin dovrai accedere alla pagina di configurazione.

Con un account amministratore all’interno del menu nel backend di WordPress posizionati su Impostazioni > Autenticazione a due fattori con Telegram.

Qui dovrai andare andare a impostare:

  • Bot token, questo è il token del Bot che dovrai creare per utilizzare il plugin
  • Chat ID, ID del tuo account Telegram dove riceverai le informazioni relative ai login falliti
  • Abilita Plugin, qui potrai decidere se abilitare / disabilitare il plugin

Interfaccia di configurazione del plugin

Come creare un bot su Telegram ed ottenere un bot token

Come già accennato, per funzionare, il plugin richiede la creazione di un Telegram Bot.

Possiamo immagine un bot come un utente virtuale su Telegram che:

  • agisce da autoresponder: ovvero ogni volta che gli viene inviato un messaggio ne esamina il contenuto e risponde di conseguenza.
  • invia messaggi diretti agli utenti: nel nostro caso quando il plugin è attivato ed un utente di WordPress effettua il login il bot deve automaticamente mandargli il token di accesso necessario per proseguire con l’autenticazione.

Il bot token è una sequenza alfanumerica legata al bot che permetterà al plugin di sfruttare le API di Telegram al verificarsi di determinati eventi di WordPress.

Per creare un bot su Telegram, quei geni di Telegram hanno creato un bot: il @BotFather, rendendo l’operazione di creazione semplicissima!

Segui quindi questi passaggi:

  1. Apri Telegram e avvia una conversazione con @BotFather
  2. Digita il comando /newbot per creare un nuovo bot.
  3. Scegli uno username e un nome per il nuovo bot.
  4. Se tutto è andato a buon fine, il bot è stato creato. All’interno della risposta sarà presente il tuo Bot Token che dovrai impostare nella schermata di configurazione del plugin.

Nota bene:

Una volta che avrai creato correttamente il bot con la procedura indicata sopra, dovrai avviare una conversazione su Telegram con il bot appena creato.

Questo passo è necessario in quanto, per ragioni di privacy, i Bot di Telegram possono comunicare solo con gli utenti che autorizzano il bot ad inviare / ricevere i messaggi con la loro Chat ID.

Come ottenere la Chat ID del tuo account Telegram

Cosa è la Chat ID su Telegram?

E’ un’ID numerico che corrisponde al tuo account Telegram, essa è utilizzata dalle API per comunicare con gli account.

Ci sono diversi modi per ottenere questo codice, ho pensato di semplificare l’identificazione di questo dato creando un apposito bot, il  @WordpressLoginBot .

  1. Apri Telegram e avvia una conversazione con @WordpressLoginBot
  2. Digita il comando /get_id per ottenere la tua Chat ID.
  3. All’ interno della risposta sarà presente la Chat ID che dovrai impostare nella schermata di configurazione del plugin.

Abilitazione del plugin

L’abilitazione del plugin permette di attivare / disattivare il plugin in modo veloce.

Configurazione utente WordPress

Il plugin, una volta configurato, permette ad ogni utente all’interno di WordPress di abilitare / disabilitare l’autenticazione a due fattori nel suo account e configurare la propria Chat ID per ottenere il token di accesso.

Per accedere a questo l’utente dovrà recarsi nel menu di amministrazione alla voce Utenti > Il tuo profilo.

Qui l’utente troverà una schermata di configurazione molto simile a quella di amministrazione che abbiamo visto poco fa, ma non dovrà scegliere di impostare alcun bot, in quanto sarà già stato impostato precedentemente dall’amministratore.

Una volta ottenuta la Chat ID utilizzando la stessa modalità indicata precedentemente, l’utente dovrà avviare una conversazione con il bot precedentemente creato dall’amministratore e potrà proseguire con la configurazione della sua Chat ID.

Qualche controllo in più per l’utente

Al fine di impedire che venga inserita una Chat ID appartenente ad altri account Telegram in questa configurazione l’utente dovrà confermare la propria identità.

Dopo aver inserito la sua Chat ID dovrà schiacciare sul bottone Invia Codice. Questo codice verrà inviato tramite Telegram all’account dell’utente e dovrà re-inserirlo sulla pagina di configurazione per concludere il setup.

Bene! Adesso l’utente ha abilitato correttamente l’autenticazione a due fattori con Telegram 🙂

Schermata di login

Ecco come si presenterà la schermata di login di WordPress per gli utenti che avranno abilitato l’autenticazione a due fattori.

A seguito della consueta immissione di username e password su WordPress (Fattore #1) l’utente verrà inoltrato su una schermata in cui dovrà inserire il token appena ricevuto su Telegram.

Solo al completamento di questo passaggio (Fattore #2) il login dell’utente andrà a buon fine.

Logo del plugin e ringraziamenti

Non poteva mancare un logo che contraddistingue il plugin, ed eccolo qui sotto, sperando che vi piaccia!

Ovviamente non posso che ringraziare il nostro stagista Manuel Vitale (per gli amici El-Dom) che ci sta seguendo attivamente negli ultimi mesi e ha curato la realizzazione di questo suo logo in ogni sua parte.

Grazie ancora!

Conclusioni e possibili scenari evolutivi

Abbiamo visto come funziona e come si configura il plugin.
Il plugin è alla sua prima release e tante sono le funzionalità aggiuntive che desidero inserire prossimamente.

Tanto per cominciare mi piacerebbe creare un Bot già dedicato al servizio che permetta una volta avviato di:

  • Ottenere la Chat ID
  • Ottenere un token necessario ad utilizzare il plugin
  • Inviare / ricevere i messaggi di notifica e i token necessari all’autenticazione di WordPress

Questo potrebbe semplificare enormemente la procedura di setup, lasciando comunque il libero arbitrio da parte dell’amministratore del sito WordPress di scegliere se utilizzare il proprio bot oppure questo.

In secondo luogo vorrei inserire nell’area di amministrazione del plugin una schermata che permetta di revocare l’autenticazione a due fattori in modo selettivo a tutti gli utenti attivi di WordPress.

Inoltre sarebbe bello configurare il plugin in modo da mandare diverse altre segnalazioni alla Chat ID dell’amministratore quali: inserimento nuovo utente, compilazione form di contatti, segnalazione di presenza di aggiornamenti di plugin e Core ecc.

Rimanete sintonizzati e ne vedrete delle belle! Nel frattempo scaricate il plugin e fatemi sapere cosa ne pensate!

Version:1.5
Requires:4.7.4 or higher
Compatible up to:4.9.8
Released:20 April 2017
Downloads:693
Last Updated:13 May 2018
Ratings:
5
(5 star out of 5)
Andrea Debernardi

Andrea Debernardi

Cofondatore di dueclic, sviluppatore e appassionato di tecnologia. Pur essendo fortemente orientato al web la mia curiosità continua e attrazione riguardo le novità non mi precludono nulla nella programmazione. Non mi piace avere limiti perciò tendo a colmarli continuamente.