YTM32B1MC0芯片如何实现单个密钥更新?
-
请问YTM32B1MC0芯片 如何实现多密钥的管理与更新?
目前项目需要实现: Secure Boot以及几个功能相关私钥的存储, 通过手册个人理解密钥可以存放在HCU_NVR地址区域内, 但是现在有一个需求:
功能相关的私钥需要能够Update 更新, 如果将需要更新的私钥全部存放在HCU_NVR中, 手册描述 HCU_NVR数据更新只能够先全部擦除整个Sector, 然后再写入, 会产生冲突: 期望只写入更新一个密钥, 但是擦除会将其他密钥一起给擦除, 不能实现针对单个密钥做特定更新。
个人理解 想要实现单个密钥更新的话, 只能将功能相关密钥存储在CUS_NVR区域内, 在想要更新特定密钥时:
1.读取整个CUS_NVR,将原始数据保存在RAM中
2.擦除CUS_NVR
3.将RAM中的数据更新, 然后重新写入CUS_NVR中
但是这种方式个人理解 是直接把密钥明文存储在芯片中, 安全性得不到保障, 请问针对这种需求, 该芯片有什么较好的实现方案吗?
另外CUS_NVR的512B 地址, 是否全部可以用于存放用户Key? 在手册《YTM32B1MC0x_RM_v1.3.pdf》中, 没有找到相关Memory Map定义, 而在文档《AN_0062_EFM应用笔记.pdf》中,描述 CUS NVR Memory Map的特定地址空间, 是有特殊用处的。 -
WR 在 YTM32B1MC0芯片如何实现单个密钥更新? 中说:
你可以看一下这篇文章看对你有没有帮助SDK应用_Secure_Boot 模块配置及应用.pdf
您好, 非常感谢您的回答,这份文档先前也仔细阅读过, 我目前的疑问点是:项目需要在HCU_NVR中存放多个密钥,且其中有部分密钥可能会在整个生命周期内, 通过UDS去多次更新;
但是我在手册文档中并没有找到可以实现 只更新单个密钥,而不要影响其他已存储的密钥的实现方式, 请问您有什么建议吗?
因为个人理解,由于HCU_NVR是一段只写、擦,不可读区域,在更新写满512Byte后,若想要再更新其中特定密钥,就必须要将整个512Byte空间都擦除,但这样就会其他已存储,不可读取密钥给删除掉。
快速上手云途开发生态
发帖前请查看
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...