查看原文
其他

谢幺 2018-05-29



你用三星支付 SamsungPay 吗?

你身边有人用吗?

来看一个视频:

https://v.qq.com/txp/iframe/player.html?vid=x0555xpvqek&width=500&height=375&auto=0

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

攻击者利用一个信号接收装置(墙上的金属圈),在一米左右的位置接收受害者手机发出的 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.存在盗刷风险的情况下,用户怎么避免自己的损失呢?

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

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

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

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

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

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