首先,一个更好的问题是这可能吗?我的直觉是它并不完全,但可能有一些聪明的方法。即使它们只是起到威慑作用,也要让某些人更难以入侵,甚至让我更容易发现可疑活动。
基本上,我正在构建一个使用PHP的Web服务来连接我的C#.NET程序。除此之外,Web服务最重要的用途之一是验证许可证数据。程序发送用户输入的许可证密钥进行检查,如果有效,则Web服务将返回购买许可证密钥的人的姓名,以便程序知道自行激活。
我完全清楚没有完美的反盗版计划,如果人们想要它足够糟糕,那么我的软件将破解。但是,我不相信我没有办法让人们很难破解我的软件。
我确实拥有SSL证书,因此程序将使用HTTPS与Web服务进行通信,但这是我目前唯一的安全措施。我想过
但是,我已经读过,有些应用程序只能从程序中提取字符串,这会使这些措施完全失效。不过,我不知道技术用户必须如何使用这些应用程序。是否仍然值得添加一些措施来阻止随意盗版?哪些措施更好,哪些措施最有效?
提前致谢
答案 0 :(得分:1)
您可以使用捆绑的证书分发C#应用程序,并使用证书签署您的请求。然后,服务器可以验证请求是否已由您的应用程序签名,并拒绝任何其他请求。
编辑:哎呀,我现在才明白,即使在恶意用户手中,你也希望保护你的应用程序。这个,我认为不可能。黑客可以反编译,扫描内存,读取和解码文件等,如果您使用应用程序分发证书,那么您的证书将可用。另一种方法是分发需要插入客户端计算机的外部安全令牌(硬件设备或闪存)。令牌包含用于签署/加密您的请求的证书,密钥或密码,因此它不会留在应用程序中。
您的服务器端SSL证书只能保证通信通道是安全的,服务器不会说谎。它不保证客户端连接的任何信息。为了确保客户端已被识别,您需要使用服务器可识别的客户端证书形式。