善意提醒

如果您打开本站很慢,布局排版混乱,并且看不到图片,那么可能是因为您还没有掌握用科学的方法上网的本领。

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 上装这么多工具栏干什么?」
A:「不然我怎么上网?」
我:「Google 的网址是三达不溜点……」
A:「别说了我记不住。」
愿上帝保佑他们,阿门。

Chapter Eight

换工作了,当小头头了,总算有双核电脑用了。VMware 可以有自己单独的 CPU 了。
真不敢相信,以前在一台 768MB 的 P4 笔记本上跑了一个 Oracle8i + Lotus Domino R5 + 两个 Resin + Word + 若干 IE,去招标现场做演示的时候,机器到底是怎么撑下来的。

借着新工作接触到了 IceSword。妖魔鬼怪你们都现出原形罢!
测试人员:不好了,机房又爆发「震荡波」了。

Chapter Nine

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

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折我也不敢用。算了。卸载。再见!