SSL和SSH有什么区别( 二 )


但是,与第一种级别相比,第二种级别不需要在网络上传送口令 。第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙) 。但是整个登录的过程可能需要10秒 。
加密方式的关联与差异
从严格密码学角度来看,他们身份验证的加密方式不同 。SSL 和 SSH 都提供加密元素,以便为检查完整性的机密数据传输构建隧道 。
SSH 使用所谓的 encryption -and-mac,即将加密的消息与明文消息的身份验证代码(MAC)并列,以添加完整性 。这并不是完全安全的(即使看起来已经足够安全了) 。
SSL 使用 MAC-then- encrypt,即将MAC与明文并列,然后对它们进行加密 。这也不是最好的,因为在一些分组密码模式下,MAC的某些部分可以猜测并显示密码上的一些内容 。这导致了TLS 1.0中的漏洞 。老的算法譬如:TLS_RSA_WITH_AES_128_CBC_SHA 和TLS_RSA_WITH_RC4_128_MD5 都是mac-then-encrypt模式 。
两种加密方式它们都有潜在的理论弱点 。最强的方法是Encrypt-then-MAC,它在IPsec ESP中实现 。
安全性比较
从安全性上来讲,Secure Shell和SSL各有千秋 。
SSL有证书中心(CA)公正,可以确定发送者的身份 。而SSH没有,可能会被“中间人攻击”,它相当于现代版的窃听 。如果攻击者插在用户与远程主机之间(比如在公共wifi区域),用伪造的公钥,获取用户的登录密码 。再用这个密码登录远程主机,那么SSH的安全机制就荡然无存了 。不过确保禁用了不安全的SSL/TLS协议,且所访问的网址前面有HTTPS作为开头,可以避免大多数的中间人攻击 。
SSL终止代理可以处理传入的SSL连接,解密SSL并将未加密的请求传递给其他服务器 。SSL允许您通过签名证书使用PKI(公钥基础设施) 。而使用SSH,您必须通过ftp等其他协议手动交换密钥指纹 。
SSH有一个用户身份验证层,这是SSL所缺乏的(不过是因为它并不需要验证功能) 。在使用utf – 8编码时,SSH协议使用了更多的协议 。考虑到有更多的潜在攻击,SSH的攻击面似乎更大 。但这只是因为SSH内建了一个完整的应用程序 。安全性和SSL其实相差无几 。
从概念上讲,我们可以使用SSH并将隧道部分替换为SSL中的隧道部分,甚至还可以使用HTTPS并使用SSH-with-data-transport替换SSL事务,并使用钩子从其证书中提取服务器公钥 。没有科学上的不可能性,如果做得恰当,它们的安全性将保持不变 。

【SSL和SSH有什么区别】


推荐阅读