资讯动态

Monica安全模型深度解析:本地优先密码管理如何做到AES-256-GCM加密不落地

发布时间:2026/10/16 1:12:17 来源:尧图企业网站定制
【免费下载链接】MonicaMonica PassPassword Management, 2FA Generator项目地址https://gitcode.com/gh_mirrors/monica5/Monica点击查看免费下载Monica 是一款开源的 Android 本地优先密码管理与 2FA 生成器应用。它的核心理念是零知识保护所有密码、信用卡、证件信息在落盘前都会经过 AES-256-GCM 认证加密明文永远不会以可读形式出现在设备上。即使你的数据库文件被盗没有主密码也拿不到任何数据。一、总体架构三层防线一图看懂Monica 的安全设计可以概括为三层层级保护对象核心技术数据层数据库中的每条敏感字段AES-256-GCM 字段级加密密钥层加密数据用的主数据密钥MDK密码包裹 Android KeyStore 硬件包裹传输层WebDAV 云备份文件AES-256-GCM 文件级加密这个分层思想在官方技术文档中有完整描述本地存储与加密技术文档。二、数据层AES-256-GCM 字段加密明文不落地数据库本身使用 RoomSQLite存储在应用私有目录/data/data/takagi.ru.monica/databases/外部应用无权访问。但 Monica 不依赖这一道围栏——数据库里的敏感字段如密码存的不是明文而是密文。核心实现在 SecurityManager.kt 中。每次写入字段时加密流程是用 32 字节的随机主数据密钥MDK初始化AES/GCM/NoPadding加密器加密器自动生成 12 字节随机 IV初始化向量保证同样的明文每次加密结果都不同存储格式为MDK|Base64(IV 密文)——前缀MDK|用于区分加密数据和普通文本。为什么选 GCM 模式而不是 CBCGCM 是认证加密AEAD它不仅保证保密性还附带 128 位完整性校验标签。任何人哪怕只翻转密文中的一个比特解密时都会直接报错失败而不是得到一段被篡改的看似正常的数据。这意味着篡改数据库密文没有任何攻击价值。三、密钥层MDK 的双重包裹AES 加密需要密钥那 MDK 本身存在哪Monica 的答案是双重包裹两条独立通路都能还原出 MDK密码包裹输入主密码 → PBKDF2WithHmacSHA256 迭代100,000 次16 字节随机盐派生出 AES 密钥 → 用 AES-GCM 解开密码包裹的 MDK。这是忘记密码之外的唯一恢复路径因此主密码是最后的安全底线。硬件包裹MDK 同时用 Android KeyStore 生成的硬件级 AES-256-GCM 密钥加密一份密钥由 TEE/SE 保护且设置了指纹/人脸授权认证后 300 秒内有效、录入新生物特征即永久失效策略。主密码 ──PBKDF2(10万次)── AES密钥 ──解密── MDK ──AES-GCM── 你的密码们 硬件Keystore(TEE) ─────────────────── MDK生物识别解锁的快捷通路设计上的关键细节MDK 是一次性随机生成的与主密码本身无关。所以即使有人拿走了数据库暴力破解的只是 PBKDF2 哈希——而 10 万次迭代正是为了让这次破解成本高到不可行。密钥材料的完整生命周期见 SecurityManager.kt 的 MDK 初始化逻辑。四、备份层文件上传云端密钥绝不上传通过 WebDAV 备份时Monica 会生成 ZIP 后整体加密格式为[MONICA_ENC_V1 魔数][32字节盐][12字节IV][AES-GCM密文]派生算法同样是 PBKDF2-HMAC-SHA25610 万次迭代 每次全新的随机盐即使两个用户使用相同备份密码生成的文件也完全不同密码错误时GCM 校验会抛出AEADBadTagException应用会明确提示密码错误或文件损坏而不是悄悄解出一堆乱码。实现见 EncryptionHelper.kt。五、安全网600,000 次迭代的本地恢复信封如果 Keystore 密钥丢失换机、清数据只有主密码包裹的 MDK 能救场。为了让这条通路更稳Monica 在每次成功解锁后还会写入一个独立的恢复信封recovery.json保护算法升级到PBKDF2-HMAC-SHA256 600,000 轮随机 32 字节盐比日常验证迭代高 6 倍AES-GCM 加密时附加 AAD附加认证数据文件结构被改动都无法通过校验信封内只存密文任何明文密钥都不会落盘。另有针对 Keystore 临时故障的启动容错读取失败自动重试三次已知损坏绝不会自动重建导致旧数据丢失详见 secure-startup-318 验证记录。六、扩展保险库MDBX 引擎的密钥派生Monica 的 MDBX 扩展保险库采用独立但同样严谨的方案MdbxVaultCrypto.kt凭据 主密码 可选密钥文件MONICA-MDBX-KEY-FILE-V1组合经 SHA-256 归一化后做 PBKDF2 派生按性能档位 90,000 / 210,000 / 360,000 次迭代派生密钥再包裹一个随机的时期密钥epoch key字段密文以mdbx:v1:前缀 JSONnonce 密文存储内置 HmacSHA256 校验器verifier密码错误时在昂贵的解密前就能快速拒绝。七、给你的实践建议 主密码要长且独特它是唯一能跨设备恢复全部数据的凭证建议用 Monica 内置生成器创建一个 19 位以上的短语密码。开启生物识别走 TEE 硬件通路的解锁体验更快且新录入指纹会使旧密钥永久失效——这是防止指纹被复用的硬性保证。设置自动锁定默认 5 分钟自动锁定配合屏幕保护即可兼顾安全与便利。备份密码 ≠ 主密码时务必离线记下WebDAV 备份密码是第二套独立凭据丢失它同样无法读取云备份。设置恢复问题作为忘密码时的辅助确认手段答案仅存 SHA-256 哈希。八、常见问题Q把数据库文件拷出来能看到密码吗不能。字段全部是MDK|前缀的 AES-GCM 密文且 MDK 只由你的主密码或本机硬件密钥还原文件被拷贝走毫无意义。Q主密码会被 Monica 记录或上传吗不会。应用只保存主密码的 PBKDF2 哈希值且存放在经 AES-256 加密的 EncryptedSharedPreferences 中本地优先架构下数据也不经过任何第三方服务器。Q忘记密码就永远丢失了吗若从未设置恢复问题且没有备份密码是的——这正是零知识的含义厂商也无法帮你找回。这也是为什么强烈建议妥善记录主密码或配置 WebDAV 备份。结语Monica 用一条清晰的设计主线回答了本地优先如何做到安全明文只在内存中短暂存在密钥由密码与硬件 Keystore 双通道守护完整性由 GCM 认证标签兜底。从单条字段到整个备份文件每一层都经得起文件被盗的假设——这也是你选择密码管理工具时最该追问的那个问题。赞分享【免费下载链接】MonicaMonica PassPassword Management, 2FA Generator项目地址https://gitcode.com/gh_mirrors/monica5/Monica点击查看免费下载相关推荐终极指南KeePassX安全密码管理的AES-256位加密技术解析终极指南KeePassX安全密码管理的AES 256位加密技术解析 在数字时代密码安全已成为保护个人信息的第一道防线。KeePassX作为一款跨平台的开源密桌面应用应用安全Keepass2Android安全机制深度解析AES-256加密与密钥管理作为一款功能强大的安卓密码管理器 Keepass2Android 采用了业界领先的 AES 256加密 技术来保护用户数据安全。这款开源应用通过多层次的安全机移动开发应用安全密码学OmniRoute 安全模型深度解读从漏洞披露到 AES-256-GCM 加密与 Guardrails 防护体系OmniRoute 安全模型深度解读从漏洞披露到 AES 256 GCM 加密与 Guardrails 防护体系 本文围绕开源项目 OmniRoute 的官方后端API网关LLM 网关人工智能大模型MCP 服务桌面应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