目录
一、引言
NFC 技术在现代生活中应用广泛,从公交卡、手机钱包到芯片银行卡,都离不开 NFC 支付。然而,这种便捷的支付方式也存在一些安全隐患。本文将介绍 NFC 支付的概念、工作原理,以及从攻击者和防御者的角度分析其安全问题,并在必要时给出相关代码示例。
二、NFC 支付的概念与工作原理
(一)概念
NFC 是一种移动支付方式,它与二维码扫码支付不同,是一种高频无线通信技术,不需要使用移动网络。应用 NFC 技术的手机相当于把手机变成了支付终端,可以直接刷机支付。例如手机钱包可用于公交、地铁刷卡支付,带有 QuickPass 标志的芯片银行卡可直接在 POS 机上支付,公交卡、饭卡等也都应用了 NFC 支付技术。
(二)工作原理
NFC 支付技术即 NFC(Near Field Communication 缩写,近距离无线通讯技术),由非接触式射频识别(RFID)演变而来,由飞利浦半导体(现恩智浦半导体)、诺基亚和索尼共同研制开发。它基于 RFID 及互连技术,是一种短距高频的无线电技术,在 13.56MHz 频率运行于 20 厘米距离内,传输速度有 106 Kbit / 秒、212Kbit / 秒或者 424Kbit / 秒三种,并已通过成为 ISO/IEC IS 18092 国际标准、ECMA - 340 标准与 ETSI TS 102 190 标准。常见的高频门禁卡和大学食堂饭卡通常也遵循一样的通信标准,但传输的数据类型不同。目前常见的 NFC 支付协议标准一般走在 ISO14443A 上。
三、NFC 支付的安全隐患及攻击手段
(一)从攻击者角度
- 针对 Mifare 系列卡片(如公交卡、饭卡等)
- 密钥破解攻击
- 如果是 Mifare 系列的卡片,使用 ACR122U 或者 Proxmark 3 这种 NFC 的硬件攻击设备,可以破解出对应的卡片密钥。对于 Mifare 早期算法有漏洞的卡片,由于部分扇区使用默认密钥,可以推算出所有扇区对应的密钥。拿到密钥之后,可以直接复制出一样的卡片,包括卡片内的金额;或者通过读取消费前后的数据变化来确定余额,进而修改卡内金额。
- 示例代码(模拟简单的卡片数据读取,仅用于示意)
- 密钥破解攻击
def read_card_data():
# 这里模拟从卡片读取数据的过程,实际可能需要与硬件设备交互
card_data = "模拟读取到的卡片数据"
return card_data
- 针对银行卡(遵循 PBOC 交易协议)
- 透传攻击
- 虽然银行卡数据自行加密且遵循 PBOC 交易协议难以破解,但存在针对银行卡的透传攻击方式。不需要知道加密的具体内容,只需要把数据传过去,但这种攻击方式难度较大。
- 透传攻击
(二)从防御者角度
- 针对 Mifare 系列卡片及其他 NFC 卡片
- 被动式防御 - 安全卡套
- 360 安全卡套是一种被动式防御手段,里面有特殊的涂层,利用法拉第笼原理,可以阻断读卡信号,从而保护卡片信息。
- 主动式防御 - 产生白噪声信号
- 另一种主动式防御手段是产生白噪声信号,干扰正常的卡和读卡器之间的交互,从而防护钱包里所有带有 NFC 功能的卡片,如 360 卡防设备。
- 被动式防御 - 安全卡套
四、不同频率 NFC 的攻击手段差异
(一)高频 NFC(13.56Mhz,如支付系统常用)
- 一般以破解密钥、克隆卡片为主,主要工具是 ACR122U 和 Proxmark3 这类设备,另外还有透传类破解工具如 HackNFC。
(二)低频 NFC(125Khz,如门禁系统常用)
- 一般以直接复制克隆和暴力破解为主。对于普通的 em410x、t5577 芯片卡之类,很容易复制;对于 HID 卡,走 ISO15639 协议,自带加密,相对安全。对于低频卡上的 ID 部分,可以使用针对性攻击设备(如 HackID Pro 和 HackID Plus)进行模拟、爆破、读取等操作,以达到复制卡片或提升权限的目的。
五、结论
NFC 支付在给我们生活带来便利的同时,也存在安全隐患。无论是攻击者还是防御者,都需要了解其技术原理和相关的攻击与防御手段。通过合理的防御措施,可以在一定程度上保障 NFC 支付的安全。同时,随着技术的不断发展,NFC 支付的安全性也需要持续关注和提升。