Skip to content

Commit dd703cc

Browse files
committed
Merge branch 'main' into tl/tll
2 parents 0787acc + 0b83600 commit dd703cc

File tree

1 file changed

+43
-26
lines changed

1 file changed

+43
-26
lines changed

draft-ietf-oauth-status-list.md

Lines changed: 43 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,31 @@ author:
2424
email: chris.bormann@gmx.de
2525

2626
normative:
27-
RFC7519: RFC7519
28-
RFC8392: RFC8392
29-
RFC3986: RFC3986
3027
RFC1950: RFC1950
3128
RFC1951: RFC1951
32-
RFC7515: RFC7515
29+
RFC2046: RFC2046
30+
RFC3986: RFC3986
3331
RFC6125: RFC6125
32+
RFC6838: RFC6838
33+
RFC7515: RFC7515
34+
RFC7519: RFC7519
35+
RFC8152: RFC8152
36+
RFC8259: RFC8259
37+
RFC8392: RFC8392
38+
RFC8949: RFC8949
3439
RFC9110: RFC9110
3540
RFC9111: RFC9111
36-
IANA.JWT: IANA.JWT
41+
SDJWTVC: I-D.ietf-oauth-sd-jwt-vc
42+
IANA.JWT:
43+
author:
44+
org: "IANA"
45+
title: "Media Types"
46+
target: "https://www.iana.org/assignments/media-types/media-types.xhtml"
47+
IANA.MediaTypes:
48+
author:
49+
org: "IANA"
50+
title: "JSON Web Token Claims"
51+
target: "https://www.iana.org/assignments/jwt/jwt.xhtml"
3752
informative:
3853
RFC6749: RFC6749
3954
RFC7662: RFC7662
@@ -54,7 +69,7 @@ This document defines a Status List and its representations in JSON and CBOR for
5469

5570
An example for the usage of a Status List is to manage the status of issued access tokens as defined in section 1.4 of {{RFC6749}}. Token Introspection {{RFC7662}} defines another way to determine the status of an issued access token, but it requires the party trying to validate an access tokens status to directly contact the token issuer, whereas the mechanism defined in this specification does not have this limitation.
5671

57-
Another possible use case for the Status List is to express the status of verifiable credentials (Referenced Tokens) issued by an issuer in the Issuer-Holder-Verifier model.
72+
Another possible use case for the Status List is to express the status of verifiable credentials (Referenced Tokens) issued by an Issuer in the Issuer-Holder-Verifier model {{SDJWTVC}}.
5873
The following diagram depicts the basic conceptual relationship.
5974

6075
~~~ ascii-art
@@ -117,7 +132,7 @@ Status List Token:
117132
: A token in JWT or CWT representation that contains a cryptographically secured Status List.
118133

119134
Referenced Token:
120-
: A token in JWT or CWT representation which contains a reference to a Status List or Status List Token. The information from the contained Status List may give a Relying Party additional information about up-to-date status of the Referenced Token.
135+
: A cryptographically secured data structure which contains a reference to a Status List or Status List Token. It is RECOMMENDED to use JSON {{RFC8259}} or CBOR {{RFC8949}} for representation of the token and secure it using JSON Object Signing as defined in {{RFC7515}} or CBOR Object Signing and Encryption as defined in {{RFC8152}}. The information from the contained Status List may give a Relying Party additional information about up-to-date status of the Referenced Token.
121136

122137
# Status List {#status-list}
123138

@@ -200,7 +215,7 @@ The following content applies to the JWT Header:
200215

201216
The following content applies to the JWT Claims Set:
202217

