尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
可信计算线上测试复习:PCR、EK/AK与远程证明实战拆解
简介围绕华中科技大学可信计算线上测试整理的题目与答案文档面向网络安全专业学生、可信计算课程学习者以及准备课程测验的读者用于快速定位考点、核对答题思路并完成考前自测。压缩包内仅有1个docx文件大小约558KB以问答形式编排适合在电脑或平板上直接查阅。内容覆盖可信计算理论担忧与信任链、TPM芯片与CPU连接及TSS软件栈、MD4/MD5/SHA-1等Hash算法的性质、DES/AES/RC5/Blowfish与RSA/ElGamal/ECC的特点和应用场景并延伸到PKI与证书公私钥关系、PCR数量、TPM远程与本地报告、可迁移密钥等考点。已有331人学习下载可用于考前对照复习、课堂知识点查漏补缺以及梳理可信计算与密码学基础概念之间的关联。单文件结构轻量问题划分明确便于按主题检索和反复查阅也方便在复习时按问题逐条核对答案。1. 可信计算线上测试到底在考什么从一道远程证明题说起前阵子帮一位学弟复盘某高校的可信计算线上测试最后一道大题给了一段 quote 报文和一组 PCR 值问「验证方凭什么相信这组度量来自一台没被改过的机器」。他把「可信根、度量、存储、报告、验证」五个词背得滚瓜烂熟考场上还是一个空都填不出来。可信计算线上测试的难点从来不在名词数量而在你没法把抽象链条落到一个具体动作上PCR 是谁写的、EK 和 AK 谁签谁、nonce 到底防的是什么。这篇笔记按「概念—实验—题型—踩坑」的顺序把可信计算线上测试的复习路径拆成能自己复现的步骤适合要应付课程测评、认证考试或者准备把 TPM/TCM 接进自己系统的同学。答案不用背能推出答案的链路只有一条。2. 把可信根讲透PCR、EK、AK 在卷子上到底怎么考可信计算线上测试里失分最集中的一块是「可信根」这一层。题目往往不直接问定义而是给你一段启动流程或者一个密钥用途让你判断哪一步破坏了信任链。要答对这类题光记住「TPM 是可信根」没用得知道可信根往下分了几层、每层负责什么、哪一层是不可度量的公理。2.1 SPT、CRTM 与 SRTM为什么第一个被执行的代码反而没人度量可信计算体系里有一条不太符合直觉的设定整条度量链的起点本身是不可被度量的。这个起点叫 CRTMCore Root of Trust for Measurement通常固化在主板固件里是上电后 CPU 执行的第一段代码。它负责度量 BIOS 的其余部分把结果写进 PCR然后把控制权交出去。因为在这段代码之前没有任何可信的代码能度量它所以它只能靠物理保护比如固件写保护、Boot Block 只读来保证完整性而不是靠密码学。以 CRTM 为根的这套机制叫 SRTMStatic Root of Trust for Measurement静态可信根。线上测试喜欢在这里设一个追问「SRTM 能不能防御对 BIOS 刷写的攻击」标准答案是部分不能——如果攻击发生在 CRTM 之前或者攻击者能改写 CRTM 本身那么后续所有度量值都是「自洽的谎言」PCR 看起来正常实际整条链已经被污染。这个缺陷催生了 DRTMDynamic Root of Trust for Measurement用 CPU 提供的 late launch 指令在任意时刻重建一个干净的度量环境不依赖固件。CPU 厂商各自的实现名字不同考题里一般只要求你说出「动态可信根不依赖静态启动路径可对抗早期固件篡改」这个结论。国内教材还会引入 TCM 和 TPCM 两个概念。TCM 是可信密码模块可以理解为采用国密算法套件的可信芯片功能定位与 TPM 类似TPCM 强调「主动度量」即先度量再执行而不是 TPM 那种「先执行再记录」的被动模式。考试里常见的混淆点是把 TPCM 的「主动」理解成「TPM 的升级版」其实两者的信任模型不同——TPM 记录事实TPCM 参与决策。2.2 用 tpm2-tools 在本地跑通一次 PCR 扩展概念讲完必须动手否则 PCR 的哈希链在脑子里永远是玄学。找一台带 TPM 2.0 的机器或者用软件模拟器装好 tpm2-tools先看当前 PCR 状态。# 读取 PCR 0-7 的 SHA256 值这是启动阶段固件写入的部分 tpm2_pcrread sha256:0,1,2,3,4,5,6,7 # 往 PCR 8 里扩展一段自定义数据模拟一次运行时的度量事件 tpm2_pcrextend 8:sha2560x9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08 # 再读一次确认 PCR 8 变成了新值 tpm2_pcrread sha256:8这段命令的关键在tpm2_pcrextend的参数格式索引:算法数据。索引必须是该算法下允许 extend 的 PCR数据要给十六进制串。扩展后的新值不是简单的哈希替换而是new H(old || H(data))也就是说旧值参与了计算任何一次历史度量都无法被抹掉这正是 PCR 只能扩展不能写入的原因。自己验证一遍这个公式比背十遍定义管用import hashlib def pcr_extend(pcr_old: bytes, data: bytes) - bytes: 按 TPM 2.0 规范计算扩展后的 PCR 值H(old || H(data)) digest hashlib.sha256(data).digest() # 先对本次度量数据做哈希 return hashlib.sha256(pcr_old digest).digest() # 再与旧值拼接后哈希 # 假设 PCR 8 原值为全 0扩展一次 hello old b\x00 * 32 new pcr_extend(old, bhello) print(new.hex())跑完把输出和tpm2_pcrread sha256:8的结果对一下一致就说明公式记对了。注意两个细节拼接顺序是「旧值在前、新哈希在后」写反了结果完全不同参与拼接的是数据的哈希值不是数据原文如果直接把原文拼进去长数据会把 PCR 缓冲区撑爆规范里也是不允许的。这一步在考卷上的体现通常是给你三个 PCR 初始值和三条度量记录让你手算最终值。很多人卡在「多次扩展时用哪个作为旧值」——答案是上一次的结果链式滚下去中间任何一步算错后面全错。2.3 EK 与 AK两道最容易张冠李戴的密钥题线上测试里几乎必考 EKEndorsement Key背书密钥和 AKAttestation Key证明密钥的区别出题方式有判断题也有简答。把下面这张表记住比背定义有用得多维度EK 背书密钥AK 证明密钥生成时机TPM 出厂或首次初始化时生成使用方按需生成是否可迁移不可迁移与芯片绑定可在 TPM 间迁移取决于模板主要用途证明「这是一个真的 TPM」用于解密制造凭证对 PCR 值签名用于远程证明证书签发方芯片厂商或平台厂商由 EK 或本地 CA 签发典型命令tpm2_createektpm2_createak实际建一次就清楚了# 创建 EK输出上下文文件和公钥 tpm2_createek -c ek.ctx -G rsa -u ek.pub # 基于 EK 创建 AK指定签名算法为 RSASSA tpm2_createak -C ek.ctx -c ak.ctx -G rsa -gs rsassa -u ak.pub -n ak.name-C指定用来保护新密钥的父对象AK 以 EK 为父-G是密钥类型-gs是签名方案-n输出密钥名name这个名字是公钥区域的哈希后续做 quote 校验时会用到。参数写错时最常见的报错是父对象句柄无效原因多半是ek.ctx没有先加载进 TPM。考题常在这里埋一个陷阱「EK 能不能直接对 PCR 签名完成远程证明」答案是技术上可以但规范不建议——EK 是受限密钥主要职责是解密制造凭证以证明身份长期私钥暴露在签名操作里会扩大攻击面正确做法是用 EK 签发的 AK 证书建立信任再由 AK 签署 quote。这个「职责分离」的思路是简答题的得分核心。3. 可信启动与远程证明把度量、存储、报告、验证四步拆成能跑的命令可信计算线上测试的第二大失分区是远程证明。题目往往给一段报文问「验证方能不能通过」「失败原因是什么」。要答稳必须知道 PCR 里装的是什么、quote 报文的每个字段来自哪里、验证方按顺序检查哪几项。这一章按启动度量的顺序往下走。3.1 启动链上的度量点与 PCR 分配表可信启动不是一次性把整个系统哈希一遍而是沿着控制权转移的顺序逐段度量。每一段的度量结果进入约定的 PCR最后聚合成一组「平台状态快照」。行业里通用的分配约定大致如下PCR 索引度量对象说明0固件代码CRTM 与 BIOS/UEFI 主体1固件配置固件的配置项与策略2扩展 ROM 代码显卡、网卡等选件的固件3扩展 ROM 配置选件的配置数据4引导管理器引导加载程序及其配置5分区表GPT/MBR 结构6唤醒事件电源状态切换相关事件7安全启动策略平台安全启动的开关与密钥8-15操作系统内核、initramfs、启动参数等23应用层用户态完整性度量如 IMA这张表不需要死记但要理解分配逻辑索引越小度量发生得越早可信级别越高。考卷上如果问「内核被篡改最可能反映在哪个 PCR」答案落在 8-15 区间如果问「改了引导参数」通常落在 PCR 8 或 PCR 9取决于具体实现。需要提醒的是不同平台的具体分配可能有差异答题时如果题目给了平台说明一定以题目为准。我见过不少人拿着通用表硬套结果在一个明确写了「该平台将内核命令行度量到 PCR 12」的题上翻车。3.2 远程证明的最小闭环从 quote 请求到验签远程证明的完整流程可以压缩成四步验证方发 nonce证明方用 AK 对「PCR 值 nonce」签名证明方把 quote 报文、签名、PCR 值、AK 证书一起发回验证方验签、比对 PCR 与预期基线、检查 nonce 是否为自己发出的那一个。落到命令上# 证明方生成 quote-q 是验证方给的随机数-l 指定要证明的 PCR 集合 tpm2_quote -c ak.ctx -l sha256:0,1,2,3,4,5,6,7 \ -q a1b2c3d4e5f6 \ -m quote.msg -s quote.sig -o pcr.bin # 验证方用 AK 公钥校验签名并把报文里的 PCR 值与本地 pcr.bin 比对 tpm2_checkquote -u ak.pub -m quote.msg -s quote.sig \ -f pcr.bin -q a1b2c3d4e5f6参数含义值得逐条拆开-c是已加载的 AK 上下文-l决定这次证明覆盖哪些 PCR覆盖范围越大报文越大验证方负担越重-q是防重放的随机数-m输出带 PCR 摘要的报文-s输出签名-o输出被签名的 PCR 原始值。验证端的-f必须喂入同一份 PCR 值否则比对一定失败。这里的设计意图是签名只保证「这些 PCR 值确实是某把 AK 签的」不保证「这些值是对的」。所以完整验证必须包含两件事——密码学校验签名有效和策略校验PCR 值等于预期基线。很多简答题就是考这一点只验签不比对基线等于什么都没验。3.3 验签失败的四个高频原因线上测试里的故障分析题八成围绕验签失败。按排查顺序列一下真实环境里最常遇到的四种情况。第一是 nonce 不一致。验证方每次挑战都生成新随机数证明方如果复用了上一次的 quote 报文nonce 对不上验签直接失败。这类攻击叫重放nonce 就是它的解药答题时要把「新鲜性」这个词写出来。第二是 AK 证书链断了。验证方拿到 AK 公钥后要确认这把 AK 确实由某个可信 EK 签发、该 EK 又有厂商证书。如果只拿公钥验签、不验证书中间人完全可以自己造一对密钥签一份漂亮的 quote 发过来。第三是 PCR 索引不匹配。证明方按sha256:0-7出证验证方却拿sha256:0-9的基线去比长度都对不上。这类错误在联调阶段特别常见本质是双方对「证明范围」没有事先约定。第四是算法套件不一致。TPM 支持 SHA1、SHA256、SM3 等多种摘要如果证明方用 SHA256 扩展、验证方按 SHA1 读 PCR值永远不会相等。国内环境里还可能遇到国密算法与通用算法混用的情况配置前必须对齐。4. 线上测试的题型拆解单选、判断、简答各自的失分点知识点铺完得回到卷面。可信计算线上测试的题型通常比较固定但每一类都有特定的坑。这一章按题型讲答法重点不是给答案而是给「怎么推出答案」的路径。4.1 概念辨析题用一张对照表把易混项钉死选择题和判断题的大头是概念辨析。下面这张表覆盖了历年高频的六组对比建议自己默写一遍再对照易混项核心区别常见错误说法度量与证明度量是本地计算并记录哈希证明是把记录远程报告出去「度量就是把 PCR 发给服务器」密封与绑定密封绑定平台状态PCR绑定只绑定密钥层级「密封的数据换个平台也能解」SRTM 与 DRTM前者依赖静态启动路径后者用 late launch 重建「DRTM 就是更快的 SRTM」TPM 与 TCM算法套件不同信任模型基本一致「TCM 是 TPM 的国产替代品功能完全等价」被动度量与主动度量先记录后执行还是先检查再执行「主动度量就是度量得更快」EK 与 AK身份密钥与证明密钥职责分离「EK 可以直接签 quote」辨析题的通用打法先找题干里的动作词——是「记录」「签名」还是「解密」动作定了对应的密钥和机制基本就定了。很多题干的迷惑性来自把两个动作揉在一句话里拆开看就清楚了。4.2 计算与流程题手推一遍哈希链计算题一般考 PCR 扩展或者度量链的完整性判断。给一道典型题的解法假设 PCR 0 初值为全零依次扩展数据 A 和 B求最终值。手推思路是分两步第一步算H(0 || H(A))第二步拿这个结果当旧值算H(第一步结果 || H(B))。考场上没有计算器做 SHA256题目通常会给出中间哈希值你只需要写对拼接顺序。流程题则是给一段启动过程让你排序或指出缺失环节。答题模板是「固件→引导管理器→内核→应用」每一段问自己三个问题谁度量它、结果进哪个 PCR、谁来验证。三个问题答全流程题基本不会丢分。还有一种变形题给一张 PCR 前后对比表问「哪一段被篡改了」。判断依据是找第一个出现差异的 PCR 索引差异点之前的部分可信差异点之后全部不可信——因为信任链是逐级传递的前一级被污染后一级的度量值再正常也没有意义。这个「从最小索引开始找」的原则是流程题的核心。4.3 简答题按「对象—动作—证据」三段式写简答题最容易犯的错是写成一锅粥把定义、流程、意义混在一起阅卷人找不到得分点。我的习惯是强制三段式。第一段写对象这道题涉及哪个组件、哪个密钥、哪条链。第二段写动作它对什么做了什么操作输入输出分别是什么。第三段写证据做完之后留下什么可验证的痕迹谁来验证。拿「简述远程证明过程」举例。对象段写「证明方持有 AK验证方持有 AK 公钥与 PCR 基线」动作段写「验证方发 nonce证明方用 AK 对 PCR 与 nonce 签名并回传」证据段写「验证方验签并比对基线两者同时通过才判定平台可信」。三段各两三句话得分点全在里面而且不容易漏。需要强调的是简答题里「为什么」比「是什么」值钱。同样是写 nonce写「加随机数防重放」比写「加一个随机数」多拿分因为前者说明了设计意图。4.4 判断题的陷阱句式判断题的套路很固定看到下面几种句式先警惕出现「只要……就……」大概率错因为可信计算的每个环节都要求多重条件同时满足出现「完全」「彻底」「绝对」大概率错安全领域很少有绝对出现「先执行再度量」描述主动度量错顺序反了出现「PCR 可以写入任意值」错只能扩展。反过来出现「依赖」「假设」「在……前提下」这类限定词的句子正确率反而高因为它们符合可信计算「信任是有条件传递」的基本设定。5. 备考路上的四个翻车现场从现象倒推原因这一章是我自己踩过、也见别人踩过的坑按「现象→原因→解决」写。可信计算这门的坑有个共同特点概念听起来都对一到具体场景就错位。5.1 现象PCR 编号背得滚瓜烂熟题目一换平台就全错原因在于把通用分配表当成了标准。PCR 0-7 的语义在 PC 客户端规范里有建议值但具体平台完全可以在合规范围内调整尤其是操作系统控制的 8-15 区间不同发行版、不同引导方案的分配差异很大。题目如果给了平台说明通用表就是干扰项。解决办法是养成「先读题干里的平台约定」的习惯。做题时先把题目给的映射关系抄在草稿纸上再往里套别急着调用记忆。复习阶段可以把通用表当理解框架但答题时必须以题为准。5.2 现象远程证明题写「验签通过即平台可信」被判全错原因是没有区分密码学有效性和策略符合性。签名通过只证明报文没被篡改、确实由持有 AK 私钥的一方发出但完全可能存在「AK 合法、PCR 值异常」的情况——机器被入侵后重新度量签名照样有效。验证方必须拿 PCR 值和预期基线逐项比对这一步才是「可信」判定的实质。解决办法是在答题时强制写出两个检查项并说明两者缺一不可。同时补一句 AK 证书链的验证三层都写到这道题基本满分。5.3 现象把 EK 当成通用签名密钥实验里怎么都签不出来原因是对受限密钥的理解不到位。EK 在多数实现里是 restricted 密钥只能做有限的解密操作如激活凭证不能任意签名即使某些配置下允许签名规范也明确不建议。实验里用 EK 直接 quote会得到「密钥属性不允许该操作」一类的错误。解决办法是严格按职责分工EK 只负责身份证明和签发 AK 证书AK 负责所有证明签名。建密钥时把模板参数看一遍-G、-gs、属性位各管什么心里有数就不会乱用。5.4 现象模拟器上跑通的命令换到实机全部报权限错原因是模拟器通常以单用户、全权限运行而实机上的 TPM 资源有层级和授权限制。owner 层级、 endorsement 层级、lockout 层级各自的权限边界不同某些操作需要先取授权会话某些 PCR 在特定 locality 下才允许扩展。模拟器把这些都简化掉了所以「本地能跑」不等于「实机能跑」。解决办法是养成看返回码的习惯。TPM 的错误码会明确告诉你是授权失败、句柄无效还是属性不允许对照规范查一下比盲试快得多。实机调试前先用tpm2_getcap把能力和属性查一遍能省掉大量返工。6. 从背题到讲得清用一张自检表把整条链串起来复习到后期我判断自己有没有真懂不用看刷了多少题而是看能不能不看资料把下面这张表填满。填不出来的格子就是还没打通的地方。自检问题能答上来意味着第一个被执行的代码由谁度量理解了 CRTM 的不可度量公理PCR 为什么只能扩展不能写理解了哈希链的抗抵赖性EK 和 AK 分别解决什么问题理解了职责分离的设计动机quote 报文里 nonce 防的是什么理解了新鲜性与重放攻击验签通过为什么还不等于可信理解了密码学校验与策略校验的分工SRTM 的盲区在哪、DRTM 怎么补理解了静态与动态信任根的边界填表的过程中有个技巧每答一格强迫自己补一个具体例子。比如答「PCR 只能扩展」就顺手写出H(old || H(data))的公式并说清楚拼接顺序错了会怎样。能落到公式和命令上的理解才是考场上写得出来的理解。再往前一步是能给别人讲。我给自己定的标准是拿一张白纸从「上电第一行代码」讲到「验证方判定平台可信」中间不准跳步、不准用「然后就好了」这种话糊弄。第一次讲大概率会在 AK 证书链那里卡住卡住的地方就是下次复习的重点。这个方法听起来笨但比反复刷同一批选择题有效得多——选择题能靠排除法蒙对讲给别人听蒙不了。还有一个血泪经验别把复习资料里的答案当终点。看到一道题的答案写「因为 PCR 值匹配」要追问一句「匹配的是哪个 PCR、和谁的基线比、基线从哪来」。这三个追问答不上来说明答案只是被记住没有被理解。线上测试的题库会变但追问的方向不会变。最后留一个我自己的习惯考前一周不再看新题只把第 3 章那四条命令在模拟器上重跑一遍跑完对着输出把每个参数念一遍。手上有过一遍的东西考场上回忆起来的概率高得多。这套方法不神秘就是把抽象概念反复按回具体的命令和公式上直到它们变成条件反射。希望帮到你。本文还有配套的精品资源点击获取
RELATED

