Skip to main content

包签名安全

包完整性

Deb 包:

  • 所有 deb 包必须包含 MD5 校验和文件(由 dpkg-deb 自动生成):
    DEBIAN/md5sums

说明: 开发者无需手动创建 DEBIAN/md5sumsdpkg-deb 在构建时会自动生成。

  • 开发者应在 deb 包旁提供 SHA-256 校验和:
    sha256sum <appid>_<version>_amd64.deb > <appid>_<version>_amd64.deb.sha256

Docker 应用:

  • Docker 镜像应使用签名/摘要锁定引用:
    image: myapp@sha256:<摘要>  # 优先于 :latest
  • 使用 Docker Content Trust(DOCKER_CONTENT_TRUST=1)进行验证拉取

发布者信任

TOS 开发者平台通过以下方式建立发布者信任:

  1. 开发者账号验证:注册需邮箱验证
  2. 应用审核:所有提交均经过人工安全审核
  3. 发布者身份:config.ini 中的 publisher 字段会展示给用户
  4. 版本审计追踪:所有版本提交均有日志记录且可追溯

未来计划: 铁威马计划为 Deb 应用引入基于 GPG 密钥的包签名,并为容器镜像集成 Docker Content Trust。

在完整 GPG 签名方案实施前,SHA-256 校验和为必填项。未来 GPG 签名实施后,此要求将调整为可选或并行的补充验证方式。

  1. 所有提交必须为每个二进制产物附带 SHA-256 校验和文件
  2. 平台对比上传包验证校验和
  3. 校验和不匹配将导致自动驳回
  4. 维护者必须在其仓库账户(GitHub/Gitee)上启用双重认证(2FA)

安全审计要求

所有应用在审核期间均需通过安全审计:

检查项Deb 应用Docker 应用
无硬编码凭据
严禁 root 权限
无特权模式(严禁)N/A
无全局可写文件N/A
仅声明所需依赖
无过度资源消耗
漏洞扫描可选推荐 docker scan / trivy
无脚本注入漏洞
无路径遍历漏洞
日志中无敏感信息
校验和与上传产物匹配

供应链安全

Deb 应用:

  • 在 DEBIAN/control 中声明精确的依赖版本
  • 尽可能使用可复现的构建过程
  • 不要捆绑不必要的文件或库

Docker 应用:

  • 镜像标签锁定为特定版本或摘要(避免 :latest
  • 使用多阶段构建以减小攻击面
  • 定期更新基础镜像以包含安全补丁
  • 不在生产镜像中包含开发工具