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. 浅谈android反调试之 签名校验

    反调试原理 很多时候,我们都需要进行修改修改应用程序的指令,然后重打包运行,重新打包就需要充签名. 利用签名的变化我们用于反调试.反调试实现代码如下: 为了更加隐藏,比较函数可能在SO层进行实现,如下 ...

  2. Linux内核解析之标准I/O库

    当Linux创建一个进程时,会自动创建3个文件描述符0,1,2,分别对应标准输入,标准输出,错误输出.C库中与文件描述符对应的是文件指针.查看C库头文件stdio.h中的源码 typedef stru ...

  3. 五、 java中数组

    定义数组的两种方式 class myarray1 { public static void main(String[] args) { //1.如何定义一个数组 //1.1数组的声明 String[] ...

  4. 获取当前网络中的电脑数目及MAC-通过MAC查找IP-通过IP查询机器名

    Microsoft Windows [版本 ] 版权所有 (c) Microsoft Corporation.保留所有权利. C:\Users\Administrator>netsh netsh ...

  5. C#知识点总结:Monitor和Lock以及区别

    Monitor对象 1.Monitor.Enter(object)方法是获取锁,Monitor.Exit(object)方法是释放锁,这就是Monitor最常用的两个方法,当然在使用过程中为了避免获取 ...

  6. HOJ - 2715最小费用流

    国庆八天乐,刷题也快乐. HOJ崩了,但是VJ可以把题目挂出来. 题目链接:https://vjudge.net/contest/188441#problem/A 涉及到矩阵里面的网络流,化为图来做. ...

  7. [Inside HotSpot] UseParallelGC和UseParallelOldGC的区别

    JVM的很多参数命名很有迷惑性,-XX:+UseParallel,-XX:+UseParallelOldGC,-XX:+UseParNewGC,-XX:+UseConcMarkSweepGC咋一看容易 ...

  8. Oracle内部latch获取函数简介

      标签: oracle call 函数   oracle statpack   转自: http://blog.51cto.com/458302/998775 Oracle的内部函数一直非常神秘,其 ...

  9. tomcat访问(access)日志配置、记录Post请求参数

    tomcat访问(access)日志配置.记录Post请求参数 一.配置与说明 tomcat访问日志格式配置,在config/server.xml里Host标签下加上 <Valve classN ...

  10. JavaEETest

    原文:https://github.com/lenve/JavaEETest