Skip to content

profile Trust Marks for wallet authorization instead of restating Federation - #71

Open
peppelinux wants to merge 15 commits into
mainfrom
tm1
Open

peppelinux wants to merge 15 commits into
mainfrom
tm1

Conversation

@peppelinux

Copy link
Copy Markdown
Member

This PR resolves #66 by profiling Trust Marks for wallet ecosystems rather than dropping section 7.4 or repeating OpenID Federation.

Typical uses are about Credential Issuer entitlement, Credential Verifier authorization, Wallet Provider assurance.

If a Trust Framework requires a Trust Mark, it MUST be verified and MUST block the transaction when missing, expired, or revoked.

Co-authored-by: Michael B. Jones <michael_b_jones@hotmail.com>

@samuelmr samuelmr left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please consider the feedback in the comments

Comment thread openid-federation-wallet-1_0.md Outdated
Comment on lines +598 to +601
Profiles MAY convey `dcql_queries`-related constraints using Trust Marks bound
to a Credential Verifier, in addition to or instead of `metadata` and
`metadata_policy`, when the Trust Framework defines how those marks are
interpreted.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This may seem like a simple statement, but I'm worried about the implementation details. If the client resolving the trust needs to search for dcql_queries in subordinate statements and trust marks, the specification should clearly define the expected behaviour when a trust mark and a subordinate statement conflict.

In my opinion, we should leave the constraints-in-trust-marks feature out for now.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@peppelinux, hat's the syntax for conveying these constraints? I don't think the PR says. What's an example, maybe?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure I really understand what the purpose of conveying DCQL-related constraints in trust marks is. An example, and an explanation of the interaction between multiple constraints in particular, would be helpful.

Comment thread openid-federation-wallet-1_0.md Outdated
When a Trust Framework requires a Trust Mark for a transaction, the Entity
evaluating trust MUST verify that Trust Mark as specified in
[@!OpenID.Federation], including signature validation and status checks, and
MUST NOT complete that transaction if a required Trust Mark is missing, expired,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MUST NOT is a strong requirement.

Compared with how eIDAS wallet-relying party registration certificates work, they should present a warning that the user can override.

One may argue that that's not strictly "When a Trust Framework requires a Trust Mark for a transaction", but the current wording leads to ambiguity in cases where Trust Marks are defined and used in a Trust Framework, and the verifier is required to present their trust marks, but a trust mark is not strictly "required for a transaction".

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you mean by "the verifier is required to present their trust marks", @samuelmr? Are you talking about a requirement to display them to the end-user somehow?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm thinking about a Trust Framework that would state something like the following in its rulebook: "If the verifier of digital credentials holds an 'Ethical Data User' trust mark, the verifier shall advertise that trust mark in its entity configuration so that a wallet can verify it and display it to the wallet user."

The main point is that trust evaluation is not always fully automated. Sometimes, it's an evaluation that a person makes based on the information available. The Wallet Architectures spec should also cater for the latter cases.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree the overridable cases are real e.g. eudi. My concern is the proposed fix. Replacing MUST NOT complete with the "trust framework decides" pushes the abort-vs-warn signal out of the protocol into a human-readable language and loses the deterministic machine-readable behaviour that will be needed for unattended/agentic flows. There should be an option to express it in a deterministic, machine-readable way that it is critical.

I also see a granularity issue, i.e. we can take into account that there may be a couple of trust marks associated with the verifier with different queries inside to indicate different behaviour for the presentation of more and less sensitive credentials and how to manage potential conflicts and overlaps.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree that unfortunately we will need to replace the MUST NOT with some optionality since ecosystems have already decided they want to allow that. I agree with @lj-raidiam that the optionality should be machine-parseable; not only for unattended flows, but also to make the UX easier to implement without a lot of ecosystem-specific code.

selfissued and others added 9 commits September 25, 2026 18:05
removed unused trust-model taxonomy from Terminology
Co-authored-by: fmarino-ipzs <77629526+fmarino-ipzs@users.noreply.github.com>
Co-authored-by: fmarino-ipzs <77629526+fmarino-ipzs@users.noreply.github.com>
chore: clarify that Wallet Instance types do not change federation processing
expand example 1 openid_credential_verifier metadata
@peppelinux

Copy link
Copy Markdown
Member Author

I read all the comments and I agreed with them all, the result I propose is brought in this commit 0436641

@peppelinux

Copy link
Copy Markdown
Member Author

@fmarino-ipzs I'd ask your review before the final approval

@fkj fkj left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally looks fine to me, but one nit.

"format": "dc+sd-jwt",
"meta": {
"vct_values": [
"urn:eudi:pid:1"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should perhaps use a more example-like value instead of something that "looks" like an EUDI PID?

This branch was successfully deployed

1 active deployment
github-pages — 1aa1e998 Deployed Oct 2, 2026 by peppelinux via build-and-deploy #150
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add normative profiling of Trust Marks or drop 7.4

5 participants