Skip to content

Commit 9c990a9

Browse files
authored
Merge pull request #179 from oauth-wg/114-add-example-for-mdoc-as-referenced-token
consolidate CWT and CBOR section and add mDL example
2 parents 2f57d2f + 0dc3a67 commit 9c990a9

File tree

1 file changed

+142
-17
lines changed

1 file changed

+142
-17
lines changed

Diff for: draft-ietf-oauth-status-list.md

+142-17
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ The following is the CBOR Annotated Hex output of the example above:
326326

327327
By including a "status" claim in a Referenced Token, the Issuer is referencing a mechanism to retrieve status information about this Referenced Token. The claim contains members used to reference to a status list as defined in this specification. Other members of the "status" object may be defined by other specifications. This is analogous to "cnf" claim in Section 3.1 of {{RFC7800}} in which different authenticity confirmation methods can be included.
328328

329-
## Referenced Token in JOSE Format {#referenced-token-jwt}
329+
## Referenced Token in JOSE {#referenced-token-jose}
330330

331331
The Referenced Token MAY be encoded as a "JSON Web Token (JWT)" according to {{RFC7519}} or other formats based on JOSE.
332332

@@ -358,7 +358,7 @@ The following is a non-normative example for a decoded header and payload of a R
358358
}
359359
~~~
360360

361-
SD-JWT-based Verifiable Credentials {{SD-JWT.VC}} introduce the usage of Status List in Section 3.2.2.2. The "status" object uses the same encoding as a JWT as defined in {{referenced-token-jwt}}.
361+
SD-JWT-based Verifiable Credentials {{SD-JWT.VC}} introduce the usage of Status List in Section 3.2.2.2. The "status" object uses the same encoding as a JWT as defined in {{referenced-token-jose}}.
362362

363363
The following is a non-normative example for a Referenced Token in SD-JWT-VC serialized form as received from an Issuer:
364364

@@ -405,16 +405,16 @@ Resulting payload of the example above:
405405
}
406406
~~~
407407

408-
## Referenced Token in CWT Format {#referenced-token-cwt}
408+
## Referenced Token in COSE {#referenced-token-cose}
409409

410-
The Referenced Token MUST be encoded as a "COSE Web Token (CWT)" object according to {{RFC8392}}.
410+
The Referenced Token MAY be encoded as a "COSE Web Token (CWT)" object according to {{RFC8392}} or other formats based on COSE.
411411

412412
The following content applies to the CWT Claims Set:
413413

