Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 会话中的密码安全_Session_Authentication_Cookies_Hash_Passwords - Fatal编程技术网

Session 会话中的密码安全

Session 会话中的密码安全,session,authentication,cookies,hash,passwords,Session,Authentication,Cookies,Hash,Passwords,我们使用高计算成本的强散列函数和随机salt来阻止彩虹攻击等,而不是对纯文本密码进行排序 但是,当用户在会话中时,通常会将其用户名与密码散列一起存储为cookie以验证会话。如果用户的浏览器cookie空间被破坏,攻击者不是更容易获得破解用户名+会话散列而不是用户名+传递散列的目标吗 例如,在Django中,密码用PBKDF2或bcrypt散列,但会话散列使用不太复杂的HMAC,并且没有随机salt。这是安全问题吗?如果是,处理会话的正确方法是什么?对于每个会话,我建议使用专用SessionID

我们使用高计算成本的强散列函数和随机salt来阻止彩虹攻击等,而不是对纯文本密码进行排序

但是,当用户在会话中时,通常会将其用户名与密码散列一起存储为cookie以验证会话。如果用户的浏览器cookie空间被破坏,攻击者不是更容易获得破解用户名+会话散列而不是用户名+传递散列的目标吗


例如,在Django中,密码用PBKDF2或bcrypt散列,但会话散列使用不太复杂的HMAC,并且没有随机salt。这是安全问题吗?如果是,处理会话的正确方法是什么?

对于每个会话,我建议使用专用SessionID-随机长128位值。并且,将会话密钥保持为:

username:SessionID:hash
在哪里

每次,当您收到cookie时,您都需要再次计算哈希值,并与收到的哈希值进行比较

因此,此cookie在会话关闭后无效(SessionID不匹配)。 此外,若cookie将从活动会话中被盗,服务器可以 找出来自另一台计算机的被盗cookie的攻击,因为来自真实客户端的客户端IP将不同于实际客户端IP

当然,如果更改了ClientIP,会话将自动断开

备选方案-使用基于客户端的身份验证系统
例如,SSL证书-。

对于每个会话,我建议使用专用SessionID-随机长128位值。并且,将会话密钥保持为:

username:SessionID:hash
在哪里

每次,当您收到cookie时,您都需要再次计算哈希值,并与收到的哈希值进行比较

因此,此cookie在会话关闭后无效(SessionID不匹配)。 此外,若cookie将从活动会话中被盗,服务器可以 找出来自另一台计算机的被盗cookie的攻击,因为来自真实客户端的客户端IP将不同于实际客户端IP

当然,如果更改了ClientIP,会话将自动断开

备选方案-使用基于客户端的身份验证系统 SSL证书,例如-