#language en
#pragma keywords dcsec, nmap, qualys, scanning, ssl, sslscan, tls
#pragma section-numbers 2
## 20160504 AK
----
 [[SSLScanner/CZ|česky]] | '''english'''
----
= TLS/SSL Scanner =
<<TableOfContents()>>

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

== DCSec ==

The [[https://www.dcsec.uni-hannover.de|DCSEC research group]] at [[https://www.uni-hannover.de|Leibniz University Hannover]], Germany, provides a service that

 . "...gives you information on the SSL cipher suites your browser supports for securing HTTPS connections."

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

== GnuTLS ==

Install the [[http://www.gnutls.org|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 [[http://www.gnutls.org/manual/html_node/index.html|documentation]] for further details.

== Nmap Security Scanner ==

Use the [[http://nmap.org|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.

 . "This script repeatedly initiates SSL/TLS connections, each time trying a new cipher or compressor while recording whether a host accepts or rejects it. The end result is a list of all the ciphers and compressors that a server accepts."

{{{#!wiki note
'''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 [[http://nmap.org/docs.html|Nmap documentation]] and the script's source.

=== Example: secure.cacert.org ===

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

{{{#!highlight text numbers=on
$ nmap --script ssl-enum-ciphers -p 443 secure.cacert.org
Starting Nmap 6.00 ( http://nmap.org ) at 2014-10-21 21:06 CEST
Nmap scan report for secure.cacert.org (213.154.225.246)
Host is up (0.072s latency).
PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers:
|   TLSv1.0
|     Ciphers (12)
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA - unknown strength
|       TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA - unknown strength
|       TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA - unknown strength
|       TLS_DHE_RSA_WITH_SEED_CBC_SHA - unknown strength
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - unknown strength
|       TLS_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA - unknown strength
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - unknown strength
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - unknown strength
|       TLS_RSA_WITH_SEED_CBC_SHA - unknown strength
|     Compressors (1)
|       NULL
|   TLSv1.1
|     Ciphers (12)
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA - unknown strength
|       TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA - unknown strength
|       TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA - unknown strength
|       TLS_DHE_RSA_WITH_SEED_CBC_SHA - unknown strength
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - unknown strength
|       TLS_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA - unknown strength
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - unknown strength
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - unknown strength
|       TLS_RSA_WITH_SEED_CBC_SHA - unknown strength
|     Compressors (1)
|       NULL
|   TLSv1.2
|     Ciphers (24)
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 - strong
|       TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 - strong
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA - unknown strength
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 - unknown strength
|       TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 - unknown strength
|       TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA - unknown strength
|       TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA - unknown strength
|       TLS_DHE_RSA_WITH_SEED_CBC_SHA - unknown strength
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - strong
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - unknown strength
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 - unknown strength
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 - unknown strength
|       TLS_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA256 - strong
|       TLS_RSA_WITH_AES_128_GCM_SHA256 - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA - unknown strength
|       TLS_RSA_WITH_AES_256_CBC_SHA256 - unknown strength
|       TLS_RSA_WITH_AES_256_GCM_SHA384 - unknown strength
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - unknown strength
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - unknown strength
|       TLS_RSA_WITH_SEED_CBC_SHA - unknown strength
|     Compressors (1)
|       NULL
|_  Least strength = unknown strength

Nmap done: 1 IP address (1 host up) scanned in 135.04 seconds
}}}

== OpenSSL ==

Install the [[https://www.openssl.org|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 [[https://www.openssl.org/docs|OpenSSL documentation]]... :-)

== Qualys SSL Labs ==

[[https://www.ssllabs.com|Qualys SSL Labs]] provides two tests:

 * Use the very detailled [[https://www.ssllabs.com/ssltest|SSL/TLS Server Test]] to scan a server. Note that this test uses the [[https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/included|certificate store]] maintained by Mozilla.
 * See the [[https://www.ssllabs.com/ssltest/viewMyClient.html|SSL/TLS Capabilities of Your Browser]].

=== Example: secure.cacert.org ===

 . {{attachment:qualys-secure.cacert.org.png}}

== High_Tech bridge ==

The Swiss tester [[https://www.htbridge.com/ssl|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) /!\

=== An example: testing the cacert.org domain ===

{{attachment:HTbridge-CAcert.gif}}

== sslscan ==

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

{{{#!wiki note
'''Please note:'''

The original project on http://sourceforge.net/projects/sslscan seems to be abandoned. A fork receiving [[https://github.com/DinoTools/sslscan/blob/master/Changelog|more attention]] can be found on https://github.com/DinoTools/sslscan.
}}}

=== Example: www.cacert.org ===

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

{{{#!highlight text numbers=on
$ sslscan --no-failed www.cacert.org

           ___ ___| |___  ___ __ _ _ __
          / __/ __| / __|/ __/ _` | '_ \
          \__ \__ \ \__ \ (_| (_| | | | |
          |___/___/_|___/\___\__,_|_| |_|

                  Version 1.8.2
             http://www.titania.co.uk
        Copyright Ian Ventura-Whiting 2009

Testing SSL server www.cacert.org on port 443

  Supported Server Cipher(s):
    Accepted  TLSv1  256 bits  ECDHE-RSA-AES256-SHA
    Accepted  TLSv1  256 bits  DHE-RSA-AES256-SHA
    Accepted  TLSv1  256 bits  DHE-RSA-CAMELLIA256-SHA
    Accepted  TLSv1  256 bits  AES256-SHA
    Accepted  TLSv1  256 bits  CAMELLIA256-SHA
    Accepted  TLSv1  128 bits  ECDHE-RSA-AES128-SHA
    Accepted  TLSv1  128 bits  DHE-RSA-AES128-SHA
    Accepted  TLSv1  128 bits  DHE-RSA-SEED-SHA
    Accepted  TLSv1  128 bits  DHE-RSA-CAMELLIA128-SHA
    Accepted  TLSv1  128 bits  AES128-SHA
    Accepted  TLSv1  128 bits  SEED-SHA
    Accepted  TLSv1  128 bits  CAMELLIA128-SHA

  Prefered Server Cipher(s):
    TLSv1  256 bits  ECDHE-RSA-AES256-SHA

  SSL Certificate:
    Version: 2
    Serial Number: 979116
    Signature Algorithm: sha512WithRSAEncryption
    Issuer: /O=Root CA/OU=http://www.cacert.org/CN=CA Cert Signing Authority/emailAddress=support@cacert.org
    Not valid before: Apr 28 20:57:55 2014 GMT
    Not valid after: Apr 27 20:57:55 2016 GMT
    Subject: /C=AU/ST=NSW/L=Sydney/O=CAcert Inc./CN=www.cacert.org
    Public Key Algorithm: rsaEncryption
    RSA Public Key: (2048 bit)
      Public-Key: (2048 bit)
      Modulus:
          00:c4:83:f3:42:d0:0b:ee:f9:3f:e2:1f:63:c5:a3:
          84:e3:fd:c5:c2:a7:68:16:62:da:88:58:45:a5:dd:
          41:16:c0:e7:9e:3b:2e:13:36:ee:b4:83:12:ca:a8:
          a6:a6:8d:6c:d6:e8:6e:67:f7:f3:90:bd:69:98:93:
          ee:14:2b:6f:2a:a4:b2:f6:6a:8f:e7:4c:9f:f5:f5:
          8b:97:18:fc:3c:91:a4:6d:69:d2:b3:8b:e8:6a:e1:
          0f:db:b1:90:b2:19:16:21:a6:ec:db:25:bf:23:c5:
          6b:26:86:20:48:7b:c9:78:38:d3:dd:e4:eb:d5:a9:
          a5:0b:32:53:66:af:bd:8b:ac:f1:fb:fc:f4:f6:67:
          b9:a2:d3:fe:61:6d:eb:f3:f2:7d:55:92:d1:74:ea:
          ab:82:4e:78:52:71:8e:e0:46:14:a5:1d:cc:89:52:
          52:35:5a:0b:b1:16:8d:50:06:3c:07:c7:a1:d5:79:
          91:51:8c:05:dd:25:c5:06:49:82:11:e2:61:fa:f1:
          af:5b:34:e8:cb:4d:cf:2d:ba:e7:35:c0:de:f3:27:
          e4:ef:a5:d4:20:3d:9e:37:cd:48:09:2c:29:23:9b:
          bd:d7:aa:27:18:73:6c:b8:b7:54:98:72:f4:16:0c:
          9a:95:26:90:4e:6e:9c:9b:54:75:ca:2b:79:12:05:
          c1:cb
      Exponent: 65537 (0x10001)
    X509v3 Extensions:
      X509v3 Basic Constraints: critical
        CA:FALSE
      X509v3 Key Usage: critical
        Digital Signature, Key Encipherment, Key Agreement
      X509v3 Extended Key Usage:
        TLS Web Client Authentication, TLS Web Server Authentication, Netscape Server Gated Crypto, Microsoft Server Gated Crypto
      Authority Information Access:
        OCSP - URI:http://ocsp.cacert.org/

      X509v3 CRL Distribution Points:

        Full Name:
          URI:http://crl.cacert.org/revoke.crl

      X509v3 Subject Alternative Name:
        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>
  Verify Certificate:
    unable to get local issuer certificate
}}}

== tlsfun ==

There are some test on [[https://tlsfun.de|tlsfun.de]] created by [[https://hboeck.de|Hanno Böck]].

== ZMap ==

University of Michigan scientists developed [[https://zmap.io|ZMap]], an open-source network scanner that easily can perform Internet-wide network studies.

 * https://zmap.io/sslv3 - POODLE Attack and SSLv3 Deployment

----
 . CategorySoftware