Skip to content

Commit b4e39d0

Browse files
authored
Merge branch 'main' into capitalise-ecosystem
2 parents bb0e11b + 6ce434e commit b4e39d0

File tree

1 file changed

+21
-18
lines changed

1 file changed

+21
-18
lines changed

openid4vc-high-assurance-interoperability-profile-1_0.md

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -218,9 +218,9 @@ Note: Issuers SHOULD consider how long a refresh token is allowed to be used to
218218

219219
Wallets MUST use, and Issuers MUST require, an OAuth2 Client authentication mechanism at OAuth2 Endpoints that support client authentication (such as the PAR and Token Endpoints).
220220

221-
Ecosystems that desire wallet-issuer interoperability on the level of Wallet Attestations SHOULD require Wallets to support the authentication mechanism and Wallet Attestation format specified in Annex E of [@!OIDF.OID4VCI]. When doing so, they might need to define additional Ecosystem-specific claims contained in the attestation. Alternatively, Ecosystems MAY choose to rely on other Wallet Attestation formats.
221+
Ecosystems that desire wallet-issuer interoperability on the level of Wallet Attestations SHOULD require Wallets to support the authentication mechanism and Wallet Attestation format specified in Appendix E of [@!OIDF.OID4VCI]. When doing so, they might need to define additional Ecosystem-specific claims contained in the attestation. Alternatively, Ecosystems MAY choose to rely on other Wallet Attestation formats.
222222

223-
Additional rules apply when using the format defined in Annex E of [@!OIDF.OID4VCI]:
223+
Additional rules apply when using the format defined in Appendix E of [@!OIDF.OID4VCI]:
224224

225225
* the public key certificate, and optionally a trust certificate chain excluding the trust anchor, used to validate the signature on the Wallet Attestation MUST be included in the `x5c` JOSE header of the Client Attestation JWT
226226
* Wallet Attestations MUST NOT be reused across different Issuers. They MUST NOT introduce a unique identifier specific to a single Wallet instance. The subject claim for the Wallet Attestation MUST be a value that is shared by all Wallet instances using the present type of wallet implementation. See section 15.4.4 of [@!OIDF.OID4VCI] for details on the Wallet Attestation subject.
@@ -231,7 +231,7 @@ Ecosystems that desire wallet-issuer interoperability on the level of Wallet Att
231231

232232
### Key Attestation {#key-attestation}
233233

234-
Wallets MUST support key attestations. Ecosystems that desire wallet-issuer interoperability on the level of key attestations SHOULD require Wallets to support the format specified in Annex D of [@!OIDF.OID4VCI], in combination with the following proof types:
234+
Wallets MUST support key attestations. Ecosystems that desire wallet-issuer interoperability on the level of key attestations SHOULD require Wallets to support the format specified in Appendix D of [@!OIDF.OID4VCI], in combination with the following proof types:
235235

236236
* `jwt` proof type using `key_attestation`
237237
* `attestation` proof type
@@ -257,7 +257,7 @@ The following requirements apply to OpenID for Verifiable Presentations, irrespe
257257
* The DCQL query and response MUST be used as defined in Section 6 of [@!OIDF.OID4VP].
258258
* Response encryption MUST be performed as specified in [@!OIDF.OID4VP, section 8.3]. The JWE `alg` (algorithm) header parameter (see [@!RFC7516, section 4.1.1])
259259
value `ECDH-ES` (as defined in [@!RFC7518, section 4.6]), with key agreement utilizing keys on the `P-256` curve (see [@!RFC7518, section 6.2.1.1]) MUST be supported.
260-
The JWE `enc` (encryption algorithm) header parameter (see [@!RFC7516, section 4.1.2]) value `A128GCM` (as defined in [@!RFC7518, section 5.3]) MUST be supported.
260+
The JWE `enc` (encryption algorithm) header parameter (see [@!RFC7516, section 4.1.2]) values `A128GCM` and `A256GCM` (as defined in [@!RFC7518, section 5.3]) MUST be supported by Verifiers. Wallets MUST support `A128GCM` or `A256GCM`, or both. If both are supported, the Wallet SHOULD use `A256GCM` for the JWE `enc`. Verifiers MUST list both `A128GCM` and `A256GCM` in `encrypted_response_enc_values_supported` in their client metadata.
261261
* Verifiers MUST supply ephemeral encryption public keys specific to each Authorization Request passed via client metadata as specified in Section 8.3 of [@!OIDF.OID4VP].
262262
* The Authority Key Identifier (`aki`)-based Trusted Authority Query (`trusted_authorities`) for DCQL, as defined in section 6.1.1.1 of [@!OIDF.OID4VP], MUST be supported. Note that the Authority Key Identifiers mechanism can be used to support multiple X.509-based trust mechanisms, such as ISO mDL VICAL (as introduced in [@ISO.18013-5]) or ETSI Trusted Lists [@ETSI.TL]. This is achieved by collecting the relevant X.509 certificates for the trusted Issuers and including the encoded Key Identifiers from the certificates in the `aki` array .
263263

