数字存证
数字存证为你的作品生成带第三方时间戳的"出生证明":谁在什么时间拥有什么文件,且文件自那以后未被篡改。
什么时候用
- 作品完成当天 — 最佳存证时机,时间戳越早越好
- 发布到公开平台前 — 固定发布前的原始状态
- 接稿/商稿交付前 — 证明创作时间和权属,防止甲方事后扯皮
- 参赛投稿前 — 很多比赛要求提交原创证明
- 定期批量归档 — 把一段时间内的作品批量存证,建立创作时间线
怎么用
在工具箱找到「数字存证」卡片(紫色盾牌图标):
- 选择文件 — 拖拽或点击选择要存证的作品文件
- 填写作者信息 — 你的名字(会写入 PDF 报告和存证清单)
- 确认存证模式
- 简版存证 — 只有成品图(PNG/JPG/WebP)时自动走此模式
- 完整存证 — 检测到 PSD / CLIP / SAI / KRA / Procreate 等源文件时自动升级
- 点击"开始存证" — 软件依次计算哈希、构建 Merkle Tree、申请 TSA 时间戳、生成报告
- 保存 .nep 文件 — 存证完成后弹出保存对话框,建议保存到专门文件夹
技巧
批量存证时,所有文件通过 Merkle Tree 链式关联。只要其中一个文件被篡改,整棵树的根哈希就会改变。批量存证的文件之间形成了互相担保的关系。
存证结果说明
存证完成后,输出目录包含:
| 文件 | 说明 |
|---|---|
evidence.nep | 存证包本体(ZIP 格式,可选密码保护) |
proof.tsa | RFC 3161 时间戳令牌(第三方机构签发) |
proof.json | 本地降级时间戳(TSA 不可用时) |
VerificationReport.pdf | 法证报告,含二维码和验证链接 |
manifest.json | 结构化元数据,含文件清单、根哈希、作者信息 |
thumbnail.jpg | 缩略图拼贴 |
.nep 包内结构
text
evidence.nep (ZIP)
├── manifest.json
├── proof.tsa / proof.json
├── VerificationReport.pdf
├── thumbnail.jpg
└── works/
├── 000_artwork.png
├── 001_artwork.psd
└── ...
验证存证
方法一:验证网站
PDF 报告印有二维码和验证链接:
text
https://verify.arisfusion.com?id=<root_hash前16位>
方法二:Nephele 软件内验证
在工具箱找到「验证时间戳」,选择 .tsa、.tsr 或 .nep 文件即可自动验证。
方法三:手动验证(高级)
如果你有 TSA 的证书链文件,可用 OpenSSL 验证:
bash
openssl ts -verify -in proof.tsa -data <原始文件> -CAfile <TSA证书链>注意
验证时必须提供存证时的原始文件。任何修改(包括用 Photoshop 重新导出同名文件)都会导致 SHA-256 改变,验证失败。强烈建议把源文件和成品一起存证。
简版存证 vs 完整存证
| 维度 | 简版存证 | 完整存证 |
|---|---|---|
| 触发条件 | 只有成品图(PNG/JPG/WebP) | 包含 PSD / CLIP / SAI / KRA / Procreate 等源文件 |
| PDF 报告 | 标准报告,3 颗星装饰 | 增加"源文件存证"章节,5 颗星 + 金色徽章 |
| 证明力 | 证明"我在某时间点有这个成品" | 额外证明"我能提供创作源文件" |
| 建议用途 | 日常作品归档、社交媒体发布 | 商稿、参赛、高价值作品 |
提示
两种模式在密码学层面使用同样的 Merkle Tree + RFC 3161 时间戳机制,区别仅在于 PDF 报告的声明维度。简版的时间戳本身同样有效。
离线存证与 TSA 降级
如果存证时无法连接时间戳服务器(网络故障、代理问题、服务器维护),Nephele 会自动降级为本地时间戳:
- 生成
proof.json而不是proof.tsa - PDF 报告中标注"本地时间戳,未经第三方 TSA 认证"
- 文件哈希和 Merkle Tree 仍然正确计算,只是缺少权威时间背书
建议:恢复网络后重新存证一次,获取权威 TSA 时间戳。本地时间戳仅作为临时备份。
密码保护(可选)
.nep 文件支持 AES-256 密码保护。设置密码后,存证包会被加密。注意:
- 需要安装
pyzipper(pip install pyzipper) - 未安装时密码设置不生效,软件会提示
- 请妥善保管密码,丢失后无法恢复包内文件