Re: [Acme] Assisted-DNS challenge type

Jörn Heissler <> Tue, 23 January 2018 11:22 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 764D3120724 for <>; Tue, 23 Jan 2018 03:22:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: 0.051
X-Spam-Status: No, score=0.051 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_DYNAMIC_IPADDR=1.951, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id Yk9GuOHqx5eW for <>; Tue, 23 Jan 2018 03:22:50 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id E89FA12025C for <>; Tue, 23 Jan 2018 03:22:42 -0800 (PST)
Received: from [] ( by with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <>) id 1edwf2-0003Da-8q for; Tue, 23 Jan 2018 12:22:40 +0100
Date: Tue, 23 Jan 2018 12:22:34 +0100
From: =?iso-8859-1?Q?J=F6rn?= Heissler <>
Message-ID: <>
References: <> <20180123070934.GA6737@LK-Perkele-VII> <> <>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="Q68bSM7Ycu6FN28Q"
Content-Disposition: inline
In-Reply-To: <>
User-Agent: Mutt/1.9.2 (2017-12-15)
Archived-At: <>
Subject: Re: [Acme] Assisted-DNS challenge type
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Automated Certificate Management Environment <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 23 Jan 2018 11:22:52 -0000

On Tue, Jan 23, 2018 at 10:12:39 +0100, Thomas Lußnig wrote:
> instead of an FIXED cname that does not ensure that the requestor possess
> access to the dns.
> I would prefer to use an static TXT record whith the Account Key hashed.
> This would prove that
> only an person possesing an specified private key is allowed to request.

From what I understand, this discussion basically is the same as e.g.

It all boils down to
"I don't want dynamic challenges, I want static authorization."

I hereby propose that ACME is scrapped and replaced by the following workflow:

- Create asymmetric key pair (may be reused for multiple domain names!)
- Create DNS record: _acme-key.<domain>. TXT "<hfunc>:<hex(hash(der(pubkey)))>"
- Create key + csr (CN/SAN <domain>)
- POST json([CSR, pubkey, signature]) to https://<cadomain>/acme/issue
- CA fetches pubhash from DNS, verifies the request and replies with the cert.

I just reduced the ACME protocol to 5 lines :-]
No more bothering with jws, accounts, nonces or challenges.

More serious now. Why does ACME use challenges? Are there any benefits
that justify the complexity of the protocol?
When offering an easier way (see above), nobody will ever bother using
the complex way again and those benefits no longer apply.

Joern Heissler