SSH 对比 SSL

警告
本文最后更新于 2023-10-22,文中内容可能已过时。

SSH 对比 SSL

https://zhuanlan.zhihu.com/p/138679729

在 OSI 七层模型中,这两个安全传输协议其实都是建立在应用层上的


在最初的设计意图中;

SSL(Secure Sockets Layer (SSL) and Transport Layer Security (TLS)) 被设计为加强 Web 安全传输 (HTTP/HTTPS/) 的协议 (事实上还有 SMTP/NNTP 等) ,默认使用 443 端口

SSH(Secure Shell) 更多的则被设计为加强 Telnet/FTP 安全的传输协议,默认地,它使用 22 端口。

ssl 是通讯链路的附加层。可以包含很多协议。https, ftps, …..

ssh 只是加密的 shell,最初是用来替代 telnet 的。通过 port forward,也可以让其他协议通过 ssh 的隧道而起到加密的效果。

SSL 是一种国际标准的加密及身份认证通信协议,您用的浏览器就支持此协议。SSL(Secure Sockets Layer)最初是由美国 Netscape 公司研究出来的,后来成为了 Internet 网上安全通讯与交易的标准。SSL 协议使用通讯双方的客户证书以及 CA 根证书,允许客户/服务器应用以一种不能被偷听的方式通讯,在通讯双方间建立起了一条安全的、可信任的通讯通道。它具备以下基本特征:信息保密性、信息完整性、相互鉴定。主要用于提高应用程序之间数据的安全系数。SSL 协议的整个概念可以被总结为:一个保证任何安装了安全套接字的客户和服务器间事务安全的协议,它涉及所有 TC/IP 应用程序。

SSH 的英文全称是 Secure Shell。通过使用 SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止 DNS 和 IP 欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH 有很多功能,它既可以代替 telnet,又可以为 ftp、pop、甚至 ppp 提供一个安全的“通道”。SSH 是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x 和 2.x。用 SSH 2.x 的客户程序是不能连接到 SSH 1.x 的服务程序上去的。OpenSSH 2.x 同时支持 SSH 1.x 和 2.x。

SSH 的安全验证是如何工作的?从客户端来看,SSH 提供两种级别的安全验证。

第一种级别(基于口令的安全验证)只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。

第二种级别(基于密匙的安全验证)需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到 SSH 服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在你在该服务器的家目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。用这种方式,你必须知道自己密匙的口令。

但是,与第一种级别相比,第二种级别不需要在网络上传送口令。第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要 10 秒。


https://zhuanlan.zhihu.com/p/109746532

SSH 与 SSL 应用方向不同,但基于技术都是一样的(公钥和私钥配对)

SSL 主要用在 Browser 和 Server 通信,比如 HTTPS=HTTP+SSL

SSH 是由客户端和服务端的软件组成的,用于 computer 之间通信,比如我们通过 SSH 登录远端服务器。有两个不兼容的版本分别是:1.x 和 2.x。用 SSH 2.x 的客户程序是不能连接到 SSH 1.x 的服务程序上去的。OpenSSH 2.x 同时支持 SSH 1.x 和 2.x。

0%