Skip to content
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

[PID/(Q)EAA - SD-JWT parameters ] trust chain #259

Closed
pietroACN opened this issue Apr 15, 2024 · 8 comments · Fixed by #434
Closed

[PID/(Q)EAA - SD-JWT parameters ] trust chain #259

pietroACN opened this issue Apr 15, 2024 · 8 comments · Fixed by #434
Assignees
Labels
has-pr question Further information is requested
Milestone

Comments

@pietroACN
Copy link

Here the parameter "trust_chain" is described as " JSON array containing the trust chain that proves the reliability of the issuer of the JWT. " Link

This parameter doesn't need to identify the whole trust chain but could contain only the identifier (iss) related to the corresponding Issuer. This ID can be obtained by the federation going through the Issuer Trust Chain.

@fmarino-ipzs
Copy link
Collaborator

The trust_chain parameter usage aligns with Federation 1.0. Including the entire trust chain allows static verification in cases of absent connectivity.

@peppelinux
Copy link
Member

@pietroACN the trust chain jws header parameter allows a trust path that simplifies the trust discovery

a trust chain can be fastly updated without any discovery and also to check any revocation of its subject

while the issuer of the credential is identified within the credential using the claim iss, therefore it is already there, even without the static trust chain within the jws headers

@peppelinux peppelinux added the question Further information is requested label May 2, 2024
@peppelinux peppelinux added this to the 0.8.0 milestone May 13, 2024
@pietroACN
Copy link
Author

The trust_chain parameter usage aligns with Federation 1.0. Including the entire trust chain allows static verification in cases of absent connectivity.

Regardless of static verification, the entire trust chain, from cybersecurity point of view, cannot be simply trusted as provided.
There should be a Trust List.
This list is necessary for the verifier to check that, at least the trust anchor used signatures (confirmation methods) are linked to the root authority.

@pietroACN
Copy link
Author

@pietroACN the trust chain jws header parameter allows a trust path that simplifies the trust discovery

a trust chain can be fastly updated without any discovery and also to check any revocation of its subject

while the issuer of the credential is identified within the credential using the claim iss, therefore it is already there, even without the static trust chain within the jws headers

@peppelinux the 'iss' is simply a string that anyone can set. This is not enough to ensure that who's issuing this has any connection with such entity. I need to be sure that kid used is bound to the entity named in 'iss' claim

@peppelinux
Copy link
Member

a trust chain is made with attributes and cryptographic bindings, therefore an adversary cannot invent or use an iss.

the kid must match with one of the federation entity keys included in both the entity configuration and its superior's subordinate statements regarding the leaf.

@peppelinux peppelinux modified the milestones: 0.8.0, 0.8.1 Jun 12, 2024
@pietroACN
Copy link
Author

The trust chain presence in the header is required to enable offline verification at the condition that the verifier itself has access to root anchors proofs (e.g. public keys) 'locally' (thus without the need of looking up online at this purpose).
Naturally this offline capability from verifier side must be allowed only for a short period of time (e.g. 24hours) to minimize issues related to possible anchor proofs revocations.
The trust chain into the header has a side effect to increase size and complexity of data, that will be needed to be replicated into each attestation, whether the verification happens online or offline.
I would suggest that the trust chain presence not to be mandatory: if it will be missed, offline verification will not be possible.

@peppelinux
Copy link
Member

the trust chain in the header enables the fgast renewal of the trust chain, using the source_endpoint parameter contained in each subordinate statement

therefore I suggest to include in the current specs also this section below

Trust Chain Fast Renewal

After detailing the federation discovery process, we now turn our attention to the Trust Chain Fast Renewal method. This approach offers a streamlined way to maintain the validity of a trust chain without undergoing the full discovery process again. It's particularly useful for quickly updating trust relationships when minor changes occur or when the trust chain is close to expiration but the overall structure of the federation hasn't changed significantly.

The Trust Chain Fast Renewal process is initiated by fetching the leaf's (RP's or OP's) entity configuration anew. However, unlike the federation discovery process that may involve fetching entity configurations starting from the authority hints, the fast renewal focuses on directly obtaining the subordinate statements. These statements are requested using the source_endpoint provided within them, which points to the location where the statements can be fetched.

SaraConsoliACN added a commit to SaraConsoliACN/eudi-wallet-it-docs that referenced this issue Jun 21, 2024
This commit aims to resolve the issue italia#259
peppelinux pushed a commit that referenced this issue Jun 26, 2024
* [PID/(Q)EAA - SD-JWT parameters ] trust chain

This commit aims to resolve the issue #259

* Apply suggestions from code review

Co-authored-by: fmarino-ipzs <77629526+fmarino-ipzs@users.noreply.github.com>

* Apply suggestions from code review

* Apply suggestions from code review

---------

Co-authored-by: Giuseppe De Marco <giuseppe.demarco@teamdigitale.governo.it>
Co-authored-by: fmarino-ipzs <77629526+fmarino-ipzs@users.noreply.github.com>
@peppelinux
Copy link
Member

This issues will be resolved with a PR introducing the mechanisms though which the out of band mechanisms to obtain the trust anchor's public cryptographic material must be implemented.

sush as eIDAS Trusted List.

@peppelinux peppelinux self-assigned this Oct 2, 2024
peppelinux pushed a commit that referenced this issue Oct 4, 2024
This PR resolves #259 adding also few editorial improvements along the section
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
has-pr question Further information is requested
Projects
Development

Successfully merging a pull request may close this issue.

3 participants