Re: [TLS] Last call comments and WG Chair review of draft-ietf-tls-ecdhe-psk-aead

2017-02-24 Thread William Whyte
There's an argument that it's worth building in a 256-bit cipher for
quantum resistance. Not clear that AES-256 is the best 256-bit cipher
though.

William

On Fri, Feb 24, 2017 at 9:07 AM, Salz, Rich  wrote:

> > Assuming 256-bit AES-CCM suites are needed, I think the better place to
> put
> > them is in the TLS 1.3 document.
>
> That's a really big assumption. ;)
>
> I think the burden is on folks to *prove* (yeah, I know) that additional
> cipher suites are needed.
> ___
> 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


Re: [TLS] Last call comments and WG Chair review of draft-ietf-tls-ecdhe-psk-aead

2017-02-24 Thread William Whyte
Right. I fee l strongly that it'd be wise to bless a single 256-bit cipher
as part of the core TLS 1.3 family of techniques, but I don't feel strongly
that it should be AES-256. ChaCha?

Cheers,

William

On Fri, Feb 24, 2017 at 9:55 AM, Salz, Rich  wrote:

> > There's an argument that it's worth building in a 256-bit cipher for
> quantum resistance. Not clear that AES-256 is the best 256-bit cipher
> though.
>
> Yes, I get that.
>
> "not clear" is a highly uncompelling argument, tho.
>
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] Last call comments and WG Chair review of draft-ietf-tls-ecdhe-psk-aead

2017-02-24 Thread Joseph Salowey
TLS 1.3 currently has AES-256-GCM and ChaCha20-Poly1305 as 256-bit
ciphers.  AES-CCM ciphers are more oriented towards an IOT niche where CCM
is implemented for lower layer protocols.  I'm not sure if there are
implementations of AES-256-CCM or AES-256-CCM_8  in use.

Joe

On Fri, Feb 24, 2017 at 7:12 AM, William Whyte 
wrote:

> Right. I fee l strongly that it'd be wise to bless a single 256-bit cipher
> as part of the core TLS 1.3 family of techniques, but I don't feel strongly
> that it should be AES-256. ChaCha?
>
> Cheers,
>
> William
>
> On Fri, Feb 24, 2017 at 9:55 AM, Salz, Rich  wrote:
>
>> > There's an argument that it's worth building in a 256-bit cipher for
>> quantum resistance. Not clear that AES-256 is the best 256-bit cipher
>> though.
>>
>> Yes, I get that.
>>
>> "not clear" is a highly uncompelling argument, tho.
>>
>
>
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] Adding an additional step to exporters

2017-02-24 Thread Ilari Liusvaara
On Fri, Feb 24, 2017 at 11:47:32AM -0500, Hugo Krawczyk wrote:
> Martin,
> 
> Which of these two derivation schemes are you proposing?
> Are you assuming that all uses of the exporter_secret are known at the end
> of
> the handshake? If not, you still need to keep an exporter_secret beyond the
> handshake.
> 
> Master Secret
>   |
>   |
>   +-> Derive-Secret(., "exporter master secret 1",
>   | ClientHello...Server Finished)
>   | = exporter_secret_1
>   |
>   +-> Derive-Secret(., "exporter master secret 2",
> ClientHello...Server Finished)
> = exporter_secret_2
> 
> Or:
> 
> Master Secret
>   |
>   |
>   +-> Derive-Secret(., "exporter master secret",
> ClientHello...Server Finished)
> = exporter_secret
>  |
>  +-> Derive-Secret(., "exporter secret
> 1",
>  | what_exactly)
>  | = exporter_secret_1
>  |
>  |
>  +-> Derive-Secret(., "exporter secret
> 2",
>what_exactly)
>= exporter_secret_2
> 
> 
> (I wrote "what exactly" since I am not sure what do you plan to include
> there.)

I interpretted it to be something like follows:

Master secret
 + Derive-Secret(label="exporter master secret", 
context=ClientHello...ServerFinished)
+ Derive-Secret(label=EXPORTER-FOO, context=)
  + Derive-Secret(label="exporter", context=)
  + Derive-Secret(label="exporter", context=)
+ Derive-Secret(label=EXPORTER-BAR, context=)
  + Derive-Secret(label="exporter", context=)
  + Derive-Secret(label="exporter", context=)


But I don't know how useful that would be, as it requires knowing all
labels one is going to use (or one needs to keep EMS around anyway).


-Ilari

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


Re: [TLS] Adding an additional step to exporters

