ESSO

Cavvy 网络来源库处理规范

版本:1.0.1 状态:生效 发布机构:Ethernos Studio - Security Lab 规范编号:ESSO-11420 适用范围:兼容 Ethernos ESSO 体系的 Cavvy 包管理器及第三方兼容实现 最后更新:2026-06-17


目录

  1. 范围与目标
  2. 规范性引用
  3. 术语与定义
  4. 来源分类体系
  5. 处理策略总览
  6. 纯包名来源处理
  7. HTTP/SSH URL 来源处理
  8. 自定义源服务器来源处理
  9. 阻塞警告机制
  10. 日志与审计要求
  11. 安全基线衔接
  12. 附录

1. 范围与目标

本规范定义 Cavvy 包管理器及兼容实现在处理网络来源库时的安全策略与交互规范。规范聚焦于来源识别、风险分级与用户告知,不涉及包管理器的具体实现细节、命令行接口或内部架构设计。

目标包括:


2. 规范性引用


3. 术语与定义

术语 定义
纯包名(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) 仅输出警告文本至标准输出或日志,不阻塞操作流程。

4. 来源分类体系

网络来源库按用户输入形式分为三类:

类别 输入形式示例 来源确定性
A 类:纯包名 cavvy-std 必须通过官方安全源索引解析
B 类:直接 URL https://github.com/user/repo[email protected]:user/repo 由 URL 直接定位,绕过官方索引
C 类:自定义源 + 包名 --source https://custom.registry.net pkg-name 由第三方源服务器解析

5. 处理策略总览

来源类别 安全假设 默认行为 警告级别 用户可关闭阻塞
A 类:纯包名 官方认证安全库 直接查询官方索引,验证证书后安装 不适用
B 类:直接 URL 未验证来源 不阻止安装,触发阻塞警告 阻塞警告
C 类:自定义源 + 包名 未验证来源 不阻止安装,触发阻塞警告 阻塞警告

6. 纯包名来源处理(A 类)

6.1 解析流程

  1. 客户端将包名提交至官方安全源索引服务器(caypak.ethernos.net);
  2. 若索引中存在该包名,提取其包指纹、最新版本及证书地址;
  3. 按 ESSO-10430 规范完成证书链验证与完整性校验;
  4. 验证通过后执行安装。

6.2 未命中处理

若官方索引中不存在该包名:

6.3 安全保证

A 类来源在正确实现下,保证用户安装的包满足:


7. HTTP/SSH URL 来源处理(B 类)

7.1 行为原则

7.2 阻塞警告内容要求

阻塞警告必须至少包含以下信息:

[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.

7.3 关闭阻塞后的静默警告

若用户通过配置关闭阻塞警告,客户端仍必须在标准输出(或等效日志通道)打印以下文本:

[SECURITY NOTICE] Installing from unverified source: {URL}. 
Integrity and authenticity verification skipped. 
This installation is not covered by Ethernos secure source guarantees.

8. 自定义源服务器来源处理(C 类)

8.1 行为原则

与 B 类来源一致:

8.2 阻塞警告内容要求

[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.

8.3 关闭阻塞后的静默警告

[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.

8.4 自定义源的证书验证(可选增强)

若自定义源服务器实现了 ESSO-10430 兼容的证书接口:


9. 阻塞警告机制

9.1 机制定义

阻塞警告是一种问答式(Interactive)安全提示,具备以下特征:

9.2 配置关闭机制

用户可通过以下方式关闭阻塞警告(具体配置键由客户端实现定义):

关闭后的强制要求

9.3 非交互环境处理

在非交互环境(如 CI/CD 流水线、脚本执行)中:


10. 日志与审计要求

10.1 强制记录事件

以下事件必须记录至客户端日志:

事件 日志内容
安装未验证来源(B 类) 时间戳、URL、用户确认方式(阻塞确认 / 关闭后静默安装)
安装自定义源(C 类) 时间戳、源服务器 URL、包名、用户确认方式
关闭阻塞警告配置 时间戳、配置项、配置值、生效范围(全局 / 会话)
官方安全源验证失败 时间戳、包指纹、失败原因

10.2 日志级别


11. 安全基线衔接

本规范直接继承 ESSO-10400 的安全基线:

本规范与 ESSO-10410 的衔接:


12. 附录

附录 A:来源类型快速判定流程

用户输入
    │
    ├─ 纯包名(无协议头、无源参数)→ A 类:查询官方索引
    │
    ├─ 以 http:// / https:// / git@ 开头 → B 类:URL 直接安装
    │
    └─ 指定 --source 或等效自定义源参数 → C 类:自定义源安装

附录 B:警告文本本地化建议

警告文本的英文版本为规范强制要求。客户端实现可提供本地化翻译,但:

附录 C:版本历史

版本 日期 变更内容
1.0.0 2026-06-17 初始规范发布,定义三类来源处理策略与阻塞警告机制。
1.0.1 2026-06-29 修正了官网地址

规范制定:Ethernos Studio - Security Lab 生效日期:2026-06-17