下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

SSH协议的简单分析

作者:课课家教育     来源: http://www.kokojia.com点击数:1868发布时间: 2018-11-11 11:11:42

标签: SSH安全协议网络安全基础

软考,您想通过吗?一次通过才是硬道理

  ssh协议是安全协议的一种,是位于传输层与应用层之间的加密隧道应用协议,可以在多个方面来加强通信的安全性以及完整性。本文会从SSH协议的多方面知识来为大家分析一下。

  SSH(SecureShll)是强化安全的远程登录方式,过去使用的rsh和telnet,因为包括登录时的ID和密码数据没有加密就传到网络上,存在安全上的问题。即使在内部网上,也有在因特网上的窃取和篡改等危险性。SSH将包括密码在内的所有数据都已进行了加密处理,可以进行更安全的远程操作。在SSH中,由于协议标准的不同而存在SSH1和SSH2两个不同的版本。SSH2是为了回避SSH1所使用的加密算法的许可证问题而开发的(现在这一许可证问题已经不存在了)。TLES 8中作为安装SSH协议的应用程序采用了开放源码的OpenSSH。OpenSSH与SSH1和SSH2的任何一个协议都能对应,但默认使用SSH2。

  SSH协议的组成

      SSH协议有三部分(层次)组成:传输层协议( TransportLayerProtocol)、用户认证协议(UserAuthenticationProtocol)、连接协议(ConnectionProtocol) 。三个组成部分之陆的关系如图1所示。

SSH协议的简单分析_SSH_安全协议_网络安全基础_课课家 

1 SSH层次结构

  1.传输层协议(SSH-TRANS)

  SSH传输层协议负责进行服务器认证、数据机密性、信息完整性等方面的保护,并提供作为可选项的数据压缩功能,以便提高传输速度。

  2.用户认证协议(SSH-USERAUTH)

  用户认证协议是建立在传输层协议之上的。在进行用户认证之前,假定传输层协议已提供了数据机密性和完整性保护。用户认证协议接受传输层协议确定的会话ID,作为本次会话过程的唯一标识。服务器端首先向客户端发起用户认证,他会告诉客户端他所支持的认证算法,以便客户端进行选择。

  3.连接协议(SSH-CONNECT)

  连接协议是运行在SSH 传输层协议和用户认证协议之上,提供交互式登录会话(即Shel1会话),远程命令的执行,转交TCP!IP连接以及转交Xll连接。所有的终端会话和转交连接等都是隧道,通过将加密隧道复用成多个逻辑隧道,提供给高层应用协议使用。

  SSH的主要特性

  加密:避免数据内容泄漏

  通信的完整性:避免数据被篡改,以及发送或接受地址伪装

  (检查数据是否被篡改,数据是否来自发送者而非攻击者) SSH-2通过MD5和SHA-1实现该功能,SSH-1使用CRC-32

  认证:识别数据发送者和接收者身份 客户端验证SSH服务端的身份:防止攻击者仿冒SSH服务端身份,避免中介人攻击和重定向请求的攻击;OpenSSH通过在know-hosts中存储主机名和host key对服务端身份进行认证 服务端验证请求者身份:提供安全性较弱的用户密码方式,和安全性更强的per-user public-key signatures;此外SSH还支持与第三方安全服务系统的集成,如Kerberos等

  授权:用户访问控制

  SSH的工作过程

  在整个通讯过程中,为实现 SSH的安全连接,服务器端与客户端要经历如下五个阶段:

  1.版本号协商阶段,SSH目前包括 SSH1和SSH2两个版本, 双方通过版本协商确定使用的版本

  2.密钥和算法协商阶段,SSH支持多种加密算法, 双方根据本端和对端支持的算法,协商出最终使用的算法

  3.认证阶段,SSH客户端向服务器端发起认证请求, 服务器端对客户端进行认证

  4.会话请求阶段, 认证通过后,客户端向服务器端发送会话请求

  5.交互会话阶段 ,会话请求通过后,服务器端和客户端进行信息的交互

  SSH的认证方式

  一般来说,SSH提供了两种安全认证方式。

  一是基于口令的安全认证。在这种认证方式下,用户只需要知道帐户与口令,就可以利用SSH协议远程登陆到服务器。在这种认证模式下,其传输的数据,包括用户名与密码,是密文传输的。但是,他有一种缺陷。也就是说,他不能够保证你正在连接的服务器就是你想连接的服务器。因为他不会验证客户端与服务器端的身份,所以,可能会有人冒充真正的服务器,而管理员却不知情。这种攻击方式,又叫做“中间人”攻击。也算是一个比较“著名”的攻击方式了。

  二是基于密钥的安全认证。在这种安全认证方式下,需要依靠密钥进行认证。此时,用户需要为自己创建一对密钥。用户要通过其他安全的方式,把公钥方在需要远程管理的服务器上。当管理员连接到SSH服务器上的时候,客户端会向服务器发出请求,要求其利用客户端的密钥进行安全性认证。服务器收到客户端的请求后,就会利用你事先发给他的公钥进行比较、辨别。如要两个密钥一致的话,服务器就用公钥加密质询并把它发送给客户端软件。客户端软件接收到服务器的质询后,就可以利用私人密钥进行解密并把结果发送给服务器。这种方式跟第一种方式相比,就是可以保障SSH服务器的合法性,有效的避免“中间人”攻击。

  SSH就目前来说是较为可靠的一种协议,可以有效地防止远程管理的信息泄露问题。以上的内容就是小编想要分享给大家的,不知道大家觉得如何呢?如果大家有什么想要补充的欢迎给小编留言哦,毕竟以上的内容只是小编个人的观点,大家有不同的意见可以拿出来一起交流学习一下。

赞(0)
踩(0)
分享到:
推荐查看
华为认证网络工程师 HCIE直播课视频教程