你用三星支付 SamsungPay 吗?
你身边有人用吗?
来看一个视频:
https://v.qq.com/txp/iframe/player.html?vid=x0555xpvqek&width=500&height=375&auto=0
视频模拟了这样一个场景:
攻击者利用一个信号接收装置(墙上的金属圈),在一米左右的位置接收受害者手机发出的 SamsungPay 支付信号,拿到支付数据后,攻击者可利用该数据在POS 机上支付消费,盗用受害者的钱财。
演示来自国际顶尖网络安全团队,腾讯安全玄武实验室。该攻击手法已被选入了国际顶级黑客大会 Blackhat EU ,将于12月在欧洲演讲。
浅黑科技有幸提前勾搭到了此次破解的技术小哥马卓,了解了其中原理。
阅读本文,你相当于免费提前几个月看了一个 Blackhat 黑客大会的议题。(还是通俗版
来,一起看看这脑洞大开的破解手法吧~!
用过某某Pay 的同学可能知道,ApplePay、米Pay、华为Pay等“各路 Pay”都只能在支持 QuickPass 闪付的 POS 机上使用。
三星的 SamsungPay 很任性,不仅支持闪付POS机,还兼容传统刷磁条卡的老式POS机。
功能很强大是不是?但安全问题也就出在这。
讲解之前,先科普一个银行磁条卡的小姿势:
传统磁条卡的原理不复杂,用一定规律编排的磁颗粒来记录存储数据。
马卓告诉浅黑科技,通常磁条卡采用F2F编码方法对数据编码。
刷卡时,POS机器的磁头从一头扫到另一头,感受磁场变化来获取卡片信息,和光盘原理有点类似。
简单来讲就是用南北极的磁场变化来代表计算机的0和1 ▼
问题来了,既然磁头感受刷卡时的磁场变化来读取数据,那就意味着,只要能用其他方式模拟出这段磁场变化,就能模拟这张卡。
这便是三星支付兼容传统磁条卡POS机的秘密。
苹果、小米、华为的“Pay”,依靠NFC模块来实现近距离支付(注:NFC,非接触式射频识别,公交卡、银行卡用的这种原理)。
三星手机里不仅仅有 NFC 模块,比别的手机多一个“器官”—— MST 模块。
MST 利用一个感应线圈产生的动态磁场,模拟出刷磁条卡时磁场随时间的变化,让POS机磁头误以为刷到了一张普通的银行磁条卡。只要手机在刷卡器一定范围内,便能识别磁场完成支付。
由于传统磁条POS机的型号、款式非常多,为了在POS机都实现顺畅的刷卡效果,三星不得不把 MST 发射的磁场功率调得非常大, 1~2米间都能接收到磁场信号。
科普完毕,现在盗刷攻击开始。
当你掏出手机打开三星支付准备付款时,攻击者只要你身边布置一个磁信号接收装置,就能直接接收 MST 模块发出的磁场信号,并远程传送给同伙用于刷卡支付。
这种攻击手法就好比,你在用二维码支付时,被其他人拍到手机上的支付二维码,发送给同伙,并抢在你支付之前进行扫码。
但和拍照不同的是,接收 MST 信号并不需要明目张胆地做什么,只需要把接收装置揣在身上,站在你身旁就行。
支付宝、微信的支付二维码有过期失效机制,每隔一分钟,即使没有支付,二维码也会失效。三星支付也有类似安全机制。每次用户支付完或倒计时30秒结束,MST就会停止发射信号或更换发射的信号。
然而,盗刷并不需要30秒,3秒都不用。
至此,一套三星支付盗刷手法完整呈现在你眼前。
以下是我产生的疑问和马卓的解答:
1.视频演示中的电磁信号接收装置是个大金属圈,不会被发现么?
马卓:这里主要先从技术上证明它存在盗刷风险,金属圈越大捕捉的距离和效果越好。如果要隐藏的话也简单,把它放在一幅画里面,你就注意不到了吧?
谢幺:有道理,实在不行 cosplay 成哪吒也行,我P了张效果图你看看。
▼
▼
▼
马卓:我们……还能愉快地聊下去吗?
谢幺:不要在意这些细节
2.NFC 信号能被截获吗?那 ApplePay、MIPay、华为Pay岂不是也有类似风险?
马卓:理论上也可以,但在 NFC 的作用距离通常只有几厘米到几十厘米,攻击者很难贴身读取。
三星支付的问题在于,
3.三星公司在设计MST模拟支付时没考虑到这个问题吗?有办法解决吗?
玄武实验室仅从信息安全研究的角度出发,发现问题后及时反馈给厂商。至于问题危害程度的判定以及是否修复,决定权在厂商自身。
4.磁条信号能被捕捉并直接用于盗刷,那磁条卡岂不是也很容易被复制?
马卓:对啊,本来就是。
你可以去了解一个叫“Skimmer”的装置。它就是通过伪造ATM的一些部件(读卡器或键盘)去欺骗消费者,然后把读取到的磁卡信息或密码发送到罪犯手中。
谢幺:我刚刚搜了一下,几年前巴西就有这个一起奇葩案例,一个团伙用Skimmer 做了个假ATM机,直接放在真ATM机上来骗取受害者的磁卡信息和密码。
被拆下来的 Skimmer装置 ▼
马卓:正因磁条卡容易被复制的特性,银行一直在大力推行芯片卡,淘汰磁条卡,只不过因为历史遗留问题,目前市面上还是有不少磁条卡。
国内警方也经常提醒大家,ATM 取款时注意插卡口有没有附加一些奇怪的装置,在外刷信用卡时,一定要保持卡在自己的视线内,防止卡被复制。
5.为什么磁条卡可以轻易被复制,而 IC芯片卡不会?
马卓:磁条卡的卡号、发卡行信息、有效期等信息都在磁条里,可以随意读取。芯片卡使用时需要供电,用以支持卡内计算。
芯片卡拥有完整的外部认证和内部认证机制,不仅终端机会认证卡片的合法性,而且卡片还能反过来验证终端机的合法性。
谢幺:也就是说,芯片卡能识别合法的ATM、POS机和盗刷的机器吗?是怎么做到的呢?
马卓:芯片卡中有一个无法被随便读取的区域,即使被复制,该区域也是无法被读取的。里面存着IC卡的私钥,刷卡时会用到一些非对称加密的原理来相互校验合法性。
由于技术比较复杂,这里做个不太严谨的比喻,帮助大家理解:
终端机发了一个月饼(一段随机字符)给卡片,卡片收到后用自己特定的保险箱(私钥)锁起来,还回给终端机。
只有合法的终端机才能从银行后台拿到这张卡片保险箱的钥匙,如果是卡片和终端机有一个不合法,钥匙和箱子就对不上号,从而确保安全。
6.存在盗刷风险的情况下,用户怎么避免自己的损失呢?
马卓:如果你的信用卡设置了密码的话,盗刷者拿不到密码,只能在小额免密支付的额度里,这个损失可以控制。
当然,更好的方法是信用卡不设密码,如果被盗刷了,没有你的签字,由银行来承担损失……
谢幺:
谢谢~好的本次勾搭到此结束,大家还有什么问题,请在留言区继续……