Testing Secured Connections

Updated -

This article describe some methods for testing the condition of a secured server.

This article is part of the Securing Applications Collection

Testing TLS settings

Proper configuration is only part of the equation to establishing secure network encryption. Once your configurations have been set and services restarted it's time to test your system to verify that the desired protocols and ciphers are functional and that the weak or broken protocols and ciphers have been properly disabled.

Note that the tool used (openssl) only has support for either direct TLS start, or a limited number of services that have a pre-amble (smtp", "pop3", "imap", and "ftp"). This precludes direct testing of services like mysql, postgresl or ldap which have a more complex startup procedure. Also note that to ensure that as complete a test as possible is performed the actual probe should be made from a RHEL6 or RHEL7 machine.

Test for SSLv2 being disabled

SSL 2.0 is broken and considered insecure. Your servers should not negotiate this protocol. You should not see a valid connection, with key exchange, when you perform this test.

openssl s_client -connect host:port -ssl2

Test for SSLv3 being disabled

SSL 3.0 is very weak and considered insecure. Your servers should not negotiate this protocol. You should not see a valid connection, with key exchange, when you perform this test.

openssl s_client -connect host:port -ssl3

Test for TLSv1.2 being enabled

TLS 1.2 is the strongest TLS protocol available and is considered secure. Your servers should negotiate this protocol. You should see a valid connection, with key exchange, when you perform this test.

openssl s_client -connect host:port -tls1_2

Test for ECDHE-RSA-AES128-GCM-SHA256 being enabled

This is the best ciphersuite available for servers with RSA keys.

openssl s_client -connect host:port -cipher ECDHE-RSA-AES128-GCM-SHA256

Comments