单片机程序固件加密的另一种思路

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

0引言:MCU 的发展过程
和固件加密重要性
随着大规模集成电路的出现和发展,单片机(MCU )将原有计算机上的CPU 、RAM 、ROM 、定时计数器和多种I/O 接口集成到一个芯片,从而形成芯片级的计算机。

这也是TI 工程师的Gary Boone 和Michael Cochran 发明的全球第一颗微控制器(MCU )———TMS 1000系列(图1)的雏形。

之后,日本电子厂商开始生产汽车用微控制器,包括用于车内娱乐、自动雨刷、电子锁和仪表盘的4位MCU ,以及用于发动机控制的8位MCU 。

时至今日,单片机除了传统的玩具市场、工业控制、汽车电子、白家电等,在物联网以及智能化浪潮来临以后,单片机更加成为产品设备的核心部件,一方面设备需要进行实时性高效智能的信息,另一方面还要能与其他设备进行信息互换,这些需求都需
要由单片机来完成。

而中国拥有最为广泛的消费群体和应用场景,单片机在国内的发展优势也更为明显。

从图2所示,预计到2022年,中国MCU 市场规模将突破300亿元大关,
预计达到319亿元!可以说,单片机因应用而生,除了芯片本身硬件性能,与应用相关的程序固件越发显得重要,固件安全的需求也就越来越受到关注!
1单片机的信息安全
首先,广义上的“安全”
,也可视作为“信息安全”,它具有三个重要的特点:
1)保密性:需要确保信息不为其它未授权的个人或团体所获得。

2)完整性:维持和确保信息的完整,不被未授权的篡改。

3
)可行性:被授权访问信
息的主体,
在需要信单片机程序固件加密的另一种思路
丘宁冰
创芯工坊科技(深圳)
有限公司图1TI 的TMS 1000系列MCU
图2中国MCU 市场规模增长与预测
息的时候能及时访问并获取。

保密性Confidentiality,Integrity完整性和可行性Availability,简称:CIA。

从以上特征描述,引申出处理信息安全的三种常用工具:标识、认证以及授权,也简称为:IAA。

1)标识:Identity
首先,信息访问者标明主体身份,但是不确定该主体确实可访问该信息?所以,得验证其真假;
2)认证:Authentication
身份认证也就是核实主体声称的内容是否属实?以便在主体身份核实后,进行更细化的动作
3)授权:Authorization
作为更精细的信息处理,需要解决的问题包括:确保哪些信息可被授权人查看?被查看的信息是否保持完整,未被未授权的修改?以及被授权人可以随时方便的访问可查看的信息。

信息安全的三要素以及三种工具的相互关系,如图3所示。

2单片机的攻击风险
单片机一般都有内部程序区和数据区,供用户存放程序和工作数据。

为了防止未经授访问或拷贝单片机的机内程序,大部分单片机都带有加密锁定位或者加密字节,以保护片内程序。

如果在编程时加密锁定位被使能(锁定),就无法用普通编程器直接读取单片机内的程序,这就叫单片机加密。

单片机攻击者借助专用设备或者自制设备,利用单片机芯片设计上的漏洞或软件缺陷,通过多种技术手段,就可以从芯片中提取关键信息,获取单片机内程序这就叫单片机解密。

目前单片机常用解密方法主要包括:
1)软件攻击
该技术通常使用处理器通信接口并利用协议、加密算法或这些算法中的安全漏洞来进行攻击。

软件攻击取得成功的一个典型事例是对早期ATMEL AT89C51系列单片机的攻击。

攻击者利用了该系列单片机擦除操作时序设计上的漏洞,使用自编程序在擦除加密锁定位后,停止下一步擦除片内程序存储器数据的操作,从而使加过密的单片机变成没加密的单片机,然后利用编程器读出片内程序。

2)电子探测攻击
该技术通常以高时间分辨率来监控处理器在正常操作时所有电源和接口连接的模拟特性,并通过监控它的电磁辐射特性来实施攻击。

因为单片机是一个活动的电子器件,当它执行不同的指令时,对应的电源功率消耗也相应变化。

这样通过使用特殊的电子测量仪器和数学统计方法分析和检测这些变化,即可获取单片机中的特定关键信息。

3)过错产生技术
该技术使用异常工作条件来使处理器出错,然后提供额外的访问来进行攻击。

使用最广泛的过错产生,攻击手段包括电压冲击和时钟冲击。

低电压和高电压攻击可用来禁止保护电路工作或强制处理器执行错误操作。

时钟瞬态跳变也许会复位保护电路而不会破坏受保护信息。

电源和时钟瞬态跳变可以在某些处理器中影响单条指令的解码和执行。

4)探针技术
该技术是直接暴露芯片内部连线,然后观察、操控、干扰单片机以达到攻击目的。

为了方便起见,人们将以上四种攻击技术分成两类,一类是侵入型攻击(物理攻击),这类攻击需要破坏封装,然后借助半导体测试设备、显微镜和微定位器,在专门的实验室花上几小时甚至几周时间才能完成。

