ASP.NET 用签名/强命名保障代码安全

作者:vkvi 来源:千一网络(原创) 日期:2016-7-18

大家都知道 ASP.NET 生成的 DLL 只是中间语言,用很多工具,比如 .NET Reflector 就可以看到源代码。

保护源代码,有人用混淆工具,将变量命名为 a、b、c 这种人看起很累的名称,比如 Dotfuscator 这个工具就很常用,而且 Visual Studio 中已经在菜单“工具”中集成了基础版。

而有时候,我们对源代码的保护倒不是特别迫切,倒是希望客户不要更改我们的代码,比如:授权使用,利用不对称加密,客户看到了源代码也只有公钥,没有私钥,就没办法算出注册码。

但是客户有一招,可以自己改 DLL,将验证授权使用这段代码去除,然后用新的 DLL 覆盖老的 DLL,照样达到了破解的目的。

但是开发公司也是有法避免客户修改的,就是用签名/强命名。

选中需要保护的项目,按 Alt + Enter 键,进入属性页面,切换到签名标签:

为程序集签名

自己新建一个强名称密钥文件,这个文件要保密,然后重新生成,DLL 就受保护了。

当 DLL 已经签名:

  • 如果将就原有 DLL,在上面直接改,由于文件已经变动,所以原有签名失效,软件无法运行。
  • 如果用没有签名的 DLL 替换该 DLL,软件无法运行。
  • 如果用不同的强名称密钥文件签名的 DLL 替换该 DLL,软件无法运行。
  • 如果用相同的强名称密钥文件签名的 DLL 替换该 DLL,软件才能够正常运行。由于客户无法拿到强名称密钥文件,所以它无法做一个相同签名的 DLL。

当 DLL 没有签名:

  • 如果用没有签名的 DLL 替换该 DLL,软件正常运行。
  • 如果用已经签名的 DLL 替换该 DLL,软件无法运行。

你前面那位网友看了:ASP.NET 中如何获取客户端浏览器信息

▲▲▲嘿,欢迎转载传播本站原创文章,尽量保留来源噢。▲▲▲

文章评论
标题:必填
内容:
vkvi
vkvi

作者简介: vkvi,致力于 .NET Web 开发、移动开发的技术推广,在 .NET、SQL Server、Windows Server 等方面有深入研究和丰富经验,10 年间共计撰写文章 4000 余篇。 主持金融、国土、农业、电商等多个行业项目执行, 推行“技术提升生产力、人心决定成功率”的管理理论。 联系他