2017-06-22

防贼不编年史

Chapter One
很早的时候,赛博世界还只有病毒,没有贼。
那时候,有的病毒还可以和人类和睦相处,称之为“良性病毒”。
我有一个游戏,从别人那边复制过来的时候,就是带毒的。文件型病毒,文件体被加了密,还给搬到了隐藏扇区。不过游戏本身挺有意思,The Incridible Machine,第一代。于是我每次就把BIOS里的硬盘给Disable掉,然后再玩。慢虽然慢点,但只要记得玩过之后重启,就不会有什么问题。

Chapter Two
尽管兜里没什么钱,但Internet时代还是到来了。
网管差点把我从网吧赶了出去。因为他终于“逮到”我在用SuperRabbit。他已经连续好几天都把时间花在恢复系统设置上了。我想日后硬盘还原卡卖得这么好,其中应该有我一份功劳。
“机器狗”真不是我放的。

Chapter Three
CIH爆发了。
买了刷ROM机器的人都发了笔小财。
其他人:哇,没想到病毒也可以这么凶残!
我倒是没什么感觉,因为我那个时候还在用着一块80486。

Chapter Four
IDT-C6的发热好低,主频超到100MHz也不用风扇。
哇,有好多同学都安装了冰河哎!
咦,这位同学在玩美少女梦工场3呢。我只有2。
“同学你好,你的游戏可以也copy给我一份吗?”
“哎哎,不要关机!……”

Chapter Five
不知道从什么时候开始……
几乎所有的IT公司,都以在你的IE上装一个插件或工具栏为荣。
几乎所有的安装包,都会附带一两种“小东东”。
刚开始我还真没太放在心上,甚至对某些还持欢迎态度。然后,我的机器越来越慢了。
做毕业设计时,我接触到了ActiveX。

Chapter Six
工作了。从K6-2一下子跳到Pentium 4的感觉真好。
“见鬼,这浏览器上什么时候多了这么些鬼东西?上网助手?中文实名?卸掉!就是它搞得我们的OCX不能用了。”
“你要记得安装Windows 2000 SP4补丁,不然我们的程序用不了。”
对了,有个新软件叫VMware,真好玩!

Chapter Seven
我开始小心翼翼地上网浏览,对于弹出的OCX安装提示统统点“否”,后面视情况而定。因为我知道一旦安装了之后别人能做些什么事情。然而,有些人我是注定帮不了他们:
“你的IE上装这么多工具栏干什么?”——“不然我怎么上网?”
Google的网址是三达不溜点……”——“别说了我记不住。”
愿上帝保佑他们,A门。

Chapter Eight
换工作了,当小头头了,总算有双核电脑用了。VMware可以有自己单独的CPU了。
真不敢相信,以前在一台768MB的P4笔记本上跑了一个Oracle8i+两个Lotus Domino R5+一个Resin+Word+若干IE,去招标现场做演示的时候,机器到底是怎么撑下来的。
借着新工作接触到了IceSword。妖魔鬼怪你们都现出原形罢!
测试人员:不好了,机房又爆发“震荡波”了。

Chapter Nine
我开始仔仔细细地打补丁,开启Windows Update,总是保持自动更新。
而很多同事都是直接关掉了事:“工作到一半老是跳出来叫我更新,太烦!”
愿上帝保佑他们,A门。

Chapter Ten
我发现同事们总算愿意给机器打补丁了。
同事:这个东西叫360,打补丁蛮快的。
我:我也来试试。咦,这个KB360018怎么这么奇怪?

Chapter Eleven
不知道从什么时候开始,软件安装开始必须得小心了。
因为一不小心你就会安装上好几个不请自来的软件,电脑上会变成软件博物馆。送来给我“修一下”的电脑无一不是如此。连我自己有时候不小心也会中招。
有人建议我把家里电脑换成Linux,不过我觉得对父母吩咐到位了,一般还是没事。毕竟我有TeamViewer

