|
|
|
|
移动端

3.3 网络协议(3)

《程序员面试笔试真题与解析》本书针对当前各大 IT企业面试笔试中特性与侧重点,精心挑选了 3年以来近百家典型 IT企业的面试笔试真题,这些企业涉及业务包括系统软件、搜索引擎、电子商务、手机 APP、安全关键软件等,面试笔试真题非常具有代表性与参考性。本节为大家介绍网络协议。

作者:猿媛之家来源:机械工业出版社|2017-12-07 11:21

年前最后一场技术盛宴 | 1月27日与京东、日志易技术大咖畅聊智能化运维发展趋势!


3.3 网络协议(3)

由于 TCP连接是全双工的,因此,每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个 FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个 TCP连接在收到一个 FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

1)客户端 A发送一个 FIN,用来关闭客户 A到服务器 B的数据传送(报文段 4)。

2)服务器

B收到这个 FIN,它发回一个 ACK,确认序号为收到的序号加 1(报文段 5)。和 SYN一样,一个 FIN将占用一个序号。

3)服务器 B关闭与客户端 A的连接,发送一个 FIN给客户端 A(报文段 6)。

4)客户端

A发回 ACK报文确认,并将确认序号设置为收到序号加 1(报文段 7)。 URG(Urgent)表示紧急传输; ACK表示传输确认; SYN表示同步; FIN用来释放连接;此外还有 PSH(不要缓存立即 push给应用层)和 RST(复位 reset,断开再重新建立连接)。

TCP初始化连接三次握手:发 SYN包,然后返回 SYN/ACK包,再发 ACK包,连接正式建立。但是这里有点出入,当请求者收到 SYS /ACK包后,就开始建立连接了,而被请求者第三次握手结束后才建立连接。关闭连接要四次握手:发 FIN包、ACK包、FIN包、ACK包,四次握手。因为 TCP连接是全双工,我关了你的连接,并不等于你关了我的连接。

所以,本题的答案为 D。

【真题 326】流量劫持是网络安全中常见的安全威胁,下列情况中,可能会造成流量劫持的是()。

A.MAC地址欺骗 B.DNS劫持 C.伪造的 DHCP服务器 D.使用 https协议答案:A、B、C。

(1)MAC地址欺骗

交换机的转发过程如下:交换机的一个端口收到一个数据帧时,首先检查该数据帧的目的 MAC地址表( CAM,全称 Content Addressable Memory,用来动态记录 MAC地址)对应的端口,如果目的端口与源端口不为同一端口,则把该帧从目的端口转发出去,同时更新 MAC地址表中源端口与源 MAC的对应关系;如果目的端口与源端口相同,则丢弃该帧。

以一个模拟 MAC地址欺骗为例再次阐述一下 MAC地址欺骗的原理。现假设有一个寻找 IP地址为 192.168.0.10的 MAC地址的 ARP广播包,正确的 MAC地址应该是 AA-AA-AA-AA-AA-AA,而黑客所在主机的 MAC地址为 BB-BB-BB-BB-BB-BB。 MAC地址欺骗的基本原理如下:

1)这个 ARP广播包会在网络中进行广播,网络中的所有结点都可以接收到。

2)正常结点在接收

ARP广播包后,在比较了自己网络接口上配置的 IP地址,确认不是自己的后,就不作应答。而安装了黑客程序的主机可能就不一样了。本来自己的 IP地址不是 ARP广播包中的目标 IP地址--192.168.0.10,但它也应答,说自己的 IP地址是 192.168.0.10,并不断地向源端发送 ARP响应包(也有 ARP缓存表会定期自动更新的原因)。响应包当然包含的是正确的目标结点 IP地址和不正确的 MAC地址(黑客程序所在主机网卡的 MAC地址 BB-BB-BB-BB-BB-BB)对应信息。

3)此时尽管网络中可能真正是目标 IP地址的结点也向源端发出了 ARP响应,但是由于黑客程序会不断地发送响应包,这样在源端会强制以黑客程序发送的响应包中的信息来更新 ARP缓存表。这样就会在源端 ARP缓存表中存在错误的 IP地址和 MAC地址对应表项。本来应为 192.168.0.10与 AA-AA-AA-AA-AA-AA,现在就变成了 192.168.0.10与 BB-BB-BB-BB-BB-BB。

