攻击面分析:物理层攻击(窃听、干扰)、链路层攻击(重放、中继)、应用层攻击(恶意应用、伪基站)

各位同学,今天我们来聊聊非接触式支付最核心的部分——攻击面分析。

说白了,就是黑客到底能从哪些地方下手?

我做了这么多年安全,见过太多人只盯着应用层,觉得加个密码就万事大吉。结果呢?物理层被人用个读卡器就搞定了。嗯,咱们得从底层往上捋,一层一层扒开看。

1. 物理层攻击:最原始,也最致命

物理层,就是信号在空中飞的那一段。你想想看,卡片和读卡器之间,靠的是13.56MHz的射频信号。这个信号,说白了就是电磁波。电磁波有个特点——它不认人。

窃听(Eavesdropping)

我在项目中遇到过最典型的场景:某公司食堂的刷卡机,员工排队打饭,卡一贴就扣钱。我拿了个便携式频谱仪站在三米外,轻松抓到了完整的交易数据包。为什么?因为信号是广播的,谁都能收。

窃听的核心原理:攻击者用高增益天线,在合法通信范围内截获射频信号。不需要接触,不需要破解,只需要监听。

关键点:非接触式支付的通信距离通常只有4-10厘米,但窃听距离可以远达数米。别被「近场」两个字骗了。

干扰(Jamming)

干扰更粗暴。我记得有一次帮客户做渗透测试,我拿了个大功率信号发生器,对着他们的支付终端一顿怼。结果呢?所有刷卡机全部离线,交易全部失败。

干扰的原理很简单:发射同频段的强噪声信号,把正常的通信信号淹没掉。攻击者不一定非要偷你的钱,让你做不成生意,也是一种攻击。

避坑指南:我曾经见过一个商场,为了省成本,用的读卡器抗干扰能力极差。结果有人拿个二手对讲机在附近喊了几嗓子,整个收银台就瘫痪了。嗯,后来他们换了带滤波器的设备。

2. 链路层攻击:协议层面的漏洞

链路层,就是数据怎么打包、怎么传输的那一层。这里的问题,往往出在协议设计上。

重放攻击(Replay Attack)

重放攻击,说白了就是「录下来,再放一遍」。攻击者先窃听一次完整的交易数据,然后找个机会,把这段数据重新发给读卡器。

你想想看,如果读卡器不检查时间戳或者随机数,它就会认为这是一次新的合法交易。我见过最离谱的案例:某停车场出口的支付终端,被人用录下来的数据反复刷,免费停了三个月车。

我的建议:对抗重放攻击,一定要用「挑战-响应」机制。每次交易前,读卡器发一个随机数,卡片用密钥加密后返回。这样每次的数据都不一样,重放就没用了。

中继攻击(Relay Attack)

中继攻击更高级。攻击者不需要破解任何东西,只需要把信号「接力」一下。

举个例子:你兜里揣着银行卡,站在商店门口。攻击者A拿个设备靠近你,攻击者B拿另一个设备靠近收银台。A把读到的信号传给B,B再发给收银台。收银台以为你的卡就在跟前,实际上你离着十米远。

我参与过的一个真实案例:某高端商场,有人用一对中继设备,在咖啡厅里刷了别人兜里的卡。全程没接触,没破解,就是信号传得远了点。

核心逻辑:中继攻击利用了「距离验证」的缺失。很多支付协议只验证「你是谁」,不验证「你在哪」。嗯,这是个设计缺陷。

3. 应用层攻击:软件层面的花招

应用层,就是跑在手机或终端上的那些App和固件。这一层的攻击,花样最多。

恶意应用(Malicious App)

你手机里装了个看起来正常的支付App,实际上它后台在偷偷读取你的卡片信息。我见过一种恶意应用,它伪装成优惠券软件,一旦安装,就会利用手机的NFC功能,主动去读你钱包里的银行卡。

更狠的是,有些恶意应用还能修改交易金额。你明明刷了10块钱,它给读卡器发的是1块钱。剩下的9块,进了攻击者的口袋。

避坑指南:我曾经帮一个用户分析他的手机,发现他装了十几个「支付辅助工具」。结果呢?有三个是恶意应用。记住,支付相关的App,只从官方应用商店下载,别信那些「破解版」。

伪基站(Rogue Base Station)

伪基站,就是攻击者自己搭一个假的读卡器。你以为是商家的POS机,实际上是个陷阱。

伪基站可以做到两件事:第一,主动发起交易,骗你的卡扣钱;第二,收集你的卡片信息,用于后续的克隆攻击。

我记得有一次,某地铁站出口被人放了个伪装的支付终端。外观和真的一模一样,但里面装的是个树莓派。一天之内,骗了上百人。

我的经验:识别伪基站,有个笨办法——看信号强度。正规的读卡器,信号稳定且范围有限。伪基站为了覆盖更广,往往信号特别强。如果你发现刷卡时信号异常强,或者距离很远就能触发,赶紧停手。

知识体系总览

下面这张图,把咱们刚才讲的攻击面串起来了。你可以把它当成一张「攻击地图」,以后做防护时,对着这张图一个一个堵漏洞。

非接触式支付攻击面全景图 物理层攻击 窃听(Eavesdropping) 干扰(Jamming) 攻击对象:射频信号 | 防护手段:加密、跳频、信号过滤 链路层攻击 重放攻击(Replay Attack) 中继攻击(Relay Attack) 攻击对象:协议数据包 | 防护手段:挑战-响应、时间戳、距离绑定 应用层攻击 恶意应用(Malicious App) 伪基站(Rogue Base Station) 攻击对象:App/固件 | 防护手段:代码签名、安全启动、行为检测 攻击难度递增,但危害程度取决于具体场景

这张图里,从下往上,攻击的「技术门槛」越来越高,但「隐蔽性」也越来越强。物理层的窃听,你拿个设备就能干;应用层的恶意应用,你得会写代码、会逆向。但反过来,物理层攻击容易被发现,应用层攻击往往神不知鬼不觉。

总结一下:攻击面分析不是让你背概念,而是让你建立「立体防御」的思维。物理层、链路层、应用层,每一层都有漏洞,每一层都需要防护。别只盯着自己熟悉的那一层,否则迟早要吃亏。

好了,这一章的内容就到这里。记住我今天讲的这几个攻击手法,下一章咱们开始讲怎么防。


专注资料整理