前言
ASP站长网消费者物联网,旨在为消费者提供智能服务,提高生活质量和便利性的物联网领域。物联网设备是消费者物联网的基本组成单元,对于消费者物联网中存在的安全问题,消费者物联网设备的安全尤其不可忽视。消费者物联网设备在其整个生命周期中,有出厂、制造商初始化、用户使用、设备停用这四种状态(其中出厂状态可能存在来自硬件底层的安全威胁,但这不在本文的考虑范围之内,本文默认在出厂状态时是处于一种安全的状态),如图1所示。本文主要面向于参与消费者物联网开发和制造的读者,浅谈物联网设备的制造商初始化、用户使用和设备停用这三种状态中应对潜在安全风险的策略。
图1 物联网设备生命周期
设备在制造商初始化状态下的安全策略
物联网设备是非标准计算设备,具有连接网络、传输数据、计算处理等功能。物联网设备的生命周期与普通的计算设备类似,比如台式电脑或者笔记本电脑,在厂家刚出场还未配置操作系统的时候就是一些硬件的简单组合,不能执行任何一个电脑应该具有的功能,只有当电脑经其售卖制造商完成操作系统配置后,才是一台真正意义上日常生活中使用的电脑。而其中制造商为电脑配置初始纯净的操作系统的过程,就对应于物联网设备在正式投入市场之前的制造商初始化阶段。
在商家初始化阶段,不同的物联网设备会根据其投入市场后的用途,被制造商进行各式各样的初始化工作,本文就制造商初始化中各种设备都会涉及的安全策略进行简要阐述,如图2所示。
图2 物联网设备在制造商初始化的安全策略
1.物联网设备的安装和维护要容易
消费者物联网设备的安装和维护应涉及用户的最低决策,并应遵循在实践应用中的最佳可用性。如用户使用向导设置设备,其中显示配置选项的子集,并已指定常用默认值,且默认情况下已打开相应的安全选项。
制造商应向用户提供关于如何检查其设备是否安全安装的指导。通过适当解决用户界面中的复杂性和糟糕设计,可以减少或有时消除由用户混淆或错误配置引起的安全问题。为用户提供关于如何安全配置设备的明确指导也可以减少他们面临的威胁。在一般情况下,安全设置设备的平均开销高于检查设备是否安全设置的平均开销。从过程的角度来看,安全设置的检查在很大程度上可以由制造商通过与设备远程通信的自动化过程进行。这种自动化过程的一部分可能包括验证设备建立安全通信通道的能力。
2.及时开发和部署安全更新
及时开发和部署安全更新是制造商为保护其客户和更广泛的技术生态系统所能采取的最重要行动之一。保持所有软件的更新和良好的维护是一个在实践中得到证实的保障安全的最佳方法之一。
物联网设备中的所有软件组件都应可以安全地更新,具有一个良好的设备和厂商之间软件组件的版本信息通信,这是一个成功的设备组件管理所必备的。但并不是设备上所有软件都有必要不断更新。如设备磁盘的首块引导加载程序只被写入一次,从那时起是不可变的;在带有多个微控制器的设备上,有些微控制器可能无法更新。
当设备不是受限设备时,它应具有用于安全地安装更新的更新机制。“可安全更新”是指有足够的措施防止攻击者滥用更新机制。措施包括使用正版软件更新服务器;受完整性保护的通信通道;验证软件更新的真实性和完整性。人们认识到,软件更新机制和“安装”的构成有很大的差异。为了防止降级攻击(downgrade attacks),可以使用基于版本检查的防回滚策略。更新机制可以从设备直接从远程服务器下载更新,从移动应用程序传输或通过USB或其他物理接口传输。如果攻击者破坏了这种机制,就会允许在设备上安装恶意版本的软件。
软件更新应该使用自动机制。如果自动更新失败,那么在某些情况下,用户可能不再能够使用设备。检测机制,如监视、双库闪存(dual-bankflash)和恢复分区的使用,可以确保设备返回到已知的良好版本或工厂状态。管理这一点可能很复杂,特别是当有并行的相关服务更新、设备更新和其他服务更新需要处理时。因此,清晰的管理和部署计划对制造商是有好处的,对于消费者来说,关于更新支持的当前状态是透明的。
在许多情况下,发布软件更新涉及到对其他组织的多种依赖,比如生产子组件的制造商。然而,这不是拒绝更新的理由。对于制造商来说,在开发和部署安全更新时考虑整个软件供应链是很有用的。通常建议不要将安全更新与更复杂的软件更新捆绑在一起,例如特性更新。引入新功能的特性更新可能触发额外的需求,并延迟对设备的更新。
如果设备支持自动更新,那么要求更新可以自选是否启用,以便用户可以启用、禁用或推迟安装安全更新和更新通知。从消费者权利和所有权的角度来看,用户能够控制是否接收更新是很重要的。用户选择不更新有很好的理由,包括安全性。此外,如果部署了一个更新,随后发现导致问题,制造商可以要求用户不要升级他们的软件,以使这些设备不受影响。
设备在用户使用状态下的安全策略
用户即消费者,是消费者物联网设备的最终使用者,保障用户在使用过程的舒适感和信息的安全性至关重要,也是消费者物联网的最终目的。当设备处于用户使用阶段时,物联网设备已经过了出厂和制造商初始化两个步骤,这一阶段的设备会在具有制造商初始化数据的基础上进一步加入用户数据和设备使用过程中产生的数据,因此存在安全隐患的方面有设备通信问题、设备组件更新问题、系统中断问题和个人数据安全问题,如图3所示。
图3 物联网设备在使用中的安全策略
1.设备通信
消费者物联网设备应使用具有最佳实践的密码技术进行安全通信。安全控制的适当性和具有最佳实践的密码技术的实行取决于许多因素,包括使用环境。随着安全性的不断发展,由于任何此类建议都有迅速过时的风险,很难给出关于加密或其他安全措施的规定性建议。消费者物联网设备应使用经审查或评估的实施方案来提供网络和安全功能,特别是在密码领域。如开发和测试社区中的分布式软件库、经认证的软件模块和硬件设备加密服务提供商(如安全元素和信任执行环境)都经过审查或评估。
密码算法和原语应可更新。对于无法更新的设备,设备的预期寿命不得超过设备使用的密码算法的建议使用寿命(包括密钥大小),这一点很重要。
只有在网络接口上进行身份验证后,才能在初始化状态下通过网络接口访问设备功能。有一些设备可以提供公共的、开放的数据,无需身份验证即可访问,以提供对所有设备的开放访问。该设备可能通过网络服务中的漏洞受到危害。合适的身份验证机制可以防止未经授权的访问,并有助于设备的纵深防御。
2.设备组件更新
消费者物联网设备应使用安全引导机制验证其软件是否完整且更新正确。设备应在初始化后定期检查安全更新是否可用。一个设备每天在随机时间检查可用的更新,用户可以通过初始化设备的接口看到更新的存在。对于某些产品,由相关的服务而不是设备执行此类检查可能更合适。
如果检测到软件发生未经授权的更改,设备应向用户和/或管理员发出警报,并且不应连接到比执行预警功能所需的网络更宽的网络。从未经授权的更改中远程恢复的能力可能依赖于已知的良好状态,例如本地存储已知的良好版本以实现设备的安全恢复和更新。这将避免拒绝服务和昂贵的召回或维护访问,同时管理攻击者破坏更新或其他网络通信机制接管设备的风险。如果消费者物联网设备检测到其软件发生未经授权的更改,它将能够通知正确的利益相关者。在某些情况下,设备可以处于管理模式。
设备需要对软件更新的真实性和完整性进行验证。确认更新是否有效的常见方法是验证其完整性和真实性。这可以在设备上完成;然而,受限的设备可能有功耗限制,这使得执行加密操作的成本很高。在这种情况下,可以由另一个受信任的设备执行验证。经过验证的更新将通过安全通道发送到设备。先在中心执行更新验证,然后再在设备上执行更新验证,可以降低泄露的风险。
对于设备来说,在检测到无效和潜在的恶意更新时采取行动是一种良好的实践。除了拒绝更新之外,它还可以向适当的服务机构报告事件或通知用户。此外,还可以采用缓和控制来防止攻击者绕过或误用更新机制。作为更新机制的一部分,尽可能少地向攻击者提供信息,会降低攻击者利用信息的能力。比如当设备检测到一个更新不能成功交付或应用(通过完整性或身份验证检查失败),设备可以通过不向更新进程的发起者提供任何关于失败的信息来减少信息泄漏。同时,设备可以生成一个日志条目,并通过安全通道将日志条目的通知传递给受信任的对等体(例如设备管理员),这样设备的所有者或管理员就可以知道事件的发生,并做出适当的响应。