Re: [pkix] Simple Certificate Enrollment Protocol (SCEP)

Peter Gutmann <pgut001@cs.auckland.ac.nz> Thu, 16 October 2014 11:07 UTC

Return-Path: <pgut001@cs.auckland.ac.nz>
X-Original-To: pkix@ietfa.amsl.com
Delivered-To: pkix@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9EE9F1AD045 for <pkix@ietfa.amsl.com>; Thu, 16 Oct 2014 04:07:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.21
X-Spam-Level:
X-Spam-Status: No, score=-4.21 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 ckTbwajgQ-Z8 for <pkix@ietfa.amsl.com>; Thu, 16 Oct 2014 04:07:17 -0700 (PDT)
Received: from mx2.auckland.ac.nz (mx2.auckland.ac.nz [130.216.125.245]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 27CB21AD010 for <pkix@ietf.org>; Thu, 16 Oct 2014 04:07:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=auckland.ac.nz; i=@auckland.ac.nz; q=dns/txt; s=uoa; t=1413457637; x=1444993637; h=from:to:cc:subject:date:message-id: content-transfer-encoding:mime-version; bh=TM+J3jvFA6E4ecsVn4OAhOW5sYGYzU3B6mD3DDDLbaA=; b=trzyajwhgp6H1xN8WsZlMJ967D+139BpIjdTBws/K2uQxEPXidyy5Emo 5vaLtfecNJOKZjhDzxo9cfY7LYMSBzJVMwH1PLAdZoVtowGXhWR88RF3A pBgIhLW0Aq49nEqLX+9TpPwr/YBCu+Y6uMHrKpc40YR6XAO0vGHpKcpab I=;
X-IronPort-AV: E=Sophos;i="5.04,630,1406548800"; d="scan'208";a="283652473"
X-Ironport-HAT: MAIL-SERVERS - $RELAYED
X-Ironport-Source: 130.216.4.112 - Outgoing - Outgoing
Received: from uxchange10-fe1.uoa.auckland.ac.nz ([130.216.4.112]) by mx2-int.auckland.ac.nz with ESMTP/TLS/AES128-SHA; 17 Oct 2014 00:07:15 +1300
Received: from UXCN10-TDC05.UoA.auckland.ac.nz ([169.254.9.70]) by uxchange10-fe1.UoA.auckland.ac.nz ([130.216.4.112]) with mapi id 14.03.0174.001; Fri, 17 Oct 2014 00:07:14 +1300
From: Peter Gutmann <pgut001@cs.auckland.ac.nz>
To: IETF PKIX <pkix@ietf.org>
Thread-Topic: [pkix] Simple Certificate Enrollment Protocol (SCEP)
Thread-Index: Ac/pMQWWlHnlCFPDR7qAz+2+n2+q8A==
Date: Thu, 16 Oct 2014 11:07:13 +0000
Message-ID: <9A043F3CF02CD34C8E74AC1594475C739B9CD0CC@uxcn10-tdc05.UoA.auckland.ac.nz>
Accept-Language: en-NZ, en-GB, en-US
Content-Language: en-NZ
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [130.216.158.4]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: http://mailarchive.ietf.org/arch/msg/pkix/nYysQvdGdwzxqG-WzCWwcVgqYj0
Cc: "WG15@iectc57.org" <WG15@iectc57.org>, "CAS@energinet.dk" <CAS@energinet.dk>, "soren.peter.nielsen@gmail.com" <soren.peter.nielsen@gmail.com>
Subject: Re: [pkix] Simple Certificate Enrollment Protocol (SCEP)
X-BeenThere: pkix@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: PKIX Working Group <pkix.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/pkix>, <mailto:pkix-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/pkix/>
List-Post: <mailto:pkix@ietf.org>
List-Help: <mailto:pkix-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/pkix>, <mailto:pkix-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Oct 2014 11:07:19 -0000

Paul Hoffman <paul.hoffman@vpnc.org> writes:

>> Thanks for your quick answer.
>
>Which, unfortunately, was wrong. SCEP's lack of standardization was not
>because PKIX had their own protocols: 

So PKIX would have adopted it as a WG item had Cisco asked?

>Which SCEP? The on-the-wire protocol changed from draft to draft, and I
>believe that the final draft does not match Cisco's implementation. If you
>point at one draft, you will have terrible interoperability, and what
>interoperability you get will be to a flawed protocol. See below.

I've been tracking SCEP for about a decade, including being involved in
deploying stuff based on standards that refer to decade-old versions, and
never had any interop problems due to anything other than buggy
implementations (and I'm specifically talking Microsoft's NDES here).  That
has nothing to do with the spec, it's just a really bad implementation (think
1990s Microsoft, implementing about 2/3 of a protocol spec and then getting a
third of that wrong).  However NDES is so widely deployed and used that pretty
much everyone has worked around the problems in it, so it's not really an
issue.

I'm looking at this from a non-Cisco point of view.  Cisco's implementation
may have terrible interoperability (I have no idea, I've never used it), but
for general SCEP use it's been pretty good, and certainly far, far better than
any of the more complex cert-enrolment protocols I've played with.  And that's
SCEP's advantage, it may be very limited but there's not much you can get
wrong with PKCS #10-inside-PKCS #7.

>Cisco consistently published drafts of SCEP without "submitting it to the
>IETF" because Cisco and Cisco's competitors didn't want to deal with having
>to change their codebases. 

The problem is that SCEP is no longer Cisco's baby, and hasn't been for a long
time.  There are more than half a billion (non-Cisco) devices actively using
SCEP today (that's a lower bound since there's a lot of hidden SCADA gear that
can't be measured), and in the tens of millions of SCEP servers (or at least
SCEP-capable, they're not all being used to run SCEP).  Cisco may not care
about SCEP any more, but an awful lot of other users do.

>It did not offer a lot of stuff that a good cert enrollment protocol should
>offer; that wasn't the point.

Sure.  If you just wanted to provision a device with an RSA cert, it was fine.
Anything else...

>If the "smart grid security folks" want to reference a well-written
>certificate enrollment protocol, they should stay the heck away from SCEP and
>point to EST.

... provided they don't mind doing their own implementation of EST from
scratch, and persuading everyone they ever want to talk to to do the same.

Oh, and good luck finding a widely-used server implementation to
run/administer the whole thing through.

SCEP sucks for anything other than device-cert-provisioning, but it works (and
cert-provisioning is all that most users seem to want in any case, although
I'm not sure if that's a case of the Sapir-Whorf hypothesis for crypto in
effect :-).  I can take my code, or JSCEP, or whatever, point it at a Windows
server, and issue certs with it, all administered through Active Directory or
whatever management tools you want.  A Smith and Wesson beats four aces.

Peter.