There are other ways to achieve a guarantee of non-collision besides 
re-generating.  For example, we incorporate the timestamp of issuance into the 
serial number alongside the random bits.  You could also incorporate a 
sequential value into your serial number.  Both methods serve to guarantee 
that, even in the extremely unlikely event that you duplicate the random 
component of your serial number in 2 different certificates, you still have 2 
different serial numbers.

But at least 64 bits of whatever is produced needs to be entropy, and if any 
"acceptability test" is applied after the random value is generated and 
actually rejects a value, then you've reduced your number of effective bits of 
entropy.  From what has been described here, it seem clear that in this case 
what's actually being generated is 63 bits of entropy.  Any process truly 
generating 64 bits of entropy should be producing serial numbers with 9 octets 
~50% of the time.

Regards,
 
Tim Shirley  
Software Architect  
t: +1 412.395.2234 
 
www.securetrust.com <http://www.securetrust.com> 
 
Introducing the Global Compliance Intelligence Report 
<https://www2.trustwave.com/Global-Compliance-Intelligence-Report-Registration.html>
 
 

On 2/25/19, 3:58 AM, "dev-security-policy on behalf of Scott Rea via 
dev-security-policy" <[email protected] on behalf 
of [email protected]> wrote:

    I think it reasonable to expect that EVERY implementation of a compliant CA 
software is doing this post-processing to ensure the intended serialNumber has 
not already been used, and this is not something unique to EJBCA. As such, 
every CA out there will have some process that requires post-processing of 
whatever value is returned with a possibility to have to repeat the process if 
there is a collision.

_______________________________________________
dev-security-policy mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-security-policy

Reply via email to