长密码是否比 user/password 组合更安全?
Is just a long password more secure than a user/password combination?
基本上我的问题已经在标题里了
思路是:
选项 1:
密码: XXXXXXXX(8 个字符)
选项 2:
用户名: XXXX(4 个字符)
密码: XXXX(4 个字符)
应该同样安全吧?
从纯理论的角度来看,我会说是的。首先。如果我没记错的话,组合的数量应该是相等的。
但还有其他事情需要考虑。
首先,正如 Alex Shesterov 提到的,您无法更改给定用户的密码。
其次,如果两个人使用相同的密码(可能是哈希生成的),您将无法区分这些用户。
因此很难确定是否有人试图通过猜测(暴力)获取访问权限,或者是否有多个用户使用相同的密码。如果您有 user/password 组合,您可以分别计算每个用户的访问次数。
还有一点就是执行。如果您只有用于识别的密码,则每次访问都必须爬取所有密码数据库,这需要线性时间( O(n) ),这意味着不断增长的用户群将增加时间和精力,这每次访问都是必需的。
最后,对于攻击者来说,只需要找到一个有效密码,而不是有效的 user/password 组合。由于您无法区分不同的用户,如果他们使用相同的密码,这可能意味着攻击者可以访问整个系统,因为所有用户都是平等的。因此,您需要额外的方法来安全地区分您系统中的用户。
最后,我会坚持 user/password 组合并更改密码所需的复杂性和长度。
编辑: 删除了 link 生日问题,因为它不适用,如评论中所述。
基本上我的问题已经在标题里了
思路是:
选项 1:
密码: XXXXXXXX(8 个字符)
选项 2:
用户名: XXXX(4 个字符)
密码: XXXX(4 个字符)
应该同样安全吧?
从纯理论的角度来看,我会说是的。首先。如果我没记错的话,组合的数量应该是相等的。
但还有其他事情需要考虑。
首先,正如 Alex Shesterov 提到的,您无法更改给定用户的密码。
其次,如果两个人使用相同的密码(可能是哈希生成的),您将无法区分这些用户。
因此很难确定是否有人试图通过猜测(暴力)获取访问权限,或者是否有多个用户使用相同的密码。如果您有 user/password 组合,您可以分别计算每个用户的访问次数。
还有一点就是执行。如果您只有用于识别的密码,则每次访问都必须爬取所有密码数据库,这需要线性时间( O(n) ),这意味着不断增长的用户群将增加时间和精力,这每次访问都是必需的。
最后,对于攻击者来说,只需要找到一个有效密码,而不是有效的 user/password 组合。由于您无法区分不同的用户,如果他们使用相同的密码,这可能意味着攻击者可以访问整个系统,因为所有用户都是平等的。因此,您需要额外的方法来安全地区分您系统中的用户。
最后,我会坚持 user/password 组合并更改密码所需的复杂性和长度。
编辑: 删除了 link 生日问题,因为它不适用,如评论中所述。