CPU卡入门教程
- 格式:doc
- 大小:41.50 KB
- 文档页数:12
标签: ZZ操作卡片文件命令--读二进制(READ BINARY)1、命令功能描述读二进制命令用于读取二进制文件的全部或者部分内容。
每次读取内容在256Byte以内,如果需要读取超过256Byte的内容的话,需要通过多次操作完成。
对二进制文件读取操作前需要满足二进制文件描述块中关于读操作的安全控制的要求。
2、命令报文格式命令的APDU内容如下所示:[b] 代码值[/b]CLA 0x00INS 0xB0P1 应用控制参数P2 应用控制参数Lc 不存在Data 不存在Le 0x00或者要读取数据的长度其中:* 如果P1的最高位b8为1时,b6和b7位必须为0,b5-b1位表示待读取的EF文件的SFI;这时P2表示要读取数据起始位置在文件中的偏移量。
* 如果P1的最高位为0时,P1的后7位和P2相连共同组成了一个超过256的整数,表示待读取数据块的起始位置在文件中的偏移量,可以用于超过256Byte文件的读取。
* Le为00时,表示读取最大长度,此时最多读取256Byte。
3、响应报文数据响应报文数据为读取的数据,最大长度为256Byte。
4、响应报文状态码此命令执行成功的状态码为0x9000。
对于异常情况,IC卡可能回送的错误码如下所示:[b] SW1 SW2 含义[/b]0x62 0x81 回送的数据中部分内容可能出错0x62 0x82 读取的数据长度小于Le0x67 0x00 Lc域为空0x69 0x81 命令和文件格式不相容0x69 0x82 不满足安全状态0x69 0x86 不满足命令执行条件(当前EF错误)0x6A 0x81 不支持此功能0x6A 0x82 文件没有找到0x6A 0x86 P1、P2不正确0x6B 0x00 偏移地址错误0x6D 0x00 INS错误0x6E 0x00 CLA错误0x93 0x03 应用永久锁定5、命令实现的其他要求如果卡片不支持大文件的读写操作,可以不实现超过256Byte数据操作。
CPU卡系统原理卡结构说明发卡器具有4个功能:发母卡,发PSAM卡,发用户卡,读用户卡。
一、发母卡:1、选择母卡根目录,用母卡出厂密钥进行外部认证,擦除卡片内容2、建立母卡根目录下的KEY文件,写入母卡主控密钥,此主控密钥和出厂密钥相同3、创建一个ADF目录,建立ADF目录下的KEY文件4、在ADF的KEY文件里写入4个密钥:导出密钥1:用来导出密钥到标准算法的PSAM卡和CPU卡导出密钥2:用来导出密钥到国密算法的PSAM卡和CPU卡导出保护密钥1:等于PSAM的根目录的主控密钥,用于把导出密钥加密写到PSAM卡导出保护密钥2:等于用户卡的根目录的主控密钥,用于把分散后的导出密钥加密写入用户卡。
根据用户输入的3个因子生成导出密钥1和导出密钥2.二、发PSAM卡:1、选择PSAM卡根目录,用PSAM卡出厂密钥进行外部认证,擦除卡片内容。
2、建立PSAM根目录下的KEY文件,写入PSAM卡主控密钥,此主控密钥和出厂密钥相同。
3、创建一个ADF目录,建立ADF目录下的KEY文件4、选择母卡的ADF目录,选择PSAM卡的ADF目录,对标准算法,用导出保护密钥1加密导出密钥1,不分散,把得到的密文写入到PSAM 卡的ADF目录下的KEY文件。
做为加密密钥。
对国密算法,用导出保护密钥1加密导出密钥2,不分散,把得到的密文写入到PSAM 卡的ADF目录下的KEY文件。
做为加密密钥。
三、发用户卡1、读用户CPU卡的4字节UID,组合成8字节分散因子。
2、选择CPU卡根目录,用CPU卡出厂密钥进行外部认证,擦除卡片内容。
3、建立根目录下KEY文件,写入CPU卡主控密钥,此主控密钥和出厂密钥相同4、创建一个ADF目录,建立ADF目录下的KEY文件。
5、选择母卡ADF目录,选择CPU卡ADF目录对标准算法,用导出保护密钥2加密导出密钥1,用CPU卡UID组合成的8字节做为分散因子,把得到的密文写入到CPU卡的ADF目录下的KEY文件。
西门子S7-300CPU 存储器介绍及存储卡使用MMC 卡是一种FEPROM 卡,用于新型的S7-300 CPU,包括紧凑型CPU和由标准型更新的新型CPU。
新型CPU均没有内置的装载存储器,必须使用MMC 卡作为其装载存储器保存用户数据。
CPU掉电时,会自动将工作存储器中的数据拷贝到MMC中,保存DB块数据。
MMC 卡需要用户根据程序大小单独订货,选型时建议大于CPU 工作内存,CPU313,CPU314,CPU315-2DP,CPU317-2DP 系列CPU的可插拔MMC卡最大支持8 MB ,其他最高支持4 MB 用于新型S7-300 CPU的MMC 卡(Micro Memory Card )型号如下:64 KB 6ES7 953-8LF11-0AA0128 KB 6ES7 953-8LG11-0AA0512 KB 6ES7 953-8LJ11-0AA02 MB 6ES7 953-8LL11-0AA0 字串74 MB 6ES7 953-8LM11-0AA08 MB 6ES7 953-8LP11-0AA02.MMC卡使用寿命MMC的使用寿命主要取决于以下因素:(1). 删除或编程步骤的数量。
使用MMC的CPU有SFC 82,83,84等特性,可以进行数据的读写:SFC82“CREA_DBL”:在装载内存(Load Memory)中生成数据块SFC83“READ_DBL”:读装载内存(Load Memory)中的数据块S FC84“WRIT_DBL”:写数据块(内容)到装载内存(Load Memory)即MMC卡中。
但是,请注意由于MMC卡重复写入的次数是有限的,所以当调用SFC 84向MMC卡写数时最好只在相应的时间间隔(例如每小时,每天...)调用。
如果MMC卡在保存时发生故障,相的调用块会发出否定应答,其结果存放在程序的返回值(RET_VAL)中。
错误就会记录在CP的诊断缓冲区中。
字串5(2). 外界影响,例如周围温度。
CPU扩展RAM(Random Access Memory)芯片是增加计算机系统内存容量的一种常见方法。
以下是一些基本的方法来扩展RAM芯片:
插槽升级:许多计算机系统具有用于插入RAM芯片的插槽。
通过添加更多的RAM模块或替换现有的RAM模块来扩展RAM容量。
这通常涉及打开计算机的机箱,找到RAM插槽,并将新的RAM插入其中。
确保选择与计算机兼容的RAM模块,并遵循制造商的安装指南。
内置RAM板卡:某些计算机系统具有可添加的RAM板卡插槽,允许直接安装更多的RAM。
这些板卡可以插入到主板上的扩展插槽中,并通过连接器与计算机系统进行通信。
安装RAM 板卡可能需要一些专业知识和技能,因此在操作之前请仔细阅读相关文档或寻求专业帮助。
虚拟内存管理:操作系统可以使用虚拟内存管理技术来扩展RAM容量。
虚拟内存允许将部分数据存储在硬盘上,以释放RAM的部分负担。
这样,计算机可以使用硬盘作为扩展的"虚拟"RAM。
尽管虚拟内存可以提供更大的可用内存空间,但与实际RAM相比,它的读写速度较慢,可能会影响系统性能。
需要注意的是,扩展RAM容量可能需要考虑计算机的硬件和操作系统的限制。
确保了解计算机的规格和支持的RAM类型,以及操作系统对RAM容量的限制。
此外,为了获得最佳性能,建议选择高质量、与系统兼容的RAM模块,并遵循相关的安装和配置指南。
CPU卡认证与操作一、实验目的1)实践阅读器对CPU卡Pin认证,理解卡认证过程2)实践阅读器对CPU卡外部Key认证,理解卡认证过程3)实践阅读器对CPU卡操作目录,理解卡目录结构4)实践阅读器对CPU卡读写文件,理解卡文件读写方式二、实验流程1)分析实验要求,确定程序步骤2)小组成员合作编写符合试验要求的程序并进行验证操作3)教师验收三、实验分工代码实现:扈景玉张娅娟肖彩娣周晓芳实验报告:张娅娟扈景玉四、编程与验证1)编程环境:操作系统Windows XPIDE:Visual studio 6.02)预定目标:以程序按钮的方式,实现CPU卡的初始化、显示等几种基本操作,每个按钮可以互相独立,不受干扰3)编程注意点:每个按钮都需实现独立操作,故每个按钮都必须集成dc_init, dc_requset, dc_anticoll, dc_select四个函数,在操作CPU卡函数时需注意验证区号与操作区号间的对应关系4)以下是部分实现代码:void CText33333Dlg::OnButton1(){// TODO: Add your control notification handl er cod e here UpdateData(TRUE);icd ev=d c_init(100,9600); //100表示USB口if((l ong)icd ev<=0)AfxMessageBox("Init Com Error!");elseAfxMessageBox("Init Com OK!");d c_beep(icd ev,10);return;}void CText33333Dlg::OnButton2(){// TODO: Ad d your control notification handl er cod e hereint st;st=d c_reset(icd ev,1);if(st<0){AfxMessageBox("d c_reset Error!");return;}AfxMessageBox("dc_reset ok!");}void CText33333Dlg::OnButton3(){// TODO: Ad d your control notification handl er cod e here int st;unsigned l ong cardsnr;unsigned char sss[5];unsigned __int16 ttt;st=d c_request(icd ev,1,&ttt);if(st!=0){AfxMessageBox("request Card Error!");return;}st=d c_anticoll(icd ev,0,&cardsnr);if(st!=0){AfxMessageBox("anticoll Error!");return;}st=d c_sel ect(icd ev,cardsnr,sss);if(st!=0){AfxMessageBox("d c_select Error!");return;}AfxMessageBox("ok");void CText33333Dlg::OnButton4(){// TODO: Ad d your control notification handl er cod e here unsigned char crl en[2],recbuff[300];int st;st=d c_pro_resethex(icd ev,crl en,(char *)recbuff);if(st!=0){AfxMessageBox("d c_pro_reset Card Error!");return;}m_result=recbuff;UpdateData(false);return;}五、总结1)整个实验中按钮ID号十分重要,如果随意更改添加可能造成程序运行失败、按钮失效等问题2) 相近性质的函数可以用函数数组的方式进行管理3) 实验过程中认真细心十分重要4)实验过程中一定要注意引入所需要的头文件以及其他信息5)在对CPU卡进行操作之前一定要仔细阅读并了解其结构以及每个扇区的作用。
cpu卡工作原理CPU(Central Processing Unit)是计算机的核心部件,负责执行计算机程序中的指令并进行数据处理。
它可以被视为计算机的大脑,决定了计算机的运行速度和性能。
那么,CPU卡是如何工作的呢?我们需要了解CPU的基本组成。
一个典型的CPU由控制单元、算术逻辑单元(ALU)和寄存器组成。
控制单元负责指令的解码和执行,它从内存中读取指令并将其转化为可以被执行的微操作。
ALU 负责进行算术和逻辑运算,如加法、减法和逻辑与、或运算。
寄存器则用来存储临时数据和地址信息。
CPU卡是一种将CPU集成在一张卡片上的设备,它通常用于嵌入式系统或特定应用场景下的计算设备。
与传统的CPU相比,CPU 卡具有体积小、功耗低、散热效果好等优势。
它一般采用BGA封装技术,将CPU芯片与卡片上的其他元件进行焊接,以实现整体集成和紧凑的设计。
CPU卡的工作原理可以简单描述为以下几个步骤:1. 供电和初始化:当CPU卡插入设备中时,系统会为其提供电源供应。
在供电的同时,CPU卡会进行一系列的初始化操作,包括检测系统硬件环境、加载固件和初始化寄存器等。
2. 指令解码和执行:CPU卡从内存中读取指令,并将其解码为微操作。
控制单元根据解码后的指令类型,将相应的微操作发送到ALU 或其他功能单元执行。
这些微操作可以包括算术运算、逻辑运算、数据传输等。
3. 数据处理和存储:ALU负责执行指令中的算术和逻辑运算。
它从寄存器中读取操作数,并将运算结果存储到指定的寄存器或内存位置。
寄存器在这一过程中起到了临时存储数据和地址信息的作用。
4. 中断处理:CPU卡能够响应外部中断信号,如硬件故障、输入/输出请求等。
当发生中断时,CPU会保存当前的执行状态,并跳转到中断处理程序进行相应的处理。
处理完成后,CPU会恢复到原来的执行状态继续执行。
5. 时钟同步:CPU卡通过时钟信号来同步各个部件的工作。
时钟信号会以固定的频率发出,用于控制指令的执行速度。
Cpu卡操作的基本方法指令广州恒天单片机淘宝店一、安全状态,表示卡在当前状态下的一种级别,系统的根目录各应用目录分别具有16种不同的安全状态,值为0~F安全状态值的变化说明:(系统的安全状态的缺省值为0)当前目录的安全状态值在系统复位或选择目录文件成功执行后被置0,比如你当选择下级目录时被置0后,必须在该目录下的口令或外部认证通过后安全状态的值才发生变化。
二、安全属性(就是访问的权限),是指对某个文件操作时必须满足的条件,就是说安全状态的值是啥?建立文件时用一个字节表示。
访问权限说明:实际使用中一般用1个字节(16进制)来表示状态,低4位表示安全级别下限(0-15),高4位表示安全级别上限(0-15)(0<=Y Y<=F)假设一字节的值为:XY(0<=X<=F)(0<=比如访问权限为FY时,必须要求当前安全状态的值大于等于Y,否则提示:安全状态不满足!例:某文件件的读权限为F5,则对该文件的读之前,安全状态的值要大于或等于5.如访问权限为XY:1:若X>Y,表示当前目录的安全状态值必须大于或等于Y且小于等于X!例:访问权限为F0:表示安全状态值范围0~F,也就是表示对文件的访问无安全限制(即这个文件随便都可以访问。
2:若X=Y,表示当前目录的安全状态值必须等于X(或Y)例:访问权限为33:表示安全状态值范围只有为3,才能对该文件的访问。
3:若X<Y,表示不允许对该文件操作,也就是说这个文件被禁止访问。
三、安全机制,也就是改变安全状态的值的手段方法,如何改变呢?方法是:通过外部认证或密码口令。
1、当在MF下,认证成功后,同时改变MF和当前所在目录的安全状态值。
2、若不在MF下,认证成功后,只改变当前目录的安全状态值。
使用说明:当建立外部认证密钥或口令时,其中有一个字节为“后续状态”也就是说密钥或口令通过后系统的安全状态值等于后续状态的值,例:某口令的后续状态为01,表示验证成功后,当前目录的安全状态值为01,你如果离开了当前目录时,安全状态值会自动置为0对于FMCOS的所有文件,在创建时都需要设置它的访问权限,包括读权限、写权限、使用权限、更改权限等。
S7-400CPU存储器介绍及存储卡使用目前用于S7-400CPU存储卡有以下三种:1.RAM卡:用来扩展S7-400 CPU的内置RAM装载存储区,需要后备电池保持。
2.Flash EPROM卡:简称FEPROM卡,它也可以扩展CPU的内置RAM装载存储区,但更重要的作用是作为程序备份,卡中的程序不需要后备电池保持。
3.扩展工作存储器的RAM卡:只用于CPU417-4 (6ES7 417-4XL00-0AB0 版本V1.1~V3.1)S7-400 CPU的存储区可以划分为三个区域:系统存储器(System Memory)、工作存储器(Work Memory)、装载存储器(Load Memory)1.系统存储器:系统存储器(System Memory)用于存放输入输出过程映像区(PII,PIQ)、位存储器(M)、定时器(T)和计数器(C))、块堆栈和中断堆栈以及临时存储器(本地数据堆栈Local data Lack)。
2.工作存储器:工作存储器(Work Memory)用于存放与运行相关的程序和数据。
S7-400CPU的工作存储器,一半用于存储与运行相关的程序代码(Code Memory),另一半存储与运行相关的数据(Data),这是一个固定分配。
工作存储器集成在CPU中且不能扩展,通过后备电池保持。
如果工作内存对于一个应用程序来说不够大,则必须使用带有更大内存的CPU。
除了CPU417-4 (6ES7 417-4XL00-0AB0 V1.1~V3.1)可以通过插入专用的存储卡来扩展工作存储器外,其它型号的CPU的工作存储器都无法扩展。
3.装载存储器:装载存储器(Load Memory)是存放用户项目中不包含符号地址分配或注释(这些保留在编程设备的存储器中)的所有用户程序和数据。
装载存储器可以是外部扩展存储卡或是内部集成的RAM。
在S7-400中,存储器卡(RAM 或Flash EPROM) 可以扩展集成的装载存储器。
CPU卡及认证方法一、为什么用CPU卡IC卡从接口方式上分,可以分为接触式IC卡、非接触式IC卡及复合卡。
从器件技术上分,可分为非加密存储卡、加密存储卡及CPU卡。
非加密卡没有安全性,可以任意改写卡内的数据,加密存储卡在普通存储卡的基础上加了逻辑加密电路,成了加密存储卡。
逻辑加密存储卡由于采用密码控制逻辑来控制对EEPROM的访问和改写,在使用之前需要校验密码才可以进行写操作,所以对于芯片本身来说是安全的,但在应用上是不安全的。
它有如下不安全性因素:1、密码在线路上是明文传输的,易被截取;2、对于系统商来说,密码及加密算法都是透明的。
3、逻辑加密卡是无法认证应用是否合法的。
例如,假设有人伪造了ATM,你无法知道它的合法性,当您插入信用卡,输入PIN的时候,信用卡的密码就被截获了。
再如INTENET 网上购物,如果用逻辑加密卡,购物者同样无法确定网上商店的合法性。
正是由于逻辑加密卡使用上的不安全因素,促进了CPU卡的发展。
CPU卡可以做到对人、对卡、对系统的三方的合法性认证。
二、CPU卡的三种认证CPU卡具有三种认证方法:持卡者合法性认证——PIN校验卡合法性认证——内部认证系统合法性认证——外部认证持卡者合法性认证:通过持卡人输入个人口令来进行验证的过程。
系统合法性认证(外部认证)过程:系统卡,送随机数X用指定算法、密钥]对随机数加密用指定算法、密钥]解密Y,得结果Z比较X,Z,如果相同则表示系统是合法的;卡的合法性认证(内部认证)过程:系统卡送随机数X用指定算法、密钥]对随机数加密用指定算法、密钥]解密Y,得结果Z比较X,Z,如果相同则表示卡是合法的;在以上认证过程中,密钥是不在线路上以明文出现的,它每次的送出都是经过随机数加密的,而且因为有随机数的参加,确保每次传输的内容不同。
如果截获了没有任何意义。
这不单单是密码对密码的认证,是方法认证方法,就象早期在军队中使用的密码电报,发送方将报文按一定的方法加密成密文发送出去,然后接收方收到后又按一定的方法将密文解密。
CPU卡MAC算法说明
MAC1算法
步骤一:用16位卡号1次分散原始充值密钥,得到卡充值密钥(16字节)。
步骤二:用卡充值密钥对随机数(4字节)+卡序号(2字节)+8000进行3DES加密,得到过程密钥(8字节)。
步骤三:用过程密钥对卡余额(4字节)+交易金额(4字节)+交易类型(1字节,默认:02)+终端代号(6字节)进行PBOC-DES-MAC加密,初始向量全0,取前4字节作为MAC1。
举例:
原始充值密钥:0B56712E60D7C2FC9D8418DC6F4D9AF1
卡号:0540020100000001
分散后密钥:51D785D32F6EE8B6AD356BF24B06840B。
如图:
数据域:BE365E3A00008000
过程密钥:A50E991074AFA809,如图:
数据域:00000000000003E802054000010467 MAC1: ADF4B73B。
如图:
MAC2算法
步骤一、步骤二同MAC1计算。
步骤三:用过程密钥对交易金额(4字节)+交易类型(1字节,默认:02)+终端代号(6字节)+ 交易时间(7字节)进行PBOC-DES-MAC加密,初始向量全0,取前4字节作为MAC2。
举例:
沿用MAC1算法举例中过程密钥A50E991074AFA809。
数据域:
00000000000003E80205400001046720171122182856
MAC2:5298DA23。
如图:。
CPU卡入门教程1绪言:说起CPU卡,人们肯定不禁要问,什么是CPU卡,CPU卡长什么样的呢?想起卡,一般人接触最多的是银行卡,相信现在大家每个人的钱包里都有好几张磁卡。
比如说:有工商行、建行的储蓄卡。
但我们所说的CPU卡,是卡上面有个芯片的卡,现实生活中接触最多的应该是IC卡电话卡、买电的卡。
但以上的卡都不是CPU卡,长得和电话卡、买电的卡一样。
但卡的芯片里有CPU,我们手机里用的SIM卡就是CPU卡的一种。
我们可以把CPU卡想象成一个极小的个人计算机,但这个计算机没有显示器,没有电源,没有输入设备。
要使用CPU卡的时候,必须由外部提供电源、显示屏和输入设备。
比如说现在我要往手机的SIM卡内存入一个电话号码.1、我的手机必须有电---提供电源2、我的手机必须有提供输入电话号码的手机按键--提供输入3、我的手机必须能有显示电话号码的显示屏---提供显示以上我们对CPU卡有了大概的了解,有可能比喻不是很恰当。
2.我们为什么要使用CPU卡呢?先谈谈银行磁卡的不安全性,经常去ATM取钱的必须注意如下事项:1、输入密码的时候必须防止被别人看到,最好能用手遮着。
2、取完钱一定要取走打印的单据,或者不打印单据也行。
看看犯罪分子怎样窃取你卡片里头的钱:1、在你取钱的时候凑在你旁边,偷偷得记下你的密码,或者在很远的地方用望远镜窥视你的密码。
2、你取完钱走后,有可能安全意识不高,没有取走打印的单据,犯罪分子就乘机取走单据,取走单据的目的是为了知道你的卡号。
有了上面两点,首先:犯罪分子先复制一张和你的银行卡一摸一样的银行卡。
并且复制的成本非常低,只要有一台PC,一个磁卡写卡器(价格很便宜),一个小软件。
其次:犯罪分子又已经有了你的密码。
这样,犯罪分子就可以拿着你的卡去潇洒地消费、取钱了,而你却还蒙在鼓里。
直到某一天,当你发现你的卡里的钱突然变少了,或者没了,但一切为时已晚。
为什么会出现这种情况呢?那就是磁卡太容易就可以被复制。
那我们必须去寻找一种不能被复制的卡,什么卡呢?这就是CPU卡。
而CPU卡又属于IC卡的一种。
什么是IC卡呢?IC卡分为几种呢?IC卡是英文"集成电路卡"的缩写,是近年来传入中国的一项新技术。
它是把具有存储、运算等功能的集成电路芯片压制在塑料片上,使其成为能存储、转载、传递、处理数据的载体。
IC卡从其功能上分为三种:1) 存储器卡。
2) 带加密逻辑存储器卡:内有COS(卡操作系统)的一种存储器卡。
3) CPU智能卡:内有CPU(中央处理单元)的一种存储器卡。
以上三种卡只有CPU卡被证实是最安全的。
CPU卡在实际情况中是怎么使用的呢?CPU卡使用的简单情况举例:(如图)硬件:一台PC+一个读卡器+一张CPU卡读卡器和PC是通过串口进行通讯,这种做法比较常见。
软件:一个在PC上运行能读写CPU卡的小程序(一般读卡器提供商都会提供开发CPU卡的函数接口和读写CPU卡的小工具)对CPU卡的操作的流程是怎样的呢?1、PC上的CPU卡读写程序向PC的串口(比如说串口1)发指令2、读卡器和串口1是连在一起的,串口的指令传到读卡器3、读卡器又把指令传给CPU卡4、CPU卡内部执行指令,返回消息那指令的格式又是什么样的呢?我们可以举这么一个例子:用过DOS的人都知道:CD C:\这个指令表示进入C盘根目录相应的CPU卡有这么一个指令:SELECT MF这个指令表示进入卡片的根目录,但由于CPU卡的操作系统比较简单,它处理不了这种纯粹字符的东西,向卡片指令的时候必须把指令转换成十六进制的格式:转换成卡片的指令格式是:00 A4 00 00 02 3F 00每个字符的具体规定在ISO7816-4中有具体的规定。
大家有兴趣的话可以去查具体的标准,以下是比较枯燥的IC卡的国际标准:1、物理特性符合ISO7816:1987中规定的各类识别卡的物理特性和ISO7813中规定的金融交易卡的全部尺寸要求,此外还应符合国际标准ISO7816— 1:1987规定的附加特性、机械强度和静电测试方法。
2.触点尺寸与位置。
应符合国际标准ISO7816—2:1988中的规定。
3.电信号与传输协议。
IC卡与接口设备之间电源及信息交换应符合ISO/IEC7816— 3:1989的规定。
4.行业间交换用命令。
有相应的国际标准ISO/IEC7816—4:1994。
但该版本尚未正式通过。
5.应用标识符的编号系统和注册过程应符合国际标准ISO/IEC7816— 5:1994中的规定。
感应式智能卡的国际标准有:ISO\IEC10536-1:1992、ISO\IEC10536-2:1995、ISO\IECDIS10536-3:1995、ISO14443-2等。
CPU卡入门教程4对于CPU卡,人们经常关注的是CPU卡的多应用,也就是说一张CPU卡上可以有多个应用,多应用的安全相互隔离,那么多应用究竟是什么呢?我们可以把卡片想象成一栋县政府办公大楼,比如说:一楼:属于民政部门二楼:属于教育部门三楼:属于交通部门各个部门独立办公,互不干涉,在行政上他们并没有从属关系。
从而达到了多应用并存。
民政部门智能办理民政部门的事情,教育部门只能办教育部门的事情。
从而达到了多应用的安全相互隔离。
一、多应用并存于一张卡片上多应用共存在卡片上是怎么达到的呢?通过创建多个ADF(即创建多个目录)达到。
每个ADF代表一个应用。
每个ADF下有相应的文件,相应的文件中存放相应的数据。
二、多应用之间的安全相互隔离多应用之间的安全相互隔离是怎么达到的呢?通过卡片内部的安全机制来实现。
CPU卡的文件结构1CPU卡作为信息的载体,在卡片里必须能存储信息,比如说,存放一个人的身份信息在CPU卡上(包括姓名、年龄、工作单位、职务、电话等),这些具体的信息在CPU卡中是怎么存放的呢?请听我细细道来。
在这个时候,我们可以把CPU卡想象为一张软盘,只不过软盘的容量比CPU卡大得多,我们现在软盘的容量一般为1.4M字节,而我们现在常用的CPU卡的容量仅仅为8K或者16K字节,远远比软盘的容量小。
当然了,容量越大的CPU卡价格越贵。
请看下面例子假设我们把以上所说的一个人的身份信息存放在pm.txt中。
pm.txt在一张软盘中的存放方式方式一:A:\pm.txt方式二:A:\adf1\pm.txt方式三:A:\ddf1\adf1\pm.txt以上是信息在软盘中的存放方式。
大家请看ISO7816-4规定的CPU卡内逻辑文件组织结构的举例,见下图:大家可以可以看到最多只有三层目录。
这是由于实际应用中只要有三层目录就够了。
所以现在的CPU卡一般都是最多只支持三层目录的,有的国外的卡只支持两层目录(实际上两层目录一般时候也够用)。
请看下面例子(可以对比软盘的方式看)假设我们把以上所说的一个人的身份信息存放在EF1中。
方式1:MF 方式2:MF 方式3:MF\ \ \EF1 ADF1 DDF1\ \EF1 ADF1\EF1由于CPU卡的文件操作系统远比DOS或者WINDOWS操作系统简单,说句不好听的话,可以说是“小巫见大巫”。
不过这可以理解,毕竟在这么小的一个芯片上暂时不能实现象DOS或者WINDOWS那样强大的操作系统。
所以对文件的规定,对文件的创建、文件的操作比较麻烦。
不同之处在于:1、CPU卡创建一个文件时必须先声明创建的文件的类型以及创建文件的空间大小。
在软盘或者硬盘上则可以不指定文件长度。
2、CPU卡创建完一个文件后不可以删除。
(测试发卡的时候可以例外,但删除的是MF,即删除卡片中的所有文件和目录)3、CPU卡文件类型只有很少几种,没有后缀名。
4、CPU卡创建文件、写文件必须通过向卡片发送APDU报文的方式进行,并且每次写的字节数不能超过256字节,比较麻烦。
CPU卡的文件结构2【CPU卡的文件类型】<两种专用文件(DF--Dedicated File)类型>MF(Master File):根目录,是卡片文件系统的根,相当于DOS的根目录,每张卡有且只有一个MF文件。
不同卡片厂商的MF的创建方式是不同的。
主要有两种方式:1、在卡片个人化过程中由发卡方创建。
如明华、德生卡片2、厂商提供卡片的时候已经创建,发卡方不能再创建。
如握奇卡片DF(Dedicated File):DF相当于DOS的子目录。
DDF和ADF:我们把包含下级目录的DF称之为DDF,不包含下级目录的称之为ADF。
注意:DDF下可以有ADF,ADF下不能再有ADF。
<三种基本文件(EF--Elementary File)类型>一、透明文件:基本文件存储了各种应用的数据和管理信息,它存在于MF和DF下。
文件数据是通过连续空间中的字节地址进行存取。
比如上节中说的个人身份信息就可以存放在透明文件中。
二、记录文件:数据是以记录的方式存放在文件中的。
记录文件分为以下几种:1、线性定长记录文件:一个文件中有n条记录,每条记录的长度都是固定且相等的。
2、线性变长记录文件:文件中的每个记录的长度是可变的。
但一旦写完后,进行更新的时候,更新的记录长度必须和原来的记录长度相同。
变长记录的TLV格式如下:T=TAG:标识L=LENTGTH:长度V=value:值3、循环定长记录文件:一个文件中所有记录是等长度的,对文件中的记录循环进行读取。
在逻辑上,这类文件可看作一个环形记录队列,记录按照先进先出的原则存储。
添加记录时,最新一次写入的记录的记录号为1,上一次写入的记录的记录号为2,依次类推,滚动写入。
三、交易文件这一类的文件为特定格式的文件,通过具体的交易指令对这类文件进行操作。
如:1、电子存折文件2、电子钱包文件<安全文件>此类文件是和安全有关的文件,所以对文件的访问控制就特别严格,对文件只能进行写入,文件是不可读的。
文件内存放有关卡片安全的密钥和口令。
但或许大家有疑问,文件要是不可读,那这文件还有什么用呢?在实际中它是这么被使用的,比如说我们要使用某个密钥,在卡片中每个密钥都有编号,我们在使用中通过指定卡片的密钥号(即:我们使用的是第几号密钥)来使用密钥。
比如说我们使用口令,我们通过向卡片送入口令来进行使用口令。
而具体的比对口令和用密钥的计算是在卡片的内部进行了。
所以这种措施保证了卡片的密钥和口令的安全。
对CPU卡中文件的操作[原创]我们有什么办法可以对文件操作呢?比如我们要对个人基本信息文件pm.txt进行操作,在DOS下我们可以用EDIT pm.txt进行编辑,在WINDOWS下我们可以双击pm.txt,用文本编辑器打开文件。
但在CPU卡中,我们怎么对一个文件(比如说EF1)进行操作呢?比如说我们要打一个人,我们必须先找到那个将要倒霉被打的人。
同样,我们要对一个文件操作,首先,我们必须先找到要操作的那个文件。