一、 技术方面(非接触式IC卡) 
  1、 逻辑加密卡又叫存储卡,卡内的集成电路具有加密逻辑和EEPROM(电可擦除可编程只读存储器)。 
  2、 CPU卡又叫智能卡,卡内的集成电路包括中央处理器(CPU)、EEPROM、随机存储器(ROM)、以及固化在只读存储器(ROM)中的片内操作系统(COS),有的卡内芯片还集成了加密运算协处理器以提高安全性和工作速度,使其技术指标远远高于逻辑加密卡。

  3、 CPU卡由于具有微处理功能,使得在交易速度以及数据干扰方面远远高于逻辑加密卡,且允许多张卡片同时操作,具有防冲突机制。 
  4、 两者在技术方面的最大区别在于:CPU卡是一种具有微处理芯片的IC卡,可执行加密运算和其它操作,存储容量较大,能应用于不同的系统;逻辑加密卡是一种单一的存储卡,主要特点是内部有只读存储器,但存储容量较CPU卡小,使其在用途方面没有扩展性。

  二、 保密方面(非接触式IC卡) 
  1、 逻辑加密卡具有防止对卡中信息随意改写功能的存储IC卡,当对加密卡进行操作时必须首先核对卡中密码,只有核对正确,卡中送出一串正确的应答信号时,才能对卡进行正确的操作,但由于只进行一次认证,且无其它的安全保护措施,容易导致密码的泄露和伪卡的产生,其安全性能很低。 
  2、 由于CPU卡中有微处理机和IC卡操作系统(COS),当CPU卡进行操作时,可进行加密和解密算法(算法和密码都不易破解),用户和IC卡系统之间需要进行多次的相互密码认证(且速度极快),提高了系统的安全性能,对于防止伪卡的产生有很好的效果。 综上所述,对于逻辑加密卡和CPU卡来说,CPU卡不仅具有逻辑加密卡的所有功能,更具有逻辑加密卡所不具备的高安全性、灵活性以及支持与应用扩展等优良性能,也是今后IC卡发展的主要趋势和方向。

  三、 CPU卡安全系统与逻辑加密系统的比较 
  众所周知,密钥管理系统(Key Management System),也简称KMS,是IC项目安全的核心。如何进行密钥的安全管理,贯穿着IC卡应用的整个生命周期。

  1、 非接触逻辑加密卡的安全认证,依赖于每个扇区独立的KEYA和KEYB的校验,可以通过扇区控制字对KEYA和KEYB的不同安全组合,实现扇区数据的读写安全控制。非接触逻辑加密卡的个人化也比较简单,主要包括数据和各扇区KEYA、KEYB的更新,在期间所有敏感数据包括KEYA和KEYB都是直接以明文的形式更新。由于KEYA和KEYB的校验机制,只能解决卡片对终端的认证,而无法解决终端对卡片的认证,即我们俗称的“伪卡”的风险。接触逻辑加密卡,即密钥就是一个预先设定的确定数,无论用什么方法计算密钥,最后就一定要和原先写入的数一致,就可以对被保护的数据进行读写操作。因此无论是一卡一密的系统还是统一密码的系统,经过破解就可以实现对非接触逻辑加密卡的解密。很多人认为只要是采用了一卡一密、实时在线系统或非接触逻辑加密卡的ID号就能避免密钥被解密,其实,非接触逻辑加密卡被解密就意味着M1卡可以被复制,使用在线系统尽可以避免被非法充值,但是不能保证非法消费,即复制一张一样ID号的M1卡,就可以进行非法消费。现在的技术使用FPGA就可以完全复制。基于这个原理,M1的门禁卡也是不安全的。目前国内80%的门禁产品均是采用原始IC卡的ID号或ID卡的ID号去做门禁卡,根本没有去进行加密认证或开发专用的密钥,其安全隐患远远比Mifare卡的破解更危险,非法破解的人士只需采用的是专业的技术手段就可以完成破解过程,导致目前国内大多数门禁产品都不具备安全性原因之一,是因为早期门禁产品的设计理论是从国外引进过来的,国内大部分厂家长期以来延用国外做法,采用ID和IC卡的只读特性进行身份识别使用,很少关注卡与机具间的加密认证,缺少钥匙体系的设计;而ID卡是很容易可复制的载体,导致所有的门禁很容易几乎可以在瞬间被破解复制;这才是我们国内安防市场最大的灾难。

  2、 非接触CPU卡智能卡与非接触逻辑加密卡相比,拥有独立的CPU处理器和芯片操作系统,所以可以更灵活的支持各种不同的应用需求,更安全的设计交易流程。但同时,与非接触逻辑加密卡系统相比,非接触CPU卡智能卡的系统显得更为复杂,需要进行更多的系统改造,比如密钥管理、交易流程、PSAM卡以及卡片个人化等。密钥通常分为充值密钥(ISAM卡),减值密钥(PSAM卡),外部认证密钥(SAM卡)和全能密钥(ASAM卡)。非接触CPU卡智能卡可以通过内外部认证的机制,例如像建设部定义的电子钱包的交易流程,高可靠的满足不同的业务流程对安全和密钥管理的需求。对电子钱包圈存可以使用圈存密钥,消费可以使用消费密钥,清算可以使用TAC密钥,更新数据可以使用卡片应用维护密钥,卡片个人化过程中可以使用卡片传输密钥、卡片主控密钥、应用主控密钥等,真正做到一钥一用。

  CPU卡加密算法和随机数发生器与安装在读写设备中的密钥认证卡(SAM卡)相互发送认证的随机数,可以实现以下功能: 
1) 通过终端设备上SAM卡实现对卡的认证

2) CPU卡与终端设备上的SAM卡的相互认证,实现对卡终端的认证

