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

2.2.4  使用Passport验证

小结:Passport验证有许多功能强大之处,但必须意识到它所带来的风险

威胁:账户劫持

在1999年中期,微软发布了它的Passport服务,针对Web的单点登录(single sign-on)和电子商务解决方案。尽管涉及广泛的隐私和安全性,Passport服务仍然在不断发展之中,得到了eBay,McAfee,Citibank等许多大型公司的支持。

但是,许多用户都对这种由私有公司控制的大型中央数据库理念不以为然。对于这种数据的控制如此集中化,滥用的潜在性将会极大地增加。涉及的另一个方面是安全性。微软的Passport服务具有很多问题,并且经常会产生一些安全缺陷,无法证明它是一个可靠的服务。

不过,Passport的确具有自己的优点。对于顾客,需要记住的密码较少;对于Web站点,它不会带来建立用户数据库的争论。某些人可能认为,一个带有较少缺陷的单一验证服务可能比一千个安全性较差的Web站点更好。但是,风险是单点失败(single point of failure):如果有人劫持了Passport账户,就可以获得该Passport具有的每个服务的使用权限。

一个问题是,微软尚未证明该服务的安全性,我们只能姑且接受该公司声称的这种服务是安全的。作为一个专有系统,它并没有经历公众的检验。微软并没有花太多精力发布Passport服务的第三方审查,也没有通过它所实施的安全衡量细节来证明该服务的安全性。因此,只有时间可以告诉我们Passport的安全性到底如何。另一个问题是,当更多的站点开始使用Passport时,它就更有可能成为攻击者的目标。

来自于不同站点的Passport登录表单在外观和格式上并不一致——有时表现为内联的,例如在Hotmail.com和MSN.com中;有时则出现在相同站点的自己页面上,例如在eBay.com中(如图2-12所示);或者表现为带有标记的自定义页面,例如在login.passport.net中(如图2-13所示)。根据不同的操作系统,可能也会提示在Windows对话框或向导中输入.NET Passport。这种缺少一致性所带来的问题是,用户更加难以辨别真正的登录框和伪造的登录框。实际上,任何人都可以在Web站点上放置一个伪造的.NET Passport登录框,从而轻易收集输入的用户名和密码。

虽然Passport允许为安全性设置不同的参数,但却无法保证其他参与的站点也使用相同的安全级别。换句话说,虽然可能选择使用更为安全的设置,但用户密码的安全性受到参与Passport Web站点的最低安全性的限制。

尽管具有这些缺点,Passport还是有很多用处。将Passport用于用户自定义或不存储个人信息的Web站点特别适合于进行Passport验证。实际上,对于这些站点,使用Passport验证而不是分配给用户另一个必须记住的用户名和密码,这一点非常有益。许多Web开发者都有资格开发安全的账户管理特性,并且在这种情况下,Passport就是一种更为安全的选择。

但是,对于带有敏感的财务和个人信息的Web站点,应该仔细地考虑Passport或任意单点登录机制所带来的风险。图2-13中的Citibank示例表明,使用.NET Passport验证后,要求输入另一个密码。虽然这是一个良好的安全措施,并且可以弥补许多Passport的缺点。但是,令我感到惊讶的是,如果无论如何都要求用户记住另一个密码,那为什么还为单点登录解决方案而烦恼呢?

图2-12  eBay的Passport登录表单

图2-13  Citibank的Passport登录表单

即使没有在站点上使用Passport,如果用户丢失了对应于该Web站点的账户证书,仍然可以受益于使用它来帮助用户证明他们的身份。结合第1章中描述的技术使用Passport,将有助于对用户身份进行合理的强验证。如果用户忘记了密码,可以使用Passport对其进行验证,然后发送一封电子邮件,进一步指示如何重新设置用于该站点的密码。通过这种方法,仍然保持了用户验证的私有化,同时受益于Passport的集中化验证特性。

安全策略

n 避免在存储敏感财务和个人信息的Web站点上使用Passport。

n 如果在敏感站点上使用Passport,可以考虑实现额外的方法来验证用户。

查看所有评论(0)条】

最近评论



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