文镇 TypeFlow 用户文档
一站式字体授权管理与水印追溯工具。纯离线运行,覆盖字体入库、订单创建、水印嵌入、授权书签发、邮件发送、泄露追溯的完整闭环。
软件介绍
文镇面向独立字体设计师和小型字库工作室——一个人完成从设计到发售的全流程,没有技术团队;或团队几人、几十款字体,无力部署服务器和在线验证系统。
共同痛点:字体发出去就失控了——被转卖、被滥用、被二次分发,找不到谁泄露的。
文镇将唯一订单号不可见地嵌入字体字形,实现"嵌入→签发→追溯"的完整闭环。独特性在于:中文汉字对绝对坐标不敏感,整体平移不改变笔划间的相对关系,字符造型完全不受影响。这为字形级隐写提供了天然土壤。
最重要的是——纯离线,不联网,不上传任何数据。你的字体、客户信息、订单记录,全部留在你自己的电脑上。
安装指南
- 打开
文镇-v2.4.dmg - 将
文镇.app拖入 Applications 文件夹 - 双击启动(首次打开可能需右键 → 打开以允许非 App Store 应用)
启动后打开独立的桌面窗口,无需浏览器。数据存储于 ~/Library/Application Support/文镇/。
首次启动自动获得 30 天 Pro 全功能试用。
xattr -cr /Applications/文镇.app界面概览
报纸排版风格的仪表盘,左侧导航 + 右侧功能面板,信息集中、一目了然:
- 今日收入 — 当日销售额和订单数,大号数字醒目展示
- 本月订单 / 本月销售额 / 已售总份数 — 月度与累计统计
- 最近订单 — 最近 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
备份
- 签发归档链:每笔签发仅记录哈希链(不入库字体和授权书),可验证完整性。需要时从水印文件夹调取文件,按需打包导出证据链报告 PDF
- 完整备份:ZIP 包含全部数据、密钥、原版字体和水印文件,可完整恢复至新设备
- 数据导出(可展开):订单、客户分别导出 JSON(Pro 额外支持 Excel 四工作表)
- 数据导入(可展开):订单、客户分别导入 JSON/Excel
系统
- 授权方案:系统预设(个人版/个人商用/企业版,Pro 可编辑)+ 自定义方案(Pro)
- 密钥管理:查看指纹、签发统计、创建时间;导出/导入密钥;生成新密钥(带旧密钥备份);完整版本历史
- 个人候选池:HMAC 派生的专属候选字子池,可手动编辑或重置
新建订单
工作台布局——左侧:客户、字体、授权方案、价格等信息卡片,右侧:实时预览授权书纸张效果。一屏完成所有操作,所见即所得。
- 选择客户 — 从下拉搜索已有客户,或新建客户(名称、邮箱、身份证/税号必填)
- 选择字体 — 从字体库选择,支持拖放
- 选择授权版本 — 个人版 / 个人商用 / 企业版 / 自定义方案(Pro)
- 设置价格 — 可直接输入或点击预设金额,自动记忆上次选择
- 可选备注
- 点击签发 — 系统自动嵌入水印、生成订单和授权书 PDF
批量客户(Pro)
Pro 版支持一次选择多个客户,系统为每个客户独立生成订单和水印字体——每个客户收到的水印不同,泄露后可精确定位到具体客户。
草稿自动保存
新建订单表单内容每 2 秒自动保存为草稿。关闭页面或刷新后再次打开,可选择恢复草稿或丢弃。草稿在签发成功后自动清除。
订单管理
支持卡片视图和列表视图切换。可按订单编号、客户名称、邮箱、字体名称搜索,按编号/状态/客户/字体/金额/日期排序。支持状态筛选和日期范围检索。
点击订单进入详情,可操作:
- 查看完整订单信息、水印位序列、锚定字形明细
- 重发授权邮件(需配置 SMTP)
- 下载授权书 PDF 和水印字体文件
- 删除订单
哈希链归档 证据效力说明
每笔订单签发时仅记录哈希值链,不自动打包字体文件和授权书。哈希链中每条记录包含前一记录的哈希,任一条目被篡改都会导致整条链断裂。需要调取证据时,系统从水印文件夹中提取该订单对应的原版字体、水印字体和授权书 PDF,按需打包生成证据链报告。在设置 → 备份中可查看归档状态、验证哈希链完整性。
数据导入导出
在设置 → 备份 → 数据导出/导入中操作。支持订单和客户分别导入导出。
| 操作 | 格式 | 可用版本 | 说明 |
|---|---|---|---|
| 完整备份 | 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 不变
- 冗余编码:每位水印重复存入多个不同字形,通过多数投票提高抗子集化能力
- 个人候选池:每个安装实例拥有独立的候选字子池(密码学派生),不同用户的池重叠率极低
- 随机扰动:对子池内非锚定字施加随机微调,幅度与锚定字相同——攻击者无法区分水印位移和噪声位移
威胁模型
攻击者持有:水印字体文件(一份或多份)、本文档所述的全部算法原理。
攻击者不持有:原版字体(无对比基准)、水印密钥(无法确定锚定字形)、用户自定义的候选字池。
核心事实——攻击者必然盲操:没有原版字体就没有对比基准,攻击后无法验证水印是否已被破坏。安全遵循 Kerckhoffs 原则:算法公开,安全仅依赖密钥。
字体水印 vs 图片水印
| 维度 | 图片 LSB 隐写 | 字体水印 |
|---|---|---|
| 修改对象 | 像素最低位 | 字形整体位置 |
| 修改本质 | 加"噪点" | 整体平移 |
| 对抗目标 | 视觉检测 | 格式转换、子集化等字体工具操作 |
| 不可见性维度 | 视觉不可见 | 视觉不可见 + 工具不可检 |
追溯验证
追溯页面提供统一拖放区,上传字体文件(.ttf/.otf/.woff/.woff2)或授权书 PDF 后自动识别类型并展开对应报告。
字体追溯
- 将疑似泄露的字体文件拖入或选择上传
- 系统自动读取 Name 表快速匹配,或从字体库自动匹配原始字体
- 如自动匹配失败,可手动从字体库选择或上传原始字体
- 展示四级置信度结论、匹配订单、水印位序列、字形检测明细
- 可一键导出 PDF 追溯报告,或通知涉事客户
匹配标准(四级置信度)
- 完美匹配(high):校验通过,多重验证一致,水印序列与原始完全一致——可直接作为确权依据
- 严格匹配(trusted):校验通过,Name 表与位序列交叉验证一致,容错范围内可信
- 强证据(suspicious):多数投票恢复的序列校验通过,但部分指标(如 Name 表缺失或需平移校正)提示字体可能被处理过
- 证据不足:恢复序列的统计显著性未达阈值,无法形成有效追溯
授权书验证
- 上传授权书 PDF
- 系统提取 Ed25519 数字签名(Pro 版)
- 验签通过 → 展示原始签发信息,确认未篡改
- 验签失败 → 展示签名块声明的原始信息 + 篡改警告
泄露通知
当确认字体泄露后,可向涉事客户发送泄露通知邮件。措辞为温和提醒语气,强调可能是第三方软件导致,建议安全排查。邮件可通过 SMTP 直接发送(Pro),或生成 mailto 链接打开本地邮件客户端。
PDF 授权书签名
双通道验证方案:通道一(PDF Ed25519 数字签名)+ 通道二(字体字形水印)。任一条通道存活即可追溯,互为冗余。
签名覆盖 PDF 全部内容,任何篡改均导致验签失败。密钥与字体水印密钥独立管理。验证流程:上传 PDF → 提取签名 → 公钥验签 → 展示结果或篡改警告。
安全性分析
抗提取分析
攻击者尝试定位水印修改字的三种途径:
- 遍历字形对比坐标:无原版字体,无法区分"被改过的字"和"本来就长这样的字"。字形总数 6763+,锚定字仅占约 3%,搜索空间巨大
- 多份水印字体对比:个人候选池使不同安装实例的锚定字集合几乎不重叠。两份字体中坐标不同的字大概率是各自的锚定字,交集为空
- 拥有原版字体:这是唯一能精确定位水印锚定字的途径——攻击者需要同时持有原版字体和一份水印字体,逐字对比坐标差异。因此原版字体文件的安全是水印体系的基石,必须妥善保管,仅限自己持有。一旦原版字体泄露,所有基于该原版签发的水印字体都将面临被提取的风险
抗移除分析
| 攻击方式 | 效果 | 实验数据 |
|---|---|---|
| 坐标随机扰动(轻微) | 水印存活 | 扰动标准差 2 单位,恢复率 100% |
| 坐标随机扰动(中等) | 水印存活 | 扰动标准差 5 单位,恢复率 96% |
| 坐标随机扰动(较强) | 字体开始变形 | 扰动标准差 10 单位,恢复率 78% |
| 格式转换(TTF↔OTF↔WOFF2) | 无效 | 恢复率 100% |
| 子集化(保留 50% 字符) | 水印存活 | 恢复率 100% |
| 子集化(保留 20% 字符) | 水印存活 | 恢复率 100%(强证据) |
| 多次注入水印(覆盖攻击) | 无效 | 自定义候选池,10 轮后 10/10 存活 |
| 多副本串通攻击(5 份) | 无法定位锚定字 | 个人池方案,交集为空 |
| Name 表清除 | 无效 | 恢复率 100%(盲提取) |
攻击者的不可能三角
攻击者最多只能满足其中两项,无法三者兼顾:
- 无需原版对照 — 手头只有水印字体,没有原始字体参照
- 不损字体质量 — 字体仍可使用,不能面目全非
- 彻底移除水印 — 让水印信息完全无法恢复
要获得"水印一定没了"的信心,唯一办法是过度破坏到字体失去使用价值。攻击者永远在黑暗中操作,永远不知道自己成功了没有。
安全性总结
13 项安全属性全部通过:抗单份提取 ✓、抗多份对比 ✓、抗随机扰动 ✓、抗格式转换 ✓、抗子集化 ✓、抗覆盖攻击 ✓、抗串通攻击 ✓、抗 Name 表删除 ✓、盲操困境 ✓、密钥独立 ✓、个人候选池 ✓、Kerckhoffs 安全 ✓、双通道冗余 ✓
上述"抗原版对比"的前提是用户妥善保管原版字体文件。原版字体一旦泄露,攻击者即可通过对比定位水印锚定字。请务必将原版字体保存在本地,不随授权字体分发,不在网络传输。
FAQ
使用相关
Q: 文镇会上传数据到云端吗?
A: 不会。文镇是纯离线工具,不连接任何服务器,不上传字体、订单或任何数据。所有数据存储在本机。
Q: Lite 如何升级 Pro?
A: 在设置 → 专业版查看机器 ID,发给开发者获取 License Key 后激活。首次安装享受 30 天全功能试用。Pro 版一次性买断,永久使用,重大功能升级免费开放。
Q: 签发后如何交付给客户?
A: Lite 版签发成功后自动打开水印字体所在文件夹并弹出邮件撰写窗口;Pro 版自动通过 SMTP 发送邮件(含水印字体和授权书附件)。也可从订单详情页随时下载、重发。
Q: 字体库删除字体会删除源文件吗?
A: 不会。字体库仅管理索引和元数据,删除条目不会删除你的原始字体文件。
Q: 订单导入数量受限制吗?
A: JSON 导入为追加模式,不覆盖已有数据,自动跳过重复订单。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 用户开放
- 更新通过官网发布离线更新包,用户手动下载安装(无自动推送)
禁止行为
- 禁止对软件进行逆向工程、反编译、破解授权等行为
- 禁止将水印技术用于非法追踪、侵犯隐私等非授权用途