SmartCard接触式逻辑加密卡技术电子与信息工程学院SmartCard提纲接触式逻辑加密卡存储结构与安全技术典型卡型剖析:SLE4406卡SLE4442卡AT88SC1608卡接触式逻辑加密卡的读写控制典型卡型剖析:SLE4442卡时序分析与读、写、密码校验程序SmartCard接触式逻辑加密卡组成SecurityMemoryCardSmartCard逻辑加密卡特性组成:非易失性存储器+硬件加密逻辑;芯片:专门为IC卡设计的芯片(ASIC);安全性:具有安全控制逻辑,安全性能较好;多种安全措施:PIN、EC、FUSE、TC、多存储器(ROM、PROM、EEPROM并存)、多分区存储结构。通信协议:支持ISO7816国际标准。适用场合:有一定安全要求的场合,如IC卡电话、网吧卡、加油卡、保险卡、驾驶卡、借书卡、小额电子钱包等。SmartCard典型逻辑加密卡—SLE4406一次性使用,带加密逻辑,按位操作计数卡(TokenMemoryCard),以一次性的计数方式,从写满的计数器中减“1”,直至存储单元全减为“0”为止104位容量,最大可提供20480计数单位3字节传输密码,1位发行标志保护常用于具有定额定价的消费系统中,如公用电话卡、预付费加油卡、停车计费卡、游乐园消费卡等SmartCardSLE4406存储分布图和计数规则计数规则发行后,用户区进入计数状态,为5位8进制计数器,但第5位计数器只有4位可用,因此最大计数值为20480。说明:计数区按位写0,按字节借位擦除,如:1111111100000000擦成:111111101111111110011000001000001111111111111111111111111111111111111111111111111111111011111110111111111111111111111111发行商代码厂商测试位发行标志,为0表示已发行厂商标志计数区SmartCardSLE4406操作方式检查发行标志位是否为1,是则可以校验传输密码先将密码计数器-1,然后比较密码,校验正确则密码计数器恢复,允许写入发行商代码,将控制位写为0(发行)。允许初始化计数器(擦除第2-5字节并重新写入),此操作将撕毁传输密码并不可恢复。一旦控制位为0,表示已发行,将不能再更改发行商代码。第2-5字节成为5位计数器,只能写0及借位擦除。SmartCardSLE4406保密特性保密特性序号存储区名称地址字节数发行前发行后1厂商代码0~23出厂时已固化,任何情况下可读,不能更改同发行前2发行商代码3~75用户密码核对正确后,可写、不可擦固化,不可更改3用户区8~125第1字节(地址8):第0位为控制位,1~3位为厂商测试位,余下4~7位给用户使用。第2字节(地址9):发行前为密码计数器,每校验一次密码,计数器减1第3~5字节(地址10~12):发行前为密码区,密码校验成功后,可以读出密码。第1字节(地址8):第0位置“0”表示已发行,4~7位用户可作为计数区使用。第2~5字节(地址9~12):发行后变为计数区,为5位8进制计数器。计数区按位写0,按字节借位擦除SmartCard典型逻辑加密卡—SLE4442按字节操作,可反复应用多存储器结构256*8位EEPROM型主存储器。32*1位PROM型保护存储器。4*8位EEPROM型加密存储器安全性:用户密码(3字节)+密码错误计数(3次)+PROM保护2线串行连接协议,满足ISO7816同步传送协议SmartCardI/O读写错误计数器加密逻辑可编程加密代码32字节保护数据存储器(厂商代码)224字节未保护数据存储器保护存储器PROM地址02553132SLE4442存储结构SmartCardSLE4442存储器分配(一)主存储器(mainmemory):EEPROM型,256B按字节操作,字节地址0~255(00H~FFH),所有单元可任意读取。主存储器可分为两个数据区:保护数据区:00H-1FH,用户密码+熔丝保护(擦除、写当校验用户密码正确且熔丝未熔断时允许进行擦除和写入操作,否则不允许熔丝:保护存储器中第n位(n=0~31)对应主存储器中第n个字节,1——未熔断,0——熔断。应用数据区:20H-FFH。用户密码保护(擦除、写)SmartCardSLE4442存储器分配(二)保护存储器(protectionmemory):PROM型,32bits按位操作,位地址0~31每位相当于主存储器保护数据区对应字节单元的控制熔丝(FUSE),相应位为1时该字节可擦写,为0时不可保护存储器可任意读出,但需校验密码正确方能写入,一经写入(从1变为0)不可再擦除,可理解为FUSE一经熔断不可再恢复。SmartCardSLE4442存储器分配(三)加密存储器(securitymemory):EEPROM型,4B按字节操作,字节地址0~3字节0:EC(ErroeCounter),低3位有效,可任意读、写,用户密码校验成功方可擦除。字节1,2,3:3字节PSC(可编程加密代码)PSC校验成功前不可读,只能进行比较操作;密码“比较”成功后才可以进行读出、写入和擦除。SmartCard典型逻辑加密卡—AT88SC1608按字节操作,可反复应用存储容量:16Kbits安全性:三重密码+熔丝+读写控制位单存储器、多存储分区结构标志数据区:制造商、发行商代码。控制数据区:SC(2字节)、EC、Erasekey。应用数据区:4个、各自独立2线串行连接协议,满足ISO7816同步传送协议SmartCard000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E(注:此存储图只表示了应用区一、二,应用区三、四省略,图中——表示省略)313affffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff----------ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffFZ厂商代码IZ发行商代码SC总密码SCAC总密码错误计数器CPZ代码保护区S1AC一区密码错误计数器AZ1应用区一E1AC一区擦除密码计数器SC2二区密码EZ1一区擦除密码EZ2二区擦除密码E2AC二区擦除密码错误计数器SC1一区密码SmartCardAT88SC1608存储器分配(一)标志数据区:验证卡片真伪的重要标识制造商代码区FZ(FabricationZone),2B记录卡芯片生产商的特定信息(例如:生产批号、日期、特别制定的特征代码)FUSE1熔断前,可读,可更改FUSE1熔断后,只读,不可更改发行商代码区IZ(IssuerZone),8B用于记录卡片发行商的特定信息(例如:发行批号、日期、地区范围编号、特定用户编号等特征代码)FUSE2熔断前,可读,可更改FUSE2熔断后,只读,不可更改SmartCardAT88SC1608存储器分配(二)控制数据区:三重密码+密码错误计数用户密码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次SmartCardAT88SC1608存储器分配(三)应用数据区:1~4,各自独立,特性相同存储用户的相关数据记录。第1位为写保护位(P1);第2位为读保护位(R1),均为1有效(可读/写)熔丝熔断前熔丝熔断后读:当R1=“1”,任何情况下可读当R1=“0”,总密码核对正确前,不可读写:总密码校验正确后,可写擦:总密码校验正确后,可擦读:特性同熔丝前。写:当P1=“1”,总密码核对正确,应用区密码核对正确,则可写。当P1=“0”,任何情况下不可写。擦:总密码核对正确,应用区密码核对正确,擦除密码核对正确,则应用区可按字节擦除。SmartCard实训3接触式逻辑加密卡读写操作准备:确认电源正、负极,按标志正确连接接触式IC卡读写器的电源线及串口线,注意电源+5V与地不可接反。打开接触式IC卡读写器读写操作软件DEMO,确认通信正常。将实验白卡插入接触式IC卡读写器插卡槽,自动测卡进入卡操作界面。SLE4442卡密码:FFFFFFHAT88SC1608卡密码:F0F0H或A5A5HSmartCardSLE4442读写操作读卡:记录卡密码、卡错误计数值,主存储器存储结构(各区域名称、地址范围、字节数)、存储内容和读出条件。写卡:对主存储器各区域进行写入/擦除操作,记录操作结果,总结各区域写入/擦除条件。密码操作:(1)修改密码:在未通过和已通过密码校验二种情况下分别修改密码,记录操作结果,总结修改密码的条件。(2)恶意猜测密码:在未通过密码校验的情况下输入错误密码,记录此时的读卡、写卡结果。注意:修改密码后必须及时还原密码为FFFFFFH。猜测密码错误次数不得超过2次!以免锁卡!SmartCardAT88SC1608读写操作读卡:在未通过和已通过密码校验二种情况下记录存储器存储结构(各区域名称、地址范围、字节数)、存储内容和读出条件。写卡:在未通过和已通过密码校验二种情况下对存储器各区域进行写入/擦除操作,记录操作结果,总结各区域写入/擦除条件。熔丝操作:模拟熔断,对存储器各区域进行写入/擦除操作,记录操作结果,总结熔断操作对各区域的保护作用。注意:修改密码后必须及时还原密码。猜测密码错误次数不得超过8次!以免锁卡!只允许模拟熔断,不可熔断,否则将无法恢复。SmartCard任务设计IC卡网吧收费机基本要求:1、判断是否SLE4442卡2、读卡,根据读出的发行商标志判断是否本网吧的卡。读出卡中余额,判断是否允许上网。3、校验密码,密码正确为合法卡。4、写卡,扣款后允许上网,时间到则继续扣款,直至停止上网或余额不足。进阶要求实现网吧收费机与PC机的通信SmartCard硬件设计——SLE4442引脚分配C1:Vcc(SupplyVoltage)C2:RST(Reset)C3:CLK(SerialClock)C4:(NC)C5:GNDC6:I/O(Bidirectionalserialdata,opendrain)C7:(NC)C8:(NC)C1C2C3C4C5C6C7C8VccRSTCLKN.C.GNDN.C.I/ON.C.SmartCardVccGNDI/ORSTSW2CLKSW189C51P1.0P1.1P1.6P1.7P1.2R11.2K9012PNP+5V+5VR210K*4SMARTADPSLE4442接口电路SmartCard软件设