除了SSH提供的增强身份验证选项外,SSH和SSL协议的基本工作之间有什么区别吗?
我问,因为我们可以使用SFTP或FTP over SSL,两者都需要身份验证.
SSL代表"安全套接字层".我们关心,因为它使浏览器能够以安全的加密方式与Web服务器之间传输数据,从而使第三方间谍监控所有互联网流量变得艰难.
SSH代表"Secure Shell". 我们关心,因为它使联网计算机1能够提供对联网计算机2上的外壳的访问.用户可以有一定程度的信心,即监听不安全信道的间谍不能解密在联网计算机之间发送的数据.
SSL和SSH都与提供系统来加密和解密不安全通道上的数据有关.
当浏览器访问以"https://"开头的URL时,浏览器会通过SSL连接说出HTTP.
支持SSL的Web服务器(例如Apache HTTP Server)可以配置为使用SSL成为"安全Web服务器".由安全Web服务器提供的网站将使用户通过"https://"协议而不是"http://"访问URL.使用https协议,用户可以充满信心地监控互联网频道的第三方间谍将仅接收加密内容.
SSL是一种可以在OSI模型的第6层(表示层)中实现的协议.
SSH有自己独立于SSL的传输协议,因此这意味着SSH不会在引擎盖下使用SSL.
在密码方面,Secure Shell和Secure Sockets Layer都是同样安全的.
的SSL终止代理可以处理传入的SSL连接,解密SSL,并传递所述未加密的请求发送到其他服务器.
SSL允许您通过签名证书使用PKI(公钥基础结构).使用SSH,您必须通过其他协议(如ftp或载波鸽)手动交换密钥指纹.
主要区别在于SSL允许您使用PKI(通过签名证书).在SSH中,您必须在带外交换关键指纹.但无论如何你可能想要没有PKI,在这种情况下它是一个平局.
有关一个很好的解释,请参阅http://www.snailbook.com/faq/ssl.auto.html
SSH和SSL是类似的协议,它们都使用大多数相同的加密原语,因此它们彼此都是安全的.SSH的一个优点是使用密钥对身份验证实际上很容易做到,并且内置于协议中.
使用SSL,涉及CA证书和其他事情有点混乱.在准备好PKI之后,还需要配置服务以使用PKI进行身份验证而不是内部密码数据库; 这是一些服务的噩梦和其他服务上的小菜一碟.这也意味着您需要签署所有用户密钥的麻烦,以便他们可以使用它们登录.
大多数有能力的用户可以立即查看SSH密钥,但需要更长时间才能了解SSL密钥(额外的CA证书和密钥证书在我第一次发现它时会让我感到困惑).
选择什么是可支持的.SSH + SFTP非常适合Unix用户,但如果您的用户是基于Windows的,并且除了Internet Exploiter之外的其他任何东西都非常无能为力,那么基于SSL的FTP可能更容易做到(并且您不介意用户会选择不安全的密码) ).
在密码学上,它们都是同样安全的(假设使用相同的密码).除此之外,他们是完全不同的协议......
首先,TLS服务器身份验证是可选的,因为其协议支持完全匿名服务器身份验证.在SSH中,这是强制性的.
TLS使用X.509证书进行客户端和服务器身份验证,这需要某种PKI.SSH在这一点上不扩展,但提供了更广泛的身份验证方法:密码,公钥等.
另一个区别是SSH允许多个连接并支持远程程序执行,终端管理,TCP隧道等.