Jump to content

User:Koffeelover/sandbox

From Wikipedia, the free encyclopedia

Transport Layer Security (TLS)プロトコルは、ネットワーク間の通信を保護する機能を提供する。このTLS実装の比較では、最も知られるライブラリを比較する。

すべての比較カテゴリで、概要セクションにリストされている各実装の安定バージョンを使用する。この比較はTLSプロトコルに直接関連する機能に限定するものとする。

概要

[edit]
実装 開発元 オープンソース ソフトウェアライセンス 著作権所有者 言語 最新の安定バージョン、リリース日 出所
GnuTLS GnuTLS project Yes GNU LGPLv2.1+ フリーソフトウェア財団 C 3.8.2 (November 15, 2023; 17 months ago (2023-11-15)[1]) [±] EU (Greece and Sweden)
OpenSSL OpenSSL project Yes OpenSSL-SSLeay dual-license Eric Young、Tim Hudson、Sun、OpenSSL projectなど C, アセンブリ言語 3.0.5 (5 July 2022; 2 years ago (2022-07-05)[2]) [±] Australia/EU
wolfSSL wolfSSL Yes GNU GPLv2+ 商用ライセンス wolfSSL Inc. C 5.7.6 (December 31, 2024; 3 months ago (2024-12-31)[3]) [±] US
実装 開発元 オープンソース ソフトウェアライセンス 著作権所有者 言語 最新の安定バージョン、リリース日 出所

プロトコルのサポート

[edit]

TLSプロトコルにはいくつかのバージョンが存在する。SSL 2.0は重大な弱点を持ち廃止予定となっている。SSL 3.0(1996年)とTLS 1.0(1999年)は、2001年にSerge Vaudenayによって説明されたCBCパディングの2つの弱点を継承している。 TLS 1.1(2006)は、CBCブロック暗号にランダムな初期化ベクトル(IV)を使用するよう切り替えることで問題の1つを修正した。一方で安全なpad-mac-encryptではないより問題のあるmac-pad-encryptの使用がRFC7366で対処された。TLS 1.1のランダムIVにほぼ相当するSSL 3.0とTLS 1.0の回避策は、2011年後半の多くの実装で広く採用されていた。セキュリティの観点からは、TLS 1.0、1.1、1.2のいずれも基本プロトコルで同等の強度を持ち、NIST SP800-57によると、少なくとも2030年までの128ビットセキュリティに適している。2014年には、SSL 3.0のPOODLEの脆弱性が発見される。これはCBCの既知の脆弱性を利用したもので、ブラウザで使用された安全ではないフォールバックである。

TLS 1.2(2008)は、デジタル署名に使用されるハッシュを識別する手段を導入した基本プロトコルの最新版である。SSL 3.0の保守的な選択(rsa、sha1 + md5)よりも将来のデジタル署名(rsa、sha256 / sha384 / sha512)に対してより強力なハッシュ関数を使用できるようにする一方で、TLS 1.2プロトコルの変更は(rsa、sha1)、(rsa、md5)までをも提供し、デフォルトのデジタル署名を不注意かつ大幅に弱くした。

データグラムトランスポートレイヤセキュリティ(DTLS)1.0は、パケット損失とパケットの並べ替えを許容する必要があるパケット型トランスポートレイヤ向けにのTLS 1.1を変更したものである。TLS 1.2に基づく改訂版であるDTLS 1.2が2012年1月に公開された。

SSL 2.0とSSL 3.0には既知の脆弱性が存在する。予測可能なIV(簡単な回避策が存在する)を除いて、現在知られているすべての脆弱性はTLS 1.0 / 1.1 / 1.2のすべてのバージョンに影響がでる。


実装 SSL 2.0 (安全でない)[4] SSL 3.0 (安全でない)[5] TLS 1.0[6] TLS 1.1[7] TLS 1.2[8] TLS 1.3
(草案)[9][10]
DTLS 1.0[11] DTLS 1.2[12]
GnuTLS No デフォルトでは無効[13] Yes Yes Yes Yes Yes
OpenSSL No[14] デフォルトでは有効 Yes Yes[15] Yes[15] Yes Yes Yes[16]
wolfSSL No デフォルトでは無効[17] Yes Yes Yes Yes[18] Yes Yes
実装 SSL 2.0 (安全でない)[4] SSL 3.0 (安全でない)[5] TLS 1.0[6] TLS 1.1[7] TLS 1.2[8] TLS 1.3
(草案)[9][10]
DTLS 1.0[11] DTLS 1.2[12]


