linux – 了解ssh密钥交换的wireshark捕获

linux – 了解ssh密钥交换的wireshark捕获,第1张

概述我需要了解SSH密钥交换,我曾尝试阅读RFC文档,但似乎很难理解所以我使用wireshark捕获了数据包,我找到了ssh keyexchange的各种数据包 SSHv2 Client: Key Exchange InitSSHv2 Server: Key Exchange InitSSHv2 Client: Diffie-Hellman Key Exchange InitSSHv2 Serv 我需要了解SSH密钥交换,我曾尝试阅读RFC文档,但似乎很难理解所以我使用wireshark捕获了数据包,我找到了ssh keyexchange的各种数据包
SSHv2 ClIEnt: Key Exchange InitSSHv2 Server: Key Exchange InitSSHv2 ClIEnt: DiffIE-Hellman Key Exchange InitSSHv2 Server: DiffIE-Hellman Key Exchange ReplySSHv2 ClIEnt: DiffIE-Hellman GEX InitSSHv2 Server: DiffIE-Hellman GEX ReplySSHv2 ClIEnt: New Keys

任何人都可以详细解释我的每个数据包或ssh密钥交换的顺序吗?

解决方法 首先,您应该了解DiffIE-Hellman交换的概念.它允许在具有以下功能的2个端点之间建立通道:

>防止窃听.在渠道上嗅探的人无法解密它.
> DiffIE-Hellman不能防止中间人攻击.通过验证主机密钥可以防止这种攻击.这是在DH交换之后完成的,因此它是加密的,目前无法使用wireshark进行分析.
>它生成的随机数不能由单独的对等体单独确定,而是两者一起确定.这对我来说是一个有趣的概念.
>从维基百科文章这里是交换的简化结构:

>设g是来自有限循环群的已知公共数.
> Alice选择一个随机的自然数a并将ga发送给Bob.
> Bob选择一个随机自然数b并将gb发送给Alice.
> Alice计算(gb)a = gab
> Bob计算(ga)b = gab

结果他们产生了一个安全的随机秘密瞎扯.

现在和WIRESHARK捕获!

> SSHv2客户端:密钥交换初始化

几个参数协商,如压缩和一些加密算法.
> SSHv2服务器:密钥交换初始化

回复上面
> SSHv2客户端:DiffIE-Hellman密钥交换初始化

关于数学组的DH参数的谈判. (有关更多详细信息,请参阅RFC4419第3节).
> SSHv2服务器:DiffIE-Hellman密钥交换回复

回复上面.
> SSHv2客户端:DiffIE-Hellman GEX Init

DH的第一次实际交换.遵循维基百科的表示法,这将是第2步(爱丽丝发送ga).
> SSHv2服务器:DiffIE-Hellman GEX回复

交换结束(Bob发送gb).

收到此数据包后,两个对等体都知道密钥(gab)并与之建立伪安全通道(防止偶然窃听,但不能抵御中间人攻击).
> SSHv2客户端:新密钥

这对我来说似乎是一个简单的确认消息.它很小,不包含任何有意义的数据.

好吧,我想在此之后会有很多事情发生(服务器公钥验证,用户身份验证,建立shell / sftp / scp /隧道的数据通道等).我不知道确切的细节和(联合国)幸运的是所有这些都是加密的.

有用的参考:

> http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange
> http://www.ietf.org/rfc/rfc4251.txt

总结

以上是内存溢出为你收集整理的linux – 了解ssh密钥交换的wireshark捕获全部内容,希望文章能够帮你解决linux – 了解ssh密钥交换的wireshark捕获所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1035692.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存