Skip to content

隐私政策和用户协议

1. 引言

本隐私政策和用户协议旨在向您说明 CodeBook 应用在数据处理、安全保障以及用户使用规范等方面的情况。请您仔细阅读,您使用本应用即视为同意本政策和协议的条款。

我们依据相关法律法规制定本政策,以确保您的合法权益得到充分保护。

2. 数据安全机制

CodeBook 采用多重安全机制保护您的数据:

  • 所有敏感数据使用 AES - 256 - GCM 加密算法加密存储。此算法被广泛认可为高强度加密标准,能够有效防止数据在存储过程中被窃取或篡改。
  • 加密密钥由 Android KeyStore 系统安全存储和保护。Android KeyStore 系统提供了硬件级别的安全防护,确保密钥不被未经授权的访问。
  • 应用支持密码认证和生物识别两种认证方式。
  • 生物识别使用 BiometricPrompt API 解锁 KeyStore 密钥,数据的加密与解密完全在操作系统的硬件空间中完成,不进入应用内存。
  • 密码认证通过 PBKDF2 密钥派生算法加盐派生得出,即使相同密码也会产生不同的哈希值,确保数据安全性。
  • 所有数据仅存储在设备本地,我们不会产生任何的网络交互。这意味着您的数据不会因为网络传输而面临被泄露的风险。

重要提示

由于采用了高安全性的加密机制:

  • 如果您选择密码认证:忘记密码将导致数据无法解密。因为密码是派生加密密钥的关键,一旦遗忘,我们无法通过其他方式恢复密钥。
  • 如果您选择生物识别:删除系统生物识别数据将可能导致密钥丢失。生物识别数据与加密密钥紧密绑定,系统生物识别数据的删除会使应用无法正常解锁且无法获取到密钥。
  • 这些情况下的数据丢失是不可恢复的,因为我们不存储任何可以用于恢复的信息。这是为了最大程度保障您的数据安全,防止第三方通过恢复信息获取您的数据。

3. 认证与加密机制

我们提供两种认证方式来保护您的数据:

3.1 密码认证

  • 使用 PBKDF2 - HMAC - SHA256 算法对密码进行加盐处理。此算法在行业内被广泛应用于密码加密,能够有效抵御暴力破解和字典攻击。
  • 使用 120,000 次迭代增强密码强度。迭代次数越多,破解密码所需的计算资源和时间就越长。
  • 每个用户使用唯一的随机盐值。盐值的唯一性确保了即使不同用户设置相同密码,其加密后的哈希值也不同。
  • 密码哈希和盐值存储在 EncryptedSharedPreferences 中。EncryptedSharedPreferences 提供了额外的加密存储功能,进一步保障密码相关信息的安全。
  • 通过密码派生出 256 位的 AES 加密密钥。此密钥用于后续对敏感数据的加密和解密操作。
  • 我们并不保存您的加密密钥,在每次启动应用时都需要重新通过主密码派生密钥。这一措施防止了密钥在设备上长期存储可能带来的安全风险。

3.2 生物识别认证

  • 使用 Android BiometricPrompt API 进行生物识别认证。该 API 经过严格的安全审计,确保生物识别过程的安全性和可靠性。
  • 加密密钥存储在 Android KeyStore 系统中。如前所述,Android KeyStore 提供了强大的安全防护。
  • 密钥与生物识别绑定,每次使用都需要认证。这保证了只有通过生物识别验证的用户才能访问加密数据。
  • 认证有效期为 10 分钟,超时需要重新认证。设置有效期是为了在便捷性和安全性之间找到平衡,减少不必要的认证操作,同时确保数据在较长时间内不会处于未受保护状态。
  • 密钥永远不会离开 KeyStore 系统,无法导出。这防止了密钥被恶意软件窃取或导出用于非法目的。
  • 加解密过程由操作系统安全硬件处理。利用设备的安全硬件进行加解密,进一步提高了加解密过程的安全性和性能。

4. 数据加密范围

