保护装配体免受黑客攻击

Protecting assembly from hacker

提问人:SLfan 提问时间:7/15/2010 最后编辑:GlorfindelSLfan 更新时间:1/6/2023 访问量:270

问:

我有一个控制台应用程序引用程序集 A。我想确保如果 A.dll 被篡改或替换,应用程序将不会运行。

一种选择是使用强名称签名。但是我需要担心强名称绕过吗?

还有其他好的选择吗?

.NET 程序集 数字签名 验证 数据操作

评论


答:

5赞 Justin Summerlin 7/15/2010 #1

如果你能建立保护,黑客就可以破坏它。不要太担心防止篡改,那些可以在心跳中打破它的人可能不会在乎,即使他们这样做了,你几乎无能为力。

最好的建议是许可由团队专门构建的产品,以便以这种方式保护您的应用程序。就像密码学一样,通常最好不要自己滚动。

0赞 compie 7/15/2010 #2

根据该页面的作者:

相反,对于积分检查,您需要 真的需要使用 Authenticode 签名。

0赞 VOX 7/15/2010 #3

你需要的是像 www.red-gate.com/products/smartassembly/ 这样的产品,而且有很多这样的产品。但是,它们只能在一定程度上保护您的组件,没有一个是 100% 安全的。

0赞 gtrak 7/15/2010 #4

执行 Web 浏览器执行的操作,并依赖来自受信任的第三方的证书。

1赞 Wayne Werner 7/15/2010 #5

您可以使用 dll 的 MD5 哈希值,但即使这样也不是万无一失的,因为任何想要破坏您的应用程序的人都会使用反射器并找出您真正在做什么,并且可能只是直接修改您的程序。您可以获得有助于解决此问题的代码混淆器,但没有什么是完全防黑客的。这实际上是一种权衡 - 阻止某人更改您的 dll 的价值是什么?有人这样做的可能性有多大?就时间=金钱而言,您将花费多少时间来防止这种情况?

0赞 Aurel Bílý 7/15/2010 #6

实际上,甚至不要试图以任何方式捍卫您的代码/程序集或其他任何东西。 我的意思是,如果它有可能(并且被设计)在计算机上运行,对于公共等,就不可能保护它 - 您可以在自己的计算机上做任何你想做的事情,使用好的工具,这样你就可以在一秒钟内将其拆解。

所以,不要尝试,你只会浪费你的时间。