防止重放REST url的重播攻击

时间:2016-04-30 07:50:59

标签: rest url authentication spring-security https

我已经使用以下逻辑对安全性自定义休息过滤器进行身份验证。

标题字段

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

    1. hmac加密数据
    2. iOS客户端使用POST发出此请求,我已过期  服务器中的时间设置为15秒。

      现在的问题是,如果有人使用像Charles或者那样的调试工具  别的东西,如果他碰巧把断点放在网址和  在15秒内触发相同,nonce将是有效的和服务器  第二次处理请求。我怎样才能防止这种情况发生  发生。在这种情况下,nonce不起作用。

      无论是什么方法,如果黑客获得最终的网址  即将被解雇,有可能他可以解雇多次  在随机数到期之前的几倍......

      如何防止这种情况发生?

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

        

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

           

      换句话说,我正在使用AFNetworking,我们是否需要使用SSL   固定使用https重播攻击?还是没有   ssl pinning?

1 个答案:

答案 0 :(得分:9)

如果使用HTTPS调用REST API,则在网络级别使用the protocol protects you from replay attacks。这意味着某人无法记录某些加密流量并成功重播。

但是,如果您正在寻找一种方法来阻止合法客户端多次发出相同的请求,您将需要在业务逻辑中发出这些请求idempotent或实施重播机制。您可以使用nonce执行此操作。随机数不会过期,但只能在单个事务中使用。

相关问题