@@ -284,16 +284,16 @@ The following requirements apply to OpenID for Verifiable Presentations via the
284284

285285
* The Wallet MUST support Wallet Invocation via the W3C Digital Credentials API or an equivalent platform API. The Verifier MUST use Wallet Invocation via the W3C Digital Credentials API or an equivalent platform API.
286286
* The Wallet MUST support the Response Mode `dc_api.jwt`. The Verifier MUST use the Response Mode `dc_api.jwt`.
287-
* The Verifier and Wallet MUST use Annex A in [@!OIDF.OID4VP] that defines how to use OpenID4VP over the W3C Digital Credentials API.
288-
* The Wallet MUST support both signed and unsigned requests as defined in Annex A.3.1 and A.3.2 of [@!OIDF.OID4VP]. The Verifier MAY support signed requests, unsigned requests, or both.
287+
* The Verifier and Wallet MUST use Appendix A in [@!OIDF.OID4VP] that defines how to use OpenID4VP over the W3C Digital Credentials API.
288+
* The Wallet MUST support unsigned, signed, and multi-signed requests as defined in Appendices A.3.1 and A.3.2 of [@!OIDF.OID4VP]. The Verifier MUST support at least one of these options.
289289

290290
Note that unsigned requests depend on the origin information provided by the platform and the web PKI for request integrity protection and to authenticate the Verifier. Signed requests introduce a separate layer for request integrity protection and Verifier authentication that can be validated by the Wallet.
291291

292292
## Requirements specific to Credential Formats {#oid4vp-credential-formats}
293293

294294
### ISO Mobile Documents or mdocs (ISO/IEC 18013 and ISO/IEC 23220 series)
295295

296-
The following requirements apply to all OpenID4VP flows when the mdoc Credential Format is used (as defined in Annex B.2. of [@!OIDF.OID4VP]):
296+
The following requirements apply to all OpenID4VP flows when the mdoc Credential Format is used (as defined in Appendix B.2. of [@!OIDF.OID4VP]):
297297

298298
* The Credential Format identifier MUST be `mso_mdoc`.
299299
* When multiple ISO mdocs are being returned, each ISO mdoc MUST be returned in a separate `DeviceResponse` (as defined in 8.3.2.1.2.2 of [@!ISO.18013-5]), each matching to a respective DCQL query. Therefore, the resulting `vp_token` contains multiple `DeviceResponse` instances.
@@ -310,11 +310,11 @@ The following requirements apply to all OpenID4VP flows when the SD-JWT VC Crede
310310
Credential Format Profiles are defined as follows:
311311

