Re: [certid] What security does SRV-ID add when DNS-ID will always match?

Peter Saint-Andre <stpeter@stpeter.im> Wed, 30 March 2011 20:58 UTC

Return-Path: <stpeter@stpeter.im>
X-Original-To: certid@core3.amsl.com
Delivered-To: certid@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id A3B043A6BCD for <certid@core3.amsl.com>; Wed, 30 Mar 2011 13:58:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.464
X-Spam-Level:
X-Spam-Status: No, score=-102.464 tagged_above=-999 required=5 tests=[AWL=0.135, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
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 PAQ3pzHv5VfE for <certid@core3.amsl.com>; Wed, 30 Mar 2011 13:58:35 -0700 (PDT)
Received: from stpeter.im (stpeter.im [207.210.219.233]) by core3.amsl.com (Postfix) with ESMTP id E84A83A68FA for <certid@ietf.org>; Wed, 30 Mar 2011 13:58:34 -0700 (PDT)
Received: from dhcp-12cb.meeting.ietf.org (dhcp-12cb.meeting.ietf.org [130.129.18.203]) (Authenticated sender: stpeter) by stpeter.im (Postfix) with ESMTPSA id 2E63540022; Wed, 30 Mar 2011 15:02:01 -0600 (MDT)
Message-ID: <4D9399D9.2020302@stpeter.im>
Date: Wed, 30 Mar 2011 23:00:09 +0200
From: Peter Saint-Andre <stpeter@stpeter.im>
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9
MIME-Version: 1.0
To: Matt McCutchen <matt@mattmccutchen.net>
References: <4D35EFE7.4060209@KingsMountain.com> <1300568731.1916.34.camel@localhost> <4D9334DB.3040909@stpeter.im> <1301516234.1917.27.camel@localhost>
In-Reply-To: <1301516234.1917.27.camel@localhost>
X-Enigmail-Version: 1.1.1
OpenPGP: url=http://www.saint-andre.com/me/stpeter.asc
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha1"; boundary="------------ms090806040605000304010605"
Cc: IETF cert-based identity <certid@ietf.org>, =JeffH <Jeff.Hodges@KingsMountain.com>
Subject: Re: [certid] What security does SRV-ID add when DNS-ID will always match?
X-BeenThere: certid@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Representation and verification of identity in certificates <certid.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/certid>, <mailto:certid-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/certid>
List-Post: <mailto:certid@ietf.org>
List-Help: <mailto:certid-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/certid>, <mailto:certid-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 30 Mar 2011 20:58:36 -0000

On 3/30/11 10:17 PM, Matt McCutchen wrote:
> On Wed, 2011-03-30 at 15:49 +0200, Peter Saint-Andre wrote:
>> You're right. Jeff and I looked at this issue in detail and worked with
>> our sponsoring AD (Alexey Melnikov) to address it during AUTH48. This
>> was a bit challenging because we wanted to keep the changeset as small
>> as possible. Although we considered more significant modifications, we
>> ended up doing two things in Section 6.2.1 (which defines the rules for
>> constructing a list of reference identifiers)...
>>
>> 1. Changed MUST to SHOULD for DNS-ID:
>>
>> ###
>>
>>   Using the combination of fully qualified DNS domain name(s) and
>>   application service type, the client constructs a list of reference
>>   identifiers in accordance with the following rules:
>>
>>   o  The list SHOULD include a DNS-ID.  A reference identifier of type
>>      DNS-ID can be directly constructed from a fully qualified DNS
>>      domain name that is (a) contained in or securely derived from the
>>      inputs (i.e., the source domain), or (b) explicitly associated
>>      with the source domain by means of user configuration (i.e., a
>>      derived domain).
>>
>> ###
>>
>> 2. Added a paragraph clarifying the need for the change from MUST to SHOULD:
>>
>> ###
>>
>>      Which identifier types a client includes in its list of reference
>>      identifiers is a matter of local policy.  For example, in certain
>>      deployment environments, a client that is built to connect only to
>>      a particular kind of service (e.g., only IM services) might be
>>      configured to accept as valid only certificates that include an
>>      SRV-ID for that application service type; in this case, the client
>>      would include only SRV-IDs matching the application service type
>>      in its list of reference identifiers (not, for example, DNS-IDs).
>>      By contrast, a more lenient client (even one built to connect only
>>      to a particular kind of service) might include both SRV-IDs and
>>      DNS-IDs in its list of reference identifiers.
>>
>> ###
> 
> Unfortunately, this change does not solve the problem.  Consider the
> following three client behaviors with respect to presented identifiers:
> 
> 1. Accept only an SRV-ID.
> 2. Accept an SRV-ID or a DNS-ID.
> 3. Accept a SRV-ID, or accept a DNS-ID if there are no SRV-IDs.
> 
> Both the old and new versions of the spec allow #1 and #2, but there is
> no way consistent with the spec to achieve #3 because the first sentence
> of section 6.2.1 requires that the reference identifier list be
> independent the presented identifier list.  And #3 is what is required
> for existing applications that use DNS-IDs to transition smoothly to
> SRV-IDs and achieve the highest level of security supported by both
> sides.

I think that this is a matter of local policy -- a client could prefer
SRV-IDs yet still accept DNS-IDs, and as far as I can see that behavior
is not expressly forbidden by the spec.

However, in order to explicitly specify that the client's behavior would
be modified based on what the server presents, we would have needed to
change the entire processing model from what I call the inclusion
approach (if there is an identifier type that you might want to check
then you simply include it in the list of reference identifiers) to what
I call the conditional approach (the client's processing is conditioned
on the presented identifiers that it finds in the server's certificate).
Although Jeff and I considered making that change, the spec has always
been based on the inclusion approach, so modifying it to use the
conditional approach would have necessitated a very significant rewrite
at this late stage in the lifecycle. Jeff and I, and our responsible AD,
were simply not comfortable with performing such major surgery during
AUTH48.

Peter

-- 
Peter Saint-Andre
https://stpeter.im/