414414
* `65535` (status): REQUIRED. The status claim is encoded as a `Status` CBOR structure and MUST include at least one data item that refers to a status mechanism. Each data item in the `Status` CBOR structure comprises a key-value pair, where the key must be a CBOR text string (Major Type 3) specifying the identifier of the status mechanism, and the corresponding value defines its contents. This specification defines the following data items:
415-
* `status_list` (status list): REQUIRED when the status list mechanism defined in this specification is used. It has the same definition as the `status_list` claim in [](#referenced-token-jwt) but MUST be encoded as a `StatusListInfo` CBOR structure with the following fields:
416-
* `idx`: REQUIRED. Same definition as `idx` claim in [](#referenced-token-jwt).
417-
* `uri`: REQUIRED. Same definition as `uri` claim in [](#referenced-token-jwt).
415+
* `status_list` (status list): REQUIRED when the status list mechanism defined in this specification is used. It has the same definition as the `status_list` claim in [](#referenced-token-jose) but MUST be encoded as a `StatusListInfo` CBOR structure with the following fields:
416+
* `idx`: REQUIRED. Same definition as `idx` claim in [](#referenced-token-jose).
417+
* `uri`: REQUIRED. Same definition as `uri` claim in [](#referenced-token-jose).
418418

419419
Application of additional restrictions and policy are at the discretion of the verifying party.
420420

@@ -430,20 +430,143 @@ The following is the CBOR Annotated Hex output of the example above:
430430
{::include ./examples/referenced_token_cwt_diag}
431431
~~~~~~~~~~
432432

433+
ISO mdoc {{ISO.mdoc}} may utilize the Status List mechanism by introducing the `status` parameter in the Mobile Security Object (MSO) as specified in Section 9.1.2. The `status` parameter uses the same encoding as a CWT as defined in {{referenced-token-cose}}.
433434

434-
## Referenced Token in other COSE/CBOR Format {#referenced-token-cose}
435+
It is RECOMMENDED to use `status` for the label of the field that contains the `Status` CBOR structure.
435436

436-
The Referenced Token MUST be encoded as a `COSE_Sign1` or `COSE_Sign` CBOR structure as defined in "CBOR Object Signing and Encryption (COSE)" {{RFC9052}}.
437+
Application of additional restrictions and policy are at the discretion of the verifying party.
437438

438-
It is required to encode the status mechanisms referred to in the Referenced Token using the `Status` CBOR structure defined in [](#referenced-token-cwt).
439+
The following is a non-normative example for an IssuerAuth as specified in ISO mDL (also referred to as signed MSO) in Hex:
439440

440-
It is RECOMMENDED to use `status` for the label of the field that contains the `Status` CBOR structure.
441+
~~~ ascii-art
441442

442-
Application of additional restrictions and policy are at the discretion of the verifying party.
443+
8443a10126a118215901f3308201ef30820195a00302010202140bfec7da97e048e
444+
15ac3dacb9eafe82e64fd07f5300a06082a8648ce3d040302302331143012060355
445+
04030c0b75746f7069612069616361310b3009060355040613025553301e170d323
446+
4313030313030303030305a170d3235313030313030303030305a30213112301006
447+
035504030c0975746f706961206473310b300906035504061302555330593013060
448+
72a8648ce3d020106082a8648ce3d03010703420004ace7ab7340e5d9648c5a72a9
449+
a6f56745c7aad436a03a43efea77b5fa7b88f0197d57d8983e1b37d3a539f4d5883
450+
65e38cbbf5b94d68c547b5bc8731dcd2f146ba381a83081a5301c0603551d1f0415
451+
30133011a00fa00d820b6578616d706c652e636f6d301e0603551d1204173015811
452+
36578616d706c65406578616d706c652e636f6d301d0603551d0e0416041414e290
453+
17a6c35621ffc7a686b7b72db06cd12351301f0603551d2304183016801454fa238
454+
3a04c28e0d930792261c80c4881d2c00b300e0603551d0f0101ff04040302078030
455+
150603551d250101ff040b3009060728818c5d050102300a06082a8648ce3d04030
456+
20348003045022100b7103fd4b90529f50bd6f70c5ae5ce7f4f3d4d15a4e082812f
457+
9fa1f5c2e5aa0a0220070b2822ec7ce6c56804923a85b2cfbffd054cf9a915f070c
458+
fef7179a4bc6569590320d81859031ba766737461747573a16b7374617475735f6c
459+
697374a26369647819019c63757269782168747470733a2f2f6578616d706c652e6
460+
36f6d2f7374617475736c697374732f3167646f6354797065756f72672e69736f2e
461+
31383031332e352e312e6d444c6776657273696f6e63312e306c76616c696469747
462+
9496e666fa3667369676e6564c074323032342d31302d30315431333a33303a3032
463+
5a6976616c696446726f6dc074323032342d31302d30315431333a33303a30325a6
464+
a76616c6964556e74696cc074323032352d31302d30315431333a33303a30325a6c
465+
76616c756544696765737473a1716f72672e69736f2e31383031332e352e31ac005
466+
820a81d65ed5075fbd7ee19fa66e2bb3047ed826e2769873e7ef07c923da7a6f243
467+
01582048701a9546492284d266ed81d439230a582d0e1f17a08ab1859a3efe98069
468+
0a4025820d11fe48c8835b30bfb3895c3905436ddfb63f59ab9eee181b110985329
469+
2a8f62035820a741bf05e20a8bc359e32426106ed0899b2c60262cc3acc637ddc99
470+
41095fb7a045820ab67cb9a8f20a8572f77f02727367d08dc8e57fb89deb46b9c62
471+
6e94457b7d8b055820bacddb4142b3842bd555206eb5acb27ded063294995c7e7fe
472+
fbf93ece522604d065820bfd02b3aebdc05b53b5539226c38088d6d784b0ea0fab6
473+
9eb9311650a48d325307582027dab70fe71da63e5e5d199e8ae5b79cbe8904bc30c
474+
5b7544fb809e02ccb3e6a0858200dbd7ccc9c7727d3d17295f1b6f1914071670ee2
475+
3d4d33530c31f1f406b8e3b7095820a5beb5efadf37f21637209abc519830681cc5
476+
1f334818a823fec13b29552f5ba0a5820d8047c95f9272d7d07b2c13a9f5ac2ee02
477+
380ab272a165e569391d89a2152c3c0b582004939930ffb4911ef03487a153605a3
478+
0368b69f2437d6d21b4c90f92bc144c3e6d6465766963654b6579496e666fa16964
479+
65766963654b6579a40102200121582096313d6c63e24e3372742bfdb1a33ba2c89
480+
7dcd68ab8c753e4fbd48dca6b7f9a2258201fb3269edd418857de1b39a4e4a44b92
481+
fa484caa722c228288f01d0c03a2c3d66f646967657374416c676f726974686d675
482+
348412d3235365840b7c2d4abe85aa5ba814ef95de0385c71c802be8ac33a4a971a
483+
85ed800ba7acb59cb21035f4a68fc0caa450cbefd3b255aec72f83595f0ae7b7d50
484+
fe8a1c4cafe
485+
~~~
443486

444-
The following is a non-normative example for a decoded payload of a Referenced Token:
487+
The following is the CBOR Diagnostic Notation of the example above:
445488

446-
TBD: example
489+
~~~~~~~~~~
490+
[
491+
<< {
492+
1: -7
493+
} >>,
494+
{
495+
33: h'308201ef30820195a00302010202140bfec7da97e048e15ac3dacb9ea
496+
fe82e64fd07f5300a06082a8648ce3d04030230233114301206035504030c0b
497+
75746f7069612069616361310b3009060355040613025553301e170d3234313
498+
030313030303030305a170d3235313030313030303030305a30213112301006
499+
035504030c0975746f706961206473310b30090603550406130255533059301
500+
306072a8648ce3d020106082a8648ce3d03010703420004ace7ab7340e5d964
501+
8c5a72a9a6f56745c7aad436a03a43efea77b5fa7b88f0197d57d8983e1b37d
502+
3a539f4d588365e38cbbf5b94d68c547b5bc8731dcd2f146ba381a83081a530
503+
1c0603551d1f041530133011a00fa00d820b6578616d706c652e636f6d301e0
504+
603551d120417301581136578616d706c65406578616d706c652e636f6d301d
505+
0603551d0e0416041414e29017a6c35621ffc7a686b7b72db06cd12351301f0
506+
603551d2304183016801454fa2383a04c28e0d930792261c80c4881d2c00b30
507+
0e0603551d0f0101ff04040302078030150603551d250101ff040b300906072
508+
8818c5d050102300a06082a8648ce3d0403020348003045022100b7103fd4b9
509+
0529f50bd6f70c5ae5ce7f4f3d4d15a4e082812f9fa1f5c2e5aa0a0220070b2
510+
822ec7ce6c56804923a85b2cfbffd054cf9a915f070cfef7179a4bc6569'
511+
},
512+
<< 24( << {
513+
"status": {
514+
"status_list": {
515+
"idx": 412,
516+
"uri": "https://example.com/statuslists/1"
517+
}
518+
},
519+
"docType": "org.iso.18013.5.1.mDL",
520+
"version": "1.0",
521+
"validityInfo": {
522+
"signed": 2024-10-01 13:30:02+00:00,
523+
"validFrom": 2024-10-01 13:30:02+00:00,
524+
"validUntil": 2025-10-01 13:30:02+00:00
525+
},
526+
"valueDigests": {
527+
"org.iso.18013.5.1": {
528+
0: h'a81d65ed5075fbd7ee19fa66e2bb3047ed826e2769873e7ef07c92
529+
3da7a6f243',
530+
1: h'48701a9546492284d266ed81d439230a582d0e1f17a08ab1859a3e
531+
fe980690a4',
532+
2: h'd11fe48c8835b30bfb3895c3905436ddfb63f59ab9eee181b11098
533+
53292a8f62',
534+
3: h'a741bf05e20a8bc359e32426106ed0899b2c60262cc3acc637ddc9
535+
941095fb7a',
536+
4: h'ab67cb9a8f20a8572f77f02727367d08dc8e57fb89deb46b9c626e
537+
94457b7d8b',
538+
5: h'bacddb4142b3842bd555206eb5acb27ded063294995c7e7fefbf93
539+
ece522604d',
540+
6: h'bfd02b3aebdc05b53b5539226c38088d6d784b0ea0fab69eb93116
541+
50a48d3253',
542+
7: h'27dab70fe71da63e5e5d199e8ae5b79cbe8904bc30c5b7544fb809
543+
e02ccb3e6a',
544+
8: h'0dbd7ccc9c7727d3d17295f1b6f1914071670ee23d4d33530c31f1
545+
f406b8e3b7',
546+
9: h'a5beb5efadf37f21637209abc519830681cc51f334818a823fec13
547+
b29552f5ba',
548+
10: h'd8047c95f9272d7d07b2c13a9f5ac2ee02380ab272a165e569391
549+
d89a2152c3c',
550+
11: h'04939930ffb4911ef03487a153605a30368b69f2437d6d21b4c90
551+
f92bc144c3e'
552+
}
553+
},
554+
"deviceKeyInfo": {
555+
"deviceKey": {
556+
1: 2,
557+
-1: 1,
558+
-2: h'96313d6c63e24e3372742bfdb1a33ba2c897dcd68ab8c753e4fbd
559+
48dca6b7f9a',
560+
-3: h'1fb3269edd418857de1b39a4e4a44b92fa484caa722c228288f01
561+
d0c03a2c3d6'
562+
}
563+
},
564+
"digestAlgorithm": "SHA-256"
565+
} >> ) >>,
566+
h'b7c2d4abe85aa5ba814ef95de0385c71c802be8ac33a4a971a85ed800ba7acb
567+
59cb21035f4a68fc0caa450cbefd3b255aec72f83595f0ae7b7d50fe8a1c4cafe'
568+
]
569+
~~~~~~~~~~
447570

448571
# Status Types {#status-types}
449572

@@ -507,7 +630,7 @@ As this is out of scope of this document, this validation is not be described he
507630

508631
If this validation was not successful, the Referenced Token MUST be rejected. If the validation was successful, the Relying Party MUST perform the following validation steps to evaluate the status of the reference token:
509632

510-
1. Check for the existence of a `status` claim, check for the existence of a `status_list` claim within the `status` claim and validate that the content of `status_list` adheres to the rules defined in [](#referenced-token-jwt) for JWTs and [](#referenced-token-cwt) for CWTs. This step can be overruled if defined within the Referenced Token Format natively
633+
1. Check for the existence of a `status` claim, check for the existence of a `status_list` claim within the `status` claim and validate that the content of `status_list` adheres to the rules defined in [](#referenced-token-jose) for JWTs and [](#referenced-token-cose) for CWTs. This step can be overruled if defined within the Referenced Token Format natively
511634
2. Resolve the Status List from the provided URI
512635
3. Validate the Status List Token:
513636
1. Validate the Status List Token by following the rules defined in section 7.2 of {{RFC7519}} for JWTs and section 7.2 of {{RFC8392}} for CWTs.
@@ -764,7 +887,7 @@ Specification Document(s):
764887
* Status Method Value: `status_list`
765888
* Status Method Description: A status list containing up-to-date status information on multiple tokens.
766889
* Change Controller: IETF
767-
* Specification Document(s): [](#referenced-token-jwt) of this specification
890+
* Specification Document(s): [](#referenced-token-jose) of this specification
768891

769892
## CBOR Web Token Claims Registration
770893

@@ -824,7 +947,7 @@ Specification Document(s):
824947
* Status Method Value: `status_list`
825948
* Status Method Description: A status list containing up-to-date status information on multiple tokens.
826949
* Change Controller: IETF
827-
* Specification Document(s): [](#referenced-token-cwt) of this specification
950+
* Specification Document(s): [](#referenced-token-cose) of this specification
828951

829952
## Media Type Registration
830953

@@ -924,6 +1047,7 @@ Francesco Marino,
9241047
Guiseppe De Marco,
9251048
Kristina Yasuda,
9261049
Markus Kreusch,
1050+
Martijn Haring,
9271051
Michael B. Jones,
9281052
Mike Prorock,
9291053
Oliver Terbu,
@@ -939,6 +1063,7 @@ for their valuable contributions, discussions and feedback to this specification
9391063

9401064
-04
9411065

1066+
* add mDL example as Referenced Token and consolidate CWT and CBOR sections
9421067
* add implementation consideration for Default Values, Double Allocation and Status List Size
9431068
* add privacy consideration on using private relay protocols
9441069
* add privacy consideration on observability of outsiders

0 commit comments

Comments
 (0)