1

我们正在使用来ATECC508A支持(对不起 - 客户规格)。我们正在尝试在物联网设备上做。软件模式使用- 工作正常。 硬件支持模式 - 失败并出现错误 -248 ( in )。将调试器中的程序跟踪到握手的 Pre-Master Secret 步骤,在那里它无法从芯片的插槽中读取。我们将 MicroChip 的默认配置配置用于. 看起来 Pre-Master Secret 是在内部使用私钥计算的,并通过从slot3 的加密读取返回。但是,默认配置将插槽 3 设置为“从不读取”模式。因此,它出错也就不足为奇了。WolfSSLRenesas RX600 CPUTLS 1.3ECCWolfSSLATECC0xF4cryptoauthlibTLS 1.3ATECCATECC508AATECCATECC

但是,这是使用ATECC508A插槽的默认配置、cryptoauthib库中的默认设置以及未更改的代码WolfSSL(添加的调试除外)。我在这里错过了什么吗?

版本:WOlfSSL 4.0.0、CryptoAuthLib 20190304 瑞萨 RTOS RI600v4

关于其他要查看的内容有什么建议吗?我可以提供user_settings.h您可能想要的所有日志等。提前感谢您的任何想法。

4

2 回答 2

1

事实证明,在内部,WolfSSL 调用 atcab_ecdh_enc(),它打算从 (slot+1) 进行加密读取。ATECC 芯片组插槽 3的默认配置将其设置为从不读取。WolfSSL 建议采用不同于 MicroChip 标准的配置,像我这样的公司(咳咳,便宜)不想为此支付额外费用。因此,它适用于 WolfSSL 指定的 ATECC 配置,但不适用于默认配置。

我们的解决方法是改为调用 atcab_ecdh(),这避免了加密读取,并直接从临时寄存器传回预主密钥。这似乎可以正常工作(尽管我仍在测试)。MicroChip FAE 向我保证这不是安全风险。

感谢您的回复。

基特·泰勒

于 2019-06-19T13:35:03.190 回答
0

原始答案发布在这里:https ://www.wolfssl.com/forums/topic1396-configuration-issue-with-wolfssl-and-atecc508a.html

开始报价

生成 ECC 共享密钥的调用使用加密通道 [该通道] 需要配对的加密密钥。默认的 wolfSSL 示例使用atmel_get_enc_key_default,它都是 0xFF。[One] 应该用 [他们的] 自己的实现和密钥覆盖这个函数。这可以在构建时使用ATECC_GET_ENC_KEY.

如果 [one would] 想为临时密钥生成使用不同的插槽 [用户] 可以在构建时使用宏ATECC_SLOT_ECDHE_PRIV或在运行时通过注册插槽分配器使用 atmel_set_slot_allocator. atcab_ecdh_enc[A user] 可以通过替换atcab_ecdhin 来测试它是否是加密密钥atmel_ecc_create_pms

ATECC 芯片也有一个看门狗,如果芯片在完成后没有进入空闲状态,就会出现看门狗。[用户将] 注意到调用atcab_idle [] wolfcrypt/port/atmel/atmel.c 来解决此问题。

随时通过 [] user_settings.h 和日志直接通过 support@wolfssl.com 向 [wolfSSL 支持团队] 发送电子邮件。这些电子邮件被定向 [] 到 [wolfSSL] ZenDesk 系统,[我们的一位工程师将] 确保并获取传入的票证。

谢谢,

[DG],wolfSSL

结束报价

于 2019-06-14T14:47:26.950 回答