2024年4月29日发(作者:)
SSH原理及工作过程
一、SSH简介
SSH全称是Secure Shell,SSH协议是基于应用层的协议,为远程登录会
话和其他网络服务提供安全性的协议。SSH使用最多的是远程登录和传输文件,
实现此功能的传统协议都不安全(ftp,telnet等),因为它们使用明文传输数据。
而SSH在传输过程中的数据是加密的,安全性更高。
SSH协议具有以下一些优点:
数据传输采用密文的方式,保证信息交互的机密性;
用户的认证信息以密文的方式传输,可以有效地防止用户信息被窃听;
除了传统的密码认证,SSH服务器还可以采用多种方式对用户进行认证(如安
全性级别更高的公钥认证),提高了用户认证的强度;
客户端和服务器端之间通信使用的加解密密钥,都是通过密钥交互过程动态生成
的,可以防止对加解密密钥的暴力猜测,安全性级别比手工配置密钥的方式高;
为客户端提供了认证服务器的功能,可以防止“伪服务器欺骗”。
SSH协议采用客户端/服务器架构,分为传输层、认证层和连接层。
二、ssh工作过程
SSH的报文交互主要有以下几个阶段:
1、连接建立
SSH服务器端在22端口侦听客户端的连接请求,接收到客户端的连接建立
请求后,与客户端进行三次握手,建立起一条TCP连接,后续的所有报文交互都
在这个TCP连接之上进行。
2、版本协商
TCP连接建立之后,服务器和客户端都会向对端发送自己支持的版本号。服
务器端和客户端收到对端发送过来的版本后,与本端的版本号进行比较,双方都
支持的最高版本号即为协商出的版本号。
版本协商成功后,进入下一个阶段,即算法协商阶段。否则,中断连接。
3、算法协商
SSH协议报文交互需要使用多种算法:
用于产生会话密钥的密钥交换算法,包括diffie-hellman-group-exchangesha1、
diffie-hellman-group1-sha1 和diffie-hellman-group14-sha1 算法等。
用于数据信息加密的加密算法,包括 3des-cbc、aes128-cbc 和des-cbc 加密
算法等。
用于进行数字签名和认证的主机公钥算法,包括 RSA 和DSA 公钥算法等。
用于数据完整性保护的 MAC 算法,包括hmac-md5、hmac-md5-96、
hmacsha1和hmac-sha1-96 算法等。
由于各种客户端和服务器对这些算法的支持情况不一样,因此需要通过算法
协商阶段,使客户端和服务器协商出双方都支持的算法。
SSH协议的算法协商过程为:
(1) 客户端和服务器端都将自己支持的算法列表发送给对方;
(2) 双方依次协商每一种算法(密钥交换算法、加密算法等)。每种算法的
协商过程均为:从客户端的算法列表中取出第一个算法,在服务器端的列表中查
找相应的算法,如果匹配上相同的算法,则该算法协商成功;否则继续从客户端
算法列表中取出下一个算法,在服务器端的算法列表中匹配,直到匹配成功。如
果客户端支持的算法全部匹配失败,则该算法协商失败。
(3) 某一种算法协商成功后,继续按照上述方法协商其他的算法,直到所有
算法都协商成功;如果某一种算法协商失败,则客户端和服务器之间的算法协商
失败,服务器断开与客户端的连接。
4、密钥交换


发布评论