理解会话熵

时间:2014-06-17 11:20:09

标签: php session entropy

文章https://www.owasp.org/index.php/Insufficient_Session-ID_Length 你可以阅读会话猜测攻击。

攻击者需要多长时间才能找到有效/有效的会话?

enter image description here

B is the number of bits of entropy in the session identifier
A is the number of guesses an attacker can try each second
S is the number of valid session identifiers
  that are valid and available to be guessed at any given time 

大多数PHP默认设置使用md5散列(128位)。 当我使用128表示B,1000表示A和500表示S时,我得到3,4028236692093846346337460743177e+32秒或大约10790283070806014188970529,15499年的结果。

似乎很好。我从未在任何低于128位的网站上看过任何会话,(问题:)或者我的假设是否有问题?

默认值是否安全

现在使用此(偏执狂模式)

ini_set('session.hash_function', 'sha512');
ini_set('session.hash_bits_per_character', 6);
ini_set('session.entropy_file', '/dev/urandom');
ini_set('session.entropy_length', 128);

生成会话ID,例如:

K7ZvnlbRth5JbbJIRIDWdljiKHnP2fRrOVpCMxSbp9rO4OWzynraCon3O-Gfu9beuy2YGHEBpE14uvMzOfVvj3

2 个答案:

答案 0 :(得分:0)

是和否,蛮力攻击是非常原始的攻击类型。

没有人会尝试使用当前性能边界强制执行散列算法。

每秒1000次会话猜测我相信也远非现实。任何暴力攻击都受到带宽的限制,大多数防火墙每秒都会阻止这么多的请求。

如果您担心会话安全性,您需要考虑客户端和服务器之间的安全数据传输,因为大多数攻击都会尝试窃取会话密钥,而不是试图强制它。 (wiki link)

答案 1 :(得分:0)

不要担心会话暴力强迫。如你所说,暴力破解会话ID需要很多时间。你必须担心会话劫持。

在此处查看有关会话劫持的更多信息: http://en.wikipedia.org/wiki/Session_hijacking