我使用AES256-CBC SSH到远程服务器。最近,它停止处理以下消息:

no matching cipher found: client aes256-cbc server  
aes128-ctr,aes256-ctr,arcfour256,arcfour,3des-cbc


当我使用AES256-CTR作为SSH加密到服务器的密码时,它按预期工作。

我阅读了这篇文章,其中概述了以下内容:


CBC(密码块链接)
并行加密:否
CTR(计数器)
加密可并行化:是
解密可并行化:是


SSH中是否需要“加密并行化”? />
AES256-CTR与SSH中使用的AES256-CBC相比,还有其他优势,除了对填充Oracle攻击更健壮?

评论

我当然可以接受欺骗,但请注意,其他答案不包含差异/优势列表,即我希望保留我和雷神的答案。

@owlstead感谢您的注意。我在问我的问题之前先读了另一个问题,但没有找到我的问题的答案。所以我问了这个问题,有人将其标记为重复...我很好:我得到了问题的答案,现在我在SSH连接中仅使用(如果支持)AES256-CTR。

#1 楼

CTR的其他优点是:


更容易从密文中的特定偏移量解密
对随机数没有随机性要求

现在无法计算,例如是一个简单的计数器
现在可以是消息标识符



$ E = D $:加密与解密相同,这意味着仅

从分组密码中进行加密或解密
无需逻辑


无需填充开销或机制
可以预先计算密钥流(延迟优势)

绘制:


顺序速度相同(大约相同数量的密文块)
密码安全性(正确使用时)

劣势:


重用会带来灾难性的后果,完全失去机密性
会提供更多有关纯文本大小的信息到IV创建和使用现时的方法
在库中还是不太常见,或者被(开始的)开发人员所知

另一个可疑的缺点是CTR不会传播错误,不被视为优势w;如果需要完整性,请使用身份验证标签(MAC或签名)。


您可以使用不同的方法攻击CBC和CTR,后果不一。如果CBC模式在某些协议中有问题,那么切换到另一种模式当然具有其优势。请参见Thor的回答,有充分的理由专门针对OpenSSH切换到CTR。如果您想肯定地知道,则应询问OpenSSH开发人员(或仍然禁用CBC模式的人)。

评论


$ \ begingroup $
我猜不太适合创建MAC的可能也是一个。再说一次,不太容易受到这种MAC的攻击...
$ \ endgroup $
–马腾·博德威斯♦
2014年8月8日在23:08



#2 楼

使用CBC时似乎对SSH进行了攻击:针对SSH的明文恢复攻击。
我刚刚扫描了纸,他们说,使用CTR模式时将无法实现。我认为SSH不需要甚至不需要加密/解密并行化。

更新:涉及以下主题的CERT链接:漏洞注释VU#958563 SSH CBC漏洞

评论


$ \ begingroup $
使用@ user1204481提到的多核处理器时,并行化是否会加快处理速度?
$ \ endgroup $
–学习者
2014年8月9日14:24

$ \ begingroup $
会的。但是您将需要修改加密/解密代码,以利用并行处理同一条消息的多个线程。在服务器端,当我们有很多并行会话时,增加的复杂性将毫无用处。在客户端,对于单个受支持加密模式的子集,我也不会添加这种复杂性。我会说,对于安全的Shell协议而言,非常复杂。
$ \ endgroup $
–雷神
2014年8月9日14:36

#3 楼

并行化不是必需的,但是如果您有多核处理器,它可以帮助加快处理速度。这是由于CTR模式的并行性,即块彼此独立地加密。

另一个主要优点是,除了可并行化之外,与CBC不同,CTR模式可以脱机执行某些计算以准备密钥流。当PT / CTXT模块可用时,它只需将PT / CTXT与在线密钥流进行XOR即可生成CTXT / PT,从而减少了系统的延迟。