DNS答案的答案可能与查询不同吗?

预期的DNS查找结果的示例(1):

nslookup google.com Server: 192.168.1.1 Address: 192.168.1.1#53 Non-authoritative answer: Name: google.com Address: 173.194.123.41 Name: google.com Address: 173.194.123.33 ... 

我所要求的例子(2)是否有效:

 nslookup google.com Server: 192.168.1.1 Address: 192.168.1.1#53 Non-authoritative answer: Name: google.coM Address: 173.194.123.33 Name: google.coM Address: 173.194.123.34 ... 

请注意第二个例子中的最后一个字母M. 这是最近与Verizon Fios Quantumnetworking注意到的。

DNS规范是否表示可以接受不同于您所请求的响应? 我知道DNS是不区分大小写的,如果您inputwww.GooGLe.cOM,您将获得与www.google.com相同的IP地址,但我认为在这两种情况下,响应应该/必须匹配查询究竟。

在你的情况下,一个parsing器很可能会在你的请求中join0x20编码 ,而且这种编码被caching,并在本地服务,这违背了惯例:

尽pipe在DNS中允许使用混合大小写,并且IETF草案使用了 “ 使用DNS标签中0x20位来提高交易身份 ”作为DNS伪造/中毒缓解技术,但这不是由DNS规范服务器没有义务返回确切的字符编码,虽然很less; 这是草案中讨论的一个潜在问题。

由于所有的** DNS实现都将请求完全复制到响应中(在实践中) ,因此以混合大小写的方式返回域请求。 客户端可以随机化字符大小写,并比较服务器的响应,该响应应该匹配:

( 第2.2节 )例如,响应者将下列问题名称视为平等,但可以被请求者视为不平等:

 www.ietf.org WwW.iEtF.oRg wWw.IeTf.OrG WWW.IETF.ORG 

攻击者需要成功猜测随机编码,否则客户端将忽略它。 由于编码的强度与域名的长度有关,更长的域提供更高的安全性 – 更多的字符,更多的熵。


对于一个非0x20实现的客户端(在消除了中间人引入编码的可能性之后),可能是因为编码返回的响应不在原始请求中 – 可能是中毒尝试的结果。