生成机器指纹的最佳方法是什么?

Jos*_*sen 5 .net windows hardware fingerprinting

我需要生成一个不同机器的唯一字符串 - 一个"设备指纹".

什么是......

  • 自定义实现的可能方法?(我有一些想法,但我认为你们可能有更好的想法)
  • 现有解决方案 (商业/非商业都可以接受)

Eri*_* J. 3

如果您想涵盖许多边缘情况(例如硬件升级、操作系统升级等),并且如果您担心人们花费精力伪造已知良好的设备指纹(很好的意思是指纹是您知道并获得一些好处,例如软件使用权),或者创建一个您不知道的全新指纹(例如,该指纹位于某种黑名单上,并且用户想要为该指纹创建一个新的设备 ID)。不在黑名单中的设备)。

有些东西是相当静态的,并且是简单指纹的合理基础。MAC 地址最适合该类别,但也很容易更改。此外,某些计算机具有多个 MAC 地址(包括来自虚拟机的 MAC 地址),因此您需要处理这种复杂性。一些网络设备是短暂的,例如系留手机。

计算机的其他方面更难(但绝不是不可能)伪造,例如 CPU 信息、BIOS 校验和、硬盘序列号等。然而,那些往往更难伪造的东西也更有可能发生变化(BIOS升级、新硬盘、移动硬盘等)。

您还需要仔细考虑保护实际生成指纹的代码。如果该代码很容易(足够)被破解,那么试图破坏您的解决方案的人将简单地将他们想要的任何指纹直接插入到收集和评估组件的代码中。