也说web服务的用户注册部分
Robert写了《思考:未来的web服务是否还需要用户注册的部分?》,提出中小型web服务可以不单独建立注册模块,一个可能的方法,是使用google或者facebook的账户服务。真的是有趣的问题大家都会考虑,我当年也写过《接着说facebook:facebook能成为网络身份证吗?》,当时马上要去深圳出差,没有继续写下去。文章的最后两段,其实说明了我对这种类似Microsoft Passport的第三方认证的考虑。
先说一下我对问题的理解吧:基本上,网络服务和用户之间,还是在沿用当年UNIX终端验证用户的方法:用户名+密码。非常简洁有效的方法,明码的用户名解决了名字空间里面冲突的问题,密码用来验证用户的身份。这是一个双向的契约模型:用户名用来唯一确定用户,密码作为主机和人之间的身份契约。
随着网络服务的增加,用户需要维护的契约越来越多,不仅在用户名的名字空间冲突逐渐增加,用户不得不选取各种用户名来代表自己,密码也成为更大的负担。为了减轻用户负担,微软提出了第三方认证的passport方法。基本上就是把各种锁的各个钥匙,变成微软一家的万能钥匙,只要开了微软这把锁,后面的锁都开了。
我在《接着说facebook:facebook能成为网络身份证吗?》一文的最后,给出了攻击这种万能钥匙的方法。就是假扮成passport的合作伙伴,在自家门面上,挂上和其他真正合作伙伴一样的锁,盗取用户的万能钥匙。这个办法不是我发明的,很早就有人用这个办法,骗取人们去看谁在MSN上面block了他们,然后盗取MSN密码。类似的,meebo这种让人们输入各种聊天工具密码的网站,也很容易被人伪造而盗取密码。
总结下来,这种万能钥匙失效的原因,是把原来的双方(主机和用户)契约,变为了三方(主机,用户,万能钥匙提供商)契约。三方契约本身并没有错,错在契约失效的时候,如何控制损失。在双方契约(用户名+密码)模型里面,用户和某个网站之间如果契约失效(如密码被盗),用户的损失局限于所有和这个网站相关的资料;而在万能钥匙的三方契约里面,一旦密码被盗,损失的是用户的万能钥匙,后面所有依赖这把钥匙的锁,全都可以被攻破。
尽管万能钥匙的方法不可靠,但是还是会有提供商去推广,因为掌握了用户的行为,就意味着商业机会。不过这种和用户利益背道而驰的方法,我不看好。契约过多的问题还是存在的,也会有新的方法最终解决这个问题。
建议继续学习:
- Web表单设计之注册表单 (阅读:7692)
- “预注册”是一把金钥匙 (阅读:4256)
- 使用jQuery开发一个带有密码强度检验的超酷注册页面 (阅读:4138)
- WEB注册表单的设计 (阅读:4118)
- 《Patterns for Sign Up &Ramp Up》下载 (阅读:3713)
- 如何设计注册激活邮件 (阅读:3371)
- 为什么一定要有密码? (阅读:2816)
- 上海航空网站注册表单优化方案 (阅读:2078)
- 关于WEB登录注册系统的下午茶 (阅读:2104)
- 网站“注册流程”如何“照顾用户”? (阅读:1661)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:美人她爹 来源: 美人她爹
- 标签: 注册
- 发布时间:2010-02-28 18:51:25
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [54] 图书馆的世界纪录
- [54] android 开发入门
- [54] Oracle MTS模式下 进程地址与会话信
- [52] 如何拿下简短的域名
- [50] 【社会化设计】自我(self)部分――欢迎区
- [50] Go Reflect 性能
- [47] 读书笔记-壹百度:百度十年千倍的29条法则
- [36] 程序员技术练级攻略
- [31] 视觉调整-设计师 vs. 逻辑