dns 解析过程
DNS domain name system 主机名和域名转换为IP地址的工作
①用户主机上运行着DNS的客户端,就是我们的PC机或者手机客户端运行着DNS客户端了
②浏览器将接收到的url中抽取出域名字段,就是访问的主机名,
并将这个主机名传送给DNS应用的客户端
③DNS客户机端向DNS服务器端发送一份查询报文(UDP最少发两个包而UTP最少发9个包 三次握手
四次挥手),报文中包含着要访问的主机名字段(中间包括一些列缓存查询以及分布式DNS集群的工作)
④该DNS客户机最终会收到一份回答报文,其中包含有该主机名对应的IP地址
⑤一旦该浏览器收到来自DNS的IP地址,就可以向该IP地址定位的HTTP服务器发起TCP连接
DNS 采用分布式集群的工作方式
根DNS服务器,顶级DNS服务器,权威DNS服务器。
跟就是一个点. 默认省略点(为什么域名根服务器只能有13台)
顶级服务 com org edu
权威服务器 amazon.com
二级域 google.com
子域 www.google.com
主机或资源名称 h1.www.google.com
[ 主机名 ].[ 二级域名 ].[ 顶级域名 ]
DNS 服务器的功能:
权威 DNS,自身具备解析能力
转发 DNS
缓存 DNS
七大网络协议 imageDNS 查询的过程如下图所示
1、在浏览器中输入www.qq.com 域名,检查自己本地的hosts文件是否有这个网址映射关系
2、如果没,则查找本地DNS解析器缓存
3、如果都没有,首先会找TCP/ip参数中设置的首选DNS服务器,也叫本地DNS服务器,向本地DNS服务器发起DNS查询请求,如果有,具有权威性。
4、如果没有,但该服务器有缓存,此解析不具有权威性。
5、若以上都失效,若未设置转发,本地DNS就把请求发至13台根DNS,根DNS服务器会判断这个域名(.com)是谁来授权管理,并会返回负责该顶级域名服务器的IP。如果该IP未能完成解析,他会找下一级DNS服务器地址给本地DNS服务器,直至找到www.qq.com主机。
6、若是转发就请求到上上级,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询。
https
1、对称密码算法:是指加密和解密使用相同的密钥,典型的有DES、RC5、IDEA(分组加密),RC4(序列加密);
2、非对称密码算法:又称为公钥加密算法,是指加密和解密使用不同的密钥(公开的公钥用于加密,私有的私钥用于解密)。比如A发送,B接收,A想确保消息只有B看到,需要B生成一对公私钥,并拿到B的公钥。于是A用这个公钥加密消息,B收到密文后用自己的与之匹配的私钥解密即可。反过来也可以用私钥加密公钥解密。也就是说对于给定的公钥有且只有与之匹配的私钥可以解密,对于给定的私钥,有且只有与之匹配的公钥可以解密。典型的算法有RSA,DSA,DH;
3、散列算法:散列变换是指把文件内容通过某种公开的算法,变成固定长度的值(散列值),这个过程可以使用密钥也可以不使用。这种散列变换是不可逆的,也就是说不能从散列值变成原文。因此,散列变换通常用于验证原文是否被篡改。典型的算法有:MD5,SHA,Base64,CRC等。
SSL的加密过程
需要注意的是非对称加解密算法的效率要比对称解密要低的多。
所以SSL在握手过程中使用非对称密码算法来协商密钥,实际使用对称解密的方法对http内容加密传输。
假设A与B通信,A是SSL客户端,B是SSL服务器端
A:我想和你安全的通话,我这里的对称加密算法有DES,RC5,密钥交换算法有RSA和DH,摘要算法有MD5和SHA。
B:我们用DES-RSA-SHA这对组合好了。这是我的证书,里面有我的名字和公钥,你拿去验证一下我的身份
A:验证真实,我生成了一份秘密消息,并用你的公钥加密了,给你
B:用自己的私钥解密,加密发送
https的缺点
虽然说HTTPS有很大的优势,但其相对来说,还是有些不足之处的,具体来说,有以下2点:
1、SEO方面
据ACM CoNEXT数据显示,使用HTTPS协议会使页面的加载时间延长近50%,增加10%到20%的耗电,此外,HTTPS协议还会影响缓存,增加数据开销和功耗,甚至已有安全措施也会受到影响也会因此而受到影响。
而且HTTPS协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。
最关键的,SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。
2、经济方面
(1)、SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。
(2)、SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗(SSL有扩展可以部分解决这个问题,但是比较麻烦,而且要求浏览器、操作系统支持,Windows XP就不支持这个扩展,考虑到XP的装机量,这个特性几乎没用)。
(3)、HTTPS连接缓存不如HTTP高效,大流量网站如非必要也不会采用,流量成本太高。
(4)、HTTPS连接服务器端资源占用高很多,支持访客稍多的网站需要投入更大的成本,如果全部采用HTTPS,基于大部分计算资源闲置的假设的VPS的平均成本会上去。
(5)、HTTPS协议握手阶段比较费时,对网站的相应速度有负面影响,如非必要,没有理由牺牲用户体验。
HTTPS和HTTP的区别主要如下:
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
cdn
CDN主要功能是在不同的地点缓存内容,通过负载均衡技术,就近访问,加速用户对网站的访问。
解析服务器获得CNAME 域名
对获取的CNAME域名,进行解析得到缓存服务器IP地址
在 CDN DNS 中将 abc.qiniudns.com 与 110.110.110.110, 220.220.220.220, 330.330.330.330 三个 IP 映射,这些IP可以轮流着被解析。
就可以实现通过 CDN 给域名abc.qiniudns.com加速
https劫持只能防止http劫持
DNS劫持 可以选择cdn
https真的安全吗?
尽管工作在TLS/SSL层之上的HTTP协议(HTTPS)中传输的消息通过上述机制进行了加密,
但工作在TLS/SSL层之下的部分则是不受保护的,例如你所访问的网站域名和IP地址等。换句话说,
如果有人窃听你和某网站之间的通信,即便他不知道你和网站之间会话的具体内容,但完全可以知
道你访问的是哪个网站。如果要对这些信息也进行保护,则需要同时使用工作在底层的安全传输协
议,例如IPSec,很多VPN的实现就是建立在IPSec基础之上的。
CSRF
CSRF攻击是黑客借助受害者的 cookie 骗取服务器的信任,但是黑客>并不能拿到
cookie,也看不到 cookie的内容。另外,对于服务器返回的结果,由>于浏览
器同源策略的限制,黑客也无法进行解析。因此,黑客无法从返回的结果中
得到任何东西,他所能做的就是给服务器发送请求,以执行请求中所描述的
命令,在服务器端直接改变数据的值,而非窃取服务器中的数据。所以,我
们要保护的对象是那些可以直接产生数据改变的服务,而对于读取数据的服
务,则不需要进行 CSRF 的保护。比如银行系统中转账的请求会直接改变账户的金额,会遭到 CSRF
攻击,需要保护。而查询余额是对金额的读取操作,不会改变数据,CSRF
攻击无法解析服务器返回的结果,无需保护。
- 当前防御 CSRF 的几种策略
- 验证 HTTP Referer 字段
- 在请求地址中添加 token 并验证
要抵御 CSRF,关键在于在请求中放入黑客所不能伪造的信息,
并且该信息不存在于 cookie 之中。可以在 HTTP 请求中以参数的形式加入一个随机产生的 token,并在服务器端建立一个拦截器来验证这个 token
,如果请求中没有 token 或者 token 内容不正确,则认为可能是 CSRF 攻击而拒绝该请求。
3.在 HTTP 头中自定义属性并验证 局限性很大
http DNS
DNS基于UDP协议
HTTPDNS基于HTTP协议
HTTPDNS使用HTTP协议进行域名解析,代替现有基于UDP的DNS协议
防劫持
精准调度
0ms解析延迟
网友评论