- 本课程为精品课,您可以登录eeworld继续观看:
- MSP432产品培训(七) - 安全与防护
- 登录
- 课程目录
- 课程笔记
大家好 欢迎观看MSP432 MCU的产品培训
本次的在线培训是整个MSP432在线培训课程的第七部分
那么在这部分中我们将介绍MSP432的安全防护特性
我们会介绍MSP432提供的AES256的加密引擎
了解几种用于JTAG锁定的机制
还会介绍IP安全防护的一些功能
以及如何在应用已经烧录的情况下在现场安全地进行固点更新升级的操作
MSP432内置的是在MSP430系列里面已经为人所熟知AES256加密引擎
这个机密引擎 它能够实现256位的AES加密
由于这是一个硬件的加密引擎因此它的整个的加密过程不需要CPU的参与
也就是说一旦您的应用中已经加载了密钥和需要加密的数据
AES模块就可以和CPU并行运行
AES256模块它支持128位 129位和256位多种的密钥长度
它并且能够即时的生成一个真正的随机密钥
它也可以离线生成密钥
AES256模块还可以用于一种坏模式的处理
例如 它和OFB ECB以及CBC一起和DMA配合使用
用户就可以据此来配置一个数据信号链
比如 我们可以通过SPI来接受数据它由DMA将数据从SPI的接收寄存器
传输到AES模块来执行解密或者加密
完成以后 再由DMA传输到其他的外设寄存器
这样就可以形成一个于CPU并行运行的数据型号处理链
采用AES256的硬件加密引擎它有两个主要的优势
首先我们的并行引擎就减轻了CPU的负载
那另一个优势是跟软件进行AES加解密相比
我们整个硬件的加减密过程它无论是在速度还是在功耗方面
它都得到了非常大的提升
比如我们用软件加加减密的时候
通常对一个128位的数据加密
它需要在CPU当中执行7000个时钟周期
而现在我们AES硬件的这个加密引擎来执行同样的操作
它只需要190个时钟周期
那大家可以看到 这个对速度的提升是非常明显的
而且这个190个时钟周期它是可以和CPU并行运行的
它的CPU是完全解放出来可以进行其他操作的
那它无论是在速度还是功耗方面都对整个加密操作进行了极大的提升
那在AES中 它引擎对任何需要安全和保密的一些通信应用
比如 我们的RF 我们的UART通信
甚至是故现场更新这样的操作呢 都至关重要
那我们AES256模块 被广泛地用在MSP432的多种的内部引擎中
比如DSR 以及我们后续将有介绍的一些其他的安全特性
从安全防护和保密角度来看 MSP432它能提供两种类型的安全防护
分别是JTAG保护和软件IP保护
JTAG保护能为器件阻断所有外来的JTAG访问
一旦JTAG被锁定之后 用户将是不能再和器件建立任何JTAG连接的
我们也是不能再对器件进行任何的调试 仿真的操作
那另外一种保护机制呢我们称为软件的IP保护
这种保护是帮助软件供应商将存储器当中存放的代码区域给保护起来
其他人包括用户自己都无法再访问这个受保护区域内的内容
这个受保护区域内的内容只能由代码来执行而无法获取它的内容
那我们把这个机制就设为为软件供应商提供的黑盒解决方案
MSP432它将以上两种类型的安全保密机制结合起来使用
它同时拥有JTAG保护和IP保护
那这样的器件将是非常安全可靠的
好 我们现在先来看一下MSP432MCU上的JTAG安全防护
那从用户的角度来看
432上的JTAG防护和MSP系列430中其他器件的JTAG的控制是非常类似的
因为一旦锁住了JTAG 我们用户将无法再通过JTAG来访问到器件
也不能进行任何的调试 仿真的操作
那我们首先用户需要开发代码
然后将这个代码加载闪存当中并且加以调试
最后就调用JTAG锁定机制来阻断所有一切通过JTAG的通讯口对器件的访问
那这样器件就被保护起来以免受到外部的访问
只有内部的应用代码 它仍然可以访问器件内的所有存储区
如果需要恢复对器件的JTAG访问
那我们只有对器件实行一个整体的擦除或者恢复出厂设置这样的操作
无论是哪一种操作 它都需要先清除器件上所有存储的内容
然后才能重新通过JTAG来访问器件
那这样就能确保用户的所有的相关软件和应用代码都会被彻底地清除
而不会被任何人通过JTAG来盗窃
那对于已经锁定阻止任何JTAG访问的器件
它的固件仍然可以通过BSL来进行现场更新的
那这时候用户就可以根据需要选择进行一个安全的固件更新
或者是一个非安全的固件更新
那有关这方面的内容 我们在后续部分介绍BSL的时候会进一步地讲解
现在我们再来具体地看一下软件的IP保护
前面提到过IP保护这种机制能让软件IP供应商安全地提供特定黑盒解决方案
让最终用户无法读取机密IP代码的
它只能执行一些IP代码 因此无论是调试器还是用户的其他的应用代码
它都不能够读取受IP保护的这部分的存储器的内容
它只能调用受到IP保护的这种存储器内的代码的功能
那MSP432它最多支持4个IP保护区域
好 现在我们来考虑一下某些情况
比如一个用户有4个软件IP供应商
那其中第一的IP供应商 可以经过编程和设置来屏蔽它们的第一个IP保护区
那第二IP供应商 它无法访问第一个IP供应商的IP保护区
但是 它能调用第一个供应商提供的这些代码
第二个供应商他同样可以对第二个IP保护区进行编程
那最终 我们的最终客户或者说最终用户
它都可以调用这4个IP保护区内提供的任何的一个函数功能
但是呢 他们是无法读取其中的任何内容的
那和JTAG锁定相类似
MSP432也提供一种机制
使得客户能够对这种独立的IP保护区域 进行现场的更新
但是 它不能访问到这些内容
那现在图片上展示的就是在MSP432上进行安全防护操作的一个流程
那这个流程机制对于JTAG防护和IP保护设置都是一样的
它同样可以用于BSL的固件更新
我们称呼这个机制为一个跨越启动
那在存储器当中会有一个特殊的区域我们可以称闪存邮箱 叫flash mail box
那通过这个闪存邮箱用户或者应用代码
它可以和启动代码形成一个单向的通讯
那在图片上展示的实例当中
我们讲配置的信息烧录到这个闪存邮箱中
一旦烧录成功 用户就可以执行器件的重启和复位
然后就由启动代码来接管后续的处理
那启动代码这个时候就可以从闪存邮箱当中来读出我们烧录进去配置信息
然后根据这些读出来的命令内容 来调度相应的任务
这些命令内容可能是执行一个JTAG锁定操作
也可能是一个配置IP保护区域
他可能携带代码 也可能不携带代码
那整个操作完成后器件就会被锁藏在JTAG访问后
那IP保护区域也会完全阻断外界的访问
只有BSL是可以按照用户的需求来完成进一步的操作的
同样这样一安全调度的机制也可以用于固件的现场更新
在JTAG访问已经被阻断的情况下
我们可以通过BSL对闪存邮箱来进行编程
以此来创建一条通讯的通道
在用BSL主机向器件的启动代码来传输保密的配置信息
以便启动代码能调度到相应的任务完成存储器中固件的更新操作
MSP432器件的一个固件更新机制当中
它嵌入了一个多层次的安全防护控制
第一是为引导加载程序 BSL加上一个特定的密码保护
那这样以来 无论器件是否已经执行了JTAG和IP安全防护
它BSL都必须提供密码才能对器件执行固件更新操作
如果这个时候器件已经锁断了JTAG和SWD的访问
用户将会获得一个用于加密的密钥
那在将需要更新的内容传输和烧录到器件之前
BSL先通过这个密钥对我们所需要传输的内容进行加密
因此只有在固件初始化编程的时候
我们才可以共享到这个密钥
BSL主机必须使用这个密钥对传输的更新内容进行加密
这样BSL的通讯才可以被视为是一个安全保密的
它可以避免BSL的通讯线路收到窥探
从而导致数据的泄露
在经过加密的一些更新内容传输到器件以后
BSL它也同样要通过我们上一章介绍闪存邮箱的机制来启动一个跨越系统
这样启动代码才能从闪存邮箱当中获取信息
并且用预先协商好的密钥对我们传输到的更新内容进行解密
然后再将解密后的固件来更新烧录我们的器件的闪存当中
那在整个操作完成之后
器件就可以重启 并且运行新的部件了
那在已经加密密钥的情况下
受IP保护的区域也同样可以进行代码的更新
这一点是至关重要的
因为这个能让我们IP供应商安全地来进行一个现场的固件更新
而同时又阻断了最终的用户访问到实际的更新内容
因此同样的 也仅在IP保护区域在初始编程的时候它才会共享到这个密钥
然后我们的IP供应商 它就向最终用户提供一个已经使用密钥加密的更新内容
最终用户通过BSL来访问器件 将加密后的更新内容传输到器件
那同样的 使用这个跨越启动机制
从闪存邮箱当中来获得相应的信息
启动代码会使用都同样的密钥对收到的更新内容来进行解密
并且将这些内容烧录到一个受IP保护的存储区
那在整个操作过程中
只有对这个IP保护区进行配置的这个IP供应商才可以获得这个密钥
在整个操作完成之后 就可以去器件执行一个复位操作
然后我们就可以使用一个更新过的受IP保护的代码
那整个器件的安全和IP的保护都是一个非常复杂的主题
那么在今天的培训课程当中
我们只是简要地介绍了一下MSP432 MCU它的安全特性
我们非常强烈地建议您能够对这个问题来做进一步的研究
可以查看不同的应用手册
和专门用于展示如何实现MSP432软件安全
以及如何对MSP432配置安全更新或者BSL编程的软件示例
所有的这些资源您都可以从MSPWare上获取
现在展示的这张图片就可以告诉您从哪里能找到相关的应用手册
以及在MSPWare当中包含的软件示例
好 今天的培训课程就到此结束
非常感谢您的观看
谢谢大家
课程介绍
共计13课时,2小时30分32秒
猜你喜欢
换一换
推荐帖子
- 【晒样片】+两个小伙伴:用于低功耗可穿戴应用的符合 Qi 标准的无线充电器解决方案
- 本帖最后由 fyaocn 于 2015-1-26 15:55 编辑 1、用于低功耗可穿戴应用的符合 Qi (WPC) 标准的无线充电器是用于设计适合低功耗可穿戴设备。其中包括符合 Qi 标准的无线接收器bq25003 和超低电流单节锂离子线性电池充电器 (bq25100)。这次申请的样品就包括了这两种芯片,25003是无线接收器,通过环形线圈的互感效应,接受电磁耦合能量;...
-
fyaocn
TI技术论坛
- DSP与普通MCU的区别
- 考虑一个数字信号处理的实例,比如有限冲击响应滤波器(FIR)。用数学语言来说,FIR滤波器是做一系列的点积。取一个输入量和一个序数向量,在系数和输入样本的滑动窗口间作乘法,然后将所有的乘积加起来,形成一个输出样本。 类似的运算在数字信号处理过程中大量地重复发生,使得为此设计的器件必须提供专门的支持,促成了了DSP器件与通用处理器(GPP)的分流: 1 对密集的乘法运算的支持 G...
-
黑衣人
DSP 与 ARM 处理器
- LaunchPad生成PWM的很短的一个程序,不知道问题在哪里
- 本帖最后由 shiqiaocanxue 于 2015-1-16 09:59 编辑 #include #include #include "inc/hw_memmap.h" #include "inc/hw_types.h" #include "driverlib/sysctl.h" #include "driverlib/rom.h" #include "driverlib/g...
-
shiqiaocanxue
微控制器 MCU
- NRF905通讯
- 用两个实验板做NRF905通讯的实验:发送机发送完后变为接收状态,接收机接收成功后变为发送状态,实现两个板子的循环通讯。但进行几次后,出现通讯中断的情况,我想用定时器来定时检测接收机是否成功接收,如果没有接收到,发送机就再发送。除了这个方法,不知道大家还有什么好办法...
-
zzbaizhi
微控制器 MCU