アメリカ国家安全保障局 (NSA) Suite B 暗号

[edit]

NSA Suite B暗号化(RFC 6460)に必要なコンポーネント:

CNSSP-15では、情報を保護するには、256ビットの楕円曲線(FIPS 186-2で指定)、SHA-256、および128ビットのAESで十分であり、機密情報を保護するには384ビットの楕円曲線 (FIPS 186-2で指定)、SHA-384、および256ビット鍵付きAESが必要としている。

実装 TLS 1.2 Suite B
GnuTLS Yes
OpenSSL Yes[16]
wolfSSL Yes
実装 TLS 1.2 Suite B

認定

[edit]
実装 FIPS 140-1, FIPS 140-2[19] 組み込みFIPSソリューション
GnuTLS[20] Red Hat Enterprise Linux GnuTLS Cryptographic Module (#2780)
OpenSSL[21] OpenSSL FIPS Object Module: 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[22] wolfCrypt FIPS Module: 3.6.0 (#2425)
See details on NIST certificate for validated Operating Environments
Yes
実装 FIPS 140-1, FIPS 140-2[23] 組み込みFIPSソリューション

鍵交換アルゴリズム(証明書のみ)

[edit]

このセクションでは、さまざまな実装で使用可能な証明書検証機能を示す。

実装 RSA[8] RSA-EXPORT (安全でない)[8] ディフィー・ヘルマン鍵共有-RSA(Forward secrecy[8] ディフィー・ヘルマン鍵共有-DSS(Forward secrecy[8] ECDH-ECDSA[24] ECDHE-ECDSA (forward secrecy)[24] ECDH-RSA[24] ECDHE-RSA (forward secrecy)[24] GOST規格 R 34.10-94, 34.10-2001[25]
GnuTLS Yes No Yes デフォルトでは無効[13] No Yes No Yes No
OpenSSL Yes No[14] Yes デフォルトでは無効[14] Yes Yes Yes Yes Yes[26]
wolfSSL Yes No Yes No Yes Yes Yes Yes No
実装 RSA[8] RSA-EXPORT (安全でない)[8] ディフィー・ヘルマン鍵共有-RSA(Forward secrecy[8] ディフィー・ヘルマン鍵共有-DSS(Forward secrecy[8] ECDH-ECDSA[24] ECDHE-ECDSA (forward secrecy)[24] ECDH-RSA[24] ECDHE-RSA (forward secrecy)[24] GOST規格 R 34.10-94, 34.10-2001[25]

鍵交換アルゴリズム(代替鍵交換)

[edit]
実装 SRP[27] SRP-DSS[27] SRP-RSA[27] PSK-RSA[28] PSK[28] DHE-PSK (forward secrecy)[28] ECDHE-PSK (forward secrecy)[29] KRB5[30] DH-ANON[8] (安全でない) ECDH-ANON[24] (安全でない)
GnuTLS Yes Yes Yes Yes Yes Yes Yes No デフォルトでは無効 デフォルトでは無効
OpenSSL Yes Yes Yes Yes Yes Yes Yes Yes[31] デフォルトでは無効[32] デフォルトでは無効[32]
wolfSSL No No No No Yes No Yes[33] No No No
実装 SRP[27] SRP-DSS[27] SRP-RSA[27] PSK-RSA[28] PSK[28] DHE-PSK (forward secrecy)[28] ECDHE-PSK (forward secrecy)[29] KRB5[30] DH-ANON[8] (安全でない) ECDH-ANON[24] (安全でない)

証明書の検証方法

[edit]
実装 アプリケーション定義 PKIXパス検証[34] CRL[35] OCSP[36] DANE (DNSSEC)[37] Trust on First Use (TOFU)
GnuTLS Yes Yes Yes Yes Yes Yes
OpenSSL Yes Yes Yes Yes Yes No
wolfSSL Yes Yes Yes Yes No No
実装 PKIXパス検証[34] CRL[35] CRL[35] OCSP[36] DANE (DNSSEC)[37] Trust on First Use (TOFU)

暗号化アルゴリズム

[edit]
実装 ブロック暗号/暗号利用モード ストリーム暗号 なし
AES GCM
[38]
AES CCM
[39]
AES CBC Camellia GCM
[40]
Camellia CBC
[41]
ARIA GCM
[42]
ARIA CBC
[42]
SEED CBC
[43]
3DES EDE CBC
(安全でない)[44]
GOST 28147-89 CNT
(proposed)
[25][n 1]
ChaCha20-Poly1305
[45]
Null
(安全でない)
[n 2]
GnuTLS Yes Yes[13] Yes Yes Yes No No No デフォルトでは無効[46] No Yes[47] デフォルトでは無効
OpenSSL Yes[48] デフォルトでは無効[14] Yes No デフォルトでは無効[14] No No デフォルトでは無効[14] デフォルトでは無効[14] Yes[26] Yes[14] デフォルトでは無効
wolfSSL Yes Yes Yes No Yes No No No Yes No Yes デフォルトでは無効
実装 ブロック暗号/暗号利用モード ストリーム暗号 なし
AES GCM
[38]
AES CCM
[39]
AES CBC Camellia GCM
[40]
Camellia CBC
[41]
ARIA GCM
[42]
ARIA CBC
[42]
SEED CBC
[43]
3DES EDE CBC
(安全でない)[44]
GOST 28147-89 CNT
(proposed)
[25][n 1]
ChaCha20-Poly1305
[45]
Null
(安全でない)
[n 2]
Notes
  1. ^ a b このアルゴリズムは草案で提案されている段階で、RFCのTLS暗号スイートとしてはまだ定義されていない。
  2. ^ a b 認証のみ、暗号化なし

廃止されたアルゴリズム

[edit]
実装 ブロック暗号/暗号利用モード ストリーム暗号
IDEA CBC
[n 1](安全でない)[50]
DES CBC
(安全でない)
[n 1]
DES-40 CBC
(EXPORT、安全でない)
[n 2]
RC2-40 CBC
(EXPORT、安全でない)
[n 2]
RC4-128
(安全でない)
[n 3]
RC4-40
(EXPORT、安全でない)
[n 4][n 2]
GnuTLS No No No No デフォルトでは無効[13] No
OpenSSL デフォルトでは無効[14] デフォルトでは無効 No[14] No[14] デフォルトでは無効 No[14]
wolfSSL デフォルトでは無効[51] No No No デフォルトでは無効 No
実装 ブロック暗号/暗号利用モード ストリーム暗号
IDEA CBC
[n 1](安全でない)[50]
DES CBC
(安全でない)
[n 1]
DES-40 CBC
(EXPORT、安全でない)
[n 2]
RC2-40 CBC
(EXPORT、安全でない)
[n 2]
RC4-128
(安全でない)
[n 3]
RC4-40
(EXPORT、安全でない)
[n 4][n 2]
Notes
  1. ^ a b c d IDEAとDESはTLS 1.2から排除[49]
  2. ^ a b c d e f 特定の強力な暗号化アルゴリズムを含む暗号化ソフトウェアの輸出に関する米国の規制を遵守するために、40ビット強度の暗号スイートが短縮された鍵長で動作するように設計されている。これらの弱いスイートはTLS 1.1以降では禁止
  3. ^ a b RC4攻撃によりSSL/TLSで使用されるRC4は安全でないとされる。RC4の使用はRFC 7465で禁止されている
  4. ^ a b RC4攻撃によりSSL/TLSで使用されるRC4は安全でないとされる。RC4の使用はRFC 7465で禁止されている

サポートされている楕円曲線

[edit]

このセクションでは、各実装でサポートされている楕円曲線をリストする。

実装 sect163k1
NIST K-163
(1)[24]
sect163r1
(2)[24]
sect163r2
NIST B-163
(3)[24]
sect193r1
(4)[24]
sect193r2
(5)[24]
sect233k1
NIST K-233
(6)[24]
sect233r1
NIST B-233
(7)[24]
sect239k1
(8)[24]
sect283k1
NIST K-283
(9)[24]
sect283r1
NIST B-283
(10)[24]
sect409k1
NIST K-409
(11)[24]
sect409r1
NIST B-409
(12)[24]
sect571k1
NIST K-571
(13)[24]
sect571r1
NIST B-571
(14)[24]
GnuTLS No No No No No No No No No No No No No No
OpenSSL Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
wolfSSL No No No No No No No No No No No No No No
実装 sect163k1
NIST K-163
(1)[24]
sect163r1
(2)[24]
sect163r2
NIST B-163
(3)[24]
sect193r1
(4)[24]
sect193r2
(5)[24]
sect233k1
NIST K-233
(6)[24]
sect233r1
NIST B-233
(7)[24]
sect239k1
(8)[24]
sect283k1
NIST K-283
(9)[24]
sect283r1
NIST B-283
(10)[24]
sect409k1
NIST K-409
(11)[24]
sect409r1
NIST B-409
(12)[24]
sect571k1
NIST K-571
(13)[24]
sect571r1
NIST B-571
(14)[24]
実装 secp160k1
(15)[24]
secp160r1
(16)[24]
secp160r2
(17)[24]
secp192k1
(18)[24]
secp192r1
prime192v1
NIST P-192
(19)[24]
secp224k1
(20)[24]
secp224r1
NIST P-244
(21)[24]
secp256k1
(22)[24]
secp256r1
prime256v1
NIST P-256
(23)[24]
secp384r1
NIST P-384
(24)[24]
secp521r1
NIST P-521
(25)[24]
arbitrary prime curves
(0xFF01)[24][52]
arbitrary char2 curves
(0xFF02)[24][52]
GnuTLS No No No No Yes No Yes No Yes Yes Yes No No
OpenSSL Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No
wolfSSL Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No
実装 secp160k1
(15)[24]
secp160r1
(16)[24]
secp160r2
(17)[24]
secp192k1
(18)[24]
secp192r1
prime192v1
NIST P-192
(19)[24]
secp224k1
(20)[24]
secp224r1
NIST P-244
(21)[24]
secp256k1
(22)[24]
secp256r1
prime256v1
NIST P-256
(23)[24]
secp384r1
NIST P-384
(24)[24]
secp521r1
NIST P-521
(25)[24]
arbitrary prime curves
(0xFF01)[24][52]
arbitrary char2 curves
(0xFF02)[24][52]
実装 brainpoolP256r1
(26)[53]
brainpoolP384r1
(27)[53]
brainpoolP512r1
(28)[53]
X25519
[54]
Curve448
Ed448-Goldilocks
[55]
M221
Curve2213
[56]
E222
[56]
Curve1174
[56]
E382
[56]
M383
[56]
Curve383187
[56]
Curve41417
Curve3617
[56]
M511
Curve511187
[56]
E521
[56]
GnuTLS No No No Yes[57] No No No No No No No No No No
OpenSSL Yes[16] Yes[16] Yes[16] Yes[58][59] Yes[60][61] No No No No No No No No No
wolfSSL Yes Yes Yes Yes[62] No No No No No No No No No No
実装 brainpoolP256r1
(26)
brainpoolP384r1
(27)
brainpoolP512r1
(28)
Curve25519 Curve448
Ed448-Goldilocks
M221
Curve2213
E222 Curve1174 E382 M383 Curve383187 Curve41417
Curve3617
M511
Curve511187
E521
[56]

データの完全性

[edit]
実装 HMAC-MD5 HMAC-SHA1 HMAC-SHA256/384 AEAD GOST 28147-89 IMIT[25] GOST R 34.11-94[25]
GnuTLS Yes Yes Yes Yes No No
OpenSSL Yes Yes Yes Yes Yes[26] Yes[26]
wolfSSL Yes Yes Yes Yes No No
実装 HMAC-MD5 HMAC-SHA1 HMAC-SHA256/384 AEAD GOST 28147-89 IMIT GOST R 34.11-94

圧縮

[edit]

CRIME攻撃の悪用はTLS圧縮を利用するため保守的な実装ではTLSレベルでの圧縮はできない。HTTP圧縮は無関係でこの攻撃の影響を受けないが、関連するBREACH攻撃によって悪用される。

実装 DEFLATE[63]
(安全でない)
GnuTLS デフォルトでは無効
OpenSSL デフォルトでは無効
wolfSSL デフォルトでは無効
実装 DEFLATE

拡張機能

[edit]

各実装がサポートする拡張機能をリストする。再ネゴシエーション拡張はHTTPSクライアントセキュリティにとって重要な意味を持つ。クライアントがTLS再ネゴシエーションを実装しているかどうかにかかわらず、この拡張を実装していないTLSクライアントは攻撃に対して脆弱である。

実装 再ネゴシエーション
[64]
Server Name Indication
[65]
ALPN
[66]
Certificate Status Request
[65]
OpenPGP
[67]
Supplemental Data
[68]
Session Ticket
[69]
Keying Material Exporter
[70]
Maximum Fragment Length
[65]
Truncated HMAC
[65]
Encrypt-then-MAC
[71]
TLS Fallback SCSV
[72]
Extended Master Secret
[73]
ClientHello Padding
[74]
Raw Public Keys
[75]
GnuTLS Yes Yes Yes[76] Yes 廃止予定[77] Yes Yes Yes Yes No Yes[13] Yes[78] Yes[13] Yes[79] No
OpenSSL Yes Yes Yes[16] Yes No No? Yes Yes? No No No Yes[80] Yes[81] Yes[82] Un­known
wolfSSL Yes Yes Yes[51] Yes No No Yes No Yes Yes No No Yes No Un­known
実装 再ネゴシエーション Server Name Indication ALPN Certificate Status Request OpenPGP Supplemental Data Session Ticket Keying Material Exporter Maximum Fragment Length Truncated HMAC Encrypt-then-MAC TLS Fallback SCSV Extended Master Secret ClientHello Padding Raw Public Keys
[75]

アシスト暗号

[edit]

このセクションでは、暗号化を最適化するCPU命令セットの利点を生かした実装、ハードウェア暗号やデータ分離のためのシステム固有のデバイス利用について示す。

実装 PKCS #11 device Intel AES-NI VIA PadLock ARMv8-A Intel SGX Intel QAT
GnuTLS Yes Yes Yes Yes[83] No No
OpenSSL Yes[84] Yes Yes Yes[85] No
wolfSSL No Yes No Yes Yes Yes[86]
実装 PKCS #11 device Intel AES-NI VIA PadLock ARMv8-A Intel SGX Intel QAT

システム固有のバックエンド

[edit]

使用可能なオペレーティングシステム固有のバックエンド、または別の実装によって提供されるバックエンドを利用する実装の機能を示す。

実装 /dev/crypto Windows CSP CommonCrypto OpenSSL engine
GnuTLS Yes No No No
OpenSSL Yes No No Yes
wolfSSL No Partial No No
実装 /dev/crypto Windows CSP CommonCrypto OpenSSL engine

暗号モジュール/トークンのサポート

[edit]
実装 TPM support Hardware token support Objects identified via
GnuTLS Yes PKCS11 RFC7512 PKCS #11 URLs[87]
OpenSSL Yes PKCS11 (via 3rd party module)[88] RFC7512 PKCS #11 URLs[87]
wolfSSL No No
実装 TPM support Hardware token support Objects identified via

コードの依存関係

[edit]
実装 依存 オプションの
依存
GnuTLS libc
nettle
gmp
zlib (compression)
p11-kit (PKCS #11)
trousers (TPM)
OpenSSL libc zlib (compression)
wolfSSL None libc, zlib (compression)
実装 依存 オプションの
依存

開発環境

[edit]
実装 Namespace ビルドツール API マニュアル バックエンド暗号 {{OpenSSL互換レイヤ|date=November 2013}}
GnuTLS gnutls_* Autoconf, automake, libtool マニュアルとAPIリファレンス(HTML, PDF) 外部, libnettle Yes (limited)
OpenSSL SSL_*

SHA1_*
MD5_*
EVP_*
...

Makefile Man pages 含まれる (monolithic)
wolfSSL CyaSSL_*

SSL_*

Autoconf, automake, libtool, MSVC project workspaces, XCode projects, CodeWarrior projects, MPLAB X projects, Keil, IAR, Clang, GCC マニュアルとAPIリファレンス(HTML, PDF) 含まれる (monolithic) Yes (約10%のAPI)
実装 Namespace ビルドツール API マニュアル バックエンド暗号 OpenSSL互換レイヤ

移植性に関する懸念

[edit]
実装 プラットフォーム要件 ネットワーク要件 スレッドの安全性 ランダムシード クロスコンパイル No OS (ベアメタル) サポートOS
GnuTLS C89 POSIX send()とrecv(). API to supply your own replacement. スレッドセーフ、POSIXかWindowsがなけれなカスタムmutexでフック プラットフォームによる Yes No POSIXプラットフォーム、Windows、GNU/Linux, Win32/64, OS X, Solaris, OpenWRT, FreeBSD, NetBSD, OpenBSDなどの一般的にテストされたプラットフォーム
OpenSSL C89? ? mutexのコールバックが必要 ネイディブAPI経由 Yes No Unix, DOS (with djgpp), Windows, OpenVMS, MacOS, NetWare, eCos
wolfSSL C89 POSIX send()とrecv(). API to supply your own replacement. スレッドセーフ、PThreadsかWinThreadsがなければmutexでフック。オフに設定可 wolfCryptでランダムシード Yes Yes 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
実装 プラットフォーム要件 ネットワーク要件 スレッドの安全性 ランダムシード クロスコンパイル No OS (ベアメタル) サポートOS

関連

[edit]
  • SCTP — DTLS サポートあり
  • DCCP — DTLS サポートあり
  • SRTP — DTLS サポートあり(DTLS-SRTP)、SRTCP

参照

[edit]
  1. ^ "The GnuTLS Transport Layer Security Library". Retrieved 4 December 2023.
  2. ^ "OpenSSL: Newslog". Retrieved 7 July 2022.
  3. ^ "wolfSSL ChangeLog". 2024-12-31. Retrieved 2024-12-31.
  4. ^ a b "draft-hickman-netscape-ssl-00". tools.ietf.org.
  5. ^ a b RFC 6101
  6. ^ a b RFC 2246
  7. ^ a b RFC 4346
  8. ^ a b c d e f g h i j k l RFC 5246
  9. ^ a b draft-ietf-tls-tls13-11 - The Transport Layer Security (TLS) Protocol Version 1.3
  10. ^ a b "tlswg/tls13-spec branches". tlswg.github.io.
  11. ^ a b RFC 4347
  12. ^ a b Cite error: The named reference RFC 6347 was invoked but never defined (see the help page).
  13. ^ a b c d e f "[gnutls-devel] GnuTLS 3.4.0 released". 2015-04-08. Retrieved 2015-04-16.
  14. ^ a b c d e f g h i j k l Inc., OpenSSL Foundation. "/news/openssl-1.1.0-notes.html". www.openssl.org. {{cite web}}: |last= has generic name (help)
  15. ^ a b "Major changes between OpenSSL 1.0.0h and OpenSSL 1.0.1 [14 Mar 2012]". 2012-03-14. Archived from the original on December 5, 2014. Retrieved 2015-01-20.
  16. ^ a b c d e f "Major changes between OpenSSL 1.0.1l and OpenSSL 1.0.2 [22 Jan 2015]". Archived from the original on September 4, 2014. Retrieved 2015-01-22.
  17. ^ "[wolfssl] wolfSSL 3.6.6 Released". 2015-08-20. Retrieved 2015-08-24.
  18. ^ "[wolfssl] wolfSSL TLS 1.3 support updated to draft 23". GitHub. 2018-03-12. Retrieved 2018-03-12.
  19. ^ "Search - Cryptographic Module Validation Program - CSRC". csrc.nist.gov.
  20. ^ "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
  21. ^ "OpenSSL and FIPS 140-2".
  22. ^ "wolfCrypt FIPS 140-2 Information - wolfSSL Embedded SSL/TLS Library".
  23. ^ "Search - Cryptographic Module Validation Program - CSRC". csrc.nist.gov.
  24. ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl RFC 4492
  25. ^ a b c d openssl/engines/ccgost/README.gost[permanent dead link]
  26. ^ a b c d e f RFC 5054
  27. ^ a b c d e f RFC 4279
  28. ^ a b RFC 5489
  29. ^ a b RFC 2712
  30. ^ "Changes between 0.9.6h and 0.9.7 [31 Dec 2002]". Retrieved 2016-01-29.
  31. ^ a b "Changes between 0.9.8n and 1.0.0 [29 Mar 2010]". Retrieved 2016-01-29.
  32. ^ "wolfSSL (Formerly CyaSSL) Release 3.9.0 (03/18/2016)". 2016-03-18. Retrieved 2016-04-05.
  33. ^ a b RFC 5280
  34. ^ a b c RFC 3280
  35. ^ a b RFC 2560
  36. ^ a b RFC 6698, RFC 7218
  37. ^ a b RFC 5288, RFC 5289
  38. ^ a b RFC 6655, RFC 7251
  39. ^ a b RFC 6367
  40. ^ a b RFC 5932, RFC 6367
  41. ^ a b c d RFC 6209
  42. ^ a b RFC 4162
  43. ^ a b "Sweet32: Birthday attacks on 64-bit block ciphers in TLS and OpenVPN". sweet32.info.
  44. ^ a b RFC 7905
  45. ^ "gnutls 3.6.0". 2017-09-21. Retrieved 2018-01-07.
  46. ^ "gnutls 3.4.12". 2016-05-20. Retrieved 2016-05-29.
  47. ^ "openssl/CHANGES at OpenSSL_1_0_1-stable · openssl/openssl". GitHub. Retrieved 2015-01-20.
  48. ^ RFC 5469
  49. ^ a b https://sweet32.info
  50. ^ a b "wolfSSL (Formerly CyaSSL) Release 3.7.0 (10/26/2015)". 2015-10-26. Retrieved 2015-11-19.
  51. ^ a b c d 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 (2012). A cross-protocol attack on the TLS protocol. Proceedings of the 2012 ACM conference on Computer and communications security (PDF). pp. 62–72. ISBN 978-1-4503-1651-4.{{cite book}}: CS1 maint: multiple names: authors list (link)
  52. ^ a b c RFC 7027
  53. ^ Simon, Josefsson; Yoav, Nir; Manuel, Pégourié-Gonnard. "Elliptic Curve Cryptography (ECC) Cipher Suites for Transport Layer Security (TLS) Versions 1.2 and Earlier". tools.ietf.org.
  54. ^ Simon, Josefsson; Manuel, Pégourié-Gonnard. "Curve25519 and Curve448 for Transport Layer Security (TLS)". tools.ietf.org.
  55. ^ a b c d e f g h i j Simon, Josefsson; Manuel, Pégourié-Gonnard. "Additional Elliptic Curves for Transport Layer Security (TLS) Key Agreement". tools.ietf.org.
  56. ^ ""An overview of the new features in GnuTLS 3.5.0"". 2016-05-02. Retrieved 2016-12-09.
  57. ^ "OpenSSL 1.1.0x Release Notes". 25 August 2016. Retrieved 18 May 2018.
  58. ^ "OpenSSL  GitHub Issue #487 Tracker". GitHub. 2 December 2015. Retrieved 18 May 2018.
  59. ^ "OpenSSL 1.1.1x Release Notes". 1 May 2018. Retrieved 18 May 2018.
  60. ^ "OpenSSL  GitHub Issue #5049 Tracker". GitHub. 9 January 2018. Retrieved 18 May 2018.
  61. ^ "wolfSSL (Formerly CyaSSL) Release 3.4.6 (03/30/2015)". 2015-03-30. Retrieved 2015-11-19.
  62. ^ RFC 3749
  63. ^ RFC 5746
  64. ^ a b c d RFC 6066
  65. ^ RFC 7301
  66. ^ RFC 6091
  67. ^ RFC 4680
  68. ^ RFC 5077
  69. ^ RFC 5705
  70. ^ RFC 7366
  71. ^ RFC 7507
  72. ^ RFC 7627
  73. ^ RFC 7685
  74. ^ a b RFC 7250
  75. ^ "gnutls 3.2.0". Retrieved 2015-01-26.
  76. ^ https://lists.gnupg.org/pipermail/gnutls-devel/2017-February/008309.html
  77. ^ "gnutls 3.4.4". Retrieved 2015-08-25.
  78. ^ "%DUMBFW priority keyword". Retrieved 2017-04-30.
  79. ^ http://www.openssl.org/news/secadv_20141015.txt
  80. ^ "OpenSSL 1.1.0 Release Notesl".
  81. ^ "Major changes between OpenSSL 1.0.1f and OpenSSL 1.0.1g [7 Apr 2014]". 2014-04-07. Archived from the original on 2015-01-20. Retrieved 2015-02-10.
  82. ^ https://lists.gnupg.org/pipermail/gnutls-devel/2016-October/008194.html
  83. ^ https://habrahabr.ru/post/134725/, http://forum.rutoken.ru/topic/1639/, https://dev.rutoken.ru/pages/viewpage.action?pageId=18055184 (in Russian)
  84. ^ "git.openssl.org Git - openssl.git/commitdiff". git.openssl.org.
  85. ^ "wolfSSL Asynchronous Intel QuickAssist Support - wolfSSL". 18 January 2017.
  86. ^ a b RFC 7512
  87. ^ "libp11: PKCS#11 wrapper library". 19 January 2018 – via GitHub.