HMAC(基于哈希的消息认证码)将密钥与消息结合,通过哈希函数生成一个短值,只有拥有相同密钥和消息的人才能重现该值。它无需公钥加密即可同时提供真实性和完整性。
发送方计算 HMAC(密钥, 正文) 并将结果放入邮件头。接收方对收到的正文进行相同的计算并进行比较。如果正文或密钥不同,则结果不匹配。比较必须是常数时间的:普通的字符串比较会在遇到第一个不同的字节时就返回结果,这会泄露足够的时间信息,使得在尝试足够多的情况下可以重建有效的签名。
签名并不能证明数据包的新鲜度。事实并非如此——有效的签名数据包会永久有效,因此攻击者一旦截获此类数据包,就可以重放攻击。这就是为什么签名通常会结合时间戳和数据包正文进行计算,以及为什么接收方会拒绝几分钟前的数据。
触发 webhook 发送,并根据订阅时获得的密钥验证`x-funapi-signature` 。如果有效负载中的一个字节发生更改,验证就会失败,这正是目的所在。
所有术语 · 测试技巧 · 全部 39 个模拟 REST API
最后更新时间