想象一家高档银行的 VIP 保险柜业务:你人在外地,却想向客户证明“我的商业模型真的运行在一台谁也动不了手脚的保险柜里”。本地说一声“我很安全”当然没人信,于是银行在每台保险柜出厂时,在柜门内侧装了一位持证的“验信员”。这位验信员由保险柜厂商亲自授权、密钥烧录在硬件里、任何人都无法篡改它的判断。当你要向远方的客户证明可信度时,只需要请验信员当场清点柜内环境(跑了哪些程序、加载了什么配置),把结果记成一份“体检报告”,再盖上只有它才有的官方钢印,交给客户查验。这套“隔着玻璃门请验信员开证明”的机制,就是 TEE 可信执行环境的远程认证(Remote Attestation)——你的 TEE 到底可不可信,不是自己说了算,而是由硬件内这颗不可伪造的“信任种子”替你背书。
远程认证是隐私计算、联邦学习、多方安全计算等场景中建立跨设备信任的基石。掌握它能让你在真实 AI 工程中设计出“先验明正身、再传递数据”的安全架构,是从事可信 AI 和隐私保护方向的核心技能之一。
可视化演示
\u53ef\u89c6\u5316\u5c55\u793aTEE\u53ef\u4fe1\u6267\u884c\u73af\u5883\u7684\u8fdc\u7a0b\u8ba4\u8bc1\u6d41\u7a0b\uff0c\u5305\u62ec\u4fe1\u4efb\u94fe\u9a8c\u8bc1\u3001\u6311\u6218\u54cd\u5e94\u4ea4\u4e92\u4e0e\u6570\u636e\u5bc6\u5c01\u673a\u5236\uff0c\u4ea4\u4e92\u5207\u6362\u89c2\u5bdf\u786c\u4ef6\u4fe1\u4efb\u6839\u5230\u8ba4\u8bc1\u62a5\u544a\u7684\u5b8c\u6574\u4fe1\u4efb\u94fe\u8def\u3002
本节配有交互动效(进入视口后自动加载,约 3KB)。
TEE\u4fe1\u4efb\u94fe\u9a8c\u8bc1\u6d41\u7a0b \u786c\u4ef6\u4fe1\u4efb\u6839\u4e0d\u53ef\u5bfc\u51fa\uff0c\u4e3a\u6574\u4e2a\u4fe1\u4efb\u94fe\u63d0\u4f9b\u6839\u57fa\u7840 PCR\u5ea6\u91cf\u503c\u901a\u8fc7\u6269\u5c55\u64cd\u4f5c\u7d2f\u52a0\u8bb0\u5f55\u73af\u5883\u72b6\u6001 Root \u2192 PCR \u2192 Quote \u2192 Verify \u70b9\u51fb\u5207\u6362\u67e5\u770b\u6311\u6218\u54cd\u5e94\u6d41\u7a0b
认证概述
你要向远在千里之外的合作方证明:“我的模型真的跑在一台保险柜里。”直接喊话没人信,隔着网络也无法肉眼检查,远程认证(Remote Attestation)就是为此诞生的——让保险柜里那位厂商派驻的“验信员”出具一份盖着硬件钢印的证明。这份证明无法被软件伪造,因为验信员的密钥从出厂起就烧录在芯片里,任何人(包括管理员、操作系统)都拿不到、改不了。
本地认证和远程认证的区别,就像在自家门口对着监控比个“OK“手势,和向异地的审计机构递交一份带公证章的书面材料。本地认证信任的是”操作系统说我安全”,远程认证却要依赖一个独立于操作系统的硬件权威——信任根(Root of Trust)。它是整条信任链条的起点,相当于验信员胸前的国家认证执照。
技术上讲,远程认证由三个角色完成:证明方(Attester)是运行在 TEE 里的程序,验证方(Verifier)是想要确认环境可信的一方,而信任根则提供最底层的签名能力。三者配合,就把“我安全”这句空话,变成一份可以远程校验的密码学证据。保险柜的生意逻辑很清晰:柜子是否可信,最终要回到厂商背书的验信员;TEE 是否可信,最终也要回到芯片内置的信任根。
挑战响应机制
客户提出质疑:“万一你拿着上周的旧证明来糊弄我?”验信员的应对之道是——每次开证明前,让客户递进来一张写着随机暗号的纸条,只有把这张纸条原样誊写到新证明上,证明才有效。这张随机纸条,就是挑战值 nonce。它是验证方每次新生成的一次性随机数,谁也猜不到、也复现不了。
为什么需要 nonce?假设没有它,攻击者可以录下一段合法的认证过程,之后原封不动地重放给验证方,让对方误以为环境仍然可信——这就是重放攻击。nonce 把每次认证“钉死”在唯一一次会话上:证明方必须把 nonce 纳入签名内容,验证方检查 nonce 与刚下发的完全一致,旧录音自然失效。这就好比电影票上印了场次和座位号,拿昨天的票进今天的场,闸机一眼就能识破。
在真实交互中,验证方生成 nonce 后发给证明方,证明方把它与度量结果一起签名,生成 Quote 返回。Quote 的基本结构如下:
响应当中的随机纸条设计,让每一次认证都独一无二。验证方只需核对纸条编号,就能判断眼前这套证明是不是“过期录像”——这就是挑战响应机制最精妙的一点:用一次性的随机性,买断永久性的防重放保障。
- PCR 字段Quote 中携带平台度量结果,代表保险柜当前环境的体检摘要。
- nonce 字段把验证方刚下发的随机挑战值原样写入 Quote,证明这次回应是“新鲜”的。
- 拼接后哈希将 PCR 与 nonce 拼接成一个字节串再求哈希,任何一位被改动都会使结果完全变化。
- AIK 签名用身份私钥对拼接哈希签名,象征验信员盖上不可伪造的钢印。
- 封装成 Quote把度量结果、挑战值和签名打包,作为最终回应交给验证方。
平台身份密钥
保险柜里其实藏着两把钥匙:一把是出厂时打在柜体上的“户口本”——背书密钥 EK(Endorsement Key);另一把是验信员日常开证明用的“工作证”——身份认证密钥 AIK(Attestation Identity Key)。EK 是在硬件出厂时由厂商植入的,与这块芯片一一绑定,全世界仅此一份,它的作用只有一个:向外界证明“我是正版硬件,不是仿冒品”。
但如果每次认证都直接掏户口本,问题就来了:EK 是唯一的,任何服务商拿到它都能把你在不同平台的足迹串起来,形成跨服务追踪,隐私荡然无存。所以 TEE 的聪明设计是:用 EK 做一次性的“验明正身”后,立刻换发一张 AIK 工作证。日常所有认证都由 AIK 出面签名,EK 则深藏柜底。AIK 可以定期轮换、随会话注销,就像保安频繁更换工作证,证件上不再暴露身份证号,自然难以被追踪。
密钥层次结构可以用一句话概括:信任根在底层,EK 在中层,AIK 在上层。上层密钥由下层密钥“担保签发”,形成“根 → EK → AIK”的授权链。轮换管理则要求 AIK 定期更新,并同步注销旧证书,防止长期使用同一张工作证被暴力破解或侧信道窃取。有了这套“户口本换工作证”的机制,TEE 既保住了硬件的真实身份,又保住了用户的匿名性——安全与隐私,在一对密钥的分工中达成了默契。
度量与签名
验信员开证明前,必须先“体检”:把柜内运行的程序、加载的配置逐项测量、记录成一份体检报告。这份报告在 TEE 里叫度量值——对代码和数据做哈希计算,得到一串固定长度的摘要。哈希就像体检单上的指标:同一份代码必然得到同一个结果,程序哪怕被改动一个字节,摘要也会面目全非。度量值随后被写进 PCR(Platform Configuration Register,平台配置寄存器),它像一块只能追加、不能随意擦写的公告板,完整记录下从启动到当前的所有环境指纹。
体检报告有了,验信员还要把它原样誊写入证明书并盖章。TEE 对 PCR 值、nonce、时间戳等字段整体签名,生成的密文就叫 Quote。验证方收到 Quote 后要做三件事:验签、比对度量、核对挑战值。签名的意义在于锁定整个报告——任何字段被篡改,签名立刻校验失败。整套验证逻辑如下:
把“体检报告 + 钢印 + 随机暗号”三样东西拼在一起,验证方就能隔着网络完成对保险柜的全面体检。签名保证报告没被动手脚,度量保证环境没被污染,挑战值保证报告是刚出炉的——三者缺一不可,这就是 Quote 设计的完整逻辑。
\mathrm{Verify}\left( \text{sig}, \ \text{AIK}_{\mathrm{pub}} \right) \ \wedge \\left( \text{PCR} = \text{PCR}_{\mathrm{exp}} \right) \ \wedge \\left( \text{nonce} = \text{nonce}_{\mathrm{send}} \right)- 验签用 AIK 公钥解开签名,确认 Quote 确实由可信身份签发,而非伪造者炮制。
- 比对期望度量把收到的 PCR 值与验证方事先维护的可信白名单逐项比对,确认柜内环境没有被植入恶意程序。
- 核对挑战值确认 Quote 里的 nonce 与刚才下发的完全一致,排除重放旧报告的可能。
- 与运算连接三个条件必须同时满足,任何一项失败都判定认证不通过。
信任根与信任链
客户拿到证明书,心里还有最后一道坎:“这验信员的钢印,凭什么信?”验信员掏出了一串授权文件:他的公章由保险柜厂商签发,厂商的经营资质由国家监管机构认证。客户把这一串文件逐级查上去,最终落到一个自己无条件信任的“国家监管机构”——这就是信任锚。TEE 世界完全照搬了这套逻辑:验证方预先信任某个根证书(信任锚),然后沿着证书链逐级验证,直到确认手里这份 Quote 的签名者确实由可信根层层授权而来。
整条信任链可以表示为:
信任链的意义在于:验证方不需要提前认识每一台 TEE,只需要信任一个根,就能推导出对任意硬件的信任。就像你不需要认识每位在职保安,只要信任国家认证体系,就能信任所有持证上岗的人。信任锚校验是最后一道防线,如果根证书被污染,整条链会瞬间崩塌,因此它永远被存放在防篡改的硬件存储里。
- 信任锚CA 根证书被预先安装在验证方的可信存储中,作为整条链的起点,相当于国家监管机构。
- 平台证书厂商用根证书私钥为具体硬件平台签发身份证书,证明该 TEE 是正规出厂。
- AIK 证书平台私钥为 AIK 签发证书,把“工作证”与“户口本”关联起来。
- 逐级验签验证方从信任锚出发,逐级校验每一层签名,最终确认 Quote 签名者可信。
主流方案对比
不同厂商的“保险柜”各有各的规矩:Intel 给柜子装了专线网络,验信员的资质由 Intel 总部直接代查;ARM 的柜子分成两个世界,验信员住在独立的“安全世界”里;AMD 则把整个柜子装进虚拟机,连地板的材质都加密过。虽然风格不同,但“硬件背书 + 挑战响应 + 信任链”的核心原则完全一致。
Intel SGX 提供 Enclave 隔离环境,远程认证采用 EPID 匿名签名或 ECDSA 签名,验证时需要连接 Intel 的证明服务获取签名公钥。它适合对单机性能要求高、需要在 CPU 内跑机密计算的场景。ARM TrustZone 则把系统划分为安全世界与普通世界,TEE 运行在安全世界中,认证常由芯片厂商(如 Trustonic、高通的 QSEE)提供配套服务,适合移动设备与物联网。AMD SEV 主打虚拟机级加密,认证更关注虚拟机与宿主机的安全边界,适合云场景下的租户隔离。
选型考量可以类比挑选保险柜:SGX 像品牌名气大但需要回总部验章的款式,适合 x86 服务器生态;TrustZone 像与楼盘深度绑定的定制款式,适合移动端碎片化生态;SEV 则是为“出租保险柜”而设计的云原生款。没有绝对的好坏,关键是看你的工作负载跑在哪种硬件上、合作方是否已经建立对相应证明服务的信任。
认证实现与应用
把整套流程搬进现实,它就是一座“办证大厅”:验证方取号(下发 nonce),证明方体检(度量 PCR),验信员盖章(AIK 签名),验证方验章(验签 + 比对白名单 + 核对 nonce)。每一步都有明确的责任方和密码学保障。落实到工程中,需要额外注意三点:度量白名单必须由可信来源维护,不能随意信任任何 PCR 值;nonce 必须真随机且一次性使用;证书吊销状态要定期检查,防止已泄露的 AIK 继续被滥用。
在隐私计算领域,远程认证是多方协作的入场券。联邦学习的参与方会先互相验证对方 TEE,确认模型训练确实发生在可信环境中,再放心共享梯度;区块链预言机也会用远程认证证明计算节点没有造假。最佳实践是在认证握手完成后,再派生会话密钥传输数据——认证只负责“验明正身”,具体的数据加密则交给后续协商的会话密钥,职责分离,安全边界才清晰。
回到保险柜的比喻:一次完整的远程认证,就是客户取号、验信员体检、盖章、客户验章的全流程。只要四步都严谨执行,远方那台看不见的保险柜,就能像摆在眼前一样让你放心。这份“看不见的信任”,正是 TEE 远程认证在 AI 与数据行业里最宝贵的价值。
AI 应用场景
联邦学习中的节点可信认证
阶段:模型训练前的安全握手阶段
解决的问题:传统联邦学习中,参与方只能依赖“平台声称”来判断对方环境安全,恶意节点可以在一台被攻破的机器上运行训练脚本,悄悄窃取或污染梯度。借助 TEE 远程认证,每个参与方在共享梯度前先完成 Quote 验证,确认对方代码确实运行在受保护的 Enclave 中,再建立加密信道。
具体案例:某医疗影像联盟的 5 家医院做联邦建模,每家医院部署 SGX Enclave 运行训练脚本。聚合服务器启动时对每个节点发起远程认证,比对 PCR 白名单,确认没有注入恶意插件后才开启本轮训练。整个过程如同逐一查验各家保险柜的验信员资质,杜绝“带病上岗”的节点。
可信 AI 推理服务证明
阶段:模型推理服务的部署与交付阶段
解决的问题:企业向客户提供 AI 推理 API,客户担心服务方偷偷记录输入数据或更换模型版本。通过远程认证,服务方可以出具一份包含模型指纹的 Quote,客户在线验证后即可确认“推理的确发生在可信硬件里,且模型哈希与约定一致”,无需实地考察机房。
具体案例:一家金融风控公司采购第三方反欺诈模型 API,合同中要求模型运行在 AMD SEV 加密虚拟机中。服务方在每次密钥协商前提供 SEV 的远程认证报告,客户验证报告中的度量值与合同中约定的镜像哈希后,才下发真实业务数据。相当于客户隔着网络请对方柜子里的验信员,确认柜中装的确是约定好的那一套模型。
Python 演示
#!/usr/bin/env python3import hashlibimport hmacimport os class Attester: """模拟 TEE 中的证明方:持有信任根密钥,只能输出环境度量结果""" def __init__(self, code_fingerprint: str, root_secret: bytes) -> None: self.code_fingerprint = code_fingerprint self.aik = root_secret # 由信任根派生的 AIK 密钥种子(演示简化) def measure(self) -> str: return hashlib.sha256(self.code_fingerprint.encode()).hexdigest() def attest(self, nonce: str) -> dict: pcr = self.measure() blob = f"{pcr}|{nonce}" signature = hmac.new(self.aik, blob.encode(), hashlib.sha256).hexdigest() return {"pcr": pcr, "nonce": nonce, "signature": signature} class Verifier: """模拟验证方:校验签名、比对期望度量并核对挑战值""" def __init__(self, expected_pcr: str, aik_pub: bytes) -> None: self.expected_pcr = expected_pcr self.aik_pub = aik_pub def verify(self, quote: dict) -> bool: expected_blob = f"{self.expected_pcr}|{quote['nonce']}" expect = hmac.new(self.aik_pub, expected_blob.encode(), hashlib.sha256).hexdigest() return hmac.compare_digest(expect, quote["signature"]) and quote["pcr"] == self.expected_pcr def main() -> None: code = b"def load_model(): return 'pretrained-bert'" root_secret = b"tee-simulator-root-key" attester = Attester(code.decode(), root_secret) verifier = Verifier( expected_pcr=hashlib.sha256(code).hexdigest(), aik_pub=root_secret, ) nonce = os.urandom(16).hex() quote = attester.attest(nonce) print("Quote:", quote) print("验证通过:", verifier.verify(quote)) if __name__ == "__main__": main()
self.aik = root_secret用信任根派生出的密钥充当 AIK,真实 TEE 中它由硬件安全生成、不可导出。return hashlib.sha256(self.code_fingerprint.encode()).hexdigest()对代码环境做哈希度量,得到 PCR 摘要,模拟验信员的“体检报告”。blob = f"{pcr}|{nonce}"把度量和挑战值拼接到一起,确保 nonce 参与后续签名,防止重放。signature = hmac.new(self.aik, blob.encode(), hashlib.sha256).hexdigest()用密钥对拼接结果签名,对应 Quote 中的钢印。nonce = os.urandom(16).hex()验证方每次生成全新随机挑战值,保证会话不可重放。return hmac.compare_digest(expect, quote["signature"]) and quote["pcr"] == self.expected_pcr恒时比较签名,并核对度量值,两个条件都满足才放行。
常见误区
误区我用了 TEE 又做了远程认证,黑客就完全看不到我代码和数据了,这比任何加密都强。
正解TEE 保证的是“可信执行”——代码在隔离环境里按预期运行,远程认证证明这份“预期”确实成立。但隔离并不等于免疫所有攻击:侧信道攻击(如缓存时序分析)仍可能泄露部分信息,物理攻击也可能威胁硬件本身。比喻理解:保险柜保证贵重物品在指定柜内,但不代表小偷没有观察钥匙孔之类的技巧。远程认证回答的是“环境是否可信”,而不是“数据绝对不可见”。
为何常见:厂商宣传时常强调“硬件级隔离”,让初学者误以为这是绝对安全边界,忽略了攻击模型中的侧信道与供应链风险。
误区TEE 已经在本地保护我了,为什么还要和外部服务做一套认证流程?多此一举。
正解本地的 TEE 只能向本地内核或操作系统证明自己可信;但一旦涉及跨机器、跨组织的协作,对方无法仅凭“你说你跑在 TEE 里”就信任你。远程认证把 TEE 的硬件背书通过网络传递出去,解决的是“他人如何相信你”的问题。就像保险柜里的验信员,他存在的意义不是给自己看,而是给远方客户开证明。
为何常见:把“隔离执行”与“信任传递”混为一谈,忽略了认证本质上是分布式安全中的通信协议问题。
误区EK 是硬件唯一的出生证明,那就每次认证都让验证方检查 EK,最直接也最保险。
正解EK 与硬件芯片唯一绑定,若每次都直接暴露,任何服务商都能凭它追踪同一台设备的所有行为,跨平台形成用户画像,严重侵害隐私。正确做法是用 EK 完成一次性验明正身后,派生 AIK 用于日常认证,EK 深藏硬件内不再出境。这对应现实中“户口本出示一次换取工作证”的流程。
为何常见:直觉上觉得“唯一凭证最可靠”,忽略了唯一性同时也是追踪性的根源,隐私与安全需要平衡。
误区验证方收到 Quote,验签通过后直接放行,不用再看别的了。
正解验签只能证明 Quote 出自某个可信 TEE,但若 PCR 白名单配置错误、nonce 未核对,攻击者仍可通过重放旧 Quote 或引导到错误度量值来绕过认证。钢印是真的不等于体检合格,验章之后还要逐项核对体检指标。真实实现必须同时完成验签、度量值比对、nonce 核对、证书吊销检查四件事。
为何常见:把“签名有效”误当作“内容可信”,忽略了签名只保证来源与完整性,不保证内容的正确性。
误区用了 Intel SGX 的认证服务,Intel 就能看到或者参与我的业务计算。
正解Intel 只负责签发和验证 Enclave 的身份签名,相当于提供验信员的培训和资质认证服务,但完全不接触你的业务数据与计算逻辑。业务代码始终由你自己的 Enclave 执行,Intel 无从得知你在算什么。远程认证中 Intel 扮演的是“公证处”,而不是“业务合伙人”。
为何常见:混淆了“认证基础设施提供方”与“算法执行方”两个角色,放大了对云端厂商的隐私担忧。
面试题
Q1. TEE 远程认证要解决的核心问题是什么?
- A.提高模型推理的运算速度
- B.向远程验证方证明环境可信← 正确答案
- C.对数据库进行列级加密
- D.替代传统的 HTTPS 协议
答案:B。远程认证的核心是跨网络传递可信度,让验证方确认对方代码确实运行在可信执行环境里。选项 B 准确描述了这一目标。A 是性能问题,C 是数据加密问题,D 是传输层协议问题,都与“建立硬件级信任”无关。
Q2. 挑战响应机制中的 nonce 主要作用是什么?
- A.防止攻击者重放旧认证记录← 正确答案
- B.压缩 Quote 传输的数据体积
- C.代替 AIK 完成全部签名工作
- D.加密证明方本地的磁盘文件
答案:A。nonce 是一次性随机挑战值,证明方必须把它纳入签名内容,验证方再核对一致性,旧认证记录因 nonce 不匹配而失效。它并不承担压缩、签名主体或磁盘加密的功能,因此 A 正确。
Q3. 关于 EK 与 AIK 的关系,下列说法正确的是?
- A.EK 用于日常认证,AIK 用于出厂证明
- B.EK 与 AIK 之间彼此毫无关联
- C.AIK 依托 EK 派生,便于匿名认证← 正确答案
- D.EK 可以随意明文对外公开
答案:C。EK 是出厂背书密钥,证明硬件真实身份;AIK 由 EK 派生并用于日常认证,避免暴露唯一硬件 ID 而被追踪。C 正确。A 把两者职责颠倒了,B 忽略了派生关系,D 直接公开 EK 会带来跨服务追踪风险。
Q4. PCR 寄存器中存储的是什么内容?
- A.代码运行产生的用户业务数据
- B.对代码环境求出的度量哈希值← 正确答案
- C.完整的操作系统底层镜像文件
- D.用户明文的身份凭证与密码
答案:B。PCR 存储的是对启动代码、加载模块等环境要素计算出的哈希摘要,而不是完整镜像或业务数据。它像一张体检指标表,只记录“环境指纹”,不存储原始文件,因此 B 正确。
Q5. 验证方收到 Quote 后,第一步应该做什么?
- A.直接信任该环境并立即放行
- B.验证 Quote 签名的真实有效性← 正确答案
- C.立刻上传自己的私钥给对方
- D.跳过 nonce 直接记录到日志
答案:B。第一步必须验签,确认 Quote 确实由可信 AIK 签发,再继续比对 PCR 和 nonce。A 跳过验证等于形同虚设,C 泄露验证方私钥是严重安全错误,D 忽略 nonce 会使防重放机制失效。
Q6. “CA→平台→AIK”这条信任链的正确理解是什么?
- A.信任从本地平台逐级传导到外部 CA
- B.信任从根证书逐级传递到身份密钥← 正确答案
- C.AIK 是整条链中最顶级的信任根
- D.平台证书与 CA 证书相互独立签发
答案:B。信任链的方向是从预先信任的 CA 根出发,逐级签名直到 AIK。CA 是起点和信任锚,不是平台或 AIK。因此 B 正确,A 方向颠倒,C 混淆层级,D 忽略了平台证书必须由 CA 签发的关系。
Q7. 关于 Intel SGX 远程认证,下列说法正确的是?
- A.必须完全依靠本地内核完成验证
- B.依赖 Intel 证明服务来校验身份签名← 正确答案
- C.只需验证方自己生成任意公钥即可
- D.认证过程不需要任何度量值参与
答案:B。SGX 的 EPID/ECDSA 认证需要连接 Intel 的证明服务(如 PCCS/Attestation Service)获取或校验签名相关参数,才能确认 Enclave 身份。B 正确。A 忽略外部服务依赖,C 中的任意公钥无法与硬件绑定,D 忽略了 Quote 必须包含度量值。
Q8. 本地认证与远程认证的最大差异是什么?
- A.远程认证强调跨设备建立可信连接← 正确答案
- B.本地认证需要全程网络传输数据
- C.两种认证方式在效果上完全等价
- D.远程认证无需硬件参与即可完成
答案:A。本地认证在与本机内核交互时使用,远程认证则跨越设备边界,向外部验证方证明 TEE 可信。A 正确。B 说反了,C 忽略了远程认证的密码学与网络交互复杂度,D 违背了远程认证依赖硬件信任根的基本前提。
Q9. 一份完整的 Quote 数据通常包含哪些内容?
- A.平台环境的 PCR 度量哈希值← 正确答案
- B.验证方下发的随机挑战 nonce← 正确答案
- C.证明方用户的全部历史交易账单
- D.AIK 私钥生成的签名结果字段← 正确答案
答案:ABD。Quote 是“度量结果 + 挑战值 + 签名”的组合体:PCR 记录环境指纹,nonce 绑定本次会话,签名保证整体不可篡改。C 属于业务数据,与 Quote 约定的字段毫无关系,因此正确答案是 A、B、D。
Q10. 验证方在验证 Quote 时需要检查哪些项目?
- A.签名字段是否由可信 AIK 签发← 正确答案
- B.度量哈希是否与期望值完全一致← 正确答案
- C.nonce 是否与最近下发的数值匹配← 正确答案
- D.验签通过后无需再查证书链状态
答案:ABC。正确的验证流程是“验签 + 比对 PCR + 核对 nonce + 检查证书吊销状态”四件套。A、B、C 都是必需步骤。D 是典型误区:验签通过只代表签名有效,证书是否被吊销仍需核实,否则已泄露的 AIK 仍可能被继续使用。