- Paul.... Brian,
I have checked the github PR and it appears to cover all my 'to do' items (marked with a '*') in the previous message. Thank you for this. Deb On Thu, Dec 12, 2024 at 11:23 AM Brian Campbell <bcampb...@pingidentity.com> wrote: > Thanks for the detailed review and treatment of the issues Deb, > > The document editors will take an action to incorporate the indicated > changes in the next draft. > > On Thu, Dec 12, 2024 at 6:58 AM Deb Cooley <debcool...@gmail.com> wrote: > >> +oauth working group and Paul: >> >> Denis, >> >> I have gone through every issue request you have made on this draft. I >> would like to know what your motivation is for these drafts (I see you have >> done the same on the SD-JWT-VC draft). It sort of looks like comment >> spam. I realize that you are a long-time participant in the IETF, and >> you obviously have your ‘style’. Once I understand your motivation, >> then we can work towards that goal. >> >> I will also say that if a particular draft doesn’t suit your needs, then >> it is always possible for you to author a draft and support it through the >> process. >> >> Below are both my general comments, and then blow by blow responses to >> your 42 issues. >> >> Deb Cooley >> >> ------------------------------------------- >> >> My general comments on the issues: >> >> 1. End-User comments: These are implementation choices. Holder is >> basically the front for all sorts of different implementation options. Any >> implementation can be constructed to be secure, or insecure. The format >> (this draft) doesn’t control that. There are many comments that are >> focused on the End-User vs Holder discussion. See Daniel’s explanation >> here: >> https://mailarchive.ietf.org/arch/msg/oauth/o_GsCqflyoA-Kd4ZCg5QlYy_tdQ/ >> . >> >> >> >> 2. Comments on Introductory material: In my opinion, the >> introduction needs to be clear, concise, and straightforward. Adding >> complexity doesn’t help ‘set the stage’ for the detail part of the draft. >> There are many comments on the Intro text. >> >> >> >> 3. Organization of the draft: Choices are made by authors about >> where to put the detail. If that detail does in fact exist already in >> the draft, comments asking for it to be repeated or moved MUST have good >> rationale. There are several comments like this. >> >> >> >> 4. Editorial comments: I agree these should be easy to fix, but if >> one insists on burying the lead, i.e. putting the editorial comments in the >> midst of other comments, then they are easy to miss. I have put ‘*’ by >> the editorial comments I want the authors to fix. >> >> >> >> 5. Age examples: This points to ongoing work in this area. Martin >> Thomson has a blog: https://lowentropy.net/posts/selective-disclosure/ . >> Salted hash-based selective disclosure might not be the perfect answer >> for this particular use case. But it is fine for other use cases. My >> comment here is to not let perfect be the enemy of good. >> >> >> >> 6. Security Considerations: I am going to ask for some additions >> here. Not that the draft needs to address these items, just to make >> clear that they must be done correctly and are out of scope for this >> particular draft. >> >> >> >> 7. PQ algorithms: This draft does not address algorithms at all, >> they point to JOSE where the algorithms will be specified. There could >> be a note in the Security Considerations section, if the authors so desire. >> >> ------------------------------------- >> >> Line numbers that I reference are from idnits. The list of issues is >> below with my comments: >> >> - #498 Figure 1 should be corrected to take into account the >> existence of an End-user and to consider KB-JWT instead of KB >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/498> >> >> *Lines 268-297: The addition of the End-User implies implementation. WRT >> the holder to Verifiers text, I would suggest ‘Presents SD-JWT or SD-JWT+KB >> including selected Disclosures’ to account for the KB-JWT. >> >> - #497 The term End-User should be added to the definitions >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/497> >> >> Lines 220-266: Given the term ‘end-user’ does not occur within the draft, >> I disagree. >> >> - #496 The definition of a Verifier would need to be reworded >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/496> >> >> Lines 265-266: I thought providing all disclosures was an option? The >> current definition is clearer and more complete. >> >> - #495 The definition of an Holder would need to be reworded >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/495> >> >> Lines 261-264: The suggestion is pertinent for one possible >> implementation of the format. Keeping the format language clear and >> concise is important. >> >> - #494 The definition of an Issuer would need to be reworded >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/494> >> >> Line 260: This seems superfluous, again language needs to be clear and >> concise. >> >> - #493 The definition of a "key binding JWT" would need to be reworded >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/493> >> >> *Lines 253-256: I would reorder the sentences in the definition where the >> last sentence is ‘The details of how a JWT for proving Key Binding is >> defined in Section 4.3.’ (putting the second sentence first). Certainly, >> details and requirements of how this is done is not suitable for a >> terminology section. >> >> - #492 The definition of "key binding" would need to be reworded >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/492> >> >> *Lines 248-252: I agree that ‘legitimate possession’ isn’t quite right >> (nor provable). I suggest removing the word ‘legitimate’. As for >> implications that the construction of the system w/ one or more end-users >> that utilize a single holder is out of scope. This draft is merely the >> format, not the implementation. >> >> - #491 The definition of the Selectively Disclosable JWT (SD-JWT) >> would need to be reworded >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/491> >> >> Lines 237-241: ‘zero or more’ includes ‘all’. It makes it very >> difficult to implement if requirements are buried in terminology sections. >> No changes required. >> >> - #490 The definition of the SD-JWT+KB structure needs to be reworded >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/490> >> >> Line 217-218: Still Introduction. The details of how the format works >> is in Section 4.3. >> >> - #489 A (KB-JWT) does not demonstrate a "proof of possession" of >> private key >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/489> >> >> *Line 215: Still Introduction, the authors could add the word ‘allow’, >> since a format itself does not prove possession of the private key. >> >> - #485 Key binding will be ineffective unless the SD-JWT includes an >> additional claim that indicates the Holder characteristics: "hcahr" >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/485> >> >> Lines 182-190: Introduction text needs to be clear and concise. Details >> of how the format/mechanism is designed are in Section 4.3. In >> addition, this feature appears to me to be very much like a certificate >> validate used in TLS to prove the server (or client) is in possession of >> the private key. >> >> I would disagree with your first statement (that is exactly what key >> binding is for). >> >> One can quibble about whether use of a private key equates to possession, >> but that is not useful in an introduction. >> >> The holder must prove it possesses the private key to the issuer, and >> then to the verifier when the claim is presented. >> >> None of this text belongs in an introduction. >> >> - #488 What is a "facility for associating an SD-JWT with a key pair" >> ? >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/488> >> >> *Line 214: I don’t think ‘facility’ here means ‘a physical place’. I do >> think the Authors could pick a better word. Maybe ‘ability’? >> >> - #487 Difference between "a format extending the JWS Compact >> Serialization" and "an alternate format extending the JWS JSON >> Serialization" ? >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/487> >> >> Lines 203-208: It is unclear to me what is unclear here. Section 8 >> describes the alternate format. The rest of the draft describes the >> primary format. Section 1.1 is still Introduction. >> >> - #486 The structure called "SD-JWT+KB" should be renamed >> "SD-JWT+KB-JWT" >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/486> >> >> Assuming lines 189-190: There is no loss of clarity as it is currently >> stated. >> >> - #484 A Holder does not present a "JWT" to a Verifier but "SD-JWT + >> Sel.Claims" >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/484> >> >> Assuming lines 159-161: Again, this is still the Introduction. Using >> consistent wording is going to be easier for a developer to understand. >> Introducing >> terms like ‘talking to’ is confusing. If the Holder is the End-User >> does that actually speak to the verifier? >> >> - #483 Indicate that "claims" refers either to object properties >> (name/value pairs) and to array elements >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/483> >> >> It is unclear to me which part of the Introduction this comment is >> referencing, but the supplied text makes the Introduction more complex. The >> details of what a claim can consist of should be in the body of the draft, >> not the Introduction. >> >> - #482 Make a difference between the Holder which is an *application* >> and the individual (i.e. End-User) >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/482> >> >> Assuming you are referring to lines 156-158, this is made clear in the >> terminology section definition of Holder. >> >> - #522 The last paragraph of section 10.5 (Issuer Identifier) can be >> removed >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/522> >> >> Given my comment on the previous issue (#521), this one is OBE. >> >> - #521 A new section about "Issuer anonymity" should be added >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/521> >> >> The current Section 10.5 gives a mitigation. Some entity has to be >> accountable. It is extremely difficult to hold an anonymous entity >> accountable. >> >> - #520 Section 10.3 (Confidentiality during Transport) should also >> mention integrity >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/520> >> >> The SD-JWT itself is signed, which handles the integrity requirement. In >> addition, modern TLS implementations provide Confidentiality and Integrity >> by default. >> >> - #519 Since claims always contain privacy-sensitive data section >> 10.2 would need to be reworded >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/519> >> >> Since this is a ‘SHOULD NOT’, it leaves the option for other actions. >> >> - #518 Holders SHOULD NOT be required to store SD-JWTs "only in >> encrypted form" >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/518> >> >> The statement is a SHOULD, it leaves the option for other protection as >> an option. >> >> - #517 Section 10.2 should be made more general to consider both the >> storage of signed and un-signed data >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/517> >> >> It is appropriate for this draft to handle SD-JWT data. It is >> completely obvious that unsigned sensitive data should be protected. No >> need for that to be specified here. >> >> - #515 The term "unlinkability" is overloaded. For more clarity, the >> wording "End-user intrackability" should be used in addition >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/515> >> >> No action. Making up new terms here isn’t terribly useful. >> >> - #516 A new section about "End-User intrackability" should be added >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/516> >> >> How end-users interact with Holders (and every other part of this) is an >> implementation detail. SD-JWT is merely the format. >> >> - #514 A section should be added to consider the case of a >> presentation of claims to Verifier that have been issued by different >> Issuers >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/514> >> >> This looks like an implementation decision to me. The SD-JWT draft >> specifies the format, how it is used is determined by the implementation. >> >> - #513 Section 9.5 (Key Binding) needs to be revised to consider the >> case of a collusion between End-Users >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/513> >> >> *This is an implementation issue. Only one point do I agree with – >> ‘legitimate’ is not provable. It should merely be removed from the >> section. >> >> - #512 Section 7.3 needs to be revised to describe which data >> structures can be transmitted >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/512> >> >> Section 7.3: As this section stands, the terminology is correct. >> >> - #507 It is important to mention the use of decoy digests and of the >> shuffling of the digests included in the SD-JWT payload >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/507> >> >> Section 4.2.1 and 4.2.2: It is unclear why one would include this text >> before Section 4.2.5, where decoy digests are discussed. In addition, >> this guidance appears to be better applied to a specific implementation. >> >> - #511 The requirement for an Issuer of not providing a SD-JWT+KB-JWT >> should be removed >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/511> >> >> Lines 1521-1522: It is up to an implementation to determine where the key >> binding key pair is generated. In the case that the Issuer issues it, >> then it is wise for the Holder to verify that it has received just the >> SD-JWT (in this case, the private/public key pair has to be transmitted to >> the holder, but that is out of scope for this draft). In the case that >> the Holder, or other entity generates the key pair, then it is less likely >> that the Issuer could construct the KB-JWT. It is still a trivial check >> and worth doing for completeness. >> >> - #510 Verification steps for the KB-JWT are missing in section 7.1 >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/510> >> >> Section 7.1: Right, they are in Section 7.3 (as stated in Section 4.3). >> >> - #509 Validation steps for the KB-JWT are missing >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/509> >> >> Lines 880-893: As stated in the section, the verification steps and >> details are located in Section 7.3. >> >> - #508 The iat time at which the Key Binding JWT was issued should >> not be REQUIRED >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/508> >> >> Lines 850-852: I disagree. Depending on how long a nonce is kept by the >> system that generates it, the time that the KB JWT was issued allows >> another option to prevent replay. >> >> - #506 How the Holder key pair is established cannot be placed "out >> of the scope of this document" >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/506> >> >> *Lines 534-538: I believe this is Section 4.1.2: Better to list this as >> ‘out of scope’ than to do a half way job of laying out the requirements. >> Note: the replacement text has nothing close to the list of >> requirements that would need to be levied to ensure secure key pair >> generation, let alone how those key pairs are handled, stored, and >> maintained from birth to death. Again, this is a format, not an >> implementation. This should be added to security considerations (if it >> is not already there). >> >> - #505 Add an example of using arrays for "age_over" and "age_under" >> claims >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/505> >> >> Section 4.2.2: The appendices are a better place for these. I believe >> there are some examples there already. >> >> - #504 It would be worth to mention that the Issuer decides which >> claims are always disclosed >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/504> >> >> Lines 489-490: This comment makes the text repetitive (either by the >> numbered list above this or that para after. >> >> - #503 The description of the SD-JWT+KB is confusing >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/503> >> >> Lines 380-382: Note: this comment was addressed in Github >> >> - #502 The description of the SD-JWT can be improved >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/502> >> >> Lines 375-376: Is the issue whether zero Disclosures is appropriate? If >> so, why? The comment doesn’t state a reason. >> >> - #501 The benefits of the nonce and of the audience value can be >> made more accurate >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/501> >> >> Lines 348-350: Where the nonce comes from is an implementation detail (it >> is listed as out of scope in Section 4.3). Draft 14 has ‘verifier’ in >> place of ‘audience’ already. >> >> - #500 The data elements sent to the Verifier are not correctly >> defined >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/500> >> >> Lines 327-331: Note there is only one para, and one sentence. It is >> unclear where the commenter wants the change made. [The addition of >> end-user implies implementation.] >> >> - #499 The format used to carry both the SD-JWT and the Disclosures >> is unclear >> <https://github.com/oauth-wg/oauth-selective-disclosure-jwt/issues/499> >> >> *Lines 318-320: This can be easily clarified by changing ‘Holder as >> part of the SD-JWT’ to ‘Holder with the SD-JWT’ >> >> · #529 43. Update of Issue #514 (new section 9.12) for the >> support of Post Quantum cryptography #529 >> >> https://github.com/oauth-wg/oauth-selective-disclosure-jwt/pull/529 >> >> This draft does not specify the selection of the algorithm used for >> signing either SD-JWT or SD-JWT-KB. It does point to “digital signature >> algorithm identifier” such as per IANA JSON Web Signature and Encryption >> Algorithms registry, and it does specify that it MUST NOT be ‘NONE’. When >> the JOSE working group specifies post quantum signature algorithms, then >> they will be available to be used to sign SD-JWT. >> >> >> >> On Wed, Nov 27, 2024 at 1:56 PM Denis <denis.i...@free.fr> wrote: >> >>> Dear Security Area Director, >>> >>> Please consider this email as a Formal appeal acc. Section 6.5 of IETF >>> Directives on Internet Standards Process (RFC 2026). >>> A person who disagrees with a Working Group recommendation shall >>> always first discuss the matter with the Working Group’s chair(s), >>> who may involve other members of the Working Group (or the Working >>> Group as a whole) in the discussion. >>> >>> I discussed the matter with the Working Group’s chair(s) and since my >>> concerns have not been addressed to my satisfaction >>> by the co-chairs, I am making a Formal appeal to you in your quality of >>> IETF SEC Area Director. >>> >>> As you will see below, I have reviewed in detail >>> draft-ietf-oauth-selective-disclosure-jwt-14. >>> >>> During the first WGLC, my comments have been ignored and ignored, once >>> again, during the second WGLC. >>> >>> During the second WGLC, I raised 41 issues on github and they have been >>> promptly closed by one of the co-editors >>> to prevent discussions. >>> >>> I don't believe that it is a fair process. I am a former co-editor of >>> several RFCs (my first one was RFC 3161) >>> and when I was in this position I used to address and respond to all the >>> comments made by the WG participants. >>> >>> I am involved in ISO JTC 1 SC 27 (Information security, cybersecurity >>> and privacy protection) and I do know that the process is different, >>> In ISO JTC 1, when a comment is made after a call for comments, a >>> proposed Doc (Disposition of Comments) is prepared and then >>> discussed during a meeting. All the comments need to be answered and, >>> for each comment that is not accepted, a rational must be given. >>> >>> Some of the issues I raised are editorials. They have not even been >>> considered. Many other issues are major. >>> My most important concerns are indicated at the very end of this email >>> and, for your convenience, are copied below: >>> >>> 1) The format of the SD-JWT that is currently described in -14 is >>> INSECURE >>> as it is unable to counter End-Users collaborative attacks. >>> This type of attack is ignored in the "Security Considerations" >>> section and thus is not considered / addressed within the document. >>> Collusion attacks exist both for Verifiers and End-Users. This >>> topic relates to issue #485. >>> >>> 2) The key management protocol that is currently described in -14 DOES >>> NOT support the "Verifier-Verifier unlinkability" property. >>> >>> 3) The cryptographic algorithm which is currently used by the Holder >>> and is described in -14 is NOT Post-Quantum resistant, >>> whereas it can be made Post-Quantum resistant. This is >>> important in the context of algorithm agility. >>> >>> Since this draft is already mentioned in the ARF (version 1.4.1) of the >>> EUDI wallet, its content will be rather important. >>> >>> If draft-ietf-oauth-selective-disclosure-jwt were adopted "as it is", >>> this would be a protocol that would allow Verifiers >>> to link their user accounts (which is a privacy concern) and would not >>> allow Verifiers to detect users collaborative attacks >>> (which is a security concern). >>> >>> FYI, none of the OAuth virtual meetings scheduled by the co-chairs in >>> the next months will be dedicated >>> to draft-ietf-oauth-selective-disclosure-jwt. >>> Best regards, >>> >>> Denis PINKAS >>> >>> President of DP Security Consulting SAS (France) >>> >>> PS. Please, would you acknowledge the receipt of this email ? >>> >> >> snip.... >> _______________________________________________ >> OAuth mailing list -- oauth@ietf.org >> To unsubscribe send an email to oauth-le...@ietf.org >> > > *CONFIDENTIALITY NOTICE: This email may contain confidential and > privileged material for the sole use of the intended recipient(s). Any > review, use, distribution or disclosure by others is strictly prohibited. > If you have received this communication in error, please notify the sender > immediately by e-mail and delete the message and any file attachments from > your computer. Thank you.*
_______________________________________________ OAuth mailing list -- oauth@ietf.org To unsubscribe send an email to oauth-le...@ietf.org