Re: [TLS] [xmpp] Review of draft-saintandre-tls-server-id-check

Bernard Aboba <bernard.aboba@gmail.com> Wed, 08 September 2010 15:38 UTC

Return-Path: <bernard.aboba@gmail.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 3ACC83A6956; Wed, 8 Sep 2010 08:38:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level:
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001]
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 G6D4AwcAvHQ1; Wed, 8 Sep 2010 08:38:28 -0700 (PDT)
Received: from mail-ew0-f44.google.com (mail-ew0-f44.google.com [209.85.215.44]) by core3.amsl.com (Postfix) with ESMTP id 4647D3A68E9; Wed, 8 Sep 2010 08:38:25 -0700 (PDT)
Received: by ewy22 with SMTP id 22so164519ewy.31 for <multiple recipients>; Wed, 08 Sep 2010 08:38:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:received:in-reply-to :references:from:date:message-id:subject:to:cc:content-type; bh=WnCJ8qhx4w9VHtKDRkxg5bTWSlDKa8etPtlqSW7xJ34=; b=EZus+Xawlhkeo8omKuAhFcKp16gHmUh7iYDDC3SiGZz19OpNxW1Z1ExH+HNeBE2SMt U5t/m++jHrYB+OXB5yXuyelwiVg0cWDIWD15HMwDCCGMeIBIgdwCkFMD6/HxcqAAU/T8 YPZ6qP2qt+FfIH/EBB5JBijVGc4FHg+0NEywE=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; b=P8CmWzqim1/m0xkrmkzcWM2vwVFRowo9LJ+lHqD0+tySCqckV8EzBTgy3h3cb7upvN p2oiflZREfJzpDK+YuNTg7gkrLoy9fZNxiLf5ZE5TKZX6p1UHr1/sXjAjUv0grssjDb9 4ptVHBA8zhiHnOUFUmvITt+e43EGmB4DWv03I=
Received: by 10.216.144.22 with SMTP id m22mr91892wej.0.1283960330470; Wed, 08 Sep 2010 08:38:50 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.216.70.70 with HTTP; Wed, 8 Sep 2010 08:38:30 -0700 (PDT)
In-Reply-To: <AANLkTi=DgKbkomuZDkpwJ0+_ZzXsxVXSnXb_Cig-y2L8@mail.gmail.com>
References: <BLU137-W32189ED2D1B0FDFCBF639F93840@phx.gbl> <4C7C3442.9020403@stpeter.im> <BLU137-DS3BE7BD3D47980030F667A93890@phx.gbl> <4C7D4853.8020507@stpeter.im> <AANLkTi=DgKbkomuZDkpwJ0+_ZzXsxVXSnXb_Cig-y2L8@mail.gmail.com>
From: Bernard Aboba <bernard.aboba@gmail.com>
Date: Wed, 08 Sep 2010 08:38:30 -0700
Message-ID: <AANLkTikeUiwjZYEBYzc7CYEEvZGafakP0QbmJyzMuwc0@mail.gmail.com>
To: Peter Saint-Andre <stpeter@stpeter.im>
Content-Type: multipart/alternative; boundary="0016e6d58a78674983048fc14fd5"
Cc: Bernard Aboba <bernard_aboba@hotmail.com>, XMPP <xmpp@ietf.org>, Cyrus Daboo <cyrus@daboo.name>, tls@ietf.org, pkix@ietf.org
Subject: Re: [TLS] [xmpp] Review of draft-saintandre-tls-server-id-check
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: Wed, 08 Sep 2010 15:38:31 -0000

Here's a forwarded message from the author of RFC 4985:



-----Original Message-----
From: Stefan Santesson [mailto:stefan@aaa-sec.com]
Sent: Wednesday, September 08, 2010 7:21 AM
To: Bernard Aboba; daedulus@btconnect.com; ietf@ietf.org; stpeter@stpeter.im
Subject: Re: Review of draft-saintandre-tls-server-id-check



My apology,



I just realized that the document defines "source domain" as what I thought
would be the "target domain"



   source domain:  The fully-qualified DNS domain name that a client

      expects an application service to present in the certificate.



