DNS,ARP,秘钥和数字签名.

转载请注明:http://blog.csdn.net/hel_wor/article/details/50641905

计算机网络的基础知识

1.DNS。

之前使用360浏览器时,在某次弹出询问框后没有细看直接点了确认,后续就在浏览网页时就开始出现问题,以往很多能够浏览的正常网站网页都显示无法连接。
要解决这个问题就要扯到DNS上了。
我们访问京东,淘宝等网站时,并没有再地址栏中输入183.230.67.1或者218.201.46.124。只需要输入www.jd.com和www.taobao.com,以www.jd.com为例。
DNS中文全称为域名系统,负责将主机名字处理为十进制地址,在Windows系统C:\Windows\System32\drivers\etc下有一个hosts文件,这个文件可以看做是一个小型的DNS域名系统,里面有主机名及其IP地址的映射信息。但当网络上的主机容量很大后,这种处理方式就不是本地hosts文件和单一DNS域名服务器能够快速解决的了,因此有了分布式的DNS域名系统,分布式的域名系统以树状结构排列,在根下有多个顶级域名,每个顶级域名下依次为二级域名和三级域名。
顶级域名包括com,org,int,edu,mil,gov等等。
当进行一次京东网页登录时,在地址栏输入www.jd.com后,本地域名系统就开始作用了,其会在自己的高速缓存中查找有没有www.jd.com的对应IP地址映射,如果有就返回,如果没有就向根域名服务器发出查询请求,根域名请求根据主机名的当前层级域名(如www.jd.com顶级域名为com)返回给本地域名系统应该查询的域名服务器的地址。递归直到返回www.jd.com的IP地址。

这里有个国外视频,看完之后就能明白DNS是如何工作的了。How the DNS works。

360浏览器设置之后:

更改为自动检测设置就没有在出现登不上网页的情况。猜测是这个端口上监听的代理DNS服务器缺少对根域名系统的维护。

2.ARP

DNS负责将主机名映射为IP地址,APR则负责将IP地址映射为MAC地址,从网络协议本身来说,TCP报文被封装进IP包,IP包被封装进MAC包,信息要想在物理层上传输,都必须由二进制的MAC包来完成,MAC地址显示了这个包应该法向哪个主机。IP地址和MAC地址之间没有明确的函数映射关系,只能由本机和路由器自己维护一张ARP缓存表,表中有IP地址和MAC地址的映射关系,APR缓存中的每条记录使用生存时间。

以服务为例,服务将本地的函数调用改变为远程的过程调用,当本地程序要调用远程主机的某个服务接口时,本地程序将请求打包好交由网络层处理,这个时候本机地址会在本局域网内发出ARP请求,请求中有自己的IP地址和MAC地址,目标主机的IP地址,如果局域网内这台主机收到了这个请求,则这台主机返回其MAC地址,否则,交由路由器处理,直到获取到目标主机的MAC地址,本机将MAC地址封装到MAC包头部后将信息经过物理层发向目标主机。

这个会出现一个问题,MAC地址可以伪造,在局域网内,扫描局域网内的所有活动主机,获得他们的IP地址,这个时候本机A想路由器192.168.1.1发出ARP请求并告诉路由器当前局域网内的所有活跃主机的MAC地址都是本机A的MAC地址,并一直持续向路由器发送ARP包,这个时候即使局域网内其他主机在请求数据时会向路由器更新其MAC地址,但也会不停的刷新为A的地址(或者任意一个非目标主机的MAC地址),其他主机的请求数据会被经过物理层全部流向主机后,其他主机的请求放回数据将丢失,这就是ARP攻击的简单过程。解决方法时固定自己的MAC地址,让路由器忽视任何主机发来的MAC地址信息。

3.秘钥和数字签名
加密算法分为对称加密和非对称加密,数字签名建立在非对称加密之上。
对称加密是加密解密都使用同一个秘钥。
非对称加密是加密解密使用不同的公有秘钥A和私有秘钥B,且A和B满足,对于一段人和程序都能识别的明文数据Data,用A加密后的密文有且只有B才能正确解析出Data,用私钥B加密后的密文有且只有A才能正确解析。

非对称加密的特性带来的作用:
1,如果Tom向给Tony发送一段内容但不想让别人窃听到,Tom在CA机构查询到Tony的公钥后对内容加密发给Tony,这段内容只能由Tony用其私钥解析才能获得正确内容。

2,Tony想验证正在和自己通信的人或机器是不是Tom,则Tony发送一段内容给Tom,让Tom用其秘钥对这段内容加密后再返回给自己,得到内容后在CA机构查询到Tom的公钥后对返回内容解析,如果解析出的内容与最开始发送给Tom的内容一致,则证明正在和自己通信的是Tom。

从2出发,如果我们要验证某个服务器是真正的目标地址而非一个钓鱼网站,我们需要可以用数字签名来完成这个过程,对于一段内容,服务器用其秘钥对内容加密后发送给本机,本机用服务器的公钥对这段内容解密,如果解密成功说明服务器不是正确的目标地址而非一个钓鱼网站,这一切是建立在非对称加密且私钥由申请者唯一持有的条件下。
如果在这个过程中我们要保证这段内容在传送过程中不会被截取后迅速篡改,我们可以适应MD5等摘要算法对原始明文生成摘要,并对这段摘要使用服务器秘钥签名,当我们接收到加密后的摘要内容后使用服务器的公钥对这段摘要进行解析,在对原始报文使用MD5算法计算摘要,如果两端摘要内容一致,则认为服务器不是钓鱼网站并且报文在传送过程中没有被篡改,这是无保护机制的RSA签名过程。

你可能感兴趣的:(网络,dns,数字签名,ARP)