Closed peppelinux closed 3 weeks ago
Since we are implementing a Credential Verifier solution, we only need to focus on the way the RP establishes trust with the issuers of the vp tokens, once it obtains them.
This bringsup the evidence that the trust evaluation from the credential verifier perspective starts from the signed tokens provided by the Wallets.
Once the credentila verifier has obtained a token it must met the following steps:
Identification of the Token Issuer
iss
using JWT.Retrieval of Cryptographic Material for the Issuer
/.well-known/jwt-vc-issuer
; see x5c
parameter: within the JWT protected header /.well-known/openid-federation
and collecting the entire trust chain untill the final metadata being processed.trust_chain
within the JWT header parameterSelection of the Appropriate Key from the Available Set for this Token
kid
OR x5c
(optionally also DID).kid
alone.Verification that the Retrieved Key is Trusted
x5c
, otherwise direct trust identified with kid
(i.e., assumed fetched metadata containing jwks as trusted).Identification of Root of Trust (Required only in models where a third-party trust exists, hence not needed in the case of direct trust.)
For milestone 0.9 we only wants to have direct trust using sd-jwt-vc, the already implemented part using federation and x.509 can be moved in a component not necessarly for cross-border interop events at this stage.
generally the order in which the trust components are defined might represent the order of priority in processing and discoverying trust with an entity
An observation: in the trust layer generalization we can't "just" remove or leave as optional the federation configuration because currently those configuration are also used to publish (trusted?) verifier metadata in the /.well-known/openid-federation
endpoint.
IMO we should either:
according with the refactor of the trust layer, federation would be necessarly optional
direct trust would be the default one.
@PascalDR FYI
Requirements
Implementers ...
Point 1
The current satosa backend configuration is OpenID Federation driven, see below:
We should generalize in this way