[Anima] Re: [Add] Hosting Encrypted Servers on CPEs / HTTPS for Local Domains

Dan Wing <danwing@gmail.com> Tue, 10 September 2024 18:08 UTC

Return-Path: <danwing@gmail.com>
X-Original-To: anima@ietfa.amsl.com
Delivered-To: anima@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 43D55C1840EB; Tue, 10 Sep 2024 11:08:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.106
X-Spam-Level:
X-Spam-Status: No, score=-2.106 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fpkwHbdu9PPQ; Tue, 10 Sep 2024 11:08:54 -0700 (PDT)
Received: from mail-pl1-x629.google.com (mail-pl1-x629.google.com [IPv6:2607:f8b0:4864:20::629]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2CD6BC1840EF; Tue, 10 Sep 2024 11:08:54 -0700 (PDT)
Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-2055f630934so9590695ad.1; Tue, 10 Sep 2024 11:08:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725991733; x=1726596533; darn=ietf.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=4TtXsjTxPm3Zx32itd8uuIJyDYgGgXAQxZuqwAW/4+U=; b=ggOcJJzPG4YD36sfdteVVtt6DT7DmdxVENMDz88FdVAQrin8jAGq7n/Z2FbDUCyCaK sKQoA9cD67UnGoSr8pR39rDJ6Z64Hk4CQmk3W/IshReXTlxbd5rqokVv0ZahJVU37/Tk Cxilnyh++duaoCRVWmvG6RfdxmbumzNLkuRHOT9uJWHLli4m56Jk+kXWi3ABcYzw0b9T 1caLI5Gj5pgZjmCmOABWF/knVCMOy0pz1rCX1YeBRDHo1LGt6sK1N7TXJy9R/lQwdv9e xXHwO36QFt7rjgDAKsBY3PC8ONGUWm1Q7Q6YLRrrmf4IvFN9T7X2hK/frfT2irIb4UMA t7AQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725991733; x=1726596533; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4TtXsjTxPm3Zx32itd8uuIJyDYgGgXAQxZuqwAW/4+U=; b=pUiE3gFlAYj6lGvxw26QGJmnSV2nJnqjXHnXdioghsLzGBguEZ/DXPA5xKSutQvkMC cbynW/L7VErdb0fnf8JIVjHMw7RM7oIp4OrB7xoGsXznU2iriXik+159zv+7Izy7k9Lh Iq3gYlpsz2P233ehOuyRumH9CJ+SuHf2EmgjjLLQz61MUzJrAIi//HcljhrbDrBxLrNB j0xiMsRNAn2hGPOQHGAWfldUbKlSj3NlLOrCXTTDUrX9m9cAriwL25XfXNHWXQezPU0R 8NynY5d+k6HZoCZfAa652uDBPLlj8uU/GAzvWFKkbJDeA82WM50Hy2mVfwp7eD+gmwFb GTqQ==
X-Forwarded-Encrypted: i=1; AJvYcCV4n6CaLhx+epVhfCSs0Q/vvfOI0XFmNbzMGlKU+mehjv159qo11oOoqMpbESuUucM0dQI=@ietf.org, AJvYcCWbAvUnwu45isGfRu879jyR03sndQ+F3IeizqYihlq5JAvoIvqEQV34YtrKwX/mpsgTUUmd7p+X@ietf.org, AJvYcCXCPdFZU4GM5huUIylw81zxVP7c6elsSq6bl9X+bd2KGu/1/PcKCfrtXpoakYxONiowD4qxg9w=@ietf.org
X-Gm-Message-State: AOJu0YzIx7ZtvHMed4x+Gs49CNf/guq3A4vvjrg1g4e1g/S/CAGQVIMU ad8amMQcWuCAJk2lO36L2pU+WeTNTkguzSQx34tFPTcUlfj+Kb3NMT0bISpG
X-Google-Smtp-Source: AGHT+IEp8QpCiYMJ82pjdoxVU+yrLRvhzfbDJV6EVA+Ai1Z5nzBk+naZ8yE8Fui1arxcW32xmBGm9g==
X-Received: by 2002:a17:902:ecca:b0:207:14d1:8270 with SMTP id d9443c01a7336-20752195bd6mr6194055ad.16.1725991732955; Tue, 10 Sep 2024 11:08:52 -0700 (PDT)
Received: from smtpclient.apple ([47.208.124.206]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-20710eea91asm51531555ad.171.2024.09.10.11.08.51 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 10 Sep 2024 11:08:51 -0700 (PDT)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3776.700.51\))
From: Dan Wing <danwing@gmail.com>
In-Reply-To: <ZuB7XRSu5gOwhzpu@faui48e.informatik.uni-erlangen.de>
Date: Tue, 10 Sep 2024 11:08:50 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <9F5A6BFC-EA1A-4DBC-9144-7C30ADF23F7F@gmail.com>
References: <6FCA933A-F329-4B45-9C72-32FFCAD289BE@gmail.com> <CACJ6M16MgxzE+8Yiebd9hbYC_tY2tt0Sroc4_izOnP3kO3e5fQ@mail.gmail.com> <MW4PR15MB437956E8735320FFE83037C7B3952@MW4PR15MB4379.namprd15.prod.outlook.com> <ZtpGfh15m58gId0Z@faui48e.informatik.uni-erlangen.de> <CAKC-DJh5ekn62GesD1dkfpwSftDEv7NTTmu_JbtbU26iK7A2uQ@mail.gmail.com> <ZuB7XRSu5gOwhzpu@faui48e.informatik.uni-erlangen.de>
To: Toerless Eckert <tte@cs.fau.de>
X-Mailer: Apple Mail (2.3776.700.51)
Message-ID-Hash: MQXUZVO6CIA6YEA5RW3SLOK63IJL722S
X-Message-ID-Hash: MQXUZVO6CIA6YEA5RW3SLOK63IJL722S
X-MailFrom: danwing@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-anima.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Erik Nygren <erik+ietf@nygren.org>, Ben Schwartz <bemasc@meta.com>, Chris Box <chris.box.ietf@gmail.com>, "add@ietf.org" <add@ietf.org>, anima@ietf.org, iotops@ietf.org
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [Anima] Re: [Add] Hosting Encrypted Servers on CPEs / HTTPS for Local Domains
List-Id: Autonomic Networking Integrated Model and Approach <anima.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/anima/zXske5DkqAOY31Am-qcNuodCMd0>
List-Archive: <https://mailarchive.ietf.org/arch/browse/anima>
List-Help: <mailto:anima-request@ietf.org?subject=help>
List-Owner: <mailto:anima-owner@ietf.org>
List-Post: <mailto:anima@ietf.org>
List-Subscribe: <mailto:anima-join@ietf.org>
List-Unsubscribe: <mailto:anima-leave@ietf.org>

