NetGuard 中文文档 下载 App

证书指纹校验与下载安全

为什么要校验证书

下载 APK 文件(特别是从 GitHub Releases 等非 Play Store 渠道)时,理论上你的下载路径可能被中间人攻击篡改——插入恶意代码。校验证书签名能确保:

  1. APK 确实由 FairCode B.V.(开发者 Marcel Bokhorst)签名
  2. APK 内容自签名以来未被篡改
  3. 没有被替换为恶意应用

FairCode 官方证书指纹

以下三个指纹是 NetGuard 所有版本(Play、GitHub、F-Droid 之外的两版)使用的证书。如果下载的 APK 签名不匹配,说明文件被篡改。

MD5

B6:4A:E8:08:1C:3C:9C:19:D6:9E:29:00:46:89:DA:73

SHA1

EF:46:F8:13:D2:C8:A0:64:D7:2C:93:6B:9B:96:D1:CC:CC:98:93:78

SHA256

E4:A2:60:A2:DC:E7:B7:AF:23:EE:91:9C:48:9E:15:FD:01:02:B9:3F:9E:7C:9D:82:B0:9C:0B:39:50:00:E4:D4

注意:F-Droid 版使用独立签名,以上指纹不适用于 F-Droid 版。F-Droid 版的指纹需要从 F-Droid 仓库获取。

为什么 Play 和 GitHub 共用证书

NetGuard Play Store 版和 GitHub Release 版使用完全相同的证书签名。这是开发者的有意设计,使得:

GitHub Releases 上提供的 APK 就是 Play Store 同一个构建产物,加上 Hosts 和端口转发功能——只是 Play Store 里的构建被移除了这些功能。

如何校验 APK 签名

在 Android 设备上

使用 F-Droid 客户端:

  1. 打开 F-Droid → 搜索 NetGuard
  2. NetGuard 详情页里显示签名信息
  3. 对比 MD5 / SHA256 指纹是否匹配 FairCode 官方值

或使用第三方 APK 签名校验工具(如 APK Signature Verifier 等)。

在 PC 上

下载 Android SDK Build-Tools → 使用 apksigner 或 jarsigner 命令校验:

apksigner verify --print-certs netguard.apk

输出里会包含 MD5 / SHA1 / SHA256 指纹,与 FairCode 官方签名对比。

或使用 keytool:

keytool -printcert -jarfile netguard.apk

三星 Galaxy 应用商店恶意应用警告

开发者在 GitHub README 和官方网站首页发布了一个安全警告:

三星 Galaxy 应用商店(Samsung Galaxy Store)里出现了一个名为「_Play Music - MP3 Music player_」的应用,使用了与 NetGuard 完全相同的包名(eu.faircode.netguard),会在用户不知情的情况下作为 NetGuard 的"更新"安装。

这个应用很可能是恶意的。开发者已在 2021 年 12 月 8 日向三星报告了此问题,但三星至今未能有效处理。

避免方法

下载安全建议总结

建议操作
只用三个正规渠道Play Store / GitHub Releases / F-Droid
不要从 APK 汇总站下载那些站可能提供被修改过的 APK
检查开发者身份正规渠道里开发者是 Marcel Bokhorst / FairCode B.V.
三星设备额外小心不要用 Galaxy Store 更新 NetGuard
F-Droid 版有自己的指纹如果用 F-Droid,用 F-Droid 客户端本身做校验

证书变化通知

如果未来 NetGuard 更新了签名(比如开发者证书过期),会在 GitHub Release 和官方网站上提前公告。正常使用中不需要频繁校验——只要从可信渠道安装和更新,风险极低。