Re: [TLS] Data volume limits

2016-01-04 Thread Hubert Kario
On Monday 28 December 2015 21:08:10 Florian Weimer wrote:
> On 12/21/2015 01:41 PM, Hubert Kario wrote:
> > if the rekey doesn't allow the application to change authentication
> > tokens (as it now stands), then rekey is much more secure than
> > renegotiation was in TLS <= 1.2
> 
> You still have the added complexity that during rekey, you need to
> temporarily switch from mere sending or receiving to at least
> half-duplex interaction.

this situation already happens in initial handshake so the 
implementation needs to support that

I don't see how rekey adds complexity here...

-- 
Regards,
Hubert Kario
Senior Quality Engineer, QE BaseOS Security team
Web: www.cz.redhat.com
Red Hat Czech s.r.o., Purkyňova 99/71, 612 45, Brno, Czech Republic

signature.asc
Description: This is a digitally signed message part.
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] Data volume limits

2016-01-04 Thread Florian Weimer
On 01/04/2016 12:59 PM, Hubert Kario wrote:
> On Monday 28 December 2015 21:08:10 Florian Weimer wrote:
>> On 12/21/2015 01:41 PM, Hubert Kario wrote:
>>> if the rekey doesn't allow the application to change authentication
>>> tokens (as it now stands), then rekey is much more secure than
>>> renegotiation was in TLS <= 1.2
>>
>> You still have the added complexity that during rekey, you need to
>> temporarily switch from mere sending or receiving to at least
>> half-duplex interaction.
> 
> this situation already happens in initial handshake so the 
> implementation needs to support that

But after and the handshake and without real re-key, sending and
receiving operations exactly match what the application requests.  If
you need to switch directions against the application's wishes, you end
up with an API like OpenJDK's SSLEngine (or a callback variant which is
equivalent in complexity).

Dealing with this during the initial handshake is fine.  But supporting
direction-switching after that is *really* difficult.

Florian

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


Re: [TLS] Data volume limits

2016-01-04 Thread Florian Weimer
On 12/28/2015 10:09 PM, Salz, Rich wrote:
>> When the key is changed, the change procedure should involve new randomness. 
> 
> I don't think this is necessary, and I don't think the common crypto 
> expertise agrees with you, either. But I am not a cryptographer, maybe one of 
> the ones on this list can chime in.
> 
> "Crank the KDF" suffices.

The attacks against GCM are at the stage where even “periodically
increment the key by one“ would thwart them, right?

The risk is that without real re-key (introducing additional
randomness), someone might come up with a better attack that reduces the
security level below the design target, and which requires similar
effort as the existing GCM attack (four years of traffic at terabit
speed, it seems).

Real re-key is difficult to introduce as an afterthought (see my recent
response to Hubert), and I'd rather see such issues fixed at the cipher
level if at all possible.  The current update-key mechanism doesn't have
the complexity issue of real re-key, but it's ambiguous if it's a design
goal to paper over cipher deficiencies in the rest of the protocol.

Florian

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


Re: [TLS] Data volume limits

2016-01-04 Thread Hubert Kario
On Monday 04 January 2016 13:02:57 Florian Weimer wrote:
> On 01/04/2016 12:59 PM, Hubert Kario wrote:
> > On Monday 28 December 2015 21:08:10 Florian Weimer wrote:
> >> On 12/21/2015 01:41 PM, Hubert Kario wrote:
> >>> if the rekey doesn't allow the application to change
> >>> authentication
> >>> tokens (as it now stands), then rekey is much more secure than
> >>> renegotiation was in TLS <= 1.2
> >> 
> >> You still have the added complexity that during rekey, you need to
> >> temporarily switch from mere sending or receiving to at least
> >> half-duplex interaction.
> > 
> > this situation already happens in initial handshake so the
> > implementation needs to support that
> 
> But after and the handshake and without real re-key, sending and
> receiving operations exactly match what the application requests.  If
> you need to switch directions against the application's wishes, you
> end up with an API like OpenJDK's SSLEngine (or a callback variant
> which is equivalent in complexity).

