IC卡的安全性技术及其数字签名技术分析
文章出处:http://www.singbon.com 作者:杨风暴 刘 星 人气: 发表时间:2011年10月08日
IC 卡俗称智能卡,是将具有微处理器(CPU) 或大容量存储器的集成电路( Integrated Circuit s) 芯片嵌装于塑料等基片上而制成的。同磁卡等其它卡相比具有安全性高、大容量、抗干扰、读写方便等优点。其中安全性是IC 卡生存的基础,也是它作为信用卡、信息卡、现金卡等得到广泛应用的主要原因之一。本文从硬、软件两个角度对IC 卡的安全性技术进行分析,并且对其中的数字签名技术进行了着重探讨。
1 IC 卡的安全性技术
IC 卡的安全性是其生存和发展的基础,也是IC卡的重要特征。IC 卡的安全性必须是保证其所存储信息的安全,否则IC 卡将无法广泛应用。
IC 卡的安全性技术就是针对信息的安全性而采取的措施。通常IC 卡的安全性技术可以分为硬件安全性技术和软件安全性技术。信息的安全性一般从三个方面考虑:机密性,防止未授权的获取;完整性,防止未授权的更改、增删;可获取性:防止未授权的截流。采用IC 卡安全性技术应遵循两个原则:
①使最终应用的IC 卡具有较高的性能价格比。
②伪造和非法使用IC 卡的费用远大于从中获取的利益。
1. 1 IC卡的硬件安全性技术
IC 卡的硬件安全性技术又可分为IC 卡用芯片的安全性技术和IC 卡卡片制造的安全性技术。
1. 1. 1 IC 卡用芯片的安全性技术
IC卡用芯片是IC卡的核心部分,其安全性是IC卡的安全性基础。在芯片的设计阶段使用完善的保护措施非常重要。这主要是防止对IC 卡可能的物理攻击(探测) 。一般典型的物理攻击有通过扫描电子显微镜对存储器进行分析读写、通过测试探头读取存储器内容、通过厂家测试点直接对存储器或处理器操作等。基于以上分析, IC 卡用芯片的安全性要从物理上防止非法读写,使其遭受到的攻击可能性降至最小。采取的方法一般有:
①使测试功能不再被激活。测试功能是芯片制造商提供的对IC 卡用芯片进行全面检测的功能。这一功能对IC 卡具有较大操作性,因而利用烧断熔丝,可使测试功能不再被激活。
②存储器的逻辑保护。在IC 卡用芯片内部设计时,可以设保护存储器、安全存储器,使主存储器的内容受到保护。如西门子公司生产的IC 卡用芯片SL E4442 ,其存储器如图1 所示。
通过在保护存储器中写入与主存储器中前32 位相同的位,使这32 个字节被不可逆地保护起来。安全存储器具有4 个字节。前3 个字节为参考数据和最后一个字节是错误计数器,只有验证数据与参考数据相同,方可对主存储器读写,否则3次验证不成功,错误计数器将阻止以后的任何读写。其它方法还有协处理器提供加密运算、总线和存储器设置物理保护层、高低电压检测、低时钟工作频率检测等。
图1 SL E4442 芯片的存储器
1. 1. 2 IC 卡卡片制造的安全性技术
IC 卡的制造上也有很多安全保护方法,例如,安全背景结构:与银行纸币和发票上的回纹相似;微线条技术:可读不可复制,激光雕刻签名;荧光安全图象:激光图片,图象制作难,在紫外线下可见;激光雕刻可触摸向量字符;完全嵌入卡内,伪造图片将永久毁坏卡片等等。
1. 2 IC卡软件安全性技术
除了上面的IC 卡硬件保护措施,在IC 卡的软件方面也应提供相应的安全措施。通常有两方面的软件保护措施: IC 卡和终端设备通信的加密解密技术、IC卡和终端设备通信信息的认证技术。
1. 2. 1 IC 卡与终端设备通信的加密解密技术
在接口设备( IFD) 和IC 卡( ICC) 之间的信息交换是命令~响应的顺序结构。多数情况下,接口设备或应用终端如PC 机、工作站、服务器产生命令或执行顺序, IC 卡响应不同的命令,如此在IFD 和ICC 之间传输信息的安全性必须得到保障,防止截获。IC 卡操作系统(对含CPU 的芯片而言) 对此采用加密和隐含传输的方法,将待送的命令、响应序列进行加密处理之后再传输。适宜IC 卡的加密算法一般有DES、FEAL 算法。
1. 2. 2 IC 卡与终端设备通信信息的认证技术
IC 卡的认证技术与存储器的分层结构有密切联系。IC 卡存储器分4 层:存储器整体、文件、区、记录,且每一层理论上均可加锁,以防止对其内部信息的非法读写。一般不设记录锁,如图2 所示。下面分别讨论存储器锁、文件锁、区锁采用的各种安全性技术:个人认证技术、相互认证技术、消息认证技术。
图2 IC卡的锁与存储器分层结构
①个人认证技术存储器锁对IC 卡上的所有存储器的安全负责,为了判断持卡人和接收卡的终端的合法性,需在IC卡的发行阶段将持卡者的个人信息装入卡中,一般使用PIN 个人标识码。用卡时,从终端机向卡传送个人信息,IC 卡在其内部进行比较核对,一致即开锁。
图3 IC卡的校验规程
由于PIN 可能被遗忘或被别人窃知,许多个人认证技术被用于IC卡,诸如指纹、笔迹、声音识别和视网膜扫描等用来代替PIN ,如法国的相片认证系统、日本的指纹认证系统。不同的认证技术所需要的存储空间不同,如笔迹需10 至20 个字节,指纹需300 至800 个字节。
②相互认证技术
文件存于各个应用当中,若要打开文件锁就应确认IC 卡的通信对象是否应用提供者认可的合法装置,反之,后者也要确认前者。即通信双方要进行相互确认对方的认证。相互认证根据一定长度的、不易被破译的比特序列进行,这种比特序列在线路上传输和交换。相互认证的规程见图4 。首先由IC 卡发送卡的明码,接着相互交换随机数(双方的随机数不同) ;然后对函数输入卡的明码ID 和随机数以相互持有的认证函数加密,交换结果;最后将自己求出的结果与对方的运算核对,认证函数f 采用加密算法,且无需解密过程。
图4 相互认证技术的规程
③消息认证技术区锁有一种就是消息认证的锁,其概念由图5 说明。发送端发送消息和由消息求得的认证子,接收端( IC 卡) 根据消息计算认证子并和发送来的认证子核对。函数g 采用加密算法。
图5 消息认证的概念
2 数字签名技术
2. 1 数字签名的概念及特性
从前面的认证技术可以看出,认证技术对于非法读写、更改具有重要的防止作用。严格讲来,已认证后的双方可以进行通信,但IC 卡不能证明对方是否规定的装置发送地。比如甲、乙认证后,甲可以对乙读写,可是甲并未对乙读写,却有一个非法信号使乙内信息发生变化,而乙这时仍认为是甲的操作。当然问题不仅如此。因而,人们想到了现实生活中的签名行为,将
签名的特点引入安全性技术,从而产生了数字签名技术。
数字签名是指相当于现实生活中签名的、不可伪造的、用于证明消息发送端的比特序列。它有三个特性:第三者不能伪造、接受端不能伪造、发送端不能否认本身发送的事实。由此可以看出数字签名技术的安全性和防伪性是其它安全性技术不可企求的。
2. 2 采用公钥体制的数字签名技术
公钥体制是由Diffie 和Hellman 于1976 年提出来的允许公开加密密钥的一种体制。发送端利用公钥对消息加密,接受端利用私钥进行解密。这里的公钥是指公开的加密解密方法;私钥是指保密的不公开的加密解密方法。数字签名技术与公钥体制相反,利用私钥签名,利用公钥将签名信息还原。过程如下:
发方A 用私钥Ksa 对信息M 进行签名:
N = Ksa ( M )
收方B 利用公钥Kg 将签名信息还原
M = Kg ( N )
A 用私钥加密后形成的签名,任何其它人都无法产生或篡改,且发方也无法否认。若第三者进行更改,因无Ksa 而无法为篡改的信息签名,这样篡改后的信息便没有了法律效力。
这里有一个问题,签名信息Ksa ( M ) 在传输中无密可保,任何人可用公钥Kg 对其还原。为此可以对Ksa ( M ) 进行加密后传输。这样,加密和签名组合来就更安全了,见图6 。
图6 采用公钥体制的数字签名
其中Ksa :用户A 的私钥
Kga :用户A 的公钥
Ksb :用户B 的私钥
Kgb :用户B 的公钥
发方A 用Ksa 对信息签名得
N’= Ksa ( M )
发方A 用B 的公钥Kgb 对签名N ’加密
N = Kgb ( N ’)
收方B 用Ksb 对加密后的签名解密
N’= Ksb ( N )
收方B 用A 的公钥Kga 将签名信息还原
M = Kga ( N’)
上面的数字签名过程仍有缺陷:如当B 方收到A方传送的指令报文并用Ksb 解密得Ksa ( M ) ,再用C方的公钥加密得Kgc ( Ksa ( M ) ) 发送给C 方,这样C误认为是A 给它下了指令,即B 冒充了A 将指令发 送给C 。若将Ksa 与Kgb , Ksb 与Kga 的顺序各自互换便可弥补这个缺陷。
3 结束语
IC 卡的安全性技术对用户来讲主要是软件安全性技术,软件安全性技术的核心是信息的加密解密技术。研究IC 卡的安全性主要从IC 卡本身与其终端的相互认证、IC 卡与终端通信的加密解密技术、数字签名技术等三方面进行。由于采用公钥体制的算法还不多,数字签名技术受到公钥算法的影响。