SSL与IPSec浅析

用wireshark对SSL握手分析

为了更好理解SSL协议的握手过程,结合实例,使用Wireshark抓包分析SSL握手过程中客户端与服务器间的交互过程。本例中服务器为https://10.21.49.130,客户端为本机浏览器192.168.1.214。

0x00 第一阶段

客户端浏览器向服务器发起TCP连接请求,建立起TCP连接后,客户端向服务器发送Client Hello消息,传送客户端支持的最高 SSL 协议的版本号、随机数、加密算法列表,以及其他所需信息。Client Hello消息的内容如下图所示:

可以看出SSL更换了名字为TLS,查阅资料缘由为在SSL更新到3.0时,IETF对SSL3.0进行了标准化,并添加了少数机制(但是几乎和SSL3.0无差异),标准化后的IETF更名为TLS1.0(Transport Layer Security 安全传输层协议),可以说TLS就是SSL的新版本3。

通过上图可以看出client hello的消息结构如下:

这里写图片描述

查看Ciper Suites支持的加密算法:DES,RSA等

查看扩展(Extensions),发现Compression Methods字段值为0,说明没有进行压缩。

0x02 第二阶段

服务器向客户端发送Server Hello包含其证书的Certificate消息并还有Key Exchange Hello done等。证书中所携带服务器的公钥,用于加密后面消息中预主密钥。消息内容如下:

查看证书:发现只有一个根证书

观察到证书的地址为[email protected],组织名为www.gdut.edu.cn,单元名为cshao。证书公钥为3082010a0282010100d82e34...证书的签名值为:a93fe7b1ed06587df993b72673012b2d3a...等一些字段。

通过以上分析可知证书结构如下图:

img

0x02 第三阶段与第四阶段

服务器发送完Certificate消息后继续发送Server Key Exchange和Server Hello Done消息,Server Key Exchange消息中包含有密钥交换算法所需要的额外参数。Server Hello Done消息表示服务器已发送完此阶段的全部信息。

客户端发送Client Key Exchange和Change Cipher Spec消息,Client Key Exchange包含使用服务器RSA公钥加密过的随机数Pre_Master_Secret,该参数用于后续生成主密钥;Change Cipher Spec消息告诉服务器,接下来的消息将采用新协商的加密套件和密钥进行通信,并通知客户端到服务器的握手过程结束。

接着服务器同样发送Change Cipher Spe消息通知服务器到客户端的握手过程结束,并发送一个加密的握手数据Encrypted Handshake Message 消息,客户端收到消息解密后进行验证,验证通过则说明握手过程中的数据没有被篡改过,也说明服务器是之前交换证书的持有者。现在双方就可以开始加密通信Application Data。

IPSec服务器的搭建与ESP简单抓包及分析

设备有win10,win10上vmware里的linux虚拟机,以此作为服务器。服务器的搭建参考以下:

  1. https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/README-zh.md#%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E

  2. https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-zh.md

配置服务器

配置完如图:

注意到自动配置的ip地址为学校的ip,本机不能进行访问。修改/etc/ipsec.conf文件,使其中的leftid=192.168.220.128 为虚拟机的ip地址。

重启服务:systemctl restart ipsec xl2tpd

查看是否在运行:systemctl status ipsec

配置客户端

  1. 右键单击系统托盘中的无线/网络图标。

  2. 选择 打开网络和共享中心。或者,如果你使用 Windows 10 版本 1709 或以上,选择 打开"网络和 Internet"设置,然后在打开的页面中单击 网络和共享中心

  3. 单击 设置新的连接或网络

  4. 选择 连接到工作区,然后单击 下一步

  5. 单击 使用我的Internet连接 (VPN)

  6. Internet地址 字段中输入你的 VPN 服务器 IP

  7. 目标名称 字段中输入任意内容。单击 创建

  8. 返回 网络和共享中心。单击左侧的 更改适配器设置

  9. 右键单击新创建的 VPN 连接,并选择 属性

  10. 单击 安全 选项卡,从 VPN 类型 下拉菜单中选择 "使用 IPsec 的第 2 层隧道协议 (L2TP/IPSec)"。

  11. 单击 允许使用这些协议。选中 "质询握手身份验证协议 (CHAP)" 和 "Microsoft CHAP 版本 2 (MS-CHAP v2)" 复选框。

  12. 单击 高级设置 按钮。

  13. 单击 使用预共享密钥作身份验证 并在 密钥 字段中输入你的 VPN IPsec PSK

  14. 单击 确定 关闭 高级设置

  15. 单击 确定 保存 VPN 连接的详细信息。

连接成功截图:

wireshark抓包分析

随意截取一个ESP的包,未看到AH的包:

可以看到安全参数索引(SPI) 与 序列号 (SN)。

猜你喜欢

转载自www.cnblogs.com/manch1n/p/12052268.html
今日推荐