亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 物联网技术

如何保护 IoT 设备中的 UART 通信

通过将加密块集成到 MCU 中,开发人员已成为可能以保护每个通信通道,包括本身不提供安全性的 UART 等接口。

随着物联网 (IoT) 系统中引人注目的数据和隐私泄露事件越来越多,企业和消费者在购买连接产品时对安全性的需求有了更高的认识。提供一流的产品或服务已不再足够。无法提供足够安全性的设备将无法与提供端到端安全性的设备竞争。

许多协议在标准内实现了安全性,并且是任何控制器的内置部分。但是,通过通用异步收发器 (UART) 连接的嵌入式设备不受保护。 UART 是设备之间最简单的数字通信接口之一。它是一种无 ACK 通信协议,如果知道波特率,任何设备都可以读取。

为了防止数据被读取或注入系统,通信通道需要通过发送和接收数据的系统来保护。因此,即使入侵者以正确的波特率访问通信通道,该通道也将受到保护。

对称和非对称安全

通信通道通常使用加密算法进行保护。从广义上讲,密码算法可以分为对称和非对称。使用对称密钥算法,发送方和接收方共享一个密钥。发送方使用密钥对消息进行加密,并与接收方共享加密的消息。然后接收方使用相同的密钥解密消息。

对称密钥算法的主要安全问题是如何在发送方和接收方之间安全地交换密钥。如果密钥在密钥交换期间被另一个实体捕获,那么该实体也可以解密发送方发送的消息。因此,密钥在对称密钥算法中仅与发送方和接收方安全共享至关重要。

为了实现安全的对称密钥交换,使用了非对称密钥算法。非对称算法在加密和解密过程中使用不同的密钥。尽管这些键不同,但它们在数学上是相关的。对称密钥可以通过使用非对称密钥对其进行加密并且接收方使用相关的非对称密钥对其进行解密来安全地交换。非对称算法的一个缺点是它们涉及复杂的数学计算,并且往往是计算密集型的。

为了获得最高级别的安全性,使用 RSA 加密作为非对称密钥算法。使用 RSA,通信实体具有公钥和私钥。顾名思义,公钥是公开共享的,任何人都可以使用。相比之下,私钥仅由通信实体持有。为了向实体发送消息,发送方使用实体的公钥对消息进行加密。此加密消息只能通过私钥解密。由于私钥只对预期的接收者可用,这就确保了只有接收者才能解密消息。

公钥和私钥加密

RSA 使用指数计算和非常大数的质因数分解,使其高度安全但同时也是计算密集型的。此外,实时实施 RSA(以避免通信延迟)会因需要更高性能的处理引擎而增加系统成本。许多嵌入式系统不需要这种级别的安全性。相反,他们可以使用更精简的加密算法,例如高级加密标准 (AES),因为它需要更少的处理资源,因此更实用且更具成本效益。

AES 是一种对称密码算法,这意味着通信通道的双方共享一个公共密钥。上面提到的 AES 的局限性在于在 UART 发送方和接收方之间安全地共享密钥,而不会将其暴露给外部实体。为了解决这个问题,可以使用 RSA 来加密 AES 密钥并安全地交换它。由于公共密钥只需要共享一次,因此通信通道可以承受 RSA 的复杂性和延迟。换句话说,处理 RSA 算法的延迟只影响初始密钥交换,而不是每个消息。

安全密钥交换发生在几个阶段(图 1)。首先,UART 接收器生成一个 RSA 密钥对并与发送器共享其公钥。另一个实体是否看到公钥并不重要,因为它只会用于加密发送给 UART 接收器的消息。然后发送方随机生成一个 AES 密钥并使用接收方的公钥对其进行加密。接收方使用 RSA 私钥解密 AES 密钥。


图 1:使用 RSA 公钥和私钥安全交换 AES 密钥。 (来源:英飞凌)

由于只有接收方可以访问 RSA 私钥,因此加密的 AES 密钥只能由接收方解密。这确保了 AES 密钥只有发送方和接收方知道,任何可以访问通信通道的入侵者都无法推导出密钥。此外,发送方和接收方之间的所有后续消息都使用 AES 密钥进行加密,从而使不打算接收它们的任何其他方无法访问这些消息。这也消除了中间人 (MIM) 攻击的威胁,该攻击涉及在消息发送之后但尚未收到之前对其进行修改。

固件与硬件

使用固件在嵌入式设备中实施安全算法会带来许多设计挑战。加密算法,就其性质而言,往往是计算密集型的。它们还增加了内存占用,增加了处理延迟,并给系统带来了相当大的复杂性。因此,在固件中实施安全性将消耗大量 CPU 周期和 MCU 资源。此外,为了满足实时应用需求,需要更高性能的MCU,增加系统成本。

