使用Mifare卡加密数据 笔记

Mifare 是最常用的射频卡,具体介绍网上太多,我就不说了.,很多城市的最早的地铁公交卡都是用这种卡,后来被破解后都换成智能卡了. 但是由于技术成熟,使用方便,成本低,现在很多小区门禁卡,停车卡,食堂饭卡,包括很多医院的就诊卡都用的这种卡.


简单介绍下,一张卡就好像一张白纸,S50有16个分区,每一个分区可以设置单独的两个密码KeyA和KeyB. 而KeyA是永远不能读的, KeyB在默认情况下是可以读到的. .(简单可以这样理解, 注意,每个扇区可以设置KeyA和KeyB独立的访问条件)

而分区1比较特殊,分区1的第一段写着卡的硬件ID,这个是出厂时就写进去了,不能更改,并且全球唯一(当然这只是约定). 淘宝上有UID白卡, 这种卡可以给分区1写入任意的硬件ID.

08年的时候,发现卡漏洞,这种卡已经很容易被破解, 网上买个读卡器 ACCR122U (一百多)就可以破解. 大概的破解原理是因为这种卡不能产生随机数.而用上位机控制随机数的产生来破解.. 但是如果是全扇区加密的卡(就是16个分区都加密) ,那么需要使用Proxmark破解,淘宝居然二三百..

推荐软件 (mifare classic tool) 这个软件使用Android也可以破解, 使用的是穷举方式. https://github.com/ikarus23/MifareClassicTool


问题: 既然这种卡已经被破解,也就是写什么别人也能看得到,但是我们还必须用这种卡,那么我们如何存储数据并且防止被破解?

设计要求: 我们是一家连锁店,,使用mifare卡作为用户标识卡... 1, 防止更改卡内数据(如卡号,信息等) 2, 防止卡被复制. 3,防止第三方制作卡(我们的系统以后可能会有加盟商,不能让加盟商自己私自买新卡用我们的系统.,需要通过我们这里制作.) 4,保证稳定,快速的读取,并且易于量产加密重置等.(需要单独写一个卡批量加密工具,用于量产.)

网上大都是Mifare的介绍或者如何破解等...不知道别人是如何设计的... 所以在这里写一下自己的思路..

卡内只保存卡号, 不保存任何金额等其他信息.要求与实体卡上印的卡号一致.

将卡号加密后,存储到指定分区M中,并且设置分区密码为固定密码 MA 和 MB.. 根据卡号(+硬件ID) 生成对应卡号的校验数据K.(或者根据算法生成). 使用固定密码 NA 作为密匙A, 读取卡硬件ID,使用加密算法 Fun(ID) 计算出16位密码NB.

将校验数据K存入分区N中,并且使用NA和NB作为分区密码..

将其他分区使用固定的密码全部填入随机的垃圾数据, 写卡完成..

读卡时,只使用密码B读取,(只给客户端下发KeyB的密码,更安全.) 使用密码MB读取分区M ,获取卡号, 读取硬件ID,计算校验分区N的密码NB.读取校验信息. (根据情况操作,可在客户端确认,如何客户端不可信,需要在服务端确认..)获取校验信息,通过服务端确认卡校验信息是否有效,或者通过服务端解密卡ID..

总结: 虽软卡硬件被破解了,写什么都看得见..当然完全可以通过软件算法来防止卡被进一步破解更改数据... 卡上写的信息越少越安全,只在卡上写卡号,不储存用户信息金额等.

当然校验信息需要和校验每张卡独有的硬件ID绑定.来防止卡被复制.. 但是网上有可写UID的白卡,就是可以在不破解算法的情况下完全复制..(我们小区的门禁卡我就复制了好几张,不然去物业办一张十块.) 这个时候只能人为的控制,比如消费或者退卡的时候,前台需要确认卡上的标识,或者确认人员信息等. (有的医院退卡需要缴费清单)

这个用了不到两个星期来设计并完成.目前已经稳定工作了两年,写了大概十几万张卡.. 中途碰到过公司采购一批小厂商生产的垃圾卡,上万张卡的KeyB坏掉了,不能读取..只能通过改程序来兼容..

写出来做个笔记, 只是不晓得别人是怎么设计的....

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python爬虫与算法进阶

说说最近遇到的反爬

参数加密指的是在请求中需要加上类似token、uuid 字段,例如在某个请求中query string parameters中有_token和uuid、cust...

1583
来自专栏FreeBuf

市面上多种流行的固态硬盘产品存在硬盘加密机制绕过漏洞

近期,荷兰奈梅亨拉德堡德大学研究人员发现,市面上多种流行的固态硬盘( SSD drive)存在加密机制可绕过漏洞,无需密码即可绕过硬盘加密措施,从而获取到硬盘中...

1203
来自专栏FreeBuf

一个登陆框引起的血案

客户给的测试范围,或者挖众测时,很多时候都只有一个简单的登陆框,想起当初的苦逼的我,只能去测测爆破弱口令,而且还是指定用户名爆破密码这种,当真是苦不堪言;

1500
来自专栏FreeBuf

安全研究 | 传真机的攻击面研究报告

大家一听到“传真机”这三个字,肯定觉得这种设备离自己非常远。但实际上,现在很多办公室里仍然存在着这种“远古”设备,而且在商业和法律通信等领域内仍处于广泛使用中。...

1614
来自专栏后端之路

非越狱ios无需appstore审核安装ipa

个人开发ipa无需发布到appstore即可下载使用。 1.选择https服务器(需要有服务商颁布的https证书) 1.1通常使用startssl申请(免费)...

3306
来自专栏FreeBuf

从一条微博揭秘“专黑大V名人”的定向攻击

前言 本月初微博上有知名大V晒出一封私信截图,私信是以某记者名义发出,要求采访该大V博主,并提供了一个网盘链接作为“采访提纲”。当博主下载网盘中存放的所谓“采访...

19310
来自专栏Android群英传

Android核心破解原理详解

1755
来自专栏FreeBuf

深入解读MS14-068漏洞:微软精心策划的后门?

0x0 背景 初次认识该漏洞是在FreeBuf上对该漏洞的预警《漏洞预警:系统权限提升漏洞(CVE-2014-6324)影响全版本Windows服务器》: 微软...

2178
来自专栏FreeBuf

利用USB橡皮鸭在目标机器上启动Empire或Meterpreter会话

今天我将教大家如何使用Rubber Ducky在渗透中建立Empire或Meterpreter会话连接。然而对于Ducky而言,想要完成大多数现实场景中的USB...

3737
来自专栏企鹅号快讯

站长须知:HTTP迁移HTTPS时,如何避免发生重复内容问题

目前,网络传输协议已逐步倾向于HTTPS加密协议。而HTTP升级到HTTPS的方法并不难,只需部署一张SSL证书即可,其安装方法并不难。具体系统安装SSL证书方...

2277

扫码关注云+社区