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
* Rename 'Issuer-signed JWT Verification Key Validation' to 'Issuer Signature Mechanisms' and rework some text accordingly. Provide a web-based metadata resolution mechanism and an inline x509 mechanism. A DID-based mechanism is not explicitly provided herein but still possible via profile/extension. Be explicit that the employed Issuer Signature Mechanism has to be one that is permitted for the Issuer according to policy.
* add to the history entry 'Be more clear that one permitted Issuer Signature Mechanism is sufficient'
Copy file name to clipboardExpand all lines: draft-ietf-oauth-sd-jwt-vc.md
+37-69Lines changed: 37 additions & 69 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -235,8 +235,8 @@ registry as defined in [@!RFC7519].
235
235
The following registered JWT claims are used within the SD-JWT component of the SD-JWT VC and MUST NOT be included in the Disclosures, i.e., cannot be selectively disclosed:
236
236
237
237
*`iss`
238
-
*REQUIRED. The Issuer of the Verifiable Credential. The value of `iss`
239
-
MUST be a URI. See [@!RFC7519] for more information.
238
+
*OPTIONAL. As defined in [@!RFC7519, section 4.1.1] this claim explicitly indicates the Issuer of the Verifiable Credential
239
+
when it is not conveyed by other means (e.g., the subject of the end-entity certificate of an `x5c` header).
240
240
*`nbf`
241
241
* OPTIONAL. The time before which the Verifiable Credential MUST NOT be
242
242
accepted before validating. See [@!RFC7519] for more information.
@@ -305,16 +305,16 @@ Examples of what presentations of SD-JWT VCs might look like are provided in (#p
305
305
## Verification and Processing {#vc-sd-jwt-verification-and-processing}
306
306
307
307
The recipient (Holder or Verifier) of an SD-JWT VC MUST process and verify an
308
-
SD-JWT VC as described in Section 7 of
309
-
[@!I-D.ietf-oauth-selective-disclosure-jwt].
308
+
SD-JWT VC as described in [@!I-D.ietf-oauth-selective-disclosure-jwt, section 7].
309
+
The check in point 2.3 of Section 7.1 of [@!I-D.ietf-oauth-selective-disclosure-jwt],
310
+
which validates the Issuer and ensures that the signing key belongs to the Issuer,
311
+
MUST be satisfied by determining and validating the public verification key used to verify the Issuer-signed JWT,
312
+
employing an Issuer Signature Mechanism (defined in (#ism)) that is permitted for the Issuer according to policy.
310
313
311
314
If Key Binding is required (refer to the security considerations in Section 9.5 of [@!I-D.ietf-oauth-selective-disclosure-jwt]), the Verifier MUST verify the KB-JWT
312
315
according to Section 7.3 of [@!I-D.ietf-oauth-selective-disclosure-jwt]. To verify
313
316
the KB-JWT, the `cnf` claim of the SD-JWT MUST be used.
314
317
315
-
Furthermore, the recipient of the SD-JWT VC MUST validate the public verification key
316
-
for the Issuer-signed JWT as defined in (#issuer-signed-jwt-verification-key-validation).
317
-
318
318
If a schema is provided in the Type Metadata, a recipient MUST validate the schema as defined in (#schema-type-metadata).
319
319
320
320
If there are no selectively disclosable claims, there is no need to process the
@@ -329,21 +329,26 @@ Any claims used that are not understood MUST be ignored.
329
329
Additional validation rules MAY apply, but their use is out of the scope of this
An Issuer Signature Mechanism defines how a Verifier determines the appropriate key and associated procedure for
335
+
verifying the signature of an Issuer-signed JWT.
336
+
This allows for flexibility in supporting different trust anchoring systems and key resolution methods
337
+
without changing the core processing model.
333
338
334
-
A recipient of an SD-JWT VC MUST apply the following rules to validate that the public
335
-
verification key for the Issuer-signed JWT corresponds to the `iss` value:
339
+
A recipient MUST determine and validate the public verification key for the Issuer-signed JWT using
340
+
a supported Issuer Signature Mechanism that is permitted for the given Issuer according to policy.
341
+
This specification defines the following two Issuer Signature Mechanisms:
336
342
337
-
- JWT VC Issuer Metadata: If a recipient supports JWT VC Issuer Metadata and if the `iss` value contains an HTTPS URI, the recipient MUST
338
-
obtain the public key using JWT VC Issuer Metadata as defined in (#jwt-vc-issuer-metadata).
339
-
- X.509 Certificates: If the recipient supports X.509 Certificates and the `iss` value contains an HTTPS URI, the recipient MUST
340
-
1. obtain the public key from the end-entity certificate of the certificates from the `x5c` header parameter of the Issuer-signed JWT and validate the X.509 certificate chain accordingly, and
341
-
2. ensure that the `iss` value matches a `uniformResourceIdentifier` SAN entry of the end-entity certificate or that the domain name in the `iss` value matches the `dNSName` SAN entry of the end-entity certificate.
342
-
- DID Document Resolution: If a recipient supports DID Document Resolution and if the `iss` value contains a DID [@W3C.DID], the recipient MUST retrieve the public key from the DID Document resolved from the DID in the `iss` value. In this case, if the `kid` JWT header parameter is present, the `kid` MUST be a relative or absolute DID URL of the DID in the `iss` value, identifying the public key.
343
+
- JWT VC Issuer Metadata: A mechanism to retrieve the Issuer's public key using web-based resolution. When the value of the `iss` claim of the Issuer-signed JWT is an HTTPS URI, the recipient obtains the public key using the keys from JWT VC Issuer Metadata as defined in (#jwt-vc-issuer-metadata).
343
344
344
-
Separate specifications or ecosystem regulations MAY define rules complementing the rules defined above, but such rules are out of scope of this specification. See (#ecosystem-verification-rules) for security considerations.
345
+
- X.509 Certificates: A mechanism to retrieve the Issuer's public key using the X.509 certificate chain in the SD-JWT header. When the header of the Issuer-signed JWT contains the `x5c` header parameter, the recipient uses the public key from the end-entity certificate of the certificates from the `x5c` header parameter and validates the X.509 certificate chain accordingly. In this case, the Issuer of the Verifiable Credential is the subject of the end-entity certificate.
345
346
346
-
If a recipient cannot validate that the public verification key corresponds to the `iss` value of the Issuer-signed JWT, the SD-JWT VC MUST be rejected.
347
+
To enable different trust anchoring systems or key resolution methods, separate specifications or ecosystem regulations
348
+
may define additional Issuer Signature Mechanisms; however, the specifics of such mechanisms are out of scope for this specification.
349
+
See (#ecosystem-verification-rules) for related security considerations.
350
+
351
+
If a recipient cannot validate that the public verification key corresponds the Issuer of the Issuer-signed JWT using a permitted Issuer Signature Mechanism, the SD-JWT VC MUST be rejected.
@@ -1592,7 +1560,7 @@ for their contributions (some of which substantial) to this draft and to the ini
1592
1560
1593
1561
-10
1594
1562
1595
-
*
1563
+
* Rename 'Issuer-signed JWT Verification Key Validation' to 'Issuer Signature Mechanisms' and rework some text accordingly. Provide a web-based metadata resolution mechanism and an inline x509 mechanism. A DID-based mechanism is not explicitly provided herein but still possible via profile/extension. Be explicit that the employed Issuer Signature Mechanism has to be one that is permitted for the Issuer according to policy. Be more clear that one permitted Issuer Signature Mechanism is sufficient.
0 commit comments