for renegotiation, yes

but for rekey it doesn't need any input from application so there is no 
need for any callbacks
 
> Dealing with this during the initial handshake is fine.  But
> supporting direction-switching after that is *really* difficult.

yes, this is a bit more problematic, especially for one-sided transfers. 
For example, when one side is just sending a multi-gigabyte transfer as 
a reply to a single command - there may be megabytes transferred before 
the other side reads our request for rekey and then our "CCS" message

I thought you just meant the need to keep two cipher contexts in memory 
at the same time (current and currently negotiated).
-- 
Regards,
Hubert Kario
Senior Quality Engineer, QE BaseOS Security team
Web: www.cz.redhat.com
Red Hat Czech s.r.o., Purkyňova 99/71, 612 45, Brno, Czech Republic

signature.asc
Description: This is a digitally signed message part.
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] Data volume limits

2016-01-04 Thread Florian Weimer
On 01/04/2016 01:19 PM, Hubert Kario wrote:

>> Dealing with this during the initial handshake is fine.  But
>> supporting direction-switching after that is *really* difficult.
> 
> yes, this is a bit more problematic, especially for one-sided transfers. 
> For example, when one side is just sending a multi-gigabyte transfer as 
> a reply to a single command - there may be megabytes transferred before 
> the other side reads our request for rekey and then our "CCS" message

Yes, this is the issue I meant.  I simply don't see a way to re-inject
new randomness without a round-trip.  (Key update without new randomness
doesn't face this challenge, but then it's mostly cheating.)

Florian

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


[TLS] TCP Keep Alive Question: draft-ietf-tls-tls13-11

2016-01-04 Thread nalini.elkins
Hello All,

Please excuse if this topic has been previously discussed.  I have a question 
about TCP Keep Alives.

Section 5 of draft-ietf-tls-tls13-11 reads:

"Three protocols that use the TLS Record Protocol are described in this 
document: the TLS Handshake Protocol, the Alert Protocol, and the application 
data protocol." 

Then continues with:

"Implementations MUST NOT send record types not defined in this document unless 
negotiated by some extension.  If a TLS implementation receives an unexpected 
record type, it MUST send an 
"unexpected_message" alert."

In the wild today, I see many TLS connections which use TCP Keep Alive (NOT TLS 
Heartbeat).   I take it that this will not work going forth?
 Thanks,

Nalini Elkins
Inside Products, Inc.
www.insidethestack.com
(831) 659-8360

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


Re: [TLS] TCP Keep Alive Question: draft-ietf-tls-tls13-11

2016-01-04 Thread nalini.elkins


On Mon, Jan 4, 2016 at 7:45 AM,   wrote:
>> Hello All,
>>
>> Please excuse if this topic has been previously discussed.  I have a 
>> question about TCP Keep Alives.
>>
>> Section 5 of draft-ietf-tls-tls13-11 reads:
>>
>> "Three protocols that use the TLS Record Protocol are described in this 
>> document: the TLS Handshake Protocol, the Alert Protocol, and the 
>> application data protocol."
>>
>> Then continues with:
>>
>> "Implementations MUST NOT send record types not defined in this document 
>> unless negotiated by some extension.  If a TLS implementation receives an 
>> unexpected record type, it MUST send an
>> "unexpected_message" alert."
>>
>> In the wild today, I see many TLS connections which use TCP Keep Alive (NOT 
>> TLS Heartbeat).   I take it that this will not work going forth?

>TCP Keep Alive is invisible to the TLS connection.

I see. Then, is it that PACKETS without the TLS record protocol may be sent on 
the TLS connection, but IF the TLS Record protocol IS used, then the record 
types must be one of those described? 

Or is it that TCP Keep Alive is taken out by the TCP stack and not passed to 
TLS?



>  Thanks,
>
> Nalini Elkins
> Inside Products, Inc.
> www.insidethestack.com
> (831) 659-8360
>
> ___
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls



-- 
"Man is born free, but everywhere he is in chains".
--Rousseau.

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


Re: [TLS] TCP Keep Alive Question: draft-ietf-tls-tls13-11

