如何设计“找回用户帐号”功能

2011-11-28 10:07:26来源:酷壳作者:陈皓

因为《腾讯帐号申诉的用户体验》一文中好多人觉得腾讯申诉是世界级先进的,并让我拿出一个找回用户的帐号的功能来。本来不想写的,因为大家看看其它系统的就行的,但是,很明显有些人就是很懒,也不会思考,而且不会

因为《腾讯帐号申诉的用户体验》一文中好多人觉得腾讯申诉是世界级先进的,并让我拿出一个找回用户的帐号的功能来。本来不想写的,因为大家看看其它系统的就行的,但是,很明显有些人就是很懒,也不会思考,而且不会观察,所以,我就只好写下这篇科普性常识性的文章。

在行文之前,我得先感谢腾讯公司的至少30名员工在《腾讯帐号申诉的用户体验》一文后的回帖(我STFG(Search The Fucking Google)看到了你们使用的那个固定IP在各个大学论坛上的腾讯的招聘广告),我感谢你们主要有两点:

  1. 你们有半数以上的人留下的是gmail而不是QQMail/Foxmail的电子邮件,这点让我感到很欣慰。
  2.  你们在加班到晚上11点的时候都能在本站回复,的确如你们的Andy Pan所说,你们的核心竞争力很强,包括水军方面。

好了,让我正式谈谈这个设计。找回用户帐号通常就用三个事就可以了:邮箱安全问答 手机

邮箱安全问答手机

大多数的系统都会使用邮箱和安全问答,这足够了,很多系统直接用邮箱做帐号名(Apple ID,Facebook,新浪微博 ….),这样一来,就算你的系统口令被盗,帐号的是改不掉的,于是你可以用邮箱找回(注:这些系统都会验证你的邮箱是否正确)。但是,如果用邮箱做帐号,会导致你的邮箱暴露了,这样为成为垃圾邮件的受害者,而且如果你还比较2的把邮箱的口令和帐号的口令设置成一样的,那么就相当坑爹了(你可以看看本站的这篇文章——如何设计你的口令)。所以,但凡是用邮箱用为帐号的系统都不会让人看到你的注册邮箱,比如,大家就不知道我新浪微博帐号注册的邮箱,就算是知道也应该是受信的人知道(新浪微博帐号的邮箱地址的默认可见度是“你关注的人”)。

这里要说一下,Google Mail使用的是电子邮件,安全问答 和 手机。你可以使用其中一种找回口令。gmail最漂亮的用户体验是其会提示你,你绑写的邮箱(哪家公司的邮箱和帐号名的第一个字母)和手机(3个尾号)。 MSN和gmail相似,也会提示你绑定的邮箱,也可以使用手机,还可以使用你设置好的受信PC,以及通过客户支持(通过客户支持——收集你注册时用的名字,生日,国家地区,安全问题,使用过的口令,最近发送过的邮箱标题,联系人等,或是你绑定过的信用卡信息,但是不会有身份证)。

使用手机的一般是安全性比较高的网站,比如:淘宝、Gmail等。这样,使用手机找回口令也不错。因为你注册的安全问答你可能会忘了,你的绑定的邮箱也可能忘了口令,而很多木马可以盗取你的这些电脑上的安全问答或邮箱口令,但是这些木马程序盗不走你的手机(注:在移动互联网时代很可能会盗取你的手机上的信息,但是也盗不走你的手机号——无法像邮箱那样改个口令就盗走了)。你会说,手机还不是会丢失,但是你要明白,你丢失的手机,你是可以停机的,可以通过你的手机密码卡或是身份证恢复你的手机号的。另外, 使用手机的好处还在于,我的系统不需要收信你的真实信息(如:姓名,身份证,住址等),这些真实信息的验证交给移动运营商验证就好了 在程序设计的里,我们把这种事叫“解耦”。Amazon就一种通过电子邮件,然后通过你使用过的信用卡后四位,以及帐单的邮寄的邮政编码,如果你的邮箱变了,没问题,打电话给客服吧,客服会问你的钱行卡号和帐单地址,电子商务的好处就是可以有信用卡或银行卡来恢复号。,因为这 ——把用户的真实信息“解耦”到了银行,并“耦合”和银行方面的安全策略。很明显,银行和移动公司的安全级别更高,而且用户也更信任他们。最好不要自己收集用户的真实信息,要是丢失了,你就麻烦了(在国外你就要被起诉了)

在这里,你可能会有疑问,如果我的帐号口令丢失了,那么盗取者会进入我的系统改我的邮箱,改我的手机,改我的信用卡等,那不也一样吗?我想说,对于邮箱和手机,其和密码的级别一样,你改密码的时候,你都要输入旧密码,所以,你改邮箱和手机的时候也要使用旧的邮箱和手机。关于你绑定的银行卡或信用卡号,就算是自己也看不见的(只能看见四个尾号),这就就可以防盗了。当然,盗电子商务帐号的人一般会用你一帐号买东西,但是其会遇到另一个麻烦,那就是要面对银行方面的审计工作——1)对于银行卡通过银行的网银,对于信用卡则要受到信用卡口令和签名的验证。

一些人说,QQ的帐号申诉过程的“美妙”在于其他尽可能多的收集你的信息,这样一来,反而是安全的,因为密码容易被盗,而你的那么多的信息则不容易被盗。这样认识只对了一半。真正的安全系统是协同整个社会的安全系统做出来的一道安全长城,而不是什么都要自己搞(当然,我们都知道腾讯的DNA就是什么都要自己搞,连FBI和CIA的事也已经在搞了),什么自己都搞反而不安全了。

其它讨论Q&A

问题一:通过申诉帐号靠不靠谱?

明显不靠谱,而且还很愚蠢。这反而成了恶意者的温床。他人可以通过申诉让正常人的帐号失效,这是一件多么愚蠢的事啊!(我的QQ帐号前两天不就被这样攻击了吗?)

问题二:通过联系人恢复帐号靠不靠谱?

不全然靠谱,因为你的QQ总是会有陌生人加你,你的邮箱联系人也会有一些你不受信的人。那些人可能就是攻击者的小号。所以,如果你要通过联系人的话,就不要像QQ或MSN那样坑爹的做法,让用户自己来选。而是要像Facebook那样的做法——系统随机挑些人来让你认。

问题三:在注册时设置受信的联系人靠不靠谱?

看似靠谱,但是个人觉得还是还一点问题。因为受信者通过电子信息无法分辨是本人还是盗号者,还要受信者实际联系一下对方。这就好像我们在手机号存电话号码的时候,写上了爸爸,妈妈这样的字眼,这样当恶意者拿了你的手机后,就可以向你的家人敲诈了,因为其直接就可以叫出对方那头的人和被攻击者的关系。

问题四:恢复帐号的时候收集用户的真实信息靠不靠谱?

这要看是什么情况了。如果用户在注册时提供了这些真实信息,就靠谱,如果没有就相当不靠谱。试想:你去银行开户存钱的时候,银行没有让你出示身份证,只让你设了个口令。然后我就可以用我的身份证去重置你的口令。你觉得这个事是不是相当的坑爹?!

(如果你还有什么样的问题,我可以在继续更新并回答你的问题)

——————————

希望你现在明白,关于腾讯的帐号申诉过程,看上去相那么回事,实际上漏洞百出。当然,我不能说腾讯是愚蠢的,因为人家搞得那么大的企业,我只能说人家是在下一盘很大的棋……

原文:http://coolshell.cn/articles/5987.html