3. 对称签名

最后更新于:2022-04-01 04:45:47

## 3. **对称签名**: 应该选择 HMAC 类的算法 适用场景:安全加固一个API,如各种开放API的调用方认证 如果对一个API,你需要做认证(authenticating),但是不需要做加密(encrypting),记得千万不要自己发明算法,你自己发明的MAC算法基本都有安全漏洞,如果不信,请Google一下 “长度扩展攻击” [长度扩展攻击](http://en.wikipedia.org/wiki/Length_extension_attack) [Flickr的漏洞案例](http://netifera.com/research/flickr_api_signature_forgery.pdf) 同时,必须要注意的是,要使用一个**常数时间字符串对比算法**(这个地方和码农的常识完全相反,请务必留意) 此外,应该 * 避免自行设计的“带密码的hash”结构,你的设计基本都是有安全漏洞的 * 避免HMAC-MD5,避免HMAC-SHA1,使用HMAC-SHA256, HMAC-SHA512等 * 避免复杂的多项式MAC * 避免加密hash值的结构 * 避免CRC
';