TLS/SSL Scanner

The following sections present tools and sites for scanning or testing servers or clients for their respective TLS/SSL capabilities.

1. DCSec

The DCSEC research group at Leibniz University Hannover, Germany, provides a service that

Surf to https://cc.dcsec.uni-hannover.de with the browser to be examined.

2. GnuTLS

Install the GnuTLS command line utilities and run these commands in a terminal:

$ gnutls-cli --insecure --port 443 --print-cert --verbose HOSTNAME
$ gnutls-cli-debug --port 443 --verbose HOSTNAME

See the documentation for further details.

3. Nmap Security Scanner

Use the Nmap Security Scanner with the ssl-enum-ciphers script at the command line

$ nmap --script ssl-enum-ciphers -p 443 HOSTNAME

to scan a server.

Please note:

Running this script is intrusive since it must initiate many connections to a server, and therefore is quite noisy. It takes several minutes.

For further details see the Nmap documentation and the script's source.

3.1. Example: secure.cacert.org

The following example examines the host secure.cacert.org:

   1 $ nmap --script ssl-enum-ciphers -p 443 secure.cacert.org
   2 Starting Nmap 6.00 ( http://nmap.org ) at 2014-10-21 21:06 CEST
   3 Nmap scan report for secure.cacert.org (213.154.225.246)
   4 Host is up (0.072s latency).
   5 PORT    STATE SERVICE
   6 443/tcp open  https
   7 | ssl-enum-ciphers:
   8 |   TLSv1.0
   9 |     Ciphers (12)
  10 |       TLS_DHE_RSA_WITH_AES_128_CBC_SHA - strong
  11 |       TLS_DHE_RSA_WITH_AES_256_CBC_SHA - unknown strength
  12 |       TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA - unknown strength
  13 |       TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA - unknown strength
  14 |       TLS_DHE_RSA_WITH_SEED_CBC_SHA - unknown strength
  15 |       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
  16 |       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - unknown strength
  17 |       TLS_RSA_WITH_AES_128_CBC_SHA - strong
  18 |       TLS_RSA_WITH_AES_256_CBC_SHA - unknown strength
  19 |       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - unknown strength
  20 |       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - unknown strength
  21 |       TLS_RSA_WITH_SEED_CBC_SHA - unknown strength
  22 |     Compressors (1)
  23 |       NULL
  24 |   TLSv1.1
  25 |     Ciphers (12)
  26 |       TLS_DHE_RSA_WITH_AES_128_CBC_SHA - strong
  27 |       TLS_DHE_RSA_WITH_AES_256_CBC_SHA - unknown strength
  28 |       TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA - unknown strength
  29 |       TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA - unknown strength
  30 |       TLS_DHE_RSA_WITH_SEED_CBC_SHA - unknown strength
  31 |       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
  32 |       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - unknown strength
  33 |       TLS_RSA_WITH_AES_128_CBC_SHA - strong
  34 |       TLS_RSA_WITH_AES_256_CBC_SHA - unknown strength
  35 |       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - unknown strength
  36 |       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - unknown strength
  37 |       TLS_RSA_WITH_SEED_CBC_SHA - unknown strength
  38 |     Compressors (1)
  39 |       NULL
  40 |   TLSv1.2
  41 |     Ciphers (24)
  42 |       TLS_DHE_RSA_WITH_AES_128_CBC_SHA - strong
  43 |       TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 - strong
  44 |       TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 - strong
  45 |       TLS_DHE_RSA_WITH_AES_256_CBC_SHA - unknown strength
  46 |       TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 - unknown strength
  47 |       TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 - unknown strength
  48 |       TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA - unknown strength
  49 |       TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA - unknown strength
  50 |       TLS_DHE_RSA_WITH_SEED_CBC_SHA - unknown strength
  51 |       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
  52 |       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - strong
  53 |       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - strong
  54 |       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - unknown strength
  55 |       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 - unknown strength
  56 |       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 - unknown strength
  57 |       TLS_RSA_WITH_AES_128_CBC_SHA - strong
  58 |       TLS_RSA_WITH_AES_128_CBC_SHA256 - strong
  59 |       TLS_RSA_WITH_AES_128_GCM_SHA256 - strong
  60 |       TLS_RSA_WITH_AES_256_CBC_SHA - unknown strength
  61 |       TLS_RSA_WITH_AES_256_CBC_SHA256 - unknown strength
  62 |       TLS_RSA_WITH_AES_256_GCM_SHA384 - unknown strength
  63 |       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - unknown strength
  64 |       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - unknown strength
  65 |       TLS_RSA_WITH_SEED_CBC_SHA - unknown strength
  66 |     Compressors (1)
  67 |       NULL
  68 |_  Least strength = unknown strength
  69 
  70 Nmap done: 1 IP address (1 host up) scanned in 135.04 seconds

4. OpenSSL

Install the OpenSSL command line tools and run this command in a terminal:

$ openssl s_client -connect HOSTNAME:443 -prexit -showcerts -state -status -tlsextdebug -verify 10

Further details might be available in the OpenSSL documentation... :-)

