在客户端第一次连接到服务器时,*** 是不是可以“中间人”? [关闭]

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

可以连接到命名管道的客户端数量

socket客户端连接到服务端之后,这个连接是否永久有效?

OAuth 客户端是不是必须连接到 Oauth 服务器上?

Web 套接字和 Flash 套接字客户端连接到一个 Node.js

套接字是不是在重新连接事件中重用?