WILLIAM E. LAMIE,Express Logic总裁
物联网 (IoT) 正在推动互联嵌入式设备的爆炸式增长,其中绝大多数基于 32 位微处理器和微控制器,控制我们的大部分重要基础设施,包括电网、交通系统、化学和制造工厂等。意识到保护敏感数据的必要性,开发人员正在争先恐后地生产安全的系统,同时满足设备和系统快速开发和部署的需求。
当然,安全性是并且应该是物联网设备和系统的可靠性、安全性、连接性和性能特征的一个组成部分。在由适当的 32 位硬件和实时操作系统 (RTOS) 组合形成的平台上开发和构建这些设备被证明是汇集物联网设备所需的所有功能的首选方式。
随着 32 位嵌入式设备在功能和复杂性方面的提升,它们也获得了通信要求和多线程执行。这些都是需要实时操作系统的要求。使用 RTOS 可以带来快速、有保证的实时性能,通常还有预构建的文件系统和通信堆栈,开发人员可以简单地将其包含在构建映像中并通过操作系统的应用程序编程接口 (API) 进行访问,而无需从头开始构建和测试它们。
标准 API 和多线程执行的存在意味着在添加新功能时具有更大的灵活性,同时更容易将应用程序迁移到新的处理器环境。它还使不同的开发团队更容易处理应用程序项目的不同方面,并充满信心地将他们的工作结合在一起。由于许多 RTOS 由监管机构“预认证”,它们可以加快整个项目的认证过程,缩短上市时间和成本。简而言之,使用 RTOS 为构建具有高功能和可靠可靠性的创新连接设备奠定了可靠的基础。
RTOS 增强 IoT 安全性最近导致 Netflix、Twitter、PayPal 和其他主要网站瘫痪的分布式拒绝服务 (DDoS) 攻击是由寻找用户设备(网络摄像头、路由器等)的网络机器人引起的。只是忽略了更改出厂默认用户名和密码。它只是从一个常见的默认值列表中工作,并且能够渗透到成千上万的设备中。设计良好的 RTOS 有助于确保密码得到良好实施和正确使用。
虽然提供密码和用户名很重要,但保护它们免受未经授权的访问和破坏也很重要。这可以通过将它们保存在内存的安全区域中来实现,在该区域可以保护它们免受系统上可能运行的其他代码的影响。更具体地说,该区域不应用于数据通信。
破解密码可以授予对设备及其网络的访问权限,但黑客可以通过其他更微妙的方式获得一定程度的控制,以及窃取或以其他方式破坏数据。这些涉及连接机制和通信协议,以及由 RTOS 控制的内部存储器管理。
安全性需要了解从一个实体到另一个实体的数据流:知道谁拥有数据,谁可以写入和读取数据,以及这些读取和写入可能对控制产生的影响。这导致了许多安全通信协议的开发,这些协议已与当今先进的 RTOS 集成在一起,以保护数据免遭窃听和篡改。
基础之一是传输层安全 (TLS) 协议,它继承了安全套接字层 (SSL) 协议。TLS 通过使用客户端和服务器之间的握手会话来工作,在该会话中,客户端请求标识并发送包含服务器名称及其公共加密密钥的证书。客户端发送一个它支持的密码套件列表,然后服务器选择一个。服务器还发送它的公共加密密钥,客户端使用它来加密一个随机数。双方使用该号码来生成唯一的会话密钥。会话密钥仅用于该会话的各方之间的加密和解密。
需要注意的是,TLS 本身并不执行加密和解密。这是通过使用高级加密标准 (AES) 等机制的独立软件加密引擎完成的。AES 和其他加密引擎使用通过 TLS 生成的会话密钥来执行该任务。TLS 于 1999 年 1 月发布,用于创建私人通信标准。它构成了其他安全协议和策略的基础,可以内置并与它们一起使用,例如简单邮件协议 (SMTP) 或 HTTP 安全 (HTTPS) 协议,它们完全位于 TLS 之上,因此可以自己加密。
一旦开发人员不得不投入大量时间和精力来让这些不同的协议协同工作。然而,今天,现代 RTOS 提供与包含这些协议的安全 TCP/IP 堆栈的集成,并允许开发人员选择他们需要的核心协议,例如 IPv4、IPv6、UDP 等,以及更高级别的附加协议,例如 TLS、SSL 和 DTLS(图 1)。这使开发人员可以专注于应用程序所需的安全通信策略。
图 1:现代 TCP/IP 网络堆栈带有核心网络协议,例如 IPv4、IPv6、TCP 和 UDP,以及一整套附加的更高级别的附加协议。
内存保护保护重要代码有许多方法可以保护重要代码免受损害,其中许多涉及某种分离方案和内存保护。受保护的内存位于安全区域,外部通信或从其他地方加载的代码不会干扰运行设备的代码的核心功能。
这些方法包括不允许任何动态加载代码但需要更新单个可执行映像的 RTOS。它们还提供线程的动态加载,但维护某些不可侵犯的内存区域。这些有时被称为“分离内核”,其中至少有一个不可访问的内存区域以及连接到网络、外围设备和动态加载功能的几个部分。
确实提供这种内存保护的 RTOS 提供了从一个线程到无限数量的粒度级别,可以保护和防止意外或未经授权的访问。这消除了难以诊断的程序崩溃和安全漏洞的常见原因。这些选择提供安全性,同时还提供灵活性和可升级性,而无需完全重新加载系统。
在现实世界的实现中,Express Logic 的 ThreadX 内核可以将一个或多个应用程序线程捆绑到一个“模块”中,该“模块”可以在目标上动态加载和执行(XiP)(图 2)。模块也有一个完全独立于 ThreadX 本身的地址空间。这使 ThreadX 能够在模块周围放置内存保护(通过 MPU 或 MMU),这样模块外的意外访问将无法破坏任何其他软件组件。
图 2:在现实世界的实现中,ThreadX 允许将一个或多个应用程序线程捆绑到一个“模块”中,该“模块”可以在目标上动态加载和执行 (XiP)。
安全是一项共同的责任与 ARM 等硬件制造商合作的趋势也在增长,他们正在将安全措施内置到他们的处理器中。例如,较新版本的 Cortex-M MPU 可以增强 RTOS 安全功能,例如 Express Logic 的新 X-Ware 安全平台,以配合并增强整体安全功能。应该注意的是,即使是 RTOS 提供的最好的安全功能也代表了一个平台:构建真正安全的设备和应用程序的基础。
制造商 OEM 和应用程序开发商共同承担构建平台提供的安全功能的责任。这允许他们实现诸如安全引导加载程序之类的东西,并使用 TLS 和 DTLS 协议来保护敏感数据传输,利用内存分区来创建安全的应用程序,哦,是的,安装强密码保护。
结论当今的 RTOS 为构建功能强大、可靠、安全和可靠的设备和应用程序奠定了坚实的基础。通过精心设计的安全机制,包括安全堆栈、良好的内存分区以及强大的生态系统和设备级合作伙伴,它们提供了抵御恶意攻击的第一道防线。
审核编辑 黄昊宇
评论
查看更多