谷歌發現了與 PSP 安全網路協定相關的進展

谷歌宣布開放 PSP(PSP 安全協定)的規範和參考實現,用於加密資料中心之間的流量。 該協定使用類似 IP 上的 IPsec ESP(封裝安全有效負載)的流量封裝架構,提供加密、密碼完整性控制和來源驗證。 PSP 實作程式碼是用 C 語言編寫的,並在 Apache 2.0 許可證下分發。

PSP 的一個特點是對協定進行最佳化,透過將加密和解密操作移至網卡一側(卸載)來加速運算並減少中央處理器的負載。 硬體加速需要特殊的 PSP 相容網路卡。 對於不支援PSP的網路卡的系統,建議採用SoftPSP的軟體實作。

UDP 協定用作資料傳輸的傳輸方式。 PSP 封包以 IP 標頭開始,然後是 UDP 標頭,然後是其自己的帶有加密和身份驗證資訊的 PSP 標頭。 接下來,附加原始 TCP/UDP 封包的內容,並以帶有校驗和的最終 PSP 區塊結束,以確認完整性。 PSP 標頭以及封裝資料包的標頭和資料始終經過身份驗證,以確認資料包的身份。 封裝資料包的資料可以被加密,同時可以選擇性地套用加密,同時保留部分 TCP 標頭清晰(同時保持真實性控制),例如,提供在傳輸網路裝置上檢查資料包的能力。

谷歌發現了與 PSP 安全網路協定相關的進展

PSP 不依賴任何特定的金鑰交換協議,提供多種資料包格式選項並支援使用不同的加密演算法。 例如,支援 AES-GCM 演算法進行加密和身份驗證(身份驗證),支援 AES-GMAC 進行身份驗證,無需對實際資料進行加密,例如當資料不有價值,但您需要確保它沒有加密時。在傳輸過程中被篡改,並且它是最初發送的正確訊息。

與典型的 VPN 協定不同,PSP 在單一網路連線層級而不是整個通訊通道(即)使用加密。 PSP 對不同的隧道 UDP 和 TCP 連線使用單獨的加密金鑰。 這種方法可以實現來自不同應用程式和處理器的流量的更嚴格隔離,這在不同用戶的應用程式和服務在同一台伺服器上運行時非常重要。

Google 使用 PSP 協定既保護其內部通信,也保護 Google Cloud 用戶端的流量。 該協議最初設計為在Google級別的基礎設施中有效工作,並且應該在存在數百萬個活動網路連接以及每秒建立數十萬個新連接的情況下提供加密硬體加速。

支援兩種操作模式:「有狀態」和「無狀態」。 在「無狀態」模式下,加密金鑰在資料包描述符中傳輸到網卡,並使用主金鑰(256 位元AES,儲存在資料包中)從資料包中的SPI(安全性參數索引)欄位中提取加密金鑰。網卡內存,每24小時更換一次),這樣可以節省網卡內存,最大限度地減少設備側存儲的加密連接狀態資訊。 在「有狀態」模式下,每個連接的金鑰都儲存在網路卡上的一個特殊表中,類似於 IPsec 中硬體加速的實作方式。

谷歌發現了與 PSP 安全網路協定相關的進展

PSP 提供 TLS 和 IPsec/VPN 協定功能的獨特組合。 就每個連接的安全性而言,TLS 適合 Google,但由於缺乏硬體加速靈活性且缺乏 UDP 支持,因此並不適合。 IPsec 提供協定獨立性並且很好地支援硬體加速,但不支援與單一連接的金鑰綁定,僅針對創建的少量隧道而設計,並且由於將完整加密狀態儲存在位於記憶體中的表中而在擴充硬體加速方面有問題網路卡的大小(例如,處理 10 萬個連線需要 5 GB 記憶體)。

對於PSP,有關加密狀態的資訊(金鑰、初始化向量、序號等)可以在TX資料包描述符中或以指向主機系統記憶體的指標的形式傳輸,而不佔用網卡記憶體。 據谷歌稱,該公司基礎設施中約 0.7% 的運算能力和大量記憶體先前用於加密 RPC 流量。 透過使用硬體加速引入 PSP 可以將這一數字降低至 0.2%。

來源: opennet.ru

添加評論