Chapter Twelve
不知道从什么时候开始,国产软件慢慢地不能用了。
其实不是不能用,是不敢用了。因为开始流行一种东西叫做“全家桶”。腾讯、百度、迅雷、阿里、360、金山……。所有的这些曾经为我服务过的软件,仿佛都得了癌症。你不知道他们在背后干些什么,但是你的电脑的确越来越慢,行为越来越不正常了,而且你的hosts总是失效得很快。于是干脆就不用了。
不用了,然后也并没有什么事情发生。并没有像有的人以为的那样会社会大乱,民不聊生。人民照样活得很好。

Chapter Thirteen
一夜之间,我的密码就不再是“我”的密码了。
许多年前,我自己写的同学录,为了避免被SQL injection,就把服务端存储的密码改成了MD5 Hash。
后来,知道了世界上有种东西叫做“彩虹表”,于是我学会了salt
再后来,我看到了王小云教授的论文,于是我Hash算法至少会是SHA256。
然而,这么多年过去了,这帮狗日的居然还在服务器上存明文密码。谁要硬说这里面没有阴谋,我只能说你的心挺大。

Chapter Fourteen
没想到,我的QQ也被盗了!
我已经很多年没用过QQ了。但是因为我太太的手机上有游戏用我的QQ账号登录着,所以我觉得企鹅还不敢回收我的账号。
突然间它就变了一个名字,列表里的好友也变成了一堆海南人。我还能再登进去,密码并没有被改。所以我一直到现在也没想通是怎么回事。
我把个人状态改成了“明文密码好”,然后就把这个QQ号扔那里了,就像它从未存在过。

Chapter Fifteen
那个周末,当我还在外地顶着紫外线用流量上网的时候,全世界有许多人已经了。
贼要的是Bitcoin
当第二天IT问我笔记本装没装补丁的时候,我微笑着告诉他“Linux”。
不过我马上又想起来Heartbleed的事情我还没处理,于是我又有点笑不出来了。
我也想要别人的Bitcoin。

2017-06-13

银联钱包你真垃圾,我一点都不欢迎你

5月30日一下飞机,我就在虹桥T2的廊桥里面看到了银联云闪付62折的大幅营销海报。“去看看有没有便宜可占”,当时我这样对太太说。然后我们就各忙各的,这事几乎给忘了。

昨天太太跟我说,超市里面银联云闪付满79减30,所以她在自己的iPhone6+上装了个银联钱包。我想起了在机场看到的东西,就也去AppStore上搜了一下。有两个东西,一个叫“银联钱包”,一个叫“云闪付”,都是“中国银联”出品的,评分还真是一样低。我有点纳闷,好吧两个都下了,反正AppStore上至少没木马。

安装好之后把玩了一会儿,“云闪付”一来就叫我登录,而“银联钱包”至少让我看到里面有些什么功能了,里面也有“云闪付”的功能,那么好,“云闪付”你滚蛋吧。

其实我知道Apple Pay本来就是所谓的“银联云闪付”,我只是想知道银联这次在玩什么花样。结合新闻我有点弄明白了:大概闪付需要芯片,很多地方只肯买扫描枪,所以银联这次也搞了个跟支付宝有点像的扫二维码支付。这就必须要App支持,光靠Apple Pay还不行。

好吧,我觉得至少比起阿里粑粑这种流氓公司而言,银联我还可以尝试一下。于是我准备注册了……

我真的没想把本文写成吐槽文。不过正式开始用的第一眼我就被雷到了。拜托!中国银联!这是iOS,是哪个老师教你“自己开发密码键盘会更安全”的?你说出来我们来轮他。

先得注册。我在界面上看到了可以用“手机号”、“邮箱”或“用户名”来注册。我并不是一个暴露狂,所以我准备以用户名来注册。点开App上的注册,发现只能用手机号注册。我不死心,换到PC上在Web下注册。一开始Web页面看起来也只能用手机号注册,不过当我F12之后,就发现还有一个DIV被display:none了。
呵呵,我心想:“就这也能难住老子?”
看来还是绕不开。

