我远不是安全专家,所以请原谅这个问题中的任何近似值。
据我从这个(非常好的)答案中了解到,一套 HTTPS 连接可以总结如下:
- 浏览器和服务器之间使用昂贵的非对称加密进行协商,从而产生一个共享的主密钥,该密钥将持续一个“会话”的时间,时间由服务器决定。
- 然后使用快速对称加密算法对每个后续连接进行加密,该算法的密钥是从主密钥中推断出来的。因此,每个连接都使用不同的密钥加密,因此任何“嗅探器”都没有足够的数据来找到特定的连接密钥或主密钥。
现在,我正在开发一个应用程序,该应用程序将使用可能会长时间保持连接的 Web 套接字。很长,我的意思是几天。通过此 Web 套接字连接传输的信息将是高度机密的。
那么,知道 WebSocket 永远不应该断开连接,WSS 规范中有什么东西可以定期更新对称密钥吗?
据我了解,使用对称算法,使用相同密钥加密的数据越多,加密就越弱。
HTTPS 在每次新连接时都会更改此密钥(从主密钥中推断出一个新密钥),但是对于长时间只有一个连接的 WebSocket 连接呢?