3) 通过ISAM卡对CPU卡进行充值操作,实现安全的储值

4) 通过PSAM卡对CPU卡进行减值操作,实现安全的扣款

5) 在终端设备与CPU卡中传输的数据是加密传输

6) 通过对CPU卡发送给SAM卡的MAC1,SAM卡发送给CPU的MAC2和由CPU卡返回的TAC,可以实现数据传输验证的计算。而MAC1、MAC2和TAC就是同一张CPU卡每次传输的过程中都是不同的,因此无法使用空中接收的办法来破解CPU卡的密钥。

IC卡、M1卡、CPU卡、SAM卡、PSAM卡的联系与区别的更多相关文章

  1. PSAM卡

    PSAM卡    终端安全控制模块,符合<中国金融集成电路(IC卡)PSAM卡规范>,   包括普通PSAM卡和高速PSAM卡. PSAM符合以下标准及规范: 识别卡,带触点的集成电路卡标 ...

  2. PSAM卡与CPU(用户卡)的操作过程

    最近我一直在研究关于通过国密PSAM卡作为安全模块来读写cpu(用户卡)的问题 其实,两者都是卡片,或者说都是从设备.它们之间是无法相互访问的. 实际上,PSAM 卡是作为秘密密钥的载体,专门执行加密 ...

  3. PSAM 卡的应用操作方法

    PSAM 卡的应用        PSAM 功能 终端安全存储模块        PASM  常用于 脱机交易的 安全认证        脱机交易的流程          1.卡片对持卡人的认证(防止 ...

  4. PSAM 卡的应用 操作方法

    PSAM 卡的应用        PSAM 功能 终端安全存储模块        PASM  常用于 脱机交易的 安全认证        脱机交易的流程          1.卡片对持卡人的认证(防止 ...

  5. 社保系列7《PSAM卡》

    PSAM卡用于商户POS.网点终端.直联终端等端末设备上,负责机具的安全控管.PSAM卡具有一定的通用性.经过个人化处理的PSAM卡能在不同的机具上使用. PSAM卡支持多级发卡的机制,各级发卡方在卡 ...

  6. Android4.0Sd卡移植之使用vold自动挂载sd卡

    在cap631平台上移植android4.0,发现内核驱动没有任何问题,能够读写,当总不能挂载. 后来发现是因为自动挂载需要vold的支持.vold程序负责检查内核的 sysfs 文件系统,发现有SD ...

  7. PSAM卡之常用APDU指令错误码【转】

    本文转载自:http://blog.csdn.net/lvxiangan/article/details/53933714 PSAM卡的内容交互,是通过APDU指令完成的,常见的APDU报文格式如下: ...

  8. mysql 启动卡主,cpu 100%

    [mysql@mysqlhq scripts]$ cat /etc/redhat-release Kylin Linux release 3.3.1707 (Core) mysql version S ...

  9. 解决vscode卡顿,CPU占用过高的问题

    打开vscode之后,点击文件==>首选项==>设置 搜索设置 search.followSymlinks   然后将这个值改为false

随机推荐

  1. CSS发抖

    纯CSS发抖  当您在 @keyframes 中创建动画时,请把它捆绑到某个选择器,否则不会产生动画效果. 通过规定至少以下两项 CSS3 动画属性,即可将动画绑定到选择器: 规定动画的名称 规定动画 ...

  2. [汇编语言]-第二章寄存器(CPU工作原理)

    1- 对于汇编程序员来说,CPU中主要的部件是寄存器,这些寄存器是:AX BX CX DX SI DI SP BP IP CS SS DS ES PSW. 2- 8086CPU所有寄存器都是16位的, ...

  3. 初学swift笔记 枚举(七)

    import Foundation /* 枚举 语法结构 enum 类型 { case 值 } */ //定义一个枚举 写法1 enum LiuShiQun { case Name case Age ...

  4. python核心编程-第四章-个人笔记

    1.所有的python对象都拥有三个特性: ①身份:每个对象都有唯一的身份标识自己,可用内建函数id()来得到.基本不会用到,不用太关心 >>> a = 2 >>> ...

  5. mysql 1054错误

    往数据库插入数据的时候报错,插入数据的是这样的 [SQL] insert into stock(code,name,b_price,s_price,num,rate,profit) values (1 ...

  6. SQL 查找某个字段的首字母

    执行以下SQL语句 SELECT ,--或得首字母出现的位置 ),--要替换的字符串 ),''),--替换后的结果 OrderId, * FROM dbo.OrderSync 得到结果如下

  7. Jar

    http://docs.oracle.com/javase/6/docs/technotes/guides/jar/jar.html#Intro http://docs.oracle.com/java ...

  8. adb 异常报错----adb server is out of date. killing... ADB server didn't ACK * failed to start daemon *

    在Eclipse进行android开发的时候,由于要启动adb,但有时候其他的程序启动会占用adb程序的端口,这时候在对android程序进行调试的时候就会出现报错: 究其原因就是因为其他程序占用了a ...

  9. bzoj3293 [Cqoi2011]分金币&&bzoj1045 [HAOI2008]糖果传递

    Description 圆桌上坐着n个人,每人有一定数量的金币,金币总数能被n整除.每个人可以给他左右相邻的人一些金币,最终使得每个人的金币数目相等.你的任务是求出被转手的金币数量的最小值. Inpu ...

  10. 关于k-means聚类算法的matlab实现

    在数据挖掘中聚类和分类的原理被广泛的应用. 聚类即无监督的学习. 分类即有监督的学习. 通俗一点的讲就是:聚类之前是未知样本的分类.而是根据样本本身的相似性进行划分为相似的类簇.而分类 是已知样本分类 ...