zoukankan      html  css  js  c++  java
  • RFID 卡片防复制

    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标签如何实现防伪?

  • 相关阅读:
    ans Single VIP LLB and SLB config
    Kindle支持文档类型
    RFC2544测试指标
    C#中equal与==的区别
    COGS 144. [USACO Dec07] 魅力手镯【01背包复习】
    我的第六个网页制作:table标签
    我的第五个网页制作:pre、html转义、abbr标签的使用
    我的第四个网页制作:列表标签
    我的第三个网页制作:b、i、s、u、sub、sup标签的使用
    我的第二个网页制作:p,hn,br标签的使用
  • 原文地址:https://www.cnblogs.com/sammei/p/RFID-ka-pian-fang-fu-zhi.html
Copyright © 2011-2022 走看看