查看原文
其他

因为破解了一个被打码的二维码,有人 16 小时赚了 1000 美金

铁柱 浅黑科技 2019-06-09


正如所有原罪一般,打码本身或多或少带着些迷惑与欺骗的味道。

稚嫩的小伙子总是希冀“高清无码”的冲击,直接有力的真实感足以点燃他们心中所有的好奇。

而经验丰富的老司机则将“有码”视为处世哲学,他们深谙朦胧美的真谛,明白有的事物与距离产生美有着异曲同工之妙……

▲ 有时误会也会如影随形

二者原本并无高下之分,能否能满足当下的欲望是唯一标准。而当牵扯到金钱,大多数人或许都会选择“高清无码”。

前段时间,一位任性的比特币企业家(土豪) Roger Ver 在法国的一档电台节目里公然“炫富”:

好消息!好消息!比特币送人啦!

正在收看节目的你只需要扫描屏幕上方的 QR 码并记住账户密钥即可获得我送你的比特币!

名额有限!送完为止!先到先得!

然而没想到,由于法国相关法律规定,节目在播出时密钥和 QR 码都被模糊处理了……

▲ 可怜土豪还摆出“I want you!”的手势

最过分的事情往往不是兜里没钱,而是在已经允诺给你一笔财富追求爱与自由的情况下说出:

抱歉,刚刚闹着玩儿的……

这件事果不其然勾起了各路技术老司机和比特币爱好者的兴趣。

然而没过多久就有消息传出,有两位法国研究员成功破解了被打码的 QR 码,并从比特币钱包里转走了 1000 美元,整个过程只用了 16 个小时。

这件事不仅验证了重金之下必有勇夫的朴实哲理,同时不禁让人产生疑问,这俩技术老哥是怎么做到的?

科普一下 QR 码你就会知道关键。

所谓 QR 码其实就是我们日常生活中与其天天打招呼的二维码……没错,就是骑车、支付都需要用到的那种方方正正的二维码。

它比条形码能储存的信息更多,并且不用像条形码那样必须直线对准扫描器,更加方便。

把 QR 码放大来是由很多小格子组成的,矩阵排列着的黑白“点”(格)就是它所携带的信息。

黑色的点是二进制里的“1”,白色是“0”,机器通过识别黑白点的不同排列组合的明暗差异可以读取出数字、字母、中文等信息。

而为了让你更加畅快的扫二维码,每个码都有一个固定的区域,三个“回”字形的定位点,这三个框框可以帮助机器定位码的位置,不管你从什么角度扫,三个定位点入镜基本都能扫出来。

但是很多时候二维码会有一部分被遮挡,没关系,在一定遮挡范围内,机器照样可以成功识别。

▲ 比如这种丧心病狂的二维码依旧可以扫出来

其实二维码有四种「错误修正容量」,分别为:L、M、Q、H,它们分别代表:

L水平 7% 的字码可被修正

M水平 15% 的字码可被修正

Q水平 25% 的字码可被修正

H水平 30% 的字码可被修正

就是怕有时候二维码会被挡住,所以专门设计出了四种规格的“犯错概率”。

为了让你们用各种姿势扫二维码,设计师也是操碎了心,同时这也是技术小哥可以获得 1000 美金的关键。

经过一顿推理分析,技术小哥发现被解构的二维码可以容忍的“犯错概率”是 H 水平,这意味着只用破解出 70% 的信息就能成功拿走现金。

基础知识搞得定,逆向分析美滋滋(虽说还是很复杂)……

小哥先是疯狂截屏,随后通过去模糊处理得到了依旧很模糊的部分私钥字符串还有官方漏打码的 1/3 二维码猜出来了部分私钥。

通过信息比对、二维码重构、二维码解码、暴力破解等一系列方法最终破解了这个被打码的二维码……

▲ 小哥猜出了前几位字符

▲ 得到了三分之一漏打码的二维码

▲ 重构二维码

所以实际上如果你想通过打码来保证信息安全基本不靠谱,有心的技术小哥总能透过薄薄的码找到隐藏在背后的真相。

更何况人们对去模糊化处理的研究也从没停止过,这个在学术上被称为「图像超分辨率」的问题也一直备受关注。

它的实质是使低分辨率的图片经过技术手段变成高分辨率,效果明显一些的办法是找一组高分辨率图片做训练集,然后通过机器学习找到高分辨率与地分辨率图片的关系以此达到去码效果……

▲ 一款名为SmartDeblur的图片处理软件的去模糊效果

所以真想彻底避免这种被强行破解的遭遇,只需要把大面积的像素点变成一个颜色才能真正实现高枕无忧,方法很简单:

直接上纯色遮罩,让追求真相的人彻底绝望!

-完-

ps:阅读原文里有去模糊化的软件SmartDeblur,感兴趣的可以找张有码的图片试一试……

有梦想就要去追

哪怕在你眼里

我只是个狂奔的黑块

本文作者铁柱,科技作者,微信:schizoyo。

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存