Featured
-
Going Stateless Was the Right Call for MCP, but with a Cost
• 14 min readMCP is now stateless. Here's why that's the right call, what actually replaces the old session handshake, and why state didn't disappear
-
Why We Only Catch "Rogue" AI Agents by Accident
• 14 min readThree frontier labs disclosed that their AI agents breached real companies. None were caught in real time. The problem is not model behavior—it is that the agent is using your identity.
-
Browser-Based Agents Are Impersonating You: The Agent Identity Problem
• 23 min readBrowser-based agents inherit your session, your cookies, and your identity, with no distinction visible to the service provider. Here's why that's a problem we've already solved once, and what needs to happen next.
-
Is the OAuth 2.0 Authorization Code Grant Secure Enough?
• 10 min readSeven real weaknesses in the OAuth 2.0 authorization code grant, from code interception to mix-up attacks, and the specs (PKCE, PAR, JAR, JARM) that fix them.
Recent Posts
-
Unwrapping MCP Security: A Walkthrough with the PayPal MCP Server
• 12 min readA walkthrough of connecting Claude Desktop to PayPal’s remote MCP server over HTTP, highlighting the full OAuth 2.0 flow with Postman from discovery to authorization
-
Unwrapping MCP: A Walkthrough with the GitHub MCP Server
• 11 min readMCP explained from the inside out, starting with a real developer workflow then unwrapping the protocol layer by layer: roles, messages, connection lifecycle, and STDIO transport.
-
Protected Resource Metadata Is the Missing Piece in OAuth 2.0 Discovery
• 9 min readOAuth 2.0 could automate client registration and AS discovery, but clients still had to hardcode which authorization server protects a given resource. Protected Resource Metadata fixes that. Here's how PRM completes the dynamic integration story, and why AI agents made it urgent.
-
Certificate-Bound Access Tokens: How mTLS Makes Stolen Tokens Useless
• 9 min readBearer tokens are usable by anyone who possesses them. Certificate-bound tokens, defined in RFC 8705, bind the access token to the client certificate used in the mTLS handshake, so even if a token is intercepted, it's cryptographically worthless without the matching certificate.