Issue #6725 has been updated by Daniel Pittman.

    4.1.2.2.  Serial Number
    
       The serial number MUST be a positive integer assigned by the CA to
       each certificate.  It MUST be unique for each certificate issued by a
       given CA (i.e., the issuer name and serial number identify a unique
       certificate).  CAs MUST force the serialNumber to be a non-negative
       integer.

We can't use an unmodified UUID, but we can use the bignum representation of 
one.  A generally satisfactory version would be a UUID v5 based on the CN 
and/or ancillary data present in the certificate, which ensures we are as 
unique as SHA-1 over a controlled set of inputs is, without coordination.  
Otherwise, a v2 or v4 with a decent PRNG would probably work, but would need 
checking to ensure they don't have risk of collision when one of the randomness 
inputs fails...
----------------------------------------
Feature #6725: Serial # for x509 certificates
https://projects.puppetlabs.com/issues/6725

Author: Ken Barber
Status: Accepted
Priority: Normal
Assignee: 
Category: ssh
Target version: 
Affected Puppet version: 2.6.6
Keywords: 
Branch: 


So the way we sequentially assign serial numbers for certificates is not 
optimal and forces us to do weird things like locking files to ensure we avoid 
duplication. The reality is a serial number in an x509 certificate does not 
need to be sequential, it just needs to be random:

http://tools.ietf.org/html/rfc5280#page-19

Now I believe the RFC wording can support a serial number up to 20 octets wide. 
If this is the case we can probably just use uuids (which are 16 octets wide?) 
... which would reduce the amount of collision possibilities.

There are a few reasons that this is beneficial:

* to allow us to potentially remove the locking of our serial file. I found in 
the past this locking reduces scalability in cases of en-masse auto-signing. 
* Also - in auto-sign situations - this removes the need to have a single CA 
for sequential serial allocation ... if the serials are uuids they have a low 
chance of collision more or less. In the future if we move cert storage to a 
central place we can avoid having to lock for the next number as well.


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to