2FA - Two Factor Authentication

Che cos'è

L’autenticazione a due fattori (2FA), è uno strumento di sicurezza in base al quale all’utente è richiesto di fornire due diversi fattori di autenticazione per verificare la propria identità. Viene 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, porte o cancelli di appartamenti e uffici, e qualsiasi servizio abbia necessità di una strong authentication.

Perchè usarla

La maggior parte dei siti web 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:

  • Il furto di credenziali (o l’ottenimento fraudolento di credenziali “deboli”) sono le armi preferite dagli hacker, utilizzate nel 95% 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).

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

Per accedere a qualunque sistema digitale (computer, bancomat, siti web o altro) dovremo prima presentarci inserendo il nostro username, poi dovremo dimostrare che siamo proprio noi ed è proprio questa la fase di autenticazione che può avvenire in tre diversi modi:

  1. Qualcosa che si conosce: include ogni tipo di password, PIN, combinazione, parola chiave ecc;
  2. Qualcosa che si possiede: include qualsiasi oggetto fisico come smartphone, token, app ecc;
  3. Qualcosa che abbiamo: include tutto ciò che fa parte del corpo umano e che può essere utilizzato per confermare l’identità di una persona come le impronte digitali, riconoscimento vocale, riconoscimento facciale ecc.

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.

Registrazione

Per poter accedere alle risorse protette da Oplon 2FA, bisogna registrarsi attraverso l'apposita pagina di registrazione tramite browser e successivamente scaricare l'applicazione sul nostro smartphone e registrarlo inserendo i dati appena registrati.

Registrazione dal browser

Per accedere alla pagina di registrazione basterà effettuare una richiesta ad una risorsa protetta da 2FA. Una volta che siamo stati reindirizzati alla pagina di login, basterà cliccare il pulsante SIGN UP.

Pagina di login

Figura 1: Pagina di login

Inseriamo tutti i dati richiesti e clicchiamo su NEXT.

Pagina di registrazione

Figura 2: Pagina di registrazione

A questo punto ci verrà inviato un codice alla mail indicata nello step precedente, che chiameremo OTC (One Time Code). Inseriamo il codice e clicchiamo sul pulsante VERIFY.

Pagina di verifica otc email

Figura 3: Pagina di verifica otc email

In questo step viene richiesto di inserire il nostro numero di cellulare. Inseriamolo e clicciamo su NEXT.

Pagina di verifica otc telefono

Figura 4: Pagina di inserimento numero di telefono

Come per l'email, verrà inviato l'OTC nel numero di cellulare che abbiamo indicato. Inseriamo il codice e clicchiamo sul pulsante VERIFICA.

Pagina di verifica otc telefono

Figura 5: Pagina di verifica otc telefono

Se l'OTC inserito è corretto visualizzeremo la conferma della registrazione.

Pagina di conferma registrazione

Figura 6: Pagina di conferma registrazione

Registrazione del proprio dispositivo mobile

Nell'sms ricevuto durante la registrazione, ci sono due link per scaricare l'app Oplon2FA: uno per iOS e uno per Android. Una volta installata Oplon2FA sul nostro smartphone e aperta, l'app riconoscerà che il nostro dispositivo non è stato ancora registrato mostrandoci la schermata di registrazione. I dati sono quelli che abbiamo usato durante la registrazione tramite browser, inseriamoli e clicchiamo su Register.

Registrazione app

Figura 7: Registrazione app

A questo punto verrà richiesto il codice OTC inviato per sms al nostro numero di cellulare.

Verirfica app

Figura 8: Verirfica app

Una volta effettuata correttamente la registrazione, verremo reindirizzati nella home dell'app.

Home app

Figura 9: Home app

Autenticazione

Completata la registrazione, sarà possibile accedere nella propria area personale ed effettuare delle richieste di permesso per accedere a determinate risorse/percorsi protetti da Oplon 2FA, che dovranno poi essere accettate dal gestore del dominio, che chiameremo Tenant, a cui si sta richiedendo il permesso.

Richiesta di permesso

