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
Copy file name to clipboardExpand all lines: draft-ietf-oauth-status-list.md
+83-5
Original file line number
Diff line number
Diff line change
@@ -48,6 +48,7 @@ normative:
48
48
RFC8949: RFC8949
49
49
RFC9052: RFC9052
50
50
RFC9110: RFC9110
51
+
RFC5280: RFC5280
51
52
RFC9596: RFC9596
52
53
IANA.MediaTypes:
53
54
author:
@@ -854,6 +855,22 @@ The following is a non-normative example for media type `application/json`:
854
855
}
855
856
~~~
856
857
858
+
# X.509 Certificate Extensions
859
+
860
+
## Extended Key Usage Extension {#eku}
861
+
862
+
{{RFC5280}} specifies the Extended Key Usage (EKU) X.509 certificate extension for use on end entity certificates. The extension indicates one or more purposes for which the certified public key is valid. The EKU extension can be used in conjunction with the Key Usage (KU) extension, which indicates the set of basic cryptographic operations for which the certified key may be used.
863
+
864
+
The following OID is defined for usage in the EKU extension
The Status List as defined in [](#status-list) only exists in cryptographically secured containers which allows checking the integrity and origin without relying on other aspects like transport security (e.g., the web PKI).
@@ -870,9 +887,50 @@ A Status List Token in the JWT format should follow the security considerations
870
887
871
888
A Status List Token in the CWT format should follow the security considerations of {{RFC8392}}.
872
889
873
-
## MAC-secured Status Lists
890
+
## Key Resolution and Trust Management {#key-management}
891
+
892
+
This specification does not mandate specific methods for key resolution and trust management, however the following recommendations are made:
893
+
894
+
If the Issuer of the Referenced Token is the same entity as the Status Issuer, then the same key that is embedded into the Referenced Token may be used for the Status List Token. In this case the Status List Token may use:
895
+
- the same `x5c` value or an `x5t`, `x5t#S256` or `kid` parameter referencing to the same key as used in the Referenced Token for JOSE.
896
+
- the same `x5chain` value or an `x5t` or `kid` parameter referencing to the same key as used in the Referenced Token for COSE.
897
+
898
+
Alternatively, the Status Issuer may use the same web-based key resolution that is used for the Referenced Token. In this case the Status List Token may use:
899
+
- an `x5u`, `jwks`, `jwks_uri` or `kid` parameter referencing to a key using the same web-based resolution as used in the Referenced Token for JOSE.
900
+
- an `x5u` or `kid` parameter referencing to a key using the same web-based resolution as used in the Referenced Token for COSE.
901
+
902
+
~~~ ascii-art
903
+
┌────────┐ host keys ┌──────────────────────┐
904
+
│ Issuer ├────────┬───►│ .well-known metadata │
905
+
└─┬──────┘ │ └──────────────────────┘
906
+
▼ update status │
907
+
┌───────────────┐ │
908
+
│ Status Issuer ├─┘
909
+
└─┬─────────────┘
910
+
▼ provide Status List
911
+
┌─────────────────┐
912
+
│ Status Provider │
913
+
└─────────────────┘
914
+
~~~
915
+
If the Issuer of the Referenced Token is a different entity than the Status Issuer, then the keys used for the Status List Token may be cryptographically linked, e.g. by an Certificate Authority through an x.509 PKI. The certificate of the Issuer for the Referenced Token and the Status Issuer should be issued by the same Certificate Authority and the Status Issuer's certificate should utilize [extended key usage](#eku).
874
916
875
-
This specification allows for both cryptographic signatures and message authentication codes (MAC) to secure a Status List Token. For (H)MAC based deployments, the security implications of a shared secret should be understood and should match the general security considerations of the deployment. There usually exists a stronger relationship between RP and Issuer for such deployments and they have the capability to securely distribute a shared secret ouf of band.
917
+
~~~ ascii-art
918
+
┌───────────────────────┐
919
+
│ Certificate Authority │
920
+
└─┬─────────────────────┘
921
+
│ authorize
922
+
│ ┌────────┐
923
+
├─►│ Issuer │
924
+
│ └─┬──────┘
925
+
│ ▼ update status
926
+
│ ┌───────────────┐
927
+
└─►│ Status Issuer │
928
+
└─┬─────────────┘
929
+
▼ provide Status List
930
+
┌─────────────────┐
931
+
│ Status Provider │
932
+
└─────────────────┘
933
+
~~~
876
934
877
935
## Status List Caching
878
936
@@ -961,11 +1019,11 @@ To avoid privacy risks for colluding Relying Parties, it is RECOMMENDED that Iss
961
1019
962
1020
A Status Issuer and a Relying Party Issuer may link two transaction involving the same Referenced Tokens by comparing the status claims of the Referenced Token and therefore determine that they have interacted with the same Holder. It is therefore recommended to use Status Lists for Referenced Token formats that have similar unlinkability properties.
963
1021
964
-
## Third-Party Hosting {#third-party-hosting}
1022
+
## External Status Provider for Privacy {#third-party-hosting}
965
1023
966
-
If the roles of the Issuer and the Status Provider are performed by two different entities, this may give additional privacy assurances as the Issuer has no means to identify the Relying Party or its request.
1024
+
If the roles of the Status Issuer and the Status Provider are performed by different entities, this may give additional privacy assurances as the Issuer has no means to identify the Relying Party or its request.
967
1025
968
-
Third-Party hosting may also allow for greater scalability, as the Status List Tokens may be served by operators with greater resources, like CDNs.
1026
+
Third-Party hosting may also allow for greater scalability, as the Status List Tokens may be served by operators with greater resources, like CDNs, while still ensuring authenticity and integrity of Token Status List, as it is signed by the Status Issuer.
969
1027
970
1028
## Historical Resolution {#privacy-historical}
971
1029
@@ -1000,6 +1058,19 @@ The Status List Issuer may increase the size of a Status List if it requires ind
1000
1058
1001
1059
The Status List Issuer may chunk its Referenced Tokens into multiple Status Lists to reduce the transmission size of an individual Status List Token. This may be useful for setups where some entities operate in constrained environments, e.g. for mobile internet or embedded devices. The Status List Issuer may chunk the Status List Tokens depending on the Referenced Token's expiry date to align their lifecycles and allow for easier retiring of Status List Tokens, however the Status Issuer must be aware of possible privacy risks due to correlations.
1002
1060
1061
+
## External Status Issuer
1062
+
1063
+
If the roles of the Issuer of the Referenced Token and the Status Issuer are performed by different entities, this may allow for use case that require revocations of Referenced Tokens to be managed by a different entities, e.g. for regulatory or privacy reasons. In this scenario both parties must align on:
1064
+
1065
+
- the key and trust management as described in [](#key-management)
1066
+
- parameters for the Status List
1067
+
- number of `bits` for the Status Type as described in [](#status-list)
1068
+
- update cycle of the Issuer used for `ttl` in the Status List Token as described in [](#status-list-token)
1069
+
1070
+
## External Status Provider for Scalability
1071
+
1072
+
If the roles of the Status Issuer and the Status Provider are performed by different entities, this may allow for greater scalability, as the Status List Tokens may be served by operators with greater resources, like CDNs. At the same time the authenticity and integrity of Token Status List is still guaranteed, as it is signed by the Status Issuer.
1073
+
1003
1074
## Relying Parties avoiding correlatable Information
1004
1075
1005
1076
If the Relying Party does not require the Referenced Token and the Status List Token after the presentation, e.g. for subsequent status checks or audit trail, it is RECOMMENDED to delete correlatable information, in particular:
@@ -1302,6 +1373,10 @@ To indicate that the content is an CWT-based Status List:
1302
1373
* Change controller: IETF
1303
1374
* Provisional registration? No
1304
1375
1376
+
## X.509 Certificate Extended Key Purpose OID Registration
1377
+
1378
+
IANA is also requested to register the following OID "1.3.6.1.5.5.7.3.TBD" in the "SMI Security for PKIX Extended Key Purpose" registry (1.3.6.1.5.5.7.3), this OID is defined in section [](#eku).
1379
+
1305
1380
--- back
1306
1381
1307
1382
# Acknowledgments
@@ -1712,6 +1787,9 @@ CBOR encoding:
1712
1787
1713
1788
-07
1714
1789
1790
+
* add considerations about External Status Issuer or Status Provider
1791
+
* add recommendations for Key Resolution and Trust Management
1792
+
* add extended key usage extensions for x509
1715
1793
* Relying Parties avoiding correlatable Information
1716
1794
* editorial changes on terminology and Referenced Tokens
1717
1795
* clarify privacy consideration around one time use reference tokens
0 commit comments