SSH基于密钥认证的原理

SSH的体系结构图如下:
这里写图片描述
    传输层协议(The Transport Layer Protocol)提供服务器认证,数据机密性,信息完整性 等的支持;
    用户认证协议(The User Authentication Protocol) 则为服务器提供客户端的身份鉴别;
    连接协议(The Connection Protocol) 将加密的信息隧道复用成若干个逻辑通道,提供给更高层的应用协议使用; 各种高层应用协议可以相对地独立于SSH基本体系之外,并依靠这个基本框架,通过连接协议使用SSH的安全机制 。

SSH安全验证级别

第一种级别(基于口令的安全验证)
    只要知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证正在连接的服务器就是想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。
第二种级别(基于密匙的安全验证)需要依靠密匙
    采用数字签名的方法来认证客户端。目前,设备上可以利用RSA和 DSA两种公共密钥算法实现数字签名。

SSH基于密钥认证的原理

前提
Ac:客户端公钥,Bc:客户端密钥,As:服务器公钥,Bs :服务器密钥。在认证之前,客户端需要通过某种方法将公钥 Ac 登录到服务器上。
认证过程分为两个步骤:
1. 会话密钥(session key)生成
1). 客户端请求连接服务器,服务器将 As 发送给客户端。
2). 服务器生成会话ID(session id),设为 p,发送给客户端。
3). 客户端生成会话密钥(session key),设为 q,并计算 r = p xor q。
4). 客户端将 r 用 As 进行加密,结果发送给服务器。
5). 服务器用 Bs 进行解密,获得 r。
6). 服务器进行 r xor p 的运算,获得 q。
7). 至此服务器和客户端都知道了会话密钥q,以后的传输都将被 q 加密。
2. 认证
1) 服务器生成随机数 x,并用 Ac 加密后生成结果 S(x),发送给客户端
2) 客户端使用 Bc 解密 S(x) 得到 x
3) 客户端计算 q + x 的 md5 值 n(q+x),q为上一步得到的会话密钥
4) 服务器计算 q + x 的 md5 值 m(q+x)
5) 客户端将 n(q+x) 发送给服务器
6) 服务器比较 m(q+x) 和 n(q+x),两者相同则认证成功

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值