2个报文即完成隧道建立!WireGuard的报文交互竟然比野蛮模式还快!

本文通过分析WireGuard的报文交互,揭示了WireGuard与传统IPsec的区别,包括密钥交换机制、性能优化和加密策略。WireGuard强调了其直接虚拟接口转发、高效性和安全性,与OpenVPN形成对比。
摘要由CSDN通过智能技术生成

455169e78f18d8a9c99a0b39103663ac.gif

正文共:1376 字 7 图,预估阅读时间:4 分钟

从上篇文章的配置过程来看使用8条命令即可完成的VPN配置!CentOS快速配置WireGuard全互联组网,不难看出,WireGuard其实也是一种IPsec VPN。那它和传统的VPN有什么区别呢?我们通过抓包来分析一下。

1ee25a8e66c62a0aea7dbe8f16bc581b.png

报文转包一共抓到了6个报文,协议写的是WireGuard,WireGuard都是一种协议了吗?

第一个报文是PCB发送给PCA的,报文类型是发起握手,目的端口号可以对应的上,是UDP端口40846。同时我们注意到一个非常像密钥的字符串,但是通过对比发现,这个字符串既不是PCB本地的私钥,也不是公钥。结合前面的ephemeral这个单词,意为短暂的,而且下面还备注没有私钥。

90e33dcb1da315a2e41189cf3ff0d67f.png

其实这里所有的字段都是计算出来的,reserved固定为0,sender是在发送此消息时随机生成的,和IPsec的SPI字段等效。ephemeral这里是由一个DH算法得到的;static和timestamp都是使用RFC7539定义的加密算法得到的;就连看起来最固定的mac也是做了好几次运算才得到的,公式长下面这样:

58b8161812679d51d87aa44a06c21ac4.png

固定的公钥也只是作为其中的一个参数而已。所以这个mac跟MAC地址一点关系都没有,他叫Cookie MAC,所以他是Cookie而不是MAC。

第二个报文类型是握手响应,同样也是复杂的公式计算出来的。

d0052800b9cb450483ada01c1f0a55be.png

然后后面的4个报文就没有什么什么能看的了。

6154e852f11c2d31eb4148df34b2a67e.png

正常来讲,按照WireGuard的介绍,双方用于发送和接受传输数据消息的密钥就是在后面的报文中交互的。加密算法大概长下面这样:

同时,按照官方资料的介绍,对等体双方正常是一个RTT的握手报文交互之后就开始数据转发了。

3c0854b1a0d538f7ce11bbd98dd787dc.png

这就让我想起了测试过程,我是重启了设备之后重新配置进行测试的。WireGuard的配置在重启设备之后会丢失,所以应该写成配置脚本然后在开机的时候自动运行。

其次,配置完成之后,VPN隧道不会自动建立,需要手工触发才行,报文中的6个包,分别是两个握手报文加上4个加密了的ICMP报文,这就对上了。

虽然VPN不能自己保存和建立,但是WireGuard有被动保活机制,被动保活报文仅在对等体没有要发送的内容时发送,并且仅在另一个对等体正在向其发送经过身份验证的传输数据消息时发送。这意味着当双方都没有交换传输数据消息时,网络链接将保持沉默。

所以,综合来看,WireGuard确实相比传统的IPsec有了较大的改进,WireGuard认为传统的IPsec在转发层和接口层是分离的,而WireGuard则直接新建了一个虚拟接口来进行转发。

同样的,WireGuard认为OpenVPN的性能很差,因为必须在内核空间和用户空间之间多次复制数据包,需要一个长寿命的守护进程。并且支持全部过多的TLS功能,增加了相当多的代码,提高了漏洞暴露的风险。

同时,WireGuard声称密钥分发机制是从OpenSSH中汲取的灵感,像前面那样,两个对等体之间通过某种未指定的机制交换它们的公钥,然后它们就能够通信了。

加密算法上,WireGuard声称故意缺乏密码和协议敏捷性,但采用了几种新颖的密码学和系统解决方案来实现其目标,具有针对拒绝服务攻击的内置保护,如果在底层原语中发现漏洞,则所有端点都需要更新。

WireGuard官方声称其代码不足4000行,那我感觉这其中应该绝大部分都是加密算法吧。这也说明了其可以拥有简单实施、极其高性能、利用最先进的加密技术并且易于管理的安全网络隧道。简单性使其能够非常容易地在各种平台上进行独立验证和重新实现;所使用的加密结构和原语确保了从数据中心服务器到手机的各种设备的高速运行,以及未来可靠的安全特性;易于部署还将消除目前在许多 IPsec 部署中常见的许多灾难性陷阱。

d6e59bd17a9abc46f1eff0677c49d519.gif

长按二维码
关注我们吧

900451f97d2bdc004d04be8c73a945fd.jpeg

8bac20224ab93099d879b3332c60d8aa.png

使用8条命令即可完成的VPN配置!CentOS快速配置WireGuard全互联组网

Wireshark如何解密IPSec报文?

虚拟专用网络 (VPN) 术语

从报文交互看Telnet协议的安全系数

为什么“华系”设备用久了,用不了“美系”设备

千呼万唤始出来:EVE-NG终于来了!

1分钟时间快速学习一下使用ISO镜像部署EVE-NG

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Danileaf_Guo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值