第七章智能卡安全技术课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第七章智能卡安全技术课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 智能卡 安全技术 课件
- 资源描述:
-
1、1第七章 智能卡安全技术关键技术身份鉴别报文鉴别数据加密数字签名主要内容7.1 密钥管理系统7.2 智能卡的安全访问机制7.3 智能卡防拔插处理 7.4 智能卡的安全使用7.5 安全操作相关的基本命令7.1 密钥管理系统1.何为密钥管理?密钥管理是一门综合性的技术,它涉及密钥的产生、检验、分配、传递、保管和使用。2.密钥管理系统层次结构 基本思想:用密钥保护密钥 用第i层的密钥Ki来保护第i+1层密钥Ki+1 Ki本身也受到第i1层密钥Ki-1的保护 下层的密钥可按某种协议不断变化;密钥管理系统是动态变化的(1)三层密钥管理系统的结构(2)三层密钥管理系统的举例 设采用对称密码体制 主密钥 在
2、智能卡和读写器中存放相同的主密钥 子密钥 主密钥对某些指定的数据加密后生成子密钥主密钥子密钥会话密钥 如:每张卡的芯片制造商的标识码的序列号或应用序列号是不相同的,且都设置在IC卡内,因此可利用序列号进行加密生成子密钥;会话密钥 用子密钥对可变数据进行加密,加密的结果即为会话密钥(或过程密钥)。一个会话密钥仅使用一次。如:用子密钥对交易时间或命令计数器进行加密生成会话密钥,这样即使是同一张卡,每次使用时的会话密钥就不同,或做不同的操作,会话密钥也不同。3.主密钥的生成主密钥可由几个可信任的人彼此独立提出的数据组合成一个密钥,然后对随机数进行加密运算而获得,这样主密钥的生成和变化规律就很难估计。
3、4.主密钥的下载IC卡中主密钥的下载 主密钥下载是在专门设备上进行的,下载的环境是安全的;但要保证IC卡上的触点的信息不能被窃取,主密钥下载后,不能再读出,这由硬件(熔丝)和软件(COS卡内操作系统)来保证读写器中主密钥的下载 读写器内部没有COS,不能保证主密钥不被读出,常采用安全存取模块SAM,密钥下载到SAM模块中,加密/解密算法也在SAM中进行。7.2 智能卡的安全访问机制1.鉴别与核实2.安全报文传送3.文件访问的安全控制4.数字签名/认证1.鉴别与核实鉴别(Authentication)指的是对智能卡(或者是读写设备)的合法性的验证,即是如何判定一张智能卡(或读写设备)不是伪造的卡
4、(或读写设备)的问题;核实(verify)是指对智能卡的持有者的合法性的验证,也就是如何判定一个持卡人是否经过了合法的授权的问题。读写器鉴别IC卡的真伪(内部认证)读写器生成随机数N,并向卡发内部认证指令(Internal Authentication),将随机数送卡;卡对随机数N加密成密文M(密钥已存在卡和读写器中),并将M送读写器;读写器将M解密成明文N1;读写器将明文N1和原随机数N比较,相同则读写器认为卡是真的。IC卡鉴别读写器的真伪(外部认证)读写器向卡发生成随机数命令卡产生随机数N,并送读写器;读写器对随机数加密成密文M(密钥已存在卡和读写器中);读写器向卡发外部认证命令(Exte
5、rnal Authentication),并将密文M送卡;卡将密文M解密成明文N1,并将明文N1和原随机数N比较,相同则卡认为读写器是真的。鉴别核实方法 验证个人识别号PIN(personal identification number);生物特征;下意识特征;PINPIN(Personal Identification Number)个人识别号是IC卡中的保密数据。功能:保证只有合法持卡人才能使用该卡或卡中的某一项或几项功能,以防止拾到该卡的人恶意使用或非法伪造。错误计数器:用以记录、限制PIN输入错误的次数PIN的类型全局PIN(Global PIN)处于系统的较高层次(如主文件)中,一旦
6、因错误计数溢出等原因自锁,也同时锁住使用该PIN的其他应用层次。局部PIN(Local PIN)处于某一具体应用层次中,一旦因错误计数溢出等原因自锁,则仅锁住该应用层次。PIN功能简单汇总表功 能简单IC卡复杂IC卡(如CPU卡)PIN无或有有PIN数量一个若干个PIN位数较短较长/可自定义(如18位十进制数)PIN输入错误限制次数 较少(如3次)较长/可自定义(如115次)全局/局部PIN否是可修改性等其他属性否是个人解锁码(PUC)否是PUC:Personal Unblocking CodePIN明码识别读卡器与卡间以明码传输,在IC卡内部完成PIN的鉴别用户终端机智能卡键入PIN发“持卡
7、人认证”指令,并提交PIN码该PIN卡内所存密码?PIN是返回错误代码继续其他操作否PIN密码识别生物识别生物识别技术就是依靠人体的身体特征来进行身份验证的技术,例如语音、掌纹、面孔、虹膜、视网膜、骨架和指纹上述人体特征都具有终生不变的稳定性和人人不同的特定性,这决定了它们可以作为个人身份鉴定的可靠依据。其中指纹识别是最流行、最方便以及最可靠的个人身份认证方法之一。GO指纹识别的特点具有唯一性和稳定性避免记忆众多而又复杂的口令便于获取指纹样本,实用性强一个人的十指指纹皆不相同,可以方便地利用多个指纹构成多重口令,提高系统的安全性,同时并不增加设计负担指纹识别中使用的模板并非最初的指纹图,而是由
8、图中提取的关键特征,这样减少了模板库的存储量,便于网络传输指纹在IC卡中的身份识别指纹智能卡读卡器生物识别的缺点需要较大的存储容量技术实现比较复杂费用较高7.2 智能卡的安全访问机制1.鉴别与核实2.安全报文传送3.文件访问的安全控制4.数字签名/认证2.安全报文传送在信息交换过程中保证信息的完整性和保密性完整性:保证所交换的内容不被非法修改。(利用MAC)保密性:防止非授权者窃取所交换的信息。(利用密码技术对信息加密处理)2.1 完整性的保证采用报文鉴别为鉴别所交换的信息内容未被非法修改,在信息报文中加入报头/尾(即鉴别码)。由读卡器对报文内容进行某种运算得出鉴别码1。将鉴别码1和报文一起传
9、输到智能卡,智能卡再用约定算法对报文进行运算得出鉴别码2,将两个鉴别码比较。相等,接受 不相等,拒收并报警鉴别码通常被简写为MAC(Message Authentication Code,报文鉴别码)鉴别算法 DSA算法 DES算法(目前常用)3DES算法(目前常用)1、鉴别算法DSA算法DSA(decimal shift and add)算法由Sievi1980年提出(1)DSA算法 在收发双方同时利用两个十位长的任选的十进制数b1和b2,作为密钥。将被鉴别的信息看成十进制数串,然后分组,十位一组。每次运算(加法)取一组,两个运算流并行进行,直到所有信息组运算完毕。(2)DSA算法举例 用R
10、(X)D表示对D循环右移X位,如D1234567890,则R(3)D8901234567。用S(X)D表示相加之和:S(3)D R(3)DD(mod1010)。其中:R(3)D8901234567 D1234567890S(3)D=0135802457 假设信息M1583492637 52835869,鉴别码的计算如下:1.先将信息分成十位一组,最后一组不足十位时补0;即:m1=1583492637,m2=5283586900;2.任选密钥:b1=5236179902,b2=4893524771;3.两个运算流同时运算。运算流1运算流2m1 1583492637m1 1583492637 b1
11、 5236179902 b2 4893524771 R(4)p=2539681967p=6819672539q=6477017408 R(5)q=1740864770 S(4)p=9359354506 S(5)q=8217882178 m2 5283586900 m2 5283586900 R(8)u=4294140646u=4642941406v =3501469078 R(2)v=7835014690 S(8)p=8937082052 S(2)q=1336483768 m3 m3 .至此,两组信息组运算完毕,得到两个十位长的十进制数,再组合一下,将它们按模1010相加。S(8)p=8937
12、082052 S(2)q=1336483768 0273565820鉴别码鉴别码2、鉴别算法DES算法以TimeCOS/PK为例(规定MAC的长度为4个字节),介绍MAC的生成方法:第一步:终端向智能卡发出一个Get Challenge命令,从智能卡回送的4字节随机数后缀以00 00 00 00,所得到的结果作为初始值。第二步:按照顺序将以下数据连接在一起形成数据块:CLA,INS,P1,P2,Lc+4,Data(注必须置CLA的后半字节为4;在命令的数据域中(如果存在)包含明文或加密的数据)第三步:将该数据块分成8字节为单位的数据块,标号为D1,D2,D3等,最后的数据块有可能是1-8个字节
13、。第四步:如果最后的数据块长度是8字节的话,则在其后加上16进制数字80 00 00 00 00 00 00 00,转到第五步。如果最后的数据块长度不足8字节的话,则在其后加上16进制数字80,如果达到8字节长度,则转入第五步;否则在其后加入16进制数字0直到长度达到8字节。第五步:对这些数据块使用相应的密钥进行加密。根据密钥的长度采用Single DES或Triple DES。第六步:最终得到是从计算结果左侧取得的4字节长度的MAC。Single DES密钥产生MACTriple DES密钥产生MAC2.2 保密性保证加密/解密利用密码技术对信息进行加密处理,以掩盖真实信息,到达保密的目的。
14、一般采用传统的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等等。最后一个数据块的长度有可能
15、不足8位。第三步:如果最后(或唯一)的数据块长度等于8字节,转入第四步;如果不足8字节,在右边添加16进制数字80。如果长度已达8字节,转入第四步;否则,在其右边添加1字节16进制数字0直到长度达到8字节。第四步:对每个数据块用相应的密钥进行加密。第五步:计算结束后,所有加密后的数据块依照原顺序连接在一起(加密后的D1,加密后的D2,等等)。并将结果数据块插入到命令数据域中。用Single DES密钥进行数据加密的算法用Triple DES密钥进行数据加密的算法数据解密计算 第一步:将命令数据域中的数据块分解成8字节长的数据块,标号为D1,D2,D3,D4等等。第二步:对每个数据块使用与数据加
16、密相同的密钥进行解密。第三步:计算结束后,所有解密后的数据块依照顺序(解密后的D1,解密后的D2,等等)链接在一起。数据块由LD,明文数据,填充字符组成。第四步:因为LD表示明文数据的长度,因此,它被用来恢复明文数据。用Single DES密钥进行数据解密的算法用Triple DES密钥进行数据解密的算法2.3 TimeCOS/PK中的安全报文传送1、实现理念2、实现方式3、安全报文传送的命令情况4、应用举例1、实现理念完整性保护 对传输的数据附加4字节MAC码,接收方收到后首先进行校验,只有校验正确的数据才予以接受机密性保护 对传输的数据进行DES加密,这样传输的就是密文,攻击者即使获得数据
17、也没有意义机密性和完整性保护 此种方式最安全,对传输的数据进行DES加密,后对传输的数据附加4字节MAC码,接收方收到后首先进行校验,只有校验正确的数据才予以接受2、实现方式如对文件进行安全报文传送,只需在建立文件时改变文件类型字节高两位即可。b7b6b5b4b3b2b1b0线路保护方式00文件类型无10文件类型MAC(线路保护)11文件类型DES&MAC(线路加密保护)例如:某二进制文件(文件类型为28),若希望对该文件进行线路保护,则在建立文件时将文件类型更改为:A8(0010 10001010 1000)举例举例如对密钥进行安全报文传送(使用Write Key,Verify等),只需在安
18、装密钥时改变密钥类型字节高两位即可。b7 b6 b5 b4 b3 b2 b1 b0线路保护方式00密钥类型无01密钥类型DES(加密保护)11密钥类型DES&MAC(线路加密保护)例如:某密钥(密钥类型为39),若希望对该密钥进行线路加密保护,则在安装该密钥时将密钥类型更改为:F9(0011 10011111 1001)3、安全报文传送的命令情况情形1 没有数据送到卡中,也没有数据从卡中返回 不含安全报文的命令 含安全报文的命令注:CLA字节的低4字节必须是04 Lc=4(MAC的长度)情形2 没有数据送到卡中,但有数据从卡中返回 不含安全报文的命令 含安全报文的命令注:CLA字节的低4字节必
19、须是04;Lc=4(MAC的长度)情形3 有数据送到卡中,但没有数据从卡中返回 不含安全报文的命令 含安全报文的命令注:CLA字节的低4字节必须是04情形4 有数据送到卡中,也有数据从卡中返回 不含安全报文的命令 含安全报文的命令注:CLA字节的低4字节必须是044、应用举例命令:写二进制文件(Update Binary)维护密钥值:57415443484441544154696D65434F53 条件:文件标识符=0003;文件主体空间=8字节 建立时采用线路加密保护(DES&MAC)操作:写二进制文件,写入数据:1122334455667788步骤1取4字节随机数,计算MAC用 命令:00
20、 84 00 00 04 响应:46 4E 84 AF 90 00步骤2写二进制文件,写入数据11 22 33 44 55 66 77 88 命令:04 D6 83 00 14 68 7E 0F 83 F6 A9 85 80 C4 01 5C EB 8D 00 F3 8B 1C AB E2 B9 说明:68 7E 0F 83 F6 A9 85 80 C4 01 5C EB 8D 00 F3 8B为使用维护密钥对数据08 11 22 33 44 55 66 77 88 80 00 00 00 00 00 00加密后的结果;1C AB E2 B9为使用维护密钥生成的4字节MAC码。响应:90 00
21、7.2 智能卡的安全访问机制1.鉴别与核实2.安全报文传送3.文件访问的安全控制4.数字签名/认证3.文件访问的安全控制1、安全状态2、安全属性3、应用实例1、安全状态是指卡当前所处的一种安全级别卡的主控目录或者当前应用目录分别有16种不同的安全状态,对应0F的16个值下列情况可能影响到相应的安全状态 卡片上电复位后 卡片中所记录的所有安全状态都被清除,这时卡片处于最低级别的安全状态 外部认证命令External Authentication PIN校验命令Verify Pin 在卡内,PIN和外部认证密钥都有自己的后续状态,一旦个人身份鉴别和外部认证通过,当前目录的安全状态便被设定为该PIN
22、或者密钥的后续状态 正确选择DF后 执行Select File指令,正确选择MF或DF后,相应的安全寄存器被复位为02、安全属性是指对某个文件或者文件的一部分进行某种操作时必须达到的状态有时称访问权限,是在文件创立时指定的。由一个状态区间来描述每种文件的访问权限在建立文件(Create File)时用一个字节指定;每种密钥的访问权限在增加密钥(Write Key)时用一个字节指定文件类型访问权限MF/DF建立/擦除KEY文件增加KEY文件中的密钥使用/更改公钥/私钥文件使用/更改/读二进制文件读/写记录文件读/写普通钱包文件读&扣款/存款电子存折/电子钱包文件使用以TimeCOS/PK为例,文
23、件和密钥主要存在如下访问权限假设当前安全状态寄存器的值用V来表示访问权限为0Y时,表示需满足VY方可进行访问 例 如某文件读的权限为05 表示在对该文件进行读之前必须使MF的安全状态寄存器的值大于等于5访问权限为XY 时(X不为0)表示需满足XVY方可进行访问 (注:当XY时表示禁止相应的操作)例1 如某文件写的权限为53表示对该文件进行写之前必须使当前目录的安全状态寄存器的值为3、4或5 例2 某文件读权限为F0,写权限为F1 代表可任意读取,写时必须满足当前目录的安全状态寄存器的值大于等于1。假设在对某文件进行读操作之前,要求必须先通过个人身份鉴别。一种可行的办法是:将PIN的使用权限设为
24、10,后续状态定为2,而文件的读权限定为22执行步骤 卡上电复位,安全状态被清除 满足PIN密钥的使用权限10,执行Verify Pin 指令,至此,安全状态V=2 V=2满足文件的读权限22H,允许对文件进行读操作3、应用实例预设环境 MF下有4个二进制文件,其访问权限分别为F0、94、23和52 MF下的KEY文件中有一个PIN密钥,其值为1122334455667788,后续状态为77操作 在验证PIN前后分别对4个文件进行读操作安全属性(访问权限)分析 EF1:F0 EF2:94 EF3:23 EF4:52预期结果(PIN验证后,安全状态变为7)EF1:EF2:EF3:EF4:永远都满
25、足,可任意读写不可读写安全属性需属于2,5才可读写永远都不满足,禁止读写安全属性需属于4,9才可读写不可读写可读写可读写实现步骤 插卡,卡片上电(无安全状态)在MF下的KEY EF中添加PIN密钥 建立4个EF文件 读取4个EF文件的内容 选择MF文件(安全状态变为0)读取4个EF文件的内容 验证PIN(安全状态变为7)读取4个EF文件的内容7.2 智能卡的安全访问机制1.鉴别与核实2.安全报文传送3.文件访问的安全控制4.数字签名/认证4.数字签名/认证基本概念数字签名/认证的过程如何在智能卡中实现数字签名1、数字签名数字签名是建立在公钥体制基础上的一种服务数字签名必须保证以下3点:接收者能
展开阅读全文