Skip to content

Latest commit

 

History

History
108 lines (85 loc) · 6.41 KB

38140 - SSL Server Supports Weak Encryption Vulnerability.md

File metadata and controls

108 lines (85 loc) · 6.41 KB

38140 - SSL Server Supports Weak Encryption Vulnerability

Description

The Secure Socket Layer (SSL) protocol allows for secure communication between a client and a server. SSL encryption ciphers are classified based on encryption key length as follows:

  • HIGH - key length larger than 128 bits
  • MEDIUM - key length equal to 128 bits
  • LOW - key length smaller than 128 bits

Messages encrypted with LOW encryption ciphers are easy to decrypt. Commercial SSL servers should only support MEDIUM or HIGH strength ciphers to guarantee transaction security. The following link provides more information about this vulnerability: Analysis of the SSL 3.0 protocol (http://www.schneier.com/paper-ssl-revised.pdf) Please note that this detection only checks for weak cipher support at the SSL layer. Some servers may implement additional protection at the data layer. For example, some SSL servers and SSL proxies (such as SSL accelerators) allow cipher negotiation to complete but send back an error message and abort further communication on the secure channel. This vulnerability may not be exploitable for such configurations.

Solution

Disable support for LOW encryption ciphers. Apache If TLSv1.1 or TLSv1.2 are available, then those protocols should be used. SSLProtocol TLSv1.1 TLSv1.2 If TLSv1.1 and TLSv1.2 are not available then only TLS1.0 should be used: SSLProtocol TLSv1 Typically, for Apache/mod_ssl, httpd.conf or ssl.conf should have the following lines: SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM For Apache/apache_ssl include the following line in the configuration file (httpsd.conf): SSLRequireCipher ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM Tomcat sslProtocol="SSLv3" ciphers="SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,SSL_DHE_RSA_W ITH_3DES_EDE_CBC_SHA" IIS How to Restrict the Use of Certain Cryptographic Algorithms and Protocols in Schannel.dll (http://support.microsoft.com/default.aspx?scid=kb;EN-US;245030) (Windows restart required) How to disable PCT 1.0, SSL 2.0, SSL 3.0, or TLS 1.0 in Internet Information Services (http://support.microsoft.com/default.aspx?scid=kb;en-us;187498) (Windows restart required) Security Guidance for IIS (http://www.microsoft.com/technet/security/prodtech/IIS.mspx) For Novell Netware 6.5 please refer to the following document SSL Allows the use of Weak Ciphers. -TID10100633 (http://support.novell.com/cgi-bin/search/searchtid.cgi?10100633.htm)

Validation

Tool

  • sslyze_cli.py Fast and full-featured SSL scanner for Python 2.7. SSLyze is a Python tool that can analyze the SSL configuration of a server by connecting to it. It is designed to be fast and comprehensive, and should help organizations and testers identify mis-configurations affecting their SSL servers.

Analysis

As the description mentions: Messages encrypted with LOW encryption ciphers are easy to decrypt. Commercial SSL servers should only support MEDIUM or HIGH strength ciphers to guarantee transaction security. so any encryption smaller than 128 bits is considered low and weak.

For this purpose we will use the tool sslyze_cli.py to enumerate the encryption keys confugured in the server.

For SMTP servers, usually port 25 and 587, use the following command:

sslyze_cli.py  --regular --starttls=smtp --hide_rejected_ciphers <Server IP>:<PORT> | grep bits | egrep -v '(128|256)'

For HTTP Servers, usually port 443 and 8443 use the following command:

sslyze_cli.py  --regular --hide_rejected_ciphers <Server IP>:<PORT> | grep bits | egrep -v '(128|256)'

With these command we are filtering the encryption keys and looking for anything that is not 128 or 256 bits. If you have anything similar to this then your server is still vulnerable.

        TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA                 DH-1024 bits   112 bits      250 2.0.0 Ok
        TLS_RSA_WITH_3DES_EDE_CBC_SHA                     -              112 bits      250 2.0.0 Ok
        TLS_RSA_WITH_DES_CBC_SHA                          -              56 bits       250 2.0.0 Ok
        TLS_DHE_RSA_WITH_DES_CBC_SHA                      DH-1024 bits   56 bits       250 2.0.0 Ok
        TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA             DH-512 bits    40 bits       250 2.0.0 Ok
        TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5                -              40 bits       250 2.0.0 Ok
        TLS_RSA_EXPORT_WITH_DES40_CBC_SHA                 -              40 bits       250 2.0.0 Ok
        TLS_RSA_EXPORT_WITH_RC4_40_MD5                    -              40 bits       250 2.0.0 Ok
        TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA                 DH-1024 bits   112 bits      250 2.0.0 Ok
        TLS_RSA_WITH_3DES_EDE_CBC_SHA                     -              112 bits      250 2.0.0 Ok
        TLS_RSA_WITH_DES_CBC_SHA                          -              56 bits       250 2.0.0 Ok
        TLS_DHE_RSA_WITH_DES_CBC_SHA                      DH-1024 bits   56 bits       250 2.0.0 Ok
        TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5                -              40 bits       250 2.0.0 Ok
        TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA             DH-512 bits    40 bits       250 2.0.0 Ok
        TLS_RSA_EXPORT_WITH_DES40_CBC_SHA                 -              40 bits       250 2.0.0 Ok
        TLS_RSA_EXPORT_WITH_RC4_40_MD5                    -              40 bits       250 2.0.0 Ok
        TLS_RSA_WITH_3DES_EDE_CBC_SHA                     -              112 bits      250 2.0.0 Ok
        TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA                 DH-1024 bits   112 bits      250 2.0.0 Ok
        TLS_DHE_RSA_WITH_DES_CBC_SHA                      DH-1024 bits   56 bits       250 2.0.0 Ok
        TLS_RSA_WITH_DES_CBC_SHA                          -              56 bits       250 2.0.0 Ok
        TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA             DH-512 bits    40 bits       250 2.0.0 Ok
        TLS_RSA_EXPORT_WITH_RC4_40_MD5                    -              40 bits       250 2.0.0 Ok
        TLS_RSA_EXPORT_WITH_DES40_CBC_SHA                 -              40 bits       250 2.0.0 Ok
        TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5                -              40 bits       250 2.0.0 Ok