-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Which keys should be used to sign and verify Status List Tokens ? #227
Comments
The rationale currently states that "the specification shall not specify key resolution or trust frameworks". There are many different mechanisms that the different ecosystems use to verify tokens. We expect this to be defined in the environment that uses the status list (and likely re-use existing mechanisms). Some options we have seen are:
We could be more explicit in that regard in the implementation considerations? |
You wrote:
It is as if you were writing:
:-) As currently described, the Status List Token cannot be verified. To draw a parallel with OCSP, in RFC 6960, the roles of the CA and of the OCSP Responder are crystal clear. When the List Issuer is different from the Issuer, what kind of information should be exchanged between these two entities ? You wrote:
|
In section 5 (Status List Token) the text states:
This sentence does not state which key should be used to sign or to verity the Status List Token.
Using JOSE, the "iss" (issuer) claim identifies the principal that issued the JWT. The iss" claim is not present in the list of claims from section 5.1 (Status List Token in JWT Format).
Section 8.3 which is about "Validation Rules" states:
However, in section 7.2 from RFC 7519, the single "occurrence of "iss" is in the following sentence:
The text does not say that the content of "iss" claim shall be used and does not specific against which value it shall match.
Let us make a parallel with OCSP, section 4.2.2.2 from RFC 6960 which states:
There is no similar text in the draft. It is thus assumed that the signer of the Status List Tokens are the Issuers and not the List Issuers.
From a security point of view, using two different entities is better because the key used by the Issuer to issue Referenced Tokens does not need to be communicated or exposed to the Status Issuer. If the Status Issuer sends to the Issuer hash values to be signed by the Issuer, the risk would be that the hash value to be signed does not correspond to a Status List Token but to Referenced Token.
RFC 2560 has been replaced by RFC 6960 precisely to solve the issue of using the same key for two different purposes.
If the keys are different, this indeed complexiflies the PKI, but this path has already be opened when drafting OCSP in particular by defining id-kp-OCSPSigning in an extended key usage certificate extension.
If the List Issuer would use its own key to sign, then it makes sense to consider it as an entity which is different from the Issuer, otherwise it doesn't.
There would be other consequences to consider like 4.2.2.2.1. Revocation Checking of an Authorized Responder.
What about an extended key usage certificate extension that would be called id-kp-TSLSigning ?
The text was updated successfully, but these errors were encountered: