AIニュース最前線
最新ニュースAI日報Hacker日報週報動画AIツールトレンド企業

AIニュース最前線

世界中のAI最新情報を日本語で毎時更新

最新ニュース日報トレンド企業プレミアムRSS
© 2026 ainew.jp特定商取引法に基づく表記
ニュース一覧元記事を開く
Cloudflare Blog·2026年4月21日 22:00·約25分で読める

ボットと人間の対立を超えて

#Webセキュリティ#ボット管理技術#HTTPメッセージ署名#Cloudflare#行動分析
TL;DR

Cloudflareは、自動化ツールの普及により人間とボットの境界が曖昧になっている現状を踏まえ、セキュリティ対策は「人間かボットか」ではなく「意図と行動」に基づいて設計されるべきだと提言している。

AI深層分析2026年4月21日 22:41
4
重要/ 5段階
深度40%
4
関連度30%
4
実用性20%
4
革新性10%
3

キーポイント

1

人間とボットの境界の消失

アクセシビリティツール、自動化スクリプト、ゼロトラストプロキシの普及により、従来のブラウザ行動パターンが変化し、クライアントを「人間かボットか」で区別する基準が実効性を失っている。

2

セキュリティ設計のパラダイムシフト

攻撃トラフィックの有無やクローラの負荷対効果、広告詐欺の検知など、「意図と行動」に基づく評価が二分法に取って代わり、次世代の保護システムはこれを前提とする必要がある。

3

次世代Web保護技術の進化

既知クローラの認証(HTTPメッセージ署名)や、歴史的なブラウザ行動を踏襲しない新しいクライアントに対応するプライベートレート制限などの技術的進化が、クローラ管理と不正防止の両立を実現する。

4

要点タイトル

1-2文の説明

5

Bot管理の二面性

クライアント信号に基づくボット管理は防御に寄与する一方、フィンガープリント化により追跡ツールへと転用されるリスクを孕んでいる。

6

本質は「人間かボットか」ではない

サーバーが重視するのは抽象的な人間性ではなく、クライアントの振る舞い、レンダリング能力、およびサイトがサポートできるかどうかである。

7

レート制限のトリレンマ

インターネットのアクセス管理には根本的な緊張関係があり、分散化・匿名性・説明責任の3つの要素から2つしか同時に実現できない。

影響分析・編集コメントを表示

影響分析

本記事は、生成AIや自動化ツールの普及によりウェブトラフィックの性質が根本から変化していることを指摘し、セキュリティインフラの設計思想を「二分法」から「行動分析」へ転換する必要性を示している。これにより、開発者は既存のCAPTCHAやUAベースのフィルタリングに依存するのではなく、HTTP署名やコンテキスト認識型レート制限などの次世代技術への移行を迫られる。業界全体として、自動化と人間の境界を前提としたセキュリティ標準のアップデートが加速するだろう。

編集コメント

従来のIPやUser-Agentベースのフィルタリングはもはや限界に達しており、今後はHTTP署名や行動コンテキストを統合した認証基盤が標準化するだろう。開発者は「自動化の悪用」ではなく「自動化の正当な用途」をどう制御するかに注力すべきだ。

私たちがオンライン世界とやり取りするためには、何らかのゲートウェイが必要です。キーボード、画面、ブラウザ、デバイスなどです。オンラインで「ヒューマン検知」と呼ばれるものは、人間がこれらのデバイスとやり取りする際に使用するパターンです。近年、このパターンは変化しています。スタートアップのCEOはブラウザを使ってニュースを要約し、テック愛好家は夜にチケット販売が開始された際にコンサートチケットの予約プロセスを自動化し、視覚障害のある人はスクリーンリーダーでアクセシビリティ機能を有効にし、企業は従業員のトラフィックをゼロトラストプロキシ(zero trust proxies)経由でルーティングしています。

同時に、ウェブサイト所有者は依然としてデータの保護、リソースの管理、コンテンツ配信の制御、不正利用の防止を求めています。これらの問題は、クライアントが人間かボットかを理解するだけでは解決しません。望ましいボットもあれば、望ましくない人間も存在します。これらの問題には、意図と行動を知る必要があります。自動化を検知する能力は依然として重要ですが、アクター間の区別が曖昧になるにつれて、私たちが現在構築するシステムは、「ボット対人間」が重要なデータポイントではない未来を想定できるものでなければなりません。

実際問題として重要なのは、抽象的な「人間性」ではなく、以下のような問いです。これは攻撃トラフィックか?そのクローラーの負荷は返すトラフィックに比例しているか?このユーザーが新しい国から接続してくることを期待するか?私の広告は不正操作されているか?

「ボット」という用語で私たちが議論しているのは、実のところ2つの物語です。1つ目は、ウェブサイト所有者がトラフィックを返さない既知のクローラーを通すかどうかです。私たちは、なりすまされることなく識別したいクローラーに対してHTTPメッセージ署名(http message signatures)によるボット認証を行うことで、これに触れてきました。2つ目は、ウェブブラウザが歴史的に組み込んでいたのと同じ行動を内包しない新しいクライアントの台頭です。これはプライベートレートリミット(private rate limit)のようなシステムにとって重要です。

