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

Eric Rescorla <ekr@rtfm.com> Tue, 15 May 2012 12:17 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 682C321F84B4 for <dane@ietfa.amsl.com>; Tue, 15 May 2012 05:17:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.883
X-Spam-Level:
X-Spam-Status: No, score=-102.883 tagged_above=-999 required=5 tests=[AWL=0.094, 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 QG7-cOFD33-E for <dane@ietfa.amsl.com>; Tue, 15 May 2012 05:17:20 -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 B1B5521F8478 for <dane@ietf.org>; Tue, 15 May 2012 05:17:20 -0700 (PDT)
Received: by vbbez10 with SMTP id ez10so7285731vbb.31 for <dane@ietf.org>; Tue, 15 May 2012 05:17:20 -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=kvso5ul97fYlYmUJKZwU5HaYHsGv7+X7OjBeuttVXUs=; b=gYpRkjnQDRm5qICB0oi+47fgCw9slXkQLRjgR/xFDAnvSJ34ko9XzqEJBJWowSBG04 WD890P7iAjvG/EDuamIfbUxgkWrukovQRQ8b2IPshr97Pc8VFIpc77Bzu4+Ofqtee7Lw RLhHYcCZulbRVteI7xQ/YuAvVAjhmERY66tQq/SijaA9QjQjmcOOO3zWDngHz75ExXW6 pSlpFS0inpdg0UlcRhqwrM1FQwDArbqxrTdTppGfRaQfLs/ItJKDa9javYAb5mj3qO0K cDQxhRFZ8/ZUHvAvtny/uLnaBTkBzXMeypdmTRFxOaLxlLFb1y7tT83ln1G6+J32hSr9 TI9A==
Received: by 10.52.172.194 with SMTP id be2mr173967vdc.60.1337084240171; Tue, 15 May 2012 05:17:20 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.52.35.209 with HTTP; Tue, 15 May 2012 05:16:39 -0700 (PDT)
X-Originating-IP: [74.95.2.169]
In-Reply-To: <20120515111318.GZ20521@mail.yitter.info>
References: <CABcZeBMY26xrfvAx=UsYN2XnuONZ2vPy9tNwHQALudd=yQDvgA@mail.gmail.com> <643D87CD-D01E-47B8-82E5-D3F57D50C80B@vpnc.org> <alpine.LFD.2.02.1205142229552.10990@bofh.nohats.ca> <CABcZeBMS9cJ3m6JwJED7XAqdsF=zbTUUU_o3-opiZvqMyr7mdw@mail.gmail.com> <20120515111318.GZ20521@mail.yitter.info>
From: Eric Rescorla <ekr@rtfm.com>
Date: Tue, 15 May 2012 05:16:39 -0700
Message-ID: <CABcZeBNE9jeWejY=bsV6U0v8Ar04mw7ENpHwDEBqniUQdS2WXg@mail.gmail.com>
To: Andrew Sullivan <ajs@anvilwalrusden.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
X-Gm-Message-State: ALoCoQk7vp5THTIYngKMMS/qgMT5SOim0JPXvu/RHVbIDas3oERWmbx/tl8Q2HYqNiIGIIBrDMKb
Cc: 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 12:17:21 -0000

On Tue, May 15, 2012 at 4:13 AM, Andrew Sullivan <ajs@anvilwalrusden.com> wrote:
> On Mon, May 14, 2012 at 07:55:35PM -0700, Eric Rescorla wrote:
>>
>> * 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.
>
> I think the reason I find this discussion difficult is that I don't
> get this "expecting" thing.  With DNSSEC, you have _no idea_ what to
> expect.  What you do is ask for something, and get a response or an
> error.  Either it is validatable or not.  You can expect a
> DNSSEC-signed response on the basis of the DS at the parent side.
>
> In the cases you're talking about here, however, you still don't know
> what to expect even if the A or AAAA record you fetched before was
> signed and validated and so on.  You might get NOTIMP, for instance.
> As Martin Rex argued, that response is strictly consistent with the
> relevant RFCs even if many of us think that it's the wrong way for a
> server to reply.  I agree that a TLSA answer in that case adds nothing
> to the security; but "just ignore the TLSA records" (which, _ex
> hypothesi_, you didn't get under the scenario) would seem to be an
> argument for "fall through to traditional TLS processing".  I thought
> that's what you wanted _not_ to happen?

Let's take a step back.

You're a resolver.

You generate a request for a given RR, say an A record. It comes back
with no signature at all. Under one set of information about the state
of the world (call that S), you generate a resolution failure. Under
another set of information (call that I) you consider it a result to
the application but tell it that the request isn't DNSSEC signed. When
I say "expecting DNSSEC", I mean condition "S"

Because the signature is what secures the DNSSEC response (assuming
 end-to-end resolution), when you get an unsigned response, no
response, or an error like NOTIMPL, if you are in condition S you need
(at least if you want to be secure) to make the most pessimistic set
of assumptions about what the response would have been if whatever
error (or attacker behavior) caused you to get what you got had not
supervened. On the other hand, if you are condition I, then you
should be returning a response. It's still not cryptographically
secure, but there is no reason to believe it would have been.

Presumably DNSSEC does in fact know how to distinguish these cases,
else any unsigned response of any kind would lead to resolution
failures. What we are talking about is extending that logic to a
different set of security requirements.  What makes this case
different is that in the case of the A record, the most pessimistic
response is "does not exist". In the case of the TLSA record (types 0
and 1), the most pessimistic response is "exists and forbids the
certificate I am about to get".

-Ekr