SSL是否足以保护请求及其标头?

时间:2013-12-17 02:00:16

标签: authentication ssl

我问这个是因为我在一个应用程序上工作,可以将X-AUTH-TOKEN从一个请求复制到另一个请求并模仿另一个人。这让我感到紧张,但我告诉我们,因为我们将使用HTTPS,所以我们不必担心任何事情。

所以,我的问题是:是否足够信任SSL以防止窃取用于身份验证/会话的标头?

谢谢,

3 个答案:

答案 0 :(得分:2)

使用HTTPS加密确实可以防止有人窃取您的身份验证令牌,如果他们可以拦截流量。除非客户端启用对等证书检查,否则它不一定会阻止中间人攻击。

This question from the security stackexchange描述了如何针对SSL实施MITM攻击。如果我可以说服运行HTTPS的客户端连接到我的服务器,并且他们接受我的证书那么我可以窃取您的身份验证令牌并重新使用它。同行证书验证有时候会有点痛苦,但它可以让你有更高的机会,无论你说谁是他们所说的人。

“足够好”是一个相对的定义,取决于你的偏执程度。就个人而言,我很高兴我的连接足够安全,并启用了HTTPS和对等证书验证。

据推测,您的身份验证令牌也会超时,因此攻击窗口会受到时间限制。例如,OpenStack身份验证令牌在到期之前默认有效24小时,然后您需要获得一个新令牌。

答案 1 :(得分:1)

HTTPS标准完全在SSL / TLS之上实现HTTP。因此,实际上除了DNS查询之外的所有内容都是加密的。由于标头是请求和响应的一部分,并且仅在创建安全通道后发送,因此它们与给定服务器上的HTTPS实现一样安全。

答案 2 :(得分:1)

HTTPS是整个HTTP会话的端到端加密,包括标题,因此从表面上看,您应该不会被窃听。

然而,这只是故事的一部分:取决于客户端实际连接的方式(这是一个网站还是一个API服务?),仍然有可能欺骗他们将数据发送到错误的地方,例如:

  • 使用无效的SSL证书呈现“中间人”网站(因为它不是来自受信任的机构,或者不是针对正确的域),而是说服用户绕过此检查。现代浏览器对此类事情大惊小怪,但用于连接API的库可能不会。
  • 使用有效的SSL证书呈现不同的站点/服务端点,使用有效的SSL证书,收集身份验证令牌,并使用它们连接到真实服务。
  • 在通过HTTPS发送之前,在客户端应用程序内收集令牌。

任何一种安全方法都不足以阻止所有攻击。主要的考虑因素应该是在实施复杂的额外措施与如果攻击者利用你没有这样做可能造成的损害之间进行权衡。