本文主要介绍HaaS100 对升级的固件做验签的功能进而防止升级非法固件;如下图流程所示,当用户开启阿里云IOT物联网平台的安全升级功能,对应的产品就启动了针对这个产品的安全升级功能,云端会对这个产品的升级固件做秘钥、公钥管理并对这个产品的固件做数字签名;对应的设备端,在OTA的过程中,会用从云端获取的公钥对升级的固件做数字签名的验证;整个流程,用户不需要管理公私钥,使用起来也非常方便,下图为HaaS100 安全升级使用流程图:
2、使用流程2.1、开发环境搭建组件使用示例相关的代码下载、编译和固件烧录均依赖AliOS Things配套的开发工具 alios-studio ,所以首先需要参考《aos-studio使用说明之搭建开发环境》,下载安装 alios-studio ,待开发环境搭建完成后,可以按照以下步骤进行示例的测试。
2.2、 创建工程创建新的工程:
组件的示例代码可以通过编译链接到AliOS Things的任意案例(solution)来运行,这里选择ota_demo案例, 开发板:HaaS100。
ota_demo案例相关的源代码下载可参考《aos-studio使用说明之创建工程》。
打开已有工程:
如果用于测试的案例工程已存在,可参考《aos-studio使用说明之打开工程》打开已有工程。
如步骤1图示,通过复制按钮获取的公钥内嵌到 AliOS-Things/components/dm/ota/hal/ota_hal_digest.c文件中,覆盖如下的两个数组:
/* RSA Public Key:User needs sign in alibaba cloud to get and replace them. */ static const unsigned char ota_pubn_buf[256]; static const unsigned char ota_pube_buf[3];2.5、配置固件版本号
根据需求修改版本号,如app-1.0.0等
修改位置:solutions/ota_demo/otaappdemo.c中的,MY_APP_VER宏定义。
修改位置:solutions/ota_demo/otaappdemo.c中的,mqtt_main函数中的char product_key, char device_name, char *device_secret;填入自己的pk,dn,ds;
2.7、编译固件完成上面步骤后,就可以编译ota_demo案例来生成固件了,具体编译方法可参考《aos-studio使用说明之编译固件》。
2.8、烧录固件ota_demo案例的固件生成后,可参考《aos-studio使用说明之烧录固件》来烧录固件。
2.9、打开串口固件烧录完成后,可以通过串口查看示例的运行结果,打开串口的具体方法可参考《aos-studio使用说明之查看日志》。
当串口终端打开成功后,可在串口中输入help来查看已添加的测试命令。
输入wifi账号和密码配网:在终端输入:
netmgr -t wifi -c wifi_ssid wifi_password
注意修改其中的wifi_ssid和wifi_password为需要连接的wifi名字和wifi密码。
连网成功后,登录物联网平台可以看到对应的设备在线:
本地烧录完成后,需要做一个高版本固件上传到云端,通过云端操作完成固件的升级,所以需要按照步骤3中修改版本号的方法,修改固件版本号,其他不用修改,再编译生成一个高版本的固件,然后登录物联网平台平台,按如下图顺序操作:
点击添加固件后,如下图将platform/mcu/haas1000/release/write_flash_gui/ota_bin/ota_bin/ota_rtos_ota.bin上传到云端:
点击确定后,选择验证固件即可开始固件升级;
2.12、升级结果验证按照上面的操作步骤完成后,可以完成固件的数字签名验签进而实现固件升级,端侧的log如下图:
如果开启了安全升级,但HaaS100没有内嵌公钥,触发升级会怎么样呢?答案是HaaS100会数字签名验证失败,禁止固件升级,端侧的log会如下图所示:
云端升级结果可以通过点击“查看”获取详情;物联网平台的OTA操作可参考文档阿里云物联网平台固件升级文档
注:在做OTA之前确保设备端已连接云端
开发者支持HaaS解决方案中心:https://haas.iot.aliyun.com/
HaaS技术社区:https://blog.csdn.net/HaaSTech
开发者钉钉群和公众号见下图,开发者钉钉群每天都有技术支持同学值班。
大家好,我是我是Java进阶者,今天给大家分享Java交换变量和字符串的基本知识。 ...
环境:springboot2.2.6RELEASE 实现目标:一写多读,读可以任意配置多个,默认都...
TOP云 (west.cn)4月11日消息,在新一期的Sedo/DN榜上,单字母新顶级 域名 T.wi...
在 Web 项目开发过程中,我们经常会遇到重复请求的场景,如果系统不对重复的请求...
年味到底是什么?不同的时代,人们迎接春节的方式也在变换。 在70后的眼里,年味...
案例背景 一场突如其来的新冠病毒肺炎疫情,让在无数在备考阶段的高三学子陷入苦...
随着科技的进步,中国互联网的普及,信息的传递越来越多的靠互联网来完成,包括...
想象一下,在不使用传统数据共享的成本和专业知识障碍的情况下,跨市场和行业组...
随着业务在全球范围内的不断扩张,全球领先的半导体设备制造商Cohu选择了Oracle ...
自古时势造英雄,IDC行业更是如此。竞争愈是激烈愈能促使整个行业大步向前。 回...