当前位置:首页 > 技术与方案 > 安全防范相关

网站密码恢复的安全要点

(2012-09-20 07:46:29)

 

通常来说,密码恢复的一般流程是(也许这也是许多人首先想到的流程):在用户登记的时候,让用户指定或者自己确定一个密码提示问题,并输入该问题的答案。如果用户有朝一日确实忘记了自己的密码,可以通过选择放置在页面首页上的“忘记密码”链接来调出自己预先设定好的密码提示问题,并输入问题答案,如果答案符合的话,系统就通过某种途径让用户得到密码。
看上去挺容易的,其实这套流程如果设计得不好,很容易被不怀好意的人钻空子。设想一下这样一个设计得比较马虎的网站:如果要攻击某位同事在这个网站上的帐号,只要选择“忘记密码”功能,看看系统怎么处理?系统的密码提示问题是“用户的生日”。太容易了,昨天才给这位同事过完生日,填入生日,点击“确定”,系统接受了我的正确答案,然后系统显示:“你的密码为xxxxxx ”。
★ 如何设计安全的密码恢复机制
通过上面的示范,相信大家都能了解到设计一个安全的密码恢复机制的重要性了吧!接下来,我们就针对上面的各个环节来进行研究,通过科学的设计来堵住可能出现的漏洞。
1.E-mail账号
首先,让系统不显示用户的密码,而是将密码发送到用户注册时登记的E-mail账号。应该说,这是个好主意。对于攻击者来说,忙了半天,最后只是将密码发到用户注册的信箱里,其它什么都得不到。
更重要的是,对于用户来说,这也是一个警告:有人希望通过某些不正当的途径得到你的密码,而且你的密码提示问题已经被攻击者猜到了。所以用户可以马上行动,改变自己的密码提示问题。
但这种方法成功的一个要求是:避免这种情况发生的惟一解决办法就是:在注册时要求用户留下真实的邮件地址,同时注册时要将验证信息发到该信箱中进行验证。虽然很麻烦,不过只有这样才能让上述情况不会发生。
2.密码提示问题
一般来说密码提示问题有这么几种设计方法:
(1)由用户自己设定密码提示问题,自己设定提示问题的答案。
(2)由系统给出一些密码提示问题,用户选择一个并设计答案。
(3)用户只设定密码提示问题,不指定答案。
准确地说,这里的密码提示问题并不是一个问题,只是一个密码提示(hint)。用户看到这个问题后就“应该”能回忆起自己的密码是什么,除此之外,系统什么也不做,也不发送任何密码给用户。从某种程度来说,这种设计具有很高的安全度,因为没有任何机会泄露密码。
★ 恢复密码后的问题
看到这里,也许大家对安全地进行密码恢复已经有了一个比较基本的认识。是不是就到此为止呢?
不!如果我们要加大保密性,我们应该将用户的密码加密后再存入数据库,这种加密的算法从某种程度上说是不可逆的。也就是说,一般而言,我们是无从得知用户的密码的“本来面目”的。如果我们像上文所提到的那样,将用户密码发送给用户的邮箱,我们拿什么发送?就算有大型计算机,我们可能也得花上几个星期才能算出用户的真实密码。显然这么做是不现实的。
这样我们就面对着一个我们不得不接受的现实:如果我们使用加密算法来存储用户的密码,那么如果用户丢失或者遗忘了自己的密码,我们将不能够为他们恢复密码。我们所能做的,只有为用户重新设置一个随机密码,然后将该密码发送到用户的信箱中。
现在看起来万无一失了?且慢,让我们看看现在攻击者能干什么,同样假设攻击者猜到了密码提示问题的答案,选择“恢复密码”,系统会将原来用户的密码删除,然后设置一个新的随机密码,并发送到用户的信箱中去。不错,攻击者没办法看到密码,不过别忘了,用户下次登录的时候将不得不用电子信箱中发来的新的随机密码登录。
而如果攻击者高兴的话,一天这么来个10次,每隔几天“骚扰”用户一次,用户会如何感想?可能一天到晚都要忙着收E-mail用最新的密码登录了。
看来这种方法还是有小小的漏洞。要想彻底杜绝攻击者的这些无聊把戏,我们应该采用下述的密码恢复方法。
★ 实用密码恢复方案
在用户答对了密码提示问题之后,系统并不是马上清除用户的原始密码,而是发一个超级链接到用户的E-mail信箱,该链接可能是这样一种形式:
http://www.website.com/servlet/confirm_pwd_reset?id=7f893fkl42
这里id是一个系统产生的随机数,并被系统记录在案。用户在E-mail中收到这个链接后,如果确信自己要得到新的密码的话,可以点击这个链接,系统在校验了id后面的随机数合法后,才会将用户的原始密码删除,并为用户设置一个新的随机密码。而如果用户认为这次恢复密码操作不是自己操作的,也就是说可能是攻击者捣乱,用户只要忽略这封邮件,用户的原始密码并不会被改变。

1作者:任香玫 


 

更多
关闭窗口 打印 
网站首页    -    联系我们    -   收藏本站    -    网站地图                                                               客户服务热线:0571-85023000
本网站所有网页信息已申请知识产权和著作权保护,版权归四海光纤公司所有,未经授权禁止任何人复制或镜像,违者必究。
公司主营:杭州光纤光缆视频会议系统,是专业的通信网络工程、视频会议系统建设专家

中华人民共和国备案号:浙ICP备10018243号