Joh*_*Zaj 7 obfuscation strongname .net-security strong-named-key
.Net安全noob在这里...防止其他人加载我的程序集的最简单方法是什么?
背景:虽然我真的在寻找'足够好'的保护(有足够的时间/金钱/智能,有人可以成功破解,破解和攻击),这似乎应该已经解决了问题,我只是想念它.
这是我(我想)我知道的:
虽然强大的命名可以用作安全层,但根据这个微软文档,它并不一定是有意的(参见警告:不要依赖强名称来保证安全性.它们只提供唯一的身份.)
在那个^注意我遇到了我无法加载第三方组件的情况(Aspose我认为它是)因为他们没有签署他们的集会,但是我的全部都是.所以我不得不ildasm他们的集会,用我们自己的snk签名,然后ilasm回来),以便使用他们的库.因此,强大的命名对我来说似乎不是一个好的安全机制. 但是 ......在代码中进行简单检查以验证调用程序集是否使用我的公钥令牌?这有效吗?
如果强大的命名不应该用于我想要完成的任务,那么在dll上实现Authenticode数字签名检查路径越好(看起来wintrust.dll可以帮助解决这个问题)?
我一直在经历几个供应商的混淆工具,很多都带有许可和各种东西.我可能会使用一些混淆来隐藏一些敏感部分,但是我仍然希望有一种机制来阻止某人加载我的敏感库,而不必使用字符串和代码加密等功能,这通常会带来性能(和其他)成本.
回到这个问题,阻止某人加载我的程序集的最简单方法是什么?