Erg*_*wun 9 encryption connection-string asp.net-core
如何保护用于加密Web应用程序中敏感数据的加密密钥appsettings.json
?
我想保护我的Web应用程序配置中的敏感数据.
在ASP.NET MVC4应用程序中,我们这样做:
web.config
(或web.prod.config
等),而是写入占位符变量.web.config
.aspnet_regiis.exe
.现在我们正在使用ASP.NET Core,我们正在遵循的过程有点不同.
appsettings.json
保存敏感数据的占位符变量,类似于web.config之前的工作方式.而不是使用aspnet_regiis
,我相信我需要:
a)制作我自己的自定义工具来加密appsettings.json
文件的各个部分.
b)创建一个可以解密(全部/部分)的自定义配置提供程序 appsettings.json
我不明白的是如何保护用于(a)和(b)的加密密钥.旧方法利用服务器的机器密钥来加密文件.
我试图减轻的威胁是有人获得访问appsettings.json
服务器并从中读取敏感数据(例如数据库密码等)
我也对使用这种方法来缓解这种威胁和/或其他问题的其他方法感兴趣.
如果您不“信任”服务器 - 您就无法保护存储在该服务器内的“秘密”。
解释:
无论您发明什么“安全”(=不安全)方案 - 当应用程序启动时都必须能够将秘密“解密”为某种“可用”形式。
这意味着“解密”所需的所有“密钥”(证书等)必须存在于该服务器上并且可供应用程序访问(否则应用程序无法启动)。
这意味着访问服务器和应用程序的一些坏人也可以访问其上的所有“密钥”,并“解密”您的秘密。可能是通过复制文件,可能是通过反编译您的应用程序,可能是转储您的应用程序内存 - 但它可以。
没有绝对的保护。
归档时间: |
|
查看次数: |
6776 次 |
最近记录: |