【问题标题】:Protecting assembly from hacker保护程序集免受黑客攻击
【发布时间】:2011-03-16 00:57:57
【问题描述】:

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

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

还有其他好的选择吗?

【问题讨论】:

    标签: .net assemblies digital-signature verification data-manipulation


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        根据该页面的作者:

        相反,对于完整性检查,您 确实需要使用Authenticode 签名。

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

            做网络浏览器所做的事情,并依赖来自受信任的第三方的证书。

            【讨论】:

              【解决方案6】:

              实际上,无论如何都不要试图为您的代码/程序集或其他任何东西辩护。 我的意思是,如果有可能(并且它被设计为)在计算机上运行,​​对于公众等,就不可能保护它 - 你可以在你自己的计算机上做任何你想做的事,使用好的工具和你拆卸的工具一秒搞定。

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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2014-02-05
                • 2019-05-22
                • 1970-01-01
                • 2016-02-06
                • 2011-01-31
                • 2018-04-02
                相关资源
                最近更新 更多