爱游戏官网KW45使用SPSDK进行代码更新和debug authentication指南,符合 BLE5.3标准,最多可同时支持24个安全连接。在KW系列中KW45首次采用三核架构:一个96MHz的CM33应用核、一个处理Radio相关任务的CM3内核和一个专门处理加密安全称为EdgeLock(类似HSM)M0+核。其中CM3内核用于处理BLE controller相关的任务, CM33内核可以更专注于处理BLE Host层,GATT层和应用相关的任务,除此之外CM3内核还拥有独立的Flash和S资源,不占用芯片本身内置的1M Flash和128K RAM,从而可以将CM33主核上的内存资源和处理资源释放给用户应用空间。EdgeLock类似HSM的功能,提供常见AES/ECC/
尽管架构更复杂,但因为后两者的软件是由芯片厂商提供,无需用户开发,所以并没有额外增加多少工作量,其和以前KW3X系列一个最大不同是,CM3的软件也称为NBU需要用户自行烧录(这也就是为何常有客户反馈自己做的板子运行无线相关的例子运行时总是卡在一个地方的原因),之所以这块没有固化在芯片内内部有两方面考虑,一方面方便用户更新支持到更新的BLE feature爱游戏官网,例如说channel sounding,而一方面方便用户可以对官方提供的NBU Image 进行个性化的签名,防止未认证的恶意代码启动,从而增加系统安全等级。所以这里就需要工具完成密钥的生成,image的加密,加密image的烧录过程,为方便用户,原厂提供了一套开源的SPSDK脚本方便用户使用,但牵涉到环境搭建,尤其有很多Key的生成,对新手来说有些挑战,本文第4章节会给出一个step by step的教程,方便开发者更系统的去看每一个步骤在做什么,需要修改什么,先解决怎么做的问题,至于为什么这么做,每个Key的作用需要用户结合RM手册去查看。同时随着信息安全越来越受到重视,很多产品量产后会考虑临时禁止调试口,在需要时通过特定的方式再去使能,对应到KW45就是debug authentication,RM文档更多从原理性介绍,给出的是JTAG操作伪指令,至于如何在SPSDK中实现未有提及,本文会在第5章节重点介绍相关实操。
SPSDK的全称是Secure Provisioning SDK,它是一个统一、可靠且易于使用的PythonSDK 库,适用于产品组合,客户帮助客户快速完成从原型设计到生产部署的整个过程。该库允许用户与设备连接和通信、配置设备、准备、下载和上传数据(包括安全操作)。
应用程序:用户可以使用 Python虚拟环境命令行或者Jupyter Notebook(推荐方式)调用各个应用程序;
此后,会有一个Jupyter的网页交互产生,如下图,然后就是傻瓜式的step by step执行脚本。
如下是cert0的内容,但是因为其是base64编码,不方便查看,如果有兴趣可以通过Openssl去读取证书的信息和yml文件对照。
该Key用于加密SB3 key block,会被program到fuse,后续无法再次修改,该生成步骤也可以放在前面去执行。
在NXP demo板芯片内已经预烧录了SB3KDK和ROTKTH,所以可以直接跳到这个步骤。
在做Debug authentication之前,需要大概了解下KW45启动的过程,如下图,在启动后,会先去检查用户是否使能dual image启动,如果是就去运行最新版本,如果不是就会先去Boot image base address处去查看是否有有效的PC和SP,对于KW45来说如果未使能dual image这个地址就是0x00。如果PC和SP有效就会先去对用户应用程序验签,如果失败,就会回到ISP模式,如果用户应用程序验签通过,ROM就会继续对NBU进行验签,如果验签通过才会真正进入到客户正常应用程序。而Debug authentication是贯穿在上面整个过程中的,需要在每一个步骤都能进行debug。前文提到,Debug authentication的目的是在量产禁止JTAG仿真器接口后,通过证书认证方式再去打开Debug口的访问权限,所以如果想去使能这个功能就需要做些额外的操作,譬如说将lifecycle推进到OEM secure world,生成debug authentication的证书,输入命令等,如下分别讲述。
至此,完成了对在ISP下KW45 Radio firmware下载过程和Debug authentication实现步骤的讲解。以上步骤确实比较多,笔者也摸索了好久,但熟悉其原理和每一步的执行目的后,可以简化成几个自定义的脚本,在开发阶段建议使用NXP默认的Key和证书,在量产阶段再根据自定义的key和证书做自定义。
Copyright © 2012-2023 爱游戏(ayx)中国官方网站 版权所有鲁ICP备16009136号-1 Xml网站地图 HTML地图 txt地图