Re: [TLS] matching identity, by default

Marsh Ray <marsh@extendedsubset.com> Fri, 04 December 2009 01:12 UTC

Return-Path: <marsh@extendedsubset.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 78C203A6933 for <tls@core3.amsl.com>; Thu, 3 Dec 2009 17:12:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.504
X-Spam-Level:
X-Spam-Status: No, score=-2.504 tagged_above=-999 required=5 tests=[AWL=0.095, BAYES_00=-2.599]
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 mkyCgQcgcLS0 for <tls@core3.amsl.com>; Thu, 3 Dec 2009 17:12:17 -0800 (PST)
Received: from mho-01-ewr.mailhop.org (mho-01-ewr.mailhop.org [204.13.248.71]) by core3.amsl.com (Postfix) with ESMTP id 825753A692E for <tls@ietf.org>; Thu, 3 Dec 2009 17:12:16 -0800 (PST)
Received: from xs01.extendedsubset.com ([69.164.193.58]) by mho-01-ewr.mailhop.org with esmtpa (Exim 4.68) (envelope-from <marsh@extendedsubset.com>) id 1NGMiN-000EqT-Kn; Fri, 04 Dec 2009 01:12:07 +0000
Received: from [127.0.0.1] (localhost [127.0.0.1]) by xs01.extendedsubset.com (Postfix) with ESMTP id 0CA4B603C; Fri, 4 Dec 2009 01:12:04 +0000 (UTC)
X-Mail-Handler: MailHop Outbound by DynDNS
X-Originating-IP: 69.164.193.58
X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/mailhop/outbound_abuse.html for abuse reporting information)
X-MHO-User: U2FsdGVkX1+exVV5HOlju5kLZGNrH1+Bbke5ItDzlVI=
Message-ID: <4B1861E1.90204@extendedsubset.com>
Date: Thu, 03 Dec 2009 19:12:01 -0600
From: Marsh Ray <marsh@extendedsubset.com>
User-Agent: Thunderbird 2.0.0.23 (Windows/20090812)
MIME-Version: 1.0
To: mrex@sap.com
References: <200912040052.nB40qAq8025552@fs4113.wdf.sap.corp>
In-Reply-To: <200912040052.nB40qAq8025552@fs4113.wdf.sap.corp>
X-Enigmail-Version: 0.96.0
OpenPGP: id=1E36DBF2
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
Cc: tls@ietf.org, james@manger.com.au
Subject: Re: [TLS] matching identity, by default
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
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: Fri, 04 Dec 2009 01:12:18 -0000

Martin Rex wrote:
> Marsh Ray wrote:
>>> The fact that calls to getServerCertificates() and
>>> getPeerPrincipal(), or multiple calls to either of these methods, can
>>> return different identity information each time is highly likely to
>>> surprise app developers -- which is a recipe for vulnerabilities.
>>>
>>> TLS libraries ensuring that any authenticated peer identity does not
>>> change across renegotiations -- unless the app has explicitly
>>> indicated it is expecting this -- should be a requirement.
>> It's completely fixed by draft-ietf-tls-renegotiation, no additional
>> constraints on the certs are necessary.
> 
> That is a pretty bold statement and doesn't match the question.
> 
> Unless you and Nasko have made a U-turn on your position about "lockdown
> of established identities during renegotiation", the change of
> the certificate will continue to be possible, and therefore
> "can return different identity information each time" remains valid.

Yes, it will be possible for authentication credentials/certificates to
change. That's one of the primary purposes of renegotiation.

No, it will not be possible for a MitM or other network-level attacker
to coordinate the change.

> The TLS renegotiation vulnerability allowed to pass along the
> TLS endpoint during renegotiation freely, an in particular to
> unsuspecting TLS peers.
> 
> The secure renegotiation will ensure that the endpoint of
> a renegotiated TLS session will be tied securely to the
> endpoints of the enclosing TLS session.

It ensures continuity-of-identity of the client and server across all
the [unnamed things between handshakes] on the connection.

This is not the same as saying the certificates never change, but it
restores the missing and essential property that everyone thought they
were getting when they made a connection with the "secure sockets layer"
protocol.

In a sense, it takes the authentication which is currently per-session
and makes it cumulative across the entire connection. Applications may
not treat it that way, but at least one important case (HTTPS) does.

> And if one does _not_ use any of the plain RSA ciphersuites (but instead
> the DHE ones), then even an attacker in possession of the
> server's long term credential (like a disgruntled admin)
> will not be able to manipulate the renegotiation and get someone
> else to authenticate injected requests.

Someone in possession of an RSA private key can do anything that cert
represents except decrypt a previously-captured DH session. It's
debatable whether or not this is even an "attack" since he has the
primary (and usually only) credentials.

> What the renegotiation fix also not fixes is any potential
> security vulnerabilites from the interleaving of
> application data during the renegotiation handshake.

Yes, but I suspect that those attacks are greatly mitigated by
preventing a MitM from monkeying around with the renegotiation in the
first place.

- Marsh