Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

前言

这是一本从真实实验里沉淀出来的 TPM/可信启动入门书。它不打算把你培养成密码学家,而是想让有 Linux 基础的普通工程师,第一次把 TPM 这颗芯片“用起来“——并且知道自己在干什么。

这本书是怎么来的

我手上有一台 deepin Linux 笔记本,带着真实的 TPM 2.0 芯片。TPM 这个词我见过很多年——Windows 11 装不上是因为没有它,BitLocker 背后是它,Secure Boot 总和它一起被提起——但说实话,我一直没搞懂它到底能干嘛、怎么干。

于是我心一横,决定从零开始,把 TPM 的核心能力一个一个亲手验证一遍。

直接在自己每天都在用的笔记本上做实验风险太大(后面会讲,动 Secure Boot 和 LUKS 都是有去无回的操作),所以我在 KVM 里搭了一台虚拟机:Omarchy 发行版(Arch 系),Limine 引导,统一内核镜像(Unified Kernel Image, UKI),LUKS 全盘加密,再挂一个 swtpm 软件模拟的 TPM 2.0。环境从零开始搭,实验一个一个做,坑一个一个踩。

在这台虚拟机里,我完成了四个层层递进的实验:

  • 实验 A:手动 extend PCR,亲眼验证哈希链的工作原理
  • 实验 B:把一个秘密 Seal 到 PCR 状态上,然后模拟“篡改“,看着解封失败
  • 实验 C:解析固件的度量日志(event log),自己写脚本重放,和真实 PCR 逐一比对
  • 实验 D:把 LUKS 根分区绑定到 TPM,实现开机自动解锁——这大概是所有人最想干的那件事

做完实验还没完,我又往下挖了授权策略(PCR policy / PolicyAuthorize)、Evil Maid 攻击与 Secure Boot 的意义、IMA 运行时度量这些进阶话题。

这本书就是整个过程的沉淀。书中所有命令都在真实环境里跑过,所有坑都是我自己真实踩过的(附录 A 专门记录这些坑)。

这本书适合谁

  • 有 Linux 基础,听说过 TPM,但一直没搞懂它到底能干嘛的人
  • 想做全盘加密自动解锁(比如“为什么我的 Arch 不能像 BitLocker 那样开机不用输密码“)的人
  • 想搞明白可信启动、度量启动、远程证明这些概念,但看规范文档看到头疼的工程师

你不需要懂密码学,需要懂的数学知识基本只有“哈希函数是单向的“这一条。但你得会敲命令、会读报错、会折腾虚拟机。

反过来说,如果你只是想找一份“生产环境 TPM 配置手册“,这本书可能帮不了你——它讲的是原理和手感,不是发行版运维清单。但读完它再去看那些手册,你会发现自己能看懂每一行配置在干什么了。

全书结构

概念篇(第 1–2 章):不打地基,实验做不了。第 1 章讲信任链、PCR、Seal 这些核心概念;第 2 章手把手教你搭出和我一样的虚拟机实验环境。

实战篇(第 3–6 章):四个层层递进的实验。从“extend 一个 PCR“这种最小动作开始,到“解析整个启动链的度量日志“,最后到“让加密磁盘开机自动解锁“。每一个实验都能独立跑通,但连起来才是完整的图景。

进阶篇(第 7–10 章):授权策略为什么比“绑死 PCR“灵活、Evil Maid 攻击揭示的 Secure Boot 意义、IMA 如何把度量延伸到运行时,以及接下来往哪走。

附录:踩坑实录(附录 A)、命令速查表(附录 B)、本书用到的脚本(附录 C)。

阅读建议

实战篇强烈建议照着做一遍,不要只看。TPM 这东西的挫败感非常强——命令没几个,报错没提示,一旦某个步骤理解有偏差,后面全错。亲手敲一遍,踩一遍坑,才真的懂。

环境搭建在第 2 章,包括给虚拟机做快照的方法。玩坏了就回滚,这正是我们不用真机的意义所在。

还有一个建议:每个实验做完,先别急着看“这说明什么“那一节,自己试着回答一遍“刚才发生了什么“。对不上再回去看。TPM 的知识结构是链条式的,一环没懂,后面全是空中楼阁。

风险警告

本书涉及的 Secure Boot 配置、LUKS 密钥管理、initramfs 改造,在真机上都可能造成无法启动或数据丢失。书中所有实验默认在虚拟机中进行,请先在虚拟机里练熟,再考虑要不要上真机。上真机之前,确保你有恢复密钥的备份。

约定

  • 命令块会标注语言(bash 等),# 开头的是需要 root 权限执行的命令
  • 输出内容做了必要的排版精简,长输出用 ... 省略,但所有内容都来自真实运行
  • 关键概念第一次出现时给出中英对照,之后只用中文简称
  • 书里的“坑““注意”“思考“提示框不是装饰——那些是我真实踩过的坑,或者读者大概率会困惑的地方