物联网安全:强健设备保护的加密学基础
编者注:保障物联网安全对于维护数据流、固件及其连接的企业资源完整性至关重要。物联网安全是一项多方面的挑战,需要系统化方法来识别威胁并实施有效缓解措施。
改编自Perry Lea著作《面向架构师的物联网》。
第12章 物联网安全
作者:Perry Lea
加密学
加密与保密性是物联网部署的不可妥协底线。它们保护通信、固件和认证过程。实践中,我们使用三大核心加密原语:
- 对称密钥加密 — 同一密钥用于加密和解密。常见算法包括RC5、DES、3DES和行业标准AES。
- 公钥加密 — 公开共享的密钥加密数据,只有持有对应私钥者才能解密。这种非对称方案还支持认证和不可抵赖。广泛使用的椭圆曲线密码学、PGP、RSA、TLS和S/MIME都基于此模型。
- 加密哈希 — 将任意数据映射为固定长度摘要的单向函数。MD5、SHA-1、SHA-2和SHA-3属于此类。哈希支撑数字签名、消息认证码(MAC)和安全固件验证。对密码等小输入进行哈希时,追加盐值可增加熵;这是密钥派生函数(KDF)的一种形式。
点击查看大图
加密学要素。对称加密要求加解密使用相同密钥,非对称加密使用不同的公私钥对。哈希函数提供单向完整性校验。
对称密码学
在对称加密中,明文是清晰输入,密文是加密输出。高级加密标准(AES)是全球基准,取代了旧的DES算法。AES符合FIPS 197和ISO/IEC 18033-3,以128位分组运行,密钥长度为128、192或256位。密钥越长安全性越强,但消耗更多CPU周期:128位密钥需10轮,192位需12轮,256位需14轮。
// AES-128加密伪代码 // 输入:128位明文 // 输出:128位密文 // w:44个32位字(扩展密钥) state = in w = KeyExpansion(key) // 密钥扩展阶段 AddRoundKey(state, w[0, Nb-1]) // 初始轮 for round = 1 to Nr-1 SubBytes(state) // 非线性替换 ShiftRows(state) // 行置换 MixColumns(state) // 列混合 AddRoundKey(state, w[round*Nb, (round+1)*Nb-1]) end for SubBytes(state) // 最终轮 ShiftRows(state) AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1]) out = state
拖动右下角或滚动可扩展框体。 ↑
分组密码(如AES)以固定大小分组处理数据,依赖分组工作模式将算法扩展到更长消息。初始化向量(IV)确保相同明文分组产生不同密文,防止模式分析。常见模式包括:
- 电子密码本(ECB) — 最简单模式;每个分组独立加密。相同分组产生相同密文,不适合大多数应用。
- 密码分组链接(CBC) — 每个明文分组在加密前与前一个密文分组异或,提供扩散性。
- 密文反馈(CFB) — 类流模式,将前一个密文输出反馈到下一加密步骤。CFB不可并行化,但允许从丢失分组恢复。
- 输出反馈(OFB) — 类似CFB但生成密钥流与明文异或,支持纠错码。
- 计数器(CTR) — 使用nonce-计数器对将分组密码转为流密码,支持并行加密和高性能。
- CBC-MAC — 在CBC基础上添加消息认证码,实现完整性验证和来源认证。
这些模式源于1970年代末,由NIST在FIPS 81中规范化。它们保障机密性,但不防篡改。将认证与加密结合催生了认证加密模式,如AES-CCM(带CBC-MAC的计数器模式)。CCM是Zigbee、蓝牙低功耗、TLS 1.2(密钥交换后)、IPsec和Wi-Fi WPA2等协议的核心组成。
AES-CCM融合CTR模式高效解密密文流和CBC模式生成认证标签。标签与从解密载荷派生的期望值比对;不匹配表明潜在篡改。
点击查看大图
AES-CCM模式。
在全连通的n个节点网格中,双向通信需要n(n-1)/2个唯一密钥,呈二次方增长(O(n²))。因此高效的密钥管理策略对大规模物联网部署至关重要。
物联网技术