说一下NFC,手机有NFC功能却不能模拟门禁卡?

img

1、NFC是什么?

NFC(Near Field Communication) 技术由Philips、Nokia和Sony主推的一种近距离无线通信技术(NFCIP-1),是一种短距离非接触式的通信方式,通常有效通讯距离为4厘米以内。工作频率为13.65 兆赫兹,通信速率为106kbit/秒到 848kbit/秒。通过手机为载体,把非接触式IC卡应用结合于手机中,以卡、阅读器、点对点三种应用模式,实现手机支付、行业应用、积分兑换、电子票务、身份识别、防伪、广告等多种应用的服务产品。

NFC通信总是由个发起者(initiator)和一个接受者(target)组成。

NFC也支持点到一点的通信(peer to peer) 此时参与通信的双方都有电源支持。

img

NFC 与其他通信技术对比:

img

2、什么是RFID?

RFID( Radio Frequency Identification),其原理为阅读器与标签之间进行非接触式的数据通信,达到识别目标的目的。RFID 的应用非常广泛,典型应用有动物晶片、汽车晶片防盗器、门禁管制、停车场管制、生产线自动化、物料管理。

3、NFC和RFID的区别和联系

NFC和RFID在本质上没有太多的区别,但是也有一些特点需要区分的,像工作频率不同,是否支持点对点通信技术。

3.1、 工作频率

NFC的工作频率为13.56MHz,而RFID的工作频率有低频,高频(13.56MHz)及超高频。

3.2. 工作距离

NFC的工作距离理论上为0~20cm,但是在产品的实现上,由于采用了特殊功率抑制技术,使其工作距离只有0~10cm,从而更好地保证业务的安全性。由于RFID具有不同的频率,其工作距离在几厘米到几十米不等。

3.3. 工作模式

NFC同时支持读写模式和卡模式。而在RFID中,读卡器和非接触卡是独立的两个实体,不能切换。

3.4. 点对点通信

NFC支持P2P模式,RFID不支持P2P模式。

3.5. 应用领域

RFID更多的应用在生产,物流,跟踪和资产管理上,而NFC则工作在门禁,公交卡,手机支付等领域。

3.6. 标准协议

NFC的底层通讯协议兼容高频RFID的底层通信标准,即兼容ISO14443/ISO15693标准。NFC技术还定义了比较完整的上层协议,如LLCP,NDEF和RTD等。综上,尽管NFC和RFID技术有区别,但是NFC技术,尤其是底层的通信技术是完全兼容高频RFID技术的。因此在高频RFID的应用领域中,同样可以使用NFC技术。

4、NFC卡片分类

NFC卡片主要分为两类,ID卡和IC卡,从名字可以知道,IC卡里面有专门处理卡片数据的芯片,ID卡主要用来给NFC读设备读取数据。

M1卡: 全称Mifare classic 1K,普通IC卡,0扇区不可修改,其他扇区可以反复擦写。通常我们使用的门禁卡、电梯卡都是M1卡。

M1卡是NXP(恩智浦半导体)公司研发的IC卡,执行标准是ISO/IEC14443 Type A,读写频率是13.56MHz。目前大多数手机厂商使用的NFC芯片都是NXP,另一部分则是BRCM(博通)方案,均执行同一标准,这是手机读写M1卡的技术基础。

UID卡: 普通复制卡,可以反复擦写所有扇区,门禁有防火墙则失效。

CUID: 升级复制卡,可以反复擦写所有扇区,可以穿透大部分防火墙。

FUID: 高级复制卡,0扇区只能写入一次,写入后变为M1卡。

UFUID: 超高级复制卡,0扇区只能写入一次,封卡后变为M1卡,不封卡变为UID卡。

复制卡均可在网上购买,有普通卡片、钥匙扣、滴胶卡等类型,CUID通常1.5元/张,越高级的卡越贵。


4.1、M1卡的结构

M1卡标准储存的数据使用16进制,简称HEX,即由0-9、A-F组成,也写作0xAA

4.1.1 存储结构

Mifare classic 1K,即存储容量1K=1024Byte,包括16个扇区,每个扇区含4个块,每个块16Byte.


第0扇区比较特殊,0区0块前8位为厂商UID码,可以理解为M1卡的识别码。

0-2块为储存内容区间。

3块为系统保留区间,用于存放卡密码和控制码,其中:

3块前12位为keyA(密码A),3块后12位为keyB(密码B),3块中间8位为控制码。

A/B密码的默认值为12个F或0,翻译为2进制即4*12个1或0

控制码默认值为FF078069,意思是A密码(非默认情况下)不可见,B密码可见,读写验证A密码。


4.1.2 读写权限

M1卡有4种主要权限:读、写、增量、减量。

以及2种附权限:读写控制码、读写A/B密码。

每种权限都要使用A或B密码、并在控制码约束下来操作。