On Sep 10, 2024, at 10:01 AM, Toerless Eckert <tte@cs.fau.de> wrote:
> 
> On Fri, Sep 06, 2024 at 10:38:12PM -0400, Erik Nygren wrote:
>> I think that the non-muggle-friendly-names may be a core problem to solve
>> first for many of these use-cases.
>> For example, ADD doesn't need its names to be muggle-friendly.
> 
> Great to know! 
> 
> There actually seem to be a lot of DNS names these days that are not appropriate
> for muggles (and hence arguably not for entering into browser URL bar). Alas,
> we still have normative  documents such as RFC6763 that do a great job in outlining
> all the aspects to make URLs muggle friendly - but no updates to explain that the
> scope of our solution deployments has expanded beyond that (which IMHO is primarily
> an issue re. our discuss with W3C as explained in my other reply in this thread).
> 
>> There may be ways to layer things to wrap a better user experience on top.
>> For example, providing a way for a user to locally associate a
>> human-friendly bookmark for an underlying endpoint identity.
> 
> Why ask to use some non-defined magical system such as "bookmarks" when we could instead
> simply ask to push CNAMEs into DNS. Thats something we can define.

As suggested in (*), a device with a long name can also advertise a short name (e.g., mDNS), allowing the user to visit "https://router.local" (or "https://printer.local" or "https://printer.home.example.net", which is a CNAME to the long name.  The client, encountering the long name, can then initiate the its bootstrapping to trusting (*) the long name ("https://router.ejfkejfkejfejkejfkjkej.local"), or if bootstrapping has already occurred the client would immediately see the router's (or printer's) HTTPS configuration page.

The long names are not a severe problem.

(*) Martin Thomson's "HTTPS for Local Domains" (https://docs.google.com/document/d/170rFC91jqvpFrKIqG4K8Vox8AL4LeQXzfikBQXYPmzU) 
(**) QR, type magic codes, TOFU, NFC, etc.



> Makes me just
> wonder if we have a standard practice way for reverse resolution - if i have
> the serial-number domain name -> how would i find all the CNAMEs for it... ?

