mr.*_*r.b 30 windows client-server bios uniqueidentifier hardware-id
问题:我必须为每个联网客户端提供唯一ID,例如:
一点点解释和一些背景故事:
这个问题基本上是古老的问题,也触及了软件拷贝保护的主题,因为这里提到了该领域中使用的一些机制.在这一点上我应该清楚,我不是在寻找一种复制保护方案.请继续阅读.:)
我正在开发一个应该在本地网络中工作的客户端 - 服务器软件.我必须解决的一个问题是识别网络中的每个唯一客户端(而不是问题),以便我可以将某些属性应用于每个特定客户端,在特定部署的生命周期中保留并强制执行这些属性.客户.
在我寻找解决方案时,我发现了以下情况:
这种问题的明显选择是找出BIOS标识符(不过100%确定这是否通过相同的主板型号是唯一的),因为这是我唯一可以依赖的不重复,通过克隆传输,并且不能改变(至少不能通过使用一些用户空间程序).其他一切都失败了,因为要么不可靠(MAC克隆,任何人?),要么太苛刻(就其对配置变化过于敏感而言).
我想问的一个子问题是,我是否正确地进行了架构方面的工作?也许有一个更好的工具来完成我必须完成的任务......
我想到的另一种方法类似于握手机制,其中服务器维护一个连接的客户端ID的内部查找表(在任何给定时刻甚至可以完全基于软件和非唯一),并告诉客户端如果在连接时提供重复的ID,则在握手期间提供不同的ID.遗憾的是,这种方法不能很好地满足在生命周期内将属性绑定到特定客户端的要求之一.
您正在寻找的是Windows WMI.您可以获得主板ID(在同一类型的主板上是唯一的)或许多其他类型的唯一标识符,并提供一些聪明的种子功能来生成UHID.哇我刚刚组成一个缩写词?
如果您正在寻找专门用于获取主板(BIOS)ID:
WMI class: Win32_BIOS
Namespace: \Root\Cimv2
Run Code Online (Sandbox Code Playgroud)
文档:http
://msdn.microsoft.com/en-us/library/aa394077(VS.85).aspx示例代码:http://msdn.microsoft.com/en-us/library/aa390423%28VS.85 %29.aspx
编辑:你没有指定一种语言(我假设是C++),但这可以用Java(带有COM驱动程序)和任何.NET语言来完成.
在我看来,您应该构建与您的要求相对应的唯一ID.此ID可以根据对您很重要的信息(有关软件和硬件组件的一些信息)构建为哈希(如MD5,SHA1或SHA512).
如果您使用私钥签署此类哈希并且您的软件在启动期间进行验证,那么您可以使解决方案更加安全,密钥(签名哈希值)已签名(只有公钥必须与您的软件一起安装).可以通过不同的在线服务扩展这种解决方案,但企业客户可以找到不太好的在线服务.
许多程序使用 hostId 来构建许可证代码(例如基于 FlexLM 的程序)。看看 Matlab 根据操作系统做了什么:
http://www.mathworks.com/support/solutions/en/data/1-171PI/index.html
另外看看这个问题:
有一次我还看到一些程序的许可证基于硬盘驱动器的序列号,也许这是不太可能改变的事情。有些人建议使用以太网卡的 MAC,但这可以重新编程。
MAC
\n不要依赖 MAC!曾经。它不是永久的。用户可以轻松更改它(30 秒内)。
卷 ID
\n不要依赖卷 ID!曾经。它不是永久的。用户可以轻松更改它。它也可以通过简单地格式化驱动器来改变。
WMI
\nWMI 是一项服务。可以轻松禁用。实际上,我尝试过,发现在许多计算机上它被禁用或损坏(是的,经常损坏)。
许可证服务器
\n连接到验证服务器也可能会给您带来很多麻烦,因为:
\n * 您的客户可能并不总是连接到 Internet。
\n * 您的客户可能会使用特殊设置(路由器/NAT/代理/网关)进行连接,他们需要将这些设置输入到您的程序中,以便让它连接到验证服务器。
\n * 他们可能位于防火墙后面,该防火墙将阻止除少数程序(我的情况)之外的所有程序。在某些情况下,防火墙可能不受他们的控制(对大多数企业用户有效)!
\n *将您的程序重定向到模拟您的许可服务器的本地假网络服务器非常容易。
硬件数据
\n如果需要强有力的保护,则需要依靠硬件。用户无法编辑的内容。例如 Intel/AMD CPU 中可用的 CPU ID 指令以及写入驱动器 IDE 接口的序列号。
\nCPU ID 和 HDD ID 是永久的。它们永远不会改变,即使在您格式化计算机并重新安装 Windows 后也是如此。
这是可行的。例如,该库读取计算机的硬件 ID。有一个已编译的演示以及源代码/ DLL。免责声明:该链接指向商业产品(19\xe2\x82\xac/无版税)。
\n| 归档时间: |
|
| 查看次数: |
36328 次 |
| 最近记录: |