【答案解析】 (1)MAC地址欺骗
交换机的转发过程如下:交换机的一个端口收到一个数据帧时,首先检查该数据帧的目的MAC地址表(Comem Addressable Memory,CAM,用来动态记录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和接口,极大增强链路层的安全性。同时,独立的子网段尽可能划分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服务器,则分别予以回复;用户则选择最先收到的。由于规则是如此简单,以至于用户没有选择的余地。图1给出了广播消息传播图。

图1 广播消息传播图
如果有黑客也在内网里开启了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服务器利用会话密钥加密与客户端之间的通信。
图2给出了客户端在使用HTTPS方式与Web服务器进行交互时的过程。