2. 密码学基础回顾
说实话,很多做IoT的同学一上来就问我:“密钥体系到底怎么搭?”我的回答永远是——先把密码学基础打牢。你想想看,连加密算法都选不对,后面的密钥分发、证书管理全是空中楼阁。
这一章,我就带你快速过一遍IoT里最常用的三类密码学工具:对称加密、非对称加密、哈希函数。不扯数学公式,只讲工程选型。
对称加密:AES为什么是IoT的标配?
对称加密,说白了就是加密和解密用同一把钥匙。速度快、开销小,非常适合资源受限的IoT设备。
目前业界公认的对称加密标准是AES(Advanced Encryption Standard)。我个人习惯在项目里优先选AES-128,为什么?因为128位密钥的安全强度已经足够对抗目前已知的所有攻击手段,而且比AES-256快不少。
我在项目中遇到过一件事:某款智能门锁用AES-ECB模式加密开锁指令。结果呢?同样的指令每次加密结果都一样,攻击者直接重放攻击就能开门。嗯,这里要注意——ECB模式在IoT里基本是禁区,千万别用。
| AES模式 | 适用场景 | IoT推荐度 |
|---|---|---|
| ECB | 几乎不适用 | ❌ 不推荐 |
| CBC | 文件加密、固件加密 | ⚠️ 需配合HMAC |
| GCM | 网络通信、消息加密 | ✅ 强烈推荐 |
| CCM | 低功耗无线协议(如Zigbee) | ✅ 适合受限设备 |
非对称加密:RSA vs ECC,IoT里怎么选?
非对称加密用一对密钥:公钥加密、私钥解密。它解决了对称加密最头疼的问题——密钥分发。但代价是计算量大、速度慢。
IoT里非对称加密主要干三件事:
- 密钥协商:比如TLS握手时交换会话密钥
- 数字签名:固件签名、设备身份认证
- 证书验证:PKI体系的基础
RSA和ECC是两大主流。我个人的经验是:新项目优先选ECC。为什么?
你看这张对比表就明白了:
| 对比维度 | RSA-2048 | ECC P-256 |
|---|---|---|
| 密钥长度 | 2048位 | 256位 |
| 签名速度 | 慢 | 快 |
| 验签速度 | 快 | 慢(但可接受) |
| 安全强度 | 中等 | 高(同等强度下密钥更短) |
| IoT适用性 | 适合服务端 | 适合设备端 |
我曾经踩过一个坑:某项目用RSA-2048做固件签名验证,结果设备启动时验签花了将近3秒。用户投诉说“开机太慢”。后来换成ECC P-256,验签时间降到200毫秒以内。你想想看,用户体验差距有多大。
哈希函数:SHA-256为什么是IoT的“指纹”担当?
哈希函数不是加密,它是一类单向函数——输入任意长度数据,输出固定长度的摘要。而且不可逆、抗碰撞。
SHA-256是目前IoT里最常用的哈希算法。它输出256位(32字节)的摘要,安全强度足够。
哈希函数在IoT里的典型用途:
- 固件完整性校验:下载固件后算一遍哈希,和官方发布的对比
- 密码存储:存密码的哈希值,不存明文
- 消息认证码(HMAC):结合密钥验证消息完整性
- 数字签名的基础:先对消息哈希,再对哈希值签名
我在项目中遇到过一个问题:某团队用MD5做固件校验,结果被攻击者伪造了固件。MD5的碰撞攻击在2004年就被公开了,到现在快20年了,居然还有人用。嗯,这里要强调——MD5和SHA-1在IoT里已经不安全了,最低标准是SHA-256。
三种算法在IoT中的协同工作
实际项目中,这三种算法不是孤立使用的。它们经常配合起来干活。我画了一张图,帮你理清它们的关系:
这张图展示了一个典型的IoT安全通信流程:设备和服务端先用ECC协商密钥,然后用AES加密实际数据,同时用SHA-256保证固件和消息的完整性。三者缺一不可。
IoT选型总结:一张表说清楚
| 算法类型 | 推荐算法 | IoT选型要点 |
|---|---|---|
| 对称加密 | AES-128-GCM | 硬件加速支持、GCM模式自带认证、密钥长度128位足够 |
| 非对称加密 | ECC P-256 | 密钥短、签名快、适合资源受限设备;RSA-2048仅用于兼容旧系统 |
| 哈希函数 | SHA-256 | 安全强度高、输出长度适中、硬件支持广泛 |
好了,密码学基础就回顾到这里。记住一句话:对称加密管速度、非对称加密管分发、哈希函数管完整性。这三板斧用好了,IoT密钥体系的地基就稳了。