当前位置: 首页 > article >正文

机器人现可完全破解验证码:未来安全技术何去何从?

引言

随着计算机视觉技术的飞速发展,机器学习模型现已能够100%可靠地解决Google的视觉reCAPTCHAv2验证码。这标志着一个时代的结束——自2000年代初以来,CAPTCHA("全自动区分计算机与人类的图灵测试"的缩写)一直是区分网站访问者与机器人的最流行工具。对于企业来说,这意味着是时候永久性地放弃reCAPTCHA技术了。对用户而言,这也是个好消息,因为他们往往发现解决验证码是一件令人烦恼的事情。然而,数百万网站仍在使用验证码,因此了解为何reCAPTCHA不再有效至关重要。

1. 图像识别机器人已赶上人类

1.1 机器学习模型的突破

独立研究人员经常测试包括验证码在内的在线安全工具,以评估它们对潜在攻击者的抵抗能力。直到最近,图像识别AI模型对视觉reCAPTCHA(要求用户查看3x3图像网格并识别诸如路灯或公交车等常见物体的验证码)的成功率约为70%。2024年9月,瑞士苏黎世联邦理工学院(ETH Zurich)的研究人员宣布,他们已经构建了一个高效的AI模型,能够100%击败视觉reCAPTCHA。

这些研究人员在14,000张交通图像上训练了一个名为YOLO("You Only Look Once")的实时对象识别机器学习模型,然后用它来解决单个reCAPTCHA挑战。这个开源模型能够以69%到100%的准确率正确识别不同类型的图像,对于无法解决的挑战,它会要求展示另一个验证码。最终,该模型能够在平均约19次尝试中击败每个reCAPTCHA。

值得注意的是,模型或人类击败reCAPTCHA挑战所需的尝试次数之间没有统计学上的显著差异。此外,YOLO模型可以在有限的处理能力下本地运行。这意味着它可以被欺诈者大规模部署用于进行机器人攻击。

1.2 为什么不制作更难的验证码?

自2014年以来,神经网络已被用于可靠地绕过基于文本的验证码(自2011年起用于音频验证码)。现在模型也能持续击败视觉挑战,开发者需要寻找新的方法来检测机器人。但是,有充分理由不继续发展CAPTCHA范式:

  • 对人类来说太难:reCAPTCHA已经以对人类难以解决而闻名。让它们变得更难可能会赶走更多合法的网站访问者。根据挑战类型的不同,它们还会给视障或听障人士带来无障碍问题。
  • 消耗太多时间:人类用户解决基于图像的reCAPTCHA大约需要10秒钟,这会降低用户体验。自验证码发明以来,人类已花费8.19亿小时解决reCAPTCHA(这几乎相当于1,200个人的寿命!)
  • 损害销售:实施更难的挑战可能会对转化率产生比当前reCAPTCHA更糟糕的影响。研究估计,验证码会使转化率降低3%至40%。
  • 这是一场无法获胜的军备竞赛:由于机器人学习击败它们的速度,没有单一的验证码能长期有效。

总结起来,这些缺点明显多于优点。企业需要探索reCAPTCHA的替代方案来保护其网站。

2. 有效的机器人检测策略

2.1 多层次机器人检测方法

检测机器人的有效方法是将设备智能作为多层次欺诈检测方法的一部分,该方法结合技术数据和行为特征来形成对用户行为和意图的完整图像,同时不影响客户体验。一些公司可以共同使用的最有效技术包括:

  • 蜜罐技术:在表单提交中设置对使用图形界面浏览的人类用户不可见但对机器人可见的隐藏字段,从而诱捕机器人。如果人类填写表单,则该字段为空白,但当机器人扫描网站的HTML代码时,它们会填写该字段。这会标记它们的提交以进行阻止。
  • 行为分析:滚动时间、鼠标移动和导航模式等指标有时可以区分人类用户和机器人。机器人倾向于以闪电般的速度在操作之间移动,且没有犹豫。
  • 机器学习:在已知的人类和机器人交互的大型数据集上训练模型,以发现模式。这些发现的模式随后可以帮助实时识别机器人的行为。
  • 设备智能:全面的设备智能平台分析数百种浏览器和设备特性,可用于标记可能表明机器人冒充真实用户的可疑活动和设备。
  • IP黑名单:检查访问者IP地址是否与定期更新的已知机器人IP、数据中心范围和恶意代理数据库匹配。

