• 有关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/

  • 相关阅读:
    浅谈 iOS 之 Crash log 符号化
    聊聊 Statsd 和 Collectd 那点事!
    如何使用 Zend Expressive 建立 NASA 图片库?
    Nagios 邮箱告警的方式太OUT了!
    如何从软硬件层面提升 Android 动画性能?
    这样查看告警邮件要慢一点……
    Android 共享文件的 Runtime 权限
    第38节:hashCode()与toString()与equals()函数的作用,内部类和匿名内部类
    第37节:多线程安全问题
    第37节:多线程安全问题
  • 原文地址:https://www.cnblogs.com/wangzhigang/p/13322463.html
Copyright © 2020-2023  润新知