Thawte, GeoTrust, VeriSign and other Certificate Authorities are currently in the process of changing from a 1024 bit MD5 based root certificate to a 2048 bit SHA-1 based root to "keep in line with industry best practices". In addition all certificates will now require Intermediate Certificate Authorities, creating a Chained Root certificate instead of the single root certificates that were previously issued by preferred providers. Having recently gone through this upgrade with one of our sites I now realize that I do not fully understand how SSL works and that I am in need of some clarifications.
Question 1: How does a 1024 bit root differ from a 2048 bit root? I understand the switch from MD5 to SHA1, as MD5 has been proven vulnerable to collisions, but my question is what benefit does a 2048 bit root give over a 1024 bit root? Does it increase the SSL encryption strength between client and server or does it simply make it more difficult to compromise the root certificate?
Question 2: How do Intermediate Certificates work and what benefits/detriments do they have? After updating our site everything worked fine except when the site was accessed by an older browser (Windows Mobile specifically). I was a bit confused since the Thawte SSL123 2048-bit Test Site worked fine on the device where as our site prompted a warning message regarding an "Untrusted Root Certificate". Both sites had the exact same certificate chain, of which neither the root or intermediate certificates were trusted by the device. Stranger still was that after visiting the testing site, our site would magically start working without any warnings.
I contact Thawte regarding the issue, and they said that our SSL certificate was not installed correctly. They said that we needed to download and install the intermediate certificate into the trusted intermediate certificate store of the server, and that we could use their installation checker to verify the results. The certificate had been installed by our hosting provider (probably using an automated script configure for single root certificates), but once we followed their instructions our site started working on the older browsers without needing to install or approve the new root or intermediate certificate on the device.
How is it that installing the intermediate certificate on the server causes older browsers to accept the certificate as being valid?