Re: [Gen-art] Genart telechat review of draft-gutmann-scep-08

Peter Gutmann <pgut001@cs.auckland.ac.nz> Sun, 04 February 2018 14:40 UTC

Return-Path: <pgut001@cs.auckland.ac.nz>
X-Original-To: gen-art@ietfa.amsl.com
Delivered-To: gen-art@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B3BFF124F57; Sun, 4 Feb 2018 06:40:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level:
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, T_RP_MATCHES_RCVD=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=auckland.ac.nz
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 D7NcOAdCeWVw; Sun, 4 Feb 2018 06:40:04 -0800 (PST)
Received: from mx4-int.auckland.ac.nz (mx4-int.auckland.ac.nz [130.216.125.246]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7FEC5127010; Sun, 4 Feb 2018 06:40:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=auckland.ac.nz; i=@auckland.ac.nz; q=dns/txt; s=mail; t=1517755204; x=1549291204; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=Cie5TJZVmDeFx3OXWR5Luk9wQ2wwqeK7Xl5BTc64Q+I=; b=BwDgoMAVgBtNFRuNaqgQw8lEMsTKyfxekTpKxnZyeWebPHKSFNUN9ptA qOmmpvwJLOJzzoR76hn4Rba8eGKhUBjlXWtco+xZN/jV6t+qEYhIWudPq a8Jh6v6vKkaZGmq+PBV9MM6LIPCwhQUn7QZzsldK1JNYgAlg7yOKx8yOW PKsQk3eOAI8pOh1GCEgOhEfHESrpbgDozn+TARYwHWyaK4AtN1bMqxibr nZrMSEbOkl2IaALywIvvjVZfLsMn6Ug/rZr71iInKnQU+hmFWlNXkFFVn 7zi7uMR68lcWKMS4y0lhWzBnUqM/mUzAICFIQ/xsec/ZC+6t5EYeuLOKb w==;
X-IronPort-AV: E=Sophos;i="5.46,458,1511780400"; d="scan'208";a="454801"
X-Ironport-HAT: MAIL-SERVERS - $RELAYED
X-Ironport-Source: 10.6.2.3 - Outgoing - Outgoing
Received: from uxcn13-ogg-b.uoa.auckland.ac.nz ([10.6.2.3]) by mx4-int.auckland.ac.nz with ESMTP/TLS/AES256-SHA; 05 Feb 2018 03:40:00 +1300
Received: from uxcn13-ogg-d.UoA.auckland.ac.nz (10.6.2.5) by uxcn13-ogg-b.UoA.auckland.ac.nz (10.6.2.23) with Microsoft SMTP Server (TLS) id 15.0.1263.5; Mon, 5 Feb 2018 03:39:59 +1300
Received: from uxcn13-ogg-d.UoA.auckland.ac.nz ([10.6.2.25]) by uxcn13-ogg-d.UoA.auckland.ac.nz ([10.6.2.25]) with mapi id 15.00.1263.000; Mon, 5 Feb 2018 03:39:59 +1300
From: Peter Gutmann <pgut001@cs.auckland.ac.nz>
To: Christer Holmberg <christer.holmberg@ericsson.com>, "gen-art@ietf.org" <gen-art@ietf.org>, "pgut001@DOMAIN.HIDDEN" <pgut001@DOMAIN.HIDDEN>
CC: "draft-gutmann-scep.all@ietf.org" <draft-gutmann-scep.all@ietf.org>, "ietf@ietf.org" <ietf@ietf.org>
Thread-Topic: [Gen-art] Genart telechat review of draft-gutmann-scep-08
Thread-Index: AQHTm2J8xZzmFrN/wE6WPelals3BOqOUVNig
Date: Sun, 04 Feb 2018 14:39:58 +0000
Message-ID: <1517755227267.36393@cs.auckland.ac.nz>
References: <151690435171.8462.17376545317175159264@ietfa.amsl.com>, <D698E1C1.2A474%christer.holmberg@ericsson.com>
In-Reply-To: <D698E1C1.2A474%christer.holmberg@ericsson.com>
Accept-Language: en-NZ, en-GB, en-US
Content-Language: en-NZ
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [130.216.158.4]
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/gen-art/Sn6SMnFWRL0I83Kjs2trbifSryg>
Subject: Re: [Gen-art] Genart telechat review of draft-gutmann-scep-08
X-BeenThere: gen-art@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "GEN-ART: General Area Review Team" <gen-art.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/gen-art>, <mailto:gen-art-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/gen-art/>
List-Post: <mailto:gen-art@ietf.org>
List-Help: <mailto:gen-art-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/gen-art>, <mailto:gen-art-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 04 Feb 2018 14:40:08 -0000

Hi,

>Maybe some text about all that somewhere (e.g., in the Introduction section,
>or in a dedicated "History" section)?

The "Background Notes" section already contains a pretty complete (without
going overboard) history and notes on what changed.  What I can do if this
will help is add a reference at the start:

  (see the <xref target="background">Background Notes</xref> section for more
  on the history behind SCEP and the nearly two decade-long progress of this
  standard)

I think moving a large amount of text about the history of the draft into the
introduction would make it a bit messy, particularly since the Background
Notes section contains extensive comments on how things have changed over
time, it's a couple of pages long.

>Sure, but the text doesn't give any guidance on why it would reject the
>request. Since the sentence is in the same sentence talking about policies I
>assume the rejection would be if the policies are not fulfilled.

It's up to the CA, thus the use of the catch-all "policies".  It's meant to
warn the client that a request won't automatically result in a cert being
issued, but doesn't constrain the CA in any way.  The CA could reject or
modify the request for any reason, or perhaps for no reason, their HSM is
offline, they're having a bad hair day, their network is down, ... it's just
to warn the client "don't automatically expect a cert back", but I can't
really enumerate all the possible reasons why a rejection could happen.

If you like I can change the text to:

  A CA MAY enforce any arbitrary policies and apply them to certificate
  requests, and MAY reject a request for any reason.

if that makes it clearer.

>>"It was like that when I got here".  I can make it a non-subsection if
>>it reads better that way.
>
>I think it would be good. 

OK, fixed.

>Since you use "SHOULD", it sounds more like just suggestions.

OK, I've changed it to make the alternative explicit:

  After the client gets the CA certificate, it SHOULD authenticate the
  certificate by comparing its fingerprint with the locally configured, out-
  of-band distributed, identifying information, or by some equivalent means
  such as a direct comparison with a locally-stored copy of the certificate.

>I think it would be good to mention that.

I've read through it again and I think a better solution is your original one,
make it a MUST.  If the CA indicates it supports POST then there's no need to
use GET, so it can be changed to a MUST:

  If the remote CA supports POST, the CMS-encoded SCEP messages MUST be sent
  via HTTP POST instead of HTTP GET.

>Couldn't the section simply be called "SCEP Transaction Examples", or
>something?

Good idea, fixed.

Peter.

________________________________________
From: Christer Holmberg <christer.holmberg@ericsson.com>
Sent: Friday, 2 February 2018 02:42
To: gen-art@ietf.org; pgut001@DOMAIN.HIDDEN
Cc: draft-gutmann-scep.all@ietf.org; ietf@ietf.org
Subject: [FORGED] Re: [Gen-art] Genart telechat review of draft-gutmann-scep-08

Hi,

>>However, there are some issues (mostly editorial) that I would like the
>>authors to address.
>
> One comment on this, I didn't write the original text so I'll try and
> accommodate as much as possible, but in some cases I've had to guess at
>what
> the original authors intended.  Also, the explanations for several of the
> points raised in the questions is "it was like that when I got here".
>So in
> the following, when I respond with another question, it's because I'm
>not sure
> myself what should go in there, and I'm welcoming any suggestions...
>
> Another general point, because this has spent close to twenty years in
>draft
> status, it's been a de facto standard for most of that time so there are
> "standards-compliant" implementations that have been in use for more
>than a
> decade based on the draft.  Because of this, I've had to be very careful
>to
> avoid breaking things by introducing a MUST or MUST NOT after nearly two
> decades of something not being a MUST.  This is why, in some places,
>there's a
> SHOULD with strong hints rather than a MUST.
>
> The primary goal for this was to make it bits-on-the-wire compatible
>(apart
> from the unavoidable single DES + MD5 -> AES + SHA-2), and to minimise
> (ideally not to have any) breakage with deployed code.  So there are
>places
> where there are weasel-words ("we know you've been doing this for fifteen
> years but you probably shouldn't any more"), and others where I've
>retained
> text that I wouldn't have put in there if I'd been the one writting the
>doc.

Maybe some text about all that somewhere (e.g., in the Introduction
section, or in a dedicated ³History² section)?


>Q1:
>
>[Editing changes]
>
> I've had a go at changing this, but no matter what I do just ends up as
>the
> same wording shuffled around, I end up just moving bits from one
>location to
> another (it's already gone through a number of re-wordings across
>different
> drafts).  If there's a specific goal that you're aiming for with the
>changes I
> can try and hit that, but I just ended up saying more or less the same
>thing
> with different phrasing.

I just think it sounds weird to talk about a widely deployed protocol that
you are just about to publish.

But, maybe with some history (see previous comment) it would become more
clear.

---

>>Q2:
>>
>>Doesn¹t the "While implementers are encouraged toŠ" sentence belong to
>>the
>>Security Considerations?
>
>It's not a security consideration, unless I'm missing something it only
>discusses functionality and interoperability issues.

Ok.

---

>>Q3:
>>
>>The text says:
>>
>>   "A CA MAY enforce any arbitrary policies and apply them to certificate
>>   requests, and MAY reject any request."
>>
>>The "MAY reject any request" parts sounds unfinished. I assume it¹s
>>refers to
>>cases where the client don¹t support such arbitrary policies? If so, I
>>suggest
>>to explicitly say so.
>>
>>Currently it sounds like a generic CA-may-reject-any-request statement,
>>which
>>I assume is not what you intend to say :)
>
> That's exactly what it's meant to say: "You can ask for anything you
>want, but
> the CA isn't obligated to comply with your request".

Sure, but the text doesn¹t give any guidance on why it would reject the
request. Since the sentence is in the same sentence talking about policies
I assume the rejection would be if the policies are not fulfilled.

---

>>Q4:
>>
>>As the text talks about certificate distribution, is this really a
>>subsection
>>to section 2.1?
>
> "It was like that when I got here".  I can make it a non-subsection if
>it reads better that way.

I think it would be good. The text itself doesn¹t change, soŠ

---

>>Q5:
>>
>>The 4th paragraph contains a couple of SHOULDs. Is there a reason they
>>can¹t
>>be MUST?
>
>There are many ways to verify certs, those are just suggestions.  For
>example
>they may be hardcoded into the client (that's actually not uncommon in
>SCADA
>use), in which case there's nothing to verify.

Since you use ³SHOULD², it sounds more like just suggestions.

---

>>Q6:
>>
>>The 5th paragraph talks about how early versions of the draft used GET
>>messages for all communication.
>>
>>The text also says:
>>
>>³If the remote CA supports it, any of the CMS-encoded SCEP messages
>>SHOULD be
>>sent via HTTP POST instead of HTTP GET.²
>>
>>If the remove CA supports what? HTTP POST?
>
> Yes, fixed.
>
>>Why SHOULD, and not MUST?
>
> See the note about introducing breakage.
>
>>If the client understands to use POST if GET fails, why can¹t it use
>>POST to
>>begin with?
>
> It was meant to say (subtly) "if you're seeing these problems then
>perhaps
> it's time you updated your code".  I've changed the text to make this
>more
> explicit:
>
> The solution to this problem is to update the implementation to use HTTP
> POST instead.

Ok.

>>In general, what is the reason for having this text about early versions
>>of
>>the draft? Backward compatibility with CAs that will only support GET?
>
>Yes.  Not just CAs but major implementations like Microsoft's NDES.

I think it would be good to mention that.

---

>>Q7:
>>
>>The title of the section talks about state transitions, but then the text
>>says that the section contains examples.
>>
>>Is there a reference to the state machine(s) that are represented in the
>>examples? OR, does the section define the state machine(s)?
>
>"It was like that when I got here".  It's supposed to illustrate state
>transitions, so it's both a diagram and an example of what's supposed to
>happen.  I'm reluctant to start rewriting that to any extent because,
>well,
>would you want to start poking around in there?

I just think it¹s strange to talk about "state transitions" without any
reference to a state machine (in fact, there seems to be two state
machines - one for the client and one for the CA).

Couldn¹t the section simply be called ³SCTP Transaction Examples², or
something?

---

>>Q8:
>>
>>The text says ³previous editors² and ³earlier editors². Please pick one
>>and
>>use it in both places :)
>
> It's actually "earlier authors", and it was deliberate, to distinguish
>between
> the people who wrote it (authors) and those who came later and merely
>edited
> the original authors' work (editors).

Ok.

Regards,

Christer