Per poter accedere ad una certa risorsa/percorso, basta fare una richiesta tramite browser, per esempio https://dominio/risorsa e verremo reindirizzati alla pagina di login di Oplon 2FA. Inseriamo i dati con cui ci siamo registrati e premiamo il pulsante LOGIN. A questo punto ci verrà mostrata una pagina che attende autorizzazione di login attraverso il nostro cellulare.

Autorizzazione app

Figura 10: Autorizzazione app

Non dobbiamo fare altro che aprire l'app e cliccare su Check requests. L'app verificherà se ci sono richieste di login attive e ci mostrerà quella in corso più varie informazioni. Per confermare il login basterà cliccare sul pulsante Yes, grant access.

Permesso di accesso

Figura 11: Permesso di accesso

Il browser verrà reindirizzato sulla:

  • Risorsa: se abbiamo i permessi per potervi accedere;

  • Pagina di account: se non si hanno ancora i permessi per potervi accedere. In questo caso ci sono due possibilità:

    • Il permesso non esiste: compare una notifica in cui ci descrive che il manager non ha ancora creato una regola di permesso per la risorsa che abbiamo richiesto;

      Permesso inesistente per la risorsa

      Figura 12: Permesso inesistente per la risorsa

    • Il permesso esiste: compare una notifica attraverso la quale possiamo chiedere il permesso per la risorsa che abbiamo richiesto, semplicemente cliccando sul pulsante REQUEST PERMISSION. Il manager dovrà poi accettare la nostra richiesta e solo quando sarà stata accettata, richiedendo la stessa risorsa https://dominio/risorsa e rifacendo il login, potremmo accedervi.

      Richiesta di permesso

      Figura 13: Richiesta di permesso

    • Il permesso esiste ma è scaduto: compare una notifica attraverso in cui ci descrive che il permesso per poter accedere alla risorsa che abbiamo richiesto, è scaduto e quindi non più accedibile.

      Richiesta di permesso scaduto

      Figura 14: Richiesta di permesso scaduto

Pannello di amministrazione

In questa sezione viene descritta la struttura e le funzionalità del pannello di amministrazione di Oplon 2FA.

Account

Questa è la pagina che viene visualizzata da un qualsiasi utente che si è registrato a Oplon 2FA.

Pagina Account

Figura 15: Pagina Account

Reset

Nel primo pannello vengono visualizzate alcune informazioni del proprio account: nome utente, numero di telefono ed email. E' possibile anche cambiare tutti questi dati attraverso gli appositi pulsanti. L'unico dato che non è possibile cambiare è il nome utente. Per quanto riguarda l'email e numero di telefono, durante il reset, verrà inviato un codice OTC per il rispettivo reset, che dovrà essere poi inserito nell'apposito input per verificare che email/telefono siano effettivamente di nostra proprietà.

Pannello info e reset

Figura 16: Pannello di info e reset

Permissions

Nel pannello Permissions viene visualizzata la lista di domini a cui noi possiamo fare accesso ad almeno una risorsa.

Pannello permessi utente

Figura 17: Pannello permessi utente

Permissions requests

Nel pannello Permissions requests vengono visualizzate tutte le richieste di permessi che abbiamo effettuato. Esistono 3 tipi di visualizzazione che si trovano a destra della barra di ricerca di questo pannello:

  • Pending: (default) lista di richieste che sono state effettuate ma non ancora accettate/rifiutate;
  • Granted: lista di richieste che sono state accettate;
  • Not-granted: lista di richieste che sono state rifiutate.

Pannello richieste di permesso

Figura 18: Pannello richieste di permesso

Report user

Cliccando il pulsante REPORT, si visualizzerà una tabella contenente le operazioni eseguite dal proprio account come utente normale:

  • Login
  • Richiesta di permesso
  • Reset password, mail, telefono

Tenant

Questa pagina appartiene solo ed esclusivamente al gestore del dominio, il quale ha la possibilità di creare e gestire i ruoli manager.

Pagina tenant

Figura 19: Pagina Tenant

Manage roles

In questo pannello il Tenant può creare un ruolo cliccando sul pulsante Add e inserendo:

  • Role: nome che identifica univocamente il ruolo;
  • Description: descrizione del ruolo.

Una volta inserito un ruolo si ha la possibilità di modificarne la descrizione cliccando sul pulsante Modify oppure di cancellarlo cliccando sul pulsante Delete .

