« Changing Default Port Numbers in JBoss AS 4.x | Main | Apache: Error writing to log file. XXXXXXX messages lost »


Verifying SSL Ciphers

Update:  I have ported sslthing.sh over to perl and renamed it CryptoNark.  Output is similar but it is colorized and it does a few things that sslthing.sh does not.  First, it tests Null and Anonymous Ciphers.  Secondly, it doesn't send any requests over the channel, once the handshake is completed.  This is useful because you can test it against web servers that require some form of HTTP Authentication and gets results back without actually having to log on.  You can find more information about it from the main CryptoNark page on this site.I've mentioned in other posts that one popular tool for verifying that we have been able to disable SSL2, weak ciphers, null ciphers, etc on any specific web or application server that accepts SSL request is SSLDigger by Foundstone. If you are running Vista or a Mac or Linux workstation, though, SSLDigger isn't an easy option and it is now almost 6 years old. The older .net framework that SSLDigger relies upon will not install on a Vista pc (at least for me) and the SSLDigger installer fails stating that it needs the .net framework version 1.1. It would behoove the folks at Foundstone/McAfee to update this tool because it is quite useful but I personally have stopped using it in favor of SSLThing.

All you need to run it is openssl and the ability to run shell scripts, which on the Mac and on Linux is quite easy. Cygwin on Windows Vista will give you shell scripting/executing capability, too.

Scanning a site to see what ciphers are supported is simply a matter of a one-time update of this script to tell it where to find openssl and then execute it by typing ./sslthing.sh www.hostnameofyoursite.com:sslPortNumber [-v]. The -v switch is optional and will dump some additional information regarding what ciphers were attempted, which ones passed and which ones failed. Here's a sample of the output taken from one of the sites I support:

Testing SSL2...
Testing TLS1...
DHE-RSA-AES256-SHA - 256 bits
AES256-SHA - 256 bits
EDH-RSA-DES-CBC3-SHA - 168 bits
DES-CBC3-SHA - 168 bits
DHE-RSA-AES128-SHA - 128 bits
AES128-SHA - 128 bits
RC4-SHA - 128 bits
RC4-MD5 - 128 bits

The output from running sslthing shows that none of the SSL2 ciphers worked and the only ciphers that worked over TLS were the stronger ones.

If you need information on disabling SSLv2 and/or weak encryption ciphers as part of PCI Remediation activity, please consider the following links for a variety of platforms:

Disabling Weak Encryption and SSLv2 in Apache

Disabling SSLv2 and Weak Encryption on a BigIP LTM-Managed Site

Disabling SSLv2 and Weal Encryption in Tomcat and JBoss 4

Disabling SSLv2, Null, and Weak Ciphers in IIS

Disabling Weak Ciphers and SSLv2 in WebSEAL (part of Tivoli Access Manager for eBusiness


TrackBack URL for this entry:

Listed below are links to weblogs that reference Verifying SSL Ciphers: