Re: [therightkey] [pkix] Proposal for working on PKIX revocation open issues

Trevor Freeman <trevor.freeman99@icloud.com> Sun, 16 November 2014 18:53 UTC

Return-Path: <trevor.freeman99@icloud.com>
X-Original-To: therightkey@ietfa.amsl.com
Delivered-To: therightkey@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4EE911A1A2E for <therightkey@ietfa.amsl.com>; Sun, 16 Nov 2014 10:53:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.002
X-Spam-Level:
X-Spam-Status: No, score=-0.002 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, SPF_PASS=-0.001] 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 s36zrAdalkk5 for <therightkey@ietfa.amsl.com>; Sun, 16 Nov 2014 10:53:07 -0800 (PST)
Received: from mr11p24im-asmtp001.me.com (mr11p24im-asmtp001.me.com [17.110.78.41]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B7D811A19E7 for <therightkey@ietf.org>; Sun, 16 Nov 2014 10:53:07 -0800 (PST)
Received: from Den (c-67-183-152-156.hsd1.wa.comcast.net [67.183.152.156]) by mr11p24im-asmtp001.me.com (Oracle Communications Messaging Server 7u4-27.10(7.0.4.27.9) 64bit (built Jun 6 2014)) with ESMTPSA id <0NF500AS1B4H2PC0@mr11p24im-asmtp001.me.com> for therightkey@ietf.org; Sun, 16 Nov 2014 18:53:07 +0000 (GMT)
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.13.68,1.0.28,0.0.0000 definitions=2014-11-16_03:2014-11-15,2014-11-16,1970-01-01 signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=7.0.1-1408290000 definitions=main-1411160171
From: Trevor Freeman <trevor.freeman99@icloud.com>
To: 'Massimiliano Pala' <massimiliano.pala@gmail.com>, therightkey@ietf.org
References: <5466AF87.2050307@gmail.com> <CAMm+Lwg30tb+yFxVMG3qJ=_fjVT=ASqUmaf9gH8wpUhUGxgf6A@mail.gmail.com>
In-reply-to: <CAMm+Lwg30tb+yFxVMG3qJ=_fjVT=ASqUmaf9gH8wpUhUGxgf6A@mail.gmail.com>
Date: Sun, 16 Nov 2014 10:53:01 -0800
Message-id: <004501d001ce$8c669c10$a533d430$@icloud.com>
MIME-version: 1.0
Content-type: text/plain; charset="us-ascii"
Content-transfer-encoding: 7bit
X-Mailer: Microsoft Outlook 14.0
Thread-index: AQFUCYhQhiaGoOJda7G7bFU0mLLbLQH/JSjNnUuIyuA=
Content-language: en-us
Archived-At: http://mailarchive.ietf.org/arch/msg/therightkey/T5LUK9jFGP9Rez-1Wyn2GXyqm8g
Subject: Re: [therightkey] [pkix] Proposal for working on PKIX revocation open issues
X-BeenThere: therightkey@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <therightkey.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/therightkey>, <mailto:therightkey-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/therightkey/>
List-Post: <mailto:therightkey@ietf.org>
List-Help: <mailto:therightkey-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/therightkey>, <mailto:therightkey-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 16 Nov 2014 18:53:10 -0000

Hi Max,

I think we first need a consensus of the unmitigated threats this work would
look to address. That would help assess the technical options. Top of my
list of unmitigated threats would be compromised CA issuing  user
certificates outside of the normal process e.g. attackers use some tool to
sign the certificate direly using the CA key so no log exists of the
issuance.   

For example, if there is consensus on that as a threat to be addressed, OCSP
does not help much in that you want a "known to be good" assertion, not a
"know to be bad" assertion that revocation checking provides. Certificate
reissuance has been long been cited as an alternative to revocation in that
you get a restatement of the goodness which is what you need, but it does
tax the CAs. If you are targeting server validation scenarios, then a Valid
Certificate List which was similar to CRLs but a list of good certificates
could scale much better as Phil points out. Given we know all too well what
does not work well with CRLs, we should be able to avoid the mistakes i.e.
use hashs to identify certificates not issue\serial number, mandate support
for partitions etc., etc.

So what unmitigated threats do you have in mind?

Trevor

-----Original Message-----
From: therightkey [mailto:therightkey-bounces@ietf.org] On Behalf Of Phillip
Hallam-Baker
Sent: Saturday, November 15, 2014 1:57 PM
To: therightkey@ietf.org
Subject: Re: [therightkey] [pkix] Proposal for working on PKIX revocation
open issues

On Fri, Nov 14, 2014 at 8:42 PM, Dr. Massimiliano Pala
<massimiliano.pala@gmail.com> wrote:
> Dear PKIX Enthusiasts,

> For example, current specifications about OCSP stapling do not address 
> the case of client authentication (which is a widespread use case 
> outside the web environment) or, again, defining some new transport 
> protocols for delivering OCSP responses which might reduce operational 
> costs for revocation service providers.

> After proposing the idea to Stephen Farrell and Kathleen Moriarty, we 
> would like to know if there might be interests in participating in 
> updating the status of the current revocation mechanisms for PKIX. 
> This said, the scope of the work I am proposing is very limited.
Specifically:
>
> (a) Defining new transport protocols for revocation information 
> availability (e.g., OCSP over DNS or OCSP over LDAP)

There is already a mechanism for transporting certs over LDAP. I am pretty
sure the folk who do that sort of thing have done the OCSP in LDAP thing
already.

I don't see a future for LDAP as an Internet protocol though. LDAP
introduces a completely gratuitous name infrastructure (X.500) that adds no
value other than to the consultants who can spin a 3 week consulting gig
bikeshedding the DIT with the customer. Nobody has ever explained an
advantage to me of LDAP over HTTP and a well-known service convention.


OCSP over DNS has the attraction that DNS transport is fast. But remember
that DNS transport is fast because it is absolutely minimal.
Putting more stuff into DNS risks making it slow.

The construction of PRIVATE-DNS attempts to square this circle by providing
a mechanism that allows other protocols to make use of the DNS channel (if
that makes sense) without incorporating them into the DNS protocol.


> (b) (Possibly) defining a more lightweight revocation mechanisms (e.g.
> Lightweight Revocation Tokens)

The patents on these techniques begin to expire in May 2016. Come back then.
They have not been available on RAND basis let alone RANDZ.

I'm not too interested in them however. S/Key does provide a rapid means of
updating status. Torben Pederssen proposed it as the phone tick modus,
Micali and Kocher proposed schemes that add in Merkle tree mechanisms. Fast
ECC signatures make these moot.


> (c) (Possibly) helping other working groups to revise and update how 
> revocation information are provided (e.g., the client authentication 
> case)

CRLs probably work just fine for servers validating private label client
certs.


> (d) (Possibly) introducing privacy consideration when it comes to 
> revocation checking

Well that is the reason to get away from using straight OCSP. It leaks
information. But stapled OCSP solves that problem.


> At minimal, I would like (a) to happen. This could be achieved in 6 
> months (and we might not even need to meet). (b) and (c) are also 
> desirable in order to provide better support for non-browsers and 
> small devices (AFAIK, some work might be relevant for DICE). (d) is 
> something that we should, I think, all be mindful and at least some
considerations should be provided.
> The scope of the work, however, will be limited to revocation.

I have a different set of proposals:

1) Stapled OCSP with MUST-STAPLE OID
2) Short lived Certificates
  2a) With the same key
  2b) With different keys