Could you detail why that is necessary?

-d


>> I wonder if this would make sense to start as a BOF (or even a workshop) of
>> its own, first focused on use-cases
>> and exploring the space?  It may be too early to jump into the "should this
>> get a new URL scheme".
> 
> Maybe just starting to write / collect the different aspects of this problem.
> Such as some other (like martin thomson) have done from their side. ...
> 
>> It might help to try and factor up the various pieces here, many of which
>> are interrelated.
>> For example:
>> 
>> * Having endpoints names (eg, the Web Origin) include a public
>> cryptographic identity
>> * How to represent this in URIs at a protocol layer
>> * How to handle important corner cases (crypto agility, multiple
>> algorithms, key rotations, etc)
> 
> I'd hope this point would hopefully be separate from anything URL, or else
> we'd have to chew way too much.
> 
>> * If a trust web is needed, how to establish it and represent it
> 
> I think it would be lovely if we would find some DNS anchored registry for
> IDEVID CA certificates so that it would become easy for arbitrary 3rd party
> vendors to build IOT controller applications that could validate IDEVID
> certificates for any type of bootstrap workflows. Might be possible to expand
> into LDEVID space as well...
> 
>> * How to expose the endpoint identities, URIs, etc to human users in a way
>> that provides a good user experience
> 
> I think you always need some process for binding a user-friendly names.
> RFC6763 has some good suggestions for useful vendor defaults though. And
> if we go through DNS with above inquired reverse resolution, one might even
> automate default name disambiguation (aka "Vendor Type Printer #22" - where
> #22 is generated by figuring that #1..#21 already exist in the local domain).
> 
>> * How this relates to W3C concepts (eg, "secure origins") and user-agent
>> experience (eg, the "lock icon" and URL bar and such)
> 
> Right.
> 
>> * The user experience for any trust hierarchy establishment.
>> 
>> If a trust web is needed, it would be nice to be able to plug into models
>> like Matter/Thread,
>> but I think a key aspect is that we want to avoid any need for a global
>> hierarchical trust system.
> 
> Maybe turn it around and wonder if/what type of delegation of trust may need
> to be supported.
> 
> Cheers
>    Toerless
> 
>> The pieces here are going to be cross-domain, so success likely will
>> require bringing
>> a few different communities together, but also keeping scope bounded enough
>> to keep
>> complexity under control.
>> 
>>     Erik
>> 
>> 
>> 
>> 
>> 
>> On Thu, Sep 5, 2024 at 8:02 PM Toerless Eckert <tte@cs.fau.de> wrote:
>> 
>>> Some 22cents here (Cc'ing ANIMA/IOTOPS):
>>> 
>>> I think we should foremost distinguish between two main use-case arenas:
>>> 
>>> A) In one set of use-cases, we can and want to create muggle friendly
>>> names for devices,
>>> except that those are (for debatable reasons) not global and hence we can
>>> not use off-hand
>>> our pre-existing WebPKI approach to authenticate name ownership.
>>> 
>>> B) In another set of use cases we can not or we do not want/need to create
>>> muggle friendly
>>> names for devices - but we still want to use TLS to talk to them. And
>>> (alas) browsers.
>>> 
>>> For example https://_NPNE4IG2GJ4VAL4DCHL64YSM5BII4A2X.printer.local (from
>>> Martin Thomsons doc,
>>> i'll call it "Martins URL") is IMHO not muggle friendly. It totally
>>> violates the whole WebPKI
>>> idea that a muggle can feel safe that it is talking to the right/desired
>>> device via its browser.
>>> Heck. You do indeed need magic for the WebPKI assertion (i am talking to
>>> the right device) to hold
>>> true for such domain names.
>>> 
>>> It seems all the existing approaches proposed to far are A), and some at
>>> least seem
>>> to think that Martins URL is suitable for A). And i think neither is true.
>>> I for once would be very happy if we first had a solution for B).
>>> 
>>> In ANIMA for example, we do deal with CPE that come with certificates
>>> (IDEVID), and
>>> if a user is crazy enough to talk to such a device (in that IDEVID-only
>>> state) via a browser,
>>> then that user is not a muggle, but an experienced network operator, so
>>> Martins URL
>>> would actually be oki (because the experienced network operator would not
>>> rely only on the
>>> domain name in the browser address field).
>>> 
>>> A muggle instead (of a browser) is typically given an "App" (see "google",
>>> "apple" store)
>>> to talk to these devices and those apps would be able to take away the
>>> problems of Martins URL.
>>> The muggle would never need to see it. Except that the poor developer of
>>> such an App is today
>>> faced with TLS libraries that mandate the use of WebPKI certificates to
>>> even allow you to
>>> use TLS. Which strikes me as completely silly when i do not want to.
>>> 
>>> Even assuming the wishfull thinking case of an app that can help me deal
>>> with a variety
>>> of vendor devices not belonging to a specific SDO realm (like not limited
>>> to thread or
>>> othrer SDOs solution that may have come up with more specific solutions):
>>> An app could
>>> perfectly well know/find trustworthy root-CA for all the relevant CA of
>>> all the
>>> relevant vendors. And if that's a problem, then we can figure out a DNS
>>> scheme to
>>> carry those root CA certificates of IOT vendors in DNS to find them
>>> easier. But: there
>>> seems to be no easily useable TLS library to let go of the WebPKI domain
>>> name validation
>>> and replace it with a list of vendor IDEVID root-CA validation (and
>>> returning which
>>> vendors root-CA was used!).
>>> 
>>> So, before going any further into possible solution, i think we should try
>>> to be clear
>>> about what specific problem each of us wants to solve:
>>> 
>>> If i want to go through all the trouble of A), assigning muggle friendly
>>> names first,
>>> then i really wonder if we're promoting the best solution by first looking
>>> into
>>> .local solutions instead of trying to figure out what's missing so that i
>>> can run
>>> my own ACME certification on e.g.: my home (or private
>>> industry/enterprise) network's
>>> router for my own global domain. And how to get this all auto-configured
>>> so that
>>> muggles can operate it. I for once am not aware of any easily deployable
>>> self-hosted
>>> ACME server solution, and if whatever we come up with for .local would not
>>> be a heck
>>> of a lot easier than ACME, then we're not going to get that deployed
>>> either in the
>>> networks where we would like it.
>>> 
>>> In other words: I'd love to see good solutions for B), and i'd challenge
>>> the priority
>>> of A) (for .local) over solutions that do make global domain names more
>>> easy to use in non-internet
>>> use-cases. After all, it could be piece of cake to add my own networks
>>> root-CA to
>>> my browsers web-pki trust-anchor list if we wanted that to be the solution.
>>> 
>>> Cheers
>>>    toerless
>>> 
>>> On Wed, Aug 28, 2024 at 01:24:27AM +0000, Ben Schwartz wrote:
>>>> After the session we had a brief chat about this topic, and talked a bit
>>> about the Matter/Thread ecosystem, which is an example of an ecosystem that
>>> has attempted to solve the problem of bootstrapping trusted identities for
>>> physically nearby network hardware.  Notably, it does not appear to rely on
>>> X.509 certificates for globally unique DNS names, like a typical TLS PKI.
>>>> 
>>>> I would be interested in whether the Matter/Thread device identity model
>>> could be used to identify the CPE itself (which is often a "Thread border
>>> router"), and whether that identity could be extended into web browsers
>>> (for accessing the router management console) and the operating system (for
>>> verifying the router's identity at the link layer, and potentially building
>>> up verification from there to higher layer services like DNS).
>>>> 
>>>> --Ben
>>>> ________________________________
>>>> From: Chris Box <chris.box.ietf@gmail.com>
>>>> Sent: Saturday, August 24, 2024 10:25 AM
>>>> To: Dan Wing <danwing@gmail.com>
>>>> Cc: add@ietf.org <add@ietf.org>
>>>> Subject: [Add] Re: Hosting Encrypted Servers on CPEs / HTTPS for Local
>>> Domains
>>>> 
>>>> Hi everyone After a burst of discussion in Vancouver, this list has now
>>> been silent for a month. My impression from the meeting is that we have a
>>> widespread feeling that ADD isn't the correct venue for this problem. Ben
>>> was quoted in the
>>>> 
>>>> Hi everyone
>>>> 
>>>> After a burst of discussion in Vancouver, this list has now been silent
>>> for a month.
>>>> 
>>>> My impression from the meeting is that we have a widespread feeling that
>>> ADD isn't the correct venue for this problem.
>>>> Ben was quoted in the minutes with:
>>>> I think the right answer here requires deeper
>>>> thought, and possibly going to the W3C and finding a new URI
>>>> scheme instead of "https" to represent local network
>>>> devices.
>>>> 
>>>> In an effort to try and move this along, I'll ask: where do you think
>>> this should go?
>>>> 
>>>> Chris
>>>> 
>>>> On Wed, 24 Jul 2024 at 21:24, Dan Wing <danwing@gmail.com<mailto:
>>> danwing@gmail.com>> wrote:
>>>> ADD WG,
>>>> 
>>>> While working to provide TLS for encrypted DNS on CPE, Tiru Reddy's
>>> IETF119 ADD presentation made it clear ADD had bumped into a larger
>>> problem: IETF and the industry has not documented how to best get
>>> certificates onto CPE.  A few companies (McAfee, Mozilla, Cujo) have
>>> deployed a system where a unique FQDN is assigned to each CPE (e.g., to the
>>> DNS server) and the CPE requests a vendor-operated cloud service to get
>>> that certificate signed by a CA and returned to the CPE and CPE uses that
>>> CA-signed certificate for incoming TLS connections.  Such a system works
>>> but the disadvantages are needing to get millions of certificates
>>> continually signed by the CA (short-lived certificates) and continued
>>> reliance on the vendor to operate the certificate-signing service.
>>> Experience is that an exception is necessary to overcome the CA's normal
>>> rate limit.
>>>> 
>>>> There are two documents that discuss such a system, its drawbacks, and
>>> also explore some other system designs:
>>>>  - Martin Thomson's "HTTPS for Local Domains" (*, below), and
>>>>  - draft-rbw-add-encrypted-dns-forwarders (**, below).
>>>> 
>>>> Please read them prior to Thursday's ADD meeting, as I will only spend
>>> 3-4 minutes presenting and the rest of the time will be microphone
>>> discussion.
>>>> 
>>>> 
>>>> I am hoping there are authors interested in writing a problem statement
>>> document (if consensus is existing practice is too difficult) or writing a
>>> BCP/Informational document on such a vendor-operated service (if consensus
>>> is continue existing practice).
>>>> 
>>>> -d
>>>> 
>>>> 
>>>> (*) Martin Thomson's "HTTPS for Local Domains",
>>> https://docs.google.com/document/d/170rFC91jqvpFrKIqG4K8Vox8AL4LeQXzfikBQXYPmzU/edit
>>> <
>>> https://urldefense.com/v3/__https://docs.google.com/document/d/170rFC91jqvpFrKIqG4K8Vox8AL4LeQXzfikBQXYPmzU/edit__;!!Bt8RZUm9aw!7NrFT-OD2YA0YvBly3H9PFhBLw2gdmCZmfBpntETQE0TJhHRYMFrMva9wtxbgyiZw6H1PiBRbeV8W2_JF3YS$>,
>>> https://tinyurl.com/https-for-local-domains<
>>> https://urldefense.com/v3/__https://tinyurl.com/https-for-local-domains__;!!Bt8RZUm9aw!7NrFT-OD2YA0YvBly3H9PFhBLw2gdmCZmfBpntETQE0TJhHRYMFrMva9wtxbgyiZw6H1PiBRbeV8W1lu4Aod$
>>>> 
>>>> 
>>>> (**) "Hosting Encrypted Servers on CPEs" slide deck for IETF120 ADD
>>> meeting, https://datatracker.ietf.org/meeting/120/session/add<
>>> https://urldefense.com/v3/__https://datatracker.ietf.org/meeting/120/session/add__;!!Bt8RZUm9aw!7NrFT-OD2YA0YvBly3H9PFhBLw2gdmCZmfBpntETQE0TJhHRYMFrMva9wtxbgyiZw6H1PiBRbeV8WwG8mYuZ$
>>>> 
>>>>      "Hosting Encrypted DNS Forwarders on CPEs",
>>> https://datatracker.ietf.org/doc/draft-rbw-add-encrypted-dns-forwarders/<
>>> https://urldefense.com/v3/__https://datatracker.ietf.org/doc/draft-rbw-add-encrypted-dns-forwarders/__;!!Bt8RZUm9aw!7NrFT-OD2YA0YvBly3H9PFhBLw2gdmCZmfBpntETQE0TJhHRYMFrMva9wtxbgyiZw6H1PiBRbeV8WypLQL9h$
>>>> 
>>>> 
>>> 
>>> --
>>> ---
>>> tte@cs.fau.de
>>> 
>>> --
>>> Add mailing list -- add@ietf.org
>>> To unsubscribe send an email to add-leave@ietf.org
>>> 
> 
> -- 
> ---
> tte@cs.fau.de