关于“用户数据大裸奔”
CSDN用户数据裸奔事件
自CSDN用户数据被裸奔后,裸奔事件陆续有来!
俺对此表示淡定,我已经是类似事件的受害人了,那次事件后我修改了很多密码,已经与CSDN上注册帐号密码不一样了。我是CSDN的超级老用户了,10多年前就注册了帐号,我的密码应该是被CSDN明码保存的,管它了,我已经不记得以前的那个密码了,那个账户也放弃使用了。
PSN用户数据裸奔事件
索尼公司的PSN(PlayStation Network) 被黑,被盗取了上千万的用户数据,其中包括用户名、密码和信用卡信息!而我正是这个PSN的注册用户,而且登记了信用卡信息了!!那段时间,PSN网络停止运作了1个多月,索尼花了很多功夫来重造网络的底层架构。
国内的朋友可能不太熟悉PSN,这里要稍微简介一下:
Wii、Xbox360、PS3是目前主要的三种家用游戏机,对应的厂商分别是任天堂、微软和索尼。索尼的PS3游戏机可以通过互联网登入这个PSN,和地球上的其他玩家一起进行线上游戏。PSN是一个以家用游戏为主的娱乐平台,集合了视频、电影、音乐、社交等功能。在国外这些家用游戏机及游戏就好象电视机那样普及,但这些家用游戏机及游戏在国内并不流行,原因是10多年前某记者发明了“游戏是电子海洛因”的说法,然后国家明文禁止进口家用游戏机,至今才在上海自贸区解封,以致国内玩家没法正常玩到这些世界一流的并且绝对是健康的游戏!不同于PC游戏,任天堂、微软和索尼三大厂商是禁止游戏开发者在他们的平台上开发成人游戏的,对游戏的素质有严格的管制,当然各国对游戏有不同的分级制度,类似于电影的分级制度。
写烂代码,迟早是要还滴!
回到数据裸奔的话题,索尼的技术、资金和人才都是一流的,居然也是仅仅简单加密了用户的密码而已,而信用卡等机密信息没有加密。连超级老大索尼都犯这样的超级低级错误,更何况CSDN呢!印证了那句话:写烂代码,迟早是要还滴!!问题是凭什么让我们这些无辜的用户来还?
普通用户如何自保?
网上有很多技术文章声讨明码保存密码,而且还说明了仅用MD5之类的加密算法还不够安全。这些话题可能有点深奥,而且是出于开发人员的角度来写的,问题是一般的市民大众,应该如何不让自己被裸奔呢?
以下是网上常见的推荐做法:
1.密码足够长,而且大小写字母、数字、符号等混合。
2.定期修改密码。
3.不同网站使用不同的密码。
对于上述推荐做法,我的评价是:扯淡!
你当我是记忆神童啊,按照这样的推荐做法,我只能经常使用“忘记密码”功能了!
OK,记不住吧,用一张纸记下这些密码吧,这张纸是不是要用保险柜锁起来?然后保险柜又要配一个超强密码?最后连保险柜的密码都不记得了,然后只能找人来炸保险柜了。
我介绍一下或许比较实用一些的做法:
1.初步判断一下网站是明码保存密码还是加密的。
判断的办法不复杂,你尝试一下忘记密码,如果给你发来的邮件中直接告诉你密码的,那么这样的网站你绝对不要放心使用,建议不要注册这样的网站,实在要用,这么网站的密码也一定不要跟其他网站相同。如果发来的邮件要你去重置密码的,那么该网站可能不是明码保存你的密码的,当然只能是大致判断了。
有些网站在你注册后会自动发邮件给你,说感谢你注册之类的废话,然后还告诉你注册的用户名是什么,密码是什么!该网站居然知道你注册的密码是什么?天啊,你不要以为这个网站很体贴,专门发邮件告诉你用户名和密码,这样的网站安全性是很低的!
2.将你经常使用的网站分成几类,不同类的网站使用不同的密码,这样你只需要记忆几组密码。
可按这样的标准分类:
1)与你的银行帐号、信用卡相关的,如:淘宝、支付宝,密码一定要足够强,并且必须实名认证、关联手机等。
2)你平时工作和生活经常需要用到的,如:QQ、msn。
3)平时用来娱乐悠闲,就算不用也关系不大的,如:开心网。
3.要特别小心政府网站。
最近爆出某政府网站泄漏了港澳自由行签注申请者的申请信息!
对于政府网站实在无语,那些人这么多钱三公消费,但在网站上的投资超级吝啬,据说很多网站是请在校生做的。姑且不论是谁做的网站,政府网站大多是用户体验极差,性能极差的!安全性嘛,也应该好不到哪去!!
不在这些网站登记个人信息是最好的做法,问题是我们有时候需要通过这些政府网站来办事,所以我的建议是:实在不得已才用吧,个人信息能不填就不填,能少填就少填,因为这是看你的RP。
实在没有什么好的实用办法,我也是将就地用的,希望RP越来越好吧,不会再被裸奔!
作为程序员,如何不让客户数据裸奔?
这个话题可能有点沉重,因为我见到过不少让客户数据裸奔的情况,包括我以前公司的系统也是这样的。
以下三个自测题,供你参考:
1)你的程序连接数据库的账号和密码是?这个账号具备的权限是?
2)你的数据库保存用户密码的方式是明码、对称加密还是非对称加密?
3)客户的机密数据,例如银行账号、信用卡信息等,是不是加密保存的?
很多时候我们为了贪图方便,程序访问数据库的账号和密码都是“sa”,又加上我们写代码的时候基本没有考虑防止SQL注入攻击,所以,后果你懂滴……
为了更方便用户找回密码,所以我们直接明码保存用户的密码了,这其实只是贪图方便的借口而已。用户是有可能几个网站用同一套密码,只要密码被泄露,别有用心者就可以类推其他网站的密码。
我们一方面不喜欢被人家数据裸奔,而同时我们又制造数据裸奔给我们软件的用户,这是多么矛盾的事情啊!
己所不欲勿施于人,多为用户着想,特别是安全性方面不能有侥幸心理,如果目前你的程序还不是很安全,快去处理一下吧!
作者:张传波
创新工场创业课堂讲师
软件研发管理资深顾问
CMMI首席专家
《火球——UML大战需求分析》作者