Enpass 中文文档 下载 App

Enpass 安全白皮书要点 — AES-256、SQLCipher、PBKDF2 加密架构解析

安全白皮书概述

Enpass 发布了公开的安全白皮书(Security Whitepaper),详细说明了其密码保险库的加密架构。以下是关键技术要点的中文解读。

加密引擎:SQLCipher

Enpass 使用 SQLCipher 作为底层数据存储引擎。SQLCipher 是一个经过充分测试的开源加密 SQLite 数据库引擎,被全球数百家公司和政府机构的应用所使用(包括一些知名的医疗和金融软件)。

选择 SQLCipher 的原因:

加密算法

AES-256

Enpass 对保险库文件的加密使用 AES-256(Advanced Encryption Standard,256 位密钥)。AES 是当前全球应用最广泛的对称加密标准,被美国国家标准与技术研究院(NIST)列为联邦加密标准(FIPS 197)。

密钥派生:PBKDF2 320,000 轮

从用户的主密码(Master Password)到真正的加密密钥,Enpass 使用 PBKDF2(Password-Based Key Derivation Function 2) 算法,迭代次数设为 320,000 轮。

PBKDF2 的作用是让"从主密码推导加密密钥"这个过程变得足够耗时。320,000 轮意味着:

Enpass 在每次应用更新时可能增加 PBKDF2 轮数(随着硬件进步),以保持相同的安全强度。

盐值(Salt)

除了迭代次数,PBKDF2 还使用随机盐值(Salt)。盐值使得即使两个用户使用了完全相同的主密码,推导出来的加密密钥也完全不同——防止彩虹表攻击。

保险库文件结构

每个 Enpass 保险库是一个独立的加密数据库文件。文件本身不包含任何明文信息,包括:

这意味着即使攻击者获取了保险库文件,无法判断文件里存了多少条密码、也无法知道任何账号的名称。

云端存储的安全边界

Enpass 本身不处理云端存储的安全性——那取决于用户选择的云服务提供商。但 Enpass 在设计上做了以下保障:

  1. 保险库文件本身已加密:即使云服务提供商的数据中心被攻破,攻击者拿到的也只是加密后的数据库文件
  2. 云账号建议开启 2FA:Enpass 文档明确建议用户为存储保险库的云账号开启双因素认证
  3. 本地安全审计:泄露监测功能(Breach Monitoring)在本地运行,检查时只发送密码哈希的前 5 个字符到 Have I Been Pwned,不暴露完整密码

第三方安全审计

Enpass 定期聘请独立安全公司对其加密实现和代码进行审计。审计报告的公开摘要可以在帮助中心查看。

想看看 Enpass 的其他功能?