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.