Re: [TLS] draft-rescorla-tls-renegotiate and MITM resistance

Yoav Nir <ynir@checkpoint.com> Tue, 10 November 2009 21:53 UTC

Return-Path: <ynir@checkpoint.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 8FA423A6B65 for <tls@core3.amsl.com>; Tue, 10 Nov 2009 13:53:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[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 5f48IAVc7rCV for <tls@core3.amsl.com>; Tue, 10 Nov 2009 13:53:24 -0800 (PST)
Received: from dlpdemo.checkpoint.com (dlpdemo.checkpoint.com [194.29.32.54]) by core3.amsl.com (Postfix) with ESMTP id 53A883A6977 for <tls@ietf.org>; Tue, 10 Nov 2009 13:53:24 -0800 (PST)
X-CheckPoint: {4AF9DDD2-9-14201DC2-FFFF}
Received: by dlpdemo.checkpoint.com (Postfix, from userid 105) id E135C29C00F; Tue, 10 Nov 2009 23:53:50 +0200 (IST)
Received: from michael.checkpoint.com (michael.checkpoint.com [194.29.32.68]) by dlpdemo.checkpoint.com (Postfix) with ESMTP id B581929C002; Tue, 10 Nov 2009 23:53:50 +0200 (IST)
X-CheckPoint: {4AF9DDD1-0-14201DC2-FFFF}
Received: from il-ex01.ad.checkpoint.com (localhost [127.0.0.1]) by michael.checkpoint.com (8.12.10+Sun/8.12.10) with ESMTP id nAALroc6026264; Tue, 10 Nov 2009 23:53:50 +0200 (IST)
Received: from il-ex01.ad.checkpoint.com ([126.0.0.2]) by il-ex01.ad.checkpoint.com ([126.0.0.2]) with mapi; Tue, 10 Nov 2009 23:53:52 +0200
From: Yoav Nir <ynir@checkpoint.com>
To: "mrex@sap.com" <mrex@sap.com>, Marsh Ray <marsh@extendedsubset.com>
Date: Tue, 10 Nov 2009 23:53:51 +0200
Thread-Topic: [TLS] draft-rescorla-tls-renegotiate and MITM resistance
Thread-Index: AcpiRVRY/rugjbG1TuuwsSqYkAg6LwACPu0d
Message-ID: <006FEB08D9C6444AB014105C9AEB133FB36A4EBF7E@il-ex01.ad.checkpoint.com>
References: <4AF8E755.5020208@extendedsubset.com> from "Marsh Ray" at Nov 9, 9 10:08:53 pm, <200911102034.nAAKYjkA023781@fs4113.wdf.sap.corp>
In-Reply-To: <200911102034.nAAKYjkA023781@fs4113.wdf.sap.corp>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "tls@ietf.org" <tls@ietf.org>, "Nicolas.Williams@sun.com" <Nicolas.Williams@sun.com>
Subject: Re: [TLS] draft-rescorla-tls-renegotiate and MITM resistance
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: Tue, 10 Nov 2009 21:53:25 -0000

Martin Rex wrote:
> Marsh Ray wrote:
>>
>> Nicolas Williams wrote:
>> > On Mon, Nov 09, 2009 at 10:52:31PM +0100, Martin Rex wrote:
>> >> I whish there was a constraint that an identity/certificate that has
>> >> been established for a party during the TLS handshake MUST not change
>> >> during re-negotiation,
>>
>> Hmm, few questions about that plan:
>>
>> Is this currently a defined concept in TLS: equivalence of identity?
>
> blob_compare(current-cert-blob,new-cert-blob)
>
> Everything more complicated should be an apps issue--provided that
> the apps has provided "convincing arguments" to the TLS implementation
> (i.e. correctly instrumented the relevant APIs)
> that it is competent to perform such a re-authentication as a result
> of an identity change during renegotiation.

I think it's enough to blob-compare the subject DN. As long as both certificates validate, and the subjects are the same, it's enough for "equivalence of identity". I guess applications may introduce more relaxed rules of identity equivalence (such as matching CN), but matching DN should be enough even for the TLS protocol.

An API for the application to determine if old identity is equivalent to the new identity sounds good, but I don't think it would be used correctly in practice. The rule for matching two different certificates for the same EE may not be product-specific or implementation-specific, but may be specific for the installation. A certain organization gave everyone one certificate for their identity, and another for their job.  Matching the two certificates involved querying a directory to find our whether this individual actually had that position. It's an abuse of PKIX, and no product would be ready to employ such logic, unless it was written locally by the IT department of that organization. 

So I think as much of the logic as possible should be in the TLS layer, rather than the application.