[Acme] 回复:Re: RFC 8555 Last Call Draft Change Request

皮皮猪 <507069@qq.com> Fri, 24 July 2026 17:30 UTC

Return-Path: <507069@qq.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 A4C6811E538A6 for <acme@mail2.ietf.org>; Fri, 24 Jul 2026 10:30:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1784914230; bh=Cph113y8A9DzLeV+VfApEI1YPPqo71YpSWraN4JAO8g=; h=From:To:Cc:Subject:Date:References:In-Reply-To; b=WhhPNzSBs7zm8oRcY36G/icLSyLcX6ltU7HGbMrNAYAVoeRcdtBPvH4iJVZMpmEAb m9sdO2k/TQMpGuuKVjq2p3v0ZIvfEItg3f9d74Zs6FsP4fQgJZFGRA+R5liwOhkbCg rGuz0kQk//w8E9LZLbr8mDzc8ak5u8U1OfOvep0E=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: 1.089
X-Spam-Level: *
X-Spam-Status: No, score=1.089 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_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HELO_DYNAMIC_IPADDR=1.951, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RDNS_DYNAMIC=0.982, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (1024-bit key) header.d=qq.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 G3jq561gtFAC for <acme@mail2.ietf.org>; Fri, 24 Jul 2026 10:30:29 -0700 (PDT)
Received: from out162-62-58-211.mail.qq.com (out162-62-58-211.mail.qq.com [162.62.58.211]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id ED5AE11E5389A for <acme@ietf.org>; Fri, 24 Jul 2026 10:30:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1784914219; bh=rof5jTANGaKNJwR8h56rNgSZJ54Ti4K89WWprpWG/pk=; h=From:To:Cc:Subject:Date:References:In-Reply-To; b=P6suxOLTwv6lY+sWBQPoeDxmN6yvn/wJ3IGqreHFtJSXdzjrBUmJ9KrEo/Q3izOce m+ZKtikz8At7b6rB4DgWKuYOHT8rwZ1qmfu5b/TGb3IdtmsjD8RNvJiPZMgmT0zDqw N5k22cHJd8yRkjUgW2PYPlHc1PF+Na35G5uo92oo=
X-QQ-XMRINFO: Mp0Kj//9VHAxdz5hzMUfFZNmCG5HNo87TA==
X-QQ-XMAILINFO: M9b1ca1A5fBknJ541xZsqAUCgU7YnYENlmmiiBcK6T+gKvJNa9n1cWDOE2KCHG dQ3PbRy/T6BN9CUVPOnCZmwRF4Z0eKczdFJ5NNZm6AgbQRNvHYNHrIV+blSUe1AV58jvm7mdb5+sC d0wkqJaUnuilwN25sYOPZIGnXsYSBI+RTLCslePX4XoSXZhKOYcD9GsZO4NuPZdiMTpcLYK6/4bXY j3W3KFQmNxq/9tEyzDQYaRdcyHNvKI1m6xq3ujOZmfVbmdylwdxHet9bYPxAYFE6eu3GmQGGUwQn0 fPKAKUUN0n5Ve3AGqtFsbeFgQOsrSRfKYG0yg1s3GDQrnfVTNJBYjNMpenOIzlmSn/TwxZ90Ib+Bn TBiX30hnGiTT/CwXg2xi1Wxf9EbI6U5FQ6OeOKbYeke1euhUmy6zDWUoOWjdPj3WrYdsVXy0MQIRE YyH98zDTmb7JQcKGwBHiQPrLy5J9R9ct9/sASXHS/UzU5UpfYGO9nHeYJU9Q7BkTauzbwPb6Zd2qh pHQZb9RQ2Z5rD6iZGBCGnz6qdLQ/uDYo8JErPDFvjGjOTMhfDQ8pgm1fuzCQh5GaUKd9zizt4ygNx rbCPBsipmjxiyH6060v2lTW1zKLfJEREjfmwBWn4xhE2AOVxuKy/9HZJTQSHjhxUGk82hqPYyNkqz xf2fkQbQTunMpqS22lr2EqDzOVdkXEVqkBC3jne4Nc9+9aS/q/26igKJOjav2SuE/cLKt7oUTISeC fGA0yrq2RJiaJe5QhYteB6OBONHBcQ9PkRL6JbWEb4bFWOvfSqkRI4Qq1+ReO7//Ul7IKXGcyfZ1r AnHQBp3mteLa28Z9xNW+g3UTEU9nkh/DtHgzGPTzTjErcW3WJfORRZ6krPB29MmrCz2eLjZ/pbrnH GxPc+/vjGHD9kj4n4pYEhxkUzVj6TdSYfngtFA7sHim8SOzTotF1jQ3tn6rwm4TebaffW1AbYBzSP 2YtPWiJ9n0oIg+JcmvtHickdSCZxrT3mUYVImH9fvaH3m/olY0qXHPKdpbq7om40q/JH/tcVwDsae 8nDMQ09DAZG5Fo23v/KHKOVVKdc8qMIpPgPkilM98yk9ae+lIGHNfhw0nKgIUS6HEI77CGiufI11d sNcp3E1Hz1w/Eg==
From: 皮皮猪 <507069@qq.com>
To: Aaron Gable <aaron=40letsencrypt.org@dmarc.ietf.org>, "Fabian V. Thobe" <fabian@thobe.eu>
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_6A63A12A_939B2C20_21C9BACA"
Content-Transfer-Encoding: 8bit
Date: Sat, 25 Jul 2026 01:30:18 +0800
X-Priority: 3
Message-ID: <tencent_91182FB197DD6EDF0C369029B92458978B08@qq.com>
X-QQ-MIME: TCMime 1.0 by Tencent
X-Mailer: QQMail 2.x
X-QQ-Mailer: QQMail 2.x
References: <CAPU_E+eKRG5um9m_yFW_EDYs7k+bq4KHSr1Ra89Hk=-Wk91qAg@mail.gmail.com> <CAKZgXHrDonc7OABw7msMLq7_p+Rg0X8C2j+JKz=TEHsCGY_s_A@mail.gmail.com> <CAEmnErfOd5ciXP=J6R+=F4sfGKie80UjMs0WPtdNdOmB2icWSw@mail.gmail.com> <CADn23j7XpVatP+gwLgUo57mQU9d_M=YRDGc3YhJU60CV+enJ=Q@mail.gmail.com> <CAEmnErfqMwiHwZE_=HmMOekEx_TjOZtZeN+wzZDRBzX74NguPQ@mail.gmail.com>
In-Reply-To: <CAEmnErfqMwiHwZE_=HmMOekEx_TjOZtZeN+wzZDRBzX74NguPQ@mail.gmail.com>
X-QQ-mid: xmseza56-0t1784914218tzjr1vl89
Message-ID-Hash: EEWWBUX74SAGM3KMBDLMPTLPFFIOA677
X-Message-ID-Hash: EEWWBUX74SAGM3KMBDLMPTLPFFIOA677
X-MailFrom: 507069@qq.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 <acme@ietf.org>, Mike Ounsworth <ounsworth+ietf@gmail.com>
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/os3hpCQtjAlafLZizzolJpgDwtk>
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>

Hi all,


I'd like to share an alternative concept for the account recovery problem being discussed on the list, and to provide context on how our upcoming OPAQUE extension fits into the broader ACME account security landscape.


Observation from IETF 126:
Account security is emerging as a recurring theme in ACME. The ongoing thread on account recovery ("I lost my account key, let me re-do DNS-01/HTTP-01 and kick all keys authorized for that domain") and the adoption of draft-ietf-acme-dns-persist-01 both highlight the need for stronger account-layer security. These recovery needs are more commonly addressed in IdP-centric scenarios.


Beyond the CAA + ACME Account Binding approach, we have been exploring a password-based mechanism using the OPAQUE&nbsp;(OPAQUE Account+ACME pk-01). The motivation is :


1. Key Vaulting and Cross-Device Synchronization
Since RFC 8555, account private key management has been entirely client-side. Users face a real pain point: each device must generate its own key pair and complete certificate issuance independently, and losing the account key means losing management access to all historical certificates.
We address this by leveraging OPAQUE's native export_key for end-to-end encryption of certificate private keys, then storing them in an ACME Key Vault endpoint:
export_key is derived locally on the client — the server never learns it.
On a new device, the user re-authenticates with OPAQUE, re-derives the same export_key, and recovers all stored keys.
The encryption key is cryptographically bound to the password and OPAQUE credentials — only the user who knows the correct password can decrypt the data.
This is the most significant value of this extension: upgrading the ACME account from a lightweight authentication handle to a "digital asset vault" — with encryption keys derived natively from OPAQUE, without introducing additional cryptographic primitives.


2. Account Recovery and Multi-Factor Authentication
RFC 8555 deliberately omitted account recovery. OPAQUE's registration-recovery two-phase model provides a cryptographically secure solution:
Combining OPAQUE password authentication with the standard ACME account key rollover procedure provides a two-factor recovery path.
OPAQUE account authentication is fully compatible with all existing ACME DCV challenge types and extensions. CAs can configure policies that require OPAQUE authentication as an additional factor for specific certificate types, &nbsp;providing higher assurance.


The OPAQUE approach and the CAA scheme are complementary. OPAQUE provides an end-to-end cryptographic recovery path independent of DNS infrastructure, covering use cases that cannot be addressed by the CAA scheme.


Following the consensus at IETF 125 on draft-geng-acme-public-key, the authors have split that proposal into two distinct drafts. draft-geng-acme-public-key-07 has already been submitted. We are now authoring&nbsp;draft-geng-acme-opaque, which will cover OPAQUE-based account authentication, account recovery, and password-based issuance. We expect to submit it &nbsp;and welcome further discussion once the draft is available.


Thanks,
Feng Geng


         原始邮件
         
       
发件人:Aaron Gable <aaron=40letsencrypt.org@dmarc.ietf.org&gt;
发件时间:2026年7月24日 00:15
收件人:Fabian V. Thobe <fabian@thobe.eu&gt;
抄送:Acme <acme@ietf.org&gt;, Mike Ounsworth <ounsworth+ietf@gmail.com&gt;
主题:[Acme] Re: RFC 8555 Last Call Draft Change Request



Having spent more time thinking&nbsp;about this, and discussing it at IETF 126, I've come to the conclusion that I personally think that CAA (RFC 8659) with ACME Account Binding (RFC 8657) is the correct -- and already extant -- solution here.


If an attacker gains authorizations for your domain names, add CAA records binding those domain names to your specific account&nbsp;at the CA(s) of your choice. Then the attacker will no longer be able to use those authorizations to issue certificates.


This has one huge advantage over any possible ACME-based mechanism: it works no matter how many different ACME CAs exist. Any ACME-based in-band mechanism for revoking authorizations would require the rightful domain controller to attempt to revoke authorizations at every&nbsp;possible ACME CA the attacker could have possibly gotten authorizations from. Requiring the defender to reach out to every single ACME CA is untenable. Adding a single CAA record to their DNS is much simpler, and will affect all CAs equally.


It does have one disadvantage: Per current WebPKI requirements (set by the CA/BF), the CA can cache CAA lookup results for up to 8 hours. If the defender retakes control of their domain and adds new CAA records after just 2 hours, they may not become truly effective for another 6 hours. But at least there's still a strictly limited, human-scale period of time during which the defender has to keep an eye out for any new issuance by the attacker. Once those 8 hours have passed, the new CAA records will protect them. And they'll continue to protect them going forward.


Aaron

On Thu, Jul 16, 2026 at 6:47 AM Fabian V. Thobe <fabian@thobe.eu&gt; wrote:
Thank you for the beyond warm receival and the many responses on my initial email and questions.&nbsp;
Mike Ounsworth was kind enough to give me some feedback on this for me to participate&nbsp;in an RFC mailing group and&nbsp;
told me to keep it shorter and give it a try to find collaborators to work on a draft.&nbsp;


Proposal for Draft: Make ACME Zero Trust Ready
I think there is a gap in ACME&nbsp;where a domain owner should be able to contact a CA over ACME, perform a proof-of-ownership (DNS-01 or HTTP-01) and then kick any ACME&nbsp;authorisations currently authorized to issue for that domain.&nbsp;
Based on the replies there seems to be a consensus around this topic given the current lack of recovery procedures for a loss of an ACME account key.&nbsp;


Aaron Gable made following suggestion:&nbsp;
&gt; Add a new field to newAuthorization (and maybe newOrder) requests, call&nbsp;it `exclusive: true` for the sake of argument.
&gt; When an `exclusive` authorization moves into the `valid` state, all other `valid` authorizations for the same identifier&nbsp;held by different accounts are moved into the `revoked` state.


I think what Aaron Gable&nbsp;suggests would be a good way and has some benefits:&nbsp;

we wouldn't toy with accounts;&nbsp;

it would resolve the complex recovery processes needed if starting with an account recovery process
Considering also Corey's feedback I would like to offer to work on a Draft and I am looking for collaborators to realize following:&nbsp;

An exclusivity field to invalidate all previous authorizations&nbsp;in validity

An MTC compatible One Time Authorization Flag disallowing future order to be made with the same Authorization
Both requests target to create a situation ACME servers follow a 0 trust spirit of continued revalidation if requested by the Account holder.&nbsp;

Would somebody be willing to work with me on that?




On Wed, Jul 15, 2026 at 8:33 PM Aaron Gable <aaron=40letsencrypt.org@dmarc.ietf.org&gt; wrote:
Heh, I was planning to bring this up during AoB, so it's great to have it on the agenda.


I think that the simplest approach is something like this:
- Add a new field to newAuthorization (and maybe newOrder) requests, call it `exclusive: true` for the sake of argument.
- When an `exclusive` authorization moves into the `valid` state, all other `valid` authorizations for the same identifier&nbsp;held by different accounts are moved into the `revoked` state.


A slightly more complex version would be to add a new /revoke-authz directory entry, which creates a special kind of Authorization which behaves like I described above. This would have the benefit of being easy to advertise (an ACME server supports it if they list the new endpoint in their directory) and dedicated (no one could write an ACME client which simply marks all&nbsp;new order authorizations as exclusive). This would have the downside of being a bit more work for ACME clients to implement (a whole new endpoint and equivalent of a CLI subcommand as opposed to just a single new boolean).


Note that most CAs simply do not have ways for one Subscriber to prevent a different Subscriber from issuing for the same identifier. This isn't a deficiency in ACME compared to the status quo, but it definitely is a place where ACME can lead the way.


Aaron
 _______________________________________________
 Acme mailing list -- acme@ietf.org
 To unsubscribe send an email to acme-leave@ietf.org
 




--

Fabian V. Thobe

+39 331 6355 270 /&nbsp;fabian@thobe.eu

Via Filippo Corridoni 68, 56125 Pisa