拆解Proton Pass安全中心:如何检测密码复用、弱密码与泄露风险的4步引擎

发布时间:2026/8/24 17:40:46
拆解Proton Pass安全中心:如何检测密码复用、弱密码与泄露风险的4步引擎 拆解Proton Pass安全中心如何检测密码复用、弱密码与泄露风险的4步引擎【免费下载链接】android-passAndroid code for the Proton Pass application项目地址: https://gitcode.com/gh_mirrors/an/android-passProton Pass 是一款开源的 Android 密码管理应用其内置的**安全中心Security Center**会自动扫描你的密码库检测密码复用、弱密码、缺失双因素认证2FA与数据泄露风险。本文带你拆解这个检测引擎的 4 个核心步骤从采集密码库数据到逐条评分打分最后汇总成一份安全分析报告。安全中心源码在哪里整个功能拆成两个 Gradle 模块职责清晰检测引擎pass/security-center/接口定义在 api 模块具体检测器实现在 impl 模块还配有 fakes 模块 供单元测试使用界面层pass/features/security-center/包含首页、报告、复用密码、弱密码、缺失 2FA、暗网监控等多个 Compose 页面。4 步引擎总览如下步骤检测器负责发现第 1 步ObserveSecurityAnalysisImpl采集监控条目同步泄露情报第 2 步RepeatedPasswordChecker 密码复用第 3 步InsecurePasswordChecker 弱密码 / 易猜密码第 4 步MissingTfaChecker 泄露密码源⚠️ 未开 2FA、已泄露密码第 1 步采集密码库数据同步泄露情报一切从 ObserveSecurityAnalysisImpl.kt 开始。它做两件事取数据通过observeMonitoredItems(includeHiddenVaults false)订阅所有受监控的密码条目隐藏库不参与检测刷新情报每次条目变化时触发refreshCompromisedPasswords(items)把当前密码与已知的泄露密码数据比对更新。之后用 Kotlin Flow 的combine把 4 个检测器与泄露密码流并行合并成一份SecurityAnalysis结果。每个检测都包装成带加载态的LoadingResult所以界面上每一项数字都会先显示加载中再变为真实计数。第 2 步密码复用检测——一个密码用在了几个网站实现见 RepeatedPasswordChecker.kt算法非常直白过滤掉用户手动排除检测的条目isCheckExcluded(SecurityCheck.ReusedPassword)在加密上下文中逐条解密登录密码以明文密码作为 Key 建一张Map密码, 条目列表任何 Key 对应的条目数大于 1这个密码就算被复用整组条目进入报告。值得注意的细节报告里存的是重新加密后的密码明文只在内存中短暂存在——密码永远不会以明文落盘或外传。第 3 步弱密码评分——让 Rust 引擎给密码打分弱密码判定在 InsecurePasswordChecker.kt对每条登录密码调用PasswordScorer该评分器由 Rust 核心提供见 PasswordScorerImpl.kt输出三档结果VULNERABLE易攻破直接进入高危列表WEAK弱进入弱密码列表STRONG强不报告。用 Rust 做评分意味着检测逻辑跨平台共享、性能稳定且评分规则与桌面端、Web 端保持完全一致。第 4 步2FA 缺失与泄露密码检查Missing2faChecker.kt 的判定逻辑是5 个条件全满足才报警条目没有被用户排除 2FA 检查条目没有绑定 Passkey有 Passkey 视为已有更强的第二因子是登录类型条目没有设置 TOTP 验证码该网站确实支持2FA——通过域名白名单Supports2fa判断避免给不支持的网站报误伤。同时第 1 步刷新的泄露密码流observeCompromisedPasswords会持续统计有多少密码已出现在已知泄露数据中与暗网监控Sentinel功能共同构成泄露风险检测。结果如何呈现用户能做什么最终 5 路数据流被combine汇总为SecurityAnalysis经distinctUntilChanged()去重后驱动界面。报告页 UI 见 SecurityCenterReportContent.kt支持把条目标记为已解决。用户也可以精细控制检测范围。SecurityCheck.kt 定义了 4 类检查弱密码、泄露密码、复用密码、缺失 2FA每条密码都能单独跳过其中任意一项检查——比如某个内部系统必须用弱密码就不必让它反复报警。小结 Proton Pass 安全中心的设计思路可以概括为一句话本地解密评分 远端泄露情报 白名单降噪。4 步引擎全部跑在端侧密码不离开加密边界配合可排除机制与分档评分让新手也能看懂为什么这条密码有风险并知道下一步该改什么。【免费下载链接】android-passAndroid code for the Proton Pass application项目地址: https://gitcode.com/gh_mirrors/an/android-pass创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考