Overview
TLS/SSL protocol version support
Several versions of the TLS protocol exist. SSL 2.0 is a deprecated /tools.ietf.org/html/rfc6176 RFC 6176: Prohibiting Secure Sockets Layer (SSL) Version 2.0/ref> protocol version with significant weaknesses. SSL 3.0 (1996) and TLS 1.0 (1999) are successors with two weaknesses in CBC-padding that were explained in 2001 by Serge Vaudenay. TLS 1.1 (2006) fixed only one of the problems, by switching to random initialization vectors (IV) for CBC block ciphers, whereas the more problematic use of mac-pad-encrypt instead of the secure pad-mac-encrypt was addressed with RFC 7366. /tools.ietf.org/html/rfc7366 RFC 7366: Encrypt-then-MAC for Transport Layer Security (TLS) and Datagram Transport Layer Security/ref> A workaround for SSL 3.0 and TLS 1.0, roughly equivalent to random IVs from TLS 1.1, was widely adopted by many implementations in late 2011, so from a security perspective, all existing version of TLS 1.0, 1.1 and 1.2 provide equivalent strength in the base protocol and are suitable for 128-bit security according to NIST SP800-57 up to at least 2030. In 2014, the POODLE vulnerability of SSL 3.0 was discovered, which takes advantage of the known vulnerabilities in CBC, and an insecure fallback negotiation used in browsers. TLS 1.2 (2008) introduced a means to identify the hash used for digital signatures. While permitting the use of stronger hash functions for digital signatures in the future (rsa,sha256/sha384/sha512) over the SSL 3.0 conservative choice (rsa,sha1+md5), the TLS 1.2 protocol change inadvertently and substantially weakened the default digital signatures and provides (rsa,sha1) and even (rsa,md5). /tools.ietf.org/html/rfc5246#section-1.2 TLSv1.2's Major Differences from TLSv1.1/ref>NSA Suite B Cryptography
Required components forCertifications
Note that certain certifications have received serious negative criticism from people who are actually involved in them.Key exchange algorithms (certificate-only)
This section lists the certificate verification functionality available in the various implementations.Key exchange algorithms (alternative key-exchanges)
Certificate verification methods
Encryption algorithms
; NotesObsolete algorithms
; NotesSupported elliptic curves
This section lists the supported elliptic curves by each implementation.Defined curves in RFC 8446 (for TLS 1.3) and RFC 8422, 7027 (for TLS 1.2 and earlier)
Proposed curves
Deprecated curves in RFC 8422
; NotesData integrity
Compression
Note the CRIME security exploit takes advantage of TLS compression, so conservative implementations do not enable compression at the TLS level. HTTP compression is unrelated and unaffected by this exploit, but is exploited by the related BREACH attack.Extensions
In this section the extensions each implementation supports are listed. Note that the Secure Renegotiation extension is critical for HTTPS client security . TLS clients not implementing it are vulnerable to attacks, irrespective of whether the client implements TLS renegotiation.Assisted cryptography
This section lists the known ability of an implementation to take advantage of CPU instruction sets that optimize encryption, or utilize system specific devices that allow access to underlying cryptographic hardware for acceleration or for data separation.System-specific backends
This section lists the ability of an implementation to take advantage of the available operating system specific backends, or even the backends provided by another implementation.Cryptographic module/token support
Code dependencies
Development environment
APIPortability concerns
See also
* SCTP — with DTLS support *References
{{DEFAULTSORT:Comparison Of TLS implementations Cryptographic software TLS implementations