我们日常使用的许多东西正在变得智能化并且都连入了互联网。物联网(IoT)将改善我们的生活,它帮助我们实现健康和健身目标、减少资源消耗、提高生产力、追踪并确保资产安全。许多嵌入式开发人员意识到IoT 的潜在好处并积极开发各种应用程序,范围涉及家庭连接设备、可穿戴和家庭安全系统等。然而,风险与收益并存。没有人希望设计的应用程序容易受到攻击或数据易遭窃取。引人注目的黑客攻击会对品牌形象造成严重影响并失去客户信任,最糟糕的是,它会减缓或永久性减少人们使用IoT。
IoT通常被称为一场工业革命。可连接设备的数量将在未来几年内快速增长。如果跟踪IoT 的分析师之间有何争议的话,那便是到底会有几十亿的可连接设备。物联网对社会的经济价值预估为4至11万亿美元。在加速可连接设备产品上市的竞赛中,实现适当的安全措施会带来一些麻烦,因为这会增加元器件成本、开发工作量和设计复杂度。
同时,适当的安全措施对某些产业来说并非至关重要。然而采取适当的安全措施是避免受到攻击的关键。供应商的产品受到攻击后,重大的安全和隐私问题以及负面报导可能会暂时或永久性减缓人们使用IoT。即使是在家庭和日常生活中的简单设备,许多消费者也对连接安全保持怀疑,一些研究人员和业界观察人士更认为IoT安全灾难必将发生。实际上,最近有很多高调曝光的攻击广受关注,因此有人认为这个灾难已经来临。请点击“阅读原文”观看完整的“物联网安全分析”文章。
量子密码学攻击
当前IoT的安全状况类似于量子密码学,这通常指量子密钥分配。与其他密钥分配方案不同,量子密码学承诺在物理定律的基础上保证绝对安全性。而相比之下,大多数密钥分配方案依赖于大数因式分解或离散对数问题计算复杂性的假设。尽管量子密码学于1984年被发现,但直到2000年商业加密系统才被引进市场。量子密码系统依赖于单个光子,搭建量子密码系统很复杂,不过上市时间才是本质问题。2010年,第一个彻底打破量子密码学系统的安全漏洞被公诸于众。从理论上讲,量子密码学是不可能被破坏的,但实际上,并未考虑系统设计过程中的边测和漏洞。
此外,有趣的是,直到组建专门的小组去破坏这些系统之前漏洞都未被发现。在组建该专门小组之前,整个产业都在关注如何使量子密码学系统更稳健和如何使这些系统上市。量子密码学类似事件给我们上了重要一课。最值得注意的是,它表明安全是一个持续不断的发展过程,需要多学科方案来预测潜在的攻击。当工程团队试图使某些事情变得像量子密码系统一样复杂时,他们可能也会弄不明白攻击者是如何侵入系统的。整个过程相互矛盾。因此,需要将质量保证和安全团队从搭建安全系统的工程团队中分离出来。
另一个关键点是,量子密码学系统受到攻击肯定会暂时(如果不是永久地)降低该技术的市场接受度和对该技术的信任度。因此,如果产业能够在前期阶段对安全投入更多,那么尽管这会使上市时间更长、成本更高,但最终也会大有裨益。
IoT安全分析
目前,IoT安全所必需的技术已经存在。但是缺乏如何实施这项技术的知识通常是大多数安全漏洞的根本原因。然而,一个“安全”的IoT设备并不能确保能够实现一个安全的系统。虽然如此,开发人员至少应当意识到以下类型的安全。
硬件安全
安全的IoT设备具有许多安全特性。首先,它使用对称密码来执行安全启动和安全引导加载或空中(OTA)固件更新。安全的IoT设备还使用硬件加密加速器,它们更快、更节能,并且更不易受到边信道分析攻击。
在安全的IoT设备中,调试端口是禁用的。如果在某些时候需要重新打开调试端口(例如需要远程存储器存取或由于其他原因),就要通过一个使用公开密钥认证的认证质询响应方案来实现。虽然安全启动和引导加载可防止攻击者修改程序存储器,但安全的IoT设备能够进一步限制对于程序存储器的访问读取。这通常意味着设备具有内部存储器或内置闪存。在使用外部存储器的情况下,这也意味着外部存储器的内容需被签名和加密。
软件安全
为了确保在安全的IoT 设备上运行的软件能进一步加强安全性,必须在关键部分进行硬件化。这意味着它可以阻止跳过单条指令。例如,安全启动签名检查或密码签名检查。这种方法可确保即使攻击者能够使处理器跳过一条指令,那么也不会产生关键性的安全后果。此外,为了避免代码中的安全问题或第三方库引起系统范围的存取,可采用ARMv8M 的TrustZone对不同库进行分区管理。
通信安全
大多数集成电路(IC)与其他IC、IoT设备、网关和/或云端通信,有必要保护这些通信信道。当与其他IC通信时,意味着要启用加密和身份验证以确保完整性和机密性。一个可能的范例是数据存储在片外存储器上,或者主处理器与通信IC 或传感器之间的有线总线。当与其他IoT设备通信时,通常使用诸如zigbee、Thread或低功耗蓝牙等通信协议。大多数协议中都有安全选项,重要的是要打开这些安全选项。
另一个重要的考虑因素是设备部署。一旦在通信设备之间采用了安全措施,那么安全的数据传输就显而易见了。然而,分发密钥并不是直接的。对于无线设备而言,这通常涉及设备加入无线网络的部署步骤,例如使用蓝牙部署一个可连接灯泡到基于zigbee的网状网络。用于部署的选项取决于系统基本功能、易用性和安全性之间的折衷。只要安全的IoT设备不降低安全性即可。此外,安全的IoT设备使用TLS/DTLS来建立到云端的安全的端对端(end-to-end)连接。
应用层安全
应用层可能位于设备上或云服务中,抑或两者皆有。在许多应用中,通常需要在应用层进行密码保护。安全的IoT设备强制用户更改密码,并将最常用的密码列入黑名单。如果可能,设备甚至可以实施双重身份验证。
系统安全
从系统的角度来看,一些看似无害的子系统也可能会增加整个系统的不安全性。因此,为了构建安全的IoT设备,在每个子系统内部有一些关于实现安全性的假设。每个子系统的安全性应当是独立的或在最小程度上依赖于其他子系统的安全性。
总结
参与IoT生态系统的开发人员、设备制造商和服务提供商需要接受在IoT各个层面上实现有效安全措施所带来的成本上升和上市时间延迟,这包括从设备到云端,以及每项开发工作的开始阶段。协调实现整个IoT 安全有助于预防灾难性的安全漏洞和随之而来的恶劣影响。如果灾难发生,那么即使漏洞被修复,也可能影响对于IoT市场的投资。