2016-01-04 Thread Watson Ladd
On Mon, Jan 4, 2016 at 7:45 AM,   wrote:
> Hello All,
>
> Please excuse if this topic has been previously discussed.  I have a question 
> about TCP Keep Alives.
>
> Section 5 of draft-ietf-tls-tls13-11 reads:
>
> "Three protocols that use the TLS Record Protocol are described in this 
> document: the TLS Handshake Protocol, the Alert Protocol, and the application 
> data protocol."
>
> Then continues with:
>
> "Implementations MUST NOT send record types not defined in this document 
> unless negotiated by some extension.  If a TLS implementation receives an 
> unexpected record type, it MUST send an
> "unexpected_message" alert."
>
> In the wild today, I see many TLS connections which use TCP Keep Alive (NOT 
> TLS Heartbeat).   I take it that this will not work going forth?

TCP Keep Alive is invisible to the TLS connection.

>  Thanks,
>
> Nalini Elkins
> Inside Products, Inc.
> www.insidethestack.com
> (831) 659-8360
>
> ___
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls



-- 
"Man is born free, but everywhere he is in chains".
--Rousseau.

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


Re: [TLS] TCP Keep Alive Question: draft-ietf-tls-tls13-11

2016-01-04 Thread Roland Zink
TCP keep alives are handled by the TCP stack and not given to TLS or as 
Watson said invisible to TLS.


Roland

Am 04.01.2016 um 16:59 schrieb nalini.elk...@insidethestack.com:


On Mon, Jan 4, 2016 at 7:45 AM,   wrote:

Hello All,

Please excuse if this topic has been previously discussed.  I have a question 
about TCP Keep Alives.

Section 5 of draft-ietf-tls-tls13-11 reads:

"Three protocols that use the TLS Record Protocol are described in this document: 
the TLS Handshake Protocol, the Alert Protocol, and the application data protocol."

Then continues with:

"Implementations MUST NOT send record types not defined in this document unless 
negotiated by some extension.  If a TLS implementation receives an unexpected record 
type, it MUST send an
"unexpected_message" alert."

In the wild today, I see many TLS connections which use TCP Keep Alive (NOT TLS 
Heartbeat).   I take it that this will not work going forth?

TCP Keep Alive is invisible to the TLS connection.

I see. Then, is it that PACKETS without the TLS record protocol may be sent on 
the TLS connection, but IF the TLS Record protocol IS used, then the record 
types must be one of those described?

Or is it that TCP Keep Alive is taken out by the TCP stack and not passed to 
TLS?




  Thanks,

Nalini Elkins
Inside Products, Inc.
www.insidethestack.com
(831) 659-8360

___
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] TCP Keep Alive Question: draft-ietf-tls-tls13-11

2016-01-04 Thread nalini.elkins
Thank you all for your help.
Nalini Elkins
Inside Products, Inc.
www.insidethestack.com
(831) 659-8360


- Original Message -
From: Roland Zink 
To: tls@ietf.org
Sent: Monday, January 4, 2016 8:32 AM
Subject: Re: [TLS] TCP Keep Alive Question: draft-ietf-tls-tls13-11

TCP keep alives are handled by the TCP stack and not given to TLS or as 
Watson said invisible to TLS.

Roland


Am 04.01.2016 um 16:59 schrieb nalini.elk...@insidethestack.com:
>
> On Mon, Jan 4, 2016 at 7:45 AM,   wrote:
>>> Hello All,
>>>
>>> Please excuse if this topic has been previously discussed.  I have a 
>>> question about TCP Keep Alives.
>>>
>>> Section 5 of draft-ietf-tls-tls13-11 reads:
>>>
>>> "Three protocols that use the TLS Record Protocol are described in this 
>>> document: the TLS Handshake Protocol, the Alert Protocol, and the 
>>> application data protocol."
>>>
>>> Then continues with:
>>>
>>> "Implementations MUST NOT send record types not defined in this document 
>>> unless negotiated by some extension.  If a TLS implementation receives an 
>>> unexpected record type, it MUST send an
>>> "unexpected_message" alert."
>>>
>>> In the wild today, I see many TLS connections which use TCP Keep Alive (NOT 
>>> TLS Heartbeat).   I take it that this will not work going forth?
>> TCP Keep Alive is invisible to the TLS connection.
> I see. Then, is it that PACKETS without the TLS record protocol may be sent 
> on the TLS connection, but IF the TLS Record protocol IS used, then the 
> record types must be one of those described?
>
> Or is it that TCP Keep Alive is taken out by the TCP stack and not passed to 
> TLS?
>
>
>
>>   Thanks,
>>
>> Nalini Elkins
>> Inside Products, Inc.
>> www.insidethestack.com
>> (831) 659-8360
>>
>> ___
>> 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


