为什么强密码需要包含特殊字符。
有些网站要求输入特殊字符作为创建密码的必填项。
背后是否有任何技术原因?
答案 0 :(得分:3)
当然。解释起来很长,它超出了我的谦逊能力,所以你需要阅读Entropy in Information Theory的概念。来自Wikipedia的更简单的解释:
人工密码
众所周知,人们在获得足够的熵以产生令人满意的密码方面是错误的。一些舞台上的魔术师通过对受众成员所做的假设的随机选择(数字,比较)进行分析来利用这种无法娱乐的方式。因此,在一项超过300万个八字符密码的分析中,字母“e”的使用次数超过150万次,而字母“f”仅使用了250,000次。均匀分布将使每个角色使用大约900,000次。最常用的数字是“1”,而最常见的字母是a,e,o和r。
用户很少在形成密码时充分利用较大的字符集。例如,2006年通过MySpace网络钓鱼计划获得的黑客攻击结果显示有34,000个密码,其中只有8.3%使用了大小写,数字和符号。
请注意,只有当密码中的每个字符都是从该集合中随机选择时,才能实现与使用整个ASCII字符集(数字,大小写混合字母和特殊字符)相关的全部强度。将字母大写并在密码中添加一个或两个数字和特殊字符将无法实现相同的强度。如果以可预测的方式添加数字和特殊字符,比如在密码的开头和结尾添加,则与相同长度的全字母随机密码相比,它们甚至可以降低密码强度。 NIST特刊800-63
2004年6月的NIST特刊800-63建议采用以下方案粗略估算人为密码的熵:2
The entropy of the first character is four bits;
The entropy of the next seven characters are two bits per character;
The ninth through the twentieth character has 1.5 bits of entropy per character;
Characters 21 and above have one bit of entropy per character.
A "bonus" of six bits is added if both upper case letters and non-alphabetic characters are used.
A "bonus" of six bits is added for passwords of length 1 through 19 characters following an extensive dictionary check to ensure the password is not contained within a large dictionary. Passwords of 20 characters or more do not receive this bonus because it is assumed they are pass-phrases consisting of multiple dictionary words.
使用此方案,估计没有大写字母和非字母字符的八个字符的人工选择密码具有18位熵。 NIST出版物承认,在开发时,关于真实世界的密码选择的信息很少。
后来使用新获得的现实世界数据对人类选择的密码熵进行的研究表明,NIST方案没有为人类选择的密码的熵估计提供有效的度量。 可用性和实施注意事项
由于国家键盘实现方式不同,并非所有94个ASCII可打印字符都可以在任何地方使用。这可能给希望使用本地计算机上的键盘登录远程系统的国际旅行者带来问题。请参阅键盘布局。许多手持设备,如平板电脑和智能手机,需要复杂的班次序列才能输入特殊字符。
身份验证程序在密码中允许的字符不同。一些人不认识大小写差异(例如,大写的“E”被认为等同于小写的“e”),其他人则禁止其他一些符号。在过去的几十年中,系统允许在密码中使用更多字符,但仍然存在限制。系统的密码允许的最大长度也各不相同。
或者,在Layman的术语中:对于您在字母数字选项中添加的每个附加字节,您使密码更复杂且难以破解。
更多信息here
答案 1 :(得分:2)
1)如果你只使用字符和数字,你可能会使用一些容易被猜到的字或数字。黑客拥有反复快速尝试所有已知单词的工具,他们在尝试使用特殊字符的密码之前尝试这些工具
2)如果你只使用字母和数字,在任何位置猜测字符的概率是1/62(有62种可能性)。
如果使用特殊字符(there are 32 of them),则概率降至1/94
如果键入例如8个字符,则可以组成的可能组合总数为
a)如果你不使用特殊字符:62 ** 8 = 2.1834E + 14
b)如果你使用特殊字符:94 ** 8 = 60.9569E + 14
因此,使用特殊字符的组合数量将增加约30倍,这意味着使用特殊字符破解密码所需的时间大约是没有密码的密码的30倍,因为密码中使用了8个字符
答案 2 :(得分:0)
背后的主要技术原因是难以猜测,因为增加密码安全性这是一个很好的做法。当有人试图利用时,首先他尝试使用字典攻击来做,如果你使用特殊字符,你就可以避免这个问题。因此,很少有组织制定密码策略,其中包含此规则以提高安全性。