存储使用Data Protection API和PersistKeysToFileSystem加密的敏感数据

时间:2018-08-28 12:04:35

标签: encryption asp.net-core dpapi

伙计们, 我需要将一些字符串数据从MVC Core 2.0应用程序加密到SQL数据库中。 我正在考虑将Data Protection API与PersistKeysToFileSystem一起使用,以便可以将数据还原到另一台服务器并使用相同的密钥文件解密数据。 Net Core的DPAPI的性能给我留下了深刻的印象,我也不希望使用任何自定义的加密解决方案,因为它风险太大。我将大量数据上传到SQL。加密前的字符串不得超过200个字符。

我认为DPAPI被认为更适合加密小块数据,例如密码,而不是sql批量操作。人们是否认为使用DPAPI将数据加密到数据库中是一个很好的用例?

1 个答案:

答案 0 :(得分:1)

Data Protection API不一定仅适用于少量数据,而是适用于相对瞬态的数据。换句话说,它并不是真正用于长期加密/解密。密钥将在某个时间循环,并且保留旧密钥以允许过渡到新密钥,但您不应真正依赖于此。

根据docs

  

ASP.NET Core数据保护API并非主要用于机密有效载荷的无限期持久性。 Windows CNG DPAPI和Azure Rights Management等其他技术更适合无限期存储的情况,它们具有相应的强大密钥管理功能。

它的确表明您可以根据需要这样做。但是,如果您可能正在使用已撤销的密钥,则必须以不同的方式处理事情。上面的文档链接详细介绍了所有内容。但是,请记住,由于要显式地允许将已撤销的密钥用于解密数据,因此您固有地以不太安全的方式对数据进行操作。

相关问题