为什么无法通过将 cookie 与 IP 关联来防止 cookie 劫持?

信息安全 饼干 浏览器劫持
2021-08-24 15:39:50

我刚开始阅读有关 cookie 的所有内容,以及我可能弄错它们并允许 cookie 被劫持的所有方法,这允许攻击者执行诸如冒充登录用户之类的操作。

我不明白为什么不能通过简单地让服务器向每个 cookie 添加由 cookie 的其余部分确定的签名、服务器上的密钥以及发出请求的人的 IP 来解决这个问题。对于无法在该 IP 上收到响应的任何人,被盗的 cookie 将几乎毫无用处。被盗 cookie 本身中的任何可读数据仍然可以访问,但被盗 cookie 不能用于冒充他人。

为什么这不起作用?是否有某种方法可以接收绑定到您无法控制的 IP 地址的数据包?我知道在我的本地网络上,我可以读取用于本地网络上其他计算机的数据包,但我认为没有任何方法可以将用于 stackoverflow.com 的所有数据包的副本发送到我的住宅 IP。

如果这是我们唯一的安全手段,您仍然可以发送欺骗性请求,但您无法欺骗服务器将任何内容发送回您自己的 IP(我认为),这似乎仍然有用。

我在谷歌上没有找到任何关于将 cookie 与 IP 相关联的信息,所以我认为这不起作用,但我不知道为什么。

3个回答

如果 cookie 在公共 Wifi 热点内被盗,热点的所有用户通常都拥有相同的公共 IP 地址。这意味着绑定到 IP 将无助于对抗同一本地网络中的攻击者。

除此之外,如果用户的公共 IP 发生变化,就像在网络之间移动(移动、WLAN 大学、咖啡馆的 WLAN、家中的 WLAN ......)一样,他们将需要一次又一次地登录。

Steffen Ullrich 关于可疑的安全收益是正确的。我们在实践中没有实施它的原因是由于以前流行的多宿主 NAT 盒子,其中 X 台计算机将减少到 N 个 IP 地址(其中 X >> N)。这种工作方式的副作用是下一个请求将来自同一子网中的不同 IP,并且由于 CIDR,您不再知道子网边界在哪里。

您可以在会话期间基于 ip 进行关联,以防您正在查看某种应用程序,并在一定时间后老化并过期。可以肯定的是,您不会长时间从事诸如银行交易之类的事情,但是对于诸如社交网站之类的事情,则相当宽松。