是否有任何方法可以区分具有相同MAC地址的两台Linux机器?

是否有任何方法可以区分具有相同MAC地址的两台Linux机器?,linux,networking,ethernet,Linux,Networking,Ethernet,在Linux中,可以覆盖您的MAC地址。有没有办法通过处理器序列号或用户空间中的其他唯一标识符来区分两台机器?这两台机器可能在配置上几乎完全相同——相同的CPU、相同的内存、相同的制造商等等 有没有办法通过处理器序列号或用户空间中的其他唯一标识符来区分两台机器 答案是否定的。请考虑一个重要方面:内核是。如果它以某种方式输出一个像0123456789这样的串行id给用户,这意味着通过一些,并且如果我知道您的应用程序在计算机a上期望该id,我可以在相同的情况下破解我在计算机B上运行的内核,以精确地输

在Linux中,可以覆盖您的MAC地址。有没有办法通过处理器序列号或用户空间中的其他唯一标识符来区分两台机器?这两台机器可能在配置上几乎完全相同——相同的CPU、相同的内存、相同的制造商等等

有没有办法通过处理器序列号或用户空间中的其他唯一标识符来区分两台机器

答案是否定的。请考虑一个重要方面:内核是。如果它以某种方式输出一个像0123456789这样的串行id给用户,这意味着通过一些,并且如果我知道您的应用程序在计算机a上期望该id,我可以在相同的情况下破解我在计算机B上运行的内核,以精确地输出0123456789

换句话说,答案不仅是否定的,而且任何能够更改内核源代码中几行代码的聪明Linux用户都可以对其内核进行黑客攻击并重新编译,以产生您想要的效果

所以你需要放弃你愚蠢的梦想或者放弃瞄准Linux

阅读相关信息,您可能需要一个,并为您的客户提供这样的硬件;它可能和一些一样便宜。HSM是一些活动的硬件设备,其行为可能如下:您的应用程序发送一些随机的12865数字,它从HSM返回一些89621数字,以便能够检查HSM是否是真实的,因为HSM中的计算与您的应用程序中的计算相匹配,使用某种类型的数据

也许您需要某种验证软件可用性的方法。你可以买并使用一些


在实践中,在专业场合,例如在所有可能不是很有用的公司。这有一个社会原因:一家非小公司X有员工。他们可以辞职。然后他们可以写信给一些权威机构或软件供应商,告诉他们X不尊重软件许可证。这可能会导致一些对公司来说代价高昂的法律起诉,或者对X公司处以巨额罚款,或者X公司的声誉很差。例如,合格人员不愿意为X工作。这些社会原因足以让公司认真对待软件许可证。因此,强制执行软件许可证的技术手段并不是很有用,法律和社会手段通常就足够了。

可能有,但细节可能非常具体,具体取决于品牌和型号。例如,我办公室里有一台戴尔笔记本电脑,它的底板上有一个序列号,其他各种组件上也有序列号

运行sudo dmidecode并查找序列号:

[snip]
Handle 0x0001, DMI type 1, 27 bytes
System Information
        Manufacturer: Dell Inc.
        Product Name: Latitude E5440
        Version: 01
        Serial Number: 1CWHVZ1
服务器盒通常也有这样的序列号。我不知道布局有多标准

网络接口通常也有一个永久的烧录MAC地址,不容易更改。同样,在我的戴尔笔记本电脑上:

sudo ethtool -P eno1
Permanent address: ec:f4:bb:03:67:2f

我不指望有什么万无一失的。我支持的一个应用程序使用了一个许可证管理器来关闭硬件MAC地址,我怀疑有人试图通过运行同一服务器的多个副本并以某种方式切换它们来欺骗许可证管理器。我认为修改内核超出了它们的范围,但是修改MAC地址相对容易,并且是许可证管理器操作的已知方法。如果修改MAC以外的内容,如果我发现要修改什么,并将补丁发布到内核,使其遵循应用程序预期的被动行为,那么你可能无法起诉我这样的补丁。所以你完蛋了。默默无闻的安全措施并不奏效,但请看我的答案。如果我知道某些软件确切地需要一个序列号1CWHVZ1,我可以很容易地修补运行在我的Linux机器上的内核以发送该序列号。因此,真正有用的是应用程序与之交互的一些活动硬件设备。这就是所谓的硬件安全module@Basile你的论点在技术上是正确的,但这是关于提高标准的。如果像dup一个MAC地址这样的事情很容易做,并且可以用现成的工具来做,那是一回事。修补内核,甚至安装您为它们创建的自定义内核,超出了典型用户的资源范围,可能会被视为比实际情况更麻烦。不管怎样,什么能阻止我分解你的HSM代码,绕过这种交互呢。当然,这很难,而且有可能使它更难。问题是这个标准到底需要多高?好的分析。但也看看我的社会和法律论点。在当今世界,您可能甚至不需要任何技术手段来强制执行软件许可证。Stack Overflow是一个解决编程和开发问题的网站。这个问题似乎离题了,因为它与程序无关 不平等或发展。请参见帮助中心中的。也许或者会是一个更好的提问的地方。