[Acme] Re: Potential issues with dns-persist-01
zandoodle <maxoscarhearnden@gmail.com> Fri, 17 April 2026 14:35 UTC
Return-Path: <maxoscarhearnden@gmail.com>
X-Original-To: acme@mail2.ietf.org
Delivered-To: acme@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 36FB4DE4DEB4 for <acme@mail2.ietf.org>; Fri, 17 Apr 2026 07:35:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1776436541; bh=NSiwH93VuVF0OPtFKdeeVf0qjnxYes/cGnVTHpqWCTE=; h=Date:Subject:To:Cc:References:From:In-Reply-To; b=aTBsS4dJOAlbqTt+cPPtMBlF/FJ2O9RNkif1xGS7pEghQBduo3eAtAzOU/sGQUtiX 7waQh03LLVREBuexW2dCn7r1PGJDqnN1VM6o4in5IMsS5e7Ku4aKspy+KezfGAVRe5 FbTm1Ee5h55b9ifgwx9JRmDEG9cD+339+8RkNChE=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.098
X-Spam-Level:
X-Spam-Status: No, score=-1.098 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, FORGED_GMAIL_RCVD=1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, TVD_PH_BODY_ACCOUNTS_PRE=0.001] autolearn=no autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id EyUOn8UKJsrG for <acme@mail2.ietf.org>; Fri, 17 Apr 2026 07:35:40 -0700 (PDT)
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com [IPv6:2a00:1450:4864:20::42e]) (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 mail2.ietf.org (Postfix) with ESMTPS id E772FDE4DEAF for <acme@ietf.org>; Fri, 17 Apr 2026 07:35:40 -0700 (PDT)
Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-43d01d6b50cso770947f8f.1 for <acme@ietf.org>; Fri, 17 Apr 2026 07:35:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776436540; x=1777041340; darn=ietf.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=XYI67y5tLUfe5z3vpwebRkzwfxdQ9i69NbyT7Qd1T+M=; b=s3JXXfCSDu7dTsJTFNR2/+SJYw1KX9USUPW5BSFCkJYApnhxbaieCXQcf0+OE4djuJ YgBi9lL1PvDccg/OsLvfZTxfCcCN3kckNhwWtDr3FRw6SbRegICWX2NlaqmVh+sdiOpG iQiL806bLaaBgjSqjT6DT1NmvXJ2tuLKHv+atPcIs8TSBRFqb+aJUoEHPp3PrMgesWtW D5K8vuts0RxUPiEqrGe6Qpp9EVl8/kPpxv6buCa+7pRdTW589IKYZeoTf4wQjxVCbi/F PuIGS1Pro5I5BCHTNxXHan9SNMTw9J2ftIAeHt/DluQZ4xF5+zUCULJ1B3uMCqRkRlL3 Q3ng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776436540; x=1777041340; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=XYI67y5tLUfe5z3vpwebRkzwfxdQ9i69NbyT7Qd1T+M=; b=hLKa1sITpBBU5uG5P++HpGckJeqY/6xCgW4TUEqzXT21SyEFMoRReE3vSnZgQds+cM TyqHbode2BE3+VFzxSQRsmudzHYxJAVi1sjA1g5zKPNVfpELsun0B3/qI6fjqPx9Q8O8 ddquAwXgs+jkUF+eZ5F4IutZDS1l0fJZetpGT7L8Ch6lonr7L6LOQhjbEEqbyZbZLJ7R eg23W5nY+Xo8YMTnwcXp8jFVpICnquQsiXImrsycjff2feiE2KdlY5Rv+ScDc7Um+b+H Fd2VfGioLGezH8wb1vSEFM4oQZ8Fu0lN+EdzUXA4DTN1FYKmF58kWE7UAtWJRl8ihuN2 JboA==
X-Gm-Message-State: AOJu0YwHhCGcz+uyi3SJ4r/n+G78xBF9pDDXLmU3A7PC0vNFfZZ1qmcA Fn8SdUq87WnTWzmYwjdTfd7NUIli0Nbe0qxRe9YwL2Urgy0IYYVCbUnM
X-Gm-Gg: AeBDieuuxr6NhuYn+E8xHc6ou1KmVpo2k6QFzq6pNau3EXKbOJVo8GDsKLXc9i1Z/vw loLcPbGdeHPh+sdWD7FTSkDGbqju1Uv8x1atQ2DF180xjFwLYNXCScQzy+lGkix/6nJvNEAzfMI toJvGmYJ7MiPPDETVOS+b4X9ml+9IkSvvdw/16wb5D/iTt8uo6JlBgmFKzyJtIrmBRuM14cg62O c8OjVmqwpNQUPxwShRelwDejzcYplhB/lbmYZzNS8mr90wnIyDLd3ApROTngBeSZiqagJU1H9oG /BjhguqKv8pGd6bAOcIBLxp0A6kP7nwuekVKBDo9RtAWRmy2a7WFhL4wSsuuNdEdkTsvwpAIecQ ZcTwcGCfm/iAyLnSE44c9weRL3rUnJh+6jfezx+BH5YW9IZVz2gdYRjZ5Jd/93MS8GOLTUBCMr2 M7dsDRiyixJ3ceqxBXnH8gyBYr4OFKkr2cxKx5LrmxFNErlxKyuwvijHpozVNT7+zi819y6Klkz UOhGnz27Te3gqGOelK2+KzssskoC0g=
X-Received: by 2002:a5d:5f88:0:b0:43f:debd:feb1 with SMTP id ffacd0b85a97d-43fe3e14f4bmr5034678f8f.39.1776436539563; Fri, 17 Apr 2026 07:35:39 -0700 (PDT)
Received: from ?IPV6:fd09:a389:7c1e:6::5? ([2a0a:ef40:1850:1a01:52ba:1a45:9990:406b]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43fe4e44f69sm5209592f8f.25.2026.04.17.07.35.38 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 17 Apr 2026 07:35:39 -0700 (PDT)
Message-ID: <c54ee011-b09e-4c8f-b225-4119239e48c4@gmail.com>
Date: Fri, 17 Apr 2026 15:35:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: Shiloh Heurich <shiloh@heurich.com>
References: <CAFg2froJTxp+kT_VdSuNs9LVqFQhO-WJZBt=-qoVQO9c8M+=Xw@mail.gmail.com> <CAEmnErdOBBzj+5nuZBYo0zN64zMXDeX-3sdcFBQqJirmHky2gA@mail.gmail.com> <0548587B-B211-4BC9-8F4F-51F30EC555E0@heurich.com>
Content-Language: en-US
From: zandoodle <maxoscarhearnden@gmail.com>
In-Reply-To: <0548587B-B211-4BC9-8F4F-51F30EC555E0@heurich.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Message-ID-Hash: YN73DYLJYXIPODSIX2HQ6YVJUJXB4GQL
X-Message-ID-Hash: YN73DYLJYXIPODSIX2HQ6YVJUJXB4GQL
X-MailFrom: maxoscarhearnden@gmail.com
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: acme@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Acme] Re: Potential issues with dns-persist-01
List-Id: Automated Certificate Management Environment <acme.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/acme/udXKF6Mm43BzrtI_28Z0Oo2AvW8>
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>
I'm sorry I didn't make it clear in my initial email that the attacks were on the accounturi provided when making a new account and so affected pre-provisioned records. It should be possible to allow arbitrary account URIs so long as the client can verify them, one way I've proposed is to have the client make a POST request to the account URI and receive a token which can then be put in the TXT record alongside the account URI. This (alongside server-side validation of the URI) will allow the CA to confirm that the client has verified their account against a CA controlled endpoint. On 17/04/2026 12:39, Shiloh Heurich wrote: > Your analogy to the http-01 token substitution is correct. In the standard challenge flow, the dns-persist record contains no client-computed cryptographic material, so the same class of attack applies. RFC 8555 §10.2 describes this pattern formally and explains why Key Authorization was designed to prevent it. The draft should address this. > > Pre-provisioning is a different story and the thread hasn't raised it. In that flow there's no challenge object. The client constructs the record from its own account URL (the §7.3 Location header) and the `issuer-domain-name` from directory metadata or the CP/CPS. No server-provided value to substitute. This is the primary deployment model for the enterprise and multi-tenant cases the draft targets. > > The harder problem is that persistence and key binding work against each other. Key Authorization works for http-01 and dns-01 because those values are ephemeral: provision, validate, remove, rotate the key freely. A persistent record containing Thumbprint(accountKey) means every key rotation (§7.3.5) invalidates every dns-persist record across every domain on the account. For subscribers with hundreds or thousands of domains, that defeats the purpose of a persistent method. The draft chose accounturi because it's stable across rotations. > > Persistence, cryptographic key binding, key rotation support: pick two. That's the core tension. > > I see three options, roughly by disruption level: > > (a) Strengthen client verification within the current design. Upgrade the §3.1 SHOULD to MUST when the client knows its own account URL. Add explicit security analysis of the missing dual-channel binding and the rationale. Qualify the "strong binding" language in §7.2. > > (b) Add an optional accountkey= parameter carrying base64url(Thumbprint(accountKey)), always self-computed by the client. When present, the CA verifies the thumbprint matches the current key. Restores dual-channel binding when used, but clients accept that rotation means updating DNS records. The forward-compatibility rule (MUST ignore unknown parameters) means existing implementations won't enforce it, so this only helps against CAs that opt in. > > (c) Sebastian's pubkey: scheme in accounturi. Max already noted the problem: a malicious server can tell the client its accounturi is pubkey:<attacker-thumbprint>. Always-self-compute as a mitigation requires the client to distinguish pubkey URIs it should compute from regular URIs it should provision as-is. That seems fragile. > > I'd go with (a) for -02, possibly (b) as a follow-on. But the real question for the WG is whether the pre-provisioning distinction is sufficient, or whether the standard challenge flow needs cryptographic binding even at the cost of rotation compatibility. > > Shiloh
- [Acme] Potential issues with dns-persist-01 zandoodle
- [Acme] Re: Potential issues with dns-persist-01 Seo Suchan
- [Acme] Re: Potential issues with dns-persist-01 Sebastian Robin Nielsen
- [Acme] Re: Potential issues with dns-persist-01 zandoodle
- [Acme] Re: Potential issues with dns-persist-01 zandoodle
- [Acme] Re: Potential issues with dns-persist-01 Aaron Gable
- [Acme] Re: Potential issues with dns-persist-01 Sebastian Robin Nielsen
- [Acme] Re: Potential issues with dns-persist-01 zandoodle
- [Acme] Re: Potential issues with dns-persist-01 zandoodle
- [Acme] Re: Potential issues with dns-persist-01 Sebastian Robin Nielsen
- [Acme] Re: Potential issues with dns-persist-01 Sebastian Robin Nielsen
- [Acme] Re: Potential issues with dns-persist-01 zandoodle
- [Acme] Re: Potential issues with dns-persist-01 Sebastian Robin Nielsen
- [Acme] Re: Potential issues with dns-persist-01 Shiloh Heurich
- [Acme] Re: Potential issues with dns-persist-01 Seo Suchan
- [Acme] Re: Potential issues with dns-persist-01 Shiloh Heurich
- [Acme] Re: Potential issues with dns-persist-01 Shiloh Heurich
- [Acme] Re: Potential issues with dns-persist-01 Sebastian Robin Nielsen
- [Acme] Re: Potential issues with dns-persist-01 zandoodle
- [Acme] Re: Potential issues with dns-persist-01 Shiloh Heurich
- [Acme] Re: Potential issues with dns-persist-01 Aaron Gable