图1 安全物联网系统应该包含的互联网协议软件
通信安全
通信安全协议确保机器到机器间的通信安全。有一个可以依赖的信任等级,以建立安全通信。
TLS及其前身SSL是为TCP套接字流和需按顺序交付的流连接提供通信安全的最常用的方式。DTLS是一个新的协议,提供可靠的UDP传输和基于TLS的数据包传输。TLS和DTLS协议面向应用到应用间的通信。
IPSec或虚拟专用网络(VPN)在TCP协议栈的基础上使用虚拟链路安全技术。它的设置比较困难,但它允许应用通过链路通信,即使应用没有提供安全保护。通常情况下,由于设置困难,并且很多人认为NSA(美国国家安全局)参与开发的算法不安全,导致它没有被广泛使用。
HTTPS是建立在TLS上的安全的网络服务器访问协议,它提供了安全的应用访问,通过与SSH相同的方式,为远程用户提供安全的模拟终端访问。
安全的无线连接确保无线信息不被收集,数据不会被其他人通过天线获取。
安全电子邮件用于确保数据不会通过电子邮件直接传输。一种方式是在邮件发送之前加密数据。而更简单、更通用的方案是在加密连接中提供邮件服务,以确保管理邮件的服务器接收的所有邮件数据都是安全的。
基于SNMP的安全文件传输
使用加密和解密程序保护数据时,SNMPv3用于加密数据。如果所有的数据都很重要,可以使用文件加密,尽管文件加密方式会损失性能。
过滤和防火墙
防火墙通过过滤网络服务器发送所有数据包,拒绝未授权的访问。通过过滤,设计者可以确保只有真正的用户才能访问系统,阻止非法访问,保证系统安全。这些过滤规则需要在设备上配置,过滤功能通常需要结合SSH或SNMP使用。
安全启动
安全启动是一个安全系统的重要组成部分,支持固件更新并通过安全的方式实现更新非常重要,固件更新可以删除所有工厂固件,并通过自动回退(fall back)机制增强了该功能。通过自动回退,如果新的固件(可能损坏)导致启动失败,可以使用旧的安全版本重新启动系统,这是分层安全机制的部分功能。
Unison操作系统(Nanoexec)分层安全机制通过解释器或其他方式加载的程序运行时,可能破坏系统。Unison的操作系统在底层提供了额外的安全启动功能,以保护系统,该功能使得系统很难被攻击,如图2所示。
图2 Unison操作系统(Nanoexec)架构
系统安全的考虑
现在考虑一下这种情况:MCU或资源有限的MPU需要应用很多协议以实现安全目的。一个参考实例是Unison的操作系统,它是一个小型的POSIX实时操作系统,以非常小的代码尺寸提供了这些安全功能。
首先,Unison系统使用了安全通信协议,目标设备的所有应用是安全的。这些应用包括手机应用、面向小型网络服务器的安全Web访问等。类似缓冲区溢出之类的攻击是不可能的,因为Unison设计在运行时占用很少的资源,禁止任何不合理的资源占用。还可以使用安全无线连接,但必须使用VPN。
可以使用SFTP将文件传输到系统。该机制保证数据在传输时不被破坏,这对安全系统更新非常重要。在TCP服务器前端增加过滤处理,可以确保只处理授权的请求和更新,防止设备被入侵,极大地提高了安全性。此外,可以使用终端通过SSH协议远程配置设备。与使用网络服务器相比,使用脚本的方法更可靠。这种配置方式确保了配置设备也是安全的。此时,设备接收和发送的数据是安全的。任何更改或配置也是可靠的,授权的应用和用户可以使用设备的数据和功能。
如果设备被偷了,怎么办?为了应对这种情况,可以加密设备存储的数据,不使用本地数据或使用加密文件系统,这将确保设备的关键数据是安全的。如果用户的设备有密码,通常被认为是合适的安全措施。还可以增加其他安全措施,如增加指纹扫描、虹膜扫描、掌纹和其他功能给设备,或将其连接到安全工作站,以增加设备的可靠性。