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 dc+sd-jwt come definito in SD-JWT-VC.

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.

RFC 7515 Sezione 4.1.8 e [SD-JWT-VC] Sezione 3.5.

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.

[RFC7519, Sezione 4.1.1].

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 sub.

[RFC7519, Sezione 4.1.2].

iat

[SD]. OBBLIGATORIO. Timestamp UNIX con l'orario di emissione del JWT, codificato come NumericDate come indicato in RFC 7519.

[RFC7519, Sezione 4.1.6].

exp

[NSD]. OBBLIGATORIO. Timestamp UNIX con l'orario di scadenza del JWT, codificato come NumericDate come indicato in RFC 7519.

[RFC7519, Sezione 4.1.4].

nbf

[NSD]. OPZIONALE. Timestamp UNIX con l'orario di inizio validità del JWT, codificato come NumericDate come indicato in RFC 7519.

[RFC7519, Sezione 4.1.4].

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: https://trust-registry.eid-wallet.example.it/credentials/v1.0/personidentificationdata).

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].

Sezione 6.1 SD-JWT-VC, [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:

  • trust_framework: Stringa che identifica il trust framework utilizzato per l'autenticazione dell'Utente. DEVE essere valorizzato con uno dei valori descritti nel trust_frameworks_supported fornito nei Metadata del Fornitore di Attestati Elettronici.

  • assurance_level: Stringa che identifica il Livello di Garanzia dell'identità garantito durante il processo di autenticazione dell'Utente.

  • evidence: Ogni voce dell'array DEVE contenere i seguenti parametri:

    • type: Rappresenta il tipo di evidenza. DEVE essere valorizzato con vouch.

    • time: Timestamp UNIX con l'orario dell'autenticazione o della verifica.

    • attestation: DEVE contenere i seguenti parametri:

      • type: DEVE essere valorizzato con digital_attestation.

      • reference_number: identificativo della risposta di autenticazione o verifica.

      • date_of_issuance: data di emissione dell'attestazione.

      • voucher: DEVE contenere il claim organization.

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.

TOKEN-STATUS-LIST

uri

OBBLIGATORIO. Il claim uri (URI) DEVE contenere una stringa che identifica la Status List Token contenente le informazioni dello stato per l'Attestato Elettronico. Il valore di uri DEVE essere un URI conforme a [RFC 3986].

TOKEN-STATUS-LIST

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).

[SD-JWT-VC] Sezione 6.2 e [OIDC] Sezione 5.2.

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.

[SD-JWT-VC] Sezione 6.2 e [OIDC] Sezione 5.2.

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 verification con il seguente sub parametro:

  • trust_framework: DEVE contenere il trust framework utilizzato per l'autenticazione digitale verso il sistema della Fonte Autentica.

  • authentic_source: DEVE contenere i seguenti claim relativi alle informazioni sulla Fonte Autentica:

    • organization_name nome della Fonte Autentica.

    • organization_code codice identificativo della Fonte Autentica.

    • homepage_uri uri che punta alla homepage della Fonte Autentica.

    • contacts elenco dei contatti per informazioni e assistenza.

    • logo_uri URI che punta all'immagine del logo.

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à:

  • lang: tag di lingua come definito in RFC 5646 Sezione 2. [OBBLIGATORIO].

  • name: nome human-readable del tipo di Attestato Elettronico. [OBBLIGATORIO].

  • description: descrizione human-readable per il tipo di Attestato Elettronico. [OBBLIGATORIO].

  • rendering: oggetto contenente i metodi di rendering supportati dal tipo di Attestato Elettronico. [OBBLIGATORIO]. Il metodo di rendering svg_template DEVE essere supportato.

    L'array svg_templates di oggetti contiene per ogni template SVG supportato le seguenti proprietà:

    • uri: URI che punta al template SVG. [OBBLIGATORIO].

    • uri#integrity: "integrity metadata" come definito nella Sezione 3 di W3C-SRI. [OBBLIGATORIO].

    • properties: oggetto contenente le proprietà del template SVG. Questa proprietà è OBBLIGATORIA se è presente più di un template SVG. L'oggetto DEVE contenere almeno una delle proprietà definite in SD-JWT-VC Sezione 8.1.2.1.

    Se è supportato anche il metodo di rendering simple, l'oggetto simple contiene le seguenti proprietà:

    • logo: oggetto contenente informazioni sul logo da visualizzare. Questa proprietà è OBBLIGATORIA. L'oggetto contiene i seguenti sotto-valori:

      • uri: URI che punta all'immagine del logo. [OBBLIGATORIO]

      • uri#integrity: "integrity metadata" come definito nella Sezione 3 di W3C-SRI. [OBBLIGATORIO].

      • alt_text: stringa contenente del testo alternativo da visualizzare al posto dell'immagine del logo. [OPZIONALE].

    • background_color: valore del colore in RGB come definito in W3C.CSS-COLOR per lo sfondo dell'Attestato Elettronico. [OPZIONALE].

    • text_color: valore del colore in RGB come definito in W3C.CSS-COLOR per il testo dell'Attestato Elettronico. [OPZIONALE].

