Loading AI tools
安全傳輸層協議 (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日,2年前(2022-09-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年前(2022-10-31)[2])[±] | 加拿大 |
MatrixSSL[3] | PeerSec Networks | 是 | GNU GPLv2+ and commercial license | PeerSec Networks | C | 4.5.1(2022年7月29日,2年前(2022-07-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日,2年前(2022-11-01)[6])[±] | 澳大利亞/歐洲 |
wolfSSL (曾名為 CyaSSL) | wolfSSL[7] | 是 | GNU GPLv2+ and commercial license | wolfSSL 公司.[8] | C | 5.4.0(2022年7月11日,2年前(2022-07-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 密碼學 (RFC 6460) 的必須部分:
根據CNSSP-15,256位橢圓曲線(FIPS 186-2中),SHA-256和AES 128位密鑰足以保護機密信息達到Secret級別,而384位橢圓曲線(在FIPS 186-2中指定),SHA-384和帶有256位密鑰的AES是保護最高機密信息所必需的。
請注意,某些認證已受到實際參與研發人的嚴重負面批評。[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 |
是 |
本節列出了在不同應用軟件中中可用的證書驗證功能。
應用軟件 | 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] | 是 | 否 | 否 |
應用軟件 | 分組密碼 的 操作模式 | 流密碼 | 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] | 否 | 否 | 否 | 默認禁止 | 否 |
適用的 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) |
應用! 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) |
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 | 是 | 是 | 是 | 是 | 否 | 否 |
在本節中列出了每個應用支持的擴展。請注意,安全重新協商擴展對於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] | 否 | 是 | 否 | 未知 |
本節列出了已知利用可用操作系統特定後端或另一個提供的後端的應用。
應用軟件 | /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 |
|url=
為空 (幫助)Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.