当实施账户功能解决方案时,项目小组要决策的无数问题之一就是提出一组问题来确认那些忘记密码的用户身份。这些问题可以支持重设密码自主服务,这种服务可以减少忘记密码或者密码过期而求助服务台的电话数目。许多项目小组趋向于重新利用“我母亲的婚前姓氏是什么”的方法来设计安全问题。这种方法的特点是通过询问用户以下问题来确认用户身份:
|
这些问题的控制性都非常弱,在一篇4月份的博客里,我写了一篇怎样从互联网上轻松地获得这些信息的文章。在OWASP.ORG网站上的一篇文章里,Mike Burnet描述了对于破坏这些最普遍的身份确认问题的丢失难易程度。
鉴于这些类型的问题实际上可能会削弱访问控制,我需要提出一些指导方针,以便我们创造新名单时遵循。这个清单准则可以为用户提供方便的途径,提供身份认证的证据,以及可接受的安全程度。在2007年4月Gartner的文章中,我发现了我需要的这些资料。
该文章列举了4条建议来设计问答式身份确认(问答式身份确认的最优方法,Gartner ID Number G00147464)
1、设计一个只有用户自己知道的复杂但容易记住答案的问题,避免出现攻击者容易发现或者猜对答案的问题。
2、保持与机构网络和系统密码一样的安全程度,目的是为了使攻击者破解这些安全问答时遇到与破解密码同样的难度。
3、当只用问答的方法来确认身份时,要在至少5个问题的库中选用至少3个问题(建议用7个问题的库)。
4、当问答作为附加的方法来验证身份时,要在至少3个问题的库中选用至少2个问题(建议用5个问题的库)。
当你设计问题时,询问一些用户能确实记住了答案的问题是非常机警的。例如有这样一个问题:你最喜欢的小学老师是谁?这个问题的答案可能在用户提供答案和用户不得不证明他/她 的身份时不同,这就要求用户必须记住答案。
所有的安全控制问题都是有风险的,如果我们正巧教授关于安全问题的风险时,如果他们能够接受我们提出的清单准则的风险度,那么我们的工作就完成了。剩下的重要问题就是扩展我们对于身份认证方法重要性的认识。