TI Sitara™ MCU 器件具有强大的网络协议栈和已在业界广泛使用的硬件 IP 支持。如果无法保证网络的安全性,那么与外部世界的连接就会存在风险。虽然网络功能和硬件 IP 正在持续不断地发展,逐步变得更加高效和优化,但安全方面也不容忽视。缺乏安全性可能会导致系统功能异常,甚至导致环境易于受到 MITM、窃听、篡改或消息伪造等网络攻击。这种不足可以通过使用传输层安全协议 (TLS) 来弥补。TLS 是一种加密协议,主要通过对传输的数据进行加密来为互联网通信提供保护。TLS 确保可在网络中的两个或多个实体之间建立安全的通信通道。
TLS 协议可分为两个部分:
本文档介绍了在现有 LwIP TCP/IP 网络协议栈上集成适用于 Sitara MCU 器件的 MbedTLS,从而增加传输层(OSI 模型的 L4)的安全性。传输层提供了一个安全的端到端通信通道。因此,所有数据都可以在传输层(第 4 层)之后通过网络安全地传输。MbedTLS 项目作为独立库移植到 TI 架构中,可测量性能以及通过硬件加速优化加密操作的方法。此外,本文档还讨论了 MbedTLS 在网络安全示例中的使用。
本文档中讨论的代码和示例可以在适用于 AM243x、AM263x、AM273x 和 AM64x 器件的 TI MCU_PLUS_SDK v09.00 或更高版本中找到。
Sitara™is a TM ofTI corporate name.
Other TMs
工业 4.0 属于数据密集型应用并依赖于实时决策,相关应用需要一种机制来安全地通过网络传输数据。该演示是 TI Sitara MCU 器件在网络和安全领域的一项进步。
本应用手册介绍了以下内容:
TI Sitara MCU 器件具有高性能多核处理能力,专为实时处理和连接而设计。MbedTLS 与 LwIP 的集成旨在通过增加一层安全性来进一步增强网络和连接性。LwIP 是一种嵌入式系统中常用的轻量级 TCP/IP 堆栈。这些器件具有用于联网的 CPSW 和 ICSS IP。这些器件具有原始处理能力和实时信号控制能力,并支持多协议以太网标准,因此网络的运行速度可高达 1Gbps。这些器件还具有强大的加密加速器,可将加密工作从软件卸载到硬件,从而进一步优化整体应用的性能。
MbedTLS 是 SSL 和 TLS 协议的实现,以及必要的支持代码和相应的加密算法。MbedTLS 根据 Apache 许可证 2.0 版进行分发。MbedTLS 提供了通过 TCP/IP 协议栈进行安全通信所需的抽象层,如图 2-1 所示。MbedTLS 和 LwIP 网络安全示例所需的软件栈。
MbedTLS 的替代品包括 OpenSSL、GnuTLS、LibreSSL,但 TI 更喜欢使用 MbedTLS,因为 LwIP 中提供对 MbedTLS 的直接支持。只需对现有 LwIP 配置进行极少的更改,即可将 MbedTLS 移植到 LwIP 中。
MbedTLS 构建为一个独立的库,在 LwIP 中具有用于应用层 API 的挂钩,下一节将对此进行详细讨论。MbedTLS 提供详细的文档和易于使用的 API,是一种快速高效地为应用增添安全性的方法。MbedTLS API 不仅可用于提高网络通信的安全性,还可用于需要加密实现的应用。
此外,MbedTLS 提供了一种定义明确的方法来将加密操作从软件卸载到硬件。请注意,AES、SHA、RSA、ECDSA、ENTROPY、计时函数、DES、ARIA 等均可以卸载到硬件上。MbedTLS 还提供了部分卸载加密工作的选项,例如将加密卸载到硬件而在软件上执行解密,从而提高了优化的整体灵活性。根据 CPU 时钟速度、RAM 执行、缓存使用情况等因素,可以优化吞吐量。对 TI Sitara™ AM2434 进行相同测试后发现,与执行软件加密相比,使用硬件加密加速器进行 AES 加密和解密时吞吐量增加了 8 至 10 倍(注意:这不是硬件卸载加密性能的基准数据,这些性能数据特定于实现并可以进一步改进)。MbedTLS 配置由头文件控制,该文件可用于启用或禁用所需的加密模块甚至密码套件。这可用于减小 MbedTLS 库的代码大小。
借助 MbedTLS,我们为 TI 器件的开放世界网络增添了安全性。MbedTLS 可用于网络中任何需要填补 TLS 空白的场合。MbedTLS 可用于将设备用作 TLS 实体(客户端或服务器)。从应用的角度来看,MbedTLS 功能可用于固件无线 (FOTA) 更新。其他潜在的应用包括远程诊断、车辆状况监控、安全外壳和安全日志、安全信息以及事件管理等。MbedTLS 是 OpenVPN 集成中的一个潜在用例。