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-4.1.1.1> 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: [email protected] [mailto:[email protected]] On 
Behalf Of Chema López González
Sent: Monday, February 10, 2014 8:29 AM
To: Rob Stradling; [email protected]
Cc: [email protected]; 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.
Edificio ESADECREAPOLIS - 1B13
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 
<[email protected]<mailto:[email protected]>> wrote:
On 10/02/14 11:35, Ben Laurie wrote:
> On 10 February 2014 10:13, Rob Stradling 
> <[email protected]<mailto:[email protected]>> wrote:
>> On 08/02/14 13:32, Ben Laurie wrote:
>>>
>>> On 5 February 2014 18:21, Rob Stradling 
>>> <[email protected]<mailto:[email protected]>> wrote:
>>>>
>>>> On 05/02/14 17:49, Adam Langley wrote:
>>>>>
>>>>>
>>>>> On Wed, Feb 5, 2014 at 12:26 PM, Rob Stradling
>>>>> <[email protected]<mailto:[email protected]>>
>>>>> 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
[email protected]<mailto:[email protected]>
https://cabforum.org/mailman/listinfo/public


<table class="TM_EMAIL_NOTICE"><tr><td><pre>
TREND MICRO EMAIL NOTICE
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.
</pre></td></tr></table>
_______________________________________________
therightkey mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/therightkey

Reply via email to