Gestione ruoli

Figura 20: Gestione ruoli

Manage domains

In questo pannello il Tenant può aggiungere un dominio che gestisce cliccando sul pulsante Add e inserendo:

  • Domain: nome dominio;
  • Description: descrizione del dominio;
  • Activation code: serve per verificare che il Tenant sia la persona che effettivamente gestisce quel dominio. Il codice inserito deve essere uguale al codice della regola di rewrite header inserita in Oplon ADC.

Una volta inserito un dominio si ha la possibilità di modificarne la descrizione cliccando sul pulsante Modify oppure di cancellarlo cliccando sul pulsante Delete .

Gestione domini

Figura 21: Gestione domini

Manage roles domains

In questo pannello il Tenant può associare un ruolo ad un dominio cliccando sul pulsante Add e inserendo:

  • Role: nome che identifica univocamente il ruolo;
  • Domain: nome dominio.

Una volta inserito un ruolo-dominio si ha solo la possibilità di cancellarlo cliccando sul pulsante Delete .

NB: Un ruolo può gestire più domini.

Gestione ruoli-domini

Figura 22: Gestione ruoli-domini

Manage users roles

In questo pannello il Tenant può associare un utente ad un ruolo cliccando sul pulsante Add e inserendo:

  • Username: nome utente;
  • Role: nome che identifica univocamente il ruolo.

A questo punto l'utente a cui è stato associato un ruolo, avrà la possibilità di accedere ad una pagina aggiuntiva per gestire i permessi e le richieste dei permessi del dominio associati a quel ruolo. Una volta inserito un utente-ruolo si ha la solo possibilità di cancellarlo cliccando sul pulsante Delete .

Gestione utenti-ruoli

Figura 23: Gestione utenti-ruoli

Si ha anche la possibilità di visualizzare i report dei manager che gestiamo, cliccando sul pulsante Report .

Report tenant

Cliccando il pulsante REPORT, si visualizzerà una tabella contenente le operazioni eseguite dal proprio account come Tenant:

  • Aggiunta, cancellazione, modifica tabella Manage roles;
  • Aggiunta, cancellazione, modifica tabella Manage domains;
  • Aggiunta e cancellazione tabella Manage roles domains;
  • Aggiunta e cancellazione tabella Manage users roles.

Manager

Questa pagina è accessibile solo agli utenti che sono stati abilitati dal Tenant per gestire i permessi e le richieste dei permessi per un certo dominio.

Pagina manager

Figura 24: Pagina manager

Permissions

Questo pannello mostra la lista di domini per i quali si ha il permesso di gestione.

Pannello lista permessi

Figura 25: Pannello lista permessi

Manage permissions

In questo pannello il manager può creare una lista di permessi per determinati paths di un certo dominio cliccando sul pulsante Add e inserendo:

  • Domain: dominio per la quale si vuole aggiungere un permesso;
  • Description: descrizione del permesso;
  • Code: nome che identifica univocamente il permesso (gli unici caratteri speciali consentiti sono "_" e "-");
  • Regex: espressione regolare che definisce la regola di match del path del dominio;
  • App: valore booleano che permette di effettuare il login tramite l'app per queste regole;
  • Sms: valore booleano che permette di effettuare il login tramite sms per queste regole;
  • Email: valore booleano che permette di effettuare il login tramite email per queste regole;
  • Order: ordine di verifica del path (il permesso con il numero più alto verrà considerato per primo, il numero più basso verrà considerato per ultimo).

Pannello gestione permessi

Figura 26: Pannello gestione permessi

Una volta inserito un permesso si ha la possibilità di modificarne la descrizione, l'espressione regolare e l'ordine cliccando sul pulsante Modify oppure di cancellarlo cliccando sul pulsante Delete .

NB: per poter eliminare un permesso non devono esistere richieste di permessi per quel dominio.

Manage permissions requests

