SSH、加密算法
SSH 是什么
SSH的全称为Secure Shell,即安全外壳协议。它是一种专为远程登陆会话和网络服务提供安全性的应用层协议。说白了就是用来连接服务器的一种方式。
在SSH的加密原理中,就用到了非对称加密算法。在讲SSH加密原理前,我们先溯本追源,了解一下加密算法和其中经典的非对称加密算法RSA。
加密算法
计算机网络中的加密算法主要分为对称加密
、非对称加密
、散列算法
等三种方式。
对称加密:加密和解密使用同一个密钥,例如 DES、AES、IDEA、国密SM1/SM4等等。
非对称加密:发送方用公钥对信息进行加密,接收方收到密文后,使用私钥进行解密,例如RSA、ECC和国密SM2
散列算法:哈希加密系列算法,特点是不可逆、唯一性,例如MD5、SHA、国密SM3
相比起对称加密,非对称加密的安全性更高,但加解密的效率也相对降低。
因此像HTTPS的TLS1.2握手协议就是采用了对称加密和非对称加密结合的方式进行密文数据传输。
RSA 非对称加密算法
RSA加密算法是经典的非对称加密算法,其基本流程如下:
客户端在本地构建公钥和私钥,然后将公钥发送给服务器
服务器向客户端发送数据的时候用公钥进行加密,客户端收到数据后用私钥解密
客户端向服务器发送数据的时候用私钥进行加密,服务器收到数据后用公钥解密
缺点在于:如果公钥在传输中泄漏,则黑客可以用公钥破解客户端发送的数据。
SSH 加密原理
SSH 共有两种登录方式:
口令验证登录
服务器生成公钥和私钥
客户端发起连接请求,服务器将公钥发给客户端
客户端生成口令(服务器密码),并用服务器发来的公钥加密,发送给服务器
服务器通过私钥解密,拿到口令(服务器密码)
如果正确则认证成功
密钥验证登录
客户端生成公钥和私钥,将公钥提前部署在服务器上
客户端发起连接请求
服务器随机生成一个字符串,用本地的公钥加密,发送给客户端
客户端通过私钥解密,将解密后的字符串发送给服务器
服务器验证本地字符串和客户端发来的字符串的一致性,如果通过,则认证成功
————————————————
版权声明:本文为CSDN博主「东曜」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41911142/article/details/124277397
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步