【WPC】Qi-v1.3.3-authentication 文章目录前言一、概述一、密码学标准参考二、密码算法要求三、安全总览四、对现有生态的影响五、证书吊销支持二、证书与私钥一、证书链二、证书1、文本格式2、证书属性与扩展项OID 对象标识符3、制造商CA证书4、产品单元证书5、根CA证书6、附加属性和扩展7、约束三、证书链槽位四、发射端私钥五、其他私钥三、认证协议一、摘要查询二、证书链读取三、认证挑战四、错误与告警四、认证消息一、认证消息头二、认证请求1、GET_DIGESTS2、GET_CERTIFICATE3、CHALLENGE三、认证响应1、DIGESTS2、CERTIFICATE3、CHALLENGE_AUTH4、Error五、时序要求一、接收端时序要求二、发射端时序要求六、协议流程示例一、简单流程二、带缓存的流程三、带缓存和吊销的流程四、先挑战Challenge First流程七、参考资料前言无线充电是无需物理导线连接通过电磁场隔空传递电能的技术其中Qi基于电磁感应技术使用发射端Tx线圈通高频交流电产生交变磁场为接收端Rx线圈感应磁场生成电流整流后为电池供电。本文介绍Qi-v1.3.3-authentication的内容。一、概述本规范定义一套接收端验证发射端身份的认证协议。在本规范语境中认证是具备防篡改能力的身份核验手段接收端可通过认证信任发射端完全遵循 Qi 规范工作。本 1.0 版认证协议依托 Qi Specification Communications Protocol 定义的数据传输通道收发消息。认证机制允许厂商自定义设备准入策略在实际商用场景中可提供安全保障。例如手机厂商若担心劣质充电器损坏设备、带来安全隐患可设置策略限制从未认证充电器取电。本规范设计思路与 USB 认证规范高度对齐市面上多款产品会同时兼容两套标准。除本规范外WPC 厂商协议包含认证相关法律条款与落地要求涵盖密钥安全存储、证书吊销规则。一、密码学标准参考无特殊说明时所有标准以 2018 年 1 月 1 日发布版本为准ECDSAANSI X9.62-2005NIST FIPS 186-4 第 6 章ISO/IEC 14888-3 第 6.6 节NIST P-256, secp-256r1NIST FIPS 186-4 附录 DISO/IEC 15946SEC1SEC2SHA-256SHA-256 - NIST-FIPS-180-4ISO/IEC 10118-3SP800-90ASP800-90BUSB AuthenticationX.509ITU-T X.509ISO/IEC 9594-8IETF RFC 5280二、密码算法要求本文全部密码原语安全等级为 128 位。密钥生成、认证交互均需密码学安全随机数。随机数需满足不存在复杂度低于的算法可区分其与真随机。采用 NIST SP800-90A 合规伪随机发生器、搭配 SP800-90B 标准 256 位熵源种子即可满足要求。三、安全总览认证协议安全性核心依赖私钥保护配套安全评估机制。本规范采用基于 X.509 证书的认证机制接收端可自主制定与发射端交互策略。示例接收端核验发射端未通过认证时可选择不启用宣传的全部大功率功能。接收端可选择周期性重新发起认证确认发射端未被替换。四、对现有生态的影响协议对存量设备的影响取决于厂商策略核心变量为旧版发射端兼容规则策略 1允许旧充电器全功率工作 —— 对现有生态影响极小策略 2限制 / 禁用旧充电器大功率 —— 生态改动幅度大。五、证书吊销支持若接收端实现认证功能则应当支持证书吊销机制。吊销清单一般离线更新固件升级、产线写入厂商无需在线实时维护吊销列表但接收端需频繁更新吊销清单不能仅在固件升级时刷新。带联网功能设备智能手机更新吊销清单难度低手环等无直连网络设备更新受限厂商设计时需考虑清单更新方案。备注支持可更新吊销清单意味着产品需搭载可现场改写非易失存储器。二、证书与私钥一、证书链本节要求适用于 0 号、1 号槽位存储的证书链2、3 号槽位证书规则由发射端厂商自行定义。一条完整证书链由 3 张证书组成见下表根证书Root CertificateWPC 根 CAWPC Root Certificate Authority签发的自签名证书为节省传输证书链内仅存放根证书 SHA256 哈希不携带完整根证书厂商 CA 证书Manufacturer CA Certificate由 WPC 根 CA 签发标识设备生产厂商产品单元证书Product Unit Certificate由厂商 CA 签发唯一标识单台无线充电发射设备。厂商 CA 证书中包含公钥用于校验产品单元证书签名产品单元证书携带发射端设备公钥用于认证交互校验。证书强制约束每个产品单元证书应通过使用例如产品单元的RSID号wpc-qi-rsid来标识唯一的功率发射器产品单元。每个功率发射器产品单元应拥有唯一的公钥。同一功率发射器产品单元的不同槽位中包含的产品单元证书可以包含相同的身份和公钥前提是这不会引入安全漏洞。制造商可以拥有多个制造商CA证书例如用于标识不同的生产设施或产品系列。这些制造商CA证书中的每一个应包含与唯一私钥相关的唯一公钥。注 鼓励使用多个制造商CA证书以分割产品单元的数量从而限制当某个制造商CA证书被吊销时造成的连带影响吊销由该制造商CA证书签名的所有产品单元的连带影响。制造商应使用与制造商CA证书关联的私钥来签署产品单元证书。WPC根证书颁发机构应确保所有制造商CA证书包含唯一的公钥。填充在槽位0和槽位1中的证书链应使用X.509证书。Length证书链总字节数Root Certificate Hash根证书 SHA256 摘要固定 32 字节Manufacturer CA Certificate标识厂商Product Unit Certificate标识单台发射设备。二、证书所有证书必须满足采用 X.509 v3 ASN.1 标准结构ASN.1 二进制 DER 编码密码算法见下表。证书所有字段、扩展均采用大端存储厂商 CA、产品证书存在最大长度限制产品证书最大长度MaxProdCertSize厂商 CA 证书最大长度MaxManufacturerCertSize。1、文本格式X.509 证书内所有 ASN.1 文本对象目录字符串、通用名称、显示文本统一使用 UTF8String 编码任意文本字段长度不超过 64 字节不含 DER 类型、长度编码字节。2、证书属性与扩展项OID 对象标识符基本约束扩展OID 2.5.29.19厂商 CA 证书必须携带该扩展标记为关键扩展cA 字段置 true路径长度限制 pathLenConstraint0产品单元证书禁止携带本扩展。有效期notBefore 和 notAfter 字段指示维护证书有效性信息的时间间隔。对于产品单元应忽略有效期时间。证书的 notBefore 和 notAfter 有效期时间应使用ASN.1 GeneralizedTime适用于任何年份或ASN.1 UTCTime适用于2050年之前的年份。对于制造商CA证书建议 notBefore 字段为“19700101000000Z”1970年1月1日00:00 UTC即POSIX纪元时间。建议 notAfter 字段为“99991231235959Z”9999年12月31日23:59:59 UTC用于表示未知的过期时间如IETF-RFC-5280第4.1.2.5节所定义。使用建议的 notBefore 和 notAfter 值将最大化与证书处理栈的兼容性。WPC Qi 策略扩展wpc-qi-policyWPC Qi策略扩展是制造商CA证书的自定义扩展用于符合本规范的产品。该值是一个二进制对象在本版本规范中保留。wpc-qi-policy 的值列在WPC成员网站的Qi规范页面上。二进制对象编码为ASN.1 DER OCTET STRING固定大小为 QiPolicySize 字节。制造商CA证书应包含此扩展。产品单元证书不应包含此扩展。WPC Qi RSID 扩展wpc-qi-rsidWPC Qi吊销顺序标识符RSID扩展是产品单元证书的自定义扩展用于符合本规范的产品。该值是一个二进制对象用于存储每个产品单元唯一的顺序标识符从而支持基于范围的批次吊销。wpc-qi-rsid 的值列在WPC成员网站的Qi规范页面上。二进制对象编码为ASN.1 DER OCTET STRING最大大小为 MaxQiRSIDSize 字节。RSID值对每个产品单元是唯一的范围为最小值1到最大值 MaxQiRSIDSize 字节。产品单元证书应包含此扩展。制造商CA证书不应包含此扩展。WPC对象标识符的ASN.1模式以下ASN.1模块定义了WPC管理的对象标识符以及用于WPC Qi认证的证书扩展模式。3、制造商CA证书制造商CA证书使用ITU-T X.50910/2016第7.2节Public-Key Certificate中定义的ASN.1结构。制造商CA证书的TBSCertificate组件仅实现下表中所示的ASN.1字段。4、产品单元证书产品单元证书使用ITU-T X.50910/2016第7.2节Public-Key Certificate中定义的ASN.1结构。产品单元证书的TBSCertificate组件仅实现下表中所示的ASN.1字段。5、根CA证书根CA证书使用ITU-T X.50910/2016第7.2节Public-Key Certificate中定义的ASN.1结构。根证书的TBSCertificate组件仅实现下表中所示的ASN.1字段。6、附加属性和扩展X.509 v3中定义的附加证书属性和扩展不允许出现在制造商CA证书或产品单元证书中。7、约束QiPolicySize 0x04 字节MaxQiRSIDSize 0x09 字节MaxManufacturerCertSize 0x200 字节MaxProdCertSize 0x200 字节三、证书链槽位证书链驻留在称为槽位slots的位置中。每个槽位应要么为空要么包含一条完整的证书链。功率发射器不应包含超过4个槽位。槽位0和槽位1可选应仅用于以WPC根证书为根的证书链不应包含任何其他证书链。制造商可以使用槽位2和槽位3存放任何额外的证书链。如果使用槽位2和槽位3应从槽位2开始按顺序填充。制造商依赖的证书链不需要按照相关定义的结构来组织。例如它们可以是X.509v3格式并采用ASN.1 DER编码或它们可以以制造商依赖的方式签名。如果制造商依赖的证书链与槽位0和/或槽位1中的证书链共享公钥/私钥对则其构建方式应为公钥/私钥对提供至少与存储在槽位0和槽位1中的证书链所要求相同级别的安全性。对制造商依赖的证书链及其使用的格式和协议的保护应达到或超过定义的、存储在槽位0和槽位1中的证书链、格式和协议的保护级别。证书与私钥写入发射端流程不在本规范定义范围内。四、发射端私钥功率发射器中的每条证书链对应一个功率发射器私钥其对应的公钥在相关联槽位的产品单元证书中得到认证。功率发射器应能够访问该私钥。功率发射器应以充分保护密钥机密性的方式存储私钥如WPC制造商协议所述。制造商不应将与一个功率发射器产品单元关联的私钥用于任何其他功率发射器产品单元或制造商CA证书。五、其他私钥每个制造商CA证书关联一个唯一的公钥/私钥对。与制造商CA证书关联的私钥用于签署证书链中的下一个证书。制造商应以充分保护密钥机密性的方式生成、配置和存储私钥。制造商不应将与一个制造商CA证书关联的私钥用于任何其他制造商CA证书或产品单元证书。三、认证协议功率接收器可以执行三种操作向功率发射器查询证书链摘要Digest。从功率发射器读取证书链。向功率发射器发起挑战Challenge以验证其真实性。功率接收器可以根据实现所需认证延迟的需要发起任意数量或任意少的这些操作。此外功率接收器可以以任意顺序发起这些操作。例如功率接收器可以先挑战功率发射器然后如果目标证书链的关键信息尚未缓存再发起证书链读取。一、摘要查询接收端发送GET_DIGESTS请求读取发射端各槽位证书链 SHA256 摘要。流程规则发射端无异常时返回DIGESTS响应报文若出现错误发射端返回对应ERROR错误报文接收端收到摘要后对比本地缓存记录若存在匹配摘要可跳过证书读取步骤缩短认证耗时。二、证书链读取接收端发送GET_CERTIFICATE分段读取请求获取指定槽位证书链全部 / 部分字节。异常处理规则若请求偏移、读取长度超出证书链总字节范围发射端返回INVALID_REQUEST错误其余各类故障统一返回对应ERROR响应无异常时返回携带证书链分段数据的CERTIFICATE响应报文。三、认证挑战接收端发送CHALLENGE质询报文携带 128 位随机数 Nonce要求发射端使用本机私钥完成数字签名。规则发射端正常则返回CHALLENGE_AUTH签名响应出现故障返回对应ERROR报文兼容性约束支持多版本认证协议的接收端必须保证质询请求与响应的协议版本一致防范降级攻击。四、错误与告警请求非法INVALID_REQUEST发射端收到字段格式、参数不合法的认证请求统一回复INVALID_REQUEST类型 ERROR 报文。不支持的协议版本UNSUPPORTED_PROTOCOL请求头携带的认证协议版本超出发射端支持范围时返回该错误错误数据字段填写发射端支持的最高协议版本接收端后续交互必须使用该版本。设备繁忙BUSY发射端当前时序无法满足认证响应时限要求返回 BUSY 错误接收端等待后重试。未定义错误UNSPECIFIED除以上三类故障外其余未知异常统一返回该类型 ERROR 报文错误数据段置 0。四、认证消息认证消息用于传递与认证相关的信息。功率接收器和功率发射器均不应在认证消息之后添加任何填充字节即认证消息的第一个字节应为数据流Data Transport Stream的第一个字节认证消息的最后一个字节应为数据流的最后一个字节。认证消息有两种类型认证请求Authentication requests和认证响应Authentication responses。一、认证消息头所有认证消息均以一个字节的头部开始其格式应如表10所示。头部后面可以跟随有效载荷。认证协议版本Authentication Protocol Version此字段标识所使用的认证规范版本。下表显示了此字段的有效值。产品不应使用其不支持的规范修订版本对应的认证协议版本值。功率接收器应在新建连接时发送给功率发射器的第一个认证请求的认证协议版本字段中指示其支持的最高协议版本。如果功率接收器收到错误代码为 UNSUPPORTED_PROTOCOL 的 ERROR 响应则它应在后续所有认证请求中使用 ERROR 响应中错误数据Error Data字段所指示的版本。如果功率发射器收到的认证请求中认证协议版本字段的值低于其支持的最高版本则它应在所有认证响应中使用该较低版本。在所有情况下消息的格式应与认证协议版本字段中所给的认证协议版本对应的规范相匹配。消息类型Message Type此字段标识认证请求或认证响应中的认证消息类型值之一。二、认证请求认证请求由功率接收器用于向功率发射器发送命令和/或检索数据。认证请求类型列于下表。功率接收器不应在收到前一个认证请求的响应或超时之前发送另一个认证请求。1、GET_DIGESTS此请求用于检索证书链摘要。功率接收器可以一次请求任意数量的摘要。GET_DIGESTS 请求的格式定义于下表。认证消息头Authentication Message Header此字段标识认证协议版本和消息类型。它应设置为 0x19。槽位掩码Slot Mask此字段标识所请求证书链存储的槽位。b0 置为 ONE 表示请求槽位0中存储的证书链摘要b1 置为 ONE 表示请求槽位1中存储的证书链摘要以此类推。注 可以通过单个命令请求多个证书链摘要。2、GET_CERTIFICATE此请求用于读取目标证书链的一个片段。GET_CERTIFICATE 请求的格式定义于下表。认证消息头Authentication Message Header此字段标识认证协议版本和消息类型。它应设置为 0x1A。OffsetA8, Offset70这两个字段组合形成从证书链起始位置的字节偏移量读取请求从此偏移量开始。偏移量值为 OffsetA8 × 256 Offset70记作 GET_CERTIFICATE/Offset。尝试读取超出证书链末尾应导致功率发射器返回错误代码为 INVALID_REQUEST 的 ERROR 响应。偏移量值大于等于 0x600 时PTx 应进行调整返回相对于产品单元证书第一个字节的数据即如同产品单元证书从 0x600 开始。因此偏移量值在 0x600 至 0x7FF 范围内表示 PTx 从证书链的以下偏移量处发送字节上述意味着在示例实现中偏移量值调整如下LengthA8, Length70这两个字段组合形成读取请求的长度字节数。长度值为 LengthA8 × 256 Length70记作 GET_CERTIFICATE/Length。尝试读取超出证书链末尾应导致功率发射器返回错误代码为 INVALID_REQUEST 的 ERROR 响应。长度值为 0x000 表示 PTx 应发送尽可能多的剩余字节。上述意味着在示例实现中长度值调整如下注 如果 GET_CERTIFICATE/offset 0x600此公式无效。Slot Number这是目标证书链存储的槽位编号。此字段的值应标识在 DIGESTS 响应消息或 CHALLENGE_AUTH 响应消息中被标识为存在的证书链之一。3、CHALLENGE此请求用于发起对功率发射器产品单元的认证。CHALLENGE 请求的格式定义于下表。认证消息头Authentication Message Header此字段标识认证协议版本和消息类型。它应设置为 0x1B。槽位编号Slot Number这是用于认证的证书链所存储的槽位编号。此字段的值应标识在 DIGESTS 响应消息或 CHALLENGE_AUTH 响应消息中被标识为存在的证书链之一。注 槽位0中始终存在一条证书链。随机数Nonce这是功率接收器选择的128位二进制随机数。用于生成随机数的RNG应满足 SP800-90A 和 SP800-90B 的要求。三、认证响应功率发射器使用下表中列出的响应类型来响应认证请求。1、DIGESTS功率发射器使用 DIGESTS 响应发送证书链摘要并报告哪些槽位包含有效的证书链摘要。DIGESTS 响应的格式定义于下表。认证消息头Authentication Message Header此字段标识认证协议版本和消息类型。它应设置为 0x11。已填充槽位掩码Slots Populated Mask当且仅当槽位编号 K 包含针对认证协议版本字段中协议版本的证书链时此字段中位置 b_(K4) 的位应设置为 ONE。注 槽位0中始终存在一条证书链因此此掩码中的位 b4 始终设置为 ONE。已返回槽位掩码Slots Returned Mask当且仅当满足以下条件时此字段中位置 b_K 的位应设置为 ONE槽位编号 K 包含针对认证协议版本字段中协议版本的证书链且在对应的 GET_DIGEST 请求中槽位编号 K 被设置为1。如果没有这样的槽位则此掩码中的所有位应设置为 ZERO。返回的摘要数量应等于此字节中置位位的数量。摘要应按槽位编号递增的顺序返回。返回的摘要Digests Returned对于已返回槽位掩码中位非零的证书链其32字节SHA-256摘要序列按槽位编号递增的顺序排列。如果已返回槽位中的所有位均为零则不存在返回的摘要字段。在上表的字节偏移中n 表示返回的第 n 个摘要。2、CERTIFICATE此响应由功率发射器用于发送所请求的证书链片段。CERTIFICATE 响应的格式定义于下表。认证消息头Authentication Message Header此字段标识认证协议版本和消息类型。它应设置为 0x12。证书链片段Certificate Chain Segment证书链片段应包含所请求证书链中从对应 GET_CERTIFICATE 请求中请求的偏移量开始的请求片段的一部分或整个片段。此证书链片段的长度应小于或等于对应 GET_CERTIFICATE 请求中请求的长度LengthA8 × 256 Length70且大于或等于1。3、CHALLENGE_AUTH功率发射器使用 CHALLENGE_AUTH 来响应 CHALLENGE 请求。CHALLENGE_AUTH 响应的格式定义于下表。认证消息头Authentication Message Header此字段标识认证协议版本和消息类型。它应设置为 0x13。最高认证协议版本Maximum Authentication Protocol Version功率发射器支持的最高认证协议版本。已填充槽位掩码Slots Populated Mask当且仅当槽位编号 K 包含针对认证协议版本字段中协议版本的证书链时此字节中位置 b_K 的位应设置为 ONE。槽位0中始终存在一条证书链因此此掩码中的位 b0 始终设置为 ONE。证书链哈希最低有效字节Certificate Chain Hash LSB正在提供挑战响应的证书链的32字节SHA-256哈希值的最低有效字节。签名 r 值Signature r value此字段应包含从表20指定的 TBSAuth 的 SHA-256 哈希值生成的非确定性 ECDSA 数字签名的256位 r 值。详见 ANSI X9.62-2005。签名 s 值Signature s value此字段应包含从下表指定的 TBSAuth 的 SHA-256 哈希值生成的非确定性 ECDSA 数字签名的256位 s 值。详见 ANSI X9.62-2005。前缀Prefix前缀字段应包含 ‘A’ 的 ASCII 表示即 0x41。证书链哈希Certificate Chain Hash证书链哈希字段应保存正在提供挑战响应的证书链的 SHA256 哈希值。挑战请求Challenge Request挑战请求字段应包含 CHALLENGE 请求消息的 B0 … B17即此 CHALLENGE_AUTH 所响应的请求。4、Error此响应由功率发射器用于传输错误信息。ERROR 响应的格式定义于下表。认证消息头Authentication Message Header此字段标识认证协议版本和消息类型。它应设置为 0x17。错误代码Error Code定义于下表错误数据Error Data定义于下表五、时序要求一、接收端时序要求下表显示了功率接收器应对认证请求消息应用的超时值。对于 Qi Specification Communications Protocol中定义的数据传输层计时从承载认证请求的数据流Data Transport Stream中发送的最后一个ADC/结束数据包开始时开始。注 超时值基于以下考虑功率发射器需要一些时间来准备其响应功率发射器使用 ADT/1 数据包发送其响应功率接收器每250ms至少发送一个 DSR 数据包认证响应包含20%的通信错误开销如果功率接收器在第一个认证请求的超时时间内未收到认证响应它应该重试该请求最多五次。如果最后一次重试后仍然超时功率接收器应该遵循其对应于功率发射器不支持认证功能的策略。如果功率接收器在后续认证请求即不是第一个认证请求的重试的超时时间内未收到认证响应它应将其视为错误。在这种情况下它不应重试该后续认证请求而应立即遵循其对应于功率发射器不支持认证的策略。二、发射端时序要求功率发射器应满足表25中定义的时序要求。对于Qi Specification Communications Protocol中定义的数据传输层计时从承载认证请求的数据流中发送的最后一个ADC/结束数据包开始时开始。功率接收器不应在相应的时序值到期之前尝试通过发送 DSR/poll 数据包来检索认证响应。这样做可能导致功率发射器发送 BUSY 认证响应。发送后者所需的时间会延迟预期认证响应的检索。注 如果功率发射器无法在相关的功率接收器超时值内完成其认证响应的发送则视为未通过时序要求前提是功率接收器至少每250ms发送一个 DSR 数据包。六、协议流程示例本章提供了合适的高级流程的资料性示例。这些示例并非排他性的符合本规范的其他流程也是可行的。这些流程省略了细节例如在等待认证响应时超时的行为以及ERROR响应的处理。这些示例还假设功率接收器仅处理功率发射器槽位0中的证书链。如果制造商希望功率接收器处理其他槽位中的证书链制造商应相应地调整这些流程。一、简单流程下图展示了既不高缓存先前已验证功率发射器的摘要和公钥也不支持吊销的功率接收器的行为。注 此功率接收器不发送 GET_DIGESTS 认证请求因为它不缓存摘要。接收端判断发射端支持认证功能直接发送GET_CERTIFICATE请求读取 0 号槽完整证书链接收CERTIFICATE证书响应解析完整证书链校验整条证书链签名合法性签名校验失败流程终止判定证书无效签名校验通过继续执行质询流程发送CHALLENGE质询报文携带随机 Nonce接收CHALLENGE_AUTH签名响应校验 ECDSA 签名有效性签名无效认证失败流程退出签名有效发射端认证通过可正常大功率充电。二、带缓存的流程下图展示了缓存在非易失性存储器中先前已信任的功率发射器的摘要和公钥的功率接收器的行为。这使得功率接收器可以跳过发送 GET_CERTIFICATE 认证请求直接进入发送 CHALLENGE 认证请求。如果证书链被复制并部署在假冒的功率发射器中即使缓存中找到匹配项挑战也将失败。检测发射端支持认证发送GET_DIGESTS读取全部槽位证书哈希摘要对比本地缓存缓存无匹配摘要执行完整证书读取流程读取、校验证书链校验通过后将摘要 公钥存入缓存缓存存在匹配摘要跳过读证书直接发送质询报文发送CHALLENGE质询接收并校验质询签名签名不合法认证失败签名合法设备认证完成若本次为新设备校验通过后将证书摘要、公钥写入非易失缓存。补充若不法厂商复制证书链至仿冒充电器即便摘要匹配质询签名校验依然会失败无法通过认证。三、带缓存和吊销的流程下图展示了缓存在非易失性存储器中先前已信任且支持吊销的功率发射器的摘要和公钥的功率接收器的行为。此信息通常包括制造商代码、产品类型和产品单元序列号。读取证书链摘要匹配本地缓存无匹配摘要读取并校验完整证书链证书签名校验通过后查询本机吊销清单证书在吊销列表直接判定发射端非法终止流程证书未被吊销发送质询报文完成最终签名核验质询签名合法则认证通过并更新本地缓存。四、先挑战Challenge First流程下图展示了缓存在非易失性存储器中先前已信任且支持吊销的功率发射器的摘要和公钥的功率接收器的另一种行为。此行为从功率接收器发出 CHALLENGE 认证请求开始。CHALLENGE_AUTH 响应包含证书链哈希的最低有效字节LSB。功率接收器检查其摘要缓存尝试查找具有匹配 LSB 的一个或多个摘要。如果没有这样的摘要功率接收器按第一次遇到该特定功率发射器的情况处理。如果有匹配项功率接收器尝试使用匹配摘要对应的公钥验证 CHALLENGE_AUTH 签名。如果验证成功功率接收器检查证书是否已被吊销。如果证书未被吊销功率接收器判定响应方可信。如果验证失败功率接收器使用与 CHALLENGE_AUTH 响应中返回的哈希 LSB 匹配的下一个摘要重试。如果所有这些验证都失败功率接收器按第一次遇到该特定功率发射器的情况处理。当功率接收器确定这是第一次遇到该特定功率发射器时它检索证书链、验证证书链、检查其是否已被吊销然后尝试使用产品单元证书中包含的公钥验证先前返回的 CHALLENGE_AUTH 签名。此方法的优点是在功率接收器与该特定功率发射器第一次相遇之后两个设备之间仅发生一次认证请求和响应通信。确认发射端支持认证直接下发CHALLENGE质询接收CHALLENGE_AUTH响应提取证书链哈希最低字节在本地缓存中匹配拥有相同哈希末尾字节的记录无匹配缓存走完整证书读取、校验、吊销查询流程存在多条匹配缓存依次使用缓存公钥校验签名校验成功 → 校验证书是否吊销无吊销即认证完成全部缓存公钥校验失败 → 视为全新设备读取完整证书全新设备读取完整证书链、校验签名、检查吊销清单全部合规后缓存摘要与公钥。七、参考资料Qi-v1.3.3