长期存在的 WSS WebSocket Secure 连接真的安全吗?

信息安全 tls 网络套接字
2021-09-08 18:10:08

我远不是安全专家,所以请原谅这个问题中的任何近似值。

据我从这个(非常好的)答案中了解到,一套 HTTPS 连接可以总结如下:

  1. 浏览器和服务器之间使用昂贵的非对称加密进行协商,从而产生一个共享的主密钥,该密钥将持续一个“会话”的时间,时间由服务器决定。
  2. 然后使用快速对称加密算法对每个后续连接进行加密,该算法的密钥是从主密钥中推断出来的。因此,每个连接都使用不同的密钥加密,因此任何“嗅探器”都没有足够的数据来找到特定的连接密钥或主密钥。

现在,我正在开发一个应用程序,该应用程序将使用可能会长时间保持连接的 Web 套接字。很长,我的意思是几天。通过此 Web 套接字连接传输的信息将是高度机密的。

那么,知道 WebSocket 永远不应该断开连接,WSS 规范中有什么东西可以定期更新对称密钥吗?
据我了解,使用对称算法,使用相同密钥加密的数据越多,加密就越弱。

HTTPS 在每次新连接时都会更改此密钥(从主密钥中推断出一个新密钥),但是对于长时间只有一个连接的 WebSocket 连接呢?

1个回答

除非您通过该连接以 EB 级发送数据,否则 AES 不应在该时间范围内降低安全性。WebSocket 打开的持续时间不会降低它的安全性,因此只有通过它的数据流最终可能(在大量使用之后)会侵蚀 AES 提供的安全性。请记住,整个 Internet每天产生大约 1,000 艾字节,因此除非您通过一个 WebSocket 路由所有 Internet 流量的很大一部分,否则在使用 WebSocket 期间您不需要更新您的密钥。

如果您仍想更新密钥,客户端或服务器可以在连接期间的任何时间重新发出握手请求,该请求根据两个新的随机值重新派生主密钥。RFC5246