首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

芯片安全的相对与绝对迷思

本文来自与非网超级用户

trigger | 就职于世界500强企业

如何定义一颗芯片的安全

从设计制作再到封装

从软件硬件等多维角度出发

而那些主打安全的芯片 是否绝对安全

全文共1870字 阅读时长约10分钟

根据马斯洛需求理论,当满足了温饱之后,人们就会开始谋求更高层次的需求,物联网发展到现在,很多公司也摆脱了低层次的“出货量”的需求,开始寻求更高层次的溢价。

安全,作为下一个层次的重要支撑点,开始成为物联网新宠。相应的,芯片商开始适应这种需求,推出了适应性产品 ,Arm Cortex-M23和M33内核就是代表。

安全芯片可能并不“安全”

彼时,很多文章着重介绍以上两款内核的安全性。例如:支持Trustzone-M,安全启动等等。

图源 | Cadence Design System

去年刚刚推出的时候,笔者由于忙于毕业设计,也就是简单看了看,没有过多关注,直到前几天发现了一篇博文” Nuvoton M2351 MKROM (ArmV8-M TrustZone)” 。

作者通过错误注入攻击,成功攻破新唐M23核心的AES(Advanced Encryption Standard,高级加密标准)加密。在笔者印象中,这是CC EAL评级认证体系中定义的安全芯片绝对不允许出现的情况。

在另一篇论文” On-Device Power Analysis Across Hardware Security Domains” 中,作者攻击了MICROCHIP的SAM L11(首款量产的M23核芯片),作者不但使用侧信道攻击攻破了AES。

此外,作者还玩了一个“骚操作”:用芯片自带的模数转换器获得功耗数据,之后做侧信道攻击,攻破了芯片的AES,这也和我头脑中的安全芯片的概念大相径庭。

因此,对于M23和M33介绍文章中铺天盖地的“安全”,并不是笔者心里的安全。当然,这也有可能给应用工程师带来困惑,并不是应用工程师心里所定义的安全,于是有了这篇文章。

工程师眼里的安全“三把斧”

这里先简单介绍一下应用工程师眼里的安全的概念,相信大家之后会更好的区分三种安全的概念。

先说一下软件安全(由于防御的攻击主要来自于软件威胁,就姑且以此称之)。虽说是软件安全,但是还是要硬件支持一部分的,比如TrustZone对总线的调整和安全启动的硬件根签名。

他们的目的是针对软件上的一些攻击进行防御,比如保护指纹信息(TrustZone)或者只让芯片加载受信任的系统(安全启动)。

图源 | chipsecurity.org

如果说软件攻击还比较温柔,硬件攻击就显得暴力和玄学了许多。硬件攻击要么是通过使用示波器监视芯片的功耗波动来获取秘钥(侧信道攻击);要么是干扰芯片的运行使得芯片跳过一些指令,以达到越权的攻击效果,比如电源错误注入绕过芯片的固件保护;

要么是去除芯片的封装,用微探针或激光直接针对die(去除外壳封装的硅片)进行操作,修改芯片的逻辑,读取数据。对于这种“旁门”攻击,防御手段一般是对电源噪音加一些干扰,或者直接进行特殊的版图设计,增减物理防御的功能。

物理攻击可以攻破软件安全的一些防御,除了上文中攻破AES秘钥之外,著名硬件安全公司riscure也在他们的官网公开了很多实用硬件攻击攻破安全启动的文章和文件 。

另外不得不提的是功能安全,功能安全在英语中是”safety“,区别于信息安全类的“security”。一般指的是在苛刻环境中,例如车辆甚至宇宙轨道中,芯片可以正常工作,不会跑飞。比如说你买了一辆互联网汽车,汽车的气囊和主动刹车就属于功能安全,而保证你的汽车不会被网络攻击者控制属于信息安全。

做一个不太恰当懂得比喻,功能安全是淬火钢化玻璃,破了之后小的碎片没有尖锐棱角,不易伤人;软件安全是防弹玻璃,特别结实;硬件安全是超级防炮弹玻璃,可以拿炮轰。

当然,功能安全有时候可能更贵,比如宇航标准的验证费用就比硬件安全的CC认证贵多了。

相对与绝对的迷思

硬件安全是软件安全的升级版本,TrustZone技术也可以说是为了降低inSE(片内硬件安全单元)的成本而出现的。

图源 | riscure

当然,笔者也不认为例如stm32一类的非安全芯片无法抵御物理攻击是一种漏洞,毕竟物理攻击的成本和对攻击者水平的要求都很高,安全溢价应该让有安全需求的人去承担,正如我们都知道防弹玻璃结实但是我们不可能把所有的玻璃都换成防弹的。

综上所述,开发应用的时候,芯片所提供的安全防护级别,以及您能接受多大的成本上升,这需要您仔细的评估。

如果需要固件不受篡改,芯片仅仅需要支持安全启动,如果固件中的算法是您公司安身立命的根本,绝对不允许泄漏,就请使用CC EAL4+甚至5+认证的产品并正确开发安全组件。笔者也希望厂商的宣传中,可以明确产品对安全的定义,减少应用工程师选型的难度。

写在最后

最后说一句,没有绝对的安全,即便是超级防炮弹玻璃,也可能有缝隙,也有可能被轰开,TrustZon和硬件安全芯片也出现过漏洞,一些产品的安全组件软硬件协调也出现过问题。

安全从来不是硬件或软件单独的事情,整体的安全才是真正的安全。

Reference:

Nuvoton M2351 MKROM (ArmV8-M TrustZone) via Limited Result, January 12, 2020

On-Device Power Analysis Across Hardware Security Domains via Colin O’Flynn & Alex Dewar

Secure Boot Under Attack: Simulation to Enhance Fault Attacks & Defenses via Martjin Bogaard & Niek Timmers, June 27, 2019

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200220A05SYW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券