通过带有 MD5 哈希且没有其他授权的 URL 来保护敏感内容的安全性如何?

信息安全 验证 Web应用程序 哈希 http md5
2021-09-05 17:50:23

假设我们的网站在 URL 中使用 MD5 哈希,如下所示:

http://somewebsite.com/XXX/

XXXMD5 哈希值在哪里。

本网站的内容可能包含敏感信息,例如带有个人数据的交易详情。

该网站没有其他授权,因此如果您有 URL,则可以访问它。

它有多安全?我的意思是,如果没有人会与任何人共享 URL,那么我可以假设没有人会访问它吗?

网络爬虫需要多长时间才能爬取此类 url 的所有组合?

我问是因为我正在使用一些网上商店,以这种方式存储带有个人数据的交易细节,我说他们不安全,有人可以查看他们的客户敏感数据,但他们不相信。构建网络爬虫对我来说很简单,我知道该怎么做,但我不知道它会在所有组合中爬取多少时间,也许在商店他们是对的?这与我的网站无关,我是那家商店的最终用户,我需要说服他们他们错了。

2个回答

“秘密” URL 有几个问题需要考虑。

首先,当通过 HTTP 和 HTTPS 提供服务时,它们提供了不同级别的安全发现来防止发现。通过 HTTPS,路径受到保护。通过 HTTP,它不是。这意味着在使用 HTTP 时,流量路径中的任何人(嗅探无线流量的人、代理服务器、缓存服务器)都可以访问该路径并因此可以发现它。通过 HTTPS,仅暴露主机名,保护路径免受窃听。

其次,可以通过多种方式为它们添加书签或保存。您必须考虑滥用书签 URL 是否对您的应用程序构成重大威胁。

第三,没有办法使对有效 URL 的访问过期。如果您有身份验证系统,则可以强制执行某种形式的会话超时。如果你不这样做,只要 URL 有效,任何拥有它的人都可以访问它。

第四,更具体地针对这个特定的应用程序,是 Izam 在评论中提出的问题。 创建 URL 的哈希值是什么如果它类似于递增的基于整数的事务 id,或者算法可以轻松生成候选输入和散列的其他来源,不,它肯定不安全,因为攻击者可以生成一组潜在有效的散列并尝试它们全部。它们可能并非都有效,但如果其中一些有效,那么该计划就被打破了。特别是如果它一个递增的整数,因为如果他们发现有效的输入,所有有效的 URL 都可以很容易地确定和公开。

因此,在某些情况下,秘密 URL 可能是一种有效的工具。由于个人信息,尤其是财务信息,我不会依赖这种机制。它太弱了。

您不需要遍历所有组合 - 您只需要找到一个您无权访问的组合。这证明方法是错误的。因为它是一个 MD5 散列,所以每次它的长度也可能相同,这使得更容易缩小有效链接的范围。

我相信爬虫只需要不到 5 行代码,不到一个小时就能找到你不应该访问的链接。