对于使用 Web 服务的序列密钥激活来说,这是一个好的概念吗?

Posted

技术标签:

【中文标题】对于使用 Web 服务的序列密钥激活来说,这是一个好的概念吗?【英文标题】:Is this a good concept for a serial key activation using a web service? 【发布时间】:2013-10-25 23:13:27 【问题描述】:

我正在 WPF 中编写一个 Windows 桌面应用程序。我需要添加一个激活过程,想知道我是否有正确的想法

这是我正在考虑实施的过程。这会是最好的解决方案吗

当用户加载应用程序时,它会检查包含激活码的注册表项

需要激活

如果注册表中没有激活密钥,则会为其提供激活页面 他们将在此处输入他们将从我们那里收到的激活密钥 当用户点击激活时,我会获取他们的硬盘序列号并对其进行哈希处理 然后我连接到一个我写的 web 服务来检查 -- 密钥是否存在 -- 是否有分配给它的 HDD 串行哈希 -- 是否活跃 如果它通过了所有这些条件,我会通过网络服务使用 HDD 序列更新我的数据库并将其标记为活动

已激活(带有激活密钥的注册表项)

获取其硬盘的序列号并对其进行哈希处理 从注册表中检索密钥 连接到 Web 服务以检查密钥是否存在、是否仍处于活动状态并分配给正确的 HDD 哈希 如果是,我允许用户继续 如果没有,我会完全删除注册表项,并通知他们需要重新激活软件,然后加载激活页面。

除了想知道这是否是正确的方法之外,我还有一些额外的担忧:

需要保护网络服务 用户在启动程序时需要访问互联网,以便我可以检查网络服务

任何人都可以提供任何建议,我们将不胜感激。我找不到任何答案。

【问题讨论】:

【参考方案1】:

听起来不错,但你需要记住:

必须使用 SSL 保护与 Web 服务的连接。 Web 服务之间的消息交换必须使用某种形式的私钥/公钥进行签名,以便客户端知道消息确实来自服务器,并且用户不会创建自己的激活服务器。 您的网络服务必须在具有高可用性的服务器上(您不希望愤怒的用户因为无法完成工作而打电话)。 可以更改硬盘序列号。您可能希望将其与其他内容结合起来。

【讨论】:

【参考方案2】:

到目前为止,您提出的概念很好,但是由于您要求用户始终在线,因此我将另外使用 RSA 加密数据。

您的产品获得硬编码的公钥,而您发送到服务器的数据将使用 RSA 私钥加密发送回。 这样您就可以防止他们使用自制的激活服务器,这些服务器只会说“一切都还好,您已激活”。

【讨论】:

以上是关于对于使用 Web 服务的序列密钥激活来说,这是一个好的概念吗?的主要内容,如果未能解决你的问题,请参考以下文章

qt应用程序激活

win10企业版激活密钥2018 win10企业版永久激活码 windows10企业版产品密钥序列号

vmware vSAN 6.5 企业版序列号激活码密钥永久使用

sql server2012密钥 用哪个

跪求office2019激活密钥

office2016怎么激活,office2016激活码使用方法