Full Disclosure mailing list archives

Re: how would browser vendors deal with $O(10^k)$ fake certs?


From: Marsh Ray <marsh () extendedsubset com>
Date: Wed, 13 Apr 2011 19:15:38 -0500

On 04/10/2011 03:48 PM, Pavel Kankovsky wrote:
On Sun, 10 Apr 2011, Georgi Guninski wrote:

appears to me getting the certs is one time cost to the attacker, while
checking 10^k c3rt s3r34l numbers (as in the panic patch) requires loop
to 10^k?

You always need \Omega(l) operations to check a value where l is the
number of its significant bits (i.e. of the cert's serial number).
It cannot be less than \Omega(l) because you need to read and consider
every of those significant bits (they would not be really significant if
you did not have to do that).

Only in cases where the element is found though, the last bit only needs 
to be checked if all the preceding bits matched. In the normal 
(non-attack) case the "s3r34l number" isn't found.

A precomputed hash table or Bloom filter could be very small and 
effectively O(1) even for 10K entries. Except for those dumb CAs that 
issued sequential numbers, just the first few bytes of the cert would be 
enough to rule it out of the blacklist.

Hard-coding serial numbers in the source code still looks like a sad act 
of desperation though.

- Marsh

_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/


Current thread: