[Acme] Re: RFC 8555 Last Call Draft Change Request
"Fabian V. Thobe" <fabian@thobe.eu> Tue, 14 July 2026 16:26 UTC
Return-Path: <fabian@thobe.eu>
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 21162116AA5F9 for <acme@mail2.ietf.org>; Tue, 14 Jul 2026 09:26:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1784046364; bh=sN/YOikff1X+vrLdkeT+ZbpQg8hfaFJx7KaIQJFExtg=; h=References:In-Reply-To:From:Date:Subject:To; b=ra4zw6jCvaoxFXIyUVaBUdrVwu0IakxBbJy43+fJrYFD1s8G3AjquTRCtLH1Z2Lyt 8pTTv7PY+//kMBTL3XJX0mTFsDQKrLWMRQd5zx2dyH0MPBA/vuUtnPVrPTIpeiBUsT 8hT8As/wnKT1xuLOkS/HwWISOm+X7POUELJztr18=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.087
X-Spam-Level:
X-Spam-Status: No, score=-2.087 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, HTML_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, TVD_PH_BODY_ACCOUNTS_PRE=0.001, T_KAM_HTML_FONT_INVALID=0.01] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (1024-bit key) header.d=thobe.eu
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 SmoTcr7AckSc for <acme@mail2.ietf.org>; Tue, 14 Jul 2026 09:26:02 -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 75A6F116AA5F2 for <acme@ietf.org>; Tue, 14 Jul 2026 09:26:02 -0700 (PDT)
Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-4759b4f0897so681788f8f.1 for <acme@ietf.org>; Tue, 14 Jul 2026 09:26:02 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1784046355; cv=none; d=google.com; s=arc-20260327; b=eznSdtPGTiIY/e84P6Vs4Ae4Dvi5ZQZnArrGtTf4JVGI/m7V5AHczlHy3dhl00XRo8 /H6VsVhO2uQpUnEyF2Z8L7eNz+Gt5oiB1stP+6bJACL2MgqgQ0QJzmPykdOsot7dRtED j88P1AOCMzYQ1P1PEZd7jRlxR3qTdqc8TobLmhuTwNhuhO09Vb9rsu7zBfp97WpL0Ddu el5tXraRNpsa5ERDQ/bIGsWzyg2d+/DMdnCfXOx076grwkcKFGiE9Z31CgpjGDexw98j 3ht4+Li9j1DAeYDZTDd2Ffb/9XjYfM7G7nRtr5z9M8JFCtNvp3kUk68BmMEuak2SbKb9 xyvw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=Hhhrfr+wLGo6PxKQn8NFc91BNM/4xX1DTHDL75kwGEw=; fh=FsstuwMttWLQ3Or/hON/k6d0sP4hWjEB5KnC48Ftt34=; b=d9TafBV8d7VOPoYVj5i5sy4Y4yESppHTobFA6dLctHqEEbC/YIov0X+VUOEyWAm85/ r/4ZuOjXczjXJK7fMohqqVmtL/avRWCHKdpHJ3dUEOwBR1PtRuSriVbMafw9RUt39GIn mpL/74Uf6BSkYwgk6XWirQE0AMsnt0+56IvcrzNz0SgHabFQOrfJ9g6wAhz02qbpTkkV mq7Y0FOVz+8OhwGdIlC+Jre8JdRUTPA+l2DwIVqGEUicY6R2pNncyix3imfeo7H2ZOrW 5CiOD89JeUl8EC+3WGWStcpAwUxhm5V9dV2kXzRUUoOJB4R+Dzk5pfAJGsVGkWjFTNf8 9Uew==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thobe.eu; s=google; t=1784046355; x=1784651155; darn=ietf.org; h=content-type:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Hhhrfr+wLGo6PxKQn8NFc91BNM/4xX1DTHDL75kwGEw=; b=eJaUPZmXy+NZHr2uS2lOBMQR9TlV+ks1Pa9VjYJw5+PSw8vPprtTjE19KHjCjtqsDo g7ZbkLv2QEBZxlOvIrijUdB0GiwmabTmx5adFJwT26rLngITyZcnORht49kkJv28jQMp /MKJiIAkXNYNAF3iIR6M131u7y2Xy4ohSwyE0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784046355; x=1784651155; h=content-type:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Hhhrfr+wLGo6PxKQn8NFc91BNM/4xX1DTHDL75kwGEw=; b=ZtcfGUpWLLkroOo+fZIDco4GAoKSvaavEqC3KH6Tw6rxiCxQDOzjXU+O5+c8nrlPDW WWCCoK9Yy+2caxqwp14Q6/i9zCTQEQynb94q0o0oWA+8Pk1GMP58BzmAmOGI2KIpN0SJ lQmJng5s205Fgz+U5oyzOl99MXqxlAuYZ4uYnqrbyPBfqB/nVvxQOPKftsVz8YYtu0sQ SvFw0z1NdPfXAgM/1fo6jfFNO9CrIwxETMkdbYKRvQLkyWmGYzGQlA+Vj9JopuHTF+g4 wgISDJza0h838JZ43KPB51lJ/pKEovwPCD/k5ABAFPjraJM7ZCq/K1gpabHZhztsQEdr dIzA==
X-Gm-Message-State: AOJu0Yxwdo+Id+sOc44iXkTwJm0Q/ZJZZ+f6GGUmf88EfxvZBNjYIlBh 1Gk05ETuBIalykbwiyEdg22llPXr7fl97z1X+EOVk63cg6xLRUYEZ1rKYIqCmp/MitEUo3iebCs +3WHbKKZfRT5Y17e1OMOMPC5ACux55ke/riRrapizVaw3/dDiY5cQne8=
X-Gm-Gg: AfdE7cm3ZBh/AL6l7ZGxxDJSr2ALNHmDFTJQX6Pg0OIdIi/wESvBQnggKlpAJfYwGV5 DY2cgdZVu+gk/Mgy9xMbDlCISBm2dtqzSbiT6BBaqw+hGwgbOuAEDnfab2toqOPWRjO0L8g8S2a V0nY2z4LSdX5O9yJ1fjKQjtXOw3Le+r2cOPtD6g66Ma/1p3x6brTyZnSu8sLIeOn6LDSyixlv8m pPGZdXa2fbgw3q6d9qeGgkHx5D7h7vydy2xnzGaf3rVTvs8bFfNgPd/zz++WiChiU0wvzAHKBmq Pdl5jCsEJQjvEQYlRqCGutjlaFSW
X-Received: by 2002:adf:e193:0:b0:460:1a36:deac with SMTP id ffacd0b85a97d-47f2dc9c4f8mr14471331f8f.24.1784046354699; Tue, 14 Jul 2026 09:25:54 -0700 (PDT)
MIME-Version: 1.0
References: <CADn23j4Ugi5_DXA65u4CZubMOqJMLwgM1jiqHG4poJm-dZUOaQ@mail.gmail.com> <OxVXykS--F-9@cbonnell.com> <CADn23j5AnuiaBHpUMzFKJkd3jGcTyPCJ6xCpPt27kRbrXLHmhg@mail.gmail.com>
In-Reply-To: <CADn23j5AnuiaBHpUMzFKJkd3jGcTyPCJ6xCpPt27kRbrXLHmhg@mail.gmail.com>
From: "Fabian V. Thobe" <fabian@thobe.eu>
Date: Tue, 14 Jul 2026 18:25:42 +0200
X-Gm-Features: AUfX_mwwr6iXjBKvrvEbfr06vWkAiOIkgPC-ta2qfMPXYMC9qiJb5oZ9kFKpIH8
Message-ID: <CADn23j6thVTvaKWRJPki87RyQMET=4Ls6dh=_4sBU5_RyEyYFg@mail.gmail.com>
To: acme@ietf.org
Content-Type: multipart/alternative; boundary="0000000000003c4160065694a947"
Message-ID-Hash: UYTUS6SVJH64WGTYTO33BHVQO63MV7NG
X-Message-ID-Hash: UYTUS6SVJH64WGTYTO33BHVQO63MV7NG
X-MailFrom: fabian@thobe.eu
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
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Acme] Re: RFC 8555 Last Call Draft Change Request
List-Id: Automated Certificate Management Environment <acme.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/acme/mzSQXLMHgpKJuVvSUUGQLnexQKA>
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>
Hey Mike, Hey Corey,
First, thank you very much for your kind review of my initial email. Having
had personal ties to people in countries which would not be considered
free, I am surely more sensitive than the next guy and more sceptical
towards infrastructure around me.
*In general, reuse of authorizations is desirable. For "high security"
environments, clients could proactively deactivate authorizations after
certificate issuance per RFC 8555, section 7.5.2. So, I think the current
spec and server implementations are sufficient, provided that the server
implements deactivating authorizations.*
*I agree that this is a potential gap in the ACME spec. RFC 8555 allows
revocation requests to be signed by any account that has valid
authorizations for all identifiers in the certificate, but:*
1.
*There is no language mandating the deactivation of authorizations in the
course of revocation, and: *
2. *Revocation requires a certificate to revoke.*
*Additionally, there's no language in section 7.5.2 to invalidate
authorizations across all accounts.*
The fun part is, that I fully agree with you regarding 7.5.2, technically
for ease of implementation though, I believe that the organic way to pass a
cache policy would be with the item it governs > hence with the order to be
subsequently stored with the authorization itself, a simple caching : true
/ false together with the order would basically solve the entire issue.
"identifiers": [
{ "type": "dns", "value": "example.org", "caching" : "false" }
],
I feel this would be the most lightweight solution and also go hand in hand
with keeping 8555 as lightweight as possible.
*You don't want to make an API like that un-authenticated because then that
becomes a vector for DoS attacks. *
Good that we all don't want to go that road XD
*But I also see your idea to add a "I lost my account key" feature to ACME
that lets you do a DNS-01 challenge in order to prove ownership and thereby
revoke authorization to any existing ACME accounts (this feels to me
similar to a "I forgot my password" flow). I think that's an interesting
idea worth exploring.*
That is definitely a big one, I'd love to do that. I would like to
invalidate accounts as for the tremendous side effects that could have on
weak client side implementations and unintentional failed renewal. I think
requiring re-authorization is sufficient, but maybe I am missing something.
*Regarding the adoption of authorisation invalidation: *
Right now adoption for authz revocation is spotty:
Certbot: does not allow revocation of authorisation
poshACME: Does fully support it
acme.sh: Does fully support it
Certbot is the tool Let's Encrypt pushes most and has surely the highest
adoption outside of native hosting service integration and does neither
mention caching nor backup of account keys in any section of the
documentation.
*If you want to submit a proposed solution, I suggest you write an
Internet-Draft and submit it to the IETF Datatracker so that the WG has a
draft to review. Potentially, some of the folks on this mailing list might
volunteer to help you write it, if there is enough interest in solving this
problem*
Yes, I'd love to. I think the most pragmatic way would be a "caching" :
"true / false" on the identifier inside the order object. It can be passed
along the chain to create the authorization object.
If more complex solutions are appreciated, I would write a proposal along
the lines of DNS validation based authorization invalidation. I am not sure
if an account recovery is needed, if the authorizations are invalidated.
Thanks to you both, I really appreciated your replies. I am either way
happy to contribute, I do though believe that passing caching boolean down
with the order would be easiest.
On Tue, Jul 14, 2026 at 6:23 PM Fabian V. Thobe <fabian@thobe.eu> wrote:
> Hey Mike, Hey Corey,
>
> First, thank you very much for your kind review of my initial email.
> Having had personal ties to people in countries which would not be
> considered free, I am surely more sensitive than the next guy and more
> sceptical towards infrastructure around me.
>
>
> *In general, reuse of authorizations is desirable. For "high security"
> environments, clients could proactively deactivate authorizations after
> certificate issuance per RFC 8555, section 7.5.2. So, I think the current
> spec and server implementations are sufficient, provided that the server
> implements deactivating authorizations.*
> *I agree that this is a potential gap in the ACME spec. RFC 8555 allows
> revocation requests to be signed by any account that has valid
> authorizations for all identifiers in the certificate, but:*
>
> 1.
> *There is no language mandating the deactivation of authorizations in the
> course of revocation, and: *
> 2. *Revocation requires a certificate to revoke.*
>
> *Additionally, there's no language in section 7.5.2 to invalidate
> authorizations across all accounts.*
>
>
> The fun part is, that I fully agree with you regarding 7.5.2, technically
> for ease of implementation though, I believe that the organic way to pass a
> cache policy would be with the item it governs > hence with the order to be
> subsequently stored with the authorization itself, a simple caching : true
> / false together with the order would basically solve the entire issue.
>
> "identifiers": [
> { "type": "dns", "value": "example.org", "caching" : "false" }
> ],
>
> I feel this would be the most lightweight solution and also go hand in
> hand with keeping 8555 as lightweight as possible.
>
> *You don't want to make an API like that un-authenticated because then
> that becomes a vector for DoS attacks. *
>
>
> Good that we all don't want to go that road XD
>
> *But I also see your idea to add a "I lost my account key" feature to ACME
> that lets you do a DNS-01 challenge in order to prove ownership and thereby
> revoke authorization to any existing ACME accounts (this feels to me
> similar to a "I forgot my password" flow). I think that's an interesting
> idea worth exploring.*
>
> That is definitely a big one, I'd love to do that. I would like to
> invalidate accounts as for the tremendous side effects that could have on
> weak client side implementations and unintentional failed renewal. I think
> requiring re-authorization is sufficient, but maybe I am missing something.
>
> *Regarding the adoption of authorisation invalidation: *
>
> Right now adoption for authz revocation is spotty:
> Certbot: does not allow revocation of authorisation
> poshACME: Does fully support it
> acme.sh: Does fully support it
>
> Certbot is the tool Let's Encrypt pushes most and has surely the highest
> adoption outside of native hosting service integration and does neither
> mention caching nor backup of account keys in any section of the
> documentation.
>
> *If you want to submit a proposed solution, I suggest you write an
> Internet-Draft and submit it to the IETF Datatracker so that the WG has a
> draft to review. Potentially, some of the folks on this mailing list might
> volunteer to help you write it, if there is enough interest in solving this
> problem*
>
>
> Yes, I'd love to. I think the most pragmatic way would be a "caching" :
> "true / false" on the identifier inside the order object. It can be
> passed along the chain to create the authorization object.
> If more complex solutions are appreciated, I would write a proposal along
> the lines of DNS validation based authorization invalidation. I am not sure
> if an account recovery is needed, if the authorizations are invalidated.
>
> Thanks to you both, I really appreciated your replies. I am either way
> happy to contribute, I do though believe that passing caching boolean down
> with the order would be easiest.
>
> Fabian
>
>
> On Tue, Jul 14, 2026 at 3:15 PM Corey Bonnell <dev@cbonnell.com> wrote:
>
>> > Introduce a mechanism to explicitly disable authorization caching for
>> DNS-01 challenges (Reference:
>> https://github.com/letsencrypt/boulder/issues/8870)
>>
>> In general, reuse of authorizations is desirable. For "high security"
>> environments, clients could proactively deactivate authorizations after
>> certificate issuance per RFC 8555, section 7.5.2. So, I think the current
>> spec and server implementations are sufficient, provided that the server
>> implements deactivating authorizations.
>>
>> > Introduce a recovery mechanism allowing domain owners to invalidate all
>> existing authorizations (not the account) through a fresh
>> proof-of-ownership challenge (e.g., DNS-based).
>>
>> I agree that this is a potential gap in the ACME spec. RFC 8555 allows
>> revocation requests to be signed by any account that has valid
>> authorizations for all identifiers in the certificate, but:
>>
>>
>> 1. There is no language mandating the deactivation of authorizations
>> in the course of revocation, and:
>> 2. Revocation requires a certificate to revoke.
>>
>>
>> Additionally, there's no language in section 7.5.2 to invalidate
>> authorizations across all accounts.
>>
>> Absent a way to invalidate through the ACME protocol, there are some
>> mitigations:
>>
>>
>> 1. Directly contact the CA. WebPKI CAs need to be able to respond to
>> problem reports within 24 hours.
>> 2. Assuming the WebPKI CA supports RFC 8657 (which all will need to
>> support in early 2027 thanks to CABF ballot SC-98): set up CAA records with
>> a short TTL containing the RFC 8657 accounturi parameter and update the
>> records in the event of account compromise. WebPKI CAs are required to
>> recheck CAA records every 8 hours or before the TTL elapses (whichever is
>> greater), so there is a relatively short window for abuse.
>>
>>
>> Thanks,
>> Corey
>>
>> [1]
>> https://cabforum.org/2026/05/13/ballot-sc098v2-process-rfc-8657-caa-parameters/
>>
>> Jul 14, 2026, 04:27 by fabian@thobe.eu:
>>
>> Dear RFC8555 Committee,
>>
>> In cc: Alexis Hancock from EFF as some content involves also Certbot
>>
>> *TL;DR *
>> A mechanism for authorization invalidation independent of the account key
>> appears necessary to ensure that domain ownership, and not a historical
>> authorization state, remains the ultimate source of trust.
>>
>> *Background*
>> While working on improvements to the DNS Route53 plugin for Certbot (Certbot
>> PR #10729 <https://github.com/certbot/certbot/pull/10729>) to better
>> meet the security requirements of a European government entity, we
>> identified a potentially critical issue related to cached DNS-01
>> authorizations. Specifically, we observed during the PR related manual
>> testing that certificate issuance remained possible even after the certbot
>> DNS credentials had been revoked upon credential change. While we initially
>> suspected a regression related to previously used AWS credentials, further
>> investigation revealed that the root cause lies in RFC8555 mandated
>> procedures handling of DNS authorizations.
>>
>> *Relevant Sections of RFC 8555*
>>
>>
>> *7.5.2. Deactivating an Authorization*
>> The server must verify that deactivation requests are signed by the
>> account key corresponding to the authorization.
>>
>>
>>
>> *7.3.6. Account Deactivation*
>> Similarly, account deactivation requires a valid signature from the
>> account key.
>>
>>
>> *In both cases, the ability to revoke or deactivate authorizations is
>> strictly tied to possession of the account key.*
>>
>> *Threat Analysis*
>>
>> *High-Level Concern*
>>
>> The current model creates a situation in which DNS-01 authorizations may
>> remain valid even when DNS credentials are revoked and the account key is
>> no longer accessible for a lack of re-authorization. If a legitimate owner
>> loses control of the account key, whether through compromise or operational
>> loss, there is no reliable mechanism to invalidate existing authorizations.
>>
>>
>> This creates a scenario where a malicious actor in possession of the
>> account key can continue issuing certificates without the knowledge or
>> consent of the legitimate domain owner.
>> Hereby the fact that Let's Encrypt clearly democratized encryption with
>> valid certificates is of high importance: systems in subpar environments or
>> environments subject to financial constraints regarding the procurement are
>> much more vulnerable than large enterprises or organizations. Especially in
>> the highly open source dependent political NGO sector I see significant
>> risks as the infrastructure owner might be a malicious actor allowing
>> various "men in the middle" scenarios.
>>
>>
>> A mechanism for authorization invalidation independent of the account key
>> appears necessary *to ensure that domain ownership, and not historical
>> authorization state, remains the ultimate source of trust*.
>>
>> *Observed Risk Scenarios*
>>
>> Several already observed risk scenarios emerged:
>>
>> - Lack of recoverable or uncompromised physical infrastructure after
>> ransomware incidents makes the account keys irrecoverable;
>> - Preference for full system rebuilds over restoration due to
>> uncertainty about compromise timelines;
>> - Missing or incomplete secret management practices;
>> - Operational pressure leading to deviations from established
>> recovery procedures
>>
>> In these scenarios, loss of the ACME account key is a realistic and,
>> maybe even already a recurring outcome.
>>
>> *Expanded Risk Considerations*
>>
>> Additional risks arise in environments where DNS infrastructure itself
>> may be compromised or controlled by malicious actors, including:
>>
>> - Man-in-the-middle attacks via compromised DNS resolution chains
>> - Centralized or state-controlled infrastructure introducing systemic
>> risks
>> - Limited infrastructure diversity in certain regions
>>
>> In such cases, cached authorizations amplify the attack surface by
>> allowing continued certificate issuance independent of current DNS control.
>>
>> *Proposed Mitigations*
>>
>> 1. *Lightweight Option: No-Cache Mechanism for DNS-01*
>> Introduce a mechanism to explicitly disable authorization caching for
>> DNS-01 challenges.
>> (Reference: https://github.com/letsencrypt/boulder/issues/8870)
>> 2.
>>
>>
>> *Break-Glass Recovery via Proof of Ownership*
>> Introduce a recovery mechanism allowing domain owners to invalidate
>> all existing authorizations (not the account) through a fresh
>> proof-of-ownership challenge (e.g., DNS-based).
>>
>>
>> This would:
>> - Provide a recovery path in case of account key loss
>> - Prioritize domain ownership verification over authorization
>> persistence
>> - Align with the core purpose of certificates: authentication, not
>> just encryption
>>
>>
>>
>> *Additional notes regarding awareness*
>>
>>
>> In discussions with peers across banking, healthcare, public sector, and
>> commercial environments (many operating under ISO 27001 or similar
>> frameworks), a lack of awareness regarding cached issues become apparent
>> (despite all of us using Let's Encrypt in private or professional
>> settings). Notably, none of the professionals consulted were aware that
>> DNS-01 authorizations are cached in a way that allows continued certificate
>> issuance after DNS credentials are revoked. There is also no clear
>> indication of this behavior in common tooling.
>>
>> As a result all of us assumed that:
>>
>> - Revoking DNS credentials is widely assumed to fully mitigate risk
>> - No standard procedures were required for responding to account key
>> loss
>>
>> Given that the tooling does not surface or warn about cached
>> authorizations, there might also be a problem regarding the value of
>> account keys. To be honest among 9 people, two of us even had a false risk
>> assessment in the ISO 27001 assessments, in one case fully audited by a
>> market leading entity. There might be a disconnect between what's
>> documented at Let's Encrypt and what effectively reaches the community as
>> literally there's no section neither about risks nor backup in the Certbot
>> documentation, the discovery of the non-ephemeral nature of
>> authorizations requires research, this is also reflected in the answers of
>> AI agents (see below), all major AIs apart from Claude responded wrongly. An
>> issue and offering to fix at least some oddities of certbot behaviour was
>> not favourably received (https://github.com/certbot/certbot/issues/10731
>> ).
>>
>> As outlined above, the current ACME model prioritizes usability and
>> automation but does not fully address scenarios involving loss of account
>> keys. Given the widespread adoption of ACME and the increasing reliance on
>> short-lived certificates, this gap presents a meaningful security risk
>> undermining the efforts to shorten certificate lifetime for security as any
>> effort is undermined by the malicious can simply order a new certificate
>> with obtained account keys.
>>
>> I would be happy to provide a more detailed proposal, including draft
>> specification language and an expanded threat analysis, if that would be
>> helpful.
>> Attachments
>>
>> *Boulder Issue:*
>> Feature Request: Add an opt-in mechanism to disable DNS-01 authorization
>> reuse (--no-cache) for one Time DNS-01 Challenge Usage
>> #8870
>> https://github.com/letsencrypt/boulder/issues/8870
>>
>> *Certbot PR *
>> dns-route53: cerbot credentials.ini file support + fix duplicate TXT
>> record on apex/wildcard
>> #10729
>> https://github.com/certbot/certbot/pull/10729
>>
>>
>> *Certbot Issue *[Bug]: Invalid / Revoked credentials allow renewal due
>> to lack of revalidation of credentials and continued use of DNS-01 Auth
>> #10731
>> https://github.com/certbot/certbot/issues/10731
>>
>> *Example Observation*
>>
>> A Certbot renewal executed with invalid DNS credentials still succeeded,
>> without indicating that cached authorizations were used:
>>
>>
>> (venv) zeus@mi-certbot-staging:~/certbot$ sudo venv/bin/certbot certonly
>> \
>> --dns-cloudflare -d "*.domain.com" --dns-cloudflare-credentials \
>> ~/cfinvalid --staging
>> [...]
>> Renewing an existing certificate for *.domain.com
>> Successfully received certificate.
>> Certificate is saved at: /etc/letsencrypt/live/domain.com/fullchain.pem
>>
>>
>>
>> *Generative AI answers to the question:are dns challenges on certbot
>> remade on every renewal?*
>>
>>
>> 1. *Gemini*
>> Unconditional Yes
>> Yes, DNS challenges are remade on every single renewal. Every time
>> Certbot attempts to renew a certificate, it initiates a fresh "order" with
>> the Certificate Authority (such as Let's Encrypt). This order generates a
>> brand-new, completely randomized token.
>> 2. *Co-Pilot *
>> Unconditional Yes
>> "Yes — DNS‑01 challenges are recreated every time Certbot renews your
>> certificate, unless your DNS plugin/provider supports persistent TXT
>> records (almost none do). Certbot must prove domain control again at each
>> renewal, so it generates a new TXT value for _
>> acme-challenge.yourdomain.com every time."
>> 3. *ChatGPT*
>> Unconditional Yes
>> "Yes. If you're using a DNS-01 challenge with Certbot, the challenge
>> is generated fresh for every certificate issuance and every renewal."
>> 4. *Claude*
>> Correct Answer
>> Not automatically, no — it depends on the ACME server's authorization
>> caching, not on certbot itself.
>>
>>
>>
- [Acme] RFC 8555 Last Call Draft Change Request Fabian V. Thobe
- [Acme] Re: RFC 8555 Last Call Draft Change Request Mike Ounsworth
- [Acme] Re: RFC 8555 Last Call Draft Change Request Corey Bonnell
- [Acme] Re: RFC 8555 Last Call Draft Change Request Fabian V. Thobe
- [Acme] Re: RFC 8555 Last Call Draft Change Request Fabian V. Thobe
- [Acme] Re: RFC 8555 Last Call Draft Change Request Corey Bonnell
- [Acme] Re: RFC 8555 Last Call Draft Change Request Ilari Liusvaara
- [Acme] Re: RFC 8555 Last Call Draft Change Request Michael Richardson
- [Acme] Re: RFC 8555 Last Call Draft Change Request Michael Paoli
- [Acme] Re: RFC 8555 Last Call Draft Change Request Mike Ounsworth
- [Acme] Re: RFC 8555 Last Call Draft Change Request Aaron Gable
- [Acme] Re: RFC 8555 Last Call Draft Change Request Seo Suchan
- [Acme] Re: RFC 8555 Last Call Draft Change Request Fabian V. Thobe
- [Acme] Re: RFC 8555 Last Call Draft Change Request 皮皮猪
- [Acme] Re: RFC 8555 Last Call Draft Change Request Aaron Gable
- [Acme] Re: RFC 8555 Last Call Draft Change Request Corey Bonnell
- [Acme] Re: RFC 8555 Last Call Draft Change Request Michael Richardson
- [Acme] 回复:Re: RFC 8555 Last Call Draft Change Req… 皮皮猪