作为 restful web api 服务器,我们为我们的客户提供一个 clientid 和密码。我认为客户端使用 clientid + hMAC(clientid hashed by password) 进行身份验证就足够了。
我浏览了一些建议使用时间戳或基本字符串的更多信息的文档。我就是不明白那是什么意思。
任何大师都可以帮助解释时间戳究竟有助于防止攻击或其他什么吗?
最佳答案
问题是,如果没有时间戳,任何签名的消息将永远有效。如果攻击者设法捕获消息,他们可以无限重放它,甚至不会泄露您用于签署消息的 secret 。
如果您添加时间戳,则消息将在短时间后过期并防止这种情况发生。您可以选择在服务器应用程序中使用多长时间的时间戳。当您确实记得考虑“ future ”时间时,因为客户的点击可能会稍早于您的点击并在未来出现在您的应用程序中。
关于authentication - hMAC 认证中的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37150187/