.net程序集安全问题

时间:2010-08-19 15:31:09

标签: c# .net security

我正在创建一个包含多个DLL的应用程序,并且我认为我可以在运行时调用Assembly.GetPublicKey()并查看DLL是否由我签名。但是,我现在看到有一个SetPublicKey 大会上的方法。难道它不容易让任何人欺骗我的DLL吗? 或者我是以错误的方式检查DLL的签名?

更新:我有一个插件架构,我只是想通过编写自己的DLL来阻止某人劫持我的应用。

2 个答案:

答案 0 :(得分:1)

您的整个应用程序是否在.NET中?编译时,任何引用另一个程序集的程序集都应该要求程序集正确签名,.NET应该能够处理它,并且它应该对您透明。你不应该自己检查装配。

http://msdn.microsoft.com/en-us/library/ab4eace3.aspx

答案 1 :(得分:0)

可能不是建议的路线,但我为我的DLL做的是创建一个类并传递一个私钥来激活它。

var secureClass = new MyDLL.SecureClass(“Password”)

然后在SecureClass中的任何方法上,在我输入任何代码之前调用以下内容:

如果IsActivated()= false则   Alert_Not_Active()   返回错误 结束如果

也许有更好的选择,但这对我来说非常适合。确保使用{Smart Assembly}之类的应用程序来保护您的代码免受反射,如果它是非常重要的编码