
The CAPTCHA problem
CAPTCHAs ask “are you human?” AI agents just say yes.
Checkbox and image puzzles were built to keep scripts out. Today an agent clicks the box, reads the grid, and passes in seconds, and the site still knows nothing about who sent it or what it may do.
Privacy · Terms
Select all squares with
traffic lights
agent.log
- $ agent run --task 'open support ticket'
- ▍
Same request, ELAH-protected
No puzzle to solve. ELAH asks for proof of delegated, scoped permission instead.
≈100%
of reCAPTCHA v2 image challenges solved by an off-the-shelf object-detection model in a 2024 study.
Plesner, Vontobel & Wattenhofer · ETH Zürich, “Breaking reCAPTCHAv2” (2024)
Faster
and more accurate than people: bots out-solved human participants on several common CAPTCHA types.
Searles et al. · UC Irvine, USENIX Security (2023)
Hired help
An AI model persuaded a human worker to solve a CAPTCHA for it during pre-release safety testing.
OpenAI · GPT-4 System Card (2023)
The product
CAPTCHA
- CCompletely
- AAutomated
- PPublic
- TTuring test to tell
- CComputers and
- HHumans
- AApart
A security check that verifies an AI agent has the user’s approval to perform a specific action—and that the request stays within the limits of that approval.
The name also sounds like “a pact”: an agreement defining what the agent is allowed to do.
The shift
The web needs an answer beyond “Are you human?”
Old web
- Is this a human?
- Keep bots out
- Session-based access
Agentic web
- Is this a known agent with valid delegated permission?
- Let legitimate agents into bounded workflows
- Short-lived, request-bound access
How ELAH works
A grant, a signature, then the platform decides.
ELAH sits where a protected action is about to run. Delegation, verification, and the platform’s own decision are the steps that carry the trust.
- 01
Discover
The protected platform declares how it accepts agent access and which scopes it supports.
- 02
Approve
The user or organization approves a narrow task in the platform's consent experience.
- 03
Delegate
A short-lived grant is created for the agent key, target site, tenant, permitted actions, and limits.
- 04
Sign
The agent signs each protected request and presents the grant.
- 05
Verify
ELAH checks signature, issuer, audience, expiry, nonce freshness, scope, resource constraints, action binding, and revocation.
- 06
Decide
The partner applies its own business policy: proceed, require fresh approval, limit, or reject.
- 07
Revoke
The principal or platform can withdraw future access. ELAH records the authorization and the attempted protected action.
Trust chain
- Principal
- Delegated grant
- Agent public key
- Protected site
- Permitted action
- Signed request
Every link matters. A grant for another site, tenant, agent key, action, or time window fails verification.
What the platform verifies
Bound to this agent, this principal, this action.
- 01
Agent identity
The request is signed by an identified agent public key.
- 02
Delegated principal
A person or organization stands behind the grant.
- 03
Site and tenant binding
The grant names this partner site and this tenant.
- 04
Action scope and limits
Permitted actions, resources, and optional count, value, or duration limits.
- 05
Freshness and replay protection
A short expiry and a nonce, so a captured request cannot be reused.
- 06
Revocation state
A withdrawn grant fails before the protected action runs.
Signed agent request
hover a check
POST /api/tickets HTTP/1.1Signature-Agent: support-agent.acme.exampleHost: portal.example.comContent-Digest: sha-256=:X48E9q…:Signature-Input: sig=("@method" "@path" "content-digest");created=1791200400;expires=1791200520;nonce="b3k2…"Signature: sig=:MEUCIQ…:Agent-Grant: grant_7f3a · status=activeprincipal org_acme / user_mayaaudience portal.example.comtenant acmeactions ticket.read, ticket.createresource customer.own · max 5expires 120s
The product boundary
ELAH verifies delegated, scoped access.
It does not claim to read an agent’s private reasoning or replace the platform’s own policy.
ELAH can prove
- ✓This request was signed by a known agent key
- ✓A principal delegated this action to that agent
- ✓The grant names this site, tenant, and scope
- ✓The request is fresh and has not been replayed
- ✓The grant has not been revoked
ELAH does not claim to
- –Read an agent’s private reasoning
- –Replace the platform’s own policy or IAM
- –Execute the protected action for you
- –Act as a global registry of every agent
Make agent access verifiable before the protected action runs.
Start with one narrow workflow. Keep the platform in control.
Talk to ELAH