首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由Mashery实现的API签名认证是如何工作的?

由Mashery实现的API签名认证是如何工作的?
EN

Stack Overflow用户
提问于 2011-11-07 21:33:46
回答 4查看 6.1K关注 0票数 4

Mashery允许通过数字签名认证如下:

首先,将以下组件连接起来: Timestamp

  • API密钥

  • 共享秘密

然后,

  • ,创建级联字符串.

的MD5哈希。

文档指出unix时间戳只需要+/- 5分钟的准确性。详细信息:http://support.mashery.com/docs/read/mashery_api/20/Authentication

假设这不是一个商业秘密,这样执行身份验证的算法是什么?

具体来说,当unix时间戳可以改变5分钟时,怎么可能呢?一种“蛮力”技术可能是为每个可能的时间戳值计算一个签名,直到找到匹配(或不匹配)为止,但对于验证频繁的API调用来说,这似乎不太实际。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-10 03:15:02

是的,它似乎就是这样做的。您给出的文档链接声明:“允许在Mashery服务器当前时间戳的任何一侧进行5分钟的摆动,以允许合理的时钟漂移。”这意味着他们需要检查多达600散列,以确定提交的散列是否有效。5分钟是300秒。正负等于600张支票。

在我看来很实用。600 MD5s并不是很多处理要做的事情。事实上,现代密码验证器(就像使用bcrypt的东西)将执行更多的工作来验证密码。

票数 3
EN

Stack Overflow用户

发布于 2011-11-15 10:43:10

Amazon给出了一个很好的请求签名示例,并且非常详细地说明了这一机制(我意识到这不是mashery --但我认为这是您的目标,或者至少会帮助您实现API安全快乐)

http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?RESTAuthentication.html

票数 2
EN

Stack Overflow用户

发布于 2016-04-28 19:07:59

Mashery还可以根据需要预先生成有效签名列表或缓存每个sig。该签名对于Mashery为该API密钥/共享秘密所保护的所有API都是全局的,因此不需要对每个请求唯一地验证API调用。

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

https://stackoverflow.com/questions/8042907

复制
相关文章

相似问题

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