所有这些机器人检测策略都在后台无形中工作,收集数据并发现模式,而不会打扰合法的人类用户。它们共同提供了一种深度防御方法,能够随着欺诈者不断发展的技术而调整。

3. 结语

reCAPTCHA不再提供它承诺的机器人保护。设备智能是阻止恶意机器人尝试入侵客户账户、降低网站速度或抓取网站内容的更好替代方案。

随着计算机视觉和机器学习技术的不断发展,传统验证码技术已经无法有效区分人类与机器。企业需要采用更先进、更智能的解决方案,如多层次欺诈检测系统、行为分析和设备智能等技术,以保护网站安全并提升用户体验。最终,无需打扰用户的"无形"安全措施将成为未来网络安全的主要发展方向。

相关文章:

机器人现可完全破解验证码:未来安全技术何去何从?

引言 随着计算机视觉技术的飞速发展,机器学习模型现已能够100%可靠地解决Google的视觉reCAPTCHAv2验证码。这标志着一个时代的结束——自2000年代初以来,CAPTCHA("全自动区分计算机与人类的图灵测试"的缩写)一直是区分…...

CppCon 2014 学习:(Costless)Software Abstractions for Parallel Architectures

硬件和科学计算的演变关系: 几十年来的硬件进步:计算机硬件不断快速发展,从提升单核速度,到多核并行。科学计算的驱动力:科学计算需求推动硬件创新,比如需要更多计算能力、更高性能。当前的解决方案是并行…...

网络爬虫 - App爬虫及代理的使用(十一)

App爬虫及代理的使用 一、App抓包1. App爬虫原理2. reqable的安装与配置1. reqable安装教程2. reqable的配置3. 模拟器的安装与配置1. 夜神模拟器的安装2. 夜神模拟器的配置4. 内联调试及注意事项1. 软件启动顺序2. 开启抓包功能3. reqable面板功能4. 夜神模拟器设置项5. 注意事…...

Kafka集群部署(docker容器方式)SASL认证(zookeeper)

一、服务器环境 序号 部署版本 版本 1 操作系统 CentOS Linux release 7.9.2009 (Core) 2 docker Docker version 20.10.6 3 docker-compose docker-compose version 1.28.2 二、服务规划 序号 服务 名称 端口 1 zookeeper zookeeper 2181,2888,3888 2 ka…...

【python爬虫】利用代理IP爬取filckr网站数据

亮数据官网链接:亮数据官网...

群晖 NAS 如何帮助培训学校解决文件管理难题

在现代教育环境中,数据管理和协同办公的效率直接影响到教学质量和工作流畅性。某培训学校通过引入群晖 NAS,显著提升了部门的协同办公效率。借助群晖的在线协作、自动备份和快照功能,该校不仅解决了数据散乱和丢失的问题,还大幅节…...

NLP学习路线图(十八):Word2Vec (CBOW Skip-gram)

