为什么SSH不使用TLS?

juhist 06/24/2018. 2 answers, 1.126 views
tls ssh

目前大多数受密码保护的协议都使用TLS。 这适用于邮件协议,HTTP和其他许多协议。 新设计的QUIC也采用TLS作为其密码层。

但是,SSH是不同的:它有自己的密码层。

为什么SSH有一个非TLS密码层? SSH有自己的密码层有什么好处吗?

关于SSH和其他协议的唯一区别是SSH经常发送只有一个按键的消息。 在短消息的情况下,SSH密码层是否更优化?

相关但不一样: TLS与严格密码学角度的SSH有什么不同?

我认为SSH的证书验证机制(自动学习)可以通过TLS来支持。 你只是不会有一个根CA; 你会分别接受每个证书并记住接受。

2 Answers


Thomas Pornin 06/24/2018.

不使用TLS的SSH大多是历史性的; 看看这个答案 (关于security.SE)。 在实践中,人们可以完美地定义一种将TLS用于数据传输部分的种类的SSH; 但是,它当然不会与现有的SSH服务器和客户端兼容。 从纯粹的加密角度来看,SSH实际上在加密和MAC加密以及加密的“长度”字段方面存在一些缺陷; 这并不会因为SSH的具体使用而导致真正可利用的漏洞(攻击者不会触发数千个部分选定数据的新无声连接,这与TLS相反,因为JavaScript的魔力可以完成这些任务) ,而最近的AEAD整合大多修补它们。


Jörg W Mittag 06/24/2018.

如果TLS指的是特定的一系列名为“TLS”的协议,那么SSH为什么不用于使用它们的答案很简单:在设计SSH时它们不存在。 TLS于1999年发布,SSH于1995年发布。

如果您指的是现在称为TLS但被称为SSL的整个协议族,那么答案是相似的:SSL 2.0于1995年发布,与SSH相同。 因此,在SSL成为人们知道之前,SSH至少部分已经设计好了。

SSL 1.0在1994年已经存在,但它从未作为协议发布,因为它很快就被发现它被严重破坏。 这也可能削弱了Ylonen对SSL的信任,所以即使他知道并考虑使用它,这也可能影响了他推出自己的SSL。

Related questions

Hot questions

Language

Popular Tags