Go to main content

手册页部分 8:系统管理命令

退出打印视图

更新时间: 2022年7月27日 星期三
 
 

tpmadm(8)

名称

tpmadm - 管理可信平台模块

用法概要

tpmadm status
tpmadm init
tpmadm clear [lock | owner]
tpmadm auth
tpmadm keyinfo [uuid]
tpmadm deletekey uuid
tpmadm migrate export UUID [MigDataFile MigKeyfile]
tpmadm migrate import [MigDataFile MigKeyfile [ParentUUID] NewKeyUUID]
tpmadm failover
tpmadm pcrextend pcr [filename]
tpmadm pcrreset pcr

描述

可信平台模块 (Trusted Platform Module, TPM) 是为受保护的密钥存储和用于引导操作系统的软件的可靠度量提供的一个硬件组件。tpmadm 实用程序用于初始化并管理 TPM,以使其可供操作系统和其他程序使用。

TPM 子系统可以存储和管理数目不受限的密钥供操作系统和用户使用。Each key is identified by a Universally Unique Identifier, or UUID.

虽然 TPM 在任一给定时间只能保留有限数量的密钥,但支持软件可以根据需要自动加载和卸载密钥。当密钥存储在 TPM 外部时,其父密钥始终会对其进行加密或“包装”,以使得密钥不会在 TPM 外部以可读形式公开。

TPM 必须由平台所有者进行初始化,然后才可供使用。此过程包括设置用于对特权操作进行授权的所有者口令。

虽然 TPM 所有者类似于传统的超级用户,但两者仍有重要的区别。首先,对 TPM 功能的访问与进程特权无关。不论调用方进程的特权等级如何,所有特权操作都需要知道所有者口令。其次,TPM 所有者无法覆盖由 TPM 密钥保护的数据的访问控制。所有者可以通过重新初始化 TPM 有效地销毁数据,但是无法访问已使用其他用户所拥有的 TPM 密钥加密的数据。

子命令

以如下格式使用下列子命令:

# tpmadm <subcommand> [operand]
status

报告 TPM 的状态信息。输出包括是否已建立了 TPM 的所有权、当前的 PCR 内容,以及 TPM 资源(如通信会话和已加载的密钥)的使用情况等等基本信息。

init

初始化 TPM 以供使用。这包括通过设置所有者授权口令来获取 TPM 的所有权。获取 TPM 的所有权将创建新的存储根密钥,这是该 TPM 创建的所有密钥的祖先。After this command is issued, before re-initializing, reset the TPM by using BIOS operations on x86 systems or ILOM operations on SPARC systems.

tpmadm init 子命令提示您创建 TPM 所有者 PIN(或口令短语)两次。

下面是一个示例。PIN 并不显示在屏幕上,但会显示在以下示例中:

# tpmadm init
Enter TPM Owner PIN: 87654321
Confirm TPM Owner PIN: 87654321

一些 tpmadm 子命令要求您重新输入此 PIN,因此请勿将其遗忘。

auth

更改 TPM 的所有者授权口令。

clear lock

清除验证尝试失败的次数。验证尝试失败多次后,TPM 对后续尝试的响应将变得更慢,以挫败那些试图通过穷举搜索来获取所有者口令的人。此命令(需要正确的所有者口令)将重置失败尝试的次数。

clear owner

取消激活 TPM 并将其返回无所有者状态。此操作(需要当前的 TPM 所有者口令)使绑定到 TPM 的所有密钥和数据失效。要想重新使用 TPM,必须重新启动系统,从 BIOS 或 ILOM 预引导环境重新激活 TPM,且必须使用 tpmadm init 命令重新初始化 TPM。

This command should always be executed after running tpmadm clear lock.

keyinfo [uuid]

报告存储在 TPM 子系统中的密钥的相关信息。未指定其他参数时,此子命令将生成所有密钥的简短列表。如果指定了单个密钥的 UUID,则将显示该密钥的详细信息。

deletekey uuid

从 TPM 子系统的持久性存储中删除具有指定 UUID 的密钥。

migrate export UUID [MigDataFile MigKeyfile]

