Re: [TLS] simplistic renego protection

Martin Rex <mrex@sap.com> Tue, 17 November 2009 00:49 UTC

Return-Path: <mrex@sap.com>
X-Original-To: tls@core3.amsl.com
Delivered-To: tls@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id DF1DE3A6A53 for <tls@core3.amsl.com>; Mon, 16 Nov 2009 16:49:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.974
X-Spam-Level:
X-Spam-Status: No, score=-5.974 tagged_above=-999 required=5 tests=[AWL=0.275, BAYES_00=-2.599, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hz49uOMo9Te7 for <tls@core3.amsl.com>; Mon, 16 Nov 2009 16:49:36 -0800 (PST)
Received: from smtpde03.sap-ag.de (smtpde03.sap-ag.de [155.56.68.140]) by core3.amsl.com (Postfix) with ESMTP id 327C63A6A4F for <tls@ietf.org>; Mon, 16 Nov 2009 16:49:36 -0800 (PST)
Received: from mail.sap.corp by smtpde03.sap-ag.de (26) with ESMTP id nAH0nX2Q004939 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 17 Nov 2009 01:49:33 +0100 (MET)
From: Martin Rex <mrex@sap.com>
Message-Id: <200911170049.nAH0nWcH010742@fs4113.wdf.sap.corp>
To: david-sarah@jacaranda.org
Date: Tue, 17 Nov 2009 01:49:32 +0100
In-Reply-To: <4B01A872.1010509@jacaranda.org> from "David-Sarah Hopwood" at Nov 16, 9 07:30:58 pm
MIME-Version: 1.0
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Scanner: Virus Scanner virwal08
X-SAP: out
Cc: tls@ietf.org
Subject: Re: [TLS] simplistic renego protection
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: mrex@sap.com
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tls>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Nov 2009 00:49:38 -0000

David-Sarah Hopwood wrote:
> 
> Martin Rex wrote:
> > Do you realize how much implementation and testing is involved when
> > shipping the fix as a TLS extension.
> 
> Yes. Are you suggesting that a fix that uses some other ad hoc signalling
> mechanism does not need to undergo thorough interoperability testing?

For the ad-hoc signaling a patched browser will be perfectly
sufficient for testing.

For TLS extensions, you will need to develop yourself a whole test client
that is able to generate a certain number of test-scenarios.

See here: http://www.ietf.org/mail-archive/web/tls/current/msg04351.html


> 
> > If someone with an old server, who doesn't implement renegotiation and
> > TLS extensions wants to add this patch, he will need to add the entire
> > TLS extensions handling in a generic fashion and require a significantly
> > larger interop testing scenario to make sure that it acutally works:
> 
> If a server doesn't implement renegotiation, then it is already as secure
> as it can be with respect to this attack. The server only needs to be
> patched so that strict clients will recognize it as patched.
> 
> To achieve that, the server clearly must signal something in a message
> that it sends. If that is not done using an extension, then it must be
> done using another mechanism such as recognizing a magic ciphersuite and
> stuffing its response in some covert channel (which I cannot believe we
> are even seriously discussing, frankly).

Huh?

If the client is signaling that it is updated and will understand
whatever the spec says the server should indicate in return,
then this is just fine.  The spec could even go as far as completely
redesigning the ServerHello, completely different from TLS.

We could also invent a new handshake message to be sent just after
ServerHello, if people prefer this instead of re-purposing
an existing element of ServerHello in a well-defined situation.
(it would need to be a handshake message, alerts are invisible
to the handshake message hash and finished mac).


> 
> Remember, complicated kludges such as fallback to accomodate broken server
> implementations are only needed, if they are needed at all, on the client
> side. Implementing extensions on the server side is completely trivial.
> Many server implementors have already done that work, whereas *no* server
> implementors have done the work to support any newly invented signalling
> mechanism.

I have seriously thought about how to implement my ideas in OpenSSL,
and there your assumption about TLS extensions being easier do _not_ apply.


> 
> > You're going to waste network bandwith eternally in a completely
> > useless fashion.
> 
> The bandwidth usage is completely insignificant, even for highly constrained
> environments. If I've calculated correctly, the size of the extension is
> 5 bytes in each direction in the most common, non-renegotiating case
> (17 or 29 bytes when renegotiating), and it adds no round-trips. Compare
> that to X.509 certificate sizes, which are typically at least 1 KiB each.

It is still pure waste, any way you look at it.

-Martin