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

client_id value of the wallet during issuance #431

Open
Sakurann opened this issue May 13, 2023 · 8 comments · May be fixed by #441
Open

client_id value of the wallet during issuance #431

Sakurann opened this issue May 13, 2023 · 8 comments · May be fixed by #441
Assignees
Milestone

Comments

@Sakurann
Copy link
Collaborator

The text current wallet attestation draft says:

The JWT MUST contain a "sub" (subject) claim with a value corresponding to the "client_id" of the OAuth client.

the thing is.. when there has been no pre-existing relationship between the issuer and the wallet, which client_id value does the wallet uses..?

@Sakurann
Copy link
Collaborator Author

discussed with @tlodderstedt. sub is a self-attested value from the wallet front end to the wallet backend. the issuer does not really need to understand sub, more imp for audit trails and user consent.

@tlodderstedt tlodderstedt changed the title cient_id value of the wallet during issuance client_id value of the wallet during issuance May 16, 2023
@tlodderstedt
Copy link
Collaborator

@paulbastian what do you do in your current implementation?

@peppelinux
Copy link
Member

I suggest the jwk thumbprint value for the sub value (and consequently for the client_id in the issuance flow)

the sub will be always derived from the cnf.jwk, producing a privacy-preserving value since it would be like a kid

this proposal assumes that the wallet instance could only be tracked with its public key, considering that it should have/use more than a single key, the risk is mitigated

@tlodderstedt
Copy link
Collaborator

tlodderstedt commented May 23, 2023

The sub could just be set to a fix value per wallet provider (most likely sub==iss). This is sufficient for authorization and auditing and it is privacy preserving since the wallet instances cannot be identified.

@peppelinux
Copy link
Member

I'm not in favour of sub == iss since Wallet Provider and Wallet Instance are different subjects

the Wallet Provider (iss) issues the Wallet Instance Attestation to a Wallet Instance (sub), so these are definitively different

if we admit that the only way to identify/trace a wallet instance is exploiting the public key (used in Holder binding) ad that the Wallet Instance should have more than a key and obtain fresh documents with a different key, we may assume that the subject identifier if the key, that's not unique, and that from this it could be derived the sub value

@tlodderstedt
Copy link
Collaborator

In my mental model, the sub is the client id the wallet uses to perform authorization and auditing. I would assume that happens on the level of the wallet provider (or wallet product) but not on instance level.

@Sakurann
Copy link
Collaborator Author

Sakurann commented Dec 5, 2024

also should not this be addressed in VCI?

@Sakurann Sakurann transferred this issue from openid/oid4vc-haip Dec 13, 2024
@Sakurann Sakurann added this to the Final 1.0 milestone Dec 13, 2024
@Sakurann
Copy link
Collaborator Author

add a text that wallet provider picks a client_id value and it should be used by all wallet instances from privacy perspective

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants