基于嵌入式操作系统的物联网安全

  当今社会的很多商业行为、通信、金融交易及娱乐在很大程度上依赖于互联网。随着越来越多的设备连接到物联网(IoT)中,各个行业对互联网的依赖性将不断增加。如果设备不安全,这种依赖将导致互联网重大的安全漏洞,并使设备遭到攻击和破坏。

  目前,很多在使用的物联网设备,根据不同的应用范围将持续使用。例如,公用事业使用的仪表几乎不会更换,通信基础设施的设计使用年限为50年,电力传输系统使用寿命也在30年以上。住宅、办公室、工业建筑和其他建筑物可以每10年装修一次,以便长期使用。如果这些设备不安全,在威胁增加时,它们很快会被抛弃。

  为保持用户对智能设备的投资,保护设备免遭破坏,安全成为所有新型设备的基本要求。在未来的几年中,将有500亿的物联网设备连入互联网,其中很大一部分是使用微控制器和资源有限的微处理器。幸运的是,与大型设备相比,这些小型设备更容易保护,更不易受到同类型威胁的攻击,因而显得更安全。但并不意味着安全很容易实现,只是如果能正确地利用MCU和小型的MPU的特性,则开发安全的设备不困难而已。本文的后续部分将讨论如何保护物联网中的小型设备。

  物联网安全特征

  为了充分保护MCU或小型MPU,下列安全功能通常是必需的。当然,并不是每个系统都必须具备所有功能。使用标准信息技术实现的安全解决方案是嵌入式MCU和MPU产品安全机制的核心。这些安全协议包括:TLS、IPSec/VPN、SSH、SFTP、安全启动和自动回调、过滤、HTTPS、SNMP v3、安全的无线连接、加密和解密、加密文件系统、DTLS(用于UDP安全)和安全电子邮件。

  其中,TLS、IPSec/VPN、HTTPS、安全的无线连接及DTLS意味着安全的通信连接;SFTP提供了安全的文件传输;SSH提供了安全的远程访问;而安全电子邮件则提供了基于加密连接的邮件服务。

  支持自动回退的安全启动程序(bootloader)确保系统不被破坏。SNMPv3、数据加密和加密文件系统通过加密保护本地数据或传输到其他机器的数据。过滤实际上是防火墙的功能,用于阻止不受欢迎的访问。各个协议将在系统安全一节之后讨论。

  系统安全

  只有系统中最薄弱的连接或组件都可靠时,整个系统才是安全的。为保证系统的安全,其所有的通信通道、文件传输、数据存储和系统更新方式都必须是安全的。在系统支持动态加载、可执行文件修改及其他复杂功能时,实现系统安全是非常困难的。想象以下这些场景:

  1)入侵者通过电子邮件、ftp或其他方式将文件传入设备。

  2)文件动态加载,其运行时,会破坏其他可执行文件,然后需要清理现场并删除自己。

  3)如果病毒很新,系统不认识该病毒,它将获准进入系统并感染系统。

  再考虑另外一种情况,在不安全或者没有正确安全设计的通信连接中,有可能读取少量的数据,还可能有办法在数据流中添加新的数据,并破坏正在接收数据的系统。

  通过互联网加载不安全的镜像文件到设备就是这种情况的一个实例。当新加载的镜像运行时,如果该镜像可以正确访问系统,不安全的镜像文件将接管整个系统。

  还有一种情况就是设备的关键数据会被窃取,除非数据被加密或保存在安全文件系统中,才可能从设备中恢复加密的数据。这是需要考虑的另一种情况。

  为了确保系统安全,最好的方式是考虑如何访问设备信息。通常,好的安全系统要求:你知道的(密码)、你拥有的(借记卡或可穿戴式设备)和你是谁(虹膜扫描设备)。

  对小型设备来说,这些安全措施过头了。但如果系统有非常高的安全要求,可以通过间接方式来实现,只要确保系统的各个组件都是安全的。通过与服务器的安全交互,服务器可以安全地访问设备,安全设备接口可以运行在大型设备上,也可以用于小型设备。

  安全系统的另一个关键要素是分层安全,假设一些人只需要访问系统的一部分,好的设计原则采用分层安全机制。这种情况下,如果没有重要的工作,入侵者仅能访问部分系统。一个实例是使用两个防火墙级联来保护服务器,因此,一个防火墙的漏洞可以被第二个防火墙隔离。

  如图1所示提供了安全功能的软件概述。后面将针对前面列出的场景,讨论如何使用这些软件,以保护系统。