itdojp/crypto-communications-assurance
GitHub: itdojp/crypto-communications-assurance
该项目为密码学通信产品提供机器可读的保障契约、安全目录和证据绑定框架,用于规范化保障输入和审计目标。
Stars: 0 | Forks: 0
# 密码学通信保障
为密码学通信产品提供可重用、机器可读的保障契约、配置文件、审计目标和证据桥接。
未来,经单独授权的桥接工作可能会与以下项目集成:
- [ae-framework](https://github.com/itdojp/ae-framework),用于规范、保障证据、策略门控和发布判定。
- [GenAI Repo Auditor](https://github.com/itdojp/genai-repo-auditor),用于防御性仓库安全审计。
## 项目角色
本仓库为密码学通信产品提供特定领域的保障输入和集成契约。它不是第三个保障控制平面。
计划的功能包括:
- 密码学通信安全属性、威胁和攻击者目录;
- 证据要求和可重用能力模块;
- 工具中立的保障配置文件和安全工件,供后续桥接映射;
- 仓库审计包和目标模板,其上游映射仍是未来的工作;
- 在开发保障和仓库审计之间建立内容绑定的证据桥接;
- 确定性合成夹具和兼容性测试。
## 状态
引导阶段 / pre-alpha。
目前尚无稳定的契约、兼容性承诺、生产就绪声明或认证声明。
冻结的引导契约仍然是封闭的、纯数据形式的
[`cryptocomm-pack/v1`](schema/cryptocomm-pack-v1.schema.json) 信封。其
`planned` 值仅代表意图,不会被重新解释为兼容性。
CCA-110 增加了三个独立的封闭 Draft 2020-12 契约:
- [`cryptocomm-pack-manifest/v1`](schema/cryptocomm-pack-manifest-v1.schema.json),用于发布者/源对单个不可变包的声明;
- [`cryptocomm-pack-lock/v1`](schema/cryptocomm-pack-lock-v1.schema.json),用于使用者解析确切的清单字节和解析器身份;
- [`cryptocomm-compatibility-record/v1`](schema/cryptocomm-compatibility-record-v1.schema.json),用于对一个确切清单与一个确切目标进行证据绑定的评估。
这些契约不包含完整的安全属性、威胁、模块或集成目录,并且不对 ae-framework 或 GenAI Repo Auditor 做出任何实际的兼容性声明。请参阅[契约版本控制](docs/CONTRACT_VERSIONING.md)和 [ADR 0002](docs/decisions/0002-pack-manifest-lock-and-compatibility.md)。
契约输入在进行 schema 和语义验证之前,会使用有界严格 UTF-8 JSON 解码。SHA-256 继续覆盖确切的原始字节;不隐含任何 JSON 规范化。
CCA-120 增加了三个封闭的、协议中立的目录契约和拟议的公开目录工件:
- [`cryptocomm-property-catalog/v1`](schema/cryptocomm-property-catalog-v1.schema.json):40 项安全、隐私、恢复、弹性和发布结果;
- [`cryptocomm-attacker-catalog/v1`](schema/cryptocomm-attacker-catalog-v1.schema.json):28 项攻击者能力和 8 个有界攻击者模型;
- [`cryptocomm-threat-catalog/v1`](schema/cryptocomm-threat-catalog-v1.schema.json):36 起引用了能力和受影响属性的不良事件或路径。
[人类可读](docs/CATALOG_COVERAGE.md)和[机器可读](pack/catalogs/v1/coverage-matrix.json)的覆盖矩阵公开了供审查的有界 Issue 范围。它们不是目录集契约、注册表、产品声明、安全证明或完整性声明。请参阅 [ADR 0003](docs/decisions/0003-security-catalog-separation-and-relationships.md)和[术语源基线](docs/SOURCE_BASELINE.md)。
CCA-130 增加了三个封闭契约、一个包含 15 个条目的公开协议中立模块目录,以及一个纯确定性解析器:
- [`cryptocomm-capability-module-catalog/v1`](schema/cryptocomm-capability-module-catalog-v1.schema.json) 定义了可用或不受支持的可重用保障范围模块,以及与所有三个 CCA-120 目录的确切字节绑定;
- [`cryptocomm-profile-request/v1`](schema/cryptocomm-profile-request-v1.schema.json) 记录明确的模块选择和确切的模块目录绑定;
- [`cryptocomm-resolved-profile/v1`](schema/cryptocomm-resolved-profile-v1.schema.json) 记录字面模块结果、目录闭包、源模块包含原因,以及源自属性的假设和排除项。
解析器验证确切字节和绑定,扩展模块/属性依赖项,在没有优先级的情况下检测冲突,保留 `resolved`、`unknown`、`unsupported` 和 `unresolvable`,并输出字节稳定的 UTF-8 JSON。`complete` 和 `incomplete` 仅仅是解析状态。该模块目录不会创建任何默认值、建议、最强配置文件、产品声明、执行请求、证据结果或批准。请参阅 [ADR 0004](docs/decisions/0004-capability-modules-and-deterministic-profile-resolution.md)。
CCA-130 的边界是明确的:`module != attacker capability`,`module != product capability`,`profile request != approval`,`resolved profile != product claim`,`resolution outcome != evidence status`,以及 `complete resolution != product security`。
CCA-240 增加了四个封闭契约和一个纯的、确定性的本地仓库
新鲜度评估器:
- [`cryptocomm-execution-result/v1`](schema/cryptocomm-execution-result-v1.schema.json) 在具有特定状态的发生次数和工件角色规则下,保留 `pass`、`fail`、`skip`、`unsupported`、`timeout`、`tool-error` 和 `not-run`;
- [`cryptocomm-evidence-provenance/v1`](schema/cryptocomm-evidence-provenance-v1.schema.json) 绑定明确的主体形式、确切的输入字节、生产者/工具/环境/范围事实、证据来源/使用限制,以及公开内容或私有不透明工件;
- [`cryptocomm-freshness-assessment/v1`](schema/cryptocomm-freshness-assessment-v1.schema.json) 仅根据明确的调用者事实保留 `fresh`、`stale`、`mismatched`、`unknown` 和 `not-assessed`;
- [`cryptocomm-evidence-binding-set/v1`](schema/cryptocomm-evidence-binding-set-v1.schema.json) 绑定一个结果的确切字节、来源记录,以及始终存在的新鲜度评估。
绑定集是一个最小的组合根,而不是证据存储或
聚合决策。请参阅 [CCA-240 契约语义](docs/EVIDENCE_CONTRACTS.md)
和 [ADR 0005](docs/decisions/0005-execution-provenance-freshness-and-binding.md)。
CCA-240 不做任何 ae-framework 或 GenAI Repo Auditor 兼容性声明,并且
没有添加上游适配器。
## 非目标
本项目不会:
- 实现密码学原语或协议;
- 认证产品;
- 证明不存在漏洞;
- 在没有人工安全审查的情况下确认漏洞;
- 扫描或利用生产或预发布系统;
- 自动批准合并、发布、风险接受或披露;
- 存储生产机密、客户数据或原始私人审计证据。
## 保障边界
工具、模型、扫描器、测试和形式化验证输出是证据生产者。它们不是人工批准或发布权限。
合成和仅用于测试的证据不得提升为真实证据。未执行、已跳过、不受支持、已超时或失败的检查不得表示为通过。
执行、来源、新鲜度和策略权限保持独立:`pass != evidence requirement satisfied`,`real != fresh`,`policy-evaluable != policy satisfied`,`fresh != sufficient`,以及 `evidence result != human approval`。
规范性边界记录在以下文档中:
- [产品边界](docs/PRODUCT_BOUNDARY.md)
- [公开/私有边界](docs/PUBLIC_PRIVATE_BOUNDARY.md)
- [状态语义](docs/STATUS_SEMANTICS.md)
- [架构](docs/ARCHITECTURE.md)
## 开发基线
- Node.js `>=22 <23`(引导程序在 `.node-version` 中固定为 `22.22.2`);
- pnpm `10.34.5`,通过 Corepack 选择并由 `packageManager` 固定;
- TypeScript `5.9.3`;
- JSON Schema Draft 2020-12 和 AJV `8.20.0`;
- Vitest `4.1.10`。
安装确切的依赖图:
```
corepack enable
pnpm install --frozen-lockfile
```
仓库本地命令:
```
pnpm run build
pnpm run typecheck
pnpm run lint
pnpm run test
pnpm run check:schemas
pnpm run check:docs
pnpm run lint:workflows
pnpm run verify
```
`pnpm run verify` 聚合了确定性、仓库本地的构建、类型检查、lint、
schema、测试、文档和工作流策略检查。在锁定的依赖项
安装完成后,这些命令都不会联系外部模型、扫描器、注册表后备或实时目标。
## 工作区
引导布局为权威包数据、
契约、后续适配器、合成夹具、示例、schema 和测试保留了不同的区域。
占位符目录包含一个解释其推迟范围的 README;它们
不得被解释为已实现的集成。
请参阅[架构](docs/ARCHITECTURE.md)和[路线图](docs/ROADMAP.md)。
## 贡献与安全
按照 [CONTRIBUTING.md](CONTRIBUTING.md) 中的说明,使用 Issue、专用分支和 Draft PR。
通过 [GitHub 私人漏洞报告](SECURITY.md)报告疑似漏洞;请勿将机密或
私人证据放入公开 Issue 中。
## 许可证
Apache License 2.0。请参阅 [LICENSE](LICENSE)。
归属信息在 [NOTICE](NOTICE) 中,全仓库的许可
标注在 [REUSE.toml](REUSE.toml) 中。
标签:DevSecOps, JSON Schema, MITM代理, 上游代理, 密码学, 手动系统调用, 机器可读契约, 自动化攻击, 质量保证