硬件锁定许可:我应该使用哪些硬件?

cae*_*say 5 c# hardware wmi licensing

我最近实现了具有模糊匹配的硬件锁定许可系统,无需重新激活即可处理硬件中的更改,但是我需要更多的硬件来进行匹配才能更安全/创建更可靠的模糊匹配。

现在我符合以下条件:

  • 物理MAC地址
  • 硬盘序列号
  • RAM零件号/制造商/尺寸
  • 处理器ID

在这种情况下可以使用哪些其他机器特定的不变硬件序列号,这些序列号可以很好地从C#中检索。

检索这样的硬件信息的代码示例也将被理解。

澄清说明

当我说“不变”时,是指如果不直接修改机器中的硬件就不会更改的硬件序列或信息。(即,不会自行更改,也不会通过软件更改)

Eri*_* J. 6

我曾在一家从事此类硬件指纹识别的公司工作过,我可以告诉您,商业替代方案通常相当可靠,但在某些合法情况下它们都会失败。

请注意,该领域的一些专利得到了非常积极的执行。一些提出硬件锁定算法的大型成功公司(如微软)已被成功起诉。如果你在所做的事情上非常成功,那么不幸的事情可能会发生在你身上。

如果您认为需要硬件锁定,请选择一家公司,该公司可以让您轻松地为那些对系统进行合法升级但最终违反了模糊匹配规则的客户提供客户服务。并且,准备好快速有效地提供该服务。

对于大多数用例,我会警告不要硬件锁定。它对您的软件施加了限制,这往往会妨碍您的合法客户使用该软件的合法愿望。

更新

除了您列出的指标之外,还可以使用以下一些指标。我还没有研究从 C# 中特别容易获得哪些代码,因为我在这个级别处理的大多数代码都是可移植的 C++,并根据需要提供了一些特定于平台的程序集。

  • BIOS 校验和
  • 处理器的数量和类型(处理器 ID 并非适用于所有处理器)
  • 显卡详细信息(经常升级的部分,但提供了一点额外的熵)
  • 连接的显示器数量、屏幕分辨率、品牌(经常变化,但又增加了一点熵)。
  • 安装的不寻常且高度差异化的字体(例如忽略从 Office 等获取的字体)
  • 所有已安装 NIC的 Mac 地址(例如 WiFi、有线)
  • 所有已安装硬盘的序列号
  • 枚举其他设备(例如DVD、CD、内置读卡器)

请记住,笔记本电脑插入扩展坞后可能会获得许多额外的端口、新的显示器等......