套接字SSL和HTTP连接安全吗?



我已经与AutoTrading Bots合作了一段时间,并与几个经纪人的API进行交互,我注意到它们中最大的一部分需要套接字SSL或HTTP请求连接。

现在,事情变得严肃起来,我想问这种类型的连接在多大程度上是安全的。

我经常在这种类型的连接上操作我的财务数据,并且可能会暴露它。

显然,我使用VPN(即使我不知道VPN在这种情况下如何起作用),并且我知道套接字SSL连接是加密的(?),但是HTTP呢?我怎样才能使这类连接更安全?使用Selenium或BeautifulSoup输入密码和处理敏感信息是否不安全?

例子:

请求HTTP:

requests.post(url, data=payload, verify=True)

SSL套接字:

def connection(port):
url = ""
context = ssl.create_default_context()
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(30)
conn = context.wrap_socket(sock, server_hostname=url)
conn.connect((url, port))

我不知道VPN在这种情况下如何发挥作用

VPN只是在你的计算机和远程网络之间建立一个安全的连接,就好像你的计算机在物理上本地连接到那个网络一样。通过该连接的任何流量都不能被监视该连接的恶意代理所理解,只能被同一网络上的设备所理解。

然而,虽然VPN可以保护在开放的互联网上发送的流量,但它不能防止在连接的网络上运行的恶意代理破坏安全。因此,使用VPN只能连接到受信任的网络。

我知道套接字SSL连接是加密的(?)

正确的。

但是HTTP呢?

HTTP本身是不安全的。但是HTTPS,它只是通过SSL/TLS连接的HTTP,在正确使用时是非常安全的。大多数因特网依靠SSL/TLS来保证其安全性。

我怎样才能使这种类型的连接更安全?

SSL/TLS使用点对点加密。理论上,只有相互通信的双方才知道正在使用的加密密钥,这允许发送方使用接收方的密钥对只有接收方才能解密的数据进行加密,反之亦然。

但是,如果不小心,恶意代理可能充当中间人来拦截SSL/TLS连接。意思是,假设A想要安全地与B通话,但M在中间。M诱骗AM对话,诱骗BM对话。M在与A对话时假装是B,与B对话时假装是A。因此,M将获得对两个密钥的访问权,并能够解密AB之间的所有数据。

这就是身份验证发挥作用的地方,通常以SSL/TLS证书的形式。这样,A可以验证它确实在与B通信,B可以验证它确实在与A通信。M将无法访问他们的任何一个证书来伪造他们的身份,所以它不能假装成他们中的任何一个。

如果您需要通过HTTP进行安全通信,请使用HTTPS并在传输任何敏感信息之前验证与您通信的对等端。