我最初在Stack Overflow上问过这个问题,但有人建议我在这里问一下。
我正在编写需要唯一标识多个不同机器的软件。我正打算用/etc/machine-id
它来做。
在阅读有关machine-id 的文档时,我偶然发现了这一段:
该ID唯一标识主机。应该将其视为“机密”,并且不得在不受信任的环境(尤其是网络)中公开。如果某些应用程序需要与计算机绑定的稳定的唯一标识符,则不得直接使用计算机ID或其任何部分。相反,应使用固定的,特定于应用程序的密钥,使用加密的,键控的哈希函数对计算机ID进行哈希处理。
我对dbus不太了解,但给我的印象是它仅用于IPC。如果是这样,我不确定为什么远程攻击者知道计算机ID才真正重要。除了明显的隐私问题外,是否有(已知的)合理的安全理由不共享某人的机器ID?还是只是一些措辞强硬的文档的案例?
您在什么架构/处理器上?目前正在使用的i.MX6具有通过sysfs公开的真正唯一且只读的序列号。
—
阿提
@Attie在我的情况下,机器欺骗其ID并不会带来任何实际后果,因此我对此并不真正担心。实际上,关于如何为每台机器获取唯一ID的想法我并不缺乏,这个问题更多地是为了满足我对如何专门使用Machine-ID的好奇心(以及公开它的潜在危险)。
—
卡梅伦·孙
听起来不错-我也很想听到任何答案...
—
Attie
/etc/machine-id
是一个文件,并且很容易欺骗MAC地址-这样就可以轻松复制(避开您的标识)。