203-
* `iss`: REQUIRED. The `iss` (issuer) claim MUST specify a unique string identifier for the entity that issued the Status List Token. In the absence of an application profile specifying otherwise, compliant applications MUST compare issuer values using the Simple String Comparison method defined in Section 6.2.1 of {{RFC3986}}. The value MUST be equal to that of the `iss` claim contained within the Referenced Token.
218+
* `iss`: REQUIRED when also present in the Referenced Token. The `iss` (issuer) claim MUST specify a unique string identifier for the entity that issued the Status List Token. In the absence of an application profile specifying otherwise, compliant applications MUST compare issuer values using the Simple String Comparison method defined in Section 6.2.1 of {{RFC3986}}. The value MUST be equal to that of the `iss` claim contained within the Referenced Token.
204219
* `sub`: REQUIRED. The `sub` (subject) claim MUST specify a unique string identifier for the Status List Token. The value MUST be equal to that of the `uri` claim contained in the `status_list` claim of the Referenced Token.
205220
* `iat`: REQUIRED. The `iat` (issued at) claim MUST specify the time at which the Status List Token was issued.
206221
* `exp`: OPTIONAL. The `exp` (expiration time) claim, if present, MUST specify the time at which the Status List Token is considered expired by its issuer.
@@ -231,15 +246,15 @@ TBD
231246

232247
## Status Claim {#status-claim}
233248

234-
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.
249+
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.
235250

236251
## Referenced Token in JWT Format {#referenced-token-jwt}
237252

238253
The Referenced Token MUST be encoded as a "JSON Web Token (JWT)" according to {{RFC7519}}.
239254

240255
The following content applies to the JWT Claims Set:
241256

242-
* `iss`: REQUIRED. The `iss` (issuer) claim MUST specify a unique string identifier for the entity that issued the Referenced Token. In the absence of an application profile specifying otherwise, compliant applications MUST compare issuer values using the Simple String Comparison method defined in Section 6.2.1 of {{RFC3986}}. The value MUST be equal to that of the `iss` claim contained within the referenced Status List Token.
257+
* `iss`: REQUIRED when also present in the Status List Token. The `iss` (issuer) claim MUST specify a unique string identifier for the entity that issued the Referenced Token. In the absence of an application profile specifying otherwise, compliant applications MUST compare issuer values using the Simple String Comparison method defined in Section 6.2.1 of {{RFC3986}}. The value MUST be equal to that of the `iss` claim contained within the referenced Status List Token.
243258
* `status`: REQUIRED. The `status` (status) claim MUST specify a JSON Object that contains at least one reference to a status mechanism.
244259
* `status_list`: REQUIRED when the status list mechanism defined in this specification is used. It contains a reference to a Status List or Status List Token. The object contains exactly two claims:
245260
* `idx`: REQUIRED. The `idx` (index) claim MUST specify an Integer that represents the index to check for status information in the Status List for the current Referenced Token. The value of `idx` MUST be a non-negative number, containing a value of zero or greater.
@@ -399,7 +414,7 @@ TODO elaborate on status list only providing the up-to date/latest status, no hi
399414

400415
## Issuer tracking and Herd Privacy {#privacy-issuer}
401416

402-
The main privacy consideration for a Status List, especially in the context of the Issuer-Holder-Verifier model, is to prevent the Issuer from tracking the usage of the Referenced Token when the status is being checked. If an Issuer offers status information by referencing a specific token, this would enable him to create a profile for the issued token by correlating the date and identity of Relying Parties, that are requesting the status.
417+
The main privacy consideration for a Status List, especially in the context of the Issuer-Holder-Verifier model {{SDJWTVC}}, is to prevent the Issuer from tracking the usage of the Referenced Token when the status is being checked. If an Issuer offers status information by referencing a specific token, this would enable him to create a profile for the issued token by correlating the date and identity of Relying Parties, that are requesting the status.
403418

404419
The Status List approaches these privacy implications by integrating the status information of many Referenced Tokens into the same list. Therefore, the Issuer does not learn for which Referenced Token the Relying Party is requesting the Status List. The privacy of the Holder is protected by the anonymity within the set of Referenced Tokens in the Status List, also called herd privacy. This limits the possibilities of tracking by the Issuer.
405420

@@ -480,9 +495,9 @@ Specification Document(s):
480495

481496
## Media Type Registration
482497

