On Thu, Feb 13, 2020, at 06:26, Douglas Stebila wrote:
> We would like to request the working group adopt
> draft-stebila-tls-hybrid-design, "Hybrid key exchange in TLS 1.3", as
> a working group item.  We have updated the draft based on feedback
> we've received over the past few months, including from our
> presentations at IETF 104 and 105, and think the current version
> represents the view of the WG to date.

I agree that we should adopt this.  I think that the draft is broadly in the 
right shape.

Skimming through I noticed a few things that I would prefer to see eventually 
changed, but we can do that in the working group.

At a high level, I think that this would be easier if it were more clearly 
framed as *recommendations*, especially when it comes to the format of key 
shares and the input secret.  One advantage of the macro-level design is that 
the format is can be specified on a case-by-case basis.  For instance, 
variable-length values might be length-prefixed; fixed size values don't need 
to be.  That might avoid having to directly specify a single format. 

S 3.1 (Negotiation) suggests that a portion of the named group space be 
reserved for this use.  I think that is a bad idea because it implies semantics 
where none are necessary.  Picking codepoints as usual should suffice; indeed, 
random allocation might be ideal.

The concatenation approach is definitely my preferred approach, but the 
inconsistency between the design for key shares and secrets is curious.  This 
design assumes that shares are length-delimited; secrets are not.  The latter 
implies that the `ss` needs to be fixed length for a given algorithm (both the 
PQ and classical parts), but `ct`/`pk` does not.  I can guess at why, but when 
you can avoid the question, then I think you should.  That is, in favour of 
more generic recommendations on structure.

To answer some of the open questions:

Larger public keys and/or ciphertexts - if we need these, we're in serious 
trouble.  To give you an idea, even at 1k, these will start being much harder 
to deploy.  Getting close to 64k adds all sorts of complication.  Better to 
defer support for big messages.  Acknowledging the limitation should suffice.

Duplication of key shares - not so much an open question as something the draft 
could acknowledge as a cost.  As previously discussed X25519 is small enough 
that duplication doesn't hurt enough to care.

Variable-length shared secrets - see above.

Resumption - I would be supportive of policy recommendations about the strength 
of key exchange on resumption, but as we allow straight resumption without 
PSKs, this cannot be standardized.

Failures - If this were low enough, I'd be happy to try again.  From our 
perspective, this isn't technically challenging, it's merely annoying. If this 
were very low probability (as I would expect), then we might just accept the 
loss of the occasional connection attempt.

_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to