i18n - 国际化&密码复杂性规则

时间:2009-06-12 11:10:47

标签: internationalization passwords asp.net-membership

我目前正致力于产品的国际化,并且出现了一个问题。该问题围绕着具有非拉丁语言和复杂字符集的国家/地区的密码复杂性要求。

该应用程序使用aspnet成员资格进行用户和密码管理,尽管这可能是另一个问题。目前,我们的应用程序具有适当的设置和代码,以容纳A-Z,0-9和组成密码的特殊字符,但这些很可能需要扩展才能应对其他文化。

我一直在寻找这方面的指导和最佳实践,到目前为止并没有太多的快乐。 last post on this SO question涉及该问题,但并未提供任何指导。

3 个答案:

答案 0 :(得分:1)

很大程度上取决于访问需要多么安全。为了高安全性,密码方法并不实用,某种生物识别(指纹?)或双因素(SKey?)方法可能会更好,特别是如果与数字PIN结合使用。

这是因为对非西方语言密码执行字典或复杂性分析并不实际。具体做法是:

  • 许多语言不区分大写和小写
  • 某些语言对两个,三个或四个字节的字符进行编码
  • 没有理由在具有大量表意文字的文化(例如简体中文)的密码中引入数字或标点字符
  • 维护大量语言的词典可能不切实际

对于简单的网站,如果您向浏览器提供非西方语言版本的网站,建议您对密码执行更强的检查。

答案 1 :(得分:0)

取决于您要执行的内容。字典检查和模式识别应该适用于任何编码和语言。如果你想强制执行流行但任意的规则“大写,小写和数字的混合”,那么,是的,你可能需要找到A)一个库或API,可以确定任何语言的案例和数字或B)创建一个愚蠢的用于自己映射信息的大型数据库。

但是,这种复杂性规则是一种黑客行为。无论你任意执行什么样的复杂性规则,愚蠢的人都会创建愚蠢的密码。密码安全的最佳实践是确保用户必须选择尽可能不可猜测的密码,因此字典检查(不要忘记在密码创建页面上添加所有单词以及与密码相关的所有单词条目,应用程序或其环境,以及所有可用的用户特定信息,例如生日和婚前姓名)和模式匹配(abc123)应该这样做。

我实际上已经看到很多情况下使用“abc123.-”或者类似的东西作为root密码,因为没有人能够提出符合复杂性标准的真实密码。

答案 2 :(得分:0)

在联系我们公司在中国境外的分支机构的技术人员后,我们发现,对于他们使用的大部分需要登录的系统,他们倾向于坚持使用标准的ASCII字符集来获取用户名和密码。原因。

中文键盘通常与中文字符一起设置QWERTY,用户可以轻松地在中文和ASCII输入法之间切换以登录系统。目前,我们将按原样离开我们的系统,并在添加时监控其他文化,处理可能出现的任何特殊情况。

有关中文输入法的更多信息,请参阅Wikipedia - Chinese input methods for computers