在客户端第一次连接到服务器时,*** 是不是可以“中间人”? [关闭]
Posted
技术标签:
【中文标题】在客户端第一次连接到服务器时,*** 是不是可以“中间人”? [关闭]【英文标题】:Is "man in middle" possible for *** during the first time client connect to the server? [closed]在客户端第一次连接到服务器时,*** 是否可以“中间人”? [关闭] 【发布时间】:2012-06-15 18:38:06 【问题描述】:根据http://en.wikipedia.org/wiki/Secure_Shell#Key_management,ssh 在与服务器建立第一个连接时容易受到“中间人”攻击。
SSH 还支持由自动生成的密钥加密的基于密码的身份验证。在这种情况下,攻击者可以模仿合法方,询问密码并获取密码(中间人攻击)。然而,这只有在双方以前从未进行过身份验证时才有可能,因为 SSH 会记住远程端曾经使用过的密钥。
*** 是否也有同样的“弱点”?
【问题讨论】:
可能重复:serverfault.com/questions/214043/… @LarryBattle,不一样。我的问题是客户端首次通过 *** 连接到服务器时的密码传输问题。更像这样[me] <-> [man-in-middle] <-> [*** server]
这个问题怎么跑题了?来自常见问题解答:***.com/faq#questionssoftware tools commonly used by programmers
我认为我们程序员经常使用 *** 和 ssh。无论如何,@Eugene 回答了我的问题。谢谢。
下次在security.stackexchange.com 上发布您的问题。
哦,知道了。第一次海报。不知道 security.stackexchange.com 中有一个安全部分。谢谢@LarryBattle
【参考方案1】:
如果 *** 服务器使用客户端已知的密钥进行身份验证,那么就没有问题 - 密钥是已知的(并且应该是可信的)并且客户端可以确定它已连接到合法服务器。
这同样适用于 SSH。***中的措辞并不完全正确——为了使第一个连接可靠,客户端应该知道有效的服务器密钥。 “他们之前已经过身份验证”并不重要。客户信任密钥很重要。
如何在客户端上信任密钥?在 SSL/TLS 中使用 X.509 证书时,它会根据复杂的规则进行验证,并且证书链会构建到受信任的根证书。如果无法构建链,则最终实体证书不可信。在 SSH 中没有证书链,客户端信任服务器的唯一方法是客户端使用其他机制(语音呼叫或纸质或 USB 记忆棒或单独的 SSL/TLS 连接等)传输服务器的密钥。
【讨论】:
谢谢我认为这回答了我的问题以上是关于在客户端第一次连接到服务器时,*** 是不是可以“中间人”? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Android MQTT 客户端无法重新连接到 ActiveMQ