-
Notifications
You must be signed in to change notification settings - Fork 97
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
Add feature at risk for DagCBOR. #552
Conversation
I object to this PR. |
@jonnycrunch wrote:
What concrete changes to this PR would remove your objection, @jonnycrunch? |
Marking DAG CBOR at risk seems logical given only 1 person in the WG has implemented support for it, or advocated for it at all.... I have seen no evidence of implementations of DAG CBOR based DID Methods, except for IPID.... JSON, JSON-LD and CBOR are already accepted mime types in did core.... did+dag+cbor is a perfect example of a mimetype which some folks might want to support in the future.... by blocking this from being marked at risk, we are pointlessly endangering the wg, for no gain whatsover. marking things at risk, means there is poor evidence that they are supported / tested well enough to be sure they will not change substantially.... It is an objective fact that And its not for lack of trying... @jonnycrunch and I have tried to get more folks to help with this.... we have received essentially 0 support, meaning the feature should be marked at risk :) |
Personally, I support simplifying the spec |
@jonnycrunch wrote:
The PR is editorial in nature, it is merely stating a fact from a W3C Process perspective. Can you please provide the grounds on which you are objecting to the PR? What changes could we make to the PR that would remove your objection? |
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.
No offense @jonnycrunch, but I also think it makes sense to add this marker, given 1. security concerns that have been raised, and 2. apparent limited implementation experience with DagCBOR DID documents at this point.
I also believe there was support by many WG members for only adding a single "flavor" of CBOR (e.g. see 2020-09-15 meeting).
It's also not so clear to me how a DagCBOR DID document would be implemented, since the spec currently mentions a separate MIME type for DagCBOR, but it doesn't define its own production and consumption rules for that representation.
And as we discussed, adding this "feature at risk" marker doesn't necessarily mean that the section will actually get removed. Several other sections also have the marker already.
And then there is always the possibility to add support for more representation via the DID Spec Registries.
the canonicalization algorithm and discussion belongs in the CBOR section and not dagCBOR. After we undo the |
@jonnycrunch -- I'm not sure what you mean by "undo the That said -- what I read above, and what I heard in yesterday's call, suggest to me that this note might actually be appropriate to the whole CBOR area, and not limited to dagCBOR, so perhaps this PR should first be adjusted to (also? instead?) do that. Until and unless the issues noted in this issue and discussed in yesterday's call are addressed, this dagCBOR (and/or CBOR) Feature At Risk note should be merged into and remain in the document, because failing to mark this/these subsection(s) At Risk puts the whole of DID Core At Risk, which I do not believe is your intent by your objection here. If changes to the main CBOR section resolve all the flagged issues with the dagCBOR section, such that the dagCBOR section needs no further adjustment — that's great. As I read things now, I believe there will still be some changes needed in the dagCBOR section, but those needs are likely to be much smaller once the main CBOR section is addressed. Once we have a Test Suite that includes testing of CBOR- and/or dagCBOR-specific features, and we have implementation test results submitted that show 2 (the bare minimum for W3 specs) or more interoperable implementations of those features, the At Risk warning should and will be removed -- just as with the other At Risk warnings (I see 3 others, for non-CBOR-related features) currently in the document. (And for clarity... [and hoping I'm not overstepping, writing this as a WG member, not a Chair nor Editor]... "Feature At Risk" is not a measure of that feature's general popularity nor desirability, nor whether the Chairs and/or Editors like the feature; "Feature At Risk" is meant to mark Editor and/or Chair concerns about whether there will be sufficient interoperable implementations of that Feature produced within the CR timeframe. The Editors and/or Chairs put a "Feature At Risk" warning on a section prior to the spec entering Candidate Recommendation [CR] phase so that the WG can make any necessary changes to that section, up to and including but not necessarily removing it entirely, such that implementation of the spec as a whole is achievable during that CR phase without starting the clock on another 2-3 month CR phase, which would have the potential to over-run a WG's chartered end-date, which can mean no Proposed nor Technical Recommendation (PR nor TR) output from the Working Group, a fate we very strongly wish to avoid.) |
The issue was discussed in a meeting on 2021-01-28 List of resolutions:
View the transcript2. CBOR sectionsSee github pull request #552. Manu Sporny: Let's talk about the CBOR section and the DagCBOR section. Jonathan, can you give an overview on those sections now? Jonathan Holt: On our call on Tuesday, we're working on a security document. We need to have deterministic encoding of the DID document, especially if the method will be signing and having a deterministic ordering is important.
Jonathan Holt: Including 64-bit integers and floats, but the language that's now in the dagCBOR section, but should be in the CBOR section. So here's a new PR to fix it. Manu Sporny: Thanks for that overview, Jonathan. There are numerous concerns around deterministic canonical form for CBOR. Just so everyone is on the same page for deterministic canonical form. Typically when you digitally sign things you want to have them in a deterministic canonical form. Jonathan Holt: I think the digital signatures are not in scope for the charter. I agree with that. Data modeling is. How we get to data modeling to ordering is relevant for us to sign. Orie Steele: I think I agree with most of what jonathan said. We have an ADM and serializations of that ADM in various different forms. If we're limiting ourselves to just JSON forms, there are multiples in JSON alone and the same applies to CBOR. Thinking of a canonical representation of an ADM, I'd like to dispel the idea that that is possible. I don't believe it is. If it were, we'd have a holy war and all the representations would fight to "be it".
Orie Steele: The people who proposed the ADM never finished the work to solve the registration problem and now jonathan is encountering that. It should be trivial to register the mime type, we should say, here's where you reference the external spec that makes it trivial to implement, and this should not be hard. There's tension over what goes in DID core and what goes in the registries. DID core will get frozen, and you should put things you're
Orie Steele: If you can't create a new mime type after DID core is done then the ADM was a mistake.
Manu Sporny: To propose two questions: Do we want to specify a canonical form/rules for the ADM or the information model. I expect everyone to say no to that, no one signed up to do that.
Jonathan Holt: I don't think canonicalization of the ADM makes sense to me, but certainly what you're signing is a representation in a particular format. Getting a one way in and one way out -- as suggested by the RFC ... our protocol should say how to sign the CBOR and get into a particular format.
Jonathan Holt: Also from the perspective of the order here, the conversations we had ... ordering matters and it matters for signatures, but what I didn't highlight -- is that it's up to the DID Doc producer to put it in the right order.
Dave Longley: in response ot manu's question, -1 for canonicalising the ADM, I don't understand what that would mean
Dave Longley: getting text in the spec that says here is how you can add more representations, and into the registries
Markus Sabadello: Moving the other representations in to the DID spec registries -- I wanted to do that, would that be ok with jonathan? We have registered properties, parameters, DID methods, so on. If we have a process for representations, that would be ok with that. Jonathan Holt: If we can flush out the governance, I may be ok with that. It's just dangling out there right now.
Ivan Herman: Just for my understanding, as far as I understood, the only reason we're talking about canonicalization here, is for the purpose of signature. If that is the case, and we're not defining signature for the time being. We don't say how you would sign the JSON representation, and if we don't talk about signature, then there is no reason to have canonicalization in the document.
Manu Sporny: Seeing some of the feedback in IRC and where the discussion seems to be headed. Two proposals I'd like to emote in IRC to look at before we take them up. Orie Steele: The second part of Manu's proposal isn't clear enough to me, if we can be clear about the registration process and that representations are free to define canonical forms, etc. that would help. Manu Sporny: I think everyone wants the process to be more detailed. I thought we agreed to not put registration processes in DID core. Because those are hard to change. I thought consensus was that the registration processes would go in the DID registries document. I'd be fine with specifying how to define representations in that doc, doing it in DID core would be a problem.
Drummond Reed: I think if we want to put the process over in the registries, I think that's what we want to do. I totally agree that we need to document it and I want to help work on it and that's where it belongs.
Drummond Reed: I agree with what Dave Longley just said that DID core just needs to say go look at the registries doc for the process. Orie Steele: I recall -- Drummond and Manu are correct that the consensus is that the DID spec registries would define the process and that's where the work needs to get done. And it just hasn't happened. And so that's why it's hard to see how it will work. Jonathan Holt: I think I can defer to Mike Jones and Justin Richer on this. Unlike JSON which isn't as strict, CBOR facilitates more strictness in the RFCs to facilitate this problem with base64 encoding with JWT for instance. It's natively supported in the RFC. It's specified that protocols should consider deterministic encoding of the representation.
Jonathan Holt: I'm also reading that other RFCs such as for COSE, the RFC punts that back up to CBOR RFC 7049 and the updated one. It's saying why it's a bad idea ... it battles with the JOSE spec. There's a lot of language, and I wish I had expertise as Jim Schaad, and Carsten, to get some weigh in for the implications of not addressing this right now. Michael Jones: With respect to COSE, because there isn't a standard canonical CBOR, is what COSE does, when it wants to sign something it just puts it in a binary string and encapsulates it. It's kind of the equivalent of what JOSE with base64. COSE side steps this by representing it as a binary string. Manu Sporny: I'm going to put in the poll, but before doing that. Just real quick. On the CBOR language, that is being referred to. It does not guarantee a canonical form. It was never meant to be that -- that's why it says "These are things you might want to keep in mind". It says "If you want a canonical form, you might want to try and do at least these things" But it's up to other specs to do that and as Mike says other specs just print out a binary string and sign it. Jonathan Holt: It is possible, and I'd like to tease out, what parts of it do you have problems with. I'd love to address those concerns.
Jonathan Holt: You know I'm going to object. I'm really harping on this canonicalization, it makes it so much easier if we have a canonical representation in CBOR. I think the ADM, it's just too abstract. So having a concise binary object representation helps facilitate the lossless encoding and decoding into other formats. It behooves us to tackle this, as it opens the door. Ivan Herman: I could say similar things about other formats. The reasons why I started work on doing various types of constraint languages, e.g., for json schema and for JSON-LD -- and I've put them into the registry repo right now... part of that to be discussed. Having your work put there would be what I would expect to happen. That can be done one the CR is published because this is not something absolutely necessary to go ahead with the CR. Brent Zundel: I'm getting pretty concerned that we're getting close to things that are officially out of scope for our group. It could argued that explaining a deterministic algorithm for signatures could be out of scope because it's too close to signatures. If we're not past the point of our scope we're very close to it.
Ivan Herman: I have a question on the proposal. I thought what we'd do in the registries, is not only the canonical forms, but also any kind of additional representations. Manu Sporny: Yes, that is correct, do you feel that the proposal doesn't say that?
Ivan Herman: If I want to have a yaml representation of the model, I should be able to do that in the registry. That, for me, is not clearly in the proposal. Manu Sporny: Yes. That's the intent. Jonathan Holt: How about this compromise, only the core model is in the DID core spec, and the representations are all in the registries. Ted Thibodeau Jr.: I think jonathan, that's roughly the intent at this time. Part of the pushback against you right now is that you have acknowledged that you're not an expert on the thing you want in the spec and we're up against tight timelines right now. Without the expertise to write the PR for what you want to add, I don't see that as possible. Manu Sporny: I think we should take up another proposal to clarify what's going on.
Michael Jones: This talk of all the representations being in the registry doesn't match what we've actually done in the spec. The JSON and JSON-LD and the dagCBOR representations are all defined in the core spec, not in any registries. I propose we don't change that and don't make any resolutions so it appears that's not true. Manu Sporny: I would like the group to focus on getting one proposal passed at a time.
Michael Jones: Yeah, specifications are specifications and registries are registries. Registries are lists of things. Specs have normative text. Talking about moving large blocks of text into a registry is nonsensical.
Dave Longley: I put a proposal in IRC. Can we solve the second class citizen issue by being clear in the core spec
Manu Sporny: I don't think that would address the issue, Dave. But let's run proposals.
Manu Sporny: Do we need to run the opposite proposal? Where we say we're going to keep the core representations in the spec?
Michael Jones: This is very strangely worded. You make a representation in a specification. You might also list that specification in a registry. You don't add a representation directly to a registry. A registry is a list not a spec.
Jonathan Holt: I haven't seen this in any protocol/place where some representation isn't able to handle this, the deterministic section in CBOR says it's up to authors. We are supposed to clearly state how to handle a representation. Not kicking the can down the road into some registry process.
Drummond Reed: My understanding is that everything that is defined in DID core is listed in the registry. Everything in the registry is official. It doesn't really matter whether a representation is in DID core or outside of DID core. All are siblings, all are in the registry. Manu Sporny: That's correct. Ivan Herman: That's correct.
Jonathan Holt: It's a fair compromise, I think we need to flush out the governance of the registry -- in which case it will be seamless, but it's punting it and I don't like that.
Brent Zundel: Thanks for coming, thanks to scribe, thanks for the input.
|
The WG has made a decision to decouple DagCBOR from DID Core and move it into it's own specification. The resolution can be found here: https://www.w3.org/2021/02/02-did-minutes.html#r01 This PR no longer applies since there will be no DagCBOR section in the specification anymore. Closing. |
This PR attempts to address issue #551 by adding a feature at risk marker for DagCBOR. /cc @jonnycrunch
Preview | Diff