停止使用 CAPTCHA,开始测量熵

发布: (2026年2月9日 GMT+8 08:26)
4 分钟阅读
原文: Dev.to

Source: Dev.to

CAPTCHA 的问题

在 2024 年底,ETH 苏黎世的研究人员发表了《Breaking reCAPTCHAv2》,展示了现代基于 YOLO 的视觉模型能够以 100 % 的准确率 解答 Google 的图片 CAPTCHA。 “I am not a robot”(我不是机器人)复选框实际上已经成为机器人们的欢迎垫。

根据 2025 年 Imperva Bad Bot 报告,自动化流量现在占 所有互联网活动的 51 %,在人们自己的网络中,人类用户已成为少数。

当前的反应——“人类身份验证”(扫描身份证或面部)是一种反乌托邦式的过度纠正。我们真正需要的是一种验证 用户是什么(生物特征)而不是 用户是谁(身份)的方式。

测量人类熵

人类交互本质上是嘈杂的:

  • 按键间隔从不完全规律。
  • 用户会在键上滑动、停下来思考,并且会更快地输入常见二元组(例如 “th”、 “er”)。

这些特征形成了 按键动力学签名,一种行为生物特征,机器人几乎不可能在不降低性能的情况下模仿。

isHumanCadence 库

isHumanCadence 是一个轻量级、注重隐私的 JavaScript 库,它分析 按键的时序——而不是内容。它完全在浏览器中运行,不向服务器发送任何数据,只知道 你是如何 输入的。

工作原理

该库测量四个主要的生物约束:

指标描述
停留时间按键实际被按下的持续时间。人类很少每次恰好敲击 50 ms。
飞行时间释放一个键到按下下一个键之间的间隔。
重叠率在前一个键释放之前就按下下一个键的重叠情况。机器人往往严格顺序敲击。
时序差值的统计方差。

为了避免“闪烁”(用户暂停时分数快速变化),使用了具有滞后的 Schmitt Trigger

  • 人类 – 分数 ≥ 0.70
  • 未知 – 0.60 ≤ 分数 < 0.70
  • 机器人 – 分数 < 0.60
// Example usage – evaluate result
if (result.score >= 0.70) {
  console.log(`Score: ${result.score}`);               // 0.0 (Bot) → 1.0 (Human)
  console.log(`Status: ${result.classification}`);    // 'bot' | 'human' | 'unknown'
}
// Start listening for keystrokes
cadence.start();
console.log('isHumanCadence: Listening for keystrokes...');

该库向目标元素附加非侵入式监听器,并使用 performance.now() 实现亚毫秒级精度。

局限性与未来方向

  • 生成式按键 – 未来的 AI 代理可能在海量人类打字模式数据上进行训练,故意“卡壳”,模拟熵。
  • 客户端信任 – 由于测量发生在浏览器中,坚定的攻击者可能会伪造环境。

isHumanCadence 并非灵丹妙药;它是一个开启对话的起点,用于构建通过节奏而非密码识别人类的过滤器。

结论

网络正被 AI 生成的噪声淹没。为了保留真实人类交流的空间,我们必须从静态身份检查转向捕捉真实用户那种混乱、非完美节奏的动态行为生物特征。

👉 GitHub:

0 浏览
Back to Blog

相关文章

阅读更多 »

解锁笔记本电脑 GPU 的隐藏力量

概述:大多数现代笔记本电脑都配备了强大的 GPU,但往往未被充分利用。无论你是运行本地 LLM 的软件工程师,还是数据科学家……