<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged automated</title>
<link>https://coderlegion.com/tag/automated</link>
<description>Powered by Question2Answer</description>
<item>
<title>Changelog #8: Quota accuracy and deeper lead analyses</title>
<link>https://coderlegion.com/18007/changelog-8-quota-accuracy-and-deeper-lead-analyses</link>
<description>&lt;p&gt;Late April was mostly about counting tests the way your charts already do, giving sysadmin leads a denser board and a proper read-only analysis page, and wiring related tags so thin blog archives still send readers somewhere useful. We also lined up marketing anchors and small UI fixes so the path from a &lt;a rel=&quot;nofollow&quot; href=&quot;https://apogeewatcher.com/features&quot;&gt;feature page&lt;/a&gt; into signup or the waitlist behaves the same everywhere.&lt;/p&gt;&lt;h2&gt;Monthly quota now follows scored PageSpeed runs&lt;/h2&gt;&lt;p&gt;Your plan limit is PageSpeed tests per month. We only decrement the allowance when a run finishes with a Lighthouse performance score (the 0–100 headline number you see on site tests). HTTP failures, timeouts, or responses with no score no longer eat quota. That matches how we store a site test as worth charting only when there is a score to plot.&lt;/p&gt;&lt;h3&gt;Customer dashboard numbers&lt;/h3&gt;&lt;p&gt;On normal customer accounts (not sysadmin), the API usage strip at the top of the dashboard still shows three figures: successful runs today, this calendar month (we abbreviate thousands as “2.4k”), and errors today. Successful uses the same scored rows as quota; errors groups failed attempts so you can tell whether the lab or the URL is flaking without guessing from gaps in history. The strip still links to the day-by-day API usage table. The same ideas are spelled out for prospects on the &lt;a rel=&quot;nofollow&quot; href=&quot;https://apogeewatcher.com/features/api-access-and-quota-visibility&quot;&gt;API access and quota visibility&lt;/a&gt; feature page.&lt;/p&gt;&lt;h3&gt;Pricing FAQ and product behaviour&lt;/h3&gt;&lt;p&gt;The &lt;a rel=&quot;nofollow&quot; href=&quot;https://apogeewatcher.com/pricing&quot;&gt;pricing&lt;/a&gt; page FAQ already described which runs count toward quota. Counters in the app now match that wording: success means a scored result you can act on, not a bare HTTP 200 with empty metrics.&lt;/p&gt;&lt;h3&gt;When a scheduled test has no performance score&lt;/h3&gt;&lt;p&gt;If automation gets a payload that cannot produce a score, we treat it as failed for quota and record an explicit failure instead of a row that looks healthy with no number. You spend less time hunting empty rows when PageSpeed Insights is intermittent or the URL blocks the lab.&lt;/p&gt;&lt;h2&gt;Leads board and full-page analysis&lt;/h2&gt;&lt;p&gt;The admin &lt;a rel=&quot;nofollow&quot; href=&quot;https://apogeewatcher.com/features/leads-management-and-prospecting&quot;&gt;leads management and prospecting&lt;/a&gt; area is still in development with a small beta group. It is where agencies will run prospecting against sites that are not yet on a customer organisation: discovery jobs, scheduled lab tests, and the public report link you might send before someone becomes a paying tenant. The marketing page describes the intended workflow; the April changes already change how you work the queue inside the app.&lt;/p&gt;&lt;h3&gt;Index table: scan before you open a lead&lt;/h3&gt;&lt;p&gt;The index now shows enough signal on the first screen that you can sort and skim without opening every lead. Extra columns are on by default:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Pages discovered tells you how much of the site the crawler actually mapped (see &lt;a rel=&quot;nofollow&quot; href=&quot;https://apogeewatcher.com/features/automated-page-discovery&quot;&gt;automated page discovery&lt;/a&gt; for how that fits the wider product). A low number next to a large marketing site is often the first hint that auth walls, aggressive bot blocking, or a shallow sitemap will skew later scores.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Completed tests and pending tests compare what we have already run on mobile and desktop with what discovery says we should expect. Pending stays visible when a device lane has not caught up yet, so you are not guessing from a single “last tested” date in the row title.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Report shows the date of the latest public report plus a link that opens in a new tab, so you can sanity-check the customer-facing page before you paste it into an email.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Mobile and desktop render the latest analysis performance score as colour-coded badges: green from 90, amber from 50, red below, and “N/A” when we never got a scored run for that device.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Platform or CMS and priority remain in the column manager. Turn them on when you need taxonomy or routing metadata; leave them off when you want a wide table that still wraps long headers instead of crushing column widths.&lt;/p&gt;&lt;h3&gt;Lead analysis: same report layout as monitored sites&lt;/h3&gt;&lt;p&gt;Choosing View on a lead analysis opens a full-page, read-only record headed with the lead name and the URL we tested. Layout and sections match what you already know from monitored site tests: status and device, timestamps, a full-page or viewport screenshot when the stored response includes image data, and the headline 0–100 performance score.&lt;/p&gt;&lt;p&gt;Under that you get the same lab detail we surface for production monitoring: core timings (LCP, INP, CLS, and the rest of the Lighthouse set), optional Chrome UX Report field data when Google returns it, then diagnostics and optimisation opportunities, passed audits, and resource summaries. Nothing on the page is editable on purpose. When you are reconciling a PDF or a prospect email against what the crawler saw, you want a frozen snapshot of our store, not a second editor that could drift from the run you quoted.&lt;/p&gt;&lt;p&gt;If you already rely on the monitored-site test view for client conversations (the same framing as on the &lt;a rel=&quot;nofollow&quot; href=&quot;https://apogeewatcher.com/features/core-web-vitals-monitoring&quot;&gt;Core Web Vitals monitoring&lt;/a&gt; page), you should not have to learn a parallel “lead-only” dialect. Same sections, same ordering, different object in the database.&lt;/p&gt;&lt;h2&gt;Blog archives and marketing pages&lt;/h2&gt;&lt;p&gt;Thin &lt;a rel=&quot;nofollow&quot; href=&quot;https://apogeewatcher.com/blog&quot;&gt;blog&lt;/a&gt; tag pages can show related posts at the bottom when a tag only lists a few articles, so you still have onward reading. Across the public site, we cleaned up internal sign-up links, so you are less likely to land in the wrong place when you move from a post or &lt;a rel=&quot;nofollow&quot; href=&quot;https://apogeewatcher.com/features&quot;&gt;feature page&lt;/a&gt; into the waitlist or account flow.&lt;/p&gt;&lt;h2&gt;What to do next&lt;/h2&gt;&lt;p&gt;If you are on a paid plan (&lt;a rel=&quot;nofollow&quot; href=&quot;https://apogeewatcher.com/pricing&quot;&gt;pricing&lt;/a&gt;), run your next batch of tests and watch the API usage strip: successful totals should move with the scores you see on site tests, and error spikes should show up the same day. If you work leads in admin, sort by pages discovered or completed tests before opening a single row. For the public overview of that workflow, see &lt;a rel=&quot;nofollow&quot; href=&quot;https://apogeewatcher.com/features/leads-management-and-prospecting&quot;&gt;leads management and prospecting&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The next changelog will cover the first half of May.&lt;/p&gt;
</description>
<category>Other</category>
<guid isPermaLink="true">https://coderlegion.com/18007/changelog-8-quota-accuracy-and-deeper-lead-analyses</guid>
<pubDate>Fri, 15 May 2026 21:29:05 +0000</pubDate>
</item>
<item>
<title>Passkeys vs Bots: Do They Really Solve the Human Verification Problem?</title>
<link>https://coderlegion.com/15285/passkeys-vs-bots-do-they-really-solve-the-human-verification-problem</link>
<description>
&lt;p&gt;Passkeys authenticate users securely, but they do not prove a user is human. Passkeys replace passwords with device-bound cryptographic authentication. They prevent phishing, credential theft, and password reuse attacks.&lt;/p&gt;
&lt;p&gt;However, passkeys only verify identity at login, not behavior after login. A bot can still operate inside a valid authenticated session. Automated browsers, scripts, and AI agents can interact with systems after authentication succeeds.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Passkeys solve authentication problems, not human verification problems.&lt;/strong&gt;&lt;br&gt;Human verification requires analyzing behavior, context, and request patterns.&lt;/p&gt;
&lt;p&gt;Modern security therefore separates two different questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Who logged in?&lt;/strong&gt; &amp;rarr; authentication&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Is this activity human?&lt;/strong&gt; &amp;rarr; bot detection&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Passkeys answer the first question extremely well. They do not answer the second question.&lt;/p&gt;
&lt;p&gt;That distinction is critical for modern applications facing automated attacks. Bots today perform actions such as scraping APIs, creating fake accounts, and automating purchases. Many of these actions happen after authentication, not before it.&lt;/p&gt;
&lt;p&gt;This means that even a system protected with passkeys can still experience bot abuse.&lt;/p&gt;
&lt;p&gt;To fully protect modern applications, security must combine multiple layers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Strong authentication (passkeys)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bot detection systems&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Behavioral analysis&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Runtime identity verification&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Understanding where passkeys help&amp;mdash;and where they do not&amp;mdash;is essential for building secure systems.&lt;/p&gt;
&lt;h2&gt;2. Quick TL;DR&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Passkeys replace passwords with device-bound authentication.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Passkeys prevent phishing and credential theft attacks.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Passkeys verify identity but do not verify human behavior.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bots can operate inside authenticated sessions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Authentication does not prove human intent.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CAPTCHA was originally designed to detect bots.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Modern bots can solve or bypass many CAPTCHA challenges.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bot detection relies on behavioral and device signals.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Passkeys improve authentication security but not bot detection.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Modern security requires authentication plus runtime verification.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3. The Core Question: Do Passkeys Prove You Are Human?&lt;/h2&gt;
&lt;p&gt;The short answer is &lt;strong&gt;no&lt;/strong&gt;. Passkeys prove that a user controls a device credential. They do not prove that the actor using that device is human.&lt;/p&gt;
&lt;p&gt;Passkeys verify identity ownership, not human intent.&lt;br&gt;Human verification and authentication are fundamentally different security goals.&lt;/p&gt;
&lt;p&gt;Many developers confuse these two concepts because both appear during login flows. However, they solve different problems in system security.&lt;/p&gt;
&lt;h3&gt;Authentication vs Human Verification&lt;/h3&gt;
&lt;p&gt;Authentication answers one specific question:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Who is the user?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Human verification answers a different question:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is this activity being performed by a human or a bot?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;These two goals require completely different technologies.&lt;/p&gt;
&lt;table class=&quot;border-collapse border border-muted&quot; style=&quot;min-width: 75px;&quot;&gt;&lt;colgroup&gt;&lt;col style=&quot;min-width: 25px;&quot;&gt;&lt;col style=&quot;min-width: 25px;&quot;&gt;&lt;col style=&quot;min-width: 25px;&quot;&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr class=&quot;border-b border-muted&quot;&gt;&lt;th class=&quot;border border-muted bg-muted px-2 py-1 text-left font-medium&quot; colspan=&quot;1&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;Security Goal&lt;/p&gt;&lt;/th&gt;&lt;th class=&quot;border border-muted bg-muted px-2 py-1 text-left font-medium&quot; colspan=&quot;1&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;Purpose&lt;/p&gt;&lt;/th&gt;&lt;th class=&quot;border border-muted bg-muted px-2 py-1 text-left font-medium&quot; colspan=&quot;1&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;Example Technology&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr class=&quot;border-b border-muted&quot;&gt;&lt;td class=&quot;border border-muted px-2 py-1&quot; colspan=&quot;1&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;Authentication&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;border border-muted px-2 py-1&quot; colspan=&quot;1&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;Verify user identity&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;border border-muted px-2 py-1&quot; colspan=&quot;1&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;Passwords, Passkeys, OAuth&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&quot;border-b border-muted&quot;&gt;&lt;td class=&quot;border border-muted px-2 py-1&quot; colspan=&quot;1&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;Authorization&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;border border-muted px-2 py-1&quot; colspan=&quot;1&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;Control resource access&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;border border-muted px-2 py-1&quot; colspan=&quot;1&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;RBAC, Access policies&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&quot;border-b border-muted&quot;&gt;&lt;td class=&quot;border border-muted px-2 py-1&quot; colspan=&quot;1&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;Human Verification&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;border border-muted px-2 py-1&quot; colspan=&quot;1&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;Detect automated behavior&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;border border-muted px-2 py-1&quot; colspan=&quot;1&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;CAPTCHA, Behavior analysis&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;Authentication confirms identity credentials.&lt;br&gt;Human verification analyzes interaction behavior.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Authentication proves identity.&lt;/strong&gt;&lt;br&gt;&lt;strong&gt;Human verification proves intent.&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Identity vs Intent&lt;/h3&gt;
&lt;p&gt;Passkeys solve the identity problem extremely well. They replace passwords with cryptographic authentication tied to a device.&lt;/p&gt;
&lt;p&gt;When a user signs in with a passkey:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The device proves ownership of a private key&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The server verifies the cryptographic signature&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The user is authenticated successfully&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At that moment, the system knows:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A valid credential was used.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;However, the system does not know:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Whether the interaction is automated&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Whether a bot controls the browser&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Whether an AI agent triggered the action&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Passkeys prove device ownership, not human presence.&lt;/p&gt;
&lt;h3&gt;Why This Distinction Matters&lt;/h3&gt;
&lt;p&gt;Modern bots rarely try to guess passwords anymore. Instead, they operate through automated browsers or scripts that interact with websites exactly like real users.&lt;/p&gt;
&lt;p&gt;Examples include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;automated account creation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ticket scalping bots&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ecommerce checkout bots&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;API scraping bots&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These bots can operate after authentication succeeds.&lt;/p&gt;
&lt;p&gt;Most automated abuse happens inside authenticated sessions.&lt;/p&gt;
&lt;p&gt;This means a system using passkeys can still experience bot-driven activity.&lt;/p&gt;
&lt;h3&gt;A Simple Example&lt;/h3&gt;
&lt;p&gt;Imagine a user logs into a website using a passkey.&lt;/p&gt;
&lt;p&gt;The authentication process is secure and successful.&lt;/p&gt;
&lt;p&gt;Now consider two scenarios:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;A real human navigates the site normally.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A bot script controls the browser and performs automated actions.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;From the authentication system's perspective, both sessions look valid.&lt;/p&gt;
&lt;p&gt;The passkey successfully verified identity in both cases.&lt;/p&gt;
&lt;p&gt;Authentication alone cannot distinguish humans from automated behavior.&lt;/p&gt;
&lt;h3&gt;The Key Insight&lt;/h3&gt;
&lt;p&gt;Passkeys are a major improvement for authentication security. They eliminate passwords and prevent many common attacks.&lt;/p&gt;
&lt;p&gt;However, they do not replace bot detection systems.&lt;/p&gt;
&lt;p&gt;Passkeys solve authentication.&lt;br&gt;Human verification requires additional security layers.&lt;/p&gt;
&lt;p&gt;Understanding this difference is essential for building secure modern applications.&lt;/p&gt;
&lt;h2&gt;4. What Problem Passkeys Actually Solve&lt;/h2&gt;
&lt;p&gt;Passkeys were designed to solve the weaknesses of password-based authentication. They replace passwords with device-bound cryptographic credentials that are resistant to phishing and credential theft.&lt;/p&gt;
&lt;p&gt;Passkeys solve authentication security problems, not bot detection problems.&lt;br&gt;They eliminate passwords while improving login success and security.&lt;/p&gt;
&lt;p&gt;Passkeys are based on the FIDO and WebAuthn standards. These standards use public-key cryptography instead of shared secrets like passwords.&lt;/p&gt;
&lt;p&gt;When a user registers a passkey:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The device generates a public-private key pair.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The private key stays securely on the user&amp;rsquo;s device.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The public key is stored on the server.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;During login, the server sends a challenge that the device signs with the private key. The server verifies the signature using the stored public key.&lt;/p&gt;
&lt;p&gt;The private key never leaves the user&amp;rsquo;s device.&lt;/p&gt;
&lt;h3&gt;Password Elimination&lt;/h3&gt;
&lt;p&gt;Passwords have been the weakest link in authentication for decades.&lt;/p&gt;
&lt;p&gt;Common password problems include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;password reuse across services&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;weak passwords chosen by users&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;password database breaches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;phishing attacks stealing credentials&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Microsoft reports that more than 99% of identity attacks involve passwords.&lt;/p&gt;
&lt;p&gt;Passkeys remove passwords entirely from the authentication process.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;No password means nothing for attackers to steal or guess.&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Phishing Resistance&lt;/h3&gt;
&lt;p&gt;Traditional phishing attacks trick users into entering credentials on fake websites.&lt;/p&gt;
&lt;p&gt;Passkeys prevent this because authentication is tied to the website&amp;rsquo;s domain.&lt;/p&gt;
&lt;p&gt;If a phishing site tries to trigger passkey authentication:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The browser detects the domain mismatch.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The passkey will not authenticate.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Passkeys are inherently phishing resistant.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This makes them far more secure than passwords, SMS OTPs, or many MFA systems.&lt;/p&gt;
&lt;h3&gt;Device-Bound Authentication&lt;/h3&gt;
&lt;p&gt;Passkeys are stored securely on the user&amp;rsquo;s device.&lt;/p&gt;
&lt;p&gt;They rely on hardware-backed security features such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;secure enclaves on smartphones&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;trusted platform modules (TPM) on computers&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;biometric authentication like Face ID or fingerprint&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The authentication process requires the user to unlock the device.&lt;/p&gt;
&lt;p&gt;This ensures the device owner is present during login.&lt;/p&gt;
&lt;p&gt;Passkeys combine device possession with biometric verification.&lt;/p&gt;
&lt;h3&gt;Improved User Experience&lt;/h3&gt;
&lt;p&gt;Passwords introduce friction during login.&lt;/p&gt;
&lt;p&gt;Users often forget passwords, reset them, or struggle with password policies.&lt;/p&gt;
&lt;p&gt;Passkeys simplify login significantly.&lt;/p&gt;
&lt;p&gt;Typical passkey login flow:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;User enters username or email.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Device prompts biometric verification.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Authentication completes instantly.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Microsoft reports that passwordless authentication achieves 95% login success rates, compared to much lower success rates for password logins.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Passkeys improve both security and usability.&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Protection Against Credential Theft&lt;/h3&gt;
&lt;p&gt;Credential stuffing attacks rely on leaked password databases.&lt;/p&gt;
&lt;p&gt;Attackers reuse stolen passwords across multiple services.&lt;/p&gt;
&lt;p&gt;Passkeys eliminate this attack vector because:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;There is no shared secret to reuse.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Each passkey is unique to a specific domain.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Even if one service is compromised, the passkey cannot be reused elsewhere.&lt;/p&gt;
&lt;p&gt;Passkeys eliminate credential reuse attacks entirely.&lt;/p&gt;
&lt;h2&gt;5. What Problem Passkeys Do NOT Solve&lt;/h2&gt;
&lt;p&gt;Passkeys dramatically improve authentication security. They prevent phishing, password theft, and credential reuse. However, they do not stop automated behavior or bots operating after login.&lt;/p&gt;
&lt;p&gt;Passkeys verify identity credentials, not user behavior.&lt;br&gt;Bots can still interact with systems after authentication succeeds.&lt;/p&gt;
&lt;p&gt;This distinction is important because most modern automated attacks no longer focus on breaking authentication. Instead, they target the application layer after login.&lt;/p&gt;
&lt;h3&gt;Passkeys Do Not Detect Automated Browsers&lt;/h3&gt;
&lt;p&gt;Modern bots often run inside automated browsers that behave like real users.&lt;/p&gt;
&lt;p&gt;These tools include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Selenium&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Puppeteer&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Playwright&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;headless Chrome&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These automated browsers can load web pages, click buttons, submit forms, and interact with applications exactly like a human user.&lt;/p&gt;
&lt;p&gt;Once authentication succeeds, the system sees only normal requests.&lt;/p&gt;
&lt;p&gt;Passkeys cannot distinguish between human actions and automated browser actions.&lt;/p&gt;
&lt;h3&gt;Passkeys Do Not Detect Scripted Sessions&lt;/h3&gt;
&lt;p&gt;Many automated attacks occur inside valid authenticated sessions.&lt;/p&gt;
&lt;p&gt;Examples include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;automated product purchases&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;fake account activity&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;automated social media posting&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;scraping user data&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These actions happen after authentication has already succeeded.&lt;/p&gt;
&lt;p&gt;From the server&amp;rsquo;s perspective, the requests are coming from a valid session.&lt;/p&gt;
&lt;p&gt;Passkeys do not evaluate how a session is being used.&lt;/p&gt;
&lt;h3&gt;Passkeys Do Not Detect API Automation&lt;/h3&gt;
&lt;p&gt;Modern applications rely heavily on APIs.&lt;/p&gt;
&lt;p&gt;Bots often interact directly with APIs instead of web interfaces.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;automated scraping tools&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;mobile app reverse engineering&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;automated account creation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;bulk data extraction&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If the API accepts valid tokens or session cookies, the requests may look legitimate.&lt;/p&gt;
&lt;p&gt;Passkeys secure login but do not analyze API behavior.&lt;/p&gt;
&lt;h3&gt;Passkeys Do Not Detect AI Agents&lt;/h3&gt;
&lt;p&gt;The rise of AI-driven automation introduces a new category of automated activity.&lt;/p&gt;
&lt;p&gt;AI agents can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;navigate websites&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;interact with forms&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;simulate user actions&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;trigger workflows automatically&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These agents may operate inside authenticated sessions.&lt;/p&gt;
&lt;p&gt;Because authentication was valid, the system cannot easily distinguish between human actions and automated actions.&lt;/p&gt;
&lt;p&gt;Passkeys authenticate the device, not the actor controlling it.&lt;/p&gt;
&lt;h3&gt;Passkeys Do Not Analyze Behavior&lt;/h3&gt;
&lt;p&gt;Human verification systems often rely on behavior signals.&lt;/p&gt;
&lt;p&gt;These signals may include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;mouse movement patterns&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;typing speed&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;navigation patterns&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;request timing&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Passkeys do not analyze these signals.&lt;/p&gt;
&lt;p&gt;They only verify the cryptographic credential during login.&lt;/p&gt;
&lt;p&gt;Passkeys do not evaluate behavioral patterns.&lt;/p&gt;
&lt;h3&gt;Passkeys Do Not Detect Intent&lt;/h3&gt;
&lt;p&gt;A valid login does not guarantee safe behavior.&lt;/p&gt;
&lt;p&gt;A user may log in successfully and then perform malicious actions.&lt;/p&gt;
&lt;p&gt;Examples include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;scraping competitor data&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;abusing APIs&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;automating high-volume transactions&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;launching spam campaigns&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Authentication confirms identity, but it does not validate intent.&lt;/p&gt;
&lt;p&gt;Intent can only be inferred through behavioral analysis.&lt;/p&gt;
&lt;h3&gt;The Key Insight&lt;/h3&gt;
&lt;p&gt;Passkeys solve one specific problem extremely well: secure authentication.&lt;/p&gt;
&lt;p&gt;They eliminate passwords and significantly reduce account takeover attacks.&lt;/p&gt;
&lt;p&gt;However, modern systems face additional challenges that occur after authentication.&lt;/p&gt;
&lt;p&gt;Bots, automated scripts, and AI agents often operate inside valid sessions.&lt;/p&gt;
&lt;p&gt;Passkeys secure the login event, not the entire user session.&lt;/p&gt;
&lt;p&gt;To detect automation, systems need additional mechanisms such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;bot detection systems&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;behavioral analysis&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;device fingerprinting&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;runtime identity evaluation&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Understanding these limitations is essential when designing modern security architectures.&lt;/p&gt;
&lt;p&gt;6. How Bot Detection Actually Works&lt;/p&gt;
&lt;p&gt;Bot detection systems are designed to distinguish automated traffic from human users. Unlike authentication systems, bot detection focuses on analyzing behavior, patterns, and environmental signals.&lt;/p&gt;
&lt;p&gt;Bot detection identifies automated behavior, not identity credentials.&lt;br&gt;Human verification depends on analyzing how a system is used.&lt;/p&gt;
&lt;p&gt;Modern bot detection systems combine multiple techniques to detect suspicious activity.&lt;/p&gt;
&lt;h3&gt;CAPTCHA Challenges&lt;/h3&gt;
&lt;p&gt;CAPTCHA systems were originally designed to separate humans from automated scripts. The name CAPTCHA stands for Completely Automated Public Turing test to tell Computers and Humans Apart.&lt;/p&gt;
&lt;p&gt;CAPTCHA systems challenge users with tasks that are assumed to be easy for humans but difficult for machines.&lt;/p&gt;
&lt;p&gt;Examples include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;selecting images with traffic lights&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;typing distorted characters&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;solving puzzles&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These tests attempt to ensure that the actor interacting with the system is human.&lt;/p&gt;
&lt;p&gt;CAPTCHA systems challenge interaction rather than identity.&lt;/p&gt;
&lt;h3&gt;Behavioral Analysis&lt;/h3&gt;
&lt;p&gt;Behavioral analysis examines how users interact with a website or application.&lt;/p&gt;
&lt;p&gt;Human users behave differently from automated scripts.&lt;/p&gt;
&lt;p&gt;Common behavioral signals include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;mouse movement patterns&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;typing speed and rhythm&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;navigation flow across pages&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;click timing and interaction speed&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bots often generate extremely regular patterns that differ from human behavior.&lt;/p&gt;
&lt;p&gt;Human behavior contains randomness that automated scripts struggle to replicate.&lt;/p&gt;
&lt;p&gt;Behavioral analysis systems monitor activity throughout the session to detect anomalies.&lt;/p&gt;
&lt;h3&gt;Device Fingerprinting&lt;/h3&gt;
&lt;p&gt;Device fingerprinting identifies unique characteristics of a device and browser environment.&lt;/p&gt;
&lt;p&gt;This technique collects signals such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;browser type and version&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;operating system&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;screen resolution&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;installed fonts and plugins&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These attributes can create a fingerprint that helps identify automated tools.&lt;/p&gt;
&lt;p&gt;Bots often use headless browsers or simplified environments that differ from real user devices.&lt;/p&gt;
&lt;p&gt;Device fingerprints help detect suspicious environments.&lt;/p&gt;
&lt;h3&gt;Rate Limiting&lt;/h3&gt;
&lt;p&gt;Rate limiting controls how frequently requests can be made to a system.&lt;/p&gt;
&lt;p&gt;Bots often send large volumes of requests in short periods of time.&lt;/p&gt;
&lt;p&gt;Rate limiting can prevent excessive traffic from automated sources.&lt;/p&gt;
&lt;p&gt;Examples include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;limiting login attempts&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;restricting API request frequency&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;blocking repeated requests from the same IP address&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Rate limiting reduces automated abuse by controlling request volume.&lt;/p&gt;
&lt;h3&gt;Network Reputation Analysis&lt;/h3&gt;
&lt;p&gt;Many bot detection systems analyze the reputation of IP addresses and networks.&lt;/p&gt;
&lt;p&gt;Signals may include:&amp;lt;/p&lt;/p&gt;
</description>
<category>Other</category>
<guid isPermaLink="true">https://coderlegion.com/15285/passkeys-vs-bots-do-they-really-solve-the-human-verification-problem</guid>
<pubDate>Sat, 25 Apr 2026 06:55:07 +0000</pubDate>
</item>
</channel>
</rss>