使用这么多 MCU 资源的部分原因是 MCU 是通用处理单元。因此,许多 MCU 集成了专为加密算法设计的硬件。与没有基于硬件的加密处理功能的 MCU 相比,通过集成的加密引擎,MCU 可以以更小的占用空间和更低的成本提供数据的实时加密和解密。

Infineon 的 PSoC 6 MCU 就是一个很好的例子。它有一个专用的加密块,可提供加密功能的硬件加速。加密块灵活,可用于支持不同的加密算法,以确保数据受到保护。这使开发人员能够使用加密标准(例如 AES、DES、TDES 和 RSA)和完整性检查(例如安全哈希算法 ( SHA) 和循环冗余校验 (CRC)。以这种方式从 MCU 卸载加密功能,可以经济高效地为几乎所有嵌入式应用程序引入安全性,而无需使用更强大的处理器。

真随机数

然而,保护嵌入式系统需要的不仅仅是加密通信。具体来说,系统生成的 AES 密钥需要是随机的。但是,MCU 是确定性的,因此生成的密钥也是确定性的,使黑客能够使用“蛮力”循环遍历不同的可能随机种子,并有可能推导出 AES 密钥。因此,固件需要一种生成真随机数的方法来保证AES密钥的随机性,因此不能被暴力破解。

为此,加密块必须包含真随机数生成器 (TRNG)。例如,在 PSoC 6 加密模块中,TRNG 具有六个环形振荡器,可提供物理噪声源。环形振荡器包含温度敏感反相器,会在环形振荡器的信号中引入抖动。该信号使 MCU 能够访问真正的随机数源,以确保其生成的 AES 密钥的随机性。

例如,要生成 16 字节的密钥,需要生成 16 次随机数并将其附加到之前的数字上。这使得 2^128 个键成为可能。足以防止“AES”密钥被暴力破解或猜测。

一些加密攻击侧重于分析捕获的通信。有了足够的资源,任何密钥最终都可能被破解。为了解决这种可能性并提高通信通道的整体安全性,每次重新启动时都会生成 AES 密钥。这是提高嵌入式系统安全性的一种简单但有效的措施。简而言之,即使密钥被入侵者识别,到它可以被利用时,它也很可能不再被使用。

安全放心

此时,考虑 UART 接口的安全性可能很诱人。但是,UART 是一种无 ACK 通信协议。这意味着该协议没有机制来确保接收者收到的消息是 a) 完整以及 b) 未损坏。

需要最后的安全阶段来确认消息的完整性。实现此目的的有效方法是使用 SHA 算法对消息进行哈希处理。通过像 SHA 这样的加密散列函数运行消息会产生一个散列,一个固定长度的输出。由于哈希函数是不可逆的单向函数,因此识别生成特定哈希的消息的唯一方法是尝试对所有可能的输入进行暴力搜索。


图 2:哈希函数可确保安全密钥交换和消息传输期间通信的完整性。 (来源:英飞凌)

在发送消息之前,整个消息的哈希值会附加到消息中(图 2)。然后使用 AES 密钥对消息加上散列进行加密。通过这种方式,散列可以用作完整性检查。接收方在解密后计算它解密的消息的哈希值。接收器然后比较接收到的散列和计算出的散列。如果它们相同,则消息没有被修改。但是,如果散列不匹配,则表明消息的​​完整性已受到影响。这可能是因为黑客试图修改消息或在传输过程中发生错误。无论如何,通讯失败了。

请注意,通过使用发送者的私钥对消息进行签名,可以进一步加强通信渠道的真实性。可以使用发件人的公钥来验证签名的消息,以验证只有发件人可以发送消息。换句话说,由于没有发送者的私钥,任何其他方都无法模仿发送者,从而确保消息的真实性。如需更多想法,请查看社区代码示例,其中包含来自其他工程师的许多项目。

实现安全性已成为嵌入式物联网系统设计的必要考虑因素。每个连接的设备都必须安全并保护用户数据不被泄露,这一点至关重要。通过将加密块集成到 MCU 中,开发人员可以保护每个通信通道的安全,包括 UART 等本身不提供安全性的接口。

—Harigovind A 和 Rakshith M B 是英飞凌科技的高级应用工程师。

>> 本文最初发表在我们的姊妹网站 EDN .


物联网技术

  1. 5G 将如何加速工业物联网
  2. 物联网如何连接工作场所
  3. 物联网提供全球利益
  4. 物联网如何塑造企业移动性?
  5. 7 个让您的物联网网络保持正常运行和安全的基本技巧
  6. 让物联网付出代价:如何建立有利可图的物联网商业模式
  7. 通过网络弹性为数十亿物联网设备提供安全的未来
  8. 杀伤链攻击对物联网的威胁有多大?
  9. 物联网如何彻底改变工作场所安全?
  10. 物联网如何增强客户体验
  11. 制造业中的 4 个关键物联网应用
  12. 克服物联网开发挑战