La gestione delle identità digitali e degli accessi al cloud

Redazione Developers Italia

Passiamo in rassegna la “cassetta degli attrezzi” dei sistemi di identità digitali che consentono l’erogazione dei servizi pubblici online per tutte le esigenze: da centinaia a milioni di utenti

di Claudio Cocciatelli, Daniele Pizzolli, Giuseppe De Marco e Fabrizio De Rosa, Dipartimento per la trasformazione digitale della Presidenza del Consiglio dei ministri

Il cloud ci aiuta ogni giorno a offrire servizi pubblici più sicuri, affidabili ed efficienti, per pubbliche amministrazioni, cittadini e imprese. Ma perché tutto questo funzioni serve una gestione attenta e sicura degli accessi. L’autenticazione digitale, cioè il processo che consente a un utente di usufruire di un servizio o accedere a determinati dati attraverso il cloud verificando che chi accede sia effettivamente il titolare delle credenziali, non è solo un passaggio tecnico, ma un elemento centrale per la sicurezza delle infrastrutture digitali.

Dal punto di vista di chi amministra un sistema informatico, attività come identificare correttamente gli utenti, gestire le credenziali di accesso e applicare le autorizzazioni correttamente sono requisiti essenziali. Questo è un vantaggio “invisibile” fondamentale per l’utente finale, che beneficia di un ecosistema di servizi efficienti, garantiti e con i più alti livelli di sicurezza.

Ad esempio, i dipendenti di una organizzazione possono avere diverse configurazioni di affiliazione o contrattuali, quali ad esempio essere assunti o in congedo, e ciascuna condizione deve riflettersi nei loro privilegi di accesso alle risorse protette. È fondamentale che gli utenti attivi (es. dipendenti o cittadini) accedano solo alle risorse alle quali sono abilitati, mentre chi non ha più diritto all’accesso venga tempestivamente disabilitato.

Migrare al cloud o disegnare i servizi IT cloud-native comporta quindi una gestione consapevole e sicura degli accessi alle risorse.

In questo articolo passeremo in rassegna “la cassetta degli attrezzi” dei sistemi di identità digitali necessari per offrire, secondo gli standard più alti di sicurezza e affidabilità, servizi pubblici su misura per ogni esigenza: dai piccoli Comuni con centinaia di abitanti fino alle amministrazioni centrali con decine di milioni di utenti. In particolare, forniremo una breve introduzione nei seguenti ambiti:

Dai modelli architetturali più avanzati per la gestione dei sistemi di autenticazione, fino alle normative europee più recenti e ai casi studio come il Digital Wallet, offriremo una panoramica sull’evoluzione dell’identità digitale, passando dalle soluzioni attuali agli scenari futuri.

Le infrastrutture italiane e il contesto normativo

In Italia, le organizzazioni pubbliche e private beneficiano di sistemi evoluti di gestione delle identità digitali. Come tutte le iniziative guidate dal Dipartimento per la trasformazione digitale della Presidenza del Consiglio dei ministri, la Strategia Cloud Italia promuove infrastrutture moderne, sicure e interoperabili in conformità alle normative nazionali e comunitarie, quali quelle principali di seguito riportate:

Cosa intendiamo per identità digitali e gli “attori” del sistema IAM

L’identità digitale è un insieme di dati elettronici che permette di identificare una persona in modo univoco.

Un sistema IAM (Identity and Access Management) è un framework integrato di regole, processi e tecnologie che consentono di gestire identità digitali e configurare l’accesso a risorse informatiche evitando che utenti non autorizzati entrino in aree riservate o compiano operazioni non consentite.

Modello a tre parti — Three-party model

Il Three-Party Model è un modello architetturale utilizzato nei sistemi di identità digitale e nelle infrastrutture autorizzative che separa in modo chiaro i ruoli e le responsabilità tra i seguenti tre attori principali:

Interazione tra le parti

Le interazioni tra le parti avvengono come segue:

All’interno degli ecosistemi federati evoluti si introduce anche un quarto attore:

La rivoluzione del Digital Wallet

I processi che regolamentano e gestiscono le identità digitali sono in continua evoluzione, ultima delle quali quella relativa all’introduzione del paradigma del Digital Wallet, ovvero il portafoglio digitale.

Con il portafoglio digitale il fornitore di identità digitale è stato sostituito dal fornitore di credenziali e l’utente non usa più soltanto il suo web browser, ma anche il suo Wallet personale, che diviene lo strumento di richiesta, conservazione ed utilizzo delle credenziali sotto forma di documenti digitali.

Il Wallet è spesso individuabile in un’applicazione mobile, come App IO.

I benefici derivanti dall’uso del Wallet sono molteplici, tra questi l’impossibilità di conoscere da parte del fornitore delle credenziali (credential issuer) l’uso delle credenziali su un particolare relying party (cosa impossibile usando le tecnologie SAML2 o OIDC) e la possibilità di utilizzare tali credenziali anche nei flussi offline.

L’innovazione del modello Three-Party Model

