首页 > 自考资讯 > 高考百科

SSH协议(ssh协议号)

小条 2024-10-01

SSH协议

SSH是Secure Shell的缩写,是由IETF网络工作组开发的基于公钥的安全应用协议。它由三个子协议组成:SSH传输层协议、SSH用户认证协议和SSH连接协议,每个子协议共同实现加密、认证、完整性检查等各种安全服务。

研究目标是通过现代密码技术逐步增强网络安全,并增强网络内的非安全服务。提供服务器认证、用户认证以及FTP、Rlogin、Telnet等安全加密网络连接服务。 SSH 协议有两个主要版本:SSH1 和SSH2。 SSH1因漏洞已被禁用,目前主要使用SSH2。

656dc502ffef413ba68a8cf3705872ab~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1728322988&x-signature=yuyiK35vWvPD81Pd%2FBR7SG8bHjw%3D

SSH2协议概述

首先我们展示主要上下文图。

93e948eb7e444c97ab939485c84321dd~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1728322988&x-signature=LwbrfAxXYxbx45rjqcvXlBh3FoU%3D 可以看到它包含几个键。

session key: 用作私钥加密的密钥以及每个ssh 连接的标识ID。

主机密钥: 用于服务器身份验证。

known-hosts: 这是客户端上存在的受信任服务器公钥的列表。

user key: 用于客户端认证。

服务器和客户端交换会话密钥后,所有数据都会使用该会话的私钥进行加密。

c147eedcd439496c93fd2ff3ac86f62f~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1728322988&x-signature=oRTvbAZDVRdUbDKeVzAn0DTXfmY%3D 上图提供了SSH2 协议的高级概述。首先,SSH2协议分为三个子协议:SSH-TRANS、SSH-AUTH、SSH-CONN。

其中,SSH-TRANS是一个出站协议,定义了出站数据包,其他两个协议都建立在该协议之上。

SSH-AUTH 是SSH 用于验证客户端身份的协议。这实际上是您在ssh 命令中输入密码的步骤。您的用户名和密码将发送给您,但该协议是建立在SSH-TRANS 之上的,因此您知道您的内容已加密并且可以安全发送。

SSH-CONN是一个真正的应用协议。这里可以定义多种协议,其中常用的scp、sftp、常规的远程shell都是这里定义的协议实现。这里的各种应用协议在使用之前首先要经过SSH-AUTH的验证。

这三个协议之间的关系可以用下图来说明。

5df59d2a25cd4744b4a43e9ebebf0f7d~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1728322988&x-signature=2aJIdD1lhfHV5%2B9FaIleawn4RaA%3D SSH-TRANS 是SSH-AUTH 和SSH-CONN 用于提供安全加密的基本协议。尽管SSH-CONN 按时间顺序发生在SSH-AUTH 之后,但SSH-CONN 并不依赖于SSH-AUTH。

SSH 的工作原理

7a0cbe3d672f42d59ffc28830bf634f3~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1728322988&x-signature=acHhfe4TI4kmlaBhuX2PSbvjeSY%3D

SSH功能

1) 克服传统网络服务程序的加密弱点

明文传输:FTP、POP、Telnet 等传统网络服务程序使用明文在网络上传输密码和数据,本质上是不安全的。别有用心的人很容易截获这些密码和数据。

安全验证弱点:这些服务程序的安全验证方法也存在弱点。这意味着它们很容易受到“中间人”攻击。所谓“中间人”攻击技术是指“中间人”冒充真实服务器,接收发送到服务器的数据,然后冒充用户并将数据发送到真实服务器。服务器。

当服务器和用户之间的数据传输被“中介”修改时,就会出现严重的问题。 SSH 允许您加密所有发送的数据,从而杜绝“中间人”攻击并防止DNS 和IP 欺骗。

使用SSH 的另一个好处是发送的数据经过压缩,从而提高传输速度。 SSH具有很多特性,不仅可以替代Telnet,还可以为FTP、PoP、甚至PPP提供安全的“通道”。

2)SSH为客户端提供两级安全验证

第一级(基于密码的安全验证)

