[cabfpub] Updated Certificate Transparency + Extended Validation plan

kirk_hall at trendmicro.com kirk_hall at trendmicro.com
Tue Feb 11 18:30:26 UTC 2014

Chema, thanks for posting the link to the EJBCA blog on pre-certificates.  I’ve pasted in the text below.  We should discuss these questions in Mountain View.

By the way, the blog below says that Certificate Transparency is supported in EJBCA Enterprise<http://www.primekey.se/Products/EJBCA+PKI/> as of EJBCA version 6.0.4.  However, in looking at the EJBCA website, that version has not yet been released, so any CA using EJBCA will not have updated software to use.

Kirk R. Hall
Operations Director, Trust Services
Trend Micro


Certificate Transparency and PreCertificates, how will that work?

The Certificate Transparency initiative (RFC6962<http://tools.ietf.org/html/rfc6962>) is an admirable suggestion to improve security of TLS web session for certificates issued by public CAs. It has cool technology with Merkle trees, is admirable short and could have been straight forward was it not for something called PreCertificates. PreCertificates are hard for me to understand, I don't like them. I hope it is because I don't understand them...if so please let me know.

Writing this post is a way to sort things out for myself and I'd be happy to edit this post if explained why I "just don't get it". Of course I am posting this to the CT forum as well...

In the sake of transparency, I'm writing with the view point of an implementer of open source CA software<http://ejbca.org/> (if you didn't figure that one out from the blog name:-)).

Update 1: I got lots of comments already over at the Certificate Transparency Forum<https://groups.google.com/forum/?fromgroups#!topic/certificate-transparency/1tWzSXKe3gQ>, really good.

Update 2: I created an issue in the Certificate Transparency issue tracker. https://code.google.com/p/certificate-transparency/issues/detail?id=18

Update 3: Of course my views on CT changes as the discussion continues, the post below was my original starting point. Follow the discussion in Update 1 for updates.

Update 4: EJBCA supports Certificate Transparency in EJBCA Enterprise<http://www.primekey.se/Products/EJBCA+PKI/> as of EJBCA version 6.0.4.

On to PreCertificates...

PreCertificates are defined in section "3.1. Log Entries<http://tools.ietf.org/html/rfc6962#section-3.1>" as (text trimed by me) "The Precertificate is constructed from the certificate to be issued by adding a special critical poison extension to the end-entity TBSCertificate". Then it describes how it can be produced and it is mentioned throughout the spec in many places.
A PreCertificate is a essentially a certificate signed with one of two options:

1. PreCertificates signed by the real CA.
This sounds very dangerous as will break the fundamental X.509 rule of unique issuerDN/serialNumber pairs. The consequences of having two "certificates" with the same issuerDN/serialNumber in the wild can not possibly be estimated, making this practice quite dangerous imho.

2. PreCertificates signed by a separate PreCertificate signing CA, which is a SubCA to the real signing CA. This is a less scary, since it is normal practice that different CAs can issue certificate with the same subjectDN/serialNumber, just not the same issuerDN.

The actual implementation of issuing PreCertificates makes it quite impractical. I would believe that most CA implementations creates the TBSCertificate<http://tools.ietf.org/html/rfc5280#section-> as part of the actual certificate issuance. The CA will not create the TBSCertificate to have is lying around for a couple of days before using it to issue the real certificate.
Thus, if the CA is to create a PreCertificate to send to the CT log, it might as well issue the real certificate and send it to the log. The time difference should be in the milliseconds for most CAs.
If the CA wants to wait before distributing the real certificate, to make sure it's in the logs before put into production, it can surely do so as well.

The PreCertificate imho suffers from several complicating factors for implementers, both on the CA and the CT log side. The TBSCertificate must have a poison extension inserted, and removed, effectively re-encoding the ASN.1 TBSCertificate several times, all these are points of failure.

The reason for PreCertificates are not clearly explained. Why would you want to use PreCertificates?

