侧边栏壁纸
博主头像
枕头下放双臭袜子博主等级

今我何功德,曾不事农桑

  • 累计撰写 166 篇文章
  • 累计创建 32 个标签
  • 累计收到 0 条评论

Linux网络服务-1-1-ssh双向秘钥对验证-1-原理

枕头下放双臭袜子
2020-03-09 / 0 评论 / 0 点赞 / 543 阅读 / 0 字 / 正在检测是否收录...

原理:

  双向密钥验证的四个密钥文件:
   ①  客户机公钥
   ②  客户机私钥
   ③  服务器公钥
   ④  服务器私钥

image.png

1、 首先客户端发送连接请求,并发送自己的“客户端公钥”到服务器,询问服务器上是否有自己的“客户端-公钥”文件。
2、 当服务器收到客户端发送过来的连接请求和“客户端公钥”时:
   ① 服务器首先发送一份“服务器公钥”给客户端,并检验服务器本地是否有“客户端公钥”文件
       a、如果有,服务器就验证本地的“客户端-公钥”与发送过来的公钥文件是否一致,一致则允许连接请求
       b、如果没有或不一致就回送:“此公钥文件未在服务器端注册”
   ② 然后发送一段challenge信息(质疑信息)并用“客户端公钥”对其进行加密发送给客户端
       问:为什么要用“客户端公钥进行加密呢?”
       答:因为客户端只能用“客户端私钥”进行解密“客户端公钥”,要是服务器发送“服务器公钥”加密的challenge,客户端是解不开的!
3、客户端收到challenge信息之后,会使用自己的“客户端私钥”进行解密,解密之后会将该信息再次使用“服务器公钥”进行加密,然后发送给服务器
4、服务器收到之后用自己的“服务器私钥”解密该challenge信息,如果该challenge信息与自己刚开始发送出去的challenge信息一致,那么就会建立连接。
总结
   1、第1次客户端主动发起建立连接请求时,其并没有“服务器公钥文件”,直到服务器回应其才拥有“服务器公钥”
   2、该challenge信息经过两次加密!第1次是服务器用“客户端公钥”进行加密发送给客户端,第2次是客户端使用“服务器公钥”进行加密发送给服务器!
   3、连接建立之后,服务器端拥有“客户端公钥”文件,客户端拥有“服务器公钥文件”。在相互通信时,客户端使用“服务器公钥”进行加密,服务器使用自己的“服务器私钥”进行解密;服务器使用“客户端公钥”进行加密,客户端使用自己的“客户端私钥”进行解密。
参考来源:

尚硅谷Linux网络服务视频。

0

评论