基于M1卡的结构及读取权限特点,M1卡又可以分为非加密、半加密、全加密三种类型。

  • 非加密:16个扇区的A/B密码均使用默认值。

  • 半加密:0扇区外的某一个或多个数据扇区A/B密码不是默认值。

  • 全加密:所有扇区A/B密码不是默认值。(由于M1卡的加密逻辑已经被公开,所以所有的M1加密卡都可以被破解,破解能力PN532<PM3<COPY5)


5、防伪系统的原理和破解

常见的防伪系统有三种,

  • 一是加密型,通过对扇区进行加密实现防伪。单纯的加密型已经可以通过PN532、PM3等工具完成破解。

虽然卡A/B密码可以被破解,但真正破解的重头戏是在于如何找出卡信息的存储规律,从而进行自定义修改等操作。

  • 二是篡改型,刷卡时系统尝试写入0扇区,如果成功,则卡片作废(CUID特性,0扇区可反复擦写)。

  • 三是滚码型,每次刷卡,系统都从特定扇区读取验证一段校验码,并写入新的校验码。如果不能通过多次刷卡找到校验码的规律,则不可复制。

6、复制卡

支持NFC的手机可以模拟白卡,如果把可以使用的卡片数据读取出来,然后再写入到手机的卡片中,就可以完成卡片的复制。

比如正常的小区门禁卡,先用一个设备把小区门禁卡里面的数据读取出来,然后再写入手机生成的这张白卡中,就完成了卡片的复制。

但是也有问题,手机生成的白卡,并不是一定可以写入所有扇区的,我的小米手机就不行,0扇区有8个字节会一直保持不变。所以就不可能用我的小米手机来模拟门禁卡,但是天无绝人之路,可以购买那种贴纸大小的NFC卡贴,复制卡片后贴在手机上,同样可以完成这样的功能。

相反,邻居的华为手机却是可以的。

好了,就这些,欢迎指正!


推荐阅读:

专辑|Linux文章汇总

专辑|程序人生

专辑|C语言

我的知识小密圈

关注公众号,后台回复「1024」获取学习资料网盘链接。

欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466307.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序员的大梦想 与盖茨像哥们儿

小程序员的大梦想 与盖茨像哥们儿以10亿的天价转会新华都&#xff0c;让唐骏有机会开创其职业经理人生涯的新局面&#xff0c;但在此之前&#xff0c;他的成功已得到证明面前的唐骏温和得令人吃惊。仿佛“前微软中国区总裁”、“打工皇帝”、“10亿转会身价”这样的光环带给他的…

动态规划详解

个人见解&#xff1a;1.动态规划实现了把问题拆分成多个子问题&#xff0c;然后求解&#xff0c;子问题有解后&#xff0c;问题自然迎刃而解&#xff1b;2.动态规划实现了子问题的状态的迁移&#xff0c;保存每个状态值&#xff0c;递推出答案&#xff0c;但不记录每种状态的求…

学习阶段总结

学习阶段总结 这几天思考了很多东西&#xff0c;感觉很有必要总结一下学习的东西了。从起初进步大学到步入社会已经一年有余&#xff0c;在大学感觉学也学了&#xff0c;玩了玩了。所以不存在什么很大的遗憾。之前零零散散的也学了不少东西了&#xff0c;感觉有必要对自己做一…

我的奶奶

突然想起我奶奶&#xff0c;是突然发现&#xff0c;距离奶奶去世已经有快十年&#xff0c;这十年时间&#xff0c;我也再也没有见过奶奶。奶奶刚去世的前几年&#xff0c;有时候会梦到奶奶跟我说话&#xff0c;她总是会很耐心的告诉我很多道理。奶奶从小到大都没有指责过我&…

CPtrArray、CObArray类

CPtrArray https://baike.baidu.com/item/CPtrArray CObArray类 https://baike.baidu.com/item/CObArray CPtrArray类支持void指针数组。CPtrArray的成员函数类似于CObArray类的成员函数。 外文名 CPtrArray 支 持 void指针数组 成员函数 CObArray类的成员函数 操作符 …

WPF应用程序内存泄漏的一些原因

原文&#xff1a;Finding Memory Leaks in WPF-based applications There are numbers of blogs that folks wrote about memory leaks in Microsoft .Net Framework managed code and unmanaged code based applications. In this blog I wanted to: Show coding practices th…

[转]Eclipse RCP应用系统开发方法与实战2-- 定制应用程序窗口属性

5.1.4 定制应用程序窗口属性 向导生成的应用程序主界面并不能满足要求&#xff0c;存在很多问题&#xff0c;例如&#xff0c;主界面运行时没有自动居中&#xff0c;主界面大小没有固 定&#xff0c;主窗口标题栏文字应该是“高校经费测算系统”。再看看图5-3、图5-4的标题栏有…

bootloader启动流程分析

