<<< Date Index >>>     <<< Thread Index >>>

Re: Windows doesn't verify digital signature of CRL files



If Windows is not checking the signature, not only can you remove or alter
revocations, you can also add ones. For example by creating a CRL revoking all
of Verisign's root certs, and then getting it to users by either a) breaking
into Verisign's CRL servers and just putting it out there, or b) simply putting
it online somewhere and then generating a certificate that lists the location
of your fake Verisign CRL in the CDP extension and getting people to use that
cert ("Here's my S/MIME cert, just import it into Outlook..."). Assuming
Microsoft's cert stuff actually does active CRL retrival, not sure if that is
the case or not.

I would say this is a fairly major bug, given that it makes CRLs more or less
useless, all that's required to exploit it is a DNS cache poisoning attack, or
an active attack on the TCP connection when the machine retrieves the latest
CRL. The whole point of signing the CRLs is that by doing so the servers
hosting them, and the communications transfering them do not have to be
trusted.

Oddly, I couldn't find any language in RFC 3280 that actually requires
verifying the signature in a CRL. Strange.

-Jack

On Tue, Aug 10, 2004 at 11:07:47AM -0500, Neil Gierman wrote:
> Correct me if I am wrong but I understood that certificate validation was
> processed by the information in the certificate to be validated (CDP or
> AIA extension). If the CDP location contains a valid CRL URL and that CA's
> CRL is not already in cache, then the CRL is retreived from that CDP URL
> in the certificate. If a person was able to inject a modified CRL into
> that CDP URL, or redirect the client machine to an alternate server for
> LDAP/HTTP CRL download, and CAPI is not validating signatures on CRL's
> then a person could use a revoked certificate for access to systems among
> other things.
> 
> While this may not be a bug I think it would be a wise security practice
> to validate a signature if it is there.
> 
> Neil
> 
> > * Faro Poplar wrote:
> >> Has anyone  noticed that Windows doesn't verify the digital signature
> >> of CRL files  (*.crl).
> >
> > Yes, I noticed that about 2 years ago. IMO this is no security issue.
> > CRLs are retrieved from the certificate store via CertGetCRLFromStore.
> > Sane use of CertGetCRLFromStore makes sure only properly signed CRLs are
> > used (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/
> > seccrypto/security/certverifycrlrevocation.asp).
> >
> > Thomas Walpuski
> >