- 参考链接:
NFC概述[摘自维基]
- 近距离无线通信(英语:Near-field communication,NFC),又简称近距离通信或近场通信,是一套通信协议,让两个电子设备(其中一个通常是移动设备,例如智能手机)在相距几厘米之内进行通信.
NFC
,如同过去的电子票券智能卡一般,将允许移动支付取代或支持这类系统.NFC
应用于社交网络,分享联系方式,照片,视频或文件.具备NFC
功能的设备可以充当电子身份证和钥匙卡.NFC
提供了设置简便的低速连接,也可用于引导能力更强的无线连接. - 近场通信技术由非接触式射频识别(RFID)演变而来,由飞利浦半导体(现恩智浦半导体 NXP)’诺基亚和索尼共同于2004年研制开发[4],其基础是RFID及互连技术.近场通信是一种短距高频的无线电技术,在
13.56MHz
频率运行于20
厘米距离内.其传输速度有106 Kbit/秒
,212 Kbit/秒
或者424 Kbit/秒
三种.目前近场通信已通过成为ISO/IEC IS 18092
国际标准,EMCA-340
标准与ETSI TS 102 190
标准.NFC
采用主动和被动两种读取模式. - 每一个完整的
NFC
设备可以用三种模式工作:- 卡模拟模式(Card emulation mode):这个模式其实就是相当于一张采用
RFID技
术的IC
卡.可以替代现在大量的IC卡(包括信用卡)场合商场刷卡,IPASS
,门禁管制,车票,门票等等.此种方式下,有一个极大的优点,那就是卡片通过非接触读卡器的RF域来供电,即便是寄主设备(如手机)没电也可以工作.NFC
设备若要进行卡片模拟(Card Emulation)相关应用,则必须内置安全组件(Security Element, SE)之NFC
芯片或通过软件实现主机卡模拟(Host Card Emulation,HCE). - 读卡器模式(Reader/Writer mode):作为非接触读卡器使用,比如从海报或者展览信息电子标签上读取相关信息.
- 点对点模式(P2P mode):这个模式和红外线差不多,可用于数据交换,只是传输距离较短,传输创建速度较快,传输速度也快些,功耗低(蓝牙也类似).将两个具备
NFC
功能的设备链接,能实现数据点对点传输,如下载音乐,交换图片或者同步设备地址薄.因此通过NFC
,多个设备如数位相机,PDA
,计算机和手机之间都可以交换资料或者服务.
- 卡模拟模式(Card emulation mode):这个模式其实就是相当于一张采用
与藍牙的比较
NFC
和蓝牙都是短距离通信技术,而且都被集成到移动电话.但NFC
不需要复杂的设置程序.NFC
也可以简化蓝牙连接.NFC
略胜蓝牙的地方在于设置程序较短,但无法达到低功率蓝牙(Bluetooth Low Energy)的传输速率.在两台NFC
设备相互连接的设备识别过程中,使用NFC
来替代人工设置会使创建连接的速度大大加快:少于十分之一秒.NFC
的最大资料传输量424 kbit/s
远小于Bluetooth V2.1(2.1 Mbit/s)
.虽然NFC
在传输速度与距离比不上蓝牙(小于20 cm),但相应可以减少不必要的干扰.这让NFC
特别适用于设备密集而传输变得困难的时候.- 相对于蓝牙,
NFC
兼容于现有的被动RFID(13.56 MHz ISO/IEC 18000-3)
设施.NFC
的能量需求更低,与蓝牙V4.0
低功耗协议类似.当NFC在一台无供电的设备(比如一台关机的手机,非接触式智能信用卡,或是智能海报)上工作时,NFC
的能量消耗会要大于低功率蓝牙V4.0
. - 对于移动电话或是行动消费性电子产品来说,
NFC
的使用比较方便.NFC
的短距离通信特性正是其优点,由于耗电量低,一次只和一台机器链接,拥有较高的保密性与安全性,NFC
有利于信用卡交易时避免被盗用.NFC
的目标并非是取代蓝牙等其他无线技术,而是在不同的场合,不同的领域起到相互补充的作用.
Linux
连接使用
Howto crack Mifare Classic NFC cards using the hardnested attack
因为
Debian
里的仓库包含它的这些式具的发行版了,就可以直接安装它使用,而且查看它的源码库,如:nfs-tools/libnfc,nfc-tools/mfoc都没有大的更新.
1 | ~$ sudo apt-get install libnfc-bin libnfc-examples mfoc mfcuk |
- 这里是直接使用
uart
来连接,只要一个USB-TTL
连接到电脑就要可以,修改/etc/nfc/libnfc.conf
成如下内容:
1 | ~$ grep '=' /etc/nfc/libnfc.conf |
- 如下图所示,连接
UART
后,并且通过板上的拨码开关设置成HSV
模式.
1 | USB-TTL PN532 |
- 列出所有的
NFC
列表,如果LIBNFC_LOG_LEVEL=3
会有更加丰富的信息输出.
1 | ~$ LIBNFC_LOG_LEVEL=1 nfc-list -v |
- 直接放上一张卡,读取它的基本信息.如下面所示,这张卡的
UID
是370656b3
.
1 | ~$ nfc-list |
- 再读一张
1 | ~$ ~$ nfc-list -v |
- 这是一张
NXP
的SmartMX
系列的卡片,同时附带MIFARE Classic 1K
模拟.SmartMX
是NXP
的JCOP
卡系列,也就是说这张卡是一种CPU
卡(也有叫做Java卡).CPU卡
意味着卡中有一个完整功能的CPU
,并且带有操作系统,卡片的功能是基于软件实现的,而不是像MIFAREClassic
这种基于ASIC
的卡,用硬件电路实现卡片功能.这种类型的卡相比较MifareClassic
类型的卡要安全的多,几乎不可能被破解和复制.
相关源码编译
1 |
树莓派
手机应用
NRF52840
ESP32
烧写工具
makerdiary
OpenSK
谢谢支持
- 微信二维码: