谷歌发现了与 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 客户端的流量。 该协议最初设计为在谷歌级别的基础设施中有效工作,并且应该在存在数百万个活动网络连接以及每秒建立数十万个新连接的情况下提供加密硬件加速。

支持两种操作模式:“有状态”和“无状态”。 在“无状态”模式下,加密密钥在数据包描述符中传输到网卡,并使用主密钥(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

添加评论