3) CRLs with HBS compression.

Right now we are in the middle of deployment of (1) and doing 2a is not too
hard. But 2b is a LOT better since rotating the keys every 24 hours makes
all sorts of attacks a lot harder.

Making 2b work requires quite a bit of prep though. We would have to
completely automate the cert issue process. And we would have to make it
work with pinning etc..

3 is new but we can probably get to convergence on a spec faster than 2b
because we haven't tried that problem 4 times already. Much less room for
bikeshedding.


I see 1/2a as stop gap measures and 2b + 3 as the long term approach.

Rather than talk about 'the' revocation problem, I think we should identify
2 separate revocation problems

Coarse grain: Narrow the vulnerability window from 1-3 years to 48 hours.
Fine grain: Narrow the vulnerability window to 60 mins.

Short lived certs (2b) are the best solution to coarse grain revocation but
it is really hard to get them working well for a window of less than 48
hours. We would have to define a trusted time protocol for a start and
establish a distribution infrastructure for it.

HBS(3) can be used for both coarse grain as well as 2b at current
certificate issue rates. But it is a compression technique and it only
reduces the size of the problem by several orders of magnitude. If cert use
grows by an order of magnitude we are back in trouble. That said, combining
HBS with short lived certs gives us a path to achieving fine grain
revocation. And that is critical in the longer term. The criminals do most
of their fraud in the first 24 hours after putting a server live.


Short lived certs have the enormous advantage that the vast majority of
revocations are for administration reasons, at the request of the cert
subject. Revocations for end-entity breach are much rarer. But the problem
is that we don't have an accurate means of distinguishing between the cases.
Our customers don't want to tell us when they have done something doofus
like selling the hard drives with private keys for a live cert.

Short lived certs have the nice property that many doofus behaviors time out
automatically even if the customer does not catch them. Since it takes more
than 24 hours to sell old hard drives on EBay, the keys corresponding to
short lived certs will have expired by the time the drives ship.


So to sumarize, here is my roadmap

Now: OCSP Stapling with MUST STAPLE
12 months: CAs begin issuing HBS compressed CRLs in a form that permits
browsers to use them as a basis for constructing 'BigCRL' type solutions
24 months: Begin issue of 2a short lived certs
36 months: Begin issue of 2b short lived certs

5 years: Begin deprecating long lived certs
10 years: Begin phase out of long lived certs
20 years: Stop issue of long lived certs


Short lived certs with new keys per cert are definitely the way to go long
term. But it will take a long time to eliminate long lived certs
- if that is possible at all. That is fine though, provided we can make sure
that the majority of the growth in certs is of short lived certs, we will be
fine.

I think that is going to happen naturally since short lived certs are a much
better fit for the cloud than long lived ones. If I use a server for 3
hours, I don't want to rely on the hosting provider scrubbing the memory
before the next customer gets hold of it to protect my private keys. I want
to limit the scope for service provider defection as well.


The barrier to deployment on 2b is writing a good spec for provisioning
certs. I have a rough sketch of a JSON prototype that basically just wraps a
CSR.

_______________________________________________
therightkey mailing list
therightkey@ietf.org
https://www.ietf.org/mailman/listinfo/therightkey