SSH比SSL更高层,更安全?请看两者4大区别—基于原理和协议

网络 网络管理
SSH和SSL表面差别很大,但仔细想想,他们功能相似,加密方式相似,这是上天的安排,还是冥冥中的巧合?
“SSH 和 SSL 的区别?”

“难道不是苹果和橙子的区别?”

“这种比较有什么意义吗?”

80%的人会有这样的疑问,这明明是两种不同的东西嘛。

是的,这看似不是一个合理的比较。普遍的认知是:

  • SSL是一种保护通过网络传输的数据的通用方法
  • SSH是一种用于登录和共享数据的网络程序

他们差别很大。但仔细想想,他们功能相似,加密方式相似,这是上天的安排,还是冥冥中的巧合?

看似风马牛不相及,你真的认真对比过他们吗?工作中,你又是否偶尔会混淆他们呢?下面让我们基于原理和协议一起来一探究竟……

一、SSL

SSL,即安全套接层(Secure Sockets Layer),它是一种安全协议,是Netscape公司在推出Web浏览器首版时一起提出的。

SSL证书主要是部署在网站服务器中,通过SSL协议实现浏览器客户端与网站服务器通信链路上的数据加密,并认证网站服务器身份,防止钓鱼网站。它用来保障你的浏览器和网站服务器之间安全通信,免受网络“中间人”窃取信息。

传统的HTTP协议采用明文传输数据,用户数据存在被窃取和篡改的风险。而部署了SSL证书的网站,可以采用安全的HTTPS协议进行访问。当浏览器访问以“https://”开头的URL时,浏览器通过SSL连接使用HTTP。SSL协议会在数据传输之前对数据进行加密再进行网络传输,保证了用户数据在传输链路上的安全。

SSL协议包含两个子协议:

  • 记录协议(SSL Record Protocol):说明SSL的数据包应该如何封装的。位于OSI七层模型的会话层上,为不同机器上的用户建立和管理会话。
  • 握手协议(SSL Handshake Protocol):说明通信双方如何协商共同决定使用什么算法以及算法使用的key。它在OSI七层模型会话层的下一层——表示层上,对他们之间的网络联接进行加密解密。

二、SSH

SSH,也就是Security Shell,由 IETF 的网络小组(Network Working Group)所制定,是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。

SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH相当于一个隧道,数据通过的时候保护它不被泄露和篡改,为shell提供安全的传输和运用环境。具体来说,通过它可以安全的远程实行另一台UNIX体系上机器的指令。

SSH只是一种协议,它有很多实现方法。在Linux中SSH几乎是标配,其中用的最多的实现是OpenSSH。在Windows系统中使用SSH,会用到另一种软件PuTTY。这就相当于用QQ远程在别的电脑上登录一样,是一种安全地远程登录服务器的方法。

在互联网层次中,SSH与HTTP,FTP类似,归于OSI七层参考模型中的应用层协议,它是使用TCP协议的应用层服务中的一员。

三、SSH和SSL之间的区别和关联是什么?

1. 在OSI七层模型中的位置

看完前面的介绍,我们了解到 SSL 是保护网络传输数据的协议,是安全地在互联网中传输的基石。而 SSH 只是一种用于主机用户登录,安全共享数据的网络应用程序。它们在OSI七层模型中位于不同的位置:

SSH 比 SSL 更高层,更安全?请看两者4大区别—基于原理和协议

2. 功能的关联与差异

(1) 差异

从功能上来讲,他们差异很大。

SSH 代表了“Secure Shell”。我们关心它是因为,它使联网的计算机1能够访问联网计算机2上的shell,以计算机1的身份登录主机,并对他进行操作。

SSL 代表“安全套接字层”。我们之所以关注它,是因为它使浏览器能够以一种安全的加密方式在web服务器之间传输数据,从而使监视所有internet流量的第三方间谍难以生存。SSL和主机用户名登录没有任何关系,它本身并不实现主机登录的功能,它只是一个单纯的加密功能。

(2) 关系

SSL和SSH都必须提供在不安全通道上加密和解密数据的系统。SSH有自己独立于SSL的传输协议,所以这意味着SSH在底层不使用SSL。

为了方便理解,可以简单的认为功能上:SSH = SSL + 用户登录功能等应用层协议。

3. 加密方式的关联与差异

从严格密码学角度来看,他们身份验证的加密方式不同。

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中实现。

4. 安全性比较

从安全性上来讲,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 更高层,更安全?请看两者4大区别—基于原理和协议

从概念上讲,我们可以使用SSH并将隧道部分替换为SSL中的隧道部分,甚至还可以使用HTTPS并使用SSH-with-data-transport替换SSL事务,并使用钩子从其证书中提取服务器公钥。没有科学上的不可能性,如果做得恰当,它们的安全性将保持不变。

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2015-07-09 09:34:24

2021-03-01 10:26:44

CIOIT领导者IT经理

2019-09-26 06:27:59

FTPSFTPTCP

2010-09-16 09:05:50

CSS display

2021-12-10 23:46:13

手机数据重启

2018-05-28 09:09:00

机器学习深度学习

2010-04-16 11:32:29

PGA和UGA

2012-11-01 13:14:26

2019-08-22 10:35:10

SSL协议安全

2020-04-10 21:02:51

人工智能

2013-04-10 18:56:26

2012-12-28 14:02:47

2022-05-14 16:08:25

边缘计算AI人工智能

2019-09-04 00:11:06

5G网络安全4G

2010-03-23 17:44:10

Java Socket

2020-08-31 18:51:53

数据保护网络安全漏洞

2019-02-22 05:23:36

VLANVXLAN网络技术

2019-10-21 08:44:54

操作系统GPUCPU

2012-08-23 13:23:40

2010-06-21 15:26:04

点赞
收藏

51CTO技术栈公众号