On Fri, Feb 28, 2020 at 10:58 AM Jonathan Hoyland < jonathan.hoyl...@gmail.com> wrote:
> On Fri, 28 Feb 2020 at 04:49, Christopher Wood <c...@heapingbits.net> > wrote: > >> On Thu, Feb 27, 2020, at 1:31 PM, David Benjamin wrote: >> > On Mon, Feb 24, 2020 at 5:58 PM Jonathan Hoyland >> > <jonathan.hoyl...@gmail.com> wrote: >> > > This would be for cases where we want to inject extra context into a >> resumption. >> > > That would be anything that changes an authentication property, so >> for example if you wanted to include some agreement on the status of a >> post-handshake auth or Exported Authenticator. >> > > >> > > So for example imagine I had a session during which I received an EA >> and when I came to resume that session I wished to indicate that I was >> still willing to accept the EA. >> > > I would offer a special PSK and inject some extra material into the >> handshake*, and if the server was able / willing to agree to this it would >> select the PSK. >> > > I could also offer a PSK with no extra injected material, as a >> fallback, and request the EA again. >> > > >> > > * This would only affect the binder for the PSK in the ClientHello. >> > >> > I'm still not following. If you're resuming, this is a PSK issued from >> > a NewSessionTicket, in which case this isn't an imported PSK at all. >> > It's a resumption PSK and uses "res binder". If we needed to negotiate >> > variations on a resumption, this importer mechanism wouldn't give us a >> > way to express that anyway. I expect we'd instead lean on some >> > combination of multiple tickets, NewSessionTicket extensions, and plain >> > ClientHello extensions. But maybe I'm still not understanding the >> > scenario. >> > The security of combinations of tickets is non-trivial to reason about > (though not impossible), in the same way as Exported Authenticators (which > makes sense given that EAs would be a reason to do this). > I'll have to give some thought to a compelling use case, but I just like > the option for consistency. > Then again it is said "A foolish consistency is the hobgoblin of little > minds [...]", so ... > Well, if we never end up adding "imp r binder", then the current spelling is more consistent. If we later add "imp r binder", then your proposed spelling is more consistent. If we later add "imp r binder" but spell it "xyz binder", then I guess the current spelling is more consistent. The label values don't *actually* matter so this is all aesthetics at this point. My assertion is that if we have clear reason to believe we'll add "imp r binder", then "imp e binder" seems reasonable. If we don't have a reason to believe we will, let's just leave it as is. Either way, it's probably not worth expending too much effort on it. :-) > > > Another potential use would be the binding for ECHO, although I don't >> have a clear enough picture of the precise mechanics of that to know if it >> would be helpful. >> > >> > Chris is probably more up-to-date here, but I don't believe the current >> > ECHO design looks like a funny PSK. >> >> That's right -- it's just another extension in the outer CH. >> > > I was thinking about the ECHO design from a forward/backward binding > perspective. > I think we should make the smallest number of changes to the key schedule > possible that will cover all possible future use cases, so an overall > consistent approach would be ideal. > If the WG doesn't adopt a key schedule extension draft (either mine, > draft-Stebila, or some other one) then this looks like the strongest choice. > > >> Best, >> Chriss >> >> > > Something that would allow for a consistent naming in the future >> would be my preference, because just as "imp binder" doesn't preclude "imp >> r binder", using "imp e binder" doesn't preclude us never adopting "imp r >> binder". >> > > I vaguely remember discussing whether the longer name would tip us >> into an extra hash invocation at the last IETF, and concluding that it >> didn't, although I'd have to double check that. >> > >> > Of course. Yeah, I think the more pertinent question is whether "imp r >> > binder" is actually a thing. >> > > Regards, >> > > >> > > Jonathan >> > > >> > > On Mon, 24 Feb 2020, 22:23 David Benjamin, <david...@chromium.org> >> wrote: >> > >> On Mon, Feb 24, 2020 at 4:33 PM Jonathan Hoyland < >> jonathan.hoyl...@gmail.com> wrote: >> > >>> Just looking at this again, it might be better to make a slightly >> different tweak to the key schedule. >> > >>> Instead of: >> > >>> 0 >> > | >> > v >> > PSK -> HKDF-Extract = Early Secret >> > | >> > +-----> Derive-Secret(., "ext binder" >> > | | "res binder" >> > | | "imp binder", "") >> > | = binder_key v >> > >>> >> > >>> We should do: >> > >>> >> > >>> 0 >> > | >> > v >> > PSK -> HKDF-Extract = Early Secret >> > | >> > +-----> Derive-Secret(., "ext binder" >> > | | "res binder" >> > | | "imp e binder" >> > | | "imp r binder", "") >> > | = binder_key v >> > >>> or at least: >> > >>> 0 >> > | >> > v >> > PSK -> HKDF-Extract = Early Secret >> > | >> > +-----> Derive-Secret(., "ext binder" >> > | | "res binder" >> > | | "imp e binder", "") >> > | = binder_key v >> > >>> >> > >>> >> > >>> Just so that we can distinguish between external imported binders >> and resumed imported binders, should we at some point decide to do both. >> > >> >> > >> I may just be confused, but what would a resumed imported binder >> mean? I see this mechanism as largely a bugfix for TLS 1.3 external PSKs, >> rather than a new kind of adjective describing PSKs. >> > >> >> > >> ("imp binder" also doesn't preclude "imp r binder" later if we later >> define something which needs it, but I'm confused what the concept even >> would be.) >> > >> >> > >> David >> > >>> On Mon, 24 Feb 2020 at 20:50, Christopher Wood <c...@heapingbits.net> >> wrote: >> > >>>> On Fri, Feb 21, 2020, at 1:15 PM, Rob Sayre wrote: >> > >>>> > >> > >>>> > >> > >>>> > On Fri, Feb 21, 2020 at 8:35 AM Eric Rescorla <e...@rtfm.com> >> wrote: >> > >>>> > > >> > >>>> > > >> > >>>> > > On Thu, Feb 20, 2020 at 7:08 PM Rob Sayre <say...@gmail.com> >> wrote: >> > >>>> > >> Hi, >> > >>>> > >> >> > >>>> > >> I'm not sure how violations of these requirements would >> result in poor interoperability: >> > >>>> > >> >> > >>>> > >> Clients which import external keys TLS MUST NOT use these >> keys for >> > >>>> > >> any other purpose. Moreover, each external PSK MUST be >> associated >> > >>>> > >> with at most one hash function. >> > >>>> > >> >> > >>>> > >> These seem like aspirational security goals. It would be >> better to describe the consequences of violating these conditions. >> > >>>> > > >> > >>>> > > I don't agree. They are requirements in order to be able to >> make the assertions we want to make about the security of the protocol. >> > >>>> > > >> > >>>> > > This is consistent with the following text of RFC 2119 S 6 >> > >>>> > > ".. or to limit behavior which has potential for causing harm >> (e.g., limiting retransmisssions) " >> > >>>> > > >> > >>>> > > I don't think it would be unreasonable.to explain the reason >> for these, though this is already a requirement of 8446 S 4.2.11 (though >> without justification). >> > >>>> > >> > >>>> > I think that interpretation of 2119 is a stretch, but your idea >> to add >> > >>>> > an explanation while keeping the 2119 terms addresses my >> concern. At >> > >>>> > the very least, the draft should note this is already a >> requirement of >> > >>>> > 8446. >> > >>>> >> > >>>> That seems perfectly reasonable! We can point to the security >> considerations to clarify the "single hash function" requirement, and we >> can note cross protocol attack deterrence for the other claim. Would that >> suffice? If not, can you please recommend text? >> > >>>> >> > >>>> Thanks, >> > >>>> Chris >> > >>>> >> > >>>> _______________________________________________ >> > >>>> TLS mailing list >> > >>>> TLS@ietf.org >> > >>>> https://www.ietf.org/mailman/listinfo/tls >> > >>> _______________________________________________ >> > >>> TLS mailing list >> > >>> TLS@ietf.org >> > >>> https://www.ietf.org/mailman/listinfo/tls >> >
_______________________________________________ TLS mailing list TLS@ietf.org https://www.ietf.org/mailman/listinfo/tls