实施生成不可转让许可证的程序

时间:2010-04-29 18:57:27

标签: c# .net security encryption

我正在使用安全类,并且需要实现发送不可转让许可证的许可服务器。我不知道该怎么做。你能告诉我一些你的想法吗?

2 个答案:

答案 0 :(得分:4)

你需要找到一些东西来将许可证绑定到唯一且不可变的东西,以获得唯一且不可变的足够现实的值。规范示例是网络适配器的MAC地址。该地址通常在工厂设置,“不能”更改,并且是全球唯一的。 (我是否进行了足够的套期保值以避免挑剔......?)

一旦您获得此识别信息,使得不可转让的许可证非常简单,您基本上有一个受信任的机构签署该地址并将其用作许可证。如果要检查计算机是否是您获得许可运行的计算机,只需使用密钥的公共部分检查签名是否正常。

答案 1 :(得分:1)

如果您可以进行Web访问,则可以要求用户登录中央服务器。它会发回一个引用用户ID的令牌,如另一个答案中所述,加上有效时的时间范围。我们的想法是,您不希望需要连续的Web访问,只需每小时或每天访问一次,或者您的风险承受能力。

理想地,这是在幕后完成的,例如,当用户首次注册他们的产品时,使用从服务器获得的初始令牌。您的应用程序使用此令牌登录到中央服务器以获取操作令牌,没有任何操作以明文形式显示用户名和密码。

好处:这与MAC地址(网卡)等物理硬件无关。当用户被告知他们会因为更换硬件而失去一切时,它真的很生气。

缺点:知识渊博的攻击者可以将令牌复制到其他系统。但是有三种方法可以解决这个问题:

  • 个性化应用程序。 “克里斯” 如果,可能不会很高兴 该应用程序一直称他为 “鲍勃”。
  • 只允许一个活动实例 服务器。不过要小心 - 这个 可能会导致“拒绝服务” 攻击你的用户。要不就 沮丧,如果他们无法访问 应用在家里,因为他们忘了 退出工作。
  • 和它一起生活。费用是多少? 销售额损失与成本相比 实施更强大的东西 和/或惹恼诚实用户?