文章总结: 本文解析车联网NFC数字钥匙的中继攻击原理与复现。利用NFCgate工具搭建中继链路,攻击者可突破距离限制远程解锁车辆。文章详述了NFC交互逻辑及APDU结构,并提出防御策略:利用UWB技术检测飞行时间、严格限制协议时序、集成多因素生物认证及利用运动传感器实现静止休眠,有效识别并阻断中继攻击。 综合评分: 85 文章分类: 车联网安全,渗透测试,漏洞分析,IoT安全
车联网安全基础:NFC中继攻击
原创
M3ng9e M3ng9e
萌蘖向阳成参天
2026年1月27日 01:38 新加坡
免责声明: 本文仅用于技术交流与安全研究,文中涉及的漏洞复现均在授权环境下进行。请勿利用文中技术进行非法活动,否则后果自负。
上个月,我有幸参与了某大厂未上市车型的车联网安全项目。在测试过程中,我们通过中继攻击(Relay Attack)成功解锁了车辆。当时虽然复现了漏洞并记录了状态码,但对于底层的交互逻辑、请求响应(APDU)的具体细节理解尚浅。为了知其然更知其所以然,本文特此对NFC通信逻辑在数字钥匙场景下的应用进行复盘和补全。
NFC中继攻击
了解NFC
NFC(Near Field Communication)不仅仅是支付工具(公交卡、银行卡、碰一碰支付等等),更是目前车联网数字钥匙(Digital Key)的主流实现方案之一。
目前的车机方案(如特斯拉、比亚迪等)主要遵循 CCC(Car Connectivity Consortium) 规范。与传统的门禁卡不同,车规级的NFC通信绝不是简单的 UID(唯一标识符)匹配,其中会包含权限验证的过程。
NFC(Near Field Communication)是一种基于 RFID(13.56MHz)演变而来的近场通信技术,通信距离一般小于20CM(实际4CM),有三种工作模式:
- 卡模拟模式(Tag/Card Emulation): 卡片端,用户的手机或NFC卡片。
- 读卡器模式(Reader/Writer): 读卡器端, 车辆主动发射射频场(RF Field),寻找并供电给附近的手机/卡片,发送指令(Command)并接收响应(Response)。
- 点对点模式(P2P): 两个 NFC 设备交换数据。
NFC的交互逻辑
NFC中继攻击
了解了NFC的通信交互逻辑后,我们来了解一下中继攻击是什么?
维基百科:中继(Relay)是一种在两个网络节点、设备或交换中心之间转发、增强信号或数据的通信技术。
我们可以简单理解为中继就是接力,接力转发放大信号。
如何接力呢?如图所示。
本来的流程中,是tag1<->reader1两个人近距离交流,现在需要远距离传话,因此额外需要两个人。
tag1<-->reader2<-->tag2<-->reader1,增加了一个reader2和tag2,由于通信传输需要保证信息传输的可靠稳定,我们又叫了一个哥们,他是大喇叭联络员,他一手拉着 Reader2,一手拉着 Tag2,于是链路就变成了这样tag1 <--> reader2 <--> [服务器] <--> tag2 <--> reader1,这样就能保证信息顺畅的传输了。
中继攻击的重点就是把短距离通信变成了长距离通信,扩大了通讯范围,甚至扩大到全球。
设想一下这样的场景:
你在饭店吃饭,手机放桌上了,车停在外面。这时有两个攻击者,一个靠近车的NFC,一个靠近你的手机,并搭建了服务器,在1-2秒内就可以完成打开你的车门,把你的车开走了,可以一直把车开到熄火为止。
NFC中继攻击实践
准备:两台安装NFCgate的手机(需要xposed)、一台电脑(服务器)
APP下载地址:https://github.com/nfcgate/nfcgate
服务端下载地址:https://github.com/nfcgate/server
-
电脑开启热点,两台手机连上热点,然后在电脑上开启server.py
-
两台手机都在settings里设置服务器ip和端口
-
回到主页面,找到“Relay Mode”功能,一台设置为tag,一台设置为reader,连上服务器
-
先锁车,将reader与手机NFC感应区靠近,将tag与车辆NFC感应区靠近,就会自动发送NFC通信数据进行中继攻击了,如果你的车开锁了,那么恭喜你NFC中继攻击成功了。
-
为了进一步学习原理,我们需要了解其数据交互的大概逻辑,这是ADPU数据交互的过程的示例
其中我们重点需要知道响应码含义,协议请求头的字段含义,参数等。
C-APDU (读卡器发出的指令):
00 A4 04 00 ... <-- Select File (标准,选择应用)
80 / 84 开头: 行业标准或私有 (Proprietary / GlobalPlatform)
R-APDU (卡片回复):
6A 82 <-- File Not Found (文件未找到)
90 00 <-- Success (成功)
其他的具体协议数据字节代表的含义大家可以自行查阅资料学习, 重点是根据通讯数据,进而推算交互逻辑进行分析。
C-APDU:读卡器端
| 必须部分 (Header) | | | | 可选部分 (Body) | | | | — | — | — | — | — | — | — | | CLA | INS | P1 | P2 | Lc | Data | Le | | 类别 | 指令 | 参数1 | 参数2 | 数据长度 | 数据内容 | 期望回复长度 |
R-APDU:卡片端
| 可选部分 (Body) | 必须部分 (Trailer) | | — | — | | Data | SW1 SW2 | | 实际数据 | 状态字 (Status Word) |
如何防御NFC中继攻击
核心是延时检测,看时间在不在纳秒单位内。
- UWB(超宽带)技术可以有效防御NFC中继攻击。通过其厘米级的高精度定位和基于飞行时间(ToF)的安全时间戳技术,UWB能准确测量设备间的物理距离。即使攻击者在远端中继信号,UWB也会因测量出的传输时延过长而判定为非法操作,从而阻止攻击。
- 时序与协议优化,严格的 FWT (Frame Waiting Time) 限制( < 20ms),禁用 WTX (Waiting Time Extension): 读卡器拒绝卡片发出的“请求加时”指令,强制要求即时响应。
- 多因素认证 (MFA / Biometrics), 即使你偷了我的信号,你没有我的指纹/人脸。
- 运动传感器 (Motion Sensor),车钥匙内部装有加速度计。钥匙静止不动超过 X 分钟,钥匙会自动切断无线发射功能(休眠),只有当你拿起钥匙走路时,无线发射功能才会被唤醒。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:萌蘖向阳成参天 M3ng9e M3ng9e《车联网安全基础:NFC中继攻击》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论