RHEL / Ubuntu 的 Secure Boot 支持真的是... 难以理解 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Osk
V2EX    问与答

RHEL / Ubuntu 的 Secure Boot 支持真的是... 难以理解

  Osk 2019-10-24 16:47:17 +08:00 2274 次点击
这是一个创建于 2247 天前的主题,其中的信息可能已经有所发展或是发生改变。

先划重点: 不校验 initrd/initramfs. shim, grub, kernel, kernel module 都有验证, 就 initramfs 没验证.

反正 RHEL 的 initramfs 被修改后启动还是显示 secure boot enabled. /滑稽 /

ubuntu 安装时有一个 "配置 secure boot" 的选项, 但不知道啥用.


还是继续 archlinux 算了, bootloader + kernel + initrd + cmdline 打包成一个 efi 文件并签名. 骗自己完全够了.

4 条回复    2019-10-25 08:40:38 +08:00
flynaj
    1
flynaj  
   2019-10-24 21:34:09 +08:00 via Android
kernel 后面已经没有办法验证了,Windows 也一样。
Osk
    2
Osk  
OP
   2019-10-24 23:29:30 +08:00
@flynaj 感谢提醒, 被这两家文档里轻飘飘的一句: 不验证 initramfs 给震惊到了, 没说明白.
windows 确实也是一样, 网上一大把 PE 不需要关闭 secure boot 来启动. Linux 的 secure boot 也不验证 user space 的程序.


我一直觉得 secure boot 只是整个安全加固中的一环, 而不是全部. 在启动过程中需要输入 OS 分区密钥的情况下 SB 比较有用:

对于 Windows 来说, secure boot 验证了 bootmgr, bootmgr 会让用户输入密码解密加密的 C 盘(或者使用 TPM 测量启动环境以自动解密), 由于 ms 公开的细节比较少, 就目前看来这个流程是可信的. 当然, 可能有我不知道的漏洞能发起攻击, 欢迎各位告知.


对于 Linux 来说, 就坑爹了, 由于 OS 架构不一样, Linux 的 LUKS 解密是 User Space 的程序询问密码并解密的(TPM: 我是谁, 我在哪?), 这个操作在 initramfs 中完成, 而 rhel/ubuntu 的 secure boot 实现并不验证 initramfs, 那么攻击者可以修改 initramfs, 在合适的时机(比如询问密码是做记录或 switch_root 前向目标 rootfs 中植入恶意程序), 那么 SB 除了让插入自己的 ko 变得更麻烦外, 意义何在?


ArchLinux 这边有一个趣的方案: 把 Kernel、initramfs、ucode、cmdline 等嵌入到 systemd 的 boot manager 中, 然后对这个打包的 efi 签名, 这样就避免了 initramfs/cmdline 被篡改的可能, 不过这个方案目前操作略复杂...
msg7086
    3
msg7086  
   2019-10-25 02:52:06 +08:00
只知道以前 Linux 的“支持”SB 是指之前 UEFI 被强推 SB 会导致没有签名的 Linux 无法引导的问题。“支持”SB 就是最开始的 Boot loader 拿到签名通过 UEFI 验证使之可以正常引导。如果缺少 SB 支持的话,在强制打开 SB 的机器上就无法启动了。
szopen
    4
szopen  
   2019-10-25 08:40:38 +08:00
@msg7086 同意,Linux 支持 Secure Boot 其实就是支持能在开启了 Secure Boot 的机器上启动,避免用户要到主板中去关闭。
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5032 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 38ms UTC 07:34 PVG 15:34 LAX 23:34 JFK 02:34
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86