0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MCU安全系统的设计与应用

电子设计 来源:郭婷 作者:电子设计 2019-02-06 10:40 次阅读

特别是在医疗和军事应用中,数据安全性和设备的持续安全运行至关重要。 MCU制造商具有内置的众多功能,如果使用得当,通常可以检测并响应设备故障,以及存在未经授权的代码。本文将研究领先的半导体供应商使用的一些硬件安全功能及其检测和响应异常的策略。

什么是安全性?

安全系统基本上是一个无法被未授权方复制,损坏或接管的系统。虽然这通常被认为是防火墙或软件问题,但MCU制造商正在越来越多的内置硬件安全措施,可以帮助您防止,检测或最坏的情况从嵌入式系统的攻击中恢复。在嵌入式设计中需要考虑安全性的三个方面:

机密性适用于您无法承受的密码或加密密钥等信息。硬件加密模块可以极大地提高数据机密性。

完整性对于正在处理的数据以及MCU的不同组件,特别是闪存以及根表和结构至关重要。 MCU具有各种启动例程,旨在检查片上存储器和外设的完整性。

真实性。如果你不能确定数据的完整性,至少要确保它是真实的,也就是说,攻击者没有改变它。

安全启动

几乎所有的MCU都至少检查过首次初始化或从低压状态恢复时的操作完整性。这些检查在上电复位(POR)或掉电复位(BOR)期间发生,但在正常操作期间也可能由于访问冲突而触发复位。某些MCU在启动时可能会进行进一步的系统检查。

德州仪器TI)的MSP430 MCU是首批采用超低功率外壳的产品之一。 MSP430G2230IDR不是专为大量网络应用而设计的,它包含专用的安全功能。 MSP430的闪存控制器报告访问冲突,以响应任何错误的写入闪存的尝试。此外,任何对高字节中除0A5h以外的任何值的FCTLx寄存器的写操作都会被报告为安全密钥违规。看门狗定时器也是如此。当MSP430首次上电或VCC在掉电事件后重新上电时,会产生上电复位(POR)信号,从而产生上电清零(PUC)信号。如果PUC来自POR,则芯片开始正常初始化,激活CPU和外设。但是,如果看门狗定时器或闪存控制器生成PUC信号,报告安全密钥违规(图1),则设备将保持在复位状态,直到问题得到解决。

MCU安全系统的设计与应用

图1:MSP430中断优先级(由德州仪器公司提供)。

内存保护

检测篡改看门狗定时器或闪存内容的企图是防止嵌入式系统接管或至少防止数据损坏的关键。但是,也可以简单地防止攻击者首先访问您的启动代码。 MSP430包含一个安全保险丝,可保护编程到闪存中的代码。

如果第三方无法读取或写入MCU上的嵌入式闪存,则可以有效防止它们篡改设备。瑞萨RX631提供多种保护设置,以防止第三方访问片上闪存(图2)。它们提供三种类型的保护:

ID代码保护 - 在启动模式下启动MCU并与PC等主机设备建立串行通信接口(SCI)连接后,执行身份验证阻止第三方连接和编程,读取或擦除片上闪存。

片上调试器ID代码保护 - 在单片机模式或用户启动模式下启动MCU后并且与片上调试器建立连接,执行ID认证以防止第三方连接和编程,读取或擦除片上闪存。

ROM代码保护 - 当使用PROM编写器,第三方无法编程,读取或擦除片上闪存。

通过分配控制代码,ID代码或ROM来启用各种保护功能码。控制代码和ID代码分配给0xFFFFFFA0,ROM代码分配给0xFFFFFF9C。尝试连接时执行身份验证;如果验证失败,则不允许连接,从而阻止读取,编程或擦除片上闪存。

MCU安全系统的设计与应用

图2:RX631保护设置选择表(由Renesas提供)。

嵌入式开发人员需要开发一种策略来检测尝试写入未分配内存部分的代码。一种方法涉及用未定义的指令填充空白存储器。当非法代码尝试访问此内存时,它将生成未定义的指令中断,提醒CPU采取纠正措施。

MicrochipPIC24H MCU为程序闪存提供引导和程序安全性(CodeGuard)。 PIC24H MCU支持数据RAM保护功能,可在与引导和安全代码段安全性结合使用时保护RAM段。与软件加密库配合使用时,CodeGuard Security使多方能够在单个芯片上安全地共享资源(内存,中断和外设)。

