项目简介
验证码(区分计算机和人类的完全自动化公共图灵测试)一直是互联网上至关重要的安全措施,可保护网站免受自动机器人和恶意活动的侵害。然而,随着机器学习和人工智能的快速发展,验证码区分人类和机器的有效性受到质疑。
本学期项目重点关注 Google 的 reCAPTCHAv2 系统,该系统在网络上广泛使用。我们的目标是使用 YOLO(You Only Look Once)等先进深度学习模型来分析 reCAPTCHAv2 在拒绝机器人方面的有效性。我们的研究探索了基于图像的验证码的漏洞,并开发了使用最先进的机器学习技术解决这些问题的有效方法。
我们的主要发现包括:
-
我们可以 100% 解决 reCAPTCHAv2 提出的验证码,超过了之前作品的成功率(68% 到 71%)。
-
在 reCAPTCHAv2 中,人类和机器人解决验证码所需的挑战数量没有显着差异,这表明当前的人工智能技术可以有效地利用先进的基于图像的验证码。
-
reCAPTCHAv2 在评估用户是否为人类时严重依赖 cookie 和浏览器历史数据,这凸显了在 CAPTCHA 设计中考虑用户特定数据的重要性。
要求
安装
-
克隆存储库
-
安装所需的库:
pip install -r requirements.txt
3.
运行
test_environment.py
以解决多个 reCAPTCHA 挑战并创建日志文件:
python test_environment.py
数据
-
分类任务的训练数据可以在这里找到。
-
可以在此处找到分类任务的验证数据。
项目结构
该项目具有以下目录结构:
-
assets/
:包含 README 中使用的图像。
-
IP/
:包含用于更改 IP 地址的脚本。
-
models/
:包含项目中使用的所有模型。
-
utils/
:包含实用程序脚本。
-
collect_data.py
:用于收集分类模型数据的脚本。
-
label_tool.py
:用于标记验证码图像的 UI 工具。
-
visualize_log_files.py
:分析日志文件,提供对任务尝试、其分布和关键统计度量的见解。
-
README.md
:此文件提供了项目的概述。
-
solve_recaptcha.py
:使用 Selenium 解决单个 reCAPTCHA 挑战的演示脚本。
-
test_environment.py
:用于使用 Selenium 解决多个 reCAPTCHA 挑战并创建日志文件的演示脚本。
-
requirements.txt
:包含项目所需的库。
系统兼容性