所有的微探针技术都属
于侵入型攻击。

另外三种方法属于非侵入
型攻击,被攻击的单片机不会被物理损坏。

图3信息安全三要素与信息安全工具相互关系
3信息安全保障
3.1STM32Trust 架构
针对以上解密方式,为了避免用户损失,各家原厂都开始从自身芯片做起,强化芯片安全等级,比如STM32最早提出的STM32Trust 解决方案,提供完整的代码保护和执行保护工具套件
(如图4所示)。

STM32Trust 架构带来了12种安全功能和服务,与资产保护用例保持一致并提供恰当的安全保证级别。

1)Secure Boot 安全启动
能确保在设备内部运行的应用程序的真实性和完整性的能力。

2)Secure Install/Update 安全安装/更新编程之前安装固件或更新固件并进行完整性和真实性的初步检查。

3)Secure Storage 安全存储
能够安全地存储数据或密钥(并在外部不可见的情况下访问它们)。

4)Isolation 隔离
应用程序中受信任和不受信任部分之间的隔离。

5)Abnormal Situation Handling 异常情况处理能够检测异常情况(包括硬件和软件)并做出适当的决定,例如删除机密数据。

6)Crypto Engine 加密引擎
能够按照安全保证级别的建议处理密码算法。

7)Audit/Log 审计/日志跟踪安全事件,
保持不变8)Identification /Authentication /Attestation 识别/认证/证明
从设备内部或外部对设备和/或软件包的唯一标识,以及检测其真实性的能力。

9)Silicon Device Lifecycle 硅器件生命周期控制状态可通过受限路径安全地保护硅设备资产。

10)Software IP Protection 软件IP 保护
能够保护部分或整个软件包免受外部或内部读取。

11)Secure Manufacturing 安全生产
具有不安全环境中的初始设备过度生产控制,潜在的安全个性化。

12)Application Lifecycle 应用生命周期
定义不可更改的增量状态以安全地保护应用程序状态和资产。

STM32单片机型号已嵌入了硬件安全保护功能,还额外实现了篡改检测、防火墙代码隔离机制和Arm Trust Zone 覆盖芯片类型有限,且对应芯片价格不同(如图5所示)。

同时,方案交付也会涉及多个环节,包括代理商、方案公司
、烧录厂和加工厂等,现有单一调试
或烧录工具也无法满足整个交付链条的安全管控。

图4STM32Trust 架构[1]
图5支持STM32Trust 功能芯片列表
3.2程序固件云端交付
针对这一痛点,
创芯工坊( )在2017年首次提出程序固件云端交付的概念,并于2018年实施上线。

期望在程序开发者/方案公司与终端用户间,搭建一个可靠安全的交付平台,通过固件与烧录次数绑定,从而保护开发者知识产权,使双方受益。

自发布日至2020年底,已成功完成固件在线交付&云端烧录近7000万次。

不仅为广大单片机方案公司提供了更加安全、开放和多元的交付模式,同时也适用于多种固件安全烧录场景。

如图6交付流程图所示,整个交付链条,以授权订单代替了以往的单个固件传输和交接,生产厂家或用户接触不到程序固件源码,降低了固件被破解的风险。

同时也适用于项目初期的程序调试,以往需要频繁的将升级改动过的程序烧入烧录器中,再快递给用户确认,现在通过云端交付,用户直接可以方便地下载更新固件,节省了沟通成本和物流成本,大大提升了效率。

创芯工坊除了提供平台端服务,配合Power-Writer 安全烧录器提供的多种加密机制,在不提升芯片安全等级的情况下,
同样实现了“一芯一密”功能!同时,配合PowerWriter 烧录器提供的离线(UID 绑定)和ICWKEY 授权密钥,以及在线授权等多种加密方式(如图7所示),大大提升了芯片破解的难度。

加密模式:
1)在线授权(在服务端开启)
在线授权方案功能由创芯工坊官方提供,此时的烧录器内部不存储离线固件,而是将固件提交到创芯工坊的后台管理控制台以订单形式发布,客户再通过创芯工坊客户端实现远程量产烧录,烧录芯片时需要全程联网,从授权服务器获取授权数据,在线授权方案同样是基于CID 的,整个授权的算法可由创芯工坊用户自主设计。

2)自带内置离线授权
Power Writer 内置了基于随机矩阵算法的UID 离线授权方法,跟市面上固定授权方法不同的是Power Writer 可以由开发者自由编辑算法矩阵。

Power Writer 内置解析算法,对矩阵进行解析生成正确的算法,内置离线授权根据用户选择的芯片,参数设置自动生成Demo 代码,极大地提高了了用户的开发效率。

离线授权界面设置
(如图8所示)。

离线授权基础设置包含:
密钥地址:密钥地址可以理解为存放授权信息的地址,它的默认地址设定为芯片Flash 容量-12的位置,
上图是STM32F071CB 的默认存储地址。

