5. 网络层安全IPSec
5.1 IPSec协议
(1)前面使用Outlook进行数字签名和数字加密是应用层实现的安全。安全套接字实现的安全是在应用层和传输层之间插入了一层来实现数据通信安全。而IPSec是网络层实现的安全。不需要应用程序的支持,只要配置通信双方的安全规则,传输层的数据传输单元就会被加密后封装到网络层,实现数据通信安全。IPSec工作在OSI模型的网络层。
(2)IPSec主要的两个协议
①鉴别首部(Authentication Header, AH)协议:提供源点鉴别和数据完整性,但不能保密。AH协议的功能都包含在ESP协议中,因此不再使用AH协议。
②封装安全有效载荷(Encapsulation Security Payload, ESP)协议:提供源点鉴别、数据完整性和保密,支持IPv4和IPv6。
5.2 安全关联
(1)IPSec协议的IP数据报(简称IPSec数据报),可以在两个主机之间、两个路由器之间或一个主机和一个路由器之间发送。但发送IPSec数据报之前,源实体和目的实体之间必须创建一条网络逻辑连接,即安全关联(Security Association, SA)。
(2)安全关联的状态信息(以Client到Web服务器的安全关联SA1为例)
①源点(Client的IP)和终点(Web服务器的地址)
②一个32位的连接标识符,称为安全参数索引(Security Parameter Index, SPI)。
③所使用的加密类型(如DES)、加密密码
④完整性检查类型(例如,使用报文摘要MD5的报文鉴别码MAC)
⑤鉴别使用的密钥(比如指定身份验证密钥为abc)
【注意】要实现安全通信,Web服务器与Client发送IPSec数据报之前,也要建立一条安全关联SA。
5.3 实战:在Windows系统上配置IPSec实现安全通信
(1)实验环境:Win2003Web(192.168.80.20)和WinXP(192.168.80.50)
(2)IPSec(IP安全策略)规则的主要组成
①筛选器:定义SA的条件,如源地址、目标地址、协议和端口号等
②筛选器动作(允许、拒绝和加密通信):只有“协商安全”才需要指明加密算法和完整性算法,以及身份验证方法。如果是允许和拒绝,则不需要指定上述内容。
③身份验证方法(Kerberos、数字证书、共享密钥):默认使用Kerberos来验证,这是为域中的计算机准备的身份验证方法。共享密钥则要求通信双方要使用相同的密钥(可自定义,如abc123)
(3)在Win2003虚拟机上创建IP安全策略
①运行“secpol.msc”(也可以从管理工具中找到)打开“本地安全策略”→“IP安全策略”→“创建IP安全策略”。(注意,Windows可以有多个IP安全策略,但同一时间只有一个生效,在“本地安全设置”中有三个默认的IP安全策略,他们是针对加入域的计算机预设的,这里我们要创建自己的IP安全策略)
②新增“筛选器”:名称为toWindowsXP,源地址为我的IP、目标地址为192.168.80.50、协议为任意,并选中该筛选器。
③设置toWindowsXP筛选器的操作:安全措施为协商安全,并设定数据完整性和加密算法以及新密钥的生成时间。同时勾选“接受不安全的通讯,但总是用IPSec响应”(这意味着只允许进行安全通信)和勾选“使用会话密钥完全向前保密”(意味着通信过程中生成的新的会话密钥就不会使用以前用过的会话密钥)
④将身份验证方法修改为“预共享密钥”,如abc123。(可编辑默认的Kerberos来达到修改验证方法的目的)。
⑤最后右击创建好的“WebIPSec”,并点击“指派”使策略生效。
(4)在WinXP虚拟机上创建IP安全策略
①参照Win2003上操作添加筛选器,目标地址填写192.168.80.20,也就是Win2003Web的地址。
②按同样的方法创建筛选器操作和指定身份验证方法(预共享密钥也应设为abc123)
③指定新创建的IP安全策略,然后ping 192.168.80.20(注意,第一个响应是Negotiating IP Security,即协商IP安全,说明Win2003返回的ICMP响应数据包是经过IPSec策略加密通信的)
5.4 实战:查看安全关联和加密数据包
(1)XP上查看安全关联:运行“mmc” →“文件”→“添加/删除管理单元”→添加“独立管理单元”并选中“IP安全监视器”
(2)Win2003上抓包分析IPSec数据包的格式
①IPSec数据包格式
A.当使用ESP(封装安全有效载荷)时,网络层IP数据包的首部的协议字段变为50。当目标主机检查到协议字段为50时,就知道在IP首部后面紧接着是ESP首部。
B.在ESP首部中,有标志一个安全关联的安全参数索引SPI(32位)和序号(32位)。同时,在原IP数据报后面增加了两个字段,即ESP尾部和ESP鉴别码(MAC)。
C.ESP尾部和传输层报文(IP的数据报)一起加密,因此攻击者无法得知所使用的传输层协议(它在IP数据报的数据部分中)
D.SA指明的算法和密钥,对“ESP首部+传输层报文段(或IP数据报)+ESP尾部”生成报文鉴别码MAC。
②抓包分析IPSec数据包