[分享发现] systemd 作者: 文件放 Windows, MacOS, Android 可能都比放大部分 Linux 发行版里面安全

In fact, right now, your data is probably more secure if stored on current ChromeOS, Android, Windows or MacOS devices, than it is on typical Linux distributions.

大实话啊, 举双手支持, 主要是 Linux 大部分发行版对现代的安全技术支持糟糕, 比如 Secure Boot, TPM.

当然, 大佬才敢这样说, 我等菜鸡说这样的话绝对被喷, 原因是 secure boot 和 tpm 确实有不少问题:

  • secure boot 验证可以被篡改, 主板厂商对 bios 代码的校验不到位容易被编程器一发入魂.
  • secure boot 的证书更新是一个艰难工作, 之前微软推送 dbx 更新就在 hp 商用机上翻车了.
  • tpm 本身就不可信, 往坏的方向说就是可能有合法后门.
  • tpm 目前挂在 lpc 总线上, fpga 可以窃取到密钥.

等等问题挺多的,还要算上其他问题:

  • Windows 和 MacOS 是闭源系统, 从隐私上来说, 直接就是二等公?民.
  • Android… 比另外两个闭源系统还糟糕…

但要针对 secure boot 和 tpm 攻击, 大部分人是比较困难的, 没有 ee 背景的可能连主板 ROM 芯片都找不到.
相对之下, linux 的 secure boot 连 initramfs 都不做校验, 实在糟糕.

Linux 对这方面的支持简直是一言难尽. 之前我问过为何大部分的 Linux 安全启动不校验 initramfs? 得到的答案是: linux 的安全启动大概是为了能启动…

=========

举个 ubuntu + luks 磁盘加密 / 的例子: grub 加载了 initramfs, 但没有做校验!!! initramfs 中, 会询问 luks 密码, 这里就有问题了: 我可以修改 initramfs, 窃取输入的 luks key, 或者往目标系统注入恶意代码.

如果要更好的安全, 可能得自己动手创建 secure boot 的证书链, 自己给所有的启动部件签名, 比如 archlinux wiki 中介绍的: 将 kernel, initramfs, 内核命令行打包到 systemd-bootd 中, 对这个 efi 签名, 这样所有关键部件都无法被轻易篡改了.

另外, ubuntu 现在有一个配置 secure boot 的选项, 不知道配置后是否会校验 initramfs.

预启动阶段安全这方面比较好的是微软家的 surface pro 系列, 怎么说呢, 在生命周期内一直在安装固件补丁, 而且比较方便, Windows update 推送;

然后 secure boot 若被关闭, 开机会有红屏提示, 这个功能建议微软强推, 但估计不敢强推, 一堆人相当讨厌这个设计呢, 微软会被骂到怀疑人生;

Windows 系统的 bootloader 天生支持 tpm 比较容易的样子, bitlocker 很好用.

发表回复

您的电子邮箱地址不会被公开。