SSH是否可以用于加密应用程序之间的通信,如SSL/TLS?

bpzcxfmw  于 2023-04-06  发布在  其他
关注(0)|答案(1)|浏览(159)

我看到了很多关于SSL/TLS和SSH之间区别的问题和帖子,比如

  1. Difference between SSH and SSL, especially in terms of “SFTP” vs. “FTP over SSL”
  2. SSH vs SSL
  3. What is the difference between SSL vs SSH? Which is more secure?
    我得到了这个概念.他们都提供加密,但不用于相同的事情. This post说,这主要是一个历史性的决定.目前我使用TLS来保护我的服务器和客户端应用程序之间的连接(OpenSSL和套接字).我只是好奇,如果在使用SSL的地方使用SSH在技术上是可能的和合理的?有没有任何缺点或障碍?
    注意:我知道SSH也是一个应用程序,可以用来远程连接到另一台电脑。但我对应用程序不感兴趣,只对协议感兴趣。
nmpmafwu

nmpmafwu1#

当然,你也可以使用SSH来达到同样的目的。
虽然TLS(SSL)更常用于此任务,但有一些库可以创建TLS加密的套接字,包括服务器端和客户端,您可以使用它来实现自己的协议。
我不确定是否有可以轻松创建SSH加密套接字的库(无需所有其他SSH功能,如身份验证),我假设一些SSH库可以做到这一点。
虽然我不认为使用SSH比使用TLS有什么优势,但你会发现更多的例子。
回复@Jakuje的评论:
使用SSH,您仍然需要验证主机密钥,这相当于验证TLS证书。虽然有完善的方法来分发,签名,撤销等...证书,但在标准SSH中没有等效的主机密钥。主机密钥就像自签名证书。
因此,您必须将预期的主机密钥硬编码到您的应用程序中。如果您需要更改服务器端私钥(因为您丢失了它或它被泄露了),客户端将停止工作。
请注意,OpenSSH对证书签名的主机密钥提供了专有支持。这更接近于TLS,但OpenSSH证书没有将主机密钥链接到系统内置的受信任根证书的证书链(TLS的典型方式)。因此您必须手动批准证书,至少一次。

相关问题