设为首页 收藏本站
查看: 1239|回复: 0

[新闻资讯] Google正式启用 DNS-Over-HTTPS 域名安全查询服务

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-4-5 10:19:55 | 显示全部楼层 |阅读模式
2016.4.1日,Google正式启用了 DNS-Over-HTTPS 域名安全查询服务

传统的DNS请求和响应基本上还是基于明文的UDP(绝大多数使用UDP)或TCP传输,非常容易被劫持,尤其是最终用户和本地DNS(i.e运营商的recursive resolver)解析之间这段,相比从本地DNS解析到权威域名服务之间的安全性要差很多。虽然已经有很多技术手段尝试通过验证和加密来增强最终用户到本地DNS解析之间的安全性,但是没有一项是被广泛部署应用的。

要真正解决DNS的劫持问题要靠全面部署DNSSEC,但是统计显示全球DNS流量只有不到14%是启用了DNSSEC保护的。为了在这个过渡阶段提供更好的安全和隐私保护,Google在2016年4月1日(估计是故意选在这个时间点)推出了DNS Over HTTPS查询服务作为DNSSEC的有力补充,提供DNS请求的端到端验证。

Google的DNS Over HTTPS使用起来很简单,提供的是基于HTTP GET请求的查询方式,返回结果是JSON格式,可以很容易的被各种开发工具集成(Python/PHP/JavaScript 等)。

该服务支持以下参数:
name
唯一的一个必选string参数,就是你要查询的域名地址。长度在1-255,字符在[0-9a-zA-Z-.],不支持非ASCII字符。
type
可选string, 默认是1。RR type可以用[1, 65535]之间的数字表示,或者canonical string表示(A, AAAA等)。目前支持:A, AAAA,CNAME, MX,ANY,PTR
cd
布尔型,默认是false。CD(Checking Disabled)字段,设置为true时禁用DNSSEC validation。可用格式:cd, cd=0, cd=1, cd=false, cd=true
edns_client_subnet
可选string,默认为空。这个是edns0-client-subnet选项。格式是:IP/Mask。比如:1.2.3.4/24,2001:700:300::/48。

反向域名的解析,以查询taobao.com为例,反向解析可以查询:110.75.115.70或者70.115.75.110.in-addr.arpa
Google的Public DNS一般会发送经过粗略anonymize的网络掩码到权威域名服务器,从而能够得到根据客户IP确定的最优服务器IP。
Google的考虑非常周到,如果你出于隐私原因使用DNS Over HTTPS,不想让你的任何网络信息发送到权威域名服务器,可以设置edns_client_subnet=0.0.0.0/0。(真是良心服务啊!)

DNS响应格式为JSON

一个成功的响应
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
  "Status": 0, // DNS status. standard DNS response code
  "TC": false, // Whether response is truncated
  "RD": true, // Always true for Google Public DNS
  "RA": true, // Always true to Google Public DNS
  "AD": false, // Whether all data in response has been cryptographically verified
  "CD": false, // Whether the client asked to disable DNSSEC
  "Question": [
    {
      "name": "taobao.com.", // FQDN with training dot.
      "type": 1              // Standard DNS RR type
    }
  ],
  "Answer": [
    {
      "name": "taobao.com.", // Must match name in question
      "type": 1,             // Standard DNS RR type
      "TTL": 20,             // In seconds
      "data": "110.75.115.70"// IP address in text
    },
    {
      "name": "taobao.com.",
      "type": 1,
      "TTL": 20,
      "data": "140.205.220.96"
    }
  ],
  "Additional": [],
  "edns_client_subnet": "119.29.29.29/0" // IP address with network mask
}




如果请求失败则会返回诊断信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
  "Status": 2,
  "TC": false,
  "RD": true,
  "RA": true,
  "AD": false,
  "CD": false,
  "Question": [
    {
      "name": "dnssec-failed.org.",
      "type": 1
    }
  ],
  "Additional": [],
  "edns_client_subnet": "119.29.29.29/0",
  "Comment": "DNSSEC validation failure. Please check http://dnsviz.net/d/dnssec-failed.org/dnssec/."
}




虽然HTTP不存在截断的问题,但是权威服务器返回的响应可能会是截断的,所以需要TC字段来标记。另外,由于HTTP消息没有大小限制,所以这里的EDNS实现和普通的EDNS实现机制不同,在请求里是一个参数,在响应里是一个字段。

该服务尚处于Beta阶段,参数和返回的JSON格式可能会发生改变,但是以Google做事的风格,应该会提供向后兼容的平滑升级方法。
想要尝试的朋友请移步:https://dns.google.com。墙内的同学请自备梯子,话说墙内访问谷歌的DNS都难,估计这个服务在国内又是不可用状态。

wKioL1cBYNzjK-1UAAB4BrwsH70580.jpg
命令行解析方法:
1
2
$ curl 'https://dns.google.com/resolve?name=www.126.com'
{"Status": 0,"TC": false,"RD": true,"RA": true,"AD": false,"CD": false,"Question":[ {"name": "www.126.com.","type": 1}],"Answer":[ {"name": "www.126.com.","type": 5,"TTL": 11215,"data": "mcache.mail.163.com."},{"name": "mcache.mail.163.com.","type": 5,"TTL": 16975,"data": "email.163.com.lxdns.com."},{"name": "email.163.com.lxdns.com.","type": 1,"TTL": 116,"data": "176.34.63.150"}]}




目前该功能还处于beta阶段
https://developers.google.com/speed/public-dns/docs/dns-over-https  Google Developer说明页面

有同学会说,国内不少公司都已经有类似的产品了:
  • 腾讯有httpdns,是作为一个能够更好的调度自家流量的工具,仅仅用来解析自家域名的,基于HTTP,不是作为一个公共服务提供给用户使用的。
  • dnspod提供DNS Over HTTP,叫做D+。功能简陋(基于HTTP,不支持EDNS)不说,想要加密功能居然还要收钱!要是国内dns.google.com访问的了,此DNS Over HTTPS一出,dnspod的D+立马就被拍死了。


Google的DNS Over HTTPS为用户免费提供:
  • 高可用的查询
  • 支持EDNS选项
  • 用户隐私保护
  • 支持DNSSEC Validation
  • 支持常见的Record Types
  • 可作为一个调试工具,返回查询失败原因


服务虽好,但是也有一点不足,就是不支持批量域名,希望将来可以支持。不过支持批量域名查询需要支持POST请求方式,因为URL的长度限制问题。

备注
前面提到全球DNS请求只有不到14%是启用了DNSSEC,是通过下面的统计网站查询的。
  • http://stats.labs.apnic.net

该网站不仅可以查询DNSSEC的流量,还能查询Google Public DNS的流量,目前Google Public DNS流量占全球DNS查询总量的12+%!



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-199890-1-1.html 上篇帖子: 百度云加速3.0新版测试体验 下篇帖子: Ubuntu MATE 16.04 Alpha 1 发布 Google
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表