牛卧堂MCU技术交流

标题: 新唐专家谈安全:Part 2 物联网资安威胁拉警报 MCU终端设计... [打印本页]

作者: admin    时间: 2018-6-26 12:28
标题: 新唐专家谈安全:Part 2 物联网资安威胁拉警报 MCU终端设计...
新唐专家谈安全:Part 2
物联网资安威胁拉警报 MCU终端设计内外皆安
作者:新唐科技股份有限公司 微控制器应用事业群 凌立民技术经理

在之前的文章里,我们谈到有关物联网环境内终端装置设计,可以漏斗型思维做为晶片需求选择标准,亦应用场景愈靠近漏斗底部,安全漏洞愈大,因此MCU的安全级别将愈高;反之,如应用场景并无特别不可预期的资安风险,则可选择漏斗中上层的MCU产品;这并非冒着风险牺牲安全,而是考量实际应用场景,寻找效能与成本最佳的MCU组合,笔者认为功能齐备与毫无安全漏洞,两者将相互冲突,另在物联网架构下,依赖终端装置来完全确保资安也是值得探讨的课题。
图一:物联网安全设计思维

有一个传统的MCU应用系统设计课题常被提起,那就是智慧财产权的保护。早期的安全晶片设计着重于关键资料的保护,例如Smartcard内部储存的个人识别与电子交易凭证……等资料,可视为使用者资产的资讯。同样地,运行于MCU内部的软体,也是产品开发商的重要资产,特别在步入物联网时代后,关键的资料可以被放到云端,终端产品不一定需要使用高安全级别MCU保护,但如果产品容易被完全复制(Device Clone),这些伪装置将轻易连网进入服务系统,造成巨大安全漏洞,衍生问题如瘫痪服务网路、窃取云端服务器资讯、窃听网路内部通讯……;所以智慧财产权的保护,是一严肃课题。

如何做到资产保护
参考Arm公司对MCU应用系统攻击的分类,大致上可以分成下述三大类:
图二:Arm针对MCU应用系统遭受攻击的主要项目分类

l 通讯攻击Communication Attacks:
- 中间人攻击Man in the middle (MITM)
- 强度弱的随机乱数产生器 Weak random number generator
- 代码漏洞Code vulnerabilities
- 传输层安全协议Transport layer security (TLS)
l 软体攻击Software Attacks:
- 缓冲区溢位Buffer overflows
- 讯号中断Interrupts
- 恶意软体Malware
l 物理攻击Physical Attacks:
- 故障注入攻击Fault injection
- 旁道攻击Side Channel Attacks (SCA)
- 探测、聚焦离子束显微系统Probing, Focused Ion Beam (FIB)

想当然,Arm也提供了相对应的防范技术,它们分别是:针对通讯攻击的mbed OS所含的TLS、可防范软体攻击的TrustZone、能够防御物理攻击的SecurCore晶片架构。然而Arm毕竟是以贩售IP为主的公司,实际的晶片规格与真实防护程度仍需由晶片设计业者自行决定;笔者认为以物联网安全为考量的MCU应用必须至少能够兼顾通讯与软体层级的安全防护,同时还要有足够的能力保护软体知识资产。
表一:Arm公司针对MCU应用系统提出的安全防范方案

TrustZone for ARMv8-M
Arm公司在2016年10月推出了Cortex-M23与Cortex-M33两款新的CPU核心,最大的特点就是添加了TrustZone for ARMv8-M技术——以位址的属性(Memory Address)来区别信任区(Secure World)与非信任区(Non-Secure World)。
图三:TrustZone for ARMv8-M安全属性范例
(深灰色区块:Secure;黑色区块:Non-Secure)

由图三我们可以进一步了解到TrustZone的导入可以让晶片内部CPU运行时根据位址属性之区别做到以下行为:
l Separation and Access Control
- 可将不同区的软体和资源(主要指硬体)区隔并共用同一CPU
- ARMv8-M并不需要软体监视程式(Software Monitor),所以程式于不同区的转换运行程序比起ARMv8-A要简单,可降低Cortex-M CPU的负担
l Trusted Software
- 将部分核心软体演算法放至Secure World (类似secure MCU的配置)
- Non-Secure World的程式要跟Secure World的程式沟通,一定要透过Secure Gateway (类似开白名单的做法)
l Trusted Hardware
- 将部分机敏资料储存区与硬体资源固定归到Secure World

