2

我知道ProtectedData类最终会调用 Windows 的数据保护 API (DPAPI)。DPAPI 函数的文档提供了诸如密钥存储位置、谁可以解密数据等详细信息。但是,我无法找到任何有关实际底层加密算法的文档。(我需要知道即将进行的审计的安全文档保护方法的详细信息)。这只是使用AES或类似的东西吗?这有多安全?

4

1 回答 1

4

DPAPI使用三重DES。

  • 它使用经过验证的加密例程,例如 CBC 模式下的强 Triple-DES 算法、强 SHA-1 算法和基于 PBKDF2 密码的密钥派生例程。
  • 它使用经过验证的加密结构来保护数据。所有关键数据都受到密码完整性保护,秘密数据使用标准方法进行包装。
  • 它使用较大的秘密大小来大大降低暴力攻击破坏秘密的可能性。
  • 它使用具有 4000 次迭代的 PBKDF2 来增加对手试图破坏密码的工作系数。
  • 它会检查 MasterKey 的到期日期。
  • 它通过使用相互验证和隐私保护的 RPC 通道来保护与域控制器的所有必需网络通信。
  • 它通过从不将它们写入磁盘并最大限度地减少它们在可交换 RAM 中的暴露来最大限度地降低暴露任何机密的风险。
  • 它需要管理员权限才能对注册表中的 DPAPI 参数进行任何修改。
  • 它使用 Windows 文件保护来帮助保护所有关键 DLL 免受在线更改,即使具有管理员权限的进程也是如此。

DPAPI 最初生成一个称为 MasterKey 的强密钥,受用户密码保护。DPAPI 使用 PKCS #5 中描述的称为基于密码的密钥派生的标准加密过程从密码生成密钥。然后这个密码派生密钥与 Triple-DES 一起用于加密 MasterKey,最终存储在用户的配置文件目录中。

但是,根据Passcape,DPAPI 使用 AES256。至少在 Windows 7 上。

  • DPAPI 使用经过验证的加密算法。例如,默认情况下,Windows 7 在 CBC 模式下使用 AES256 加密,SHA512 用于散列,PBKDF2 作为基于密码的密钥派生例程。

在此处输入图像描述

于 2018-08-22T16:48:59.207 回答