接触式逻辑加密卡技术课件_第1页
接触式逻辑加密卡技术课件_第2页
接触式逻辑加密卡技术课件_第3页
接触式逻辑加密卡技术课件_第4页
接触式逻辑加密卡技术课件_第5页
已阅读5页,还剩129页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

接触式逻辑加密卡技术电子与信息工程学院接触式逻辑加密卡技术电子与信息工程学院提纲接触式逻辑加密卡存储结构与安全技术

典型卡型剖析:SLE4406卡SLE4442卡AT88SC1608卡接触式逻辑加密卡的读写控制典型卡型剖析:SLE4442卡时序分析与读、写、密码校验程序提纲接触式逻辑加密卡存储结构与安全技术接触式逻辑加密卡组成SecurityMemoryCard接触式逻辑加密卡组成SecurityMemoryCard逻辑加密卡特性组成:非易失性存储器+硬件加密逻辑;芯片:专门为IC卡设计的芯片(ASIC);安全性:具有安全控制逻辑,安全性能较好;多种安全措施:PIN、EC、FUSE、TC、多存储器(ROM、PROM、EEPROM并存)、多分区存储结构。通信协议:支持ISO7816国际标准。适用场合:有一定安全要求的场合,如IC卡电话、网吧卡、加油卡、保险卡、驾驶卡、借书卡、小额电子钱包等。逻辑加密卡特性组成:非易失性存储器+硬件加密逻辑;典型逻辑加密卡—SLE4406一次性使用,带加密逻辑,按位操作计数卡(TokenMemoryCard),以一次性的计数方式,从写满的计数器中减“1”,直至存储单元全减为“0”为止

104位容量,最大可提供20480计数单位

3字节传输密码,1位发行标志保护

常用于具有定额定价的消费系统中,如公用电话卡、预付费加油卡、停车计费卡、游乐园消费卡等典型逻辑加密卡—SLE4406一次性使用,带加密逻辑,按位操SLE4406存储分布图和计数规则计数规则发行后,用户区进入计数状态,为5位8进制计数器,但第5位计数器只有4位可用,因此最大计数值为20480。说明:计数区按位写0,按字节借位擦除,如:1111111100000000擦成:1111111011111111

SLE4406存储分布图和计数规则计数规则SLE4406操作方式检查发行标志位是否为1,是则可以校验传输密码先将密码计数器-1,然后比较密码,校验正确则密码计数器恢复,允许写入发行商代码,将控制位写为0(发行)。允许初始化计数器(擦除第2-5字节并重新写入),此操作将撕毁传输密码并不可恢复。一旦控制位为0,表示已发行,将不能再更改发行商代码。第2-5字节成为5位计数器,只能写0及借位擦除。

SLE4406操作方式检查发行标志位是否为1,是则可以校验传SLE4406保密特性

SLE4406保密特性典型逻辑加密卡—SLE4442按字节操作,可反复应用多存储器结构

256*8位EEPROM型主存储器。32*1位PROM型保护存储器。4*8位EEPROM型加密存储器

安全性:用户密码(3字节)+密码错误计数(3次)+PROM保护

