On Thu, Nov 3, 2016 at 7:31 AM, Martin Rex <m...@sap.com> wrote:
> Ilari Liusvaara wrote:
>>>>
>>>> Hiding the types does have its benefits (and it is also used for
>>>> zero-overhead padding scheme).
>>>
>>> Nope, ZERO benefits.  But it totally breaks the middleware
>>> _at_the_endpoints_!
>>
>> Also, things like this should have been discussed like year or two
>> ago. Right now it is too late for major changes like this without good
>> cryptographic justifications (which AFAICT don't exist).
>
> They WERE brought up back then, and several times in between.
> But the TLSv1.3 proposal has still not been fixed so far.
> Ignorance does not make problems go away.  Instead, it means that
> one will have to fix it later.
>
>
> Since then, I've seen exactly ZERO rationale why the cleartext contenttype,
> which has existed through SSLv3->TLSv1.2 would be a problem.  With the
> removal of renegotiation from TLSv1.3, it is even less of a problem to
> keep the contenttype in the clear.
>
> The removal of visibility of ContentType in TLSv1.3 will be a complete
> non-starter for TLSv1.3 as a drop-in replacement to TLSv1.2 for certain
> software architectures (including a lot of stuff we've been shipping for the
> last 5 years), because it is actively being used to signal state of
> the communication channel to the application and to *NOT* break application
> architecture that relies on (new) application data remaining visible on
> network sockets as "network readable" events.

This I do not understand. I may make some technical errors in below,
and would appreciate correction.

I assume we have an application that is using poll() or select() or
somesuch for nonblocking IO (maybe something fancier, but that is
okay).

This application grabs data from a ready connection, rams it through
the TLS implementation, and then looks at what comes out. But reading
from the connection clears the data available state! However, it's
never the case that there is visible data absent a network read or
write after the handshake.

So what is the content type doing here? Does the application not call
a TLS implementation provided state function to determine what state
the connection is in? And if so why does the record layer need to
know, as opposed to the handshake one? I'm not seeing why the above
style implementation is impossible: Microsoft doesn't seem to think so
and hasn't complained about this change.

Sincerely,
Watson Ladd

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

Reply via email to