我一直在阅读(https 如何防止会话劫持),其中说劫持者只会看到加密数据,而不是纯文本,因此他们不可能劫持会话。
但考虑到实际用户也在发送加密数据,这不是劫持者所需要的一切吗?因此劫持者可以看到加密数据的事实仍然存在问题,并且足以真正劫持会话并模仿不同的用户?
我不确定 TLS/SSL 如何防止这种情况。
假设,客户端发送 cookie 值“ABC”,该值由服务器在成功验证后生成。现在客户端不会发送 ABC 而是“XYZ”(加密后)。现在劫持者将看到 XYZ 并且它也可以发送 XYZ,然后服务器将解密它并假设劫持者是实际的客户端。
我在这里做错了什么?
加密通信通常或多或少像这样工作:
另一方面,服务器当然反映了这一点。这样我们就可以防止重播。您不能只选择一条用 K 加密的消息 M1 并再次发送它,因为服务器已经期望下一条消息用 K2 加密。当然,重点在于以这样一种方式构建协议,即中间人无法仅通过查看加密消息来导出 K2。
更不用说仅仅通过查看加密流,你甚至无法分辨哪一块是cookie。