|
| 1 | + |
| 2 | + |
| 3 | +# SSL/TLSの概要 |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | + |
| 8 | +## 全体アーキテクチャ |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | +wolfSSL(以前のCyassl)が埋め込まれたSSLライブラリは、SSL 3.0、TLS 1.0、TLS 1.1、TLS 1.2、およびTLS 1.3プロトコルを実装しています。TLS 1.3は現在、標準の最も安全で最新のバージョンです。wolfSSLは、数年間不安定であるという事実により、SSL 2.0をサポートしていません。 |
| 13 | + |
| 14 | + |
| 15 | +WOLFSSLのTLSプロトコルは、[RFC 5246 (https://tools.ietf.org/html/rfc5246).](https://tools.ietf.org/html/rfc5246)で定義されているとおりに実装されています.2つのレコードレイヤプロトコルがSSL内に存在します。ハンドシェイクメッセージは、共通の暗号スイートをネゴシエートし、秘密を作成し、安全な接続を有効にするために使用されます。メッセージレイヤは、アラート処理およびアプリケーションデータ転送をサポートしながらハンドシェイクレイヤをカプセル化する。 |
| 16 | + |
| 17 | + |
| 18 | +SSLプロトコルが既存のプロトコルにどのように適合するかについての一般的な図は、**図1**に表示されます。SSLは、OSIモデルの輸送層とアプリケーション層の間にあり、任意の数のプロトコル(TCP/IP、Bluetoothなどを含む)が輸送媒体として機能する場合があります。アプリケーションプロトコルは、SSL(HTTP、FTP、SMTPなど)の上に階層化されています。 |
| 19 | + |
| 20 | + |
| 21 | + |
| 22 | + |
| 23 | + |
| 24 | + |
| 25 | +## SSLハンドシェイク |
| 26 | + |
| 27 | + |
| 28 | + |
| 29 | +SSLハンドシェイクには、SSLクライアントとサーバーが構成されているオプションに応じて、いくつかのステップがオプションです。以下、**図2**では、SSLハンドシェイクプロセスの簡略図があります。 |
| 30 | + |
| 31 | + |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | + |
| 36 | +## SSLプロトコルバージョンとTLSプロトコルバージョンの違い |
| 37 | + |
| 38 | + |
| 39 | + |
| 40 | +SSL(Secure Sockets Layer)とTLS(トランスポートセキュリティレイヤ)は、両方ともネットワーク経由で安全な通信を提供する暗号プロトコルです。これら2つのプロトコル(およびそれぞれのバージョン)は、Webブラウジングから電子メールへの範囲のアプリケーションで、インスタントメッセージングとVoIPへのアプリケーションでは、今日広く使用されています。各プロトコル、およびそれぞれの基礎となるバージョンは、もう一方のプロトコルとは少し異なります。 |
| 41 | + |
| 42 | + |
| 43 | +下には、さまざまなSSLおよびTLSプロトコルバージョンの説明との両方の違いがあります。各プロトコルの詳細については、記載されているRFC仕様を参照してください。 |
| 44 | + |
| 45 | + |
| 46 | + |
| 47 | +### SSL 3.0 |
| 48 | + |
| 49 | + |
| 50 | + |
| 51 | + |
| 52 | +このプロトコルは1996年にリリースされましたが、Netscapeによって開発されたSSL 1.0の作成から始まりました。バージョン1.0はリリースされておらず、バージョン2.0には多くのセキュリティ上の欠陥があり、SSL 3.0のリリースにつながりました。SSL 2.0を超えるSSL 3.0のいくつかの大きな改善は次のとおりです。 |
| 53 | + |
| 54 | + |
| 55 | + |
| 56 | +* メッセージ層からのデータ転送の分離 |
| 57 | + |
| 58 | + |
| 59 | +* Export Cipherを使用している場合でも、128ビットのキーイングマテリアルを使用する |
| 60 | + |
| 61 | + |
| 62 | +* クライアントとサーバーが証明書のチェーンを送信する能力により、組織は2つ以上の証明書の証明書階層を使用できるようにします。 |
| 63 | + |
| 64 | + |
| 65 | +* 一般化された鍵交換プロトコルを実装し、Diffie-HellmanとFortezzaの鍵交換と非RSA証明書を許可しています。 |
| 66 | + |
| 67 | + |
| 68 | +* 記録的な圧縮と減圧を可能にします |
| 69 | + |
| 70 | + |
| 71 | +* 2.0クライアントが見つかったときにSSL 2.0に戻る機能 |
| 72 | + |
| 73 | + |
| 74 | + |
| 75 | + |
| 76 | +### TLS 1.0 |
| 77 | + |
| 78 | + |
| 79 | + |
| 80 | + |
| 81 | +このプロトコルは1999年1月にRFC 2246で最初に定義されています。これはSSL 3.0からのアップグレードであり、その違いは劇的ではありませんでしたが、SSL 3.0とTLS 1.0は相互運用しないで十分に重要です。SSL 3.0とTLS 1.0の間の大きな違いの一部は次のとおりです。 |
| 82 | + |
| 83 | + |
| 84 | + |
| 85 | +* キー導出関数は異なります |
| 86 | + |
| 87 | + |
| 88 | +* Macは異なります-SSL 3.0は初期HMACの変更を使用し、TLS 1.0はHMACを使用します。 |
| 89 | + |
| 90 | + |
| 91 | +* 完成したメッセージは異なります |
| 92 | + |
| 93 | + |
| 94 | +* TLSにはより警告があります |
| 95 | + |
| 96 | + |
| 97 | +* TLSにはDSS/DHサポートが必要です |
| 98 | + |
| 99 | + |
| 100 | + |
| 101 | + |
| 102 | +### TLS 1.1 |
| 103 | + |
| 104 | + |
| 105 | + |
| 106 | + |
| 107 | +このプロトコルは、2006年4月にRFC 4346で定義され、TLS 1.0の更新です。主な変更は次のとおりです。 |
| 108 | + |
| 109 | + |
| 110 | + |
| 111 | +* 暗黙の初期化ベクトル(IV)は、暗号ブロック連鎖(CBC)攻撃から保護するために明示的なIVに置き換えられます。 |
| 112 | + |
| 113 | + |
| 114 | +* PADDEDエラーの取り扱いは、CBC攻撃から保護するために`decryption_failed`アラートではなく`bad_record_ma`Cアラートを使用するために変更されます。 |
| 115 | + |
| 116 | + |
| 117 | +* IANAレジストリは、プロトコルパラメーター用に定義されています |
| 118 | + |
| 119 | + |
| 120 | +* 早期閉鎖は、セッションを復活させなくなりなくなりました。 |
| 121 | + |
| 122 | + |
| 123 | + |
| 124 | + |
| 125 | +### TLS 1.2 |
| 126 | + |
| 127 | + |
| 128 | + |
| 129 | + |
| 130 | +このプロトコルは2008年8月にRFC 5246で定義されています.TLS 1.1に基づいて、TLS 1.2に基づいて、柔軟性が向上しました。主な違いは次のとおりです。 |
| 131 | + |
| 132 | + |
| 133 | + |
| 134 | +* 擬似ランダム関数(PRF)のMD5/SHA-1の組み合わせを、暗号スイート指定PRFに置き換えました。 |
| 135 | + |
| 136 | + |
| 137 | +* デジタル署名要素のMD5/SHA-1の組み合わせは、単一のハッシュに置き換えられました。署名された要素には、使用されるハッシュアルゴリズムを明示的に指定するフィールドが含まれます。 |
| 138 | + |
| 139 | + |
| 140 | +* クライアントとサーバーが受け入れるハッシュおよび署名アルゴリズムを指定する能力にかなりのクリーンアップがありました。 |
| 141 | + |
| 142 | + |
| 143 | +* 追加のデータモードを使用した認証された暗号化のためのサポートの追加。 |
| 144 | + |
| 145 | + |
| 146 | +* TLS拡張機能の定義とAES暗号スイートがマージされました。 |
| 147 | + |
| 148 | + |
| 149 | +* EncryptedPremasterSecretバージョン番号の厳しいチェック。 |
| 150 | + |
| 151 | + |
| 152 | +* 多くの要件が厳しくなりました |
| 153 | + |
| 154 | + |
| 155 | +* `Verify_data`長さは暗号スイートに依存します |
| 156 | + |
| 157 | + |
| 158 | +* Bleichenbacher/DLIMA攻撃防御の説明が清掃されました。 |
| 159 | + |
| 160 | + |
| 161 | + |
| 162 | + |
| 163 | +### TLS 1.3 |
| 164 | + |
| 165 | + |
| 166 | + |
| 167 | + |
| 168 | +このプロトコルは、2018年8月にRFC 8446で定義されています.TLS 1.3には、セキュリティとスピードが向上しました。主な違いは次のとおりです。 |
| 169 | + |
| 170 | + |
| 171 | + |
| 172 | +* サポートされている対称アルゴリズムのリストは、すべての従来のアルゴリズムから整理されました。残りのアルゴリズムはすべて、関連するデータ(AEAD)アルゴリズムを使用して認証された暗号化を使用します。 |
| 173 | + |
| 174 | + |
| 175 | +* ゼロRTT(0-RTT)モードが追加され、特定のセキュリティプロパティをコストでいくつかのアプリケーションデータの接続セットアップで往復を保存しました。 |
| 176 | + |
| 177 | + |
| 178 | +* ServerHelloが暗号化された後のすべてのハンドシェイクメッセージ。 |
| 179 | + |
| 180 | + |
| 181 | +* HMACベースの抽出および拡張鍵導出機能(HKDF)がプリミティブとして使用されているため、鍵導出機能が再設計されました。 |
| 182 | + |
| 183 | + |
| 184 | +* 握手状態のマシンは、より一貫性があり、余分なメッセージを削除するように再ビルドされています。 |
| 185 | + |
| 186 | + |
| 187 | +* ECCは現在、ベーススペックにあり、新しい署名アルゴリズムが含まれています。各曲線のシングルポイント形式を支持して、ポイント形式のネゴシエーションが削除されました。 |
| 188 | + |
| 189 | + |
| 190 | +* 圧縮、カスタムDHEグループ、およびDSAが削除されました、RSAパディングは現在PSSを使用します。 |
| 191 | + |
| 192 | + |
| 193 | +* TLS 1.2バージョンネゴシエーション検証メカニズムは、拡張子のバージョンリストを支持して非推奨を受けました。 |
| 194 | + |
| 195 | + |
| 196 | +* サーバー側の状態の有無にかかわらず、TLSの以前のバージョンのPSKベースのCiphersuitesの場合とないセッション再開は、単一の新しいPSK交換に置き換えられました。 |
0 commit comments