Le credenziali digitali sono documenti verificabili tramite crittografia che possono essere utilizzati per autenticare, autorizzare o fornire informazioni su un utente. Si tratta in genere di elementi come patenti di guida mobile, passaporti digitali, carte d'imbarco e così via. Si trovano in contenitori virtuali chiamati portafogli digitali e fanno parte di uno standard W3C che specifica come accedervi e recuperarli. Questo standard viene implementato per i casi d'uso web con l'API W3C Credential Management e su Android con l'API DigitalCredential di Gestore delle credenziali.
Informazioni sulle credenziali digitali
Nel mondo fisico, una persona potrebbe tenere la propria identità nel portafoglio e mostrarla a una parte richiedente quando richiesto:
In questo caso, un utente in genere ha un solo portafoglio e recupera le credenziali richieste dal portafoglio per presentarle al richiedente. I portafogli sono per lo più intercambiabili e possono generalmente memorizzare le stesse cose.
Le credenziali digitali presentano le seguenti differenze rispetto alle credenziali nel mondo fisico:
- Gli utenti dovrebbero avere più portafogli, noti anche come titolari, che possono contenere varie credenziali diverse. I wallet determinano quali credenziali possono essere memorizzate al loro interno.
- L'app o il servizio che richiede la credenziale per concedere l'accesso o verificare un'identità è chiamato verificatore.
- L'entità che crea la credenziale e afferma le attestazioni sul soggetto (ad esempio un'università, un governo o un'azienda tecnologica) è denominata emittente.
- La presentazione delle credenziali avviene nel software, il che significa che una superficie API recupera e presenta le credenziali. In Android, questa è Credential Manager.
Di conseguenza, Gestore delle credenziali assume diversi ruoli che in precedenza erano gestiti dall'utente:
- Su Android, i wallet devono registrare i metadati delle credenziali in Gestore delle credenziali per essere visualizzati nell'interfaccia utente di Gestore delle credenziali.
- Gestore delle credenziali abbina le credenziali nei vari wallet in base alla richiesta e presenta un elenco da cui l'utente può scegliere.
- Quando l'utente seleziona una credenziale nell'elenco, Gestore delle credenziali richiama il wallet, che gestirà il resto della transazione (mostrando le UI e così via) e restituirà la credenziale all'applicazione.
Questo flusso è mostrato qui:
Credenziali verificabili
Le credenziali verificabili sono un sottoinsieme di credenziali digitali regolate da standard rigorosi (come il modello di dati delle credenziali verificabili del W3C). Queste credenziali contengono attestazioni protette crittograficamente, il che le rende a prova di manomissione e dimostra esattamente chi le ha emesse.
Non tutte le credenziali digitali sono verificabili, ma tutte le credenziali verificabili sono digitali.
Cosa significa che un'affermazione è verificata
Quando una credenziale arriva tramite l'API Android Credential Manager e un'attestazione al suo interno è contrassegnata come "verificata", significa che l'emittente afferma di aver eseguito un controllo su quel dato specifico. Tuttavia, non significa che i dati siano una verità assoluta e universale. "Verificato" è un'affermazione di procedura, non una garanzia automatica di affidabilità.
La filosofia di base di questo ecosistema è che l'attendibilità viene sempre risolta presso il verificatore. Quando il verificatore (la tua app) riceve i dati crittograficamente sicuri e vede che l'emittente li ha contrassegnati come "verificati", deve determinare se si fida dell'emittente per aver verificato l'attestazione in base ai suoi standard.
Esperienza utente
Come mostrato nel flusso Android, l'utente deve interagire una sola volta con l'interfaccia utente di Gestore delle credenziali per selezionare la credenziale appropriata. Ecco un esempio di come appare il selettore:
Standard
Le richieste di credenziali digitali vengono create utilizzando lo standard OpenID4VP. Puoi visualizzare richieste di esempio nel sito demo delle credenziali digitali.
Le risposte delle credenziali digitali vengono in genere restituite in un formato standardizzato. Questi sono gestiti da diversi organismi di standardizzazione e includono W3C Verifiable Credentials, sd-jwt e mdoc.
Sono possibili anche protocolli personalizzati, anche se ti consigliamo di utilizzare uno dei protocolli standard nella tua applicazione.
Prova
Puoi provare il flusso delle credenziali digitali su più piattaforme con un portafoglio Android e un verificatore basato sul web:
- Installa l'esempio pubblico di CMWallet sul tuo smartphone Android.
Puoi farlo estraendo i file dal repository e installandoli direttamente da
Android Studio o andando su
https://github.com/digitalcredentialsdev/CMWallet/actions
e selezionando l'ultima build per accedere al file
app-debug.apkpiù recente. - Apri CMWallet per registrare i metadati con Gestore delle credenziali. Assicurati che il Bluetooth sia attivato per consentire ai dispositivi di connettersi tra loro.
- Vai alla pagina https://digital-credentials.dev/ e seleziona
Request Credentials (OpenID4VP). - Accetta i prompt di avviso e scansiona il codice QR con lo smartphone, poi seleziona "Usa passkey" e tocca la conferma per visualizzare le credenziali disponibili.
- Seleziona la credenziale da CMWallet per tornare al browser. Il browser dovrebbe mostrare la credenziale restituita.
Vedi anche
- Per scoprire di più sull'utilizzo di Gestore delle credenziali per richiedere credenziali digitali nella tua app, leggi la pagina API Gestore delle credenziali - Verifier.
- Per saperne di più sulla creazione di un wallet digitale utilizzando Gestore delle credenziali, consulta la pagina API Gestore delle credenziali - Holder.