← 返回信息流
AI 资讯Hacker News·3 小时前

SoulsOnly.tff:专为人类而非AI设计的字体及配套键盘固件

原标题:SoulsOnly.tff – A font for humans not AI and keyboard firmware to type in it

速览

该项目发布了一种名为SoulsOnly.tff的新型字体,其设计初衷是让人类能够舒适阅读,同时让AI模型难以解析。配合专用的键盘固件,用户可以在输入时应用这种字体。此举被视为一种对抗AI自动化抓取和训练数据污染的技术手段,强调数字内容应优先服务于人类体验。

AI 深度解读

SoulsOnly.tff:为人类而非 AI 设计的字体与键盘固件

背景

在当前的数字生态中,文本数据被大规模抓取、存储和分析已成为常态。然而,大多数字体设计仅关注视觉呈现,而忽略了底层字符流(Character Stream)与视觉字形(Glyph Stream)之间的一致性。通常,复制粘贴、HTML/PDF 提取或爬虫工具所读取的字节序列,与屏幕上渲染出的字形是严格对应的。

SoulsOnly 是一个具有实验性质的字体项目,其核心理念在于解耦这两个流。它不仅仅是一个字体文件,更是一个“陈述性项目”(Statement Project),旨在通过技术手段在视觉层与数据层之间制造差异。该项目并非声称具备不可破解的安全性,而是作为一种工艺展示,探索字体渲染引擎(如 cmapGSUB)的潜在能力,以及人机交互在数据隐私层面的新可能性。

核心内容

SoulsOnly 的设计机制建立在对字体内部结构的深度操控之上。它利用字体文件中的两个关键部分:存储字符的字节流和经过渲染引擎处理后绘制的字形流。项目通过以下机制实现“视觉可读”与“数据噪声”的分离:

1. 编码与解码机制

  • 字符拆分与随机化:每个可打印字符被编码为两个部分。每个部分从包含 2 个字符的 ASCII 代码池中随机选取(类似同音字替换)。因此,输入一个字符实际上需要敲击四个 ASCII 符号,且每次生成的字节序列都是不同的。
  • 字体作为解码器:字体本身充当了解码器。当你使用普通键盘输入时,键盘固件会发射出上述的“噪声流”。只有安装了 SoulsOnly 字体并在渲染层应用该字体时,这些噪声才会被还原为可读的文字。
  • 字形映射:字体在 cmap 表中将每个 ASCII 代码载体映射为空白字形,随后通过 GSUB(字形替换)规则中的 liga(连字)规则,将每两个字符的代码合并为一个不透明的“半字形”(Half-glyph)。

2. 视觉重构与混淆

  • 半字形拼接:两个半字形拼接成最终的可读字符。为了增加混淆度,共享类(Shared classes)重用同一个标准的左半字形。例如,小写字母 a, c, d, e, g, o, q 共享同一个左半部分(碗状结构),m, n, r, u 共享茎状结构,大写字母 O, C, G, Q 也共享碗状结构。
  • 不可逆性:由于四个 ASCII 字符压缩为一个渲染字符,存储的字节数与渲染的字形数量故意产生分歧。此外,普通的拉丁字母代码点被故意映射为无意义的半字形碎片。这意味着,如果你将普通文本粘贴到使用 SoulsOnly 字体的环境中,只会看到噪声,而非原文。只有经过加密的流才能通过该字体还原出可读单词。

3. 变量字体与揭示机制(REVL 轴)

项目提供了三种格式的字体文件:

  • dist/SoulsOnly.ttf:静态字体,将密文流渲染为可读文本。
  • dist/SoulsOnly.otf:带有 CFF(PostScript)轮廓的静态字体,适用于偏好 OTF 格式的工具。
  • dist/SoulsOnly-VF.ttf:变量字体,包含一个名为 REVL 的自定义散点轴。

REVL 轴的工作原理

  • REVL = 0(默认状态):这是“安全”状态。所有字形经过随机的非均匀变换和逐点抖动,变得完全无法辨认。
  • REVL = 650(中间值):所有点插值回其真实位置,文本组装完成,变得清晰可读。
  • REVL = 1000(最大值):字形再次散开,进入另一种扭曲状态,文本依然不可读。

这种设计使得“揭示”值(650)是一个有界的数字,且轴未命名、无可读的名称实例,从而避免被自动化读取器免费获取。

4. 键盘固件支持

为了配合这种特殊的编码方式,项目还发布了 QMK 键盘固件。

  • 输入逻辑:空格键发出一个空格字符;回车键发出一个真实的新行符加上三个不可见的填充字节,以保持流的四字节对齐。
  • 导航逻辑:由于每个字符由四个字节组成,退格键删除四个字符,方向键移动四个字符。

5. 局限性与已知缺陷

  • 自动化攻击风险:虽然字体本身是密钥,但 REVL 轴是一个有界的数值。攻击者可以通过遍历轴值并使用 OCR(光学字符识别)技术来破解可视帧。这是该项目最便携但也最脆弱的环节。
  • 视觉瑕疵:由于共享左半字形的设计妥协,茎状类字母(m, n, r, u)在裁剪自真实字母时并非纯直线,因此会留下细微的发丝状接缝。这是一个已知的设计缺陷,计划通过手绘合成共享茎字形来修复。

关键要点

  • 双重流解耦:SoulsOnly 的核心创新在于将存储的字符流(字节)与渲染的字形流(视觉)分离。复制粘贴得到的是噪声,只有正确字体渲染后才显示原文。
  • 字体即密钥:字体文件本身充当了解密器。没有该字体,密文流无法被还原为人类可读文本。
  • 随机化编码:每个字符由四个 ASCII 符号编码,且每次生成的字节序列不同,增加了静态分析的难度。
  • 变量字体控制:通过自定义 REVL 轴控制字形的清晰度。默认状态(REVL=0)下字形完全扭曲,仅在特定值(REVL=650)下可读。
  • 非安全声明:项目明确声明这不是一个安全加密方案,而是一个艺术和工艺陈述。它容易受到自动化 OCR 和轴值遍历的攻击。
  • 硬件配合:提供了 QMK 固件支持,确保键盘输入能生成符合四字节对齐要求的噪声流。
  • 开源许可:代码部分采用 MIT 许可,字体文件(基于 Jost 字体衍生)采用 SIL Open Font License 1.1 (OFL 1.1)。

意义与影响

SoulsOnly 项目虽然在实用安全性上存在局限,但其技术实现和设计理念具有多重意义:

  1. 挑战数据抓取范式:它提供了一种新的思路,即在数据层隐藏信息,而在视觉层呈现信息。这对于希望防止自动化爬虫直接提取文本内容的场景具有启发意义,尽管它不能替代真正的加密。
  2. 探索字体引擎极限:该项目深入利用了 OpenType 字体规范中的 cmapGSUB 和变量字体特性,展示了字体渲染引擎在图形处理和字形替换方面的强大灵活性。
  3. 人机交互的新维度:通过定制键盘固件和字体,项目重新定义了“输入”与“输出”的关系。用户输入的不再是直接的字符,而是经过编码的信号,这为未来的隐私保护型输入设备提供了概念验证。
  4. 艺术与技术的结合:作为一个“陈述性项目”,SoulsOnly 强调了技术背后的哲学思考——在 AI 和数据驱动的世界中,人类阅读体验与机器数据解析之间的张力。它提醒开发者关注数据透明度、用户控制权以及技术伦理。

总之,SoulsOnly 是一个兼具技术深度和艺术表达的实验性作品,它通过解耦字符与字形,为数字文本的呈现与保护提供了独特的视角。

查看原文 →github.com