2011-07-05 38 views
7

我意识到这个问题是主观的。SSH:登录时,密码是纯文本还是可sniffable?

我很好奇创建SSH隧道时SSH密码的可理解性。安全会话在密码验证后开始,还是密码本身封装在此安全连接中?

今天早上在办公室发生了一场有趣的辩论之后,除了使用键盘记录器在客户端上泄露SSH密码的可能性之外,我很好奇SSH密码是否也可能被数据包嗅探所破坏工具在LAN上,或安装在客户端和服务器之间的任何代理上。通过SSH隧道登录到运行在一个/多个中间代理服务器后面的客户端上,它开启了更广泛的关于登录私人服务(如家庭NAS或电子邮件)的智慧的辩论。 (即在工作中),特别是声称诸如Ettercap的工具能够窥探SSH数据包。

我认为可以对SSL/HTTPS进行相同的考虑,其中网站不会将密码解析为单向散列,如MD5?

你的沉思将是最受赞赏的。

谢谢。的OpenSSH的联机帮助

+3

这不是一个编程问题。 – Raoul

+1

关于HTTPS,有类似的问题:http://stackoverflow.com/questions/3911906/encrypting-http-post-data/3923617#3923617和http://stackoverflow.com/questions/3837989/sending-sensitive-data -as-A-查询字符串参数/ 3840144#3840144。整个请求通过SSL/TLS发送(包括请求路径,标题和正文)。即使发送明文(通过表单或HTTP Basic),密码的传输也会受到保护。 – Bruno

+0

我应该澄清我刚才所说的:“密码的传输是受保护的,即使是在发送明文时”,我的意思是,即使密码未在应用层加密(HTTP基本身份验证只是一个编码和在表单中键入的密码在表单数据中原样发送)。它实际上没有明确发送,正是因为它全部通过SSL/TLS完成(通常,如果使用适当的密码套件)。 – Bruno

回答

15

摘录:

最后,如果其他身份验证方法失败,SSH提示输入pass- 字的用户。密码被发送到远程主机进行检查;但是,由于所有通信都是加密的,所以有人在网络上收听 时看不到密码。

5

SSH没有任何理由被命名为“Secure Shell”。

SSH使用公钥密码进行身份验证,这本身就非常安全。如果我们假设攻击者没有用户和ssh守护进程的私钥 - 仅通过监听网络就无法解密密码。

这个协议,就像大多数其他协议不会保护您免受来自其他方的攻击。社交工程和Man在中间攻击中有几种组合,如the SSH version downgrading attackDNS Spoofing attack