为持久性密钥 UUID 创建初始迁移 blob 和密钥。如有必要,将会提示用户输入用于访问要迁移的密钥的口令。此外,还将提示用户为迁移密钥创建授权口令。此操作创建两个文件:一个迁移 blob(包装的密钥)和一个要在以后的迁移中使用的迁移密钥。输出文件将被命名为 tpm-migration.dattpm-migration.key,除非在命令行上指定了其名称。此操作将需要 TPM 所有者授权以及为装入要导出的密钥而必须装入的任何父密钥的授权口令。将根据需要提示用户输入所有授权口令。

如果您正在导出存储库根密钥 (Storage Root Key, SRK),请使用 00000000-0000-0000-0000-00000000000b 表示 SRK UUID。

tpmadm migrate export 子命令提示输入使用 tpmadm init 子命令创建的 TPM 所有者 PIN。此外,还将提示您创建一个迁移 PIN 以便与 tpmadm migrate import 子命令结合使用。

下面是一个示例。PIN 并不显示在屏幕上,但会显示在以下示例中:

# tpmadm migrate export 00000000-0000-0000-0000-00000000000b
Enter TPM Owner PIN: 87654321
Enter PIN for the migration key: BAKUP555
Confirm PIN for the migration key: BAKUP555
migrate import [MigDataFile MigKeyFile [ParentUUID] NewKeyUUID]

将密钥导入到用户的持久性密钥数据库中。密钥将成为给定 ParentUUID 的子代。如果未给定 ParentUUID,则导入的密钥将成为系统 MRK UUID 的子代。如果未给定 NewKeyUUID,则系统将生成一个新的 UUID 并在命令完成时将其报告给用户。将提示用户输入在“导出”步骤中使用的迁移口令。如果没有为 migrate import 命令指定任何参数,则导入操作会尝试将 SYSTEM MRK UUID 迁移到系统密钥 db 中的当前 SRK 中。导入 MRK 时,请对问题 "Migratable Root Key file(s) already exist; overwrite [y/N]?"(可迁移的根密钥文件已存在;是否覆盖?[y/N])回答 "y"(是),否则,不会使用导入的 MRK 覆盖现有 MRK。用户必须具有 TPM 管理权限(请参见 prof_attr(5))或 root 特权 (euid == 0)。此操作将需要 TPM 所有者授权以及为装入要导出的密钥而必须装入的任何父密钥的授权口令。将根据需要提示用户输入所有授权口令。

下面是一个示例。PIN 并不显示在屏幕上,但会显示在以下示例中:

# tpmadm migrate import
Enter TPM Owner PIN: BAKUP555
Enter PIN for the migration key: BAKUP555
failover

启用 TPM 故障转移(对于 SPARC T7 及以后的平台)。这将提示提供 TPM 所有者 PIN 和迁移密钥的新 PIN。这些将用于在 TPM 芯片故障转移到其他 SPARC SP/SPP 板上的新 TPM 芯片时备份和恢复 TPM 密钥库。

pcrextend pcr [filename]

创建 filename 内容的 SHA-1 散列,并使用散列值作为将扩展的数据对指示的 PCR 执行 PCR 扩展操作。如果未指定文件名,则从 stdin 读取数据。

pcrreset pcr

将指示的 PCR 重置为其最初状态(全零)。

退出状态

在完成所请求的操作之后,tpmadm 以下列状态值之一退出。

0

成功终止。

1

失败。无法完成所请求的操作。

2

用法错误。调用 tpmadm 命令时使用了无效的参数。

属性

有关下列属性的说明,请参见 attributes(7)

属性类型
属性值
可用性
system/core-os
接口稳定性
Committed(已确定)

另请参见

prof_attr(5), attributes(7)

另请参见 pkg:/library/security/trousers 软件包中提供的 tcsd(8) 手册页。

TCG Software Stack (TSS) Specifications:

https://www.trustedcomputinggroup.org/specs/TSS

附注

tpmadm 通过 tcsd 服务与 TPM 设备通信。在使用 tpmadm 命令之前,tcsd 必须正在运行。如果 tcsd 没有正在运行,tpmadm 将生成以下错误:

Connect context: Communication failure (0x3011)

有关更多详细信息,请参见 tcsd(8)