有关IPsec预共享密钥的注意事项

IPSec中的预共享密钥

预共享密钥(PSK)是站点到站点IPsec VPN隧道最常用的身份验证方法。那么关于PSK的安全性呢?它对网络安全起什么作用?PSK应该有多复杂?是否应该另外存储它们?如果攻击者获得了我的PSK,会发生什么?

以下部分仅与站点到站点VPN有关,与远程访问VPN不相关。

  1. 预共享密钥仅用于身份验证,不用于加密!IPsec隧道依靠ISAKMP / IKE协议来交换密钥以进行加密等。但是,在IKE正常工作之前,两个对等方都需要彼此进行身份验证(相互身份验证)。这是使用PSK的唯一部分(RFC 2409)。
  2. 如果双方都使用静态IP地址(=可以使用主模式),则拥有PSK的攻击者还必须在自己身上进行欺骗/重定向这些公共地址,以建立VPN连接。即:即使攻击者拥有PSK,他也必须欺骗公共IP地址以使用它对另一方进行身份验证。对于具有普通ISP连接的普通人来说,这是非常不现实的。甚至熟练的黑客也必须能够注入伪造的BGP路由或位于客户默认网关/路由器附近。
  3. 但是:如果一个远端只有一个动态IP地址,则IKE必须使用主动模式进行身份验证。在这种情况下,来自PSK的哈希会遍历Internet。攻击者可以对此哈希进行离线蛮力攻击。也就是说:如果PSK不够复杂,则攻击者可能会成功,并且能够建立与网络的VPN连接(如果他进一步知道站点到站点VPN对等体的ID,这也没问题,因为它们遍历也以明文形式通过互联网)。

PSK的最佳做法

由于PSK只能在每侧配置一次,因此在防火墙上写20-40个字母应该没问题。由此,可以生成真正复杂的密钥并将其用于VPN对等方的身份验证。这是我的建议:

  1. 为每个VPN隧道生成一个新的/不同的PSK。
  2. 使用密码/密码生成器来创建PSK。
  3. 生成一个至少包含30个字符的长PSK,以抵抗暴力攻击。为避免出现问题,请仅使用字母数字字符。由于带有30个字符的PSK确实很长,因此仅62个字母和数字的“小”字符集就没有问题。此示例中的安全级别大约为178位(因为log_ {2}(62 ^ {30})= 178)。
  4. 请勿通过Internet,通过电话,传真或SMS 将PSK发送给对等方
  5. 无需将PSK存储在其他任何地方。如果在两侧都进行了配置,则可以将其丢弃。在最坏的情况下,您需要生成并传输一个新的。

英文原文链接:https://weberblog.net/considerations-about-ipsec-pre-shared-keys-psks/

posted @ 2020-07-16 14:28  夜半弯  阅读(4116)  评论(0编辑  收藏  举报