【问题标题】:.NET Secure storing sensitive data [duplicate].NET 安全存储敏感数据 [重复]
【发布时间】:2015-06-07 17:09:02
【问题描述】:

最近,我的一位客户提出了一个有趣的要求:

如果您必须将登录名/密码存储在.config 文件中,则不能以明文形式存储。此外,如果您考虑在.config 文件中加密此数据,则无法在源代码中硬编码加密密钥。

包含敏感数据的示例配置部分:

    <configSections>
    <section name="PayUSettings" type="JobSystem.Payments.PayU.PayUSettings, JobSystem.Payments" />
  </configSections>

<PayUSettings PosId="265898" Login="xxx" Password="yyy" IsTestMode="False" />

满足此要求的可能解决方案是什么?

【问题讨论】:

  • 使用智能卡 USB 记忆棒存储私钥,将其锁定在保险箱中,并希望一切顺利。您需要将密钥存储在可读的地方。

标签: .net security


【解决方案1】:

幸运的是,.NET 已经为您提供了 ProtectedConfiguration Provider 这个功能。这可以使用windows内置的机器级或用户级密钥容器来存储密钥信息。

https://msdn.microsoft.com/en-us/library/53tyfkaw(v=vs.80).aspx

如果这是一个 Web 应用程序,那么 IIS 可以非常简单地使用 aspnet_regiis.exe 加密 web.config 文件的任何部分。请参阅此处的链接:

https://msdn.microsoft.com/en-us/library/zhhddkxy%28v=vs.140%29.aspx

如果这不是一个 Web 应用程序,那么它会有点困难(但并不难),因为您需要自己实现 ProtectedConfiguration 提供程序。此处提供了如何执行此操作的示例:

https://msdn.microsoft.com/en-US/library/dtkwfdky(v=vs.80).aspx

【讨论】:

  • 谢谢你,帮了大忙
猜你喜欢
  • 2013-08-01
  • 2021-03-27
  • 2020-10-27
  • 2012-03-28
  • 2017-09-15
  • 1970-01-01
  • 1970-01-01
  • 2023-02-16
  • 1970-01-01
相关资源
最近更新 更多