Re: [dane] Behavior in the face of no answer?

Eric Rescorla <ekr@rtfm.com> Tue, 15 May 2012 02:56 UTC

Return-Path: <ekr@rtfm.com>
X-Original-To: dane@ietfa.amsl.com
Delivered-To: dane@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 09B5821F8539 for <dane@ietfa.amsl.com>; Mon, 14 May 2012 19:56:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.877
X-Spam-Level:
X-Spam-Status: No, score=-102.877 tagged_above=-999 required=5 tests=[AWL=0.100, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-1, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kBUXhGydjJnZ for <dane@ietfa.amsl.com>; Mon, 14 May 2012 19:56:16 -0700 (PDT)
Received: from mail-vb0-f44.google.com (mail-vb0-f44.google.com [209.85.212.44]) by ietfa.amsl.com (Postfix) with ESMTP id 55BD021F851B for <dane@ietf.org>; Mon, 14 May 2012 19:56:16 -0700 (PDT)
Received: by vbbez10 with SMTP id ez10so6799799vbb.31 for <dane@ietf.org>; Mon, 14 May 2012 19:56:15 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-originating-ip:in-reply-to:references:from:date :message-id:subject:to:cc:content-type:content-transfer-encoding :x-gm-message-state; bh=elM0dfcdN4SfzxFI2FDIYZhy/SUzzIjycX28VEJAQyw=; b=PpdXX4zoDNquXVcP0I3LYvIYd2qAI0R3nojlQS0cSHOztu4h3USh7D4QbFpAUg2tGo VtGS7YmOABziYEB9JN+PF6ifMpQkykAEj4j+XxtKkT7IRqJibgVlSMyARDNRbhx7YLdt zPEUEwWpxILUjELJXeLnoJfYN/3OScTtjGNPl451+C26tOkZ8rnUGmI4TcoM71Ree0d6 Kf6BIeai+WOrVfYNDPi8z5Savlxhr63FHPG5yzZaaneH85KsGySXxygujauAGR3Ugv2d yZzckAs54CFYU1D2leHkYsguobqcMRUEvCy5y1c4HgzZXefcoFCwWmb13Z0sIMUOq/L9 lIcw==
Received: by 10.52.100.229 with SMTP id fb5mr5031911vdb.102.1337050575847; Mon, 14 May 2012 19:56:15 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.52.35.209 with HTTP; Mon, 14 May 2012 19:55:35 -0700 (PDT)
X-Originating-IP: [74.95.2.173]
In-Reply-To: <alpine.LFD.2.02.1205142229552.10990@bofh.nohats.ca>
References: <CABcZeBMY26xrfvAx=UsYN2XnuONZ2vPy9tNwHQALudd=yQDvgA@mail.gmail.com> <643D87CD-D01E-47B8-82E5-D3F57D50C80B@vpnc.org> <alpine.LFD.2.02.1205142229552.10990@bofh.nohats.ca>
From: Eric Rescorla <ekr@rtfm.com>
Date: Mon, 14 May 2012 19:55:35 -0700
Message-ID: <CABcZeBMS9cJ3m6JwJED7XAqdsF=zbTUUU_o3-opiZvqMyr7mdw@mail.gmail.com>
To: Paul Wouters <paul@cypherpunks.ca>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
X-Gm-Message-State: ALoCoQmbGvrxzKN+pLCLbVCtJ68kMgNe3YBm3ISNwTDuVaoEQXpHbfrIXfrz4AQVWx9rOzPKrVOM
Cc: Paul Hoffman <paul.hoffman@vpnc.org>, dane@ietf.org
Subject: Re: [dane] Behavior in the face of no answer?
X-BeenThere: dane@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: DNS-based Authentication of Named Entities <dane.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dane>, <mailto:dane-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/dane>
List-Post: <mailto:dane@ietf.org>
List-Help: <mailto:dane-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dane>, <mailto:dane-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 15 May 2012 02:56:17 -0000

On Mon, May 14, 2012 at 7:45 PM, Paul Wouters <paul@cypherpunks.ca> wrote:
> On Mon, 14 May 2012, Paul Hoffman wrote:
>
>> An attacker who is able to divert a user to a server under his control is
>> also
>> likely to be able to block DNS requests from the user or DNS responses
>> being
>> sent to the user. Thus, in order to achieve any security benefit from
>> certificate usage 0 or 1, an application that sends a request for TLSA
>> records
>> needs to get either a valid signed response containing TLSA records or
>> verification that the domain is insecure or indeterminate. If a request
>> for a
>> TLSA record does not meet one of those two criteria but the application
>> continues with the TLS handshake anyway, the application has gotten no
>> benefit
>> from TLSA and should not make any internal or external indication that
>> TLSA
>> was applied. If an application has any indication that TLSA is in use
>> (such as
>> through a configuration setting), that application MUST not start a TLS
>> connection or abort a TLS handshake if either of the two criteria above
>> are
>> not met.
>>
>> Livable? Better specific suggestions?
>
>
> Livable. I am a little confused about "signed TLSA", "insecure" or
> "indeterminate" together with "the two criteria". Did you mean
> "signed TLSA" and "insecure" as one criteria ("dnssec worked") or did
> you mean "indicator" and "indeterminate" as the two criteria? How about:
>
>   an application that sends a request for TLSA records will get
>   either a valid signed response (containing TLSA records or not)
>   or reaches an indeterminate state (for instance by lack of DNS
>   replies)
>
>   [...]
>

I don't think this is what we want.. There appear to be five relevant
states:

* secure, bogus, indeterminate, or insecure [specified in section 4.1]
* no response, DNS error, etc. [the state in question here]

The relevant point here is that in the case where you were expecting
DNSSEC but you get some error in the last category, then in order
to get security benefit from restrictive modes, you must treat that as
if it were bogus. That's different from cases where you weren't
expecting DNSSEC (insecure, indeterminate), and therefore you
should just be ignoring the TLSA records.


>   that application MUST not start a TLS connection or abort a TLS handshake
>   if TLSA processing is configured and the result was indeterminate.
>
>
> I'm also not sure why the statement is limited to certficate usage 0 and
> 1. Is that because you assume no PKIX alternatives are available and
> thus it always has to abort for insecure/indeterminate?

The security logic is different for restrictive records and additive records.
Say that you're not willing to hard fail on TLSA failures but you're willing
to suppress error warnings if you get resolvable records of type 2 and 3.
Then you are getting security benefit for those records, but you're not
getting any security benefit if type 0 or 1 records exist.

With that said, I haven't completely worked through 2 and 3, so it might
be that they have some restrictive value, in which case the above
analysis applies.


Arguably, it would be best to serve two different classes of records to
make this clearer.

-Ekr