Re: [TLS] A small detail in HMAC key generation for Finished message

2016-01-04 Thread Hubert Kario
On Thursday 24 December 2015 01:04:59 Christian Huitema wrote:
> On Wednesday, December 23, 2015 3:05 PM, Eric Rescorla wrote:
> >> Similarly, in the HKDF-Expand-Label, do we assume a final null byte
> >> for the "label"?> 
> > No. I wonder if we should instead add the '\0' explicitly in the
> > 4.8.1 for maximal clarity.
> Either that, or just remove the trailing 00 from the binary
> description.

the 0-byte is a C-ism that looks like a wart to me

neither of the previous TLS versions used null-terminated C-style 
strings so why TLS1.3 should? Especially in just one place?
-- 
Regards,
Hubert Kario
Senior Quality Engineer, QE BaseOS Security team
Web: www.cz.redhat.com
Red Hat Czech s.r.o., Purkyňova 99/71, 612 45, Brno, Czech Republic

signature.asc
Description: This is a digitally signed message part.
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] A small detail in HMAC key generation for Finished message

2016-01-04 Thread Eric Rescorla
On Mon, Jan 4, 2016 at 9:22 AM, Hubert Kario  wrote:

> On Thursday 24 December 2015 01:04:59 Christian Huitema wrote:
> > On Wednesday, December 23, 2015 3:05 PM, Eric Rescorla wrote:
> > >> Similarly, in the HKDF-Expand-Label, do we assume a final null byte
> > >> for the "label"?>
> > > No. I wonder if we should instead add the '\0' explicitly in the
> > > 4.8.1 for maximal clarity.
> > Either that, or just remove the trailing 00 from the binary
> > description.
>
> the 0-byte is a C-ism that looks like a wart to me
>
> neither of the previous TLS versions used null-terminated C-style
> strings so why TLS1.3 should? Especially in just one place


The idea is to make this prefix-free. I added it as an explicit byte but
would
be ok with a different separator as long as we banned it from the context
strings.

-Ekr


>
> Regards,
> Hubert Kario
> Senior Quality Engineer, QE BaseOS Security team
> Web: www.cz.redhat.com
> Red Hat Czech s.r.o., Purkyňova 99/71, 612 45, Brno, Czech Republic
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] A small detail in HMAC key generation for Finished message

2016-01-04 Thread Salz, Rich
> The idea is to make this prefix-free. I added it as an explicit byte but 
> would be ok with a different separator as long as we banned it from the 
> context strings.

Perhaps explain that rationale in the doc?
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] A small detail in HMAC key generation for Finished message

2016-01-04 Thread Hubert Kario
On Monday 04 January 2016 09:44:57 Eric Rescorla wrote:
> On Mon, Jan 4, 2016 at 9:22 AM, Hubert Kario  
wrote:
> > On Thursday 24 December 2015 01:04:59 Christian Huitema wrote:
> > > On Wednesday, December 23, 2015 3:05 PM, Eric Rescorla wrote:
> > > >> Similarly, in the HKDF-Expand-Label, do we assume a final null
> > > >> byte
> > > >> for the "label"?>
> > > > 
> > > > No. I wonder if we should instead add the '\0' explicitly in the
> > > > 4.8.1 for maximal clarity.
> > > 
> > > Either that, or just remove the trailing 00 from the binary
> > > description.
> > 
> > the 0-byte is a C-ism that looks like a wart to me
> > 
> > neither of the previous TLS versions used null-terminated C-style
> > strings so why TLS1.3 should? Especially in just one place
> 
> The idea is to make this prefix-free. I added it as an explicit byte
> but would
> be ok with a different separator as long as we banned it from the
> context strings.