5. Qualys SSL Labs

Qualys SSL Labs provides two tests:

5.1. Example: secure.cacert.org

6. High_Tech bridge

The Swiss tester HT Bridge rates the security of domains with web servers, similarly to the preceding Qualys tester. You enter a domain only to performing the test. The tester displays a results report on the same web page after the test is finished.

/!\ Attention! This tester doesn't work with IPv6 addresses yet (12.2015) /!\

6.1. An example: testing the cacert.org domain

HTbridge-CAcert.gif

7. sslscan

A wrapper over OpenSSL to list the ciphers usable on a TLS/SSL server.

Please note:

The original project on http://sourceforge.net/projects/sslscan seems to be abandoned. A fork receiving more attention can be found on https://github.com/DinoTools/sslscan.

7.1. Example: www.cacert.org

The following example examines the host www.cacert.org:

   1 $ sslscan --no-failed www.cacert.org
   2 
   3            ___ ___| |___  ___ __ _ _ __
   4           / __/ __| / __|/ __/ _` | '_ \
   5           \__ \__ \ \__ \ (_| (_| | | | |
   6           |___/___/_|___/\___\__,_|_| |_|
   7 
   8                   Version 1.8.2
   9              http://www.titania.co.uk
  10         Copyright Ian Ventura-Whiting 2009
  11 
  12 Testing SSL server www.cacert.org on port 443
  13 
  14   Supported Server Cipher(s):
  15     Accepted  TLSv1  256 bits  ECDHE-RSA-AES256-SHA
  16     Accepted  TLSv1  256 bits  DHE-RSA-AES256-SHA
  17     Accepted  TLSv1  256 bits  DHE-RSA-CAMELLIA256-SHA
  18     Accepted  TLSv1  256 bits  AES256-SHA
  19     Accepted  TLSv1  256 bits  CAMELLIA256-SHA
  20     Accepted  TLSv1  128 bits  ECDHE-RSA-AES128-SHA
  21     Accepted  TLSv1  128 bits  DHE-RSA-AES128-SHA
  22     Accepted  TLSv1  128 bits  DHE-RSA-SEED-SHA
  23     Accepted  TLSv1  128 bits  DHE-RSA-CAMELLIA128-SHA
  24     Accepted  TLSv1  128 bits  AES128-SHA
  25     Accepted  TLSv1  128 bits  SEED-SHA
  26     Accepted  TLSv1  128 bits  CAMELLIA128-SHA
  27 
  28   Prefered Server Cipher(s):
  29     TLSv1  256 bits  ECDHE-RSA-AES256-SHA
  30 
  31   SSL Certificate:
  32     Version: 2
  33     Serial Number: 979116
  34     Signature Algorithm: sha512WithRSAEncryption
  35     Issuer: /O=Root CA/OU=http://www.cacert.org/CN=CA Cert Signing Authority/emailAddress=support@cacert.org
  36     Not valid before: Apr 28 20:57:55 2014 GMT
  37     Not valid after: Apr 27 20:57:55 2016 GMT
  38     Subject: /C=AU/ST=NSW/L=Sydney/O=CAcert Inc./CN=www.cacert.org
  39     Public Key Algorithm: rsaEncryption
  40     RSA Public Key: (2048 bit)
  41       Public-Key: (2048 bit)
  42       Modulus:
  43           00:c4:83:f3:42:d0:0b:ee:f9:3f:e2:1f:63:c5:a3:
  44           84:e3:fd:c5:c2:a7:68:16:62:da:88:58:45:a5:dd:
  45           41:16:c0:e7:9e:3b:2e:13:36:ee:b4:83:12:ca:a8:
  46           a6:a6:8d:6c:d6:e8:6e:67:f7:f3:90:bd:69:98:93:
  47           ee:14:2b:6f:2a:a4:b2:f6:6a:8f:e7:4c:9f:f5:f5:
  48           8b:97:18:fc:3c:91:a4:6d:69:d2:b3:8b:e8:6a:e1:
  49           0f:db:b1:90:b2:19:16:21:a6:ec:db:25:bf:23:c5:
  50           6b:26:86:20:48:7b:c9:78:38:d3:dd:e4:eb:d5:a9:
  51           a5:0b:32:53:66:af:bd:8b:ac:f1:fb:fc:f4:f6:67:
  52           b9:a2:d3:fe:61:6d:eb:f3:f2:7d:55:92:d1:74:ea:
  53           ab:82:4e:78:52:71:8e:e0:46:14:a5:1d:cc:89:52:
  54           52:35:5a:0b:b1:16:8d:50:06:3c:07:c7:a1:d5:79:
  55           91:51:8c:05:dd:25:c5:06:49:82:11:e2:61:fa:f1:
  56           af:5b:34:e8:cb:4d:cf:2d:ba:e7:35:c0:de:f3:27:
  57           e4:ef:a5:d4:20:3d:9e:37:cd:48:09:2c:29:23:9b:
  58           bd:d7:aa:27:18:73:6c:b8:b7:54:98:72:f4:16:0c:
  59           9a:95:26:90:4e:6e:9c:9b:54:75:ca:2b:79:12:05:
  60           c1:cb
  61       Exponent: 65537 (0x10001)
  62     X509v3 Extensions:
  63       X509v3 Basic Constraints: critical
  64         CA:FALSE
  65       X509v3 Key Usage: critical
  66         Digital Signature, Key Encipherment, Key Agreement
  67       X509v3 Extended Key Usage:
  68         TLS Web Client Authentication, TLS Web Server Authentication, Netscape Server Gated Crypto, Microsoft Server Gated Crypto
  69       Authority Information Access:
  70         OCSP - URI:http://ocsp.cacert.org/
  71 
  72       X509v3 CRL Distribution Points:
  73 
  74         Full Name:
  75           URI:http://crl.cacert.org/revoke.crl
  76 
  77       X509v3 Subject Alternative Name:
  78         DNS:www.cacert.org, othername:<unsupported>, DNS:secure.cacert.org, othername:<unsupported>, DNS:wwwmail.cacert.org, othername:<unsupported>, DNS:cacert.org, othername:<unsupported>, DNS:www.cacert.net, othername:<unsupported>, DNS:cacert.net, othername:<unsupported>, DNS:www.cacert.com, othername:<unsupported>, DNS:cacert.com, othername:<unsupported>
  79   Verify Certificate:
  80     unable to get local issuer certificate

8. tlsfun

There are some test on tlsfun.de created by Hanno Böck.

9. ZMap

University of Michigan scientists developed ZMap, an open-source network scanner that easily can perform Internet-wide network studies.


SSLScanner (last edited 2016-05-04 20:05:59 by AlesKastner)