《智能卡安全技术》PPT课件.ppt

上传人:tian****1990 文档编号:8625800 上传时间:2020-03-30 格式:PPT 页数:148 大小:2.17MB
返回 下载 相关 举报
《智能卡安全技术》PPT课件.ppt_第1页
第1页 / 共148页
《智能卡安全技术》PPT课件.ppt_第2页
第2页 / 共148页
《智能卡安全技术》PPT课件.ppt_第3页
第3页 / 共148页
点击查看更多>>
资源描述
1 第七章智能卡安全技术 关键技术 身份鉴别报文鉴别数据加密数字签名 主要内容 7 1密钥管理系统7 2智能卡的安全访问机制7 3智能卡防拔插处理7 4智能卡的安全使用7 5安全操作相关的基本命令 7 1密钥管理系统 1 何为密钥管理 密钥管理是一门综合性的技术 它涉及密钥的产生 检验 分配 传递 保管和使用 2 密钥管理系统 层次结构基本思想 用密钥保护密钥用第i层的密钥Ki来保护第i 1层密钥Ki 1Ki本身也受到第i 1层密钥Ki 1的保护下层的密钥可按某种协议不断变化 密钥管理系统是动态变化的 1 三层密钥管理系统的结构 2 三层密钥管理系统的举例设采用对称密码体制主密钥在智能卡和读写器中存放相同的主密钥子密钥主密钥对某些指定的数据加密后生成子密钥 如 每张卡的芯片制造商的标识码的序列号或应用序列号是不相同的 且都设置在IC卡内 因此可利用序列号进行加密生成子密钥 会话密钥用子密钥对可变数据进行加密 加密的结果即为会话密钥 或过程密钥 一个会话密钥仅使用一次 如 用子密钥对交易时间或命令计数器进行加密生成会话密钥 这样即使是同一张卡 每次使用时的会话密钥就不同 或做不同的操作 会话密钥也不同 3 主密钥的生成主密钥可由几个可信任的人彼此独立提出的数据组合成一个密钥 然后对随机数进行加密运算而获得 这样主密钥的生成和变化规律就很难估计 4 主密钥的下载IC卡中主密钥的下载主密钥下载是在专门设备上进行的 下载的环境是安全的 但要保证IC卡上的触点的信息不能被窃取 主密钥下载后 不能再读出 这由硬件 熔丝 和软件 COS卡内操作系统 来保证 读写器中主密钥的下载读写器内部没有COS 不能保证主密钥不被读出 常采用安全存取模块SAM 密钥下载到SAM模块中 加密 解密算法也在SAM中进行 7 2智能卡的安全访问机制 1 鉴别与核实2 安全报文传送3 文件访问的安全控制4 数字签名 认证 1 鉴别与核实 鉴别 Authentication 指的是对智能卡 或者是读写设备 的合法性的验证 即是如何判定一张智能卡 或读写设备 不是伪造的卡 或读写设备 的问题 核实 verify 是指对智能卡的持有者的合法性的验证 也就是如何判定一个持卡人是否经过了合法的授权的问题 读写器鉴别IC卡的真伪 内部认证 读写器生成随机数N 并向卡发内部认证指令 InternalAuthentication 将随机数送卡 卡对随机数N加密成密文M 密钥已存在卡和读写器中 并将M送读写器 读写器将M解密成明文N1 读写器将明文N1和原随机数N比较 相同则读写器认为卡是真的 IC卡鉴别读写器的真伪 外部认证 读写器向卡发生成随机数命令卡产生随机数N 并送读写器 读写器对随机数加密成密文M 密钥已存在卡和读写器中 读写器向卡发外部认证命令 ExternalAuthentication 并将密文M送卡 卡将密文M解密成明文N1 并将明文N1和原随机数N比较 相同则卡认为读写器是真的 鉴别 核实 方法验证个人识别号PIN personalidentificationnumber 生物特征 下意识特征 PIN PIN PersonalIdentificationNumber 个人识别号是IC卡中的保密数据 功能 保证只有合法持卡人才能使用该卡或卡中的某一项或几项功能 以防止拾到该卡的人恶意使用或非法伪造 错误计数器 用以记录 限制PIN输入错误的次数 PIN的类型 全局PIN GlobalPIN 处于系统的较高层次 如主文件 中 一旦因错误计数溢出等原因自锁 也同时锁住使用该PIN的其他应用层次 局部PIN LocalPIN 处于某一具体应用层次中 一旦因错误计数溢出等原因自锁 则仅锁住该应用层次 PIN功能简单汇总表 PUC PersonalUnblockingCode PIN明码识别 读卡器与卡间以明码传输 在IC卡内部完成PIN的鉴别 PIN密码识别 生物识别 生物识别技术就是依靠人体的身体特征来进行身份验证的技术 例如语音 掌纹 面孔 虹膜 视网膜 骨架和指纹上述人体特征都具有终生不变的稳定性和人人不同的特定性 这决定了它们可以作为个人身份鉴定的可靠依据 其中指纹识别是最流行 最方便以及最可靠的个人身份认证方法之一 GO 指纹识别的特点 具有唯一性和稳定性避免记忆众多而又复杂的口令便于获取指纹样本 实用性强一个人的十指指纹皆不相同 可以方便地利用多个指纹构成多重口令 提高系统的安全性 同时并不增加设计负担指纹识别中使用的模板并非最初的指纹图 而是由图中提取的关键特征 这样减少了模板库的存储量 便于网络传输 指纹在IC卡中的身份识别 指纹智能卡读卡器 生物识别的缺点 需要较大的存储容量技术实现比较复杂费用较高 7 2智能卡的安全访问机制 1 鉴别与核实2 安全报文传送3 文件访问的安全控制4 数字签名 认证 2 安全报文传送 在信息交换过程中保证信息的完整性和保密性完整性 保证所交换的内容不被非法修改 利用MAC 保密性 防止非授权者窃取所交换的信息 利用密码技术对信息加密处理 2 1完整性的保证 采用报文鉴别 为鉴别所交换的信息内容未被非法修改 在信息报文中加入报头 尾 即鉴别码 由读卡器对报文内容进行某种运算得出鉴别码1 将鉴别码1和报文一起传输到智能卡 智能卡再用约定算法对报文进行运算得出鉴别码2 将两个鉴别码比较 相等 接受不相等 拒收并报警 鉴别码通常被简写为MAC MessageAuthenticationCode 报文鉴别码 鉴别算法DSA算法DES算法 目前常用 3DES算法 目前常用 1 鉴别算法 DSA算法 DSA decimalshiftandadd 算法由Sievi1980年提出 1 DSA算法在收发双方同时利用两个十位长的任选的十进制数b1和b2 作为密钥 将被鉴别的信息看成十进制数串 然后分组 十位一组 每次运算 加法 取一组 两个运算流并行进行 直到所有信息组运算完毕 2 DSA算法举例用R X D表示对D循环右移X位 如D 1234567890 则R 3 D 8901234567 用S X D表示相加之和 S 3 D R 3 D D mod1010 其中 R 3 D 8901234567 D 1234567890 S 3 D 0135802457 假设信息M 158349263752835869 鉴别码的计算如下 先将信息分成十位一组 最后一组不足十位时补0 即 m1 1583492637 m2 5283586900 2 任选密钥 b1 5236179902 b2 4893524771 3 两个运算流同时运算 运算流1 运算流2 m11583492637 m11583492637 b15236179902 b24893524771 R 4 p 2539681967 p 6819672539 q 6477017408 R 5 q 1740864770 S 4 p 9359354506 S 5 q 8217882178 m25283586900 m25283586900 R 8 u 4294140646 u 4642941406 v 3501469078 R 2 v 7835014690 S 8 p 8937082052 S 2 q 1336483768 m3 m3 至此 两组信息组运算完毕 得到两个十位长的十进制数 再组合一下 将它们按模1010相加 S 8 p 8937082052 S 2 q 1336483768 0273565820 鉴别码 2 鉴别算法 DES算法 以TimeCOS PK为例 规定MAC的长度为4个字节 介绍MAC的生成方法 第一步 终端向智能卡发出一个GetChallenge命令 从智能卡回送的4字节随机数后缀以 00000000 所得到的结果作为初始值 第二步 按照顺序将以下数据连接在一起形成数据块 CLA INS P1 P2 Lc 4 Data 注 必须置CLA的后半字节为 4 在命令的数据域中 如果存在 包含明文或加密的数据 第三步 将该数据块分成8字节为单位的数据块 标号为D1 D2 D3等 最后的数据块有可能是1 8个字节 第四步 如果最后的数据块长度是8字节的话 则在其后加上16进制数字 8000000000000000 转到第五步 如果最后的数据块长度不足8字节的话 则在其后加上16进制数字 80 如果达到8字节长度 则转入第五步 否则在其后加入16进制数字 0 直到长度达到8字节 第五步 对这些数据块使用相应的密钥进行加密 根据密钥的长度采用SingleDES或TripleDES 第六步 最终得到是从计算结果左侧取得的4字节长度的MAC SingleDES密钥产生MAC TripleDES密钥产生MAC 2 2保密性保证 加密 解密 利用密码技术对信息进行加密处理 以掩盖真实信息 到达保密的目的 一般采用传统的DES算法或3DES算法DES算法加密过程 C EK DK EK M 解密过程 M DK EK DK C 3DES算法加密过程 C EKL DKR EKL M 解密过程 M DKL EKR DKL C 以TimeCOS PK为例 介绍数据加密 解密计算当传输报文中的某一部分重要的明文数据需要加密时 它将要被格式化成为以下形式的数据块 明文数据的长度 LD 不包括填充字符明文数据填充字符 数据加密计算第一步 用LD表示明文数据的长度 在明文数据前加上LD产生的新数据块 第二步 将第一步中生成的数据块分解成8字节数据块 标号为D1 D2 D3等等 最后一个数据块的长度有可能不足8位 第三步 如果最后 或唯一 的数据块长度等于8字节 转入第四步 如果不足8字节 在右边添加16进制数字 80 如果长度已达8字节 转入第四步 否则 在其右边添加1字节16进制数字 0 直到长度达到8字节 第四步 对每个数据块用相应的密钥进行加密 第五步 计算结束后 所有加密后的数据块依照原顺序连接在一起 加密后的D1 加密后的D2 等等 并将结果数据块插入到命令数据域中 用SingleDES密钥进行数据加密的算法 用TripleDES密钥进行数据加密的算法 数据解密计算第一步 将命令数据域中的数据块分解成8字节长的数据块 标号为D1 D2 D3 D4等等 第二步 对每个数据块使用与数据加密相同的密钥进行解密 第三步 计算结束后 所有解密后的数据块依照顺序 解密后的D1 解密后的D2 等等 链接在一起 数据块由LD 明文数据 填充字符组成 第四步 因为LD表示明文数据的长度 因此 它被用来恢复明文数据 用SingleDES密钥进行数据解密的算法 用TripleDES密钥进行数据解密的算法 2 3TimeCOS PK中的安全报文传送 1 实现理念2 实现方式3 安全报文传送的命令情况4 应用举例 1 实现理念 完整性保护对传输的数据附加4字节MAC码 接收方收到后首先进行校验 只有校验正确的数据才予以接受机密性保护对传输的数据进行DES加密 这样传输的就是密文 攻击者即使获得数据也没有意义机密性和完整性保护此种方式最安全 对传输的数据进行DES加密 后对传输的数据附加4字节MAC码 接收方收到后首先进行校验 只有校验正确的数据才予以接受 2 实现方式 如对文件进行安全报文传送 只需在建立文件时改变文件类型字节高两位即可 例如 某二进制文件 文件类型为28 若希望对该文件进行线路保护 则在建立文件时将文件类型更改为 A8 00101000 10101000 举例 如对密钥进行安全报文传送 使用WriteKey Verify等 只需在安装密钥时改变密钥类型字节高两位即可 例如 某密钥 密钥类型为39 若希望对该密钥进行线路加密保护 则在安装该密钥时将密钥类型更改为 F9 00111001 11111001 3 安全报文传送的命令情况 情形1没有数据送到卡中 也没有数据从卡中返回不含安全报文的命令含安全报文的命令 注 CLA字节的低4字节必须是04Lc 4 MAC的长度 情形2没有数据送到卡中 但有数据从卡中返回不含安全报文的命令含安全报文的命令 注 CLA字节的低4字节必须是04 Lc 4 MAC的长度 情形3有数据送到卡中 但没有数据从卡中返回不含安全报文的命令含安全报文的命令 注 CLA字节的低4字节必须是04 情形4有数据送到卡中 也有数据从卡中返回不含安全报文的命令含安全报文的命令 注 CLA字节的低4字节必须是04 4 应用举例 命令 写二进制文件 UpdateBinary 维护密钥值 57415443484441544154696D65434F53条件 文件标识符 0003 文件主体空间 8字节建立时采用线路加密保护 DES MAC 操作 写二进制文件 写入数据 1122334455667788 步骤1 取4字节随机数 计算MAC用命令 0084000004响应 464E84AF9000 步骤2 写二进制文件 写入数据1122334455667788命令 04D6830014687E0F83F6A98580C4015CEB8D00F38B1CABE2B9说明 687E0F83F6A98580C4015CEB8D00F38B为使用维护密钥对数据08112233445566778880000000000000加密后的结果 1CABE2B9为使用维护密钥生成的4字节MAC码 响应 9000 7 2智能卡的安全访问机制 1 鉴别与核实2 安全报文传送3 文件访问的安全控制4 数字签名 认证 3 文件访问的安全控制 1 安全状态2 安全属性3 应用实例 1 安全状态 是指卡当前所处的一种安全级别卡的主控目录或者当前应用目录分别有16种不同的安全状态 对应0 F的16个值下列情况可能影响到相应的安全状态卡片上电复位后卡片中所记录的所有安全状态都被清除 这时卡片处于最低级别的安全状态 外部认证命令ExternalAuthenticationPIN校验命令VerifyPin在卡内 PIN和外部认证密钥都有自己的后续状态 一旦个人身份鉴别和外部认证通过 当前目录的安全状态便被设定为该PIN或者密钥的后续状态正确选择DF后执行SelectFile指令 正确选择MF或DF后 相应的安全寄存器被复位为0 2 安全属性 是指对某个文件或者文件的一部分进行某种操作时必须达到的状态有时称访问权限 是在文件创立时指定的 由一个状态区间来描述每种文件的访问权限在建立文件 CreateFile 时用一个字节指定 每种密钥的访问权限在增加密钥 WriteKey 时用一个字节指定 以TimeCOS PK为例 文件和密钥主要存在如下访问权限 假设当前安全状态寄存器的值用V来表示访问权限为 0Y 时 表示需满足V Y方可进行访问 例 如某文件读的权限为05表示在对该文件进行读之前必须使MF的安全状态寄存器的值大于等于5访问权限为XY时 X不为0 表示需满足X V Y方可进行访问 注 当X Y时表示禁止相应的操作 例1 如某文件写的权限为53表示对该文件进行写之前必须使当前目录的安全状态寄存器的值为3 4或5 例2 某文件读权限为F0 写权限为F1代表可任意读取 写时必须满足当前目录的安全状态寄存器的值大于等于1 假设在对某文件进行读操作之前 要求必须先通过个人身份鉴别 一种可行的办法是 将PIN的使用权限设为10 后续状态定为2 而文件的读权限定为22执行步骤卡上电复位 安全状态被清除满足PIN密钥的使用权限10 执行VerifyPin指令 至此 安全状态V 2V 2满足文件的读权限22H 允许对文件进行读操作 3 应用实例 预设环境MF下有4个二进制文件 其访问权限分别为F0 94 23和52MF下的KEY文件中有一个PIN密钥 其值为1122334455667788 后续状态为77操作在验证PIN前后分别对4个文件进行读操作 安全属性 访问权限 分析EF1 F0EF2 94EF3 23EF4 52预期结果 PIN验证后 安全状态变为7 EF1 EF2 EF3 EF4 永远都满足 可任意读写 不可读写 安全属性需属于 2 5 才可读写 永远都不满足 禁止读写 安全属性需属于 4 9 才可读写 不可读写 可读写 可读写 实现步骤插卡 卡片上电 无安全状态 在MF下的KEYEF中添加PIN密钥建立4个EF文件读取4个EF文件的内容选择MF文件 安全状态变为0 读取4个EF文件的内容验证PIN 安全状态变为7 读取4个EF文件的内容 7 2智能卡的安全访问机制 1 鉴别与核实2 安全报文传送3 文件访问的安全控制4 数字签名 认证 4 数字签名 认证 基本概念数字签名 认证的过程如何在智能卡中实现数字签名 1 数字签名 数字签名是建立在公钥体制基础上的一种服务数字签名必须保证以下3点 接收者能够对报文发送者的签名进行认证发送者事后不能抵赖对报文的签名任何人都不能伪造其他人的签名数字签名的一般过程 私钥加密 签名 公钥解密 验证 数字签名过程 存在的问题要签名数据的大小是任意的 最终签名的大小也是任意的 解决办法引入单向散列算法 HASH 2 HASH算法 单向散列函数也称HASH函数 作用在一任意长度的消息M上 返回一个固定长度的散列值hh H M 设h的长度为m HASH函数具有如下的特性 给定M 很容易计算出h 给定h 根据h H M 计算M很难 给定M 要找到另一消息M 并满足H M H M 很难 两种典型的HASH算法MD5算法可以产生128位的散列结果SHA算法也叫做安全散列算法 可以产生160位的散列结果 3 数字签名 验证过程 数字签名过程签名者通过HASH函数把原文变成固定大小签名者用私钥对散列结果加密 生成数字签名签名验证过程验证者获得原文和签名验证者通过HASH函数把原文变成固定大小验证者将签名解密 并用解密结果和计算出的散列结果进行比较 如果相同 签名有效 否则 验证失败 签名无效 SKA是指发送方A的私钥 PKA是指与SKA相对应的A的公钥 提出问题 如何得到签名者的公钥 4 数字 签名 公钥证书 公钥证书 认证机构CA通过对一个包含身份信息和相应公钥的数据结构进行数字签名来捆绑用户的公钥和身份 这个数据结构被称为公钥证书证书验证包括如下内容 验证CA在证书上的签名证书有良好的完整性 即 证书上的数字签名证书在有效期内 签名证书通常遵照X 509标准制成 必须含有下列信息 版本号 表示证书的版本序列号 由证书颁发者分配的证书的唯一标识符签名密钥持有人的名字签名算法标识符 用于说明本证书所用的数字签名算法主体公钥信息证书的开始有效和终止日期 提出问题 如何将智能卡与数字签名联系起来 解决问题 实现数字签名卡 5 数字签名卡的优点 CPU卡特有的硬件制造工艺可以抵御物理 电子 化学方法的攻击体积小 便于携带COS可以防止攻击者利用软件方式窃取卡内的机密信息存储在卡中的私钥绝对安全 自动锁定保护总之 CPU卡是存储私钥和数字证书的理想介质 6 数字签名卡的实现 实现条件及要求智能卡支持某非对称密码算法 RSA ECC等 智能卡文件系统中需有公钥文件和私钥文件以TimeCOS PK为例说明数字签名卡的实现过程TimeCOS PK支持SHA 1算法和RSA算法可在卡内生成1024位RSA密钥对 命令操作一般流程 相关指令 7 3智能卡防拔插处理 若智能卡正在对卡片的用户数据进行修改 如执行创建文件指令 更新EF文件的内容等 时 持卡人突然将卡从读写器中拔出或移开 或者读写器由于某种原因突然掉电 都有可能造成数据更新操作中断 从而造成卡内用户数据出错 为了保证数据的完整性 COS本身应该具备处理这种突发事件的能力 也就是具有防拔插处理的能力 掉电保护机制 在COS主程序中 首先要判断掉电标志位 如果标志位为 0 x01 说明上一条命令没有执行成功 程序将首先恢复备份数据 将备份区清空 将掉电标识复位 3种意外状况 1 在步骤3之前发生断电无影响2 在步骤3 5之间发生断电进入数据安全写恢复流程3 在步骤5之后发生断电无影响 数据备份举例 数据备份格式示例 在创建文件的时候留出一定大小的区域 用来备份数据 数据安全写恢复流程 7 4智能卡的安全使用 IC卡使用时 要与读写器相互确认 以防止伪卡或插错卡 使用过程 1 插卡 读写器向卡加电 并发复位信号 令卡初始化 做好交易准备 卡发出应答信号ATR 2 读写器鉴别卡的真伪 3 卡鉴别读写器的真伪 4 检查卡是否列入黑名单 5 鉴别持卡人的身份 通常采用密码比较的方法 即由持卡人输入密码 与卡内密码比较 6 检查上次交易是否完成 未完成 卡应有自动恢复数据的功能 7 根据应用需求进行交易 8 拔卡 7 5安全操作相关的基本命令 基本安全命令6 5 1VerifyPIN 验证口令 6 5 2Unblock 解锁口令 6 5 3GetChallenge 取随机数 6 5 4ExternalAuthentication 外部认证 6 5 5InternalAuthentication 内部认证 7 5安全操作相关的基本命令 RSA算法相关命令6 5 6GenerateRSAKey 生成公私钥对 6 5 7DataCompress 数据压缩 6 6 5DataEncrypt 数据加密 6 5 9DataDecrypt 数据解密 6 5 10DigitalSignatures 数字签名 6 5 11SignaturesVerify 签名验证 7 5 1VerifyPIN 验证口令 1 命令功能描述用于校验命令数据域的口令密钥正确性 在满足口令密钥的使用权限时才可执行该命令 若口令验证成功 则系统安全状态寄存器的值被置成该密钥的后续状态 同时口令错误计数器被置成初始值若验证错误 则口令可试次数减1 若口令已被锁死 则不能再执行该命令 当口令长度为8字节时 可用Unblock命令对其进行解锁 2 命令报文格式 说明 密钥标识在WriteKey时给出3 响应报文数据不存在 4 响应报文状态码900063CX还剩X次可试机会当卡片回送63C0时 表示不能重试口令密钥 此时再使用VerifyPIN命令时 将回送失败状态码6983 认证方法锁死 5 命令使用示例1预设环境正确的PIN值为11223344 设其密钥标识号为01 错误计数器值为33 命令报文1 APDU 002000010411223344响应报文1 9000错误计数器值 33命令报文2APDU 002000010411223333响应报文2 63C2错误计数器值 32命令报文3APDU 002000010411223344响应报文3 9000错误计数器值 335 命令使用示例2预设环境正确的PIN值为11223344 设其密钥标识号为01 错误计数器值为33 命令报文1APDU 002000010411223344响应报文1 9000错误计数器值 33命令报文2APDU 002000010411223333响应报文2 63C2错误计数器值 32命令报文3APDU 002000010411222222响应报文3 63C1错误计数器值 31命令报文4APDU 002000010411111111响应报文4 63C0错误计数器值 30命令报文5APDU 002000010444332211响应报文5 6983错误计数器值 30 7 5 2Unblock 解锁口令 1 命令功能描述用于解锁被锁定的8字节的口令只有满足该解锁口令使用条件且该解锁口令未被锁死时才能执行此命令 该命令不改变安全状态若解锁口令核对成功 则新口令取代原有口令 且将口令错误计数器和解锁口令错误计数器恢复成原始值若解锁口令失败 则解锁口令可再试次数减1 如果解锁口令锁死 解锁口令无法再被解锁 2 命令报文格式 3 响应报文数据不存在4 响应报文状态码略 5 命令使用示例预设环境某PIN密钥被锁 要求用密钥标识号为06的口令解锁密钥进行解锁 新口令为0102030405060708 解锁密钥使用权 0 xF0 更改权 0 xEF 错误计数器 0 x33 8字节解锁口令 1122334455667788 命令报文APDU 802C00061011223344556677880102030405060708响应报文9000 7 5 3GetChallenge 取随机数 1 命令功能描述请求一个用于安全相关过程 如安全报文 的随机数2 命令报文格式 3 响应报文数据随机数 长度为Le个字节4 响应报文状态码略5 命令使用示例略 7 5 4InternalAuthentication 内部认证 1 命令功能描述提供了利用接口设备发来的随机数和自身存储的相关密钥进行数据认证的功能 在满足该密钥的使用条件时才能执行此命令参看流程图 2 内部认证过程内部认证是读卡器对卡片的认证 认证过程如下图所示 3 命令报文格式 说明 P1 00表示进行加密运算 密钥类型是DES加密密钥P1 01表示进行解密运算 密钥类型是DES解密密钥P1 02表示进行MAC运算 密钥类型是DES MAC密钥 4 响应报文数据相关认证数据 即DES运算的结果 5 响应报文状态码略6 命令使用示例1预设环境密钥标识号 01 密钥类型是DES加密密钥 使用权限 0 xF0 更改权限 0 xEF 16字节密钥为 57415443484441544154696D65434F53 读卡器产生的随机数为 1122334455667788 命令报文APDU 00880001081122334455667788响应报文07CBF615E7D72F969000 BACKTO鉴别 7 命令使用示例2预设环境密钥标识号 01 密钥类型为DES解密密钥 使用权限 0 xF0 更改权限 0 xEF 16字节密钥为 57415443484441544154696D65434F53 待解密数据为 07CBF615E7D72F96 命令报文APDU 008801010807CBF615E7D72F96响应报文11223344556677889000 8 命令使用示例3预设环境密钥标识号 01 密钥类型为DES MAC解密密钥 使用权限 0 xF0 更改权限 0 xEF 16字节密钥为 57415443484441544154696D65434F53 待计算MAC数据 1122334455667788 命令报文APDU 00880201081122334455667788响应报文8756E2859000说明 8756E285 是MAC计算结果 计算MAC的8字节初始值是 0000000000000000 7 5 5ExternalAuthentication 外部认证 1 命令功能描述IC卡验证读卡器的真伪在满足该外部认证密钥的使用权限且该密钥未被锁死时才可执行该命令将命令中的数据用指定外部认证密钥解密 然后与先前产生的随机数进行比较若一致则表示认证通过若不一致则认证失败参看流程图 2 外部认证过程外部认证是卡片对读卡器的认证 认证过程如下 3 命令报文格式 说明 若认证通过 置安全状态寄存器为该密钥规定的后续状态值 错误计数器恢复成初始值 若认证失败 可再试错误数减1 且不改变安全状态寄存器的值 4 响应报文数据不存在5 响应报文状态码略6 命令使用示例预设环境外部认证密钥标识号 01 使用权限 0 xF0 更改权限 0 xEF 错误计数器 0 x33 后续状态 11 16字节密钥为 57415443484441544154696D65434F53 BACKTO鉴别 命令报文 步骤1 取8字节随机数 APDU 0084000008响应 D389BF6745B935509000 步骤2 读卡器用与外部认证密钥相同的密钥 57415443484441544154696D65434F53 对随机数进行加密 加密后的结果为C2A85B4B13402521 步骤3 读卡器将加密后的随机数送到卡中作外部认证APDU 0082000008C2A85B4B13402521响应 9000说明 成功执行后置安全状态寄存器值为该外部认证密钥的后续状态1 7 5 6GenerateRSAKey 生成公私钥对 1 命令功能描述该命令用于卡片自动生成模长为1024位的RSA密钥对 根据P1 P2参数的不同 决定私钥是回送出来还是存于由P2指定的私钥文件中 2 命令报文格式 说明 P2 00时 私钥回送给终端 否则 私钥存于由P1 P2指定的文件标识的私钥文件中 3 响应报文数据公钥 包括模数n和公开指数e 若P2 00时 响应报文还包括私钥 包括q dmod q 1 p dmod p 1 q 1modp 响应报文将以TLV格式送出 T定义如下 4 响应报文状态码略5 命令使用示例略 7 5 7DataCompress 数据压缩 1 命令功能描述用安全散列算法SHA 1将数据压缩为20个字节 用RSA签名或验证时使用2 命令报文格式 说明 若数据总长度小于138字节 直接对该数据进行压缩 否则以64字节为一块重复执行此命令进行分块压缩 压缩结果由最后一块数据产生 3 响应报文数据当进行单块数据压缩时 响应报文是20字节HASH结果当进行分块数据压缩时 除对最后一块数据压缩 卡片只回送9000 并不返回压缩结果 只有对最后一块数据进行压缩时 卡片才返回压缩结果 4 响应报文状态码略5 命令使用示例1预设环境对长度为64字节的数据 0 串 进行压缩 输入数据不需保留 命令报文APDU 80CC404040DATA DATA表示64个字节的0 响应报文C8D7D0EF0EEDFA82D2EA1AA592845B9A6D4B02B790006 命令使用示例2预设环境 对长度为160 64 64 32 字节的数据 0 串 进行压缩 将输入数据保留在卡内 命令报文1APDU 80CC3FFF40DATA1 64个字节的0 响应报文1 9000命令报文2APDU 80CCBFFF40DATA2 64个字节的0 响应报文2 9000命令报文3APDU 80CC80A020DATA3 32个字节的0 响应报文3 9797EDF8D0EED36B1CF92547816051C8AF4E45EE9000 7 5 8DataEncrypt 数据加密 1 命令功能描述用非对称密码算法RSA的公钥对数据进行加密在满足该公钥文件的使用权限时才能执行此命令 2 命令报文格式 说明 1 P1P2 0000时 表示用卡内临时公钥对数据进行加密 该临时公钥由DataCompress命令分批送入 2 在进行数据加密之前 COS会对加密数据进行编码 后对编码数据进行加密运算 编码数据EM 00 BT PS 00 DBT 02 表示为数据加密 PS为不小于8字节的随机数D 待加密数据 加密数据最大长度为117字节 3 响应报文数据由加密后的密文组成4 响应报文状态码略5 命令使用示例略 7 5 9DataDecrypt 数据解密 1 命令功能描述用非对称密码算法RSA的私钥对加密数据进行解密在满足该私钥文件的使用权限时才能执行此命令 2 命令报文格式 3 响应报文数据由解密后的明文组成 4 响应报文状态码略5 命令使用示例略 7 5 10DigitalSignatures 数字签名 1 命令功能描述用非对称密码算法RSA的私钥对数据进行签字在满足该私钥文件的使用权限时才能执行此命令 2 命令报文格式 说明 Lc 00时 表示用卡中压缩好的数据进行签名 即先将须签字的数据用DataCompress命令进行压缩 3 响应报文数据略 4 响应报文状态码略5 命令使用示例略 7 5 11SignaturesVerify 签名验证 1 命令功能描述用非对称密码算法RSA的公钥对签名数据进行认证在满足该公钥文件的使用权限时才能执行此命令 2 命令报文格式 说明 P1P2 0000时 表示用卡内临时公钥对数据进行验证 该临时公钥由DataCompress命令分批送入 3 响应报文数据由认证后的数据组成 128字节 认证后的数据EM 00 BT PS 00 D1 BT 01 表示为数字签名2 PS FF FF 表示填充数据PS由 FF 数据块组成 PS的长度 LEN EM 3 LEN D PS至少为1个字节的 FF 3 D 30 XX LEN M 0D 30 09 06 05 2B 0E 03 02 1A 05 00 04 LEN M M M的长度最大为108字节 4 响应报文状态码略5 命令使用示例略 本章小结 1 密钥管理三层密钥管理系统 主密钥 子密钥 会话密钥 2 智能卡的安全访问机制鉴别与核实内 外部认证PIN验证 明码验证 密码验证 生物识别 安全报文传送保证完整性 MAC 保证机密性 对称加密算法 保证完整性和机密性文件访问的安全控制安全状态安全属性 或访问权限 数字签名 认证 3 智能卡的防插拔处理待修改数据备份掉电标识置位更新数据掉电标识复位4 智能卡的安全使用卡和读卡器相互验证检查黑名单验证持卡人身份5 安全操作相关的基本指令 思考题 1 为验证持卡人是否是假冒的而经常采取的验证方法是什么 2 如果持卡人多次输入PIN 但都不正确 将发生什么情况 3 说明智能卡和读写设备之间相互认证的方法 即如何确定对方是真实的而不是伪造的 4 系统中交换信息报文时在报尾增加鉴别码的作用及产生方法 141 TheEnd 命令报文格式 不带线路保护 1 CreateFile 1 命令报文格式 建立MF文件时P1P2 3F00 DATA域文件控制信息为 建立DF文件时DATA域文件控制信息为 建立EF文件时Lc 07 DATA域文件控制信息为 不带线路保护时 ReadBinary 不带线路保护 注 ReadBinary 注 UpdateBinary
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!