是否应该加密仅进行重定向(又名小 url)的域(https)?

信息安全 tls http 网址重定向
2021-08-17 01:07:39

对于这个问题,我将使用以下域:

  • example.com - 网上商店
  • exmpl.com - 用于共享项目的域。

exmpl.com将用于重定向(例如http://exmpl.com/foo将重定向到https://example.com/items/42

我有以下问题:

  • exmpl.com应该加密有多重要?
  • 如果它有https或只有它有关系http吗?
  • 当然,如果没有https,尝试访问的人https://exmpl.com将无法访问,但有没有副作用?
  • 另一方面,为什么公司宁愿只http在这种情况下提供支持?
3个回答

重定向网站是否应该使用 HTTPS

如果主站点使用 HTTPS,那么重定向站点也应该使用。

如果不这样做,可能会发生哪些攻击

被动攻击者

  • 可以看到用户查看的每个项目
  • 可能会获得额外信息(链接到页面的站点/聊天)

主动攻击者

被动攻击者可以做的任何事情,并且...

  • 可以 MITM 连接并使用 SSLStrip 之类的东西来防止连接升级到 HTTPS,然后允许查看密码、信用卡号等。
  • 可以在回复中添加 cookie,允许他们跟踪用户
  • 可以将流量重定向到网络钓鱼站点或安装恶意软件的站点。

如何完全防止使用 HTTP,停止 SSLStrip 之类的工具

  • 您可以提供 HSTS 标头,因此只有第一次访问(以及标头过期后的第一次访问)将使用 HTTP,因此攻击者无法拦截流量
  • 如果您要防止这些弱点,您可以将您的站点添加到HSTS 预加载列表,这将阻止 HTTP 连接。
  • 这需要适用于两个站点,就好像主站点是 HSTS 但重定向然后攻击者可以重定向到他们控制的站点,而不是绕过 HSTS。

我应该使用 HTTPS

一般来说,是的

在极少数情况下您可以不使用 HTTPS,所有这些都需要应用:

  • 您手动签署您的数据 - 并始终验证签名

  • 您不关心人们发现您的软件正在某人的机器上运行

  • 您不处理任何敏感信息,或用户可能希望保密的信息
  • 您不会意外收到通过系统发送的敏感信息
    • ACARS 就是一个例子,它不是用于敏感信息的,但是信用卡号已经通过它发送,而没有意识到造成的问题。[论坛论文]
  • 您不关心或可以检测是否有人使用其他有效签名的文件交换文件
  • 该服务并不暗示敏感数据(有关疾病的页面可能不敏感,但有人正在搜索有关该疾病的事实可能是敏感的)。

在极少数情况下,只使用普通 HTTP 而不是 HTTPS 是个好主意。这可能不是其中之一。

考虑这种情况:用户点击一个链接http://exmpl.com/foo,希望购买一些新的 foo。中间的人拦截了请求,并以网络钓鱼副本https://example.com/items/42而不是重定向到合法副本进行响应。像用户一样懒惰的用户不会检查他被重定向到的网址 - 毕竟,他知道他点击了正确的链接。相反,他继续将他的信用卡详细信息输入网络钓鱼站点。他认为他是在合法网站上购买 foo,而实际上他是被骗了。

当然,用户在这里犯了一个错误。但是,如果您只使用 HTTPS,这将是一个无关紧要的错误。

当用户有隐私意识时,他们可能希望最大限度地减少窃听者可以收集的关于他们的数据量。当您使用 HTTPS 时,整个请求都会被加密。窃听者只知道用户访问了哪个服务器以及(大约)交换了多少数据。

当 exmpl.com 不使用 HTTPS 时,窃听者知道:

  • 访问的主题 http://exmpl.com/foo
  • 主题收到一个 http 重定向到 https://example.com/items/42
  • 主题访问了域上的未知(但现在很容易推断)URL example.com
  • 主题收到一个长的加密响应

当您使用 HTTPS 时,所有攻击者都知道:

  • 主题访问了域上的未知 URL exmpl.com
  • 对象收到一个简短的加密响应
  • 主题访问了域上的未知 URL example.com
  • 主题收到一个长的加密响应

攻击者不知道用户使用了哪个重定向,因此他们不知道用户访问过items/42攻击者也无法确定这两个访问是否相关。