首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

1.2.1  实施强密码

小结:使用技术性方法和策略来确保强用户密码

威胁:暴力攻击、账户劫持

如果密码是应用程序安全的中心机制,则必须确保用户具有强密码。建立一种策略,确保密码足够复杂,防止某些人很容易地猜出这些密码。可以通过如下方式创建可靠的密码策略:

n 实施最小长度为8位字符的密码。

n 不限制密码的最大长度。

n 需要多种字符集,包括小写字母、大写字母、数字和标点符号。

n 允许用户在他们的密码中使用任意键盘字符,包括空格。

n 不允许字典单词。

n 不允许密码中出现用户名。

当用户无法提供满足复杂性需求的密码时,可能会被拒绝。为了避免这个问题,可以同时考虑字符集长度和数量,把它们作为密码复杂性的两个因素。较长但都是小写字母的密码和较短但有多个字符集的密码同样有效。一般情况下,在密码中添加2~4个字符和添加1个数字或标点符号一样有效。带有大小写字母和标点符号的6位字符密码在复杂性上大概等同于都是小写字母的8位字符密码。

许多流行的Web站点并不强制要求最小密码长度,或者强制要求了一个最小密码长度,但因为长度过短,无法保证安全性。图1-1显示了一个Web站点,该站点允许最小密码长度为3个字符,并且限制最大长度为25个字符。该密码的最小长度过短,而虽然25个字符是一个长密码,但完全不需要强加这种限制。

图1-1  弱密码策略的示例

要求长密码的另一个优点是,它减少了用户在密码中可以采用的字典单词数量。可在字典中找到的密码很容易被破解,应该避免这种情况。设置最小长度为8位字符的密码可避免使用3~7个字母的单词,在英语字典中大概有50 000个这样的单词。这将减少50 000个容易被破解的密码。

如果没有实施复杂性需求,许多用户将选择可预测的、容易猜测的密码。弱密码容易受到密码猜测方式的暴力攻击。如果密码不够长,并且没有包含多种字符集,则暴力攻击密码所需要的猜测次数将极大地减少。如果攻击者能够猜出用户的密码,他就可以使用用户证书访问受限制的内容,获得敏感的用户数据,针对各种目标假冒用户,删除或修改敏感的数据,甚至注销用户的账户。

攻击者常常通过查看用户的“About Me”页面,收集有关子女姓名、宠物、朋友、汽车或其他感兴趣内容的相关信息,尝试猜测eBay用户的密码。如果攻击者可以成功地猜出密码,他们将通过账户验证,改变密码和联系信息,然后在用户的账户下列出虚假的拍卖信息。通过这种方法,他们利用受害人的信誉和反馈来欺骗其他用户。

确保强密码

为了检查密码的复杂性,请使用RegularExpressionValidator控件或CustomValidator控件,如图1-2所示。图1-2将一个CustomValidator分配给txtPassword。当验证表单输入时,该控件调用PasswordCheck函数,如图1-2(其中的代码用C#语言编写)和图1-3(其中的代码用VB. NET语言编写)所示。

图1-2  使用CustomValidator控件验证密码(C#)

图1-2  使用CustomValidator控件验证密码(C#)(续)

图1-2  使用CustomValidator控件验证密码(C#)(续)

图1-3  使用CustomValidator控件验证密码(VB.NET)

图1-3  使用CustomValidator控件验证密码(VB.NET)(续)

图1-3  使用CustomValidator控件验证密码(VB.NET)(续)

攻击弱密码的最明显方法是,简单地对Web应用程序使用暴力攻击。http://neworder.box.sk/codebox.links.php?key=wwwcrks上的所有工具都可用于密码破解。如果Web应用程序使用HTML表单输入密码,则可能需要使用Elza(www.securityfocus.com/tools/1127)之类的工具。当然,还需要一些字典(wordlist),可以从www.gattinger.org/wordlists/download.html或http://neworder.box.sk/codebox.links.php?key=passdict中找到这些字典。

安全策略

n 确保密码至少有8个字符长。密码可以取操作系统,以及应用所允许范围内的最大长度。

n 至少需要两个字符集,并且让用户在密码中使用任意键盘字符。

n 密码必须不是字典单词,并且不能包含用户名。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论