SSH基于密钥认证的原理
来源:互联网 发布:国际聊天软件排行 编辑:程序博客网 时间:2024/06/10 20:18
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),两者相同则认证成功
- SSH基于密钥认证的原理
- ssh密钥认证原理
- ssh密钥认证原理
- SSH密钥认证原理
- ssh密钥认证原理
- ssh密钥认证原理
- ssh密钥认证原理
- OpenSSH服务——基于密钥的ssh认证实现
- ssh的加密原理与基于密钥的登录
- linux ssh密钥认证
- SSH密钥认证
- SSH密钥认证配置
- SSH的两种密钥认证方式:口令认证和密钥认证
- SSH基于密钥验证的配置方法
- 简单使用ssh密钥认证
- ssh 密钥认证提示密码
- ssh公钥私钥认证方式的原理
- 设置SSH服务器只采用密钥认证
- webStorm 的快捷键
- 通过WireShark抓取iPhone联网数据方法
- 详解ORACLE数据库的分区表
- GStreamer基础教程01——Hello World
- 在Android库中不能使用switch-case语句访问资源ID
- SSH基于密钥认证的原理
- ORACLE函数,视图记录
- 抽象类和接口联系与区别
- 微信小程序开发—(十)drawImage理解
- SAP获取用户实际用户名
- springMVC的统一异常处理
- 学习SpringMVC——从HelloWorld开始
- Maven打在本地库和远程库,ecpliseidea中使用
- IOS 底层封装Block动画的原理解析