-
Notifications
You must be signed in to change notification settings - Fork 13
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
Remove JWT references (keep SD-JWT) #149
Conversation
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Daniel Fett <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
but i think it needs to be made clearer that key binding JWT must not be present for media type vc-...+sd-jwt and must be present for media type vp-...+sd-jwt
Co-authored-by: Ted Thibodeau Jr <[email protected]>
I don't know about this... its probably a separate issue to tackle. In sd-jwt, making a presentation, does not require key binding, but if key binding is present... No "verifiable presentation" is even needed... This makes |
@awoie can you help address key binding with verifiable presentations? |
Co-authored-by: Ted Thibodeau Jr <[email protected]>
If SD-JWT is used with the serialisation presented in the specification, VP is unnecessary since an alternative representation of the VP exists (as introduced in the SD-JWT specs). However, the opposite is also true: when SD-JWT is used with VCs and VPs, novel SD-JWT serialisation is not needed. Everything can be covered with JOSE or DIP + VC/VP and _sd. Edit: Hence IMO the two approaches can co-exist and should be described. |
I think as long as the core spec has data integrity proof protected VPs, people will expect sd-jwt protected VPs. |
You can have SD-JWT-style selective disclosure and JOSE protection that works very nicely with VCs and VPs |
@alenhorvat this PR is basically removing W3C recommending anything but |
Only now I see JOSE has been removed. This goes against JAdES and what we're using. (JAdES defines a profile for JOSE) SD-JWT is fine, but I don't understand why JOSE has been removed. If JOSE can be re-added, it's fine, but now is a bit confusing: securing with JOSE -> SD-JWT |
@alenhorvat thanks for the review. I am opposed to registering several overlapping media types that do the same thing. JOSE covers JWT, JWS, JWE and SD-JWT in my opinion. VCs only need SD-JWT, and adding support for JWT would not work for JSON Serialized JAdES anyway. You can use PGP to sign JSON-LD, that does not make a v2 conformant verifiable credential. Similarly if you use something other than SD-JWT or COSE Sign1 to secure |
What we need is: https://code.europa.eu/ebsi/ecosystem/-/blob/EBIP-SD-JWT/drafts/draft-sd-jws.md |
You are asking for I don't feel that work is necessary, (and I don't like your recommendation, as written)... you can just do this:
If you plan to register If your primary objection to sd-jwt is the On the other side of this argument, we could add more media types to the W3C spec, specifically for JSON serialization of "secured verifiable credentials" those media types would end in
Current path is to not do that, and I hope its clear why. |
@alenhorvat another note after reading your spec:
This use case is already covered in the test suite. See https://github.com/w3c/vc-jose-cose-test-suite/blob/main/testcases/secured-vc-jwt-sd/spec.yaml#L9 It seems the text above is also out of date regarding transformations. As of today, both the payload with disclosures and its verified form can be https://github.com/w3c/vc-data-model/blob/main/contexts/credentials/v2#L62 |
Let's take one step back :) Sorry for the confusion Simple question: if vc+ld+json is protected with JWS (compact or JSON serialised) (not JWT, not SD-JWT with ~ and key binding) what media type extension should be added? (no selective disclosure or anything, just VC secured with JWS without adding JWT claims to the payload) https://www.rfc-editor.org/rfc/rfc7515 |
By definition, If that envelope also has a protected header that says The current proposal is for W3C to NOT call For the sake of a clear argument, I would call what you are asking for:
And to be clear, the W3C Verifiable Credentials working group does not recommend using them / doing what you are asking to do... If we wanted to recommend it, there would need to be a lot more spec text describing it in the document. |
JWT -> only compact serialised. Essentially, you're saying securing VCs with JAdES is impossible? (https://www.etsi.org/deliver/etsi_ts/119100_119199/11918201/01.01.01_60/ts_11918201v010101p.pdf) I don't understand what's the issue with +jose, +jose+json I'm happy to contribute and extend the specs to cover it if that's an issue. |
I'm saying, as of this comment, W3C VCWG is not saying anything about JAdES, and is only recommending SD-JWT and COSE Sign 1. That means JAdES is not a way to represent W3C JSON-LD based verifiable credentials.
Lets be clear on what you would be signing up for:
If you feel its possible to address these issues before this work item goes into CR, then I think its reasonable to hold you accountable to getting that work done, but it looks like a lot of work, and I don't have high confidence that it is "worth it"... cc @Sakurann @brentzundel Maybe a topic for you to address in person, its a bit late to be considering this kind of scope, but if the working group needs to run a fire drill for JAdES you will need to clear the way soon, or its not going to be possible to address. |
That should not be a problem
We can create a separate document addressing all the points, present it to the WG and see how it evolves. WDYT? wrt "worth it" -> CAdES, PAdES, and XAdES are three cross-border recognised signatures (across the whole EU) with the same legal recognition as a handwritten signature. JAdES is a JWS/JSON variant of *AdES. |
@alenhorvat Lets start by moving the discussion to a dedicated issue. If we are going to tackle JAdES in a W3C TR... we are really far behind on getting that to a "safe place", and some emergency powers might be required to get it done in time. If you have a chance to sync with chairs, I also suggest you do that. |
@alenhorvat, we have been discussing over a period of time, but SD-JWT as-is does support JSON serialization. maybe the design is not exactly what you have preferred, and that is why editors have been engaging separately to explain why certain design choices have been made. some of the topics raised should be fundamentally be addressed in sd-jwt spec, so that bottomline |
Hi @Sakurann. I understand, and SD-JWT serialisation is perfectly fine for use cases that
However, we have a lot of Legal Entity VCs that don't require selective disclosure and UC where natural person VCs don't require SD, and we need to protect them with plain JWS (JAdES). When doing SD-JWT and using VPs, the serialisations introduced in SD-JWT are not required. There are two options If you're open to a discussion, that would be great. Note that option a) is not an issue for us to document if b) is out of SD-JWT scope. |
Retracting based on discussions at TPAC. I'd misunderstood the
|
The issue was discussed in a meeting on 2023-09-14
View the transcript6.2. Remove JWT references (keep SD-JWT) (pr vc-jose-cose#149)See github pull request vc-jose-cose#149. Michael Jones: given that in ietf, there is work on sd-jwt that both allow an option with and without selective disclosure. editors felt that just using sd-jwt covers only jwts. Manu Sporny: this feels like a significant change in direction. Manu Sporny: using JWTs to secure has been a thing for a while. but now it looks like now using sd-jwts will be a must if one is trying to secure VCs using JOSE stack. Brent Zundel: i had a similar thoughts. comments in this PR seemed that SD-JWT is a superset of a JWT so it is possible to have a JWT with or without SD components.
Brent Zundel: my concern with this concern is similar to the concerns for BBS - whether sd-jwt is in a state where we can refer to it normatively. Michael Jones: what we a doing is changing a media type, there is no normative reference to sd-jwt ietf draft. Manu Sporny: that does not answer the question. in order to use sd-jwt, you have to put normative changes to it.
Manu Sporny: several implementers using vc-jwt as defined in vcdm 1.1 who might be surprised with this change.
Michael Jones: disagree with the characterization that we are taking away the option to use JWTs that is in scope - we are only removing largely duplicative option, since one is a superset - trying to reduce the number of media types.
Ted Thibodeau Jr.: to be clear there is more text change than media types. Oliver Terbu: agree with what was said: sd-jwt is superset of jwt. agree with using sd-jwt, the rest is redundant. Sebastian Crane: understand that it is subset. why it is called sd-jwt? Manu Sporny: this PR removes a media type for regular JWTs - understand that sd-jwt is a superset. it feels like we are removing support for JWTs. Brent Zundel: respond to sebastian - sd-jwt is considered a jwt because it adds functionality to jwts, but does not remove.
Oliver Terbu: agree with brent. can use regular jwt libraries. one need to upgrade to v2.0 from v.1.1 anyway. no reason to maintain vc-jwt as in 1.1. Sebastian Crane: question to mike. any change to cbor support? Michael Jones: no change to cbor support. Kristina Yasuda: I think the direction is correct. We experimented a lot with the best way to secure a payload that enables switching selective disclosure on and off. Benjamin Young: question around media type declarations. is sd-jwt a superset of json processing? Manu Sporny: this have to do with multiple suffixes thing - current formulation is a correct formulation based on what is happening in the ietf.
Manu Sporny: need to add normative reference to sd-jwt. Kristina Yasuda: I don't disagree.
Kristina Yasuda: all the SD-JWT implementations I've seen use JWT libraries, but adding something to make it clear would be good. I don't think we're abandoning JWTs. Correct framing is moving on we're enabling using JWT with or without selective disclosure.
Sebastian Crane: concerned about adding sd-jwt. Paul Dietrich: you can create an sd-jwt to add a ~. easy for the issuer. how does the verifier know when it is the same media type whether there is SD or not? Kristina Yasuda: You would need to look at the number of tildes. The processing section could clarify. If a verifier gets something with no selective disclosure there one tilde at the end. with SD there are more tildes at the end. The verifier would need that logic to determine. Paul Dietrich: a way to ask something without a SD? Kristina Yasuda: depends on the protocol used to request a credential. presentation exchange would allow to request a thing without SD wihtout using media types. Michael Jones: given we're trying to move toward CR. There's 6 approvals and minor call for suggested changes. Can we raise an issue for the remaining concerns? Benjamin Young: sd-jwt has to be a normative reference. Manu Sporny: raising another issue that will have to be tagged pre-CR. Brent Zundel: noting that mikeJ's way forward is not manu's favorite, we can do merge that PR. |
Addresses #141
Preview | Diff