逆向 Typeless 后发现严重隐私风险:也让人看清好用语音输入究竟要吃多少数据

【注意提醒】对语音输入应用「Typeless」进行逆向分析后发现相当严重的隐私风险,特此分享。

■ 先说结论

Typeless 宣称“On-device history”“Zero data retention”,但实际上所有音频数据都会发送到 AWS(美国俄亥俄)服务器处理。本地完全没有语音识别模型。

如果只是这样,它不过是普通的“云端 STT 服务”。问题在于它收集的非音频数据范围非常广。

■ 做了哪些分析

在 macOS 上对 Typeless v0.9.3 做了二进制分析、网络通信分析、本地 DB 分析、以及原生库字符串分析。

■ 已确认的事实

  1. 音频处理 100% 云端
    应用内没有 Whisper 等 STT 模型。音频在压缩为 Opus 后,通过 WebSocket(wss://api.typeless.com/ws/rt_voice_flow)实时发送到 AWS us-east-2 服务器。

http://api.typeless.comhttp://prod-typeless-lb-565501648.us-east-2.elb.amazonaws.com

官方隐私政策也写着“processed in real time on our cloud servers”,所以并非完全造假,但营销上“On-device”的说法仅限于“历史记录存储在本地”,非常容易误导。

  1. 除音频外还收集广泛数据
    通过本地 SQLite 数据库和原生库分析,确认收集了以下数据:

・ 正在浏览的网站完整 URL(Gmail、Google Docs 等也会记录)
・ 当前焦点应用名、窗口标题
・ 屏幕上的文字(通过辅助功能 API 递归收集的 collectVisibleTexts 函数)
・ 剪贴板读写(可处理密码管理器的 TransientType
・ 通过 CGEventTap 进行系统级键盘输入监听
・ 浏览器 DOM 元素信息(支持 Safari、Chrome、Edge、Firefox、Brave)
・ 用户编辑过的文本内容(TrackEditTextService → sendTrackResultToServer

  1. 本地 DB 明文保存个人信息
    typeless.db 中,语音识别结果文本、浏览 URL、应用信息以明文保存。虽然宣称“Zero data retention”,但本地全部保留。音频文件(.ogg)也不会被删除而是残留。

  2. 权限要求过度
    作为语音输入工具,除了麦克风还要求屏幕录制、摄像头、蓝牙、辅助功能权限,且内置截图功能。

  3. 公司透明度几乎为零
    ・ 条款与隐私政策未标注法人名称
    ・ 所在地仅写“加州旧金山郡”(条款中的管辖地)
    ・ WHOIS 隐藏(GoDaddy + Cloudflare)
    ・ 没有 SOC2、ISO27001 等安全审计信息
    ・ 联系方式只有 [email protected]

■ 技术证据(可复现)

以下命令可自行验证:

# 网络通信目标
nslookup http://api.typeless.com

# app.asar 内的 API URL
strings /Applications/Typeless.app/Contents/Resources/app.asar | grep "http://api.typeless.com"

# WebSocket 通信协议
strings /Applications/Typeless.app/Contents/Resources/app.asar | grep "rt_voice_flow"

# 键盘监听的原生库
strings /Applications/Typeless.app/Contents/Resources/lib/keyboard-helper/build/libKeyboardHelper.dylib | grep -i "key pressed"

# 屏幕文本收集
strings /Applications/Typeless.app/Contents/Resources/lib/context-helper/build/libContextHelper.dylib | grep -i "collectVisibleTexts"

# 本地 DB 内容
sqlite3 ~/Library/Application\ Support/Typeless/typeless.db ".schema history"

■ 问题在哪里

CGEventTap(键盘监听)+ 辅助功能 API(屏幕文本收集)+ 剪贴板访问。这三者组合在技术上具备与键盘记录器等同的能力。

而你把这些权限交给了一个运营主体不明的服务。

为了提高语音输入准确率,获取上下文(当前应用/输入框信息)本身是合理的设计。但当这些数据被发送到云端时,运营方的可信度与安全体制就至关重要。对一家连法人名称都不公开的公司能否信任,请自行判断。

■ 替代方案

完全本地运行的语音输入工具是存在的:

・ Whisper.cpp / MLX Whisper(开源、全本地、免费)
・ macOS 自带语音输入(Apple Silicon 上为端侧处理)
・ Superwhisper(基于 Whisper,面向 Mac,但仍需自行验证)

■ 总结

・ Typeless 的语音识别 100% 云端处理(无本地模型)
・ 除音频外,还具备收集屏幕文本、URL、键盘输入的技术基础
・ 运营主体不透明(未公开法人名称与所在地)
・ 无安全审计证据

正在使用的人请在了解风险后自行判断。至少建议使用 Little Snitch 等工具监控网络通信。

这也提醒了相关开发人员应该努力的方向。

你用剪切板历史的,就是不比不用的强。