Cypress技术论坛
直播中

李健

7年用户 162经验值
私信 关注
[问答]

TLS(ETEC508)的外部ECC芯片

我的设计使用外部ECC设备从Atmel的atecc508a / atecc608a。
该装置可以安全地存储私钥内部且无法恢复,因此所有ECC功能是由芯片处理。
我要用这mbedtls和wiced_tls。
我不懂如何设置客户端certififcate在wiced_tls没有私人密钥。底层调用mbedtls看起来需要私钥以及。
我有一个轻微的想法如何添加备用功能mbedtls为ECDH /签名功能。
有人做过这件事吗?有什么想法吗?
                    
                    
以上来自于百度翻译

               
                                                                                      以下为原文
                                            My design uses an external ECC device from Atmel, the ATECC508A/ATECC608A.
The device securely stores the private key internally and cannot be retrieved, so all ECC functions is handled by the chip.

I need to use this with mbedTLS and wiced_tls.

I do no understand how to set a client certififcate in wiced_tls without the private key. The underlying calls into mbedTLS looks like it requires the private key as well.
I have a slight idea of how to add alternate functions to mbedTLS for  ECDH / ECDSA functions.

Has anyone done this? Any ideas?

回帖(3)

徐夕武

2018-8-20 07:50:54
请看这篇文章HTTPS://TLS.MBOD.Org/DealsCs/GANICIC/MBODSTLS-Puff-For外部密钥和CLST-片上的帮助。基本上,您需要覆盖使用您的芯片执行的功能的私钥的ECDH/ECDSA功能。
                    
                    
以上来自于百度翻译

               
                                                                                      以下为原文
                                            Please see if this post https://tls.mbed.org/discussions/generic/mbedtls-support-for-external-keys-and-certs-on-chip helps. Basically you would need to override the ECDH/ECDSA functions that use private key with the functions performed by your chip.
举报

李健

2018-8-20 08:05:47
引用: asd013 发表于 2018-8-20 07:50
请看这篇文章HTTPS://TLS.MBOD.Org/DealsCs/GANICIC/MBODSTLS-Puff-For外部密钥和CLST-片上的帮助。基本上,您需要覆盖使用您的芯片执行的功能的私钥的ECDH/ECDSA功能。
                    
                    以上来自于百度翻译

谢谢!我遇到的信息和我工作的变化。的wiced_tls_init_identity功能怎么样,这需要一个私钥和客户端证书作为参数?看起来这最终得到一个mbedtls那里的信息存储在一个链表。有什么问题,只是通过设备证书而留下的私人密钥无效?我需要为我的MQTT服务器通信设置客户端证书(要求客户端身份验证)。
                    
                    
以上来自于百度翻译

               
                                                                                      以下为原文
                                            Thanks! I did come across that information and I am working towards those changes. What about the wiced_tls_init_identity function, which takes a private key and client cert as parameters? It looks like this eventually gets to a mbedTLS where the info is stored in a linked list. Is there any issue with just passing the device cert while leaving the private key NULL?  I will need to set a client certificate for communicating with my MQTT server (Requires client authentication).
举报

李健

2018-8-20 08:11:13
引用: cmh23 发表于 2018-8-20 08:05
谢谢!我遇到的信息和我工作的变化。的wiced_tls_init_identity功能怎么样,这需要一个私钥和客户端证书作为参数?看起来这最终得到一个mbedtls那里的信息存储在一个链表。有什么问题,只是通过设备证书而留下的私人密钥无效?我需要为我的MQTT服务器通信设置客户端证书(要求客户端身份验证)。
                    
     ...

我加了四种函数来重写默认行为:ecdsa_sign,ecdsa_verify,ecdh_compute_shared,和ecp_gen_public。
使用mbedtls_mpi_read_binary或mbedtls_mpi_write_binary到mbedtls MPI结构和atecc508二进制数组之间的转换。
对于wiced_tls_init_identity,我不得不将“假”PEM的私钥,否则设备证书不写入内部数据结构和mbedtls未配置ECC。
                    
                    
以上来自于百度翻译

               
                                                                                      以下为原文
                                            I added four alternative functions to override the default behavior: ecdsa_sign, ecdsa_verify, ecdh_compute_shared, and ecp_gen_public.
Use mbedtls_mpi_read_binary or mbedtls_mpi_write_binary to convert between mbedTLS mpi structures and the ATECC508 binary arrays.
 
For wiced_tls_init_identity, I had to load a "fake" pem private key, otherwise the device certificate is not written to the internal data structure and mbedTLS is not configured for ECC.
举报

更多回帖

发帖
×
20
完善资料,
赚取积分