主要观点:在 Trail of Bits 看到的加密失误中,“用哈希函数构建自己的工具”很常见,常见的“YOLO 构造”有 YoloMultiHash、YoloMAC、YoloPBKDF 等,这些构造存在问题如模糊编码、长度扩展攻击等,应使用更合适的函数如 TupleHash、HMAC、KMAC 等,现代密码 KDF 如 Argon2 等更安全。
关键信息:
- YoloMultiHash:常见构造,问题是模糊编码,易导致相同哈希值,可使用 TupleHash 或更好地序列化数据。
- YoloMAC:构造有长度扩展攻击和模糊编码问题,用 HMAC、KMAC 等更好,Keccak 虽无长度扩展攻击但需注意编码假设。
- YoloPBKDF:构造简单但不安全,易被破解,现代密码 KDF 更安全,可利用内存要求增加安全性。
重要细节: - YoloMultiHash 示例中若消息含分隔符会导致不同输入有相同哈希值,已被用于破解库安全。
- YoloMAC 长度扩展攻击可让攻击者在不知密钥情况下更新 MAC,还存在模糊编码问题,实际攻击已被证明。
- YoloPBKDF 从密码推导密钥困难,易被破解,现代密码 KDF 可增加安全性,如 Argon2 等,NIST 对某些函数有规定。
总结:选择合适的哈希函数及相关工具很重要,避免自行构建易出错的工具,利用已有的研究成果和成熟解决方案。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。