如何在.NET应用程序中隐藏加密密钥?

use*_*824 13 c# database security encryption obfuscation

我正在开发一个内部网应用程序(C#),它使用我们想保密的一些数据(Web服务器本地).使用旧数据存储库对此数据进行加密(AES).我们无法完全阻止对机器的物理访问.

显然,我们永远不会在这里拥有完美的安全性.但是,我们希望尽可能让任何人都未经授权访问数据.

问题是如何最好地存储密钥.可以选择基于某些计算机专用ID对其进行加密,但是在计算机上运行诊断工具的任何人都可以轻松获得该信息.

在应用程序中对其进行编码是一种选择(它是一次性应用程序).但是,.NET程序集很容易反编译.那么,最好是混淆它,使用加密启动器,编译它?

或者有一个我缺少的选项?

正如我们清楚的那样,我知道如果某人有决心,这几乎是一个失败的原因,但我们希望在限制范围内尽可能地努力.

Fly*_*wat 5

加密内置于.NET配置系统中.您可以加密app/web.config文件的块,包括存储私钥的位置.

http://www.dotnetprofessional.com/blog/post/2008/03/03/Encrypt-sections-of-WebConfig-or-AppConfig.aspx

  • 雅虎,一旦你有物理访问,没有什么是安全的. (5认同)