CodeBook 不会收集任何用户数据,所有数据均存储在您设备本地,其中以下信息将被加密存储到您设备本地的数据库当中:

  • 应用账号的密码字段
  • OTP 密钥
  • 银行卡号和 CVV 码
  • 身份证号码
  • SSH 私钥和密码短语

以下信息以明文形式存储:

  • 应用名称和账号名称。这些信息用于标识和管理您的记录,不涉及敏感信息,以明文存储便于您查看和管理。
  • 银行名称和持卡人姓名。此信息相对不那么敏感,但我们也会采取相应的安全措施保护其在存储和使用过程中的安全。
  • 身份证持有人姓名和地址信息。同样,这些信息在使用和存储过程中也受到严格的安全管控。
  • SSH 密钥的名称和公钥。公钥本身不涉及敏感信息,其名称用于标识和管理 SSH 密钥。
  • 备注信息等。备注信息由您自行填写,我们尊重您的隐私,仅在您授权的情况下进行使用和管理。

5. 数据解密机制

在以下情况下会触发数据解密:

  • 进入应用 OTP 主页面、编辑页面、详情页面时,我们需要对 OTP 的 Secret 进行解密,以便回显数据、生成验证码。
  • 查看密码、银行卡、身份证等敏感信息时。当您需要查看这些敏感信息时,应用会在确保您身份验证通过的情况下进行解密操作。
  • 使用自动填充服务时。为了方便您在其他应用中使用存储的敏感信息,应用会在您认证通过后进行解密并填充。
  • 导出数据时。在您需要将数据导出到其他设备或进行备份时,应用会对数据进行解密并按照特定的加密格式进行导出。

解密过程的安全保障:

  • 每次进入应用都需要验证用户身份。确保合法才能触发解密操作。
  • 解密过程在内存中进行,不会写入磁盘。减少敏感数据在磁盘上留存的风险,一旦应用关闭或设备重启,内存中的敏感数据将被清除。
  • 使用 GCM 模式确保数据完整性。GCM 模式不仅能够加密数据,还能验证数据在传输和解密过程中是否被篡改。
  • 解密失败会立即清除内存中的敏感数据。防止因解密失败导致敏感数据泄露。

6. 自动填充服务

自动填充服务目前正在处于测试阶段,其主要帮助您在其他 App 需要输入密码时自动填充:

  • 识别支持的字段类型:

    • 用户名和密码字段。帮助您快速填充各类应用的登录信息。
  • 安全措施:

    • 每次填充前都需要认证。确保是您本人授权进行填充操作。
    • 填充数据经过解密后直接传递给系统。减少数据在传输过程中的暴露风险。
    • 不保存解密后的数据。填充完成后,应用不会留存解密后的敏感数据。
    • 不会填充到不受信任的应用。我们通过包名绑定机制,防止敏感数据被填充到不相关应用中。

7. 数据备份与恢复

CodeBook 支持对您存储在应用内的所有数据进行备份和恢复,以下是我们对备份的保护措施:

  • 由于加密密钥无法被导出,所以在对数据进行导出时全部的数据将会被临时解密生成备份文件。
  • 备份文件使用独立的加密密钥加密。即使备份文件被他人获取,没有正确的加密密钥也无法解密其中的数据。
  • 恢复数据时需要提供加密时的密钥。只有拥有正确密钥的用户才能成功恢复数据。
  • 支持从 Chrome 浏览器导入密码数据。方便您整合已有的密码信息,但在导入过程中同样会进行严格的安全验证。

特别说明

数据的导出与导入:

  • CodeBook 暂不支持将应用内存储的数据导出成通用格式供其他应用导入使用。
  • CodeBook 暂不支持单独导出某个分类的数据,只支持全部一次性导出全部数据。
  • CodeBook 暂不支持导出/导入时不设置密码,这是为了防止您的敏感数据被导出后被恶意应用读取。

8. 设备安全要求

