包签名安全
包完整性
Deb 包:
- 所有 deb 包必须包含 MD5 校验和文件(由 dpkg-deb 自动生成):
DEBIAN/md5sums
说明: 开发者无需手动创建
DEBIAN/md5sums,dpkg-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 开发者平台通过以下方式建立发布者信任:
- 开发者账号验证:注册需邮箱验证
- 应用审核:所有提交均经过人工安全审核
- 发布者身份:config.ini 中的
publisher字段会展示给用户 - 版本审计追踪:所有版本提交均有日志记录且可追溯
未来计划: 铁威马计划为 Deb 应用引入基于 GPG 密钥的包签名,并为容器镜像集成 Docker Content Trust。
在完整 GPG 签名方案实施前,SHA-256 校验和为必填项。未来 GPG 签名实施后,此要求将调整为可选或并行的补充验证方式。
- 所有提交必须为每个二进制产物附带 SHA-256 校验和文件
- 平台对比上传包验证校验和
- 校验和不匹配将导致自动驳回
- 维护者必须在其仓库账户(GitHub/Gitee)上启用双重认证(2FA)
安全审计要求
所有应用在审核期间均需通过安全审计:
| 检查项 | Deb 应用 | Docker 应用 |
|---|---|---|
| 无硬编码凭据 | ✅ | ✅ |
| 严禁 root 权限 | ✅ | ✅ |
| 无特权模式(严禁) | N/A | ✅ |
| 无全局可写文件 | ✅ | N/A |
| 仅声明所需依赖 | ✅ | ✅ |
| 无过度资源消耗 | ✅ | ✅ |
| 漏洞扫描 | 可选 | 推荐 docker scan / trivy |
| 无脚本注入漏洞 | ✅ | ✅ |
| 无路径遍历漏洞 | ✅ | ✅ |
| 日志中无敏感信息 | ✅ | ✅ |
| 校验和与上传产物匹配 | ✅ | ✅ |
供应链安全
Deb 应用:
- 在 DEBIAN/control 中声明精确的依赖版本
- 尽可能使用可复现的构建过程
- 不要捆绑不必要的文件或库
Docker 应用:
- 镜像标签锁定为特定版本或摘要(避免
:latest) - 使用多阶段构建以减小攻击面
- 定期更新基础镜像以包含安全补丁
- 不在生产镜像中包含开发工具