物联网和其他物联网安全趋势的信任根

每年,信息安全主题变得越来越重要。信息安全中心在评级中排名第一,在订户数量中排名第二。但是,这些材料主要用于各种网络,Web,云和传统上在安全性上下文中考虑的其他技术。而且几乎不适用于嵌入式应用程序,尤其是在资源有限的情况下。而后者的数量则超过几个数量级。在本文中,我们将研究起源于开发和分发模型的物联网安全性的一些特征和趋势。


此外,嵌入式应用程序的开发始终具有某些功能,因此大多数“普通”程序员甚至都不会考虑它,并且QA的概念和测试过程在许多情况下与通常理解的根本不同。

Telegram Embedded Group的大型IT渠道中最受欢迎的且定期讨论的主题之一是“为什么没人能理解嵌入式开发人员并且支付的费用如此之少? (相对于“普通”程序员的背景)” :)

嵌入式系统是通过直接构建在其控制的设备中而可以工作的系统。为了清晰起见,有几张照片:



左图取自Wikipedia关于嵌入式系统的文章,是大型复杂系统的示例。右边是Redmond 智能家居评论照片,这里的一切都变得更加简单和紧凑,实际上,整个设备是在一个芯片上制作的,绑定最少。这两个设备都必须作为完整的设备起作用(单板计算机仍需要机箱和一些外围设备),这一点很重要。

通常,制造商公司生产的成品设备主要包括硬件,通常捆绑销售软件,并且只能在此硬件上工作。几乎没有人会想到没有软件就购买一台``裸机''智能手机,然后将其安装在OS和必要的应用程序上,一切都应该开箱即用。结果,开发人员经常执行软件和硬件设备开发的全部任务。

嵌入式系统开发的另一个特点是,它们在计算能力和内存,数据通道以及消耗方面几乎总是拥有更少的资源。许多人熟悉的大多数技术都不可能在这样的系统上运行,即使OS并非无处不在。有必要适应可用资源,并且通常可以节省很多。这也会影响安​​全性-不支持或有限制地支持Big World的许多标准。

C仍然是开发嵌入式系统最广泛使用的语言。它在使用内存时存在许多直接影响安全性的缺点。为了解决这些问题,开发了Rust,它变得越来越流行(首先使用您喜欢的语言在StackOverflow上运行了数年,甚至超过了Python和Kotlin,尤其是最近流行的),但由于受支持的系统和库,在嵌入式应用方面仍遥遥领先。高级语言在嵌入式系统中很少见,并且可能会持续这么长时间。

嵌入式系统开发的一个重要特征是制造商提供的平台和SDK的硬件功能受到限制。对于一个项目,完全从头开始实施多种技术根本是不可能的,或者成本很高。因此,芯片制造商必须支持最新的安全技术。直到最近,对此仍给予了极大的关注。例如,如果硬件AES在很久以前就出现在几乎每个人身上,那么许多人仍然不知道如何支持TLS / DTLS。问题是如何实现这一目标。我最近写了有关新的Nordic Zephyr SDK的文章,该SDK通过与Linux Foundation支持的大型项目集成来解决此问题。这是一种方法。下面我们将考虑其他。

作为嵌入式系统安全性考虑的一部分,有必要注意一组符合功能安全标准要求的应用:医药,汽车,铁路设备,工业自动化。这些应用程序会直接影响人的生命和健康,以及无法停止的系统(例如核反应堆)。在这里,所有事物都在开发的各个阶段得到了明确规定,并考虑了潜在的故障以及对整个系统运行的影响。开发使用的是专门的硬件和软件解决方案,将来也需要对其进行认证。结果,结果是漫长而昂贵的。因此,如果没有约束力的标准,那些开始开发的人就不会考虑它。

我们推荐了一系列有关功能安全性的文章进行审查

除开发问题外,重要的是要注意系统的操作条件。

通常,大型公司,云服务制造商会出于多种原因而关注其服务的安全性:

  • 他们直接参与服务功能的开发和支持
  • 他们在开发人员和支持工程师之间有着更紧密的联系。
  • 即使在云端,工程师也可以直接访问设备
  • 设备的宽数据传输通道和高计算能力允许使用监视系统和检测异常活动

物联网的设备以完全相反的方式工作:

  • 通常,它们是最终客户的财产,而最终客户工程师的能力(在大多数情况下出于客观原因而处于劣势)参与了配置和支持。
  • 在性能和数据传输方面,每个设备的资源都是有限的。结果,在这种情况下,实际上不可能有用于监视和检测异常活动的系统。

为了清楚起见,我将提供一个比较表。立即预订:

  • 有许多软件交付和支持选项。仅出于说明目的给出一般组。
  • 物联网的设备数量很难准确估计,因为每个人都了解它之下的某些不同之处,并且也没有很好的统计数据。

