cloudflare/web-bot-auth
GitHub: cloudflare/web-bot-auth
该项目实现了基于 RFC 9421 HTTP 消息签名的 Web Bot 认证协议,为自动化 HTTP 请求提供标准化的签名与验证能力。
Stars: 135 | Forks: 32
# Web Bot 认证

本仓库包含 Web Bot Auth 库和用于签名自动化 HTTP 流量的示例,如 [draft-meunier-webbotauth-httpsig-protocol](https://datatracker.ietf.org/doc/draft-meunier-webbotauth-httpsig-protocol/) 中所述。
## 目录
- [示例](#examples)
- [开发](#development)
- [安全注意事项](#security-considerations)
- [许可证](#license)
## 示例
### 在线部署
Cloudflare Research 在 [http-message-signatures-example.research.cloudflare.com](https://http-message-signatures-example.research.cloudflare.com/) 提供了一个在线环境。
使用此部署来测试实现。
1. 它验证是否存在由 [RFC9421 ed25519 测试密钥](./examples/rfc9421-keys/ed25519.pem) 签名的 `Signature` header,
2. 它在 [/.well-known/http-message-signatures-directory](https://http-message-signatures-example.research.cloudflare.com/.well-known/http-message-signatures-directory) 上公开了 bot 目录,
3. 它提供了用于请求签名、JWK 密钥 ID 和目录的调试工具。
### 签名
| 示例 | 描述 |
| :------------------------------------------------- | :------------------------------------------- |
| [浏览器扩展](./examples/browser-extension/) | 为每个传出请求添加 `Signature` |
| [Rust](./examples/rust/) | 对硬编码的测试请求进行签名 |
### 验证
| 示例 | 描述 |
| :----------------------------------------------------- | :----------------------------------------------------- |
| [Cloudflare Workers](./examples/verification-workers/) | 验证每个传入请求的 RFC 9421 `Signature` |
| [Caddy Plugin](./examples/caddy-plugin/) | 验证每个传入请求的 RFC 9421 `Signature` |
| [Rust](./examples/rust/) | 验证示例测试请求 |
### HTTP 签名目录
| 示例 | 描述 |
| :----------------------------------------------------------------- | :------------------------------------------------------------------------------------ |
| [Cloudflare Workers](./examples/signature-agent-card-and-registry) | 在 Cloudflare Workers 上托管 registry、Signature Agent Card 和已签名的密钥目录 |
## 开发
本仓库使用 [npm](https://docs.npmjs.com/cli/v11/using-npm/workspaces) 和 [cargo](https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html) workspaces。它提供了几个包:
| 包 | 语言 | 描述 |
| :------------------------------------------------------------- | :--------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [http-message-sig](./packages/http-message-sig/) | TypeScript | RFC 9421 中定义的 HTTP Message Signatures |
| [jsonwebkey-thumbprint](./packages/jsonwebkey-thumbprint/) | TypeScript | RFC 7638 中定义的 JWK Thumbprint |
| [web-bot-auth](./packages/web-bot-auth/) | TypeScript | [draft-meunier-webbotauth-httpsig-protocol-00](https://datatracker.ietf.org/doc/draft-meunier-webbotauth-httpsig-protocol/00/) 中定义的适用于 Bot 的 HTTP Message Signatures |
| [web-bot-auth](./crates/web-bot-auth/) | Rust | [draft-meunier-webbotauth-httpsig-protocol-00](https://datatracker.ietf.org/doc/draft-meunier-webbotauth-httpsig-protocol/00/) 中定义的适用于 Bot 的 HTTP Message Signatures |
| [http-signature-directory](./crates/http-signature-directory/) | Rust | 验证 HTTP 消息签名目录是否已正确签名且有效 |
## 安全注意事项
此软件尚未经过审计。请自行斟酌使用。
## 许可证
本项目基于 Apache 2.0 许可证。
### 贡献
除非您明确声明,否则由您故意提交以包含在本作品中的任何贡献均应按上述规定采用 Apache 2.0 许可证,且无任何附加条款或条件。
标签:HTTP消息签名, Web Bot Auth, 内核驱动, 可视化界面, 暗色界面, 程序员工具, 网络协议, 自动化请求, 通知系统