RFID 卡片防复制

这里的卡指的 MIFARE Classic 系列 或 NTAG 系列的卡。其它的卡没接触过,不了解。

防伪有两层意义:

  1. 卡片防复制。比如小区卡被复制,使得出入小区的人员管理更困难了。这是需要防范的事情
  2. 卡片数据被破解。比如公交卡或食堂饭卡,如果破解了其中的数据,就可以篡改金额。

复制会产生盗刷问题,需要在第一层解决。而卡内数据加密是应用层的工作,方式方法多种多样。

这里讨论卡片防复制,以小区卡为场景。

只使用卡UID系统

这种就是没有加密了。把卡当作 ID 卡来用。

复制方法:

读出原卡 UID。 找一张可以擦写 UID 的特殊卡,写入 UID。

一般从厂商出来的卡片第0扇区第0块不可写,在这块中存储UID和厂商信息。但是块0可重复擦写的卡也可以找到,只是对于普通人稍微有点难度而已。

对于小区卡来,被复制会带来隐患,比如:

用户可以随意复制卡,卡片最后流通就不一定是小区的住户了。
如果被小区以外的人有一张复制卡,则可随意进出小区,带来安全隐患

使用卡中的数据,且数据被加密,加密使用 UID 作因子

因为不再只使用 UID,这样系统设计时可以把用户权限写在卡里,从而不需要向门禁设备里同步了。

用法稍微高级一点。卡中的数据别人看不懂,但并没有加大卡片被复制的难度。

复制方法同上:

读出原卡所有数据。 找一张可以擦写 UID 的特殊卡,写入包括 UID 在内的所有数据。

别人无法破解卡中的数据,但还是有方法复制一张卡

在上一步基础上,使用卡片本身的加密方法

  1. MIFARE CLASSIC 系统的卡,每个扇区都是独立加密的。需要 KEYA, KEYB 校验正确才能读
  2. NTAG 系列的卡,有一个 32 bits 的 password 功能。可以配置成通过密码验证之后才允许读

以 NTAG 为例。

每张卡有 32 bits 的密码,只可校验,读出只能得到 0。
在发卡时,以 UID 再组合特定的密钥因子,为这张卡生成 32 bits 的 password。
每张卡的密码不同,密码不能复制,密码校验不通过就不能读卡。

在这种机制下,想复制一张卡的难度就进一步加大了。

结论

  1. 结合卡 UID 对数据加密,提高复制成本
  2. 使用卡片的加密功能,防复制

参考文章

RFID安全技术探讨
RFID的安全与隐私
NFC标签如何实现防伪?

RFID 卡片防复制的更多相关文章

  1. [No000080]右键解锁增强Chrome插件开发,破除防复制

    昨天用360极速(虽然我不喜欢360.)浏览器,登陆知乎查阅一些东西,突然感觉有些观点很赞同,想copy转载一下,我了个去,它丫的居然不让我复制. 地址:https://www.zhihu.com/q ...

  2. 微信浏览器返回刷新,监听微信浏览器返回事件,网页防复制,移动端禁止图片长按和vivo手机点击img标签放大图片

    以下代码都经过iphone7,华为MT7 ,谷歌浏览器,微信开发者工具,PC端微信验证.如有bug,还请在评论区留言. demo链接:https://pan.baidu.com/s/1c35mbjM ...

  3. 360个人图书馆 轻松解除网页防复制 (转自老D)

    360个人图书馆会自动采集一些比较好的文章,我的博客文章也被采集过几篇,用过360个人图书馆的人都知道要复制别人的文章需要先收藏到自己的图书馆才可以复制,没有账号右键复制它会直接弹出一个提示登录框.不 ...

  4. 低成本安全硬件(二):RFID on PN532

    引言 鉴于硬件安全对于大多数新人是较少接触的,而这方面又非常吸引我,但是部分专业安全研究设备较高的价格使人望而却步.在该系列中,笔者希望对此感兴趣的读者在花费较少金钱的情况下体会到硬件安全的魅力所在. ...

  5. 一次蜿蜒曲折的RFID破解之路

    前言 早一段时间看到一篇看雪论坛关于逻辑嗅探破解接触式IC卡口令的文章,激起鄙人对rfid的兴趣.遂准备拿学校的卡一展身手. 0×00 前期准备 经过初步了解,学校的rfid卡片分为两种.校园卡采用M ...

  6. wordpress怎么禁止文章复制

    登陆你的网站后台--点击菜单栏的"外观"--点击"编辑"--在右侧,找到footer.php,打开它--在</body>之前加入以下代码: 1.禁止 ...

  7. 前端er怎样操作剪切复制以及禁止复制+破解等

    前言 有时候我们经常会碰到这些场景:玩掘金.知乎的时候复制一段文字,总是会在内容后面加上一些版权信息,以及像小说网站等都有禁止选中,禁止复制这种功能,还有点击自动复制账号的功能. 我也经常遇到这些场景 ...

  8. LEANGOO卡片

    转自:https://www.leangoo.com/leangoo_guide/leangoo_cards.html#toggle-id-10 Leangoo的卡片可以是需求.目标.任务.问题.缺陷 ...

  9. PSAM 卡的应用操作方法

    PSAM 卡的应用        PSAM 功能 终端安全存储模块        PASM  常用于 脱机交易的 安全认证        脱机交易的流程          1.卡片对持卡人的认证(防止 ...

随机推荐

  1. BZOJ-1798 维护序列

    线段树.支持区间加.区间乘.区间查询和. 标记下移还有取模要注意. var n,p,q,i,s,t:longint; a:int64; num,n1,n2,n3:array[0..500000] of ...

  2. log4j.xml——java日志处理组件配置简介

    (从一篇好文开始)log4j(一)——为什么要用log4j? 三:看完栗子后的感想 (1)很明显我们在编写代码的时候有各种需要打印日志的需求,比如:我们调试代码的时候:我们的应用出现了问题,我们分析. ...

  3. 学习的一些mybatis

    MyBatis入门基础(一) 阅读目录 一:对原生态JDBC问题的总结 二:MyBatis框架 三:mybatis入门程序 四:mybatis和Hibernate的本质区别与应用场景 五:小结 回到顶 ...

  4. Django AUTHENTICATION_BACKENDS

    指定认证后端 Django维护一个”authentication backends”的列表用来测试认证.当调用 django.contrib.auth.authenticate() — Django将 ...

  5. AC日记——Number Sequence hdu 1711

    Number Sequence Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  6. css-通过css让块显示或隐藏

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Codeforces 919 C. Seat Arrangements

    C. Seat Arrangements   time limit per test 1 second memory limit per test 256 megabytes input standa ...

  8. free如何知道释放内存长度:vs与glibc分配内存时编译器内部处理

    鉴于网上这个资料实在太少,将以前整理过却未完全的一篇文章贴出来,希望大牛指正vs下内存管理方式.可联系gaoshiqiang1987@163.com vs分配内存 vs没有源码,编译器在分配内存时,分 ...

  9. 3.4 熟练掌握动态规划——状态压缩DP

    从旅行商问题说起—— 给定一个图,n个节点(n<=15),求从a节点出发,经历每个节点仅一次,最后回到a,需要的最短时间. 分析: 设定状态S代表当前已经走过的城市的集合,显然,S<=(1 ...

  10. hadoop之hdfs------------------FileSystem及其源码分析

    FileSystem及其源码分析 FileSystem这个抽象类提供了丰富的方法用于对文件系统的操作,包括上传.下载.删除.创建等.这里多说的文件系统通常指的是HDFS(DistributedFile ...