基于web的客户自助服务密码重置对任何管理用户帐户的企业都是一个福音。用户总会在某些情况下忘记密码,而允许终端用户重新设置密码的在线自动系统对每个人都有好处。它消除了求助台或系统管理员手动为这些重置请求提供服务的需要,因此用户和公司都可以节省时间。
但每一个在线行为都有相关的安全风险。与密码重置相关的安全问题是,重置过程如果没有正确执行,可能会无意中暴露可用于攻击的个人信息。
当进入密码重置页面时,一些网站会使用电子邮件地址或用户母亲的娘家姓来启动重置。这种方法的问题在于,这两种信息通常都可以通过第三方数据聚合服务获得,这意味着攻击者可以使用购买的数据重置受害者的密码,从而获得访问权限。
如果不能正确地设计客户自助服务的密码重置过程,攻击者就会发现这些漏洞并利用它们。最臭名昭著的例子之一是伊戈尔·克洛波夫,他的身份盗窃团伙使用这种攻击作为他们的行动的一部分。
确保您的客户自助密码重置过程,保护您的客户并不困难;它只是需要一些思考和对细节的关注。
风险#1:聚合数据
无数的数据聚合服务使tb级的个人信息很容易获得。这些信息包括社会安全号码、母亲的娘家姓、出生日期、邮政编码、电话号码、年龄、职业、收入等等。如果您的安全重置过程需要这些信息,您可能会引入额外的风险。
操作项:聚合的数据不应成为密码重置过程的一部分。
风险#2:不恰当的重定向
重置密码后,一些网站会将网页重定向到用户首选的登录页面。想象一下,如果攻击者试图在投资银行站点上启动密码重置,然后被带到该银行的Your Portfolio页面。此时,攻击者就知道受害者有一个投资组合账户。
操作项:重定向到主网页。
风险#3:容易猜到密码重置问题
与风险#1类似,许多网站会问一些非常容易猜出的认证问题。但事实上,很少有网站使用有效的安全问题。根据网站goodsecurityquestions.com,一个好的安全问题的答案是:
——不容易被猜测和研究
——不会随着时间而改变
——是难忘的
是确定的或简单的
要提出符合这四个特点的问题是很困难的,这意味着有些问题是好的,有些问题是公平的,剩下的问题(不幸的是,包括很多现在在密码重置中使用的问题)很差。在www.goodsecurityquestions.com/examples.htm上可以找到一些真正好的(和不好的)安全问题。
此外,如果你使用了这样的问题,你也应该告诉你的用户不要在社交网站如myspace上发布答案。“你最喜欢的球队是谁?”如果用户的myspace页面上有波士顿红袜队(Boston Red Sox)的标志,就会成为密码保护的无效部分。
行动项目:选择由goodsecurityquestions.com批准的好密码重置问题
风险#4:错误代码信息发布
不同的自助服务密码重置系统需要不同的字段。如果用户输入了不正确的数据,错误代码可能是成员未找到或密码不正确。这些错误代码可以显示系统中确实存在一个帐户,而密码是不正确的。
操作项:确定您想要显示的错误代码,并且只显示那些错误代码。
结论
用户经常选择糟糕的密码。您不希望使用无效的自助服务密码重置过程使问题恶化。作为web开发过程的一部分,必须适当地定义和执行自助服务密码过程的所有细节。攻击者会攻击您web存在的每个部分,以找到漏洞。确保这不是其中之一。
本RothkeCISSP, QSA是BT INS的高级安全顾问,也是《计算机安全:每个员工应该知道的20件事》一书的作者。
了解有关此主题的更多信息
这个故事,“如何做正确的密码重置”是最初发表方案 。