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

下载本文档

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

文档简介

接触式逻辑加密卡技术 电子与信息工程学院 提纲 接触式逻辑加密卡存储结构与安全技术典型卡型剖析 SLE4406卡SLE4442卡AT88SC1608卡接触式逻辑加密卡的读写控制典型卡型剖析 SLE4442卡时序分析与读 写 密码校验程序 接触式逻辑加密卡组成 SecurityMemoryCard 逻辑加密卡特性 组成 非易失性存储器 硬件加密逻辑 芯片 专门为IC卡设计的芯片 ASIC 安全性 具有安全控制逻辑 安全性能较好 多种安全措施 PIN EC FUSE TC 多存储器 ROM PROM EEPROM并存 多分区存储结构 通信协议 支持ISO7816国际标准 适用场合 有一定安全要求的场合 如IC卡电话 网吧卡 加油卡 保险卡 驾驶卡 借书卡 小额电子钱包等 典型逻辑加密卡 SLE4406 一次性使用 带加密逻辑 按位操作计数卡 TokenMemoryCard 以一次性的计数方式 从写满的计数器中减 1 直至存储单元全减为 0 为止104位容量 最大可提供20480计数单位3字节传输密码 1位发行标志保护常用于具有定额定价的消费系统中 如公用电话卡 预付费加油卡 停车计费卡 游乐园消费卡等 SLE4406存储分布图和计数规则 计数规则发行后 用户区进入计数状态 为5位8进制计数器 但第5位计数器只有4位可用 因此最大计数值为20480 说明 计数区按位写0 按字节借位擦除 如 1111111100000000擦成 1111111011111111 SLE4406操作方式 检查发行标志位是否为1 是则可以校验传输密码先将密码计数器 1 然后比较密码 校验正确则密码计数器恢复 允许写入发行商代码 将控制位写为0 发行 允许初始化计数器 擦除第2 5字节并重新写入 此操作将撕毁传输密码并不可恢复 一旦控制位为0 表示已发行 将不能再更改发行商代码 第2 5字节成为5位计数器 只能写0及借位擦除 SLE4406保密特性 典型逻辑加密卡 SLE4442 按字节操作 可反复应用多存储器结构 位 型主存储器 1位 型保护存储器 位 型加密存储器安全性 用户密码 3字节 密码错误计数 3次 PROM保护 线串行连接协议 满足ISO7816同步传送协议 SLE4442存储结构 SLE4442存储器分配 一 主存储器 mainmemory EEPROM型 256B按字节操作 字节地址0 255 00H FFH 所有单元可任意读取 主存储器可分为两个数据区 保护数据区 00H 1FH 用户密码 熔丝保护 擦除 写当校验用户密码正确且熔丝未熔断时允许进行擦除和写入操作 否则不允许熔丝 保护存储器中第n位 n 0 31 对应主存储器中第n个字节 1 未熔断 0 熔断 应用数据区 20H FFH 用户密码保护 擦除 写 SLE4442存储器分配 二 保护存储器 protectionmemory PROM型 32bits按位操作 位地址0 31每位相当于主存储器保护数据区对应字节单元的控制熔丝 FUSE 相应位为1时该字节可擦写 为0时不可保护存储器可任意读出 但需校验密码正确方能写入 一经写入 从1变为0 不可再擦除 可理解为FUSE一经熔断不可再恢复 SLE4442存储器分配 三 加密存储器 securitymemory EEPROM型 4B按字节操作 字节地址0 3字节0 ErrorCounter 低3位有效 可任意读 写 用户密码校验成功方可擦除 字节1 2 3 3字节PSC 可编程加密代码 PSC校验成功前不可读 只能进行比较操作 密码 比较 成功后才可以进行读出 写入和擦除 典型逻辑加密卡 AT88SC1608 按字节操作 可反复应用存储容量 16Kbits安全性 三重密码 熔丝 读写控制位单存储器 多存储分区结构标志数据区 制造商 发行商代码 控制数据区 SC 2字节 EC Erasekey 应用数据区 4个 各自独立 线串行连接协议 满足ISO7816同步传送协议 SC1一区密码 AT88SC1608存储器分配 一 标志数据区 验证卡片真伪的重要标识制造商代码区FZ FabricationZone 2B记录卡芯片生产商的特定信息 例如 生产批号 日期 特别制定的特征代码 FUSE1熔断前 可读 可更改FUSE1熔断后 只读 不可更改发行商代码区IZ IssuerZone 8B用于记录卡片发行商的特定信息 例如 发行批号 日期 地区范围编号 特定用户编号等特征代码 FUSE2熔断前 可读 可更改FUSE2熔断后 只读 不可更改 AT88SC1608存储器分配 二 控制数据区 三重密码 密码错误计数用户密码SC SecurityCode 2B用户密码错误计数SCAC SecurityCodeAttemptsCounter 1B 8次 应用区密码SC1 SC4 2B应用区密码错误计数SCAC1 SCAC4 8次应用区擦除密码EZ1 4 Erasekey 2B应用区擦除密码错误计数EnAC ErasekeyAttemptsCounter 1 2 3 4 8次 AT88SC1608存储器分配 三 应用数据区 1 4 各自独立 特性相同存储用户的相关数据记录 第1位为写保护位 P1 第2位为读保护位 R1 均为1有效 可读 写 实训3接触式逻辑加密卡读写操作 准备 确认电源正 负极 按标志正确连接接触式IC卡读写器的电源线及串口线 注意电源 5V与地不可接反 打开接触式IC卡读写器读写操作软件DEMO 确认通信正常 将实验白卡插入接触式IC卡读写器插卡槽 自动测卡进入卡操作界面 SLE4442卡密码 FFFFFFHAT88SC1608卡密码 F0F0H或A5A5H SLE4442读写操作 读卡 记录卡密码 卡错误计数值 主存储器存储结构 各区域名称 地址范围 字节数 存储内容和读出条件 写卡 对主存储器各区域进行写入 擦除操作 记录操作结果 总结各区域写入 擦除条件 密码操作 1 修改密码 在未通过和已通过密码校验二种情况下分别修改密码 记录操作结果 总结修改密码的条件 2 恶意猜测密码 在未通过密码校验的情况下输入错误密码 记录此时的读卡 写卡结果 注意 修改密码后必须及时还原密码为FFFFFFH 猜测密码错误次数不得超过2次 以免锁卡 AT88SC1608读写操作 读卡 在未通过和已通过密码校验二种情况下记录存储器存储结构 各区域名称 地址范围 字节数 存储内容和读出条件 写卡 在未通过和已通过密码校验二种情况下对存储器各区域进行写入 擦除操作 记录操作结果 总结各区域写入 擦除条件 熔丝操作 模拟熔断 对存储器各区域进行写入 擦除操作 记录操作结果 总结熔断操作对各区域的保护作用 注意 修改密码后必须及时还原密码 猜测密码错误次数不得超过8次 以免锁卡 只允许模拟熔断 不可熔断 否则将无法恢复 任务 设计IC卡网吧收费机基本要求 1 判断是否SLE4442卡2 读卡 根据读出的发行商标志判断是否本网吧的卡 读出卡中余额 判断是否允许上网 3 校验密码 密码正确为合法卡 4 写卡 扣款后允许上网 时间到则继续扣款 直至停止上网或余额不足 进阶要求实现网吧收费机与PC机的通信 硬件设计 SLE4442引脚分配 C1 Vcc SupplyVoltage C2 RST Reset C3 CLK SerialClock C4 NC C5 GNDC6 I O Bidirectionalserialdata opendrain C7 NC C8 NC SLE4442接口电路 软件设计 SLE4442操作时序 通信协议 2线连接协议 满足ISO7816同步传送协议数据传输 CLK信号下降沿有效 复位和复位响应 ResetandAnswer to Reset 上电后启动芯片 符合7816命令 Command 命令 开始 控制字 地址字 数据字 附加脉冲 停止操作模式 Mode 读数据 输出数据模式 OUTGOINGDATAMODE 写入 擦除 校验 处理模式 PROCESSINGMODE 复位和复位响应 ResetandAnswer to Reset SLE4442上电后 读写器首先应给出复位 Reset 命令并等待接收来自卡的复位响应ATR Answer To Reset 复位和复位响应 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 而关闭 复位和复位响应过程结束 复位子程序 RESET CLRRSTCLRCLKCLRIOLCALLDELAY 12LCALLDELAY 12SETBRSTLCALLDELAY 12SETBCLKLCALLDELAY 12CLRCLKLCALLDELAY 12CLRRSTLCALLDELAY 12 MOVB 20HRESET0 SETBCLKLCALLDELAY 12CLRCLKLCALLDELAY 12DJNZB RESET0SETBIORET 如何读出复位应答呢 4442串行输出一个字节子程序 即MCU读入一个字节SHIN CLRCLKPUSHBMOVB 08HX43 LCALLDELAYSETBCLKMOVC IORRCALCALLDELAYCLRCLKDJNZB X43POPBRET 将RESET程序中的32个脉冲换为调用SHIN子程序4次 读入4个字节的ATR 命令 Command 复位响应以后 芯片等待着命令 命令 开始 控制字 地址字 数据字 附加脉冲 停止 开始 在CLK为高状态 H 期间 I O的下降沿为开始状态 停止 在CLK为高状态 H 期间 I O的上升沿为停止状态 SLE4442操作命令 命令子程序 该子程序送出三字节的SLE4442命令 入口参数 COM为控制字 ADDR为地址字 DAT为数据字COMMAND SETBCLKLCALLDELAY 12CLRIO 开始LCALLDELAYCLRCLKLCALLDELAYMOVA COM 送命令字LCALLSHOUTMOVA ADDR 送地址字LCALLSHOUTMOVA DAT 送数据LCALLSHOUTLCALLDELAYCLRIOLCALLDELAYSETBCLK 附加脉冲LCALLDELAYSETBIO 停止RET 怎样向卡中写入一个字节 sle4442串行输入一个字节函数 即MCU向卡写入一字节SHOUT PUSHBMOVB 08HX42 RRCAMOVIO CNOPSETBCLKLCALLDELAYCLRCLKLCALLDELAYDJNZB X42POPBRET 操作模式 Mode 接收了一个命令之后 卡芯片处于两种可能的模式 1 读数据 输出数据模式 2 写入 擦除 校验密码 处理模式 输出数据 OUTGOING 模式 将IC卡芯片中的数据传送给读写器在第一个CLK脉冲的下降沿之后 I O线上的第一位数据变为有效 随后每增加一个时序脉冲 芯片内部的一位数据被送到I O线上 低位 LSB 在前 当所需要的最后一个数据送出之后 需要再附加一个时钟脉冲来把I O线置成高阻状态 状态Z 处理数据 PROCESSING 模式 对IC卡芯片作内部处理 写 擦除 校验密码 芯片在第一个时钟脉冲的下降沿 将I O线从高状态 H状态 拉到低状态 L状态 并开始处理 此后芯片在内部连续计时计数 直到第n个时钟脉冲之后的附加一个时钟脉冲的下降沿I O线被再次置高 完成芯片的处理过程 在整个处理过程中I O线被锁定成低状态 sle4442处理模式子程序PROCESS MOVR7 254DCLRCLKCLRIOLCALLDELAYPRO1 SETBCLKLCALLDELAYCLRCLKLCALLDELAYDJNZR7 PRO1SETBIOLCALLDELAYSETBCLKLCALLDELAYCLRCLKRET 读主存储器ReadMainMemory 命令格式 30H 字节地址 模式 OUTGOING功能 读出从给定的字节地址 N 开始 直到整个存储器末尾的主存储器内容 说明 在该命令输入以后 接口设备IFD必须提供足够的时钟脉冲 起始地址为N时所需要的时钟脉冲数为M 256 N 8 1 N 0 255 例如 地址为7EH N 254 M 17 读主存储器子程序 READ MOVCOM 30H 设置读主存储器控制字MOVADDR R ADDR 取读主存储器首地址MOVDAT 00H 设置读主存储器数据字 任意 MOVR4 NUM 数据个数LCALLCOMMAND 送命令给卡READ0 LCALLSHIN 读数据 输出数据模式 MOV R0 A 送数据入数据缓冲区INCR0DJNZR4 READ0 未读完继续 SETBCLK 发送一个附加脉冲LCALLDELAYCLRCLKLCALLDELAYSETBIO 置位数据线LCALLDELAYRET 读保护存储器ReadProtectionMemory 命令格式 34H 模式 OUTGOING功能 读出保护存储器各位 共32位 的内容 说明 在该命令输入以后 接口设备IFD必须提供32个时钟脉冲 最后通过一个附加时钟脉冲将I O线置为高状态 H状态 即M 33 读加密存储器ReadSecurityMemory 命令格式 3lH 模式 OUTGOING功能 类似于读保护存储器 可以读出4个字节的加密存储器的内容 M 33说明 密码比较失败时只能读出错误计数器 字节0 的内容 字节1 2 3的内容将为000000 即不能读出密码 修改主存储器UpdataMainMemory 命令格式 38H 字节地址 数据模式 PROCESSING功能 用所给出的数据修改主存储器指定字节地址 N 的内容说明 通常 要改变一个数据需要先进行擦除 再进行写入两项操作 如果在被寻址的字节里 位中没有一个字位需要从 变到 则可以不进行擦除处理 反之亦然 在被寻址的字节中 如果没有一个字位需要从 变到 则可以不作写入处理 写人或擦除操作一次至少要耗费 时间 因此 在处理模式期间 可能发生下列几种情况之一 擦除和写入 5ms 相应于M 256个时钟脉冲只写入不擦除 2 5ms 相应于M 124个时钟脉冲只擦除不写入 2 5ms 相应于M 124个时钟脉冲 修改主存储器子程序 WRITE MOVR4 NUM 取要写的字节数MOVCOM 38H 设置修改主存储器控制字WRITE0 MOVADDR W ADDR 取修改主存储器首地址MOVA R0MOVDAT A 取修改主存储器数据字LCALLCOMMAND 送修改主存储器命令给卡LCALLPROCESS 处理模式INCW ADDR 地址字指向主存储器下一个单元INCR0 指向下一个数据DJNZR4 WRITE0 未写完继续RET 修改加密存储器UpdataSecurityMemory 命令格式 39H 字节地址 数据模式 PROCESSING功能 用所给出的数据修改加密存储器指定字节地址的内容 即修改错误计数器或修改密码 说明 该命令只能在PSC比较成功之后才能进行 该命令的执行时间和所需要的时钟脉冲与修改主存储器的情况相同 写保护存储器WriteProtectionMemory 命令格式 3CH 字节地址 00H 1FH 输入的数据模式 PROCESSING功能 这一命令的执行过程包含一个把被输入的数据与在EEPROM中对应数据进行比较的过程 在确认一致的情况下 保护字位被写0 从而使得主存储器中的信息不可更改 如果数据比较结果不一致 则保护字位的写操作将被禁止执行 说明 该命令所要求的时钟脉冲和执行时间与修改主存储器命令的情况相同 比较校验数据CompareVarificationData 命令格式 33H 字节地址 数据模式 PROCESSING功能 把输入的 用户密码 的各个字节与相对应的PSC 存放在加密存储器中 进行比较说明 字节地址为01H 03H 数据为用户密码 读EC 写EC的一位为0 EC 000 校验三字节的密码 擦除EC 读EC EC 111 Y Y N N 校验通过 校验不成功EC中1的个数 允许重试的次数 卡被锁死 PSC校验流程 PSC校验的过程并不是仅由比较校验数据命令来完成的 而是由多个命令构成的一个流程来共同完成 流程一 用一个修改加密存储器命令将密码错误计数器中的一位写0 流程二 连续用三条比较校验数据命令比较输入的用户密码与加密存储器中存储的密码 比较从字节1开始 流程三 校验密码成功与否是用能否擦除密码错误计数器来证实的 如果校验成功 则擦除操作执行有效 如果校验不成功 擦除操作执行无效 密码错误计数器将不会恢复为 111 但只要EC不全为0 就允许读写器对芯片进行重试 PSC校验子程序 COMP MOVCOM 31H 设置读加密存储器命令控制字MOVADDR 00H 设置读加密存储器命令地址字 00H为错误计数器 MOVDAT 00H 设置读加密存储器命令数据字 任意 LCALLCOMMAND 送读加密存储器命令LCALLSHIN 读错误计数器MOV23H A 错误计数器值暂存 23H 单元LCALLSHIN 继续读入加密存储器后3个字节MOV24H ALCALLSHINMOV25H ALCALLSHINMOV26H AMOVA 23HSETBIO 附加一个脉冲 置数据线为高LCALLDELAYSETBCLKLCALLDELAYCLRCLK JBACC 0 NEXT0 判断错误计数器中是否还有 1 JBACC 1 NEXT1 如有 1 则减去一个 1 JBACC 0 NEXT2LJMPEXIT1 错误计数器为全 0 退出NEXT0 MOVDAT 06HAJMPCOMP0NEXT1 MOVDAT 04HAJMPCOMP0NEXT2 MOVDAT 00HCOMP0 MOVCOM 39H 设置修改加密存储器命令控制字MOVADDR 00H 设置修改加密存储器命令地址字 错误计数器 LCALLCOMMAND 送修改加密存储器命令 错误计数器减一个1 LCALLPROCESS 处理模式 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 39H 设置修改加密存储器命令控制字MOVADDR 00H 设置修改加密存储器命令地址字 错误计数器 MOVDAT 07H 取修改加密存储器命令数据字 擦除错误计数器 LCALLCOMMAND 送修改加密存储器 擦除错误计数器 命令给卡LCALLPROCESS 处理模式MOVCOM 31H 设置读加密存储器命令控制字MOVADDR 00H 设置读加密存储器命令地址字 错误计数器 MOVDAT 00H 设置读加密存储器命令数据字 任意 LCALLCOMMAND 送读加密存储器命令给卡LCALLSHIN 读加密存储器的错误计数器MOV23H A

温馨提示

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

评论

0/150

提交评论