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

Matt McCutchen <matt@mattmccutchen.net> Sat, 19 March 2011 21:04 UTC

Return-Path: <matt@mattmccutchen.net>
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 20B043A69B8 for <certid@core3.amsl.com>; Sat, 19 Mar 2011 14:04:03 -0700 (PDT)
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 FC79aMv0VCP1 for <certid@core3.amsl.com>; Sat, 19 Mar 2011 14:04:01 -0700 (PDT)
Received: from homiemail-a1.g.dreamhost.com (caiajhbdcbhh.dreamhost.com [208.97.132.177]) by core3.amsl.com (Postfix) with ESMTP id E35433A69A1 for <certid@ietf.org>; Sat, 19 Mar 2011 14:04:01 -0700 (PDT)
Received: from homiemail-a1.g.dreamhost.com (localhost [127.0.0.1]) by homiemail-a1.g.dreamhost.com (Postfix) with ESMTP id 4C7BF34806B; Sat, 19 Mar 2011 14:05:33 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; c=nofws; d=mattmccutchen.net; h=subject:from :to:cc:in-reply-to:references:content-type:date:message-id :mime-version:content-transfer-encoding; q=dns; s= mattmccutchen.net; b=P2SbmrzIGreyitcDzoxd+dqfswRXuxonsa0I+RIOFOK ZS6HtrFededOvge2IL0An5GYXOOvNNUScWQYtmllwvA6PxfpuLsP1d97IrpliO0Q QCGN3ixb/iKbaiU4An03pmSIOVDnRB/X+H8QQ5b5WxgHN0fm+NhEgItCP4LNewwE =
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=mattmccutchen.net; h= subject:from:to:cc:in-reply-to:references:content-type:date :message-id:mime-version:content-transfer-encoding; s= mattmccutchen.net; bh=byDyC5W3vvT4U6gtP9AGOs2ulDI=; b=QL0k1Sbhta R2wffAUASftQhecnDdYE/ZnryOLn8MSKPh2NjbdyTwUBaCj4ysvQjoM0QCriaH0j 2PBkIoeZwSOB9k/vupAdSbcFmp3N9lpUBa6cbYiQ1Yxy+Zea3KmeFtn91EEitShJ rQR27VgKg9gQsHs+ACPNAsaJpWEHIZGHY=
Received: from [192.168.1.40] (pool-96-231-2-98.washdc.east.verizon.net [96.231.2.98]) (Authenticated sender: matt@mattmccutchen.net) by homiemail-a1.g.dreamhost.com (Postfix) with ESMTPA id D6F99348062; Sat, 19 Mar 2011 14:05:32 -0700 (PDT)
From: Matt McCutchen <matt@mattmccutchen.net>
To: =JeffH <Jeff.Hodges@KingsMountain.com>
In-Reply-To: <4D35EFE7.4060209@KingsMountain.com>
References: <4D35EFE7.4060209@KingsMountain.com>
Content-Type: text/plain; charset="UTF-8"
Date: Sat, 19 Mar 2011 17:05:31 -0400
Message-ID: <1300568731.1916.34.camel@localhost>
Mime-Version: 1.0
X-Mailer: Evolution 2.32.3
Content-Transfer-Encoding: 7bit
Cc: IETF cert-based identity <certid@ietf.org>
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: Sat, 19 Mar 2011 21:04:03 -0000

On Tue, 2011-01-18 at 11:54 -0800, =JeffH wrote:
>  > Are you saying that a client that "supports checking of identifiers of
>  > type SRV-ID and URI-ID" MUST NOT compare two DNS-IDs, because they do
>  > not contain the service type information that the client is required to
>  > check?  If so, then in the following example:
>  >
>  > Reference identifiers:
>  > 1. SRV-ID _imaps.example.net
>  > 2. DNS-ID example.net
>  >
>  > Presented identifiers:
>  > 4. DNS-ID example.net
>  >
>  > we would get "no match", when it seems a match would be helpful for
>  > backward compatibility.
> 
> 
> I think we may have intended to allow for the latter with the "SHOULD" clause 
> of the 2nd bullet of S6.2.1..
> 
>     o  If a server for the service type is typically discovered by means
>        of DNS SRV records, then the list SHOULD include an SRV-ID.
> 
> ..i.e. if the client wishes to be more lenient in what presented idents it 
> checks against, it could leave the reference SRV-ID off it's list of reference 
> idents to use to check against the presented idents.
> 
> And so the resultant behavior is ambiguous given the way S6.5's "MUST" clause 
> is crafted where it says "If a client supports checking of identifiers of type 
> SRV-ID..."
> 
> It should probably say something like..
> 
>    If a client supports checking of identifiers of type SRV-ID or
>    URI-ID, and identifiers of those type(s) are included in the
>    reference identifier list, then it MUST also check the service type...

This is an improvement.  You could just say "if at least one identifier
of type SRV-ID or URI-ID is included in the reference identifier list",
because presumably clients that do not support them will not add them to
the list.

However, you are still forcing the client to decide in advance whether
to require a service type.  Alternatively, the requirement could apply
if at least one reference identifier /and/ at least one presented
identifier contain a service type.  This would realize the general
principle of providing the highest level of security supported by both
sides.  This will be a more realistic client behavior for applications
currently transitioning to the use of SRV-IDs, though it means those
clients do not get any additional security connecting to a service until
all other certificates for that DNS name contain SRV-IDs.  (Note that
clients for the other services need not actually use the SRV-IDs.)
Applications that used SRV-IDs from the beginning can continue to
require a presented SRV-ID.

Proposed replacement for the text in Section 6.5 preceding Section
6.5.1:

-----
Identifiers of type SRV-ID and URI-ID contain service type information.
Clients are usually designed to communicate with one type of service,
such as websites, email services, VoIP services, or IM services, and can
use this information to check that they are communicating with the
intended service.

If at least one reference identifier and at least one presented
identifier contain service type information, then the client MUST check
the service type of the application service with which it communicates
(in addition to checking the domain name as described above).  That is,
a reference identifier and a presented identifier cannot match unless
they both contain service type information and the service types match,
as described below.  If at least one reference identifier contains a
service type, but no presented identifier does, the client MAY accept a
match of DNS name only for backward compatibility.
-----

I regret sending this at the eleventh hour.  I identified this concern
as soon as I read your message, but I got busy and let the issue slip.
Assuming others agree with this proposed change, if it is too late to go
in RFC 6125, at least it can be queued for the next update.

-- 
Matt