Calling it explicitly a separator would be less confusing.

Advising implementers to check other values passed in for it and 
aborting if detected would be even better
-- 
Regards,
Hubert Kario
Senior Quality Engineer, QE BaseOS Security team
Web: www.cz.redhat.com
Red Hat Czech s.r.o., Purkyňova 99/71, 612 45, Brno, Czech Republic

signature.asc
Description: This is a digitally signed message part.
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] A small detail in HMAC key generation for Finished message

2016-01-04 Thread Eric Rescorla
On Mon, Jan 4, 2016 at 9:58 AM, Hubert Kario  wrote:

> On Monday 04 January 2016 09:44:57 Eric Rescorla wrote:
> > On Mon, Jan 4, 2016 at 9:22 AM, Hubert Kario 
> wrote:
> > > On Thursday 24 December 2015 01:04:59 Christian Huitema wrote:
> > > > On Wednesday, December 23, 2015 3:05 PM, Eric Rescorla wrote:
> > > > >> Similarly, in the HKDF-Expand-Label, do we assume a final null
> > > > >> byte
> > > > >> for the "label"?>
> > > > >
> > > > > No. I wonder if we should instead add the '\0' explicitly in the
> > > > > 4.8.1 for maximal clarity.
> > > >
> > > > Either that, or just remove the trailing 00 from the binary
> > > > description.
> > >
> > > the 0-byte is a C-ism that looks like a wart to me
> > >
> > > neither of the previous TLS versions used null-terminated C-style
> > > strings so why TLS1.3 should? Especially in just one place
> >
> > The idea is to make this prefix-free. I added it as an explicit byte
> > but would
> > be ok with a different separator as long as we banned it from the
> > context strings.
>
> Calling it explicitly a separator would be less confusing.
>

Ask and ye shall receive: http://tlswg.github.io/tls13-spec/#digital-signing


"Following that padding is a context string used to disambiguate signatures
for different purposes.
The context string will be specified whenever a digitally-signed element is
used. A single 0 byte is
appended to the context to act as a separator."


Advising implementers to check other values passed in for it and
> aborting if detected would be even better
>

This seems like it's probably not necessary because these strings are
standardized
and internal to the implementation.

-Ekr


> --
> Regards,
> Hubert Kario
> Senior Quality Engineer, QE BaseOS Security team
> Web: www.cz.redhat.com
> Red Hat Czech s.r.o., Purkyňova 99/71, 612 45, Brno, Czech Republic
>
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] A small detail in HMAC key generation for Finished message

2016-01-04 Thread Martin Thomson
On 5 January 2016 at 05:03, Eric Rescorla  wrote:
> Ask and ye shall receive: http://tlswg.github.io/tls13-spec/#digital-signing
>
> "Following that padding is a context string used to disambiguate signatures
> for different purposes.
> The context string will be specified whenever a digitally-signed element is
> used. A single 0 byte is
> appended to the context to act as a separator."


You call this NUL in the following paragraph, without context.  This
might need to be tied together better.

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


Re: [TLS] A small detail in HMAC key generation for Finished message

2016-01-04 Thread Eric Rescorla
On Mon, Jan 4, 2016 at 4:11 PM, Martin Thomson 
wrote:

> On 5 January 2016 at 05:03, Eric Rescorla  wrote:
> > Ask and ye shall receive:
> http://tlswg.github.io/tls13-spec/#digital-signing
> >
> > "Following that padding is a context string used to disambiguate
> signatures
> > for different purposes.
> > The context string will be specified whenever a digitally-signed element
> is
> > used. A single 0 byte is
> > appended to the context to act as a separator."
>
>
> You call this NUL in the following paragraph, without context.  This
> might need to be tied together better.
>

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