为什么没有基于工作量证明机制的防火墙应用?

2021-07-01 11:19:29 +08:00
 xieqiqiang00
昨天脑子里冒出来一个想法,Cloudflare 有一个 5 秒盾防火墙,我想着能不能增加他的复杂度或者安全性。
我设想的是这样的:
1.浏览器向服务器发起请求,服务器生成一个一次性私钥,然后用私钥加密一段文本,把加密后的内容发送给浏览器
2.浏览器收到密文后进行暴力破解,把破解后的私钥再发回服务器
3.服务器验证通过,生成新的密钥,加密文本后把加密后的密文和内容一起发回浏览器,
4.浏览器展示内容,并同时破解新的密文,在下次请求时发回服务器
...循环

后面和朋友讨论了一下之后发现这个和比特币的 PoW 机制非常像,并且我搜索了一下,用这种工作量证明来做防火墙居然就写在维基百科的头部:
“工作量证明( Proof-of-Work,PoW )是一种对应服务与资源滥用、或是拒绝服务攻击的经济对策。 一般要求用户进行一些耗时适当的复杂运算,并且答案能被服务方快速验算,以此耗用的时间、设备与能源做为担保成本,以确保服务与资源是被真正的需求所使用。”
https://zh.wikipedia.org/wiki/%E5%B7%A5%E4%BD%9C%E9%87%8F%E8%AD%89%E6%98%8E

但这种看起来复杂又先进的防火墙技术似乎并没有被哪个商业产品应用,这是为什么?
3274 次点击
所在节点    信息安全
32 条回复
yefee
2021-07-02 08:50:13 +08:00
赞同 @msg7086 的说法。
不管是短信验证码也好、拼图也好、旋转也好、点击也好也好,全都是工作量证明。而且是很典型的:电脑需要很高成本,而人脑需要极低成本的工作量证明。
xieqiqiang00
2021-07-02 09:05:42 +08:00
@jim9606 请求资源是 html 的话就插入一段 js,然后把结果记在 cookie 里,api 接口的话的确不太好自动防护
xieqiqiang00
2021-07-02 09:10:36 +08:00
@msg7086 思路新奇
那有些要半个小时才能通过的验证码就是拿人脑挖矿呢😂
ykrank
2021-07-02 10:31:17 +08:00
一开网页就 CPU 100%,风扇狂赚,你网站只会被立刻投诉挂马和挖矿
xieqiqiang00
2021-07-02 11:53:50 +08:00
@ykrank js 是单线程的
xieqiqiang00
2021-07-02 11:56:15 +08:00
@ykrank 而且事实告诉我们,喂用户吃屎用户也是反抗不了的
Aoang
2021-07-02 13:14:16 +08:00
PoW 只适用于验证,例如区块链是验证是不是进行计算了,传统的验证码是用来验证是不是机器人。
对于攻击而言…它可不会管验证不验证的。

#10 说的例子就是一个典型,别人压根本就不做俯卧撑,只是把你大厅占满。
xieqiqiang00
2021-07-02 13:20:49 +08:00
@Aoang 对于抗攻击服务的提供商,他们的大厅可以认为是无限大的(尤其是 cloudflare 这种),服务商把他们拦住不让进业务就是他们的使命
cwyalpha
2021-07-03 06:08:15 +08:00
不如改成访问前必须挖个 b 挖到才让你上
xieqiqiang00
2021-07-03 11:19:03 +08:00
@cwyalpha 技术上是差不多的
qbqbqbqb
2021-07-07 13:27:45 +08:00
以前是有的。臭名昭著的挖矿脚本提供商 CoinHive (现在已经倒闭),以前就提供过一款 PoW 挖矿验证码,UI 很像 reCaptcha,但它不区分人类和机器人,而是要求客户端的浏览器给站长挖几秒钟矿才能放行,不是直接阻挡而是通过消耗爬虫的计算资源来阻止爬虫,同时站长还能获得挖矿收益。这款产品后来与恶意挖矿脚本一样被一并封杀了。
xcstream
2021-07-19 17:29:09 +08:00
其实那东西就叫验证码

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/786865

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX