okasi/stealth-guard

GitHub: okasi/stealth-guard

一款本地优先的 Chromium 浏览器隐私防护扩展,通过伪造和随机化浏览器指纹数据来抵御跨站追踪。

Stars: 6 | Forks: 0

Stealth Guard Logo

Stealth Guard

Local-first browser fingerprinting protection for MV2-compatible Chromium browsers

[![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/39/39faa54be350a1dab8afd3b2fb8c1c83e4d9cff84abfef2374d19a18053687c4.svg)](https://github.com/okasi/stealth-guard/actions/workflows/ci.yml) [![Release](https://img.shields.io/github/v/release/okasi/stealth-guard)](https://github.com/okasi/stealth-guard/releases) [![License](https://img.shields.io/github/license/okasi/stealth-guard)](LICENSE) ![Core coverage](https://img.shields.io/badge/deterministic_core-100%25_coverage-16a34a)
Stealth Guard 可以减少跨 Canvas、WebGL、字体、AudioContext、ClientRects、WebGPU、时区、User-Agent 和 WebRTC 领域的被动浏览器指纹追踪。设置和可选的已保存网站会话会保留在本地扩展存储中;没有任何遥测或分析数据收集。 ## 为什么选择 Stealth Guard? - **故障保护启动:** 浏览器 API 包装器在 `document_start` 时以安全的默认值安装,随后接收受信任的本地配置。 - **兼容性控制:** 全局和逐功能白名单使得在复杂的 Web 应用上提供切实可行的保护。 - **本地优先运行:** 无需账号,没有遥测、分析数据或 Stealth Guard 服务器。 - **可审计源码:** 纯 JavaScript 编写,无生产环境依赖,也没有不透明的构建产物。 - **质量门禁:** 包含 manifest 验证、语法检查、100% 的确定性核心覆盖率、后台集成测试以及由 Chrome 驱动的端到端检查。 ## ✨ 功能 ### 🔒 指纹防护 | 防护项目 | 描述 | | ------------------- | ------------------------------------------------------------------- | | **🌍 Proxy** | 通过 SOCKS4/5 或 HTTP/HTTPS 代理服务器路由流量,隐藏您的 IP 地址 | | **🌐 User-Agent** | 同时伪造 HTTP 标头和 JavaScript 中的浏览器 User-Agent 字符串 | | **🕐 Timezone** | 伪造时区信息(可配置,默认:UTC+1) | | **📡 WebRTC** | 防止通过 WebRTC 连接泄露 IP 地址 | | **🎨 Canvas** | 在导出 Canvas 数据时添加难以察觉的噪声,以防止 Canvas 指纹识别 | | **📐 ClientRects** | 在元素边界矩形测量中添加噪声 | | **🔤 Font** | 随机化字体测量值,以防止字体枚举 | | **🔊 AudioContext** | 向音频频率数据注入噪声,以防止音频指纹识别 | | **🕹️ WebGL** | 伪造 GPU 供应商/渲染器信息,并向 WebGL 缓冲区添加噪声 | | **🎮 WebGPU** | 伪造 WebGPU 适配器限制和缓冲区操作 | ### 🚀 附加功能 ## 📥 安装说明 ### 🔧 手动安装(开发者模式) 1. 下载或克隆本仓库 2. 在 Opera 中,访问 `opera://extensions/`(或在另一个明确启用了 MV2 的 Chromium 内核浏览器中打开对应的扩展页面) 3. 启用**开发者模式**(右上角的开关) 4. 点击**加载已解压的扩展程序** 5. 选择该扩展的文件夹 ## 📖 用法 ### ⚡ 快捷访问(Popup) 点击浏览器工具栏中的 Stealth Guard 图标可以: - 全局开启/关闭防护 - 启用/禁用各个防护功能 - 选择 User-Agent 预设(macOS Safari, Chrome, Windows Edge, iPhone, Android) - 选择时区预设 - 查看 Proxy 状态 - 查看当前页面上触发了哪些防护 ### ⚙️ 高级设置 从弹窗中打开**高级设置**以访问: - 逐功能白名单 - Proxy 配置文件管理 - Proxy 激活配置文件 + 绕过列表 - WebGL 预设(Apple, Pixel 4, Surface Pro 7) - 导出/导入配置 - WebRTC 策略设置 ### 🖱️ 右键菜单 右键点击任意网页,即可快速将当前域名添加至白名单或从中移除。 ## 🔧 配置说明 ### 🎯 域名匹配规则 Stealth Guard 支持灵活的域名匹配: | 规则 | 匹配范围 | | --------------- | --------------------------------------------------------- | | `example.com` | `example.com` 及 `www.example.com` | | `*.example.com` | 所有子域名(`sub.example.com`, `deep.sub.example.com`) | | `webmail.*` | 任何以 `webmail.` 开头的域名(`webmail.company.com`) | | `*pattern*` | 通用通配符匹配(`foo-localhost-bar`) | ### 🌐 User-Agent 预设 从预定义的 User-Agent 字符串中选择: - macOS Safari - macOS Chrome - Windows Edge - iPhone Safari - Android Chrome ### 🕐 时区预设 可用时区: - UTC-8 (洛杉矶) - UTC-7 (丹佛) - UTC-6 (芝加哥) - UTC-5 (纽约) - UTC+0 (伦敦) - UTC+1 (巴黎) - _默认_ - UTC+2 (雅典) - UTC+3 (伊斯坦布尔) - UTC+4 (迪拜) - UTC+7 (雅加达) - UTC+8 (上海) - UTC+9 (东京) ## 🧪 测试您的防护效果 访问以下网站验证您的指纹防护情况: - - 综合指纹测试 - - AudioContext 测试 - - 浏览器独特性分析 - - WebRTC 和 DNS 泄露测试 ## 🧑‍💻 开发检查 使用 Node.js 20.19+ 或 22.12+ 并安装 Chrome/Chromium 用于浏览器测试环境。当其不在标准路径时,请设置 `CHROME_PATH`。一次性安装开发依赖: ``` npm ci ``` 运行本地质量门禁: ``` npm run check ``` 这将验证源码语法和 manifest 完整性,强制实现确定性核心模块 100% 的语句、分支、函数和行覆盖率,运行后台集成测试,并驱动 Chrome 执行所有保护及弹窗/选项工作流。 内容脚本(Content script)会在 `document_start` 立即安装带有内置安全默认值的包装器,然后通过经过身份验证的私有 MAIN-world 更新通道应用受信任的 `chrome.storage.local` 配置。这种故障保护设计避免了补丁前指纹识别的空窗期;如果存储读取缓慢,默认防护会在存储的禁用规则或白名单生效前短暂应用。 ## 🏗️ 技术细节 ### 📁 架构 ``` background.js → Runtime orchestrator (UA headers, WebRTC, proxy, messages, sessions) ↓ content-scripts/ injector.js → Isolated bootstrap, trusted config updates, authenticated alerts main.js → Testable MAIN-world browser API protections ↓ lib/ config.js → Defaults, normalization, persistence, UA presets, content projection domainFilter.js → Canonical domain and wildcard allowlist matching proxy.js → Proxy validation, location lookup, PAC generation, browser settings runtime.js → Promise-based popup/options messaging session.js → Session hostname and cookie-scope helpers storage.js → Promise wrapper for chrome.storage.local ``` ### 📋 Manifest 版本 本扩展有意使用 **Manifest V2** 以实现最大的 API 兼容性。诸如 `webRequestBlocking` 和同步修改标头等关键功能需要 MV2 支持,而在 Manifest V3 中则受到限制或无法实现。 ### 🔐 权限 | 权限 | 用途 | | ----------------------------------- | ------------------------------------------------------------------ | | `storage` | 保存用户设置 | | `cookies` | 保存和恢复逐站点的登录会话 | | `privacy` | 控制 WebRTC IP 处理策略 | | `proxy` | 配置 SOCKS5/HTTP Proxy | | `webRequest` / `webRequestBlocking` | 修改 User-Agent 标头 | | `tabs` | 识别活动标签页,重新加载已更新的标签页,并追踪逐标签页的防护状态 | | `contextMenus` | 右键菜单集成 | | `notifications` | 指纹检测警报 | | `` | 跨网站应用防护、标头伪造、Proxy 规则和会话工具 | ## 🔒 隐私 Stealth Guard: - **不收集遥测、分析或浏览历史数据** - **不进行后台服务调用**,除了通过 `ipinfo.io`/`ipapi.co` 进行的可选 Proxy 位置检查 - **所有设置均本地存储**在浏览器存储中 - **完全开源** - 您可以自己审计代码 ## 🌐 浏览器兼容性 _注意:Firefox 使用不同的扩展格式,目前暂不支持。_ 厂商参考:[Chrome MV2 时间表](https://developer.chrome.com/docs/extensions/develop/migrate/mv2-deprecation-timeline),[Opera MV2 状态](https://blogs.opera.com/news/2025/09/mv2-extensions-opera/),[Brave MV2 政策](https://brave.com/blog/brave-shields-manifest-v3/) 以及 [Vivaldi MV3 更新](https://vivaldi.com/blog/manifest-v3-update-vivaldi-is-future-proofed-with-its-built-in-functionality/)。 ## 📄 许可证 本项目基于 MIT 许可证授权 - 有关详情,请参阅 [LICENSE](LICENSE) 文件。 ## 👤 作者 **okasi** - [okasi.me](https://okasi.me) - [GitHub](https://github.com/okasi) ## 🙏 致谢 - 灵感来源于在日益被追踪的网络中对更优质隐私工具的需求 - 感谢浏览器指纹识别研究社区记录了这些技术
标签:Chromium, MITM代理, 反追踪, 数据可视化, 浏览器指纹, 浏览器插件, 网络安全, 自定义脚本, 隐私保护