我看到了很多关于SSL/TLS和SSH之间区别的问题和帖子,比如
- Difference between SSH and SSL, especially in terms of “SFTP” vs. “FTP over SSL”
- SSH vs SSL
- What is the difference between SSL vs SSH? Which is more secure?
我得到了这个概念.他们都提供加密,但不用于相同的事情. This post说,这主要是一个历史性的决定.目前我使用TLS来保护我的服务器和客户端应用程序之间的连接(OpenSSL和套接字).我只是好奇,如果在使用SSL的地方使用SSH在技术上是可能的和合理的?有没有任何缺点或障碍?
注意:我知道SSH也是一个应用程序,可以用来远程连接到另一台电脑。但我对应用程序不感兴趣,只对协议感兴趣。
1条答案
按热度按时间nmpmafwu1#
当然,你也可以使用SSH来达到同样的目的。
虽然TLS(SSL)更常用于此任务,但有一些库可以创建TLS加密的套接字,包括服务器端和客户端,您可以使用它来实现自己的协议。
我不确定是否有可以轻松创建SSH加密套接字的库(无需所有其他SSH功能,如身份验证),我假设一些SSH库可以做到这一点。
虽然我不认为使用SSH比使用TLS有什么优势,但你会发现更多的例子。
回复@Jakuje的评论:
使用SSH,您仍然需要验证主机密钥,这相当于验证TLS证书。虽然有完善的方法来分发,签名,撤销等...证书,但在标准SSH中没有等效的主机密钥。主机密钥就像自签名证书。
因此,您必须将预期的主机密钥硬编码到您的应用程序中。如果您需要更改服务器端私钥(因为您丢失了它或它被泄露了),客户端将停止工作。
请注意,OpenSSH对证书签名的主机密钥提供了专有支持。这更接近于TLS,但OpenSSH证书没有将主机密钥链接到系统内置的受信任根证书的证书链(TLS的典型方式)。因此您必须手动批准证书,至少一次。