【引言:信任的坍塌】
在 IT 交付中,最让人寝食难安的不是 Bug,而是**"中间人篡改"**。如果你分发的 ISO 镜像在传输或部署中被植入后门,所有的安全协议都将形同虚设。如何确保你交付的 Linux,就是你签名时的那个 Linux?
今天,LeisureLinux 带你构建一套基于 UKI (Unified Kernel Image) 与 MOK (Machine Owner Key) 的终极防御链路。
一、 UKI:将系统内核"原子化"
传统的 Linux 引导链路是松散的:内核、Initrd、配置文件各散东西。UKI 的本质是将它们通过 systemd-ukify 强行合并为一个符合 UEFI 规范的 .efi 执行文件。
-
物理意义:内核参数(包含 dm-verity Root Hash)被硬编码进二进制文件。
-
不可篡改性:只要文件被修改 1 bit,整个数字签名立即失效,主板固件将拒绝引导。
二、 MOK:收回"信任的根源"
不要依赖微软的通用证书,那不叫主权。通过 MOK (Machine Owner Key),你在客户的机器上植入的是你自己的信任根。
-
私钥(Private Key):掌握在你手中,用于签署 UKI。
-
证书(DER):分发给客户,用于在硬件层授权你的身份。
三、 交付流程:三步构建绝对闭环
Step 1: 铸造"金丹"(构建 UKI)
我们将内核参数与指纹锁死:
[Bash]{ngcontent-ng-c1474045893=""}
/usr/lib/systemd/ukify build \
--linux=/boot/vmlinuz \
--initrd=/boot/initrd.img \
--cmdline="ro_root_hash=YOUR_STATIC_HASH quiet" \
--output=leisure-linux.efi
Step 2: 加盖"法印"(数字签名)
使用你的 MOK 私钥为 .efi 文件背书:
[Bash]{ngcontent-ng-c1474045893=""}
sbsign --key custom.key --cert custom.der --output signed.efi leisure-linux.efi
```text
#### **Step 3: 客户授权(MOK Enroll)** {#step-3-客户授权mok-enroll path-to-node="26"}
客户在首次部署时导入你的证书:
[Bash]{ngcontent-ng-c1474045893=""}
sudo mokutil --import custom.der ```
重启后,在蓝色的 MOK Manager 界面完成确认。自此,这台机器只认你的"印章"。
【IT 禅悟】
安全不是玄学,是概率的归零。 通过 UKI+MOK,我们将原本无形的信任链,固化成了数学上的单向函数对撞。你交付出的不仅仅是一段代码,而是一个自洽的、封闭的、不可被外部意志改变的逻辑宇宙。
在这种架构下,假冒与篡改在硬件层就会灰飞烟灭。
结语
"掌握了私钥,你就是这台机器唯一的真理。"
有跑通过以上流程的大佬,留言区来普及一下吧。