【发布时间】:2011-07-15 12:56:33
【问题描述】:
我想写一个基于 wcf 服务的许可证管理。
我如何确保(最终)用户/“黑客”不能用损坏的服务器替换我们的许可证管理服务?
我们的许可证服务器托管在我们的互联网服务器上。当服务器向客户端发送损坏的数据时,完整的许可证管理概念就被破坏了。
谢谢
【问题讨论】:
标签: .net vb.net visual-studio wcf service
我想写一个基于 wcf 服务的许可证管理。
我如何确保(最终)用户/“黑客”不能用损坏的服务器替换我们的许可证管理服务?
我们的许可证服务器托管在我们的互联网服务器上。当服务器向客户端发送损坏的数据时,完整的许可证管理概念就被破坏了。
谢谢
【问题讨论】:
标签: .net vb.net visual-studio wcf service
您正在尝试解决无法解决的问题。一旦您向客户提供应用程序并且客户将其部署在他的计算机上,他当然可以对您的应用程序做任何他想做的事情。即使您将一些安全检查硬编码到应用程序客户端中,也可以逆向工程和修改您的代码。您可以通过对您的库进行一些混淆来减少他的机会,但仍然可以欺骗客户端计算机上部署的任何内容。这就是warez存在并且没有防弹解决方案的原因。
如果您不希望客户端欺骗您,请将您的应用程序构建为基于 Web 的应用程序并将其托管在您的服务器上。客户将为访问/帐户付费,他将无法避免您的许可策略。
如果您想要一些难以欺骗的高质量许可策略,请尝试购买一些现有的解决方案,而不是创建自己的解决方案。
【讨论】:
我认为public-key cryptography 可能是这里的答案。我不是安全专家,所以我可能真的错了,但据我所知,您可能有用于解密的公钥硬编码到您的服务使用者和用于加密的私钥在您的许可证服务器上。那么工作流程可能如下:
当然,这可能只是假设您可以保证您的服务消费者应用程序不会被黑客入侵,否则我无论如何都看不到任何黑客服务。
【讨论】: