Re: [TLS] Issue 16: Alert clarifications
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [TLS] Issue 16: Alert clarifications



Bodo Moeller wrote:
> 
> >> Why not simply "MUST NOT tear down"? (this requirement would apply 
> >> only when TLS 1.2 is negotiated, so what some implementations did
> >> with 1.0 or 1.1 doesn't matter)
> 
> > I don't undestand what should be new to this.
> 
> I used to think so too.  However, RFC 2246 and RFC 4346 both explicity
> say that
> 
>                  if an alert with a level of warning is received, the
>    receiving party MAY decide at its discretion whether to treat this as
>    a fatal error or not.

I don't see how this changes anything.  A Server that receives a
no_certificate alert instead of a requested client SSL cert may
treat this as a fatal error as well.  But that's a determination
made by the server, and such a determination is *NOT* covered
by the peer's alert message (the peer should be waiting for
continuation of the communication/handshake).


> 
> Sometimes this actually *does* make a bit of sense, e.g. when
> receiving a certificate-related alert when you know you have to be
> authenticated for whatever you intend to do with the TLS connection;
> or if you want to insist on renegotiation.  It would make much more
> sense, though, if the party that intends to close the connection in
> response to a warning alert is required to send a fatal alert first.

This is how I understood the idea behind the seperate warning
and fatal alerts.


> Then the warning alert itself does not close the connection, and we
> have an explicit fatal alert that indicates to the other party that
> the connection will be closed.

There is one particular warning alert that terminates the currently active
SSL session (and usually, but not necessarily the connection):
the SSL close notify alert.

Reusing a (tcp) communication channel after an SSL close notify alert
is a littly tricky (making sure that there are no close notify alerts
left in the channel), but it is possible--at least if you know exactly
what the SSL implementations on both sides are doing and that they
offer a call that removes the (probably encrypted) close-notify alerts
properly.


> 
> This is what my proposal would achieve:
> 
>    If an alert with a level of warning is sent and received, generally
>    the connection can continue normally.  If the receiving party
>    decides not to proceed with the connection (e.g., after having
>    received a no_renegotiation alert that it is not willing to
>    accept), it MUST send a fatal alert to terminate the connection.
> 
> Nelson has suggested spelling out that fatal alerts should be required
> for all fatal errors, which makes sense too.  That is, anytime a
> party closes the connection because of whatever error, it should send
> a fatal alert unless it has already sent or received one, or unless
> it is impossible to send anything.


The description of Error (alerts) in SSLv3 (Nov.96) says this:

  5.4.2 Error alerts

     Error handling in the SSL Handshake protocol is very simple.  When
     an error is detected, the detecting party sends a message to the
     other party.  Upon transmission or receipt of an fatal alert
     message, both parties immediately close the connection.  Servers
     and clients are required to forget any session-identifiers, keys,
     and secrets associated with a failed connection.  The following
     error alerts are defined:

A no_certificate alert sent by an SSL/TLS client is not an error,
it is a protocol option requested by the server and rejected by the
client.  If the server considers this an error "the detecting party
sends a message to the other party."  If that message is a fatal
alert, the communication ends.  If the peer simply closes the
communication channel without sending the required (alert) message
it is defective.


-Martin

_______________________________________________
TLS mailing list
TLS at lists.ietf.org
https://www1.ietf.org/mailman/listinfo/tls




Note: Messages sent to this list are the opinions of the senders and do not imply endorsement by the IETF.