射频识别技术漫谈(15)——Mifare1的安全性及7字节序列号M1卡【worlsing笔记】
Mifare1的安全性主要指卡中数据的安全性,要求卡中的数据不能被非法修改或窃听。数据的安全性主要使用加密技术来保证,加密技术有两个关键因素:加密算法和密钥。现代加密技术的一大特点是加密算法公开,如果加密密钥和解密密钥相同,则称为对称加密,密钥不能公开;如果加密和解密密钥不同,则可以公开其中一个密钥(公钥),另一个不公开(私钥)。加密破解的实质就是如何获得不公开的密钥。
Mifare1中使用了一种称为“crypto1”的加密算法。遗憾的是,这是一种不公开的私有算法。就本人目前所知,这种算法先在卡片与读写器之间进行三次相互认证,认证成功才能进行对卡片的读、写、加值、减值等后续操作,这些操作使用“crypto1”加密流。三次认证的原理与步骤我们是清楚的,但具体采用了什么算法却不得而知,可以确定的是,认证过程中使用了4字节卡序列号、6字节密码和1字节数据块号。
不公开的好处是卡片市场的排他性,而且过去的事实已经证明,NXP的这种做法在市场上取得了巨大的成功。不公开算法的潜在危害也同样显而易见,这种没有经过黑客们攻击考验的加密算法,它的市场应用是如此的大,一旦算法被破解,所有使用这种卡片的应用都将受到威胁。
不幸的是,自2007年以来,Mifare Classic芯片逐步被破解。国外已经有高手,即使在不需要使用合法读卡器的情况下,一种新的攻击能够在300次查询内获得任意扇区的密钥;如果使用合法读卡器,另外一种攻击获得密钥仅需要40毫秒。而且网上已经有“crypto1”的原理图及相关破解源代码。
面对M1卡片这些现实的风险,作为用户应该怎么办呢?其实也大可不必惊慌。任何一种安全算法都不会是100%安全的,任何一种算法都有一种叫做“穷举”的方法可以破解它。一方面“crypto1”虽然被破解,但通常需要一定的破解硬件设备,并要求破解者有一定的专业水平;另一方面对于多数小金额应用的卡片来说,破解的风险与收益也是破解者必须考虑的因素;更重要的是,我们不能一棵树上吊死,可以采取其他的方法协助“crypto1”算法用于防破解,比如一卡一密、对M1卡进行升级、将M1卡联网使用等。
Mifare1的应用如此广泛,而当初设计时它的序列号只有4个字节,为了保证卡序列号的全球唯一性,所有的卡号都占满了也就能生产40多亿张,这样的容量很难满足日益增长的对Mifare1的庞大需求,于是市场上开始出现7字节序列号的M1卡。用户在使用这些7字节M1卡片时会经常会遇到一种现象,就是各个厂家生产的7字节M1卡片有时差异巨大,读写器无法兼容。
出现这种情况主要有两个原因。一是经典M1卡片只有4字节卡序列号,只需要一个层次(cascade)的防冲突循环就可以选中卡片;而7字节序列号的M1卡片需要两个层次的防冲突循环才能选中卡片。但是有些卡片并不需要第二层的防冲突循环,如果进行了第二层的防冲突循环反而会出错。
另一个问题出在卡认证阶段。前面说了,卡认证需要4字节卡序列号、6字节密码和1字节数据块号参加。但是新卡片有7字节卡序列号,到底让哪4个字节参加认证呢?目前主要有3种情况,一是使用88H和卡号的前3个字节(也就是第一层防冲突得到的卡序列号数据)参加认证,第二种情况是使用卡号前4个字节参加认证,最后一种情况是使用卡号的后4个字节(也就是第二层防冲突得到的卡序列号数据)参加认证。
所以对于读写器的开发者来说如果你的读写器不能读取7字节卡序列号的M1卡片,可以从是否需要第二层防冲突选择和到底哪4个字节的序列号参加认证两个方面考虑。
本文来自新浪网
射频识别技术漫谈(15)——Mifare1的安全性及7字节序列号M1卡【worlsing笔记】的更多相关文章
- 射频识别技术漫谈(15)——Mifare1的安全性及7字节序列号M1卡
Mifare1的安全性主要指卡中数据的安全性,要求卡中的数据不能被非法修改或窃听.数据的安全性主要使用加密技术来保证,加密技术有两个关键因素:加密算法和密钥.现代加密技术的一大特点是加密算法公开,如果 ...
- 射频识别技术漫谈(10)——识别号的格式变化【worldsing笔记】
从事RDID行业的朋友经常会遇到这样的情况,同一张ID卡,在不同厂家生产的读卡器上读出的识别号完全不一样,有时甚至差之千里.ID卡的识别号一般是在出厂时被固化在卡片的ROM里,本身是不会改变的,问题出 ...
- 射频识别技术漫谈(1)——概念、分类
现代社会智能卡已经渗透到生活的方方面面,公交卡.考勤卡.身份证.手机卡等等数不胜数. 智能卡按使用时是否和读卡器接触可分为接触式智能卡和非接触式智能卡,接触式智能卡上有6-8个触点,使用时插在卡 ...
- 射频识别技术漫谈(23)——ISO15693的载波、调制与编码
射频识别技术中的通讯大多是主从式,主动方一般是读写器,被动方称为“卡片”或“标签”.到底是叫“卡片”还是“标签”,好像也没有严格的区分.习惯上可以从以下4个方面界定:一是形状,卡片通常体积较大,更像“ ...
- 射频识别技术漫谈(6)——通讯协议概述【worldsing笔记】
通讯协议是通讯的双方或多方在交流时遵守的规矩,包括谁先发起通讯,先交流什么,后交流什么,一方如何问,另一方如何答等.在这里通迅的双方指的是读写器和卡片. 首先是谁先发起通讯,很显然有两种,读写器先发言 ...
- 射频识别技术漫谈(4)——数据编码【worldsing 笔记】
前已述及,射频识别技术中的调制方法一般使用调幅(AM),也就是将有用信号调制在载波的幅度上传送出去.这里的"有用信号"指用高低电平表示的数据"0"或" ...
- 射频识别技术漫谈(3)——能量、调制【worldsing 笔记】
无源和免接触是非接触式IC卡相对于接触式IC卡的两大特点.无源是指卡片上没有电源,免接触是指对卡片的读写操作不必和读写器接触.非接触式智能卡也是IC卡,而卡上的IC即集成电路工作时肯定是需要电源的,卡 ...
- 射频识别技术漫谈(28)——基于MF1射频卡的酒店门锁设计
电子门锁是现代星级酒店管理电子化.智能化的重要电子设备.相较于传统的机械锁,基于RFID技术的电子门锁使用方便,易于管理,安全性高,可实现对开锁用户的分优先级自动管理,对房间入住信息实现自动统计与报表 ...
- 射频识别技术漫谈(27)——CPU卡概述
智能卡按安全级别可以分为三类:存储器卡.逻辑加密卡和CPU卡,其中CPU卡是安全级别最高的.从“CPU”这个名字可以看出,CPU卡最大的特点就是卡片里面有一个"CPU",有了CPU ...
随机推荐
- http://jingyan.baidu.com/article/a378c960630e61b329283045.html
http://jingyan.baidu.com/article/a378c960630e61b329283045.html
- cocos2d-x 多分辨率适配详解(转载),以前北京团队设计的游戏,也是用这套方案
http://blog.csdn.net/kyo7552/article/details/17163487 多种分辨率的适配一直都是一个蛋疼的问题,各家公司可能都有自己的一套方案.今天我为大家介绍的是 ...
- 【HDOJ】4345 Permutation
即求P1^n1+P2^n2 + ... + Pk^nk <= n,其中Pk为素数的所有可能组合.思路是DP.1~1000的素数就不到200个.dp[i][j]表示上式和不超过且当前最小素数为P[ ...
- poj3034Whac-a-Mole(dp)
链接 状态转移好想 不过有坑 大家都犯的错误 我也会犯 很正常 就是锤子可以移到n*n以外 要命的是我只加了5 以为最多不会超过5 WA了N久 才想到 上下两方向都可以到5 所以最多加10 以时 ...
- bzoj1084: [SCOI2005]最大子矩阵
dp.状态转移方程在代码里 #include<cstdio> #include<algorithm> #include<cstring> using namespa ...
- .NET下文本相似度算法余弦定理和SimHash浅析及应用
余弦相似性 原理:首先我们先把两段文本分词,列出来所有单词,其次我们计算每个词语的词频,最后把词语转换为向量,这样我们就只需要计算两个向量的相似程度. 我们简单表述如下 文本1:我/爱/北京/ ...
- ↗☻【HTML5秘籍 #BOOK#】第4章 Web表单
from元素用于组织所有表单部件,负责告诉浏览器把数据提交到哪里,方法是在action属性中提供一个URL.假如你只想在客户端使用JavaScript操作表单,那么只要在action属性中指定一个#即 ...
- hdu 1712 ACboy needs your help
ACboy needs your help Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- RMAN数据库异机迁移
本文讲述如何用rman将一个库迁移到另一个服务器上. 服务器A:linux es4 + oracle9204 (源)服务器B:linux es4 + oracle9204 (目标) 一.创建目录 为了 ...
- Serv-U软件在64位操作系统下使用不了odbc解决方法
这是因为64位Windows上有两个ODBC连接,你需要创建一个32位的ODBC连接.打开32位ODBC管理器的位置 X:\Windows\syswow64\odbcad32.exe. 利用这个管理器 ...