Red Hat Training

A Red Hat training course is available for RHEL 8

4.7. Libreswan 中使用的验证方法

您可以使用以下方法验证端点:

  • 预共享密钥 (PSK)是最简单的验证方法。PSK 应该由随机字符组成,长度至少为 20 个字符。在 FIPS 模式中,PSK 需要根据所使用的完整性算法满足最低强度要求。建议您不要使用小于 64 个随机字符的 PSK。
  • 原始 RSA 密钥 通常用于静态主机到主机或子网到子网 IPsec 配置。主机使用其他的公共 RSA 密钥进行手动配置。当 dozens 或更多主机都需要相互设置 IPsec 隧道时,此方法无法很好地扩展。
  • X.509 证书 通常用于大型部署,其中有很多主机需要连接到通用 IPsec 网关。中央 证书颁发机构(CA)用于为主机或用户签名 RSA 证书。此中央 CA 负责转发信任关系,包括单个主机或用户的吊销。
  • NULL 身份验证 用于在没有身份验证的情况下获得网格加密。它可防止被动攻击,但不会防止主动攻击。但是,由于 IKEv2 允许非对称身份验证方法,因此 NULL 身份验证也可用于互联网扩展机会 IPsec,其中客户端验证服务器,但服务器不验证客户端的身份验证。此模型类似于使用 TLS 的安全网站。

保护量子计算机

除了这些验证方法外,您还可以使用 Postquantum Preshared Keys (PPK)方法来防止 Quantum 计算机可能受到的攻击。单个客户端或客户端组可以通过指定与带外配置的 PreShared 密钥对应的(PPKID)来使用自己的 PPK。

使用带预共享密钥的 IKEv1 可为量级攻击者提供保护。重新设计 IKEv2 不原生提供这种保护。Libreswan 提供使用 Postquantum Preshared Keys (PPK)来保护 IKEv2 连接免受量子攻击。

要启用可选的 PPK 支持,请在连接定义中添加 ppk=yes。要需要 PPK,请添加 ppk=insist。然后,可为每个客户端分配一个带有一个 secret 值的 PPK ID,其 secret 值会被传递到带外(最好是使用半字节安全)。PPK 的随机性应该非常强大,而且不能基于字典的单词。PPK ID 和 PPK 数据本身存储在 ipsec.secrets 中,例如:

@west @east : PPKS "user1" "thestringismeanttobearandomstr"

PPKS 选项指的是静态 PPK。实验性功能使用基于单时间的 Dynamic PPK。在每个连接中,会将一次性 pad 的新部分用作 PPK。当使用时,文件中的该部分动态 PPK 被零覆盖,以防止重复使用。如果没有剩下一次性资源,连接会失败。详情请查看 ipsec.secrets(5) man page。

警告

动态 PPK 的实现是作为技术预览提供的,这个功能应该小心使用。