相关推荐

MySQL数据库性能优化实战:索引设计与查询调优

MySQL数据库性能优化实战:索引设计与查询调优

1. MySQL优化入门:从零开始掌握数据库性能调优刚接触MySQL时,我们往往只关注功能实现而忽略性能问题。直到某天发现简单的查询需要几秒才能返回结果,页面加载变得缓慢,才意识到优化的重要性。作为从业十年的数据库工程师&#xff…

📅 2026/10/28 4:29:23
NF5280M5 V2.8装机指南:BMC带外管理、RAID配置与固件升级避坑

NF5280M5 V2.8装机指南:BMC带外管理、RAID配置与固件升级避坑

简介:浪潮Inspur NF5280M5服务器用户手册(V2.8,2024年7月发布)面向技术支持工程师与产品维护工程师,提供服务器规格、硬件操作、故障诊断及维护工作的参考依据,适合具备服务器基础的专业人员用于日常运维、…

📅 2026/10/28 4:29:23
ODI 12cR1安装避坑:FMW基础设施先行与RCU建库建域

ODI 12cR1安装避坑:FMW基础设施先行与RCU建库建域

简介:面向数据集成工程师与中间件运维人员的ODI 12cR1安装实操文档,聚焦Oracle Data Integrator 12.1.3.0.0在JEE企业模式下的部署路径。内容从安装包获取与前置条件入手,讲清先装Oracle Fusion Middleware Infrastructure、再装ODI的先后顺序…

