web-dev-qa-db-ja.com

SSLセッションベースのみですか? SSL接続の(正式な)定義はありますか?

SSLに関するさまざまなドキュメントで、接続についての言及があります。
しかし、コンテキストから、これが基になるTCP接続またはSSL接続を意味するかどうかはわかりません。
SSLプロトコルにはSSL接続(正式に定義された)はなく、SSLセッションのみがあると思っています。
したがって、たとえば次のように読んだ場合:

SSLセッションごとに、複数の接続をセットアップできます。各接続は同じセッションパラメータを使用しますが、キーは異なります

または

SSLセッションは、それを生成した接続よりも長く存続できます

接続はTCP接続ですよね?
正式に言えば、これまでにSSL Connection

3
Jim

SSLがセットアップされると、ハンドシェイクが行われます。このハンドシェイクにより、2つのクライアントは会話の詳細を安全に決定し、キーマテリアルを交換できます。ハンドシェイクが完了すると、両側が安全に通信できます。この会話全体は単なるメッセージの交換なので、SSLは技術的にトランスポートプロトコルに限定されません。本当に必要であれば、SSLをUDPで実行することもできますが、標準のライブラリではおそらくサポートされていないため、試してみることはお勧めしません。

質問に完全に答えるために、SSLプロトコルには「このSSLセッションは終了しています」というメッセージはありません。セッションは、トランスポート層とアプリケーション層によって提供されるロジックに関連付けられており、会話が「終了」したときにリソースの割り当てを解除するのは、SSL実装次第です。

アプリケーションの1つのこと可能性があるは、TCP接続の周りにSSLラッパーを作成し、いくつかのメッセージを送信し、「完了」メッセージを送信し、 SSLラッパー、最初のステップに戻りますなし TCP接続を閉じます。これにより、単一の接続を使用して複数のSSL "セッション"をシリアルで実行できます。ユースケースが何であるかわからないので、新しい接続を作成しますが、あなたを止める技術的な制限はありません。

4
Polynomial

実際の接続はTCPであり、SSLはそのセキュリティの側面と実際のデータを提供するアプリケーション層を指示します。同じ接続を使用して、前のセッションを使用して新しいSSL「接続」を開始できます。または新しいセッションは、それが完全なハンドシェイク(高価な呼び出し)か短縮ハンドシェイクかを決定するために使用または再利用されます。

0
ObiWanKenobi