Skip to content

Security: meiwe/PrivacyScreenGuard

Security

SECURITY.md

安全政策

PrivacyScreenGuard 是一款处理生物特征数据(人脸特征向量)的隐私工具,我们认真对待安全问题。如果你发现了安全漏洞,请按本文档的方式私下报告。

支持范围

仅对最新发布版本提供安全修复。

版本 支持状态
v1.0.x(最新) ✅ 接受安全报告
更早版本 ❌ 请先升级到最新版

报告漏洞

请勿通过公开 Issue 报告安全漏洞。 公开披露会让所有用户在使用期间暴露在风险中。

请通过以下方式私下报告:

  • 使用 GitHub 的 私密漏洞报告(推荐)
  • 或在仓库的 Security 标签页点击 Report a vulnerability

报告中请尽量包含:

  • 问题描述:漏洞是什么、影响哪些功能
  • 复现步骤:可稳定复现的最小操作序列
  • 影响评估:攻击者能获得什么(如能否读取到明文特征、能否绕过遮罩)
  • 环境信息:Windows 版本、程序版本、摄像头型号
  • 概念验证:如有 PoC 代码或截图请一并附上

响应时间

  • 48 小时内确认收到报告
  • 7 天内给出初步评估(是否确认、严重程度、修复计划)
  • 修复发布后,会在 Release 说明中致谢报告者(除非你要求匿名)

重点关注的安全边界

以下方面的问题属于高优先级,欢迎重点审查:

关注点 说明
生物特征泄露 owner.bin 中的特征向量是否可能被其他用户/进程读取或解密
画面泄露 摄像头帧或模糊快照是否存在落盘、上传、残留于内存的路径
遮罩绕过 是否存在无需匹配主人即可移除遮罩的方法
提权风险 开机自启注册表写入、进程间通信是否存在提权或劫持风险
更新机制 更新检查与模型下载是否可能被中间人劫持(下载源校验是否充分)
依赖漏洞 OpenCvSharp、WPF-UI 等依赖的已知 CVE

已知的非安全问题

以下行为是设计如此,不属于安全漏洞,无需报告:

  • 遮罩无法覆盖系统级界面:UAC 提升对话框、安全桌面、锁屏、Ctrl+Alt+Del 界面、DRM 保护内容——普通桌面窗口在系统架构上无法覆盖这些界面。
  • 无法防御物理手段:他人用手机拍摄屏幕、外部录屏设备等。
  • 无活体检测:照片或视频中的人脸会被当作真实人脸处理(本项目定位是"防他人旁观",非"防身份伪造")。
  • 主人与陌生人同框时按主人处理:默认策略下帧内任意一张正脸匹配主人即不触发遮罩,可在设置中改为"有陌生人即遮罩"。
  • 侧脸与贴边脸不参与判定:属于降低误报的有意设计,见 README「重要限制」一节。

隐私设计说明

为便于安全研究者评估,这里说明本项目的隐私相关设计:

  • 全本地处理:人脸检测、特征提取、比对全部在本机 CPU 完成,无任何云端服务。
  • 唯一的联网行为:仅在首次运行、模型缺失且用户确认后,从 OpenCV Zoo 官方仓库(及备用镜像)下载模型文件。模型就绪后运行期不发起网络请求。
  • 不保存画面:摄像头帧仅在内存中处理,处理完立即释放,不写盘、不缓存超过一帧。
  • 仅存加密特征:落盘的只有 DPAPI 加密后的 128 维特征向量(%LOCALAPPDATA%\PrivacyScreenGuard\owner.bin),绑定当前 Windows 用户,换用户或换机器均无法解密。
  • 模糊快照仅在内存:遮罩使用的截屏模糊图仅存在于内存,遮罩隐藏即释放,不落盘、不上传。

致谢

感谢所有负责任地披露安全问题的研究者。经确认的有效报告将在 Release 说明中致谢(除非报告者要求匿名)。

There aren't any published security advisories