L’utilizzo in rete di credenziali autenticabili mediante un database centrale, quale ad esempio un classico server LDAP, implica che il service provider acceda direttamente alla base dati delle credenziali. In questo caso, il service provider otterrebbe le credenziali dell’utente per confrontarle con quelle conservate all’interno della base dati, o semplicemente autenticandosi per conto dell’utente. In altre parole, l’utente avrebbe consegnato le proprie credenziali ad un sistema diverso rispetto a quello che le gestisce. Questo modello va bene nei casi in cui il service provider e l’identity provider corrispondano, o nei casi in cui questi coesistano all’interno del medesimo dominio.

Nei sistemi di autenticazione e autorizzazione cross domain questa divulgazione delle credenziali a terze parti non fidate non è sostenibile dal punto di vista della sicurezza.

Al contrario, il Three-Party Model supportato da protocolli come SAML2, OAuth2, OpenID Connect 1.0, e OpenID for Verifiable Credentials e ISO 18013–5 per le implementazioni Wallet, fornisce diversi benefici in termini di divisione delle responsabilità tra i vari attori per un sostanziale incremento della sicurezza (uso di token autorizzativi temporanei, crittografia e validazioni basate su firma digitale).

Il ciclo di vita delle identità digitali

Al fine di avere un quadro più chiaro del funzionamento di un’identità digitale, di seguito riportiamo le fasi per la gestione del suo ciclo di vita.

1. Identificazione

È il processo iniziale in cui un soggetto dichiara chi è, attraverso la presentazione di documenti di identità personale e informazioni di natura biometrica, quali impronte digitali o riconoscimento del volto. L’obiettivo è associare un’identità digitale verificata a una persona fisica o giuridica e con adeguati livelli di garanzia (vedi ISO 29115).

Esempio: identificazione presso il comune di appartenenza per l’ottenimento della CIE (Carta di Identità elettronica).

2. Approvvigionamento delle credenziali (Credential Provisioning)

Consiste nel fornire all’utente delle credenziali sicure per l’accesso (es. Password e smart card).

Esempio: rilascio della Carta d’Identità Elettronica con PIN/PUK.

3. Ciclo di vita dell’identità digitale (Credential Lifecycle Management)

Include tutte le fasi di configurazione, quali la creazione, l’aggiornamento, la sospensione e la revoca delle identità e dei relativi privilegi a questa collegati, attraverso l’applicazione di politiche di gestione, al fine di assicurare che l’identità associata ad un soggetto e i suoi privilegi siano sempre corretti, aggiornati e non eccedenti rispetto agli scopi del trattamento.

Esempi: modifica dati anagrafici, sospensione per anomalie, revoca automatica alla fine di un contratto.

4. Autenticazione

L’autenticazione è il processo che verifica che chi accede sia effettivamente il titolare delle credenziali, tramite metodi di comprovazione del loro possesso, quali l’uso di username e password, One-Time Password (OTP), biometria o più prove da utilizzare in contemporanea (cosiddetta autenticazione a fattori multipli, anche nota con l’acronimo MFA).

Esempi: accesso a un portale pubblico con il Sistema Pubblico di Identità Digitale (SPID) livello 2 (password + OTP) o tramite CIE con NFC e PIN, “autenticazione unica” (Single-Sign ON in breve SSO) aziendale estesa da un token OTP generato da applicazione di autenticazione precedentemente registrata.

Le implementazioni dei metodi di autenticazione devono garantire un livello di “garanzia” (Level of Assurance, LoA) della sicurezza. ISO/IEC 29115 è una norma internazionale che fornisce un quadro di riferimento per la gestione dei livelli di garanzia delle identità digitali. In pratica, serve a garantire che un’identità digitale corrisponda effettivamente al soggetto reputato come il suo legittimo possessore, tramite l’uso di diverse soglie o livelli di sicurezza (LoA 1, LoA 2, LoA 3 e LoA 4).

Usare fattori multipli di autenticazione (MFA) tende generalmente ad innalzare la garanzia contro eventuali furti delle credenziali.

L’autenticazione a fattori multipli è particolarmente utile in caso di smarrimento o furto di dispositivi aziendali, o quando dispositivi personali o aziendali risultino incustoditi o utilizzati da terze persone, prevenendo l’accesso non autorizzato e la conseguente impersonificazione.

Gli accessi possono essere garantiti anche in via temporanea attraverso la definizione di specifiche utenze “ospite” a cui vengono forniti permessi limitati, negli scopi e nel tempo. La gestione di utenze “temporanee” o effimere può risultare come uno strumento utile per la gestione degli accessi per attività non continuative, quali quelle svolte da un fornitore per le attività di monitoraggio o collaudo degli asset, secondo quanto riportato nelle Linee Guida per il rafforzamento della protezione delle banche dati rispetto al rischio di utilizzo improprio.

5. Autorizzazione

L’autorizzazione è il processo che stabilisce l’idoneità di un soggetto nello svolgere determinate azioni all’interno di un determinato contesto o di accedere a determinate risorse. Implica che l’identità del soggetto sia autenticata con opportuni livelli di garanzia.

