可以在.NET程序集中找到特定的字节数组吗?

时间:2013-04-04 16:40:50

标签: .net security .net-assembly cil decompiling

有人在发布模式下编译的.NET程序集反编译/反汇编/反射以查找特定字节数组的内容有多容易?

实现一个依赖于特定密钥(存储在C#代码中作为字节数组)的安全机制是一个好主意吗?

我尝试使用.NET反射器并没有找到我自己的安全密钥,但我想知道这些信息是否“足够安全”。

存储秘密比安装更安全吗?

2 个答案:

答案 0 :(得分:3)

不要在.Net程序集中存储您不信任的人可以访问的机密。对程序集进行反编译是微不足道的,有许多工具可以执行此操作。你可以很容易地发现你放在那里的任何秘密

答案 1 :(得分:2)

我同意其他人认为从程序集中获取秘密字节数组很简单。

但是有一个更普遍的原则:如果您的安全性取决于某些密钥的保密性,那么您应该确保此密钥永远不会出现在可能受到攻击的计算机上。

如果您使用本机C ++和/或使用某种混淆或类似的东西并不重要。当某个密钥位于您不信任的用户的计算机上时,您应该表现得好像该用户知道该密钥。

换句话说:此类密钥的唯一安全位置是您控制的服务器以及您信任的安全性。