版本:1.0.0
状态:生效
发布机构:Ethernos Studio - Security Lab
规范编号:ESSO-10410
适用范围:Ethernos 全生态软件签名、校验、包管理器及第三方兼容实现
最后更新:2026-06-17
本规范定义 Ethernos 生态系统中软件完整性校验与身份验证所必须使用的密码学算法标准,包括:
本规范为 ESSO-10430(包管理器证书规范)及 ESSO-11420(网络来源处理规范)提供密码学层面的实现依据。
| 术语 | 定义 |
|---|---|
| 哈希(Hash) | 将任意长度输入映射为固定长度输出的单向密码学函数,用于完整性校验。 |
| 数字签名(Digital Signature) | 使用私钥对数据摘要进行加密运算,生成可验证来源与完整性的密码学证据。 |
| Ed25519 | 基于 Edwards-curve 25519 的 EdDSA 签名方案,提供 128 位安全强度。 |
| 密钥对(Key Pair) | 由公钥与私钥组成的非对称密码学密钥集合,公钥公开,私钥保密。 |
| 密钥指纹(Key Fingerprint) | 公钥的密码学哈希值,用于快速标识与比对公钥。 |
| 签名载荷(Signing Payload) | 被送入签名算法的规范化数据内容,通常为待签名对象的规范化 JSON 或二进制摘要。 |
| 双重签名(Dual Signature) | 由发布者签名与官方认证机构签名共同组成的签名结构,提供两层独立验证。 |
SHA-256(Secure Hash Algorithm 256-bit)为 Ethernos 生态当前强制使用的唯一哈希算法。
package_sha256);*_sha256(如 package_sha256、commit_sha256)。若 SHA-256 出现密码学弱点或碰撞攻击可行化:
Ed25519 为 Ethernos 生态当前强制使用的唯一数字签名算法。
以下算法在 Ethernos 生态中被明确禁止用于新签发:
libsodium、标准库 ed25519 实现。cert.cavvy.ethernos.net 对应的指纹元信息文件中。active;expired 或 revoked,用于验证历史版本;revoked,并发布安全公告。签名前,必须将待签名对象按以下步骤处理为签名载荷:
signatures 字段,保留其余所有字段;签名在 JSON 中的表示:
{
"key_id": "a1b2c3d4e5f6a7b8",
"algorithm": "Ed25519",
"signature": "base64_encoded_signature"
}
key_id:公钥指纹,取 SHA-256 前 16 字节(32 字符十六进制),用于快速匹配公钥;algorithm:固定为 "Ed25519";signature:Base64(标准 RFC 4648)编码的 64 字节原始签名值。发布者签名
│
▼
生成签名载荷
│
▼
使用发布者私钥签名 → 生成 publisher.signature
│
▼
提交至官方认证服务器
│
▼
官方验证发布者签名有效
│
▼
使用官方根密钥私钥签名 → 生成 authority.signature
│
▼
合并为双重签名结构,写入 .cert 文件
客户端验证签名时,必须执行以下步骤:
cert.cavvy.ethernos.net/{fingerprint}.json 中提取对应 key_id 的公钥;signatures,JCS 规范化);signatures.publisher.signature;signatures.authority.signature;| 失败场景 | 客户端行为 |
|---|---|
| 公钥不存在或已撤销 | 拒绝安装,提示密钥无效。 |
| 签名值格式错误 | 拒绝安装,提示证书损坏。 |
| 签名验证失败 | 拒绝安装,提示内容可能被篡改。 |
| 算法字段非 Ed25519 | 拒绝安装,提示不支持的算法。 |
| 官方签名缺失 | 视为未通过官方认证,按未验证源处理。 |
在指纹元信息文件(.json)中注册的公钥:
{
"key_id": "a1b2c3d4e5f6a7b8",
"algorithm": "Ed25519",
"public_key": "MCowBQYDK2VwAyEA...",
"activated_at": "2025-01-15T08:00:00Z",
"status": "active"
}
public_key:Base64 编码的 32 字节原始 Ed25519 公钥。参见 ESSO-10430 第 5.2 节。本规范仅约束其中密码学相关字段的算法与格式。
以下任一条件触发算法迁移评估:
| 语言 | 推荐库 |
|---|---|
| C/C++ | libsodium, OpenSSL 3.x |
| Rust | ed25519-dalek, ring |
| Go | crypto/ed25519 (标准库) |
| Python | PyNaCl, cryptography |
| JavaScript | tweetnacl-js |
客户端实现应使用 RFC 8032 附录 A 中的测试向量验证 Ed25519 实现正确性。
| 版本 | 日期 | 变更内容 |
|---|---|---|
| 1.0.0 | 2026-06-17 | 初始规范发布,确立 SHA-256 与 Ed25519 为基线算法。 |
规范制定:Ethernos Studio - Security Lab
生效日期:2026-06-17