Do you know that cipher suites provide several layers of security for data in transit? If you’re planning on taking the Security+ exam, this post should help to have a basic understanding of cipher suites. Here’s a sample question.
Q. Lisa is setting up a secure webserver. She needs the server’s cryptography to support perfect forward secrecy. Of the following choices, what cipher suite should she ensure is used by the server?
A. TLS_DH_WITH_AES_256_CBC_SHA256
B. TLS_RSA_WITH_AES_128_CBC_SHA256
C. TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
D. SSL_RSA_WITH_AES_128_CBC_SHA256
Do you know the answer? More, do you know why the correct answer is correct and the incorrect answers are incorrect? The answer is at the end of this post.
Protocols within a Cipher Suite
Cipher suites are a combination of cryptographic algorithms that provide several layers of security for data in transit. When two systems connect, they identify a cipher suite that is acceptable to both systems and then use the protocols within that suite. The protocols within the suite provide three primary cryptographic solutions. They are:
- Encryption. Encryption provides confidentiality of data. Transport Layer Security (TLS) uses asymmetric cryptography to privately exchange a symmetric key and then encrypt the data with a symmetric algorithm. Other asymmetric methods include various types of Diffie Hellman (DH). Additionally, cipher suites support several types of symmetric encryption, including RC4, 3DES, and AES.
- Authentication. TLS uses certificates for authentication. Clients can verify the authenticity of the certificate by querying the certificate authority (CA) that issued the certificate.
- Integrity. TLS uses a message authentication code (MAC) for integrity. For example, it can use HMAC-MD5 or HMAC-SHA1.
There are over 200 named cipher suites, and systems identify them with a cipher identifier as a string of hexadecimal characters and a coded name. Here are two examples:
- 0x00C031. TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- 0x00003C. TLS_RSA_WITH_AES_128_CBC_SHA256
If you’re familiar with the acronyms, you can get a good idea of what each cipher suite is using. Here are some notes for clarification:
- Protocol. Both are using TLS. If they were SSL, the first three letters would be SSL or SSL2.
- Key exchange method. The first one is using Elliptic Curve Diffie-Hellman Ephemeral (ECDHE) and the second one is using RSA.
- Authentication. Both are using RSA, though, they shortened the code in the second one. Instead of listing RSA twice, it is only listed once.
- Encryption. Both are using 128-bit AES, though in different modes. Galois/Counter Mode (GCM) and Cipher-Block Chaining (CBC) are the two modes identified here. You don’t need to know the modes for the CompTIA Security+ exam. However, if you want to dig into them, check out SP 800-38 A through SP 800-38 F, which you can download from http://csrc.nist.gov/publications/PubsSPs.html.
- Integrity. Both are using the SHA-256 hashing algorithm.
Cipher Suites and Perfect Forward Secrecy
The two primary categories of asymmetric keys are static and ephemeral. In general, static keys are semipermanent and stay the same over a long period of time. In contrast, ephemeral keys have very short lifetimes and are re-created for each session.
Perfect forward secrecy is an important characteristic that ephemeral keys must comply with in asymmetric encryption. Perfect forward secrecy indicates that a cryptographic system generates random public keys for each session – in other words it uses ephemeral keys.
RSA uses static key pairs. The public key is embedded in a certificate and shared publicly by sharing the certificate. The private key is kept private. This key pair is the same until the certificate expires.
ECDHE uses ephemeral keys and supports perfect forward secrecy.
When two systems connect, they negotiate to identify which cipher suite they use. In essence, each system passes a prioritized list of cipher suites it is willing to use. They then use the cipher suite that is the highest on each list.
Strong Versus Weak Cipher Suites
If security was the only concern, every connection would use the strongest cipher suite all the time. However, that isn’t feasible. Due to hardware and software restrictions, some systems do not support some of the stronger ciphers. Additionally, all data isn’t the same. You would use the strongest cipher to encrypt Top Secret data, but this isn’t needed to encrypt data with a lower classification level.
With this in mind, administrators configure systems to use specific cipher suites based on their needs. Imagine you need to configure transport encryption to protect data transferred to and from a server hosting financial data. What would you choose? There are many choices.
It’s common to use TLS for asymmetric encryption, but some situations require the use of one of the Diffie Hellman variations.
It’s very common to use RSA for authentication.
Additionally, you would use a strong encryption algorithm such as AES-128 or AES-256.
You would also use a strong hashing algorithm such as HMAC-SHA1.
Q. Lisa is setting up a secure webserver. She needs the server’s cryptography to support perfect forward secrecy. Of the following choices, what cipher suite should she ensure is used by the server?
A. TLS_DH_WITH_AES_256_CBC_SHA256
B. TLS_RSA_WITH_AES_128_CBC_SHA256
C. TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
D. SSL_RSA_WITH_AES_128_CBC_SHA256
The correct answer is C. Elliptic Curve Diffie-Hellman Ephemeral (ECDHE) uses perfect forward secrecy using ephemeral keys.
RSA uses static key pairs so it doesn’t support perfect forward secrecy.
Diffie-Hellman (DH) can use either static keys or ephemeral keys so it would not ensure that perfect forward secrecy was always used.
SSL has been replaced by TLS and should not be used.
You might like to view the Cryptography Topics blog post and the post on Diffie Hellman.