Big numbers make my head hurt
May 14, 2008 11:19 AM
Subscribe
Can someone help me understand the relationship between the bit size of an SSL certificate and the size of the session key used? (If any).
Essentially, my question is this: Does generating a 512 bit certificate signing request limit the session key in any way? Or rather, is a 512 bit CSR capable of facilitating a reliable 128 bit session key?
I am usually pretty good at googling stuff like this, but I am striking out this time. Some of the pages I found indicate that the only thing that determines the session key is the capabilities of the web server and web client. Other pages indicate that a 512 bit CSR limits you to a 40/56 bit session key. Is there any hard rule on this?
For the purposes of this question, assume I have to use a 512 bit certificate. Also assume, I know about the mounting risks with 512 bit keys and that I know a 1024 bit key is much more secure.
(While I am on the subject, how does Verisign's mandatory 128 bit session encryption work? Is that a matter of signing the cert with only certain encryption protocols allowed?
I just heard about this for the first time the other day. Apparently, there is a standard signing process where the session key size fluctuates based on the connecting browser and there is an 'enhanced' cert that makes 128 bit mandatory. How is this any different than selecting 'require 128bit encryption' in IIS?)
posted by cayla to technology (3 comments total)
You have a private key and a signed public key. You generated the private key on your server with 512 bit encryption and used a CSR to have a public key signed against it. The private key is basically a code that has been signed by a Certification Authority (CA) to indicate that you can be trusted. The encryption level of your private key simply makes it harder for that private key to be cracked and misused.
When an https session is enabled, the browser authenticates your signed key against a trusted root through the signed certificate (and possibly intermediate certificates). If it can verify that your key is trusted, all of the data is then encrypted by the browser on the way to the host. This encryption is done by the browser and has nothing to do with the encryption level of your key itself.
Think of the two things separately. You can have a private key built on 512, 1024, 2048, even 4096 bit encryption, and still have a browser session that is only using 256 bit encryption, because that's all your browser/server can handle.
No idea about verisign's certs, you may want to ask them.
In general, the session is encrypted with the highest level possible by the browser/connecting device and the server itself. Some browsers/devices/servers aren't capable of 256 bit encryption, so the number goes down until you get a mesh that works.
posted by phredgreen at 1:24 PM on May 14