VPN 服务客户端的加密任务的计算负担有多大?

VPN 服务客户端的加密任务的计算负担有多大?

如果一个人使用 VPN 客户端软件连接到使用 OpenVPN 的 VPN 服务提供商(如 ExpressVPN、NordVPN 等),并且该服务是端到端加密的,而 VPN 服务提供商使用 AES-NI——粗略地说,在客户端设备上进行的加密通常在计算方面有多费力?

我曾考虑购买硬件路由器(防火墙类别,不带 Wi-Fi 接入点)来通过这种 OpenVPN 服务路由我的家庭网络,并且试图了解硬件路由器需要多强大的 CPU 和内存才能提供不受限制的加密互联网速度。一些更昂贵的路由器型号(例如使用 Intel i5-i7 处理器)宣称能够高速处理 AES-NI 加密,但不清楚它们是指路由器充当服务器为我的家庭创建自定义 VPN 网络的情况,还是指像我这样的情况,即我将家用设备连接到路由器,连接到 VPN 服务提供商。

换句话说:如果我不打算运行自定义 VPN 网络,我是否真的需要关心高级路由器计算性能?

答案1

并且 VPN 服务提供商使用 AES-NI

AES 是一种密码,AES-NI 是 Intel CPU 的一项功能,可加速此密码。不要混淆两者。

客户端无法区分使用“硬件”AES(通过 AES-NI)的服务器和使用“软件”AES 的服务器。这两种情况下都应用相同的算法,数据也以相同的方式加密。

我想了解硬件路由器需要多强大的 CPU 和内存才能提供不受限制的加密互联网速度。

它不需要大量内存,主要只需要 CPU。这取决于 CPU 是否具有某种用于密码的硬件加速。制造商的产品网站应该有相关信息(例如例子),有些甚至发布了常见配置的测试结果。

  • 我搜索了有关单板计算机的信息,我猜它们的性能差不多。例如,RPi 4 如果不执行其他操作(它没有 ARM 的 AES 扩展),可以以 ~600 Mbps 的速度处理 AES。

  • 路由器通常使用与台式计算机不同种类的 CPU,但尽管如此,我还是在我的 PC 上运行了几个基准测试(它们都具有各种类型的 Intel x64 CPU):没有AES 加速可以以约 1 Gbps 的速度加密 AES-CBC,并且硬件 AES(使用 Intel AES-NI)可以以 ~6 Gbps 的速度完成相同操作。

目前尚不清楚他们指的是路由器充当服务器为我的家庭创建自定义 VPN 网络的情况,还是指的是像我这样的情况,即我将家用设备连接到路由器,连接到 VPN 服务提供商。

两者之间没有真正的区别。如果一端加密数据,另一端必须解密,反之亦然,但服务器或客户端执行其中一项或另一项并不重要。(客户端不会以某种方式将“繁重工作”转移给服务器——这样做实际上会完全错过加密数据的初衷。)

对于 AES-GCM 或 AES-CTR,两个方向的工作量大致相同。对于 AES-CBC,正如我刚刚发现的那样,解密可以并行进行,但加密不能,因此发送数据的一方必须比接收数据的一方做更多的工作。

换句话说:如果我不打算运行自定义 VPN 网络,我是否真的需要关心高级路由器计算性能?

是的,你仍然需要。唯一的衡量标准是每秒有多少字节和/或数据包您打算处理 – 无论您是服务器还是客户端都没关系。(有些 VPN 系统甚至根本不区分这两个角色。)

例如,如果你计划通过 VPN 实现 50 Mbps 的速度,那么实际上根本不需要太多电力,但如果你期望 1 Gbps,那么就需要某种硬件加速将要是必要的。

请注意,AES 可通过各种操作模式(AES-GCM、AES-CTR、AES-CBC)使用,并非所有硬件加速功能都与每种模式兼容,并且并非所有模式都具有同等的加速可能性。例如,请参阅此 Intel AES-NI 文档

相关内容