docker/tuf-targetsTUF Target Files Docker 镜像是基于 The Update Framework (TUF) 规范构建的工具镜像,专注于 TUF 生态中 "target 文件" 的生命周期管理。Target 文件是 TUF 仓库中待分发的实际软件资产(如固件、安装包、配置文件等),其元数据(如哈希、大小、版本)需符合 TUF 安全规范并与 TUF 仓库集成。
Target 元数据管理
targets.json 或版本化元数据)安全签名与验证
targets 角色私钥对元数据签名仓库集成
完整性校验
软件更新分发
DevOps 流程集成
安全审计与验证
root.json)targets 角色私钥(用于签名元数据,需确保安全存储)通过 docker run 命令启动容器,执行 target 文件元数据生成与签名:
bashdocker run -it --rm \ -v /path/to/local/tuf-repo:/tuf/repo \ # 挂载本地 TUF 仓库目录至容器内 /tuf/repo -v /path/to/target-files:/tuf/targets \ # 挂载待处理的 target 文件目录至 /tuf/targets -v /path/to/signing-keys:/tuf/keys \ # 挂载包含 TUF targets 私钥的目录至 /tuf/keys -e TARGET_NAME="firmware-v1.2.3.bin" \ # 指定 target 文件名(位于 /tuf/targets 下) -e SIGNING_KEY_PATH="/tuf/keys/targets-private.key" \ # 指定签名私钥路径 -e REPO_PATH="/tuf/repo" \ # 指定 TUF 仓库路径(容器内路径) tuf-target-files:latest generate # 执行元数据生成命令
generate:生成 target 文件的元数据并签名,输出至 $REPO_PATH/targets.jsonverify:验证 target 文件与元数据的哈希一致性(需指定 TARGET_NAME 和 REPO_PATH)sync:将 target 文件同步至 TUF 仓库(需额外指定 REMOTE_REPO_URL 环境变量)适用于需要持久化 TUF 仓库和密钥的场景:
yamlversion: '3.8' services: tuf-target-manager: image: tuf-target-files:latest volumes: - ./tuf-repo:/tuf/repo # 本地 TUF 仓库(持久化) - ./target-files:/tuf/targets # 本地 target 文件目录 - ./keys:/tuf/keys # 持久化存储 TUF 私钥 environment: - TARGET_NAME="app-v2.0.0.tar.gz" - SIGNING_KEY_PATH="/tuf/keys/targets-private.key" - REPO_PATH="/tuf/repo" - HASH_ALG="sha256" # 哈希算法(支持 sha256/sha512) - VERSION="1.2.3" # target 文件版本号(元数据中记录) command: generate # 默认执行元数据生成
| 变量名 | 必需 | 描述 | 默认值 |
|---|---|---|---|
TARGET_NAME | 是 | 待处理的 target 文件名(需位于 /tuf/targets 目录下) | - |
SIGNING_KEY_PATH | 是 | TUF targets 角色私钥路径(容器内绝对路径) | - |
REPO_PATH | 是 | TUF 仓库路径(容器内路径,元数据输出目录) | /tuf/repo |
HASH_ALG | 否 | 哈希算法(支持 sha256/sha512) | sha256 |
VERSION | 否 | target 文件版本号(记录于元数据 version 字段) | 1.0.0 |
REMOTE_REPO_URL | 否 | 远程 TUF 仓库 URL(用于 sync 命令,支持 s3:///ftp:///http://) | - |
KEY_PASSWORD | 否 | 私钥密码(若私钥加密) | - |
| 宿主机路径 | 容器内路径 | 用途 |
|---|---|---|
/path/to/local/tuf-repo | /tuf/repo | 持久化 TUF 仓库(元数据存储目录) |
/path/to/target-files | /tuf/targets | 存放待处理的 target 文件 |
/path/to/signing-keys | /tuf/keys | 存放 TUF targets 角色私钥 |
容器支持以下命令(通过 docker run 或 command 字段指定):
generate:生成 target 元数据并签名verify:验证 target 文件与元数据哈希一致性sync:将 target 文件同步至本地/远程 TUF 仓库SIGNING_KEY_PATH 指向的私钥需严格保密,建议通过加密卷或密钥管理服务(如 Vault)挂载VERSION 字段或手动管理元数据版本号tuf-client、uptane)支持该版本--user $(id -u):$(id -g) 调整用户权限)manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务