启用后,BSRAM(引导段的安全RAM)只能从引导段闪存代码访问,而SSRAM(RAM的安全RAM段)只能从安全段闪存代码访问。任何尝试更改受保护段中受限制的位置都会导致安全性重置。

Well ARMed

大部分MCU基于ARM内核,提供各种硬件安全功能,芯片供应商可以构建这些功能。

较大的MCU可能使用ARM®Cortex™-A系列处理器,其中包括TrustZone安全扩展。 TrustZone硬件架构(图3)对硬件和软件资源进行分区,使它们存在于两个域中:所谓的敏感资源安全世界和所有其他领域的普通世界。这两个世界通过支持TrustZone的AMBA3-AXI总线结构进行通信,该结构在两个域之间创建了一个强大的边界边界,确保Normal World组件无法访问Secure World资源。

MCU安全系统的设计与应用

图3:ARM TrustZone硬件架构(由ARM提供)。

TrustZone架构允许单个核心通过称为监控模式的上下文切换运行两个虚拟处理器(每个域一个),严格控制对其的访问以确保两个域的安全性。您可以在Secure World中运行单独的安全操作系统,也可以在其中放置同步代码库。还可以实现一个安全的内核,该内核可以运行多个同步的Secure World应用程序,与普通世界中发生的情况无关。

536 MHz Atmel SAMA5D3 MCU基于Cortex-A5,集成了128 KB RAM,128 KB闪存和高数据带宽架构。凭借其安全启动机制,用于加密的硬件加速引擎(AES,TDES)和散列函数(SHA),SAMA5D3可确保反克隆,代码保护和安全的外部数据传输。

能够对两个操作系统进行分区可以提供出色的安全性,但是这条路线会带来成本,复杂性和代码大小等问题。 MCU更常用于Cortex-M系列处理器,这些处理器针对低成本,低功耗,混合信号嵌入式应用进行了优化,如智能计量,汽车和工业控制系统,便携式消费产品和医疗设备。 Cortex-M4,Cortex-M3和Cortex-M0 + MCU包括一个可选的内存保护单元(MPU),可提供细粒度内存控制,使应用程序能够实现安全权限级别,并在任务中分离代码,数据和堆栈 - 任务基础。 ARM许可证持有者通常会实施其他安全功能

Cortex-M4处理器(图4)是M系列中最大的处理器。为了安全起见,它们提供可选的8区MPU。如果在没有所需权限的情况下访问内存区域,则会引发权限错误,触发不可屏蔽中断(NMI),启动RTOS或应用程序代码的保护操作。 MPU特别适用于必须保护某些关键或认证代码免受其他任务不当行为的应用程序。

MCU安全系统的设计与应用

图4:ARM Cortex-M4框图(由ARM提供)。

除了MPU之外,STMicroelectronics的基于Cortex-M4的STM32F2 MCU还具有CRC计算单元,可验证数据传输或存储完整性。 CRC计算单元帮助在运行时期间计算软件签名,以与在链接时生成并存储在给定存储器位置的参考签名进行比较。

Cortex-M3处理器基本上是没有DSP指令的Cortex-M4和一个(可选)浮点单元。德州仪器(TI)的Stellaris M3系列包括Cortex-M3 MPU以及只能在特权模式下访问的系统控制模块(SCB)寄存器。此外,闪存控制器(FMC)允许您以2 KB的块为基础应用闪存保护。

Silicon Labs基于Cortex-M3的SiM3C167 Precision32 MCU具有寄存器锁定和锁定机制,可防止任何从固件中不期望地访问外围设备(图5)。必须写入一个密钥序列,以便KEY寄存器修改PERIPHLOCKx中的任何位。随后对KEY的任何写入将禁止PERIPHLOCKx的任何访问,直到通过KEY再次解锁为止。如果外设寄存器被锁定,则所有写操作都将被忽略。无论外设的锁定状态如何,都可以始终读取寄存器。产品培训模块“Precision32 ARM Cortex-M3 MCU简介”提供了对产品的更多信息。

MCU安全系统的设计与应用

图5:Precision32外设锁定方案(由Silicon Labs提供)。

低功耗Cortex M0 +处理器还包括可选的8区MPU,可用于更大的同类产品。飞思卡尔基于Cortex-M0 +的Kinetis KL02增加了安全电路,以防止未经授权访问RAM和Flash内容。当Flash安全性处于活动状态时,SWD端口无法访问MCU的内存资源。

