【问题标题】:It is possible to find a specific byte array in a .NET assembly?可以在 .NET 程序集中找到特定的字节数组吗?
【发布时间】:2013-04-04 16:40:50
【问题描述】:

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

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

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

有没有比在程序集中更安全的存储秘密的地方?

【问题讨论】:

  • 即使你混淆你的代码也很简单。

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


【解决方案1】:

不要将机密存储在您不信任的人可以访问的 .Net 程序集中。反编译程序集是微不足道的,有很多工具可以做到这一点。很容易找出你放在那里的任何秘密

【讨论】:

    【解决方案2】:

    我同意其他人的观点,即从程序集中获取秘密字节数组很简单。

    但是有一个更普遍的原则在起作用:如果您的安全性取决于某个密钥的保密性,那么您确实应该确保该密钥永远不会在可能受到威胁的计算机上。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 2012-06-23
      • 2020-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-24
      相关资源
      最近更新 更多