[Acme] Re: [Settle] the three steps to certificate-based security
Michael Sweet <msweet@msweet.org> Wed, 18 December 2024 22:00 UTC
Return-Path: <msweet@msweet.org>
X-Original-To: acme@ietfa.amsl.com
Delivered-To: acme@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2507AC169416; Wed, 18 Dec 2024 14:00:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.103
X-Spam-Level:
X-Spam-Status: No, score=-2.103 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, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=msweet.org
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 DxAZpG8kvVo2; Wed, 18 Dec 2024 14:00:34 -0800 (PST)
Received: from mail.msweet.org (mail.msweet.org [173.255.209.91]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 03F8DC151989; Wed, 18 Dec 2024 14:00:33 -0800 (PST)
Received: from smtpclient.apple (cbl-66-186-76-47.vianet.ca [66.186.76.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.msweet.org (Postfix) with ESMTPSA id B417980F09; Wed, 18 Dec 2024 22:00:32 +0000 (UTC)
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.msweet.org B417980F09
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=msweet.org; s=default; t=1734559233; bh=BnshOBScq8OztcFA8O6rwTDmJd8DqYJwxNLkH/aHOCo=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=gv28cg3D5YPuVytAhog1vQch177SY2e4W1JMFqSK7tD8wsFe5chnGQK0qzamDFkkO TPf/AnVt8vDliQCFULu8L2giJl+pcurf7yubRpcaFFV50aR5BMkX+AP8D0NIcgn6BA 3m6HF5vH32EE0DJ2dpiOwt9npeEBt4OkYk9lIX8A=
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.300.87.4.3\))
From: Michael Sweet <msweet@msweet.org>
In-Reply-To: <CAMm+LwhH5geH-UYykU25DnHc0Mhe9VxQjP4caVwMF=gmfQAY4Q@mail.gmail.com>
Date: Wed, 18 Dec 2024 17:00:21 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <40CE03C6-67F4-4B71-BA0E-99A7021AAC15@msweet.org>
References: <E95A8C5A-57E3-42E2-95EA-521540F906F2@gmail.com> <1616.1733443566@obiwan.sandelman.ca> <33369E4C-EFA5-4947-A270-CD2360411E70@msweet.org> <CAMm+LwhH5geH-UYykU25DnHc0Mhe9VxQjP4caVwMF=gmfQAY4Q@mail.gmail.com>
To: Phillip Hallam-Baker <phill@hallambaker.com>
X-Mailer: Apple Mail (2.3826.300.87.4.3)
Message-ID-Hash: HC2YIDM4UUKLIKFQV2CISVNEFI46VJXA
X-Message-ID-Hash: HC2YIDM4UUKLIKFQV2CISVNEFI46VJXA
X-MailFrom: msweet@msweet.org
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-acme.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Michael Sweet <msweet=40msweet.org@dmarc.ietf.org>, settle@ietf.org, IOTOPS Working Group <iotops@ietf.org>, add@ietf.org, acme@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Acme] Re: [Settle] the three steps to certificate-based security
List-Id: Automated Certificate Management Environment <acme.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/acme/sS7z-zTFNWUsOexDF4Q0DFPI92I>
List-Archive: <https://mailarchive.ietf.org/arch/browse/acme>
List-Help: <mailto:acme-request@ietf.org?subject=help>
List-Owner: <mailto:acme-owner@ietf.org>
List-Post: <mailto:acme@ietf.org>
List-Subscribe: <mailto:acme-join@ietf.org>
List-Unsubscribe: <mailto:acme-leave@ietf.org>
Phillip,
> On Dec 18, 2024, at 1:39 PM, Phillip Hallam-Baker <phill@hallambaker.com> wrote:
>
> I have been thinking about this problem for a very, very long time. I don't see ACME as the solution to the IoT certificate problem because it is designed to support the WebPKI which is predicated on DNS names.
Um, that's exactly what web browsers and TLS-using protocols depend on. I don't want an out-of-band solution that doesn't work with a web browser or existing protocols...
> Let's forget about mDNS for a while. mDNS was a hack designed to allow people to set up printers in small networks where splattering multicast messages made sense and telling people to deploy some sort of hub service did not.
It has always been about more than printers, but I'll grant you it doesn't scale well to enterprise networks. But then the focus of the SETTLE mailing list is *residential* networks...
> My FiOS home router has a full DNS server on it and I am pretty certain every other home router does as well.
Um, no. Even my Ubiquity ("enterprise") routers don't have a DNS server running by default (although it *is* an option). OpenWRT provides dnsmasq which only provides the most primitive of DNS services from the /etc/hosts file on the router.
> So the problem here is how to push the data we need for resolution into the DNS tables on that device or to move DNS resolution to a different device. Does multicast make sense in a home network with 100 IoT devices? I don't think so. Lets not start off with a commitment to some 20 year tech because it is there.
FWIW, my current IoT ACME draft does talk about the limitations of mDNS and the preference for regular DNS.
That said, 100 devices on a home network is not unusual and is easily handled/managed via mDNS. Where mDNS falls apart is when you have more devices than can fit on the local network segment/subnet. But *that* isn't common for residential networks.
> What I propose is a two phase process:
>
> Phase One: To provision 'PHB-connect' devices, first deploy an 'always on' PHB-connect hub, which is merely an RaPi ZeroW class device.
This is called "prototyping"...
> Phase Two: All the functions of the hub are absorbed into the home network router interface or some other device in the network that has the 'always on' property.
and this is deployment...
> Let's start from the beginning as the user sees it. A box arrives on their port. They want to unbox the gadget, power it up and use it with the absolute least fuss possible:
>
> * Scan a QR code on the box or the device
> * Use the camera on the device to scan a QR code presented by some existing device
> * During the online purchase, click a box to pre-connect it to my network, on delivery, confirm the join request on existing trusted device.
There are things like Matter that support this sort of onboarding experience, and I don't have a problem with using this if it means we can validate a device's identity and ultimately use that to generate trustable X.509 certificates.
> This is one of those problems where it is MUCH EASIER to solve the whole of the user's problem than just one little bit. If I am doing the whole onboarding process, I am already talking to the DHCP service, the DNS service and the 802.11x/RADIUS service.
>
> If we are going to provision a TLS cert to the device, we can step up and provision a better way to connect to the WiFi networks (ALL OF THEM), than a global password. Home users need enterprise grade security MORE than enterprises do.
First, we can't focus exclusively on Wi-Fi. Second, Wi-Fi security is basically controlled by the Wi-Fi Alliance and not the IETF. So personally while I agree that better security is needed for Wi-Fi, this isn't the place for that discussion.
> There is also the question of naming, there are many variations, but the ones I have seen all boil down to three underlying approaches:
>
> A) Use a DNS name, costs the user $10/yr for all their devices
Um, *what* root domain costs only $10/yr? And why do you think that every network will have Internet connectivity? And who are we to sign the whole world up to require paying to have local trust?
> B) Use a fingerprint of a public signature key as a personal root of trust, cost $0 but horrible usability
>
> C) Introduce a new universally unique identifier as a friendly name for B.
>
> Case A is pretty much solved already. Just a case of joining up the dots and letting a device inside a private NATed network get an ACME accredited cert. Result works with an unmodified standard browser.
Case A doesn't work for local IoT devices since there is no way for global ACME to validate a local (inaccessible to the world) device, short of some sort of dynamic DNS solution which has its own issues (configuration and internet connectivity are two big ones).
> Case B is flexible but ugly. We have no problem with .onion addresses or PGP fingerprints but almost everyone else does.
Given that one of the goals of the SETTLE list is to "discuss securing access to TLS local resources", I don't think that ".onion" addresses or PGP fingerprints address a problem we are trying to solve.
> Case C does have a cost but it can be very, very low. I believe a wafer-thin registry can be run for a $0.10 one time fee. And the main reason to charge is that domainers would slam the service otherwise. That is low enough that an IoT vendor can provide a coupon redeemable for a name registration if the user needs it in every box. Or we can get clever and elide the need for a paper coupon.
First, I don't see how we can declare a cost/price for such a service, nor can we expect the world to pay for it or that networks have always-on Internet connectivity (or any connectivity at all).
Second, there is a long history of issues associated with single vendor solutions.
> ...
> Device is registered using the existing Mesh device connection protocol which causes it to be provisioned with a set of public/private keypairs for authentication, signature and encryption. It is also assigned a unique IPv4 address in the space 10.x.x.x and a globally unique IPv6 address in the ULA that won't change even if Alice takes the device to one of her other homes.
And what happens when Alice sells the device or needs to do a "factory reset"?
Also, current residential routers almost all limit IPv4 addresses to /24's in the 10.* and 192.168.* ranges, which limits the number of "unique" IPv4 addresses a router can hand out...
> [While DHCP means that devices can in theory change their IP address if they are offline and come back, this only makes network management harder and more confused. Giving the device a unique address that will never change for as long as Alice owns it allows us to automate VPN management later on.]
VPN implies some sort of remote access/routing to/from another (private) network.
And reiterating my previous comment, IPv4 addresses are scarce which is why DHCP dynamically assigns them. It's in the name...
> If the device has a CPU that is designed to support it, we can bind the Ed448 and X448 private keys the device is going to use to the device itself using threshold cryptography. This makes leak of the private key very, very unlikely unless the device itself is physically compromised. This in turn means we can worry a lot less about key compromise and certificate expiry.
>
> So when the device connects, if it has secure storage, can just issue it a 10 year cert under Alice's personal root.
First, IoT devices have a lot longer life than 10 years. Second, browsers only accept certs with much shorter lifespans. This is one of the reasons why I keep coming back to ACME - we need certs that are automatically (re)issued...
________________________
Michael Sweet
- [Acme] the three steps to certificate-based secur… Michael Richardson
- [Acme] SETTLE: SEcure access To Tls Local rEsourc… Dan Wing
- [Acme] Re: [Settle] the three steps to certificat… Olle E. Johansson
- [Acme] Re: [Settle] the three steps to certificat… Michael Sweet
- [Acme] Re: [Settle] the three steps to certificat… Phillip Hallam-Baker
- [Acme] Re: [Settle] the three steps to certificat… Michael Sweet
- [Acme] Re: [Settle] the three steps to certificat… Phillip Hallam-Baker
- [Acme] Re: [Settle] the three steps to certificat… Watson Ladd
- [Acme] Re: [Iotops] Re: [Settle] the three steps … Michael Sweet
- [Acme] Re: [Iotops] Re: [Settle] the three steps … Watson Ladd
- [Acme] Re: [Iotops] Re: [Settle] the three steps … Michael Sweet
- [Acme] Re: [Iotops] Re: [Settle] the three steps … Phillip Hallam-Baker
- [Acme] Re: [Iotops] Re: [Settle] the three steps … Phillip Hallam-Baker
- [Acme] Re: [Settle] the three steps to certificat… Phillip Hallam-Baker