Esempio: La richiesta di un service provider per autenticare un utente viene autorizzata prima di procedere all’autenticazione dell’utente. La richiesta di un utente ad accedere ad un servizio utilizzando un token, emesso da una terza parte fidata, che consente l’accesso in sola lettura ed esplicite limitazioni orarie.

La gestione degli accessi privilegiati (Privileged Access Management, PAM) è un ambito tradizionale per la sicurezza degli accessi alle risorse critiche. Gli utenti vengono autorizzati, per garantire il principio dei privilegi minimi e segnalare accessi non autorizzati, tramite ruoli e/o attributi definiti nelle loro credenziali di accesso, utilizzando tecniche come il controllo degli accessi (Access Control Lists, ACL), dei ruoli (RBAC — Role-Based Access Control) e degli Attributi (ABAC — Attribute-Based Access Control). Ulteriori tecniche quali Mandatory Access Control (MAC), Discretionary Access Control (DAC) e Rule-Based Access Control (RuBAC) sono menzionate anche nella Linee Guida ACN.

Alcuni aspetti avanzati della gestione delle componenti sono ad oggi caratterizzati da esperienze implementative relativamente mature ma non ancora standardizzate: una delle proposte in via di sviluppo è quella riportata nell’OpenID Foundation draft “Authorization API 1.0” che propone un’API di sicurezza e semplificazione per la comunicazione tra i componenti di autorizzazione (AuthZEN Working Group — OpenID Foundation).

6. Registrazione dell’utente locale (Local User Registration)

Il service provider rappresenta un’applicazione altamente specializzata che necessita di una gestione locale dei profili degli utenti. Per questa ragione l’autenticazione di un utente al suo interno produce la creazione del profilo utente, abilitandolo ai servizi digitali e in coerenza con il funzionamento interno dell’applicazione.

Esempi: primo accesso all’App IO con SPID, registrazione su portali delle pubbliche amministrazioni.

Il massimo della sicurezza, ovvero il sistema “Zero Trust”

Quali approcci utilizzare, quindi, per implementare il massimo della sicurezza? Uno dei modelli consigliati per le tecniche di verifica degli accessi, soprattutto in ambito pubblico e cloud, particolarmente rivolto a sistemi distribuiti, è quello chiamato “Fiducia Zero” o “Zero Trust”.

Questo approccio si basa sul principio di “mai fidarsi, verificare sempre”, richiedendo che ogni richiesta di accesso sia autenticata e autorizzata.

I suoi principi chiave includono:

Le evoluzioni delle identità digitali e il cloud della PA

Nei sistemi cloud è essenziale adottare buone pratiche di sicurezza fin dalla progettazione (security by design) e nella gestione operativa (security by default), integrando controlli di monitoraggio e difese multilivello (defense in depth). Queste pratiche supportano una gestione efficace degli accessi e la separazione degli ambienti applicativi (sviluppo, staging, produzione), abilitando credenziali e procedure dedicate per ciascun contesto, secondo i principi del Secure Software Development Cycle come riportato nelle Linee Guida ACN.

La federazione dei servizi mista all’implementazione coerente di un framework di sicurezza e all’ adesione a regole condivise, favoriscono l’interoperabilità e la riduzione dei rischi e dei costi derivanti dalla frammentazione dei sistemi e dei protocolli di gestione dei dati e degli accessi, rafforzando la fiducia tra i partecipanti, siano questi enti pubblici e/o privati. Il livello di garanzia delle identità digitali tutela contro rischi di furto di identità e impersonificazione, ponendo le basi sicure dell’uso delle credenziali, sin dalla loro emissione. L’uso di standard consolidati riduce sensibilmente i costi di valutazione dei rischi di sicurezza, altrimenti necessari in caso di utilizzo di sistemi custom.

L’evoluzione dei sistemi IT beneficia dell’esperienza e del lavoro di comunità di esperti su scala globale e delle migliori pratiche implementative, esperienza che il Dipartimento per la trasformazione digitale desidera accrescere e condividere con tutte le organizzazioni pubbliche e private della scena nazionale ed europea.

Una gestione inefficace degli accessi può comportare rischi significativi, tra cui accessi non autorizzati, violazioni dei dati e perdita di fiducia da parte dei cittadini, per queste ragioni è fondamentale adottare misure di sicurezza adeguate a mitigare questi rischi. La formazione del personale e la consapevolezza di questi riguardo ai rischi derivanti da cattiva gestione degli asset è essenziale per garantire un’amministrazione efficace degli accessi alla infrastruttura IT. La gestione delle identità nel cloud pubblico è in continua evoluzione, con nuove tecnologie e best practice che emergono costantemente.

Le prossime puntate

Per approfondire le caratteristiche di interoperabilità dei sistemi in cloud e apprendere come mettere in atto, in pratica, la teoria esposta in questo articolo, vi invitiamo al prossimo approfondimento che sarà interamente dedicato ai sistemi autorizzativi nei flussi di interscambio dei dati da macchina a macchina, e senza interazione alcuna da parte degli utenti.

Le immagini presenti in questo articolo sono state sviluppate con il supporto dell’Intelligenza Artificiale con l’obiettivo di rappresentare visivamente i temi trattati.

Questo blog è redatto da Developers Italia