跳到主要内容

4. 使用配置文件 (Usage Profiles)

本协议提供了灵活性, 可适应若干不同使用场景.本文档定义了两个使用配置文件: (1) 机会式隐私, 以及 (2) 带外密钥固定认证; 如果客户端与支持 TLS 的 DNS 服务器之间存在信任关系, 后者可用于获得更强的隐私保证.其他认证方法将在后续文档 [TLS-DTLS-PROFILES] 中定义.

4.1 机会式隐私配置文件 (Opportunistic Privacy Profile)

对于机会式隐私, 类似于 SMTP 机会式安全 [RFC7435], 一方并不要求隐私, 但希望在可能时获得隐私.

使用机会式隐私时, 客户端可能从不受信任的来源获知一个启用 TLS 的递归 DNS 解析器.一个可能的示例流程是, 客户端使用 DHCP DNS 服务器选项 [RFC3646] 发现启用 TLS 的递归解析器的 IP 地址, 然后在端口 853 上尝试 DNS-over-TLS.对于这种发现得到的 DNS 服务器, 客户端可能验证该解析器, 也可能不验证.这些选择最大化了可用性和性能, 但会使客户端容易受到移除隐私保护的路径上攻击.

任何现有客户端都可以使用机会式隐私, 但它只在不存在路径上主动攻击者时提供隐私.

4.2 带外密钥固定隐私配置文件 (Out-of-Band Key-Pinned Privacy Profile)

带外密钥固定隐私配置文件可用于 DNS 客户端与服务器之间已存在既定信任关系的环境 (例如企业网络中的存根到递归解析器关系,主动维护的合约服务关系, 或配置为使用特定 DNS 服务器的移动应用程序).就本配置文件而言, "out-of-band" 一词表示一种不在本文档范围内的配置机制.

此隐私配置文件将隐私约束为以下之一:

  1. 客户端要求服务器身份与为该服务器带外配置的 Subject Public Key Info (SPKI) 固定集合匹配.

  2. 客户端要求服务器身份使用某个证书颁发机构进行认证, 该证书颁发机构已作为该服务器的信任锚带外配置.

使用带外密钥固定隐私配置文件的 DNS 客户端按照第 3 节给出的过程建立 TLS 连接, 但它们还必须使用带外配置的固定密钥或信任锚对服务器进行认证.带外密钥固定隐私客户端应当配置一个单一密钥标识符.对于 SPKI 固定集合, 实现必须按照 [RFC7250] 支持原始公钥认证.

如果认证尝试失败, 带外密钥固定隐私客户端必须拒绝通过该 TLS 连接发送任何 DNS 查询.它禁止回退到通过任何明文连接进行通信.对于客户端在配置带外密钥固定隐私服务器的同时还配置了其他服务器 (可能通过明文 DNS) 的情况, 客户端可以回退到这些其他服务器.

当仅使用带外 SPKI 固定集合进行认证时, 客户端必须使用 [RFC7469] 中描述的公钥固定.在这种情况下, TLS 服务器的证书或公钥会与一个或多个 "known-good" SPKI 指纹进行匹配.当仅使用固定的 SPKI 指纹来约束服务器身份时, 客户端的信任锚就是 SPKI 指纹本身.服务器本身不会在其证书链中发送该信任锚.

客户端可以通过握手证明其拥有被固定服务器密钥对应的私钥.SPKI 固定集合隐私配置文件的安全性取决于用于认证的预配置 SPKI 值的机密性和完整性.Appendix A 给出了如何生成 SPKI 指纹的示例.