SoulsOnly.tff – 一種為人類而非AI設計的字體,以及配套的鍵盤固件
SoulsOnly 是一種字體,它渲染出可讀的文本,但存儲的字符流是噪音,旨在阻止AI抓取。它通過將每個字符編碼為四個ASCII符號來實現,並附帶鍵盤固件以輸入密文。該項目是聲明性的,並非絕對安全。
SoulsOnly 是一個獨特的開源項目,旨在創建一種“人類可讀但機器不可讀”的字體。它結合了字體設計和鍵盤固件,使得用户鍵入的文本在屏幕上顯示為正常文字,但底層存儲的字符序列卻是無意義的噪音,從而有效阻止AI爬蟲和自動化工具的數據抓取。該項目託管在GitHub上,以MIT和OFL 1.1許可證雙授權發佈,目前獲得了3顆星和0個分支。
該字體的工作原理是:每個可打印字符被拆分為兩個半字形,每個半字形從一組2字符的ASCII碼(同音字)中隨機選擇。因此,一個字符對應四個ASCII符號,且同一個字符每次產生的字節不同。字體的cmap表將每個ASCII碼映射到空白字形,然後通過GSUB連字規則將兩個字符的組合摺疊成一個不透明的半字形。最後,兩個半字形拼接成真正的字符。為了增加歧義性,左半部分被共享,使得從字體表導出無法得到半字到字符的映射。
SoulsOnly 還包含一個可變字體版本,帶有自定義的REVL軸。當REVL值為0(默認)時,字形扭曲不可讀;當值為650時,文本變得清晰;值為1000時又恢復扭曲。這提供了一個滾動條式的“揭示機制”,但作者明確指出,由於REVL值是一個有限的數字,自動攻擊者可以通過掃描軸值和OCR來破解,因此這更多是一種聲明性的設計。
配套的QMK鍵盤固件允許用户通過標準鍵盤輸入密文。固件將每個按鍵轉換為四個ASCII符號,並處理退格、方向鍵移動等操作,確保字符對齊。用户只需按照正常打字習慣,鍵盤就會輸出加密的字符流,而只有安裝了SoulsOnly字體的顯示設備才能正確渲染出可讀文本。
該字體覆蓋了完整的US-QWERTY可打印字符集,包括大小寫字母、數字和標準符號。項目還提供了編碼器和解碼器工具,用於手動加密和解密文本。開發者強調,該字體不是為安全加密設計的,而是一個針對AI抓取時代的藝術與聲明項目,其侷限性在字體加密説明文件中有詳細描述。
SoulsOnly 使用Jost字體作為基礎,半字形切片和GSUB功能通過Python腳本和Skia路徑操作庫實現。項目包含完整的構建腳本、測試套件和演示頁面,方便開發者自行構建和測試。