文镇 TypeFlow 用户文档
一站式字体授权管理与水印追溯工具。纯离线运行,覆盖字体入库、订单创建、水印嵌入、授权书签发、邮件发送、泄露追溯的完整闭环。
软件介绍
文镇面向独立字体设计师和小型字库工作室——一个人完成从设计到发售的全流程,没有技术团队;或团队几人、几十款字体,无力部署服务器和在线验证系统。
共同痛点:字体发出去就失控了——被转卖、被滥用、被二次分发,找不到谁泄露的。
文镇将唯一订单号不可见地嵌入字体字形,实现"嵌入→签发→追溯"的完整闭环。独特性在于:中文汉字对绝对坐标不敏感,整体平移不改变笔划间的相对关系,字符造型完全不受影响。这为字形级隐写提供了天然土壤。
最重要的是——纯离线,不联网,不上传任何数据。你的字体、客户信息、订单记录,全部留在你自己的电脑上。
安装指南
- 打开
文镇-v3.0.0.dmg - 将
文镇.app拖入 Applications 文件夹 - 双击启动(首次打开可能需右键 → 打开以允许非 App Store 应用)
启动后打开独立的桌面窗口,无需浏览器。数据存储于:
macOS: ~/Library/Application Support/文镇/
Windows: %LOCALAPPDATA%\文镇
首次启动自动获得 30 天 Pro 全功能试用。
xattr -cr /Applications/文镇.appWindows 首次启动如遇杀毒软件拦截,请将安装目录加入白名单。
界面概览
报纸排版风格的仪表盘,左侧导航 + 右侧功能面板,信息集中、一目了然:
- 今日收入 — 当日销售额和订单数,大号数字醒目展示
- 本月订单 / 本月销售额 / 已售总份数 — 月度与累计统计
- 最近订单 — 最近 4 笔,显示订单号、字体名、客户、状态,点击跳转详情
- 快捷操作 — 新建订单和追溯入口
- 底部箴言 — 随机展示一句关于交付与信任的短句,当前版本号及 Lite/Pro 标识
快速上手
三步完成一次完整签发:
- 选择客户 — 从下拉搜索已有客户,或新建客户(名称、邮箱、身份证/税号为必填)
- 选择字体 — 从字体库选择,或上传本地字体文件
- 点击签发 — 系统自动嵌入水印、生成授权书 PDF、发送邮件(Pro),一步到位
个性化配置
账户
- 厂牌信息:中文名、英文名、印章文字、签发人姓名
- 印章预览:实时显示当前印章效果
- 印章图片(Pro):上传 PNG 替代文字印章,嵌入授权书 PDF
- SMTP 邮箱(Pro):服务器地址、端口、SSL/TLS、发件账号和显示名,密码 AES-GCM 加密存储,支持 163/QQ/Gmail 预设
专业版
- License 激活:查看机器 ID,输入 License Key 或导入
.licensekey文件激活 Pro - Lite vs Pro 对比表:直观展示两个版本的功能差异
- 试用状态:首次 30 天全功能试用,到期后切换 Lite
备份
v3.0 起数据统一存储在 SQLite 数据库(typeflow.db)中,不再使用分散的 JSON 文件。导出/导入仍使用 JSON 格式以保证可移植性。
- 签发归档链:每笔签发仅记录哈希链(不入库字体和授权书),可验证完整性。需要时从水印文件夹调取文件,按需打包导出证据链报告 PDF
- 完整备份:ZIP 包含全部数据、密钥、原版字体和水印文件,可完整恢复至新设备
- 数据导出(可展开):订单、客户分别导出 JSON(Pro 额外支持 Excel)
- 数据导入(可展开):订单、客户分别导入 JSON/Excel,追加不覆盖
系统
- 授权方案:系统预设(个人版/个人商用/企业版,Pro 可编辑)+ 自定义方案(Pro)
- 密钥管理:查看指纹、签发统计、创建时间;导出/导入密钥;生成新密钥(带旧密钥备份);完整版本历史
- 个人候选池:HMAC 派生的专属候选字子池,可手动编辑或重置
新建订单
工作台布局——左侧:客户、字体、授权方案、价格等信息卡片,右侧:实时预览授权书纸张效果。一屏完成所有操作,所见即所得。
- 选择客户 — 从下拉搜索已有客户,或新建客户(名称、邮箱、身份证/税号必填)
- 选择字体 — 从字体库选择,支持拖放
- 选择授权版本 — 个人版 / 个人商用 / 企业版 / 自定义方案(Pro)
- 设置价格 — 可直接输入或点击预设金额,自动记忆上次选择
- 可选备注
- 点击签发 — 系统自动嵌入水印、生成订单和授权书 PDF
批量客户(Pro)
Pro 版支持一次选择多个客户,系统为每个客户独立生成订单和水印字体——每个客户收到的水印不同,泄露后可精确定位到具体客户。
草稿自动保存
新建订单表单内容每 2 秒自动保存为草稿。关闭页面或刷新后再次打开,可选择恢复草稿或丢弃。草稿在签发成功后自动清除。
订单管理
支持卡片视图和列表视图切换。可按订单编号、客户名称、邮箱、字体名称搜索,按编号/状态/客户/字体/金额/日期排序。支持状态筛选和日期范围检索。
点击订单进入详情,可操作:
- 查看完整订单信息、水印位序列、锚定字形明细
- 重发授权邮件(需配置 SMTP)
- 下载授权书 PDF 和水印字体文件
- 删除订单
签发证据体系 详细说明
签发时自动完成证据埋点。本地哈希链记录每笔订单的文件指纹,篡改任一条目链即断裂。Pro 版启用 SMTP 后叠加三轨邮件存证:主邮件(交付凭证)、密件抄送备份(冗余保障)、哈希存证邮件(时间锚点)。三者互补,即使本地文件丢失仍可通过邮箱记录重建证据。可在设置 → 备份中查看归档状态和异常详情。
数据导入导出
数据存储在 SQLite 数据库中(typeflow.db),导出/导入使用 JSON 格式便于迁移。在设置 → 备份 → 数据导出/导入中操作。
| 操作 | 格式 | 可用版本 | 说明 |
|---|---|---|---|
| 完整备份 | ZIP | Lite / Pro | 含全部数据、密钥、字体、水印、证据链,可完整恢复至新设备 |
| 数据导出 | JSON | Lite / Pro | 订单/客户分别导出 |
| 数据导出 | Excel | Pro | 订单/客户分别导出 |
| 数据导入 | JSON / Excel | Lite / Pro | 追加不覆盖,跳过重复记录 |
客户管理
- 查看所有客户及其订单历史
- 按名称、邮箱、身份证号搜索
- 点击客户名跳转订单页自动筛选
- 新建订单时可从客户列表搜索选择
- 客户信息包含:名称、邮箱、身份证/税号、公司、电话、微信、备注
字体库
- 上传字体文件(
.ttf/.otf/.woff/.woff2) - 管理字体信息:显示名、文件名、SHA-256、使用次数、分类标签、同族版本
- 显示名用于授权书展示(如"行云"代替"xingyun-Regular.ttf")
- 字体预览卡片含单字底纹效果
- 分类/标签管理:chip 选择器 + 颜色标识 + 双击编辑/删除
- SHA-256 全量哈希去重,防止重复上传
- Lite 版最多 5 款,Pro 无限制
技术原理
为什么字体水印可行
汉字审美精度体现在笔划造型(相对关系),而非绝对坐标位置。字形整体平移不改变笔划间的相对关系——笔划造型、间架结构完全保留,只是整字在画布上挪动了微小的距离。
位移量在 em 单位个位数级(1 em = 1000–2048 单位),属于亚像素精度。屏幕渲染时坐标量化后落在同一像素,印刷时 300 DPI 下位移远低于人眼分辨能力。这是整个方案成立的前提。
嵌入原理
- 水印序列生成:订单号 → 密码学哈希 → 二进制序列 + 校验位
- 锚定字形选择:HMAC 密钥确定性选择,雪崩效应保证不同订单的锚定字集合完全不同
- 字形修改:TrueType / CFF 字形整体平移——bit=1 位移,bit=0 不变
- 冗余编码:每位水印重复存入多个不同字形,通过多数投票提高抗子集化能力
- 个人候选池:每个安装实例拥有独立的候选字子池(密码学派生),不同用户的池重叠率极低
- 随机扰动:对子池内非锚定字施加随机微调,幅度与锚定字相同——攻击者无法区分水印位移和噪声位移
配对间距通道(v5 双通道水印)
v3.0 将间距通道作为标准水印协议(v5)内置——在字体的配对字距调整(kern pair)中嵌入比特序列,与字形坐标通道互为备份:
- 嵌入方式:选取特定字形对,微调其间距值,bit=1 增加间距,bit=0 不变。调整量在亚像素级别
- 双重冗余:字形坐标通道 + 配对间距通道各自独立编码,任意单通道存活即可追溯
- 交叉验证:两通道结果互相印证,显著降低误判率。置信度评分统一计入双通道确认
- 抵抗目标:攻击者若消除字形位移,间距通道仍可存活;反之若重排字形对,坐标通道不受影响
多 Pass 追溯流程
追溯采用五级分阶段递进策略,逐层加深检测深度:
- Pass 1(checksum 快速匹配):校验位闸门过滤,干净字体秒级确认
- Pass 2(偏移扫描 + 比特匹配):抗均匀平移,遍历偏移恢复信号
- Pass 3(Pearson 相关系数):纯统计检测,抗随机扰动和淹没攻击
- Pass 4(偏移 + 相关系数):组合检测,应对叠加攻击
- Pass 5(间距通道交叉验证):独立第二通道验证,抗针对性伪造
每个 Pass 独立模块化,结果按置信度排序,多 Pass 一致命中时置信度最高。攻击模式自动识别并标注在追溯报告中。
威胁模型
攻击者持有:水印字体文件(一份或多份)、本文档所述的全部算法原理。
攻击者不持有:原版字体(无对比基准)、水印密钥(无法确定锚定字形)、用户自定义的候选字池。
核心事实——攻击者必然盲操:没有原版字体就没有对比基准,攻击后无法验证水印是否已被破坏。安全遵循 Kerckhoffs 原则:算法公开,安全仅依赖密钥。
字体水印 vs 图片水印
| 维度 | 图片 LSB 隐写 | 字体水印 |
|---|---|---|
| 修改对象 | 像素最低位 | 字形整体位置 |
| 修改本质 | 加"噪点" | 整体平移 |
| 对抗目标 | 视觉检测 | 格式转换、子集化等字体工具操作 |
| 不可见性维度 | 视觉不可见 | 视觉不可见 + 工具不可检 |
追溯验证
追溯页面提供统一拖放区,上传字体文件(.ttf/.otf/.woff/.woff2)或授权书 PDF 后自动识别类型并展开对应报告。
字体追溯
- 将疑似泄露的字体文件拖入或选择上传
- 系统自动读取 Name 表快速匹配,或从字体库自动匹配原始字体
- 如自动匹配失败,可手动从字体库选择或上传原始字体
- 展示四级置信度结论、匹配订单、水印位序列、字形检测明细
- 可一键导出 PDF 追溯报告,或通知涉事客户
匹配标准(四级置信度)
- 高度可信(high):存活率 ≥ 80%,20/20 匹配,多重验证一致——可直接作为确权依据
- 可信(trusted):存活率 ≥ 60%,≥ 18/20 匹配,信号清晰,容错范围内可信
- 存疑(suspicious):匹配达标但存在干扰(偏移校正、Name 表缺失等),建议结合其他信息判断
- 无法确认(none):信号过弱或统计显著性不足,无法形成有效追溯
授权书验证
- 上传授权书 PDF
- 系统提取 Ed25519 数字签名(Pro 版)
- 验签通过 → 展示原始签发信息,确认未篡改
- 验签失败 → 展示签名块声明的原始信息 + 篡改警告
泄露通知
当确认字体泄露后,可向涉事客户发送泄露通知邮件。邮件可通过 SMTP 直接发送(Pro),或生成 mailto 链接打开本地邮件客户端。
PDF 授权书签名
三层验证体系:层一(PDF Ed25519 数字签名)→ 层二(字体字形坐标水印)→ 层三(配对间距水印)。任一层存活即可追溯,多通道交叉验证。
签名覆盖 PDF 全部内容,任何篡改均导致验签失败。密钥与字体水印密钥独立管理。验证流程:上传 PDF → 提取签名 → 公钥验签 → 展示结果或篡改警告。
安全性分析
抗提取分析
攻击者尝试定位水印修改字的三种途径:
- 遍历字形对比坐标:无原版字体,无法区分"被改过的字"和"本来就长这样的字"。字形总数 6763+,锚定字仅占约 3%,搜索空间巨大
- 多份水印字体对比:个人候选池使不同安装实例的锚定字集合几乎不重叠。两份字体中坐标不同的字大概率是各自的锚定字,交集为空
- 拥有原版字体:这是唯一能精确定位水印锚定字的途径——攻击者需要同时持有原版字体和一份水印字体,逐字对比坐标差异。因此原版字体文件的安全是水印体系的基石,必须妥善保管,仅限自己持有。一旦原版字体泄露,所有基于该原版签发的水印字体都将面临被提取的风险
抗淹没攻击
淹没攻击(Flood Attack)指攻击者对字体中所有字形随机施加固定±向偏移,使水印信号淹没在全局噪声中。v3.0 内置 Pearson 相关系数检测器,自动应对:
- 原理:不依赖单个字的结果,而是对所有锚定字的位移方向做整体统计相关性分析。即使单个字被噪声淹没,大量锚定字的整体趋势仍然存活。
- 偏移校正:自动探测并扣减全局平移量,无需人工干预。
- 自适应阈值:使用归一化的统计量,与具体字体无关、与偏移量无关,误判率控制在极低水平。
- 追溯报告升级:遇相关检测命中时,报告额外展示锚定字统计分布(直方图 + 统计指标 + 通俗解读),不展示逐字判断结果,聚焦统计证据而非孤立采样点。
| 淹没强度 | 检测结果 |
|---|---|
| 轻微偏移 | 相关检测命中,置信度高 |
| 中等偏移 | 相关检测命中,置信度正常 |
| 较强偏移 | 相关检测仍可命中,建议结合其他证据综合判断 |
抗移除分析
| 攻击方式 | 效果 | 实验数据 |
|---|---|---|
| 坐标随机扰动(轻微) | 水印存活 | 扰动标准差 2 单位,恢复率 100% |
| 坐标随机扰动(中等) | 水印存活 | 扰动标准差 5 单位,恢复率 96% |
| 坐标随机扰动(较强) | 字体开始变形 | 扰动标准差 10 单位,恢复率 78% |
| 格式转换(TTF↔OTF↔WOFF2) | 无效 | 恢复率 100% |
| 子集化(保留 50% 字符) | 水印存活 | 恢复率 100% |
| 子集化(保留 20% 字符) | 水印存活 | 恢复率 100%(强证据) |
| 多次注入水印(覆盖攻击) | 无效 | 自定义候选池,10 轮后 10/10 存活 |
| 多副本串通攻击(5 份) | 无法定位锚定字 | 个人池方案,交集为空 |
| Name 表清除 | 无效 | 恢复率 100%(盲提取) |
攻击者的不可能三角
攻击者最多只能满足其中两项,无法三者兼顾:
- 无需原版对照 — 手头只有水印字体,没有原始字体参照
- 不损字体质量 — 字体仍可使用,不能面目全非
- 彻底移除水印 — 让水印信息完全无法恢复
要获得"水印一定没了"的信心,唯一办法是过度破坏到字体失去使用价值。攻击者永远在黑暗中操作,永远不知道自己成功了没有。
安全性总结
14 项安全属性全部通过:抗单份提取 ✓、抗多份对比 ✓、抗随机扰动 ✓、抗格式转换 ✓、抗子集化 ✓、抗覆盖攻击 ✓、抗串通攻击 ✓、抗 Name 表删除 ✓、盲操困境 ✓、密钥独立 ✓、个人候选池 ✓、Kerckhoffs 安全 ✓、双通道冗余 ✓、相关检测抗淹没 ✓
上述"抗原版对比"的前提是用户妥善保管原版字体文件。原版字体一旦泄露,攻击者即可通过对比定位水印锚定字。请务必将原版字体保存在本地,不随授权字体分发,不在网络传输。
FAQ
使用相关
Q: 文镇会上传数据到云端吗?
A: 不会。文镇是纯离线工具,不连接任何服务器,不上传字体、订单或任何数据。所有数据存储在本机。
Q: Lite 如何升级 Pro?
A: 在设置 → 专业版查看机器 ID,发给开发者获取 License Key 后激活。首次安装享受 30 天全功能试用。Pro 版一次性买断,永久使用,重大功能升级免费开放。
Q: 签发后如何交付给客户?
A: Lite 版签发成功后自动打开水印字体所在文件夹并弹出邮件撰写窗口;Pro 版自动通过 SMTP 发送邮件(含水印字体和授权书附件)。也可从订单详情页随时下载、重发。
Q: 字体库删除字体会删除源文件吗?
A: 不会。字体库仅管理索引和元数据,删除条目不会删除你的原始字体文件。
Q: 订单导入数量受限制吗?
A: 导入为追加模式,不覆盖已有数据,自动跳过重复订单。Lite 版导入受 50 单上限约束,Pro 版无限制。
水印相关
Q: 水印会影响字体渲染质量吗?
A: 不会。水印通过字形整体平移嵌入,偏移量属于亚像素级别,不改笔划造型和间架结构。屏幕渲染时坐标量化后落在同一像素,印刷也无法分辨。
Q: 删除字体 Name 表能去除水印吗?
A: 不能。水印嵌入在字形轮廓中,Name 表只是辅助快速查询的便签。实测删除 Name 表后水印 100% 完整恢复。
Q: 格式转换(TTF↔OTF↔WOFF2)会破坏水印吗?
A: 不会。主流格式转换工具保持坐标精度,水印在 TTF、OTF、WOFF2 之间无损转换。
Q: 字体被子集化了怎么办?
A: 增强模式提供 3 倍冗余保护——每 bit 在 3 个不同字形上存储副本。即使大量字符被子集化删除,只要还有少量标记字幸存,多数投票即可恢复。
Q: 换了密钥还能追溯旧订单吗?
A: 可以。系统保存完整密钥版本历史,追溯时自动逐一尝试所有历史密钥。此外锚定字形名称已存储在订单中,密钥变更后仍可直接定位。
Q: 攻击者反复注入水印能覆盖我的水印吗?
A: v2.3 引入个人候选池机制——每个安装实例有独特的候选字子池,攻击者的子池与你不同。反复注入几乎不触及你的锚定字,反而产生新水印暴露攻击者自己的订单号。
Q: 水印追溯结果是否等同于司法证据?
A: 水印提供技术溯源线索,可定位泄露来源的订单和客户信息。溯源结果附带时间戳和哈希校验,可作为电子证据提交,其证明力由司法机关依法认定。建议结合授权协议和水印技术共同保护知识产权。
版本差异
| 功能 | Lite(免费版) | Pro(专业版) |
|---|---|---|
| 字体库数量 | 最多 5 款 | 无限制 |
| 订单数量 | 最多 50 单 | 无限制 |
| 客户数量 | 无限制 | 无限制 |
| 水印嵌入 | 支持(写入/不写入) | 同 Lite |
| 候选字池 | 自动派生个人专属子池 | 同 Lite |
| 批量订单 | — | 支持(多字体/多客户) |
| 数据导出 | JSON | JSON + Excel |
| 授权方案 | 预设只读 | 可编辑 + 自定义 |
| 数字签名 | 基础 PDF | PDF + Ed25519 签名 |
| 印章图片 | — | 支持上传 |
| SMTP 邮件 | 跳转邮件客户端 | SMTP 直发 |
| 试用期 | 首次 30 天全功能 | 激活后永久 |
免责声明
数据安全责任
文镇为纯离线桌面工具,不连接网络、不上传数据、不提供云端存储服务。原版字体文件、订单数据、授权密钥、水印文件夹均由用户自行保管,工具方不承担因数据丢失、泄露导致的任何责任。
水印溯源效力
水印技术可定位字体泄露的原始订单和客户信息,为维权提供技术线索。溯源结果附带时间戳和哈希校验,可作为电子证据使用,其证明力由司法机关依法认定。工具方不承担维权失败、盗版损失及任何间接或附带损失的连带责任。
纯离线模式的风险
- 无云端备份:无自动备份、无数据恢复通道。设备故障、误删、系统重装可能导致数据永久丢失。请务必定期手动备份。
- 仅支持被动溯源:无法主动扫描网络上的侵权内容。需先获取疑似盗版的字体文件才能进行追溯。
- 设备与系统差异:不同设备可能存在微小的坐标解析偏差。水印检测阈值经过冗余设计,轻微偏差不影响核心溯源结果。建议固定设备进行水印嵌入与解析。
维护规则
- Pro 版一次性买断,不收取年费或月费
- 终身 = 终身免费使用当前及后续迭代的基础功能(含漏洞修复、兼容性优化)
- 重大功能升级免费向已购 Pro 用户开放
- 更新通过官网发布离线更新包,用户手动下载安装(无自动推送)
禁止行为
- 禁止对软件进行逆向工程、反编译、破解授权等行为
- 禁止将水印技术用于非法追踪、侵犯隐私等非授权用途