We recently added the following downgrade attack Security+ practice test question to the online test banks. Can you answer it?
Q. A web server has the newest TLS cryptographic protocol suite installed. However, you recently discovered it is susceptible to downgrade attacks. What should be done to ensure that systems use the MOST secure connections by default?
A. Replace the existing certificate with a new one.
B. Implement OCSP.
C. Reconfigure the cipher suite order.
D. Rekey the existing certificate.
Do you know the answer? More, do you know why the correct answer is correct and the incorrect answers are incorrect? The answer and explanation is available at the end of this post.
Downgrade Attack
A downgrade attack is a type of attack that forces a system to downgrade its security. The attacker than exploits the lesser security control. It is most often associated with cryptographic attacks.
The common example is with Transport Layer Security (TLS) and Secure Sockets Layer (SSL). SSL has known vulnerabilities and has been replaced with TLS in most implementations. However, many servers have both SSL and TLS installed. If a client is unable to use TLS, the server will downgrade its security and use SSL.
Attackers exploit this vulnerability by configuring their systems so that they cannot use TLS. When they communicate with the server, the server uses SSL instead of TLS. This allows attackers to launch SSL-based attacks such as the Padding Oracle On Downgraded Legacy Encryption (POODLE) attack.
Note: The POODLE attack is a man-in-the-middle type of attack. It exploits systems that can switch to SSL instead of using TLS exclusively.
Modify the Protocol List to Prevent Downgrade Attack
One way to ensure that SSL isn’t used on a site is to modify the protocol list and ensure that SSL is disabled. Typically, a site will have the following five options. Disabling SSL 3 and SSL2 will prevent a downgrade attack using SSL 3 or SSL 2.
- TLS 1.2
- TLS 1.1
- TLS 1.0
- SSL 3
- SSL 2
Note that this list is configured at the server level and there are multiple ways to do so. For example, on an Apache server, you can typically access this via a server Control Panel, modifying the Web Services Configuration. The following graphic shows the TLS/SSL protocols, under the TLS/SSL Cipher List.
Note that the configuration is coded:
- SSLv23 indicates SSL all, or all versions of SSL.
- !SSLv2 is code for Not SSLv2.
- !SSLv3 is code for Not SSLv3.
- TLS versions are not mentioned, but are enabled.
Modify the Cipher Suite List to Prevent Downgrade Attack
The cipher list is simply a list of predefined cipher suites. The previous figure showed part of the title for one cipher suite in the TLS/SSL Cipher list. However, the setting includes many more. For reference, here is a list of a few cipher suites.
- TLS_RSA_WITH_AES_256_GCM_SHA384 (0x9d)
- TLS_RSA_WITH_AES_128_GCM_SHA256 (0x9c)
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x33)
- TLS_RSA_WITH_AES_128_CBC_SHA256 (0x3c)
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x9e)
The Cipher Suites blog discusses these in more depth (and includes a sample Security+ practice test question).
An important consideration with the cipher suite list is the order. When a client attempts a secure connection with a server, they both negotiate the most secure cipher protocol and cipher suite that both systems support. Normally, this works effectively.
However, what if an attacker configures his system to only support legacy or insecure cipher suites? If the server supports a legacy cipher suite, it may be the most secure suite that both support. The attacker can then connect with this older suite and exploit it. To avoid this vulnerability, the cipher suite list should omit legacy and deprecated cipher suites.
Are Your Servers Vulnerable?
Qualys SSL Labs has created an online SSL Server Test you can use to check your server. Just plug in the URL here. Here’s what you want to see.
So, can you answer this question?
Q. A web server has the newest TLS cryptographic protocol suite installed. However, you recently discovered it is susceptible to downgrade attacks. What should be done to ensure that systems use the MOST secure connections by default?
A. Replace the existing certificate with a new one.
B. Implement OCSP.
C. Reconfigure the cipher suite order.
D. Rekey the existing certificate.
C is correct. You should reconfigure the cipher suite order and ensure that legacy cipher suites are not supported. By reconfiguring the cipher suite order to use the strongest suites first, it ensures that systems will negotiate using the strongest cipher suites. Additionally, it’s possible to omit legacy and deprecated cipher suites from the cipher suite list.
While not available as a possible answer, it is also possible to ensure that older legacy protocols (such as SSL 2 and SSL3) are not supported.
A is incorrect. The cipher suite order is not configured in the certificate so replacing the certificate won’t help with this scenario.
B is incorrect. The Online Certificate Status Protocol (OCSP) is used to verify the health of a certificate. It wouldn’t select the best cipher suite.
D is incorrect. Rekeying a certificate creates a new certificate with the same name and expiration date (but new keys). However, the certificate doesn’t determine what protocol or cipher suite will be used.
1 thought on “Downgrade Attack”