惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
SecWiki News
SecWiki News
爱范儿
爱范儿
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Apple Machine Learning Research
Apple Machine Learning Research
Vercel News
Vercel News
S
SegmentFault 最新的问题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
GbyAI
GbyAI
V
V2EX
博客园 - 司徒正美
WordPress大学
WordPress大学
Y
Y Combinator Blog
B
Blog RSS Feed
H
Help Net Security
C
Check Point Blog
P
Proofpoint News Feed
Google DeepMind News
Google DeepMind News
Application and Cybersecurity Blog
Application and Cybersecurity Blog
B
Blog
Help Net Security
Help Net Security
罗磊的独立博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Heimdal Security Blog
大猫的无限游戏
大猫的无限游戏
Security Latest
Security Latest
Cisco Talos Blog
Cisco Talos Blog
Blog — PlanetScale
Blog — PlanetScale
A
Arctic Wolf
T
The Blog of Author Tim Ferriss
P
Proofpoint News Feed
The Register - Security
The Register - Security
F
Fortinet All Blogs
S
Securelist
Microsoft Security Blog
Microsoft Security Blog
O
OpenAI News
P
Privacy & Cybersecurity Law Blog
C
Cybersecurity and Infrastructure Security Agency CISA
The GitHub Blog
The GitHub Blog
云风的 BLOG
云风的 BLOG
AWS News Blog
AWS News Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
InfoQ
T
Threat Research - Cisco Blogs
Martin Fowler
Martin Fowler
D
Docker
C
Cisco Blogs
C
CERT Recently Published Vulnerability Notes
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
Why CAPTCHA and Traditional Verification Methods Are Failing
James Smith · 2026-04-22 · via DEV Community

Our defenses against automated threats that we have constructed to ensure that human-facing systems do not receive them are being systematically bypassed, not by some exotic exploit, but with the same machine learning technology with which we create products. This is the way the failure occurred and the next step.
In 2023, a security researcher at a large university released a paper showing that a fine-tuned vision transformer model, when tasked with the reCAPTCHA v2 image challenges, could solve them with more than 96% accuracy, more than the median human-solving time, and with an error rate that was many times lower. The model was trained on a set of labeled CAPTCHA challenges that were collected with a mix of human and automated scraping over six weeks.
No one was surprised by the publication of the paper as long as one was paying attention. The fraud prevention fraternity had been witnessing operationally years before it was actually confirmed: CAPTCHA as a gating measure against automated threats had already proved in practice to be a failure. The study officially recorded the failure.
It is much more than an academic interest. CAPTCHA and its verification siblings, email confirmation loops, SMS OTP, knowledge-based authentication, and IP rate limiting are the foundation of the work of most web applications to differentiate legitimate users and automated abuse. The results of those mechanisms becoming corrupted directly spill over into exposure to fraud, account takeover rates, and the resiliency of scam prevention infrastructure at all levels of the stack.

A Short Taxonomy of Our Notions of Traditional Verification.

It is well worth being specific to the category before considering the failure modes. The traditional techniques of verification have a similar common architectural assumption: that there is some challenge that cannot be reliably solved by automated systems but can be solved by humans, and that success on the challenge is evidence of human presence or of honest intent. This has been increasingly disproved in all the large-scale implementations.
The main approaches in active deployment and their present-day adversarial situation:
Image-based CAPTCHA (reCAPTCHA v2, hCAPTCHA): This type of CAPTCHA involves identifying objects in image grids. Mechanisms of defeat such as fine-tuning vision models (96%+ accuracy on standard tasks) or third-party CAPTCHA solving services with human worker pools (with pools priced at $0.50-2.00 per thousand completions) or adversarial example generation that takes advantage of the same neural network vulnerability that the CAPTCHA systems themselves are using.
CAPTCHA behavioral (reCAPTCHA v3, Invisible CAPTCHA): Interacts behaviorally without showing a visible challenge. Trained browser automation to simulate human mouse motion and timing; headless browser environments with humanization add-ons; and residential proxy networks that direct automated traffic by real consumer IP addresses with clean behavioral histories are all examples of defeat mechanisms.
SMS OTP (One-Time Password): A time-limited number is received and entered into a phone number. Defeat Countermeasures: Defeat mechanisms are SIM swapping attacks, SS7 protocol interception to relay OTP, OTP relay proxy tools (EvilGinx, Modlishka) that scale to receive numbers on the fly, and virtual number farms that defect to receive numbers at scale.
Email verification loops: Need to press a confirmation link that has been emailed to an email address that has been provided. Mechanisms used in defeats consist of programmatic inbox access via disposable email services, automated link extraction of email material, and catchall domain settings that receive mail to any address at a controlled domain.
Knowledge-based authentication (KBA): Asks you to answer questions based on your personal history mother's maiden name, first pet, street where you lived as a child. The defeat mechanisms are data aggregation by brokers, social media OSINT, and the massive supply of personal information by credential breach datasets of responses to typical KBA questions.

