Jämförelse av TLS-implementationer
Transport Layer Security (TLS)-protokollet ger möjlighet att säkra kommunikation över nätverk. Denna jämförelse av TLS-implementationer jämför flera av de mest anmärkningsvärda biblioteken . Det finns flera TLS-implementationer som är fri programvara och öppen källkod .
Alla jämförelsekategorier använder den stabila versionen av varje implementering som anges i översiktsavsnittet. Jämförelsen är begränsad till funktioner som direkt relaterar till TLS-protokollet.
Översikt
Genomförande | Utvecklad av | Öppen källa | Mjukvarulicens | Upphovsrättsinnehavare | Skrivet i | Senaste stabila versionen, releasedatum | Ursprung | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Botan | Jack Lloyd | Ja | Förenklad BSD-licens | Jack Lloyd | C++ | 2.19.3 (16 november 2022 | )USA (Vermont) | ||||||||
BoringSSL | Ja | OpenSSL-SSLeay dual-license , ISC-licens | Eric Young, Tim Hudson, Sun, OpenSSL project, Google och andra | C , C++ , Go , montering | ?? | Australien/EU | |||||||||
Hoppborg | The Legion of the Bouncy Castle Inc. | Ja | MIT-licens | Legion of the Bouncy Castle Inc. | Java , C# |
|
Australien | ||||||||
BSAFE | Dell , tidigare RSA Security | Nej | Proprietär | Dell | Java , C , montering | SSL-J 6.5 (12 september 2022
|
) Australien | ||||||||
cryptlib | Peter Gutmann | Ja | Sleepycat-licens och kommersiell licens | Peter Gutmann | C | 3.4.5 (2019 | )NZ | ||||||||
GnuTLS | GnuTLS-projekt | Ja | LGPL-2.1 eller senare | Free Software Foundation | C | 3.6.16 2021-05-24 | EU (Grekland och Sverige) | ||||||||
Java Secure Socket Extension (JSSE) | Orakel | Ja | GNU GPLv2 och kommersiell licens | Orakel | Java | 19.0.2 (18 februari 2023
|
) USA | ||||||||
LibreSSL | OpenBSD-projekt | Ja | Apache-1.0 , BSD-4-klausul , ISC och allmän egendom | Eric Young, Tim Hudson, Sun, OpenSSL-projektet, OpenBSD-projektet och andra | C , montering | 3.6.2 2023-02-06 | Kanada | ||||||||
MatrixSSL | PeerSec-nätverk | Ja | GNU GPLv2 + och kommersiell licens | PeerSec-nätverk | C | 4.2.2 (11 september 2019 | )USA | ||||||||
Mbed TLS (tidigare PolarSSL) | Ärm | Ja | Apache License 2.0, GNU GPLv2 + och kommersiell licens | Arm Holdings | C | 3.2.1 (12 juli 2022 | )EU (Nederländerna) | ||||||||
Nätverkssäkerhetstjänster (NSS) | Mozilla , AOL , Red Hat , Sun , Oracle , Google och andra | Ja | MPL 2.0 | NSS-bidragsgivare | C , montering |
|
USA | ||||||||
OpenSSL | OpenSSL-projekt | Ja | Apache-2.0 | Eric Young, Tim Hudson, Sun, OpenSSL-projektet och andra | C , montering | 3.0.8 2023-02-07 | Australien/EU | ||||||||
s2n | Amazon | Ja | Apache License 2.0, GNU GPLv2 + och kommersiell licens | Amazon, Inc. | C | Kontinuerlig | USA | ||||||||
Kanal | Microsoft | Nej | Proprietär | Microsoft Inc. | Windows 11, 2021-10-05 | USA | |||||||||
Säker transport | Apple Inc. | Ja | APSL 2.0 | Apple Inc. | 57337.20.44 ( OS X 10.11.2), 2015-12-08 | USA | |||||||||
SharkSSL | Realtidslogik | Ja | GNU GPLv2 + och kommersiell licens | Realtidslogik | C | USA | |||||||||
wolfSSL (tidigare CyaSSL) | wolfSSL | Ja | GNU GPLv2 + och kommersiell licens | wolfSSL Inc. | C , montering | 5.5.4 (21 december 2022 | )USA | ||||||||
Erlang /OTP SSL-applikation | Ericsson | Ja | Apache-licens 2.0 | Ericsson | Erlang | OTP-21, 2018-06-19 | Sverige | ||||||||
Genomförande | Utvecklad av | Öppen källa | Mjukvarulicens | Upphovsrättsägare | Skrivet i | Senaste stabila versionen, releasedatum | Ursprung |
Stöd för version av TLS/SSL-protokoll
Det finns flera versioner av TLS-protokollet. SSL 2.0 är en föråldrad protokollversion med betydande svagheter. SSL 3.0 (1996) och TLS 1.0 (1999) är efterföljare med två svagheter i CBC-utfyllnad som förklarades 2001 av Serge Vaudenay. TLS 1.1 (2006) åtgärdade bara ett av problemen, genom att byta till slumpmässiga initieringsvektorer (IV) för CBC-blockchiffer, medan den mer problematiska användningen av mac-pad-encrypt istället för den säkra pad-mac-encrypt åtgärdades med RFC 7366. En lösning för SSL 3.0 och TLS 1.0, ungefär motsvarande slumpmässiga IV från TLS 1.1, användes allmänt av många implementeringar i slutet av 2011, så ur ett säkerhetsperspektiv ger alla befintliga versioner av TLS 1.0, 1.1 och 1.2 motsvarande styrka i basprotokollet och är lämpliga för 128-bitars säkerhet enligt NIST SP800-57 upp till minst 2030. 2014 upptäcktes POODLE -sårbarheten i SSL 3.0, vilket drar fördel av de kända sårbarheterna i CBC, och en osäker reservförhandling används i webbläsare.
TLS 1.2 (2008) introducerade ett sätt att identifiera hash som används för digitala signaturer. Samtidigt som man tillåter användningen av starkare hash-funktioner för digitala signaturer i framtiden (rsa,sha256/sha384/sha512) över SSL 3.0-konservativa valet (rsa,sha1+md5), försvagade TLS 1.2-protokollet oavsiktligt och avsevärt de digitala standardsignaturerna. och ger (rsa,sha1) och jämn (rsa,md5).
Datagram Transport Layer Security (DTLS eller Datagram TLS) 1.0 är en modifiering av TLS 1.1 för ett paketorienterat transportlager, där paketförlust och paketomordning måste tolereras. Revisionen DTLS 1.2 baserad på TLS 1.2 publicerades i januari 2012.
Observera att det finns kända sårbarheter i SSL 2.0 och SSL 3.0. Med undantag för de förutsägbara IV:erna (för vilka det finns en enkel lösning) påverkar alla för närvarande kända sårbarheter alla versioner av TLS 1.0/1.1/1.2 lika.
Genomförande | SSL 2.0 (osäker) | SSL 3.0 (osäker) | TLS 1.0 | TLS 1.1 | TLS 1.2 | TLS 1.3 | DTLS 1.0 | DTLS 1.2 |
---|---|---|---|---|---|---|---|---|
Botan | Nej | Nej | Ja | Ja | Ja | Ja | Ja | |
BoringSSL | Ja | Ja | Ja | Ja | Ja | Ja | ||
Hoppborg | Nej | Nej | Ja | Ja | Ja |
Ja (utkastversion) |
Ja | Ja |
BSAFE SSL-J | Nej | Inaktiverad som standard | Nej | Nej | Ja | Ja | Nej | Nej |
cryptlib | Nej | Inaktiverad som standard vid kompilering | Ja | Ja | Ja | Nej | Nej | |
GnuTLS | Nej | Inaktiverad som standard | Ja | Ja | Ja | Ja | Ja | Ja |
JSSE | Nej | Inaktiverad som standard | Inaktiverad som standard | Inaktiverad som standard | Ja | Ja | Ja | Ja |
LibreSSL | Nej | Nej | Ja | Ja | Ja | Ja | Ja | Ja |
MatrixSSL | Nej | Inaktiverad som standard vid kompilering | Ja | Ja | Ja | Ja | Ja | Ja |
Mbed TLS | Nej | Nej | Nej | Nej | Ja |
Ja (experimentell) |
Ja | Ja |
NSS | Nej | Inaktiverad som standard | Ja | Ja | Ja | Ja | Ja | Ja |
OpenSSL | Nej | Inaktiverad som standard | Ja | Ja | Ja | Ja | Ja | Ja |
s2n | Nej | Inaktiverad som standard | Ja | Ja | Ja | Ja | Nej | Nej |
Kanal XP, 2003 | Inaktiverad som standard i MSIE 7 | Aktiverad som standard | Aktiverad som standard i MSIE 7 | Nej | Nej | Nej | Nej | |
Kanal Vista | Inaktiverad som standard | Aktiverad som standard | Ja | Nej | Nej | Nej | Nej | |
Kanal 2008 | Inaktiverad som standard | Aktiverad som standard | Ja | Inaktiverad som standard (KB4019276) | Inaktiverad som standard (KB4019276) | Nej | Nej | |
Kanal 7, 2008R2 | Inaktiverad som standard | Inaktiverad som standard i MSIE 11 | Ja | Aktiverad som standard i MSIE 11 | Aktiverad som standard i MSIE 11 | Ja | Nej | |
Kanal 8, 2012 | Inaktiverad som standard | Aktiverad som standard | Ja | Inaktiverad som standard | Inaktiverad som standard | Ja | Nej | |
Kanal 8.1, 2012R2, 10 v1507 och v1511 | Inaktiverad som standard | Inaktiverad som standard i MSIE 11 | Ja | Ja | Ja | Ja | Nej | |
Kanal 10 v1607 / 2016 | Nej | Inaktiverad som standard | Ja | Ja | Ja | Ja | Ja | |
Kanal 11/2022 | Nej | Inaktiverad som standard | Ja | Ja | Ja | Ja | Ja | Ja |
Säker transport
OS X 10.2-10.7, iOS 1-4 |
Ja | Ja | Ja | Nej | Nej | Nej | Nej | |
Säker transport OS X 10.8-10.10, iOS 5-8 | Nej | Ja | Ja | Ja | Ja | Ja | Nej | |
Säker transport OS X 10.11, iOS 9 | Nej | Nej | Ja | Ja | Ja | Ja | Okänd | |
Säker transport OS X 10.13, iOS 11 | Nej | Nej | Ja | Ja | Ja |
Ja (utkastversion) |
Ja | Okänd |
wolfSSL | Nej | Inaktiverad som standard | Inaktiverad som standard | Ja | Ja | Ja | Ja | Ja |
Erlang /OTP SSL-applikation | Nej | Nej | Inaktiverad som standard | Inaktiverad som standard | Ja | Delvis | Inaktiverad som standard | Ja |
Genomförande | SSL 2.0 (osäker) | SSL 3.0 (osäker) | TLS 1.0 | TLS 1.1 | TLS 1.2 | TLS 1.3 | DTLS 1.0 | DTLS 1.2 |
NSA Suite B Kryptografi
Nödvändiga komponenter för NSA Suite B Cryptography (RFC 6460) är:
- Advanced Encryption Standard (AES) med nyckelstorlekar på 128 och 256 bitar. För trafikflöde bör AES användas med antingen Counter Mode (CTR) för trafik med låg bandbredd eller driftläget Galois/Counter Mode (GCM) för trafik med hög bandbredd (se Blockchifferfunktioner ) — symmetrisk kryptering
- Elliptic Curve Digital Signature Algorithm (ECDSA) — digitala signaturer
- Elliptic Curve Diffie–Hellman (ECDH) — nyckelavtal
- Secure Hash Algorithm 2 (SHA-256 och SHA-384) — meddelandesammanfattning
Enligt CNSSP-15 är den 256-bitars elliptiska kurvan (specificerad i FIPS 186-2), SHA-256 och AES med 128-bitars nycklar tillräckliga för att skydda sekretessbelagd information upp till Secret-nivån, medan den 384-bitars elliptiska kurvan (specificerat i FIPS 186-2), SHA-384 och AES med 256-bitars nycklar är nödvändiga för att skydda topphemlig information.
Genomförande | TLS 1.2 Suite B |
---|---|
Botan | Ja |
Hoppborg | Ja |
BSAFE | Ja |
cryptlib | Ja |
GnuTLS | Ja |
JSSE | Ja |
LibreSSL | Ja |
MatrixSSL | Ja |
Mbed TLS | Ja |
NSS | Nej |
OpenSSL | Ja |
S2n | |
Kanal | Ja |
Säker transport | Nej |
wolfSSL | Ja |
Genomförande | TLS 1.2 Suite B |
Certifieringar
Observera att vissa certifieringar har fått allvarlig negativ kritik från personer som faktiskt är involverade i dem.
Genomförande | FIPS 140-1 , FIPS 140-2 | Inbäddad FIPS-lösning | |
---|---|---|---|
Nivå 1 | Nivå 2 [ omtvistad ] | ||
Botan | |||
Hoppborg |
BC-FJA 1.0.0 (#2768) BC-FJA 1.0.1 (#3152) |
||
BSAFE SSL-J |
Crypto-J 6.0 ( 1785 , 1786 ) Crypto-J 6.1 / 6.1.1.0.1 ( 2057 , 2058 ) Crypto-J 6.2 / 6.2.1.1 ( 2468 , 2469 ) Crypto-J 6.2.4 ( 3 Crypto - J 6.2.4 ) 3 J 6.2.5 ( #3819 , #3820 ) |
||
cryptlib | |||
GnuTLS | Red Hat Enterprise Linux GnuTLS kryptografisk modul (#2780) | ||
JSSE | |||
LibreSSL | inget stöd | ||
MatrixSSL | SafeZone FIPS kryptografisk modul: 1.1 (#2389) | ||
Mbed TLS | |||
NSS |
Nätverkssäkerhetstjänster: 3.2.2 (#247) Krypteringsmodul för nätverkssäkerhetstjänster: 3.11.4 (#815), 3.12.4 (#1278), 3.12.9.1 (#1837) |
Netscape Security Module: 1 (#7), 1.01 (#47) Nätverkssäkerhetstjänster: 3.2.2 (#248) Network Security Services Kryptografisk modul: 3.11.4 (#814), 3.12.4 (#1279, #1280) |
|
OpenSSL |
OpenSSL FIPS-objektmodul: 1.0 (#624), 1.1.1 (#733), 1.1.2 (#918), 1.2, 1.2.1, 1.2.2, 1.2.3 eller 1.2.4 (#1051) 2.0 , 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5, 2.0.6, 2.0.7 eller 2.0.8 (#1747) |
||
Kanal |
Kryptografiska moduler i Windows NT 4.0, 95, 95, 2000, XP, Server 2003, CE 5, CE 6, Mobile 6.x, Vista, Server 2008, 7, Server 2008 R2, 8, Server 2012, RT, Surface, Phone 8 Se detaljer om Microsoft FIPS 140 validerade kryptografiska moduler |
||
Säker transport |
Apple FIPS-krypteringsmodul: 1.0 (OS X 10.6, #1514), 1.1 (OS X 10.7, #1701) Apple OS X CoreCrypto-modul; CoreCrypto Kernel Module: 3.0 (OS X 10.8, #1964, #1956), 4.0 (OS X 10.9, #2015, #2016) Apple iOS CoreCrypto Module; CoreCrypto Kernel Module: 3.0 (iOS 6, #1963, #1944), 4.0 (iOS 7, #2020, #2021) |
||
wolfSSL |
wolfCrypt FIPS-modul: 4.0 (#3389) Se detaljer om NIST-certifikat för validerade driftsmiljöer wolfCrypt FIPS-modul: 3.6.0 (#2425) Se detaljer om NIST-certifikat för validerade driftsmiljöer |
Ja | |
Genomförande | Nivå 1 | Nivå 2 | Inbäddad FIPS-lösning |
FIPS 140-1, FIPS 140-2 |
Algoritmer för nyckelutbyte (endast certifikat)
Det här avsnittet listar certifikatverifieringsfunktionerna som är tillgängliga i de olika implementeringarna.
Genomförande | RSA | RSA -EXPORT (osäker) | DHE - RSA ( forward sekretess ) | DHE - DSS ( forward sekretess ) | ECDH - ECDSA | ECDHE - ECDSA ( forward sekretess ) | ECDH - RSA | ECDHE - RSA ( forward sekretess ) | GOST R 34.10-94, 34.10-2001 |
---|---|---|---|---|---|---|---|---|---|
Botan | Inaktiverad som standard | Nej | Ja | Inaktiverad som standard | Nej | Ja | Nej | Ja | Nej |
BSAFE | Ja | Nej | Ja | Ja | Ja | Ja | Ja | Ja | Nej |
cryptlib | Ja | Nej | Ja | Ja | Nej | Ja | Nej | Nej | Nej |
GnuTLS | Ja | Nej | Ja | Inaktiverad som standard | Nej | Ja | Nej | Ja | Nej |
JSSE | Ja | Inaktiverad som standard | Ja | Ja | Ja | Ja | Ja | Ja | Nej |
LibreSSL | Ja | Nej | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
MatrixSSL | Ja | Nej | Ja | Nej | Ja | Ja | Ja | Ja | Nej |
Mbed TLS | Ja | Nej | Ja | Nej | Ja | Ja | Ja | Ja | Nej |
NSS | Ja | Inaktiverad som standard | Ja | Ja | Ja | Ja | Ja | Ja | Nej |
OpenSSL | Ja | Nej | Ja | Inaktiverad som standard | Ja | Ja | Ja | Ja | Ja |
Kanal XP/2003 | Ja | Ja | Nej |
XP: Max 1024 bitar 2003: endast 1024 bitar |
Nej | Nej | Nej | Nej | Nej |
Kanal Vista/2008 | Ja | Inaktiverad som standard | Nej | 1024 bitar som standard | Nej | Ja | Nej | förutom AES_GCM | Nej |
Kanal 8/2012 | Ja | Inaktiverad som standard | Endast AES_GCM | 1024 bitar som standard | Nej | Ja | Nej | förutom AES_GCM | Nej |
Kanal 7/2008R2, 8.1/2012R2 | Ja | Inaktiverad som standard | Ja | 2048 bitar som standard | Nej | Ja | Nej | förutom AES_GCM | Nej |
Kanal 10 | Ja | Inaktiverad som standard | Ja | 2048 bitar som standard | Nej | Ja | Nej | Ja | Nej |
Säker transport OS X 10.6 | Ja | Ja | förutom AES_GCM | Ja | Ja | förutom AES_GCM | ja | förutom AES_GCM | Nej |
Säker transport OS X 10.8-10.10 | Ja | Nej | förutom AES_GCM | Nej | Ja | förutom AES_GCM | Ja | förutom AES_GCM | Nej |
Säker transport OS X 10.11 | Ja | Nej | Ja | Nej | Nej | Ja | Nej | Ja | Nej |
wolfSSL | Ja | Nej | Ja | Nej | Ja | Ja | Ja | Ja | Nej |
Erlang /OTP SSL-applikation | Ja | Nej | Ja | Ja | Ja | Ja | Ja | Ja | Nej |
Genomförande | RSA | RSA -EXPORT (osäker) | DHE - RSA ( forward sekretess ) | DHE - DSS ( forward sekretess ) | ECDH - ECDSA | ECDHE - ECDSA ( forward sekretess ) | ECDH - RSA | ECDHE - RSA ( forward sekretess ) | GOST R 34.10-94, 34.10-2001 |
Nyckelutbytealgoritmer (alternativa nyckelutbyten)
Genomförande | SRP | SRP - DSS | SRP - RSA | PSK - RSA | PSK | DHE - PSK ( forward sekretess ) | ECDHE - PSK ( forward sekretess ) | KRB5 | DH -ANON (osäker) | ECDH -ANON (osäker) |
---|---|---|---|---|---|---|---|---|---|---|
Botan | Ja | Ja | Ja | Nej | Ja | Ja | Ja | Nej | Inaktiverad som standard | Inaktiverad som standard |
BSAFE SSL-J | Nej | Nej | Nej | Nej | Ja | Nej | Nej | Nej | Inaktiverad som standard | Inaktiverad som standard |
cryptlib | Nej | Nej | Nej | Nej | Ja | Ja | Nej | Okänd | Nej | Nej |
GnuTLS | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Nej | Inaktiverad som standard | Inaktiverad som standard |
JSSE | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Inaktiverad som standard | Inaktiverad som standard |
LibreSSL | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Ja | Ja |
MatrixSSL | Nej | Nej | Nej | Ja | Ja | Ja | Nej | Nej | Inaktiverad som standard | Nej |
Mbed TLS | Nej | Nej | Nej | Ja | Ja | Ja | Ja | Nej | Nej | Nej |
NSS | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Endast klientsidan, inaktiverad som standard | Inaktiverad som standard |
OpenSSL | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Inaktiverad som standard | Inaktiverad som standard |
Kanal | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Ja | Nej | Nej |
Säker transport | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Okänd | Ja | Ja |
wolfSSL | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Nej | Nej |
Erlang /OTP SSL-applikation | Inaktiverad som standard | Inaktiverad som standard | Inaktiverad som standard | Inaktiverad som standard | Inaktiverad som standard | Inaktiverad som standard | Nej | Nej | Inaktiverad som standard | Inaktiverad som standard |
Genomförande | SRP | SRP - DSS | SRP - RSA | PSK - RSA | PSK | DHE - PSK ( forward sekretess ) | ECDHE - PSK ( forward sekretess ) | KRB5 | DH -ANON (osäker) | ECDH -ANON (osäker) |
Certifikatverifieringsmetoder
Genomförande | Applikationsdefinierad | PKIX-sökvägsvalidering | CRL | OCSP | DANE (DNSSEC) | Trust on First Use (TOFU) | CT |
---|---|---|---|---|---|---|---|
Botan | Ja | Ja | Ja | Ja | Nej | Nej | Okänd |
Hoppborg | Ja | Ja | Ja | Ja | Ja | Nej | Okänd |
BSAFE | Ja | Ja | Ja | Ja | Nej | Nej | Okänd |
cryptlib | Ja | Ja | Ja | Ja | Nej | Nej | Okänd |
GnuTLS | Ja | Ja | Ja | Ja | Ja | Ja | Okänd |
JSSE | Ja | Ja | Ja | Ja | Nej | Nej | Nej |
LibreSSL | Ja | Ja | Ja | Ja | Nej | Nej | Okänd |
MatrixSSL | Ja | Ja | Ja | Ja | Nej | Nej | Okänd |
Mbed TLS | Ja | Ja | Ja | Nej | Nej | Nej | Okänd |
NSS | Ja | Ja | Ja | Ja | Nej | Nej | Okänd |
OpenSSL | Ja | Ja | Ja | Ja | Ja | Nej | Ja |
s2n | Nej | Okänd | Okänd | ||||
Kanal | Okänd | Ja | Ja | Ja | Nej | Nej | Okänd |
Säker transport | Ja | Ja | Ja | Ja | Nej | Nej | Okänd |
wolfSSL | Ja | Ja | Ja | Ja | Nej | Nej | Okänd |
Erlang /OTP SSL-applikation | Ja | Ja | Ja | Nej | Nej | Nej | Okänd |
Genomförande | Applikationsdefinierad | PKIX-sökvägsvalidering | CRL | OCSP | DANE (DNSSEC) | Trust on First Use (TOFU) | CT |
Krypteringsalgoritmer
Genomförande | Blockchiffer med funktionssätt | Stream chiffer | Ingen | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
AES GCM |
AES CCM |
AES CBC |
Camellia GCM |
Camellia CBC |
ARIA GCM |
ARIA CBC |
SEED CBC |
3DES EDE CBC (osäker) |
GOST 28147-89 CNT (föreslagen) |
ChaCha20 - Poly1305 |
Null (osäker) |
|
Botan | Ja | Ja | Ja | Ja | Ja | Nej | Nej | Inaktiverad som standard | Inaktiverad som standard | Nej | Ja | Ej implementerad |
BoringSSL | Ja | Nej | Ja | Nej | Nej | Nej | Nej | Nej | Ja | Nej | Ja | |
BSAFE SSL-J | Ja | Ja | Ja | Nej | Nej | Nej | Nej | Nej | Inaktiverad som standard | Nej | Nej | Inaktiverad som standard |
cryptlib | Ja | Nej | Ja | Nej | Nej | Nej | Nej | Nej | Ja | Nej | Nej | Ej implementerad |
GnuTLS | Ja | Ja | Ja | Ja | Ja | Nej | Nej | Nej | Inaktiverad som standard | Nej | Ja | Inaktiverad som standard |
JSSE | Ja | Nej | Ja | Nej | Nej | Nej | Nej | Nej | Inaktiverad som standard | Nej |
Ja (JDK 12+) |
Inaktiverad som standard |
LibreSSL | Ja | Nej | Ja | Nej | Ja | Nej | Nej | Nej | Ja | Ja | Ja | Inaktiverad som standard |
MatrixSSL | Ja | Nej | Ja | Nej | Nej | Nej | Nej | Ja | Inaktiverad som standard | Nej | Ja | Inaktiverad som standard |
Mbed TLS | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Nej | Nej | Nej | Ja | Inaktiverad som standard vid kompilering |
NSS | Ja | Nej | Ja | Nej | Ja | Nej | Nej | Ja | Ja | Nej | Ja | Inaktiverad som standard |
OpenSSL | Ja | Inaktiverad som standard | Ja | Nej | Inaktiverad som standard | Inaktiverad som standard | Nej | Inaktiverad som standard | Inaktiverad som standard | Ja | Ja | Inaktiverad som standard |
Kanal XP/2003 | Nej | Nej | Endast 2003 | Nej | Nej | Nej | Nej | Nej | Ja | Nej | Nej | Inaktiverad som standard |
Channel Vista/2008, 2008R2, 2012 | Nej | Nej | Ja | Nej | Nej | Nej | Nej | Nej | Ja | Nej | Nej | Inaktiverad som standard |
Kanal 7, 8, 8.1/2012R2 | Ja förutom ECDHE_RSA |
Nej | Ja | Nej | Nej | Nej | Nej | Nej | Ja | Nej | Nej | Inaktiverad som standard |
Kanal 10 | Ja | Nej | Ja | Nej | Nej | Nej | Nej | Nej | Ja | Nej | Nej | Inaktiverad som standard |
Säker transport OS X 10.6 - 10.10 | Nej | Nej | Ja | Nej | Nej | Nej | Nej | Nej | Ja | Nej | Nej | Inaktiverad som standard |
Säker transport OS X 10.11 | Ja | Nej | Ja | Nej | Nej | Nej | Nej | Nej | Ja | Nej | Nej | Inaktiverad som standard |
wolfSSL | Ja | Ja | Ja | Nej | Nej | Nej | Nej | Nej | Ja | Nej | Ja | Inaktiverad som standard |
Erlang /OTP SSL-applikation | Ja | Nej | Ja | Nej | Nej | Nej | Nej | Nej | Inaktiverad som standard | Nej | Experimentell | Inaktivera som standard |
Genomförande | Blockchiffer med funktionssätt | Stream chiffer | Ingen | |||||||||
AES GCM |
AES CCM |
AES CBC |
Camellia GCM |
Camellia CBC |
ARIA GCM |
ARIA CBC |
SEED CBC |
3DES EDE CBC (osäker) |
GOST 28147-89 CNT (föreslagen) |
ChaCha20 - Poly1305 |
Null (osäker) |
- Anteckningar
Föråldrade algoritmer
Genomförande | Blockchiffer med funktionssätt | Stream chiffer | ||||
---|---|---|---|---|---|---|
IDEA CBC (osäker) |
DES CBC (osäker) |
DES -40 CBC (EXPORT, osäker) |
RC2 -40 CBC (EXPORT, osäker) |
RC4 -128 (osäker) |
RC4 -40 (EXPORT, osäker) |
|
Botan | Nej | Nej | Nej | Nej | Nej | Nej |
BoringSSL | Nej | Nej | Nej | Nej | Inaktiverad som standard vid kompilering | Nej |
BSAFE SSL-J | Nej | Inaktiverad som standard | Inaktiverad som standard | Nej | Inaktiverad som standard | Inaktiverad som standard |
cryptlib | Nej | Inaktiverad som standard vid kompilering | Nej | Nej | Inaktiverad som standard vid kompilering | Nej |
GnuTLS | Nej | Nej | Nej | Nej | Inaktiverad som standard | Nej |
JSSE | Nej | Inaktiverad som standard | Inaktiverad som standard | Nej | Inaktiverad som standard | Inaktiverad som standard |
LibreSSL | Ja | Ja | Nej | Nej | Ja | Nej |
MatrixSSL | Ja | Nej | Nej | Nej | Inaktiverad som standard | Nej |
Mbed TLS | Nej | Inaktiverad som standard vid kompilering | Nej | Nej | Inaktiverad som standard vid kompilering | Nej |
NSS | Ja | Inaktiverad som standard | Inaktiverad som standard | Inaktiverad som standard | Lägsta prioritet | Inaktiverad som standard |
OpenSSL | Inaktiverad som standard | Inaktiverad som standard | Nej | Nej | Inaktiverad som standard | Nej |
Kanal XP/2003 | Nej | Ja | Ja | Ja | Ja | Ja |
Kanal Vista/2008 | Nej | Inaktiverad som standard | Inaktiverad som standard | Inaktiverad som standard | Ja | Inaktiverad som standard |
Kanal 7/2008R2 | Nej | Inaktiverad som standard | Inaktiverad som standard | Inaktiverad som standard |
Lägsta prioritet kommer snart att inaktiveras |
Inaktiverad som standard |
Kanal 8/2012 | Nej | Inaktiverad som standard | Inaktiverad som standard | Inaktiverad som standard | Endast som reserv | Inaktiverad som standard |
Kanal 8.1/2012R2 | Nej | Inaktiverad som standard | Inaktiverad som standard | Inaktiverad som standard | Inaktiverad som standard | Inaktiverad som standard |
Kanal 10 | Nej | Inaktiverad som standard | Inaktiverad som standard | Inaktiverad som standard | Inaktiverad som standard | Inaktiverad som standard |
Säker transport OS X 10.6 | Ja | Ja | Ja | Ja | Ja | Ja |
Säker transport OS X 10.7 | Ja | Okänd | Okänd | Okänd | Ja | Okänd |
Säker transport OS X 10.8-10.9 | Ja | Inaktiverad som standard | Inaktiverad som standard | Inaktiverad som standard | Ja | Inaktiverad som standard |
Säker transport OS X 10.10-10.11 | Ja | Inaktiverad som standard | Inaktiverad som standard | Inaktiverad som standard | Lägsta prioritet | Inaktiverad som standard |
Säker transport macOS 10.12 | Ja | Inaktiverad som standard | Inaktiverad som standard | Inaktiverad som standard | Inaktiverad som standard | Inaktiverad som standard |
wolfSSL | Inaktiverad som standard | Nej | Nej | Nej | Inaktiverad som standard | Nej |
Erlang /OTP SSL-applikation | Nej | Inaktiverad som standard | Nej | Nej | Inaktiverad som standard | Nej |
Genomförande | Blockchiffer med funktionssätt | Stream chiffer | ||||
IDEA CBC (osäker) |
DES CBC (osäker) |
DES -40 CBC (EXPORT, osäker) |
RC2 -40 CBC (EXPORT, osäker) |
RC4 -128 (osäker) |
RC4 -40 (EXPORT, osäker) |
- Anteckningar
Elliptiska kurvor som stöds
Det här avsnittet listar de elliptiska kurvorna som stöds för varje implementering.
Definierade kurvor i RFC 8446 (för TLS 1.3) och RFC 8422, 7027 (för TLS 1.2 och tidigare)
tillämplig TLS-version | TLS 1.3 och tidigare | TLS 1.2 och tidigare | ||||||
---|---|---|---|---|---|---|---|---|
Genomförande |
secp256r1 prime256v1 NIST P-256 (0x0017, 23) |
secp384r1 NIST P-384 (0x0018, 24) |
secp521r1 NIST P-521 (0x0019, 25) |
X25519 (0x001D, 29) |
X448 (0x001E, 30) |
brainpoolP256r1 (26) |
brainpoolP384r1 (27) |
brainpoolP512r1 (28) |
Botan | Ja | Ja | Ja | Ja | Nej | Ja | Ja | Ja |
BoringSSL | Ja | Ja | Ja (inaktiverad som standard) | Ja | Nej | Nej | Nej | Nej |
BSAFE | Ja | Ja | Ja | Nej | Nej | Nej | Nej | Nej |
GnuTLS | Ja | Ja | Ja | Ja | Ja | Nej | Nej | Nej |
JSSE | Ja | Ja | Ja |
Ja x25519: JDK 13+ Ed25519:JDK 15+ |
Ja x448: JDK 13+ Ed448: JDK 15+ |
Nej | Nej | Nej |
LibreSSL | Ja | Ja | Ja | Ja | Nej | Ja | Ja | Ja |
MatrixSSL | Ja | Ja | Ja | Endast TLS 1.3 | Nej | Ja | Ja | Ja |
Mbed TLS | Ja | Ja | Ja | Endast primitiv | Endast primitiv | Ja | Ja | Ja |
NSS | Ja | Ja | Ja | Ja | Nej | Nej | Nej | Nej |
OpenSSL | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
Channel Vista/2008, 7/2008R2, 8/2012, 8.1/2012R2, 10 | Ja | Ja | Ja | Nej | Nej | Nej | Nej | Nej |
Säker transport | Ja | Ja | Ja | Nej | Nej | Nej | Nej | Nej |
wolfSSL | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
Erlang /OTP SSL-applikation | Ja | Ja | Ja | Nej | Nej | Ja | Ja | Ja |
Genomförande |
secp256r1 prime256v1 NIST P-256 (0x0017, 23) |
secp384r1 NIST P-384 (0x0018, 24) |
secp521r1 NIST P-521 (0x0019, 25) |
X25519 (0x001D, 29) |
X448 (0x001E, 30) |
brainpoolP256r1 (26) |
brainpoolP384r1 (27) |
brainpoolP512r1 (28) |
Föreslagna kurvor
Genomförande |
M221 Curve2213 |
E222 |
Kurva 1174 |
E382 |
M383 |
Kurva383187 |
Curve41417 Curve3617 |
M511 Curve511187 |
E521 |
---|---|---|---|---|---|---|---|---|---|
Botan | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
BoringSSL | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
BSAFE | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
GnuTLS | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
JSSE | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
LibreSSL | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
MatrixSSL | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
Mbed TLS | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
NSS | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
OpenSSL | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
Channel Vista/2008, 7/2008R2, 8/2012, 8.1/2012R2, 10 | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
Säker transport | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
wolfSSL | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
Erlang /OTP SSL-applikation | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
Genomförande |
M221 Curve2213 |
E222 | Kurva 1174 | E382 | M383 | Kurva383187 |
Curve41417 Curve3617 |
M511 Curve511187 |
E521 |
Föråldrade kurvor i RFC 8422
Genomförande |
sect163k1 NIST K-163 (1) |
sect163r1 (2) |
sect163r2 NIST B-163 (3) |
sect193r1 (4) |
sect193r2 (5) |
sect233k1 NIST K-233 (6) |
sect233r1 NIST B-233 (7) |
sect239k1 (8) |
sect283k1 NIST K-283 (9) |
sect283r1 NIST B-283 (10) |
sect409k1 NIST K-409 (11) |
sect409r1 NIST B-409 (12) |
sect571k1 NIST K-571 (13) |
sect571r1 NIST B-571 (14) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Botan | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
BoringSSL | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
BSAFE | Ja | Nej | Ja | Nej | Nej | Ja | Ja | Nej | Ja | Ja | Ja | Ja | Ja | Ja |
GnuTLS | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
JSSE | Anteckningar | Anteckningar | Anteckningar | Anteckningar | Anteckningar | Anteckningar | Anteckningar | Anteckningar | Anteckningar | Anteckningar | Anteckningar | Anteckningar | Anteckningar | Anteckningar |
LibreSSL | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
MatrixSSL | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
Mbed TLS | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
NSS | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
OpenSSL | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
Channel Vista/2008, 7/2008R2, 8/2012, 8.1/2012R2, 10 | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
Säker transport | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
wolfSSL | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
Erlang /OTP SSL-applikation | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
Genomförande |
sect163k1 NIST K-163 (1) |
sect163r1 (2) |
sect163r2 NIST B-163 (3) |
sect193r1 (4) |
sect193r2 (5) |
sect233k1 NIST K-233 (6) |
sect233r1 NIST B-233 (7) |
sect239k1 (8) |
sect283k1 NIST K-283 (9) |
sect283r1 NIST B-283 (10) |
sect409k1 NIST K-409 (11) |
sect409r1 NIST B-409 (12) |
sect571k1 NIST K-571 (13) |
sect571r1 NIST B-571 (14) |
Genomförande |
secp160k1 (15) |
secp160r1 (16) |
secp160r2 (17) |
secp192k1 (18) |
secp192r1 prime192v1 NIST P-192 (19) |
secp224k1 (20) |
secp224r1 NIST P-244 (21) |
secp256k1 (22) |
godtyckliga primkurvor (0xFF01) |
godtyckliga char2-kurvor (0xFF02) |
---|---|---|---|---|---|---|---|---|---|---|
Botan | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
BoringSSL | Nej | Nej | Nej | Nej | Nej | Nej | Ja | Nej | Nej | Nej |
BSAFE | Nej | Nej | Nej | Nej | Ja | Nej | Ja | Nej | Nej | Nej |
GnuTLS | Nej | Nej | Nej | Nej | Ja | Nej | Ja | Nej | Nej | Nej |
JSSE | Anteckningar | Anteckningar | Anteckningar | Anteckningar | Anteckningar | Anteckningar | Anteckningar | Anteckningar | Nej | Nej |
LibreSSL | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Nej | Nej |
MatrixSSL | Nej | Nej | Nej | Nej | Ja | Nej | Ja | Nej | Nej | Nej |
Mbed TLS | Nej | Nej | Nej | Ja | Ja | Ja | Ja | Ja | Nej | Nej |
NSS | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Nej | Nej |
OpenSSL | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Nej | Nej |
Kanal Vista/2008, 7/2008R2, 8/2012, 8.1/2012R2, 10 | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej |
Säker transport | Nej | Nej | Nej | Nej | Ja | Nej | Nej | Nej | Nej | Nej |
wolfSSL | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Nej | Nej |
Erlang /OTP SSL-applikation | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Nej | Nej |
Genomförande |
secp160k1 (15) |
secp160r1 (16) |
secp160r2 (17) |
secp192k1 (18) |
secp192r1 prime192v1 NIST P-192 (19) |
secp224k1 (20) |
secp224r1 NIST P-244 (21) |
secp256k1 (22) |
godtyckliga primkurvor (0xFF01) |
godtyckliga char2-kurvor (0xFF02) |
- Anteckningar
Dataintegritet
Genomförande | HMAC - MD5 | HMAC - SHA1 | HMAC - SHA256/384 | AEAD | GOST 28147-89 IMIT | GOST R 34,11-94 |
---|---|---|---|---|---|---|
Botan | Nej | Ja | Ja | Ja | Nej | Nej |
BSAFE | Ja | Ja | Ja | Ja | Nej | Nej |
cryptlib | Ja | Ja | Ja | Ja | Nej | Nej |
GnuTLS | Ja | Ja | Ja | Ja | Nej | Nej |
JSSE | Inaktiverad som standard | Ja | Ja | Ja | Nej | Nej |
LibreSSL | Ja | Ja | Ja | Ja | Ja | Ja |
MatrixSSL | Ja | Ja | Ja | Ja | Nej | Nej |
Mbed TLS | Ja | Ja | Ja | Ja | Nej | Nej |
NSS | Ja | Ja | Ja | Ja | Nej | Nej |
OpenSSL | Ja | Ja | Ja | Ja | Ja | Ja |
Kanal XP/2003, Vista/2008 | Ja | Ja | XP SP3, 2003 SP2 via snabbkorrigering | Nej | Nej | Nej |
Kanal 7/2008R2, 8/2012, 8.1/2012R2 | Ja | Ja | Ja | förutom ECDHE_RSA | Nej | Nej |
Kanal 10 | Ja | Ja | Ja | Ja | Nej | Nej |
Säker transport | Ja | Ja | Ja | Ja | Nej | Nej |
wolfSSL | Ja | Ja | Ja | Ja | Nej | Nej |
Erlang /OTP SSL-applikation | Ja | Ja | Ja | Ja | Nej | Nej |
Genomförande | HMAC-MD5 | HMAC-SHA1 | HMAC-SHA256/384 | AEAD | GOST 28147-89 IMIT | GOST R 34,11-94 |
Kompression
Observera att CRIME-säkerhetsutnyttjandet drar fördel av TLS-komprimering, så konservativa implementeringar möjliggör inte komprimering på TLS-nivå. HTTP-komprimering är inte relaterat till och påverkas inte av detta utnyttjande, men utnyttjas av den relaterade BREACH-attacken .
Genomförande |
DEFLATE (osäkert) |
---|---|
Botan | Nej |
BSAFE | Nej |
cryptlib | Nej |
GnuTLS | Inaktiverad som standard |
JSSE | Nej |
LibreSSL | Nej |
MatrixSSL | Inaktiverad som standard |
Mbed TLS | Inaktiverad som standard |
NSS | Inaktiverad som standard |
OpenSSL | Inaktiverad som standard |
Kanal | Nej |
Säker transport | Nej |
wolfSSL | Inaktiverad som standard |
Erlang /OTP SSL-applikation | Nej |
Genomförande | DEFLATE |
Tillägg
I det här avsnittet listas de tillägg som varje implementering stöder. Observera att tillägget Secure Renegotiation är avgörande för HTTPS-klientsäkerheten [ citat behövs ] . TLS-klienter som inte implementerar det är sårbara för attacker, oavsett om klienten implementerar TLS-omförhandling.
Genomförande | Säker omförhandling |
Servernamnsindikation |
ALPN |
Begäran om certifikatstatus |
ÖppnaPGP |
Kompletterande data |
Session biljett |
Exportör av nyckelmaterial |
Maximal fragmentlängd |
Trunkerad HMAC |
Kryptera-sedan-MAC |
TLS reserv SCSV |
Utökad Master Secret |
ClientHej Padding |
Rå offentliga nycklar |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Botan | Ja | Ja | Ja | Nej | Nej | Nej | Ja | Ja | Ja | Nej | Ja | Ja | Ja | Nej | Okänd |
BSAFE SSL-J | Ja | Ja | Nej | Ja | Nej | Nej | Nej | Nej | Ja | Nej | Nej | Nej | Ja | Nej | Nej |
cryptlib | Ja | Ja | Nej | Nej | Nej | Ja | Nej | Nej | Nej | Nej | Ja | Ja | Ja | Nej | Okänd |
GnuTLS | Ja | Ja | Ja | Ja | Nej | Ja | Ja | Ja | Ja | Nej | Ja | Ja | Ja | Ja | Ja |
JSSE | Ja | Ja | Ja | Ja | Nej | Nej | Ja | Nej | Ja | Nej | Nej | Nej | Ja | Nej | Nej |
LibreSSL | Ja | Ja | Ja | Ja | Nej | Nej? | Ja | Ja? | Nej | Nej | Nej | Endast serversidan | Nej | Ja | Nej |
MatrixSSL | Ja | Ja | Ja | Ja | Nej | Nej | Ja | Nej | Ja | Ja | Nej | Ja | Ja | Nej | Okänd |
Mbed TLS | Ja | Ja | Ja | Nej | Nej | Nej | Ja | Nej | Ja | Inaktiverad som standard | Ja | Ja | Ja | Nej | Nej |
NSS | Ja | Ja | Ja | Ja | Nej | Nej | Ja | Ja | Nej | Nej | Nej | Ja | Ja | Ja | Okänd |
OpenSSL | Ja | Ja | Ja | Ja | Nej | Nej? | Ja | Ja | Ja | Nej | Ja | Ja | Ja | Ja | Nej |
Kanal XP/2003 | Nej | Nej | Nej | Nej | Nej | Ja | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Okänd |
Kanal Vista/2008 | Ja | Ja | Nej | Nej | Nej | Ja | Nej | Nej | Nej | Nej | Nej | Nej | Ja | Nej | Okänd |
Kanal 7/2008R2 | Ja | Ja | Nej | Ja | Nej | Ja | Nej | Nej | Nej | Nej | Nej | Nej | Ja | Nej | Okänd |
Kanal 8/2012 | Ja | Ja | Nej | Ja | Nej | Ja | Endast klientsidan | Nej | Nej | Nej | Nej | Nej | Ja | Nej | Okänd |
Kanal 8.1/2012R2, 10 | Ja | Ja | Ja | Ja | Nej | Ja | Ja | Nej | Nej | Nej | Nej | Nej | Ja | Nej | Okänd |
Säker transport | Ja | Ja | Okänd | Nej | Nej | Ja | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Okänd |
wolfSSL | Ja | Ja | Ja | Ja | Nej | Nej | Ja | Nej | Ja | Ja | Ja | Nej | Ja | Nej | Okänd |
Erlang/OTP SSL-applikation | Ja | Ja | Ja | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Ja | Nej | Nej | Okänd |
Genomförande | Säker omförhandling | Servernamnsindikation | ALPN | Begäran om certifikatstatus | ÖppnaPGP | Kompletterande data | Session biljett | Exportör av nyckelmaterial | Maximal fragmentlängd | Trunkerad HMAC | Kryptera-sedan-MAC | TLS reserv SCSV | Utökad Master Secret | ClientHej Padding | Rå offentliga nycklar |
Assisterad kryptografi
Det här avsnittet listar den kända förmågan hos en implementering att dra fördel av CPU-instruktionsuppsättningar som optimerar kryptering, eller använder systemspecifika enheter som tillåter åtkomst till underliggande kryptografisk hårdvara för acceleration eller för dataseparering.
Genomförande | PKCS #11-enhet | Intel AES-NI | VIA PadLock | ARMv8-A | Intel SGX | Intel QAT | Intel SHA | NXP CAAM |
---|---|---|---|---|---|---|---|---|
Botan | Ja | Ja | Nej | Ja | Nej | Nej | Nej | |
BSAFE SSL-J | Ja | Ja | Nej | Ja | Nej | Nej | Ja | Nej |
cryptlib | Ja | Ja | Ja | Nej | Nej | |||
Krypto++ | Ja | Nej | Ja | |||||
GnuTLS | Ja | Ja | Ja | Ja | Nej | Nej | Ja | |
JSSE | Ja | Ja | Nej | Nej | Nej | Nej | ||
LibreSSL | Nej | Ja | Ja | Nej | Nej | |||
MatrixSSL | Ja | Ja | Nej | Ja | Nej | Nej | ||
Mbed TLS | Ja | Ja | Ja | Nej | Nej | Nej | ||
NSS | Ja | Ja | Nej | Nej | Nej | Nej | ||
OpenSSL | Ja | Ja | Ja | Ja | Nej | Ja | Partiell | |
Kanal | Nej | Ja | Nej | Nej | Nej | Nej | ||
Säker transport | Nej | Ja | Nej | Ja | Nej | Nej | ||
wolfSSL | Ja | Ja | Nej | Ja | Ja | Ja | Ja | |
Genomförande | PKCS #11-enhet | Intel AES-NI | VIA PadLock | ARMv8-A | Intel SGX | Intel QAT | Intel SHA | NXP CAAM |
Systemspecifika backends
Det här avsnittet listar en implementerings förmåga att dra fördel av de tillgängliga operativsystemspecifika backends, eller till och med de backends som tillhandahålls av en annan implementering.
Genomförande | /dev/crypto | af_alg | Windows CSP | CommonCrypto | OpenSSL-motor |
---|---|---|---|---|---|
Botan | Nej | Nej | Nej | Nej | Partiell |
BSAFE | Nej | Nej | Nej | Nej | Nej |
cryptlib | Nej | Nej | Nej | Nej | Nej |
GnuTLS | Ja | Ja | Nej | Nej | Nej |
JSSE | Nej | Nej | Ja | Nej | Nej |
LibreSSL | Nej | Nej | Nej | Nej | Nej |
MatrixSSL | Nej | Nej | Nej | Ja | Ja |
Mbed TLS | Nej | Nej | Nej | Nej | Nej |
NSS | Nej | Nej | Nej | Nej | Nej |
OpenSSL | Ja | Ja | Nej | Nej | Ja |
Kanal | Nej | Nej | Ja | Nej | Nej |
Säker transport | Nej | Nej | Nej | Ja | Nej |
wolfSSL | Ja | Ja | Partiell | Nej | Ja |
Erlang /OTP SSL-applikation | Nej | Nej | Nej | Nej | Ja |
Genomförande | /dev/crypto | af_alg | Windows CSP | CommonCrypto | OpenSSL-motor |
Stöd för kryptografisk modul/token
Genomförande | TPM- stöd | Stöd för maskinvarutoken | Objekt identifierade via |
---|---|---|---|
Botan | Partiell | PKCS11 | |
BSAFE SSL-J | Nej | Nej | |
cryptlib | Nej | PKCS11 | Användardefinierad etikett |
GnuTLS | Ja | PKCS11 | RFC 7512 PKCS #11 webbadresser |
JSSE | Nej |
PKCS11 Java Cryptography Architecture , Java Cryptography Extension |
|
LibreSSL | Ja | PKCS11 (via tredje parts modul) | Anpassad metod |
MatrixSSL | Nej | PKCS11 | |
Mbed TLS | Nej | PKCS11 (via libpkcs11-helper) eller standardkrokar | Anpassad metod |
NSS | Nej | PKCS11 | |
OpenSSL | Ja | PKCS11 (via tredje parts modul) | RFC 7512 PKCS #11 webbadresser |
Kanal | Nej | Microsoft CryptoAPI | UUID, användardefinierad etikett |
Säker transport | |||
wolfSSL | Ja | PKCS11 | |
Genomförande | TPM-stöd | Stöd för maskinvarutoken | Objekt identifierade via |
Kodberoenden
Genomförande | Beroenden | Valfria beroenden |
---|---|---|
Botan | C++11 |
sqlite zlib (komprimering) bzip2 (komprimering) liblzma (komprimering) boost openssl (krypto backend) byxor (TPM) |
GnuTLS |
libc nässlor gmp |
zlib (kompression) p11-kit (PKCS #11) byxor (TPM) libunbound (DANE) |
JSSE | Java | |
MatrixSSL | ingen | zlib (komprimering) |
MatrixSSL-öppen | libc eller newlib | |
Mbed TLS | libc |
libpkcs11-helper (PKCS #11) zlib (komprimering) |
NSS |
libc libnspr4 libsoftokn3 libplc4 libplds4 |
zlib (komprimering) |
OpenSSL | libc | zlib (komprimering) |
wolfSSL | Ingen |
libc zlib (komprimering) |
Erlang /OTP ssl-applikation | libcrypto (från OpenSSL), Erlang/OTP och dess public_key, crypto och asn1 applikationer | Erlang/OTP -inets (http-hämtning av CRL) |
Genomförande | Beroenden | Valfria beroenden |
Utvecklingsmiljö
Genomförande | Namnutrymme | Bygg verktyg | API-manual | Krypto back-end | OpenSSL-kompatibilitetslager [ förtydliga ] |
---|---|---|---|---|---|
Botan | Botan::TLS | Makefile | Sfinx | Ingår (pluggbar) | Nej |
Hoppborg | org.hoppborg | Java utvecklingsmiljö | Programmerares referensmanual (PDF) | Ingår (pluggbar) | Nej |
BSAFE SSL-J | com.rsa.asn1
|
Java klassladdare | Javadoc, utvecklarguide (HTML) | Ingår | Nej |
cryptlib | krypta* | makefile, MSVC-projektarbetsytor | Programmerares referensmanual (PDF), handbok för arkitekturdesign (PDF) | Ingår (monolitisk) | Nej |
GnuTLS | gnutls_* | Autoconf, automake, libtool | Manual och API-referens (HTML, PDF) | Extern, libnettle | Ja (begränsat) |
JSSE | javax.net.ssl sun.security.ssl |
Makefile | API-referens (HTML) + |
Java Cryptography Architecture , Java Cryptography Extension |
Nej |
MatrixSSL | matrixSsl_* ps* |
Makefile, MSVC-projektarbetsytor, Xcode-projekt för OS X och iOS | API-referens (PDF), Integrationsguide | Ingår (pluggbar) | Ja (underuppsättning: SSL_read, SSL_write, etc.) |
Mbed TLS | mbedtls_ssl_*
|
Makefile, CMake , MSVC-projektarbetsytor, yotta | API-referens + högnivå- och modulnivådokumentation (HTML) | Ingår (monolitisk) | Nej |
NSS | CERT_*
|
Makefile | Manuell (HTML) | Ingår, PKCS#11-baserad | Ja (separat paket som heter nss_compat_ossl) |
OpenSSL | SSL_*
|
Makefile | Man-sidor | Ingår (monolitisk) | — |
wolfSSL | wolfSSL_*
|
Autoconf, automake, libtool, MSVC-projektarbetsytor, XCode-projekt, CodeWarrior-projekt, MPLAB X-projekt, Keil, IAR, Clang, GCC, e2Studio | Manual och API-referens (HTML, PDF) | Ingår (monolitisk) | Ja (cirka 60 % av API) |
Genomförande | Namnutrymme | Bygg verktyg | API-manual | Krypto back-end | OpenSSL-kompatibilitetslager |
Portabilitetsproblem
Genomförande | Plattformskrav | Nätverkskrav | Trådsäkerhet | Slumpmässigt frö | Kan korskompilera | Inget OS (bar metall) | Operativsystem som stöds |
---|---|---|---|---|---|---|---|
Botan | C++11 | Ingen | Trådsäker | Plattformsberoende | Ja | Windows, Linux, macOS, Android, iOS, FreeBSD, OpenBSD, Solaris, AIX, HP-UX, QNX, BeOS, IncludeOS | |
BSAFE SSL-J | Java | Java SE nätverkskomponenter | Trådsäker | Beror på java.security.SecureRandom | Ja | Nej | FreeBSD, Linux, macOS, Microsoft Windows, Android, AIX, Solaris |
cryptlib | C89 | POSIX send() och recv(). API för att tillhandahålla din egen ersättare | Trådsäker | Plattformsberoende, inklusive hårdvarukällor | Ja | Ja | AMX, BeOS, ChorusOS, DOS, eCos, FreeRTOS/OpenRTOS, uItron, MVS, OS/2, Palm OS, QNX Neutrino, RTEMS, Tandem NonStop, ThreadX, uC/OS II, Unix (AIX, FreeBSD, HPUX, Linux, macOS, Solaris, etc.), VDK, VM/CMS, VxWorks, Win16, Win32, Win64, WinCE/PocketPC/etc, XMK |
GnuTLS | C89 | POSIX send() och recv(). API för att tillhandahålla din egen ersättare. | Trådsäker, behöver anpassade mutex-krokar om varken POSIX- eller Windows-trådar är tillgängliga. | Plattformsberoende | Ja | Nej | Vanligtvis inkluderar alla POSIX-plattformar eller Windows, ofta testade plattformar Linux, Win32/64, macOS, Solaris, OpenWRT, FreeBSD, NetBSD, OpenBSD. |
JSSE | Java | Java SE nätverkskomponenter | Trådsäker | Beror på java.security.SecureRandom | Ja | Java-baserad, plattformsoberoende | |
MatrixSSL | C89 | Ingen | Trådsäker | Plattformsberoende | Ja | Ja | Allt |
Mbed TLS | C89 | POSIX read() och write(). API för att tillhandahålla din egen ersättare. | Trådlager tillgängligt (POSIX eller egna krokar) | Slumpmässigt frö satt genom entropipool | Ja | Ja | Känd för att fungera på: Win32/64, Linux, macOS, Solaris, FreeBSD, NetBSD, OpenBSD, OpenWRT, iPhone (iOS), Xbox, Android, eCos, SeggerOS |
NSS | C89, NSPR | NSPR PR_Send() och PR_Recv(). API för att tillhandahålla din egen ersättare. | Trådsäker | Plattformsberoende | Ja (men krångligt) | Nej | AIX, Android, FreeBSD, NetBSD, OpenBSD, BeOS, HP-UX, IRIX, Linux, macOS, OS/2, Solaris, OpenVMS, Amiga DE, Windows, WinCE, Sony PlayStation |
OpenSSL | C89 | Ingen | Trådsäker | Plattformsberoende | Ja | Nej | Unix-liknande, DOS (med djgpp), Windows, OpenVMS, NetWare, eCos |
wolfSSL | C89 | POSIX send() och recv(). API för att tillhandahålla din egen ersättare. | Trådsäker | Slumpmässigt frö satt genom wolfCrypt | Ja | Ja | Win32/64, Linux, macOS, Solaris, ThreadX, VxWorks, FreeBSD, NetBSD, OpenBSD, embedded Linux, Yocto Project, OpenEmbedded, WinCE, Haiku, OpenWRT, iPhone (iOS), Android, Nintendo Wii och Gamecube genom DevKitPro, QNX, MontaVista, NonStop, TRON/ITRON/µITRON, eCos, Micrium µC/OS-III, FreeRTOS, SafeRTOS, NXP/Freescale MQX, Nucleus, TinyOS, HP/UX, AIX, ARC MQX, Keil RTX, TI-RTOS, uTasker embOS, INtime, Mbed, uT-Kernel, RIOT, CMSIS-RTOS, FROSTED, Green Hills INTEGRITY, TOPPERS, PetaLinux, Apache mynewt |
Genomförande | Plattformskrav | Nätverkskrav | Trådsäkerhet | Slumpmässigt frö | Kan korskompilera | Inget OS (bar metall) | Operativsystem som stöds |