如何使用AES加密防止固件泄露?

随着电子产品更新换代速度的加快,往往都会进行系统升级或app功能维护升级,但是由此产生了两个主要问题。首先,由于更新过程中出现错误,该设备可能变得无用;另外一个主要问题是:如何避免未经授权的用户访问目标产品的固件?
在嵌入式领域,根据嵌入式系统的mcu存储结构和更新原理,提出了通过加密方式升级设备功能的方法,其中最常用的方法为bootloader加密升级。
bootloader 是在操作系统或用户应用程序运行之前执行的一小段程序,通过这一小段程序,我们可以初始化硬件设备(如 cpu、sdram、flash、串口等)、建立内存空间的映射表,从而将系统的软硬件环境带到一个合适的状态,为最终调用操作系统内核或者用户应用程序准备好正确的环境。
如何使用bootloader加密升级可以防止竞争对手/恶意用户获得对固件代码的访问权限?
首先是使用代码加密来保护固件。这里需要实现对称密码,以及私钥的引导加载程序中的生成和包含。在制造商方面,需要保护相同的私钥,用于加密新固件版本。如图1所示,一般对称加密算法流程。
图1对称加密算法流程
对于常见的aes-128加密算法,由于aes处理的单位是字节,128位的输入明文或固件p和输入的密钥k都被分为16个字节,一般我们会将明文分组用字节为单位的正方形状态矩阵来描述,在每一轮的算法中,状态矩阵的内容不断发生变化,最终的结果作为密文输出。如图2所示,aes-128分块加密。
图2 aes-128加密过程
aes算法是基于置换和代替的,置换是数据的重新排列,而代替是用一个单元数据替换另一个。aes算法使用了多重循环实现置换和代替,在规范中被称为bytes sub(字节替换)-对数据的每个字节应用非线性变换;shift rows(行位移变换)-对每一行字节循环重新排序;mix columns(列混合变换)-对矩阵的列应用线性变换;add round key(轮密钥加)-对状态和每轮的子密钥进行异或操作。该算法对内存的需求非常低,使得它很适应于资源受限制的环境。
aes(aes-128)加解密的流程,如图3所示。
图3aes-128加解密流程
对于实际aes(aes-128)加密过程中,在第一轮的迭代之前,会将明文和原始密钥进行异或加密运算,然后正常执行从第一轮到第九轮一样的加密函数,其中都会包含四个操作:字节代换、行位移、列混合和轮密钥加;在最后一轮迭代不执行列混合运算。
解密的过程仍然为10轮,每一轮的操作都是加密操作的你操作。由于aes一轮的4个操作都是可逆的,因此解密操作的一轮就是执行逆行一位、逆字节代换、轮密钥加和逆列混合;同加密操作类似,最后一轮不执行逆列混合,在第一轮解密之前,执行一次密钥加操作。
如图4所示,为boot loader固件升级流程图。
图4boot loader固件升级流程
用户程序升级成功之后,可以通过函数指针的方式调用该程序。函数在编译时都会被分配一个入口地址,该地址就是函数的指针。只要用一个指针变量指向这个函数的入口地址,就可以通过指针变量调用这个函数。函数指针的本质是指针变量,只不过该指针变量指向函数,读出程序标志区的运行地址就可以通过指针变量调用新写入的程序。
固件升级的数据加密方案,对于具有iap功能的芯片具有普遍意义,不仅适用于网络远程升级,同样适用于本地升级。至于加密算法可以根据mcu的能力进行灵活选择。
例如nxp推出的跨界mcu-imx.rt1052系列mcu具有强大的安全组件,出于安全目的,数据协处理器(dcp)提供硬件加速和密码算法;其内置加密算法:aes-128(ecb和cbc模式)、哈希算法:sha-1和sha256、crc-32等。
snvs、dcp内部密钥存储或通用存储器中进行密钥选择,当一个密钥被写入时,内部存储器可存储多达四个aes-128密钥,它只能由dcp aes-128引擎读取。

中国移动公布了2019年集中网络云资源池工程硬件采购项目中标结果
新零售的互联网公司和传统零售商心照不宣的合谋
人工智能时代下 安防加速释放实战价值
知乎信息流推荐系统的技术演进
iPhone X摄像头+AR、显示屏和Face ID成产品主要卖点
如何使用AES加密防止固件泄露?
智能家居基础知识
浅析自动化仪表安装要点及规则
单金属片触摸开关和电阻桥触摸开关原理及电路
在线研讨会 | 让 ChatGPT 和大语言模型的使用合法合规 —— 30 分钟快速入门 NeMo - Guardrails
OPPO首次实现了屏下摄像头!“未来手机”真正形态
东芝推出业界首款双相机模块,可实现图像和深度数据的同步输出
机器人常用电机解析及区别在哪里
SDWAN的功能和场景应用
锂-固态电解质界面如何与堆叠压力演变相关
现代汽车已同意从软银集团手中收购波士顿动力公司的控股权
海信激光电视和激光投影仪哪个好,一篇告诉你
Mavenir展示端到端5G核心网解决方案
如何选择可编程的网关设备
小米6配置曝光情人节上市,小米5即将停产最后一次降价!