为确保您的数据安全,请注意以下事项:

  • 确保设备未被 Root 或 Bootloader 解锁。Root 或解锁 Bootloader 可能会使设备失去部分安全防护机制,增加数据泄露风险。
  • 确保设备无恶意应用或病毒。恶意应用和病毒可能会窃取您的数据或破坏应用的安全机制。
  • 及时更新系统安全补丁。系统安全补丁通常会修复已知的安全漏洞,保持设备的安全性。
  • 不建议在存在安全隐患的设备上运行 CodeBook。如设备已被入侵或存在安全漏洞未修复的情况,使用本应用可能导致数据泄露。

特别说明

关于设备安全:

  • CodeBook 不会主动检测设备的安全状态。我们依赖于您对设备安全的自我管理和维护。
  • 在不安全的设备上使用可能导致数据泄露风险。即使应用本身采取了多种安全措施,但设备层面的安全问题可能会绕过应用的防护。
  • 用户需自行承担使用不安全设备的风险。在使用本应用前,请确保您的设备处于安全状态。

9. 用户协议

使用本应用即表示您同意:

  • 自行承担密码管理的责任。您需要妥善保管自己设置的密码,避免遗忘或泄露。
  • 妥善保管认证凭据(密码或生物识别)。不要将密码告知他人,同时注意保护设备的生物识别功能不被他人滥用。
  • 理解并接受数据无法恢复的风险。如前文所述,由于加密机制的特性,在某些情况下数据丢失后无法恢复。
  • 不会尝试破解或篡改应用的安全机制。任何试图破解或篡改应用安全机制的行为都是违反用户协议和可能触犯法律的。
  • 遵守相关法律法规使用本应用。您使用本应用的行为应符合您所在国家地区等相关法律法规的规定。
  • 定期备份重要数据。建议您定期进行数据备份,以防止因设备故障等原因导致数据丢失。
  • 在更换设备前导出数据。确保您在更换设备时能够顺利将数据迁移到新设备上。

10. 免责声明

我们不对以下情况承担责任:

  • 因用户遗忘密码导致的数据丢失。由于密码是用户自行设置和保管,我们无法提供密码找回服务,因此不对因遗忘密码导致的数据丢失负责。
  • 因设备重置或更换导致的数据丢失。设备重置或更换属于用户自主操作,在操作前请确保已备份好数据。
  • 因系统故障导致的数据损坏。尽管我们采取了多种措施保障数据安全,但系统故障可能超出我们的控制范围。
  • 因用户操作失误导致的数据泄露。如将密码告知他人、在不安全环境下使用应用等操作失误导致的数据泄露,责任由用户自行承担。
  • 第三方应用对本应用的攻击或破解。我们会尽力防范第三方攻击,但对于因第三方攻击导致的数据泄露或其他损失,我们不承担责任。
  • 在不安全设备上使用导致的数据泄露。如前文所述,设备安全是保障数据安全的重要前提,在不安全设备上使用本应用的风险由用户自行承担。
  • 因其他任何形式,导致您的数据丢失、泄露、无法找回。

重要提示

关于数据恢复:

  • 如果您遗失密码或加密密钥,开发者无法提供任何恢复帮助。这是由应用的加密机制决定的,我们不存储任何可用于解密数据的信息。
  • 这是因为 CodeBook 不存储任何可用于解密数据的信息。我们致力于保护您的数据安全,不保留任何可能被滥用的恢复信息。
  • 请务必妥善保管您的密码和备份。建议您设置强密码,并定期备份数据到安全的存储介质。

11. 政策和协议的变更

我们可能会根据法律法规的变化、技术的发展或业务需求对本隐私政策和用户协议进行变更。由于 CodeBook 无法与互联网进行交互,所以变更后的政策和协议将在新版本应用内公布。在政策和协议变更后,如果您继续使用本应用,即视为您同意接受变更后的条款。

12. 致谢

最后,感谢您使用 CodeBook 应用程序,如您在使用过程中有任何疑问或建议,欢迎您致信 xuanran0808@gmail.com

基于 MIT 许可发布