3

My cert is:

Key Length = 2048
Signature algorithm = SHA256 + RSA 

So is it a 256 bit SSL cert?

  • 3
    Welcome to bad CA marketing. Ultimately most here would say it's a 2048bit key with a 256bit long RSA signed signature. Non of this matters to the length of the session key the browser uses for the symmetric channel after the certificate validation and key exchange is done. – ewanm89 Jun 12 '16 at 16:21
  • neither, it's 2048 bit. – dandavis Jun 13 '16 at 9:19
7

So is it a 256bit SSL cert?

No. There are several aspects which are relevant for a certificate:

  • the type of the key, usually RSA or ECC
  • the size of the key. The strength of the key depends both on the type and the size, i.e. the commonly used 2048 bit RSA and 256 bit ECC keys are roughly equivalent
  • the signature algorithm, i.e. SHA-256 + RSA

When talking only about "this is a XXX bit cert" one refers to the key size. So in your example this would be a 2048 bit certificate or more specific a certificate with a 2048 bit RSA key. And this certificate was signed by the issuer with with the issuers RSA key and a SHA-256 hash over the certificate.

Another important factor is the strength of the symmetric encryption of the data, i.e. the algorithm and its key size. But this is independent from the strength of the certificate and thus outside of this question. But any claims by a CA that their certificates are good for 256 bit encryption are just marketing, because this can be done with any certificate.

  • Well, in CA marketing terms that's a yes as they mean they are using a 256bit long signature, but it is just poor marketing by the CA. – ewanm89 Jun 12 '16 at 16:24
  • @ewanm89: do you have actual examples where CA's market their products this way? – Steffen Ullrich Jun 12 '16 at 17:47
  • "The Trustwave® Extended Validation SSL Certificate features 256-Bit encryption" <-- urm how does the certificate feature 256bit encryption? Only encryption in the certificate is in the signature and is public key encrypted. Oh, and that is the first CA's website I loaded up. – ewanm89 Jun 12 '16 at 18:01
  • @ewanm89: while this is marketing bullshit they are not really claiming that this is a "256 bit certificate". – Steffen Ullrich Jun 12 '16 at 18:11
  • 1
    @ewanm89 SHA256 is an important factor in the security of the cert, and relatively new (mostly since mid-2015) which is why it's in many issuer (CA) names, but it's not encryption, nor is it related to the encryption used in SSL/TLS. – dave_thompson_085 Jun 12 '16 at 20:39
3

So is it a 256bit SSL cert?

No. Yes. Maybe. The real answer is: It depends on the terminology, as some CAs appear to be notoriously lousy about such details.

The certificate contains the public portion of the asymmetric key pair that is used to authenticate the server (ensure that you really are talking to the server you think you are talking to) and establish the shared secret session key (which is used for actually encrypting the traffic). It also contains some other information aimed to establish the identity of the key holder, as well as the correctness of the certificate itself. The hash algorithm (in your case SHA-256, which is one of the SHA-2 family of hashes) is used to establish the correctness of the certificate, and (beyond its ability to correctly establish whether the certificate is valid) has no real bearing on the encryption strength.

SHA-256 has a 256 bit hash length, and so by some definitions a certificate which uses SHA-256 for authenticity can technically be said to be a "256-bit certificate". However, that doesn't directly impact the cryptographic security achieved. (SHA-1 has a 160 bit hash length, and creating a fake SHA-1 certificate is estimated to cost around $100,000. I don't think anybody sold those as "160-bit certificates", however.) The more secure hash does make creating a fake certificate far more difficult, however, so you have greater assurance that the host you are connecting to is the one you intended to connect to.

The asymmetric key pair is formed by two keys, the public key and the private key. In your case, it is a 2048 bit RSA public key, with a corresponding private key. The public half of this pair is, as it says, public, and is used to encrypt data such that only an entity that holds the corresponding private half of the pair can decrypt it. Asymmetric in this case means that the keys used to encrypt and decrypt data are different; the opposite is symmetric cryptography in which the same key is used to encrypt and decrypt data. (We use asymmetric crypto because it greatly simplifies key distribution and agreement, and symmetric crypto because it has far greater performance and fewer pitfalls. Real-world cryptosystems such as TLS and PGP combine these two to get the best out of both.)

Usually when talking about "128 bit", "256 bit" and so on encryption, one refers to the symmetric key length, though the emergence of elliptic-curve cryptography has somewhat started to blur this line (broadly speaking, 256 bits is a good key length for a symmetric algorithm, a reasonable key length for an elliptic-curve algorithm, but an absolutely disasterously short key length for something like RSA). The symmetric key is agreed upon randomly by the server and the client, using tricks of mathematics to ensure that even if somebody can monitor the entire exchange between the two, they still will not be able to determine the symmetric key agreed upon. Exactly how this happens is beyond the scope of this answer, but if you are curious, read up on key agreement or key exchange protocols such as for example Diffie-Hellman key exchange.

The length of the symmetric key that is agreed upon is determined by the support and preferences of both the client and server software. This is unrelated to the certificate itself.

The length of the symmetric and asymmetric keys, and the security of the hash used to establish the certificate's validity, should ideally be chosen such that they provide a somewhat similar level of security. There's no point in the server using AES-256 for symmetric encryption if the certificate has a 512-bit RSA public key, for example, as an attacker will always go after the easiest target.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.