2008-08-18 49 views
1

加载你能给什么建议其必须执行以下操作的系统:净动态插件与管理局

加载插件(最终执行它们),但必须装载这些插件的2种方法:

  • 负荷只有经过授权的插件
  • 负载(用 软件的所有者开发的)的所有插件

我们需要相当安全的授权插件是真正的交易(未修改)。但是,所有插件必须位于独立的程序集中。我一直在寻找使用强插件的命名程序集,公钥存储在加载器应用程序中,但对我来说,这似乎太容易修改加载器应用程序中的公钥(如果用户倾向于),无论加载器应用程序的任何混淆。更安全的想法?

回答

0

基本上,如果你把你的代码放在别人的机器上,那么安全性就没有绝对的保证。

你可以看看各种安全技巧,但最终,代码是在他们的机器上,所以它超出了你的控制范围。

如果最终用户加载未经授权的插件,您会失去多少?

0

如果最终用户加载未经授权的插件,您会失去多少?

诚然,这不会经常发生,但是当/如果它确实发生,我们失去了很多,我虽然我明白,我们会产生什么100%的安全,我要使它成为一个障碍把人的足够关掉它。

有关使用完整强名称进行简单动态加载的烦人之处在于,它只需要在加载器应用程序中进行简单的字符串文字更改即可加载任何其他程序集,即使插件已签名。

0

你可以扩大你的问题:“我怎样才能保护我的.net程序集免受逆向工程?”

答案是 - 你不能。对于那些还没有看过它的人来说,只需查看“反射器”,然后在一些天真的exe文件上运行它。

(顺便说一句,这始终是代码的答案是伸出你的双手,只要你没有带它发送/解密硬件),

混淆试图使逆向工程比发展更难(花费更多的钱),并且对于某些类型的算法来说它是成功的。