bootloader启动流程分析 1、Bootloader的概念和作用 Bootloader是嵌入式系统的引导加载程序&#xff0c;它是系统上电后运行的第一段程序。在完成对系统的初始化任务之后&#xff0c;它会将Flash中的Linux内核拷贝到 RAM 中去&#xff0c;跳转到内核的第一条指令处继续执行&…

赢在中国 - 史玉柱经典语录

1.要重视建立销售手册2.凡是先做试点&#xff0c;风险才低。3.找到自己的细分市场。4.不要总想着同竞争对手对立&#xff0c;而是要想办法让自己弥补竞争对手的不足。5. 如果没有价格上的优势与技术上的绝对优势&#xff0c;千万不要进入红海市场&#xff0c;否则你会必输无疑&…

Utility.cpp的函数

C 对文件夹的安全权限操作 https://blog.csdn.net/zipper9527/article/details/6256459 https://blog.csdn.net/sz76211822/article/details/73199181 ZeroMemory https://baike.baidu.com/item/ZeroMemory/961326?fraladdin GetComputerName https://baike.baidu.com/item/G…

类中调用界面ActiveX控件报错当前线程不在单线程单元中因此无法实例化 ActiveX 控件的解决办法...

解决办法是Form类中定义一个静态的ActiveX对象,在formload中将界面上的ActiveX对象赋值给新定义的对象,类中访问该静态对象即可. public static AxClientDriver_NTLib.AxClientDriverCtrl com new AxClientDriver_NTLib.AxClientDriverCtrl(); private void Form1_Load(object…

我最近在学微信小程序开发,一起吗?

从当初的一夜成名&#xff0c;到今天火爆的市场占有率&#xff0c;微信小程序已走过 4 个年头。据今年 1 月阿拉丁发布的报告显示&#xff0c;微信小程序 2020 年 DAU 已破 4 亿&#xff0c;其总数超 380 万。最近有读者问我说&#xff0c;发哥&#xff0c;之前自己一直是个人…

回数

回数是指从左到右读和从右到左读都是一样的数&#xff0c;请利用filter()滤掉非回数(打印出1000内所有回数) def is_palindrome(n): return str(n)str(n)[::-1] # str(n)[::-1]代表字符串从后往前读&#xff0c;也代表字符串的翻转 output filter(is_palindrome,range(1,10…

初始化COM库

初始化COM库 CoCreateInstance //在本机中只创建一个对象 https://baike.baidu.com/item/CoCreateInstance QueryInterface 客户可以通过此函数来查询某个组件是否支持某个特定的接口 https://baike.baidu.com/item/QueryInterface SetNotifyWindow //注册一个窗口来处理事件通…

WebService大讲堂之Axis2(2):复合类型数据的传递

在实际的应用中&#xff0c;不仅需要使用WebService来传递简单类型的数据&#xff0c;有时也需要传递更复杂的数据&#xff0c;这些数据可以被称为复合类型的数据。数组与类&#xff08;接口&#xff09;是比较常用的复合类型。在Axis2中可以直接使用将WebService方法的参数或返…

Linux虚拟摄像头vivid配置

总述最近在看摄像头驱动&#xff0c;需要配置虚拟摄像头的驱动&#xff0c;但是教程里面是linux2.6内核的&#xff0c;实际电脑的是Ubuntu16&#xff0c;内核是linux4.15版本&#xff0c;从2.6到4.15内核好多文件发生了变化&#xff0c;所以我们该怎么操作呢&#xff1f;下面就…

第一次工作报告

要求 1. 对源文件&#xff08;*.txt,*.cpp,*.h,*.cs,*.html,*.js,*.java,*.py,*.php等&#xff09;统计字符数、单词数、行数、词频&#xff0c;统计结果以指定格式输出到默认文件中&#xff0c;以及其他扩展功能&#xff0c;并能够快速地处理多个文件。 2. 使用性能…

TQ210——S5PV210 uboot顶层mkconfig分析

################################################################################################# # SHELL常用内部参数&#xff1a;   # $# —— 传递给程序的总的参数数目 # $? —— 上一个代码或者shell程序在shell中退出的情况&#xff0c;如果正常退出则返回0&am…

音频系统底层API

IAudioEndpointVolume IAudioEndpointVolume接口表示进出音频端点设备的音频流的音量控制。 客户端通过调用参数iid设置为REFIID IID_IAudioEndpointVolume的IMMDevice :: Activate方法获取对端点设备的IAudioEndpointVolume接口的引用。 IAudioEndpointVolume编程调节Win7/Wi…

早睡早起

这两天考虑着以前工作的一些问题。有一点非常需要改正。就是作息时间不规律。经常睡的很晚。把前两年锻炼身体的老本吃的差不多了。该是“存钱”的时候了。新的工作依旧很繁忙&#xff0c;事情很多&#xff0c;但是身体调整绝对不能放松的。所以还是决定从明天开始早起&#xf…