VPN 服務用戶端的加密職責的運算負擔有多大?

VPN 服務用戶端的加密職責的運算負擔有多大?

如果您使用VPN 用戶端軟體連接到使用OpenVPN 的VPN 服務提供者(如ExpressVPN、NordVPN 等),且該服務是端對端加密的,且VPN 服務提供者使用AES-NI – 就條款而言,這是多麼的稅收粗略地說,計算的一部分通常是在客戶端設備上進行的加密?

我考慮過購買一個硬體路由器(防火牆類別,沒有Wi-Fi 接入點)來通過這樣的OpenVPN 服務路由我的家庭網絡,並且我試圖了解硬體路由器需要多麼強大的CPU 和內存才能提供不受約束的加密網路速度。一些較昂貴的路由器型號(例如使用英特爾 i5-i7 處理器)聲稱能夠高速處理 AES-NI 加密,但尚不清楚它們是否指的是路由器充當伺服器來創建為我的家庭定制VPN 網路– 或者如果他們指的是像我這樣的情況,我將家庭設備連接到路由器、VPN 服務提供者。

換句話說:如果我不打算運行自訂 VPN 網絡,我真的需要關心高階路由器運算效能嗎?

答案1

VPN 服務提供者使用 AES-NI

AES 是一種密碼,AES-NI 是一種可加速該密碼的 Intel CPU 功能。不要把兩者混為一談。

客戶端無法區分透過 AES-NI 使用「硬體」AES 的伺服器和使用「軟體」AES 的伺服器之間的差異。在這兩種情況下,應用相同的演算法並以相同的方式加密資料。

我試圖了解硬體路由器需要多麼強大的 CPU 和記憶體才能提供不受限制的加密互聯網速度。

它不需要大量的內存,大部分只需要CPU。這取決於CPU是否有某種密碼硬體加速功能。製造商的產品網站應該有相關資訊(例如例子),其中一些甚至發布了常見配置的測試結果。

  • 我在谷歌上搜尋了有關單板計算機的信息,我猜它們的功能相似。例如,如果 RPi 4 不執行任何其他操作(它沒有 ARM 的 AES 擴充),則它可以以約 600 Mbps 的速度處理 AES。

  • 路由器通常使用與桌上型電腦不同類型的 CPU,但儘管如此,我還是在我的幾台 PC 上運行了基準測試(所有這些 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)使用,並非所有硬體加速功能都與每種模式相容,並非所有模式都同樣可以加速。請參閱範例此英特爾 AES-NI 文檔

相關內容