我是 .net 的新手,想知道如何防止其他人使用/引用我编译的库。我做了一些研究,但没有找到明确的答案。是authenticode还是强名称还是其他什么?它的可靠性如何?
这些库是商业桌面软件的一部分
如何防止其他人使用我编译的库?
我想知道如何防止别人使用我的牙刷。我找到了解决办法。我不让他们接触我的牙刷。
如果您不希望人们使用您的软件那么不要给他们你的软件.
如果您希望某人能够使用功能性在不知道实现细节的情况下编写代码,然后编写一个 Web 服务,将软件放在 Web 服务器后面,人们可以通过您提供的服务使用您的软件。他们只能看到网络服务器,而看不到您的实施细节。
是authenticode还是强名称还是其他什么?
不。您的情况是您希望保护yourself,一家软件提供商,来自你的用户。这完全是倒退的。 .NET 安全系统旨在保护你的用户 from 不良软件提供商.
验证码和强名称都是软件用户可以获得证据的系统,证明该软件确实是由他们认为的人提供的,而不是由冒充您的邪恶黑客提供的。
例如,假设我变得邪恶并向您发送了一个新版本的 System.DLL,我说它是 Microsoft 的软件升级,但实际上是看着您输入密码并将其通过电子邮件发送给我。我可以向您发送一个名为“System.DLL”的 DLL,但我无法向您发送一个拥有微软的强名因为我不能make微软的强名。只有微软能做到这一点,因为微软的签名密钥深埋在11号楼的深处,并由鲨鱼用激光束或其他东西看守。强大的名字保护you from me;他们不保护微软.
同样,强名称可以保护你的客户 from 攻击者冒充您。他们不保护you from 你的客户。受到攻击的不是你,而是你。他们是!
这些库是商业桌面软件的一部分
商业桌面软件模型的前提是客户受到软件提供商的信任,可以按照其许可证使用该软件。如果您不信任您的客户,那么您需要一个完全不同的模型,例如将软件保留在您的网络服务器上,并且仅允许通过网络界面进行访问。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)