自然语言处理(NLP)的核心挑战在于让机器“理解”人类语言。传统方法依赖独热编码(One-hot Encoding) 表示单词,但它存在严重缺陷:每个单词被视为孤立的符号,无法捕捉词义关联(如“国…...

P1438 无聊的数列/P1253 扶苏的问题

因为这两天在写线性代数的作业,没怎么写题…… P1438 无聊的数列 题目背景 无聊的 YYB 总喜欢搞出一些正常人无法搞出的东西。有一天,无聊的 YYB 想出了一道无聊的题:无聊的数列。。。 题目描述 维护一个数列 ai​,支持两种操…...

嵌入式学习笔记 - 新版Keil软件模拟时钟Xtal灰色不可更改的问题

在新版Keil软件中,模拟时钟无法修改XTAL频率,默认只能使用12MHz时钟。‌这是因为Keil MDK从5.36版本开始,参数配置界面不再支持修改系统XTAL频率,XTAL选项变为灰色,无法修改。这会导致在软件仿真时出现时间错误的问题&…...

k8s的出现解决了java并发编程胡问题了

Kubernetes(K8s)作为一种开源的容器编排平台,极大地简化了应用程序的部署、管理和扩展。这不仅解决了很多基础设施方面的问题,也间接解决了Java并发编程中的一些复杂问题。本文将详细探讨Kubernetes是如何帮助解决Java并发编程中的…...

如何利用大语言模型生成特定格式文风的报告类文章

在这个算法渗透万物的时代,我们不再仅仅满足于大语言模型(LLM)能“写”,更追求它能“写出精髓,写出风格”。尤其在专业且高度格式化的报告类文章领域,仅仅是内容正确已远远不够,文风的精准复刻才是决定报告是否“对味儿”、能否被目标受众有效接受的关键。这不再是简单的…...

黑马Java面试笔记之 集合篇(算法复杂度+ArrayList+)

一. 算法复杂度分析 1.1 时间复杂度 时间复杂度分析:来评估代码的执行耗时的 常见的复杂度表示形式 常见复杂度 1.2 空间复杂度 空间复杂度全称是渐进空间复杂度,表示算法占用的额外存储空间与数据规模之间的增长关系 二. 数组 数组(Array&a…...

【从0-1的HTML】第2篇:HTML标签

文章目录 1.标题标签2.段落标签3.文本标签brbstrongsubsup 4.超链接标签5.图片标签6.表格标签7.列表标签有序列表ol无序列表ul定义列表dl 8.表单标签9.音频标签10.视频标签11.HTML元素分类块级元素内联元素 12.HTML布局13.内联框架13.内联框架 1.标题标签 标题标签&#xff1a…...

从“Bucharest”谈起:词语翻译的音译与意译之路

在翻译中,面对地名、人名或新兴术语时,我们常常会遇到一个抉择:到底是“音译”,保留其原发音风貌,还是“意译”,让它意义通达? 今天我们以“Bucharest”为例,展开一次语言与文化的微…...

Nginx+Tomcat负载均衡

目录 Tomcat简介 Tomcat 的核心功能 Tomcat架构 Tomcat 的特点 Tomact配置 关闭防火墙及系统内核 Tomcar 主要文件信息 配置文件说明 案例一:Java的Web站点 案例二:NginxTomcat负载均衡、动静分离 Tomcat简介 Tomcat 是由 Apache 软件基金会&am…...

JVM——JVM中的字节码:解码Java跨平台的核心引擎

引入 在Java的技术版图中,字节码(Bytecode)是连接源代码与机器世界的黄金桥梁。当开发者写下第一行public class HelloWorld时,编译器便开始了一场精密的翻译工程——将人类可读的Java代码转化为JVM能够理解的字节码指令。这些由…...

【论文解读】ReAct:从思考脱离行动, 到行动反馈思考

认识从实践开始,经过实践得到了理论的认识,还须再回到实践去。 ——《实践论》,毛泽东 1st author: About – Shunyu Yao – 姚顺雨 paper [2210.03629] ReAct: Synergizing Reasoning and Acting in Language ModelsReAct: Synergizing Reasoning and…...

数据解析:一文掌握Python库 lxml 的详细使用(处理XML和HTML的高性能库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、lxml 概述1.1 lxml 介绍1.2 安装和第一个案例1.3 性能优化技巧二、XML处理2.1 解析XML2.2 访问元素2.3 遍历XML树2.4 修改XML2.5 写入XML三、HTML处理3.1 解析HTML3.2 XPath查询3.3 CSS选择器四、高级功能4.1 使用命…...

react native webview加载本地HTML,解决iOS无法加载成功问题

在react native中使用 “react-native-webview”: “^13.13.5”,加载HTML文件 Android: 将HTML文件放置到android/src/main/assets目录,访问 {uri: file:///android_asset/markmap/index.html}ios: 在IOS中可以直接可以直接放在react native项目下,访问…...

简单配置RHEL9.X

切换默认运行级别 将系统默认启动模式从多用户的图形界面调整为多用户的文本界面,适用于优化系统资源占用或进行远程服务器管理的场景。 注意:安装选择“带GUI的服务器”部分常用命令默认安装;如果选择“最小安装”时,部分常用命…...

默认网关 -- 负责转发数据包到其他网络的设备(通常是路由器)

✅ 默认网关概括说明: 默认网关(Default Gateway)是网络中一台负责转发数据包到其他网络的设备(通常是路由器)。当一台主机要访问不在本地子网内的设备时,会将数据包发给默认网关,由它继续转发…...

python调用硅基流动的视觉语言模型

参考: https://docs.siliconflow.cn/cn/userguide/capabilities/vision import base64 import json from openai import OpenAI from PIL import Image import io# 初始化OpenAI客户端 client OpenAI(api_key"sk-**********", # 替换为实际API密钥b…...

下载并运行自制RAG框架

项目部署 https://github.com/huangjia2019/rag-project01-framework git clone https://github.com/huangjia2019/rag-project01-framework.git 一 、 前端分部分部署 在 Ubuntu 系统 上安装 Node.js 和 npm(Node Package Manager),并初始…...

Rust 学习笔记:Cargo 工作区

Rust 学习笔记:Cargo 工作区 Rust 学习笔记:Cargo 工作区创建工作区在工作区中创建第二个包依赖于工作区中的外部包向工作区添加测试将工作区中的 crate 发布到 crates.io添加 add_two crate 到工作区总结 Rust 学习笔记:Cargo 工作区 随着项…...

颈部的 “异常坚持”

生活中,有些人的颈部会突然变得 “异常坚持”—— 头部不受控制地偏向一侧,或是不自主地旋转、后仰,仿佛被无形的力量牵引着。这种情况不仅影响外观,还会带来强烈的不适感,颈部肌肉紧绷、酸痛,像被一根绳索…...

Ubuntu22.04安装MinkowskiEngine

MinkowskiEngine简介 Minkowski引擎是一个用于稀疏张量的自动微分库。它支持所有标准神经网络层,例如对稀疏张量的卷积、池化和广播操作。 MinkowskiEngine安装 官方源码链接:GitHub - NVIDIA/MinkowskiEngine: Minkowski Engine is an auto-diff neu…...

【计算机网络】第2章:应用层—应用层协议原理

目录 1. 网络应用的体系结构 2. 客户-服务器(C/S)体系结构 3. 对等体(P2P)体系结构 4. C/S 和 P2P 体系结构的混合体 Napster 即时通信 5. 进程通信 6. 分布式进程通信需要解决的问题 7. 问题1:对进程进行编址…...

【Zephyr 系列 6】使用 Zephyr + BLE 打造蓝牙广播与连接系统(STEVAL-IDB011V1 实战)

🧠关键词:Zephyr、BLE、广播、连接、GATT、低功耗蓝牙、STEVAL-IDB011V1 📌适合人群:希望基于 Zephyr 实现 BLE 通信的嵌入式工程师、蓝牙产品开发人员 🧭 前言:为什么选择 Zephyr 开发 BLE? 在传统 BLE 开发中,我们大多依赖于厂商 SDK(如 Nordic SDK、BlueNRG SD…...

利用 Scrapy 构建高效网页爬虫:框架解析与实战流程

目录 前言1 Scrapy 框架概述1.1 Scrapy 的核心优势1.2 Scrapy 的典型应用场景 2 Scrapy 工作原理解析2.1 框架结构图2.2 Spider:定义数据采集策略2.3 Scheduler:调度请求与去重2.4 Downloader:网页下载器2.5 Item:结构化数据容器2…...

RPG20.创建敌人的初始能力和加载武器

1. 基于StartUpAbilitiy基类创建专门用于敌人数据的DAStartUpABility,然后再基于新创建的DA再创建一个蓝图 2.打开 DataAsset_EnemyStartUpData.h // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "Cor…...