信息安全—利用Wireshark抓取SSH认证协议数据包

利用Wireshark抓取SSH认证协议数据包

【实验目的】

请利用Wireshark抓取SSH认证协议数据包,并考虑如下问题:
a. 请标识出与图10-1所示的那些消息相对应的数据包。
b. 请问,你还看到哪些其他的SSH数据包?这些数据包中还包含了什么信息?

【实验原理】

● Secure Shell,简称为SSH,该协议创建了一个安全的通道,基于该通道,可以安全的方式执行原本不安全的命令。举个例子来说,在UNIX系统中,命令rlogin用于实现远程登录,也就是说,通过网络登录到一台远端的计算机上。这样的一次登录通常需要提供一个口令字,而rlogin命令仅仅以明文方式发送该口令字,这就有可能被适时窃听的Trudy观察到口令信息。通过首先建立一个SSH会话,再基于该会话执行命令,任何诸如rlogin之类的原本自身并不安全的命令就都可以安全地执行了。也就是说,SSH会话提供了机密性和完整性保护,于是就消除了Trudy获得口令字以及其他机密信息的能力,而这些信息在未具备SSH会话的情况下原本是以非保护的方式传送的。
SSH协议的认证过程可以基于公钥、数字证书或口令字。这里,我们提供一个利用数字证书来实施认证的稍作简化的SSH版本。在本章结尾的思考题部分中,有许多不同的课后思考问题,里面还涉及了其他一些认证方式的选择,可以供大家研讨。图1中给出了SSH协议的详解,在此,我们约定使用下面的术语:
在这里插入图片描述
在图10-1中的第1条消息里, Alice表明自己的身份,并且将其希望采用的加密参数等相关信息(加密算法、密钥长度等等),以及她的nonce值 ,发送过去。在第2条消息中, Bob从Alice提供的加密参数中做出选择并将其发送回去,同时还要发送他自己的nonce值 。在第3条消息中, Alice发送出她的Diffie-Hellman值。然后在第4条消息中, Bob以自己的Diffie-Hellman值,加上他的数字证书,以及值 进行回应,其中 包含了一个签名的哈希值。此时此刻, Alice就可以计算密钥K,并且在最后一条消息中,她会发送一个加了密的分组数据包,其中包含她的身份、她的数字证书以及她签了名的值 .
在图1中,数字签名可以用来提供双向交互认证。请注意, nonce值 是Alice发送给Bob的challenge,而 是Bob的响应。也就是说, nonce值 提供了重放保护,只有Bob能够给出正确的响应,因为需要一个签名(当然,我们假定他的私钥还没有沦陷)。与此类似的交互过程可以证明Alice在最后一条消息中会被认证。所以说, SSH协议提供了双向交互认证。

【实验步骤及描述】

  1. 安装Xshell6,以及Wireshark
    在这里插入图片描述在这里插入图片描述
  2. 新建会话,和云服务器相连
    在这里插入图片描述在这里插入图片描述
  3. 和云服务器连接
    在这里插入图片描述
  4. 打开Wireshark,在主界面选择网卡,点击Start,Wireshark即进入抓包分析
    在这里插入图片描述
  5. 在过滤器中输入“SSH”,即可得到SSH数据包
    在这里插入图片描述

【实验结果】

结果见上图其中
Client:Key Exchange Init对应第一条消息,Alice表明自己身份,并将其希望采用的加密参数等相关信息以及Ra发过去。
Server: Key Exchange Init对应第二条消息,Bob从提供的加密参数中做出选择并发送回去。
Client:Diffie-Hellman GEX Request对应第三条消息,Alice发她的Diffie-Hellman
Server:Diffie-Hellman GEX Key Exchange Reply 对应第四条消息,Bob以自己的Diffie-Hellman 值,加上他的数字证书,以及sb进行回应。
最后Alice发送了一个加密的分组数据包,里面包含他的身份、数字证书以及Sa值和密钥K应该对应Client:New Keys和Encrypted packet len=44
除了课本上包含的5条信息,抓取到的SSH协议数据包还包含很多信息,包括前两条Alice 和Bob之间进行的协议确认,内含协议信息

猜你喜欢

转载自blog.csdn.net/qq_44725217/article/details/106444844