服务器和云解决方案(SaaS等)用户设备(PC,智能手机等)物联网
谁在发展?解决方案提供商--
/ ?
/?
,
()( )
(Amazon, Google)2019 : ~266 K, ~1.379

结果,定期发生设备被黑客入侵的情况,出于客观原因对此一无所知。不幸的是,这种情况并不少见,可以持续数月,有时甚至数年。

近年来最著名的嵌入式系统黑客:

  • Mirai僵尸网络在2016年主要致力于便携式摄像机。根据各种估计,受感染的设备数量超过38万他的继任者Satori在2018年已经捕获了70万台设备,主要专注于加密货币矿工。
  • KRACK在2017年达到WPA2 Wi-Fi(过去15年几乎是所有Wi-Fi设备),其继承人Kr00k在2019年达到10亿台设备。
  • 2018年,Bleedingbit推出了德州仪器BLE芯片。正式地,只有少数使用CC26xx系列的接入点模型受到影响,并且问题本身在新版本的堆栈中得以解决。但是,在这种情况下,没有考虑到这些芯片用于大量设备中(全球第二大BLE生产商,2018年39亿的 16%)。

大多数硬件制造商都会为其设备发布补丁程序。但是,这些更正仍必须在设备本身上进行,这对于物联网的设备来说是困难的,或者在某些情况下是不可能的。结果,很大一部分设备仍然可能受到攻击。由于缺乏控制和对此问题的应有的关注,他们可能永远也不会了解。

因此,有必要使用根本不同的方法来防止漏洞并消除对物联网设备的影响。安全必须从平台设计的最初阶段就在于平台本身,并且必须在最终设备的开发和操作的所有阶段进行,但同时对于大规模实施而言必须简单且廉价(至少在功能安全性和强大处理器的TEE方面)。

ARM在2017年谈到了基于CryptoCell和Cortex-M33的嵌入式系统的安全性,但是M33芯片的串行样品仅在去年才出现。提出的技术称为平台安全体系结构(PSA)。


这个想法的本质是将系统的关键部分(密钥,权限,固件)与可能被黑客攻击的组件(包括硬件和软件)分开,以解决不可能或很难实现TEE的系统。该技术主要针对Cortex-M,但与所有Cortex-A / -R / -M系列兼容。



基本考虑物联网设备的保护四个阶段。在设备操作期间出现它们时,请按顺序考虑它们。

安全启动
  • 确认固件为正版,尚未更改,并且不能降级。

通过无线方式安全更新固件(安全FOTA)
  • 只能下载经过身份验证和验证的更新。
  • ( )

API
  • , .
  • «» API.


  • (MITM)

为了保护设备,建议识别/验证到达每个阶段的数据。该概念基于信任根(Root-of-Trust,RoT)的思想。最重要的是,将特定的标识符(密钥)缝制到设备中,并且正在进行硬件过程以验证密钥对于当前平台和可执行代码是唯一的。将来,所有重要的图书馆都将RoT用于自己的工作。


通常,这发生在3个主要阶段:

  1. 提供信任:在生产阶段将信任根包含在芯片结构中,
    不变的芯片标识符和硬件信任根提供了设备的基本安全性和唯一标识。
  2. :
    ,
  3. :
    , 2 .

市场上最常见的解决方案是ARM的TrustZone。自从该技术本身被引入很长时间以来,已经有很多关于在Habré上实现它的文章。在我看来,最清晰的摘要是最新出版物之一

在本文中,值得注意的是,早期的TrustZone是Cortex-A系列高性能处理器的特权。在过去的一年中,几乎所有基于晶体的无线系统制造商都发布了基于Cortex-M的解决方案;最受欢迎的是Cortex-M33

说到信息安全,值得回顾一下通用标准体系(通用标准),已被国际和国家标准采用。它使您可以确定信任评估评估级别(EAL)的级别,范围是1到7(EAL1-EAL7),数字越高表示安全性越高。要了解,大多数 Windows 操作系统具有 EAL4或EAL4 +级别,LInux / Unix,EAL5基本具有智能卡(银行,运输,包括非接触式),EAL6允许您在高风险情况下使用该解决方案,EAL7在极端风险情况下使用,例如,用于单向网络(数据二极管)。

今年4月,Cortex-M33和M35P 通过EAL6 + 认证。这是一个很高的级别,可让您在高风险情况下应用解决方案。

ARM的TrustZone Cryptocell在新的Cortex-M33 / M23提供安全密钥存储(包括一个具有独特的硬件标识符)在下载过程中,固件检查,既和更新在空中,硬件加密加速AES,SHA,ChaCha的,ECC,在包括DMA(因此,可以加密Flash和RAM中的所有数据),随机数生成器(TRNG,PRNG)。


