我有一个API端点,外部网站可以提交一个帖子请求。确保请求是真实的并且不被篡改的最佳方法是什么,所以他们尊重完整性的原则。
由于数据没有价值,如信用卡信息,我不需要HTTPS集成。
我看过HMACs和数字签名,我相信第二个选择会更好,但我不确定这是否可行?
类似地,哈希请求并在我的服务器上验证它是否足够?
发布于 2015-01-27 06:14:57
HMAC和数字签名都提供了完整性和身份验证:
主要区别- HMAC消息不能被第三方检查/验证,只有知道秘密的人才能验证/验证消息。数字签名消息具有公共证书,任何人都可以通过对附加公钥的消息进行解密、计算散列和在特殊可信侧检查公钥来检查消息所有者。
结论-使用HMAC,如果您不需要任何人能够检查,是一些信息真正属于发件人。
类似地,哈希请求并在我的服务器上验证它是否足够?
不是的。中间的人可以修改您的消息并附加修改后的消息的散列。哈希提供了完整性,这意味着消息修改也会改变哈希,但是黑客不用担心哈希相等,因为他只是完全用内容和哈希替换了消息!HMAC中的一些秘密用法阻止了这样的消息替换:中间人仍然可以更改消息,但是他无法重新计算哈希,因为他不知道秘密。
https://stackoverflow.com/questions/28142813
复制相似问题