忘记 IP:使用密码学来验证机器人和代理流量

随着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 开始使用免费应用,了解更多可访问相关页面。

阅读 10
0 条评论