有趣的是,CryptoCell允许您对各种任务有多个信任基础(例如,为希望将市场中的大规模解决方案集成到其封闭的IT系统中的客户(例如,银行而不绑定制造商的主要RoT)嵌入一个额外的RoT,以及具有授权权限的安全调试(Secure Debug)。

300系列的CryptoCell特别针对低功耗的物联网设备。鉴于TrustZone的工作能耗降低了20%,新M33的能耗比M4降低了约20-40%,我们的能耗水平与现在相同或更低。结果,我们可以说,Cortex-M33 / M23的硬件安全性已成为预算最大的部分,并且在不久的将来,基于它们的产品数量只会增加。

TrustZone的替代产品包括Google赞助的OpenTitan。但是,除物联网的终端设备外,它还没有广泛传播并集中在其他应用程序上。

值得注意的是,信任根的硬件实现不是万灵药,也可以被黑客入侵。一个例子就是英特尔最近的故事。值得一提的是,在这种情况下,ROM中发现了一个错误,并且所有芯片组的一代都使用了一个密钥,因此可以对其进行复制。甚至这样的实现也极大地增加了黑客的复杂性。

考虑Kudelski Group合作开发uBlox蜂窝通信模块中信任根实现的演进的5个阶段。从任务的角度来看,这很有趣,因为它们的解决方案与其他公司的方法有很大不同。 Cat-M Nb-IoT / LTE蜂窝模块属于LTE的第4代和第5代之间的过渡级别,并且针对低功率LPWAN网络。在大多数情况下,设备应在没有人工干预的情况下工作数年。现代解决方案使您可以用一块电池(电池)工作7-10年。设备的平均寿命通常达到15年。在此期间,安全要求可能会发生重大变化,新的威胁将会出现。设备应在整个使用寿命中稳定运行,而无需人工干预。因此,必须考虑到其工作的持续时间和性质来保护这种设备。


正如您在结构上看到的,对于下一代,信任的根源会改变其地位。这是影响整个解决方案安全性的关键点。

根据uBlox / Kudelski,由于RoT的软件实现和最有可能的破解,因此选项1和3被认为不可靠。包括在外部eSIM(eUICC)中建立信任根的情况,它为入门级EAL4的银行业务应用程序提供了充分的保护(eUICC中的密钥无法读取或更改,因此从外部不会变得明显)。但是,这种方法带来的缺陷和潜在的漏洞是由于与外部组件的通信可能被拦截并可能导致失真,在系统初始化(引导加载程序验证)初始阶段交互的复杂性以及由于UICC中的芯片资源有限,编程机制变得复杂。另外,可以从系统中更换或移除外部模块(只需通过更换SIM卡),从而使整个系统不受信任。

因此,进一步的发展路径是将信任根源整合到芯片的保护区域中。此方法与ARM TrustZone加密单元组成一致。

在安全的操作系统中实现了“信任根”的版本是市场上最常见的版本,可提供足以执行大多数任务的安全级别。市场上最常见的解决方案是ARM TrustZone(与之有关),但没有CryptoCell,后者将密钥存储在受保护的区域中。

集成在芯片组内部的保护解决方案具有最大的保护,几乎没有外界可以访问。当前解决方案使用根据EAL5 +级别认证的内置安全元素(Secure Element)。这样就可以对整个设备进行通用标准认证,还可以在设备中放置SIM卡功能和移动网络运营商(MNO)配置文件。这对应于当前的安全级别。

下一代uBlox芯片组正在开发中,Secure Element将被集成到调制解调器芯片组本身的芯片中。这样可以进一步减少攻击面,并将安全性提高到最高水平。它将通过iUICC实施(集成通用集成电路卡)-下一代UICC,其中完整的代码和SIM标识符将位于芯片上的系统内部,该标准尚未完成。

发现:

  • 从开发的最早阶段开始,越来越多的电子元件制造商在开发和生产安全性方面考虑到设备。
  • 端点公司可以立即使用安全管理工具。在开发工具阶段吸引专家可以避免出现错误,并从整体上显着降低解决方案的成本。
  • 新解决方案的价格标签通常接近于当前解决方案,但是提供了根本不同的保护级别,这也大大简化了过渡过程
  • 提供越来越高的安全性的设备数量的增加只是时间问题。
  • 在新的安全元件解决方案中,UICC在芯片内部传输,以提高安全性并阻止攻击
  • 现代解决方案可提供高达EAL6 +的安全级别,足以在高风险情况下使用。
  • EAL7级别的解决方案正在开发中,但是,它们使用的技术没有最终批准的标准,因此未定义其市场可用性的术语。

All Articles