4)当下次再收到要发往目标 IP地址为 192.168.0.10的数据包时,源端就不会再广播了,而直接发到 MAC地址为 BB-BB-BB-BB-BB-BB的主机上,也就是黑客所在的主机上。显然这样的通信不会真正成功,因为其 IP地址根本就不是 192.168.0.10。

以上是黑客仿冒一般的结点,如果黑客仿冒的是网关 IP地址,那么全网用户就不能上网成功了。这就是 ARP病毒之所以会造成全网用户上网不成功的原因。因为 ARP病毒把网关重定向到了非正确的网关接口上,这完全可以通过执行 ARP命令来查看验证。

用户发送一个自定义源 MAC 地址的包是非常容易的,因此,交换机成了非常容易被忽悠的对象。只要伪造一个源地址,就能将这个地址关联到自己的接口上,以此获得受害者的流量。

防范措施:将机器固定的网络尽量绑定 MAC 和接口。貌似大多数网吧都绑定了 MAC和接口,极大增强了链路层的安全性。同时,独立的子网段尽可能划分 VLAN(Virtual Local Area Network,虚拟局域网),避免过大的广播环境。

(2)DNS 劫持

DNS(Domain Name System,域名系统)的作用是把网络地址对应到真实的计算机能够识别的网络地址(IP地址),以便计算机能够进一步通信、传递网址和内容等。

ARP将 IP 解析成 MAC 地址, DNS 负责将域名解析成 IP 地址。 DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则,返回假的 IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能反应或访问的是假网址。

DNS 服务一旦被黑客控制,用户发起的各种域名解析都将被暗中操控。将正常网站解析成黑客服务器的 IP,并事先开启了 HTTP代理,用户还是能正常上网,并且几乎看不出任何破绽。只不过所有流量都是经由黑客的代理服务器收发的,因而黑客可以轻易获取各种明文传输的密码,比如各种网站账号信息都将一览无余。

(3)伪装的 DHCP服务器

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用 UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配 IP地址;给用户或者内部网络管理员作为对所有计算机作中央管理的手段。现实中,并不是每个人都会配置网络参数,或者出于方便,让网络系统自动配置,自动分配 IP地址设置 DNS等。出于这个目的, DHCP 服务诞生了。

由于没有配置 IP地址、网关和 DNS 等,在网络上是寸步难行的,因此,首先需要从 DHCP那获得这些信息。然而,既然连 IP地址都没有,那又是如何通信的?显然,只能发到广播地址

(255.255.255.255)上,而自己则暂时使用无效的 IP地址( 0.0.0.0)。(事实上,链路层的通信只要有 MAC地址就行,IP 地址已属于网络层了,但 DHCP 由于某些特殊需要使用的是 UDP 协议)

因为是发往广播,内网环境里的所有用户都能听到。如果存在多个 DHCP服务器,则分别予以回复;用户则选择最先收到的。由于规则是如此简单,以至于用户没有选择的余地。

如果有黑客在内网里也开启了 DHCP 服务,用户收到的回复包很可能就是黑客发出的,这时用户的网络配置就会听由黑客接管了,被劫持就是不能避免的。

HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer,基于 SSL的 HTTP协议)是以安全为目标的HTTP通道,简单讲是 HTTP的安全版。即 HTTP下加入 SSL层,HTTPS的安全基础是 SSL,因此,加密的详细内容就需要 SSL。

HTTPS使用了 HTTP协议,但 HTTPS使用不同于 HTTP协议的默认端口及一个加密、身份验证层(HTTP与 TCP之间)。这个协议的最初研发由网景公司进行,提供了身份验证与加密通信方法,现在它被广泛用于互联网上安全敏感的通信。客户端在使用 HTTPS方式与 Web服务器通信时有以下几个步骤:

1)客户使用

HTTPS的 URL访问 Web服务器,要求与 Web服务器建立 SSL连接。

2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。

3)客户端的浏览器与 Web服务器开始协商 SSL连接的安全等级,也就是信息加密的等级。

4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。

5)Web服务器利用自己的私钥解密出会话密钥。

6)Web服务器利用会话密钥加密与客户端之间的通信。

所以,本题的答案为 A、B、C。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

JSP应用开发详解(第二版)

本书结合JSP和Servlet的最新规范,从基本的语法和规范入手,以经验为后盾,以实用为目标,以实例为导向,以实践为指导,深入浅出地讲解了JS...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