跳转到内容跳转到页面导航:上一页 [访问键 p]/下一页 [访问键 n]
适用于 openSUSE Leap 15.5

20 软件 TPM 模拟器 编辑源文件

20.1 简介 编辑源文件

可信平台模块 (TPM) 是一种使用加密密钥保护硬件的加密协处理器。对于使用 TPM 开发安全功能的开发人员来说,软件 TPM 模拟器是一个便捷的解决方案。与硬件 TPM 设备相比,模拟器可以访问它的客体数量没有限制。此外,在 TPM 版本 1.2 和 2.0 之间切换也很简单。QEMU 支持包含在 swtpm 包中的软件 TPM 模拟器。

20.2 先决条件 编辑源文件

在安装和使用软件 TPM 模拟器之前,需要安装 libvirt 虚拟化环境。请参阅 第 6.2 节,“安装虚拟化组件” 并安装提供的虚拟化解决方案之一。

20.3 安装 编辑源文件

要使用软件 TPM 模拟器,请安装 swtpm

> sudo zypper install swtpm

20.4 使用 swtpm 与 QEMU 编辑源文件

swtpm 提供三种类型的接口:socketchardevcuse。此过程重点介绍 socket 接口。

  1. 在 VM 目录中创建一个名为 mytpm0 的目录,以存储 TPM 状态,例如 /var/lib/libvirt/qemu/sle15sp3

    > sudo mkdir /var/lib/libvirt/qemu/sle15sp3/mytpm0
  2. 启动 swtmp。它会创建一个 QEMU 可以使用的套接字文件,例如 /var/lib/libvirt/qemu/sle15sp3

     > sudo swtpm socket
      --tpmstate dir=/var/lib/libvirt/qemu/sle15sp3/mytpm0 \
      --ctrl type=unixio,path=/var/lib/libvirt/qemu/sle15sp3/mytpm0/swtpm-sock \
      --log level=20
    Tip
    提示:TPM 版本 2.0

    默认情况下,swtpm 会启动 TPM 版本 1.2 模拟器,并将状态存储在 tpm-00.permall 目录中。要创建 TPM 2.0 实例,请运行

     > sudo swtpm socket
      --tpm2
      --tpmstate dir=/var/lib/libvirt/qemu/sle15sp3/mytpm0 \
      --ctrl type=unixio,path=/var/lib/libvirt/qemu/sle15sp3/mytpm0/swtpm-sock \
      --log level=20

    TPM 2.0 状态存储在 tpm2-00.permall 目录中。

  3. 将以下命令行参数添加到 qemu-system-ARCH 命令

    > qemu-system-x86_64 \
    [...]
    -chardev socket,id=chrtpm,path=/var/lib/libvirt/qemu/sle15sp3/mytpm0/swtpm-sock \
    -tpmdev emulator,id=tpm0,chardev=chrtpm \
    -device tpm-tis,tpmdev=tpm0
  4. 通过运行以下命令来验证客户机中是否可用 TPM 设备

    > tpm_version
    TPM 1.2 Version Info:
    Chip Version:        1.2.18.158
    Spec Level:          2
    Errata Revision:     3
    TPM Vendor ID:       IBM
    TPM Version:         01010000
    Manufacturer Info:   49424d00

20.5 使用 swtpmlibvirt 编辑源文件

要使用 swtpm 与 libvirt,请将以下 TPM 设备添加到客户机 XML 规范

<devices>
 <tpm model='tpm-tis'>
  <backend type='emulator' version='2.0'/>
 </tpm>
</devices>

libvirt 会自动为客户机启动 swtpm。无需提前手动启动它。相应的 permall 文件在 /var/lib/libvirt/swtpm/VM_UUID 中创建。

20.6 使用 OVMF 固件进行 TPM 测量 编辑源文件

如果客户机使用开放虚拟化机固件 (OVMF),它会使用 TPM 测量组件。您可以在 /sys/kernel/security/tpm0/binary_bios_measurements 中找到事件日志。

20.7 资源 编辑源文件

打印此页面