3. Binding to Application Contexts (アプリケーションコンテキストへのバインディング)
3. Binding to Application Contexts (アプリケーションコンテキストへのバインディング)
エクスポーターを使用して鍵マテリアルを取得することに加えて, 鍵マテリアルを使用するアプリケーションは, 鍵マテリアルが使用される上位層コンテキストを安全に確立する必要があります。このコンテキストの詳細はアプリケーションに依存しますが, 鍵とともに使用されるアルゴリズムとパラメータ, 鍵を使用するエンドポイントの識別子, 鍵が使用されるセッションの識別子, コンテキストおよび/または鍵のライフタイムなどが含まれる可能性があります。少なくとも, エクスポーターが使用されることを通知する何らかのメカニズムが必要です。
この仕様は, このようなコンテキストについて合意するための単一のメカニズムを義務付けていません。代わりに, 使用できる (そして互いに補完できる) いくつかの可能性があります。例えば:
-
上位層コンテキストに関する情報は, エクスポーターラベルの後の任意データに含めることができます (セクション 4 を参照)。
-
上位層コンテキストに関する情報は, ClientHello および ServerHello メッセージに含まれる TLS 拡張で交換できます。このアプローチは [DTLS-SRTP] で使用されています。ハンドシェイクメッセージは Finished メッセージによって保護されるため, ハンドシェイクが完了すると, ピアは情報について同じビューを持つことになります。拡張は限定的な形式のネゴシエーションも可能にします: 例えば, TLS クライアントは一部のコンテキストパラメータについていくつかの代替案を提案でき, TLS サーバーはそれらのうちの 1 つを選択できます。
-
上位層プロトコルは独自のハンドシェイクを含むことができ, これは TLS によってエクスポートされた鍵を使用して保護できます。
コンテキストがどのように合意されても, エクスポートされた鍵をどのアプリケーションが使用するかを示す部分が 1 つ必要です。この部分が曖昧さ回避ラベル文字列です (セクション 4 を参照)。
TLS メッセージを上位層プロトコルに埋め込むだけでは, すべての重要なコンテキスト情報が自動的に保護されるわけではないことに注意することが重要です。上位層メッセージは TLS Finished メッセージでカバーされていないためです。