跳到主要内容

3. Binding to Application Contexts (绑定到应用上下文)

3. Binding to Application Contexts (绑定到应用上下文)

除了使用导出器获取密钥材料外, 使用密钥材料的应用程序还必须安全地建立将使用密钥材料的上层上下文。此上下文的详细信息取决于应用程序, 但可能包括诸如将与密钥一起使用的算法和参数, 将使用密钥的端点的标识符, 将使用密钥的会话的标识符, 以及上下文和/或密钥的生命周期等内容。至少, 应该有某种机制来发出将使用导出器的信号。

本规范不强制要求使用单一机制来就此类上下文达成一致, 相反, 有几种可以使用的可能性 (并且可以相互补充)。例如:

  • 关于上层上下文的信息可以包含在导出器标签之后的可选数据中 (参见第 4 节)。

  • 关于上层上下文的信息可以在 ClientHello 和 ServerHello 消息中包含的 TLS 扩展中交换。这种方法在 [DTLS-SRTP] 中使用。握手消息由 Finished 消息保护, 因此一旦握手完成, 对等方将对信息具有相同的视图。扩展还允许有限形式的协商: 例如, TLS 客户端可以为某些上下文参数提出几个备选方案, TLS 服务器可以选择其中之一。

  • 上层协议可以包含自己的握手, 可以使用 TLS 导出的密钥进行保护。

无论如何就上下文达成一致, 都要求它有一部分指示哪个应用程序将使用导出的密钥。这部分是消歧标签字符串 (参见第 4 节)。

重要的是要注意, 仅仅将 TLS 消息嵌入上层协议可能不会自动保护所有重要的上下文信息, 因为上层消息不受 TLS Finished 消息的覆盖。