web-dev-qa-db-ja.com

TLSとは何ですか?

TLSは「transportレイヤーセキュリティ」の略です。 IPプロトコル番号のリスト には、「トランスポート層セキュリティプロトコル」として「TLSP」が含まれています。これら2つのことから、TLSはトランスポート層プロトコルであると信じる必要があります。

ただし、ほとんどの人はTLS over TCPについて話しているようです。ウィキペディアはそれを「アプリケーション層」プロトコルとしてリストしています。これは、TCPにはプロトコル番号のようなものがないため、生のバイトをパッケージ化するだけなので、TLSパケットを取得していることをどのように解析するのか、 0x14-0x18で始まるパケットまたは同等のもの?

60
Andrew Spott

通信プロトコルを連続するレイヤーに分類する OSIモデル は、次のとおりです:amodel。それは、物理的な現実をきちんと定義されたラベル付きボックスに押し込もうとする試みです。それが機能することを誰も保証していません...

歴史的に、そのモデルは、ISOが独自の ネットワークプロトコル の採用を推進していたときに構築および公開されました。彼らは負けました。世界は全体として、はるかに単純な TCP/IP を使用することを好みました。 「モデル」は初期のエコシステムの死を乗り越え、多くの人々がそれをTCP/IPに適用しようとしました。それは一般的にそのように教えられさえします。ただし、モデルはTCP/IPとうまく一致しません。レイヤーに適合しないものもあり、SSL/TLSもその1つです。

プロトコルの詳細を見ると:

  • SSL/TLSは、バイトの双方向ストリームを提供する基礎となるトランスポートメディアを使用します。それはそれをどこかに上のレイヤー4に置きます。
  • SSL/TLSは、特にハンドシェイクメッセージを含むことがあるレコードとしてデータを編成します。ハンドシェイクメッセージはレイヤー5のように見えます。これにより、SSL/TLSがレイヤー6または7に配置されます。
  • ただし、SSL/TLSが伝えるのは「アプリケーションデータ」です。これは、実際には、双方向のバイトストリームです。 SSL/TLSを使用するアプリケーションは、実際にそれをtransportプロトコルとして使用します。次に、その「アプリケーションデータ」内で独自のデータ表現とメッセージおよびセマンティクスを使用します。したがって、SSL/TLSは、OSIモデルではレイヤー4を超えることはできません。

したがって、OSIモデルでは、SSL/TLSはレイヤー6または7にあり、同時にレイヤー4以下にある必要があります。 OSIモデルはSSL/TLSでは機能しません。 TLSはどのレイヤーにもありません。

(これは、一部の人々がレイヤーでTLSを勝手にプッシュすることを妨げるものではありません。これは実際的な影響がないため、これは単なるモデルです。概念的には、TLSがレイヤー2、5、または17であることを宣言できます。証明された誤り。)

101
Tom Leek

TCP/IPモデル

  1. リンク層
  2. インターネット(IP)レイヤー
  3. トランスポート層
  4. 応用

TLSは、トランスポート層とアプリケーション層(一種)の間で動作します。実際には、トランスポート中にアプリケーション層トラフィックを暗号化でラップするだけです。

TLS Key Exchangeは、レイヤー間で発生します。ここでは、ポート番号やシーケンス番号などがトランスポート層にすでに配置されているため、実際にはトランスポート層ではありません。アプリケーション層をラップできるように、暗号化プロトコルを確立するためにデータを送信するだけです。

IPSecは、以前の層でのみ同じことを行います。 IPセキュリティは、IPレイヤーより上のすべてを保護します。トランスポートセキュリティは、トランスポート層より上のすべてを保護します。安全な層を確立するためにデータを送信する必要があるだけなので、両方のキー交換は奇妙な場所にあります。 ICMPがIPプロトコルと見なされる方法とよく似ていますが、IP層の後にデータが含まれています。これはトランスポート層になりますか?番号。

OSIモデル

OSIモデルは、もう少し細分性があります。

  1. 物理層
  2. データリンク層
  3. ネットワーク層(IP)
  4. トランスポート層(TCP)
  5. セッションレイヤー(TLS)
  6. プレゼンテーション層
  7. アプリケーション層(HTTP)

TLSは暗号化されたセッションを確立します。 OSIモデルでは、これがTLSが動作する場所です。セッションをセットアップし、アプリケーション層(HTTP)の暗号化層を追加します。

関連する回答

TLSの解析

伝送制御プロトコルヘッダー には、Data Offsetフィールドがあります。このフィールドは、TCPヘッダーのサイズを32ビットワードで表します。この値の最小サイズは5(20バイト)です。これは、TCPヘッダーの先頭からの固定オフセットです。この値を使用すると、TCPのサイズがわかり、それを使用してTLS部分の開始を計算できます。

TLS Record は常にコンテンツタイプで始まり、次にSSLバージョンです。 5種類のコンテンツタイプと4種類のバージョンしかありません。したがって、TCPヘッダーに続くデータの最初の3バイトを使用すると、SSL/TLSが使用されているかどうかを判別できるはずです。

私は Wireshark をあなたのマシン(非作業)で実行し、「ssl」でフィルタリングします。次に https://www.google.com にアクセスします。ハンドシェイク全体を見ることができます。すべてのレイヤーが分解されます。これにより、TLSを使用してレイヤーがどのように構築されるかがわかりやすく表示され、各TLSレコードを確認できるようになります。

33
RoraΖ

この回答は、質問の「TLSP」サブ側面のみを扱います。


iPプロトコル番号のリストには、「トランスポート層セキュリティプロトコル」として「TLSP」が含まれています。

そのプロトコルについて聞いたことがありません。 HTTPSページの表示に使用するプロトコルではありません。

TLSPは非常にあいまいなプロトコルのようです。そしてそれは 1994-10年に登録された でした。これは、以前は一般に「TLS」と呼ばれていたプロトコルの前でした。その当時、プロトコルはまだ「SSL」と呼ばれていました。 「TLS」の最初の公開草案は、2年後の1996年11月26日の日付です。

タイムラインの詳細については、この質問を参照してください:

IANAは「[email protected]」を登録者として指定します。その名前は私にとってベルを鳴らしません。 bull.se Webサイトもアクティブではなくなりました。

実際には、 1994年に「CTOセキュリティソリューション」として「ブル」企業で働いていたスウェーデン人のChristerÖbergのLinkedInページ があります。これが「TLSP」登録を一度送信した人だと思います。 (そして、彼が「TLSP」が本当に何であったかをあなたに話すことができる唯一の人であることも。)

8
StackzOfZtuff

TCPにはIPプロトコル番号があります:0x06

TSL/SSLはアプリケーションプロトコルであり、一部のプログラム(オペレーティングシステムではない)がパケットを処理することを意味します。たとえば、WebサーバーがHTTPS要求を受け入れている場合、TCPパケット内にあるSSLパケットを処理するのはWebサーバーです。

TLSP 0x38プロトコルは、クリプトネット固有です。 Kryptonet鍵管理を何年も使用している人はいません。

通信パケットは、その内容に基づいて一般的に処理されません。サーバーは、get goからのパケットが正しいプロトコルであることを期待します。たとえば、SSLサーバーがソケットをリッスンしていて、非SSLパケットを受信した場合、それは無視されます。

3
Tyler Durden