On Friday, 29 April 2016 02:22:14 UTC+1, Man Ho (Certizen)  wrote:
> Hi Rob,
> 
> I know that there is a discussion regarding "bits of entropy" or
> "unpredictable bits" in certificate serial number. I do not familiar
> with this topic, but my gut feeling is that "unpredictable bits" is
> relatively subjective.

Both are subjective in the sense that mathematicians have never developed, and 
don't expect to be able to develop a method to assure ourselves that a list of 
numbers, much less an individual number exhibits this property of being 
unpredictable. Instead we only have statistical tests, for which we can say 
that a list of inputs which fails the tests is too predictable.

There is an absolutely objective test, but it is negative. If anyone can 
predict N-bits of your next serial number then those N-bits were by definition 
predictable. To give a concrete example if you issued with 16 digit serial 
numbers, but the first 8 are YYYYMMDD from the actual date, any bad guy can 
predict those numbers in the next certificate, thus they don't constitute 
entropy / unpredictable bits, so your serial numbers have no more than 8 digits 
of entropy in this scenario.

In the payment industry a specification was developed in which the consortium 
were uncomfortable with this idea of "unpredictable" values in cryptography and 
so they simply defined for conformance purposes that the values should not 
repeat. Unsurprisingly some implementations of their specification chose to use 
a simple counter, meaning bad guys could in fact trivially predict the next 
"unpredictable" value and attack that way. We don't know for sure how much 
fraud was incurred as a result.

Today's public key systems rely extensively on cryptographically secure random 
numbers and on statistical rather than absolute assurances already, so this is 
not really new territory, even aside from the BRs having previously required 
20-bits and Microsoft requiring 64-bits.

> What is your definition of "bits of entropy" used in crt.sh? Could you
> elaborate a bit more on how "bits of entropy" is verified?
 
I'm sure Rob can give a more technical answer, but my understanding is that 
crt.sh doesn't (and probably can't) detect that individual certificates have 
enough entropy, instead it flags certificates based on the length of the serial 
numbers. So it's neither sufficient nor necessary that every certificate from 
an issuer should pass the test in crt.sh, but it is very suspicious if many or 
all certificates from a particular issuer fail this test.
_______________________________________________
dev-security-policy mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-security-policy

Reply via email to