TLS的应用对比
安全传输层协议 (TLS) 保障网络间的通信安全。本文比较几种最常用的TLS应用库。市面上存在许多种自由开源的TLS应用软件。
所有类目的比较均使用下列概述部分中列出软件的稳定版本。该比较仅限于与TLS协议直接相关的功能。
概述
编辑应用软件 | 开发商 | 开源 | 软件证书 | 版权拥有 | 编辑语言 | 最新版本,日期 | 源于 |
---|---|---|---|---|---|---|---|
Botan | Jack Lloyd | 是 | Simplified BSD License | Jack Lloyd | C++ | Template:Latest stable software release/Botan | 美国 (Vermont) |
GnuTLS | GnuTLS项目 | 是 | GNU LGPLv2.1+ | 自由软件基金会 | C | 3.7.8(2022年9月27日[1])[±] | 欧洲 (希腊和瑞典) |
LibreSSL | OpenBSD Project | 是 | Apache License 1.0, 4-clause BSD License, ISC License, and some are public domain | Eric Young, Tim Hudson, Sun, OpenSSL project, OpenBSD Project, and others | C, 汇编语言 | 3.6.1(2022年10月31日[2])[±] | 加拿大 |
MatrixSSL[3] | PeerSec Networks | 是 | GNU GPLv2+ and commercial license | PeerSec Networks | C | 4.5.1(2022年7月29日[4])[±] | 美国 |
Mbed TLS (previously PolarSSL) | Arm | 是 | Apache License 2.0, GNU GPLv2+ and commercial license | Arm Holdings | C | EU (Netherlands) | |
Network Security Services (NSS) | Mozilla, AOL, Red Hat, Sun, Oracle, Google and others | 是 | MPL 2.0 | NSS contributors | C, 汇编语言 | Template:Latest stable software release/Network Security Services | US |
OpenSSL | OpenSSL 项目 | 是 | OpenSSL-SSLeay dual-license | Eric Young, Tim Hudson, Sun, OpenSSL 项目, 及其他 | C、汇编语言 | 3.0.7(2022年11月1日[6])[±] | 澳大利亚/欧洲 |
wolfSSL (曾名为 CyaSSL) | wolfSSL[7] | 是 | GNU GPLv2+ and commercial license | wolfSSL 公司.[8] | C | 5.4.0(2022年7月11日[9][10])[±] | 美国 |
协议支持
编辑TLS协议存在几种版本。 SSL 2.0是一个被弃用的[11] 协议版本,具有明显的缺陷。 SSL 3.0(1996)和TLS 1.0(1999)是具有两个CBC-填充弱点的版本——在2001年由Serge Vaudenay解析.[12] 。 TLS 1.1(2006)通过将CBC块密码切换到随机初始化矢量(IV)解决了其中一个问题,RFC7366[13]强调了 更严重的mac-pad-encrypt使用问题而不是使pad-mac-encrypt更安全的问题。
在2011年底,一种用于SSL 3.0和TLS 1.0的解决方法,基本等同于TLS 1.1的随机的IV被很多应用软件广泛采用[14] 。所以从安全角度来看,所有现有TLS 1.0,1.1和1.2版本在2030年前均在基本协议中提供相同的强度协议并适用于128位,据 NIST SP800-57。在2014年,SSL 3.0的POODLE漏洞被发现,其利用在CBCd的已知漏洞,以及浏览器中不安全的回退协商。[15]
TLS 1.2(2008)是最新发布的基本协议,引入了一种用于识别数字签名的散列方法。虽然在SSL 3.0保守选择(rsa,sha1 + md5)上允许将来使用更强大的散列函数进行数字签名(rsa,sha256 / sha384 / sha512),但TLS 1.2协议不经意间变化并大大削弱了默认数字签名并提供(rsa,sha1)甚至(rsa,md5)。[16]
数据报传输层安全性(DTLS或数据报TLS)1.0是针对面向数据包的传输层的TLS 1.1修改,其中必须容忍数据包丢失和数据包重新排序。基于TLS 1.2的修订版DTLS 1.2于2012年1月发布[17]
在SSL 2.0和SSL 3.0中存在已知的漏洞。除了可预测的IV(存在简单的解决方法)之外,所有当前已知的漏洞都会影响所有版本的TLS 1.0 / 1.1 / 1.2。[18]
应用软件 | SSL 2.0 (不安全)[19] | SSL 3.0 (不安全)[20] | TLS 1.0[21] | TLS 1.1[22] | TLS 1.2[23] | TLS 1.3 [24][25] |
DTLS 1.0[26] | DTLS 1.2[17] |
---|---|---|---|---|---|---|---|---|
Botan | No | No[27] | Yes | Yes | 是 | Yes | 是 | |
GnuTLS | 否[a] | 默认禁止[28] | 是 | 是 | 是 | 是 | 是 | 是 |
MatrixSSL | No | Disabled by default at compile time[29] | Yes | Yes | 是 | 是 | Yes | 是 |
Mbed TLS | No | No[30] | No[30] | No[30] | 是 | Yes (experimental) |
Yes[31] | 是[31] |
NSS | No[a] | Disabled by default[32] | Yes | Yes[33] | 是[34] | 是[35] | Yes[33] | 是[36] |
LibreSSL | No[37] | No[38] | Yes | Yes | 是 | 是 | Yes | 是[39] |
OpenSSL | 否[40] | 默认禁止 | 是 | 是 | 是 | 是 | 是 | 是 |
wolfSSL | 否 | 默认禁止[41] | 是 | 是 | 是 | 是 | 是 | 是 |
NSA Suite B 密码学
编辑NSA Suite B 密码学 (RFC 6460) 的必须部分:
- 高级加密标准 (AES), 密钥大小为128和256位。对于业务流量,AES应与低带宽流量的计数器模式(CTR)或高带宽流量的伽罗瓦/计数器模式(GCM)操作模式一起使用(请参阅分块密码模式操作) - 对称加密
- 椭圆曲线数字签名算法(ECDSA) - 数字签名
- 椭圆曲线 Diffie-Hellman(ECDH) - 密钥协议
- 安全散列算法2 (SHA-256 和 SHA-384) — 消息摘要
根据CNSSP-15,256位椭圆曲线(FIPS 186-2中),SHA-256和AES 128位密钥足以保护机密信息达到Secret级别,而384位椭圆曲线(在FIPS 186-2中指定),SHA-384和带有256位密钥的AES是保护最高机密信息所必需的。
应用软件 | TLS 1.2 Suite B |
---|---|
Botan | 是 |
GnuTLS | 是 |
LibreSSL | 是 |
MatrixSSL | 是 |
Mbed TLS | 是 |
NSS | 否[45] |
OpenSSL | 是[46] |
wolfSSL | 是 |
证书
编辑请注意,某些认证已受到实际参与研发人的严重负面批评。[47]
应用软件 | FIPS 140-1, FIPS 140-2[48] | 通用标准 | Embedded FIPS Solution | |
---|---|---|---|---|
第一层面 | Level 2Template:Disputed inline | |||
Botan[49] | ||||
GnuTLS[50] | 红帽企业Linux GnuTLS加密模块(#2780) | |||
LibreSSL[37] | no support | |||
MatrixSSL[51] | SafeZone FIPS Cryptographic Module: 1.1 (#2389) | |||
Mbed TLS[52] | ||||
NSS[53] | Network Security Services: 3.2.2 (#247) Network Security Services Cryptographic Module: 3.11.4 (#815), 3.12.4 (#1278), 3.12.9.1 (#1837) |
Netscape Security Module: 1 (#7[notes 1]), 1.01 (#47[notes 2]) Network Security Services: 3.2.2 (#248[notes 3]) Network Security Services Cryptographic Module: 3.11.4 (#814[notes 4]), 3.12.4 (#1279, #1280[notes 5]) |
||
OpenSSL[54] | OpenSSL FIPS 对象模块: 1.0 (#624), 1.1.1 (#733), 1.1.2 (#918), 1.2, 1.2.1, 1.2.2, 1.2.3 or 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 or 2.0.8 (#1747) |
|||
wolfSSL[55] | wolfCrypt FIPS 模块: 3.6.0 (#2425) 已验证的操作环境详见于NIST 证书 for validated Operating Environments |
是 |
- ^ with Sun Sparc 5 w/ Sun Solaris v 2.4SE (ITSEC-rated)
- ^ with Sun Ultra-5 w/ Sun Trusted Solaris version 2.5.1 (ITSEC-rated)
- ^ with Solaris v8.0 with AdminSuite 3.0.1 as specified in UK IT SEC CC Report No. P148 EAL4 on a SUN SPARC Ultra-1
- ^ with these platforms; Red Hat Enterprise Linux Version 4 Update 1 AS on IBM xSeries 336 with Intel Xeon CPU, Trusted Solaris 8 4/01 on Sun Blade 2500 Workstation with UltraSPARC IIIi CPU
- ^ with these platforms; Red Hat Enterprise Linux v5 running on an IBM System x3550, Red Hat Enterprise Linux v5 running on an HP ProLiant DL145, Sun Solaris 10 5/08 running on a Sun SunBlade 2000 workstation, Sun Solaris 10 5/08 running on a Sun W2100z workstation
密钥交换算法(仅限于证书)
编辑本节列出了在不同应用软件中中可用的证书验证功能。
应用软件 | RSA[23] | RSA-EXPORT (不安全)[23] | DHE-RSA (forward secrecy)[23] | DHE-DSS (forward secrecy)[23] | ECDH-ECDSA[56] | ECDHE-ECDSA (forward secrecy)[56] | ECDH-RSA[56] | ECDHE-RSA (forward secrecy)[56] | GOST R 34.10-94, 34.10-2001[57] |
---|---|---|---|---|---|---|---|---|---|
Botan | 默认禁止 | 否 | 是 | 默认禁止 | 否 | 是 | 否 | 是 | 否 |
GnuTLS | 是 | 否 | 是 | 默认禁止[28] | 否 | 是 | 否 | 是 | 否 |
LibreSSL | 是 | 否[37] | 是 | 是 | 是 | 是 | 是 | 是 | Yes[58] |
MatrixSSL | 是 | 否 | 是 | 否 | 是 | 是 | 是 | 是 | 否 |
Mbed TLS | 是 | 否 | 是 | 否 | 是 | 是 | 是 | 是 | 否 |
NSS | Yes | 默认禁止 | 是[59] | 是 | 是 | 是 | 是 | 是 | 否[60][61] |
OpenSSL | 是 | 否[40] | 是 | 默认禁止[40] | 是 | 是 | 是 | 是 | 是[62] |
wolfSSL | 是 | 否 | 是 | 否 | 是 | 是 | 是 | 是 | 否 |
密钥交换算法(备选密钥交换)
编辑应用软件 | SRP[63] | SRP-DSS[63] | SRP-RSA[63] | PSK-RSA[64] | PSK[64] | DHE-PSK (前向保密)[64] | ECDHE-PSK (前向保密)[65] | KRB5[66] | DH-ANON[23] (不安全) | ECDH-ANON[56] (不安全) |
---|---|---|---|---|---|---|---|---|---|---|
Botan | 是 | 是 | 是 | 否 | 是 | 是 | 是 | 否 | 默认禁止 | 默认禁止 |
GnuTLS | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 默认禁止 | 默认禁止 |
LibreSSL | 否[67] | 否[67] | 否[67] | 否 | 否 | 否 | 否 | 否 | 是 | 是 |
MatrixSSL | 否 | 否 | 否 | 是 | 是 | 是 | 否 | 否 | 默认禁止 | 否 |
Mbed TLS | 否 | 否 | 否 | 是 | 是 | 是 | 是 | 否 | 否 | 否 |
NSS | 否[68] | 否[68] | 否[68] | 否[69] | 否[69] | 否[69] | 否[69] | 否 | Client side only, disabled by default[70] | 默认禁止[71] |
OpenSSL | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是[72] | 默认禁止[73] | 默认禁止[73] |
wolfSSL | 是 | 是 | 是 | 是 | 是 | 是 | 是 [74] | 是 | 否 | 否 |
证书验证算法
编辑应用软件 | 应用程序定义 | PKIX path validation[75] | CRL[76] | OCSP[77] | DANE (DNSSEC)[78] | 首用信任 (TOFU) |
---|---|---|---|---|---|---|
Botan | 是 | 是 | 是 | 是 | 否 | 否 |
GnuTLS | 是 | 是 | 是 | 是 | 是 | 是 |
LibreSSL | 是 | 是 | 是 | 是 | 否 | 否 |
MatrixSSL | 是 | 是 | 是 | 是[79] | 否 | 否 |
Mbed TLS | 是 | 是 | 是 | 否[80] | 否 | 否 |
NSS | 是 | 是 | 是 | 是 | 否[81] | 否 |
OpenSSL | 是 | 是 | 是 | 是 | 是 | 否 |
wolfSSL | 是 | 是 | 是 | 是 | 否 | 否 |
加密算法
编辑应用软件 | 分组密码 的 操作模式 | 流密码 | None | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
AES GCM [82] |
AES CCM [83] |
AES CBC | Camellia GCM [84] |
Camellia CBC [85] |
ARIA GCM [86] |
ARIA CBC [86] |
SEED CBC [87] |
3DES EDE CBC (不安全)[88] |
GOST 28147-89 CNT (提出) [57][n 1] |
ChaCha20-Poly1305 [89] |
Null (insecure) [n 2] | |
Botan | 是 | Yes | Yes | 是 | 是 | No | No | 默认禁止 | 默认禁止 | No | 是[90] | Not implemented |
GnuTLS | 是 | yes[28] | 是 | 是 | 是 | 否 | 否 | 否 | 默认禁止[91] | 否 | 是[92] | 默认禁止 |
LibreSSL | 是[37] | No | 是 | 否 | 是[58] | 否 | 否 | 否[37] | 是 | 是[58] | 是[37] | 默认禁止 |
MatrixSSL | 是 | 否 | 是 | 否 | 否 | 否 | 否 | 是 | 默认禁止 | 否 | 是[93] | 默认禁止 |
Mbed TLS | 是 | 是 [94] | 是 | 是 | 是 | 是[95] | 是[95] | 否 | 否[30] | 否 | 是[96] | Disabled by default at compile time |
NSS | 是[97] | 否 | 是 | 否[98][n 3] | 是[99] | 否 | 否 | 是[100] | 是 | 否[60][61] | 是[101] | 默认禁止 |
OpenSSL | 是[102] | 默认禁止[40] | 是 | 否 | 默认禁止[40] | 默认禁止 | 否 | 默认禁止[40] | 默认禁止[40] | 是[62] | 是[40] | 默认禁止 |
wolfSSL | 是 | 是 | 是 | 否 | 是 | 否 | 否 | 否 | 是 | 否 | 是 | 默认禁止 |
废弃算法
编辑应用软件 | 分组密码 的 操作模式 | 流密码 | ||||
---|---|---|---|---|---|---|
IDEA CBC [n 4](不安全)[104] |
DES CBC (不安全) [n 4] |
DES-40 CBC (EXPORT, 不安全) [n 5] |
RC2-40 CBC (EXPORT, 不安全) [n 5] |
RC4-128 (不安全) [n 6] |
RC4-40 (EXPORT, 不安全) [n 7][n 5] | |
Botan | 否 | 否 | 否 | 否 | No[105] | 否 |
GnuTLS | 否 | 否 | 否 | 否 | 默认禁止[28] | 否 |
LibreSSL | 是 | 是 | No[37] | No[37] | Yes | No[37] |
MatrixSSL | 是 | No | No | No | 默认禁止 | No |
Mbed TLS | 否 | Disabled by default at compile time | 否 | No | Disabled by default at compile time[31] | No |
NSS | 是 | 默认禁止 | 默认禁止 | 默认禁止 | Lowest priority[106][107] | 默认禁止 |
OpenSSL | 默认禁止[40] | 默认禁止 | 否[40] | 否[40] | 默认禁止 | 否[40] |
wolfSSL | 默认禁止[108] | 否 | 否 | 否 | 默认禁止 | 否 |
支持的椭圆曲线
编辑在 RFC 8446 (for TLS 1.3) 和 RFC 8422, 7027 (for TLS 1.2 and earlier) 中定义的曲线
编辑适用的 TLS 版本 | TLS 1.3 and earlier | TLS 1.2 and earlier | ||||||
---|---|---|---|---|---|---|---|---|
应用软件 | secp256r1 prime256v1 NIST P-256 (0x0017,[109] 23[110]) |
secp384r1 NIST P-384 (0x0018,[109] 24[110]) |
secp521r1 NIST P-521 (0x0019,[109] 25[110]) |
X25519 (0x001D,[109] 29[110]) |
X448 (0x001E,[109] 30[110]) |
brainpoolP256r1 (26)[111] |
brainpoolP384r1 (27)[111] |
brainpoolP512r1 (28)[111] |
Botan | 是 | 是 | 是 | 是[90] | 否 | 是[112] | 是[112] | 是[112] |
BoringSSL | 是 | 是 | Yes (disabled by default) | 是 | 否 | 否 | 否 | 否 |
BSAFE | 是 | 是 | 是 | 否 | 否 | 否 | 否 | 否 |
GnuTLS | 是 | 是 | 是 | 是[113] | 是[114] | 否 | 否 | 否 |
JSSE | 是 | 是 | 是 | Yes x25519: JDK 13+[115] Ed25519:JDK 15+[116] |
Yes x448: JDK 13+[115] Ed448: JDK 15+[116] |
否 | 否 | 否 |
LibreSSL | 是 | 是 | 是 | 是[117] | 否 | 是[37] | 是[37] | 是[37] |
MatrixSSL | 是 | 是 | 是 | TLS 1.3 only[118] | 否 | 是 | 是 | 是 |
Mbed TLS | 是 | 是 | 是 | Primitive only[119] | Primitive only[120] | 是[121] | 是[121] | 是[121] |
NSS | 是 | 是 | 是 | 是[122] | 否[123][124] | 否[125] | 否[125] | 否[125] |
OpenSSL | 是 | 是 | 是 | 是[126][127] | 是[128][129] | 是[46] | 是[46] | 是[46] |
Schannel Vista/2008, 7/2008R2, 8/2012, 8.1/2012R2, 10 | 是 | 是 | 是 | 否 | 否 | 否 | 否 | 否 |
Secure Transport | 是 | 是 | 是 | 否 | 否 | 否 | 否 | 否 |
wolfSSL | 是 | 是 | 是 | 是[130] | 否 | 是 | 是 | 是 |
Erlang/OTP SSL application | 是 | 是 | 是 | 否 | 否 | 是 | 是 | 是 |
Implementation | 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) |
RFC 8422 中弃用的曲线
编辑应用! sect163k1 NIST K-163 (1)[56] |
sect163r1 (2)[56] |
sect163r2 NIST B-163 (3)[56] |
sect193r1 (4)[56] |
sect193r2 (5)[56] |
sect233k1 NIST K-233 (6)[56] |
sect233r1 NIST B-233 (7)[56] |
sect239k1 (8)[56] |
sect283k1 NIST K-283 (9)[56] |
sect283r1 NIST B-283 (10)[56] |
sect409k1 NIST K-409 (11)[56] |
sect409r1 NIST B-409 (12)[56] |
sect571k1 NIST K-571 (13)[56] |
sect571r1 NIST B-571 (14)[56] | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Botan | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
GnuTLS | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
LibreSSL | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
MatrixSSL | 否 | 否 | 否 | 否 | 否 | No | 否 | 否 | 否 | 否 | No | No | No | No |
Mbed TLS | No | No | No | No | No | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
NSS | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
OpenSSL | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
wolfSSL | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | No | No | No | No | No | No |
应用 | 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) |
应用 | secp160k1 (15)[56] |
secp160r1 (16)[56] |
secp160r2 (17)[56] |
secp192k1 (18)[56] |
secp192r1 prime192v1 NIST P-192 (19)[56] |
secp224k1 (20)[56] |
secp224r1 NIST P-244 (21)[56] |
secp256k1 (22)[56] |
arbitrary prime curves (0xFF01)[56][131] |
arbitrary char2 curves (0xFF02)[56][131] |
---|---|---|---|---|---|---|---|---|---|---|
Botan | No | No | No | No | No | No | No | No | No | No |
GnuTLS | No | No | No | No | 是 | No | 是 | No | No | No |
LibreSSL | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | No | No |
MatrixSSL | No | No | No | No | 是 | No | 是 | No | No | No |
Mbed TLS | No | No | No | Yes | Yes | Yes | Yes | 是 | No | No |
NSS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | 是 | No | No |
OpenSSL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | 是 | No | No |
wolfSSL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | 是 | No | No |
应用 | secp160k1 (15) |
secp160r1 (16) |
secp160r2 (17) |
secp192k1 (18) |
secp192r1 prime192v1 NIST P-192 (19) |
secp224k1 (20) |
secp224r1 NIST P-244 (21) |
secp256k1 (22) |
arbitrary prime curves (0xFF01) |
arbitrary char2 curves (0xFF02) |
- Notes
- ^ 引用错误:没有为名为
NSS-3.24
的参考文献提供内容
数据完整性
编辑应用软件 | HMAC-MD5 | HMAC-SHA1 | HMAC-SHA256/384 | AEAD | GOST 28147-89 IMIT[57] | GOST R 34.11-94[57] |
---|---|---|---|---|---|---|
Botan | 否 | 是 | 是 | 是 | 否 | 否 |
GnuTLS | 是 | 是 | 是 | 是 | 否 | 否 |
LibreSSL | 是 | 是 | 是 | 是 | 是[58] | 是[58] |
MatrixSSL | 是 | 是 | 是 | 是 | 否 | 否 |
Mbed TLS | Yes | 是 | 是 | 是 | 否 | 否 |
NSS | 是 | 是 | 是 | 是 | 否[60][61] | 否[60][61] |
OpenSSL | 是 | 是 | 是 | 是 | 是[62] | 是[62] |
wolfSSL | 是 | 是 | 是 | 是 | 否 | 否 |
压缩
编辑请注意,CRIME 安全漏洞 利用了TLS压缩的优势,因此传统应用不会在TLS层启用压缩。 HTTP 压缩是不相关的且不受此漏洞攻击的影响,但会被BREACH相关的攻击利用。
应用软件 | DEFLATE[132] (不安全) |
---|---|
Botan | 否 |
GnuTLS | 默认禁用 |
LibreSSL | 否[37] |
MatrixSSL | 默认禁用 |
Mbed TLS | 默认禁用 |
NSS | 默认禁用 |
OpenSSL | 默认禁用 |
wolfSSL | 默认禁用 |
扩展
编辑在本节中列出了每个应用支持的扩展。请注意,安全重新协商扩展对于HTTPS客户端安全至关重要。不执行TLS协议的客户端很容易受到攻击,无论客户端是否实施TLS重新协商。
Implementation | Secure Renegotiation [133] |
Server Name Indication [134] |
ALPN [135] |
Certificate Status Request [134] |
OpenPGP [136] |
Supplemental Data [137] |
Session Ticket [138] |
Keying Material Exporter [139] |
Maximum Fragment Length [134] |
Truncated HMAC [134] |
Encrypt-then-MAC [140] |
TLS Fallback SCSV [141] |
Extended Master Secret [142] |
ClientHello Padding [143] |
Raw Public Keys [144] |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Botan | 是 | 是 | 是[145] | 否 | 否 | 否 | 是 | 是 | 是 | 否 | 是 | 是[146] | 是[147] | 否 | 未知 |
GnuTLS | 是 | 是[148] | 是 | 弃用[149] | 是 | 是 | 是 | 是 | 否 | 是[28] | 是[150] | 是[28] | 是[151] | 否 | |
LibreSSL | 是 | 是 | 是[152] | 是 | 否 | 否? | 是 | 是? | 否 | 否 | 否 | Server side only[153] | 否 | 是 | 否 |
MatrixSSL | 是 | 是 | 是[154] | 是[93] | 否 | 否 | 是 | 否 | 是 | 是 | 否 | 是[93] | 是[93] | 否 | 未知 |
Mbed TLS | 是 | 是 | 是[155] | 否 | 否 | 否 | 是 | 否 | 是 | Disabled by default[31] | 是[156] | 是[156] | 是[156] | 否 | 否 |
NSS | 是 | 是 | 是[157] | 是 | 否[158] | 否 | 是 | 是 | 否 | 否 | 否[159] | 是[160] | 是[161] | 是[157] | 未知 |
OpenSSL | 是 | 是 | 是[46] | 是 | 否 | 否? | 是 | 是? | 是 | 否 | 是 | 是[162] | 是[163] | 是[164] | 未知 |
wolfSSL | 是 | 是 | 是[108] | 是 | 否 | 否 | 是 | 否 | 是 | 是 | 是[165] | 否 | 是 | 否 | 未知 |
辅助加密
编辑本节列出了已知的利用CPU指令集优化加密,或利用系统特定允许访问底层加密硬件加速或分离数据的设备。
应用软件 | PKCS #11 device | Intel AES-NI | VIA PadLock | ARMv8-A | Intel SGX | Intel QAT(页面存档备份,存于互联网档案馆) |
---|---|---|---|---|---|---|
GnuTLS | 是 | 是 | 是 | 是[166] | 否 | 否 |
OpenSSL | 是[167] | 是 | 是 | 是[168] | 否 | |
wolfSSL | 否 | 是 | 否 | 是 | 是 | 是[169] |
系统特定的后端
编辑本节列出了已知利用可用操作系统特定后端或另一个提供的后端的应用。
应用软件 | /dev/crypto | Windows CSP | 一般加密CommonCrypto(页面存档备份,存于互联网档案馆) | OpenSSL |
---|---|---|---|---|
GnuTLS | 是 | 否 | 否 | 否 |
OpenSSL | 是 | 否 | 否 | 是 |
wolfSSL | 否 | 部分 | 否 | 否 |
加密模块/令牌支持
编辑Implementation | TPM support | Hardware token support | Objects identified via |
---|---|---|---|
Botan | 部份[147] | PKCS11 | |
GnuTLS | 是 | PKCS11 | RFC7512 PKCS #11 URLs[170] |
LibreSSL | 是 | PKCS11 (via 3rd party module) | Custom method |
MatrixSSL | 否 | PKCS11 | |
Mbed TLS | 否 | PKCS11 (via libpkcs11-helper) or standard hooks | Custom method |
NSS | 否 | PKCS11 | |
OpenSSL | 是 | PKCS11 (通过第三方模块)[171] | RFC7512 PKCS #11 URLs[170] |
wolfSSL | 是 | PKCS11 |
代码属性
编辑应用软件 | 属性 | 可选属性 |
---|---|---|
Botan | C++11 | sqlite zlib (compression) bzip2 (compression) liblzma (compression) boost openssl (crypto backend) trousers (TPM) |
GnuTLS | libc nettle gmp |
zlib (compression) p11-kit (PKCS #11) trousers (TPM) |
MatrixSSL | none | zlib (compression) |
MatrixSSL-open | libc or newlib | |
Mbed TLS | libc | libpkcs11-helper (PKCS #11) zlib (compression) |
NSS | libc libnspr4 libsoftokn3 libplc4 libplds4 |
zlib (compression) |
OpenSSL | libc | zlib (压缩) |
wolfSSL | None | libc, zlib (压缩) |
开发环境
编辑应用软件 | Namespace | 建设工具 | API 手册 | 加密后端 | OpenSSL 兼容层 |
---|---|---|---|---|---|
Botan | Botan::TLS | Makefile | Sphinx | Included (pluggable) | 否 |
GnuTLS | gnutls_* | Autoconf, automake, libtool | Manual and API reference (HTML, PDF) | External, libnettle | 是 (部分) |
MatrixSSL | matrixSsl_* ps* |
Makefile, MSVC project workspaces, Xcode projects for OS X and iOS | API Reference (PDF), Integration Guide | Included (pluggable) | 是 (Subset: SSL_read, SSL_write, etc.) |
Mbed TLS | mbedtls_ssl_* mbedtls_sha1_* |
Makefile, CMake, MSVC project workspaces, yotta | API Reference + High Level and Module Level Documentation (HTML) | Included (monolithic) | 否 |
NSS | CERT_* SEC_* |
Makefile | Manual (HTML) | Included, PKCS#11 based[172] | 是 (separate package called nss_compat_ossl[173]) |
OpenSSL | SSL_* SHA1_* |
Makefile | Man pages | Included (monolithic) | 不适用 |
wolfSSL | CyaSSL_* SSL_* |
Autoconf, automake, libtool, MSVC project workspaces, XCode projects, CodeWarrior projects, MPLAB X projects, Keil, IAR, Clang, GCC | Manual and API Reference (HTML, PDF) | Included (monolithic) | 是 (大约 10% of API) |
移植问题
编辑应用软件 | 平台要求 | 网络要求 | 线程安全 | 随机速度 | 能够交叉编译 | No OS (bare metal) | 可支持的操作系统 |
---|---|---|---|---|---|---|---|
Botan | C++11 | None | 线程安全 | Platform-dependent | 是 | Windows, Linux, macOS, Android, iOS, FreeBSD, OpenBSD, Solaris, AIX, HP-UX, QNX, BeOS, IncludeOS | |
GnuTLS | C89 | POSIX send() and recv(). API 支持所找的替代品. | 线程安全,如果POSIX和Windows线程都不可用,则需要自定义互斥锁钩 | 取决于平台 | 是 | 否 | 基本任何 POSIX 平台 or Windows, 一般已测试的平台包含 GNU/Linux, Win32/64, OS X, Solaris, OpenWRT, FreeBSD, NetBSD, OpenBSD. |
MatrixSSL | C89 | None | 线程安全 | Platform dependent | 是 | 是 | All |
Mbed TLS | C89 | POSIX read() and write(). API to supply your own replacement. | Threading layer available (POSIX or own hooks) | Random seed set through entropy pool | 是 | 是 | Known to work on: Win32/64, Linux, macOS, Solaris, FreeBSD, NetBSD, OpenBSD, OpenWRT, iPhone (iOS), Xbox, Android, eCos, SeggerOS |
NSS | C89, NSPR[174] | NSPR[174] PR_Send() and PR_Recv(). API to supply your own replacement. | 线程安全 | Platform dependent[175] | 是 (but cumbersome) | 否 | AIX, Android, FreeBSD, NetBSD, OpenBSD, BeOS, HP-UX, IRIX, Linux, macOS, OS/2, Solaris, OpenVMS, Amiga DE, Windows, WinCE, Sony PlayStation |
OpenSSL | C89? | ? | 需要互斥量回调 | 通过原始API设置 | 是 | 否 | Unix, DOS (with djgpp), Windows, OpenVMS, MacOS, NetWare, eCos |
wolfSSL | C89 | POSIX send() and recv(). API 支持所找的替代品. | 线程安全,如果POSIX和Windows线程都不可用,则需要自定义互斥锁钩 | 通过 wolfCrypt设置随机速度 | 是 | 是 | Win32/64, Linux, OS X, Solaris, ThreadX, VxWorks, FreeBSD, NetBSD, OpenBSD, embedded Linux, Haiku, OpenWRT, iPhone (iOS), Android, Nintendo Wii and Gamecube through DevKitPro, QNX, MontaVista, OpenCL, NonStop, TRON/ITRON/µITRON, Micrium's µC OS, FreeRTOS, SafeRTOS, Freescale MQX, Nucleus, TinyOS, HP/UX, Keil RTX, TI-RTOS |
其他
编辑参考文献
编辑- ^ The GnuTLS Transport Layer Security Library. [2022-09-27].
- ^ LibreSSL: Releases. [2022-10-31].
- ^ The features listed are for the closed source version
- ^ Releases · matrixssl/matrixssl. GitHub. [2022-08-30] (英语).
- ^ Releases · Mbed-TLS/mbedtls. GitHub. [2022-08-30] (英语).
- ^ OpenSSL: Newslog. [2022-11-01].
- ^ wolfSSL product description. [2016-05-03]. (原始内容存档于2017-09-08).
- ^ wolfSSL Embedded SSL/TLS. [2016-05-03]. (原始内容存档于2016-05-01).
- ^ wolfSSL ChangeLog. 2022-07-11 [2022-08-29].
- ^ wolfSSL Release 5.4.0 (July 11, 2022). 2022-07-11 [2022-08-29].
- ^ [rfc:6176 RFC6176: Prohibiting Secure Sockets Layer (SSL) Version 2.0]
- ^ "CBC-Padding: Security Flaws in SSL, IPsec, WTLS,...", Serge Vaudenay, 2001 (PDF). [2018-06-22]. (原始内容存档 (PDF)于2019-03-03).
- ^ [rfc:7366 RFC7366: Encrypt-then-MAC for Transport Layer Security (TLS) and Datagram Transport Layer Security]
- ^ Rizzo/Duong BEAST Countermeasures. [2018-06-22]. (原始内容存档于2018-06-23).
- ^ Möller, Bodo; Duong, Thai; Kotowicz, Krzysztof. This POODLE Bites: Exploiting The SSL 3.0 Fallback (PDF). September 2014 [2014-10-15]. (原始内容存档 (PDF)于2014-10-14).
- ^ TLSv1.2's Major Differences from TLSv1.1
- ^ 17.0 17.1 RFC 6347
- ^ Bard attack. CiteSeerX 10.1.1.61.5887 .
- ^ draft-hickman-netscape-ssl-00. tools.ietf.org. [2018-06-22]. (原始内容存档于2013-09-10).
- ^ RFC 6101
- ^ RFC 2246
- ^ RFC 4346
- ^ 23.0 23.1 23.2 23.3 23.4 23.5 RFC 5246
- ^ RFC 8446 - The Transport Layer Security (TLS) Protocol Version 1.3. datatracker.ietf.org. [2022-08-30]. (原始内容存档于2021-05-14) (英语).
- ^ tlswg/tls13-spec branches. tlswg.github.io. [2018-06-22]. (原始内容存档于2016-01-04).
- ^ RFC 4347
- ^ Version 1.11.13, 2015-01-11 — Botan. 2015-01-11 [2015-01-16]. (原始内容存档于2015-01-09).
- ^ 28.0 28.1 28.2 28.3 28.4 28.5 [gnutls-devel] GnuTLS 3.4.0 released. 2015-04-08 [2015-04-16]. (原始内容存档于2015-04-16).
- ^ MatrixSSL - News. [2014-11-09]. (原始内容存档于2015-02-14).
- ^ 30.0 30.1 30.2 30.3 Mbed TLS 3.0.0 branch released. GitHub. 2021-07-07 [2021-08-13]. (原始内容存档于2021-08-13).
- ^ 31.0 31.1 31.2 31.3 mbed TLS 2.0.0 released. 2015-07-10 [2015-07-14]. (原始内容存档于2015-09-25).
- ^ NSS 3.19 release notes. Mozilla Developer Network. Mozilla. [2015-05-06]. (原始内容存档于2015-06-05).
- ^ 33.0 33.1 NSS 3.14 release notes. Mozilla Developer Network. Mozilla. [2012-10-27]. (原始内容存档于2013-01-17).
- ^ NSS 3.15.1 release notes. Mozilla Developer Network. Mozilla. [2013-08-10]. (原始内容存档于2013-09-22).
- ^ NSS 3.39 release notes. Mozilla Developer Network. Mozilla. 2018-08-31 [2018-09-15]. (原始内容存档于2021-12-07).
- ^ NSS 3.16.2 release notes. Mozilla Developer Network. Mozilla. 2014-06-30 [2014-06-30]. (原始内容存档于2021-12-07).
- ^ 37.00 37.01 37.02 37.03 37.04 37.05 37.06 37.07 37.08 37.09 37.10 37.11 37.12 OpenBSD 5.6 Released. 2014-11-01 [2015-01-20]. (原始内容存档于2016-01-31).
- ^ LibreSSL 2.3.0 Released. 2015-09-23 [2015-09-24]. (原始内容存档于2021-02-25).
- ^ LibreSSL 3.3.3 Released. 2021-05-04 [2021-05-04]. (原始内容存档于2022-08-30).
- ^ 40.00 40.01 40.02 40.03 40.04 40.05 40.06 40.07 40.08 40.09 40.10 40.11 Inc., OpenSSL Foundation,. /news/openssl-1.1.0-notes.html. www.openssl.org. [2018-06-22]. (原始内容存档于2018-03-17).
- ^ [wolfssl] wolfSSL 3.6.6 Released. 2015-08-20 [2015-08-24]. (原始内容存档于2015-10-17).
- ^ NSS 3.24 release notes. Mozilla Developer Network. Mozilla. [2016-06-19]. (原始内容存档于2016-08-26).
- ^ Technical Note TN2287: iOS 5 and TLS 1.2 Interoperability Issues. iOS Developer Library. Apple Inc. [2012-05-03]. (原始内容存档于2015-04-03).
- ^ Qualys SSL Labs - Projects / User Agent Capabilities. dev.ssllabs.com. [2018-06-22]. (原始内容存档于2015-09-19).
- ^ Bug 663320 - (NSA-Suite-B-TLS) Implement RFC6460 (NSA Suite B profile for TLS). Mozilla. [2014-05-19]. (原始内容存档于2022-08-30).
- ^ 46.0 46.1 46.2 46.3 46.4 Major changes between OpenSSL 1.0.1l and OpenSSL 1.0.2 [22 Jan 2015]. [2015-01-22]. (原始内容存档于September 4, 2014).
- ^ "Secure or Compliant, Pick One" Steve Marquess blog. [2018-06-22]. (原始内容存档于2013-12-27).
- ^ Search - Cryptographic Module Validation Program - CSRC. csrc.nist.gov. [2018-06-22]. (原始内容存档于2014-12-26).
- ^ "Is botan FIPS 140 certified?" Frequently Asked Questions — Botan. [2014-11-16]. (原始内容存档于2014-11-29).
- ^ "While, as a free software project, we are not actively pursuing this kind of certification, GnuTLS has been FIPS-140-2 certified in several systems by third parties." GnuTLS 3.5.6 B.5 Certification (页面存档备份,存于互联网档案馆)
- ^ Matrix SSL Toolkit (PDF). [2022-08-30]. (原始内容存档 (PDF)于2021-07-07).
- ^ Limited, ARM. Is mbed TLS FIPS certified? - Knowledge Base. polarssl.org. [2022-08-30]. (原始内容存档于2014-12-15).
- ^ FIPS Validation - MozillaWiki. wiki.mozilla.org. [2022-08-30]. (原始内容存档于2022-08-30).
- ^ OpenSSL and FIPS 140-2. [2018年6月22日]. (原始内容存档于2013年5月28日).
- ^ wolfCrypt FIPS 140-2 Information - wolfSSL Embedded SSL/TLS Library. [2018-06-22]. (原始内容存档于2015-04-30).
- ^ 56.00 56.01 56.02 56.03 56.04 56.05 56.06 56.07 56.08 56.09 56.10 56.11 56.12 56.13 56.14 56.15 56.16 56.17 56.18 56.19 56.20 56.21 56.22 56.23 56.24 56.25 56.26 56.27 56.28 RFC 4492
- ^ 57.0 57.1 57.2 57.3 draft-chudov-cryptopro-cptls-04 - GOST 28147-89 Cipher Suites for Transport Layer Security (TLS)
- ^ 58.0 58.1 58.2 58.3 58.4 LibreSSL 2.1.2 released. 2014-12-09 [2015-01-20]. (原始内容存档于2022-08-30).
- ^ NSS 3.20 release notes. Mozilla. 2015-08-19 [2015-08-20]. (原始内容存档于2021-12-07).
- ^ 60.0 60.1 60.2 60.3 Mozilla.org. Bug 518787 - Add GOST crypto algorithm support in NSS. [2014-07-01]. (原始内容存档于2022-08-30).
- ^ 61.0 61.1 61.2 61.3 Mozilla.org. Bug 608725 - Add Russian GOST cryptoalgorithms to NSS and Thunderbird. [2014-07-01]. (原始内容存档于2022-08-30).
- ^ 62.0 62.1 62.2 62.3 OpenSSL: CVS Web Interface. [2014-11-12]. (原始内容存档于2013-04-15).
- ^ 63.0 63.1 63.2 RFC 5054
- ^ 64.0 64.1 64.2 RFC 4279
- ^ RFC 5489
- ^ RFC 2712
- ^ 67.0 67.1 67.2 LibreSSL 2.0.4 released. [2014-08-04]. (原始内容存档于2019-03-23).
- ^ 68.0 68.1 68.2 Bug 405155 - add support for TLS-SRP, rfc5054. Mozilla. [2014-01-25]. (原始内容存档于2022-08-30).
- ^ 69.0 69.1 69.2 69.3 Bug 306435 - Mozilla browsers should support the new IETF TLS-PSK protocol to help reduce phishing. Mozilla. [2014-01-25]. (原始内容存档于2022-08-30).
- ^ Bug 1170510 - Implement NSS server side support for DH_anon. Mozilla. [2015-06-03]. (原始内容存档于2022-08-30).
- ^ Bug 236245 - Update ECC/TLS to conform to RFC 4492. Mozilla. [2014-06-09]. (原始内容存档于2022-08-30).
- ^ Changes between 0.9.6h and 0.9.7 [31 Dec 2002]. [2016-01-29]. (原始内容存档于2016-09-13).
- ^ 73.0 73.1 Changes between 0.9.8n and 1.0.0 [29 Mar 2010]. [2016-01-29]. (原始内容存档于2016-09-13).
- ^ wolfSSL (Formerly CyaSSL) Release 3.9.0 (03/18/2016). 2016-03-18 [2016-04-05]. (原始内容存档于2016-03-16).
- ^ RFC 5280
- ^ RFC 3280
- ^ RFC 2560
- ^ RFC 6698, RFC 7218
- ^ MatrixSSL 3.8.3. [2017-01-18]. (原始内容存档于2017-01-19).
- ^ mbed TLS 2.0 defaults implement best practices. [2017-01-18]. (原始内容存档于2022-03-08).
- ^ Bug 672600 - Use DNSSEC/DANE chain stapled into TLS handshake in certificate chain validation. Mozilla. [2014-06-18]. (原始内容存档于2018-04-06).
- ^ RFC 5288, RFC 5289
- ^ RFC 6655, RFC 7251
- ^ RFC 6367
- ^ RFC 5932, RFC 6367
- ^ 86.0 86.1 RFC 6209
- ^ RFC 4162
- ^ Sweet32: Birthday attacks on 64-bit block ciphers in TLS and OpenVPN. sweet32.info. [2018-06-22]. (原始内容存档于2018-04-08).
- ^ RFC 7905
- ^ 90.0 90.1 Version 1.11.12, 2015-01-02 — Botan. 2015-01-02 [2015-01-09]. (原始内容存档于2015-01-10).
- ^ gnutls 3.6.0. 2017-09-21 [2018-01-07]. (原始内容存档于2018-01-18).
- ^ gnutls 3.4.12. 2016-05-20 [2016-05-29]. (原始内容存档于2016-10-13).
- ^ 93.0 93.1 93.2 93.3 Changes in 3.8.3. GitHub. [2016-06-19].[永久失效链接]
- ^ PolarSSL 1.3.8 release notes. [2022-08-30]. (原始内容存档于2014-07-15).
- ^ 95.0 95.1 Mbed TLS 2.11.0, 2.7.4 and 2.1.13 released. [2018-08-30]. (原始内容存档于2021-04-14).
- ^ Mbed TLS 2.12.0, 2.7.5 and 2.1.14 released. [2018-08-30]. (原始内容存档于2021-07-29).
- ^ NSS 3.25 release notes. Mozilla Developer Network. Mozilla. [2016-07-01]. (原始内容存档于2021-12-07).
- ^ Bug 940119 - libssl does not support any TLS_ECDHE_*_CAMELLIA_*_GCM cipher suites. Mozilla. [2013-11-19]. (原始内容存档于2022-08-30).
- ^ NSS 3.12 is released. [2013-11-19]. (原始内容存档于2019-12-08).
- ^ NSS 3.12.3 Release Notes. Mozilla Developer Network. Mozilla. [2014-07-01]. (原始内容存档于2021-05-10).
- ^ NSS 3.23 release notes. Mozilla Developer Network. Mozilla. [2016-03-09]. (原始内容存档于2021-04-14).
- ^ openssl/CHANGES at OpenSSL_1_0_1-stable · openssl/openssl. [2015-01-20]. (原始内容存档于2016-01-31).
- ^ RFC 5469
- ^ 存档副本. [2018-06-22]. (原始内容存档于2018-04-08).
- ^ Version 1.11.15, 2015-03-08 — Botan. 2015-03-08 [2015-03-11]. (原始内容存档于2015-05-15).
- ^ NSS 3.15.3 release notes. Mozilla Developer Network. Mozilla. [2014-07-13]. (原始内容存档于2014-06-05).
- ^ MFSA 2013-103: Miscellaneous Network Security Services (NSS) vulnerabilities. Mozilla. Mozilla. [2014-07-13]. (原始内容存档于2014-07-14).
- ^ 108.0 108.1 wolfSSL (Formerly CyaSSL) Release 3.7.0 (10/26/2015). 2015-10-26 [2015-11-19]. (原始内容存档于2015-11-20).
- ^ 109.0 109.1 109.2 109.3 109.4 RFC 8446
- ^ 110.0 110.1 110.2 110.3 110.4 RFC 8422
- ^ 111.0 111.1 111.2 RFC 7027
- ^ 112.0 112.1 112.2 Version 1.11.5, 2013-11-10 — Botan. 2013-11-10 [2015-01-23]. (原始内容存档于2014-12-03).
- ^ An overview of the new features in GnuTLS 3.5.0. 2016-05-02 [2016-12-09]. (原始内容存档于2016-12-20).
- ^ gnutls 3.6.12. 2020-02-01 [2021-08-31]. (原始内容存档于2022-08-30).
- ^ 115.0 115.1 JDK 13 Early-Access Release Notes. [2019-06-20]. (原始内容存档于2020-04-01).
- ^ 116.0 116.1 JEP 339: Edwards-Curve Digital Signature Algorithm (EdDSA). [2022-01-06]. (原始内容存档于2022-01-06).
- ^ LibreSSL 2.5.1 release notes. OpenBSD. 2017-01-31 [2017-02-23]. (原始内容存档于2022-08-30).
- ^ MatrixSSL 4.0 changelog. GitHub. [2018-09-18]. (原始内容存档于2022-08-30).
- ^ PolarSSL 1.3.3 released. 2013-12-31 [2015-01-23]. (原始内容存档于2014-12-18).
- ^ Mbed TLS 2.9.0, 2.7.3 and 2.1.12 released. [2018-08-30]. (原始内容存档于2021-04-14).
- ^ 121.0 121.1 121.2 PolarSSL 1.3.1 released. 2013-10-15 [2015-01-23]. (原始内容存档于2015-01-23).
- ^ Bug 957105 - Add support for curve25519 Key Exchange and UMAC MAC support for TLS. Mozilla. [2017-02-23]. (原始内容存档于2022-08-30).
- ^ Bug 1305243 - Support for X448. Mozilla. [2022-08-04]. (原始内容存档于2022-08-04).
- ^ Bug 1597057 - Curve448 or named Ed448-Goldilocks support needed (both X448 key exchange and Ed448 signature algorithm ). Mozilla. [2022-08-04].
- ^ 125.0 125.1 125.2 Bug 943639 - Support for Brainpool ECC Curve (rfc5639). Mozilla. [2014-01-25]. (原始内容存档于2022-08-30).
- ^ OpenSSL 1.1.0x Release Notes. 25 August 2016 [18 May 2018]. (原始内容存档于18 May 2018).
- ^ OpenSSL GitHub Issue #487 Tracker. GitHub. 2 December 2015 [18 May 2018]. (原始内容存档于2018-10-06).
- ^ OpenSSL 1.1.1x Release Notes. 1 May 2018 [18 May 2018]. (原始内容存档于2018-05-18).
- ^ OpenSSL GitHub Issue #5049 Tracker. GitHub. 9 January 2018 [18 May 2018]. (原始内容存档于2019-02-18).
- ^ wolfSSL (Formerly CyaSSL) Release 3.4.6 (03/30/2015). 2015-03-30 [2015-11-19]. (原始内容存档于2016-03-16).
- ^ 131.0 131.1 Negotiation of arbitrary curves has been shown to be insecure for certain curve sizes Mavrogiannopoulos, Nikos and Vercautern, Frederik and Velichkov, Vesselin and Preneel, Bart. A cross-protocol attack on the TLS protocol. Proceedings of the 2012 ACM conference on Computer and communications security (PDF). 2012: 62–72 [2018-06-22]. ISBN 978-1-4503-1651-4. (原始内容存档 (PDF)于2015-07-06).
- ^ RFC 3749
- ^ RFC 5746
- ^ 134.0 134.1 134.2 134.3 RFC 6066
- ^ RFC 7301
- ^ RFC 6091
- ^ RFC 4680
- ^ RFC 5077
- ^ RFC 5705
- ^ RFC 7366
- ^ RFC 7507
- ^ RFC 7627
- ^ RFC 7685
- ^ RFC 7250
- ^ Version 1.11.16, 2015-03-29 — Botan. 2016-03-29 [2016-09-08]. (原始内容存档于2022-08-30).
- ^ Version 1.11.10, 2014-12-10 — Botan. 2014-12-10 [2014-12-14]. (原始内容存档于2014-12-03).
- ^ 147.0 147.1 Version 1.11.26, 2016-01-04 — Botan. 2016-01-04 [2016-02-25]. (原始内容存档于2022-08-30).
- ^ gnutls 3.2.0. [2015-01-26]. (原始内容存档于2016-01-31).
- ^ 存档副本. [2018-06-22]. (原始内容存档于2018-02-18).
- ^ gnutls 3.4.4. [2015-08-25]. (原始内容存档于2017-07-17).
- ^ %DUMBFW priority keyword. [2017-04-30]. (原始内容存档于2017-04-17).
- ^ LibreSSL 2.1.3 released. 2015-01-22 [2015-01-22]. (原始内容存档于2016-01-31).
- ^ LibreSSL 2.1.4 released. 2015-03-04 [2015-03-04]. (原始内容存档于2019-03-23).
- ^ MatrixSSL - News. 2014-12-04 [2015-01-26]. (原始内容存档于2015-02-14).
- ^ Download overview - PolarSSL. 2014-04-11 [2015-01-26]. (原始内容存档于2015-02-09).
- ^ 156.0 156.1 156.2 mbed TLS 1.3.10 released. 2015-02-08 [2015-02-09]. (原始内容存档于2015-02-09).
- ^ 157.0 157.1 NSS 3.15.5 release notes. Mozilla Developer Network. Mozilla. [2015-01-26]. (原始内容存档于January 26, 2015).
- ^ Bug 961416 - Support RFC6091 - Using OpenPGP Keys for Transport Layer Security Authentication (TLS1.2). Mozilla. [2014-06-18]. (原始内容存档于2022-08-30).
- ^ Bug 972145 - Implement the encrypt-then-MAC TLS extension. Mozilla. [2014-11-06]. (原始内容存档于2022-08-30).
- ^ NSS 3.17.1 release notes. [2014-10-17]. (原始内容存档于2019-04-19).
- ^ NSS 3.21 release notes. [2015-11-14]. (原始内容存档于2021-12-07).
- ^ 存档副本. [2018-06-22]. (原始内容存档于2015-08-13).
- ^ OpenSSL 1.1.0 Release Notesl.[永久失效链接]
- ^ Major changes between OpenSSL 1.0.1f and OpenSSL 1.0.1g [7 Apr 2014]. 2014-04-07 [2015-02-10]. (原始内容存档于2015-01-20).
- ^ wolfSSL Version 4.2.0 is Now Available!. 22 October 2019 [2021-08-13]. (原始内容存档于2022-08-30).
- ^ 存档副本. [2018-06-22]. (原始内容存档于2016-12-20).
- ^ https://habrahabr.ru/post/134725/ (页面存档备份,存于互联网档案馆), http://forum.rutoken.ru/topic/1639/ (页面存档备份,存于互联网档案馆), https://dev.rutoken.ru/pages/viewpage.action?pageId=18055184 (页面存档备份,存于互联网档案馆) (俄文)
- ^ git.openssl.org Git - openssl.git/commitdiff. git.openssl.org. [2018-06-22]. (原始内容存档于2018-01-22).
- ^ wolfSSL Asynchronous Intel QuickAssist Support - wolfSSL. 2017-01-18.
- ^ 170.0 170.1 RFC 7512
- ^ libp11: PKCS#11 wrapper library. 2018-01-19 [2018-06-22]. (原始内容存档于2018-06-11) –通过GitHub.
- ^ On the fly replaceable/augmentable.
- ^ Nss compat ossl - Fedora Project Wiki. fedoraproject.org. [2022-08-30]. (原始内容存档于2022-08-30).
- ^ 174.0 174.1 NSPR. Mozilla Developer Network. [2022-08-30]. (原始内容存档于2013-03-07).
- ^ For Unix/Linux it uses /dev/urandom if available, for Windows it uses CAPI. For other platforms it gets data from clock, and tries to open system files. NSS has a set of platform dependent functions it uses to determine randomness.
- ^ This algorithm is not defined yet as TLS cipher suites in RFCs, is proposed in drafts.
- ^ authentication only, no encryption
- ^ This algorithm is implemented in an NSS fork used by Pale Moon.
- ^ 4.0 4.1 IDEA and DES have been removed from TLS 1.2.[103]
- ^ 5.0 5.1 5.2 40 bits strength of cipher suites were designed to operate at reduced key lengths in order to comply with US regulations about the export of cryptographic software containing certain strong encryption algorithms (see Export of cryptography from the United States). These weak suites are forbidden in TLS 1.1 and later.
- ^ The RC4 attacks weaken or break RC4 used in SSL/TLS. Use of RC4 is prohibited by RFC 7465.
- ^ The RC4 attacks weaken or break RC4 used in SSL/TLS.