【实验目的】
了解 IPSec 主要协议,理解 IPSec 工作原理,并掌握在Windows 环境下利用 IPSec 在两台主机间建立安全隧道的方法。
【实验原理】
IPsec通过让系统选择所需的安全协议,决定服务中使用的算法和为请求服务提供任何加密密钥来实现IP级的安全服务。有两种协议可以用来提供安全性:一个是使用AH协议报头指定的认证协议;另一个是由用于该协议的包格式指定的加密/认证联合协议ESP。它们提供的服务如下:
- 访问控制;
- 无连接完整性;
- 数据源认证;
- 拒绝重放包;
- 保密性(加密);
- 受限制的流量保密性
下表描述了AH和ESP提供的各种服务。对于ESP而言,有两种情况:带认证选项和不带认证选项。AH和ESP都是访问控制的工具,它们都基于密钥分发以及与这些安全协议相关的流管理。
【实验内容】
本次实验为两人组队实验,主机A为我的主机,主机B为队友的主机。使用ipconfig查看两人主机的IP(截图以主机A为例),可以得到主机A的IP为172.16.0.64,主机B的IP为172.16.0.65。
一.IPsec虚拟专用网络的设置
1. 进入IPsec配置界面
(1)主机A、B通过“开始”|“程序”|“管理工具”|“本地安全策略”打开IPSec相关配置界面。
(2)在默认情况下IPsec的安全策略处于没有启动状态,必须进行指定,IPsec才能发挥作用。IPsec包含以下3个默认策略,如下图所示。
- 安全服务器:对所有 IP 通讯总是使用 Kerberos 信任请求安全。不允许与不被信任的客户端的不安全通讯。这个策略用于必须采用安全通道进行通信的计算机。
- 客户端:正常通信,默认情况下不使用IPSec。如果通信对方请求IPSec安全通信,则可以建立IPSec虚拟专用隧道。只有与服务器的请求协议和端口通信是安全的。
- 服务器:默认情况下,对所有IP通信总是使用Kerberos信任请求安全。允许与不响应请求的客户端的不安全通信。
(3)以上策略可以在单台计算机上进行指派,也可以在组策略上批量指派,为了达到通过协商后双方可以通信的目的,通信双方都需要设置同样的策略并加以指派。
2. 定制IPSec安全策略
(1)双击“安全服务器(需要安全)”项,进入“安全服务器属性”页,可以看到在“规则”页签中已经存在3个“IP安全规则”,单击“添加”按钮,进入向导添加新安全规则。
(2)本次实验我们实现的是两台主机之间的IPSec安全隧道,而不是两个网络之间的安全通信,因此,我们选择“此规则不指定隧道”,即选用传输模式IPSec,选中后单击“下一步”按钮。
(3)在选择网络类型的界面。安全规则可以应用到3种网络类型:所有网络连接、局域网(LAN)和远程访问。我们选择“所有网络连接”,单击“下一步”按钮。
(4)在IP筛选器列表界面。我们定制自己的筛选操作,单击“添加”按钮,进入“IP筛选器列表”界面,如下图所示。
(5)定制自己的IP筛选器。点击“添加”按钮进入“IP筛选器向导”,单击“下一步”按钮;
(6)在“IP筛选器描述和镜像属性”的“描述”中,可自由添加对新增筛选器的解释信息,在这里输入“与同组主机进行安全的icmp通信”,单击“下一步”按钮;
(7)IP通信源选择“我的IP地址”,单击“下一步”按钮;
(8)IP通信目标选择“一个特定的IP地址”,IP地址填写主机B的IP(172.16.0.65),单击“下一步”按钮;
(9)选择“ICMP”协议类型,单击“下一步”按钮。单击“完成”按钮,完成定制IP筛选器;
(10)单击“确定”按钮,退出“IP筛选器列表”对话框。
操作界面返回到“安全规则向导”,设置新的IP筛选器:
(1)在“IP筛选器列表”中选中“新 IP筛选器列表”,单击“下一步”按钮;
(2)在“筛选器操作”界面单击“添加”按钮新建筛选器操作,在弹出的“筛选器操作向导”界面中,单击“下一步”按钮;
(3)新的筛选器操作名称为“安全的ICMP通信”,描述自定义,单击“下一步”按钮;
(4)在“筛选器操作常规选项”中选中“协商安全”,单击“下一步”按钮;
(5)选中“不与不支持IPSec的计算机通信”,单击“下一步”按钮;
(6)在“IP通信安全措施”中,选择“完整性和加密”,单击“下一步”按钮;最后单击“完成”按钮完成筛选器操作设置。
(7)返回到“安全规则向导”,在“筛选器操作”列表中选中“安全的ICMP通信”,单击“下一步”按钮;
(8)在“身份验证方法”界面。选中“使用此字符串保护密钥交换(预共享密钥)”,填写共享密钥“jlcss”(主机A、主机B的共享密钥必须一致),单击“下一步”按钮,直至最终完成。
二.IPsec虚拟专用网络的检测
「注」应用策略之前必须指派策略,否则策略不会自动生效。右键点击“安全服务器”,选择“指派”使策略生效。
(1)主机A不指派策略,主机B不指派策略。
主机A在“cmd”控制台中,输入如下命令:ping 主机B的IP
ping操作反馈信息如下(成功ping通):
(2)主机A指派策略,主机B不指派策略。
主机A在“cmd”控制台中,输入如下命令:ping 主机B的IP
ping操作反馈信息如下:Negotiating IP Security。
(3)主机A不指派策略,主机B指派策略。
主机A在“cmd”控制台中,输入如下命令:ping 主机B的IP
ping操作反馈信息如下:Request timed out。
(4)主机A指派策略,主机B指派策略。
主机A在“cmd”控制台中,输入如下命令:ping 主机B的IP
ping操作反馈信息如下(成功ping通):
三.协议分析ESP
首先确保主机A、主机B均已指派策略。
(1)主机A、B进入实验平台,单击工具栏“协议分析器”按钮,启动协议分析器。定义过滤器,设置“网络地址”过滤为“主机A的IP<->主机B的IP”;单击“新建捕获窗口”按钮,点击“选择过滤器”按钮,确定过滤信息。在新建捕获窗口工具栏中点击“开始捕获数据包”按钮,开始捕获数据包。
(2)主机A在“cmd”控制台中对主机B进行ping操作。
(3)待主机A ping操作完成后,主机A、B协议分析器停止数据包捕获。切换至“协议解析”视图,观察分析源地址为主机A的IP、目的地址为主机B的IP的数据包信息,如下图所示。
(这里可以在右侧看到Next protocol=50,即IP报头第10个字节的值0x32, 可知ESP协议类型值为50)
(4)分析右侧协议树显示区中详细解析及下侧十六进制显示区中的数据,按照链路层报头(默认14字节)→网络层报头(本实验中为20字节)→ESP报头的顺序解析数据,回答下列问题:
- ESP协议类型值(十进制):50.
- 安全参数索引(SPI)值是:0xBC426BD3.
- 序列号是:0x00000039.
- ICMP负载是否被加密封装:是。
四.协议分析AH
(1)主机A、B同时进行如下操作,修改“ICMP安全通信策略”,利用AH协议对数据源进行身份验证,而不对传输数据进行加密处理。
(2)在“本地安全设置”界面中,双击“安全服务器(需要安全)”;
(3)在“属性”对话框中,双击“新IP 筛选器列表”;
(4)在“编辑规则 属性”对话框中,选择“筛选器操作”页签,双击“安全的ICMP通信”;
(5)在“属性”对话框中,选择“安全措施”页签,在“安全措施首选顺序”中,双击唯一的一条规则;
(6)在“编辑安全措施”对话框中,选中“自定义”,单击“设置”按钮,具体操作如下图所示。
单击“确定”按钮,直至最后。
(7)两主机再次启动协议分析器,过滤规则不变,开始捕获数据包。
(8)主机A对主机B进行ping操作,待操作完成,协议分析器停止捕获数据包。切换至“协议解析视图”,观察十六过制显示区数据,参照下图,按照链路层报头(默认14字节)→网络层报头(本实验中为20字节)→AH报头的顺序解析数据,回答下列问题:
- AH协议类型值(十进制) 51 。
- 下一个报头所标识的协议类型是 1 。
- 载荷长度值是 4 。由该值计算出AH报头总长度是 24字节 ,具体计算方法 (4+2)*4B=24B 。
(Payload Len载荷长度的单位是4B,代表整个报头长度减2)
- 安全参数索引值是 0xD06AD5FF 。
- ICMP负载是否被加密封装 否 。为什么?
可以看到后续报文以明文ASCII码形式传输。