用户密码长度:填写用户设定密码长度,
默认为12字节,可
选4字节,8字节长度。

数据存
储模式:数据存储模式分为小端模式和
图6云端固件交付流程图及安全要点
图7PowerWriter 上位机加密模式选项
图8PowerWriter 内置离线授权设置界面
大端模式。

用户密码(3组用户密码):根据设定可以设定最多三种用户密码。

Matrix 编码:Matrix 编码定义了用户可以编辑的离线授权的加密矩阵(如图9所示)。

Power Writer 提供了强大的随机矩阵授权算法,用户可以快速的随机生成功能,生成独一无二的随机授权矩阵验证算法,同时可以对随机算法矩阵的强度进行优化判断,
自动导出Demo 代码。

3)安全授权盾/授权密钥
如图10所示,通过ICWKEY 可以实现非对称ECDSA (ECC 非对称加密算法)授权,可以灵活将授权功能和PowerWriter 进行分离控制,并提供高强度的授权方法终极解决方案,针对高端产品,大批量产品授权,实现灵活的授权控制方案。

如图11所示,通过PowerWriter 上位机软件可对ICWKEY 进行配置:
密码:为了提供最高强度的通讯加密,Power-Writer 与ICWKEY 的通讯采用AES128CBC 模式加密,密码配置在PowerWriter 端随机生成,当密码框无焦点时默认不显示密码,密码可以使用随机生成
功能进行生成.不提供手动填入。

初始向量:PowerWriter 和ICWKEY 的通讯除了通信密码,同时提供一组初始向量,再通过创芯工坊的滚码算法,实现高强度的加密。

项目名称:此名称将和ICWKEY 屏幕显示项目名称保持一致,默认格式为:SafeLic_XXXXXXXX ,
如用户对默认的显示项目名称不满意。

可以手动填写,默认最多为16个字节。

授权地址:填写ICWKEY 在Flash 中的授权地址,PowerWriter 将根据用户填写的此地址,写入授权信息到目标芯片的Flash 地址中。

此地址的默认值为芯片Flash 的末尾-0x80的位置。

在基于ICWKEY 开发完成项目后,
基于MDK 导出的Mapping 信息找到授权的地址,在此处填写当前正确的授权地址信息。

随机生成:点击此按钮Power Writer 将随机生成密码、初始向量、
项目代码。

保存设置:当用户完成设置后,点击保存,此时ICWKEY 配置信息将会保存到缓冲区。

同时,考虑到程序固件所需要的保护级别不同,以及安全级别更高的物联网设备应用场景,如图12所示,除了在本地实现了UID 绑定固件的机制,创芯工坊也支持用户通过创
芯工坊服务器或自建服务器,自行实现授权算法,
从而真正
实现”一芯一机一密
”!
图9PowerWriter 离线授权随机矩阵
图11PowerWriter 端ICWKEY 通信配置
图10ICWKEY 授权流程
图12创芯工坊加密机制流程
(下转第49页)
4总结
MCU 的发展是硅基芯片和软件的共同成果,缺一不可!
嵌入式开发方案的交付,
离不开程序固件,而随着互联网的渗透以及物联网的行业落地,在市场价格竞争和交付效率压力面前,
半导体行业从业者(从芯片原厂、方案集成到渠道通路)都面临巨大挑战和改变:传统的单兵出击变为协同作战,传统的PCB 交付变为程序软件授权,传统的芯片贸易变为集成方案以提升附加值。

所有的改变都需要基于“信任与安全”的前提,而这就是创芯工坊基于互联网技术,
结合硬件产品,提供更为完善的本地化安全交付和安全烧录方案的初衷
参考文献
[1]STM32官网
:https:///content/st_com/zh/stm32trust.html
作者简介
丘宁冰,创芯工坊联合创始人,多年半导体通路及市场经验,2018年联合创立创芯工坊科技,致力于为中国嵌入式开发者提供安全、高效、经济的方案交付平台和硬件产品
图9时钟模式测试波形
图8脉冲模式测试波形
3小结
本设计应用一款国产自主可控DSP 上,定时器输出有脉冲模式和时钟模式,定时器内部脉冲宽度、
时钟来源、计数周期、输出是否反向等都可通过软件配置的,并有中断输出。

此设计为28nm 工艺,经过前端设计、后端物理设计、验证、流片封装、测试等流程,最终在测试板上测试功能正确,和设计一致,并且已经批量应参考文献
[1]ADSP-TS201S:TigerSHARE Embedded Processor Obsolete Data Sheet (Rev.C )Ducumentation Errata,,2006
[2]64-Bit Timer (Timer64)for KeyStone Devices User ’s Guide,.,2012
作者简介
马强,高级工程师,中国电子科技集团公司第38研究所/安徽芯纪元科技有限公司,主要研究方向:数字集成电路设计。

周乐,高级工程师,中国电子科技集团公司第38研究所/安徽芯纪元科技有限公司,主要研究方向:数字集成电路测试开发。

上接第39页。

相关文档
最新文档