C# ProtectData类使用哪种加密算法?
我知道该类最终会调用Windows的数据保护API(DPAPI)。提供了诸如密钥存储位置、谁可以解密数据等详细信息。但是,我还没有找到任何关于实际底层加密算法的文档。(我需要了解安全文档保护方法的详细信息,以便在即将进行的审计中使用)。这只是使用AES或类似的东西吗?这有多安全?使用三重DESC# ProtectData类使用哪种加密算法?,c#,.net,windows,encryption,dpapi,C#,.net,Windows,Encryption,Dpapi,我知道该类最终会调用Windows的数据保护API(DPAPI)。提供了诸如密钥存储位置、谁可以解密数据等详细信息。但是,我还没有找到任何关于实际底层加密算法的文档。(我需要了解安全文档保护方法的详细信息,以便在即将进行的审计中使用)。这只是使用AES或类似的东西吗?这有多安全?使用三重DES 它使用经过验证的加密例程,如CBC模式下的强三重DES算法、强SHA-1算法和基于PBKDF2密码的密钥派生例程 它使用经过验证的加密构造来保护数据。所有关键数据都受到加密完整性保护,机密数据使用标准方
- 它使用经过验证的加密例程,如CBC模式下的强三重DES算法、强SHA-1算法和基于PBKDF2密码的密钥派生例程
- 它使用经过验证的加密构造来保护数据。所有关键数据都受到加密完整性保护,机密数据使用标准方法包装
- 它使用较大的秘密大小,以大大减少暴力攻击泄露秘密的可能性
- 它使用PBKDF2进行4000次迭代,以增加试图破坏密码的对手的工作系数
- It健全性检查主密钥过期日期
- 它通过使用相互认证和隐私保护的RPC通道来保护与域控制器的所有必需网络通信
- 它通过从不将机密写入磁盘并将其暴露在可交换RAM中最小化,从而将泄露机密的风险降至最低
- 对注册表中的DPAPI参数进行任何修改都需要管理员权限
- 它使用Windows文件保护来帮助保护所有关键DLL不受联机更改的影响,即使是具有管理员权限的进程也不例外
- DPAPI使用经过验证的加密算法。例如,Windows 7默认情况下在CBC模式下使用AES256加密,SHA512用于散列,PBKDF2用作基于密码的密钥派生例程
请参阅soureCode:@FelipeOriani:ProtectData的源代码中没有此类信息,因为它通过interop调用CryptProtectData。您需要查看Crypt32的源代码以确定算法。然而,有一些文档解释了所有这些,而不需要查看源代码。谢谢,这非常有帮助。这个答案的唯一问题是无关的,可能会误导的形容词“strong”和“profed”。这让它看起来像一个营销宣传。SHA-1很强大??在去年(2017年)的密码标准中,它被认为是
坏的
。@stenportov我认为批评/否决答案是不合理的,因为你不同意微软的实施。答案总结了微软文档中关于该主题的相关部分(这正是问题的目的——这篇文档最终出人意料地难以找到)@ EJoshuaS拿起任何关于密码的文章,这是超过几岁,引用它没有思想是完全不负责任的,使OP和其他人(1)考虑DPAPI安全,因为营销语言从2001和(2)考虑SHA-1安全性。