この記事には独自研究が含まれているおそれがあります。問題箇所を検証し出典を追加して、記事の改善にご協力ください。議論はノート
を参照してください。(2023年5月)Transport Layer Security (TLS) プロトコルは、ネットワーク間の通信を保護する機能を提供する。このTLS実装の比較(ティーエルエスじっそうのひかく)では、最も知られるライブラリを比較する。
すべての比較カテゴリで、概要セクションにリストされている各実装の安定バージョンを使用する。この比較はTLSプロトコルに直接関連する機能に限定するものとする。 実装開発元オープンソースソフトウェアライセンス著作権所有者言語最新の安定バージョン、リリース日出所 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バージョンのフォールバック・ネゴシエーションを行うものである。 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
概要
GnuTLSGnuTLS projectYesGNU LGPLv2.1+フリーソフトウェア財団C3.8.0 - 2023年2月9日 (15か月前) (2023-02-09)[1] [±]
OpenSSLOpenSSL projectYesOpenSSL-SSLeay デュアルライセンスEric Young、Tim Hudson、Sun、OpenSSL projectなどC, アセンブリ言語3.3.1 - 2024年6月4日 (2日前) (2024-06-04)[2] [±]Australia/EU
wolfSSLwolfSSLYesGNU GPLv2+ 商用ライセンスwolfSSL Inc.C5.5.0 - 2022年8月30日 (21か月前) (2022-08-30)[3] [±]US
実装開発元オープンソースソフトウェアライセンス著作権所有者言語最新の安定バージョン、リリース日出所
プロトコルのサポート
[9][10]DTLS 1.0[11]DTLS 1.2[12]
GnuTLSNoデフォルトでは無効[13]YesYesYesYes[14]YesYes
OpenSSLNo[15]デフォルトでは有効YesYes[16]Yes[16]YesYesYes[17]
wolfSSLNoデフォルトでは無効[18]YesYesYesYes[19]YesYes