深入探究 DNS QNAME 最小化技术
1. QNAME 最小化技术的整体发展趋势
QNAME 最小化(qmin)技术在 DNS 系统中扮演着重要角色,有助于提升用户隐私和减少不必要的查询信息泄露。从整体趋势来看,支持 QNAME 最小化的解析器的相对采用率仍在上升。尽管在早期研究中,只有一小部分解析器使用 qmin,但如今大部分解析器已支持该技术。
以 2020 年为例,qmin 技术的采用率出现了突然的增长。从 DNSThought 观察到的启用 qmin 的解析器的十大自治系统编号(ASN)来看,自 2020 年 1 月起,谷歌成为启用 qmin 解析器最多的 ASN。
不过,DNSThought 用于测量 qmin 采用率的 RIPE Atlas 探针使用的是
a.b.qnamemin - test.internet.nl
区域,未采用利用通配符标签来减轻缓存委派影响的改进方法。这可能导致一些解析器因之前转发请求的缓存最小化查询,而在 DNSThought 中被误判为启用了 qmin。为此,通过与 NLnet Labs 合作,设置了一个新区域,用于采用改进方法测量开放解析器对 qmin 的采用情况。
2. 开放解析器对 QNAME 最小化的采用情况
2.1 测量方法
早期 De Vries 等人的研究使用了来自 Rapid7 的 800 万个地址列表,通过扫描互联网上响应 UDP 端口 53 的服务器生成该列表。为了对开放解析器是否启用 qmin 进行分类,向 NLnet Labs 控制的区域发送 TXT 资源记录(RR)请求。分类流程如下:
graph TD;
A[发送查询到解析器] --> B{解析器响应?};
B -- 是 --> C{响应是否有错误?};
B -- 否 --> D[超时];
C -- 否 --> E{是否为正确答案?};
C -- 是 --> F[错误响应];
E -- 是 --> G[分类为 HOORAY 或 NO];
E -- 否 --> H[错误答案];
在本次研究中,由于后期对 Rapid7 列表的访问受限,使用了 2022 年 2 月的列表,该列表包含 600 万个地址。2022 年 4 月,利用亚马逊网络服务(AWS)的 EC2 实例,从北弗吉尼亚、东京和法兰克福三个地理位置发送查询,每个解析器发送 100 个查询,以获取更多数据点。
为克服之前系统中解析器可能缓存测试委派信息,导致后续测试结果偏向 qmin 的问题,开发了自定义权威服务器。该服务器允许根据查询合成自定义查询名称和委派信息,通过通配符标签发送唯一查询名称,避免缓存委派的影响。例如,从东京发送的第一次查询
a.tokyo - 00.qnamemintest.net
,qmin 解析器会向
ns1
查询
tokyo - 00.qnamemintest.net
,
ns1
可将解析器引导至
ns2
;后续从东京发送的查询
tokyo - 01.qnamemintest.net
不会在缓存中找到。
2.2 测量结果
| 年份 | 地理位置 | #解析器 | #查询数 | 响应率 | 无错误率 | 正确响应率 | qmin 占比 |
|---|---|---|---|---|---|---|---|
| 2018 | 荷兰 | 8M | 8M | 64% | 32% | 72% | 1.6% |
| 2022 | 北弗吉尼亚 | 6M | 600M | 70.82% | 19.46% | 78.12% | 16.43% |
| 2022 | 东京 | 6M | 600M | 70.71% | 19.45% | 78.32% | 16.42% |
| 2022 | 法兰克福 | 6M | 600M | 70.78% | 19.45% | 78.21% | 16.42% |
从这些结果可以看出:
- 从 2018 年到 2022 年,最小化查询的占比从 1.6% 增加到约 16%,表明开放解析器对 qmin 的使用有显著增长。
- 不同地理位置的测量结果偏差较小。
- 2022 年 2 月 Rapid7 扫描的地址数量比 2018 年减少了 25%,但非超时查询的占比从 64% 增加到近 71%。
- 无错误响应的占比从 32% 下降到约 19%,且超过 90% 的错误为 REFUSED,可能是因为部分解析器配置为仅处理指定子网内客户端的查询。
- 正确 TXT 响应的占比从 72% 增加到 78%。
2.3 冲突解析器情况
早期研究对每个解析器仅发送一个查询并分类,而本次研究对 Rapid7 列表中的每个地址发送 100 个查询,揭示了更多信息。首先过滤掉未给出单个正确 TXT RR 响应的解析器(527 万个),这些解析器的响应包含超时、错误和不正确的 TXT RR。不正确的 TXT 响应包括无内容、验证令牌、域名过期或禁用通知以及诸如 “txt”、“this is a txt record” 等回复。
剩余的 73 万个解析器至少有一个正确答案,其中 87.3% 对 80 - 100 个查询正确响应,其余 10 万个解析器对 1 - 79 个查询正确响应。部分解析器在 100 个查询中,既回复 “HOORAY” 又回复 “NO”,被称为冲突解析器。
| 年份 | #解析器 | qmin 占比 | 非 qmin 占比 | 冲突解析器占比 |
|---|---|---|---|---|
| 2018 | 8M | 0.2%(18.8k) | 13.7%(1.1M) | N/A |
| 2022 | 6M | 1.3%(80.2k) | 8.9%(539.3k) | 2%(120.8k) |
冲突解析器中正确回复的最小数量为 2 个(一个 “HOORAY” 和一个 “NO”),此时 qmin 占比为 50%。当发送 100 个查询时,“HOORAY” 和 “NO” 响应的比例范围从 1:99 到 99:1。分析显示,约 10.9 万个冲突解析器中,73.4%(8 万个)的 qmin 占比小于 50%,7.4%(约 8000 个)的 qmin 占比大于 90%。
从地理位置来看,冲突解析器占比前十的国家为:
| 国家 | 占比 |
| ---- | ---- |
| 中国 | 26.8% |
| 俄罗斯 | 11.4% |
| 美国 | 5.5% |
| 巴西 | 4.5% |
| 印度尼西亚 | 3.6% |
| 澳大利亚 | 3.4% |
| 乌克兰 | 3.0% |
| 伊朗 | 2.4% |
| 波兰 | 2.3% |
| 南非 | 2.1% |
在 2022 年 4 月首次测量后的五个月(2022 年 9 月),33.1% 的 qmin 启用解析器、38.2% 的非 qmin 解析器和 35.5% 的冲突解析器不再响应,各类型解析器在丢失率上无显著差异。
2.4 意外的谷歌公共 DNS 解析器
从图中可见,自 2020 年以来谷歌 ASN 的 qmin 启用解析器迅速增加,但在开放解析器的主动测量中,谷歌公共 DNS 解析器(8.8.8.8 和 8.8.4.4)被分类为未启用 qmin。通过使用三个不同区域
a.b.qnamemin - test.nlnetlabs.nl
、
a.b.qnamemin - test.internet.nl
和
a.b.qnamemintest.net
进行额外查询,只有
a.b.qnamemin - test.internet.nl
对谷歌公共 DNS 解析器的查询回复 “HOORAY”。
与 NLnet Labs 沟通得知,谷歌在 2020 年 5 月表示已实现 qmin,但有深度限制,仅在处理根和顶级域名(TLD)时发送最小化标签,对二级域名(如 co.uk)不进行最小化处理。未来谷歌希望将其扩展到公共后缀加一个标签。因此,谷歌公共 DNS 在 DNSThought 中未显示为最小化查询,为此,
a.b.qnamemin - test.internet.nl
对其深度限制设置了例外,以反映其在一定程度上进行了查询最小化。这引发了关于在性能和隐私方面,查询最小化的适当程度的思考。
3. 被动测量下的 QNAME 最小化情况
3.1 测量方法
为了在被动数据集中识别最小化查询和启用 qmin 的解析器,采用了与之前研究类似但有所扩展和改进的方法。
-
识别最小化查询
:将根域名下包含一个标签、
.nl
域名下包含两个标签的查询视为最小化查询。为避免谷歌 Chrome 浏览器对不存在的单标签域名查询的影响,过滤掉这些查询,只考虑针对现有域名的查询。对于 DNS - OARC 收集的 DITL 数据(无 DNS 响应),验证每个单标签查询的标签是否属于注册顶级域名;对于
.nl
数据集(包含查询和响应),过滤出产生 NOERROR 响应码的查询。
-
识别启用 qmin 的解析器
:以之前识别为支持 qmin 的解析器流量为基础,同时考虑到冲突解析器的情况,降低识别错误率。还引入瑞典 ccTLD
.se
的数据,减少荷兰观测点可能带来的偏差。仅纳入在每个 ccTLD 当天至少有 10 次观测查询的解析器。启用 qmin 的解析器最小化查询的份额中位数超过 90%,与未启用 qmin 的解析器形成鲜明对比(未启用的解析器最小化查询份额小于 20%)。将向二级域名服务器发送至少 77.2% 最小化查询的解析器分类为启用 qmin 的解析器,该阈值高于非 qmin 解析器最小化查询的 95% 分位数和冲突解析器的 75% 分位数,可减少错误分类。
3.2 测量结果
-
整体趋势
:自 2019 年以来,从 TLD 的角度看,qmin 采用率有显著提升。图显示了发送到 K - Root 服务器和三个
.nl权威名称服务器的查询中最小化查询的份额。在.nl域名下,最小化查询的比例从 2019 年的 43% 上升到现在的 64%,且无论是否过滤不存在域名的查询,采用率都在上升,偶尔的下降可能由爬虫或配置错误等随机事件导致。但在根域名下情况较为复杂。 - 不存在域名的影响 :如果考虑根域名下所有域名的查询,qmin 采用率在过去几年甚至有所下降,2017 年 35.2% 的查询为最小化查询,到 2021 年降至 28.3%。过滤掉不存在域名的查询后,根域名下最小化查询的比例从 2017 年的 0.4% 上升到 2021 年的 2.7%。2021 年,单标签查询数量从 42% 降至 28%,这与 2020 年 11 月 Android 版新 Chromium 版本的推出相关,此后随机子域名查询功能被禁用,根服务器运营商也注意到了这一变化,说明早期研究数据受 Chrome 行为影响较大。
-
qmin 采用的详细情况
-
按国家划分
:2021 年根流量存在明显的本地差异,例如不丹的 K - Root 站点有 17.8% 的查询为最小化查询,而塔吉克斯坦的站点仅为 0.1%。以 2022 年 10 月 4 日
.nl名称服务器收集的数据为例,将每个 IP 地址映射到其对应的国家和自治系统(AS)。当天观测到来自 236 个国家和 38469 个 AS 的 140 万个唯一 IP 地址的 29 亿次查询。仅考虑来自至少 100 个唯一 IP 地址的国家,发现也门的最小化查询份额最高,主要由大型提供商推动,该国 10% 的解析器启用了 qmin,但这些解析器承担了该国大部分查询。不过,这些国家在.nl的总流量中占比很小。而.nl接收查询最多的国家中,最小化查询份额差异较大,如中国为 1%,英国为 59.5%,启用 qmin 的解析器份额也以英国最高,其次是荷兰。具体数据如下表:
| 国家 |.nl查询份额 | 最小化查询 | 启用 qmin 的解析器 |
| ---- | ---- | ---- | ---- |
| 美国 | 35.3% | 32.3% | 19.2% |
| 荷兰 | 20.6% | 41.6% | 28.9% |
| 德国 | 9.2% | 14.4% | 25.8% |
| 中国 | 4.6% | 1.0% | 4.4% |
| 英国 | 3.2% | 59.5% | 30.9% |
| 也门 | 0.01% | 89.2% | 10.0% |
| 阿富汗 | 0.01% | 85.7% | 19.5% |
| 伊拉克 | 0.01% | 84.5% | 45.3% |
| 贝宁 | 0.01% | 82.2% | 22.0% |
| 芬兰 | 1.0% | 81.9% | 33.6% | - 按网络划分 :在一个国家内,不同网络之间也存在显著差异。以荷兰为例,关注互联网服务提供商(ISP)网络。数据集中有 23 个属于 ISP 且从至少 10 个不同地址发送查询的网络,其中不到一半(10 个网络,43.5%)大部分时间通过启用 qmin 的解析器发送查询。例如,Freedom Internet(AS 206238)和 T - mobile Netherlands(AS 13127)似乎启用了 qmin,而前运营商 KPN(ASes 1136、8737 和 15879)的解析器最小化查询份额仅为 0.3%。
-
按国家划分
:2021 年根流量存在明显的本地差异,例如不丹的 K - Root 站点有 17.8% 的查询为最小化查询,而塔吉克斯坦的站点仅为 0.1%。以 2022 年 10 月 4 日
-
qmin 与其他互联网标准的关系
:启用 qmin 的解析器对“现代”互联网标准和 DNS 最佳实践的支持度更高。比较通过 IPv6 向
.nl名称服务器发送查询、支持 DNSSEC(通过设置查询中的 DO 标志)、指示 EDNS(0) 缓冲区大小为 1232 字节的解析器与不遵循这些最佳实践的解析器。结果显示,遵循这些最佳实践的解析器大多也支持 qmin,这些解析器占数据集所有解析器的 3.7%;而不遵循任何这些最佳实践的解析器中,只有少数启用了 qmin(占 4.8%);最大的一组解析器支持 DNSSEC,但使用传统 IPv4 并设置不同的缓冲区大小,其中 16.4% 发送最小化查询(占所有解析器的 63%)。具体数据如下表:
| 标准支持情况 | IPv6 | DNSSEC | 推荐缓冲区大小 | 全部 |
| ---- | ---- | ---- | ---- | ---- |
| ✓ | 35.5% | 26.4% | 48.4% | 54.4% |
| ✕ | 18.7% | 8.1% | 18.6% | 6.4% | -
qmin 的不足之处
:早期研究已表明,启用 qmin 的解析器偶尔会向
.nlTLD 权威服务器发送包含三个或更多标签的查询。对.nl和.se的观察证实了这一发现。忽略.nl权威的域名和记录查询后,77% 的启用 qmin 解析器偶尔会发送包含两个以上标签的查询,其中 55.1% 的情况会出现这种现象。
综上所述,QNAME 最小化技术在 DNS 系统中的采用率总体呈上升趋势,但在不同地理位置、网络和解析器之间存在显著差异。同时,该技术在实际应用中还存在一些不足之处,需要进一步优化和改进。在性能和隐私方面,查询最小化的适当程度也需要进一步探讨和明确。
超级会员免费看
44

被折叠的 条评论
为什么被折叠?