CAPTCHA Arms Race: How Every Generation Was Broken.

CAPTCHA history of failure is more or less a condensed version of the larger AI ability development. Each generation of CAPTCHA was built around a model implicitly (though not explicitly) of what machines were incapable of doing and each new generation of machine learning bridged the gap between what machines could and could not do.
First-generation text CAPTCHA was based on the fact that optical character recognition systems were computationally infeasible to distort character recognition. By 2012, deep convolutional networks were able to solve them to a higher accuracy than humans could. In 2014, the research team at Google created a paper that showed that their Street View text reading system, a neural network trained to do something completely unrelated, was able to solve reCAPTCHA text tasks with a 99.8% success rate as a side effect of the initial training.
The switch to image classification problems "find all images with traffic lights" gave time to switch to semantic understanding problems that demanded knowledge of the world and not pattern matching. This obstacle took about three years before it was economically insignificant to overcome large-scale image classification models that were trained on ImageNet and its descendants.
Invisible behavioral approach - reCAPTCHA v3 was a more radical change of architecture, shifting the challenge-response to continuous behavioral scoring. The unspoken rule was that the aggregate behavioral patterns were too complicated to be automated. This assumption was systematically falsified by browser automation frameworks by humanizing the layers with realistic mouse paths, click timing distributions, scroll actions, and session hang patterns. The toolkit of legitimate browser testing was now used to evade behavioral CAPTCHA.

The Human Farm Problem: Outsourcing defeat.

Machine learning is not the most technically complete defeat mechanism of CAPTCHA the gig economy is. CAPTCHA-solving services run a network of human labor in low-wage economies, who are provided on demand to solve challenges via a simple API. The attacking application will face a CAPTCHA, send out the challenge image to the solving service API, and get back the correct answer in one to fifteen seconds and submit it. The human has solved it so well. No machine learning is used, and there is no automatic pattern to identify.
This model of defeat with outsourced challenge response is interesting to study because it, in fact, shows the underlying issue with challenge-response verification: only in cases where it is economically infeasible to outsource solving the challenge to humans can one differentiate between machines and humans. At present, labor arbitrage rates of solving CAPTCHA (which is typically less than a dollar per thousand completions) are not the case with any fraud operation that yields greater than a trivial amount of revenue per account creation.
The connotation is architecturally important. Any verification mechanism whose cost to defeat is less than the value that it protects will be defeated at scale. CAPTCHA is not failing economically as an implementation failure, but as a result of the premise that the cognitive microtask labor market had become unsustainable as the global labor market through APIs became available.

What Breaks When There is a failure of verification.