In questo pannello il manager visualizzerà la lista di richeste di permessi effettuate dagli utenti. Esistono 3 tipi di visualizzazione che si trovano a destra della barra di ricerca di questo pannello:

  • Pending: (default) lista di richieste che sono state ricevute ma non ancora accettate/rifiutate;
  • Granted: lista di richieste che sono state accettate. In questa sezione sarà possibile modificare la data di scadenza del permesso accettato oltre il quale il permesso non sarà più valido per quel determinato utente. Esempio: se la data di scadenza è impostata al 05/08/2021, l'utente non potrà più accedere a tale path dalle ore 00:00:00 del 06/08/2021. Solo per gli utenti che sono in questa sezione si ha la possibilità di visualizzare i loro report cliccando sul pulsante Report ;
  • Not-granted: lista di richieste che sono state rifiutate.

Pannello richieste gestione permessi

Figura 27: Pannello gestione richieste permessi

Si ha anche la possibilità di visualizzare i report degli utenti che gestiamo, cliccando sul pulsante Report .

Report manager

Cliccando il pulsante REPORT, si visualizzerà una tabella contenente le operazioni eseguite dal proprio account come Manager:

  • Aggiunta, cancellazione, modifica tabella Manage permissions;
  • Grant, No-grant tabella Manage permissions requests.

Pagina report

In questa pagina si accede una volta che si è cliccato il pulsante REPORT nelle pagine di Account, Manager e Tenant, oppure dopo aver cliccato l'icona Report , all'interno delle tabelle. Il pannello report rappresenta il report per un determinato utente di un certo tipo.

L'utente può essere:

Le informazioni visualizzate nella tabella sono:

  • Xff: Contenuto dell'header X-Forwarded-For oppure l'indirizzo IP del client o dell'ultimo proxy che ha eseguito la richiesta;
  • Type: Tipo di operazione, può essere INFO, WARNING, ERROR;
  • Code: Codice identificativo dell'operazione;
  • Context: Contesto dell'operazione;
  • Origin Url: Se presente, indica l'Url che è stato richiesto prima di effettuare l'operazione. Esempio: richiedo una pagina protetta da Oplon 2FA, vengo rediretto nella pagina di login ed effettuo l'operazione di login, questo campo avrà l'Url della pagina che ho richiesto prima di effettuare il login;
  • Description: Descrizione dell'operazione;
  • Date: Data e ora dell'operazione.

E' possibile esportare il report in formato PDF e CSV cliccando sul pulsante Export a destra della barra di ricerca della tabella.

Pagina report

Figura 28: Pagina report

Casi d'uso

Perdita dello smartphone

Se viene perso lo smartphone e quindi anche la relativa scheda SIM, per poter accedere nuovamente attraverso Oplon 2FA con un nuovo smartphone bisogna:

  1. Fare login tramite browser indicando l'email come tipo di doppia autenticazione;
  2. Fare reset del numero di telefono con quello nuovo;
  3. Scaricare l'app Oplon 2FA nel nuovo smartphone;
  4. Una volta aperta l'app verrà richiesto di registrare lo smartphone indicando username e password;
  5. Completare la registrazione dello smartphone.

Eseguiti questi step, lo smartphone che è stato perso non potrà più accedere a Oplon 2FA perchè la nuova registrazione sostituirà quella vecchia (solo uno smartphone può essere associato al proprio account).

E' possibile che lo smartphone che abbiamo perso riesca a registrarsi nuovamente e quindi ad avere accesso a Oplon 2FA?

Se vengono seguiti tutti gli step elencati qui sopra, solo il nostro nuovo smartphone accederà a Oplon 2FA, infatti, avendo cambiato il numero di cellulare, verrà inviato l'OTC al nuovo numero durante la fase di registrazione dello smartphone. Grazie a questo passaggio, se il vecchio smartphone proverà a registrarsi, arriverà un messaggio con l'OTC al nuovo numero e quindi non sarà possibile per lui completare la registrazione.

Cambio dello smartphone con uno nuovo

Se cambiamo smartphone ma il numero di telefono rimane invariato, per poter accedere nuovamente attraverso Oplon 2FA con il nuovo smartphone bisogna:

  1. Fare login tramite browser indicando l'email come tipo di doppia autenticazione;
  2. Scaricare l'app nel nuovo smartphone;
  3. Una volta aperta l'app verrà richiesto di registrare lo smartphone indicando username e password;
  4. Completare la registrazione dello smartphone.

Come spiegato nel paragrafo Perdita dello smartphone, il vecchio smartphone non potrà più accedere a Oplon 2FA.