この記事では、今日のウェブ保護がどのように機能しているか、そしてボットと人間の境界が消えゆく際にそれがどのように進化しなければならないかを探ります。

The Web we had

私たちがWebを利用するとき、毎日やり取りする何千ものサーバーと直接通信することはありません。私たちはウェブブラウザを使います。これらは「ユーザーエージェント(user agents)」とも呼ばれます。なぜなら、それらが私たちの代わりに行動し、私たちの利益を代表してくれるためです。これにより、サイトが私たちのコンピュータやスマートフォン全体にアクセスする権限を与えることなく、安全にショッピング、閲覧、動画視聴を行うことができます。

ウェブサイト側にも、ブラウザの動作に関する関心があります。彼らはコンテンツが正確に表示されることを確認したいのです(モバイル画面に適合しているか、適切な背景色であるか、正しい言語であるか)。ウェブサイトはまた、人々が購入を完了し、記事を読み、マイクを使用し、パスワードなしで安全にサインインできることを確保したいと考えています。さらに、記事の横にある広告を見てもらうことも望んでいます。

ブラウザユーザーとウェブサイトの利益間のこの緊張関係は長年にわたって続いてきました。パブリッシャー(コンテンツ提供者)は通常、ユーザーの体験に対してピクセルレベルの制御(pixel-level control)を望みますが、ブラウザの向こう側にいる人々は、パブリッシャーが想定していなかった方法でアクセスしたデータを利用したいと考えることがよくあります。

ウェブブラウザベンダーや、それに付随する標準化エコシステムは、これらの利益のバランスを取ることに細心の注意を払ってきました。時には大きな論争を巻き起こすこともありました。例えば、広告ブロックにブラウザ拡張機能(browser extensions)を使用できますが、時間とともにブラウザはこれらの拡張機能が実行できる操作を制限してきました。アクセシビリティ基準(例:WCAG)(Accessibility standards)は、ピクセルにこだわらない方法でウェブコンテンツを利用する道を開き、多くの地域で規制要件がこれを後押ししています。これらのトレードオフの具体的な内容について疑問を呈することは可能ですが、これらはセットで提供されます。ウェブを利用したいのであれば、パブリッシャーであれユーザーであれ、それを受け入れなければなりません。

しかし現在、そのバランスは変化しつつあります。アシスタントにニュースの要約や研究データの集約をさせるという概念自体は新しいものではありませんが、AIはこの機能をすべての人に民主化しました。摩擦が生じるのは、これらの新興クライアント(client)がどのように動作するかによるものです。人間のアシスタントは、パブリッシャーの知らないうちに記事を印刷したりスクリーンショットを撮ったりするかもしれませんが、それでも最初にサイトを表示するには標準的なウェブブラウザを使用します。AIエージェント(AI agents)はこのステップをバイパスし、ブラウザが構築したパブリッシャーの権利とユーザーの権利のバランスの取れたアプローチを混乱させます。それらはページを表示することなく、こっそりと生データを取得します。パブリッシャーにとって、これらは既存のブラウザトラフィックと重複するため、本質的に不透明です。ウェブサイト所有者は、取得されたコンテンツが1つのプライベートレポート(歪曲されている可能性もあれば、出典不明の可能性もある)を提供しているのか、それとも100万人のユーザー向けにモデルを学習させるために取り込まれているのかを判断できません。これは、サイトをオンラインで維持している予測可能(かつ収益化可能)なトラフィックを混乱させます。

ウェブを機能させていた暗黙の合意が崩れつつあります。その仕組みを理解するために、次のセクションではインターネット上の一般的なアーキテクチャについて解説します。

クライアント・サーバーモデル (client-server model)

一歩引いて、インターネット上の主要なデプロイメントパターン(deployment patterns)の1つであるクライアント・サーバーモデルを見てみましょう。クライアントはリソースを取得するためにサーバーにリクエスト(request)を送信します:

