混淆是否值得

信息安全 。网 混淆
2021-08-25 03:55:09

有许多工具可以混淆 .NET 应用程序。

免费的做一些基本的混淆,而商业的似乎承诺更多。

我的问题是:使用商业混淆工具是否值得?他们提供一些安全吗?我知道如果有人非常想要它,一切都是可以破解的。但我说的是一些“普通”攻击者。那么在商业混淆器上投资是否值得?

如果有人对我想要保护的内容感兴趣:程序逻辑和/或密钥(我知道密钥不应该存储在应用程序中,但由于上下文,我无论如何都可以存储它)


注意:一些用户提到有时混淆器可能会在工作程序中引入错误。这显然很糟糕。如果有人可以涵盖他/她对这种行为的经验也会很有用。这种行为与商业和免费混淆器不同吗?

4个回答

客户端混淆/保护的问题是攻击者总是会获胜。您的代码在他的 PC 上运行,因此他最终可以拦截和操纵一切。在 .NET 的特定情况下,例如应用基本混淆来删除函数名称可能是有意义的,但免费工具非常适合。

更具体地回答您的问题:大多数商业混淆器与免费混淆器所做的事情相同。我会选择 Confuser/ConfuserEx,它们都是开源的,并且比大多数商业产品提供更好的保护。

让我们明确一点:混淆不是一种受到审查的安全形式。一旦有人真正试图绕过混淆,它就会崩溃,只会让攻击者的事情变得更加困难。

混淆的目的是阻止潜在的攻击者不费吹灰之力地进入系统,这可能会阻止他们考虑攻击您的系统。

您应该考虑这对您是否有价值。如果是,请务必实施混淆,但不要将其用作您唯一的安全层。

混淆值得吗?是的,当然值得。任何不干扰另一层的额外层总是值得的。它将阻止普通人并阻止大多数人,或者是脚本小子......

我想说的商业工具不是,因为任何高级的东西实际上都会阻碍你的开发,使用我尝试过的一些定制软件最终花费了大量时间来确保代码在这种新形式下正常工作,因为它本质上是 base64 编码和加密的.

在谈到安全性时请记住这一点:如果您的软件或产品价值 100 万美元,则花费 100 万美元和 1 美元来破解它,那么您永远无法使某些东西足够安全。混淆永远不会使它安全,但使用免费工具并没有什么坏处。

混淆显然不是高级别的安全性,但我永远不会在没有混淆的情况下发布代码,因为它可以隐藏重要信息(这可以保护的重要信息是明显的命名约定,放弃了函数的用途以及应用程序的工作方式,这只是一个简单的威慑不是解决方案)。这总是值得的。

虽然为工具付费?也许不值得。

不,混淆是不值得的。如果您混淆您的程序,病毒扫描程序将始终将它们视为误报这将比一些销售损失更让您头疼。

唯一的例外是如果你有一个非常有价值的软件——但如果你没有提供硬件加密狗,你的软件就没有那么有价值以至于需要混淆。