可以将 DNS over TLS/DoT 作为私人服务(身份验证)吗?

可以将 DNS over TLS/DoT 作为私人服务(身份验证)吗?

我已经设置了一个 DNS 解析器和 nginx 上游服务器作为工作的“DNS over TLS”服务器。(以及 DNS over HTTPS,但 android 使用 TLS)

到目前为止,这效果很好,但我希望通过某种身份验证将其设为私密。

只有特定用户才能使用它。

问题是.....例如在 Android 设备中,只能输入一个“私人 DNS 服务器”——我没有找到适合这种情况的身份验证方法。

有人知道如何“使用 Android 9 将我的 DNS over TLS 服务器设为私有”吗?

可能的“几乎解决方案”:配置 nginx 以仅允许来自特定 IP 地址的连接。(通过脚本生成允许 IP 地址列表并包含)

这有一个主要问题,即当 IP 改变时,客户端可能无法再解析 DoT 或 DynDNS 提供商。

尚未测试,但我认为这不应该是首选解决方案。欢迎提出建议。

答案1

DoT 和 DoH 都没有真正指定或实施过客户端身份验证。

尽管人们可以想象利用诸如客户端证书(任一)或 HTTP 身份验证机制(DoH)甚至 TSIG(任一)等协议功能,但实际的普通客户端并没有实现这些功能。

但是对于 DoH,您可以选择只将密钥放在 URL 的路径部分中。因此,您有一个简单的选项,甚至不需要客户端知道它正在进行身份验证。

除了需要通常不存在的客户端功能外,我认为您必须诉诸限制 DoT 的 IP 访问。
(理论上,我猜您可以检查 SNI,期望主机名中有一个秘密,但这会非常薄弱,因为所谓的秘密不会被保密。这不太现实,但主机名是 Android 客户端等的唯一配置参数,因此实际上没有太多选择。)

相关内容