C# 在内存中存储敏感配置数据

C# 在内存中存储敏感配置数据,c#,security,.net-core,configuration,C#,Security,.net Core,Configuration,我目前正在开发一个新的.net核心API,并试图找到一种访问机密/敏感信息的方法,这是一切顺利运行所必需的 目前,我正在创建一个新的配置提供程序/源,它将访问我们的vault服务器(使用hashicorp vault)以获取所需的所有配置数据,包括:连接字符串和web令牌的私钥 这似乎是个好主意,因为我从appsettings.json等配置文件中删除了所有敏感信息。然而,这会导致数据以纯文本形式存储在内存中,这让我有点担心 在将数据放入配置字典之前,我考虑过重新加密数据,但我仍然需要解密密钥…

我目前正在开发一个新的.net核心API,并试图找到一种访问机密/敏感信息的方法,这是一切顺利运行所必需的

目前,我正在创建一个新的配置提供程序/源,它将访问我们的vault服务器(使用hashicorp vault)以获取所需的所有配置数据,包括:连接字符串和web令牌的私钥

这似乎是个好主意,因为我从appsettings.json等配置文件中删除了所有敏感信息。然而,这会导致数据以纯文本形式存储在内存中,这让我有点担心

在将数据放入配置字典之前,我考虑过重新加密数据,但我仍然需要解密密钥……因此我觉得这与另一个步骤是相同的


这只是一个过度思考的问题吗?或者,我是否应该重新考虑配置此数据,并在需要时重复调用vault以获取数据?

很可能是的,这就是为什么文档现在建议不要使用此数据,甚至对此存在争议的原因。无论你在某个时候做什么,秘密都是显而易见的。如果有人可以将调试器附加到您的应用程序并读取其内存,则您已经完成了。的源代码可在上获得。您可以在文档和源代码中检查它们如何处理这种情况itself@PanagiotisKanavos我甚至没有想过要查看Azure Key Vault的实现以获得指导,但我还是按照您的建议做了,而且它的实现似乎与我所做的一样(尽管它们要优雅得多)。所以是的,这是一个过度思考的案例,以纯文本形式存储在内存中可能是最好的地方。如果他们可以访问服务器并访问内存,那么我确实有更大的问题。您也可以检查。它的作用不同——在本地保护数据,但它可以作为一个附加组件使用