Re: [Zope] CoreSessionTracking: Brute-Forcing Web Application Session IDs
"Chris McDonough" <chrism@zope.com> writes:
This is annoying, of course, but it's not too bad yet.
Yes, it's annoying and because it can be made harder easily I recommend to do so. That's the thing I wanted to point out.
casually guess (19 characters, 8 of which are randomly generated), are there mitigatable risks which have a solution that doesn't depend on unchanging IP addresses that I'm overlooking?
It's very cost effective to integrate a hash and a secret: It does cost nearly nothing for you, the maintainer of CoreSessions and it really costs nothing besides a few CPU cycles for the sites using it. But it makes it *much* harder for potential attackers to go for a session id. So I think it should be done:) Of course you are right to tell the people not to rely on sessions for sensitive data. For that there should be an integrated solution to require SSL for sensitive pages/views. Regards, Frank -- CTO fte@Lightwerk.com http://www.Lightwerk.com/ Fax: +49-2434-80 07 94 Phone: +49-2434-80 07 81 Lightwerk GmbH * An der Kull 11 * 41844 Wegberg * Germany
It's very cost effective to integrate a hash and a secret: It does cost nearly nothing for you, the maintainer of CoreSessions and it really costs nothing besides a few CPU cycles for the sites using it. But it makes it *much* harder for potential attackers to go for a session id. So I think it should be done:)
OK, so do you recommend that I just use a shared secret string to obfuscate the session id? I suppose I could just use the rotor module to do this and come up with some URL-compatible way of representing a rotor'd string. Then I'd need to give folks some way to specify a key for rotor to use. I'd need to provide a default. And the actual browser id string would be really long. Ugh. Or do you think I should use dates/times and IP addresses as part of the string, rejecting session ids from machines that don't match the IP address encoded into the sid and date/times that are too long ago? Note that I believe there will be some cost involved in terms of documentation and support if this is the case. Sessions often just won't work due to proxy server banks that prevent users from appearing to come from the same IP address across requests. Maybe there could be a knob to turn "ultrasecure" behavior on and off. It could be off by default, and as part of turning the knob on, you'd need to specify a rotor key and nominally you'd also know that sessions stood a chance of not actually working if they incorporated the IP address as part of the hash. In any case, if anything like this goes in, this will be a feature of a sessioning system after Zope 2.5 and will not ship with 2.5. Thanks Frank! - C
Chris McDonough writes:
It's very cost effective to integrate a hash and a secret: It does cost nearly nothing for you, the maintainer of CoreSessions and it really costs nothing besides a few CPU cycles for the sites using it. But it makes it *much* harder for potential attackers to go for a session id. So I think it should be done:)
OK, so do you recommend that I just use a shared secret string to obfuscate the session id? Under my Linux (SuSE Linux 7.1), the random number generator is initialized on first installation and saved/restored across restarts. This means, its state is very random and could be used as secret.
Not sure, how other OSes handle this issue.... Dieter
participants (3)
-
Chris McDonough -
Dieter Maurer -
Frank Tegtmeyer