2线串行连接协议,满足ISO7816同步传送协议典型逻辑加密卡—SLE4442按字节操作,可反复应用SLE4442存储结构SLE4442存储结构SLE4442存储器分配(一)主存储器(mainmemory):EEPROM型,256B按字节操作,字节地址0~255(00H~FFH),所有单元可任意读取。主存储器可分为两个数据区:保护数据区:00H-1FH,用户密码+熔丝保护(擦除、写当校验用户密码正确且熔丝未熔断时允许进行擦除和写入操作,否则不允许熔丝:保护存储器中第n位(n=0~31)对应主存储器中第n个字节,1——未熔断,0——熔断。应用数据区:20H-FFH。用户密码保护(擦除、写)SLE4442存储器分配(一)主存储器(mainmemorSLE4442存储器分配(二)保护存储器(protectionmemory):PROM型,32bits按位操作,位地址0~31每位相当于主存储器保护数据区对应字节单元的控制熔丝(FUSE),相应位为1时该字节可擦写,为0时不可保护存储器可任意读出,但需校验密码正确方能写入,一经写入(从1变为0)不可再擦除,可理解为FUSE一经熔断不可再恢复。SLE4442存储器分配(二)保护存储器(protectioSLE4442存储器分配(三)加密存储器(securitymemory):EEPROM型,4B按字节操作,字节地址0~3字节0:EC(ErrorCounter),低3位有效,

可任意读、写,用户密码校验成功方可擦除。字节1,2,3:3字节PSC(可编程加密代码)

PSC校验成功前不可读,只能进行比较操作;密码“比较”成功后才可以进行读出、写入和擦除。

SLE4442存储器分配(三)加密存储器(security典型逻辑加密卡—AT88SC1608按字节操作,可反复应用存储容量:16Kbits安全性:三重密码+熔丝+读写控制位单存储器、多存储分区结构

标志数据区:制造商、发行商代码。控制数据区:SC(2字节)、EC、Erasekey。应用数据区:4个、各自独立2线串行连接协议,满足ISO7816同步传送协议典型逻辑加密卡—AT88SC1608按字节操作,可反复应用SC1一区密码SC1AT88SC1608存储器分配(一)标志数据区:验证卡片真伪的重要标识

制造商代码区FZ(FabricationZone),2B记录卡芯片生产商的特定信息(例如:生产批号、日期、特别制定的特征代码)

FUSE1熔断前,可读,可更改

FUSE1熔断后,只读,不可更改发行商代码区IZ(IssuerZone),8B

用于记录卡片发行商的特定信息(例如:发行批号、日期、地区范围编号、特定用户编号等特征代码)

FUSE2熔断前,可读,可更改

FUSE2熔断后,只读,不可更改AT88SC1608存储器分配(一)标志数据区:验证卡片真伪AT88SC1608存储器分配(二)控制数据区:三重密码+密码错误计数用户密码SC(SecurityCode),2B用户密码错误计数SCAC(SecurityCodeAttemptsCounter),1B(8次)应用区密码SC1~SC4,2B应用区密码错误计数SCAC1~SCAC4,8次应用区擦除密码EZ1~4(Erasekey),2B

应用区擦除密码错误计数EnAC

(ErasekeyAttemptsCounter,n=1,2,3,4),8次AT88SC1608存储器分配(二)控制数据区:三重密码+密AT88SC1608存储器分配(三)应用数据区:1~4,各自独立,特性相同存储用户的相关数据记录。第1位为写保护位(P1);第2位为读保护位(R1),均为1有效(可读/写)

AT88SC1608存储器分配(三)应用数据区:1~4,各自实训3

接触式逻辑加密卡读写操作

准备:确认电源正、负极,按标志正确连接接触式IC卡读写器的电源线及串口线,注意电源+5V与地不可接反。打开接触式IC卡读写器读写操作软件DEMO,确认通信正常。将实验白卡插入接触式IC卡读写器插卡槽,自动测卡进入卡操作界面。SLE4442卡密码:FFFFFFHAT88SC1608卡密码:F0F0H或A5A5H实训3接触式逻辑加密卡读写操作准备:SLE4442读写操作

读卡:记录卡密码、卡错误计数值,主存储器存储结构(各区域名称、地址范围、字节数)、存储内容和读出条件。写卡:对主存储器各区域进行写入/擦除操作,记录操作结果,总结各区域写入/擦除条件。密码操作:(1)修改密码:在未通过和已通过密码校验二种情况下分别修改密码,记录操作结果,总结修改密码的条件。(2)恶意猜测密码:在未通过密码校验的情况下输入错误密码,记录此时的读卡、写卡结果。注意:修改密码后必须及时还原密码为FFFFFFH。猜测密码错误次数不得超过2次!以免锁卡!SLE4442读写操作读卡:记录卡密码、卡错误计数值,主存AT88SC1608读写操作

读卡:在未通过和已通过密码校验二种情况下记录存储器存储结构(各区域名称、地址范围、字节数)、存储内容和读出条件。写卡:在未通过和已通过密码校验二种情况下对存储器各区域进行写入/擦除操作,记录操作结果,总结各区域写入/擦除条件。熔丝操作:模拟熔断,对存储器各区域进行写入/擦除操作,记录操作结果,总结熔断操作对各区域的保护作用。注意:修改密码后必须及时还原密码。猜测密码错误次数不得超过8次!以免锁卡!只允许模拟熔断,不可熔断,否则将无法恢复。AT88SC1608读写操作读卡:在未通过和已通过密码校验任务设计IC卡网吧收费机基本要求:1、判断是否SLE4442卡2、读卡,根据读出的发行商标志判断是否本网吧的卡。读出卡中余额,判断是否允许上网。3、校验密码,密码正确为合法卡。4、写卡,扣款后允许上网,时间到则继续扣款,直至停止上网或余额不足。进阶要求实现网吧收费机与PC机的通信任务设计IC卡网吧收费机硬件设计——SLE4442引脚分配C1:Vcc(SupplyVoltage)C2:RST(Reset)C3:CLK(SerialClock)C4:(NC)C5:GNDC6:I/O(Bidirectionalserialdata,opendrain)C7:(NC)C8:(NC)硬件设计——SLE4442引脚分配C1:Vcc(SupplySLE4442接口电路SLE4442接口电路软件设计——SLE4442操作时序通信协议:2线连接协议,满足ISO7816同步传送协议数据传输:CLK信号下降沿有效。复位和复位响应(ResetandAnswer-to-Reset):上电后启动芯片,符合7816命令(Command):

命令=开始+(控制字+地址字+数据字)+附加脉冲+停止

操作模式(Mode):读数据:输出数据模式(OUTGOINGDATAMODE):写入、擦除、校验:处理模式(PROCESSINGMODE)软件设计——SLE4442操作时序通信协议:2线连接协议,满接触式逻辑加密卡技术课件复位和复位响应(ResetandAnswer-to-Reset):SLE4442上电后,读写器首先应给出复位(Reset)命令并等待接收来自卡的复位响应ATR(Answer-To-Reset)。复位和复位响应(ResetandAnswer-to-Re复位和复位响应

(ResetandAnswer-to-Reset)复位响应:符合ISO7816-3标准的ATR当RST为高时,送第一个时钟脉冲(脉冲0)使地址计数器清0(复位)。当RST线从高状态(H状态)置到低状态(L状态)时,第一个数据位(主存储器字节0的LSB)的内容被送到I/O上。若连续输人32个时钟脉冲(脉冲1~32),主存储器中的前4个字节(4*8位=32位)地址单元中的内容被读出(复位响应)。在第33个时钟脉冲(脉冲32)的下降沿,I/O线被置成高阻状态(状态Z)而关闭(复位和复位响应过程结束)复位和复位响应

(ResetandAnswer-to-R;*************复位子程序***************RESET:CLRRSTCLRCLKCLRIOLCALLDELAY_12LCALLDELAY_12SETBRSTLCALLDELAY_12SETBCLKLCALLDELAY_12CLRCLKLCALLDELAY_12CLRRSTLCALLDELAY_12MOVB,#20HRESET0:SETBCLKLCALLDELAY_12CLRCLKLCALLDELAY_12DJNZB,RESET0SETBIORET如何读出复位应答呢;*************复位子程序**********;4442串行输出一个字节子程序,即MCU读入一个字节SHIN:CLRCLKPUSHBMOVB,#08HX43:LCALLDELAYSETBCLKMOVC,IORRCALCALLDELAYCLRCLKDJNZB,X43POPBRET将RESET程序中的32个脉冲换为调用SHIN子程序4次,读入4个字节的ATR;4442串行输出一个字节子程序,即MCU读入一个字节将命令(Command)复位响应以后,芯片等待着命令。命令=开始+(控制字+地址字+数据字)+附加脉冲+停止

。开始:在CLK为高状态(H)期间,I/O的下降沿为开始状态。停止:在CLK为高状态(H)期间,I/O的上升沿为停止状态。命令(Command)复位响应以后,芯片等待着命令。SLE4442操作命令SLE4442操作命令;************命令子程序***************;该子程序送出三字节的SLE4442命令;入口参数:COM为控制字,ADDR为地址字,DAT为数据字COMMAND:SETBCLK LCALLDELAY_12 CLRIO;开始 LCALLDELAY CLRCLK LCALLDELAY MOVA,COM ;送命令字 LCALLSHOUT MOVA,ADDR ;送地址字 LCALLSHOUT MOVA,DAT ;送数据 LCALLSHOUT LCALLDELAY CLRIO LCALLDELAY SETBCLK ;附加脉冲 LCALLDELAY SETBIO ;停止 RET怎样向卡中写入一个字节?;************命令子程序************;sle4442串行输入一个字节函数,即MCU向卡写入一字节SHOUT:PUSHBMOVB,#08HX42:RRCAMOVIO,CNOPSETBCLKLCALLDELAYCLRCLKLCALLDELAYDJNZB,X42POPBRET;sle4442串行输入一个字节函数,即MCU向卡写入操作模式(Mode)接收了一个命令之后,卡芯片处于两种可能的模式:(1)读数据:输出数据模式;(2)写入、擦除、校验密码:处理模式。操作模式(Mode)接收了一个命令之后,卡芯片处于输出数据(OUTGOING)模式将IC卡芯片中的数据传送给读写器在第一个CLK脉冲的下降沿之后,I/O线上的第一位数据变为有效。随后每增加一个时序脉冲,芯片内部的一位数据被送到I/O线上,低位(LSB)在前。当所需要的最后一个数据送出之后,需要再附加一个时钟脉冲来把I/O线置成高阻状态(状态Z)。输出数据(OUTGOING)模式将IC卡芯片中的数据传送给读处理数据(PROCESSING)模式对IC卡芯片作内部处理(写/擦除/校验密码)芯片在第一个时钟脉冲的下降沿,将I/O线从高状态(H状态)拉到低状态(L状态)并开始处理。此后芯片在内部连续计时计数,直到第n个时钟脉冲之后的附加一个时钟脉冲的下降沿I/O线被再次置高,完成芯片的处理过程。在整个处理过程中I/O线被锁定成低状态。

处理数据(PROCESSING)模式对IC卡芯片作内部处理(;sle4442处理模式子程序PROCESS:MOVR7,#254DCLRCLKCLRIOLCALLDELAYPRO1:SETBCLKLCALLDELAYCLRCLKLCALLDELAYDJNZR7,PRO1SETBIOLCALLDELAYSETBCLKLCALLDELAYCLRCLKRET;sle4442处理模式子程序读主存储器

ReadMainMemory

命令格式:30H+字节地址+**模式:OUTGOING功能:读出从给定的字节地址(N)开始,直到整个存储器末尾的主存储器内容。说明:在该命令输入以后,接口设备IFD必须提供足够的时钟脉冲,起始地址为N时所需要的时钟脉冲数为M=(256-N)*8+1(N=0~255)例如:地址为7EH(N=254),M=17读主存储器

ReadMainMemory命令格式:30接触式逻辑加密卡技术课件接触式逻辑加密卡技术课件;**********读主存储器子程序**************READ:MOVCOM,#30H ;设置读主存储器控制字MOVADDR,#R_ADDR ;取读主存储器首地址MOVDAT,#00H ;设置读主存储器数据字(任意)MOVR4,NUM ;数据个数LCALLCOMMAND ;送命令给卡READ0:LCALLSHIN ;读数据(输出数据模式)MOV@R0,A ;送数据入数据缓冲区INCR0DJNZR4,READ0 ;未读完继续

;**********读主存储器子程序***********SETBCLK ;发送一个附加脉冲LCALLDELAYCLRCLKLCALLDELAYSETBIO ;置位数据线LCALLDELAYRETSETBCLK ;发送一个附加脉冲读保护存储器

ReadProtectionMemory命令格式:34H+**+**模式:OUTGOING功能:读出保护存储器各位(共32位)的内容。说明:在该命令输入以后,接口设备IFD必须提供32个时钟脉冲,最后通过一个附加时钟脉冲将I/O线置为高状态(H状态),即M=33读保护存储器

ReadProtectionMemory接触式逻辑加密卡技术课件读加密存储器

ReadSecurityMemory命令格式:3lH+**+**模式:OUTGOING功能:类似于读保护存储器,可以读出4个字节的加密存储器的内容。M=33说明:密码比较失败时只能读出错误计数器(字节0)的内容,字节1、2、3的内容将为000000(即不能读出密码)读加密存储器

ReadSecurityMemory命令接触式逻辑加密卡技术课件修改主存储器UpdataMainMemory命令格式:38H+字节地址+数据模式:PROCESSING功能:用所给出的数据修改主存储器指定字节地址(N)的内容说明:通常,要改变一个数据需要先进行擦除,再进行写入两项操作。如果在被寻址的字节里8位中没有一个字位需要从0变到1,则可以不进行擦除处理。反之亦然,在被寻址的字节中,如果没有一个字位需要从1变到0,则可以不作写入处理,写人或擦除操作一次至少要耗费2.5ms时间。因此,在处理模式期间,可能发生下列几种情况之一:擦除和写入(5ms):相应于M=256个时钟脉冲只写入不擦除(2.5ms):相应于M=124个时钟脉冲只擦除不写入(2.5ms):相应于M=124个时钟脉冲。修改主存储器UpdataMainMemory命令格式:接触式逻辑加密卡技术课件接触式逻辑加密卡技术课件;************修改主存储器子程序***********WRITE:MOVR4,NUM ;取要写的字节数MOVCOM,#38H ;设置修改主存储器控制字WRITE0:MOVADDR,#W_ADDR ;取修改主存储器首地址MOVA,@R0MOVDAT,A ;取修改主存储器数据字LCALLCOMMAND ;送修改主存储器命令给卡LCALLPROCESS ;处理模式INCW_ADDR ;地址字指向主存储器下一个单元INCR0 ;指向下一个数据DJNZR4,WRITE0 ;未写完继续RET;************修改主存储器子程序********修改加密存储器

UpdataSecurityMemory命令格式:39H+字节地址+数据模式:PROCESSING功能:用所给出的数据修改加密存储器指定字节地址的内容(即修改错误计数器或修改密码)说明:该命令只能在PSC比较成功之后才能进行。该命令的执行时间和所需要的时钟脉冲与修改主存储器的情况相同修改加密存储器

UpdataSecurityMemor写保护存储器

WriteProtectionMemory命令格式:3CH+字节地址(00H~1FH)+输入的数据模式:PROCESSING功能:这一命令的执行过程包含一个把被输入的数据与在EEPROM中对应数据进行比较的过程。在确认一致的情况下,保护字位被写0,从而使得主存储器中的信息不可更改。如果数据比较结果不一致,则保护字位的写操作将被禁止执行。说明:该命令所要求的时钟脉冲和执行时间与修改主存储器命令的情况相同。

写保护存储器

WriteProtectionMemor比较校验数据

CompareVarificationData

命令格式:33H+字节地址+数据模式:PROCESSING功能:把输入的“用户密码”的各个字节与相对应的PSC(存放在加密存储器中)进行比较说明:字节地址为01H~03H,数据为用户密码比较校验数据

CompareVarificationDa接触式逻辑加密卡技术课件读EC写EC的一位为0EC=000?校验三字节的密码擦除EC读ECEC=111?YYNN校验通过校验不成功EC中1的个数=允许重试的次数卡被锁死读EC写EC的一位为0EC=000?校验三字节的密码擦除ECPSC校验流程PSC校验的过程并不是仅由比较校验数据命令来完成的,而是由多个命令构成的一个流程来共同完成,流程一:用一个修改加密存储器命令将密码错误计数器中的一位写0。流程二:连续用三条比较校验数据命令比较输入的用户密码与加密存储器中存储的密码。比较从字节1开始。流程三:校验密码成功与否是用能否擦除密码错误计数器来证实的。如果校验成功,则擦除操作执行有效;如果校验不成功,擦除操作执行无效,密码错误计数器将不会恢复为“111”。但只要EC不全为0,就允许读写器对芯片进行重试。

PSC校验流程PSC校验的过程并不是仅由比较校验数据命令来完;************PSC校验子程序***************COMP:MOVCOM,#31H ;设置读加密存储器命令控制字MOVADDR,#00H ;设置读加密存储器命令地址字(00H为错误计数器)MOVDAT,#00H ;设置读加密存储器命令数据字(任意)LCALLCOMMAND ;送读加密存储器命令LCALLSHIN ;读错误计数器MOV23H,A ;错误计数器值暂存(23H)单元LCALLSHIN ;继续读入加密存储器后3个字节MOV24H,ALCALLSHINMOV25H,ALCALLSHINMOV26H,AMOVA,23HSETBIO ;附加一个脉冲,置数据线为高LCALLDELAYSETBCLKLCALLDELAYCLRCLK

;************PSC校验子程序*********JBACC.0,NEXT0 ;判断错误计数器中是否还有“1”;JBACC.1,NEXT1 ;如有“1”则减去一个“1”,;JBACC.0,NEXT2LJMPEXIT1 ;错误计数器为全“0”退出NEXT0:MOVDAT,#06H AJMPCOMP0NEXT1:MOVDAT,#04H AJMPCOMP0NEXT2:MOVDAT,#00HCOMP0:MOVCOM,#39H ;设置修改加密存储器命令控制字MOVADDR,#00H ;设置修改加密存储器命令地址字(错误计数器)LCALLCOMMAND ;送修改加密存储器命令(错误计数器减一个1)LCALLPROCESS ;处理模式JBACC.0,NEXT0 ;判断错误

MOVCOM,#33H ;设置PSC校验命令控制字MOVADDR,#01H ;设置PSC校验命令地址字MOVDAT,#PSC1 ;取PSC第一个字节LCALLCOMMAND ;送PSC校验命令给卡LCALLPROCESS ;处理模式MOVCOM,#33H ;设置PSC校验命令控制字MOVADDR,#02H ;设置PSC校验命令地址字MOVDAT,#PSC2 ;取PSC第二个字节LCALLCOMMAND ;送PSC校验命令给卡LCALLPROCESS ;处理模式MOVCOM,#33H ;设置PSC校验命令控制字MOVADDR,#03H ;设置PSC校验命令地址字MOVDAT,#PSC3 ;取PSC第三个字节LCALLCOMMAND ;送PSC校验命令给卡LCALLPROCESS ;处理模式MOVCOM,#33H ;设置PSC校验命

MOVCOM,#39H ;设置修改加密存储器命令控制字MOVADDR,#00H ;设置修改加密存储器命令地址字(错误计数器)MOVDAT,#07H ;取修改加密存储器命令数据字(擦除错误计数器)LCALLCOMMAND ;送修改加密存储器(擦除错误计数器)命令给卡LCALLPROCESS ;处理模式MOVCOM,#31H ;设置读加密存储器命令控制字MOVADDR,#00H ;设置读加密存储器命令地址字(错误计数器)MOVDAT,#00H ;设置读加密存储器命令数据字(任意)LCALLCOMMAND ;送读加密存储器命令给卡LCALLSHIN ;读加密存储器的错误计数器MOV23H,A

MOVCOM,#39H ;设置修改加密存储

LCALLSHIN ;读加密存储器的后三个字节MOV24H,ALCALLSHINMOV25H,ALCALLSHINMOV26H,AMOVA,23H ;EC值送ASETBIO ;附加一个脉冲,置数据线为高LCALLDELAYSETBCLKLCALLDELAYCLRCLKEXIT1: RETLCALLSHIN ;读加密存储器的后

IOBITP1.0 CLKBITP1.1 RSTBITP1.2 ICSWBITP1.6 PWRBITP1.7 PSC1EQU0FFH PSC2EQU0FFH PSC3EQU0FFH COMEQU20H ADDREQU21H DATEQU22HNUMEQU2FH;*************主程序**************ORG0030HMAIN:CLREA ;关中断MOVSP,#60H ;设置堆栈主程序 IOBITP1.0主程序

LCALLPWRON ;上电控制LCALLRESET ;复位MOVR0,#30H ;设置读数据缓冲区1首地址LCALLREAD ;读主存储器NOP ;断点①LCALLCOMP ;PSC校验XRLA,#07h ;断点②,检查PSC校验是否正确JNZEXIT ;PSC校验失败退出MOVR0,#50H ;设置写数据缓冲区首地址LCALLWRITE ;修改主存储器MOVR0,#40H ;设置读数据缓冲区2首地址LCALLREAD ;读主存储器EXIT:NOP ;断点③LCALLPWROFF ;下电控制SJMP$LCALLPWRON ;上电控制实训4接触式逻辑加密卡读写控制第一阶段:读卡1、通过复位应答方式读入SLE4442卡主存储器前4个字节的内容。2、通过读主存储器方式读入SLE4442卡主存储器前4个字节的内容。3、读主存储器任意起始地址、任意长度的数据块内容。课前准备:1、在原有AT24C01卡接口电路上增加RST连线及其上拉电阻。2、完成程序的编写、编译。实训4接触式逻辑加密卡读写控制第一阶段:读卡第二阶段:校验密码、写卡1、校验密码,校验成功则设标志寄存器B为00H,否则设为FFH并退出。2、判断校验密码是否成功,成功则在主存储器任意起始地址、任意长度的数据块中写入数据。否则退出。注意:校验密码错误退出程序后,请用通用读写器重新输入正确密码,以恢复EC的次数,切勿反复出错退出导致卡锁死!第二阶段:校验密码、写卡实训报告要求画出逻辑加密卡接口电路原理图。画出读主存储器、修改主存储器和校验密码的程序流程图。记录上述程序的调试步骤及调试结果。实训报告要求画出逻辑加密卡接口电路原理图。接触式逻辑加密卡技术电子与信息工程学院接触式逻辑加密卡技术电子与信息工程学院提纲接触式逻辑加密卡存储结构与安全技术

典型卡型剖析:SLE4406卡SLE4442卡AT88SC1608卡接触式逻辑加密卡的读写控制典型卡型剖析:SLE4442卡时序分析与读、写、密码校验程序提纲接触式逻辑加密卡存储结构与安全技术接触式逻辑加密卡组成SecurityMemoryCard接触式逻辑加密卡组成SecurityMemoryCard逻辑加密卡特性组成:非易失性存储器+硬件加密逻辑;芯片:专门为IC卡设计的芯片(ASIC);安全性:具有安全控制逻辑,安全性能较好;多种安全措施:PIN、EC、FUSE、TC、多存储器(ROM、PROM、EEPROM并存)、多分区存储结构。通信协议:支持ISO7816国际标准。适用场合:有一定安全要求的场合,如IC卡电话、网吧卡、加油卡、保险卡、驾驶卡、借书卡、小额电子钱包等。逻辑加密卡特性组成:非易失性存储器+硬件加密逻辑;典型逻辑加密卡—SLE4406一次性使用,带加密逻辑,按位操作计数卡(TokenMemoryCard),以一次性的计数方式,从写满的计数器中减“1”,直至存储单元全减为“0”为止

104位容量,最大可提供20480计数单位

3字节传输密码,1位发行标志保护

常用于具有定额定价的消费系统中,如公用电话卡、预付费加油卡、停车计费卡、游乐园消费卡等典型逻辑加密卡—SLE4406一次性使用,带加密逻辑,按位操SLE4406存储分布图和计数规则计数规则发行后,用户区进入计数状态,为5位8进制计数器,但第5位计数器只有4位可用,因此最大计数值为20480。说明:计数区按位写0,按字节借位擦除,如:1111111100000000擦成:1111111011111111

SLE4406存储分布图和计数规则计数规则SLE4406操作方式检查发行标志位是否为1,是则可以校验传输密码先将密码计数器-1,然后比较密码,校验正确则密码计数器恢复,允许写入发行商代码,将控制位写为0(发行)。允许初始化计数器(擦除第2-5字节并重新写入),此操作将撕毁传输密码并不可恢复。一旦控制位为0,表示已发行,将不能再更改发行商代码。第2-5字节成为5位计数器,只能写0及借位擦除。

SLE4406操作方式检查发行标志位是否为1,是则可以校验传SLE4406保密特性

SLE4406保密特性典型逻辑加密卡—SLE4442按字节操作,可反复应用多存储器结构

256*8位EEPROM型主存储器。32*1位PROM型保护存储器。4*8位EEPROM型加密存储器

安全性:用户密码(3字节)+密码错误计数(3次)+PROM保护

2线串行连接协议,满足ISO7816同步传送协议典型逻辑加密卡—SLE4442按字节操作,可反复应用SLE4442存储结构SLE4442存储结构SLE4442存储器分配(一)主存储器(mainmemory):EEPROM型,256B按字节操作,字节地址0~255(00H~FFH),所有单元可任意读取。主存储器可分为两个数据区:保护数据区:00H-1FH,用户密码+熔丝保护(擦除、写当校验用户密码正确且熔丝未熔断时允许进行擦除和写入操作,否则不允许熔丝:保护存储器中第n位(n=0~31)对应主存储器中第n个字节,1——未熔断,0——熔断。应用数据区:20H-FFH。用户密码保护(擦除、写)SLE4442存储器分配(一)主存储器(mainmemorSLE4442存储器分配(二)保护存储器(protectionmemory):PROM型,32bits按位操作,位地址0~31每位相当于主存储器保护数据区对应字节单元的控制熔丝(FUSE),相应位为1时该字节可擦写,为0时不可保护存储器可任意读出,但需校验密码正确方能写入,一经写入(从1变为0)不可再擦除,可理解为FUSE一经熔断不可再恢复。SLE4442存储器分配(二)保护存储器(protectioSLE4442存储器分配(三)加密存储器(securitymemory):EEPROM型,4B按字节操作,字节地址0~3字节0:EC(ErrorCounter),低3位有效,

可任意读、写,用户密码校验成功方可擦除。字节1,2,3:3字节PSC(可编程加密代码)

PSC校验成功前不可读,只能进行比较操作;密码“比较”成功后才可以进行读出、写入和擦除。

SLE4442存储器分配(三)加密存储器(security典型逻辑加密卡—AT88SC1608按字节操作,可反复应用存储容量:16Kbits安全性:三重密码+熔丝+读写控制位单存储器、多存储分区结构

标志数据区:制造商、发行商代码。控制数据区:SC(2字节)、EC、Erasekey。应用数据区:4个、各自独立2线串行连接协议,满足ISO7816同步传送协议典型逻辑加密卡—AT88SC1608按字节操作,可反复应用SC1一区密码SC1AT88SC1608存储器分配(一)标志数据区:验证卡片真伪的重要标识

制造商代码区FZ(FabricationZone),2B记录卡芯片生产商的特定信息(例如:生产批号、日期、特别制定的特征代码)

FUSE1熔断前,可读,可更改

FUSE1熔断后,只读,不可更改发行商代码区IZ(IssuerZone),8B

用于记录卡片发行商的特定信息(例如:发行批号、日期、地区范围编号、特定用户编号等特征代码)

FUSE2熔断前,可读,可更改

FUSE2熔断后,只读,不可更改AT88SC1608存储器分配(一)标志数据区:验证卡片真伪AT88SC1608存储器分配(二)控制数据区:三重密码+密码错误计数用户密码SC(SecurityCode),2B用户密码错误计数SCAC(SecurityCodeAttemptsCounter),1B(8次)应用区密码SC1~SC4,2B应用区密码错误计数SCAC1~SCAC4,8次应用区擦除密码EZ1~4(Erasekey),2B

应用区擦除密码错误计数EnAC

(ErasekeyAttemptsCounter,n=1,2,3,4),8次AT88SC1608存储器分配(二)控制数据区:三重密码+密AT88SC1608存储器分配(三)应用数据区:1~4,各自独立,特性相同存储用户的相关数据记录。第1位为写保护位(P1);第2位为读保护位(R1),均为1有效(可读/写)

AT88SC1608存储器分配(三)应用数据区:1~4,各自实训3

接触式逻辑加密卡读写操作

准备:确认电源正、负极,按标志正确连接接触式IC卡读写器的电源线及串口线,注意电源+5V与地不可接反。打开接触式IC卡读写器读写操作软件DEMO,确认通信正常。将实验白卡插入接触式IC卡读写器插卡槽,自动测卡进入卡操作界面。SLE4442卡密码:FFFFFFHAT88SC1608卡密码:F0F0H或A5A5H实训3接触式逻辑加密卡读写操作准备:SLE4442读写操作

读卡:记录卡密码、卡错误计数值,主存储器存储结构(各区域名称、地址范围、字节数)、存储内容和读出条件。写卡:对主存储器各区域进行写入/擦除操作,记录操作结果,总结各区域写入/擦除条件。密码操作:(1)修改密码:在未通过和已通过密码校验二种情况下分别修改密码,记录操作结果,总结修改密码的条件。(2)恶意猜测密码:在未通过密码校验的情况下输入错误密码,记录此时的读卡、写卡结果。注意:修改密码后必须及时还原密码为FFFFFFH。猜测密码错误次数不得超过2次!以免锁卡!SLE4442读写操作读卡:记录卡密码、卡错误计数值,主存AT88SC1608读写操作

读卡:在未通过和已通过密码校验二种情况下记录存储器存储结构(各区域名称、地址范围、字节数)、存储内容和读出条件。写卡:在未通过和已通过密码校验二种情况下对存储器各区域进行写入/擦除操作,记录操作结果,总结各区域写入/擦除条件。熔丝操作:模拟熔断,对存储器各区域进行写入/擦除操作,记录操作结果,总结熔断操作对各区域的保护作用。注意:修改密码后必须及时还原密码。猜测密码错误次数不得超过8次!以免锁卡!只允许模拟熔断,不可熔断,否则将无法恢复。AT88SC1608读写操作读卡:在未通过和已通过密码校验任务设计IC卡网吧收费机基本要求:1、判断是否SLE4442卡2、读卡,根据读出的发行商标志判断是否本网吧的卡。读出卡中余额,判断是否允许上网。3、校验密码,密码正确为合法卡。4、写卡,扣款后允许上网,时间到则继续扣款,直至停止上网或余额不足。进阶要求实现网吧收费机与PC机的通信任务设计IC卡网吧收费机硬件设计——SLE4442引脚分配C1:Vcc(SupplyVoltage)C2:RST(Reset)C3:CLK(SerialClock)C4:(NC)C5:GNDC6:I/O(Bidirectionalserialdata,opendrain)C7:(NC)C8:(NC)硬件设计——SLE4442引脚分配C1:Vcc(SupplySLE4442接口电路SLE4442接口电路软件设计——SLE4442操作时序通信协议:2线连接协议,满足ISO7816同步传送协议数据传输:CLK信号下降沿有效。复位和复位响应(ResetandAnswer-to-Reset):上电后启动芯片,符合7816命令(Command):

命令=开始+(控制字+地址字+数据字)+附加脉冲+停止

操作模式(Mode):读数据:输出数据模式(OUTGOINGDATAMODE):写入、擦除、校验:处理模式(PROCESSINGMODE)软件设计——SLE4442操作时序通信协议:2线连接协议,满接触式逻辑加密卡技术课件复位和复位响应(ResetandAnswer-to-Reset):SLE4442上电后,读写器首先应给出复位(Reset)命令并等待接收来自卡的复位响应ATR(Answer-To-Reset)。复位和复位响应(ResetandAnswer-to-Re复位和复位响应

(ResetandAnswer-to-Reset)复位响应:符合ISO7816-3标准的ATR当RST为高时,送第一个时钟脉冲(脉冲0)使地址计数器清0(复位)。当RST线从高状态(H状态)置到低状态(L状态)时,第一个数据位(主存储器字节0的LSB)的内容被送到I/O上。若连续输人32个时钟脉冲(脉冲1~32),主存储器中的前4个字节(4*8位=32位)地址单元中的内容被读出(复位响应)。在第33个时钟脉冲(脉冲32)的下降沿,I/O线被置成高阻状态(状态Z)而关闭(复位和复位响应过程结束)复位和复位响应

(ResetandAnswer-to-R;*************复位子程序***************RESET:CLRRSTCLRCLKCLRIOLCALLDELAY_12LCALLDELAY_12SETBRSTLCALLDELAY_12SETBCLKLCALLDELAY_12CLRCLKLCALLDELAY_12CLRRSTLCALLDELAY_12MOVB,#20HRESET0:SETBCLKLCALLDELAY_12CLRCLKLCALLDELAY_12DJNZB,RESET0SETBIORET如何读出复位应答呢;*************复位子程序**********;4442串行输出一个字节子程序,即MCU读入一个字节SHIN:CLRCLKPUSHBMOVB,#08HX43:LCALLDELAYSETBCLKMOVC,IORRCALCALLDELAYCLRCLKDJNZB,X43POPBRET将RESET程序中的32个脉冲换为调用SHIN子程序4次,读入4个字节的ATR;4442串行输出一个字节子程序,即MCU读入一个字节将命令(Command)复位响应以后,芯片等待着命令。命令=开始+(控制字+地址字+数据字)+附加脉冲+停止

。开始:在CLK为高状态(H)期间,I/O的下降沿为开始状态。停止:在CLK为高状态(H)期间,I/O的上升沿为停止状态。命令(Command)复位响应以后,芯片等待着命令。SLE4442操作命令SLE4442操作命令;************命令子程序***************;该子程序送出三字节的SLE4442命令;入口参数:COM为控制字,ADDR为地址字,DAT为数据字COMMAND:SETBCLK LCALLDELAY_12 CLRIO;开始 LCALLDELAY CLRCLK LCALLDELAY MOVA,COM ;送命令字 LCALLSHOUT MOVA,ADDR ;送地址字 LCALLSHOUT MOVA,DAT ;送数据 LCALLSHOUT LCALLDELAY CLRIO LCALLDELAY SETBCLK ;附加脉冲 LCALLDELAY SETBIO ;停止 RET怎样向卡中写入一个字节?;************命令子程序************;sle4442串行输入一个字节函数,即MCU向卡写入一字节SHOUT:PUSHBMOVB,#08HX42:RRCAMOVIO,CNOPSETBCLKLCALLDELAYCLRCLKLCALLDELAYDJNZB,X42POPBRET;sle4442串行输入一个字节函数,即MCU向卡写入操作模式(Mode)接收了一个命令之后,卡芯片处于两种可能的模式:(1)读数据:输出数据模式;(2)写入、擦除、校验密码:处理模式。操作模式(Mode)接收了一个命令之后,卡芯片处于输出数据(OUTGOING)模式将IC卡芯片中的数据传送给读写器在第一个CLK脉冲的下降沿之后,I/O线上的第一位数据变为有效。随后每增加一个时序脉冲,芯片内部的一位数据被送到I/O线上,低位(LSB)在前。当所需要的最后一个数据送出之后,需要再附加一个时钟脉冲来把I/O线置成高阻状态(状态Z)。输出数据(OUTGOING)模式将IC卡芯片中的数据传送给读处理数据(PROCESSING)模式对IC卡芯片作内部处理(写/擦除/校验密码)芯片在第一个时钟脉冲的下降沿,将I/O线从高状态(H状态)拉到低状态(L状态)并开始处理。此后芯片在内部连续计时计数,直到第n个时钟脉冲之后的附加一个时钟脉冲的下降沿I/O线被再次置高,完成芯片的处理过程。在整个处理过程中I/O线被锁定成低状态。

处理数据(PROCESSING)模式对IC卡芯片作内部处理(;sle4442处理模式子程序PROCESS:MOVR7,#254DCLRCLKCLRIOLCALLDELAYPRO1:SETBCLKLCALLDELAYCLRCLKLCALLDELAYDJNZR7,PRO1SETBIOLCALLDELAYSETBCLKLCALLDELAYCLRCLKRET;sle4442处理模式子程序读主存储器

ReadMainMemory

命令格式:30H+字节地址+**模式:OUTGOING功能:读出从给定的字节地址(N)开始,直到整个存储器末尾的主存储器内容。说明:在该命令输入以后,接口设备IFD必须提供足够的时钟脉冲,起始地址为N时所需要的时钟脉冲数为M=(256-N)*8+1(N=0~255)例如:地址为7EH(N=254),M=17读主存储器

ReadMainMemory命令格式:30接触式逻辑加密卡技术课件接触式逻辑加密卡技术课件;**********读主存储器子程序**************READ:MOVCOM,#30H ;设置读主存储器控制字MOVADDR,#R_ADDR ;取读主存储器首地址MOVDAT,#00H ;设置读主存储器数据字(任意)MOVR4,NUM ;数据个数LCALLCOMMAND ;送命令给卡READ0:LCALLSHIN ;读数据(输出数据模式)MOV@R0,A ;送数据入数据缓冲区INCR0DJNZR4,READ0 ;未读完继续

;**********读主存储器子程序***********SETBCLK ;发送一个附加脉冲LCALLDELAYCLRCLKLCALLDELAYSETBIO ;置位数据线LCALLDELAYRETSETBCLK ;发送一个附加脉冲读保护存储器

ReadProtectionMemory命令格式:34H+**+**模式:OUTGOING功能:读出保护存储器各位(共32位)的内容。说明:在该命令输入以后,接口设备IFD必须提供32个时钟脉冲,最后通过一个附加时钟脉冲将I/O线置为高状态(H状态),即M=33读保护存储器

ReadProtectionMemory接触式逻辑加密卡技术课件读加密存储器

ReadSecurityMemory命令格式:3lH+**+**模式:OUTGOING功能:类似于读保护存储器,可以读出4个字节的加密存储器的内容。M=33说明:密码比较失败时只能读出错误计数器(字节0)的内容,字节1、2、3的内容将为000000(即不能读出密码)读加密存储器

ReadSecurityMemory命令接触式逻辑加密卡技术课件修改主存储器UpdataMainMemory命令格式:38H+字节地址+数据模式:PROCESSING功能:用所给出的数据修改主存储器指定字节地址(N)的内容说明:通常,要改变一个数据需要先进行擦除,再进行写入两项操作。如果在被寻址的字节里8位中没有一个字位需要从0变到1,则可以不进行擦除处理。反之亦然,在被寻址的字节中,如果没有一个字位需要从1变到0,则可以不作写入处理,写人或擦除操作一次至少要耗费2.5ms时间。因此,在处理模式期间,可能发生下列几种情况之一:擦除和写入(5ms):相应于M=256个时钟脉冲只写入不擦除(2.5ms):相应于M=124个时钟脉冲只擦除不写入(2.5ms):相应于M=124个时钟脉冲。修改主存储器UpdataMainMemory命令格式:接触式逻辑加密卡技术课件接触式逻辑加密卡技术课件;************修改主存储器子程序***********WRITE:MOVR4,NUM ;取要写的字节数MOVCOM,#38H ;设置修改主存储器控制字WRITE0:MOVADDR,#W_ADDR ;取修改主存储器首地址MOVA,@R0MOVDAT,A ;取修改主存储器数据字LCALLCOMMAND ;送修改主存储器命令给卡LCALLPROCESS ;处理模式INCW_ADDR ;地址字指向主存储器下一个单元INCR0 ;指向下一个数据DJNZR4,WRITE0 ;未写完继续RET;************修改主存储器子程序********修改加密存储器

UpdataSecurityMemory命令格式:39H+字节地址+数据模式:PROCESSING功能:用所给出的数据修改加密存储器指定字节地址的内容(即修改错误计数器或修改密码)说明:该命令只能在PSC比较成功之后才能进行。该命令的执行时间和所需要的时钟脉冲与修改主存储器的情况相同修改加密存储器

UpdataSecurityMemor写保护存储器

WriteProtectionMemory命令格式:3CH+字节地址(00H~1FH)+输入的数据模式:PROCESSING功能:这一命令的执行过程包含一个把被输入的数据与在EEPROM中对应数据进行比较的过程。在确认一致的情况下,保护字位被写0,从而使得主存储器中的信息不可更改。如果数据比较结果不一致,则保护字位的写操作将被禁止执行。说明:该命令所要求的时钟脉冲和执行时间与修改主存储器命令的情况相同。

写保护存储器

WriteProtectionMemor比较校验数据

CompareVarificationData

命令格式:33H+字节地址+数据模式:PROCESSING功能:把输入的“用户密码”的各个字节与相对应的PSC(存放在加密存储器中)进行比较说明:字节地址为01H~03H,数据为用户密码比较校验数据

CompareVarificationDa接触式逻辑加密卡技术课件读EC写EC的一位为0EC=000?校验三字节的密码擦除EC读ECEC=111?YYNN校验通过校验不成功EC中1的个数=允许重试的次数卡被锁死读EC写EC的一位为0EC=000?校验三字节的密码擦除ECPSC校验流程PSC校验的过程并不是仅由比较校验数据命令来完成的,而是由多个命令构成的一个流程来共同完成,流程一:用一个修改加密存储器命令将密码错误计数器中的一位写0。流程二:连续用三条比较校验数据命令比较输入的用户密码与加密存储器中存储的密码。比较从字节1开始。流程三:校验密码成功与否是用能否擦除密码错误计数器来证实的。如果校验成功,则擦除操作执行有效;如果校验不成功,擦除操作执行无效,密码错误计数器将不会恢复为“111”。但只要EC不全为0,就允许读写器对芯片进行重试。

PSC校验流程PSC校验的过程并不是仅由比较校验数据命令来完;************PSC校验子程序***************COMP:MOVCOM,#31H ;设置读加密存储器命令控制字MOVADDR,#00H ;设置读加密存储器命令地址字(00H为错误计数器)MOVDAT,#00H ;设置读加密存储器命令数据字(任意)LCALLCOMMAND ;送读加密存储器命令LCALLSHIN ;读错误计数器MOV23H,A ;错误计数器值暂存(23H)单元LCALLSHIN ;继续读入加密存储器后3个字节MOV24H,ALCALLSHINMOV25H,ALCALLSHINMOV26H,AMOVA,23HSETBIO ;附加一个脉冲,置数据线为高LCALLDELAYSETBCLKLCALLDELAYCLRCLK

;************PSC校验子程序*********JBACC.0,NEXT0 ;判断错误计数器中是否还有“1”;JBACC.1,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论