Re: [Acme] Benjamin Kaduk's Discuss on draft-ietf-acme-email-smime-10: (with DISCUSS and COMMENT)

Alexey Melnikov <alexey.melnikov@isode.com> Thu, 05 November 2020 11:07 UTC

Return-Path: <alexey.melnikov@isode.com>
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 4E60C3A0E7E; Thu, 5 Nov 2020 03:07:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.346
X-Spam-Level:
X-Spam-Status: No, score=-2.346 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, NICE_REPLY_A=-0.247, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=isode.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6fx7BF3dnPd9; Thu, 5 Nov 2020 03:07:26 -0800 (PST)
Received: from statler.isode.com (Statler.isode.com [62.232.206.189]) by ietfa.amsl.com (Postfix) with ESMTP id 730AB3A0E80; Thu, 5 Nov 2020 03:07:26 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1604574445; d=isode.com; s=june2016; i=@isode.com; bh=JqWAgkqkSKDtMoOQ5xIbKIUU6EwuKM0NfbvskZmXSgo=; h=From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version: In-Reply-To:References:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description; b=QZCBZHzDKyvKpfCjPqQ8/orwXd4cAfvdotfNXc/dYkKqojp4QBX7a0jBkeFRZ5TbSrY69v Mmr21ZenR7kbfPDdSnkQHnW/pxzihkSs9yRfU9ebhH5E4IUdF01aLsjMyGB8sbbRSc1WuM 7dVV/TEZ9OUSrMnlfnrr1yDrr+H4n0I=;
Received: from [192.168.1.222] (host5-81-100-6.range5-81.btcentralplus.com [5.81.100.6]) by statler.isode.com (submission channel) via TCP with ESMTPSA id <X6Pc7AB1e4NR@statler.isode.com>; Thu, 5 Nov 2020 11:07:25 +0000
From: Alexey Melnikov <alexey.melnikov@isode.com>
To: Benjamin Kaduk <kaduk@mit.edu>, The IESG <iesg@ietf.org>
Cc: rsalz@akamai.com, acme@ietf.org, draft-ietf-acme-email-smime@ietf.org, acme-chairs@ietf.org
References: <160456339844.32027.10383263330343255957@ietfa.amsl.com>
Message-ID: <4f0c0a3d-766a-3da7-f5b7-b2abd447298b@isode.com>
Date: Thu, 05 Nov 2020 11:07:02 +0000
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0
In-Reply-To: <160456339844.32027.10383263330343255957@ietfa.amsl.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Content-Language: en-GB
Archived-At: <https://mailarchive.ietf.org/arch/msg/acme/Fbj9FoxPUOSG8BG1lAUFykWzMj4>
Subject: Re: [Acme] Benjamin Kaduk's Discuss on draft-ietf-acme-email-smime-10: (with DISCUSS and COMMENT)
X-BeenThere: acme@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Automated Certificate Management Environment <acme.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/acme>, <mailto:acme-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/acme/>
List-Post: <mailto:acme@ietf.org>
List-Help: <mailto:acme-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/acme>, <mailto:acme-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 05 Nov 2020 11:07:28 -0000

Hi Ben,

I am sending you a partial reply, as I am still editing the document 
based on some of your more detailed comments:

On 05/11/2020 08:03, Benjamin Kaduk via Datatracker wrote:

> ----------------------------------------------------------------------
> DISCUSS:
> ----------------------------------------------------------------------
>
> I have one point that I am not sure of the significance of and would
> like to discuss further, and one point that I think has a fairly
> clear/straightforward resolution.
>
> One of the key properties of ACME is that its authenticator provides
> assurance that both a party controlling the identifier to be certified
> and the ACME client jointly assent to the certification request of that
> identifier.  I'm trying to explore a bit more the "jointly assent" part,
> and whether it is clear that all steps of the challenge/validation flow
> are ultimatetly tied to the same order request.
> In the validation flows for the challenge types from 8555, the full
> token is returned to the ACME client, which then provides the token to
> the entity that controls the identifier being certified, in order to set
> up state to expect a verification attempt using that token.  In this
> email validation flow, though, the token-part1 is *only* present in the
> challenge email, so there is no thread of continuity that allows the
> email account holder to tie the validation attempt to the specific
> request (i.e., token).  Any message that comes in claiming to be an ACME
> challenge would end up being treated as a validation attempt for the
> pending request, so the ACME server (or a party pretending to be one)
> does not have to provide any proof of knowledge of the pending
> validation before the response email is generated.  Some key properties
> here seem to include: there is a portion (token-part2) to the response
> email that can only be provided by the ACME client, there is a part
> (token-part1) to the response email that can only be provided by an
> entity that can receive email at the email address being validated, and
> that the validation attempt, response email, and ACME order request can
> be tied together by unique identifiers.  It seems that we could achieve
> all three of these by having the HTTPS response to the ACME client
> include a token-part0 as well as the token-part2, with token-part0 being
> used as the subject line of the challenge email and token-part1 being
> conveyed in some fashion (whether body or headers) of the challenge
> email.  Does such a scheme provide any useful properties that are not
> provided by the current scheme?
We might need to have a conference call, as I don't fully understand 
your concerns here. But let me think about this a bit more.
> The more straightforward point is that the procedure in section 3
> indicates that token-part2 is returned to the ACME client over HTTPS,
> but the stated procedure does not otherwise involve an ACME client in
> initiating the newOrder request.  I think we need to clarify the
> interaction/relationship between end-user/email client UI/etc and the
> ACME client in step 1.  In particular, I think that "[t]his document
> doesn't prescribe how exactly S/MIME certificate issuance is initiated"
> seems incompatible with requiring there to be an ACME client involved
> (and the presumed newOrder ACME request, etc.) unless the "initiate"
> operation is supposed to be the way by which the ACME client is
> triggered to start the request.
Yes. When I wrote this text I was thinking either user pushing a button 
on a CA's website saying "initiate S/MIME certificate issuance for me", 
running a command line tool a la Let's Encrypt or pushing a button in an 
ACME-aware MUA. Can you suggest how to clarify this?
> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
>
> The discuss point notwithstanding, if we assume that the current
> validation process does provide the necessary linkage across steps, it
> seems that the procedure would provide only similar properties to the
> RFC 8555 validation flows -- I am having a hard time convincing myself
> that we definitely have the 128-bit security level for all the
> information paths at play.  It seems like having both token-part1 and
> token-part2 each be 128+ bits would be fairly low-cost and would give
> greater peace of mind that we are not opening up any 64-bit attacks.
Making them both 128 bits is fine with me.
> Using "ACME:" as the Subject: marker for both challenge mail and
> response mail potentially sets us up for various reflection/janus-like
> attacks.
Can you elaborate on this? Responses would have some kind of prefix in 
front of "ACME" (e.g. "Re: ACME: ..."), so they will never be the same 
subjects as in challenges.
> We could give some warnings about this in the security
> considerations, or just indicate in-band whether it is a challenge or a
> response...
>
> Section 3
>
>         contains at least 64 bits of entropy.  (ACME server MUST generate
>         token afresh for each S/MIME issuance request.)  The challenge
>
> nit: missing article ("the"), twice ("The ACME server", "the token").

Already fixed in my copy due to other comments.


Best Regards,

Alexey