信息安全保障技术实验一
信息安全保障技术实验一
一、实验准备
1. win10虚拟机
IP地址为192.168.194.252
防火墙为关闭状态
2.主机win10
IP地址为192.168.169.249
防火墙为关闭状态
二、 Windows10虚拟机与Windows10主机虚拟机进行互相 Ping,相互能够 ping 通
1. Windows10主机ping通Windows10虚拟机
2. Windows10虚拟机ping通Windows10主机
三、启用主机 、虚拟机下 Windows 的防火墙。
1. Windows10主机ping Windows10虚拟机
2. Windows10虚拟机pingWindows10主机
三、在两台机器的防火墙上启用 ICMP 的相关流量
1.启用 ICMP 的相关流量
通过防火墙的高级设置的“入站规则”->“文件和打印机共享(回显请求”-ICMPv4-In)(专用、公用)”->“启用规则”。
右键属性启用规则,有一个绿色的对勾就成功了
2. Windows10主机ping Windows10虚拟机
3. Windows10虚拟机pingWindows10主机
四、新建连接规则
1.在主机win10设置规则
通过“控制面板”->“系统和安全”->“Windows 防火墙”->左边的“高级设置”->“连接安全规则”->“新建规则”->要求(“出站和入站连接要求身份验证”)->“身份验证方法”->“高级”->“自定义”->“第一身份验证”-〉“添加”->“预共享密钥”
2.互相ping
两边都ping不通
3. wireshark抓包
4.在虚拟机win10设置规则
更换了一次网络,主机IP为192.168.31.63,另一台IP为192.168.31.69
然后迅速在两个机器上启动规则,抓包
按照源IP和目的IP 进行筛选得到IPsec协议的数据包
ip.src eq 192.168.31.63 or ip.dst eq 192.168.31.63
五、数据包分析
步骤4.4中捕获的数据流(两端设置连接规则)
1.第一包
Internet Security Association and Key Management Protocol
Initiator SPI: 7141cb3c535589a8
Responder SPI: 0000000000000000
Next payload: Security Association (1)
Version: 1.0
Exchange type: Identity Protection (Main Mode) (2)
Flags: 0x00
Message ID: 0x00000000
Length: 292
Payload: Security Association (1)
Next payload: Vendor ID (13)
Reserved: 00
Payload length: 96
Domain of interpretation: IPSEC (1)
Situation: 00000001
Payload: Proposal (2) # 1
Next payload: NONE / No Next Payload (0)
Reserved: 00
Payload length: 84
Proposal number: 1
Protocol ID: ISAKMP (1)
SPI Size: 0
Proposal transforms: 2
Payload: Transform (3) # 1
Next payload: Transform (3)
Reserved: 00
Payload length: 40
Transform number: 1
Transform ID: KEY_IKE (1)
Reserved: 0000
IKE Attribute (t=1,l=2): Encryption-Algorithm: AES-CBC
IKE Attribute (t=14,l=2): Key-Length: 128
IKE Attribute (t=2,l=2): Hash-Algorithm: SHA
IKE Attribute (t=4,l=2): Group-Description: Alternate 1024-bit MODP group
IKE Attribute (t=3,l=2): Authentication-Method: Pre-shared key
IKE Attribute (t=11,l=2): Life-Type: Seconds
IKE Attribute (t=12,l=4): Life-Duration: 28800
Payload: Transform (3) # 2
Next payload: NONE / No Next Payload (0)
Reserved: 00
Payload length: 36
Transform number: 2
Transform ID: KEY_IKE (1)
Reserved: 0000
IKE Attribute (t=1,l=2): Encryption-Algorithm: 3DES-CBC
IKE Attribute (t=2,l=2): Hash-Algorithm: SHA
IKE Attribute (t=4,l=2): Group-Description: Alternate 1024-bit MODP group
IKE Attribute (t=3,l=2): Authentication-Method: Pre-shared key
IKE Attribute (t=11,l=2): Life-Type: Seconds
IKE Attribute (t=12,l=4): Life-Duration: 28800
数据包分析: 源IP是192.168.31.63,目的IP是 192.168.31.69,源端口和目的端口都是500,使用的是UDP协议
发起者的SPI为7141cb3c535589a8,由于是第一个包,所以接收者的SPI为0(SA的第一部分)
SA的第二部分是目标IP,为192.168.31.69
SA的第三部分是安全协议,安全协议为ESP
提供可选择的加密算法AES-CBC,哈希算法为sha-1,密钥长度为128位(AES的密钥长度可以是128、192或256位);第二个可供选择的加密算法为3DES-CBC,哈希算法为sha-1,3DES加密的默认密钥长度为24字节;Authentication-Method(身份验证)的方法为预共享密钥
还协商了一个Life-Duration(寿命)为28800秒=480分钟
3.第二包
Internet Security Association and Key Management Protocol
Initiator SPI: 7141cb3c535589a8
Responder SPI: 746d38f821028b8d
Next payload: Security Association (1)
Version: 1.0
Exchange type: Identity Protection (Main Mode) (2)
Flags: 0x00
Message ID: 0x00000000
Length: 212
Payload: Security Association (1)
Next payload: Vendor ID (13)
Reserved: 00
Payload length: 60
Domain of interpretation: IPSEC (1)
Situation: 00000001
Payload: Proposal (2) # 1
Next payload: NONE / No Next Payload (0)
Reserved: 00
Payload length: 48
Proposal number: 1
Protocol ID: ISAKMP (1)
SPI Size: 0
Proposal transforms: 1
Payload: Transform (3) # 1
Next payload: NONE / No Next Payload (0)
Reserved: 00
Payload length: 40
Transform number: 1
Transform ID: KEY_IKE (1)
Reserved: 0000
IKE Attribute (t=1,l=2): Encryption-Algorithm: AES-CBC
IKE Attribute (t=14,l=2): Key-Length: 128
IKE Attribute (t=2,l=2): Hash-Algorithm: SHA
IKE Attribute (t=4,l=2): Group-Description: Alternate 1024-bit MODP group
IKE Attribute (t=3,l=2): Authentication-Method: Pre-shared key
IKE Attribute (t=11,l=2): Life-Type: Seconds
IKE Attribute (t=12,l=4): Life-Duration: 28800
发起者的SPI为7141cb3c535589a8,与上一个包保持一致,因为是回应包,所以接收者的SPI为746d38f821028b8d
从第一个包中的两个加密方案中选择了AES-CBC方法,哈希算法为sha-1
3.第三包
Internet Security Association and Key Management Protocol
Initiator SPI: 7141cb3c535589a8
Responder SPI: 746d38f821028b8d
Next payload: Key Exchange (4)
Version: 1.0
Exchange type: Identity Protection (Main Mode) (2)
Flags: 0x00
Message ID: 0x00000000
Length: 260
Payload: Key Exchange (4)
Next payload: Nonce (10)
Reserved: 00
Payload length: 132
Key Exchange Data: 94f2dddaa61fec1f6382b6fbce1a4d1a6dcdb8ac389ba3f3f4be266344f1af97d8a6ac63…
Payload: Nonce (10)
Next payload: NAT-D (RFC 3947) (20)
Reserved: 00
Payload length: 52
Nonce DATA: aa54c025bfe36ad0557e2c372c2088df973e9c80cf5e5eb18198b906b59879b76f07fc01…
Payload: NAT-D (RFC 3947) (20)
Next payload: NAT-D (RFC 3947) (20)
Reserved: 00
Payload length: 24
HASH of the address and port: ffb42fb173fec8ee3fc7eefc74b62e8083a948d6
Payload: NAT-D (RFC 3947) (20)
Next payload: NONE / No Next Payload (0)
Reserved: 00
Payload length: 24
HASH of the address and port: fe217d087fc0d0f8380ea5d3131f0fc25c33eb15
发起者的SPI:7141cb3c535589a8和接收者的SPI:746d38f821028b8d与之前保持一致
发起者发送自己的公开密钥(DH算法),即Key Exchange的数据,再发送一个随机数Nonce(防止重放攻击),最后两个payload应该是双方端口和IP的hash值
4.第四包
Internet Security Association and Key Management Protocol
Initiator SPI: 7141cb3c535589a8
Responder SPI: 746d38f821028b8d
Next payload: Key Exchange (4)
Version: 1.0
Exchange type: Identity Protection (Main Mode) (2)
Flags: 0x00
Message ID: 0x00000000
Length: 260
Payload: Key Exchange (4)
Next payload: Nonce (10)
Reserved: 00
Payload length: 132
Key Exchange Data: fb8f8fb4b26804f6a639c591a00112d2ec14bd245331d9bb5eb0176c8915457b2102fce2…
Payload: Nonce (10)
Next payload: NAT-D (RFC 3947) (20)
Reserved: 00
Payload length: 52
Nonce DATA: fd24a251479ddad8f247a688b9a496c54da8d17d57b6c7a8711fc26b5764f726d21c22e7…
Payload: NAT-D (RFC 3947) (20)
Next payload: NAT-D (RFC 3947) (20)
Reserved: 00
Payload length: 24
HASH of the address and port: fe217d087fc0d0f8380ea5d3131f0fc25c33eb15
Payload: NAT-D (RFC 3947) (20)
Next payload: NONE / No Next Payload (0)
Reserved: 00
Payload length: 24
HASH of the address and port: ffb42fb173fec8ee3fc7eefc74b62e8083a948d6
发起者的SPI:7141cb3c535589a8和接收者的SPI:746d38f821028b8d与之前保持一致
接受者发送自己的公开密钥(DH算法),即Key Exchange的数据,再发送一个随机数Nonce(防止重放攻击),最后两个payload应该是双方端口和IP的hash值(和上一个包中的顺序有变化)
协商出三个密钥:SKEYID_d ——推导密钥,衍生密钥,SKEYID_a ——验证密钥,SKEYID_e ——加密密钥
用SKEYID_a、SKEYID_e保护DH的协商过程。至此,发起者和接收者可以根据公开密钥和自己的私钥计算出一个只有双方拥有的对称密钥IKE使用的密钥交换机制Oakley是基于Diffie-Hellman的密钥交换机制,并且有以下优点:
- 使用cookie(SPI)来对抗阻塞
- 使用nonce对抗重放攻击
- 能够交换Diffie-Hellman公开密钥的值
- 对Diffie-Hellman交换进行鉴别
5.第五包
Internet Security Association and Key Management Protocol
Initiator SPI: 7141cb3c535589a8
Responder SPI: 746d38f821028b8d
Next payload: Identification (5)
Version: 1.0
Exchange type: Identity Protection (Main Mode) (2)
Flags: 0x01
.... ...1 = Encryption: Encrypted
.... ..0. = Commit: No commit
.... .0.. = Authentication: No authentication
Message ID: 0x00000000
Length: 76
Encrypted Data (48 bytes)
发起者的SPI:7141cb3c535589a8和接收者的SPI:746d38f821028b8d与之前保持一致
Flags: 0x01的最后一位为1,表示数据已经被加密
报文中含有认证的数据预共享密钥,数据的内容是发起者的身份和验证数据(hash值)
6.第六包
发起者的SPI:7141cb3c535589a8和接收者的SPI:746d38f821028b8d与之前保持一致
Flags: 0x01的最后一位为1,表示数据已经被加密
报文中含有认证的数据预共享密钥,数据的内容是接受者的身份和验证数据(hash值)
到第六个包为止,主模式结束,这一阶段的内容大致可以概括为:
包1、包2协商的算法
包3、包4计算key值
包5、包6通过预共享密钥身份认证
7.快速模式的第一个包
发起者的SPI:7141cb3c535589a8和接收者的SPI:746d38f821028b8d与之前保持一致
Flags值为1,表示已加密但未提交,payload为hash
message ID的值为1
被加密的数据,主要为加密策略协商
8.快速模式的第二个包
发起者的SPI:7141cb3c535589a8和接收者的SPI:746d38f821028b8d与之前保持一致
Flags值为3,表示已加密且提交,payload为hash
message ID的值为1
被加密的数据,主要为同意的加密策略协商
9.快速模式的第三个包
发起者的SPI:7141cb3c535589a8和接收者的SPI:746d38f821028b8d与之前保持一致
Flags值为3,表示已加密且提交,payload为hash
message ID的值为1
加密的数据主要是为了确认接收方的消息以及证明发送方的第一条消息不是伪造的
10.快速模式的第四个包
发起者的SPI:7141cb3c535589a8和接收者的SPI:746d38f821028b8d与之前保持一致
Flags值为3,表示已加密且提交,payload为hash
message ID的值为1
推测加密的数据主要是为了确认接收方的身份
11.ESP包
数据未经过加密(与Windows版本有关),SPI为0x5b1c9f60为发出ping指令的主机,SPI为0x76fe1a98 是接收ping的主机,由于ping会发出4个icmp包,所以应该有8个ESP包
步骤4.3 中捕获的数据流(一端设置规则)
主机192.168.169.249(已建立规则)向目标机192.168.169.56发送协商包ISAKMP,但是由于接收方没有相应的规则,所以使用ICMP包回应主机(内容与ISAKMP一致是策略协商),两台机器不停地互相回应缺无法协商出结果,导致ping超时
如图29所示,两台主机之间会一直ISAKMP,ICMP且传输的内容是相同的
六、为什么实验中为什们要进行步骤 4,在该步骤中完成了 IPSec 过程中的哪些工作流程?
为了使主机之间的连接更加安全,在一个局域网内,任意一台主机都可以通过IP嗅探的方式探测到自己主机的存在,进一步可以探测端口,利用其中存在的漏洞进行攻击,但是有了连接安全规则会要求其他主机进行身份验证,需要共同的预共享密钥或者证书,相对更安全。TCP/IP关于IP地址的身份鉴别机制有漏洞和缺乏对数据完整性、机密性的保护。
完成了IPSec中的根密钥(预共享密钥)的设置,由其(还要在加上随机数,cookie等参数)可以得出基准密钥、派生密钥、加密密钥、验证密钥这些直接决定会话安全的密钥。
七、遇到的问题
windows自带的hyper-v虚拟机有一些问题
1.不会设置桥接网卡
虽然前几步都没有什么问题,但是在最后一步两端都设置好了预共享密钥后,主机ping虚拟机ping通而虚拟机ping主机失败
解决方法:使用同学的win10主机,没有问题顺利完成
2.virtualbox安装win7失败
不管使用哪种win7镜像都会直接黑屏,进不去安装配置界面
解决方法:使用hyper-v创建第一代虚拟机
八、实验体会
经过本次实验,我对掌握 Windows 下 IPSec 协议的工作原理,协议中预共享密钥的配置和应用, IPSec 协议的相关报文格式和含义有了更深一步的理解,基本明白了在windows下协商的9个包变成10个包的原因,对主模式下的六个包了解各个包的用途以及具体字段的含义,对于快模式下的四个包,不会解密出明文,但大致明白要做什么,使用什么样的密钥加密,目的是为了再协商一个密钥,对于ESP包可以看出其是明文传输数据,且基本了解其与ping的对应关系,通过抓包基本明白了为什么一段设置不能完成通信。