You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows/Linux系统中使用TPM芯片存储并导出数据文件

TPM芯片数据存储与导出实操指南(Windows/Linux)

先明确核心前提:TPM不是通用存储介质,存不了大文件,它自带的非易失性(NV)存储单块最大通常只有1024字节,只适合存密钥、短凭证、哈希值这类小体量敏感数据,所有读写操作都受硬件安全策略管控,未授权状态下无法直接读取存储的明文内容。


Windows系统操作(适配TPM 2.0、Windows 10/11正式版)

  • 前置校验:按Win+R输入tpm.msc回车,确认面板显示“TPM已就绪,可以使用”,规范版本标注为2.0即可操作。

存储数据流程

Windows下直接用系统内置的TPM PowerShell模块操作,不需要装第三方工具:

  1. 以管理员身份启动PowerShell,首次使用先执行TPM初始化命令:
    Initialize-Tpm -AllowClear -AllowPhysicalPresence

若返回“TPM已初始化”提示直接跳过这步,不要重复执行。

  1. 创建NV存储索引块:TPM的存储是按独立索引地址划分空间的,用户可用索引范围为0x01000000~0x01FFFFFF,比如选0x01000001作为存储地址,设置容量、读写权限:
    New-TpmNvIndex -Index 0x01000001 -Size 32 -AuthWrite Owner -AuthRead Owner
    参数说明:-Size后面填要存储的数据字节长度,比如存32位SHA256哈希就填32;-AuthRead Owner代表只有TPM所有者授权才能读取,要设置为开机无授权直接可读就把参数改成-AuthRead None。
  2. 写入本地数据到TPM,比如待写入的敏感数据存在C:\temp\secret.bin路径下,执行:
    Set-TpmNvIndex -Index 0x01000001 -Path C:\temp\secret.bin
    关键提示:写入完成后本地原文件可直接删除,数据保存在TPM芯片独立存储中,不会因为重装系统、更换硬盘丢失,除非TPM被物理复位。

导出数据流程

  1. 管理员身份打开PowerShell,执行读取命令,指定索引地址和本地导出路径:
    Get-TpmNvIndex -Index 0x01000001 -Path C:\temp\exported_tpm_data.bin
  2. 若创建索引时设置了Owner读权限,执行命令后会弹出授权验证窗口,输入TPM初始化时设置的所有者密码即可完成导出。
    注意:如果连续5次输错授权密码,会触发TPM读锁定机制,需要等待系统预设的冷却周期或者物理复位TPM才能重新操作。

Linux系统操作(适配TPM 2.0、Ubuntu 22.04/CentOS 8及以上版本)

  • 前置依赖:先安装官方TPM工具集,Ubuntu执行apt update && apt install -y tpm2-tools,CentOS执行dnf install -y tpm2-tools;安装完成后执行ls /dev/tpm*,能看到/dev/tpm0或/dev/tpmrm0节点代表TPM已被系统正常识别。

存储数据流程

  1. 首次操作先设置TPM所有者层级授权密码:
    tpm2_setprimaryauth -c o -P 你设置的TPM所有者密码
  2. 创建NV存储索引块,同样以0x01000001索引、32字节容量为例,设置所有者可读写权限:
    tpm2_nvdefine 0x01000001 -s 32 -a "ownerread|ownerwrite" -P 你设置的TPM所有者密码
  3. 写入本地数据到TPM,比如待写入文件为当前目录下的secret.bin,执行:
    tpm2_nvwrite 0x01000001 -i ./secret.bin -P 你设置的TPM所有者密码
    校验提示:写入完成后可执行tpm2_nvreadpublic 0x01000001查看存储块状态,确认写入字节数和预设值一致即操作成功。

导出数据流程

  1. 执行读取导出命令,指定索引地址、授权密码、本地导出路径:
    tpm2_nvread 0x01000001 -o ./exported_tpm_data.bin -P 你设置的TPM所有者密码
  2. 若创建索引时设置为无授权可读,去掉-P及后面的密码参数即可直接导出。

常见操作注意事项

  • 写入数据长度不能超过创建NV块时设置的-Size值,否则会直接报写入错误
  • 如果需要把存储的数据和系统启动链绑定(类似BitLocker的TPM校验逻辑),创建索引时加上platformcreate属性,一旦BIOS、引导分区被篡改,TPM会自动锁死对应索引的读权限
  • 在BIOS中执行TPM清除操作、或者短接主板TPM复位针脚,会清空TPM内所有NV存储数据,操作前一定要提前导出重要数据备份

内容的提问来源于stack exchange,提问作者Leona Nguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 19:29:00