Re: Failed TLS negotiation

RL Bob Morgan <[email protected]> Fri, 25 Sep 1998 11:59:30 -0700 (PDT)
Newsgroups gmane.ietf.apps-tls
Message-ID <[email protected]>
This issue was taken up while working out LDAP use of TLS.  In the LDAP
case folks are interested in continuing the TCP connection even after use
of TLS is ended.  The case you mention, ending TLS due to negotiation
failure, is IMHO just one of those cases.  Tim Dierks suggested these
changes to section 7.2.1 of tls-protocol:

  Original text:

   Each party is required to send a close_notify alert before closing
   the write side of the connection. It is required that the other
   party respond with a close_notify alert of its own and close down
   the connection immediately, discarding any pending writes. It is not
   required for the initiator of the close to wait for the responding
   close_notify alert before closing the read side of the connection.

  Plus the following:

   If the application protocol using TLS provides that any data may be
   carried over the underlying transport, the TLS implementation must
   recieve the responding close_notify alert before indicating to the
   application layer that the TLS connection has ended. If the
   application protocol will not transfer any additional data, but
   will only close the underlying transport connection, then the
   implementation may choose to close the transport without waiting for
   the responding close_notify.

to clarify the behavior.  Tim has said that this language should be
included in an -06 draft, which everyone fervently hopes will be the one
that goes to RFC.

Furthermore, my notes from the TLS WG meeting in Chicago show that Tim D
said that he was intending to add language to -06 saying something like
"changes in state of TLS never imply anything about the state of the
underlying transport", since obviously the current use of "connection" is
ambiguous.  (In fact I find the use of "connection" and "session"
throughout tls-protocol to be inconsistent and confusing, but if the
implementors like it, hey I won't complain.)

So, I'd say that Chris's choice C is acceptable from a protocol point of
view.

 - RL "Bob"

---

On Wed, 23 Sep 1998, Chris Newman wrote:

> When a TLS negotiation fails (as distinct from a TLS protocol error), is
> there a guarantee that all TLS packets are consumed, or is the socket in
> an indeterminate state?
> 
> I'm interested in the scenario where both client and server are set to the
> "use TLS if possible" mode (which I consider the correct default for
> clients and servers -- both should also have a setting to insist on TLS).
> In this scenario, when the TLS negotiation fails the most desirable option
> is to continue the TCP connection in clear text.
> 
> Along these lines, I'm trying to think of what to say (and what to
> implement) for the "STARTTLS" command in IMAP on a TLS negotiation
> failure.  I'd be inclined to say that the server should: 
> 
> (A) close the connection if there's a TLS protocol error.
> (B) Send a "* BYE TLS Required" and close the connection if there's a
>     negotiation failure and the server requires the use of TLS.
> (C) Continue the IMAP protocol if the server is willing to accept
>     connections without TLS.
> 
> Comments?
> 
> 		- Chris