多平台数据保护

时间:2017-03-17 06:08:39

标签: c# asp.net-core .net-core

问题:在开发多平台.NET Core 1.1应用程序时保护数据的最佳方法是什么?

让我解释一下我的意思:应用程序有一个包含数据库连接密码的配置文件。

我想以正确的方式做事,这意味着在第一次读取密码后,我宁愿加密配置文件中的字符串。显然,我需要使用某种密码来进行某种对称加密。使用Windows,我会使用DPAPI和主机标识来生成我的密码(在对它进行模糊处理后)。

Linux没有DPAPI ......是否有真正的 多平台 实现我所描述的方式?

提前致谢!

编辑:实施代码库首选不依赖于环境/主机操作系统。

2 个答案:

答案 0 :(得分:2)

  1. 所有敏感设置都应在配置文件中加密
  2. 解密密钥应存储在环境变量
  3. 然后,应用程序应该在需要时动态解密设置。

答案 1 :(得分:2)

我不相信有一个真正的多平台"从单个实现调用每个平台上的本机OS级加密原语的方法。我相信很多供应商都必须针对操作系统进行操作。 API根据具体情况而定。

CIA advice可能是支持解决问题的良好证据,并且很难做到这一点"并且专门针对每个平台,可能会说明尝试查找快捷方式所涉及的风险:

  

所有工具都必须利用操作系统(OS)提供的加密原语   可用(例如,Microsoft CryptoAPI-NG,OpenSSL,PolarSSL,GnuTLS等)。