6.1. Modello di Dati degli Attestati Elettronici¶
Il Modello di Dati degli Attestati Elettronici struttura gli Attestati ELettronici per un uso sicuro e interoperabile. Gli elementi chiave includono:
Soggetto dell'Attestato Elettronico: L'individuo o l'entità che riceve l'Attestato Elettronico.
Fornitore di Attestato Elettronico: il soggetto che emette e firma l'Attestato Elettronico.
Metadata: Dettagli sull'Attestato Elettronico, come tipologia e validità.
Attributi dell'Utente: Informazioni sul soggetto, come identità o titoli/qualifiche.
Elementi crittografici: Verifica crittografica dell'autenticità e della legittimità di possesso.
L'Attestato Elettronico di Dati di Identificazione Personale (PID) è rilasciato dal Fornitore di Attestati Elettronici di Dati di Identificazione Personale secondo le leggi nazionali. Lo scopo principale del PID è consentire alle persone fisiche di essere autenticate per accedere a un servizio o a una risorsa protetta. Gli attributi dell'Utente forniti all'interno del PID italiano sono quelli elencati di seguito:
Cognome
Nome
Data di Nascita
Codice fiscale
Gli Attestati Elettronici di Attributi (Qualificati) ((Q)EAA) sono rilasciati dai Fornitori di Attestati Elettronici di Attributi (Qualificati) ((Q)EAA) a un'Istanza del Wallet e DEVONO essere forniti in formato SD-JWT-VC o mdoc-CBOR.
Il formato dei dati dell'Attestato Elettronico e il meccanismo attraverso il quale un Attestato Elettronico viene rilasciato all'Istanza del Wallet e presentato a una Relying Party sono descritti nelle sezioni seguenti.
6.1.1. Attestato Elettronico in formato SD-JWT-VC¶
Il PID/(Q)EAA è rilasciato sotto forma di Attestato Elettronico. Il formato dell'Attestato Elettronico in SD-JWT segue le specifiche di SD-JWT-VC.
SD-JWT DEVE essere firmato utilizzando la chiave privata del Fornitore di Attestati Elettronici. SD-JWT DEVE essere fornito insieme a un Type Metadata relativo all'Attestato Elettronico rilasciato secondo quanto indicato nelle Sezioni 6 e 6.3 di [SD-JWT-VC]. Il payload DEVE contenere il claim _sd_alg descritto nella Sezione 4.1.1 SD-JWT e gli altri claim specificati in questa sezione.
Il claim _sd_alg indica l'algoritmo di hash utilizzato dal Fornitore di Attestati Elettronici per generare i digest come descritto nella Sezione 4.1.1 di SD-JWT. _sd_alg DEVE essere valorizzato con uno degli algoritmi specificati nella Sezione Cryptographic Algorithms.
I claim che non sono divulgabili selettivamente DEVONO essere inclusi nel SD-JWT così come sono. I digest delle disclosure, insieme a eventuali decoy digest se presenti, DEVONO essere contenuti nell'array _sd, come specificato nella Sezione 4.2.4.1 di SD-JWT.
Ogni valore di digest, calcolato applicando una funzione di hash sulle disclosure, verifica l'integrità e corrisponde a una specifica disclosure. Ogni disclosure include:
un salt casuale,
il nome del claim (solo quando il claim è un object element),
il valore del claim.
In caso di oggetti annidati (nested object) nel payload SD-JWT, ogni claim di ogni livello del JSON dovrebbe essere individualmente contrassegnato come divulgabile selettivamente o meno. Pertanto il claim _sd contenente i digest PUÒ apparire più volte nei diversi livelli del SD-JWT.
Per ogni claim che è un elemento di un array, i digest delle rispettive disclosure e i decoy digest vengono aggiunti all'array nella stessa posizione dei valori del claim originali come specificato nella Sezione 4.2.4.2 di SD-JWT.
In caso di elementi di un array, i valori di digest vengono calcolati applicando una funzione di hash sulle disclosure, contenenti:
un salt casuale,
l'elemento dell'array.
In presenza di più elementi in un array, il Fornitore di Attestati Elettronici può nascondere il valore dell'intero array oppure di qualsiasi elemento contenuta all'interno dell'array, il Titolare può divulgare sia l'intero array che qualsiasi singola voce all'interno dell'array, come definito nella Sezione 4.2.6 di SD-JWT.
Le disclosure vengono fornite al Titolare insieme al SD-JWT nel Combined Format for Issuance che è una serie ordinata di valori codificati in base64url, ciascuno separato dal successivo da un singolo carattere tilde ('~') come segue:
<Issuer-Signed-JWT>~<Disclosure 1>~<Disclosure 2>~...~<Disclosure N>
Vedere SD-JWT-VC e SD-JWT per ulteriori dettagli.
6.1.1.1. Parametri SD-JWT della Credenziale¶
Il JOSE Header contiene i seguenti parametri obbligatori:
Claim |
Descrizione |
Riferimento |
---|---|---|
typ |
OBBLIGATORIO. DEVE essere valorizzato con |
RFC 7515 Sezione 4.1.9. |
alg |
OBBLIGATORIO. Algoritmo di firma. |
RFC 7515 Sezione 4.1.1. |
kid |
OBBLIGATORIO. Identificativo univoco della chiave pubblica. |
RFC 7515 Sezione 4.1.8. |
trust_chain |
OPZIONALE. Array JSON contenente la catena di fiducia che dimostra l'affidabilità di chi emette il JWT. |
[OID-FED] Sezione 4.3. |
x5c |
OPZIONALE. Contiene il certificato della chiave pubblica X.509 o la catena di certificati [RFC 5280] corrispondente alla chiave utilizzata per firmare digitalmente il JWT. |
|
vctm |
OPZIONALE. Array JSON di documenti JSON di Type Metadata codificati in base64url. In caso di Type Metadata che ne estende un altro, questo claim contiene l'intera catena di documenti JSON. |
[SD-JWT-VC] Sezione 6.3.5. |
Il payload JWT contiene i seguenti claim. Alcuni di questi claim possono essere divulgati, questi sono elencati nelle seguenti tabelle che specificano se un claim è divulgabile selettivamente [SD] o meno [NSD].
Claim |
Descrizione |
Riferimento |
---|---|---|
iss |
[NSD]. OBBLIGATORIO. Stringa URL che rappresenta l'identificativo univoco del Fornitore di Attestati Elettronici. |
|
sub |
[NSD]. OBBLIGATORIO. L'identificativo del soggetto dell'Attestato Elettronico, l'Utente, DEVE essere un valore opaco e NON DEVE corrispondere a nessun dato anagrafico o essere derivato dai dati anagrafici dell'Utente tramite pseudonimizzazione. Inoltre, due diversi Attestati Elettronici emessi NON DEVONO utilizzare lo stesso valore di |
|
iat |
[SD]. OBBLIGATORIO. Timestamp UNIX con l'orario di emissione del JWT, codificato come NumericDate come indicato in RFC 7519. |
|
exp |
[NSD]. OBBLIGATORIO. Timestamp UNIX con l'orario di scadenza del JWT, codificato come NumericDate come indicato in RFC 7519. |
|
nbf |
[NSD]. OPZIONALE. Timestamp UNIX con l'orario di inizio validità del JWT, codificato come NumericDate come indicato in RFC 7519. |
|
issuing_authority |
[NSD]. OBBLIGATORIO. Nome dell'autorità amministrativa che ha emesso l'Attestato Elettronico. |
Regolamento di esecuzione della Commissione EU_2024/2977. |
issuing_country |
[NSD]. OBBLIGATORIO. Codice paese Alpha-2, come specificato in ISO 3166-1, del paese o territorio del Fornitore di Attestati Elettronici. |
Regolamento di esecuzione della Commissione EU_2024/2977. |
status |
[NSD]. OBBLIGATORIO solo se l'Attestato Elettronico ha una durata superiore alle 24 ore (long-lived). Oggetto JSON contenente le informazioni su come leggere lo stato dell'Attestato Elettronico. DEVE contenere l'oggetto JSON status_assertion o status_list. |
Sezione 3.2.2.2 SD-JWT-VC e Sezione 11 OAUTH-STATUS-ASSERTION. |
cnf |
[NSD]. OBBLIGATORIO. Oggetto JSON contenente il materiale crittografico da utilizzare come prova di possesso. L'inclusione del claim cnf (confirmation) in un JWT, permette al soggetto che emette il JWT di dichiarare che il Titolare ha il controllo della chiave privata relativa a quella pubblica definita nel parametro cnf. Il destinatario DEVE verificare crittograficamente che il Titolare abbia effettivamente il controllo di quella chiave. |
[RFC7800, Sezione 3.1] e Sezione 3.2.2.2 SD-JWT-VC. |
vct |
[NSD]. OBBLIGATORIO. Il valore del tipo di Attestato Elettronico DEVE essere una stringa URL HTTPS e DEVE essere valorizzata utilizzando uno dei valori ottenuti dai Metadata del Fornitore di Attestati Elettronici. È l'identificativo del tipo di SD-JWT VC e DEVE essere resistente alle collisioni come definito nella Sezione 2 di RFC 7515. DEVE contenere anche il numero di versione dell'Attestato Elettronico (ad esempio: |
Sezione 3.2.2.2 SD-JWT-VC. |
vct#integrity |
[NSD]. OBBLIGATORIO. Il valore DEVE essere una stringa "integrity metadata" come definito nella Sezione 3 di [W3C-SRI]. SHA-256, SHA-384 e SHA-512 DEVONO essere supportati come funzioni crittografiche di hash. MD5 e SHA-1 NON DEVONO essere utilizzati. Questo claim DEVE essere verificato in base a quanto indicato nella la Sezione 3.3.5 di [W3C-SRI]. |
|
verification |
[SD]. CONDIZIONALE. OBBLIGATORIO se il tipo di Attestato Elettronico è PersonIdentificationData, altrimenti è OPZIONALE. Oggetto contenente informazioni sull'autenticazione dell'Utente e sulla verifica dei dati dell'Utente. Se presente DEVE includere il seguente parametri:
|
OIDC-IDA. |
_sd |
[NSD]. OBBLIGATORIO. Array di stringhe, dove ogni stringa rappresenta un digest di una disclosure. |
4.2.4.1 SD-JWT |
_sd_alg |
[NSD]. OBBLIGATORIO. Algoritmo di hash utilizzato dal Fornitore di Attestati Elettronici per generare i digest. |
4.1.1 SD-JWT |
Se il parametro status
è valorizzato con status_list
, l'oggetto JSON contiene i seguenti sub parametri:
Parametro |
Descrizione |
Riferimento |
---|---|---|
idx |
OBBLIGATORIO. Il claim idx (index) DEVE contenere un numero intero che rappresenta l'indice da controllare per recuperare le informazioni relative allo stato nella Status List per l'Attestato Elettronico corrente. Il valore di idx DEVE essere un numero non negativo, contenente un valore uguale o superiore a zero. |
|
uri |
OBBLIGATORIO. Il claim |
Se il parametro status
è valorizzato con status_assertion
, l'oggetto JSON contiene il claim credential_hash_alg che indica l'algoritmo utilizzato per l'hashing dell'Attestato Elettronico a cui è associato la Status Assertion. Si RACCOMANDA di utilizzare sha-256.
Nota
Il documento JSON di Type Metadata dell'Attestato Elettronico PUÒ essere recuperato direttamente dall'URL contenuto nel claim vct, utilizzando il metodo GET HTTP o utilizzando il parametro di header vctm
se presente. A differenza di quanto specificato nella Sezione 6.3.1 di SD-JWT-VC l'endpoint .well-known non è incluso nell'attuale profilo di implementazione. Gli implementatori possono comunque decidere di utilizzarlo ai fini di interoperabilità con gli altri sistemi.
6.1.1.2. Type Metadata dell'Attestato Elettronico¶
Il documento di Type Metadata DEVE essere un oggetto JSON che contiene i seguenti parametri.
Claim |
Descrizione |
Riferimento |
---|---|---|
name |
OBBLIGATORIO. Nome human-readable del tipo di Attestato Elettronico. In casistiche multilingua, i tag di lingua vengono aggiunti al nome del claim, delimitandoli con il carattere # come definito in RFC 5646 (ad es. name#it-IT). |
|
description |
OBBLIGATORIO. Una descrizione leggibile del tipo di Attestato Elettronico. In casistiche multilingua, i tag di lingua vengono aggiunti al nome del claim, delimitandoli da un carattere # come definito in RFC 5646. |
|
extends |
OPZIONALE. Stringa identificativa di un documento Type Metadata che ne estende un altro. |
[SD-JWT-VC] Sezione 6.2. |
extends#integrity |
CONDIZIONALE. OBBLIGATORIO se extends è presente. |
[SD-JWT-VC] Sezione 6.2. |
schema |
CONDIZIONALE. OBBLIGATORIO se schema_uri non è presente. |
[SD-JWT-VC] Sezione 6.2. |
schema_uri |
CONDIZIONALE. OBBLIGATORIO se schema non è presente. |
[SD-JWT-VC] Sezione 6.2. |
schema_uri#integrity |
CONDIZIONALE. OBBLIGATORIO se schema_uri è presente. |
[SD-JWT-VC] Sezione 6.2. |
data_source |
OBBLIGATORIO. Oggetto contenente informazioni sull'origine dei dati. DEVE contenere l'oggetto
|
Questa specifica |
display |
OBBLIGATORIO. Array di oggetti, uno per ogni lingua supportata, contenente informazioni di visualizzazione per il tipo di Attestato Elettronico. Contiene per ogni oggetto le seguenti proprietà:
|
[SD-JWT-VC] Sezione 8. |
claims |
OBBLIGATORIO. Array di oggetti contenenti informazioni per la visualizzazione e la convalida dei claim dell'Attestato Elettronico. Contiene per ogni claim dell'Attestato Elettronico le seguenti proprietà:
|
[SD-JWT-VC] Sezione 9. |
Un esempio non normativo di Type Metadata dell'Attestato Elettronico è fornito di seguito.
{
"name": "Person Identification Data",
"description": "Digital version of Person Identification Data",
"schema_uri": "https://trust-registry.eid-wallet.example.it/.well-known/schemas/v1.0/sd-jwt/personidentificationdata",
"schema_uri#integrity": "c8b708728e4c5756e35c03aeac257ca878d1f717d7b61f621be4d36dbd9b9c16",
"data_source": {
"verification": {
"trust_framework": "pdnd",
"authentic_source": {
"organization_name": "Ministero dell'Interno",
"organization_code": "m_it",
"contacts": [
"informazioni@example.it",
"protocollo@pec.example.it"
],
"homepage_uri": "https://authsource.example.com/",
"logo_uri": "https://authsource.example.com/img/logo.svg"
}
}
},
"display": [
{
"lang": "it-IT",
"name": "Dati di Identificazione Personale",
"description": "Versione Digitale dei Dati di Identificazione Personale",
"rendering": {
"simple": {
"logo": {
"uri": "https://authsource.example.com/img/logo.png",
"uri#integrity": "sha256-LmXfh-9cLlJNXN-TsMk-PmKjZ5t0WRL5ca_xGgX3c1V",
"alt_text": "Logo del Ministero dell'Interno"
},
"background_color": "#2e89d9",
"text_color": "#030303"
},
"svg_templates": [
{
"uri": "https://authsource.example.com/.well-known/templates/it/personidentificationdata.svg",
"uri#integrity": "sha256-8cLlJNXN-TsMk-PmKjZ5t0WRL5ca_xGgX3c1VLmXfh-9c",
"properties": {
"orientation": "landscape",
"color_scheme": "light",
"contrast": "high"
}
}
]
}
},
{
"lang": "en-US",
"name": "Person Identification Data",
"description": "Digital version of Person Identification Data",
"rendering": {
"simple": {
"logo": {
"uri": "https://authsource.example.com/img/logo.png",
"uri#integrity": "sha256-LmXfh-9cLlJNXN-TsMk-PmKjZ5t0WRL5ca_xGgX3c1V",
"alt_text": "Ministry of the Interior logo"
},
"background_color": "#2e89d9",
"text_color": "#030303"
},
"svg_templates": [
{
"uri": "https://authsource.example.com/.well-known/templates/en/personidentificationdata.svg",
"uri#integrity": "sha256-8cLlJNXN-TsMk-PmKjZ5t0WRL5ca_xGgX3c1VLmXfh-9c",
"properties": {
"orientation": "landscape",
"color_scheme": "light",
"contrast": "high"
}
}
]
}
}
],
"claims": [
{
"path": ["given_name"],
"display": [
{
"lang": "it-IT",
"label": "Nome",
"description": "Nome/i attuale/i dell'utente a cui si riferiscono i dati di identificazione personale."
},
{
"lang": "en-US",
"label": "Name",
"description": "Current first name(s), including middle name(s) of the user to whom the person identification data relates."
}
],
"sd": "always",
"svg_id": "given_name"
},
{
"path": ["family_name"],
"display": [
{
"lang": "it-IT",
"label": "Cognome",
"description": "Cognome/i attuale/i dell'utente a cui si riferiscono i dati di identificazione personale."
},
{
"lang": "en-US",
"label": "Surname",
"description": "Current last name(s) or surname(s) of the user to whom the person identification data relates."
}
],
"sd": "always",
"svg_id": "family_name"
},
{
"path": ["birth_date"],
"display": [
{
"lang": "it-IT",
"label": "Data di nascita",
"description": "Giorno, mese e anno di nascita dell'utente a cui si riferiscono i dati identificativi."
},
{
"lang": "en-US",
"label": "Date of birth",
"description": "Day, month, and year on which the user to whom the person identification data relates was born."
}
],
"sd": "always",
"svg_id": "birth_date"
},
{
"path": ["personal_administrative_number"],
"display": [
{
"lang": "it-IT",
"label": "Codice fiscale",
"description": "Codice di identificazione fiscale nazionale della persona fisica."
},
{
"lang": "en-US",
"label": "Tax identification number",
"description": "National tax identification code of natural person."
}
],
"sd": "always",
"svg_id": "personal_administrative_number"
}
]
}
6.1.1.3. Attributi PID dell'Utente¶
A seconda del tipo di Attestato Elettronico vct, possono essere aggiunti dei claim aggiuntivi, il PID supporta i seguenti:
Claim |
Descrizione |
Riferimento |
---|---|---|
given_name |
[SD]. OBBLIGATORIO. Nome. (Stringa) |
Sezione 5.1 di OIDC e Regolamento di esecuzione della Commissione EU_2024/2977 |
family_name |
[SD]. OBBLIGATORIO. Cognome. (Stringa) |
Sezione 5.1 di OIDC e Regolamento di esecuzione della Commissione EU_2024/2977 |
birth_date |
[SD]. OBBLIGATORIO. Data di Nascita. (Stringa, formato [ISO8601‑1] YYYY-MM-DD) |
Regolamento di esecuzione della Commissione EU_2024/2977 |
birth_place |
[SD]. OBBLIGATORIO. Luogo di Nascita. (Stringa) |
Regolamento di esecuzione della Commissione EU_2024/2977 |
nationalities |
[SD]. OBBLIGATORIO. Uno o più codici paese alpha-2 come specificato in ISO 3166-1. (Array di stringhe) |
Regolamento di esecuzione della Commissione EU_2024/2977 |
personal_administrative_number |
[SD]. CONDIZIONALE. OBBLIGATORIO se |
Regolamento di esecuzione della Commissione EU_2024/2977 |
tax_id_code |
[SD]. CONDIZIONALE. OBBLIGATORIO se |
6.1.1.4. Esempi Non Normativi di PID¶
Di seguito, l'esempio non normativo del payload di un PID rappresentato in formato JSON.
{
"iss": "https://pidprovider.example.org",
"sub": "NzbLsXh8uDCcd7noWXFZAfHkxZsRGC9Xs",
"iat": 1683000000,
"exp": 1883000000,
"issuing_authority": "Istituto Poligrafico e Zecca dello Stato",
"issuing_country": "IT",
"status": {
"status_assertion": {
"credential_hash_alg": "sha-256"
}
},
"vct": "https://trust-registry.eid-wallet.example.it/credentials/v1.0/personidentificationdata",
"vct#integrity": "c5f73e250fe869f24d15118acce286c9bb56b63a443dc85af653cd73f6078b1f",
"verification": {
"trust_framework": "it_cie",
"assurance_level": "high",
"evidence": [
{
"type": "vouch",
"time": "2020-03-19T12:42Z",
"attestation": {
"type": "digital_attestation",
"reference_number": "6485-1619-3976-6671",
"date_of_issuance": "2020-03-19T12:43Z",
"voucher": {
"organization": "Ministero dell'Interno"
}
}
}
]
},
"given_name": "Mario",
"family_name": "Rossi",
"birth_date": "1980-01-10",
"birth_place": "Roma",
"nationalities": ["IT"],
"personal_administrative_number": "XX00000XX",
"tax_id_code": "TINIT-XXXXXXXXXXXXXXXX"
}
La versione SD-JWT corrispondente per il PID è data da
{
"typ":"dc+sd-jwt",
"alg":"ES256",
"kid":"dB67gL7ck3TFiIAf7N6_7SHvqk0MDYMEQcoGGlkUAAw",
"trust_chain" : [
"NEhRdERpYnlHY3M5WldWTWZ2aUhm ...",
"eyJhbGciOiJSUzI1NiIsImtpZCI6 ...",
"IkJYdmZybG5oQU11SFIwN2FqVW1B ..."
]
}
{
"_sd": [
"6WLNc09rBr-PwEtnWzxGKdzImjrpDxbr4qoIx838a88",
"LqrtU2rlA51U97cMiYhqwa-is685bYiOJImp8a5KGNA",
"VQI-S1mT1Kxfq2o8J9io7xMMX2MIxaG9M9PeJVqrMcA",
"Yrc-s-WSr4exEYtqDEsmRl7spoVfmBxixP12e4syqNE",
"h7Egl5H9gTPC_FCU845aadvsC--dTjy9Nrstxh-caRo",
"s1XK5f2pM3-aFTauXhmvd9pyQTJ6FMUhc-JXfHrxhLk",
"tSL-e1nLdWOU9sFMTCUu5P1tCzxA-TW-VWbHGzYtU7E",
"zVdghcmClMVWlUgGsGpSkCPkEHZ4u9oWj1SlIBlCc1o"
],
"iss": "https://pidprovider.example.org",
"exp": 1883000000,
"sub": "NzbLsXh8uDCcd7noWXFZAfHkxZsRGC9Xs",
"issuing_authority": "Istituto Poligrafico e Zecca dello Stato",
"issuing_country": "IT",
"status": {
"status_assertion": {
"credential_hash_alg": "sha-256"
}
},
"nationalities": [
{
"...": "yKeP1CWTQK8Sd9BeNvFhkLXgEu/1G3QQz4CWSlqEOFw"
}
],
"vct": "https://trust-registry.eid-wallet.example.it/credentials/v1.0/personidentificationdata",
"vct#integrity": "c5f73e250fe869f24d15118acce286c9bb56b63a443dc85af653cd73f6078b1f",
"_sd_alg": "sha-256",
"cnf": {
"jwk": {
"kty": "EC",
"crv": "P-256",
"x": "TCAER19Zvu3OHF4j4W4vfSVoHIP1ILilDls7vCeGemc",
"y": "ZxjiWWbZMQGHVWKVQ4hbSIirsVfuecCE6t4jT9F2HZQ"
}
}
}
L'elenco delle disclosure è presentato di seguito.
Claim iat
:
Hash SHA-256:
Yrc-s-WSr4exEYtqDEsmRl7spoVfmBxixP12e4syqNE
- Disclosure:
WyIyR0xDNDJzS1F2ZUNmR2ZyeU5STjl3IiwgImlhdCIsIDE2ODMwMDAwMDBd
Contenuto:
["2GLC42sKQveCfGfryNRN9w", "iat", 1683000000]
Claim verification
:
Hash SHA-256:
h7Egl5H9gTPC_FCU845aadvsC--dTjy9Nrstxh-caRo
- Disclosure:
WyJlbHVWNU9nM2dTTklJOEVZbnN4QV9BIiwgInZlcmlmaWNhdGlvbiIsIHsi
dHJ1c3RfZnJhbWV3b3JrIjogIml0X2NpZSIsICJhc3N1cmFuY2VfbGV2ZWwi
OiAiaGlnaCIsICJldmlkZW5jZSI6IHsidHlwZSI6ICJ2b3VjaCIsICJ0aW1l
IjogIjIwMjAtMDMtMTlUMTI6NDJaIiwgImF0dGVzdGF0aW9uIjogeyJ0eXBl
IjogImRpZ2l0YWxfYXR0ZXN0YXRpb24iLCAicmVmZXJlbmNlX251bWJlciI6
ICI2NDg1LTE2MTktMzk3Ni02NjcxIiwgImRhdGVfb2ZfaXNzdWFuY2UiOiAi
MjAyMC0wMy0xOVQxMjo0M1oiLCAidm91Y2hlciI6IHsib3JnYW5pemF0aW9u
IjogIk1pbmlzdGVybyBkZWxsJ0ludGVybm8ifX19fV0
- Contenuto:
["eluV5Og3gSNII8EYnsxA_A", "verification",
{"trust_framework": "it_cie", "assurance_level": "high", "evidence": {"type": "vouch",
"time": "2020-03-19T12:42Z", "attestation": {"type":
"digital_attestation", "reference_number":
"6485-1619-3976-6671", "date_of_issuance":
"2020-03-19T12:43Z", "voucher": {"organization": "Ministero
dell'Interno"}}}}]
- Contenuto:
Claim given_name
:
Hash SHA-256:
zVdghcmClMVWlUgGsGpSkCPkEHZ4u9oWj1SlIBlCc1o
- Disclosure:
WyI2SWo3dE0tYTVpVlBHYm9TNXRtdlZBIiwgImdpdmVuX25hbWUiLCAiTWFy
aW8iXQ
Contenuto:
["6Ij7tM-a5iVPGboS5tmvVA", "given_name", "Mario"]
Claim family_name
:
Hash SHA-256:
VQI-S1mT1Kxfq2o8J9io7xMMX2MIxaG9M9PeJVqrMcA
- Disclosure:
WyJlSThaV205UW5LUHBOUGVOZW5IZGhRIiwgImZhbWlseV9uYW1lIiwgIlJv
c3NpIl0
Contenuto:
["eI8ZWm9QnKPpNPeNenHdhQ", "family_name", "Rossi"]
Claim birth_date
:
Hash SHA-256:
s1XK5f2pM3-aFTauXhmvd9pyQTJ6FMUhc-JXfHrxhLk
- Disclosure:
WyJRZ19PNjR6cUF4ZTQxMmExMDhpcm9BIiwgImJpcnRoX2RhdGUiLCAiMTk4
MC0wMS0xMCJd
Contenuto:
["Qg_O64zqAxe412a108iroA", "birth_date", "1980-01-10"]
Claim birth_place
:
Hash SHA-256:
tSL-e1nLdWOU9sFMTCUu5P1tCzxA-TW-VWbHGzYtU7E
Disclosure:
WyJBSngtMDk1VlBycFR0TjRRTU9xUk9BIiwgImJpcnRoX3BsYWNlIiwgIlJv
bWEiXQ
Contenuto:
["AJx-095VPrpTtN4QMOqROA", "birth_place", "Roma"]
Claim personal_administrative_number
:
Hash SHA-256:
6WLNc09rBr-PwEtnWzxGKdzImjrpDxbr4qoIx838a88
- Disclosure:
WyJHMDJOU3JRZmpGWFE3SW8wOXN5YWpBIiwgInBlcnNvbmFsX2FkbWluaXN0
cmF0aXZlX251bWJlciIsICJYWDAwMDAwWFgiXQ
- Contenuto:
["G02NSrQfjFXQ7Io09syajA", "personal_administrative_number",
"XX00000XX"]
- Contenuto:
Claim tax_id_code
:
Hash SHA-256:
LqrtU2rlA51U97cMiYhqwa-is685bYiOJImp8a5KGNA
- Disclosure:
WyJsa2x4RjVqTVlsR1RQVW92TU5JdkNBIiwgInRheF9pZF9jb2RlIiwgIlRJ
TklULVhYWFhYWFhYWFhYWFhYWFgiXQ
- Contenuto:
["lklxF5jMYlGTPUovMNIvCA", "tax_id_code",
"TINIT-XXXXXXXXXXXXXXXX"]
- Contenuto:
Voce Array di nationalities
:
Hash SHA-256:
yKeP1CWTQK8Sd9BeNvFhkLXgEu/1G3QQz4CWSlqEOFw
Disclosure:
WyJQYzMzSk0yTGNoY1VfbEhnZ3ZfdWZRIiwgIklUIl0
Contenuto:
["Pc33JM2LchcU_lHggv_ufQ", "IT"]
Il combined format per l'emissione del PID è dato da:
eyJhbGciOiAiRVMyNTYiLCAidHlwIjogImRjK3NkLWp3dCIsICJraWQiOiAiZEI2N2dM
N2NrM1RGaUlBZjdONl83U0h2cWswTURZTUVRY29HR2xrVUFBdyJ9.ewogICJfc2QiOiB
bCiAgICAiNldMTmMwOXJCci1Qd0V0bld6eEdLZHpJbWpycER4YnI0cW9JeDgzOGE4OCI
sCiAgICAiTHFydFUycmxBNTFVOTdjTWlZaHF3YS1pczY4NWJZaU9KSW1wOGE1S0dOQSI
sCiAgICAiVlFJLVMxbVQxS3hmcTJvOEo5aW83eE1NWDJNSXhhRzlNOVBlSlZxck1jQSI
sCiAgICAiWXJjLXMtV1NyNGV4RVl0cURFc21SbDdzcG9WZm1CeGl4UDEyZTRzeXFORSI
sCiAgICAiaDdFZ2w1SDlnVFBDX0ZDVTg0NWFhZHZzQy0tZFRqeTlOcnN0eGgtY2FSbyI
sCiAgICAiczFYSzVmMnBNMy1hRlRhdVhobXZkOXB5UVRKNkZNVWhjLUpYZkhyeGhMayI
sCiAgICAidFNMLWUxbkxkV09VOXNGTVRDVXU1UDF0Q3p4QS1UVy1WV2JIR3pZdFU3RSI
sCiAgICAielZkZ2hjbUNsTVZXbFVnR3NHcFNrQ1BrRUhaNHU5b1dqMVNsSUJsQ2MxbyI
KICBdLAogICJleHAiOiAxODgzMDAwMDAwLAogICJpc3MiOiAiaHR0cHM6Ly9waWRwcm9
2aWRlci5leGFtcGxlLm9yZyIsCiAgInN1YiI6ICJOemJMc1hoOHVEQ2NkN25vV1hGWkF
mSGt4WnNSR0M5WHMiLAogICJpc3N1aW5nX2F1dGhvcml0eSI6ICJJc3RpdHV0byBQb2x
pZ3JhZmljbyBlIFplY2NhIGRlbGxvIFN0YXRvIiwKICAiaXNzdWluZ19jb3VudHJ5Ijo
gIklUIiwKICAic3RhdHVzIjogewogICAgInN0YXR1c19hc3NlcnRpb24iOiB7CiAgICA
gICJjcmVkZW50aWFsX2hhc2hfYWxnIjogInNoYS0yNTYiCiAgICB9CiAgfSwKICAibmF
0aW9uYWxpdGllcyI6IFsKCXsKICAgICAgIi4uLiI6ICJ5S2VQMUNXVFFLOFNkOUJlTnZ
GaGtMWGdFdS8xRzNRUXo0Q1dTbHFFT0Z3IgogICAgfQogIF0sCiAgInZjdCI6ICJodHR
wczovL3RydXN0LXJlZ2lzdHJ5LmVpZC13YWxsZXQuZXhhbXBsZS5pdC9jcmVkZW50aWF
scy92MS4wL3BlcnNvbmlkZW50aWZpY2F0aW9uZGF0YSIsCiAgInZjdCNpbnRlZ3JpdHk
iOiAiYzVmNzNlMjUwZmU4NjlmMjRkMTUxMThhY2NlMjg2YzliYjU2YjYzYTQ0M2RjODV
hZjY1M2NkNzNmNjA3OGIxZiIsCiAgIl9zZF9hbGciOiAic2hhLTI1NiIsCiAgImNuZiI
6IHsKICAgICJqd2siOiB7CiAgICAgICJrdHkiOiAiRUMiLAogICAgICAiY3J2IjogIlA
tMjU2IiwKICAgICAgIngiOiAiVENBRVIxOVp2dTNPSEY0ajRXNHZmU1ZvSElQMUlMaWx
EbHM3dkNlR2VtYyIsCiAgICAgICJ5IjogIlp4amlXV2JaTVFHSFZXS1ZRNGhiU0lpcnN
WZnVlY0NFNnQ0alQ5RjJIWlEiCiAgICB9CiAgfQp9.ISeLw-Tqpmcos9ms7KQTfUhSm4
srAtGOMNQe3M-toaYhCcT4JnvZANmtBb8rOXdJ60oTtya4krCOjFNirEg3-g~WyIyR0x
DNDJzS1F2ZUNmR2ZyeU5STjl3IiwgImlhdCIsIDE2ODMwMDAwMDBd~WyJlbHVWNU9nM2
dTTklJOEVZbnN4QV9BIiwgInZlcmlmaWNhdGlvbiIsIHsidHJ1c3RfZnJhbWV3b3JrIj
ogIml0X2NpZSIsICJhc3N1cmFuY2VfbGV2ZWwiOiAiaGlnaCIsICJldmlkZW5jZSI6IH
sidHlwZSI6ICJ2b3VjaCIsICJ0aW1lIjogIjIwMjAtMDMtMTlUMTI6NDJaIiwgImF0dG
VzdGF0aW9uIjogeyJ0eXBlIjogImRpZ2l0YWxfYXR0ZXN0YXRpb24iLCAicmVmZXJlbm
NlX251bWJlciI6ICI2NDg1LTE2MTktMzk3Ni02NjcxIiwgImRhdGVfb2ZfaXNzdWFuY2
UiOiAiMjAyMC0wMy0xOVQxMjo0M1oiLCAidm91Y2hlciI6IHsib3JnYW5pemF0aW9uIj
ogIk1pbmlzdGVybyBkZWxsJ0ludGVybm8ifX19fV0~WyI2SWo3dE0tYTVpVlBHYm9TNX
RtdlZBIiwgImdpdmVuX25hbWUiLCAiTWFyaW8iXQ~WyJlSThaV205UW5LUHBOUGVOZW5
IZGhRIiwgImZhbWlseV9uYW1lIiwgIlJvc3NpIl0~WyJRZ19PNjR6cUF4ZTQxMmExMDh
pcm9BIiwgImJpcnRoX2RhdGUiLCAiMTk4MC0wMS0xMCJd~WyJBSngtMDk1VlBycFR0Tj
RRTU9xUk9BIiwgImJpcnRoX3BsYWNlIiwgIlJvbWEiXQ~WyJQYzMzSk0yTGNoY1VfbEh
nZ3ZfdWZRIiwgIklUIl0~WyJHMDJOU3JRZmpGWFE3SW8wOXN5YWpBIiwgInBlcnNvbmF
sX2FkbWluaXN0cmF0aXZlX251bWJlciIsICJYWDAwMDAwWFgiXQ~WyJsa2x4RjVqTVls
R1RQVW92TU5JdkNBIiwgInRheF9pZF9jb2RlIiwgIlRJTklULVhYWFhYWFhYWFhYWFhY
WFgiXQ~
6.1.1.5. Esempi Non Normativi di (Q)EAA¶
Di seguito è riportato un esempio non normativo di (Q)EAA in JSON.
{
"iss": "https://issuer.example.org",
"sub": "NzbLsXh8uDCcd7noWXFZAfHkxZsRGC9Xs",
"iat": 1683000000,
"exp": 1883000000,
"issuing_authority": "Istituto Poligrafico e Zecca dello Stato",
"issuing_country": "IT",
"status": {
"status_assertion": {
"credential_hash_alg": "sha-256"
}
},
"vct": "https://trust-registry.eid-wallet.example.it/credentials/v1.0/EuropeanDisabilityCard",
"vct#integrity": "2e40bcd6799008085ffb1a1f3517efee335298fd976b3e655bfb3f4eaa11d171",
"document_number": "XXXXXXXXXX",
"given_name": "Mario",
"family_name": "Rossi",
"birth_date": "1980-01-10",
"expiry_date": "2024-01-01",
"personal_administrative_number": "XX00000XX",
"constant_attendance_allowance": true
}
Il corrispondente SD-JWT è rappresentato di seguito, con header e payload decodificati in JSON.
{
"typ":"dc+sd-jwt",
"alg":"ES256",
"kid":"d126a6a856f7724560484fa9dc59d195",
"trust_chain" : [
"NEhRdERpYnlHY3M5WldWTWZ2aUhm ...",
"eyJhbGciOiJSUzI1NiIsImtpZCI6 ...",
"IkJYdmZybG5oQU11SFIwN2FqVW1B ..."
]
}
{
"_sd": [
"Dx-6hjvrcxNzF0slU6ukNmzHoL-YvBN-tFa0T8X-bY0",
"GE3Sjy_zAT34f8wa5DUkVB0FslaSJRAAc8I3lN11Ffc",
"VQI-S1mT1Kxfq2o8J9io7xMMX2MIxaG9M9PeJVqrMcA",
"Yrc-s-WSr4exEYtqDEsmRl7spoVfmBxixP12e4syqNE",
"aBVdfcnxT0Z5RrwdxZSUhuUxz3gM2vcEZLeYIj61Kas",
"o1cHG8JbEEYv0HeJINYKbFLd-TnEDUuNzI1XpzV32aU",
"s1XK5f2pM3-aFTauXhmvd9pyQTJ6FMUhc-JXfHrxhLk",
"zVdghcmClMVWlUgGsGpSkCPkEHZ4u9oWj1SlIBlCc1o"
],
"iss": "https://issuer.example.org",
"exp": 1883000000,
"sub": "NzbLsXh8uDCcd7noWXFZAfHkxZsRGC9Xs",
"issuing_authority": "Istituto Poligrafico e Zecca dello Stato",
"issuing_country": "IT",
"status": {
"status_assertion": {
"credential_hash_alg": "sha-256"
}
},
"vct": "https://trust-registry.eid-wallet.example.it/credentials/v1.0/EuropeanDisabilityCard",
"vct#integrity": "2e40bcd6799008085ffb1a1f3517efee335298fd976b3e655bfb3f4eaa11d171",
"_sd_alg": "sha-256",
"cnf": {
"jwk": {
"kty": "EC",
"crv": "P-256",
"x": "TCAER19Zvu3OHF4j4W4vfSVoHIP1ILilDls7vCeGemc",
"y": "ZxjiWWbZMQGHVWKVQ4hbSIirsVfuecCE6t4jT9F2HZQ"
}
}
}
Di seguito è riportato l'elenco delle disclosure:
Claim iat
:
Hash SHA-256:
Yrc-s-WSr4exEYtqDEsmRl7spoVfmBxixP12e4syqNE
- Disclosure:
WyIyR0xDNDJzS1F2ZUNmR2ZyeU5STjl3IiwgImlhdCIsIDE2ODMwMDAwMDBd
Contenuto:
["2GLC42sKQveCfGfryNRN9w", "iat", 1683000000]
Claim document_number
:
Hash SHA-256:
Dx-6hjvrcxNzF0slU6ukNmzHoL-YvBN-tFa0T8X-bY0
- Disclosure:
WyJlbHVWNU9nM2dTTklJOEVZbnN4QV9BIiwgImRvY3VtZW50X251bWJlciIs
ICJYWFhYWFhYWFhYIl0
- Contenuto:
["eluV5Og3gSNII8EYnsxA_A", "document_number", "XXXXXXXXXX"]
Claim given_name
:
Hash SHA-256:
zVdghcmClMVWlUgGsGpSkCPkEHZ4u9oWj1SlIBlCc1o
- Disclosure:
WyI2SWo3dE0tYTVpVlBHYm9TNXRtdlZBIiwgImdpdmVuX25hbWUiLCAiTWFy
aW8iXQ
Contenuto:
["6Ij7tM-a5iVPGboS5tmvVA", "given_name", "Mario"]
Claim family_name
:
Hash SHA-256:
VQI-S1mT1Kxfq2o8J9io7xMMX2MIxaG9M9PeJVqrMcA
- Disclosure:
WyJlSThaV205UW5LUHBOUGVOZW5IZGhRIiwgImZhbWlseV9uYW1lIiwgIlJv
c3NpIl0
Contenuto:
["eI8ZWm9QnKPpNPeNenHdhQ", "family_name", "Rossi"]
Claim birth_date
:
Hash SHA-256:
s1XK5f2pM3-aFTauXhmvd9pyQTJ6FMUhc-JXfHrxhLk
- Disclosure:
WyJRZ19PNjR6cUF4ZTQxMmExMDhpcm9BIiwgImJpcnRoX2RhdGUiLCAiMTk4
MC0wMS0xMCJd
Contenuto:
["Qg_O64zqAxe412a108iroA", "birth_date", "1980-01-10"]
Claim expiry_date
:
Hash SHA-256:
aBVdfcnxT0Z5RrwdxZSUhuUxz3gM2vcEZLeYIj61Kas
- Disclosure:
WyJBSngtMDk1VlBycFR0TjRRTU9xUk9BIiwgImV4cGlyeV9kYXRlIiwgIjIw
MjQtMDEtMDEiXQ
Contenuto:
["AJx-095VPrpTtN4QMOqROA", "expiry_date", "2024-01-01"]
Claim personal_administrative_number
:
Hash SHA-256:
o1cHG8JbEEYv0HeJINYKbFLd-TnEDUuNzI1XpzV32aU
- Disclosure:
WyJQYzMzSk0yTGNoY1VfbEhnZ3ZfdWZRIiwgInBlcnNvbmFsX2FkbWluaXN0
cmF0aXZlX251bWJlciIsICJYWDAwMDAwWFgiXQ
- Contenuto:
["Pc33JM2LchcU_lHggv_ufQ", "personal_administrative_number",
"XX00000XX"]
- Contenuto:
Claim constant_attendance_allowance
:
Hash SHA-256:
GE3Sjy_zAT34f8wa5DUkVB0FslaSJRAAc8I3lN11Ffc
- Disclosure:
WyJHMDJOU3JRZmpGWFE3SW8wOXN5YWpBIiwgImNvbnN0YW50X2F0dGVuZGFu
Y2VfYWxsb3dhbmNlIiwgdHJ1ZV0
- Contenuto:
["G02NSrQfjFXQ7Io09syajA", "constant_attendance_allowance",
true]
Il combined format per l'emissione del (Q)EAA è rappresentato di seguito:
eyJhbGciOiAiRVMyNTYiLCAidHlwIjogImRjK3NkLWp3dCIsICJraWQiOiAiZDEyNmE2
YTg1NmY3NzI0NTYwNDg0ZmE5ZGM1OWQxOTUifQ.eyJfc2QiOiBbIkR4LTZoanZyY3hOe
kYwc2xVNnVrTm16SG9MLVl2Qk4tdEZhMFQ4WC1iWTAiLCAiR0UzU2p5X3pBVDM0Zjh3Y
TVEVWtWQjBGc2xhU0pSQUFjOEkzbE4xMUZmYyIsICJWUUktUzFtVDFLeGZxMm84Sjlpb
zd4TU1YMk1JeGFHOU05UGVKVnFyTWNBIiwgIllyYy1zLVdTcjRleEVZdHFERXNtUmw3c
3BvVmZtQnhpeFAxMmU0c3lxTkUiLCAiYUJWZGZjbnhUMFo1UnJ3ZHhaU1VodVV4ejNnT
TJ2Y0VaTGVZSWo2MUthcyIsICJvMWNIRzhKYkVFWXYwSGVKSU5ZS2JGTGQtVG5FRFV1T
npJMVhwelYzMmFVIiwgInMxWEs1ZjJwTTMtYUZUYXVYaG12ZDlweVFUSjZGTVVoYy1KW
GZIcnhoTGsiLCAielZkZ2hjbUNsTVZXbFVnR3NHcFNrQ1BrRUhaNHU5b1dqMVNsSUJsQ
2MxbyJdLCAiZXhwIjogMTg4MzAwMDAwMCwgImlzcyI6ICJodHRwczovL2lzc3Vlci5le
GFtcGxlLm9yZyIsICJzdWIiOiAiTnpiTHNYaDh1RENjZDdub1dYRlpBZkhreFpzUkdDO
VhzIiwgImlzc3VpbmdfYXV0aG9yaXR5IjogIklzdGl0dXRvIFBvbGlncmFmaWNvIGUgW
mVjY2EgZGVsbG8gU3RhdG8iLCAiaXNzdWluZ19jb3VudHJ5IjogIklUIiwgInN0YXR1c
yI6IHsic3RhdHVzX2Fzc2VydGlvbiI6IHsiY3JlZGVudGlhbF9oYXNoX2FsZyI6ICJza
GEtMjU2In19LCAidmN0IjogImh0dHBzOi8vdHJ1c3QtcmVnaXN0cnkuZWlkLXdhbGxld
C5leGFtcGxlLml0L2NyZWRlbnRpYWxzL3YxLjAvRXVyb3BlYW5EaXNhYmlsaXR5Q2FyZ
CIsICJ2Y3QjaW50ZWdyaXR5IjogIjJlNDBiY2Q2Nzk5MDA4MDg1ZmZiMWExZjM1MTdlZ
mVlMzM1Mjk4ZmQ5NzZiM2U2NTViZmIzZjRlYWExMWQxNzEiLCAiX3NkX2FsZyI6ICJza
GEtMjU2IiwgImNuZiI6IHsiandrIjogeyJrdHkiOiAiRUMiLCAiY3J2IjogIlAtMjU2I
iwgIngiOiAiVENBRVIxOVp2dTNPSEY0ajRXNHZmU1ZvSElQMUlMaWxEbHM3dkNlR2VtY
yIsICJ5IjogIlp4amlXV2JaTVFHSFZXS1ZRNGhiU0lpcnNWZnVlY0NFNnQ0alQ5RjJIW
lEifX19.2Dt5a6CFNv-YAmfewZGERmlIOdYybaNtZP6Va1zHZ_IqZAGM8S6M4mcTU-RO
3X4cU4j20xif2Ocf1jvd2L5CRQ~WyIyR0xDNDJzS1F2ZUNmR2ZyeU5STjl3IiwgImlhd
CIsIDE2ODMwMDAwMDBd~WyJlbHVWNU9nM2dTTklJOEVZbnN4QV9BIiwgImRvY3VtZW50
X251bWJlciIsICJYWFhYWFhYWFhYIl0~WyI2SWo3dE0tYTVpVlBHYm9TNXRtdlZBIiwg
ImdpdmVuX25hbWUiLCAiTWFyaW8iXQ~WyJlSThaV205UW5LUHBOUGVOZW5IZGhRIiwgI
mZhbWlseV9uYW1lIiwgIlJvc3NpIl0~WyJRZ19PNjR6cUF4ZTQxMmExMDhpcm9BIiwgI
mJpcnRoX2RhdGUiLCAiMTk4MC0wMS0xMCJd~WyJBSngtMDk1VlBycFR0TjRRTU9xUk9B
IiwgImV4cGlyeV9kYXRlIiwgIjIwMjQtMDEtMDEiXQ~WyJQYzMzSk0yTGNoY1VfbEhnZ
3ZfdWZRIiwgInBlcnNvbmFsX2FkbWluaXN0cmF0aXZlX251bWJlciIsICJYWDAwMDAwW
FgiXQ~WyJHMDJOU3JRZmpGWFE3SW8wOXN5YWpBIiwgImNvbnN0YW50X2F0dGVuZGFuY2
VfYWxsb3dhbmNlIiwgdHJ1ZV0~
6.1.2. Attestato Elettronico in formato mdoc-CBOR¶
Il modello dati mdoc si basa sullo standard ISO/IEC 18013-5. I dati in mdoc DEVONO essere codificati in CBOR come definito in RFC 8949.
Questo modello dati struttura gli Attestati Elettronici in componenti distinti: namespaces (nameSpaces) e prova crittografica (issuerAuth). I namespace categorizzano e strutturano i dati (o attributi, vedi Attributi dei Namespaces). Mentre la prova crittografica garantisce integrità e autenticità attraverso il Mobile Security Object (MSO).
L'MSO memorizza in modo sicuro i digest crittografici degli attributi all'interno dei nameSpaces. Ciò consente alle Relying Party di convalidare gli attributi divulgati rispetto ai valori digestID corrispondenti senza rivelare l'intero Attestato Elettronico. Vedere Mobile Security Object per i dettagli.
Un Attestato Elettronico in formato mdoc-CBOR DEVE avere la seguente struttura:
Parametro |
Descrizione |
Riferimento |
---|---|---|
nameSpaces |
(map). All'interno dei |
[ISO 18013-5#8.3.2.1.2] |
issuerAuth |
(COSE_Sign1). Contiene Mobile Security Object (MSO), un documento COSE Sign1, emesso dal Fornitore di Attestati Elettronici. |
[ISO 18013-5#9.1.2.4] |
La struttura di una Credenziale in formato mdoc-CBOR è ulteriormente descritta nelle sezioni seguenti.
6.1.2.1. Attributi dei Namespaces¶
nameSpaces contiene una o più voci nameSpace, ciascuna identificata da un nome. All'interno di ogni nameSpace, sono inclusi uno o più IssuerSignedItemBytes, ciascuno codificato in una stringa di byte codificata in CBOR con Tag 24 (#6.24(bstr .cbor)), che appare come 24(<<... >>) nella notazione diagnostica. Essa rappresenta le informazioni da divulgare, una per ogni digest presente all'interno del Mobile Security Object e DEVE contenere i seguenti attributi:
Nome |
Descrizione |
Riferimento |
---|---|---|
digestID |
(uint). Valore identificativo di uno dei |
[ISO 18013-5#9.1.2.5] |
random |
(bstr). Valore di byte casuale utilizzato come salt per la funzione di hash. Questo valore DEVE essere diverso per ogni IssuerSignedItem e DEVE avere una lunghezza minima di 16 byte. |
[ISO 18013-5#9.1.2.5] |
elementIdentifier |
(tstr). Nome identificativo del dato. |
[ISO 18013-5#8.3.2.1.2.3] |
elementValue |
(any). Valore del dato. |
[ISO 18013-5#8.3.2.1.2.3] |
6.1.2.2. Attributi¶
I seguenti elementIdentifiers DEVONO essere inclusi in un Attestato Elettronico codificato in mdoc-CBOR all'interno del rispettivo nameSpace, se non diversamente specificato:
Element Identifier |
Descrizione |
Riferimento |
---|---|---|
issuing_country |
(tstr). Codice paese Alpha-2 come definito in [ISO 3166-1], che rappresenta il paese o territorio di emissione. |
[ISO 18013-5#7.2] |
issuing_authority |
(tstr). Nome dell'autorità amministrativa che ha emesso l'mDL. Il valore deve contenere solo caratteri Latin1b e deve avere una lunghezza massima di 150 caratteri. |
[ISO 18013-5#7.2] |
sub |
(uuid). Identifica il soggetto dell'Attestato Elettronico (l'Utente). L'identificativo DEVE essere opaco, NON DEVE corrispondere a nessun dato anagrafico e NON DEVE essere derivato dai dati anagrafici dell'Utente attraverso la pseudonimizzazione. Inoltre, diversi Attestati Elettronici emessi allo stesso Utente NON DEVONO riutilizzare lo stesso valore sub. |
|
verification |
(map, OPZIONALE). Contiene dettagli di autenticazione e verifica dell'Utente. Ha la stessa struttura logica e scopo di quanto riportato nella Tabella dei parametri SD-JWT. |
Nota
Gli attributi specifici dell'Utente dell'Attestato Elettronico sono definiti nel Catalogo degli Attestati Elettronici. Gli attributi specifici dell'Utente per gli Attestati Elettronici in formato mdoc come quelli del PID o mDL sono inclusi facendo riferimento agli corrispettivi elementIdentifiers definiti in ISO/IEC 18013-5 o nella specifica EIDAS-ARF.
6.1.2.3. Mobile Security Object¶
L'issuerAuth rappresenta il Mobile Security Object che è un Documento COSE Sign1 definito in RFC 9052. Ha la seguente struttura di dati:
protected header
unprotected header
payload
signature
Il protected header DEVE contenere il seguente parametro codificato in formato CBOR:
Elemento |
Descrizione |
Riferimento |
---|---|---|
1 |
(int). Algoritmo utilizzato per verificare la firma crittografica dell'Attestato Elettronico in formato mdoc. |
Nota
Solo l'algoritmo di firma DEVE essere presente nel protected header, altri elementi NON DOVREBBERO essere presenti.
L'unprotected header DEVE contenere i seguenti parametri, se non diversamente specificato:
Elemento |
Descrizione |
Riferimento |
---|---|---|
4 |
(tstr, OPZIONALE). Identificativo univoco del JWK dell'Emittente. Richiesto quando l'Emittente del documento mdoc utilizza OpenID Federation. |
|
33 |
(array). Catena di certificati X.509 relativa all'Emittente. Obbligatorio se l'autenticazione è basata su certificato X.509. |
Nota
x5chain è incluso nell'unprotected header con lo scopo di consentire al Titolare di aggiornare la catena di certificati X.509, relativa all'emittente del Mobile Security Object, senza invalidare la firma.
Il payload DEVE contenere il MobileSecurityObject, senza il parametro di header COSE Sign content-type e codificato come una byte string (bstr) utilizzando il CBOR Tag 24.
Il MobileSecurityObject DEVE avere i seguenti attributi, se non diversamente specificato:
Elemento |
Descrizione |
Riferimento |
---|---|---|
docType |
(tstr). Definisce il tipo di Attestato Elettronico in formato mdoc. Ad esempio, per un mDL, il valore DEVE essere |
[ISO 18013-5#9.1.2.4] |
version |
(tstr). Versione del MobileSecurityObject. |
[ISO 18013-5#9.1.2.4] |
validityInfo |
(map). Contiene le date e gli orari di emissione e scadenza del MobileSecurityObject. DEVE contenere i seguenti sub parametri:
|
[ISO 18013-5#9.1.2.4] |
digestAlgorithm |
(tstr). Identificativo dell'algoritmo di digest, che DEVE corrispondere all'algoritmo definito nel protected header. |
[ISO 18013-5#9.1.2.4] |
valueDigests |
(map). Associa ogni namespace a un insieme di digest, dove ogni digest è indicizzato da un digestID univoco e contiene il valore del digest. |
[ISO 18013-5#9.1.2.4] |
deviceKeyInfo |
(map). Contiene le informazioni relative alla chiave pubblica dell'Istanza del Wallet. DEVE includere i seguenti sub parametri, se non diversamente specificato:
|
[ISO 18013-5#9.1.2.4] |
status |
(map, CONDIZIONALE). OBBLIGATORIO solo se l'Attestato Elettronico ha durata maggiore di 24 ore (long-lived). Contiene le informazioni relative allo stato di revoca del MSO. Se presente, include una status_list basata sul meccanismo TOKEN-STATUS-LIST. Questo meccanismo utilizza un array di bit per contrassegnare gli MSO revocati in base alla loro posizione di indice. La status_list DEVE contenere i seguenti sub parametri:
|
[ISO 18013-5#9.1.2.6] |
Nota
La chiave privata relativa alla chiave pubblica memorizzata nel deviceKey viene utilizzata per firmare i DeviceSignedItems e per dimostrare il possesso dell'Attestato Elettronico durante la fase di presentazione (vedere la fase di presentazione con mdoc-CBOR).
6.1.2.4. Esempi mdoc-CBOR¶
Un esempio non normativo di un mDL codificato in CBOR è mostrato di seguito in codifica binaria.
a26a6e616d65537061636573a2716f72672e69736f2e31383031332e352e318cd818a100a4686469676573744944006672616e646f6d5820790401ed5d0822d1aced942e4b0c41f754eee67b89c5ee3b8fd2c97491a9640671656c656d656e744964656e7469666965726b66616d696c795f6e616d656c656c656d656e7456616c756565526f737369d818a101a4686469676573744944016672616e646f6d58201442881e24514517333019ec24aecaa70bba927d7f2d38ad7cdc3ce82d8561db71656c656d656e744964656e7469666965726a676976656e5f6e616d656c656c656d656e7456616c7565654d6172696fd818a102a4686469676573744944026672616e646f6d582051b4f3831d910861e81da746b221fd89498507476418cedc3709b5d28a7c41d071656c656d656e744964656e7469666965726a62697274685f646174656c656c656d656e7456616c7565d903ec6a313938302d30312d3130d818a103a4686469676573744944036672616e646f6d58200c8f68d1ec3aa445ef68aa10b7a5875fa18ca222a821e23890a227cdc7d25e8f71656c656d656e744964656e7469666965726a69737375655f646174656c656c656d656e7456616c7565d903ec6a323032352d30332d3237d818a104a4686469676573744944046672616e646f6d58200a9ed0d4937673152e52fb3fac0722baf4252e0d0c9869919e3339670203178e71656c656d656e744964656e7469666965726b6578706972795f646174656c656c656d656e7456616c7565d903ec6a323033302d30332d3237d818a105a4686469676573744944056672616e646f6d58204b315ff17cf3a4754a94a6cf1e9ddfdd99f6e86b177b74f173348968ca74e80b71656c656d656e744964656e7469666965726f69737375696e675f636f756e7472796c656c656d656e7456616c7565624954d818a106a4686469676573744944066672616e646f6d5820f8c82c4103f603435d0bc7762074ccc7c2c74925314a1fb5a8ab9cf2a960221f71656c656d656e744964656e7469666965727169737375696e675f617574686f726974796c656c656d656e7456616c75657828497374697475746f20506f6c696772616669636f2065205a656363612064656c6c6f20537461746fd818a107a4686469676573744944076672616e646f6d58201f7a77a353da7bfc4da12691185249c31d421afd59ddac34f9e4fb4d92b8ec5071656c656d656e744964656e7469666965726b62697274685f706c6163656c656c656d656e7456616c756564526f6d61d818a108a4686469676573744944086672616e646f6d582088e94c0365c611b523518d9a1b179ae52e242383576249f4965c40c6c97cf21471656c656d656e744964656e7469666965726f646f63756d656e745f6e756d6265726c656c656d656e7456616c756569585831323334353637d818a109a4686469676573744944096672616e646f6d5820944758b43602b01ad68911b062349845492c04c6a78129bcf8cb5fb1396af2fc71656c656d656e744964656e74696669657268706f7274726169746c656c656d656e7456616c7565590412ffd8ffe000104a46494600010101009000900000ffdb004300130d0e110e0c13110f11151413171d301f1d1a1a1d3a2a2c2330453d4947443d43414c566d5d4c51685241435f82606871757b7c7b4a5c869085778f6d787b76ffdb0043011415151d191d381f1f38764f434f7676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676ffc00011080018006403012200021101031101ffc4001b00000301000301000000000000000000000005060401020307ffc400321000010303030205020309000000000000010203040005110612211331141551617122410781a1163542527391b2c1f1ffc4001501010100000000000000000000000000000001ffc4001a110101010003010000000000000000000000014111213161ffda000c03010002110311003f00a5bbde22da2329c7d692bc7d0d03f52cfb0ff75e7a7ef3e7709723a1d0dae146ddfbb3c039ce07ad2bd47a7e32dbb8dd1d52d6ef4b284f64a480067dfb51f87ffb95ff00eb9ff14d215de66af089ce44b7dbde9cb6890a2838eddf18078f7add62d411ef4db9b10a65d6b95a147381ea0d495b933275fe6bba75c114104a8ba410413e983dff004f5af5d34b4b4cde632d0bf1fd1592bdd91c6411f3934c2fa6af6b54975d106dcf4a65ae56e856001ebc03c7ce29dd9eef1ef10fc447dc9da76ad2aee93537a1ba7e4f70dd8eff0057c6dffb5e1a19854a83758e54528750946ec6704850cd037bceb08b6d7d2cc76d3317fc7b5cc04fb6707269c5c6e0c5b60ae549242123b0e493f602a075559e359970d98db89525456b51c951c8afa13ea8e98e3c596836783d5c63f5a61a99fdb7290875db4be88ab384bbbbbfc7183fdeaa633e8951db7da396dc48524fb1a8bd611a5aa2a2432f30ab420a7a6d3240c718cf031fa9ef4c9ad550205aa02951df4a1d6c8421b015b769db8c9229837ea2be8b1b0d39d0eba9c51484efdb8c0efd8d258daf3c449699f2edbd4584e7af9c64e3f96b9beb28d4ac40931e6478c8e76a24a825449501d867d2b1dcdebae99b9c752ae4ecd6dde4a179c1c1e460938f9149ef655e515c03919a289cb3dca278fb7bf177f4faa829dd8ce3f2ac9a7ecde490971fafd7dce15eed9b71c018c64fa514514b24e8e4f8c5c9b75c1e82579dc1233dfec08238f6add62d391acc1c5256a79e706d52d431c7a0145140b9fd149eb3a60dc5e88cbbc2da092411e9dc71f39a7766b447b344e847dcac9dcb5abba8d145061d43a6fcf1e65cf15d0e90231d3dd9cfe62995c6dcc5ca12a2c904a15f71dd27d451453e09d1a21450961cbb3ea8a956433b781f1ce33dfed54f0e2b50a2b71d84ed6db18028a28175f74fc6bda105c529a791c25c4f3c7a11f71586268f4a66b726e33de9ea6f1b52b181c760724e47b514520a5a28a283ffd9d818a10aa46864696765737449440a6672616e646f6d5820577e4822125f55fe923117aba01fdaefcc67d4aea80018fc22efa8d48e17982f71656c656d656e744964656e7469666965727264726976696e675f70726976696c656765736c656c656d656e7456616c756581a37576656869636c655f63617465676f72795f636f646561416a69737375655f64617465d903ec4b6a323032302d30392d31376b6578706972795f64617465d903ec4b6a323033312d30362d3130d818a10ba46864696765737449440b6672616e646f6d5820fa21d3d890af5f4ea2760d08fd9a6256004cd5aa9d5e697ba5873fb0cddd555e71656c656d656e744964656e74696669657276756e5f64697374696e6775697368696e675f7369676e6c656c656d656e7456616c75656149746f72672e69736f2e31383031332e352e312e697482d818a10ca46864696765737449440c6672616e646f6d58200c3fe75be952ec3c2257031a71f2f54aeabfe7445705cec147fbb2c0f69ad56171656c656d656e744964656e746966696572637375626c656c656d656e7456616c75657820334234684b326d376641395464567a714c72477036573858794a31734e745163d818a10da46864696765737449440d6672616e646f6d5820d22c6db3dd27e066deb2ace6161e47fc6abc7a87c84a10320f14bc66d6e08d4971656c656d656e744964656e7469666965726c766572696669636174696f6e6c656c656d656e7456616c7565a36f74727573745f6672616d65776f726b6969745f77616c6c65746f6173737572616e63655f6c6576656c64686967686865766964656e636581a3647479706565766f7563686474696d656a323032352d30332d32376b6174746573746174696f6ea46474797065736469676974616c5f6174746573746174696f6e707265666572656e63655f6e756d62657273363438352d313631392d333937362d3636373170646174655f6f665f69737375616e63656a323032352d30332d323767766f7563686572a16c6f7267616e697a6174696f6e754d6f746f72697a7a617a696f6e6520436976696c656a69737375657241757468590815d284590229a30126045369707a732d6d646c2d6973737565722d6b6579182159020c30820208308201afa00302010202142eb39c647c81836bcf79fa9cd0b201ec0bf52307300a06082a8648ce3d0403023064310b30090603550406130255533113301106035504080c0a43616c69666f726e69613116301406035504070c0d53616e204672616e636973636f31133011060355040a0c0a4d7920436f6d70616e793113301106035504030c0a6d79736974652e636f6d301e170d3235303332373135353532305a170d3235303430363135353532305a3064310b30090603550406130255533113301106035504080c0a43616c69666f726e69613116301406035504070c0d53616e204672616e636973636f31133011060355040a0c0a4d7920436f6d70616e793113301106035504030c0a6d79736974652e636f6d3059301306072a8648ce3d020106082a8648ce3d03010703420004f33da72d0dd0009b62221b0e839099b12dab5e01021124ebf9060422e648f3c3ec6614a86da1e91e552b2ae35e04d3058ae82b5c65a7f1f26800cb4499652a09a33f303d303b0603551d1104343032863068747470733a2f2f63726564656e7469616c2d6973737565722e6f6964632d66656465726174696f6e2e6f6e6c696e65300a06082a8648ce3d040302034700304402204d1f0819971652b79ebe4825547de3d5554d2f41410225e6b13dab949cda125e022079ba71b823619e49719dce5daa565bf745d3d97e2b87c7f7d6a626f981e653eda1182159020c30820208308201afa00302010202142eb39c647c81836bcf79fa9cd0b201ec0bf52307300a06082a8648ce3d0403023064310b30090603550406130255533113301106035504080c0a43616c69666f726e69613116301406035504070c0d53616e204672616e636973636f31133011060355040a0c0a4d7920436f6d70616e793113301106035504030c0a6d79736974652e636f6d301e170d3235303332373135353532305a170d3235303430363135353532305a3064310b30090603550406130255533113301106035504080c0a43616c69666f726e69613116301406035504070c0d53616e204672616e636973636f31133011060355040a0c0a4d7920436f6d70616e793113301106035504030c0a6d79736974652e636f6d3059301306072a8648ce3d020106082a8648ce3d03010703420004f33da72d0dd0009b62221b0e839099b12dab5e01021124ebf9060422e648f3c3ec6614a86da1e91e552b2ae35e04d3058ae82b5c65a7f1f26800cb4499652a09a33f303d303b0603551d1104343032863068747470733a2f2f63726564656e7469616c2d6973737565722e6f6964632d66656465726174696f6e2e6f6e6c696e65300a06082a8648ce3d040302034700304402204d1f0819971652b79ebe4825547de3d5554d2f41410225e6b13dab949cda125e022079ba71b823619e49719dce5daa565bf745d3d97e2b87c7f7d6a626f981e653ed590390a76776657273696f6e63312e306f646967657374416c676f726974686d667368613235366c76616c756544696765737473a2716f72672e69736f2e31383031332e352e31ac005820f46b65d5060ad060ab9be62ff22ea8633437619ebdc7fa81f2d151159e92bffe015820e506545f6a6fd5d982670b4d62fc2b0688dc8f26754e7b0c574d63f5d72a85ac025820cfcf96fa12d100eeed5f00183d3b6a0888baa47eae85b5b95037eca7bbc0d07e0358208b0772252b0e06b611676b6b3402eb33bf866eb145e49f4d5f23215e6a04777204582014135c96693e2ab08d956876ee491357d906a6dd125557196dfb9811ba54aa8d05582086dcbd99233fbb84a9a2dce3a864a425e6e809300067a4475e3ea2a4d233dc740658202e9512d35ea225e69e7b2180ecc1678dcc3e77a16e36427e64b4f0e2861b4d3a0758204efe55c36f6249d23c473a125afc5181aa30633936494781554971b72ff13700085820cc44a4f9983c5b0b1efc0e82e2867c8d5bbdf89c34bff16a1953c923bb4e4b3e095820775eb2af0aa55f2071d62662b35c99698ae3bc0e2c4af5724ff88476cddd152f0a5820915d0ad53dd23dace34968c263d307c04701a9bb9dc9865af91dc409786fd8330b582047d89ff4fb513044e6f2394236755ac0abf3e4f4a46f40454a458a59f8b7a6fb746f72672e69736f2e31383031332e352e312e6974a20c582016d2098702e896b4614dff1859bd3b42105cac2e62ce7f87dcacc249a656db320d5820755fd7c0f9272a8589c4a661a8aa80dc916018e500884eba316899d653fcb8d16d6465766963654b6579496e666fa1696465766963654b6579a4613102622d3101622d325820f96b29873b61f05403e2963a7ecbc799c9aab28d8a6629e5848cfdef85442866622d335820a9fef033a900c63e3894d8deb805a2a1fb55ef0d2b88e3c0d3336408186485ef67646f6354797065756f72672e69736f2e31383031332e352e312e6d444c6c76616c6964697479496e666fa3667369676e656456c074323032352d30332d32375430303a30303a30305a6976616c696446726f6d56c074323032352d30332d32375430303a30303a30305a6a76616c6964556e74696c56c074323032362d30332d32375430303a30303a30305a66737461747573a16b7374617475735f6c697374a26369647819053c63757269783168747470733a2f2f73746174757370726f76696465722e6578616d706c652e6f72672f2f7374617475736c697374732f315840d09f9acdf7a6be5e4aeb405bfb3b297b1b8003bcf52558a2f39fc6e5cffed40f18f49d2cc0e72a2a56458d8aade591dee8d6540e639bca637f94bd9fa56f345c
La Notazione Diagnostica del mDL codificato in CBOR è riportata di seguito.
{
"nameSpaces": {
"org.iso.18013.5.1": [
24(<<
{
"digestID": 0,
"random": h'790401ed5d0822d1aced942e4b0c41f754eee67b89c5ee3b8fd2c97491a96406',
"elementIdentifier": "family_name",
"elementValue": "Rossi"
}
>>),
24(<<
{
"digestID": 1,
"random": h'1442881e24514517333019ec24aecaa70bba927d7f2d38ad7cdc3ce82d8561db',
"elementIdentifier": "given_name",
"elementValue": "Mario"
}
>>),
24(<<
{
"digestID": 2,
"random": h'51b4f3831d910861e81da746b221fd89498507476418cedc3709b5d28a7c41d0',
"elementIdentifier": "birth_date",
"elementValue": 1004(1980-01-10)
}
>>),
24(<<
{
"digestID": 3,
"random": h'0c8f68d1ec3aa445ef68aa10b7a5875fa18ca222a821e23890a227cdc7d25e8f',
"elementIdentifier": "issue_date",
"elementValue": 1004(2025-03-27)
}
>>),
24(<<
{
"digestID": 4,
"random": h'0a9ed0d4937673152e52fb3fac0722baf4252e0d0c9869919e3339670203178e',
"elementIdentifier": "expiry_date",
"elementValue": 1004(2030-03-27)
}
>>),
24(<<
{
"digestID": 5,
"random": h'4b315ff17cf3a4754a94a6cf1e9ddfdd99f6e86b177b74f173348968ca74e80b',
"elementIdentifier": "issuing_country",
"elementValue": "IT"
}
>>),
24(<<
{
"digestID": 6,
"random": h'f8c82c4103f603435d0bc7762074ccc7c2c74925314a1fb5a8ab9cf2a960221f',
"elementIdentifier": "issuing_authority",
"elementValue": "Istituto Poligrafico e Zecca dello Stato"
}
>>),
24(<<
{
"digestID": 7,
"random": h'1f7a77a353da7bfc4da12691185249c31d421afd59ddac34f9e4fb4d92b8ec50',
"elementIdentifier": "birth_place",
"elementValue": "Roma"
}
>>),
24(<<
{
"digestID": 8,
"random": h'88e94c0365c611b523518d9a1b179ae52e242383576249f4965c40c6c97cf214',
"elementIdentifier": "document_number",
"elementValue": "XX1234567"
}
>>),
24(<<
{
"digestID": 9,
"random": h'944758b43602b01ad68911b062349845492c04c6a78129bcf8cb5fb1396af2fc',
"elementIdentifier": "portrait",
"elementValue": h'ffd8ffe000104a46494600010101009000900000ffdb004300130d0e110e0c
13110f11151413171d301f1d1a1a1d3a2a2c2330453d4947443d43414c566d5d4c51685241435f82
606871757b7c7b4a5c869085778f6d787b76ffdb0043011415151d191d381f1f38764f434f767676
76767676767676767676767676767676767676767676767676767676767676767676767676767676
76767676767676ffc00011080018006403012200021101031101ffc4001b00000301000301000000
000000000000000005060401020307ffc40032100001030303020502030900000000000001020304
0005110612211331141551617122410781a1163542527391b2c1f1ffc40015010101000000000000
00000000000000000001ffc4001a110101010003010000000000000000000000014111213161ffda
000c03010002110311003f00a5bbde22da2329c7d692bc7d0d03f52cfb0ff75e7a7ef3e7709723a1
d0dae146ddfbb3c039ce07ad2bd47a7e32dbb8dd1d52d6ef4b284f64a480067dfb51f87ffb95ff00
eb9ff14d215de66af089ce44b7dbde9cb6890a2838eddf18078f7add62d411ef4db9b10a65d6b95a
147381ea0d495b933275fe6bba75c114104a8ba410413e983dff004f5af5d34b4b4cde632d0bf1fd
1592bdd91c6411f3934c2fa6af6b54975d106dcf4a65ae56e856001ebc03c7ce29dd9eef1ef10fc4
47dc9da76ad2aee93537a1ba7e4f70dd8eff0057c6dffb5e1a19854a83758e54528750946ec67048
50cd037bceb08b6d7d2cc76d3317fc7b5cc04fb6707269c5c6e0c5b60ae549242123b0e493f602a0
75559e359970d98db89525456b51c951c8afa13ea8e98e3c596836783d5c63f5a61a99fdb7290875
db4be88ab384bbbbbfc7183fdeaa633e8951db7da396dc48524fb1a8bd611a5aa2a2432f30ab420a
7a6d3240c718cf031fa9ef4c9ad550205aa02951df4a1d6c8421b015b769db8c9229837ea2be8b1b
0d39d0eba9c51484efdb8c0efd8d258daf3c449699f2edbd4584e7af9c64e3f96b9beb28d4ac4093
1e6478c8e76a24a825449501d867d2b1dcdebae99b9c752ae4ecd6dde4a179c1c1e460938f9149ef
655e515c03919a289cb3dca278fb7bf177f4faa829dd8ce3f2ac9a7ecde490971fafd7dce15eed9b
71c018c64fa514514b24e8e4f8c5c9b75c1e82579dc1233dfec08238f6add62d391acc1c5256a79e
706d52d431c7a0145140b9fd149eb3a60dc5e88cbbc2da092411e9dc71f39a7766b447b344e847dc
ac9dcb5abba8d145061d43a6fcf1e65cf15d0e90231d3dd9cfe62995c6dcc5ca12a2c904a15f71dd
27d451453e09d1a21450961cbb3ea8a956433b781f1ce33dfed54f0e2b50a2b71d84ed6db18028a2
8175f74fc6bda105c529a791c25c4f3c7a11f71586268f4a66b726e33de9ea6f1b52b181c760724e
47b514520a5a28a283ffd9'
}
>>),
24(<<
{
"digestID": 10,
"random": h'577e4822125f55fe923117aba01fdaefcc67d4aea80018fc22efa8d48e17982f',
"elementIdentifier": "driving_privileges",
"elementValue": [
{
"vehicle_category_code": "A",
"issue_date": 1004("2020-09-17"),
"expiry_date": 1004("2031-06-10")
}
]
}
>>),
24(<<
{
"digestID": 11,
"random": h'fa21d3d890af5f4ea2760d08fd9a6256004cd5aa9d5e697ba5873fb0cddd555e',
"elementIdentifier": "un_distinguishing_sign",
"elementValue": "I"
}
>>)
],
"org.iso.18013.5.1.IT": [
24(<<
{
"digestID": 12,
"random": h'0c3fe75be952ec3c2257031a71f2f54aeabfe7445705cec147fbb2c0f69ad561',
"elementIdentifier": "sub",
"elementValue": "3B4hK2m7fA9TdVzqLrGp6W8XyJ1sNtQc"
}
>>),
24(<<
{
"digestID": 13,
"random": h'd22c6db3dd27e066deb2ace6161e47fc6abc7a87c84a10320f14bc66d6e08d49',
"elementIdentifier": "verification",
"elementValue": {
"trust_framework": "it_wallet",
"assurance_level": "high",
"evidence": [
{
"type": "vouch",
"time": "2025-03-27",
"attestation": {
"type": "digital_attestation",
"reference_number": "6485-1619-3976-6671",
"date_of_issuance": "2025-03-27",
"voucher": {
"organization": "Motorizzazione Civile"
}
}
}
]
}
}
>>)
]
},
"issuerAuth": [
<< {1: -7} >>,
{
33: h'30820208308201afa00302010202142eb39c647c81836bcf79fa9cd0b201ec0bf52307300a0
6082a8648ce3d0403023064310b30090603550406130255533113301106035504080c0a43616c6966
6f726e69613116301406035504070c0d53616e204672616e636973636f31133011060355040a0c0a4
d7920436f6d70616e793113301106035504030c0a6d79736974652e636f6d301e170d323530333237
3135353532305a170d3235303430363135353532305a3064310b30090603550406130255533113301
106035504080c0a43616c69666f726e69613116301406035504070c0d53616e204672616e63697363
6f31133011060355040a0c0a4d7920436f6d70616e793113301106035504030c0a6d79736974652e6
36f6d3059301306072a8648ce3d020106082a8648ce3d03010703420004f33da72d0dd0009b62221b
0e839099b12dab5e01021124ebf9060422e648f3c3ec6614a86da1e91e552b2ae35e04d3058ae82b5
c65a7f1f26800cb4499652a09a33f303d303b0603551d1104343032863068747470733a2f2f637265
64656e7469616c2d6973737565722e6f6964632d66656465726174696f6e2e6f6e6c696e65300a060
82a8648ce3d040302034700304402204d1f0819971652b79ebe4825547de3d5554d2f41410225e6b1
3dab949cda125e022079ba71b823619e49719dce5daa565bf745d3d97e2b87c7f7d6a626f981e653ed'
},
<< 24(<<
{
"version": "1.0",
"digestAlgorithm": "SHA-256",
"valueDigests": {
"org.iso.18013.5.1": {
0: h'f46b65d5060ad060ab9be62ff22ea8633437619ebdc7fa81f2d151159e92bffe',
1: h'e506545f6a6fd5d982670b4d62fc2b0688dc8f26754e7b0c574d63f5d72a85ac',
2: h'cfcf96fa12d100eeed5f00183d3b6a0888baa47eae85b5b95037eca7bbc0d07e',
3: h'8b0772252b0e06b611676b6b3402eb33bf866eb145e49f4d5f23215e6a047772',
4: h'14135c96693e2ab08d956876ee491357d906a6dd125557196dfb9811ba54aa8d',
5: h'86dcbd99233fbb84a9a2dce3a864a425e6e809300067a4475e3ea2a4d233dc74',
6: h'2e9512d35ea225e69e7b2180ecc1678dcc3e77a16e36427e64b4f0e2861b4d3a',
7: h'4efe55c36f6249d23c473a125afc5181aa30633936494781554971b72ff13700',
8: h'cc44a4f9983c5b0b1efc0e82e2867c8d5bbdf89c34bff16a1953c923bb4e4b3e',
9: h'775eb2af0aa55f2071d62662b35c99698ae3bc0e2c4af5724ff88476cddd152f',
10: h'915d0ad53dd23dace34968c263d307c04701a9bb9dc9865af91dc409786fd833',
11: h'47d89ff4fb513044e6f2394236755ac0abf3e4f4a46f40454a458a59f8b7a6fb'
},
"org.iso.18013.5.1.IT": {
12: h'16d2098702e896b4614dff1859bd3b42105cac2e62ce7f87dcacc249a656db32',
13: h'755fd7c0f9272a8589c4a661a8aa80dc916018e500884eba316899d653fcb8d1'
}
},
"deviceKeyInfo": {
"deviceKey": {
1: 2,
-1: 1,
-2: h'f96b29873b61f05403e2963a7ecbc799c9aab28d8a6629e5848cfdef85442866',
-3: h'a9fef033a900c63e3894d8deb805a2a1fb55ef0d2b88e3c0d3336408186485ef'
}
},
"docType": "org.iso.18013.5.1.mDL",
"validityInfo": {
"signed": 0("2025-03-27T00:00:00Z"),
"validFrom": 0("2025-03-27T00:00:00Z"),
"validUntil": 0("2026-03-27T00:00:00Z")
},
"status": {
"status_list": {
"idx": 1340,
"uri": "https://statusprovider.example.org/statuslists/1"
}
}
}
>>) >>,
h'd09f9acdf7a6be5e4aeb405bfb3b297b1b8003bcf52558a2f39fc6e5cffed40f18f49d2cc0e72a2a5645
8d8aade591dee8d6540e639bca637f94bd9fa56f345c'
]
}
6.1.2.5. Acronimi CBOR¶
Acronimo |
Significato |
---|---|
tstr |
Text String (Stringa di Testo) |
bstr |
Byte String (Stringa di Byte) |
int |
Signed Integer (Intero con Segno) |
uint |
Unsigned Integer (Intero Senza Segno) |
uuid |
Universally Unique Identifier (Identificativo Univoco Universale) |
bool |
Boolean (Booleano) (vero/falso) |
tdate |
Tagged Date (ad esempio, il Tag 0 è usato per indicare una stringa di data/ora in formato RFC 3339) |
6.1.3. Mappatura dei Parametri degli Attestati Elettronici tra i vari Formati¶
La seguente tabella fornisce una mappatura comparativa tra le strutture dati degli Attestati Elettronici nei formati SD-JWT-VC e mdoc-CBOR. Essa riporta gli elementi e i parametri chiave utilizzati in ciascun formato, evidenziando sia le somiglianze che le differenze. In particolare, evidenzia come i concetti fondamentali - come le informazioni sul Fornitore di Attestati Elettronici, la validità, l'Associazione Crittografica e le disclosure - sono rappresentati nei vari formati possibili di un Attestato Elettronico.
Per SD-JWT-VC, i parametri sono contrassegnati con (hdr) se si trovano nell'header JOSE e con (pld) se appaiono nel payload del JWT. In mdoc-CBOR, questi parametri sono identificati all'interno delle strutture issuerAuth o nameSpaces.
Informazioni Relative A |
Parametri SD-JWT-VC |
Parametri mdoc-CBOR |
---|---|---|
Definizione della Tipologia di Attestato Elettronico |
vct (pld) |
issuerAuth.doctype
issuerAuth.version
|
Metadata della Credenziale Elettronica |
vctm.name (hdr)
vctm.description (hdr)
vctm.extends (hdr)
vctm.schema (hdr)
vctm.schema_uri (hdr)
vctm.data_source (hdr)
vctm.display (hdr)
vctm.claims (hdr)
|
-
-
-
-
-
-
-
nameSpaces
|
Emittente |
iss (pld)
issuing_authority (pld)
issuing_country (pld)
|
-
nameSpaces.elementIdentifier.issuing_authority
nameSpaces.elementIdentifier.issuing_country
|
Soggetto |
sub (pld) |
nameSpaces.elementIdentifier.sub |
Periodo di validità |
iat (pld)
exp (pld)
nbf (pld)
|
issuerAuth.validityInfo.signed
issuerAuth.validityInfo.validUntil
issuerAuth.validityInfo.validFrom
|
Meccanismo di verifica dello stato |
status_assertion (pld)
status_list (pld)
|
-
issuerAuth.status_list
|
Firma |
alg (hdr)
kid (hdr)
|
issuerAuth.1 (alg)
issuerAuth.4 (kid)
|
Trust Anchors |
trust_chain (OID-FED) (hdr)
x5c (hdr)
|
-
issuerAuth.33 (x5chain)
|
Associazione Crittografica |
cnf.jwk (pld) |
issuerAuth.deviceKeyInfo.deviceKey |
Divulgazione Selettiva |
_sd_alg (pld)
_sd (pld)
|
issuerAuth.digestAlgorithm
issuerAuth.valueDigests
|
Integrità |
vct#integrity (pld)
vctm.extends#integrity (hdr)
vctm.schema_uri#integrity (hdr)
|
-
|
Formato dell'Attestato Elettronico |
typ (hdr) |
|
Verificabilità dell'Attestato Elettronico |
verification (pld) |
nameSpaces.elementIdentifier.verification |
Disclosure |
salt
claim name
claim value
|
nameSpaces
|
Nota
Nel formato mdoc-CBOR, la versione dell'Attestato Elettronico non è definita esplicitamente; è disponibile solo per l'IssuerAuth. Al contrario, il formato SD-JWT include informazioni sulla versione tramite l'URL vct.
Disclosures, _sd e _sd_alg abilitano la Divulgazione Selettiva dei claim SD-JWT. I parametri _sd e _sd_alg fanno parte del payload SD-JWT, mentre le Disclosures vengono inviate separatamente in un Combined Format insieme al SD-JWT.
Il parametro vctm.claims in SD-JWT e la struttura nameSpaces in mdoc-CBOR sono funzionalmente equivalenti, poiché entrambi definiscono i nomi dei claim e la loro struttura. Le Disclosures SD-JWT per gli attributi divulgati corrispondono esattamente ai nameSpaces, inclusi nomi e valori degli attributi, e i valori dei salt.
Un namespace domestico accoglie attributi come verification e sub, che non sono definiti negli elementIdentifiers standard ISO per gli Attestati Elettronici in formato mdoc-CBOR.