![image](https://cf-assets.www.cloudflare.com/zkvhlag99gkb/61L0GkCvWVQl8TH2i2iwFp/899b2a1936aa7fbfaab45fca71d319d6/1.png) 図1:クライアント・サーバーモデル。クライアントがリクエストを送信し、サーバーがそれに応答します。

より多くのリクエストを処理するために、ウェブサイトは提供能力を増やすことができます。追加のサーバーを展開したり、静的トラフィックの前にキャッシュ(cache)を配置したりできます。同様に、1人のクライアントがより多くのリクエストを送信する場合、またはクライアントの数が倍増する場合は、クライアント側からのリクエスト数が増加します。

image
image

図2:複数のクライアントが異なるサーバーに複数のリクエスト(request)を送信しており、その1つはCDN(コンテンツデリバリーネットワーク)で前面保護されている。

その単純さが、Webの成功を収めた要因の一つです。これにより多種多様なクライアントが存在可能となり、各サーバーが相手のエンドにどのようなソフトウェアがインストールされているかを正確に知らなくても、ネットワークを進化させることができます。

imageimage

図3:サーバーにリクエストを送信する2つの異なるクライアントコンテキスト。各サーバーはリクエストのみを確認でき、背後にいるエンドユーザーは確認できません。

その開放性もまた不確実性を生み出します。ウェブサイトはリソースに対する有効なリクエストを確認できますが、通常、レスポンス(response)がサーバーを離れた後の状況は把握できません。キーボード、マウス、画面を使用してブラウザを操作する1人のユーザー向けにコンテンツがレンダリングされているのか、それとも独立したプログラムが自動的にリクエストを送信し、レスポンスをアーカイブしてインデックス付けし、より大きなシステムにフィードバックしているのか。

Bot management today

このモデルは驚くほどよく機能します。そのため、インターネットに接続されたWebサーバーを起動するだけでウェブサイト運営が可能なほどシンプルになるのです。この状態は、サーバーがどのリクエストを提供し、信頼し、優先するかの判断を迫られるまで維持されます。

場合によっては、これは容量(capacity)の問題です。グローバルで1秒あたり100リクエストを処理するようにサービスがプロビジョニング(provisioned)されているのに、200のリクエストを受信している場合、特定のリクエストをドロップ(drop)する必要があります。サーバーにCPUが1つしかないのに、受信リクエストが2つの処理を必要とする場合も同様です。200を提供するコストが高すぎる場合は、すべてのリクエストにレートリミット(rate-limit)を適用する必要があります。

リクエストをランダムにドロップすることもできます。不公平である可能性があり、必要なクライアントにも影響して目標から外れるかもしれませんが、機能します。他のシグナルがない場合、他に選択肢はありません。

容量は全体の状況の一部に過ぎません。サーバーは他にも多くの理由でクライアントを区別しようとします:攻撃を通常のトラフィック(traffic)から分離するため、悪意のない負荷を管理するため、データ抽出を防ぐため、広告詐欺(ad fraud)を制限するため、偽アカウントの作成を防ぐため、またはユーザーに代わって行われる自動化されたアクションを停止するためです。

難しさは、Webクライアントがデフォルトで認証されていないにもかかわらず、多くの部分的なシグナルを公開している点にあります。そのため、ほとんどのサーバーは受信情報に基づいてアクセス制御ロジック(access control logic)を適用することを決定します。単一のIPアドレス(IP address)が他のクライアントの10倍のリクエストを送信している場合、ブロックされる可能性があります。さらに踏み込むサーバーは、このIPアドレスがVPN(仮想プライベートネットワーク)によって使用されており、したがって複数のユーザーのトラフィックをプロキシ(proxies)していると推測するかもしれません。サービスは係数を適用することを決定できます:各クライアントが1秒あたり10リクエストを送信できると仮定した場合、共有IPアドレスではリクエストがドロップされる前に100 rps(1秒あたりのリクエスト数)まで許可されます。

これがボット管理(bot management)の鍵の一つです。これは、サーバーがクライアントに関するより多くの情報を取得し、意思決定を支援することを目的としています。この情報は本質的に不正確です。なぜなら、クライアントはサーバーの制御下にあるわけではないからです。さらに、同じ情報が指紋ベクトル(fingerprint vectors)を生成し、サーバーはこれをパーソナライズされた広告など異なる目的で使用できます。これにより、軽減(mitigation)のベクトルが追跡(tracking)のベクトルへと変貌します。

大まかに言えば、サーバーはクライアントから以下のシグナル(signals)を受信します。

受動的クライアント・シグナル(passive client signals):インターネット上でリクエストを送信する際に必須となるもの。クライアントは必ずIPアドレスを送信し、通常はTLSセッション(TLS session)を確立します。

能動的クライアント・シグナル(active client signals):クライアントが自発的に提供し、エンドユーザーには見えないことが多いもの。これにはUser-Agentヘッダー(User-Agent header)や認証資格情報(authentication credentials)が含まれます。

サーバー・シグナル(server signals):サーバーが観測する情報。例えば、リクエストを処理するエッジサーバーの地理的位置や、リクエストを受信した現地時刻などです。

大量の悪用(volumetric abuse)を制限し抑制するため、オリジン(origin)にとって重要なのは、クライアントが複数回リクエストを送信する能力と意図です。広告収入で成り立つウェブサイトの場合、オリジンは広告が実際にエンドユーザーに表示されていることを確信する必要があります。ブランドを保護するため、オリジンはクライアントに特定のレンダリング機能があることを確認したい場合があります:PDFリーダー、SVGレンダラー(SVG renderer)、仮想キーボードなどです。また、リクエストがインターセプティング・プロキシ(intercepting proxy)から来ている場合、オリジンはそのリクエストが実際にエンドクライアントから発信されたものであることを確認したいと考えるかもしれません。

トラフィックが増加すれば、運用コストも増大します。クライアントが金銭的かどうかを問わず価値を生み出さない場合、サーバーにはそのコストを負担するインセンティブがありません。

異なるオペレーターは、この環境に対してそれぞれ異なる対応を取ります。一部の大型クローラー(crawlers)やプラットフォームは、予測可能なアクセスが「追跡可能であることのコスト」に値するため、自らを識別します。それはむしろ有益な場合もあります。一方、他の者は識別を避けるよう努めます:ブロックされることを予想しているため、匿名性を求めているため、あるいはエンドユーザーに代わって運用しているためです。その結果は、部分的なシグナルに基づいた不安定な均衡です。

これが「人間対ボット」という枠組みが誤解を招く理由です。オリジンが関心を持つのは、抽象的な「人間性」ではなく、クライアントがサイトがサポートできる方法で行動しているかどうかです。

余談:レート制限のトリレンマ(rate limit trilemma)

image
image

図4:レート制限のトリレンマ。分散型、匿名、責任追跡可能 — 2つを選択

私たちがインターネット上でのアクセスを管理する方法には、根本的な緊張関係があります。分散型、匿名、責任追跡可能 — 2つを選択してください。

完全な分散型+匿名とは、責任追跡不可能を意味します。ブロックされたクライアントは、その評判に影響を与えることなく新しいアカウントを生成できます。これは、オリジンがリソースを管理するためにより多くの投資を行わなければならないことを意味します。これがウェブのデフォルトです。

デセントラライズド(分散型)+アカウンタビリティ(追跡可能性)とは、誰もがあなたの正体を知っていることを意味し、特定のユースケースでは機能するものの明確な欠点があります。「Log in with」に代表されるOAuth(Open Authentication)メカニズムを想像してみてください。これにはアカウント登録が必要であり、第三者に対して活動内容を公開することになります。

アノニマス(匿名)+アカウンタビリティ(追跡可能性)を実現するには、おそらくガバナンス、ルール、そして執行機構が必要です。同じアクターに対してこの両方の性質を達成している広く展開されたシステムは存在しません。最も近い先例はWeb PKI(Public Key Infrastructure)であり、ここでガバナンス(CAポリシーやCertificate Transparency)がサーバーを追跡可能にしています。このガバナンスが失敗すれば、何らかの代償が生じます。しかし現在、クライアント側に対応する同等の仕組みは存在しません。

現在のツールは、最初の空間(追跡可能な領域)の要素を基盤として構築し、第二の空間(匿名+追跡可能)を目指しています:TLSフィンガープリント、IPアドレス、robots.txtなどです。これらは追跡可能性を試みていますが、派生するフィンガープリントが安定している間しか機能しません。

The important distinctions are what, not who

受信トラフィックをどのように処理するかを決定するウェブサイト所有者にとって、意味のある区別は必ずしもボット対ヒューマンではありません。それは、受信トラフィックを理解したいオリジン(送信元サーバー)のニーズと、プライバシーを保護したいクライアントのニーズとのバランスを取ることにほかなりません。

Platforms and services that want to be identifiable

imageimage

Figure 5: A crawler makes multiple request to a server

一部のトラフィックは、大量のリクエストを送信する既知のオペレーターから来ます:検索エンジンクローラー、クラウドプラットフォーム、エンタープライズインフラストラクチャです。これらのアクターはしばしばプライバシーへの期待が低いです。彼らは識別可能なソースから数百万件のリクエストを送信するインフラストラクチャです。リクエストの送信元を識別できる能力は、インフラプロバイダーが過度なリクエストを送信したり、アクセスすべきでないページにアクセスしたりした場合の誤判断を軽減するのに役立ちます。自己識別(Self-identification)は、私たちが提案した責任あるAIボットの原則の一つです。CloudflareがRadar用のURLスキャナーを運用したり、クローリング機能を公開したりする仕組みは、これらの原則に基づいています。

この種のトラフィックにおいて、アイデンティティ(正体)は機能します。より正確には、一部のオペレーターは帰属可能なリクエストを許容できます。なぜなら、確実なアクセスの価値があるからです。HTTP Message Signatures(HTTPメッセージ署名)を用いたWeb Bot Authにより、オペレーターは暗号学的にリクエストに署名することができます。例えばOpenAI、Google、Cloudflare、AWSは、自プラットフォームから発生するリクエストに署名を行います。オリジンは、IPアドレス範囲やUser-Agent文字列に依存することなく、「このリクエストは本当にプラットフォームのインフラから来たものだ」と検証できます。

ヒューマン(人間)やその他のエンドユーザーは、識別可能であること以外の期待を正当に持っています。それは、アクセスと品質の経験(QoE)を犠牲にすることなく匿名性を維持するためです。

Distributed traffic that needs anonymity

image
image

図6:3つの異なるブラウザがサーバーにリクエストを送信する。1つは人間が操作し、1つはデバイス上のアシスタント(on-device assistant)が操作し、1つは企業のプロキシ(corporate proxy)を経由してプロキシされている。

その他のトラフィックは多くのソースから発生しており、それぞれが比較的低頻度のリクエストを送信している。これにはウェブを閲覧する人間、測定を行う研究者、住宅用プロキシ(residential proxies)を使用するスクレイパー、そして人間に代わって行動するAIアシスタント(AI assistants)が増加していることが含まれる。

さらに、ボット(bots)と人間の区別はもはや意味をなさないものとなっている。コンサートチケットを予約するAIアシスタントと、それを手動で行う人間には本質的な違いはない。両者は分散型であり、両者に匿名性(anonymity)が必要である。それぞれのケースにおいて、オリジン(origin)は、サービスを意図通りに利用しようとするユーザーに対して、悪用するユーザーよりも摩擦(friction)を少なくしたいと考えるだろう。

識別情報(Identity)は機能しうる。IPアドレスに対して持っていた古い前提を置き換えるためには、特定のクライアントに紐づく一意で検証可能な属性のセットを提供し、アカウントログイン、メールアドレス、またはハードウェアキーを通じて証明されなければならない。しかし、それはウェブサイトにアクセスする際にこの識別情報を提示する必要性を意味し、さらにプライバシー(privacy)を損なうことにもなる。

私たちは、識別情報を証明することなく行動(behavior)を証明する現代的なソリューションを構築したいと考えている。

ウェブ向けの匿名認証情報(Anonymous credentials for the Web)

2019年以来、Cloudflare経由でウェブサイトにアクセスするクライアントは、リクエストとともにプライバシートークン(privacy token)を送信することで、このような行動の証明を提供できるようになっている。これはCloudflareがPrivacy Passを早期にサポートした結果である。RFC 9576およびRFC 9578で標準化されたPrivacy Passは、課題を解決したなどの事前チェックの裏付けを持つ証明を発行者(issuer)がバックアップする形でクライアントが持ち運べるようにし、その結果を安定した識別子(stable identifier)に変えることはない。これは、過去のどの訪問、リクエスト、またはセッションとも関連付けられないトークンを定義するものである。

これは重要である。なぜなら、フィンガープリント(fingerprinting)とは異なるモデルを提供しているからである。パッシブな信号を収集するのではなく、サーバーはクライアントに対してアクティブなプライバシー保護(privacy-preserving)信号を求めることができる。

これにより、セッション確立(session establishment)における摩擦が軽減される。Privacy Passは、主にプライバシーリレーサービス(privacy relay services)向けに、Cloudflareのインフラ全体で1日数十億個のトークンへとスケールしている。

imageimage

図7:RFC 9576のセクション3.1からのPrivacy Pass償還および発行プロトコルの相互作用

RFCは4つの役割を強調しています。発行者(イシューア)は、資格情報(RFCではトークン)を発行する前にいくつかのチェックを行うために、1つ以上の証明者(アテスター)を信頼します。クライアントはこれらの資格情報を保持し、適切なスコープ内でいつ提示するかを決定します。オリジンは、どの発行者を信頼し、各提示が何を意味するかを制御し続けます。これは悪用やポリシーに関する問題を除去するものではなく、単にクライアントとサーバーに対して、それらを処理するためのプライバシーを保護する方法を提供します。

このシステムは単純ですが、限界もあります。例えば、動的なレート制限(dynamic rate limits)を許可するものではありません。クライアントに100個のトークンが発行され、最初のセッションまたは2番目のセッション後にリソースを過度に消費し始めた場合、以前発行された残りのトークンを無効化する手段がありません。

さらに、リンク不能性(unlinkability)の性質のため、新しい発行者が台頭するのは困難です。オリジンは、発行者トークンが伝えるシグナルの品質について、フィードバックメカニズムを提供する方法を持っていません。

最後に、発行者が提供するトークンの数と、それらのトークンが償還される際に使用して作成できるリンク不能な提示(unlinkable presentations)の数の間には、1:1の関係があります。つまり、提示ごとにトークン1つです。理想的には、クライアントが発行者に一度接触し、後で特定のオリジンのコンテキストにスコープを限定した複数の提示を行えるシステムを望みます。それは、単一使用のトークンを繰り返し取得するのではなく、ユーザーエージェント(user agents)が保証された資格情報を保持し、それらから派生した証明を提示する方向を示しています。

私たちの目標は、オープンなプライベートなレート制限エコシステムの確立を支援することです。その精神に基づき、私たちはAnonymous Rate-Limit Credentials(ARC)やAnonymous Credit Tokens(ACT)などの新しいPrivacy Passのプリミティブ(primitives)を開発・探求するのを支援しています。

例えば、ACTでは、クライアントは「私はこのサービスに対して良好な履歴を持っています」といったことを、「私はこのユーザーです」と明らかにすることなく証明できます。ACTは、ここで重要な暗号学的性質(cryptographic property)である、プロトコルレベルでの提示間のリンク不能性を維持します。RFC 9576の4.3節にある共同発行者-オリジン展開モデル(joint issuer-origin deployment model)でさえ、トークンの発行と提示が直接リンクされないようにプロトコルが設計されています。ただし、IPアドレス、クッキー、アカウント状態、タイミングなどの他の層を通じた相関を排除するものではありません。ACTが実装する逆フローフレームワーク(reverse flow framework)内において、標準化されたVOPRFおよびBlindRSAのプリミティブを使用して、同じ性質を提供することができます。

成功するエコシステムは、オープンな発行者エコシステムである必要があります。実際には、それは誰でも資格情報をミントできるという声明以上のことを意味します。オリジンは信頼する発行者を決定できる必要があります。ユーザーエージェントには、要求されているものを提示するための一貫した方法が必要です。また、エコシステムには、発行者が評判を確立し、信頼する側(relying parties)が低品質な発行者の信頼を停止する方法が必要です。単一のゲートキーパーが参加を制御すべきではありません。

これを機能させるためには、ブラウザやその他のユーザーエージェント(user agent)で動作するプロトコル(protocol)とクライアントAPI(client API)が必要です。デプロイは容易で、ユーザーにとって明確であり、かつ

原文を表示

For us humans to interact with the online world, we need a gateway: keyboard, screen, browser, device. What is called "human detection" online are patterns that humans use when interacting with such devices. These patterns have changed in recent years: a startup CEO now uses their browser to summarize the news, a tech enthusiast automates the process to book their concert tickets when sales open at night, someone who's visually impaired enables accessibility on their screen reader, and companies route their employee traffic through zero trust proxies.

At the same time, website owners are still looking to protect their data, manage their resources, control content distribution, and prevent abuse. These problems aren’t solved by knowing whether the client is a human or a bot: There are wanted bots and there are unwanted humans. These problems require knowing intent and behavior. The ability to detect automation remains critical. However, as the distinctions between actors become blurry, the systems we build now should accommodate a future where "bots vs. humans" is not the important data point.

What actually matters is not humanity in the abstract, but questions such as: is this attack traffic, is that crawler load proportional to the traffic it returns, do I expect this user to connect from this new country, are my ads being gamed?

What we discuss with the term “bots” is really two stories. The first is whether website owners should let known crawlers through when they are not getting traffic back. We have touched on this with bot authentication with http message signatures for crawlers that want to identify without being impersonated. The second is the emergence of new clients that do not embed the same behaviors as web browsers historically did, which matters for systems such as private rate limit.

In this post, we explore how web protection works today, and how it must evolve when the line between bot and human is fading.

The Web we had

When we use the Web, we don't talk directly to the thousands of servers we interact with every day. We use Web browsers. These are also known as "user agents" because they act on our behalf, representing our interests so that we can safely shop, read, and watch the Web without giving sites access to our entire computer or phone.

Websites also have an interest in how browsers work. They want to make sure that their content is presented accurately (fits the screen on mobile, has the right background color, the correct language). Websites also want to ensure that people are able to complete a purchase, read their articles, use their microphone, or sign in securely without a password. They also want people to see the ads beside the articles.

This tension between the interests of browser users and websites has been going on for a long time. Publishers typically want pixel-level control over the experiences of their users, but the people on the other side of the browser often want to use the data they access in ways that weren't envisioned by the publisher.

Web browser vendors and the standards ecosystem around them have paid careful attention to balancing these interests, sometimes with great controversy. For example, you can use browser extensions to block ads, but over time browsers have restricted what such extensions can do. Accessibility standards (e.g., WCAG) have paved the way for using Web content in ways that aren't about pixels, backed in many places by regulatory requirements. One can question the specifics of each of those tradeoffs, but they come as a package: if you want to be on the Web, you have to accept it, whether you are a publisher or a user.

Now, however, that balance is shifting. Having an assistant summarize the news or aggregate research is not a new concept, but AI democratizes this capability for everyone. The friction comes from how these emerging clients operate. A human assistant might print an article or take a screenshot without the publisher knowing, but they still use a standard web browser to render the site in the first place. AI agents bypass this step, disrupting the balanced approach to publishers’ vs. users’ rights that browsers built. They quietly fetch the raw data without rendering the page. For publishers, because of their overlap with pre-existing browser traffic, these clients are inherently opaque. Website owners cannot tell if their fetched content is serving one private report (possibly distorted, possibly unattributed) or being ingested to train a model for a million users, which disrupts the predictable (and monetizable) traffic that keeps their sites online.

The implicit agreement that made the Web work is breaking down. To understand how, the next section goes over a common architecture on the Internet.

The client-server model

Let’s take a step back, and look at one of the main deployment patterns on the Internet: the client-server model. A client makes a request to a server to obtain a resource:

imageimage

Figure 1: Client-Server model. A client sends a request which the server responds to.

To handle more requests, a website can increase its capacity to serve; it can deploy additional servers or place a cache in front of static traffic. Similarly, the number of requests coming from the client side can increase if one client makes more requests, or if the number of clients multiplies.

imageimage

Figure 2: Multiple clients send multiple requests to different servers, with one fronted by a CDN.

That simplicity is part of what made the Web successful. It allows many kinds of clients to exist, and it allows the network to evolve without each server needing to know exactly what software is on the other end.

imageimage

Figure 3: Two different client contexts that send requests to servers. Each server only sees a request, but not the end-user behind it.

That openness also creates uncertainty. A website can see a valid request for a resource, yet it usually cannot know what happens after the response leaves the server: whether the content is rendered for one person using a keyboard, a mouse, and a screen to control a browser; or if it's an independent program making requests automatically, archiving responses, indexing them, and feeding into a larger system.

Bot management today

This model works surprisingly well. That is why operating a website can be as simple as starting a web server with a connection to the Internet. It holds only until the server has to decide which requests it can afford to serve, trust, or prioritize.

Sometimes that is about capacity. If your service is provisioned to handle 100 requests per second globally, but you're receiving 200, you have to drop certain requests. If your server only has 1 CPU but incoming requests require 2, you have to drop requests. If the cost of serving 200 is prohibitive, then you have to rate-limit all requests.

You can drop requests at random. It's possibly unfair, and may miss the target by affecting wanted clients, but it works. In the absence of other signals, there is no other choice.

And capacity is only part of the picture. Servers also try to distinguish among clients for many other reasons: to separate attacks from ordinary traffic, to manage non-malicious load, to prevent extraction of data, to limit ad fraud, to prevent fake account creation, or to stop automated actions being taken on a user's behalf.

The difficulty is that web clients are unauthenticated by default, while still exposing many partial signals. Therefore, most servers decide to apply access control logic based on the information they receive. If a single IP address is making 10x the number of requests as others, it might be blocked. A server that goes further might infer that this IP address is used by a VPN, and therefore proxies the traffic of more than one user. The service could decide to apply a coefficient: assuming each client can make 10 requests per second, a shared IP address would be allowed 100 rps before seeing their requests being dropped.

That's one of the keys to bot management: it aims to provide the server with more information about the client to help it make decisions. This information is inherently imprecise, because the client is not under the control of the server. In addition, the same information creates fingerprint vectors that can be used by the server for different purposes such as personalized advertising. This transforms a mitigation vector to a tracking vector.

At a high level, the server sees the following signals from the client:

Passive client signals: required to make a request on the Internet. Clients necessarily send your IP address, and usually establish a TLS session.

Active client signals: voluntarily provided by the client, often invisible to the end user. This includes a User-Agent header or authentication credentials.

Server signals: information the server observes, such as the geographic location of the edge server handling the request, or the local time the request is received.

To limit and cap volumetric abuse, what matters to the origin is the capability and intent of the client to make multiple requests. In the case of an ad-funded website, the origin needs confidence that ads are actually displayed to the end-user. To preserve their brand, origins may want to ensure that the client has specific rendering capabilities: PDF reader, SVG renderer, virtual keyboard. And if the request is coming from an intercepting proxy, the origin may want to ensure that the request actually originates from an end client

If traffic grows then so do the costs to operate. If clients do not generate value, monetary or not, then the server has no incentive to cover those costs.

Different operators respond to this environment differently. Some large crawlers and platforms identify themselves because predictable access is worth the cost of being attributable. It may even help. Others try to avoid identification: because they expect to be blocked, because they seek anonymity, or because they are operating on behalf of end users. The result is an unstable balance built on partial signals.

This is why the human versus bots frame is misleading. What the origin cares about is not humanity in the abstract, but whether the client is behaving in ways the site can support.

A digression: the rate limit trilemma

imageimage

Figure 4: Rate limit trilemma. Decentralized, anonymous, accountable — pick two

There's a fundamental tension in how we govern access on the Internet: decentralized, anonymous, accountable — pick two.

Fully decentralized + anonymous means no accountability. A blocked client can spawn a new account without impact on its reputation. This implies that origins have to invest more to manage their resources. This is the default of the Web.

Decentralized + accountable means everyone knows who you are, which works for certain use cases but has clear drawbacks. Think OAuth mechanisms such as “Log in with”, which requires account registration and revealing activity to a third party.

Anonymous + accountable likely requires governance, rules, and enforcement. No widely deployed system achieves both properties for the same actor. The closest precedent is the Web PKI, where governance (CA policies, Certificate Transparency) holds servers accountable. When that governance fails, there are consequences. No equivalent exists today for the client side.

Current tools build on elements from that first space to strive for the second: TLS fingerprints, IP addresses, robots.txt. They attempt accountability, but only hold as long as the derived fingerprints remain stable.

The important distinctions are what, not who

For a website owner deciding how to handle incoming traffic, the meaningful distinction isn't necessarily bots vs. humans. It's about balancing the origin’s needs to understand the traffic it receives with the clients’ needs to preserve their privacy.

Platforms and services that want to be identifiable

imageimage

Figure 5: A crawler makes multiple request to a server

Some traffic comes from known operators making high volumes of requests: search engine crawlers, cloud platforms, enterprise infrastructure. These actors often have low privacy expectations. They're infrastructure making millions of requests from identifiable sources. The ability to identify the source of a request helps to mitigate misjudgment if an infrastructure provider is sending you too many requests or accessing pages it should not. Self-identification is one of the principles for responsible AI bots we proposed. It is based on these principles that Cloudflare operates its URL scanner for Radar, or how we expose crawling capabilities.

For this traffic, identity works. More precisely, some operators can tolerate attributable requests because reliable access is worth it. Web Bot Auth using HTTP Message Signatures allow operators to cryptographically sign their requests. OpenAI, Google, Cloudflare, or AWS, for example, sign requests originating from their platforms. Origins can verify "this request really came from the platform infrastructure" without relying on IP ranges or User-Agent strings.

Humans and other end-users rightfully have expectations other than being identifiable, to preserve anonymity without sacrificing their access and quality of experience.

Distributed traffic that needs anonymity

imageimage

Figure 6: Three distinct browsers make a request to a server. One is operated by a human, one by an on-device assistant, and one is proxied through a corporate proxy.

Other traffic comes from many sources, each making relatively few requests. This includes humans browsing the web, researchers doing measurements, scrapers using residential proxies, and increasingly, AI assistants acting on humans’ behalf.

And increasingly the distinction between bots and humans is moot. There is no meaningful difference between the AI assistant booking concert tickets and the human who would have done so manually. Both are distributed. Both need anonymity. In each case, an origin would want to create less friction for users who wish to use the service as intended, rather than abuse it.

Identity could work. To replace the old assumption we had for IP addresses, it should provide a unique, verifiable set of attributes tied to a specific client, proven through an account login, an email address, or a hardware key. However, it implies the need to present this identity when accessing websites. It also undermines privacy.

We want to build modern solutions that prove behavior without proving identity.

Anonymous credentials for the Web

Since 2019, clients accessing websites via Cloudflare have been able to provide such proof of behavior, by sending a privacy token along with their request. This is due to Cloudflare’s early support for Privacy Pass. Privacy Pass, as standardised in RFC 9576, RFC 9578, lets a client carry an issuer-backed proof of some prior check, such as having solved a challenge, without turning that result into a stable identifier. It defines tokens that are unlinkable with any prior visit, request, or session.

This matters because it offers a different model from fingerprinting. Instead of collecting passive signals, the server can ask the client for an active privacy-preserving signal.

This reduces the friction on session establishment. Privacy Pass has scaled to billions of tokens per day across Cloudflare’s infrastructure, primarily for privacy relay services.

imageimage

Figure 7: Privacy Pass Redemption and Issuance Protocol Interaction from Section 3.1 of RFC 9576

The RFC highlights four roles. The issuer trusts one or more attesters to perform some checks before issuing credentials (tokens in the RFC case). The client holds these credentials and decides when to present them, within the right scope. The origin remains in control of which issuers it trusts and what each presentation means. This does not remove abuse or policy questions, it simply provides clients and servers with a privacy-preserving way to handle them.

The system is simple, but it also has bounds: it does not, for example, allow for dynamic rate limits. If a client is issued 100 tokens, and starts consuming too many resources after the first or second session, there’s no way to invalidate the remaining tokens that were previously issued.

In addition, because of the unlinkability property, it’s hard for new issuers to emerge. There is no feedback mechanism that an origin can provide regarding the quality of the signal an issuer token conveys.

Finally, there’s a 1:1 relationship between the number of tokens that an issuer provides, and the number of unlinkable presentations that can be made with those tokens when they are redeemed: one token per presentation. Ideally, we would like a system in which the client contacts an issuer once and can later make multiple presentations scoped to a particular origin context. That points toward user agents holding vouched credentials and presenting proofs derived from them, rather than repeatedly acquiring single-use tokens.

Our goal is to help establish an open private rate limiting ecosystem. In that spirit, we are helping to develop and explore new Privacy Pass primitives, such as Anonymous Rate-Limit Credentials (ARC) and Anonymous Credit Tokens (ACT).

With ACT, for instance, clients can prove something like "I have a good history with this service" without revealing "I am this user.” ACT preserves unlinkability between presentations at the protocol level, which is the key cryptographic property here. Even in the joint issuer-origin deployment model in Section 4.3 of RFC 9576, the protocol is designed so that token issuance and presentation are not directly linkable. That does not eliminate correlation through other layers such as IP addresses, cookies, account state, or timing. The same properties can be provided using standardized VOPRF and BlindRSA primitives within the reverse flow framework that ACT implements.

A successful ecosystem needs to be an open issuer ecosystem. In practice, that means more than saying anyone can mint credentials. Origins need to be able to decide which issuers to trust. User agents need a consistent way to present what is being requested. The ecosystem also needs ways for issuers to establish reputation and for relying parties to stop trusting low-quality issuers. No single gatekeeper should control participation.

To make this work, there needs to be a protocol and client API that works across browsers and other user agents. It has to be simple to deploy, clear to users, and

この記事をシェア

関連記事

Cloudflare Blog★32026年3月12日 14:00

Cloudflareがアカウント悪用防止機能を発表:ボットと人間による不正攻撃を防止

Cloudflareは、アカウント悪用を未然に防ぐための不正防止機能スイートを発表した。自動化された攻撃と人間による攻撃が組み合わさった脅威に対応し、複数の地理的位置から短時間でアクセスされる異常なアカウント活動などを検知・防止する。

Simon Willison Blog2026年4月4日 01:05

JavaScriptはiframe内のCSPメタタグから脱出できるか?

研究者が、別ドメインを使用せずにサンドボックス化されたiframe内のコンテンツにCSPヘッダーを適用する方法を調査し、iframeコンテンツの先頭にCSPメタタグを挿入できることを発見した。

Andrej Karpathy 厳選2026年2月24日 09:00

ポータブルモニターは便利

旅行用ポータブルモニターのレビュー。持ち運び可能で、外出先でも作業やエンターテイメントが快適にできる利点を紹介。

ニュース一覧に戻る元記事を読む