gpt4 book ai didi

security - 为什么SSH不使用互锁协议(protocol)?

转载 作者:行者123 更新时间:2023-12-04 21:50:52 28 4
gpt4 key购买 nike

看来SSH设计师非常关心中间人的攻击。

他们的方法是,在您第一次连接到服务器时保存服务器的公钥指纹(并希望用户第一次不要从中毒的网络连接,例如,如果他的网络中有病毒)计算机)。然后,用户下次连接到此服务器时,将使用指纹来验证服务器的公钥。

在实践中,我发现许多用户只是忽略了有关指纹不匹配的警告,并认为这是由于服务器重新安装造成的。只是 MITM 攻击很难进行且很少见,您永远不必担心。此外,很多时候用户想要在许多不同的计算机上使用 ssh,并且他不会费心将所有指纹导入他可能想要使用的任何计算机 SSH与(嘿,你能看看我的网站为什么被关闭,我很 panic !我不在办公室,我会去最近的网吧看看)。

公平地说,可以使用 DNSSEC并使用 DNS服务器作为 CA .但是,我从未见过在实践中使用过。无论如何,这不是协议(protocol)的强制性部分。

多年来,我认为没有预共享 secret 就无法避免 MITM,但我最近一直在阅读 Bruce Schneir 的优秀“实用密码学”,他在那里提到了 interlock protocol .

  • Alice 将她的公钥发送给 Bob。
  • Bob 将他的公钥发送给 Alice。
  • Alice 使用 Bob 的公钥加密她的消息。她将一半的加密消息发送给 Bob。
  • Bob 使用 Alice 的公钥加密他的消息。他将一半的加密消息发送给 Alice。
  • Alice 将她加密消息的另一半发送给 Bob。
  • Bob 将 Alice 的两半消息放在一起,并用他的私钥解密。 Bob 将他的加密消息的另一半发送给 Alice。
  • Alice 将 Bob 消息的两半放在一起,并用她的私钥解密。

  • 现在,Mallory 必须在协议(protocol)的步骤 (3) 中向 Bob 发送一些东西,在他收到 Alice 的一半消息后,即使他在 (5) 中从 Alice 那里得到所有信息之前无法解密它。他必须向鲍勃编造一条消息,鲍勃很可能会注意到他在编造,比如说,在他 ls 之后。他的主目录。

    为什么没有 SSH使用这样的方案?它似乎真的符合它的目标。它不需要任何其他实体,并且使 MITM 攻击变得更加困难。

    它是天生的吗?我对问题的理解有缺陷吗?或者只是设计师认为额外的安全性不值得使协议(protocol)复杂化?

    PS:
    如果你觉得这样会造成太大的开销,你可以强制协议(protocol)的用户只对第一个 10K使用互锁。连接中的数据,所以在实践中它不会太重要,但 MITM 会更加困难。

    更新:
    对互锁协议(protocol)的攻击描述 here , 并不意味着 MITM 攻击是可能的,它确实意味着如果在通信期间发送单个密码,MITM 可以拦截它并且用户只会看到超时错误。

    更新 2:
    Eugene, raise 是有效的。互锁协议(protocol)不允许身份验证。也就是说,如果您连接到 example.com,您仍然无法确定。 ,确实是 example.com ,而不是 malicious.com冒充 example.com .如果没有,例如 DNSSEC,您就无法确定这一点。 .例如,如果您是 SSH到导弹筒仓,并写信 launch_missile -time now (例如,没有使用 ls 来验证服务器确实是导弹发射井中的服务器),可能是您实际上在恶意服务器中编写了该服务器,现在敌人知道您将要向他发射导弹.联锁协议(protocol)确实无法阻止这种类型的攻击。

    但是,如果我正确理解了协议(protocol),可能会阻止更危险的攻击和非常实际的攻击。如果使用互锁协议(protocol),即使您对 example.com 一无所知,你不可能 SSH到你的服务器,有人会窃听整个 SSH session 。我认为这种类型的攻击更有可能。

    也许 SSH不关心 MITM 攻击?我认为不会,例如参见 Putty FAQ :

    Those annoying host key prompts are the whole point of SSH. Without them, all the cryptographic technology SSH uses to secure your session is doing nothing more than making an attacker's job slightly harder; instead of sitting between you and the server with a packet sniffer, the attacker must actually subvert a router and start modifying the packets going back and forth. But that's not all that much harder than just sniffing; and without host key checking, it will go completely undetected by client or server.



    他显然在谈论 MITM 攻击和 不是 关于服务器认证。我认为使用互锁协议(protocol)将明显防止 Putty FAQ 中提到的攻击,但我仍然不明白他们为什么不使用它。

    最佳答案

    我不明白互锁协议(protocol)如何防止 MITM。

    问题不在于如何交换 key ,而在于如何信任它们。您正确地指出,人们会忽略 key 不匹配的警告。这确实是最大的缺陷,但是您描述的协议(protocol)并没有解决 key 来源的验证问题。 SSL 使用 X.509 证书和 PKI 来验证信任。 SSH 也可以使用证书,但几乎没有 SSH 软件支持它们。

    关于security - 为什么SSH不使用互锁协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5042045/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com