Security HMAC时间戳调整

Security HMAC时间戳调整,security,hmac,timestamping,session-replay,Security,Hmac,Timestamping,Session Replay,我已经回顾了很多关于保护RESTfulWebAPI的HMAC方法的信息。为了防止重播攻击,通常建议使用带有约束的时间戳 但在我看来,一种更直接(也更简单)的方法是需要一个唯一的时间戳,其中服务器只接受每个客户端一次特定的时间戳,因此来自特定客户端的所有请求都必须具有唯一的时间戳 与通常的建议相比,这种时间戳方法有什么缺点吗?从我的观点来看,与其他时间戳限制(如10分钟到期或其他限制)相比,只允许时间戳一次只能提高您的安全性。但是您对“常规建议”的理解是什么?正如您所提到的,常规建议是确保时间戳在

我已经回顾了很多关于保护RESTfulWebAPI的HMAC方法的信息。为了防止重播攻击,通常建议使用带有约束的时间戳

但在我看来,一种更直接(也更简单)的方法是需要一个唯一的时间戳,其中服务器只接受每个客户端一次特定的时间戳,因此来自特定客户端的所有请求都必须具有唯一的时间戳


与通常的建议相比,这种时间戳方法有什么缺点吗?

从我的观点来看,与其他时间戳限制(如10分钟到期或其他限制)相比,只允许时间戳一次只能提高您的安全性。但是您对“常规建议”的理解是什么?正如您所提到的,常规建议是确保时间戳在一定范围内(通常在服务器时间前几分钟内)。这还需要在服务器和客户端之间进行某种程度的同步。我的问题是,为什么不更经常地推荐唯一时间戳(实际上是一个nonce)方法?好吧,也许这些方法得到的推荐量与它们需要实现的工作量成正比。例如,每个客户端的唯一时间戳意味着某种会话管理,而更简单的时间戳约束只需要一个请求过滤器。我实现了这里提到的更简单和更复杂的时间戳约束,但我实际上没有大量阅读“文献”。我的信息是基于经验的,并且来源于我可以研究和改进的已经运行的系统。最后,我想这是一个设计/架构决策,每种方法都有优缺点(是的,对于简单的范围检查,您必须在服务器和客户端之间进行某种同步,这在封闭网络中并不总是容易的:)