Nota

L'uso del template SVG è RACCOMANDATO per tutte le applicazioni che lo supportano.

[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à:

  • path: array che indica i/il claim a cui ci si riferisce. [OBBLIGATORIO].

  • display: array contenente informazioni di visualizzazione sul claim indicato nel path. L'array contiene un oggetto per ogni lingua supportata dal tipo di Attestato Elettronico. Questa proprietà è OBBLIGATORIA. Contiene i seguenti parametri:
    • lang: tag di lingua come definito in RFC 5646 Sezione 2. [OBBLIGATORIO].

    • label: etichetta human-readable per il claim. [OBBLIGATORIO].

    • description: descrizione human-readable per il claim. [OBBLIGATORIO].

  • sd: stringa che indica se il claim è divulgabile selettivamente. DEVE essere impostato su always se il claim è divulgabile selettivamente o never se non lo è. [OBBLIGATORIO].

  • svg_id: stringa alfanumerica contenente l'ID del claim referenziato nel template SVG come definito in [SD-JWT-VC] Sezione 9. [OBBLIGATORIO].

[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 tax_id_code non è presente. Identificativo univoco nazionale di una persona fisica generato da ANPR. (Stringa)

Regolamento di esecuzione della Commissione EU_2024/2977

tax_id_code

[SD]. CONDIZIONALE. OBBLIGATORIO se personal_administrative_number non è presente. Codice di identificazione fiscale nazionale della persona fisica. DEVE essere conforme a ETSI EN 319 412-1. Ad esempio TINIT-<ItalianTaxIdentificationNumber>. (Stringa)

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"}}}}]

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"]

Claim tax_id_code:

  • Hash SHA-256: LqrtU2rlA51U97cMiYhqwa-is685bYiOJImp8a5KGNA

  • Disclosure:

    WyJsa2x4RjVqTVlsR1RQVW92TU5JdkNBIiwgInRheF9pZF9jb2RlIiwgIlRJ TklULVhYWFhYWFhYWFhYWFhYWFgiXQ

  • Contenuto: ["lklxF5jMYlGTPUovMNIvCA", "tax_id_code",

    "TINIT-XXXXXXXXXXXXXXXX"]

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"]

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 namespaces vengono definiti i dati. Un Attestato Elettronico PUÒ includere più namespace. Gli attributi mDL obbligatori utilizzano il namespace standard org.iso.18013.5.1. Tuttavia, PUÒ avere anche un namespace domestico definito a livello nazionale, come org.iso.18013.5.1.IT, per includere attributi aggiuntivi definiti nel profilo di implementazione corrente. Ogni namespace all'interno di nameSpaces DEVE condividere lo stesso valore del tipo di documento emesso (docType), che identifica la natura dell'Attestato Elettronico, come definito in issuerAuth.

[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 ValueDigests forniti nel Mobile Security Object.

[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.

RFC 9053

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.

L'Infrastruttura di Trust

33

(array). Catena di certificati X.509 relativa all'Emittente. Obbligatorio se l'autenticazione è basata su certificato X.509.

RFC 9360

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 org.iso.18013.5.1.mDL. Specifici docType POSSONO essere definiti per Attestati Elettronici diversi da mDL.

[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:

  • signed (tdate). Il timestamp che indica quando il MobileSecurityObject è stato firmato.

  • validFrom (tdate). Timestamp prima del quale il MobileSecurityObject non è considerato valido. DEVE essere uguale o successivo a signed.

  • validUntil (tdate). Timestamp dopo il quale il MobileSecurityObject non è più considerato valido.

[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:

  • deviceKey (COSE_Key). Contiene i parametri relativi alla chiave pubblica.

  • keyAuthorizations (map, OPZIONALE). Definisce le autorizzazioni per gli interi namespaces o per i singoli dati.

  • keyInfo (map, OPZIONALE). Contiene metadati aggiuntivi della chiave.

[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:

  • idx. Indice di posizione nella status list.

  • uri. URI che punta alla status list.

[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.