[TLS] TLS 1.3 ServerConfiguration

2015-12-07 Thread Ilari Liusvaara
This came up while writing serializers/deserializers for various TLS
1.2 and 1.3 stuff... Didn't see issues/pull requests for any of
these...

1) ServerConfiguration has field early_data_type, which is of type
EarlyDataType. I don't see definition of that type anywhere. I
guess it was missed when that type was removed?

2) If ServerConfiguration contains an unknown extension, how should
the client behave? Ignore the unknown extension, ignore the entiere
ServerConfiguration or send a fatal alert?

3) Could the group and server_key fields be combined into a single
field of type KeyShareEntry? The layout would be identical, and
one could clearly reuse KeyShareEntry parsing (especially
considering some groups have 2-byte interrior length fields
as opposed to 1-byte).


BTW: The new TLS 1.3 extensions don't have even test values
assigned. The values I put in were:
- early_data: 13000 (0x32C8)
- pre_shared_key: 13001 (0x32C9)
- key_share: 13002 (0x32CA)
- cookie: 13003 (0x32CB)


-Ilari

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


Re: [TLS] TLS 1.3 ServerConfiguration

2015-12-07 Thread Eric Rescorla
On Mon, Dec 7, 2015 at 3:09 AM, Ilari Liusvaara 
wrote:

> This came up while writing serializers/deserializers for various TLS
> 1.2 and 1.3 stuff... Didn't see issues/pull requests for any of
> these...
>
> 1) ServerConfiguration has field early_data_type, which is of type
> EarlyDataType. I don't see definition of that type anywhere. I
> guess it was missed when that type was removed?
>

Oops. This got removed. Will re-add.



> 2) If ServerConfiguration contains an unknown extension, how should
> the client behave? Ignore the unknown extension, ignore the entiere
> ServerConfiguration or send a fatal alert?
>

Ignore the unknown extension seems consistent.


3) Could the group and server_key fields be combined into a single
> field of type KeyShareEntry? The layout would be identical, and
> one could clearly reuse KeyShareEntry parsing


This is a great idea. I will do it!




> (especially
> considering some groups have 2-byte interrior length fields
> as opposed to 1-byte).
>

I noticed this in my implementation as well. I actually propose to just
remove that extra interior length field. Can't see any reason to keep
it.


BTW: The new TLS 1.3 extensions don't have even test values
> assigned. The values I put in were:
> - early_data: 13000 (0x32C8)
> - pre_shared_key: 13001 (0x32C9)
> - key_share: 13002 (0x32CA)
>
- cookie: 13003 (0x32CB)
>

I suggest 40-44 in the order you list above, since we've agreed not to have
specified ranges any more.

-Ekr





>
>
> -Ilari
>
> ___
> 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] [Editorial Errata Reported] RFC7568 (4561)

2015-12-07 Thread Martin Thomson
On 8 December 2015 at 14:49, RFC Errata System
 wrote:
> TLS 1.1 was first drafted in 2002, but not published until 2006. Similarly, 
> TLS 1.2 was drafted in 2006, but not published until 2008.


The date on the documents are indeed wrong.

I recommend holding for document update.

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


[TLS] [Editorial Errata Reported] RFC7568 (4561)

2015-12-07 Thread RFC Errata System
The following errata report has been submitted for RFC7568,
"Deprecating Secure Sockets Layer Version 3.0".

--
You may review the report below and at:
http://www.rfc-editor.org/errata_search.php?rfc=7568&eid=4561

--
Type: Editorial
Reported by: Richard Petrie 

Section: 1.

Original Text
-
Since it was released in 1996, the SSLv3 protocol [RFC6101] has been
   subject to a long series of attacks, both on its key exchange
   mechanism and on the encryption schemes it supports.  Despite being
   replaced by TLS 1.0 [RFC2246] in 1999, and subsequently TLS 1.1 in
   2002 [RFC4346] and 1.2 in 2006 [RFC5246], availability of these
   replacement versions has not been universal.  As a result, many
   implementations of TLS have permitted the negotiation of SSLv3.

   The predecessor of SSLv3, SSL version 2, is no longer considered
   sufficiently secure [RFC6176].  SSLv3 now follows.

Corrected Text
--
Since it was released in 1996, the SSLv3 protocol [RFC6101] has been
   subject to a long series of attacks, both on its key exchange
   mechanism and on the encryption schemes it supports.  Despite being
   replaced by TLS 1.0 [RFC2246] in 1999, and subsequently TLS 1.1 in
   2006 [RFC4346] and 1.2 in 2008 [RFC5246], availability of these
   replacement versions has not been universal.  As a result, many
   implementations of TLS have permitted the negotiation of SSLv3.

   The predecessor of SSLv3, SSL version 2, is no longer considered
   sufficiently secure [RFC6176].  SSLv3 now follows.

Notes
-
TLS 1.1 was first drafted in 2002, but not published until 2006. Similarly, TLS 
1.2 was drafted in 2006, but not published until 2008.

Instructions:
-
This erratum is currently posted as "Reported". If necessary, please
use "Reply All" to discuss whether it should be verified or
rejected. When a decision is reached, the verifying party (IESG)
can log in to change the status and edit the report, if necessary. 

--
RFC7568 (draft-ietf-tls-sslv3-diediedie-03)
--
Title   : Deprecating Secure Sockets Layer Version 3.0
Publication Date: June 2015
Author(s)   : R. Barnes, M. Thomson, A. Pironti, A. Langley
Category: PROPOSED STANDARD
Source  : Transport Layer Security
Area: Security
Stream  : IETF
Verifying Party : IESG

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


[TLS] TLS Record Size Limitation

2015-12-07 Thread Software Engineer 979
Hello,

I'm currently developing an data transfer application using OpenSSL. The
application is required to securely transfer large amounts of data over a
low latency/high bandwidth network. The data being transferred lives in a
3rd part application that uses 1 MB buffer to transfer data to my
application. When I hook OpenSSL into my application I notice an
appreciable decline in network throughput. I've traced the issue the
default TLS record size of 16K. The smaller record size causes the 3rd
party application's buffer to be segmented into 4 16K buffers per write and
the resulting overhead considerably slows things down. I've since modified
the version of OpenSSL that I'm using to support an arbitrary TLS record
size allowing OpenSSL to scale up to 1MB or larger TLS record size. Since
this change, my network throughput has dramatically increased (187%
degradation down to 33%).

I subsequently checked the TLS RFC to determine why a 16K record size was
being used, and all could find was the following:

length
  The length (in bytes) of the following TLSCompressed.fragment.

  The length MUST NOT exceed 2^14 + 1024.

The language here is pretty explicit stating that the length must not
exceed 16K (+ some change).Does anyone know the reason for this? Is there a
cryptographic reason why we shouldn't exceed this message size? Based on my
limited experiment, it would appear that a larger record size would benefit
low latency/high bandwidth networks.
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls