首发于 浅黑科技

三星支付存盗刷风险,腾讯安全玄武实验室的技术小哥是如何发现的?

注:本文于2017年9月首发在公众号【浅黑科技】,是一篇旧闻。因为另一篇专栏文章:《 这俩世界顶级黑客,太猥琐了!我喜欢…… 》引用了一段,所以把这篇文章在知乎再发一下,方便大家阅读。当然,我还是希望你去关注我的公众号【浅黑科技】


你用三星支付 SamsungPay 吗?
你身边有人用吗?

来看一个视频(知乎上传视频挺麻烦,我直接上链接好了):

https://v.qq.com/x/page/x0555xpvqek.html

视频模拟了这样一个场景:

攻击者利用一个信号接收装置(墙上的金属圈),在一米左右的位置接收受害者手机发出的 SamsungPay 支付信号,拿到支付数据后,攻击者可利用该数据在POS 机上支付消费,盗用受害者的钱财。

演示来自国际顶尖网络安全团队,腾讯安全玄武实验室。该攻击手法已被选入了国际顶级黑客大会 Blackhat EU ,将于12月在欧洲演讲。

浅黑科技有幸提前勾搭到了此次破解的技术小哥马卓,了解了其中原理。


阅读本文,你相当于免费提前几个月看了一个 Blackhat 黑客大会的议题。(还是通俗版

来,一起看看这脑洞大开的破解手法吧~!




Let's Rock!


用过某某Pay 的同学可能知道,ApplePay、米Pay、华为Pay等“各路 Pay”都只能在支持 QuickPass 闪付的 POS 机上使用。


三星的 SamsungPay 很任性,不仅支持闪付POS机,还兼容 传统刷磁条卡的老式POS机。

功能很强大是不是?但安全问题也就出在这。

讲解之前,先科普一个银行磁条卡的小姿势:

传统磁条卡的原理不复杂,用一定规律编排的 磁颗粒 来记录存储数据。

马卓告诉浅黑科技,通常磁条卡采用F2F编码方法对数据编码。


刷卡时,POS机器的磁头从一头扫到另一头,感受磁场变化来获取卡片信息,和光盘原理有点类似。


简单来讲就是用南北极的磁场变化来代表计算机的0和1 ▼



问题来了,既然磁头感受刷卡时的磁场变化来读取数据,那就意味着,只要能用其他方式模拟出这段磁场变化,就能模拟这张卡。

这便是三星支付兼容传统磁条卡POS机的秘密。


苹果、小米、华为的“Pay”,依靠NFC模块来实现近距离支付(注:NFC,非接触式射频识别,公交卡、银行卡用的这种原理)。

三星手机里不仅仅有 NFC 模块,比别的手机多一个“器官”—— MST 模块。


MST全称 Magnetic Secure Transmission(磁力安全传输技术),它便是三星手机兼容支持闪付的同时还兼容传统磁条卡POS机的关键。

MST 利用一个感应线圈产生的动态磁场,模拟出刷磁条卡时磁场随时间的变化,让POS机磁头误以为刷到了一张普通的银行磁条卡。只要手机在刷卡器一定范围内,便能识别磁场完成支付。


由于传统磁条POS机的型号、款式非常多, 为了在POS机都实现顺畅的刷卡效果,三星不得不把 MST 发射的磁场功率调得非常大 , 1~2米间都能接收到磁场信号。


科普完毕,现在盗刷攻击开始。


当你掏出手机打开三星支付准备付款时,攻击者只要你身边布置一个磁信号接收装置,就能直接接收 MST 模块发出的磁场信号,并远程传送给同伙用于刷卡支付。



这种攻击手法就好比,你在用二维码支付时,被其他人拍到手机上的支付二维码,发送给同伙,并抢在你支付之前进行扫码。

但和拍照不同的是,接收 MST 信号并不需要明目张胆地做什么,只需要把接收装置揣在身上,站在你身旁就行。


支付宝、微信的支付二维码有过期失效机制,每隔一分钟,即使没有支付,二维码也会失效。 三星支付也有类似安全机制 。每次用户支付完或倒计时30秒结束,MST就会停止发射信号或更换发射的信号。

然而,盗刷并不需要30秒,3秒都不用。


至此,一套三星支付盗刷手法完整呈现在你眼前。


以下是我产生的疑问和马卓的解答:


1.视频演示中的电磁信号接收装置是个大金属圈,不会被发现么?

马卓 :这里主要先从技术上证明它存在盗刷风险,金属圈越大捕捉的距离和效果越好。如果要隐藏的话也简单 ,把它放在一幅画里面,你就注意不到了吧?

谢幺 :有道理,实在不行 cosplay 成哪吒也行,我P了张效果图你看看。




马卓: 我们……还能愉快地聊下去吗?


谢幺: 不要在意这些细节

来我们继续聊。


2.NFC 信号能被截获吗?那 ApplePay、MIPay、华为Pay岂不是也有类似风险?

马卓:理论上也可以,但在 NFC 的作用距离通常只有几厘米到几十厘米,攻击者很难贴身读取。

三星支付的问题在于, MST模块发出的磁信号能在2m之内接收到,这就让风险一下子提高了不少。


3.三星公司在设计MST模拟支付时没考虑到这个问题吗?有办法解决吗?

马卓 :实验室发现该问题后立刻反馈给了三星公司,三星公司认为这是 可接受的风险 ,可能他们觉得盗刷的概率比较小。

为了兼容更多的磁条刷卡机,它只能把功率调大,功率调小可能会影响三星支付刷卡的成功率。


玄武实验室仅从信息安全研究的角度出发,发现问题后及时反馈给厂商。至于问题危害程度的判定以及是否修复,决定权在厂商自身。



4.磁条信号能被捕捉并直接用于盗刷,那磁条卡岂不是也很容易被复制?

马卓:对啊,本来就是。

你可以去了解一个叫“Skimmer”的装置。它就是通过伪造ATM的一些部件(读卡器或键盘)去欺骗消费者,然后把读取到的磁卡信息或密码发送到罪犯手中。

谢幺: 我刚刚搜了一下 几年前巴西就有这个一起奇葩案例,一个团伙用Skimmer 做了个假ATM机,直接放在真ATM机上来骗取受害者的磁卡信息和密码。

被拆下来的 Skimmer装置 ▼


马卓: 正因磁条卡容易被复制的特性,银行一直在大力推行芯片卡,淘汰磁条卡,只不过因为历史遗留问题,目前市面上还是有不少磁条卡。

国内警方也经常提醒大家,ATM 取款时注意插卡口有没有附加一些奇怪的装置,在外刷信用卡时,一定要保持卡在自己的视线内,防止卡被复制。


5.为什么磁条卡可以轻易被复制,而 IC芯片卡不会?

马卓 :磁条卡的卡号、发卡行信息、有效期等信息都在磁条里,可以随意读取。芯片卡使用时需要供电,用以支持卡内计算。

芯片卡拥有完整的 外部认证 内部认证机制, 不仅终端机会认证卡片的合法性,而且 卡片还能反过来验证终端机的合法性

谢幺: 也就是说,芯片卡能识别合法的ATM、POS机和盗刷的机器吗?是怎么做到的呢? 马卓 :芯片卡中有一个无法被随便读取的区域,即使被复制,该区域也是无法被读取的。里面存着IC卡的私钥,刷卡时会用到一些非对称加密的原理来相互校验合法性。 由于技术比较复杂,这里做个不太严谨的比喻,帮助大家理解:

终端机发了一个月饼(一段随机字符)给卡片,卡片收到后用自己特定的保险箱(私钥)锁起来,还回给终端机。
只有合法的终端机才能从银行后台拿到这张卡片保险箱的钥匙,如果是卡片和终端机有一个不合法,钥匙和箱子就对不上号,从而确保安全。


6.存在盗刷风险的情况下,用户怎么避免自己的损失呢?

马卓 :如果你的信用卡设置了密码的话,盗刷者拿不到密码,只能在小额免密支付的额度里,这个损失可以控制。

当然,更好的方法是信用卡不设密码,如果被盗刷了,没有你的签字,由银行来承担损失……

谢幺:

……好……好……期待看到你的下一次精彩破解。

谢谢~好的本次勾搭到此结束,大家还有什么问题,请在留言区继续……

编辑于 2018-01-17 10:52

文章被以下专栏收录