AES 加密模式
设备安全评审里经常会听到一句话:“数据用 AES 加密了。”
这句话不够。AES 是一个分组密码,它只定义了怎样用密钥把一个 16 字节分组变成另一个 16 字节分组。真实消息往往不止 16 字节,也可能包含重复内容、协议头、长度、填充和多包传输。
阅读更多设备安全评审里经常会听到一句话:“数据用 AES 加密了。”
这句话不够。AES 是一个分组密码,它只定义了怎样用密钥把一个 16 字节分组变成另一个 16 字节分组。真实消息往往不止 16 字节,也可能包含重复内容、协议头、长度、填充和多包传输。
阅读更多很多设备安全讨论里会出现一句话:“固件已经签名了,所以安全。”
这句话只说对了一部分。固件签名能证明固件由可信私钥授权,且内容没有被篡改。但它不自动解决固件是否加密、旧版本能不能回滚、启动链每一级是否都验证下一极、签名密钥怎样保护、更新失败后设备能不能恢复。
阅读更多很多设备接入云平台时,会拿到一个 .crt 或 .pem 文件,然后配置到 TLS、MQTT 或 HTTPS 客户端里。
这很容易让人以为“设备证书”就是一个文件。实际上证书只是信任链里可见的一段。真正要设计的是:设备怎样证明自己是谁,服务器怎样验证这个身份,设备私钥怎样生成和保存,证书过期或泄露后怎样处理。
阅读更多设备通信里经常会说“用 AES 加密一下”。这句话太粗了。
真正落地时要问的是:只加密内容,还是同时认证内容?是否能防篡改?是否防重放?nonce 从哪里来?设备断电重启后会不会复用同一个 nonce?
阅读更多很多设备安全设计里,会出现一句很危险的话:“我们对数据做了 SHA-256,所以是安全的。”
这句话通常不够。SHA-256 是哈希函数,它能把数据变成固定长度摘要,但它不知道是谁算的,也不能阻止攻击者把数据改了以后重新算一个摘要。
阅读更多日志里写着 associated,设备却还是发不出业务数据,多半是 WiFi 安全还没完成。扫描 -> 认证 -> 关联 只是把终端挂进一个 BSS (Basic Service Set),真正让数据面可用的是后面的密钥建立和安装。
目标:会应用、能理解并能设计方案。不讲复杂数学,只讲必要概念、参数与避坑清单。
[A私钥 + B公钥] --(ECDH/X25519)--> [共享秘密S]
[S] --(HKDF salt, info, L)--> [对称密钥K]
[消息M, AAD] --(AEAD:K, nonce)--> [C || tag]
[M] --(HMAC/CMAC:K)--> [tag]
[M] --(签名:私钥)--> [signature]
在 CryptoBox网页版 快速验证:
阅读更多