然后还有这个令我一看到就恶心得头皮发麻的“请点此安装”。
我用的是Chrome,要我换用Edge甚至是IE我都可以接受。不过要我安装OCX那就太过分了,。有的Web页面如果用手机浏览器打开,就不会提示安装控件了。我抱着姑且试一试的态度,用手机试了一下:
Chrome是这样,Safari也是这样。
好吧,反正就是必须得要手机号对吧。那我还是回手机App上去注册吧。

在App上输入手机号码,通过短信发了验证码给我,验证通过了,接下来让我输入密码。这明显的大爷作风嘛。我很想问银联你是不是并不在乎有没有用户来注册?老子是国企多一个少一个无所谓?你们知道像美团之类的App在这一步是怎么做的吗?
我又要吐槽了。最低6位虽然太少,但我可以理解。最多不能超过16位是个什么意思?你们如果后台数据库里面保存的真的是密码的Hash值而不是原文,你管我密码最大有多长?你们知道Twitter允许的密码最大有多长吗?你们可以自己去试一下。
明文密码!我一直不厌其烦地在Twitter和Google+上强调这个事情:只要没有特别的理由就限制密码的最大长度,那后台保存明文密码的可能性就一下子变得高了起来。不要跟我讲什么16位现在还足够安全。关键是撞库!撞库!撞库!
我一直是坚持“为每个服务使用独立随机密码”这个原则的。我宁愿忘掉密码,宁愿冒本地密码本被人搞走的风险,我也不会把心放在Server管理人员身上。原因很简单:做过这行你就知道了。
所以,我开启了密码生成器,去掉“符号”的勾,选择了长度为“16”,然后得到了一串随机密码。知道我前面为什么吐槽自己做的密码键盘吗?你既然决定了自己做密码输入控件,就很可能不会支持复制粘贴。
在我比较辛苦地输入完密码之后,出来一个这个。
估计我以前在什么时候注册过银联的账号吧。有句妈卖批我不知当讲不当讲?!我输入手机号码的时候你不告诉我,我输入验证码的时候你不告诉我,我输入密码的时候你不告诉我,等我把这些都搞完了你就告诉我这个?!
抱着一丝希望,我点下了“是我的,立即登录”按钮,App跳回到了最开始的登录界面,输入我刚才生成的随机密码(是的我又辛苦了一遍),说我密码错。这次我真的骂人了。
好吧,看来我只能选择“忘记密码”了。
在又通过短信验证了一遍手机号之后,给我看的是这个界面。
我曾经在Blog中讲过,“密保问题”并不是一个好的设计。不幸的是,银联这里选的是所有密保问题中最糟糕的那几种之一。如果真的用家人生日做密保问题的答案,安全性极其脆弱,有等于无。如果用别的答案,又极容易忘记。
偏偏这里不回答还不行,又没有提供“忘记答案”的选项,实际上是把这条路给堵死了。然而手机短信验证的安全级别明显比密保问题要高。取信低安全等级的验证结果而忽视高安全等级的验证结果,最后只能请求人工服务,这是极差的用户体验,也是极蠢的产品设计。

如果我记不起这个以前注册的账号的密码,我可能就只能打电话给银联了,而且可能这帮官腔佬最后还不肯替我解决。不过很幸运,我用一个旧密码最后成功登录了进去——看来我注册的时代还不太“古老”。
然后我又被雷到了。登录成功之后,App给我看了这个:
是的,没有“跳过”或者“稍后设置”的选择,这一步是必须的。
设置手势密码之后才可以设置TouchID。好在根据太太的经验,登录进去了之后是可以把手势密码功能给关掉。不过问题又来了,要进入“安全设置”你必须要:
到这一步,我彻底放弃了。
极其差劲的技术运用,极其糟糕的用户体验。难怪AppStore上绝大多数评价都只给了一星,而近期的五星好评全像是刷出来的。我估计如果AppStore不是规定最低是一星,很多人连这一颗星都不想给。
说实话,我不相信这种程度的技术能够保障我的资金和信息安全,给我天天打62折我也不敢用。算了。卸载。再见!