为什么 Safe Haven 不承诺绝对安全
核心定位
Safe Haven 是 ColourSwift 团队做的一款安卓应用商店。它的出发点很朴素:安卓生态里第三方商店很多,但用户装应用时往往面对的是一个黑盒——你不知道 APK 从哪来、谁维护的、有没有被二次打包、扫过毒没有。Safe Haven 要解决的就是这个"来路不明"的问题。
它不打算跟 Google Play 比体量,也不跟 F-Droid 比自由度。它就做一件事:把每个应用的来源信息摊开在详情页上。
不承诺"绝对安全"
Safe Haven 官方文档里写得很坦诚:"Nobody can claim to be perfectly safe"(没人能说自己绝对安全)。这种表态反而让它的整个信任体系更有说服力。
它承认的边界包括:
- 安全扫描引擎不能覆盖所有恶意代码变体
- 签名锁定防得住被动篡改,但防不住密钥被盗后的主动滥用
- 社区投稿的应用天然缺少开发者归属声明
- 商业安全软件的误报和漏报都可能出现
所以 Safe Haven 不做"安全认证",它做的是"可审计性"——把能公开的都公开,让具备判断能力的用户自己权衡。
五层信任机制的设计思路
Safe Haven 把信任拆成了五个独立的维度,每个维度在应用详情页上对应一个可见的标志:
| 维度 | 它回答的问题 |
|---|---|
| 源码登记(Source Linked) | 有没有公开的源码仓库? |
| 已验证源码(Verified Source) | 源码仓库归开发者本人管吗? |
| 未验证上架(Unverified Listings) | 这个条目是社区建的还是作者自己提的? |
| APK 扫描(APK Scanning) | 装之前过安全扫描了吗? |
| 签名锁定(Signing-Key Pinning) | 装之后签名变了吗? |
这五个维度不是分级关系,而是并列的标签。一个应用可能有源码但没验证,也可能没源码但扫描过了。五个都亮 = 当前能拿到的信息最完整;一个都没 = 和随便下一个 APK 没区别。
和其他商店的差异
Safe Haven 的设计跟几个主流替代商店的定位错开了:
vs F-Droid:F-Droid 严格要求应用是自由软件、有可复现构建、用 F-Droid 自己的签名重打包。Safe Haven 没有许可门槛,它从 F-Droid 和 IzzyOnDroid 同步已有应用,收录侧重开源和独立应用,但不排除非自由许可的项目。
vs IzzyOnDroid:IzzyOnDroid 收录的是开发者原生签名的 APK,强调可复现构建。Safe Haven 从 Izzy 同步,但不继承其可复现要求。
vs Google Play:Play 有体量优势,但它的安全机制对用户来说不透明——你不知道具体扫了什么、判定标准是什么。Safe Haven 把扫描结果直接展示给用户看。
vs Aurora Droid / FoxyDroid:这些是 F-Droid 的客户端替代品,本质还是 F-Droid 仓库。Safe Haven 是独立的商店,有自己的后端和扫描管线。
开源的三个层面
Safe Haven 整个项目都公开了,但许可分两块:
- 客户端代码(安卓 App):MIT 协议
- 后端服务(Cloudflare Workers + S3 + Scanner Python 服务):AGPL-3.0
这种拆分意味着客户端可以自由集成进其他项目,但服务端的任何修改都必须公开。对普通用户来说,你能从代码里看到客户端做了什么网络请求、展示了哪些数据,这是对"它没有偷偷干别的"最直接的证明。
你装应用时最该看什么
详情页上的信息很多,按优先级排:
- 有没有已验证源码标志——这是开发者自己在管的应用
- 看源码仓库最后一次提交时间——维护活跃度
- 看扫描记录里的签名哈希——和你本地装的版本对得上吗
- 如果没有验证标志,看扫描结果里有没有恶意代码检出