以下观点仅代表个人本人观点,有异议请留言,欢迎讨论。
在工作中经常遇到IC卡、ID卡、M1卡和CPU卡,一直很疑惑他们有什么联系和区别,现在把我认为的理解整理一下,以便于以后又模糊了提醒自己(当然也有可能不对,只代表本人观点)。
由于在工作中我基本上目前接触到的卡都是非接触式的,所以这里我只谈一下非接触式的卡片(当然接触式的也属于IC卡的一种)。非接触式卡又叫射频卡或RF卡,它主要靠里面的射频模块与读卡器进行近场通信,它的供电来源是自身的感应线圈通过电磁感应供电。
我的理解中,把现在的卡片划分为IC卡和ID卡两种。为什么呢?主要是以可不可以操作进行的区分,IC卡可以看成是所有智能卡的统称,包含接触式和非接触式都可以叫IC卡,它可以通过一系列的加解密算法进行数据的读写;而ID卡只包括一个卡号,并且它是厂家在出厂前就已经固定好了的,所以它只能读不能写,并且读也只能读到卡号,不具备加密功能,也不具备数据存储功能。
由于IC卡是智能卡的统称,所以我认为M1卡和CPU卡应该也属于IC卡的一种。
M1卡我目前接触到的有两种,一种叫S50卡一种叫S70卡,它们内部数据结构相似,容量固定,有唯一序列号也叫SN号,以块为单位存取数据。每个扇区都有独立的密码块,分A/B密码,每个密码占6个字节,中间4个字节为控制单元,控制单元决定此扇区每个块是否有读或写权限。由于M1卡密码固定,且长度固定,所以只要知道密码就可以读写除卡号处的所有数据,安全性不高,容易被暴力破解,并且专门工具也可以通过截取双方交互过程获取密码,进而复制卡片对使用人员造成损失。一般用于对安全性要求不高的场所,比如门禁、停车场、考勤等。
- S50卡:容量1024字节(8Kbit),分成16个扇区,每个扇区为4块,每个块有16个字节。
- S70卡:容量4096字节(32Kbit),分成了40个扇区,每个扇区并非均等划分。前32个扇区,每个扇区为4块,每个块有16个字节;后8个扇区,每个扇区为16块,每个块有16个字节。
CPU卡也是目前用的比较多的卡片。它有自己的操作系统COS,有随机发生器,有硬件加密算法。它的认证是双方每次发送一串由加密算法计算出的数据到对方,对方解密后再次生成一串给对方由对方解密,只有解密结果是双方认可的才能进行下一步操作,否则系统会拒绝执行命令。由于密码每次是算法生成的,所以不论哪一方,在认证瞬间是无法知道密码的,相对来说会比M1卡更安全、更高级。目前CPU卡用的比较多的地方有金融领域、身份证、护照等安全需求高的地方。
CPU卡安全性能比M1卡高很多,相应的价格也要高很多,不过随着技术的进步,人们对安全的要求越来越高,估计在以后的将来所有公众都有可能换成CPU卡。