唯一密钥/ID,仅对应一个 Ubuntu 操作系统和硬件组合

唯一密钥/ID,仅对应一个 Ubuntu 操作系统和硬件组合

我需要一个唯一的 ID/密钥,以便它只对应 UbuntuOS 和硬件的一个组合。也许像 machineID 和某个唯一的 OS ID 的组合?

应该只为该特定操作系统和硬件生成 ID,其他操作系统和硬件组合则生成不同的 ID/密钥。简而言之,它应该是该特定操作系统和硬件组合的唯一标识符。

答案1

machine-id 就是为了唯一地标识硬件而创建的。请特别注意最后一段。

概要

/etc/机器号

描述

/etc/machine-id文件包含本地系统在安装或启动期间设置的唯一机器 ID。机器 ID 是一个以换行符结尾的十六进制 32 个字符的小写 ID。从十六进制解码后,它对应于一个 16 字节/128 位值。此 ID 可能不全为零。

机器 ID 通常在系统安装或首次启动期间从随机源生成,并在所有后续启动中保持不变。对于无状态系统,如果需要,也可以在早期启动期间在运行时生成机器 ID。

此 ID 唯一地标识主机。它应被视为“机密”,并且不得在不受信任的环境中暴露,尤其是在网络上。如果某些应用程序需要与计算机绑定的稳定唯一标识符,则不得直接使用计算机 ID 或其任何部分。相反,应使用固定的、特定于应用程序的密钥,通过加密的密钥哈希函数对计算机 ID 进行哈希处理。这样,ID 将完全唯一,并以恒定的方式从计算机 ID 派生,但无法从特定于应用程序的 ID 中检索原始计算机 ID。sd_id128_get_machine_app_specific(3) API 提供了这种算法的实现。

最后一段解释了如何在应用程序中使用它:在将 machine-id 暴露给应用程序或用于连接某些东西之前,您需要对其进行哈希处理。这意味着您需要编写一些代码:您需要创建一个和哈希机器 ID。该盐可能是您的操作系统的标识符。

相关内容