Which makes my comments below a bit wrong.



I think it would be better to discuss this in terms of "reference
identifier" and "presented Identifier".



   presented identifier:  An identifier that is presented by a server to

      a client within the server's PKIX certificate when the client

      attempts to establish a secure connection with the server; the

      certificate can include one or more presented identifiers of

      different types.



   reference identifier:  An identifier that is used by the client for

      matching purposes when checking the presented identifiers; the

      client can attempt to match multiple reference identifiers of

      different types.



I see no problem in obtaining the reference identifier from a DNS lookup an
the comparing it with a presented identifier in the certificate.



Why would you require the reference identity to be provided by a human user?



/Stefan







On 10-09-08 3:40 PM, "Stefan Santesson" <stefan@aaa-sec.com> wrote:



> Being the author of RFC 4985 I agree with most of you say here.

>

> Comments in line;

>

> On 10-09-06 8:48 PM, "Bernard Aboba" <bernard_aboba@hotmail.com> wrote:

>

>> That was in fact my original question.

>>

>> Section 5.1 states that the source domain and service type MUST be

>> provided by a human user, and can't be derived.  Yet in an SRV or

>> DDDS lookup, it is not the source domain that is derived, it is the

>> target domain.  Given that, it's not clear to me what types of DNS

>> resolutions are to be discouraged.

>>

>

> This puzzled me as well. The domain of interest is the domain where

> the requested service is located = target domain.

>

>> As noted elsewhere, RFC 4985 appears to require matching of the

>> source domain/service type to the SRV-ID in the certificate.

>

> It is not. RFC 4985 says the following in section 2:

>

>       _Service.Name

>

> <snip>

>

>       Name

>          The DNS domain name of the domain where the specified service

>          is located.

>

>

>>  Such

>> a process would be consistent with a match between user inputs (the

>> source domain and service type) and the presented identifier (the

>> SRV-ID).

>>

>

> Since this is not the definition of SRVName, this type of matching

> does not apply.

>

>>

>>> Yet, Section 5.1 states:

>>>

>>> When the connecting application is an interactive client, the source

>>>    domain name and service type MUST be provided by a human user (e.g.

>>>    when specifying the server portion of the user's account name on the

>>>    server or when explicitly configuring the client to connect to a

>>>    particular host or URI as in [SIP-LOC]) and MUST NOT be derived from

>>>    the user inputs in an automated fashion (e.g., a host name or domain

>>>    name discovered through DNS resolution of the source domain).  This

>>>    rule is important because only a match between the user inputs (in

>>>    the form of a reference identifier) and a presented identifier

>>>    enables the client to be sure that the certificate can legitimately

>>>    be used to secure the connection.

>>>

>>>    However, an interactive client MAY provide a configuration setting

>>>    that enables a human user to explicitly specify a particular host

>>>    name or domain name (called a "target domain") to be checked for

>>>    connection purposes.

>>>

>>> [TP] what I thought was about to be raised here was a contradiction

>>> that

>>> RFC4985

>>> is all about information gotten from a DNS retrieval whereas the

>>> wording of

>>> s5.1

>>> in this I-D

>>>

>>> "the source

>>>    domain name and service type  ...  MUST NOT be derived from

>>>    the user inputs in an automated fashion (e.g., ... discovered

>>> through DNS resolution ... "

>>>

>>> would appear to exclude DNS resolution.  If DNS resolution is off

>>> limits, then

>>> RFC4985 would appear not to apply.

>>>

>

> RFC 4985 provides the client with a way to authenticate a host that it

> believes is authorized to provide a specific service in the target domain.

>

> It does not matter from where the client has obtained that

> authorization information or whether that information is trustworthy.

>

> A client may very well do an insecure DNS lookup to discover what host

> is providing the requested service. The client would then contact that

> host and obtained it's certificate. If the certificate is trusted and

> it's SRVName matches the information provided from the DNS server, then
everything is fine.

>

> The client now has assurance from the CA that this host is in fact

> authorized to provide this service.

>

>

> /Stefan

>