Re: [pkix] New draft-ietf-pkix-rfc2560bis-06

mrex@sap.com (Martin Rex) Tue, 23 October 2012 07:32 UTC

Return-Path: <mrex@sap.com>
X-Original-To: pkix@ietfa.amsl.com
Delivered-To: pkix@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0330E21F84F6 for <pkix@ietfa.amsl.com>; Tue, 23 Oct 2012 00:32:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.205
X-Spam-Level:
X-Spam-Status: No, score=-10.205 tagged_above=-999 required=5 tests=[AWL=0.044, BAYES_00=-2.599, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KECAixgHocPm for <pkix@ietfa.amsl.com>; Tue, 23 Oct 2012 00:32:39 -0700 (PDT)
Received: from smtpde02.sap-ag.de (smtpde02.sap-ag.de [155.56.68.140]) by ietfa.amsl.com (Postfix) with ESMTP id 1183E21F84D7 for <pkix@ietf.org>; Tue, 23 Oct 2012 00:32:38 -0700 (PDT)
Received: from mail.sap.corp by smtpde02.sap-ag.de (26) with ESMTP id q9N7WMQM007640 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 23 Oct 2012 09:32:22 +0200 (MEST)
In-Reply-To: <CA+i=0E5ELaACas2hJKAYKLJkZ8z3hS90z5PLOotCSCc35usQqA@mail.gmail.com>
To: Erwann Abalea <eabalea@gmail.com>
Date: Tue, 23 Oct 2012 09:31:25 +0200
X-Mailer: ELM [version 2.4ME+ PL125 (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="US-ASCII"
Message-Id: <20121023073125.CC0A91A2ED@ld9781.wdf.sap.corp>
From: mrex@sap.com
X-SAP: out
Cc: Peter Rybar <peterryb@gmail.com>, pkix@ietf.org, Stefan Santesson <stefan@aaa-sec.com>
Subject: Re: [pkix] New draft-ietf-pkix-rfc2560bis-06
X-BeenThere: pkix@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: mrex@sap.com
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: Tue, 23 Oct 2012 07:32:40 -0000

Erwann Abalea wrote:
> 
> Martin Rex <mrex@sap.com>:
>>
>> Simon Tardell wrote:
>>>
>>> I suggest that we use your current text plus that, if "revoked" is used
>>> to say "never issued/not in database", the revocationReason should be
>>> certificateHold and that revocationTime should be set to midnight Jan 1
>>> 1950 (or some other time before the rise of PKI).
>>
>> I support the "revoked, ReasonCode=CertificateHold" for OCSP responders
>> that can not find proof/indication that the cert in question was properly
>> issued.
> 
> I don't think it's wise to use one reason code to cover two reasons.
> The latest CAs we deployed want to have certificates issued in a
> suspended state until the smartcard has been delivered, whence
> "certificateHold" reason code, with CRLs filled in that way. For these
> CAs, an OCSP responder will respond "certificateHold" for legitimate
> certificates, and you're proposing to also reply "certificateHold" for
> random serial numbers.

CertificateHold is EXACTLY the correct ReasonCode:
It indicates that the CA has not issued a cert with the given serial
*YET*, but it MAY eventually issue such a cert in the future
(sometimes even in the _very_next_future_ ... i.e. it is about
 to become visible to the OCSP responder, but not visible yet).


> 
> > The CertificateHold reason code is vitally important, because otherwise
> > the CA would have to keep track of OCSP responses given out from the
> > CA's OCSP responder that declared a serial as "permanently revoked"
> > in order to ensure that the CA will never issue a cert with that serial
> > in the future.  Looks like an unnecessary and easily avoidable burden to me.
> 
> This is why I don't think that declaring an unknown and potentially
> random serial number as revoked is good. Nor useful.
> An attacker will most likely intercept communications with the
> responder and reply something like "unauthorized", or any unsigned
> error code.

This rationale is a non-sequitur.

An attacker can substitute any response with any kind of error.
Or make the DNS lookup of the OCSP responder fail, or insert
a ICMP error or TCP on the connection attempt to the OCSP responder.

The purpose of the change here is to have the proper OCSP responder
return completely useless responses in a situation where the OCSP
responder has access to the CA issue logs and can determine that
the cert in the request has not been issued (yet).



> 
> > I don't like the particular date Jan 1, 1950, for safety, a date >= 1970
> > ought to be chosen (so that it does not get negative when converted
> > to time_t, which has potential to confuse some code).
> >
> > And since the timestamp is a GeneralizedTime, the date ought to be
> > given in exactly that format, e.g.  "700101010101Z"
> >
> > What also should be noted is that the optional OCSP SingleResponseExtension
> > "CrlID" must not be used when this "not issued" certificate was not
> > conveyed through a CRL--and there currently is no means to convey
> > proof-of-cert-existence through CRLs unless they're revoked, and in the
> > latter case there would be no "not issued" OCSP response to convey.
> 
> See, by declaring a non-issued certificate as revoked, you're asking
> the CA to lie about its revocation date and declare it's not been
> issued in a CRL. How can it be right?

You're absolutely NOT lying at all.  The cert with that serial has
not been issued yet, but a cert with that cert may get issued in the
future.  The CertificateHold is perfectly appropriate to describe
this situation.


> 
> > I believe it is very inappropriate for the spec to make any assumptions
> > about why exactly the OCSP responder believes that a cert (serial) has not
> > ever been issued.  The reason can be manyfold.  Besides an accidental or
> > fraudulent deletion (attack), it may be something as simple as a
> > database software bug.
> 
> Or invalid encoding in client, or wrong issuerKeyHash (the serial
> exists, but for another CA), or random serial, or specially crafted
> numbers, or unrecognized hash function, ... All these cases have been
> spotted on our responders, and we haven't wrongly issued certificates.


I was saying that the spec should advise against OCSP response recipients
to draw conclusions (about causes), and take the response as what it is,
a description of state, *NOT* an indicator of any precice cause.


-Martin