前言
信息安全实践二我感觉我做的比较好,基本都能实现了实验的要求。
实验要求
设计IPSec安全保护方案,部署Windows/Linux系统中的IPSec,采用网络嗅探工具获取通信数据,检查分析IPSec安全保护功能。
实验思路
本次实验使用两台win7的虚拟机进行实验,将其中一台虚拟机设为A(IP地址为192.168.110.134),另一台虚拟机设为B(IP地址为192.168.110.135)。先验证两台虚拟机能供互相ping通,然后在虚拟机A中的防火墙高级设置中添加连接安全规则,即设置IPSec。虚拟机A设置了IPSec之后,IPSec会在协商过程中进行身份验证,如果通信的另一方没有和本机一样的预共享密钥,那么就通信双方就无法进行通信。因此,此时虚拟机A和虚拟机B无法相互ping通。在虚拟机B也设置好了IPSec和密钥之后,两台虚拟机就可以互相ping通了,此时进行抓包分析,可以看到两台虚拟机之间的数据包被IPSec使用ESP加密了,显示的都是ESP协议。
实验环境
使用的虚拟机:VMware16中的和Windows7
使用的操作系统:Windows7操作系统。(两台)
IPSec原理
IPSec(Internet Protocol Security)是为IP网络提供安全性的协议和服务的集合,是一组基于网络层的,应用密码学的安全通信协议族,不具体指某个协议。它是VPN(Virtual Private Network,虚拟专用网)中常用的一种技术。由于IP报文本身没有继承任何安全特性,IP数据包在公用网络如Internet中传输可能会面临被伪造、窃取或篡改的风险。通信双方通过IPSec建立一条IPSec隧道,IP数据包通过IPSec隧道进行加密传输,有效保证了数据在不安全的网络环境下如Internet中传输的安全性。
实验过程和截图
首先查看虚拟机A和虚拟机B是否能互相ping通。
虚拟机Aping虚拟机B:
虚拟机Bping虚拟机A:
可以看到此时虚拟机A和虚拟机B是可以互相ping通的。
此时进行抓包:
上图中的各个数据包就是虚拟机A和虚拟机B互相ping时传输的数据包,因为此时还没有设置IPSec安全连接规则,可以明显的看到传输的信息是ping,协议为ICMP。
下面在虚拟机A设置安全连接规则:
如上图,在虚拟机A中打开Windows防火墙。
点击左侧的高级设置:
再点击左侧的连接安全规则,选择新建规则:
规则类型选择隔离即可,要求选择入站和出站连接要求身份验证。
身份验证方法选择高级并进行自定义:
在第一身份验证方法处点击添加:
选择与预共享密钥,将密钥设置为123456。点击确定,然后点击下一步。
配置文件默认即可,点击下一步。
将名称设置IPSec_Test即可。
点击完成,然后在连接安全规则处就看到了新添加的IPSec_Test规则。
然后此时进行ping测试,查看虚拟机A和虚拟机B能否互相ping通:
虚拟机Aping虚拟机B:
虚拟机Bping虚拟机A:
因为此时虚拟机A设置了IPSec身份认证,通信需要有和虚拟机A一样的预共享密钥。因此此时虚拟机A和虚拟机B无法互相ping通。
接下来对虚拟机B进行一样的操作,给虚拟机B设置安全连接规则:
然后在进行互ping:
虚拟机Aping虚拟机B:
虚拟机Bping虚拟机A:
可以看到,在虚拟机B也配置了安全连接规则后,两台虚拟机又能互相ping通了。
此时进行抓包分析:
如上图,虚拟机A与虚拟机B通信的过程中,先是使用了ISAKMP协议,而后使用了ESP协议。
实际上,前面使用的ISAKMP协议是用于IPSec协商、密钥交换和身份认证,简单的说,就是验证虚拟机A和虚拟机B拥有的预共享密钥是否相同的过程。
而后面的ESP协议,实际就是被加密的ICMP协议ping命令信息。
下面对分别对ISAKMP和ESP数据包进行解析:
分析ISAKMP协议的数据包:
第一个数据包:
第二个数据包:
第七个数据包:
第十个数据包:
分析ESP协议的数据包:
分析第一个ESP数据包即可:
先查看没有使用IPSec加密安全连接之前的ICMP数据包:
由上图可以直接看到数据包使用的协议、数据包的大小和数据包的信息类型(Echo ping request)
再查看使用IPSec安全连接加密后的ESP数据包,如下图,可以看到,很多信息都被加密不可见了,协议、数据包大小和类型都不可见,说明IPSec安全连接确实起了作用。
ISAKMP协议
Interne 安全连接和密钥管理协议(ISAKMP)是 IPsec 体系结构中的一种主要协议,它结合加密安全的概念,密钥管理和安全连接来建立政府,商家和因特网上的私有通信所需要的安全。
因特网安全联盟和密钥管理协议(ISAKMP)定义程序和信息包的格式来建立、协商、修改和删除安全连接(SA)。SA 包括所有如 IP 层服务、传输或应用层服务、流通传输的自我保护的各种各样的网络协议所需要的信息。ISAKMP 定义交换密钥生产的有效载荷和认证数据。这些格式为依靠于密钥产生技术,加密算法和认证机制的传输密钥和认证数据提供了一致的框架。
ISAKMP 与密钥交换协议( IKE )的不同处是把安全连接管理的详细资料从密钥交换的详细资料中彻底的分离出来。不同的密钥交换协议中的安全道具也是不同的。但一个支持 SA 属性格式,和谈判、修改与删除 SA 的共同的框架是需要的。
从宏观上来看,ISAKMP主要做了三件事情:SA协商、密钥交换和认证。SA协商的目的是为了在通信双方间协商出一组双方都认可的安全参数。比如两端采用相同的加密算法和完整性算法。密钥交换的目的是为已经协商好的算法生成必要的密钥信息。认证的目的是鉴别对方的身份,保证自己不是在跟一个伪造的对象通信。
结语
这实验自然是不可能无中生有的,感谢大佬们的博客。