《智能卡技术》课程论文1浅析智能卡的安全机制摘要:智能卡能够生存的主要原因之一就是其安全性。卡本身提供了一个计算平台,此平台上,既能安全地保存信息,又能安全地进行各种计算。智能卡也十分精巧便于携带。因此,智能卡非常适用于作为提高其他系统安全性的标志。关键字:智能卡、物理安全、身份认证、完整性、授权、保密性I物理安全物理安全是全面的安全结构的中心。持卡者在物理上占有智能卡计算平台,这是向全面安全机制迈进的一大步。这种情况下,对整个系统安全的攻击,就必须通过攻击运行中的系统部件或通过检验系统运行时获取的信息而得以实现。可用智能卡的系统的全面安全结构必须满足如下的特性:如果持卡者不再占有卡,那么,由于安全性攻击而造成的损害,应该能过通过持卡人不再占有卡这一信息得到限制,并且最大程度的减小与持卡人有关信息的泄露,如卡自启动自毁程序等。装在卡内的、基于微处理器的计算机的增强性的安全结构以及卡自身的抗损包装是智能卡物理安全的重要部分。将处理器、内存和输入/输出部件整合到一个集成电路芯片中提高了配置的安全性。但是将带点的探针和内部的接线连接起来是非常困难的。若攻击者想要直接从卡的芯片中获得信息,就必须实际占有卡、拥有相关设备并具备一定的知识。II身份认证1、对称密钥认证图1对称密钥加密对称密钥算法在提供块信息加密方面最有用,因为相比公钥加密算法它对处理器速度的要求要低得多。对称加密算法采用同一个密钥对信息进行加密与解密,如上图1所示。在对称密钥算法中,普通文本传递给加密过程,得到的加密文本包含普通文本所携带的所有信息。但是,由于经过加密处理,没有密钥的读卡机是没有办法理解加密文本的信息的普通文本加密过程加密文本解密过程普通文本密钥《智能卡技术》课程论文2形式。加密文本和加密过程相同的密钥传递给解密过程时,经过解密即可恢复原始的普通文本。这一方法可以让原始文本信息对没有密钥的任何人保密,也可以使两两交易中的任一方确定对方持有密钥,从而确定彼此的身份。智能卡环境中对这种对称密钥身份认证应用如下图2所示。图2通过共享密钥进行身份认证如上图2所示的例子,其应用范围包括终端环境和卡环境。在目前大多数应用系统是由卡发行商制造的,他们在终端和卡中都安装了这种共享密钥。上图的例子还可扩展到利用两种截然不同的认证操作,每种使用一个不同的密钥。这种方法在有些情况下是非常有用的,例如:供许多不同持卡人用的许多不同的卡在终端应用中仅需认证同一个身份,这种情况下,终端应用软件只需要认证每个卡的唯一身份。运用这种方法,每张卡需要知道两个密钥,一个用于认证终端应用软件,另一个用于让终端认证卡的身份。但是终端则需要存储大量的密钥:一部分用于让不同的卡识别出终端的身份,一部分用于认证不同的卡的身份。从持卡人的角度看,这也不是一种最优的方案,因为用于鉴别身份的、需要保密的密钥被外部所知。如果这一密钥能从卡中破译,那么攻击者就有可能获得对对应终端的访问权限。2、非对称密钥认证如果口令文本一致,卡与终端就知道他们共享同一个密钥(也就是,他们拥有相同的密钥,他们已经建立起相互得到确认的标识)本本本终端应用本智能卡应用口令文本加密过程密钥口令文本解密过程口令文本密钥普通文本加密过程《智能卡技术》课程论文3图3非对称密钥加密如上图3所示,这种技术用一个密钥进行加密,用另一个密钥进行解密恢复出原始普通文本的信息。实际上,在加密密钥和解密密钥之间有一个共享的密码,即这些密钥被生成作为一个公有算法的不同的部分。对用于非对称密钥机制的两种密钥,一种被实体留作严格保密的私钥,实体将用此密钥进行身份认证;另一种是可以分配给任何人的公钥。用公钥和私钥进行配对作为建立已认证身份的标志。图4非对称密钥认证如上图4所示,实际上是一种单向认证机制,终端能向智能卡端确认其自身的身份。这样,终端应保护实际上表示他私人身份的私钥。与该私钥对应的公钥可以自由分配。因此,可将它存储在任何想利用该终端的智能卡上。所以智能卡可用此公钥来加密口令文本串,也加密文本解密过程普通文本密钥1密钥2如果口令文本一致,卡与终端就知道他们共享同一个密钥(也就是,他们拥有相同的密钥,他们已经建立起相互得到确认的标识)本本本终端应用本智能卡应用口令文本解密过程私钥口令文本解密过程加密文本公钥《智能卡技术》课程论文4就是一些独立的、卡已知的、并用来判定终端能否找到它的串。卡向终端发送根据这一口令文本得到的加密文本。如果终端拥有与该卡拥有的公钥对应的私钥,他就能解密这个口令,并将原始的普通文本返回给卡表示有效。显然,以上过程的逆过程能让卡向终端确认其自身身份。在此情况下,终端只需要知道与每张卡的身份有关的公钥部分。如果终端需要认证大量的卡,就得保留或至少能获得它需要认证的卡的公钥的一张表。从安全性的观点看,它比前述的对称密钥机制要好得多。从计算上讲,公有密钥加密或解密算法比对称密钥算法需要更大的计算量。因此,在智能卡处理器上,想要在短时间内加密或解密智能卡处理器中的大量信息是不现实的。然而,口令文本的容量不会太大,所以公有密钥机制可以有效的用来作为已经确认的标识,即使给定的智能卡的处理容量有限。III完整性上述的机制在交易中的大量参与者之间认证身份是非常有用的。不过这些机制还可以用于确认与文档或程序有关的标识。确认标识的过程就是执行函数的过程,这一身份认证过程构成了称为“数字签名”的一部分。数字签名的其他部分还包括确认那些数字签名的信息,在从被签到被读取的时间里没有被更改。这一点涉及安全性的另外一个概念——完整性。1、单向Hash函数如图4所示的情况,当智能卡用公钥加密口令时,智能卡在终端证明了它拥有能解密口令文本的私钥后,开始认证终端的身份。智能卡知道只有私钥的拥有者才能解密这些信息。因此,如果将过程反过来,终端产生一段文本并用私钥加密,当用公钥解密时,智能卡必须知道文本从终端传过来。因此,终端已经对文件进行了数字签名。也就是说,终端实际上已经附加了一个标识符号。公有密钥机制的加密和解密对处理器而言是很费时的。而且,公有密钥加密和解密操作,目的是身份认证,并不能保证其保密性。实际上没有必要为了数字签名和确认信息未发生变化而对设计的所有信息进行加密。需要做的事计算所有涉及信息的某种唯一的校验和,并加密该校验和。校验和是用一种统计算法对所涉及的信息进行统计的结果。校验和的产生可以通过单向Hash函数的统计算法来实现。通过Hash函数,可以处理众多的信息和得到相当小的Hash码。不同的输入得到不同的输出。为一个构成源文档的特定数码集创建唯一的Hash码,以及不能从给定的数码集预测将要产生的Hash码是Hash函数的特性。已经开发出一种单向Hash函数的实体,这种实体为了计算出单向Hash码,除了需要有将要处理的信息外,还需要一个密钥。这种函数被称作MAC。它们在验证信息的完整性,以及认证与此信息相关的标识时很有用,但是不能保证信息的保密性。从上述问题得到的另一个问题涉及到公钥密码和单向Hash函数联合使用的问题。也就是数字签名机制。《智能卡技术》课程论文52、数字签名如果对一组信息计算了单向Hash函数的值,用私钥对得到的值进行加密,产生的加密信息将提供对加密Hash结果的实体的身份认证、以及保证了原始信息的完整性。如下图5所示。图5使用单向Hash函数的数字签名从图5可知,当原文档连同文档上的数字签名一直被输入到另一个实体时,该实体能使数字签名生效。该实体将认证在原文档上进行数字签名的实体的身份,被确认原文档的完整性。3、认证授权大多数信任模型是基于认证的,认证将现实世界中一个实体的身份信息,与用来鉴别电子环境中的标识的、公钥部分联系在一起。证书由认证机构签发,认证机构是将在某种程度上证明身份信息与公钥之间连接的人或部件。这种模型的派生模型利用两个相互了解的个人之间的信任度,来建立两个可能相互不熟悉的个人之间的信任链。在这个模型中,一个人从另一个他认识的人接收公钥和有关的信息,并且对方会对所接收到的信息作证。可以看出这个模型适用于人数相对较少的情况。大规模信任模型当前基于认证授权或分级认证授权。被称作认证授权机构(CA)的组织实体完成以下任务:使标识信息生效、将该信息与一特定实体相关联,将所有这些与一公钥想关联。这种证明以一种由CA进行数字化签名的文件的形式提供。目的在于让CA成为被交易双方信任的第三方。如果两个不同的团体都能信任CA,那么就能信任从CA收到的信息,因此,如果他们都收到了CA发给的证书,也能相互信赖。IV授权一旦通过某个认证程序建立了一个实体的标识,在一给定系统中,该实体所能做的是另一种称为授权的安全性概念所要处理的问题。服务器根据客户拥有的权限,向客户提供信息单向Hash函数本加密过程文档Hash码私钥数字签名《智能卡技术》课程论文6和一些其他的必要服务。如图6所示。图6授权模型该模型表明,如果客户想对某一感兴趣的对象进行某种访问,他首先必须先向服务器验证他的标识。然后服务器会查询客户的、与所感兴趣对象有关的权限表。图6中用访问控制表来表示权限表,大多数这样的机制都可被概括为与访问控制表相似的功能。这种机制在智能卡中得到了广泛的应用,被用于对信息存取或处理功能。V保密性保密性,顾名思义,对交易的局外人保护交易细节的秘密。前面所述的加密机制适用于保密性。一般的,主要的设计考虑因素是实际操作环境中的性能。公钥加密方法比对称密钥加密方法更消耗处理的时间。因此,大多数系统采用对称密钥算法对属于同一交易系统的不同端点的信息流进行加密。事实上,公钥技术在上述这种情况下是非常有用的,尤其是党需要交换密钥的对称算法时。如果使用同一对称密钥密码的时间过长或过于频繁,攻击者会有很大的可能性来破译密码,并利用所获得的信息破坏保密性。如果整个特定的安全系统都熟悉公钥密码的公钥,就可使用前文所述的机制。如果公钥不为整个系统所知,有另外一种方法可为交易中的不同参与者分配对称会话密钥,这就是Diffie-Hellman协议。通过预先同意利用一种公共算法,终端双方都能根据彼此明白的交换的信息计算出一个秘密的密钥。实际上,这项技术不能用于加密信息,只能够用于交换秘密的对称密钥,该对称密钥交换后用于加密实际交易信息。交易信息的加密常指块加密。通常,智能卡不涉及块加密处理。从智能卡读卡机到卡的I/O接口的数据传输率与局域网或广域网中的典型传输速度相比是很低的。因此,智能卡实际上运行的大多数加密操作与身份认证有关。用于加密的算法主要有:DES算法、RC4算法、AES算法、RSA算法等。客户端服务器端认证身份授权的服务访问控制表感兴趣的对象《智能卡技术》课程论文7参考文献:[1]张焕国,王张宜,2009.密码学引论(第二版),武汉大学出版社。[2]孟庆树,王丽娜,傅建明等译,2009.密码编码学与网络安全——原理与实践(第四版),电子工业出版社。[3]邵建平,陈清,夏凌等译,2000.智能卡开发者指南,电子工业出版社。[4]《建设事业IC卡应用技术与发展》编委会,2003.建设事业IC卡应用技术与发展,中国建筑工业出版社。