为此,我们可以发现MCU的安全保护不仅限于CPU本身,更扩大到了系统汇流排 (System Bus)、周边连接介面 (Peripheral Devices)、记忆体控制 (Memory Controller)。这样的架构并不是简单导入ARMv8-M的CPU IP就够了,因此Arm公司还增加了两个元件:IDAU (Implementation Defined Attribution Unit)和SAU (Security Attribution Unit)。为了MCU整体系统的顺畅运行,业者仍有需要增加如SCU ( Secure Configuration Unit) 与修改FMC (Flash Memory Controller)的设计才能达到如下图的安全性:
图四:TrustZone for ARMv8-M的MCU范例架构

TrustZone + Execute-Only Memory (XOM)
基本上TrustZone强调的是对Secure World内部资产的保护,然而近年来的MCU应用发展愈来愈多元,加上物联网兴起势必催生更多的应用产品,这些产品的开发将有赖更多的知识汇集,有时并不是一两家公司就能完成,在创新需求又得兼顾IP的保护原则下,MCU的应用设计保护一直是个问题。MCU内部Secure World保护已经解决大部分的问题,但有时候仍有Non-Secure World的需求,毕竟一分二的TrustZone技术只是不同的CPU状态,实际的商业合作中可能会遇到Non-Secure不希望让Secure读取的情况,这时XOM便是一个经济的搭配TrustZone for ARMv8-M的技术;它不像Java一样要放个VM增加系统资源需求并会拖累到MCU的效能,还能够同时保护各个程式区块的IP,使其不被其他区块的程式,特别是Secure区块的恶意程式整包读取,并且Secure和Non-Secure区域都可以应用XOM技术。
图五:XOM架构功能说明

完整的知识产权保护
有了TrustZone与XOM的技术,实际上对MCU内部CPU运行而言应有相当程度的安全保护,但如就实际的MCU应用系统而言仍有相当的不足,诚如先前所提到的兼顾通讯安全与软体资产的保护,于是我们看到了一些额外的需求,诸如:
l Secure Bootloader
检验MCU内部Flash Memory内容是否遭窜改,方法为检验记忆体内容的MAC值(Message Authentication Code),并提供合法使用者权限允许其对Flash Memory进行更新,以实现Hardware Root of Trust要求。
l Hardware Cryptographic Accelerator
为了减轻CPU的负担并增加解密演算法的执行速度,愈来愈多的MCU增添了密码加速器,常见的种类有AES、DES/3DES、SHA、HMAC及PKI常用的RSA与ECC,另外真实乱数产生器(TRNG, True Random Number Generator)也是必须包含在内。
l Flash Lock
先前提到的TrustZone与XOM都皆针对MCU内部进行安全防护,但如透过MCU外部依然有方法可读写Flash memory资料,例如除错器 (ICE, In-Circuit Emulator)和Flash memory的烧录介面如UART等,所以锁定Flash memory(Lock)也是常见的方法。
为了实现并方便锁定Flash memory,利用Key Protection ROM (KPROM) 储存管理密码是一种简单又安全的方法,这份密码被设定并存放在晶片内部特定区域后即无法被任何程式读取,只能经由硬体电路比对。
l Secure Debug
自从TrustZone问世,传统的Debug有了一些变化,最基本的需求是Secure World内容愿不愿意让Non-Secure World开发者进行追踪,因为这是属于MCU外部路径,可以配合前述Flash Lock进行管理,弹性选择开放区域进行除错工作。
l Tamper Resistance
使用者可根据使用环境的需求,依据骇客 (攻击破坏者) 需要花费之时间、特殊实验室设备和专业知识来设计MCU之入侵防范 (Anti-tampering)层级:
l System Level:终端产品机构打开入侵
l Device Level:可视为PCB层级,骇客经由产品电路板进行MCU管角讯号分析,进而进行软体行为分析或关键资讯窃取,业界称为「Semi-Invasive Attack」
l Chip Level:晶片实体入侵,属于传统安全MCU的标准设计要求,必须达到防范安全实验室等级入侵,即「Invasive Attack」

综上所述,我们将TrustZone for ARMv8-M Secure MCU的功能与特色以下图来做简要阐明:
图六:实用Cortex-M23/33 TrustZone for ARMv8-M架构范例

在2017年三月于德国纽伦堡举行的Embedded World Expo会场中,新唐科技公司展示了采用ARMv8-M架构的NuMicro M2351 MCU,除了搭载了于本文介绍的各项安全特色外,更与指纹厂商合作推出内建辨识验算法、安全保护功能且易于二次开发的指纹辨识方案(Trusted Fingerprint Solution),新唐科技表示希望能藉此产品,吸引更多厂商加入TrustZone for ARMv8-M的应用开发,一起建构安全、易于联网且能够改善大家生活品质的智慧安全生活环境。
图七:在Embedded World 2017首次亮相的NuMicro M2351指纹辨识方案





欢迎光临 牛卧堂MCU技术交流 (http://nuvoton-mcu.com/) Powered by Discuz! X3.2