MCU安全的意识需要培育 解决痛点的方法多种多样
2021-02-09迎九
迎九
1 MCU安全的意识需要培育
今天物联网设备面临的安全问题和以往有很多不同,因此,ST加强了安全方面的投资。2015前后,ST的安全芯片和MCU(微控制器)平台同属于一个大部门,因为当时发现黑客已经不止攻击高安全性应用,如银行卡、身份证等,而是已经逐渐扩展到大众层面。例如,四五年前已有智能家居的智能音箱、智能视频被攻破的现象,很多客户逐渐发现安全隐患的威胁可能使整个网络瘫痪,甚至有一些厂商被黑客挟持勒索。
传统MCU已经有了一定的安全能力,遗憾的是有很多嵌入式开发者不太注重安全问题,或者没有相关的知识和能力去提升安全性,所以在过去四五年中,ST在逐步培育这块市场和教育客户。
由于物联网碎片设备的应用越来越广泛,人们并不知道黑客会从哪个最弱的环节进入,所以格外提升MCU的安全性。
2 STM32WL LoRa无线系统芯片如何保证安全
2020年底,ST推出面向大众市场的STM32WL LoRa无线系统芯片系列产品,其中的WL5采用了双核形态,在M4核之外,又增加了M0+核,好处是可在同样系统中升级一些更需要高安全性的应用,即对客户在安全升级方面有很大的帮助;此外,还增加了先进的安全特性。
具体讲,STM32WL是基于传统STM32平台做的一些升级。实际上,现有STM32上已经有了应有的安全防护,如图1,黑色字体描述现有STM32产品线上都有的安全设施,如电源监控、闪存保护、时钟安全、入侵监视、软件IP等,这些都是现有STM32支持的功能。
在此基础上,双核可提供更高的安全功能,包括M4和M0+安全的硬件隔离,安全启动代码保护等。而且,在增加这些更高安全的双核硬件版本时,ST的客户群可以迅速从现有平台升级,引导开发者快速地把安全理念植入在其产品的设计框架中。
对开发者来说,双核特别强调4个主要特性:数据加密、安全下载、固件保护和身份验证。这4个主要安全特性是ST在过去十几年与开发者互动时,在产品安全设计开发中精选出来的,被认为是解决开发者痛点的主要关键。
1)数据加密
数据加密推动了安全密钥管理服务KMS系统,也就是说在芯片中提供了一个特殊的安全域可以存储密钥,以管理系统中不同应用的使用,还可以处理特权,在过去传统通用MCU中是没有这个功能的。
2)固件IP保护
我们的客户群里有很多用户是开发硬件方面的固件来执行芯片上的应用,有很多客户非常担心他们的产品和固件里的IP被盗取、攻破,被黑客窃取。所以在WL5里有一个安全启动(可信根),让他们比较放心地去使用、保护固件,其中有一些特定域,只有这些应用在这些固件内存里通过身份验证过后,才可以执行。
3)安全固件安装或更新
在执行过程中,越来越多的物联网设备各式各样的升级需求一定会持续发生,即用户可能在这个过程中要做代码的更新、固件的更新,在目前环境下这样做非常困难,而且也比较耗时、耗力、耗资源。很多设备一上市,就很难做固件升级,增加了整个生态维护的难度。为此,WL5有2个特点:①嵌入式安全固件安装(SFI);②SBSFU,即在此基础上给了一个可定义的现场更新,可执行安全的平台升级。除了这2个固件,ST还提供参考代码来支持用户更加快速的使用,让他们能更好地去实现这个功能。
4)加密/密码
这几个基础必须嵌入在具有较强安全的密码和加密模块里,例如ST有一个比较强的硬件加密协处理器,能增加数字签名,保证现有MCU在资源有限的条件下也能达到加密的功能和能力。
说到最重要的现有客户,在做应用开发固件升级时,他們知道有关安全启动和信任链,而信任链的构思不是最新的,但真正在MCU上执行是近几年的事。在芯片上需要有一个机制,让这些芯片在一开始执行或在复位时必须执行一个安全启动。在安全启动机制下,芯片会自己检查是否芯片上的寄存器或外设被篡改过。在这些措施下,会通过第2步骤去认证这些应用程序是否允许认证它的合法性,如果这些都正常,那么这款应用才可以在特定域里开始应用,这将大大减少可破坏性或出错,或者让黑客有机会去截取或让整个系统崩溃掉。所以信任根在安全构思中是一个极重要的环节。ST还在不断地培育开发者、工程师,更快地去提升他们的安全理念。
由于ST有了双核的推动,在保持最大灵活性时,这些应用优势,如SFI、SBSFU还有KMS,可以将应用的优势发挥出来。以前没办法或比较困难,或需要很高费用、能力才能实现的功能,现在开发者可以更加方便、更加容易地实现。
下面五点对任何物联网设备都非常重要:①开发者需要有灵活性实现不同等级的安全,因为设备本身所保护的数据程度不同,不可能花费很高的费用只用非常初级的安全功能来保护它;②有关IP的保护,当越来越多的开发者在他们的中间件或固件中实现不同功能、性能时,这些IP的保护将非常重要,以便有较有好的方法保护他们的知识产权。接下来3个是有关设备的可复制性、可攻击性、可信赖性的升级,也是未来物联网设备所必须要具备的功能,这些都会很完善、很容易提供给开发者。
3 MCU全生命周期的安全管理
在整个芯片研发过程中,安全生命周期包含在芯片的设计、流片、测试,以及芯片给开发者后的测试工具,如果一旦受到攻击,它会进行复位,或到某一程度将闪存上的代码全部擦除掉,这是目前ST MCU能够进行处理的方面。
在后面的生命周期,最重的环节是自我毁灭。在安全芯片中可以有这个功能,但是在传统的MCU里还没有类似的功能,这取决于开发者是否要把这一点植入到他们的研发或生命周期管理中。
4 安全有多种途径
既然Arm TrustZone很好,为何STM32WL LoRa无线系统芯片没有用到TrustZone呢?
实际上,TrustZone概念一开始是Arm提出来的,是实现安全功能最基本的代码隔离或安全性隔离的思路。在过去十几年里,TrustZone已经在不同的安全芯片里得到了认可,很多厂商把TrustZone 用在了安全芯片上。
STM32通用MCU过去用的是M核,是不带TrustZone的,所以在Cortex-M的基础上,如果要实现类似TrustZone——硬件上物理隔离的话,要采取另外的手段,就是基于双核的设计理念,把TrustZone的理念(并不是TrustZone本身)植入到传统通用MCU里。
由此可见,要实现安全方法有很多,TrustZone只是其中的一种。此外,还有防火墙、专有代码读保护(PCROP),以及唯一启动入口、BootLock等,还有用户安全存储区等。STM32有一系列安全相关的硬件,结合双核,其他不是双核的也有这样的功能,能够实现或满足客户要求的安全级别。