如何保护用于加密Web应用程序的appsettings.json中敏感数据的加密密钥?
我想要在Web应用程序的配置文件中保护敏感数据。
在ASP.NET MVC4应用程序中,我们是这样处理的:
1. 不直接将敏感数据(例如连接字符串中的密码)添加到web.config(或web.prod.config等)中,而是写入占位符变量。 2. 部署服务(Octopus)会从其安全存储中检索敏感数据并覆盖web.config中的变量。 3. 然后使用aspnet_regiis.exe加密web.config的敏感部分。
现在我们正在使用ASP.NET Core,我们遵循的过程有些不同:
1. appsettings.json包含敏感数据的占位符变量,类似于以前工作的web.config。 2. 部署过程像以前一样用安全存储替换占位符与敏感数据。 3. 我认为我需要制作自己的自定义工具来加密appsettings.json文件的部分内容,并且需要制作一个可以解密appsettings.json的自定义配置提供程序。
我的问题是如何保护用于(a)和(b)的加密密钥。旧方法利用服务器的机器密钥加密文件。
我试图缓解的威胁是某人可以访问服务器上的appsettings.json并从中读取敏感数据(例如数据库密码等)。
我还对缓解这一威胁和/或此方法在一般情况下存在的其他问题的替代方法感兴趣。
我想要在Web应用程序的配置文件中保护敏感数据。
在ASP.NET MVC4应用程序中,我们是这样处理的:
1. 不直接将敏感数据(例如连接字符串中的密码)添加到web.config(或web.prod.config等)中,而是写入占位符变量。 2. 部署服务(Octopus)会从其安全存储中检索敏感数据并覆盖web.config中的变量。 3. 然后使用aspnet_regiis.exe加密web.config的敏感部分。
现在我们正在使用ASP.NET Core,我们遵循的过程有些不同:
1. appsettings.json包含敏感数据的占位符变量,类似于以前工作的web.config。 2. 部署过程像以前一样用安全存储替换占位符与敏感数据。 3. 我认为我需要制作自己的自定义工具来加密appsettings.json文件的部分内容,并且需要制作一个可以解密appsettings.json的自定义配置提供程序。
我的问题是如何保护用于(a)和(b)的加密密钥。旧方法利用服务器的机器密钥加密文件。
我试图缓解的威胁是某人可以访问服务器上的appsettings.json并从中读取敏感数据(例如数据库密码等)。
我还对缓解这一威胁和/或此方法在一般情况下存在的其他问题的替代方法感兴趣。