Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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
Security 为什么web应用程序坚持定义严格的密码规则?_Security_Passwords_Salt - Fatal编程技术网

Security 为什么web应用程序坚持定义严格的密码规则?

Security 为什么web应用程序坚持定义严格的密码规则?,security,passwords,salt,Security,Passwords,Salt,你们都遇到过各种各样的网站,它们强迫你们拥有6个字符长的密码,必须有1个数字,并且必须与“烦人”押韵 显然,有时这是必要的,但有时这都是出于安全考虑,这是有原因的。我发现这很烦人,因为我有一套标准的密码,但往往与这些特殊的规则不匹配,所以我必须创建并记住一个新的密码 如果您担心用户的密码有多复杂,那么在安全方面似乎还有更重要的事情要担心。如果有人真的能得到这个密码,那么你显然有更大的问题要担心。在依赖用户担心您的安全之前,请做好您的工作并锁定系统的一端 我的实际问题是:除了这些复杂的密码规则之外

你们都遇到过各种各样的网站,它们强迫你们拥有6个字符长的密码,必须有1个数字,并且必须与“烦人”押韵

显然,有时这是必要的,但有时这都是出于安全考虑,这是有原因的。我发现这很烦人,因为我有一套标准的密码,但往往与这些特殊的规则不匹配,所以我必须创建并记住一个新的密码

如果您担心用户的密码有多复杂,那么在安全方面似乎还有更重要的事情要担心。如果有人真的能得到这个密码,那么你显然有更大的问题要担心。在依赖用户担心您的安全之前,请做好您的工作并锁定系统的一端

我的实际问题是:除了这些复杂的密码规则之外,还有什么其他方法可以降低彩虹表或暴力哈希反转器的风险,而不依赖用户来承担记住复杂内容的重任?

一些想法:腌制,

使用KeePass

这肯定会减少麻烦。

使用KeePass


这肯定会减少麻烦。

几乎每个网站都会对你的密码进行加密,不管你选择什么。问题不在于遗留代码、服务器端的数据库安全或诸如此类的问题,开发人员在大多数情况下都会涉及这些问题。问题是愚蠢的用户提交的密码很容易被破解。这些规则的要点是迫使你不要选择太愚蠢的密码


这里有一个参考链接

无论你选择什么,几乎每个网站都会对你的密码进行加密。问题不在于遗留代码、服务器端的数据库安全或诸如此类的问题,开发人员在大多数情况下都会涉及这些问题。问题是愚蠢的用户提交的密码很容易被破解。这些规则的要点是迫使你不要选择太愚蠢的密码


这里有一个参考链接

设置密码规则的原因是为了尝试并确保“更强”的密码,这意味着,实际上,使用暴力攻击平均需要更多的尝试才能找到密码。大多数人,即使在很多例子之后,比如,都会使用Joe密码,或者字典中容易受到暴力攻击的单词


最好的办法是询问密码背后的数据值是多少,然后询问破解密码的成本(努力)是多少。如果值很小,则不需要复杂的规则,也可能根本不需要密码。如果该值较高,则需要使其更加困难。

密码规则的原因是尝试并确保一个“更强”的密码,这意味着,实际上,使用暴力攻击平均需要更多的尝试才能找到密码。大多数人,即使在很多例子之后,比如,都会使用Joe密码,或者字典中容易受到暴力攻击的单词


最好的办法是询问密码背后的数据值是多少,然后询问破解密码的成本(努力)是多少。如果值很小,则不需要复杂的规则,也可能根本不需要密码。如果该值很高,则需要增加难度。

Keepass还有一个优点,即在windows中的大多数情况下,它将直接从USB闪存驱动器运行(例如,甚至不必安装)。把keepass和你的数据库文件都放在u盘上,你就有了一个快速简便的便携式密码参考数据库。确保你用一个很好的强密码保护keepass,尽管你不想让所有的东西都进入你的密码数据库。keepass还有一个优点,在windows的大多数情况下,它将直接从USB闪存驱动器运行(例如,甚至不必安装)。把keepass和你的数据库文件都放在u盘上,你就有了一个快速简便的便携式密码参考数据库。确保你用一个好的强密码保护keepass,就像你松开了USB驱动器一样,你不希望所有的东西都进入你的密码数据库。

好的,下面是整个故事

首先,让我们定义一个方案“善”的度量。对于密码之类的东西,衡量标准是暴力攻击获得访问权限所需的平均试验次数

假设您的密码是从字母表s中提取的,其中包含n个字符,密码的长度是k。然后,可能的密码总数为nk

因此,平均而言,一次暴力攻击将在大约nk/2或nk-1试验中找到一个成功的密码

为了方便起见,由于一些信息论方面的考虑,我不打算讨论,我们通常将其表示为若干位,即lg nk,其中lg表示对数底2。因为我们习惯于将位看作离散的东西,我们实际上通常采用该数字的上限,即大于lg nk的最小整数,但事实上分数值是完全合法的

对于可打印字符、8个字符的密码,以及没有其他规则的情况,该数字大约为1008或1016;这大约是53位。唯一的问题是那些随机密码几乎不可能记住;他们往往会在黄色的便笺上结束,并变得容易受到这种攻击。不过,这是一个有限的例子。要想用蛮力猜出这一点,大约需要100万亿次。如果每次尝试都要花一分钱,那么理论上,你的数据价值可能高达1万亿美元,然后才值得一个小偷的时间

另一方面,字典中常用的单词只有大约50000个。这大约是16位,或者br需要25000次尝试