483-
This section requests registration of the following media types [@RFC2046] in
484-
the "Media Types" registry [@IANA.MediaTypes] in the manner described
485-
in [@RFC6838].
498+
This section requests registration of the following media types {{RFC2046}} in
499+
the "Media Types" registry{{IANA.MediaTypes}} in the manner described
500+
in {{RFC6838}}.
486501

487502
To indicate that the content is an JSON-based Status List:
488503

@@ -491,10 +506,10 @@ To indicate that the content is an JSON-based Status List:
491506
* Required parameters: n/a
492507
* Optional parameters: n/a
493508
* Encoding considerations: binary; A JSON-based Status List is a JSON Object.
494-
* Security considerations: See (#Security) of [[ this specification ]]
509+
* Security considerations: See (#Security) of \[ this specification \]
495510
* Interoperability considerations: n/a
496-
* Published specification: [[ this specification ]]
497-
* Applications that use this media type: Applications using [[ this specification ]] for updated status information of tokens
511+
* Published specification: \[ this specification \]
512+
* Applications that use this media type: Applications using \[ this specification \] for updated status information of tokens
498513
* Fragment identifier considerations: n/a
499514
* Additional information:
500515
* File extension(s): n/a
@@ -513,10 +528,10 @@ To indicate that the content is an JWT-based Status List:
513528
* Required parameters: n/a
514529
* Optional parameters: n/a
515530
* Encoding considerations: binary; A JWT-based Status List is a JWT; JWT values are encoded as a series of base64url-encoded values (some of which may be the empty string) separated by period ('.') characters.
516-
* Security considerations: See (#Security) of [[ this specification ]]
531+
* Security considerations: See (#Security) of \[ this specification \]
517532
* Interoperability considerations: n/a
518-
* Published specification: [[ this specification ]]
519-
* Applications that use this media type: Applications using [[ this specification ]] for updated status information of tokens
533+
* Published specification: \[ this specification \]
534+
* Applications that use this media type: Applications using \[ this specification \] for updated status information of tokens
520535
* Fragment identifier considerations: n/a
521536
* Additional information:
522537
* File extension(s): n/a
@@ -535,10 +550,10 @@ To indicate that the content is an CBOR-based Status List:
535550
* Required parameters: n/a
536551
* Optional parameters: n/a
537552
* Encoding considerations: binary; A CBOR-based Status List is a CBOR Object.
538-
* Security considerations: See (#Security) of [[ this specification ]]
553+
* Security considerations: See (#Security) of \[ this specification \]
539554
* Interoperability considerations: n/a
540-
* Published specification: [[ this specification ]]
541-
* Applications that use this media type: Applications using [[ this specification ]] for updated status information of tokens
555+
* Published specification: \[ this specification \]
556+
* Applications that use this media type: Applications using \[ this specification \] for updated status information of tokens
542557
* Fragment identifier considerations: n/a
543558
* Additional information:
544559
* File extension(s): n/a
@@ -557,10 +572,10 @@ To indicate that the content is an CWT-based Status List:
557572
* Required parameters: n/a
558573
* Optional parameters: n/a
559574
* Encoding considerations: binary;
560-
* Security considerations: See (#Security) of [[ this specification ]]
575+
* Security considerations: See (#Security) of \[ this specification \]
561576
* Interoperability considerations: n/a
562-
* Published specification: [[ this specification ]]
563-
* Applications that use this media type: Applications using [[ this specification ]] for updated status information of tokens
577+
* Published specification: \[ this specification \]
578+
* Applications that use this media type: Applications using \[ this specification \] for updated status information of tokens
564579
* Fragment identifier considerations: n/a
565580
* Additional information:
566581
* File extension(s): n/a
@@ -613,7 +628,9 @@ for their valuable contributions, discussions and feedback to this specification
613628
-02
614629

615630
* add ttl claim to Status List Token to convey caching
631+
* relax requirements on referenced token
616632
* clarify Deflate / zlib compression
633+
* make a reference to the Issuer-Holder-Verifier model of SD-JWT VC
617634

618635
-01
619636

0 commit comments

Comments
 (0)