authentication - hMAC 认证中的时间戳

标签 authentication timestamp hmac

作为 restful web api 服务器,我们为我们的客户提供一个 clientid 和密码。我认为客户端使用 clientid + hMAC(clientid hashed by password) 进行身份验证就足够了。

我浏览了一些建议使用时间戳或基本字符串的更多信息的文档。我就是不明白那是什么意思。

任何大师都可以帮助解释时间戳究竟有助于防止攻击或其他什么吗?

最佳答案

问题是,如果没有时间戳,任何签名的消息将永远有效。如果攻击者设法捕获消息,他们可以无限重放它,甚至不会泄露您用于签署消息的 secret 。

如果您添加时间戳,则消息将在短时间后过期并防止这种情况发生。您可以选择在服务器应用程序中使用多长时间的时间戳。当您确实记得考虑“ future ”时间时,因为客户的点击可能会稍早于您的点击并在未来出现在您的应用程序中。

关于authentication - hMAC 认证中的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37150187/

相关文章:

c# - 属性中的依赖注入(inject)

python - 接受用户名或电子邮件以使用 django-allauth 登录

php - UNIX 时间戳(0) : Europe/London returns UTC+1

php - PHP 基于 token 的身份验证

node.js - Node Hmac 认证

Python - 如何知道您已使用 urllib2 登录

ruby-on-rails - 使用 Devise for Rails 禁止/阻止用户的最佳方法是什么?

node.js - Node JS 加密,无法在带有重音符号的字符上创建 hmac

python - 在python中创建带时间戳的文件夹

Java ResultSet.getTimestamp() 将毫秒附加到输出