OpenSSL alternatives
Looking for an alternative tool to replace OpenSSL? During the review of OpenSSL we looked at other open source tools. Based on their category, tags, and text, these are the ones that have the best match.
Top 3
- itsdangerous (sign data to ensure integrity)
- git-crypt (encrypt sensitive data in Git repositories)
- Cryptomator (client-side encryption for cloud services)
These tools are ranked as the best alternatives to OpenSSL.
Alternatives (by score)
itsdangerous
Introduction
You may need to send some data to untrusted environments. To do this safely, the data needs to be signed. The receiver can check if the signature is correct, while the sender is the only one who can create the appropriate signature.
Project details
itsdangerous is written in Python.
Strengths and weaknesses
- + More than 1000 GitHub stars
- + The source code of this software is available
Typical usage
- Application security
- Data integrity
git-crypt
Introduction
This tools allows you to store your secrets (such as keys or passwords) in the same repository as your code.
Project details
git-crypt is written in C++.
Strengths and weaknesses
- + More than 10 contributors
- + More than 3000 GitHub stars
- + The source code of this software is available
Typical usage
- Data encryption
Cryptomator
Introduction
Cryptomator is a multi-platform tool for transparent client-side encryption of your files. It is used together with cloud services to ensure you are the only one who can access the data.Project details
Cryptomator is written in Java.
Strengths and weaknesses
- + More than 10 contributors
- + More than 2000 GitHub stars
- + Many releases available
Typical usage
- Data encryption
jak
Introduction
Typically developers may want to store some secrets, like authentication details, in in their repository. With jak this can happen in a slightly more secure way, by encrypting the data.
Project details
jak is written in Python.
Strengths and weaknesses
- + The source code of this software is available
Typical usage
- Data encryption
socat
Introduction
Socat is a tool to share data between systems. It can leverage an existing connection, or set up a new channel between two systems. This can be useful to relay traffic, do a quick data transfer, or test other systems. Another option is to use it on the local system to add an encrypted channel.
Project details
socat is written in C.
Strengths and weaknesses
- + The source code of this software is available
- + Well-known tool
Typical usage
- Data encryption
- Data transfers
testssl.sh
Introduction
Key features of testssl.sh include:
- Clear output: you can tell easily whether anything is good or bad
- Ease of installation: It works for Linux, Darwin, FreeBSD, NetBSD and MSYS2/Cygwin out of the box: no need to install or configure something, no gems, CPAN, pip or the like.
- Flexibility: You can test any SSL/TLS enabled and STARTTLS service, not only webservers at port 443
- Toolbox: Several command line options help you to run YOUR test and configure YOUR output
- Reliability: features are tested thoroughly
- Verbosity: If a particular check cannot be performed because of a missing capability on your client side, you'll get a warning
- Privacy: It's only you who sees the result, not a third party
- Freedom: It's 100% open source. You can look at the code, see what's going on and you can change it.
Project details
testssl.sh is written in shell script.
Strengths and weaknesses
- + Used language is shell script
- + The source code of this software is available
Typical usage
- Application testing
- Configuration audit
Certificate Transparency
Introduction
HTTPS connections use cryptographic functions to provide confidentiality and integrity. It can provide features like domain validation, end-to-end encryption, and a trust chain from certificate authorities down to the end-user. Any flaws can endanger these goals, like the impersonation of a system, man-in-the-middle (MitM) attacks, and website spoofing. This project helps to find flaws and improve the overall security of our internet.
Project details
Lemur
Introduction
With Lemur you can provide a central portal for developers and administrators to issue TLS certificates with predefined defaults.
Lemur works on CPython 3.5 and uses the Flask framework. Another component it uses is cryptography to handle the creation of the certificates.
Netflix develops on macOS and deploys on Ubuntu servers.
Project details
Lemur is written in Python.
Strengths and weaknesses
- + More than 500 GitHub stars
- + The source code of this software is available
- + Supported by a large company
Typical usage
- Certificate management
MassBleed
Introduction
MassBleed is a SSL vulnerability scanner to check for several known vulnerabilities and attacks like DROWN, POODLE, and ShellShock.Project details
MassBleed is written in Perl, Python, shell script.
Strengths and weaknesses
- + The source code of this software is available
- - Full name of author is unknown
- - Unknown project license
Typical usage
- Application security
- Web application analysis
O-Saft
Introduction
O-Saft is the abbreviation for OWASP SSL advanced forensic tool.
Project details
O-Saft is written in Perl.
Strengths and weaknesses
- + The source code of this software is available
Typical usage
- Information gathering
- Penetration testing
- Security assessment
- Vulnerability scanning
- Web application analysis
SSLMap
Introduction
SSLMap uses its own SSL engine to avoid any dependencies or limitations with pre-installed libraries.
Project details
SSLsplit
Introduction
SSLsplit is a tool for man-in-the-middle attacks against SSL/TLS encrypted network connections. Connections are transparently intercepted through a network address translation engine and redirected to SSLsplit. SSLsplit terminates SSL/TLS and initiates a new SSL/TLS connection to the original destination address, while logging all data transmitted. SSLsplit is intended to be useful for network forensics and penetration testing.
SSLsplit supports plain TCP, plain SSL, HTTP and HTTPS connections over both IPv4 and IPv6. For SSL and HTTPS connections, SSLsplit generates and signs forged X509v3 certificates on-the-fly, based on the original server certificate subject DN and subjectAltName extension. SSLsplit fully supports Server Name Indication (SNI) and is able to work with RSA, DSA and ECDSA keys and DHE and ECDHE cipher suites. Depending on the version of OpenSSL, SSLsplit supports SSL 3.0, TLS 1.0, TLS 1.1 and TLS 1.2, and optionally SSL 2.0 as well. SSLsplit can also use existing certificates of which the private key is available, instead of generating forged ones. SSLsplit supports NULL-prefix CN certificates and can deny OCSP requests in a generic way. For HTTP and HTTPS connections, SSLsplit removes response headers for HPKP in order to prevent public key pinning, for HSTS to allow the user to accept untrusted certificates, and Alternate Protocols to prevent switching to QUIC/SPDY. As an experimental feature, SSLsplit supports STARTTLS mechanisms in a generic manner.
Project details
SSLsplit is written in C.
Strengths and weaknesses
- + The source code of this software is available
Typical usage
- Learning
- Network analysis
- Penetration testing
- Security assessment
SSLyze
Introduction
SSLyze provides a library for scanning services that use SSL/TLS for encrypted communications. It can be used to test their implementation.Project details
cipherscan
Introduction
The tool is of great assistance to quickly perform a security audit and may be used during penetrating testing, or guiding system administrator for system hardening.
Project details
cipherscan is written in Python, shell script.
Strengths and weaknesses
- + Screen output is colored
- + More than 1000 GitHub stars
- + Very low number of dependencies
- + Supported by a large company
Typical usage
- Information gathering
- Security assessment
- System hardening
- Web application analysis
clinker
Introduction
Clinker is a tool to test SSL and TLS security for Firefox. It is an addon that shows the used cipher suites, certificates, and shows related security information of the connection itself.
Requirements: Firefox
Project details
mitmproxy (mitmproxy)
Introduction
The mitmproxy tool allows to intercept, inspect, modify, and replay traffic flows. It may be used for pentesting, troubleshooting, or learning about SSL/TLS.Project details
mitmproxy is written in Python.
Strengths and weaknesses
- + More than 200 contributors
- + More than 10000 GitHub stars
- + The source code of this software is available
Typical usage
- Network analysis
- Penetration testing
- Security assessment
pshtt
Introduction
Pshtt was developed to push organizations, including government departments, to adopt HTTPS across the enterprise.
Project details
pshtt is written in Python.
Strengths and weaknesses
- + More than 500 GitHub stars
- + The source code of this software is available
Typical usage
- Security assessment
- Web application analysis
sslcaudit
Introduction
Sslcaudit is a tool that focuses on the niche of testing SSL/TLS clients.
Project details
sslcaudit is written in Python.
Strengths and weaknesses
- + The source code of this software is available
Typical usage
- Security assessment
- Software testing
ssldump
Introduction
ssldump is protocol analyzer for SSLv3/TLS network traffic. It identifies TCP connections on the chosen network interface and tries to interpret it.Project details
Strengths and weaknesses
- + The source code of this software is available
- - No updates for a while
Typical usage
- Network analysis
AESKeyFinder
Introduction
AESKeyFinder uses various algorithms to perform entropy tests and filter out blocks that are not AES keys. The remaining blocks are then displayed as possible AES keys.
Project details
Strengths and weaknesses
- + The source code of this software is available
- - No proper description on website
- - No updates for a while
Typical usage
- Data extraction
pick
Introduction
Tools like pick are used to store passwords and secrets safely.
Project details
pick is written in Golang.
Strengths and weaknesses
- + Very low number of dependencies
- + The source code of this software is available
Typical usage
- Data security
- Secure storage
A2SV
Introduction
A2SV is short for Auto Scanning to SSL Vulnerability, a security tool to scan for SSL and TLS vulnerabilities. It can be used during security assessments.Project details
A2SV is written in Python.
Strengths and weaknesses
- + The source code of this software is available
- - Full name of author is unknown
Typical usage
- Vulnerability scanning
- Vulnerability testing
sslh
Introduction
A typical use case for multiplexing is to allow serving several services on one port. Port 443 is commonly used, as that is typically opened on firewalls to allow HTTPS traffic. By multiplexing it, you can also use SSH or other services on the same port.
Project details
ZGrab
Introduction
ZGrab is a stateful application-layer scanner. It works together with ZMap and is also part of the ZMap project. ZGrab is written in Go and supports multiple protocols, including:
- BACNET
- HTTP
- HTTPS
- FTP
- IMAP
- POP3
- Modbus
- Siemens S7
- SMTP
- SSH
- Telnet
- Tridium Fox
Project details
ZGrab is written in Golang.
Strengths and weaknesses
- + The source code of this software is available
Typical usage
- Penetration testing
- Security assessment
- Vulnerability scanning
tlsenum
Introduction
Tlsenum is a CLI tool to enumerate TLS protocol and TLS cipher support by a server. The tool lists then the output based on the order of priority. Tlsenum can be used to find the supported protocols and ciphers of a system and determine if it is properly hardened. This information can be useful to system administrators and pentesters doing a security assessment of the system.
Project details
tlsenum is written in Python.
Strengths and weaknesses
- + The source code of this software is available
Typical usage
- Information gathering
- Security assessment
- System enumeration
- System hardening
Some relevant tool missing as an alternative to OpenSSL? Please contact us with your suggestion.