防止重放REST url的重播攻击

Ken*_*hin 3 authentication rest url https spring-security

我有Spring安全自定义休息过滤器,使用以下逻辑验证客户端请求.

标题字段

  1. 标题中的日期
  2. hmac哈希签名

身体

  1. hmac加密数据

iOS客户端使用POST发出此请求,我在服务器中将过期时间设置为15秒.

现在的问题是,如果有人使用像Charles这样的调试工具,并且如果他碰巧将断点放在url中并在15秒内触发,则nonce将有效并且服务器第二次处理该请求.我怎样才能防止这种情况发生.在这种情况下,nonce不起作用.

无论采用何种方法,如果黑客获得即将被解雇的最终网址,他可能会在现有数据到期之前多次解雇......

我怎样才能防止这种情况发生?

有人能帮我找到最好的弹簧安全实现吗?

此外,HTTPS默认是否保护我们免受重播攻击?我们是否需要ssl客户端验证(在构建中具有der格式证书并使用服务器证书验证)以使用https进行重放攻击?或者默认情况下是否可以使用https?

换句话说,我正在使用AFNetworking,我们是否需要使用SSL Pinning来利用https重放攻击?或者没有ssl固定它会工作吗?

Mvd*_*vdD 9

如果使用HTTPS调用REST API,则协议可以保护您免受网络级别的重放攻击.这意味着某人无法记录某些加密流量并成功重播.

但是,如果您正在寻找一种方法来阻止合法客户端多次发出相同的请求,您将需要使这些请求具有幂等性或在业务逻辑中实现重放机制.你可以使用nonce来做到这一点.现时值不会过期,但只能在单个事务中使用.