Re: [Acme] Second AD Review: draft-ietf-acme-star

Thomas Fossati <Thomas.Fossati@arm.com> Mon, 01 July 2019 20:58 UTC

Return-Path: <Thomas.Fossati@arm.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 F155D12017D for <acme@ietfa.amsl.com>; Mon, 1 Jul 2019 13:58:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=armh.onmicrosoft.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 2s6948Rkpl9M for <acme@ietfa.amsl.com>; Mon, 1 Jul 2019 13:58:02 -0700 (PDT)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00043.outbound.protection.outlook.com [40.107.0.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 91C1C120194 for <acme@ietf.org>; Mon, 1 Jul 2019 13:58:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+r9Gdyy7ic1WMV94//kUTu+PVbvpjuE0ijgz3r5JW70=; b=eYykU23cd7e16DyPvJrpVrD2uVNhXD3EZfyoprkNxXXEE5+XVBQHw8RGSXjZ3PFrWOtHbq07TFhnQu2YkiQ49nkNzEChsZo9kO+Z/uo5RxY5C2A2BEpzeDBfrQvPMyxDbLPCcMPXBhS0zL/B6ESKKR7vRvYCXtm/VJMSi49ZrLc=
Received: from AM6PR08MB4231.eurprd08.prod.outlook.com (20.179.4.202) by AM6PR08MB3047.eurprd08.prod.outlook.com (52.135.167.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2032.20; Mon, 1 Jul 2019 20:57:58 +0000
Received: from AM6PR08MB4231.eurprd08.prod.outlook.com ([fe80::6897:93dc:1fd:e091]) by AM6PR08MB4231.eurprd08.prod.outlook.com ([fe80::6897:93dc:1fd:e091%4]) with mapi id 15.20.2032.019; Mon, 1 Jul 2019 20:57:58 +0000
From: Thomas Fossati <Thomas.Fossati@arm.com>
To: Roman Danyliw <rdd@cert.org>, "acme@ietf.org" <acme@ietf.org>
CC: Thomas Fossati <Thomas.Fossati@arm.com>
Thread-Topic: [Acme] Second AD Review: draft-ietf-acme-star
Thread-Index: AQHVME+pqBBnRgjCJECNx8HuPcPLiQ==
Date: Mon, 01 Jul 2019 20:57:58 +0000
Message-ID: <AA4F08D4-5890-4ADA-93FD-CF6DFD631884@arm.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Fossati@arm.com;
x-originating-ip: [82.11.185.80]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 5a1abb5b-eb9c-4d88-52af-08d6fe66cc5d
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:AM6PR08MB3047;
x-ms-traffictypediagnostic: AM6PR08MB3047:
x-ms-exchange-purlcount: 7
x-microsoft-antispam-prvs: <AM6PR08MB3047F27E86F07983FF03EB139CF90@AM6PR08MB3047.eurprd08.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 00851CA28B
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(366004)(376002)(346002)(396003)(136003)(39860400002)(85644002)(199004)(189003)(40434004)(8676002)(478600001)(6306002)(7736002)(72206003)(86362001)(81156014)(81166006)(6512007)(8936002)(5660300002)(33656002)(110136005)(66946007)(66476007)(66556008)(64756008)(66446008)(91956017)(76116006)(316002)(2501003)(73956011)(71190400001)(71200400001)(6486002)(30864003)(966005)(25786009)(66066001)(14454004)(6436002)(36756003)(6116002)(3846002)(99286004)(229853002)(68736007)(256004)(53936002)(14444005)(5024004)(6506007)(2616005)(476003)(2906002)(486006)(102836004)(26005)(4326008)(6246003)(186003)(305945005); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR08MB3047; H:AM6PR08MB4231.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: PYns2kxxiPg30KOosqbsCLLQn46XyqEVIRULXieXc2zwmWqGBdyU8ah2iXWyg4bGvPPHoyiPgtySZptdKE5wuNW0frVSRGTO4jLKDPwVLYl4zC5j4qG4eofb5ohvOvyJpYIE30SxVjpzxe02rnxyh44EfbMdDySEkxvco9uBfccjsWOXWLNxoRY3IxrTAWnsK+pkHUMzT82kbINtmQbc/KXPLsG1uetj57YiokL1hlU7k6PJbz+UCYy26MKD3+59IJDavICBm82uehss42CGXel+NNTRAVHcQVq5yrX+i+9ldGF0Bcrq9FAX3rzTQDhkRslNf0Vvx2pRaf2wr4NzxJ1mNccRuUISATt7QdhCQ8ASIt3E+M/AINzUXlxWAnzdw9NcJcint7ZildLf5scmhM3iWoPq697DY+2EdbsXGhc=
Content-Type: text/plain; charset="utf-8"
Content-ID: <934C815A9AF4D14995099205C96500E1@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5a1abb5b-eb9c-4d88-52af-08d6fe66cc5d
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Jul 2019 20:57:58.7801 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Thomas.Fossati@arm.com
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3047
Archived-At: <https://mailarchive.ietf.org/arch/msg/acme/4hbvHSXykHMVHI-BuoR7VRlJeFY>
Subject: Re: [Acme] Second AD Review: draft-ietf-acme-star
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: Mon, 01 Jul 2019 20:58:06 -0000

Hi Roman,

Thank you very much for the review.

> I conducted as second AD review of draft-ietf-acme-star per the AD
> hand-off.  I have the following feedback:
>
> ** (From the first AD review) Per the issue of PS vs. Experimental
> status - I reviewed Section 5, Shepherd Write-up and the ML thread of
> the previous AD review
> (https://mailarchive.ietf.org/arch/msg/acme/ZWRzPxrWBrp_xjEn98A4HOBxkc4).
> From that I see there was one prototype implementation (from MAMI,
> thanks!) and a hackathon.  To following up, who has indicated interest
> in implementing this draft?

Provided that as editors we have no say in the matter (we just do as
told by the working group), a few additional data points:
- The MAMI implementation is being integrated with the OSM orchestrator
  [0] for NFV workloads;
- GSMA is considering ACME STAR as one of the reference solutions for
  handling encrypted content in CDNI (see also [1]);
- In the past few months there's been discussion related to the use of
  short-term certs for non-web use cases (see [2]), for example in the
  ANIMA control plane [3].

[0] https://osm.etsi.org
[1] https://datatracker.ietf.org/doc/draft-ietf-cdni-interfaces-https-delegation
[2] https://www.ietf.org/archive/id/draft-nir-saag-star-01.txt
[3] https://datatracker.ietf.org/doc/draft-ietf-anima-autonomic-control-plane

> ** Section 2.1.  Per "The bootstrap phase ends when the Id0 obtains a
> confirmation from the ACME CA that includes a star-certificate
> endpoint", what's a "star certificate endpoint" and how is that
> different than an "order URL for the issued STAR certificate" (per the
> previous paragraph)?

You are right that the wording is not precise enough.

We have modified Section 2.1., paragraph 3:

OLD:

    [...].  Per normal ACME processing, the IdO is given back an
    order URL for the issued STAR certificate to be used in subsequent
    interaction with the CA (e.g., if the certificate needs to be
    terminated.)

NEW:

    [...].  Per normal ACME processing, the IdO is given back an
    Order resource associated with the STAR certificate to be used in
    subsequent interaction with the CA (e.g., if the certificate needs to
    be terminated.)

And Section 2.1., paragraph 4:

OLD:

    The bootstrap phase ends when the IdO obtains a confirmation from the
    ACME CA that includes a star-certificate endpoint.

NEW:

    The bootstrap phase ends when the ACME CA updates the Order resource
    to include the URL for the issued STAR certificate.


> ** Section 2.2.  Per "The CA issues the initial certificate, typically
> when the authorization is done", what is the circumstance where the
> certificate is issued before the authorization?

Not sure how "typically" ended up here.

Section 2.2., paragraph 1:
OLD:

    The CA issues the initial certificate, typically when the
    authorization is done. [...]

NEW:

    The CA issues the initial certificate after the authorization
    completes successfully.  [...]

> ** Section 3.1.2.  Per "The server MUST NOT issue any additional
> certificates for this order beyond the certificate that is available
> for collection at the time of deletion": -- what is "time of
> deletion"?  Is that the same as the time order cancelation?  -- What
> does "beyond the certificate that is available for collection" mean if
> the text below this sentence says that accessing the star-certificate
> URL should return a 403 error?

Section 3.1.2., paragraph 4:
OLD:

    The server MUST NOT issue any additional certificates for this order,
    beyond the certificate that is available for collection at the time
    of deletion.

NEW:

    After a successful cancellation, the server MUST NOT issue any
    additional certificates for this order.

> ** Section 3.3.  The example shows a Link HTTP header but does not
> explain how it should be populated.

As per ACME spec (Section 7.1) the Link header points to the directory
resource:

    The "index" link relation is present on all resources other than the
    directory and indicates the URL of the directory.

> ** Section 7.  I didn't see any language in the Security Consideration
> about the impact/exposure of shifting to a model where certificate
> revocation doesn't occur.  In Section 1, [Topalovic] hints at
> potentially cover this topic, but the site used in the reference
> section didn't resolve for me.  It needs some treatment in the
> Security Considerations

Thanks for catching the broken ref, updated:

    [Topalovic]
               Topalovic, E., Saeta, B., Huang, L., Jackson, C., and D.
               Boneh, "Towards Short-Lived Certificates", 2012,
               <http://www.ieee-security.org/TC/W2SP/2012/papers/
               w2sp12-final9.pdf>.


With regards to the Security Consideration, we have lifted the text from
(the currently expired) draft-nir-saag-star:

 7.1.  No revocation

    STAR certificates eliminate an important security feature of PKI
    which is the ability to revoke certificates.  Revocation allows the
    administrator to limit the damage done by a rogue node or an
    adversary who has control of the private key.  With STAR certificates
    expiration replaces revocation so there is a timeliness issue.  To
    that end, see also the discussion on clock skew in Section 4.1.

    It should be noted that revocation also has timeliness issues,
    because both CRLs and OCSP responses have nextUpdate fields that tell
    RPs how long they should trust this revocation data.  These fields
    are typically set to hours, days, or even weeks in the future.  Any
    revocation that happens before the time in nextUpdate goes unnoticed
    by the RP.

    More discussion of the security of STAR certificates is available in
    [Topalovic].

> ** Section 7.2.  The guidance in Section 7.2 seems appropriate for the
> identified privacy issue.  However, it also seems to apply to the more
> basic security issue of guessing the URL too.  -- Is there a reason
> why this isn't mentioned as a security issue too?  -- Why is the
> recommendation for a server to choose URLs in a non-guessable only a
> SHOULD and not a MUST?  Under what circumstances would it be advisable
> for the URLs to be guessable?

This is the same requirement level that we have in 8555 (Section 10.5);
we have added an explicit reference to avoid any future confusion.

Section 7., paragraph 5:
OLD:

    In order to avoid correlation of certificates by account, if
    unauthenticated GET is negotiated (Section 3.4) the server SHOULD
    choose URLs of certificate resources in a non-guessable way, for
    example using capability URLs [W3C.WD-capability-urls-20140218].

NEW:

    In order to avoid correlation of certificates by account, if
    unauthenticated GET is negotiated (Section 3.4) the recommendation in
    Section 10.5 of [RFC8555] regarding the choice of URL structure
    applies, i.e. servers SHOULD choose URLs of certificate resources in
    a non-guessable way, for example using capability URLs
    [W3C.WD-capability-urls-20140218].

> Editorial Feedback:

Please see https://www.ietf.org/rfcdiff?url2=draft-ietf-acme-star-06 for
the details.

> ** Section 1.0  Per the sentence "The Id0 can terminate the automatic
> renewal before the natural deadline", what's a "natural deadline"?
> Isn't it a "negotiated deadline" or "negotiated renewal window"?

That's definitely better.  Fixed.

> ** Section 1.1  It seems odd to call out name delegation as the only
> formal use case.

It's not the only formal use case, but one that is maybe non-obvious, so
we think it's worth calling it out.

> ** Section 2.2.  Per Figure 1, this isn't explicitly noted as an
> example so it strikes me as inappropriate to include "72-hours" as the
> auto-renew period is negotiated (as it is so specific and could be
> read as normative).  Either call this an example or change "72 hours"
> to be something on the order of "short validity period".

Fixed.

> ** Section 2.3.  Figure 2 is included in Section 2.3 but is not
> referenced in the text.

Fixed.

> ** Sections 3.1.1, 3.1.2.  What is the role of the json blob after the
> first paragraph?  It isn't referenced in the text and doesn't have a
> figure number.

Removed -- in fact, the subsequent "attribute-name (optionality, type)"
makes it redundant.

> ** Section 3.1.1. Add a citation to "Section 7.1.3 of RFC8555" for
> notBefore and notAfter.

Fixed.

> ** Section 3.1.1.  Add the citation "Section 7.1.6 of RFC8555" to the
> sentence, "ACME defines the following values ..." to make it clear
> what part of ACME you are updating/extending.

Fixed.

> ** Section 3.1.1.  The first few paragraphs describing the new STAR
> items in the request as "attributes".  However, the last paragraph
> starting with "A STAR certificate ..." refers to "certificate" and
> "star-certificate" as a "key".  Be consistent.

Fixed (s/key/attribute/g).

> ** Section 3.2. Typo.  /The directory/the directory/

Fixed.

> ** Section 3.2.  As the meta field is being extended, add a reference
> to Section 9.7.6 of RFC8555.

Fixed.

> ** Section 3.2.  Use attribute or key to referrer to the additions to
> the "meta" field, not both.

Fixed.

> ** Section 3.2, 3.3.  Per the example, I recommend making this an
> explicit figure with a number that you reference instead of
> introducing it with a long sentence that ends with a colon.

Fixed.

> ** Section 3.4.  The recurrent-certificate-get is referred to as an
> attribute, but here it is called a key.  I recommend making this
> consistent.

Fixed (see above).

> ** Section 3.4.  Does the sentence "If the server accepts the request,
> it MUST reflect the key in the Order" mean that if the server accepts
> the request to support unauthenticated GETs, it will keep the
> recurrent-certificate-get=true in the order response?  If so, I'd
> recommend making this sentence a little clearer as without the assumed
> context of the section I didn't understand what it meant to "reflect a
> key".

Yes, your guess is correct. The term "reflect" is used in various places
in the base ACME spec to the same purpose.  Please, check if the
following is clearer:

OLD:

    If the server accepts the request, it MUST reflect the key in the
    Order.

NEW:

    If the server accepts the request, it MUST reflect the attribute
    setting in the resulting Order object.

> ** Section 3.5.1.  Per the array after the text "The notBefore and
> notAfter ... paragraph", why is this a JSON styled array?

No specific reason; it seemed to me like a convenient way to compactly
express both intervals' ordering and extent... It turns out Yaron also
didn't like it and took your hint to reformat the content into a table.

Cheers & thanks again for the great feedback!


IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.