You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Adapt PID rulebook to latest SD-JWT VC
* Apply suggestions from Giuseppe
Co-authored-by: Giuseppe De Marco <giuseppe.demarco@teamdigitale.governo.it>
* Update docs/annexes/annex-06-pid-rulebook.md
Co-authored-by: Christian Bormann <8774236+c2bo@users.noreply.github.com>
* Editorial fix
* Fix references
* Remove accidentally added file
* add references
* Merge conflict not fully fixed in last commit
* Address first comments by David
* Revisit PR, incorporate David's feedback
* Include clause on selectively disclosable claims
* Use URNs for types
* Fix gender in example
* improve example
* changing dot to colon in urn
* Address feedback comments, add references
* Remove sd-jwt reference again
---------
Co-authored-by: Giuseppe De Marco <giuseppe.demarco@teamdigitale.governo.it>
Co-authored-by: Christian Bormann <8774236+c2bo@users.noreply.github.com>
Co-authored-by: Daniel Fett <danielf@yes.com>
@@ -44,8 +44,6 @@ attributes and metadata are encoded in case the PID complies with [ISO/IEC
44
44
18013-5].
45
45
- [Chapter 5](#5-sd-jwt-vc-based-encoding-of-pid) specifies how the PID
46
46
attributes and metadata are encoded in case the PID complies with [SD-JWT VC].
47
-
In the current version of this PID Rulebook, this chapter is empty; it will be
48
-
specified after further discussion with Member States.
49
47
50
48
### 1.3 Key words
51
49
@@ -71,14 +69,14 @@ ecosystem, regardless of the encoding used.
71
69
| **Index** | **Requirement specification** |
72
70
|-----------|--------------|
73
71
| PID_01 | A PID Provider SHALL issue any PID in both the format specified in ISO/IEC 18013-5 [ISO/IEC 18013-5] and the format specified in [SD-JWT VC]. *Note: CIR 2024/2977 mentions the W3C Verifiable Credentials Data Model v1.1 [W3C VCDM v1.1] instead of [SD-JWT VC]. However, W3C VCDM is not a complete specification of an attestation format. In particular, it does not specify a specific proof method to be used. Without additional specification, it is therefore impossible to implement a PID based on [W3C VCDM v1.1]. This Rulebook considers [SD-JWT VC] to essentially be such an additional specification.* |
74
-
| PID_02 | PID Providers SHALL use the attestation type “eu.europa.ec.eudi.pid.1” for both ISO/IEC 18013-5-compliant and SD-JWT VC-compliant PIDs. *Notes: - This identifier uses the general format [Reverse Domain].[Domain Specific Extension]. Since the European Commission controls the domain ec.europa.eu, this attestation type identifier will not collide with any attestation type identifiers defined by other organisations in other Attestation Rulebooks. - The Commission may use the version number “1” in this identifier to distinguish between the first version of the PID, defined in this document, and any future version, which will then have an incremented version number.* |
72
+
| PID_02 | PID Providers SHALL use “eu.europa.ec.eudi.pid.1” as the attestation type for ISO/IEC 18013-5-compliant PIDs. *Notes: - This identifier uses the general format [Reverse Domain].[Domain Specific Extension]. Since the European Commission controls the domain ec.europa.eu, this attestation type identifier will not collide with any attestation type identifiers defined by other organisations in other Attestation Rulebooks. - The Commission may use the version number “1” in this identifier to distinguish between the first version of the PID, defined in this document, and any future version, which will then have an incremented version number.* |
75
73
| PID_03 | A PID Provider SHALL ensure that all of the mandatory attributes listed in [Section 3.2](#32-mandatory-attributes-specified-in-cir-20242977) are present in any PID it issues to a Wallet Unit. *Notes: - When requesting PID attributes from a Wallet Unit, a Relying Party is not necessarily required to request all mandatory attributes. - A User is allowed to refuse to present a mandatory attribute, if it is requested by a Relying Party.* |
76
74
77
75
## 3 PID attributes and metadata
78
76
79
77
### 3.1 Introduction
80
78
81
-
Sections 3.2, 3.3, 3.4 and 3.5 of this chapter lists the mandatory and optional
79
+
Sections 3.2, 3.3, 3.4 and 3.5 of this chapter list the mandatory and optional
82
80
PID attributes and PID metadata defined in CIR 2024/2977, respectively. Section
83
81
3.6 lists the optional PID attributes additionally defined in this PID Rulebook.
84
82
@@ -92,7 +90,7 @@ encoding used. Consequently,
92
90
- the data identifiers in these tables are not necessarily the same as the
93
91
attribute identifiers used for PIDs complying with [ISO/IEC 18013-5]. [Chapter
94
92
4](#4-isoiec-18013-5-compliant-encoding-of-pid) specifies the data element
95
-
identifiers to be used for such PIDs.
93
+
identifiers to be used for PIDs in [ISO/IEC 18013-5] format
96
94
- the data identifiers in these tables are not necessarily the same as the claim
97
95
names used for PIDs complying with [SD-JWT VC]. [Chapter
98
96
5](#5-sd-jwt-vc-based-encoding-of-pid) specifies the attribute identifiers to be
@@ -292,15 +290,171 @@ scope of this document.
292
290
293
291
## 5 SD-JWT VC-based encoding of PID
294
292
295
-
### 5.1 High-Level Requirements for SD-JWT VC-compliant PIDs
293
+
### 5.1 High-Level Requirements for SD-JWT VC-based PIDs
294
+
295
+
The requirements in the table below are valid for PIDs in the EUDI Wallet
296
+
ecosystem that are compliant with [SD-JWT VC].
297
+
298
+
| **Index** | **Requirement specification** |
299
+
|-----------|-------------------------------|
300
+
| PID_SVC_01 | A PID Provider issuing [SD-JWT VC]-compliant PIDs SHALL include the vct claim in their PIDs, where the vct claim SHALL be a URN within the `urn:eudi:pid:` namespace. The type indicated by the vct claim SHALL be `urn:eudi:pid:1` for the type defined in this document or a domestic type that extends it. |
301
+
| PID_SVC_02 | A catalog linked in the PID rulebook SHALL associate all SD-JWT VC types for PIDs with SD-JWT VC type metadata which will include the same information as the PID rulebook applicable to the type. |
302
+
| PID_SVC_03 | A PID Provider that defines a domestic type SHALL publish information about the type, including all claim identifiers, their definition, presence and encoding format, in an Attestation Rulebook complying with all applicable requirements in Annex 2 [Topic 12]. |
303
+
| PID_SVC_04 | When issuing a PID compliant with [SD-JWT VC], a PID Provider SHALL include both the attributes and the metadata specified in CIR 2024/2977 in the PID as claims. *Note: This implies that technically speaking, there is no difference between these attributes and metadata.* |
304
+
| PID_SVC_05 | When issuing a PID compliant with [SD-JWT VC], a PID Provider SHALL encode each attribute or metadata in the PID as specified in the tables in [Section 5.2](#52-encoding-of-pid-attributes). |
305
+
| PID_SVC_06 | When issuing a PID compliant with [SD-JWT VC], a PID Provider SHALL ensure that the value of all attributes and metadata in the PID is valid at the value of the timestamp in the nbf claim, if present. *Note: The value of the age-related claims, if present, changes whenever the User to whom the person identification data relates has a relevant birthday. The value of many other attributes will also change over time.* |
306
+
| PID_SVC_07 | When issuing a PID compliant with [SD-JWT VC], a PID Provider SHALL ensure that the date_of_issuance claim, if present, is not later than the value of the timestamp in the nbf claim, if present. |
307
+
| PID_SVC_08 | When issuing a PID compliant with [SD-JWT VC], a PID Provider SHALL make all claims (i.e., all top-level properties, all nested properties, and all array entries) selectively disclosable individually, except those claims defined as non-selectively disclosable in [SD-JWT VC]. |
296
308
297
-
High-level requirements for SD-JWT VC-compliant PIDs will be added to a future
298
-
version of this PID Rulebook.
299
309
300
310
### 5.2 Encoding of PID attributes
301
311
302
-
The encoding of PID attributes for SD-JWT VC-compliant PIDs will be added to a
303
-
future version of this PID Rulebook.
312
+
Following Requirement ARB_06b, SD-JWT VC-encoded PID attestations use claim names that are either registered in the JSON Web
313
+
Token Claims Registry [IANA-JWT-Claims], are Public Names as defined in [RFC 7519], or are Private Names specific
314
+
to the attestation type. The tables below maps the data
315
+
identifiers defined above to the corresponding claim names.
316
+
317
+
Note that a hierarchical claim name structure can be used in SD-JWT VC encoded
318
+
PIDs as SD-JWT allows for individual selective disclosure of objects
319
+
and their properties. A hierarchical claim name structure is indicated by the
320
+
notation `parent.child` in the tables below.
321
+
322
+
The following IANA registered claim names are to be used for PIDs:
| birth_date | birthdate | string, ISO 8601-1 [ISO8601‑1] YYYY-MM-DD format | Section 5.1 of [OIDC] |
329
+
| birth_place | place_of_birth.country | string | Section 4.1 of [EKYC]; for the country |
330
+
| birth_place | place_of_birth.region | string | Section 4.1 of [EKYC]; for the state, province or other region |
331
+
| birth_place | place_of_birth.locality | string | Section 4.1 of [EKYC]; for the city or other locality |
332
+
| nationality | nationalities | array of strings | Section 4.1 of [EKYC]; using alpha-2 country codes as defined in [Section 3.2](#32-mandatory-attributes-specified-in-cir-20242977) |
| sex | sex | number | numeric encoding as described in [Section 3.3](#33-optional-attributes-specified-in-cir-20242977); gender from [OIDC] uses a different value range and is therefore not used |
Note: Instead of separate claims for (for example) age_over_16, age_over_18, age_over_65, etc., a single claim age_equal_or_over is used. This claim is an object with properties for each age as follows:
368
+
369
+
```json
370
+
"age_equal_or_over": {
371
+
"16": true,
372
+
"18": true,
373
+
"65": false
374
+
}
375
+
```
376
+
377
+
### 5.3 Note on VCT
378
+
379
+
SD-JWT VC defines the Verifiable Credential Type (`vct`). A type comes
380
+
with associated metadata that, for instance, provides information about
381
+
the type itself, outlines a schema detailing the claims that are
382
+
optional or mandatory in the SD-JWT VC, and specifies their display
383
+
methods. Additionally, a type can extend another type, enabling
384
+
the creation of domestic types based on a common EU-wide type, while preserving
385
+
the mandatory claims from the base type. Domestic
386
+
types MAY however define additional claims and display information. Details
387
+
are defined in [SD-JWT VC].
388
+
389
+
This document defines the base type to be "urn:eudi:pid:1". As a convention, all
390
+
PIDs must use types in the namespace "urn:eudi:pid:".
391
+
392
+
SD-JWT VC specifies Type Metadata as a machine-readable format for information
393
+
regarding a type, including the information on claims such as what is contained
394
+
in this document. Requirement PID_SVC_02 requires that the information on the
395
+
common EU-wide type as well as on any domestic types is published and
396
+
accessible in a catalog.
397
+
398
+
### 5.4 Example
399
+
400
+
401
+
EXAMPLE: The following example shows the payload of a PID in SD-JWT VC format before the encoding into the SD-JWT format.
Copy file name to clipboardExpand all lines: docs/architecture-and-reference-framework-main.md
+6-1Lines changed: 6 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4078,12 +4078,13 @@ For undated references, the latest version available applies.
4078
4078
| [ETSI EN 319 162-1]| [ETSI EN 319 162-1](https://www.etsi.org/deliver/etsi_en/319100_319199/31916201/01.01.01_60/en_31916201v010101p.pdf) - Electronic Signatures and Infrastructures (ESI); Associated Signature Containers (ASiC); Part 1: Building blocks and ASiC baseline containers |
4079
4079
| [ETSI EN 319 142] | [ETSI EN 319 142](https://www.etsi.org/deliver/etsi_en/319100_319199/31914202/01.01.01_60/en_31914202v010101p.pdf) - Electronic Signatures and Infrastructures (ESI); PAdES digital signatures; Part 1: Building blocks and PAdES baseline signatures |
4080
4080
| [CEN EN 419 241-1]| [CEN EN 419 241-1](https://www.en-standard.eu/csn-en-419241-1-trustworthy-systems-supporting-server-signing-part-1-general-system-security-requirements/) -- Trustworthy Systems Supporting Server Signing - Part 1: General System Security Requirements |
| [RFC 2119] | [RFC 2119](https://datatracker.ietf.org/doc/html/rfc2119) - Key words for use in RFCs to Indicate Requirement Levels. S. Bradner, March 1997. |
4083
4083
| [RFC 3339] | [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) - Date and Time on the Internet: Timestamps, G. Klyne et al., July 2002 |
4084
4084
| [RFC 4122] | [RFC 4122](https://datatracker.ietf.org/doc/html/rfc4122) - A Universally Unique Identifier (UUID) URN Namespace, P. Leach et al., July 2005 |
4085
4085
| [RFC 5280] | [RFC 5280](https://datatracker.ietf.org/doc/html/rfc5280) - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile, D. Kooper et al., May 2008 |
4086
4086
| [RFC 3647] | [RFC 3647](https://datatracker.ietf.org/doc/html/rfc3647) - Internet X.509 Public Key Infrastructure Certificate Policy and Certification Practices Framework, S. Chokhani et al., November 2003 |
4087
+
| [RFC 7519] | [RFC 7519](https://datatracker.ietf.org/doc/html/rfc7519) - JSON Web Token (JWT), M. Jones et al., May 2015 |
4087
4088
| [RFC 8259] | [RFC 8259](https://datatracker.ietf.org/doc/html/rfc8259) - The JavaScript Object Notation (JSON) Data Interchange Format, T. Bray, Ed., December 2017 |
4088
4089
| [RFC 8610] | [RFC 8610](https://datatracker.ietf.org/doc/html/rfc8610) - Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures, H. Birkholz et al., June 2019 |
4089
4090
| [RFC 8943] | [RFC 8943](https://datatracker.ietf.org/doc/html/rfc8943) - Concise Binary Object Representation (CBOR) Tags for Date, M. Jones et al., November 2020 |
@@ -4099,7 +4100,11 @@ For undated references, the latest version available applies.
4099
4100
| [CTAP] | Client to Authenticator Protocol (CTAP) Review Draft, March 21, 2023. Available: <https://fidoalliance.org/specs/fido-v2.2-rd-20230321/fido-client-to-authenticator-protocol-v2.2-rd-20230321.html> |
4100
4101
| [OpenID4VCI]| Lodderstedt, T. et al., "OpenID for Verifiable Credential Issuance", OpenID Foundation. Available: <https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html> |
4101
4102
| [OpenID4VP] | Terbu, O. et al., "OpenID Connect for Verifiable Presentations", OpenID Foundation. Available: <https://openid.net/specs/openid-4-verifiable-presentations-1_0.html> |
4103
+
| [OIDC] | Sakimura, N. et al., "OpenID Connect Core 1.0", OpenID Foundation. Available: <https://openid.net/specs/openid-connect-core-1_0.html> |
4104
+
| [EKYC] | Lodderstedt, T. et al., "OpenID Connect for Identity Assurance Claims Registration 1.0", OpenID Foundation. Available: <https://openid.net/specs/openid-connect-4-ida-claims-1_0-final.html> |
4105
+
| [EKYC Schema] | Lodderstedt, T. et al., "OpenID Identity Assurance Schema Definition 1.0", OpenID Foundation. Available: <https://openid.net/specs/openid-ida-verified-claims-1_0-final.html> |
4102
4106
| [HAIP] | Yasuda, K. et al, "OpenID4VC High Assurance Interoperability Profile", OpenId Foundation. Available: <https://openid.net/specs/openid4vc-high-assurance-interoperability-profile-1_0.html> |
0 commit comments