从本质上讲,物联网(loT)设备占用资源较少、具有多样性和广泛的扩散性,通常处于网络的“边缘”,所有网络管理的控制之外;是数字领域中名副其实的混乱网络之一!
云端和大型数据应用程序依赖于他们所获取的数据的质量,而质量的关键因素在于采集自网络边缘的数据的真实性、完整性和保密性。为了使物联网获得真正的可持续性的吸引力,必须对来自此类边缘设备的数据——从核心硅直到数据服务——进行“托管”。
幸运的是,无论使用嵌入式ARM CPU,还是创客开发板,Zymbit平台都消除了现实应用中遭遇的多种常见安全威胁。对于Raspberry Pi(树莓派)和Arduino的开发者来说,Zymbit.Orange物联网主板能够帮助他们更轻松地在安全访问通讯接口和加密服务的条件下,执行应用程序。另外,Zymbit.Orange还可以独立使用。
在本篇博文中,Zymbit嵌入式业务副总裁Scott Miller讲述了Zymbit.Orange的一些关键安全功能及其工作方式以及更重要的——为什么这些功能非常重要?
谁应该阅读这篇博文?
• 所有构建物联网设备的非安全专家及没有时间或预算成为安全专家的人员;
• 使用过嵌入式联网设计的人员;
• 任何在网络边缘使用Raspberry Pi或Arduino但现在需要添加安全设备的创客。
物联网边缘设备的安全注意事项
保护物联网设备的安全需要满足部分基本需求的系统构架。让我们来看一看:
数据保密
一般而言,如果数据是专有过程必不可少的组成部分或在本质上属于隐私信息,则不应公开此数据。在以上两种情况下,必须从发布源——物联网边缘设备——到云端进而到用户,全部使用加密技术保护数据不受窥视。此外,数据管理员应能够选择数据流的用户或用户的订阅内容。
数据认证
大部分数据处理/交互以假定您知道数据确实来自假定的边缘设备为基础。但如何能确定这一点呢?另外,如何能确保您的用户会收到真实的数据呢?
为实现数据的托管,在记录此数据时,必须能够证实数据来自指定的边缘设备。数据认证可通过多种方式完成,但数字签名被普遍认为是最安全的一种。用于带时间戳数据块的数字签名的应用涉及到对带时间戳数据块的单向散列(如,SHA-256)进行计算,然后使用私钥对此散列进行非对称加密。在云端接收数据时,在使用公共密钥为数据块解密后,计算出数据散列并与伴随该数据块的散列进行比较,如果散列相同,可将数据和签名一同储存在Zymbit云服务器上并转移至用户,其转移方式与边缘设备向云端转移数据的方式类似。
IP保护&造假威胁
伪造产品会给企业造成负面的经济影响,还会给企业系统带来致命弱点。工业部门存在许多“黑市”零件和通用设备通过秘密途径进入大型企业系统的例子,甚至美国政府都设有举报此类数据泄露的热线电话。
Zymbit.Orange采用大量构建策略,实现保护软件IP的目标:
• 特殊用途硬件(如,专用嵌入式CPU)中的单独的嵌入式服务,因此更加难以“修改和攻击”APP处理器上运行的应用程序:
• 部分嵌入式服务包括:
○ 通过其它非安全渠道安全地处理数据:
▪ 以太网
▪ Wi-Fi
▪ 手机调制解调器
▪ 低功率无线电
○ 与附加用户界面互动或对其进行控制
○ 从嵌入式服务硬件集群提供服务的传感器中采集物理数据
○ 通用加密/解密和数据认证/数据有效性
○ 应用映像更新和应用健康监测
• 这些单独的嵌入式服务需要有效凭证,以便对这些服务的用户(例,在Arduino或Raspberry Pi上运行的应用程序)进行认证。
• 专用CPU必须禁用其不利的编程路径(例,JTAG或SWD),这样此CPU上运行的硬件才不会被劫持、替换或损坏。
• 篡改事件检测(如,尝试打开案例或对实时时钟进行操作)——检测到篡改事件后可采取多种措施。下列各项为可能采取的部分措施:
○ 记录篡改事件
○ 通过清除关键固件有意“围堵”系统
○ 清除能够使系统离线的关键数据
○ 上述动作可由系统管理员进行配置
• 应用程序设计师必须想办法为其生成的应用映像附加数字签名并加密。映像解密和签名验证使用上文提到的嵌入式服务完成。
• 可使用加密和映像认证经由安全云网络,专门进行软件升级传播。
恶意攻击防御
虽然目前新闻报道的此类案件并不多,但恶意攻击很快会在物联网设备中出现,和现在的电脑病毒和手机病毒相类似。恶意攻击的动机包括“黑客任意妄为”、企业间谍和网络恐怖主义。而且,这类攻击所造成的恶果远比数据丢失要严重得多;许多物联网设备与现实世界的交互可能会造成身体损伤甚至失去性命。如果你觉得这是在耸人听闻,那就等真正的物联网恶意攻击事件披露出来再说吧。
好消息是我们当中那些理性的创新者们正在考虑这个问题并开始寻求可靠、可行的解决方案。使用与前文IP保护中描述的对策,我们可以预防恶意攻击,或致使恶意攻击难以实现。
保证您的边缘设备—Raspberry Pi和Arduino——的安全
开源设备触手可及并且经济实惠,对此,我们感到非常欣喜。我们支持使用Arduino和Raspberry Pi构建出绝妙应用程序的团队。但是二者的设计都没有考虑到核心安全性,因此,在对应用程序进行扩展前,我们必须先解决它们存在的漏洞。让我们先来解释一下它们的安全缺陷:
安全漏洞—Raspberry Pi:
• 无内置加密引擎
○ 虽然Pi能够在软件中执行加密,但却因此影响了整体性能。
• 可移动SD卡—无实际安全保障
○ 这表明可直接进入基于Raspberry Pi的设备的攻击者能够盗窃和复制卡上的软件和数据或故意损坏卡中的内容。
• 无安全密钥存储
○ SD卡为可移动卡片,且SD卡是在Pi上进行存储的唯一途径,静态共享密钥和专有证书现在已经完全实现可视化,还可对其进行修改。因此,即便选择为密钥和证书存储的数据量加密,解码数据量的密钥也一定会在某一点上曝光。这一事实使Pi上的数据验证不具有可行性。
• 易受电力循环利用的影响
○ 因为不存在经常性的入侵检测或监测,设备的简单重复功能循环可能会导致故障,进而拒绝服务。
• 缺少实时时钟
○ 阻止系统在通讯中断时做出正确的响应。
安全漏洞—Arduino:
• 无内置加密引擎
○ 可购买Crypto shields扩展板,但包装Arduino shields扩展板往往非常复杂且难以使用,原因不仅是堆栈shields板相关的实际尺寸问题,还有Arduino shield扩展板框存在资源总线(SPI/I2C)和GPIO引脚分配问题,因此,在已堆栈其它shield板后,简单地将新shield板堆栈到Arduino上可能无法实现。
• 如果调试/编程接口可用,则没有办法验证或确保Arduino可执行映像的安全。即便基于Arduino的“物”配有crypto shield扩展板,可直接访问的攻击者还有可能进行下列活动:
○ 损坏或清除可执行映象。
○ 访问RAM或闪存中存储的共享密钥。
○ 修补他们自己的代码,使用此代码可对系统进行控制。
• 许多Arduino的RAM和闪存数量非常有限,因此执行坚固、安全的通信解决方案是极为困难的。
通过在Zymbit.Orange物联网主板上实行单独的安全框架,Zymbit已为Raspberry Pi和Arduino开发人员解决了这些问题。
通过Zymbit.Orange物联网主板添加安全设备
Zymbit.Orange架构的中心是安全服务集群,它能够隔离各个面向边缘的应用处理器,同时也将基与出站网络连接隔离开来。这种隔离是通过数据安全(验证和加密)、电力安全(关闭CPU)和物理安全(防篡改及机箱入侵检测)相结合实现的。
我们使用Atmel silicon,来实现安全保障的三个方面,因为他们的解决方案设计精心、价格合理,拥有良好的性能特点。
安全硅讲解
Zymbit.Orange内的安全服务集群包含三部分:
安全通信集线器
• Atmel | SMART SAM E70–高性能、高级连接的CPU
• 主要目的:
○ 提供安全的通信访问和UI界面
○ 执行篡改检测
○ 通过Zymbit云提供安全的应用处理器软件更新
• CPU特性:
○ 300MHz Cortex-M7
○ AES加密引擎
○ 低延时TRNG(真随机数发生器)
○ 完整性检查监控器(ICM),用于生成和对比特定内存区域的摘要
监管MPU
• Atmel | SMART SAML21J17A–超低功耗微控制器
• 主要目的:
○ 功耗监控
○ 实时时钟
○ 用于板载Arduino Zero应用CPU的安全编程与调试接口
• CPU特性:
○ 48MHz Cortex-M0+
○ AES加密引擎
○ 低延时TRNG(真随机数发生器)
安全密钥的生成与存储
• Atmel ATECC508
• 主要目的:
○ 非对称(公开密钥)密码
○ 数字签名的生成/验证
○ 密码验证
• 特性:
○ 安全密钥存储
○ 非对称加密
○ 临时密钥生成
借助这些组件,Zymbit.Orange可针对板载Arduino Zero和/或Raspberry Pi上运行的用户程序提供一个所有关键服务的安全接口。专用板载硬件显著提高了这些平台的整体安全性,且不干扰用户应用程序。在Zymbit.Orange上从头开发Arduino或Linux项目,或改编已有应用程序以利用板载服务,都非常轻松,因为不会干扰应用CPU的可编程性。
点击阅读英文原文
|