-
Notifications
You must be signed in to change notification settings - Fork 12
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
how cnf claim can be used with any other types of "binding" #145
Comments
That is similar to the holder binding proposal in W3C that @paulbastian and myself authored. I'm wondering if you would expect Questions:
Regarding your example, I think there is no reason to have the What about the following?
Note that OR
OR
Note that the approach above uses a similar extensibility model to |
@awoie I created that example based on you proposal ;-) Have you implemented any of the proposed options? I'm asking since I have come to the conclusion that it is to pre-mature to standardize the representation of bindings. I would like to see more requirements, concrete use cases and implementations before. |
We have only an implementation based on the W3C VCDM. Back then we used the binding in the VP actually. So, no, we don't have an implementation. |
@Sakurann what do you want to have changed, or was this just a question and we can we close this issue? |
We had a Session on this topic at IIW#37. In my opinion, the Lets take an example as a diploma. The trivial data model could look like: {
"title" : "Master of Science in Physics",
"grade" : "excellent",
"given_name" : "Erika",
"family_name" : "Mustermann",
"date_of_birth" : "1970-01-01"
} However, this does not communicate which claims are "actually" about the diploma and which ones the diploma issuer used to authenticate the subject and are intended for a relying party to validate user binding of the diploma. The fact that firstname, lastname and birthdate are used for "binding" the diploma is just common human knowledge but not explicitly communicated, the semantic meaning is missing. A simple approach therefore could be: {
"title" : "Master of Science in Physics",
"grade" : "excellent",
"cbb" : {
"given_name" : "Erika",
"family_name" : "Mustermann",
"date_of_birth" : "1970-01-01"
}
} Other approaches inside
|
I know we discussed this in our paper but can we summarize what we want to achieve @Sakurann @paulbastian. Is this about specifying how the RP wants to verify the holder authenticated the transaction? |
IMO, |
I would frame it as "give the RP guidance on how to verify legitimate ownership of the credential". RPs are free to do whatever, they may also ignore a My main argument is that the key for keybinding could be in any random claim, but people chose to standardize what the issuer of a token intended to be used for verification. There is no difference to claim-based binding. Our intuition that name, surname, date of birth on a diploma shall be used for binding or totally arbitrary despite seeming "common knowledge". I believe many Issuers will want to use claim-based binding as this is a 1:1 match of what they have been doing with physical documents and it would mean little changes to their processes, so this is actually very important. Same for biometric binding, e.g. mdL portrait like. How can we move this forward? |
Do we need a separate IETF Draft for biometric+claim-based bindings in JWT or shall this go in here? |
A Draft was proposed at OAuth Security Workshop 2024, showing the examples above, advice was more in this direction: {
"title" : "Master of Science in Physics",
"grade" : "excellent",
"given_name" : "Erika",
"family_name" : "Mustermann",
"date_of_birth" : "1970-01-01",
"cbb" : [ "given_name", "family_name", "date_of_birth" ]
} Discussion was around whether things should be in policies or metadata, a good argument for this approach/putting it into the JWT is that data available to the Issuer for binding may not always be the same based on the quality of his user database. The approach would work really well for countries like Estonia that have a unique national identifier in the PID. {
"title" : "Master of Science in Physics",
"grade" : "excellent",
"given_name" : "Erika",
"family_name" : "Mustermann",
"some-memberstate.eu/credentials/schemas/pid/national_id" : "572047251836",
"cbb" : [ "some-memberstate.eu/credentials/schemas/pid/national_id" ]
} |
FYI, I created in issue in eKYC-IDA to see if there is some overlap: https://bitbucket.org/openid/ekyc-ida/issues/1414/discuss-a-way-to-express-binding-claims |
WDYT about using an object like
example
this may open the possibility to specify other types, like |
I believe @paulbastian is working on a proposal. |
I am not convinced this should be in the JWT itself or that this spec is the appropriate place to define such a thing. Having said that, something like the |
cross comment from openid/OpenID4VP#161 -> This is a somewhat tangential friendly reminder that the cnf claim specified in Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs) is strictly about representing a proof-of-possession key and is therefore entirely inappropriate as a means of conveying 'claims based binding'. |
I talked to Mark Haine today and during the call we identified two ways to stretch the ekyc-IDA spec a bit: ① Introduce a new element {
"iss": "https://server.example.com",
"exp": 1544645174,
"given_name": "Max",
"family_name": "Mustermann",
"verified_claims": {
"verification": {
"trust_framework": "example"
},
"claims_ptrs": [
["given_name"],
["family_name"]
]
}
} ② Define a new special "claim" (like {
"iss": "https://server.example.com",
"exp": 1544645174,
"given_name": "Max",
"family_name": "Mustermann",
"verified_claims": {
"verification": {
"trust_framework": "example"
},
"claims": {
"_ptrs": [
["given_name"],
["family_name"]
]
}
}
} |
like biometrics-based binding
Torsten started with this example in this PR in sd-jwt repo but i do not think it's viable anymore:
The text was updated successfully, but these errors were encountered: