首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们如何使用TLS/SSL来保护SOCKS5协议?

我们如何使用TLS/SSL来保护SOCKS5协议?
EN

Security用户
提问于 2021-07-13 09:59:20
回答 2查看 5.4K关注 0票数 2

我正在研究SOCKS5协议。在理解了它之后,我知道SOCKS5不会加密从客户端到代理服务器的数据。因此,我们可以使用TLS/SSL加密数据吗?安全SOCKS5?

EN

回答 2

Security用户

回答已采纳

发布于 2021-07-13 10:28:56

SOCKS5只是一个隧道协议,它本身不提供任何加密。因此,必须在隧道外或隧道内添加加密,即

  • 外部:将SOCKS5封装到一个加密的layer中,这可以通过使用像stunnel这样的软件将其封装到TLS中来完成。还有一些SOCKS5服务器已经内置了这种功能,请参阅袜子代理服务器是否存在SSL支持?。此外,ssh -D已经提供了封装在SSH隧道中的SOCKS5。其他加密层可以是VPN或Tor。
  • inside:在SOCKS5 tunnel中使用加密的通信量,例如,只可以使用代理访问HTTPS站点。注意,流量的元数据(即TLS握手、TLS ClientHello中的域名)仍然可以使用这种方法观察。
票数 1
EN

Security用户

发布于 2021-07-13 10:44:34

您可以通过TLS隧道任意网络流量,但SOCKS通常不这样做。您需要一个SOCKS服务器和客户端,它首先建立一个TLS连接,而AFAIK并不存在(编辑:显然有WinGate,来自Steffen链接的答案)。

但是,VPN可以做到这一点。OpenVPN是几种基于TLS的VPN之一(并且对客户机和服务器都是免费的);您可以将它配置为只用于SOCKS连接。您还可以使用基于其他安全协议(如IPSec )的VPN。然后,您的通信量只会在VPN服务器和SOCKS服务器(可能是同一台主机)之间不安全地传输。您只需连接到VPN,然后像往常一样将SOCKS客户端指向SOCKS服务器,VPN将在此过程中保护它。

当然,在某些方面,VPN已经与代理类似。如果您只关心来自主机A的网络流量在主机B进入更广泛的网络之前通过主机B安全地中继,并且您不需要对其进行任何特殊处理或检查,那么VPN可以做得很好。

或者,您可以在您的机器上本地运行SOCKS代理,这极大地限制了拦截的机会,并让它将通信量(通过安全隧道)中继到另一台服务器。这就是OpenSSH (和PuTTY)在其代理模式下所做的事情(对于OpenSSH,您可以在进行SSH连接时使用-D [local-address:]port作为选项)。这将使SSH客户端在本地机器上启动SOCKS代理,侦听指定的本地接口(或所有接口(如果未指定)和端口。SOCKS客户端随后可以连接到这个本地SOCKS服务器(也是SSH客户端),它们的流量将通过SSH隧道路由,并从SSH服务器出现在网络上。这样,SSH服务器实际上就变成了SOCKS服务器,但是机器之间的连接是安全的。

作为另一种选择(可能更好,如果您已经在远程计算机上运行了SOCKS服务器),您可以使用SSH (-L [local_address:]local_port:remote_host:remote_port)通过其安全隧道转发相关端口。例如,ssh -f -N -L localhost:8000:localhost:1080 pham@sockserver.fully.qualified.domain将在端口8000的环回地址上创建一个侦听套接字,并将接收到的任何连接转发到SSH服务器的回送接口上的端口1080 (通常的SOCKS端口)(这里假定该端口也是SOCKS服务器)。通过这种方式,您可以再次将SOCKS客户端指向本地端口(8000),您的流量将安全地通过隧道传送到SOCKS服务器(SOCKS服务器将看到您的流量来自它自己的SSH服务器,而不是直接来自您的计算机)。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/252312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档