首页 > 产品 > 微控制器 (MCU) 和处理器 > MSP432产品培训 >

MSP430

最新课程

热门课程

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保护 那这样的器件将是非常安全可靠的 好 我们现在先来看一下MSP432 MCU上的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当中包含的软件示例 好 今天的培训课程就到此结束 非常感谢您的观看 谢谢大家

大家好 欢迎观看 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保护

那这样的器件将是非常安全可靠的

好 我们现在先来看一下MSP432 MCU上的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当中包含的软件示例

好 今天的培训课程就到此结束

非常感谢您的观看

谢谢大家

视频报错
手机看
扫码用手机观看
收藏本课程

视频简介

MSP432产品培训(七)-安全与防护

所属课程:MSP432产品培训 发布时间:2015.08.17 视频集数:13 本节视频时长:00:16:33
MSP432是TI的MSP430家族新增加的32位产品系列,采用ARM-CortexM4F内核,专注于低功耗和通用微控制器领域。在低功耗和高性能以及增强型外设方面均有突出表现。本次MSP432培训共分12个章节,详细介绍了产品的内核,架构和各种增强型外设,配合小练习,帮助用户迅速了解MSP432产品的性能,快速掌握MSP432产品的使用。
TI培训小程序