telagod/ctxward

GitHub: telagod/ctxward

Ctxward是一个用于LLM通信隐私保护的透明反向代理。

Stars: 0 | Forks: 0

# Ctxward [![ci](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/faecc28126013426.svg)](https://github.com/telagod/ctxward/actions/workflows/ci.yml) [![security](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/cb0f3ce9f8013428.svg)](https://github.com/telagod/ctxward/actions/workflows/security.yml) [![release](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/ff9d988b97013441.svg)](https://github.com/telagod/ctxward/actions/workflows/release.yml) [![license: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![image](https://img.shields.io/badge/image-ghcr.io%2Fctxward-informational)](https://github.com/telagod/ctxward/pkgs/container/ctxward) ## 为什么 您的应用程序与 OpenAI / Azure OpenAI / 自托管 LLM 通信。您不希望原始 PII、机密或内部标识符离开您的边界——但您也不希望包装每个 SDK 调用。 Ctxward 作为透明的反向代理,位于您的应用程序和上游之间: 1. 识别调用者(按租户 Bearer 原则、权限、允许的标签)。 2. 递归扫描请求和响应有效负载(`messages`、JSON、SSE 事件、包括 `docx/xlsx/pptx/pdf/csv/xml/text` 的多部分附件)。 3. 根据每个发现决定:`允许` / `编辑` / `标记化` / `审查` / `阻止`——内置策略优先,OPA 次之,最严格者胜出。 4. 将散列和标签记录到 JSONL 审计流中——**永不记录原始值**。 5. 提供 Prometheus 指标、`/readyz` 依赖项探测和 `/admin` 控制台。 与应用程序中的 SDK 包装器相比,Ctxward 是 **语言无关的**(您的应用程序保持不变),**策略集中的**(一个配置 + OPA,而不是 N 个代码库),并且 **作为基础设施可观察**(Prometheus、审计、漂移报告)。 ## 三个角色,三个入口点 ## 内部结构 - **反向代理核心**:Axum + Reqwest,rustls-tls,无系统 CA 依赖。源代码:[`src/proxy.rs`](src/proxy.rs),[`src/app.rs`](src/app.rs)。 - **检测管道**:线性时间 `regex`、高熵令牌检测器、可选的 Presidio 分析器侧车、JSON 指针感知扫描。见【`docs/policy/`](docs/policy/)。 - **决策引擎**:`标签 + 权限 + 允许的标签` → `允许 / 编辑 / 审查 / 阻止`,使用 OPA 严格合并。 - **可逆标记化**:AES-GCM-SIV 进程内;密钥来自环境变量,永不写入磁盘。见【`docs/policy/tokenization.md`](docs/policy/tokenization.md)。 - **会话关联**:`x-session-id` 聚合跨轮次的标签以击败分割有效负载的 exfil。 - **审查队列与回放**:`409 review_required` + 票号;管理员批准;客户端使用 `x-review-ticket-id` 回放。JSONL 持久性在重启后生存。见【`docs/operations/review.md`](docs/operations/review.md)。 - **附件扫描**:`text/*`、JSON/XML/CSV、**OOXML 节点级重写**(`docx/xlsx/pptx`)、简单文本 PDF 重写。见【`docs/policy/attachments.md`](docs/policy/attachments.md)。 - **流式传输**:SSE 事件级编辑,具有流感知的故障安全(哨兵事件,永远不会是中流 502)。 - **可观察性**:`/healthz`、`/readyz`(探测 OPA + Presidio)、带有 `policy_source` 集合度的 Prometheus 指标、JSONL 审计(无原始 PII)、嵌入在 `/admin` 的管理控制台。见【`docs/api/admin.md`](docs/api/admin.md)。 - **基准门**:场景矩阵(`json-redact` / `json-tokenize` / `json-review-replay` / `json-opa` / `json-presidio` / `pdf-redact`),具有绝对噪声地板和样本范围重叠抑制的回归检测器。见【`docs/operations/benchmarks.md`](docs/operations/benchmarks.md)。 架构决策和威胁模型考虑:【`DESIGN.md`](DESIGN.md)。GA 的路线图:【`PRODUCTIZATION.md`](PRODUCTIZATION.md)。 ## 验证其工作 ## 贡献 欢迎 PR。阅读【`CONTRIBUTING.md`](CONTRIBUTING.md)——TL;DR:`git commit -s`(DCO),运行相关的 `make smoke-*` 目标,在【`CHANGELOG.md`](CHANGELOG.md)中添加 `## [Unreleased]` 行。 安全问题:**不要公开问题**,见【`SECURITY.md`](SECURITY.md)。 ## 许可证 MIT——见【`LICENSE`](LICENSE)。
标签:Axum, Azure OpenAI, Bearer 认证, ETW劫持, JSONL, LLM 代理, OpenAI, Reqwest, rustls, Rust 编程, Streamlit, 内存规避, 反向代理, 可视化界面, 响应处理, 基础设施监控, 多部分附件, 大语言模型蜜罐, 审计流, 政策引擎, 数据脱敏, 文件处理, 文本解析, 日志记录, 标签管理, 监控指标, 策略集中, 网络安全, 自定义请求头, 自我托管, 访问控制, 语言无关, 请求解析, 透明代理, 通知系统, 隐私保护