版本:1.0.1 状态:生效 发布机构:Ethernos Studio - Security Lab 规范编号:ESSO-11420 适用范围:兼容 Ethernos ESSO 体系的 Cavvy 包管理器及第三方兼容实现 最后更新:2026-06-17
本规范定义 Cavvy 包管理器及兼容实现在处理网络来源库时的安全策略与交互规范。规范聚焦于来源识别、风险分级与用户告知,不涉及包管理器的具体实现细节、命令行接口或内部架构设计。
目标包括:
| 术语 | 定义 |
|---|---|
| 纯包名(Bare Package Name) | 用户仅提供包标识符,未附带任何 URL、源地址或仓库信息。 |
| 直接 URL(Direct URL) | 用户显式提供 HTTP(S) 或 SSH 格式的完整仓库地址,用于定位并安装软件包。 |
| 自定义源(Custom Source) | 用户配置的第三方源服务器地址,配合包名进行安装。 |
| 官方安全源(Official Secure Source) | 由 Ethernos 官方认证并列入 caypak.ethernos.net 索引的来源。 |
| 未验证来源(Unverified Source) | 未通过 Ethernos 官方认证,或无法完成 ESSO-10430 证书验证链的来源。 |
| 阻塞警告(Blocking Warning) | 一种交互式安全提示,要求用户显式确认后方可继续操作,默认阻塞流程推进。 |
| 静默警告(Silent Warning) | 仅输出警告文本至标准输出或日志,不阻塞操作流程。 |
网络来源库按用户输入形式分为三类:
| 类别 | 输入形式示例 | 来源确定性 |
|---|---|---|
| A 类:纯包名 | cavvy-std |
必须通过官方安全源索引解析 |
| B 类:直接 URL | https://github.com/user/repo 或 [email protected]:user/repo |
由 URL 直接定位,绕过官方索引 |
| C 类:自定义源 + 包名 | --source https://custom.registry.net pkg-name |
由第三方源服务器解析 |
| 来源类别 | 安全假设 | 默认行为 | 警告级别 | 用户可关闭阻塞 |
|---|---|---|---|---|
| A 类:纯包名 | 官方认证安全库 | 直接查询官方索引,验证证书后安装 | 无 | 不适用 |
| B 类:直接 URL | 未验证来源 | 不阻止安装,触发阻塞警告 | 阻塞警告 | 是 |
| C 类:自定义源 + 包名 | 未验证来源 | 不阻止安装,触发阻塞警告 | 阻塞警告 | 是 |
caypak.ethernos.net);若官方索引中不存在该包名:
A 类来源在正确实现下,保证用户安装的包满足:
阻塞警告必须至少包含以下信息:
[SECURITY WARNING]
You are about to install a package from an unverified source.
Source URL: {URL}
This package has NOT been certified by the Ethernos official secure source system.
The content has not been verified for integrity or authenticity.
Risks include but are not limited to:
- Malicious code execution
- Data corruption or loss
- Supply chain compromise
To proceed, explicitly confirm your understanding of these risks.
[SECURITY WARNING] 或等效标识开头;yes / y)或点击确认,而非默认回车继续。若用户通过配置关闭阻塞警告,客户端仍必须在标准输出(或等效日志通道)打印以下文本:
[SECURITY NOTICE] Installing from unverified source: {URL}.
Integrity and authenticity verification skipped.
This installation is not covered by Ethernos secure source guarantees.
debug / trace)而被静默丢弃;warning 级别或标准输出流。与 B 类来源一致:
[SECURITY WARNING]
You are about to install a package from a custom source server.
Source Server: {SOURCE_SERVER_URL}
Package Name: {PACKAGE_NAME}
This source server is NOT part of the Ethernos official secure source network.
Packages from this server have not been certified by Ethernos.
Risks include but are not limited to:
- Untrusted package metadata
- Potential man-in-the-middle attacks
- Absence of official integrity verification
To proceed, explicitly confirm your understanding of these risks.
[SECURITY NOTICE] Installing from custom source server: {SOURCE_SERVER_URL}.
Package: {PACKAGE_NAME}.
Official secure source verification not applicable.
This installation is not covered by Ethernos secure source guarantees.
若自定义源服务器实现了 ESSO-10430 兼容的证书接口:
阻塞警告是一种问答式(Interactive)安全提示,具备以下特征:
yes、confirm)或选择确认选项;用户可通过以下方式关闭阻塞警告(具体配置键由客户端实现定义):
ESSO_UNVERIFIED_SOURCE_NO_BLOCK=1);--no-source-block)。关闭后的强制要求:
在非交互环境(如 CI/CD 流水线、脚本执行)中:
以下事件必须记录至客户端日志:
| 事件 | 日志内容 |
|---|---|
| 安装未验证来源(B 类) | 时间戳、URL、用户确认方式(阻塞确认 / 关闭后静默安装) |
| 安装自定义源(C 类) | 时间戳、源服务器 URL、包名、用户确认方式 |
| 关闭阻塞警告配置 | 时间戳、配置项、配置值、生效范围(全局 / 会话) |
| 官方安全源验证失败 | 时间戳、包指纹、失败原因 |
warning 级别;info 级别;error 级别。本规范直接继承 ESSO-10400 的安全基线:
本规范与 ESSO-10410 的衔接:
用户输入
│
├─ 纯包名(无协议头、无源参数)→ A 类:查询官方索引
│
├─ 以 http:// / https:// / git@ 开头 → B 类:URL 直接安装
│
└─ 指定 --source 或等效自定义源参数 → C 类:自定义源安装
警告文本的英文版本为规范强制要求。客户端实现可提供本地化翻译,但:
--verbose 等标志查看。| 版本 | 日期 | 变更内容 |
|---|---|---|
| 1.0.0 | 2026-06-17 | 初始规范发布,定义三类来源处理策略与阻塞警告机制。 |
| 1.0.1 | 2026-06-29 | 修正了官网地址 |
规范制定:Ethernos Studio - Security Lab 生效日期:2026-06-17