linux ssh抓包,OpsnSSH抓包分析 | SSH协议分析

SSH协议是建立在不安全的网络之上的进行远程安全登陆的协议。它是一个协议族,其中有三个子协议,分别是:1、传输层协议[SSH-TRANS]:提供服务器验证、完整性和保密性功能,建立在传统的TCP/IP协议之上。

2、验证协议[SSH-USERAUTH]:向服务器验证客户端用户,有基于用户名密码和公钥两种验证方式,建立在传输层协议[SSH-TRANS]之上。

3、连接协议[SSH-CONNECT]:将加密隧道复用为若干逻辑信道。它建立在验证协议之上。

118047507292d7c7fdcdc0c809a63a51.png

继续之前,补充一下两个概念:1、会话密钥 key:key是通过客户端和服务器之间通过诸如D-H算法协商出来的。

2、公钥 pub key:pub key成为服务器主机密钥server_host_key,用于SSH-TRANS传输协议进行服务器验证,说白了就是客户端去验证服务器用的

SSH协议握手过程大致流程如下图所示:

b43386f7304b6db20dfd429af8fd644c.png

下面使用Wirdshark进行抓包分析,开启wireshark抓包,进行一次正常的SSH登录,停止抓包,通过IP过滤出相关的报文如下:

3b13083b7bbb4bbbb01a45f4dfb95cd5.png

如果将上述报文根据SSH协议运行的流程分析,流程和报文的对应关系如下:TCP三次握手

f35608454affd0f92a84659af8a09594.png版本协议交换

530eed6b4b9299e1eda2165969fa778f.png密钥协商

1f9b8a449a2db560f7001a2ab7ce05e4.png

在协商阶段客户端和客户端互相告知自己支持的加密方法:

eeddb5202f1d6bad12757761964714d2.png

确定加密方法后,交换公钥:

7d75c8f80f00bbb26e46d9062d0c3c79.png加密通信

如果是通过密码登录,SSH就会采用这种自动协商密钥进行非对称加密通信。可以看到此后的报文全部为加密报文。

f29bcce6ab0af1bac1c40cf4f3eb7d92.png

大概可以看出是以 New Keys 为界,区分密钥协商和加密通信。

内部加密的原理究竟是什么?这一点还需后期继续探索。

参考文献

---------------------

Author: Frytea

Title: OpsnSSH抓包分析 | SSH协议分析

Link: https://blog.frytea.com/archives/440/

Copyright: This work by TL-Song is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

c216a654f63949ea4313f31d292441e3.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值