312312
- IETF SD-JWT VCs (as specified in [@!I-D.ietf-oauth-sd-jwt-vc]), subject to the additional requirements defined in (#sd-jwt-vc):
313-
- [@!OIDF.OID4VCI]Annex A.3
314-
- [@!OIDF.OID4VP]Annex B.3
313+
- [@!OIDF.OID4VCI]Appendix A.3
314+
- [@!OIDF.OID4VP]Appendix B.3
315315
- ISO mdocs:
316-
- [@!OIDF.OID4VCI]Annex A.2
317-
- [@!OIDF.OID4VP]Annex B.2
316+
- [@!OIDF.OID4VCI]Appendix A.2
317+
- [@!OIDF.OID4VP]Appendix B.2
318318

319319
## IETF SD-JWT VC Profile {#sd-jwt-vc}
320320

@@ -350,8 +350,9 @@ This specification mandates the support for X.509 certificate-based key resoluti
350350
Issuers, Verifiers, and Wallets MUST, at a minimum, support ECDSA with P-256 and SHA-256 (JOSE algorithm identifier `ES256`; COSE algorithm identifier `-7` or `-9`, as applicable) for the purpose of validating the following:
351351

352352
- Issuers
353-
- Wallet Attestations (including PoP) when Annex E of [@!OIDF.OID4VCI] is used;
354-
- Key Attestations when Annex D of [@!OIDF.OID4VCI] is used.
353+
- Wallet Attestations (including PoP) when Appendix E of [@!OIDF.OID4VCI] is used.
354+
- Key Attestations when Appendix D of [@!OIDF.OID4VCI] is used.
355+
- `jwt` proof type as specified in Appendix E of [@!OIDF.OID4VCI].
355356
- Verifiers
356357
- the signature of the Verifiable Presentation, e.g., KB-JWT of an SD-JWT VC, or `deviceSignature` CBOR structure in case of ISO mdocs. Verifiers are assumed to determine in advance the cryptographic suites supported by the Ecosystem, e.g. mDL Issuers/Verifiers implementing ISO mdocs.
357358
- the status information of the Verifiable Credential or Wallet Attestation.
@@ -379,7 +380,7 @@ This specification relies on certain prerequisites, such as browser or operating
379380

380381
## Interoperable Key Attestations
381382

382-
Wallet implementations using the key attestation format specified in Annex D of [@!OIDF.OID4VCI] might need to utilize a transformation (backend) service to create such attestations based on data as provided in other formats by the respective platform or secure key management module. The dependency on such a service might impact the availability of the wallet app as well as the performance of the issuance process. This could be mitigated by creating keys and obtaining the respective key attestations in advance.
383+
Wallet implementations using the key attestation format specified in Appendix D of [@!OIDF.OID4VCI] might need to utilize a transformation (backend) service to create such attestations based on data as provided in other formats by the respective platform or secure key management module. The dependency on such a service might impact the availability of the wallet app as well as the performance of the issuance process. This could be mitigated by creating keys and obtaining the respective key attestations in advance.
383384

384385
## Ecosystem Implementation Considerations
385386

@@ -409,8 +410,8 @@ An Ecosystem that prioritizes interoperability among all Wallets, Issuers and Ve
409410
- For issuance, the following requirements apply:
410411
- Issuers use and Wallets support unsigned Issuer Metadata.
411412
- Wallets register for the `haip-vci://` custom scheme, where possible. This custom scheme is also used to communicate Credential Offer.
412-
- Wallets and Issuers both support Key Attestations in the format specified in Annex D of [@!OIDF.OID4VCI]. Both `jwt` proof type using `key_attestation` and `attestation` proof type are supported.
413-
- Wallets and Issuers both support Wallet Attestations in the format specified in Annex E of [@!OIDF.OID4VCI] and (#wallet-attestation) of this specification.
413+
- Wallets and Issuers both support Key Attestations in the format specified in Appendix D of [@!OIDF.OID4VCI]. Both `jwt` proof type using `key_attestation` and `attestation` proof type are supported.
414+
- Wallets and Issuers both support Wallet Attestations in the format specified in Appendix E of [@!OIDF.OID4VCI] and (#wallet-attestation) of this specification.
414415
- for presentation, the following requirements apply:
415416
- Wallets use DC API where possible and when they have credentials available. As a fallback mechanism when DC API is not available, Wallets register for the `haip-vp://` custom scheme, where possible.
416417
- No additional X.509 certificate profile is defined.
@@ -454,7 +455,7 @@ Note that privacy considerations for OpenID for Verifiable Credential Issuance a
454455

455456
## Interoperable Key Attestations {#interop-key-attestations}
456457

457-
Wallet implementations using the key attestation format specified in Annex D of [@!OIDF.OID4VCI] might need to utilize a transformation (backend) service to create such attestations based on data as provided in other formats by the respective platform or secure key management module. Such a backend service MUST be designed considering the privacy of its users. For example, the service could be stateless and just perform the transformation of the attestation data without binding the process in any way to a unique user identifier.
458+
Wallet implementations using the key attestation format specified in Appendix D of [@!OIDF.OID4VCI] might need to utilize a transformation (backend) service to create such attestations based on data as provided in other formats by the respective platform or secure key management module. Such a backend service MUST be designed considering the privacy of its users. For example, the service could be stateless and just perform the transformation of the attestation data without binding the process in any way to a unique user identifier.
458459

459460
{backmatter}
460461

@@ -717,10 +718,12 @@ The technology described in this specification was made available from contribut
717718

718719
-06
719720

721+
* add the multi-signed option to the DC API variants
720722
* add cose alg identifer -9 (fully specified)
721723
* clarify that DCQL applies in HAIP as defined in OpenID4VP and all REQUIRED and OPTIONAL requirements remain the same
722724
* add reference to ECCG Agreed Cryptographic Mechanisms 2.0
723725
* require x5c header in the OID4VCI Appendix D key attestation
726+
* require A256GCM and A128GCM for verifiers
724727
* add "Non-normative Examples of Ecosystem-specific Extensions of this Specification" section
725728

726729
-05
@@ -755,7 +758,7 @@ The technology described in this specification was made available from contribut
755758
* update VP & VCI references to be to 1.0 Final
756759
* add separate custom url schemes for issuance and presentation to replace the haip:// scheme
757760
* support for haip-vp:// and haip-vci:// custom url schemes is now an Ecosystem decision
758-
* allow Ecosystems the option to use key attestations other than those defined in Annex D of [@!OIDF.OID4VCI] in some cases
761+
* allow Ecosystems the option to use key attestations other than those defined in Appendix D of [@!OIDF.OID4VCI] in some cases
759762
* clarify nonce endpoint must be present when cryptographic_binding_methods_supported is
760763
* remove various requirements around claims present in SD-JWT VC as upstream spec covers them
761764
* require ephemeral encryption keys in VP

0 commit comments

Comments
 (0)