SSLyze - Fast And Full-Featured SSL Scanner

Started by graphixx, March 16, 2016, 05:31:39 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

March 16, 2016, 05:31:39 PM Last Edit: March 20, 2016, 06:46:16 AM by EPSILON

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.
Key features include:

  • Multi-processed and multi-threaded scanning: it's very fast.
  • Support for all SSL protocols, from SSL 2.0 to TLS 1.2.
  • NEW: SSLyze can also be used as a library, in order to run scans and process the results directly from Python.
  • Performance testing: session resumption and TLS tickets support.
  • Security testing: weak cipher suites, insecure renegotiation, CRIME, Heartbleed and more.
  • Server certificate validation and revocation checking through OCSP stapling.
  • Support for StartTLS handshakes on SMTP, XMPP, LDAP, POP, IMAP, RDP, PostGres and FTP.
  • Support for client certificates when scanning servers that perform mutual authentication.
  • Scan results can be written to an XML or JSON file for further processing.
  • And much more !

Getting Started
SSLyze can be installed directly via pip:

Code (python) Select
pip install sslyze

It is also easy to directly clone the repository and the fetch the requirements:
Code (python) Select

git clone
cd sslyze
pip install -r requirements.txt --target ./lib

Then, the command line tool can be used to scan servers:
Code (python) Select

python --regular

SSLyze has been tested on the following platforms: Windows 7 (32 and 64 bits), Debian 7 (32 and 64 bits), OS X El Capitan.

Usage as a library
Starting with version 0.13.0, SSLyze can be used as a Python module in order to run scans and process the results directly in Python:

The scan commands are same as the ones described in the --help text.
They will all be run concurrently using Python's multiprocessing module. Each command will return a PluginResult object with attributes that contain the result of the scan command run on the server (such as list of supported cipher suites for the --tlsv1 command). These attributes are specific to each plugin and command but are all documented (within each plugin's module).
See for more examples of SSLyze's Python API.

Windows executable
A pre-compiled Windows executable is available in the Releases tab. The package can also be generated by running the following command:

Code (python) Select
python.exe py2exe

Download SSLyze