News for hackers. Stuff that matters.
Re:Security advisory: Breach and Django by tomp on Tuesday August 06, 2013 @11:11AM (#6166992)
> Putting random data in the server response will only slow down the attack.

Yes, that's what I mentioned in my post. However, the way I understand "Randomizing secrets per request", it means sending new, random secrets with every request (i.e. generating a new CSRF token for every request).

Re:Security advisory: Breach and Django by sdevlin on Tuesday August 06, 2013 @11:36AM (#6167154)
Changing the CSRF token with each request would work, but you also risk frustrating your users this way. If you have more than one tab open on the same web application, you could only submit a form successfully from the "freshest" of these.
Re:Security advisory: Breach and Django by tomp on Tuesday August 06, 2013 @01:43PM (#6167988)
Well, technically you don't need to invalidate the earlier CSRF tokens. Saving a big number of CSRF tokens per user would of course require quite a lot of storage, but maybe you could devise some "clever" scheme, e.g. token = "n" + sha(user_secret + "n"), which would be random enough for preventing BREACH, but easy enough to check.
Re:Security advisory: Breach and Django by nwh on Tuesday August 06, 2013 @09:10PM (#6170237)
You'd want to have the secret last in the hash, otherwise you're open to hash extension attacks in some rare cases.