TrustZone for ARMv8-M开路MCU安全设计起跑

judy的头像
judy 发布于:周三, 07/05/2017 - 14:02 ,关键词:

文.凌立民

保护软体资产不被滥用

在过去的MCU应用产品开发过程中,最令独立软体开发商或系统整合商头痛的,就是如何确保MCU内部软体资产能受到严谨保护,同时兼顾合作厂商在软体开发上一定的弹性。正如图1中的例子,A​​RMv8-M架构可以把有价值的通讯协定放到TrustZone区域内,基于通讯协定的上层应用能够以不同记忆体位置来放置,方便不同的开发团队进行协同开发,依各自专长领域进行软体制作。此类应用包含短距离通讯协定、音讯编码器、生物辨识核心演算法⋯等。

图1 TrustZone for ARMv8-M可保护有价值的中介软体
图1 TrustZone for ARMv8-M可保护有价值的中介软体

确保每个MCU应用产品都受到信任与保护

在可预期的未来联网环境世界里,连上网路的装置只会愈来愈多,这些装置都会是一个个潜在的破坏入侵点,虽说联网装置不一定需要储存敏感资料而配备安全晶片等级的MCU ,但必须保证功能正常。

有了TrustZone区域,可以把单颗MCU的ID、加解密的Key、软体升级都保护在安全区内,而每一次开机时亦都可进行自我检查,确保装置本身内部运行软体没有遭到窜改,即从开机根源点就是一个可信任(Trusted)的进入点,如此才能称得上是功能正常保证。图2的说明给了示意范例,此类应用包含跟媒体版权有关,如DRM(Digital Right Management),支付及联网环境中的节点间之识别与通讯等应用。

图2 TrustZone for ARMv8-M提供Root of Trust
图2 TrustZone for ARMv8-M提供Root of Trust

安全地使用MCU控制周边装置

在未来的智慧生活环境里,可预见的是愈来愈多基于MCU开发的应用产品都有可能透过远端指令进行操作,而这些负责控制的MCU要担负的工作除了驱动真实环境中连接的硬体单元,更要确保指挥驱动的软体正确地运行,所以驱动程式跟周边单元互动必须有安全保证(如图3)。

图3 TrustZone for ARMv8-M确保安全的控制周边
图3 TrustZone for ARMv8-M确保安全的控制周边

发生在去年的第一银行ATM盗领案便是一例,由于大部分的银行ATM网路连线作业都被视为安全的内网环境,只要是内网环境的程式发出命令,机器就必须执行动作的机制已充分凸显安全不足,针对一银的例子,如能增加一道针对周边驱动执行前判别是否命令为恶意程式发出,则可阻止ATM机器远端受控吐钞,甚至可以主动发现问题而揪出遭骇客植入系统的恶意程式,除了能做到资讯安全(Security)更实现了功能安全(Safety)。

保障核心软体的完整性

近年来由于MCU的市场由传统的8、16往32位元移动,愈来愈强大的运算能力也配备了丰富的周边资源,如更高容量的Flash、RAM记忆体,使得小型MCU应用跑作业系统(Operating System, OS)的机会变多了,这些核心软体不管是OS或Firmware都可能有被恶意程式攻击的风险,再者由于在嵌入式系统中,对于软体本身并无统一的纯软体安全检验标准,大多为产业界标准,如车界的ISO 26262,工业界的IEC 61508,其余如医疗用品之FDA,未来可能会发展的智慧型电表⋯等,这些标准都使软体开发人员必须花费相当的心力。

有了TrustZone for ARMv8-M后,虽说无法马上依靠该功能做到符合所有业界规范标准,但其内建硬体TrustZone的做法可以相当程度地减轻软体开发人员的心力,让核心软体的建构与维护更加有效率,因为ARMv8-M的TrustZone架构可让通过认证的软体受到安全的保护,因其对不需要认证的部分或委外开发的部分提供了缓冲区(Sandboxing),这也方便软体人员针对不同应用的技术支持,例如:可授权予上层应用软体开发商对产品的技术服务,如图4。

图4 TrustZone for ARMv8-M具有Sandboxing Certified Software机制
图4 TrustZone for ARMv8-M具有Sandboxing Certified Software机制

适用并提升MCU多核心系统应用

在未来可见的联网世界里,将会有许多不同规格的晶片需求,对于可能会有的双核心或是多核心MCU架构,有了TrustZone的功能,则能轻易分隔在不同核心上运行的软体权限,轻松地让不同CPU做到负责不同的周边控制,如图5的示意说明,这样的应用譬如MCU搭配一些特殊的类比感测元件、短距离的无线通讯射频前端或触控感测元件等。

图5 TrustZone for ARMv8-M—Leveraging Helper Processor
图5 TrustZone for ARMv8-M—Leveraging Helper Processor

两颗MCU整合成一颗

承前段所述,既然有可能支援多核心,那是否有可能把两颗CPU才能做到的事合并成一颗呢?笔者认为可行性颇高,以未来跟3G/4G/5G有关的物联网通讯的识别与收费问题举例说明,我们知道传统的手机收费方式都是透过SIM卡(UICC Card)识别门号租用对象,人手一支的手机可由人更换SIM卡,但装置本身如果是配置在特定的区域,又或为数量众多或不允许打开机构之设计,那该如何处里更换网路服务商?

所以GSMA制定了embedded SIM或较为广义的eUICC(SIM或MIM: Machine Identification Module)规范,让远端更新eUICC的内容可实现,方便安全的空中管理(Over-the-air)所服务的手机或机器,且不需要人员亲自到门市或派人员到现场进行任何卡片更换,图6举一个租用电信网路服务的ePOS机器为例。不过这个模式的运用是否能达成更有成本优势(Cost Down)或方便产品设计则仍需视实际状况来决定。

图6 采用ARMv8-M架构,内建TrustZone安全技术–eUICC应用范例
图6 采用ARMv8-M架构,内建TrustZone安全技术–eUICC应用范例

以上述ePOS为例,若以TrustZone的Secure区域拿来当模拟eUICC卡用途,non-Secure区域作为产品本身周边控制的主控MCU,则仍需考量是否需要整合后的单颗晶片要过eUICC所需要的认证、成本上是否较现已非常成熟的SIM卡产品有优势则仍待观察,但如物联网是未来趋势,采用ARMv8-M架构,内建ARM的TrustZone安全技术将可提供一个这样的使用模式,毕竟ARM只是IP供应商,MCU供应商还是可以依市场需求发展出适用的产品。

内建安全性有利创新应用

综观前述的多项可能应用场景,可以看出采用ARMv8-M架构,内建ARM的TrustZone安全技术的通用型MCU(General Purpose MCU),可以从零组件的角色通过方便的多方合作开发转变成方案提供者角色(Solutions Provider);再者,其硬体切换Secure和non-Secure的做法,也能提供联网装置在软体开发上达成资料和软体资产安全性的防护,适合未来MCU各类应用的需求,相信此设计将带领MCU应用设计迈向一个便捷、创新、可实现系统安全的未来。

(作者为新唐科技微控制器应用事业群技术经理)

新通讯2017年7月号197期《技术前瞻》

围观 530