EJo*_*ica 2 .net c# windows encryption dpapi
我知道ProtectedData类最终会调用 Windows 的数据保护 API (DPAPI)。DPAPI 函数的文档提供了诸如密钥存储位置、谁可以解密数据等详细信息。但是,我无法找到任何有关实际底层加密算法是什么的文档。(我需要了解安全文档保护方法的详细信息,以供即将进行的审核)。这只是使用 AES 还是类似的东西?这有多安全?
DPAPI使用 Triple-DES。
- 它使用经过验证的加密例程,例如 CBC 模式下的强 Triple-DES 算法、强 SHA-1 算法和 PBKDF2 基于密码的密钥派生例程。
- 它使用经过验证的加密结构来保护数据。所有关键数据均受到加密完整性保护,并且秘密数据使用标准方法进行包装。
- 它使用大的秘密大小来大大降低暴力攻击破坏秘密的可能性。
- 它使用 PBKDF2 进行 4000 次迭代,以增加攻击者试图破解密码的工作因素。
- 它会检查 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 作为基于密码的密钥派生例程。
归档时间: |
|
查看次数: |
2876 次 |
最近记录: |