首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HTTP请求的真实性和完整性

HTTP请求的真实性和完整性
EN

Stack Overflow用户
提问于 2015-01-25 23:25:36
回答 1查看 2.1K关注 0票数 7

我有一个API端点,外部网站可以提交一个帖子请求。确保请求是真实的并且不被篡改的最佳方法是什么,所以他们尊重完整性的原则。

由于数据没有价值,如信用卡信息,我不需要HTTPS集成。

我看过HMACs和数字签名,我相信第二个选择会更好,但我不确定这是否可行?

类似地,哈希请求并在我的服务器上验证它是否足够?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-27 06:14:57

HMAC和数字签名都提供了完整性和身份验证:

  • 完整性-因为两者都是基于散列的。HMAC是基于哈希的消息认证代码.数字签名是加密的散列中的一些消息。
  • 身份验证-因为HMAC使用对称密钥,而数字签名使用非对称私钥。秘密/私钥只能与知道它=身份验证的人一起使用。在HMAC中检查接收方的秘密/私钥--接收方也知道秘密,这就是为什么我们称之为对称的原因。在数字签名中检查接收方的秘密/私钥--接收者也获得公共证书,该证书可以在可信的第三方上进行检查。

主要区别- HMAC消息不能被第三方检查/验证,只有知道秘密的人才能验证/验证消息。数字签名消息具有公共证书,任何人都可以通过对附加公钥的消息进行解密、计算散列和在特殊可信侧检查公钥来检查消息所有者

结论-使用HMAC,如果您不需要任何人能够检查,是一些信息真正属于发件人。

类似地,哈希请求并在我的服务器上验证它是否足够?

不是的。中间的人可以修改您的消息并附加修改后的消息的散列。哈希提供了完整性,这意味着消息修改也会改变哈希,但是黑客不用担心哈希相等,因为他只是完全用内容和哈希替换了消息!HMAC中的一些秘密用法阻止了这样的消息替换:中间人仍然可以更改消息,但是他无法重新计算哈希,因为他不知道秘密。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28142813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档