The failure of verification has downstream consequences that are not abstract. With the mechanisms that control account creation, form submission, and authentication defeated, the automation at scale-based fraud operations can be performed in settings where they were not possible before.
Operationally most important failure modes:
Mass account creation: Review manipulation, social proof creation, and platform reputation attacks all require that it is possible to create a large number of accounts automatically. In case account creation verification fails, the review systems and social proof indicators of legitimate scam detection tools, in part, are compromised at the origin.
Credential stuffing at points of login: Automated logins with lists of breached credentials rely on having the capability to make authentication requests faster than rate limits permit and without causing verification gates. Lost CAPTCHA implies that the credential stuffing will be as slow as the network bandwidth of the attacker and not the interaction with the human being.
Submission of fraudulent contact form: The phishing campaign infrastructure relies on automated submission of forms to harvest and generate leads to commit downstream fraud. Lossy form verification: The pipeline used to collect the form does not frictionally interact.
Scam site infrastructure registration, scam site registration. Scam site schemes: Domain registrar and hosting infrastructure verification schemes are the final defense against industrialized scam sites' deployment. Once those verification checkpoints are compromised, the cost and friction of setting up a fraudulent infrastructure become the marginal cost of the domain registration and hosting charges.

What Fails And Is Replaced by What?

Replacement of the failure of CAPTCHA is not an improved CAPTCHA. It is an acknowledgment that point-in-time challenge-response verification is an incorrect model of a threat environment where the challenge is always solvable in due course. The new architecture is based on a long-term history of contextual risk scoring, behavioral cues, and network intelligence and replaces gating, which is based on what you can do this moment, with continuous assessment.
The classes of signals that are discriminative in the post-CAPTCHA verification architecture:
Consistency of device and browser fingerprint: The complete environment signature of a client canvas rendering behavior, font list, WebGL rendering behavior, audio context fingerprint, and installed set of plugins is costly to randomize believably at scale. Session-to-session consistency in fingerprints is correlated with real ownership of an account, whereas challenge-response cannot measure that.
Network reputation and residential IP verification: ASN-level reputation scoring, datacenter IP range identification, as well as residential proxy detection based on latency pattern analysis and consistency checks of IP geolocation give network-layer indicators that cannot be spoofed by behavioral mimicry without operational cost that increases with the scale of attacks.
Account relationship analysis based on graphs: Coordinated inauthentic behavior can be detected by inferring shared infrastructure signals, such as the same device fingerprint on multiple accounts, correlated registration times, shared payment instruments, and overlapping session behavior, which can be gleaned with automated account networks even when the individual accounts pass point-in-time checks.
Community-verified threat intelligence: Threat intelligence layer Threat intelligence platforms that consolidate human-reported scam cases such as infrastructure information, attack patterns, and domain associations recorded by actual victims cannot be generated by automated verification. When a network of fake accounts starts attacking a platform, community intelligence provided by aggregators such as Scam Alerts identifies the pattern of the campaign in near-real time before the automated detection stack has been able to accumulate enough behavioral information to warn on its own. The verification layer is unable to catch more and more, and that is what the human reporting layer captures.

The Design Lesson That Is While Being Relearned.

Each new generation of verification technology has had the same curve: it is deployed on the capability difference between humans and machines, it is adversarial attacked to reduce the capability difference, it is defeated in operation, and it is eventually replaced. CAPTCHA of text, of image, of behavioral scoring, and SMS OTP each of them was subjected to this cycle. The cycle is not an exception. It is the logical result of using a fixed defense against an enemy with a dynamically evolving defense.
It is not a lesson in design that more difficult challenges must be constructed, though this is also being done and has a fringe value. That challenge-response verification is not the most important trust signal to any system in which the cost of overcoming the challenge is less than the value that the challenge safeguards. That has been fulfilled in most contexts pertaining to fraud. The major signal of trust has to be provided by some other source.
The architecture that does not have the same vulnerability as CAPTCHA does is multi-signal behavioral assessment, device consistency tracking, network reputation scoring, graph-based coordination detection, and community threat intelligence, aggregated via platforms such as Scam Alerts. None of them relies on a supposition of the inability of machines to do so. They rely on the expense and difficulty of multi-channel simultaneous counterfeiting in many independent channels of signal that escalates adversarial effort in a manner never possible to point-in-time challenge-response.
CAPTCHA is not being phased out due to it being a bad idea. It is retiring due to the fact that the loophole that it had been created to take advantage of no longer exists.