418 字
2 分钟
Anubis:基于工作量证明的网络访问控制机制分析

最近在网络安全领域出现了一个名为 Anubis 的访问控制机制,它采用了类似比特币挖矿的工作量证明(PoW)概念来防止自动化爬虫。

核心工作原理#

Anubis 的核心机制非常简单:要求访问者解决一个基于 SHA-256 的哈希挑战。具体来说,用户需要找到一个随机数(nonce),使得:

SHA-256(challenge + nonce)

的结果以指定数量的零开头。默认难度设置为 4,意味着需要找到一个使哈希值前 16 位全为零的 nonce。

技术实现细节#

挑战-响应机制#

服务器首先向客户端发送一个挑战值,客户端必须找到正确的 nonce:

// 服务器端验证逻辑(伪代码)
calcString := fmt.Sprintf("%s%d", challenge, nonce)
calculated := internal.SHA256sum(calcString)
if subtle.ConstantTimeCompare([]byte(response), []byte(calculated)) != 1 {
// 验证失败,拒绝访问
return false
}

访问凭证管理#

成功通过挑战后,用户会获得一个有效期为 7 天的 JWT(JSON Web Token)。这个令牌包含:

  • 挑战信息
  • 颁发时间戳
  • 过期时间

计算成本分析#

理论计算量#

对于难度为 4 的挑战,平均需要尝试 2^16 = 65,536 次哈希计算才能找到正确答案。这个计算量对现代计算设备来说微不足道。

实际成本评估#

根据原作者的分析,即使是资源丰富的 AI 爬虫,解决这类挑战的计算成本也极其低廉:

  • 单次挑战解决成本:几乎可以忽略不计
  • 月度成本:可能不到一美分
  • 对大型数据中心:计算难度几乎不构成障碍
Anubis:基于工作量证明的网络访问控制机制分析
https://blog.lpkt.cn/posts/anubis-pow-captcha/
作者
lollipopkit
发布于
2025-08-20
许可协议
CC BY-NC-SA 4.0