📅 2026/10/28 4:29:23
MORE NEWS

更多资讯

📰

FrameFetch:开源视频剧本对齐与AI分析报告工具

1. 为什么我要做 FrameFetch 这个开源工具做视频内容这行的朋友应该都有体会:一条片子剪完,最耗时间的往往不是剪辑本身,而是反复回看素材、对剧本、写分析报告。尤其是团队协作的时候,导演、编剧、剪辑、运营各看各的&#xff0c…

📰

大数据存储优化:数据压缩技术原理与实践

1. 大数据时代的数据存储挑战在当今这个数据爆炸的时代,企业每天产生的数据量正以惊人的速度增长。根据IDC的预测,到2025年全球数据总量将达到175ZB。面对如此庞大的数据规模,传统的存储方式已经显得力不从心。作为一名从业多年的数据工程师&…

📰

Agent Skills深度解析:技能库如何让LLM Agent稳定执行复杂任务

过去半年,GitHub上以"agent-skills"命名的仓库数量涨得飞快,各家Agent平台也纷纷上线所谓的"技能市场"。我一开始以为这只是RAG或者提示词工程的又一次换皮,直到自己动手把一套技能库塞进生产环境的Agent里,才…

📰

无人机集群分布式监控系统设计与算法实现

1. 项目背景与核心价值在安防监控和灾害应急领域,传统固定摄像头系统存在两大痛点:一是监控盲区难以覆盖,二是响应速度受限于人工调度。我们团队开发的这套无人机搭载相机网络的分布式监控方案,正是为了解决这些行业难题。这个系统…

📰

Docker部署Jitsi-Meet视频会议系统全指南

1. 为什么选择Docker部署Jitsi-Meet?Jitsi-Meet作为一款开源的视频会议解决方案,近年来因其易用性和隐私保护特性广受青睐。而Docker容器化部署方式,则彻底改变了传统服务部署的繁琐流程。我最初接触这个组合是在2020年远程办公爆发期&#x…

📰

AI工具如何降低跨境电商Ozon运营门槛

1. 项目概述:AI如何赋能跨境电商新手"0经验也能做好Ozon运营"这个标题直击跨境电商行业的核心痛点——平台运营门槛高、学习曲线陡峭。作为俄罗斯最大的电商平台之一,Ozon近年来吸引了大量中国卖家入驻,但语言障碍、平台规则复杂、…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