恩智浦LPC4350在单芯片上集成了Cortex-M4处理器和Cortex-M0协处理器。虽然微小的Cortex-M0缺乏安全功能,但较大的内核占用了空间。除了MPU之外,LPC4350还提供硬件来保护存储的数据内容,并加速数据解密,数据完整性和原始证据的处理。其AES引擎支持128位ECB/CBC解码和CMAC哈希计算。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19349

    浏览量

    230310
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17185

    浏览量

    351740
  • 寄存器
    +关注

    关注

    31

    文章

    5357

    浏览量

    120701
收藏 人收藏

    评论

    相关推荐

    如何使用TI新的SimpleLink MCU平台创建强大的楼宇安全系统

    预算,安全系统将能够在家庭或建筑物内覆盖更远的距离。结论设计安全系统可能具有挑战性,尤其是涉及到许多连接选项,网络安全性和性能时。TI的下一代无线微控制器(MCU)可灵活支持Sub 1
    发表于 08-03 14:38

    安全系统功能设计怎么实现?

    新的国际标准和法规加速了工业设备对安全系统的需求。功能安全的目标是保护人员和财产免受损害。这可以通过使用针对特定危险的安全功能来实现。安全功能由一系列子
    发表于 08-01 07:17

    安全系统需要保护什么?

    新闻总是乐于报道安全系统遭到攻击的事件:操作系统漏洞、非法入侵***网络、笔记本电脑的*帐户信息被窃等等。安全性不仅仅涉及到笔记本电脑和服务器,嵌入式领域也越来越关注安全性问题,例如交
    发表于 08-06 08:01

    求大坝安全系统监测的labview程序

    毕设要用labview做一个大坝安全系统监测,有大神会吗,帮帮忙,谢了
    发表于 05-08 21:39

    用于低端/电力无线家庭安全系统系统解决方案

    用于低端/电力无线家庭安全系统系统解决方案。该设计实现了用于入侵传感器信号加密的HCS200编码器,一个用于传感器监控和RF信号启动的PIC12C508A PIC MCU,用于解密接收入侵传感器信号的HCS515解码器和用于基
    发表于 07-20 08:44

    如何设计功能安全系统

    如何简化安全系统的设计?
    发表于 01-28 07:29

    未来车载安全系统的主题和目标是什么?

    未来车载安全系统的主题和目标是什么?
    发表于 05-12 06:35

    TPM是否可以作为嵌入式信息安全系统的主控?

    目前想开发一个嵌入式信息安全系统,实现建立TLS连接以及密钥和证书的安全存储以及日志的安全存储,类似于HSM。目前硬件上HSM集成在MCU中,成本太高且资源过于浪费,因此考虑使用TPM
    发表于 10-23 09:17

    车辆安全系统电路图

    车辆安全系统电路图
    发表于 03-19 10:14 936次阅读
    车辆<b class='flag-5'>安全系统</b>电路图

    汽车安全系统分析

    如今,汽车安全系统已从被动形式发展到主动形式。在传统的安全带、安全气囊等汽车被动安全系统之外,为避免意外事件发生而开发的汽车主动安全系统,如
    发表于 07-09 11:36 1001次阅读

    Arduino安全系统

    电子发烧友网站提供《Arduino安全系统.zip》资料免费下载
    发表于 11-16 09:30 0次下载
    Arduino<b class='flag-5'>安全系统</b>

    使用BOLT的实时安全系统

    电子发烧友网站提供《使用BOLT的实时安全系统.zip》资料免费下载
    发表于 11-23 11:33 0次下载
    使用BOLT的实时<b class='flag-5'>安全系统</b>

    什么是机械安全系统?机械安全系统需要什么?

    提高机器安全性,就是提升企业的效益。现如今,随着全社会安全意识的提高,越来越多的机器和生产线都标配了安全系统。一个标准的机械安全系统是什么样的?怎样才可以得到国际
    发表于 12-29 12:00 588次阅读

    Lifi安全系统开源设计

    电子发烧友网站提供《Lifi安全系统开源设计.zip》资料免费下载
    发表于 06-19 10:52 0次下载
    Lifi<b class='flag-5'>安全系统</b>开源设计

    基于远程家庭安全系统的设计

    电子发烧友网站提供《基于远程家庭安全系统的设计.pdf》资料免费下载
    发表于 10-24 11:29 1次下载
    基于远程家庭<b class='flag-5'>安全系统</b>的设计