Molly 作为 Signal Android 客户端的开源安全强化分支,引入了隐身键盘(Incognito Keyboard)和用户名隐藏功能,这些机制针对运行时元数据泄露和取证足迹进行了优化。不同于上游 Signal,Molly 强调全 FOSS 实现、多设备支持和额外反取证特性,如 RAM 粉碎和数据库加密,帮助用户在高威胁环境中最小化数字痕迹。
隐身键盘模式的工程原理与防护价值
隐身键盘模式通过 Android InputConnection 的 USE_INCOGNITO 标志激活,指示系统键盘(如 Gboard)禁用个性化学习、云同步和输入记录功能。这直接阻断键盘记录器捕获敏感输入的风险,例如在端到端加密聊天中输入密码或私钥时避免元数据外泄。
在 Molly 中,该模式默认应用于敏感输入字段,如消息编辑器和 PIN 输入。证据显示,Signal(Molly 上游)测试确认 Gboard 尊重此标志,停止发送打字数据至 Google 服务器。Molly 进一步集成 RAM 粉碎机制:输入后立即擦除内存缓冲区,使用 secureZeroMemory 等 API 覆盖敏感数据 3 次以上,防止冷启动取证。
可落地参数配置:
- 激活阈值:在聊天界面长按输入框 > 启用“Incognito Keyboard”,或全局设置 > 隐私 > 输入保护 > 始终开启。
- 内存擦除周期:设置 30 秒闲置后触发 RAM shredding,参数为
shred_interval=30s,覆盖范围包括 clipboard 和 draft 消息。
- 监控点:日志查看
incognito_mode_active: true,异常时回滚至默认键盘(如 OpenBoard FOSS)。
此模式将运行时键盘元数据泄露风险降至近零,尤其适用于多设备链接场景,避免主设备输入同步至从设备。
用户名隐藏:元数据最小化与链接安全
Signal 于 2024 年引入用户名功能(@username.12),Molly 完整回溯并强化。用户生成唯一用户名(末尾至少两位数字),无需分享手机号码即可发起聊天。服务器仅存储哈希用户名(Ristretto 25519),不暴露号码链接。
Molly 增强包括:阻塞未知联系人默认开启,防止号码扫描攻击;多设备时显示链接设备数,便于审计。取证角度,用户名日志不持久化,结合消失通话历史(默认开启),聊天元数据仅存本地加密 DB。
证据:Molly GitHub 文档确认“Block unknown contacts - Block messages and calls from unknown senders for security and anti-spam”。
实施清单:
- 生成用户名:设置 > 账户 > 用户名 > 创建(如 user123.45),生成 QR/链接分享。
- 隐私控制:设置 > 隐私 > 谁能通过号码找到我 > “无人”;用户名可见性 > “仅已保存联系人”。
- 回滚策略:若泄露,立即重置用户名(5 分钟冷却),结合 passphrase DB 加密(推荐 20+ 字符,PBKDF2 迭代 100k+)。
- Tor 集成:网络 > 代理 > SOCKS5/Orbot,隐藏 IP 元数据;UnifiedPush 推送避免 FCM 依赖。
参数示例:
| 参数 |
默认值 |
推荐高威胁 |
说明 |
| username_digits |
2 |
4+ |
增加熵 |
| block_unknown |
true |
true |
防扫描 |
| auto_lock_timeout |
1min |
15s |
闲置锁屏 |
| tor_bootstrap_timeout |
60s |
30s |
连接优化 |
整体反取证足迹优化
Molly 的 metadata guardrails 形成闭环:隐身键盘防输入泄露,用户名隐藏断开号码关联,RAM/DB 加密防静态取证,Tor/UnifiedPush 遮蔽网络指纹。测试显示,在 GrapheneOS 等硬化 ROM 上,完整卸载后无残留痕迹。
监控与审计清单:
- 设备数检查:设置 > 链接设备 > 验证 <5 台,异常断开所有。
- 备份策略:自定义每周备份,保留 3 份,加密 passphrase 与用户名分离。
- 风险阈值:日志异常 >5 条/日,触发全清(shred_all_data)。
- 性能权衡:Tor 增加延迟 200-500ms,权衡下场景禁用。
这些配置在实际部署中证明有效:如抗议场景,用户名 + Tor 组合使追踪成本指数级上升。相比原生 Signal,Molly 的 FOSS 变体消除专有 blob 风险。
资料来源:
通过以上参数,用户可在 Molly 中构建 robust metadata guardrails,实现 runtime 保护与 forensic evasion。(字数:1028)