2017-02-24 Thread Hugo Krawczyk
Martin,

Which of these two derivation schemes are you proposing?
Are you assuming that all uses of the exporter_secret are known at the end
of
the handshake? If not, you still need to keep an exporter_secret beyond the
handshake.

Master Secret
  |
  |
  +-> Derive-Secret(., "exporter master secret 1",
  | ClientHello...Server Finished)
  | = exporter_secret_1
  |
  +-> Derive-Secret(., "exporter master secret 2",
ClientHello...Server Finished)
= exporter_secret_2

Or:

Master Secret
  |
  |
  +-> Derive-Secret(., "exporter master secret",
ClientHello...Server Finished)
= exporter_secret
 |
 +-> Derive-Secret(., "exporter secret
1",
 | what_exactly)
 | = exporter_secret_1
 |
 |
 +-> Derive-Secret(., "exporter secret
2",
   what_exactly)
   = exporter_secret_2


(I wrote "what exactly" since I am not sure what do you plan to include
there.)

Regarding Ilari's comment on HKDF pairings, I have said that an Extract
operation needs to always be followed by an Expand operation, but an expand
operation may be followed by an expand operation. The point is that the
output
of Expand is (typically) intended as a key to another cryptographic
function.
Such function can be HKDF-Expand itself (which is just a specific
implementation
of a variable-length input/output PRF).

Thus, both of the above possible derivations are OK from the point of view
of HKDF.

Hugo


On Fri, Feb 24, 2017 at 12:40 AM, Martin Thomson 
wrote:

> On 24 February 2017 at 16:01, Sean Turner  wrote:
> > So this isn’t entirely novel right I mean we did something similar wrt
> other key schedules?
>
> I certainly hope it isn't novel.  I'm just applying the same
> technique: keep independent keys independent.
>
> On 24 February 2017 at 16:09, Felix Günther 
> wrote:
> > just to clarify: you add an additional HKDF.Expand step, not
> > HKDF.Extract, right?
>
> Yes, you are right, I should have said expand.  You need to use expand
> to get the label-based separation on type.
>
> I don't know how I got confused about that.  If we need to maintain
> extract and expand in pairs (as we have already been burned by), then
> I will defer to cryptographers on that.
>
> ___
> 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


Re: [TLS] Last call comments and WG Chair review of draft-ietf-tls-ecdhe-psk-aead

2017-02-24 Thread Salz, Rich
> There's an argument that it's worth building in a 256-bit cipher for quantum 
> resistance. Not clear that AES-256 is the best 256-bit cipher though.

Yes, I get that.

"not clear" is a highly uncompelling argument, tho.
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] Last call comments and WG Chair review of draft-ietf-tls-ecdhe-psk-aead

2017-02-24 Thread Salz, Rich
> Assuming 256-bit AES-CCM suites are needed, I think the better place to put
> them is in the TLS 1.3 document.

That's a really big assumption. ;)

I think the burden is on folks to *prove* (yeah, I know) that additional cipher 
suites are needed.
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] Adding an additional step to exporters

2017-02-24 Thread Ilari Liusvaara
On Fri, Feb 24, 2017 at 04:40:19PM +1100, Martin Thomson wrote:
> On 24 February 2017 at 16:01, Sean Turner  wrote:
> > So this isn’t entirely novel right I mean we did something similar wrt 
> > other key schedules?
> 
> I certainly hope it isn't novel.  I'm just applying the same
> technique: keep independent keys independent.

This technique seems to assume there is some fixed known set of exporter
labels that are used. Since if you don't know the full set, you need to
keep the master exporter secret around anyway.

> On 24 February 2017 at 16:09, Felix Günther  
> wrote:
> > just to clarify: you add an additional HKDF.Expand step, not
> > HKDF.Extract, right?
> 
> Yes, you are right, I should have said expand.  You need to use expand
> to get the label-based separation on type.
> 
> I don't know how I got confused about that.  If we need to maintain
> extract and expand in pairs (as we have already been burned by), then
> I will defer to cryptographers on that.

The creator of HKDF stated that HKDF should always be used with paired
extracts and expands and any derpartion from that should be done with
utmost care.


Both the existing design and this design fail this: Because exporter
secrets are of expanded type, you would need to extract them, and
derive-secret is expansion type operation.

Note that passing label as salt is definitely very bad idea, since you
will get trivial collisions due to how HKDF works internally. And
doing so even with hash might be a bad idea.



-Ilari

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