valkyoth/brynja
GitHub: valkyoth/brynja
一个安全优先、零依赖、no_std 的 Rust TLS 实现项目,通过严格的代码隔离与小型化里程碑构建可审计的加密通信基础库。
Stars: 1 | Forks: 0
安全优先、无依赖、no_std 的 Rust TLS 实现。
以小型、经过审计的发布版本构建,严格隔离现代与遗留协议。
# brynja Brynja 是一个安全优先、无依赖的 Rust `no_std` TLS 项目。它正通过 小型且易于审查的里程碑进行开发,目标是成为可在 `1.0.0` 版本投入 严肃生产环境的 TLS 实现。 版本 `0.1.0` 仅作为代码库的基础。它确立了 crate、 平台、标准、测试和安全的边界。它**并未**实现 TLS,绝不能用于保护网络流量。 ## 安装说明 Brynja 尚未发布,也未准备好供应用程序使用。一旦有里程碑 版本发布,常规的依赖项配置将为: ``` [dependencies] brynja = "0.1" ``` 对于每个获准的现代发布标签,`brynja` facade 将按该 标签版本发布。支持性 crate 保持独立的版本,并且仅在 发生更改时发布;未更改的支持性 crate 不会重新发布。受保护的 发布工具会验证确切的包集合和依赖顺序,并最后发布 facade。 ## 设计边界 - 现代 `brynja` facade 绝不能通过其特性启用 SSL 或其他 遗留协议。 - 遗留实现位于显式命名的包中,并使用 独立的 API、状态、配置、协商、缓存和 ticket 密钥。 - 每个遗留引擎都使用 `brynja-legacy-*` 包名,以便 在清单、lockfiles、SBOM 和策略报告中明显区分。 - `brynja-tls` 是一个常青的 facade,也是基于独立 版本化现代 TLS 引擎的单趟路由器;新一代 TLS 不会重新定义 现有的引擎包,也不会自动将其前身变为遗留版本。 - 禁止使用运行时和构建依赖。未来的任何例外都需要 专用的 adapter crate、书面的准入审查、测试和发布门控。 - 版本 `0.11.1` 和 `0.11.2` 评估并有条件地实现了 针对第一方 `sanitization` crate 的一个单独挑选的 `brynja-sanitization` adapter。它使用禁用默认特性的确切固定版本, 从不激活 `zeroize`,并且不是 facade、 协议引擎、遗留引擎或 FIPS 模块的依赖项或特性。 - 每个生产环境的 crate 默认都是 `no_std`。平台服务通过 显式的调用方提供的接口引入。 - FIPS 140-3 支持计划通过独立的 `brynja-fips-module` 和 `brynja-fips` 包来实现,而不是作为布尔型的 Cargo 特性。只有确切发布的、 绑定证书的模块和经过测试的运行环境才能带有 验证声明;当前项目尚未通过 FIPS 验证。 - 源文件限制在 500 行以内,里程碑在变得 过大而无法安全审查之前会被拆分。 - 某个特性被编译绝不代表该协议已实现、 安全、可互操作、已审计或已具备生产环境可用性。 - 锁定的 RFC 闭包及其路线图映射记录在 [RFC 覆盖率审计](https://github.com/valkyoth/brynja/blob/main/docs/RFC_COVERAGE_AUDIT.md)中; v0.3.2 到 v0.3.5 随后将把每条适用的规范性声明转化为 生命周期正确的“源码到计划再到代码与测试”的可追溯性。 ## 工作空间 | 包 | 角色 | 0.1.0 状态 | | --- | --- | --- | | `brynja` | 现代生产环境 facade | 仅基础 | | `brynja-core` | 有界的网络层、缓冲区、错误、状态和 provider 域 | 仅基础 | | `brynja-crypto` | 第一方哈希、MAC、AEAD、KDF、RSA 和 ECC | 仅基础 | | `brynja-pki` | ASN.1、DER、X.509、路径验证和吊销 | 仅基础 | | `brynja-tls` | 常青的现代 TLS facade 和单趟版本路由器 | 仅基础 | | `brynja-tls13` | 特定版本的 TLS 1.3 流引擎 | 仅基础 | | `brynja-tls13-handshake` | 与 QUIC 共享的记录无关的 TLS 1.3 握手 | 仅基础 | | `brynja-tls12` | 特定版本的显式强化 TLS 1.2 引擎 | 仅基础 | | `brynja-quic-tls` | QUIC/TLS 握手集成 | 仅基础 | | `brynja-dtls` | 现代 DTLS 引擎 | 仅基础 | | `brynja-platform` | 显式的熵、时间、存储和 I/O 集成 | 仅基础 | | 未来的 `brynja-sanitization` | 可选的协议无关的第一方 sanitization adapter | 未获准 | | `brynja-legacy` | 选择性启用的遗留 facade;无默认特性 | 仅边界 | | `brynja-legacy-*` 引擎 | TLS 1.1/1.0、SSL、WTLS、PCT 和 SNP 隔离 | 仅边界 | | 仅限代码库的 crate | 测试、互操作、任务和验证工具 | 未发布 | 请参阅[遗留协议计划](https://github.com/valkyoth/brynja/blob/main/docs/LEGACY_PROTOCOL_PLAN.md), 了解每个过时协议所必须满足的独立警告、隔离、审计和渗透测试要求。 ## 平台策略 协议和加密核心必须保持为可移植的 `no_std` Rust。 首日 CI 旨在为 Linux、Windows、FreeBSD、 macOS、Android 和 iOS 编译工作空间,并在 Linux、Windows 和 macOS 上运行宿主机测试。 Aesynx 是计划的移植目标:任何 API 都不能假设存在当前的操作系统、 allocator、socket 类型、文件系统、时钟或平台 RNG。 请参阅[平台支持](https://github.com/valkyoth/brynja/blob/main/docs/platform-support.md)。 ## 信任仪表盘 | 领域 | 策略 | | --- | --- | | 许可证 | `MIT OR Apache-2.0` | | MSRV | Rust `1.90.0` | | 固定的稳定工具链 | Rust `1.97.1` | | 默认目标 | `no_std` | | 第三方 crate | 禁止 | | 第一方配套 crate | 仅限条件 adapter 的准入审查 | | Unsafe Rust | 在获准版本化、经审计的例外之前禁止使用 | | 默认网络 | 无 | | `brynja` 中的遗留协议 | 通过包边界予以杜绝 | | FIPS 140-3 状态 | 计划的 Level 1 软件-模块路径;未经验证 | | 生产环境就绪度 | 在经过确切审查的 `1.0.0-rc.N` 候选版本之前不予就绪 | ## Rust 版本支持 MSRV 为 Rust `1.90.0`。开发和完整发布证据固定为 Rust `1.97.1`,这是在 2026-07-21 检查时的当前稳定补丁版本。 发布预检会再次查询上游,如果版本固定或 工具链已过时,则会失败并拒绝继续。 | Rust 工具链 | 所需的验证内容 | | --- | --- | | `1.90.0` | 工作空间全特性兼容性检查 | | `1.91.0` | 工作空间全特性兼容性检查 | | `1.92.0` | 工作空间全特性兼容性检查 | | `1.93.0` | 工作空间全特性兼容性检查 | | `1.94.0` | 工作空间全特性兼容性检查 | | `1.95.0` | 工作空间全特性兼容性检查 | | `1.96.0` | 工作空间全特性兼容性检查 | | `1.96.1` | 工作空间全特性兼容性检查 | | `1.97.0` | 工作空间全特性兼容性检查 | | `1.97.1` | 完整的格式化、lint、测试、平台、策略、文档、打包和安全门控 | 当补丁版本是项目承诺支持的稳定版本时,将单独列出。 权威的版本矩阵请参见 [CRATE_VERSION_MATRIX.md](https://github.com/valkyoth/brynja/blob/main/docs/CRATE_VERSION_MATRIX.md)。 ## 检查 ``` scripts/checks.sh scripts/check-rust-version-matrix.sh cargo deny check cargo audit ``` 联网的 `scripts/check_latest_tools.sh` 检查在发布前 是强制性的。GitHub CodeQL 使用默认设置;本代码库有意不 添加高级 CodeQL 工作流。 在每个实现暂停点,用户会对发布候选版本进行渗透测试。 实现代码和当前版本化的 PASS 报告将一起提交。任何 后续由 CI 驱动的修复必须在同一提交中更新该报告,并且只有在 GitHub 状态全绿且用户明确要求时才会进行标签标记。 ## 文档 - [最初构想与最终架构决策](https://github.com/valkyoth/brynja/blob/main/docs/initial-idea.md) - [实现计划](https://github.com/valkyoth/brynja/blob/main/docs/IMPLEMENTATION_PLAN.md) - [发布计划](https://github.com/valkyoth/brynja/blob/main/docs/RELEASE_PLAN.md) - [版本计划](https://github.com/valkyoth/brynja/blob/main/docs/VERSION_PLAN.md) - [威胁模型](https://github.com/valkyoth/brynja/blob/main/docs/threat-model.md) - [标准源策略](https://github.com/valkyoth/brynja/blob/main/docs/rfc-source-policy.md)
标签:no_std, Rust, TLS, 可视化界面, 密码学, 底层开发库, 手动系统调用, 网络安全, 网络流量审计, 防御工具, 隐私保护