问题标签 [trusted-computing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
intel - tboot 的文档?
是否有任何文档可以了解 tboot 的作用以及 tboot 的工作原理? http://sourceforge.net/projects/tboot/
trusted - 我们自己的代码可以扩展哪些PCR?
因为 TPM 1.2 规范中有 24 个 PCR。其中一些 PCR 是保留的,不能通过用户代码进行扩展。以下是 PCR Index 他们的 PCR Usage
- CRTM、BIOS 和平台扩展
- 平台配置
- 选项 ROM 代码
- 选项 ROM 配置和数据
- IPL7Code(MBR 信息和引导加载程序阶段 1)
- IPL 代码和配置数据(供 IPL 代码使用)
- 状态转换和唤醒事件
- 保留供将来使用。不使用。
- 引导加载程序第 2 阶段第 1 部分
- 引导加载程序第 2 阶段第 2 部分
- 未使用。
- 未使用。
- 引导加载程序命令行参数
- 通过检查例程检查的文件
- 实际加载的文件(例如 Linux 内核、initrd、模块..)
- 未使用。
- 未使用。
- DRTM8
18-23。未使用。
我知道用户可以扩展所有未使用的 PCR?它是否正确?我问了这个问题因为我已经编写了自己的代码来扩展 PCR(通过遵循裤子编码指南),结果我可以将所有 PCR 扩展,除了从 PCR 17 到 PCR 22。我的理解是我只能扩展几个特别是不能玩从 PCR 0 到 PCR 7 的较低级别的。
linux - TBOOT:未找到 DMAR
我也在 tboot-devel@lists.sourceforge.net
邮件列表上发布了这个,但我决定也在这里发布,以便更多地了解这个问题。
我正试图让 tboot 工作,但我没有快速获得任何进展。
我已经在我的机器(Lenovo Thinkpad Helix 3701)上的 xubuntu 32 位(内核 3.11.0-18-generic)上安装了 tboot(1.7.4-0ubuntu1 通过 apt-get)。
然后我将 3rd_gen_i5_i7_SINIT_67.BIN 文件放在 /boot/ 目录中(从英特尔网页获取)。
我在 /boot/grub/grub.cfg 中编辑了相关行,如下所示:
在此之后我重新启动并在 grub 菜单中选择“tboot ...”。
显示“正在执行 GETSEC [SENTER] ...”后,机器重新启动,并且在下一次尝试时出现以下错误:
我已经根据英特尔网页中的 SINIT_Errors.pdf 解码了错误代码:
根据 pdf,这表明:Class ACPI Check
, DMAR not found
.
我真的不知道从这里去哪里,你们有什么建议?
我会在这篇文章中包含更多日志,但我只有 JPEG 格式的日志,因为我必须拍摄屏幕照片以保存输出。如果您认为这会有所帮助,我会尝试将它们转录为文本并发布指向 pastebin 的链接?
先感谢您!
linux-kernel - “可 TXT 锁定的 BAR 大于 4GB”是什么意思?
我正在尝试启动一个闪烁会话(http://flickertcb.sourceforge.net/),该会话在英特尔机器上使用 GETSEC[SENTER] 指令以启动“动态信任根”环境。
每当执行 GETSEC[SENTER] 指令时,我得到的错误(“TXT-lockable BAR is above 4GB”)是在 tboot(http://sourceforge.net/projects/tboot/)的帮助下检索的,并且是从英特尔 ( http://software.intel.com/en-us/articles/intel-trusted-execution-technology )提供的 SINIT AC 模块的文档中解码。
我的环境:
问题:所以在这种情况下,BAR 代表基地址寄存器,但是我如何找出问题所在的寄存器以及如何解决它?
这是正常启动(第 1 行)+ 闪烁会话(第 1069 行)+ tboot(错误代码,第 1911 行)的完整输出:http: //paste.ubuntu.com/7130591/
intel - tboot 如何进行静态信任根测量,它会改变不同 Linux 内核的 PCR 12-PCR 14 值吗?
我已经在 ubuntu 上使用这个命令 apt-get install tboot 安装了 tboot。实际上,我对 tboot 和受信任的 Grub 有一个疑问。受信任的 grub 执行 STRM(Measurement 的静态信任根)并更改 PCR 12 -PCR14 中的值。tboot 使用可信执行技术(Intel 的 TXT)技术进行 DRTM(Dynamic root of trust for Measurement)。它会将 PCR17 中的值更改为 PCR22。我想知道,如果 tboot 支持 SRTM,那么它还应该针对不同的 Linux 内核版本将 PCR 12 中的值更改为 PCR14。但是对于不同的 Linux 内核版本,tboot 仅将 PCR17 更改为 PCR22。tboot 可以同时提供 SRTM 和 DRTM 吗?
tpm - 为什么我通过 TBS 从 TPM 收到不标准的响应?
我有一个 C++ 程序通过 TPM 基础服务和 Windows 7 SDK 执行基本的 TPM_GetCapabilities。
我已经设置了下面的程序
我的返回缓冲区看起来像:
根据这个文档,第 7.1 节 TPM_GetCapability 我应该得到以下信息:
查看输出缓冲区,我得到 TPM_TAG_RSP_COMMAND,paramSize 的值为 18,TPM_RESULT 的值为 0,序数的值为 0x...04(不确定这应该是什么意思。)然后是 1,1,0,0我的最后一点。我不知道如何破译这个。
java - 在 Eclipse 中运行 jTSS
我正在尝试按照Windows 7 中JSR321 入门中提供的教程在 Eclipse 中运行可信计算 API JSR321。
成功启用我的 TPM 后(制造商:STM 和版本:1.2)。
我尝试运行教程中给出的代码,
我还在 Eclipse 中为 IAIK jTSS(jTSS 0.7.1a)添加了外部 jar 文件作为类路径,他们还提到
有必要将jsr321.tpmcontextimpl属性设置为 TPMContext 实现的类名。例如
java -cp YourClasspath -Djsr321.tpmcontextimpl=iaik.tc.jsr321.tpm.TPMContextImpl yourjavaapplication.class
因此,我通过右键单击项目并转到Run As -> Run Configuration并在为VM 参数提供的部分的Arguments选项卡中添加了上述代码,我插入了以下命令
但我收到以下错误:
我已经在Project Properties的Java Build Paths中添加了所有提到的依赖项。
请提出解决方案。
谢谢
c# - 如何使用 TPM(可信平台模块)加密字节
如何使用机器的 TPM 模块加密字节?
加密保护数据
Windows 提供了一个(相对)简单的 API 来使用 API 加密 blob CryptProtectData
,我们可以将其包装一个易于使用的函数:
的细节ProtectBytes
不如您可以很容易地使用它的想法重要:
- 这是我想通过保存在
System
- 把加密的 blob 还给我
返回的blob是一个未记录的文档结构,其中包含解密和返回原始数据所需的一切(散列算法、密码算法、盐、HMAC 签名等)。
ProtectBytes
为了完整起见,这是使用Crypt API
保护字节的示例伪代码实现:
如何对 TPM 做同样的事情?
上面的代码仅用于加密本地机器的数据。使用System
帐户作为密钥生成器对数据进行加密(细节虽然有趣,但并不重要)。最终结果是我可以加密只能由本地机器解密的数据(例如硬盘加密主密钥)。
现在是时候更进一步了。我想加密一些只能由本地 TPM 解密的数据(例如硬盘加密主密钥)。换句话说,我想用Windows 中的 TPM 替换下面针对 Android 的框图中的 Qualcomm 可信执行环境 ( TEE ):
注意:我意识到 TPM 不进行数据签名(或者如果这样做,它不保证对相同的数据进行签名时每次都会给出相同的二进制输出)。这就是为什么我愿意将“RSA 签名”替换为“使用硬件绑定密钥加密 256 位 blob”。
那么代码在哪里呢?
问题是 TPM 编程在 MSDN 上完全没有记录。没有可用于执行任何操作的 API。相反,您必须为自己找到一份Trusted Computing Group 的软件堆栈(又名 TSS),找出要发送到 TPM 的命令、有效负载、按什么顺序,然后调用Window 的Tbsip_Submit_Command函数直接提交命令:
Windows 没有更高级别的 API 来执行操作。
这相当于尝试通过向硬盘发出 SATA I/O 命令来创建文本文件。
为什么不只使用裤子
可信计算组 (TCG) 确实定义了自己的 API:TCB 软件堆栈(TSS)。这个 API 的一个实现是由一些人创建的,叫做TrouSerS。然后一个人将该项目移植到 Windows。
该代码的问题在于它不能移植到 Windows 世界中。例如,你不能在 Delphi 中使用它,你不能在 C# 中使用它。这个需要:
- OpenSSL
- 线程
我只想让代码用我的 TPM 加密一些东西。
以上CryptProtectData
只需要函数体中的内容。
使用 TPM 加密数据的等效代码是什么?正如其他人所指出的,您可能必须查阅三本 TPM 手册,然后自己构建 blob。它可能涉及TPM_seal
命令。虽然我觉得我不想封数据,但是我想我想绑定一下:
绑定– 使用 TPM 绑定密钥加密数据,这是从存储密钥派生的唯一 RSA 密钥。 密封– 以与绑定类似的方式加密数据,但另外指定了 TPM 必须处于的状态才能解密数据(未密封)
我尝试阅读所需的三卷,以找到我需要的 20 行代码:
但我不知道我在读什么。如果有任何类型的教程或示例,我可能会有机会。但我完全迷失了。
所以我们问 Stackoverflow
以同样的方式,我能够提供:
有人可以提供相应的等价物:
除了在 LSA 中锁定的密钥之外System
,在 TPM 中锁定的密钥是否相同?
研究开始
我不知道确切的绑定是什么意思。但是查看 TPM Main - 第 3 部分命令 - 规范版本 1.2,提到了bind:
10.3 TPM_UnBind
TPM_UnBind 获取作为 Tspi_Data_Bind 命令结果的数据 blob 并将其解密以导出给用户。调用者必须授权使用将解密传入 blob 的密钥。TPM_UnBind 以逐块为基础进行操作,并且不知道一个块与另一个块之间的任何关系。
令人困惑的是没有Tspi_Data_Bind
命令。
研究工作
令人震惊的是,从来没有人费心记录 TPM 或其操作。就好像他们把所有的时间都花在了想出这个很酷的东西上来玩,但不想处理让它用于某些东西的痛苦步骤。
从(现在)免费书籍TPM 2.0 实用指南开始:在新的安全时代使用可信平台模块:
第 3 章 - TPM 2.0 快速教程
TPM 可以访问自己生成的私钥,因此它可以使用公钥加密密钥,然后将生成的 blob 存储在硬盘上。这样,TPM 可以保留几乎无限数量的可用密钥,但不会浪费宝贵的内部存储空间。存储在硬盘上的密钥可以擦除,但也可以备份,这在设计者看来是一个可以接受的折衷方案。
如何使用 TPM 的公钥加密密钥?
第 4 章 - 使用 TPM 的现有应用程序
应该使用 TPM 但不使用的应用程序
在过去的几年中,基于 Web 的应用程序的数量有所增加。其中包括基于 Web 的备份和存储。现在有大量公司提供此类服务,但据我们所知,这些服务的客户端都没有让用户将备份服务的密钥锁定到 TPM。如果这样做了,如果 TPM 密钥本身通过在多台机器上复制来备份它肯定会很好。这似乎是开发商的机会。
开发人员如何锁定 TPM 的密钥?
第 9 章 - 等级制度
用例:存储登录密码
典型的密码文件存储密码的加盐哈希。验证包括对提供的密码进行加盐和散列处理,并将其与存储的值进行比较。因为计算不包括秘密,所以它会受到对密码文件的离线攻击。
此用例使用 TPM 生成的 HMAC 密钥。密码文件存储加盐密码的 HMAC。验证包括对提供的密码进行加盐和 HMAC 处理,并将其与存储的值进行比较。由于离线攻击者没有 HMAC 密钥,因此攻击者无法通过执行计算来发起攻击。
这可以工作。如果 TPM 有一个秘密 HMAC 密钥,并且只有我的 TPM 知道 HMAC 密钥,那么我可以用“HMAC”替换“签名(又名 TPM 用它的私钥加密)”。但在接下来的一行中,他完全颠倒了自己:
TPM2_Create,指定 HMAC 密钥
如果我必须指定 HMAC 密钥,这不是 TPM 机密。当您意识到这是关于 TPM 提供的加密实用程序的章节时,HMAC 密钥不是秘密的事实是有意义的。您不必自己编写 SHA2、AES、HMAC 或 RSA,您可以重新使用 TPM 已经存在的内容。
第 10 章 - 钥匙
作为一种安全设备,应用程序在使用密钥的同时将其安全地保存在硬件设备中的能力是 TPM 的最大优势。TPM 可以生成和导入外部生成的密钥。它支持非对称和对称密钥。
出色的!你怎么做呢!?
密钥生成器
可以说,TPM 的最大优势在于它能够生成加密密钥并在硬件边界内保护其秘密。密钥生成器基于 TPM 自己的随机数生成器,不依赖于外部随机源。因此,它消除了基于熵源不足的弱软件软件的弱点。
TPM是否能够生成加密密钥并在硬件边界内保护其机密?是这样,怎么样?
第 12 章 - 平台配置寄存器
授权 PCR
用例:将硬盘加密密钥密封到平台状态
如果 TPM 保护加密密钥,则全盘加密应用程序比将其存储在同一个磁盘上(仅受密码保护)要安全得多。首先,TPM 硬件具有反锤击保护(TPM 字典攻击保护的详细描述见第 8 章),使得对密码的暴力攻击变得不切实际。仅受软件保护的密钥更容易受到弱密码的攻击。其次,存储在磁盘上的软件密钥更容易被窃取。拿走磁盘(或磁盘的备份),你就得到了密钥。当 TPM 持有密钥时,整个平台,或者至少是磁盘和主板,都必须被盗。
密封允许密钥不仅受密码保护,而且受策略保护。典型的策略将密钥锁定为在密封时当前的 PCR 值(软件状态)。这假设第一次启动时的状态没有受到损害。首次启动时存在的任何预装恶意软件都将被测量到 PCR 中,因此密钥将被密封到受损的软件状态。不太信任的企业可能有一个标准的磁盘映像和代表该映像的 PCR 的印章。这些 PCR 值将在可能更受信任的平台上预先计算。更复杂的企业将使用 TPM2_PolicyAuthorize,并提供多个票证来授权一组受信任的 PCR 值。参见第 14 章,详细描述策略授权及其解决 PCR 脆性问题的应用。
尽管密码也可以保护密钥,但即使没有 TPM 密钥密码,也可以获得安全性。攻击者可以在不提供 TPMkey 密码的情况下启动平台,但在没有操作系统用户名和密码的情况下无法登录。OSsecurity 保护数据。攻击者可以启动替代操作系统,例如从实时 DVD 或 USB 记忆棒,而不是从硬盘驱动器,以绕过操作系统登录安全性。但是,这种不同的引导配置和软件会改变 PCR 值。由于这些新的 PCR 与密封值不匹配,TPM 不会释放解密密钥,因此硬盘驱动器无法解密。
出色的!这正是我碰巧想要的用例。这也是微软使用 TPM 的用例。我该怎么做!?
所以我读了整本书,它没有提供任何有用的信息。这令人印象深刻,因为它有 375 页。你想知道这本书包含什么 - 回顾它,我不知道。
因此,我们放弃了 TPM 编程的权威指南,转而使用 Microsoft 的一些文档:
来自Microsoft TPM Platform Crypto-Provider Toolkit。它确切地提到了我想要做的事情:
背书密钥或 EK
EK 旨在为平台提供可靠的加密标识符。企业可能维护属于其企业中所有 PC 的 TPM 的背书密钥的数据库,或者数据中心结构控制器可能具有所有刀片中的 TPM 的数据库。在 Windows 上,您可以使用“Windows 8 中的平台加密提供程序”部分中描述的 NCrypt 提供程序来读取 EK 的公共部分。
TPM 内部的某处是 RSA 私钥。那把钥匙被锁在那里——永远不会被外界看到。我希望 TPM 用它的私钥签署一些东西(即用它的私钥加密它)。
所以我想要可能存在的最基本的操作:
用你的私钥加密一些东西。我什至(还)没有要求更复杂的东西:
- 根据 PCR 状态“密封”它
- 创建密钥并将其存储在易失性或非易失性内存中
- 创建对称密钥并尝试将其加载到 TPM
我要求 TPM 可以做的最基本的操作。为什么无法获得有关如何操作的任何信息?
我可以得到随机数据
当我说 RSA 签名是 TPM 可以做的最基本的事情时,我想我是在胡说八道。可以要求 TPM 做的最基本的事情是给我随机字节。我已经弄清楚该怎么做:
花哨的东西
我意识到使用 TPM 的人数非常少。这就是为什么 Stackoverflow 上没有人有答案的原因。所以我真的不能太贪婪地为我的常见问题找到解决方案。但我真正想做的是“密封”一些数据:
- 向 TPM 提供一些数据(例如 32 字节的密钥材料)
- 让 TPM 加密数据,返回一些不透明的 blob 结构
- 稍后要求 TPM 解密 blob
- 仅当 TPM 的 PCR 寄存器与加密期间相同时,解密才会起作用。
换句话说:
下一代密码学(Cng,又名 BCrypt)支持 TPM
Windows 中最初的 Cryptography API 被称为 Crypto API。
从 Windows Vista 开始,Crypto API 已被Cryptography API: Next Generation(内部称为BestCrypt,缩写为BCrypt ,不要与密码散列算法混淆)取代。
Windows 附带两个 BCrypt提供程序:
- Microsoft Primitive Provider (
MS_PRIMITIVE_PROVIDER
) default :所有原语(散列、对称加密、数字签名等)的默认软件实现 - Microsoft Platform Crypto Provider (
MS_PLATFORM_CRYPTO_PROVIDER
):提供 TPM 访问的提供程序
Platform Crypto提供程序没有记录在 MSDN 上,但确实有来自 2012 Microsoft Research 站点的文档:
TPM 平台加密提供者工具包
TPM 平台加密提供程序和工具包包含用于在 Windows 8 中使用 TPM 相关功能的示例代码、实用程序和文档。描述的子系统包括 TPM 支持的 Crypto-Next-Gen (CNG) 平台加密提供程序,以及证明服务提供程序如何可以使用新的 Windows 功能。支持基于 TPM1.2 和 TPM2.0 的系统。
Microsoft 的意图似乎是通过 Cryptography NG API 的Microsoft Platform Crypto Provider来展示 TPM 加密功能。
使用 Microsoft BCrypt 的公钥加密
鉴于:
- 我想执行 RSA 非对称加密(使用 TPM)
- Microsoft BestCrypt 支持 RSA 非对称加密
- Microsoft BestCrypt 有一个TPM 提供程序
一个前进的方向可能是弄清楚如何使用Microsoft Cryptography Next Gen API进行数字签名。
我的下一步将是使用标准提供程序(MS_PRIMITIVE_PROVIDER
)使用 RSA 公钥在 BCrypt 中进行加密。例如:
modulus
: 0xDC 67 FA F4 9E F2 72 1D 45 2C B4 80 79 06 A0 94 27 50 8209 DD 67 CE 57 B8 6C 4A 4F 40 9F D2 D1 69 FB 995D 85 0C 07 A1 F9 47 1B 7 F 16 2 A B9 F6 58 36 37 99 29 AA 4F A8 12 E8 4F C7 82 2B 9D 72 2A 9C DE 6F C2 EE 12 6D CF F0 F2 B8 C4 DD 7C 5C 1A C8 17 51 A9 AC DF 08 22 04 9D 2B D7 F9 4B 09 DE 9 EB 5C 51 1A D8 F8 F9 56 9E F8 FB 37 9B 3F D3 74 65 24 0D FF 34 75 57 A4 F5 BF 55publicExponent
: 65537
使用该代码功能,我可能能够切换到使用 TPM 提供程序 ( MS_PLATFORM_CRYPTO_PROVIDER
)。
2016 年 2 月 22 日:随着 Apple 被迫帮助解密用户数据,人们对如何让 TPM 执行最简单的任务——加密某些东西——重新产生了兴趣。
这大致相当于每个人都拥有一辆车,但没有人知道如何启动它。它可以做非常有用和酷的事情,只要我们能通过Step 1。
微软密钥存储 API
Microsoft 的TPM Base Services存档文档主页说我们可能希望使用密钥存储 API:
笔记
TPM 可用于密钥存储操作。但是,我们鼓励开发人员将密钥存储 API 用于这些场景。密钥存储 API提供了创建、签名或加密以及保存加密密钥的功能,对于这些目标场景,它们比 TBS 更高级且更易于使用。
Key Storage API档案的介绍说:
密钥存储架构
CNG 提供了一个私钥存储模型,允许适应当前和未来创建使用密码学特性(如公钥或私钥加密)的应用程序的需求,以及存储密钥材料的需求。密钥存储路由器是该模型的中心例程,在 Ncrypt.dll 中实现。应用程序通过密钥存储路由器访问系统上的密钥存储提供程序 (KSP),该路由器对应用程序和存储提供程序本身隐藏了诸如密钥隔离等细节。下图展示了 CNG 密钥隔离架构的设计和功能。
他们注意到支持硬件安全模块(可能是 TPM 的术语):
如上所述,可以支持广泛的硬件存储设备。在每种情况下,所有这些存储设备的接口都是相同的。它包括执行各种私钥操作的功能以及与密钥存储和管理有关的功能。
我唯一不知道的是您是否必须要求使用 HSM,或者它是否在可用时自动发生(以及如何知道它何时不可用 - 所以您无论如何都不要尝试继续)。
奖金阅读
android - 如何从 C 源文件调用 arm 程序集?
我发现了很多关于使用 Android NDK 编译汇编代码的好教程。但是他们没有关于如何从 C 源文件调用汇编指令的信息,我相信这是可能的。我想我在网上看到过类似的教程。我的问题是我是否可以拥有一个发出汇编调用的 C 源文件。我还希望能够使用 NDK 进行编译。但我喜欢避免使用 Android Studio 和 JNI;一个原因是我没有任何 Java 代码。而且我已经验证我可以使用 NDK 编译和运行 C 源文件。所以基本上我知道如何使用 NDK 编译 C 源文件和汇编文件。我已经验证 C 代码在我的手机上运行良好。但我不确定如何从 C 源文件中为 arm 架构调用汇编指令。
这是文件:
顺便说一句,这个问题似乎与拇指与手臂无关。我确实在我的 Android.mk 中使用了 tryLOCAL_ARM_MODE := arm
语句,但它没有解决任何问题。我刚刚收到 ARM 指令的类似错误。
更新:我仍然得到那个错误。这是我的 Android.mk 的副本,我无需在早期的 C 源文件中指定 arm 版本或 arm/thumb 规范即可在设备上执行。我已经阅读了有关 thumb 以及与该选项相关的优缺点,以及如何指定对它的支持。然而,即使我配置了 ABI,这个错误仍然存在。我没有尝试过的一件事是将 .arm 扩展名添加到我的 C 源文件中。我在较早的帖子中看到了对它的引用,但无法弄清楚为什么会有所作为。我相信该线程中的 OP 暗示这将解决该错误。任何人都可以详细说明吗?有人用过吗?与架构相关的 Android.mk 语句相比,这样做的效果是什么?谢谢
另一个更新 - 我尝试将 .arm 后缀添加到我的 C 源文件中,将 foo.c 更改为 foo.c.arm,但即使这样也没有解决问题。任何帮助是极大的赞赏。这是我现在在我的 Android.mk 文件中所做的事情:
这是错误的更新版本。它只是将单词“thumb”更改为“arm”
嘿,我做了更多的研究,发现了这个关于我的问题的链接。我按照页面中的说明更新了我的 Android.mk 文件LOCAL_CFLAGS := -mcpu=cortex-a8
。问题并没有消失,但我收到了一条信息性消息,指出:warning: switch -mcpu=cortex-a8 conflicts with -march=armv5te switch [enabled by default]
所以下面建议的命令并没有真正生效。有谁知道我是否应该尝试更改 ndk-build 的默认设置以及如何更改?毕竟这是一个警告;不是错误。所以我不确定它是否需要我的配置或者我需要做其他事情。此外,现在我收到一个关于丢失唯一头文件 stdio.h 的错误,这是我以前没有得到的。这种告诉我 ndk-build 只是在该警告之后提交了构建过程。任何人都可以为此提供指导或解决方案吗?
073015 更新 - 我意识到 application.mk 和 Android.mk 之间存在差异。使用所述参数配置 applicaiton.mk 后,我能够将架构更改为 armv7-a,但我得到了同样的错误;往下看:
是否需要进行任何其他配置才能获得我想要的功能?
intel - TPM 是否也在运行时进行测量?
我读到 TPM 会测量所有关键组件,并在启动时将它们的哈希值写入其 PCR 寄存器。
TPM 是否也在运行时或这些组件运行期间进行测量?