随着AI 代理流量的增加,何为机器人已不再清晰。历史上,Cloudflare 依赖用户代理头和 IP 地址来验证合法网络爬虫与其他类型自动化流量,但用户代理头易被欺骗,IP 地址范围逻辑易变。
今天,Cloudflare 推出 HTTP 消息签名和请求 mTLS 这两种提案,用于友好机器人自验证及客户源识别。现有机器人验证机制存在问题,如用户代理易被伪造、IP 地址共享及维护困难等。
HTTP 消息签名
HTTP 消息签名是定义请求发送者加密认证的标准,可通过在发送请求前用公钥对目标源进行签名来实现。例如生成消息签名时,代理会用已知公钥对example.com
签名,并在Signature-Input
头中包含有效性窗口、密钥 ID 和签名用途标签等参数。Cloudflare 提供了相关代码示例和工具包,如在 Chrome 扩展中通过chrome.webRequest.onBeforeSendHeaders
修改 HTTP 头来生成签名。验证请求签名时,可使用 Cloudflare 的调试服务器或在 Go 中实现的插件。
实验性请求 mTLS
mTLS 是一种用于相互认证的方法,通过客户端和服务器相互验证对方的证书来确保网络连接的安全性。Cloudflare 提议使用新的 TLS 标志req mTLS
来表示客户端支持通过客户端证书进行认证,客户端发送req mTLS
标志后,服务器可安全请求证书而不会阻塞普通用户流量。在 Go 中可通过配置TLSConfig
来支持req mTLS
。
两种方法,一个目标
HTTP 消息签名和请求 mTLS 都旨在让服务所有者向网站进行身份验证,Cloudflare 优先考虑 HTTP 消息签名,因其基于已采用的 RFC 9421 且在 HTTP 层工作,更易采用。但请求 mTLS 可能更适合对额外带宽有顾虑的站点所有者。
大局观
请求签名和 mTLS 是机器人所有者和 AI 代理开发者以防篡改方式进行身份验证的有前途机制,可被 Cloudflare 或站点所有者使用,这有助于构建更好的互联网,Cloudflare 还提供多种网络服务,可访问 1.1.1.1 开始使用免费应用,了解更多可访问相关页面。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。