如果知道账号和密码,就可以登录远程主机。尽管发送的所有数据均已加密,但不能保证您连接的服务器就是您正在连接的服务器。其他服务器可能会伪装成真实服务器,这是一种“中间人”攻击。

第二级(基于密钥的安全认证)

这应该取决于密钥。这意味着您需要为自己创建一个密钥对,并将公钥放在您需要访问的服务器上。当连接到SSH服务器时,客户端软件会要求服务器使用密钥进行安全验证。当服务器收到请求时,它首先在服务器的主目录中查找公钥,并将其与发送的公钥进行比较。

如果两个密钥匹配,则服务器使用公钥来加密“挑战”并将其发送到客户端软件。当客户端软件收到“挑战”时,它可以使用其私钥对其进行解密并将其发送到服务器。这样,您需要知道密钥的密码。然而,与第一级相比,第二级不需要通过网络发送密码。

在第二级,不仅所有发送的数据都是加密的,而且“中间人”攻击也是不可能的(因为中间人没有私钥)。不过,整个登录过程可能需要10秒钟。

SSH应用程序

SSH 是目前最可靠的协议,旨在为远程登录会话和其他网络服务提供安全性。使用SSH协议可以有效防止远程管理过程中的信息泄露。 SSH最初是UNIX系统上的一个程序,但它很快扩展到其他操作平台。如果使用得当,SSH 可以弥补网络中的漏洞。 SSH 客户端可在各种平台上使用。您可以在几乎任何UNIX 平台上运行SSH,包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix 等。

363dcd260e9747cd8e0d7bc4b0375af0~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1728322988&x-signature=iujrGGqy%2FQtkeUDiRCUlMbM0yRQ%3D 5e94807dfce647c692a436341857cb19~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1728322988&x-signature=EGuYMRZ7kIIxErvhuG1R%2FsJXA04%3D 身份验证:

身份验证是确定联系人是人还是机器的过程。也就是说,当A想要与B通信时,通常会先交换一些数据。 A如何判断返回的数据确实是B发送的?模仿机器的方法有很多种。

对于SSH,这主要是通过公钥完成的。首先,客户端有一个公钥列表,并将公钥存储在它信任的机器上。当您启动SSH 连接时,服务器会发送其公钥,客户端会查找它。如果公钥在此列表中,则表示该机器是真实的服务器。

当然,真实情况要复杂得多。事实上,服务器实际上并不发送公钥,因为它很容易被第三方窃取。这将在下面详细解释。

SSH如何保证通信安全

简要说明:

89fac5892ccc4810840d152de18a02c2~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1728322988&x-signature=BpLuC1MxsNYGIc0McwM5Lwo8Txs%3D1) 客户端向服务器发送连接请求。

2) 服务器将其公钥发送给客户端。

3) 客户端使用服务器的公钥对通信密钥进行加密并发送给服务器。

4)如果通信过程被截获,即使窃听者知道公钥及其加密的内容,如果没有私钥(RSA算法),他也无法解密。

5) 接收到密文的服务器用自己的私钥解密,得到通信密钥。

ssh-keygen命令生成服务器的公钥和私钥对,cp命令将服务器的公钥复制到客户端(注意伪分布式模式下服务器和客户端是同一台机器)。服务器端公钥允许无需密码即可直接访问。

SSH无密码登录原理

1)必须依赖于密钥。即先为自己创建一个密钥对,然后将公钥放在需要访问的服务器上。

2)当连接到SSH服务器时,客户端软件会要求服务器使用密钥进行安全验证。

3)当服务器收到请求时,首先在服务器上的主目录中查找公钥,并将其与发送的公钥进行比较。如果两个密钥匹配,则服务器使用公钥来加密“挑战”并将其发送到客户端软件。

4)客户端软件收到“挑战”后,用自己的私钥解密,用服务器的公钥加密,最后发送给服务器。

5) 服务器使用自己的密钥解密挑战,将发送的“挑战”与原始“挑战”进行比较,如果是,则允许并完成会话建立操作。

版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。

猜你喜欢