器件型号: CC2642R-Q1
我们正在调查在 CC2642-Q1 器件上观察到的 BLE 安全连接问题
。
在配对过程中、HCI 命令 HCI_LE_READ_LOCAL_P256_PUBLIC_KEY
(0x2025) 并 HCI_LE_GENERATE_DHKEY (0x2026) 成功完成;但是、整体配对过程最终会因 SMP_PAIRING_FAILED_UNSPECIFIED (0x08) 而失败。
为了进一步找出问题,我们绕过了 BLE 堆栈,并直接使用 ECDH_computePublicKey() 固定的 32 字节私钥通过测试了加密操作 CryptoKeyPlaintext_initKey()。
在多个已知良好的电路板上、ECDH 计算始终会在运行和重置之间生成相同的正确 P-256 公钥。 但是、在特定单元上、会观察到不正确的公钥值。 此外,有故障的设备会不时为相同的输入产生不同的不正确的公钥,而该功能仍然返回 ECDH_STATUS_SUCCESS。
这是我们在系统中第一次遇到这种行为。
我们想问:
- PKA 引擎中的哪些内部机制可以
ECDH_computePublicKey()成功完成、同时仍产生损坏或非确定性的公钥输出? - 您建议使用哪些其他诊断方法或测试程序、以便在硬件或驱动程序级别进一步隔离此问题?