Re: Quic: the elephant in the room

Phillip Hallam-Baker <phill@hallambaker.com> Mon, 12 April 2021 16:00 UTC

Return-Path: <hallam@gmail.com>
X-Original-To: ietf@ietfa.amsl.com
Delivered-To: ietf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 204B53A23FD for <ietf@ietfa.amsl.com>; Mon, 12 Apr 2021 09:00:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.398
X-Spam-Level:
X-Spam-Status: No, score=-1.398 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ugl1XIWG4mpb for <ietf@ietfa.amsl.com>; Mon, 12 Apr 2021 09:00:25 -0700 (PDT)
Received: from mail-qk1-f178.google.com (mail-qk1-f178.google.com [209.85.222.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C1A5B3A23F0 for <ietf@ietf.org>; Mon, 12 Apr 2021 09:00:09 -0700 (PDT)
Received: by mail-qk1-f178.google.com with SMTP id s5so5762065qkj.5 for <ietf@ietf.org>; Mon, 12 Apr 2021 09:00:09 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Pccb9WpNZ82CDCAZIR0RtWYUgr8phucPDKEIKB6o8Y0=; b=QT3gWhShvrlOl5hKS2qgZXF7sllQvV3HTOp/+KvuEwdNoBkjDGMUG4NDiaaaK4SCTp afwr3iIOO4FVkF9BI4z2CvUosJmCgYtkNaSqcj91yAiLntd6xTUKkdC5AI42JVpS9F1O Jczcok5E+k6kLqfNOQttWOO2e/DZmmw2Q89L2Pt8wjHD4b50mQGyW8tRmr9ESD/8uqJr kxJ4cuE02OVk1ayaUWfn9IweaqLS0GJIbuBfnoP6LabBOlSpfNQO5njLZ/fCpy7tlS6m xb2DyifpI5NanUVzBZq5x6EMnc2hTVs9Tpzi0ioZ+fkQxvQbl7T+E4S59obU0IJxo8tm a3WQ==
X-Gm-Message-State: AOAM533A7DZ0JkhDAtwp3dDUSsLrUsIYASVGam5jXaws1nfotfqk7GKi W/Bpn6jNINoCakWSlG3wgSPsyS65O7SsHn3kVrI=
X-Google-Smtp-Source: ABdhPJxqjI47HlgDeBvMa8mFvgj1MNi+oUNXtk9KNjcFMOOWWI7arOj0+zmicp4r7pguuKH6CiVlnPQeTMXdrOrNEH4=
X-Received: by 2002:a5b:585:: with SMTP id l5mr37515140ybp.213.1618243208200; Mon, 12 Apr 2021 09:00:08 -0700 (PDT)
MIME-Version: 1.0
References: <3b25c77d-e721-e86d-6c34-a90039aab0e2@mtcc.com> <CAMm+Lwhi8xwFgZJL7jod2g4urZt_f+dm0tNi+3y1osqOfch2mQ@mail.gmail.com> <3593a01f-73f4-7d03-a85b-dff64a8b070e@mtcc.com> <506A780B-9C0D-4F4A-B045-098F6152F4DB@akamai.com> <14cd802e-2a1b-97d4-c80d-b57f93e8cc21@mtcc.com> <E4374100-265E-4426-9F9A-AC437DA31D2B@depht.com> <15059e21-b7c2-4211-869e-df3ffdf7c34a@mtcc.com> <CAMm+LwgnoqXKNSKxt0-rDa8ze6J9LsZz0jVeogBXAWNDveC_ZQ@mail.gmail.com> <20210412155121.GQ9612@localhost>
In-Reply-To: <20210412155121.GQ9612@localhost>
From: Phillip Hallam-Baker <phill@hallambaker.com>
Date: Mon, 12 Apr 2021 11:59:58 -0400
Message-ID: <CAMm+LwhndGSN=V3j8-DAYo5WdtSJXHCh7TyQ3uZXEKn_0AoA6g@mail.gmail.com>
Subject: Re: Quic: the elephant in the room
To: Nico Williams <nico@cryptonector.com>
Cc: Michael Thomas <mike@mtcc.com>, IETF Discussion Mailing List <ietf@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000095e19805bfc89bae"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf/ShZoBwoBRDBO8oicoW0X7kexO74>
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ietf/>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 12 Apr 2021 16:00:36 -0000

On Mon, Apr 12, 2021 at 11:51 AM Nico Williams <nico@cryptonector.com>
wrote:

> On Mon, Apr 12, 2021 at 11:33:29AM -0400, Phillip Hallam-Baker wrote:
> > On Mon, Apr 12, 2021 at 11:22 AM Michael Thomas <mike@mtcc.com> wrote:
> > > Correct. Better: you can do the TLSA request at the same time as the
> > > A/AAAA request speculatively. Plus if you've ever had a TLSA record for
> > > that domain, you know it's pretty likely you'll get a fresh one even if
> > > the last one is expired, so the speculation is minimal.
> >
> > Or replace the DNS resolver protocol with a privacy protected one in
> which
> > a single request packet can be answered by multiple response packets.
> This
> > maintains the 'stateless' nature of DNS queries but allows responses of
> > 1-32 packets.
>
> As long as it's not over UDP, or otherwise first has a return
> routability check.
>

I don't follow.



> > Then a query to the responder can return the A record, the AAAA record,
> the
> > SRV record, any relevant TXT and TLSA records [...]
>
> Kinda like "any" queries.
>

Not quite because of 1) the interaction of prefixes and 2) you only need
data for the one host you connect to.




> >                                         [...] and the entire cert chain
> for
> > one particular host chosen by the responder.
>
> You get better security properties (w.r.t. possible compromised root or
> ccTLD/TLD keys) if the resolver finds the DNSSEC chain on its own using
> qname minimization than you get with stapling, but I agree that stapling
> is a performance win.  We'll really want transparency for DNSSEC if we
> do any kind of full chain stapling.
>

SCVP introduced a distinction between path discovery and path validation.
Both can be very useful.

If you have a low level IoT device, you are probably better off doing path
math properly in one trusted device in your network than relying on
whatever embedded code is running in your toaster.

For other cases, it is much easier to check path math than to work out a
valid chain. All you need to do to check is to pull the signature record
out of each cert in the chain, pull the key record out of the previous
record and check the sig over the toBeSigned block, then check for any
constraints. Discovery requires backtracking and constraints are really
hard.