首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关于 DNS 和根证书的一点拙见

相信很多朋友都曾经有碰到想要访问某个网站,然而当你在电脑上去打开它的时候,你发现无法打开,当你请求你的朋友帮你完成访问的时候,他可以正常打开。当时就慌了,曾怀疑网络,怀疑电脑,甚至怀疑人生。

什么是DNS,什么时候会用到?

DNS为英文Domain Name System的首字母缩写,中文翻译为域名解析,不管是使用电脑还是手机,每当你使用 Web 浏览器或其他应用程序的时候,就很可能会涉及到域名。

简单来说,当我们使用浏览器或应用程序获取信息、数据的时候,就是一个信息、数据交互的过程。正常情况,我们也可以通过IP来进行交互,IP是我们在网络上的身份证明。但IP资源有限,如果一个应用或一个web就要单独使用一个IP,很快就会IP枯竭,于是就会出现,同一个IP,可能对应不同的内网地址,同一个IP,安置多个web或应用。

域名就是在这样的情况下出现了,当我们在浏览器键入地址:例如baidu.com,我们的计算机是要去访问百度公司的IP,IP是多少呢,DNS就开始发挥作用,它会把baidu.com翻译成IP地址123.125.115.110,这时,我们的计算机就知道了,应该去网络上寻找123.125.115.110,这个把域名解析成IP的过程便称为 DNS 查询。

当然在这个过程中,你的计算机首先进行通信的会是DNS服务器,它能够且必须知道你正在访问的站点,因为是DNS告诉你该去访问谁的。当然,当DNS服务器不乐意你去访问某个网站的时候,它会选择不告诉你(或是它的主人让它不要告诉你)。

安全问题

正常的情况下,计算机会有一些措施来确保,从DNS查询之后返回的结果,是正确的。但是总会有一些特殊的情况,就如上文的,DNS服务器它知道你要访问的域名所对应的IP,但它就是不告诉你。更恶劣的情况就是,它告诉你,但IP是假的,因为DNS服务器也不能识别给它下命令的是不是真正的主人。

那么在这样的情况下,很可能你的计算机就会被欺骗,进而引向了恶意的第三方,在这种情况下,你相关的隐私就全部泄露了。第三方完全知道了你访问了什么样的网站,访问了什么样的内容,甚至你在网站上输入的相关个人信息、账号、密码等等。

流氓代码

某些DNS提供的厂商,为了某些利益,在你访问DNS服务器进行解析查询的时候,它会顺带奉上一段代码,可能是JS,也可能是别的。

具体作用就是当你和真正的目标网站进行信息交互,数据获取之后,它会连同你获取到的数据一起进行展示,具体的展示的内容,就不好说了。

避免泄露

那么不想让厂商知道你的访问习惯,不想让厂商随意引导你的访问目标,甚至给你捎带代码,那么最好的办法就是自己动手,自己搭建DNS服务器。如果觉得成本太大,那么就从众多DNS服务提供商里面选择一家最好的来使用吧。

图片来源于网络

SSL加密

访问的信息容易被恶意引导!加载的信息被恶意插入了!用户的隐私就直接被人获取了!怎么办呢?加密!SSL加密技术是为保护敏感数据在传送过程中的安全,而设置的加密技术。

图片来源于网络

SSL证书

SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。SSL证书包含三部分,用户的信息,用户的公钥,还有CA中心对该证书里面的信息的签名,当一个访问发起之后,服务器端会把SSL证书发送给访问者。

图片来源于网络

根证书

根证书,是由CA认证中心签发给访问者的数字证书,换句话说是就是CA的公钥,主要用于验证服务器端传送过来的SSL加密证书,经过根证书(CA的公钥)验证,加密证书无误,确实为CA认证中心认证的网站。

验证完成之后,访问者便通过证书中的公钥生成一个加密过的“通信用密码”,将密码发送回服务器端,服务器端通过自己的私钥对“通信用密码”进行解密,得到通信用密码,访问者与服务器端通过通信用密码进行数据交互。

风险

根据以上的流程,要实现最终的加密通信,最重要的出发点,根证书,根证书能证明SSL证书的真实性。根证书是CA认证中心签发的证书,下载了根证书,就表示对所有从根证书对应CA认证中心所签发的证书完全信任。

所有当DNS将访问者误导到另一个不知名的网站上时,这个网站可能会向访问者发送它的证书,同时提示你安装它的根证书,一旦安装之后,这个冒名顶替的网站便摇身一变,看上去完全没任何问题。

结论

一般情况下,普通的用户者是完全没有必要去添加第三方的根证书,除非你明确知道你要访问的对象确实在使用这个第三方的证书。

如果条件许可,独自建立DNS服务器是最好的选择。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190219G17E6S00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券