Fine combing through the spec gives me some ideas on why, for example to be able to embed the Certificate extension from PreCertificate CT logs in the final certificate (section 3.3<http://tools.ietf.org/html/rfc6962#section-3.3>). But the the TBSCertificate of the PreCertificate is then no longer the real TBSCertificate? In that case, why is the PreCertificate the TBSCertificate at all, and not just a new data structure with the data the CT log wants?

The PreCertificate complicates the CT spec by orders of magnitude, which is not a good thing. There are so many ifs and buts about PreCertificate the RFC is not even itself consitent about what it is.

Ok, I know the PreCertificate is is optional, but the best standards, who gets fast, wide and robust deployment, are the simpler ones (KISS). Skipping PreCertificates from the CT spec makes it so much simpler.

My suggestion:
- Skip PreCertificates altogether

I see though why people will not accept that just because I say something...so in that case

- Explain the purpose behind PreCertificates well
- Describe what the actual information fro PreCertificate are used
- Be consistent throughout in the RFC

From: public-bounces at cabforum.org [mailto:public-bounces at cabforum.org] On Behalf Of Chema López González
Sent: Monday, February 10, 2014 8:29 AM
To: Rob Stradling; certificate-transparency at googlegroups.com
Cc: therightkey at ietf.org; CABFPub
Subject: Re: [cabfpub] Updated Certificate Transparency + Extended Validation plan

Have anyone take into account the current position of EJBCA<http://blog.ejbca.org/2013/09/certificate-transparency-and.html>, a mayor player in this stuff of digital certificates?

To summarize:
"My suggestion:
- Skip PreCertificates altogether"

On the other hand, trying to use a thing that looks like a certificate (X.509v3) not to do the task of a certificate is like trying to use a screwdriver to nail nails.

We agree that the information contained in the precertificate is relevant, and that the signature of such information is also necessary, but maybe the container could be a different format or ASN.1 structure different from a X.509v3 cert.

[AC Firmaprofesional S.A.]<http://www.firmaprofesional.com/>

Chema López González

AC Firmaprofesional S.A.

Av. Torre Blanca, 57.
08173 Sant Cugat del Vallès. Barcelona.
Tel: 93.477.42.45 / 666.429.224

El contenido de este mensaje y de sus anexos es confidencial. Si no es el destinatario, le hacemos saber que está prohibido utilizarlo, divulgarlo y/o copiarlo sin tener la autorización correspondiente. Si ha recibido este mensaje por error, le agradeceríamos que lo haga saber inmediatamente al remitente y que proceda a destruir el mensaje.

On Mon, Feb 10, 2014 at 12:50 PM, Rob Stradling <rob.stradling at comodo.com<mailto:rob.stradling at comodo.com>> wrote:
On 10/02/14 11:35, Ben Laurie wrote:
> On 10 February 2014 10:13, Rob Stradling <rob.stradling at comodo.com<mailto:rob.stradling at comodo.com>> wrote:
>> On 08/02/14 13:32, Ben Laurie wrote:
>>> On 5 February 2014 18:21, Rob Stradling <rob.stradling at comodo.com<mailto:rob.stradling at comodo.com>> wrote:
>>>> On 05/02/14 17:49, Adam Langley wrote:
>>>>> On Wed, Feb 5, 2014 at 12:26 PM, Rob Stradling
>>>>> <rob.stradling at comodo.com<mailto:rob.stradling at comodo.com>>
>>>>> wrote:
>>>>>> Presumably it's somewhere between 10 and 31 days, since 1 SCT is
>>>>>> acceptable
>>>>>> for Stapled OCSP and the BRs permit OCSP Responses to be valid for up
>>>>>> to
>>>>>> 10
>>>>>> days.
>>>>> The speed at which we need to distrust a log depends on the minimum
>>>>> number of SCTs actually, which is why allowing a single SCT in stapled
>>>>> OCSP responses is such a large concession. If the minimum number of
>>>>> SCTs were two then the pressure to distrust a log (and the pressure on
>>>>> the logs) would be dramatically reduced because compromising one log
>>>>> wouldn't be sufficient.
>>>>>> Do you still think [1] is a good plan?
>>>>> Sure, if any CAs are willing to do it now :)
>>>> I think "servers could just download their refreshed certificate over
>>>> HTTP
>>>> periodically and automatically" is the showstopper at the moment. Yes
>>>> they
>>>> could, but I'm not aware of any server that actually implements such a
>>>> feature.
>>> Work is under way for Apache: https://github.com/trawick/ct-httpd/.
>> That looks like great work, but AFAICT it's only for fetching SCTs from CT
>> Logs.
>> I was talking about the lack of any mechanism in popular webserver software
>> for automatically fetching and installing certificates from CAs.  In
>> particular: a short-duration certificate that reuses the same public key as
>> the previous certificate.
> Ah, I see! But why would you need it if you can refresh the SCTs yourself?
To fix certificate revocation checking, by avoiding the need for it (as
Adam proposed a couple of years ago - see [1]).

But really, I was just trying to point out that just because CAs aren't
noticeably issuing short-duration certs today, it doesn't mean that they
won't do so in the future.  So I think it is worth permitting just 1
embedded SCT for short-duration certs (for some value of "short").

[1] https://www.imperialviolet.org/2011/03/18/revocation.html
"A much better solution would be for certificates to only be valid for a
few days and to forget about revocation altogether. This doesn't mean
that the private key needs to change every few days, just the
certificate. And the certificate is public data, so servers could just
download their refreshed certificate over HTTP periodically and
automatically (like OCSP stapling). Clients wouldn't have to perform
revocation checks (which are very complex and slow), CAs wouldn't have
to pay for massive, DDoS proof serving capacity and revocation would
actually work. If the CA went down for six hours, nobody cares. Only if
the CA is down for days is there a problem. If you want to “revoke” a
certificate, just stop renewing it."
Rob Stradling
Senior Research & Development Scientist
COMODO - Creating Trust Online
Public mailing list
Public at cabforum.org<mailto:Public at cabforum.org>

<table class="TM_EMAIL_NOTICE"><tr><td><pre>
The information contained in this email and any attachments is confidential 
and may be subject to copyright or other intellectual property protection. 
If you are not the intended recipient, you are not authorized to use or 
disclose this information, and we request that you notify us by reply mail or
telephone and delete the original message from your mail system.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cabforum.org/pipermail/public/attachments/20140211/fe8fa74b/attachment-0003.html>

More information about the Public mailing list