Web Bot Auth: authenticatie voor AI-bots
Waarom AI-bots authenticatie nodig hebben
Het huidige web draait op een eenvoudig model: bots identificeren zich via een User-Agent string in hun HTTP-verzoek. GPTBot stuurt "GPTBot/1.0" mee, ClaudeBot meldt zich als "ClaudeBot/1.0" en PerplexityBot doet hetzelfde. Het probleem is dat deze identificatie triviaal te vervalsen is. Elke ontwikkelaar kan een script schrijven dat zich voordoet als GPTBot, waardoor website-eigenaren niet kunnen verifiëren of een verzoek daadwerkelijk van OpenAI afkomstig is.
Dit gebrek aan betrouwbare identificatie creëert een patstelling. Websites willen AI-bots toegang geven tot hun content, maar alleen aan bots die ze vertrouwen en onder voorwaarden die ze zelf bepalen. Zonder authenticatie is dat onmogelijk. Het is vergelijkbaar met het verschil tussen robots.txt als verzoek en een echte toegangscontrole: robots.txt vraagt beleefd, maar kan niets afdwingen. Web Bot Auth biedt die afdwingbare laag.
Web Bot Auth, een voorstel dat in 2025 is geïntroduceerd door een consortium van technologiebedrijven en standaardisatieorganisaties, pakt dit probleem aan door een cryptografisch verificatieprotocol te definiëren. Bots bewijzen hun identiteit niet met een simpele string, maar met een digitale handtekening die website-eigenaren kunnen verifiëren tegen een publieke sleutel.
Web Bot Auth vervangt robots.txt niet. Het is een aanvullende laag die boven op bestaande crawl-instructies werkt. Robots.txt bepaalt wat een bot mag doen; Web Bot Auth verifieert wie de bot werkelijk is.
Hoe Web Bot Auth technisch werkt
Het protocol is gebaseerd op een challenge-response mechanisme dat vergelijkbaar is met hoe HTTPS-certificaten werken, maar dan toegespitst op bot-authenticatie. Het proces verloopt in vier stappen.
- De bot stuurt een HTTP-verzoek naar de website en geeft in een speciale header aan dat hij Web Bot Auth ondersteunt.
- De server antwoordt met een challenge: een willekeurig gegenereerde nonce (eenmalig getal) die de bot moet ondertekenen.
- De bot ondertekent de nonce met zijn privésleutel en stuurt de handtekening terug in een vervolgverzoek.
- De server verifieert de handtekening tegen de publieke sleutel van de bot (gepubliceerd op een well-known URI van de bot-operator) en verleent of weigert toegang.
# Stap 1: Bot stuurt initieel verzoek\nGET /api/content HTTP/1.1\nHost: example.nl\nUser-Agent: GPTBot/1.0\nBot-Auth-Support: WBA/1.0\n\n# Stap 2: Server antwoordt met challenge\nHTTP/1.1 401 Unauthorized\nWWW-Authenticate: BotAuth realm="example.nl",\n nonce="a8f3b2c1d4e5f6789",\n algorithm="ed25519"\n\n# Stap 3: Bot stuurt ondertekend verzoek\nGET /api/content HTTP/1.1\nHost: example.nl\nUser-Agent: GPTBot/1.0\nAuthorization: BotAuth\n operator="openai.com",\n nonce="a8f3b2c1d4e5f6789",\n signature="base64-encoded-signature"\n\n# Stap 4: Server verifieert tegen publieke sleutel\n# Opgehaald van: https://openai.com/.well-known/bot-auth-keys.json\nHTTP/1.1 200 OK\nContent-Type: text/htmlDe publieke sleutels worden gepubliceerd op een gestandaardiseerd pad bij de bot-operator. Voor OpenAI zou dit bijvoorbeeld `https://openai.com/.well-known/bot-auth-keys.json` zijn. Dit bestand bevat de huidige en eventueel geroteerde sleutels, vergelijkbaar met hoe JWKS (JSON Web Key Sets) werken voor OAuth.
Het verschil met bestaande bot-verificatie
Er bestaan al enkele methoden om bots te verifiëren, maar elk heeft beperkingen die Web Bot Auth oplost.
De meest gebruikte methode is IP-verificatie: controleren of het verzoek afkomstig is van een IP-adres dat toebehoort aan de bot-operator. Google publiceert bijvoorbeeld een lijst met IP-ranges voor Googlebot. Maar IP-verificatie schaalt slecht. Bot-operators gebruiken steeds vaker gedistribueerde infrastructuur en CDN's, waardoor IP-lijsten constant veranderen. Bovendien biedt IP-verificatie geen granulaire controle: je kunt niet onderscheiden tussen verschillende bots van dezelfde operator. Web Bot Auth lost dit op met cryptografische identiteiten die onafhankelijk zijn van netwerktopologie, vergelijkbaar met hoe OAuth discovery werkt voor gebruikersauthenticatie bij AI-agents.
- IP-verificatie: werkt maar schaalt slecht, geen granulaire controle, IP-lijsten veranderen constant.
- User-Agent string: triviaal te vervalsen, geen enkele cryptografische garantie.
- robots.txt: alleen een verzoek, geen afdwinging. Bots kunnen het negeren.
- Web Bot Auth: cryptografisch bewijs van identiteit, schaalbaar, granulaire controle per bot mogelijk.
Web Bot Auth implementeren op je website
De implementatie aan de serverkant is relatief eenvoudig, zeker als je een modern framework zoals Laravel gebruikt. Je hebt drie componenten nodig: middleware die de challenge-response afhandelt, een configuratiebestand met vertrouwde bot-operators en een cachinglayer voor publieke sleutels.
# Voorbeeld: Nginx configuratie voor Web Bot Auth\n# Voeg toe aan je server block\n\nlocation / {\n # Stuur bot-verzoeken door naar authenticatie-middleware\n if ($http_bot_auth_support) {\n set $bot_auth_required "true";\n }\n\n # Laravel handelt de authenticatie af\n try_files $uri $uri/ /index.php?$query_string;\n}\n\n# Voorbeeld: Laravel middleware (vereenvoudigd)\n# app/Http/Middleware/VerifyBotAuth.php\n\npublic function handle(Request $request, Closure $next)\n{\n if (! $request->hasHeader('Bot-Auth-Support')) {\n return $next($request);\n }\n\n if (! $request->hasHeader('Authorization')) {\n return response()->json(['error' => 'Bot auth required'], 401)\n ->header('WWW-Authenticate', $this->buildChallenge());\n }\n\n $operator = $this->parseOperator($request);\n $publicKey = $this->fetchPublicKey($operator);\n\n if (! $this->verifySignature($request, $publicKey)) {\n return response()->json(['error' => 'Invalid signature'], 403);\n }\n\n return $next($request);\n}Het is verstandig om Web Bot Auth te combineren met je bestaande security headers. De authenticatielaag beschermt tegen ongeautoriseerde bots, terwijl je security headers de algehele betrouwbaarheid van je site versterken. Samen vormen ze een robuust verdedigingsmodel dat AI-crawlers vertrouwen geeft en je content beschermt tegen misbruik.
Voordelen voor je AI-strategie
Web Bot Auth opent mogelijkheden die zonder authenticatie simpelweg niet bestaan. Wanneer je kunt verifiëren welke bot je content opvraagt, kun je gedifferentieerde toegang bieden.
- Geef geverifieerde AI-bots toegang tot premium content die je achter een crawl-barrier houdt voor anonieme scrapers.
- Bied verschillende contentformaten aan: volledig gestructureerde data voor geverifieerde bots, reguliere HTML voor browsers.
- Implementeer rate-limiting per geverifieerde bot in plaats van per IP-adres, wat eerlijker en effectiever is.
- Monitor exact welke AI-modellen je content ophalen en hoe vaak, met cryptografische zekerheid over de identiteit.
- Stel voorwaarden op per bot-operator: OpenAI mag trainen op je content, een andere partij alleen citeren.
Begin met een permissieve instelling: verifieer bots die Web Bot Auth ondersteunen, maar weiger niet-geverifieerde bots niet automatisch. Zo profiteer je van de verbeterde monitoring zonder bestaande crawling te verstoren.
De relatie met TDM en contentlicenties
Web Bot Auth wordt extra krachtig in combinatie met TDM-headers (Text and Data Mining). Waar TDM-headers aangeven onder welke voorwaarden je content mag worden gebruikt, zorgt Web Bot Auth ervoor dat je kunt verifiëren wie die content daadwerkelijk ophaalt. Zonder authenticatie zijn TDM-voorwaarden niet afdwingbaar, want je weet niet met zekerheid wie er aan de deur klopt. Met Web Bot Auth kun je een contractuele keten opzetten: de bot identificeert zich, jij levert de TDM-voorwaarden en de bot-operator gaat akkoord door het ophalen van de content. Dit sluit aan bij de bredere ontwikkeling rondom llms.txt en gestandaardiseerde AI-communicatie.
Deze combinatie is bijzonder relevant voor uitgevers, mediabedrijven en organisaties met waardevolle content. Je kunt je content beschikbaar maken voor AI-modellen die je vertrouwt, onder voorwaarden die je zelf bepaalt, terwijl je onbekende of onbetrouwbare bots buiten de deur houdt.
In een wereld waarin AI-bots de belangrijkste lezers van je content worden, is de vraag niet of je authenticatie nodig hebt, maar wanneer je het implementeert.
Verdiep je verder: OAuth discovery voor AI-agents | Robots.txt voor AI-crawlers | Security headers voor AI-vertrouwen
Samenvatting
- Web Bot Auth is een cryptografisch protocol waarmee AI-bots hun identiteit bewijzen aan websites via een challenge-response mechanisme.
- Het protocol lost het fundamentele probleem op dat User-Agent strings triviaal te vervalsen zijn en IP-verificatie slecht schaalt.
- Implementatie vereist server-side middleware die challenges uitdeelt, handtekeningen verifieert en publieke sleutels cachet.
- De combinatie met TDM-headers maakt afdwingbare contentlicenties mogelijk: je weet wie je content ophaalt en onder welke voorwaarden.
- Begin met een permissieve instelling om monitoring te verbeteren zonder bestaande crawling te verstoren.
Veelgestelde vragen
Ondersteunen de grote AI-bots Web Bot Auth al?
Het protocol bevindt zich in een vroege adoptiefase. Google heeft aangegeven Web Bot Auth te willen ondersteunen voor Googlebot en de Gemini-crawler. OpenAI en Anthropic participeren in de werkgroep maar hebben nog geen volledige implementatie uitgerold. De verwachting is dat de grote spelers in de loop van 2026 en 2027 ondersteuning toevoegen. Door nu al de server-side infrastructuur op te zetten, ben je voorbereid zodra de bots het protocol activeren.
Vertraagt Web Bot Auth het crawlen van mijn website?
De challenge-response voegt een extra round-trip toe aan het eerste verzoek van een bot-sessie. In de praktijk kost dit 50 tot 200 milliseconden extra, afhankelijk van de netwerklatentie. Na de initiële authenticatie kan de server een sessietoken uitdelen dat vervolgverzoeken versnelt. Het netto-effect op crawlsnelheid is verwaarloosbaar, vooral omdat de meeste AI-bots al beperkte crawlfrequenties hanteren.
Wat als een bot Web Bot Auth niet ondersteunt?
Je bepaalt zelf hoe je omgaat met niet-geverifieerde bots. De aanbevolen aanpak is een fallback naar het huidige model: controleer de User-Agent string en optioneel het IP-adres. Je kunt niet-geverifieerde bots volledige toegang geven, beperkte toegang bieden of blokkeren. Het protocol is ontworpen als opt-in verbetering, niet als verplichte toegangspoort.
Kan ik Web Bot Auth combineren met een paywall of ledengebied?
Ja, en dat is een van de krachtigste toepassingen. Je kunt geverifieerde AI-bots toegang geven tot content achter een paywall, zodat je artikelen geciteerd kunnen worden in AI-antwoorden terwijl menselijke bezoekers een abonnement nodig hebben. Dit model wordt "metered AI access" genoemd en biedt uitgevers een manier om AI-zichtbaarheid te behouden zonder hun verdienmodel op te geven.
Hoe verhoudt Web Bot Auth zich tot robots.txt?
Web Bot Auth en robots.txt vullen elkaar aan. Robots.txt is een instructiebestand dat aangeeft welke paden een bot wel of niet mag bezoeken. Web Bot Auth is een authenticatieprotocol dat verifieert wie de bot is. Je kunt robots.txt gebruiken om globale crawl-regels te definiëren en Web Bot Auth om per geverifieerde bot uitzonderingen toe te staan. Zo kun je bijvoorbeeld in robots.txt een pad blokkeren voor alle bots, maar via Web Bot Auth geverifieerde bots van OpenAI toch toegang verlenen.
Web Bot Auth brengt het vertrouwensmodel van het web naar een nieuw niveau. Niet langer "vertrouw op goed gedrag" maar "verifieer en verleen toegang op basis van bewijs."
Hoe scoort jouw website op AI-gereedheid?
Krijg binnen 30 seconden je AEO-score en ontdek wat je kunt verbeteren.