跳转到主要内容
# =============================================================
# 7. SECURITY (安全指纹)
# 资产封条,确保逻辑不可篡改
# =============================================================
security:
  hash_algo: "SHA-256"
  signature: "0x8f2a...e41c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9"

1、参数字段

参数名必填类型说明
hash_algoEnum摘要算法。标准值:SHA-256。用于生成协议内容的唯一特征值。
signatureString数字签名值。使用创作者私钥对哈希值进行加密后的结果。
encodingString签名编码格式。默认 hexbase64

2、安全校验流程 (Verification Flow)

runly-cli 或执行引擎加载一个 .runly 文件时,必须强制执行以下算法流程:
  1. 分体提取 (Payload Extraction):
    • 提取 security 域之前的所有内容作为待验签原文(Canonical Body)。
  2. 标准化 (Canonicalization):
    • 对 YAML 键值对进行字母序排序(Key Sorting),消除空格、换行符差异,确保在不同操作系统下生成的哈希值完全一致。
  3. 哈希计算 (Hashing):
    • 使用 hash_algo 声明的算法(如 SHA-256)计算 Body 的摘要。
  4. 签名验证 (Signature Verification):
    • 提取 manifest.creator.pub_key 中的 Ed25519 公钥。
    • 验证 signature 是否为该公钥对 Body 哈希值的合法签名。
    • 判定:若验证通过,标记资产为 TRUSTED;若失败,立即终止加载,报错 AssetTamperedError

3、为什么选择 Ed25519 算法?

  • 高性能: 签名和验证速度极快,适合 CLI 高频校验。
  • 短签名: 生成的签名长度固定且较短,方便嵌入 YAML 且不影响阅读。
  • 安全性: 具备极高的抗碰撞性和抗侧信道攻击能力,是目前区块链和工业级通信协议的首选。