Google正式启用 DNS-Over-HTTPS 域名安全查询服务

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

一个成功的响应

{
  "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
}

如果请求失败则会返回诊断信息

{
  "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都难,估计这个服务在国内又是不可用状态。

命令行解析方法:

$ 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+%!

时间: 2024-11-05 21:51:43

Google正式启用 DNS-Over-HTTPS 域名安全查询服务的相关文章

配置tomcat的https域名

配置tomcat的https域名: <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslEn

【基础服务】简单理解DNS的递归、迭代查询 - DNS(一)

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53.在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明. 简单理解DNS的递归.迭代查询过程: 客户端发

域名注册网站服务比较

一直想建立一个属于自己的网站,不过由于种种原因,一直也没有得到落实!现在就开始准备收集资料.做技术准备吧! 下面为收集到的资料: 1.一个网站最重要的就是域名了,其它的不是不重要,而是相对来回说次要了.问:如果我域名在中国万网注册,虚拟主机在那些便宜些的地方买,会不会出现什么严重问题,(比如小网站倒闭导致空间不能用,甚至连同域名也不能换其他空间了),会出现这种情况吗? 答:㈠不管你是去万网注册还是去新网注册,正常的情况下他们都会给你发一个域名注册成功的电子信息,一般发到你的电子信箱里面. 如果你

超级站域名助理_在线超级抢注_域名抢注软件_域名批量查询工具

抢注是什么: 所谓抢注,简单地划分,有两种意义上的抢注: 1.一个从未被注册过的域名的抢注,这种情况下,一般是域名的注册者预见到该域名潜在的价值,在其他人想到之前把该域名注册下来.此范围内包含一些对知名品牌,知名团体或个人的名称.知识产权等.这种抢注带有很强的预见性. 2.对一个曾经被注册过的域名的抢注,一个被注册过的域名,如果未能够在有效期结束前及时续费,则会在一段时间后被删除.在被删除后的第一时间内,抢先注册到该域名的行为,视作另一种抢注,也是目前大家公认的抢注. 一个域名在被删除之后,任何

DNS的递归查询和迭代查询

百度运维部二面,直接懵逼的节奏 (1)递归查询 递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求, 必须使用一个准确的查询结果回复客户机. 如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机. 客户机和服务器之间的查询是递归查询 是递归查询告诉客户机IP (2)迭代查询 DNS 服务器另外一种查询方式为迭代查询,DNS 服务器会向客户机提供其他能够解析查询请求的DNS 服务器地址, 当客户机发送查询请求时,

未注册wang域名批量查询工具

一.支持规则查询 可自定义生成域名进行查询,可生成任意位数的字母数字域名,根据[声母].[韵母]生成单拼,双拼,三拼等域名,还可根据字典生成,支持全拼.首拼识别,全国城市区号.城市全拼.城市首拼.热门词汇等好域名一网打尽 二. 支持查询域名信息丰富 可查询域名是否已注册.注册时间.续费时间.过期时间.域名年龄.备案名称.备案性质.备案号.审核时间.百度收录.谷歌收录.360收录.PR.百度权重.搜狗权重 三.支持多线程查询,查询速度飞快 多线程可同时查询多个域名,大大加快查询速度,为您节省时间.

网站域名被暂停服务怎么办?

在这里博主拿我在誉名网(www.yuminghome.com)注册的域名为例,域名被暂停服务前会通过电话或邮件中的一种方式通知您网站是否可以开通以及开通方法,如您不太清楚,也可以拨打新网客服热线进行咨询.具体方法如下: 一.自查.客户/权利人举报或投诉 1.您需要按照要求清除干净违法信息,并承诺加强网站信息安全管理: 2.登陆到新网的会员中心在线问题提交:您也可以拨打400-818-2233由新网客服代为提交(如果您没有新网的直接会员ID建议直接拨打400-818-2233电话由新网客服代为提交

[从零开始搭网站六]为域名申请免费SSL证书(https),并为Tomcat配置https域名所用的多SSL证书

点击下面连接查看从零开始搭网站全系列 从零开始搭网站 由于国内的网络环境比较恶劣,运营商流量劫持的情况比较严重,一般表现为别人打开你的网站的时候会弹一些莫名其妙的广告...更过分的会跳转至别的网站. 那么为了解决这种情况,那么我们就要申请SSL证书,并且配置服务器. 并且,我准备再学习并写一个微信小程序,而微信小程序所有接口都需要走https,那么全线https就势在必行. 目前免费https其实有很多家,我之前出过一个教程是 用Let's Encrypt实现Https(Windows环境+To

如何创建一个https的站点(超简单) 以及 IIS7.5绑定Https域名

1.申请免费1年的ssl证书(传送门:https://common-buy.aliyun.com/?spm=5176.2020520163.cas.29.N0xOPM&commodityCode=cas#/buy).免费证书,只能使用一个域名,不支持主域名下的二级域名,请悉知.不过1个阿里云帐号可以申请20个免费证书,对于普通账户足够了.        2.购买完成后,需要补全信息. 这里填写你要做https的域名 仔细填写,我的域名和ecs都是阿里云的,直接就选择了DNS.邮箱要填仔细了,后面