保障物联网设备UART安全:从RSA密钥交换到AES加密
现代微控制器内置加密模块,开发者现在能保护每个通信通道,甚至传统缺乏内置安全的UART等传统接口。
物联网系统高调数据泄露事件表明,仅提供优秀产品已不够——设备必须提供端到端加密以保持竞争力。
虽然许多协议原生嵌入安全,但UART仍是无ACK的明文接口,若波特率已知即可被读取或篡改。为防窃听和注入,端点自身必须加密和认证数据。
对称与非对称安全
加密保护通常分两类:对称和非对称算法。对称密钥——发送方和接收方共享——提供快速加密,但密钥必须安全交换。非对称密钥对通过允许一方用公钥加密对称密钥解决此问题;仅持有对应私钥者能解密。
RSA是密钥交换最常用非对称方案,AES因其高效和低资源占用成为数据加密主力。
公钥与私钥加密
RSA数学复杂性确保强安全,但需大量计算能力,在嵌入式实时系统中代价高昂。对大多数物联网设备,混合方法——RSA交换AES密钥,再用AES批量加密——提供速度与安全最佳平衡。
实践中,接收方生成RSA密钥对并发布公钥。发送方创建随机AES密钥,用接收方公钥加密并发回。接收方用私钥解密AES密钥,后续所有消息用该密钥加密。
图1:使用RSA安全交换AES密钥。(来源:Infineon)
因只有预期接收方持有私钥,攻击者即使截获信道也无法恢复AES密钥。后续所有通信免受窃听和篡改。
固件与硬件实现
纯固件实现加密算法资源消耗大:占用CPU周期、增加延迟、提高功耗。现代MCU通过专用加密加速器缓解此问题,将繁重操作卸载至专用硬件模块,大幅降低占用和成本。
Infineon PSoC 6 MCU即此类典范。其内置加密引擎支持AES、DES、TDES、RSA、SHA、CRC,让开发者无需更强处理器即可部署强健安全。
真随机数
随机性对密钥生成至关重要。确定性固件可能产生可预测密钥,使暴力攻击可行。真随机数生成器(TRNG),如PSoC 6中的六个环振荡器,引入物理噪声生成不可预测密钥。
对于16字节AES密钥,TRNG生成128随机位——产生2^128种可能密钥,远超暴力破解范围。此外,每次重启重新生成密钥限制任何泄露密钥的暴露窗口。
确保完整性与真实性
UART缺乏ACK意味着无固有保证消息完整或未损坏。为应对,消息加密前附加加密哈希(SHA)。接收方解密后重新计算哈希并与接收值比对。不匹配表明篡改或传输错误,导致消息丢弃。
图2:哈希确保安全交换中的消息完整性。(来源:Infineon)
为额外真实性,发送方可用私钥签名消息;接收方用发送方公钥验证签名,保证消息源自合法来源。
通过将RSA、AES、TRNG、SHA集成进MCU加密模块,开发者可保护传统无防护的UART接口,不牺牲性能或成本。
——Harigovind A和Rakshith M B,Infineon Technologies高级应用工程师
>> 本文最初发表于我们的姊妹网站EDN。
物联网技术