Autenticazione di secondo livello SPID

Progettazione e Sviluppo di una Mobile Application per la gestione dell’accesso di Secondo livello SPID.

L’app prevede la gestione di più account SPID sullo stesso dispositivo e l’accesso in modo sicuro, semplice e veloce ai servizi online della pubblica amministrazione che sono parte del sistema SPID.

Come fa questo?

La mobile app genera un TOTP  (Time One Time Password – https://tools.ietf.org/html/rfc6238), una password temporanea valida per un intervallo di tempo limitato; per un corretto funzionamento è fondamentale che il server che genera la TOTP e il client che la riceve siano sincronizzati (ovvero abbiano lo stesso unixtime, valore in secondi soltamente calcolato rispetto al 1° gennaio 1970). Teoricamente può essere scelto anche un altro valore per unixtime che non sia 0; la cosa importante è che client e server scelgano lo stesso valore.

L’autenticazione di secondo livello può essere effettuata anche attraverso le notifiche push:

dopo aver inserito le credenziali corrette, verrà inviata una notifica sul proprio cellulare con la richiesta di conferma dell’accesso.

Le notifiche push sono il metodo predefinito per l’autenticazione a due fattori; nel caso in cui l’app non disponga dei permessi per le notifiche o il telefono non abbia abilitato il servizio, sarà comunque possibile utilizzare la TOTP.

L’app soddisfa i criteri di sicurezza di OWASP (Open Web Application Security Project), una fondazione senza scopo di lucro che lavora per migliorare la sicurezza del software.

In particolare, viene garantita costantemente la revisione del codice per identificare le falle di sicurezza.

La revisione della sicurezza del codice è il processo di auditing dei sorgenti dell’applicazione per verificare che i controlli di sicurezza siano presenti, che eseguano ciò che è stato richiesto, e che siano richiamati laddove sia necessario.

Applicando una corretta revisione verrà garantito che l ‘applicazione sia sviluppata per essere “self-defending”.

È stato applicato inoltre un modello delle minacce ad alto livello. Le macro-aree interessate sono:

  • Agenti di minaccia
  • Superficie di attacco (inclusa qualsiasi interfaccia pubblica e di backend)
  • Possibili attacchi
  • Controlli di sicurezza richiesti (sia per fermare attacchi conosciuti sia per venire incontro alle esigenze aziendali)
  • Potenziali impatti tecnici

 

Viene inoltre definita una Security Checklist (sull’app in questione, ma più in generale su ogni mobile app progettata e/o sviluppata da Innonation) contenente le domande giuste relazionate al contesto della piattaforma.

La checklist va a ricoprire i più critici controlli e aree di vulnerabilità come:

  • Validazione dei dati
  • Autenticazione
  • Gestione della sessione
  • Autorizzazione
  • Crittografia
  • Gestione degli errori
  • Logging
  • Configurazioni della sicurezza

 

Tecnologie: VisualStudio; Xamarin; Xaml; C#