校园一卡通系统密钥管理设计
文章出处:http://www.nexussmartsolutions.com 作者: 人气: 发表时间:2011年09月16日
一、 概述
IC卡又称智能卡(Smart Card),即集成电路卡(Integrated Circuit Card)。它是将一个集成电路芯片镶嵌于塑料基片中,封装成卡的形式。IC卡芯片具有写入和存储数据的能力,IC卡存储器中的内容根据需要可以有条件的供外部读取,或供内部信息处理和判定之用。
校园一卡通系统(简称校园卡系统)是一个多功能IC卡应用系统。所谓“多功能”,是指以一张IC卡同时支持多种不同的应用子系统,而各个子应用系统本身是在统一规划的前提下分别开发的,包括学生上机管理、食堂收费管理、图书馆管理、校内小额消费、教务处学生成绩管理、学生选课、学生处的管理、校医院医疗等,而这些管理项目用IC卡应用系统都能很好的实现;其次,学校是一个相对独立的实体,这就为整个系统在设计中整体规划,在实现中分步进行,在使用中统一管理、统一结算打下了坚实的基础。
实现这样一个多功能校园卡系统,无疑具有巨大的优越性。从学校讲,这样的系统将大大降低整个系统的成本,减少IC卡生命周期(指IC卡发放、使用及回收的全过程)的维护工作量和整个系统的维护工作量;从使用者角度讲,用一张IC卡就能完成系统所覆盖的各种应用,实现“一卡通全校”,这将极大方便使用者。此外,在学校的各个管理部门内引入基于IC卡的计算机管理系统,对于提高工作效率和管理水平、减少现金流通、实施更加有效的财务监督等,都将有很大好处。
对于这样一个多功能IC卡应用系统,保证系统的安全显得尤为重要。为了杜绝伪卡、防止非授权用卡、以及防止个人隐私泄漏必须使用现代密码技术。随着密码技术在民用领域的普遍使用,标准密码算法(如AES、DES、RSA、IDEA等)的细节都是公开的。这样,用密码技术保护的信息系统的安全就应取决于对密钥的保护,而不是对密码算法或设备本身的保密,即“所有秘密寓于密钥之中”,密钥管理在安全保密系统的设计中就显得更加重要。
二、 密钥的管理
1、密钥管理的基本要求
密钥管理历来是一个很棘手的问题。它不仅与技术有关,还与人的因素有关。技术上再完善,通过人员这个口子仍然可能把核心机密泄露出去。特别是当密钥管理存在一些漏洞或薄弱环节时,从密钥管理的途径窃取机密要比单纯从破译的途径窃取机密的代价要小得多。
密钥管理主要包括密钥的产生、检验、分配、传递、保管、使用和销毁等过程。好的密钥管理系统应当尽量不依赖人的因素,其具体要求如下:
1)密钥难以被非法窃取;
2)在一定条件下窃取了密钥也没有用;
3)密钥的分配和更换过程在用户看来是透明的,用户不一定要亲自掌握密钥。
这三点也是评价一个密钥管理系统性能好坏的标准。
校园卡系统的密钥管理方式是在现实环境的制约下,尽量满足这三项要求来设计的。
2、校园卡系统密钥管理体制
在建立校园卡系统密钥管理体制时,还要考虑了以下几方面的情况:
1)校园卡系统是建立在非实时网络环境基础上的,为保证在非联网状态下系统的正常运行,不能采用实时的交互式密钥交换协议;
2)校园卡系统是一个专用系统,对开放性要求不高,可以采用单钥密码体制来管理密钥;
3)充分利用IC卡内部的主密码区、各区分区密码区和擦除密码区,将其纳入整个系统的密钥管理体系,统一管理。
校园卡系统的密钥管理体制采用一种二级密钥管理体制,主密钥由人工注入,通过密钥协议产生工作密钥,分别写入主密码区、各分区密码区和擦除密码区,用工作密钥来保证IC卡,以及校园卡管理中心、校园卡结算中心和各应用子系统间传输数据的安全性。
2.1 校园卡系统工作密钥产生、存储、使用协议
校园卡系统密钥管理体制AT88SC1604卡有一个主密码区,4个分区密码区和4个擦除密码区,这些密码区的内容必须在个人化IC卡时写入。在设计校园卡系统时,我们曾了解过一些IC卡应用系统,其IC卡上密码区的数据是由无密钥控制的简单算法(如异或、取反、移位等)生成的,其安全性显然是很差的
校园卡系统中对IC卡上各密码区数据提出的要求是:
1)必须由专用的密码算法生成,以保证强度;
2)密码区数据的随机性要好;
3)密码区数据要和个人信息联系;
4)密码区数据能由各应用子系统独立生成,不能依赖网络;
5)IC卡各分区的安全性要独立,并体现分级保护原则;
校园IC卡主密码、各分区密码和分区擦除密码的产生方法如图2-1所示。持卡人的姓名、身份证号经过一个初始运算后,其结果与4个独立的主密钥(一级密钥)K1、K2、K3、K4一起参与加密运算DES、IDEA、流密码和DES,产生工作密钥(二级密钥),该工作密钥的某些字节分别作为主密码、各分区密码和擦除密码,在个人化IC卡时写入IC卡的主密码区、各分区密码区以及擦除密码区。
校园卡“密钥”产生方法
由于采用不同密码算法生成不同密码区密码,保证了各密码区密码的随机性以及相对独立性,而且通过各密码区数据,要想计算出主密钥,在计算上是不可能的应用子系统通过系统操作员卡获得该应用所需的一级主密钥(详见下述),当需要对IC卡操作时,从IC卡档案区读出持卡人姓名和身份证号,并完成初始运算和相应的加密运算,产生该IC卡的主密码、某分区的分区密码和擦除密码,便可对IC卡操作了。
该产生方法满足了以上提出的五项要求,它与AT88SC1604卡的硬件保护措施相结合(如熔丝后各区密码只能比较,不能读出;密码连续比较错误,将使IC卡损坏),较好地保证了校园卡系统中IC卡的安全性。
2.2 数据传输密钥管理协议
为保证校园卡管理、结算中心和各应用子系统间数据(主要是电子底帐)传输的安全,必须对传输数据进行加密和认证,以保证数据的完整性、正确性和有效性。传输数据的加密和认证也是在工作密钥的控制下进行的。以上机收费子系统为例,它与校园卡管理、结算中心间传递的数据中,只有电子底帐是经过加密和认证的,其使用的工作密钥产生协议如图2-2所示。
数据传输密钥产生方法
“底帐时戳”是产生工作密钥的参数,它是用来标记每个机房每天产生底帐的唯一标识,每个电子底帐文件都具有唯一的时戳。“底帐时戳”由机房管理机产生并维护,附在电子底帐中一起传到结算中心。结算中心从底帐文件中获得该底帐的时戳,并和该机房的主密钥一起产生工作密钥,从而对电子底帐解密和认证。
采用这种二级密钥管理体制,保证了每个底帐文件用不同的工作密钥进行加密、认证,并且不需要机房和结算中心之间进行交互对话,从而简化了管理过程,适合现在的管理模式。
2.3 应用子系统主密钥注入协议
为了保证校园卡系统的非联网运行能力,各应用子系统必须要在本地管理所需的主密钥(一级密钥),而不能每次运行都从校园卡管理中心获得主密钥,尤其对于产生IC卡密码区数据的主密钥更是如此。因此,在校园卡系统中,采用了专用的密钥注入设备——操作员卡。
目前采用的操作员卡也是一张AT88SC1604卡,其内部数据区加密存储了系统信息(如机房号、操作员号)、本系统所需的密钥信息、以及操作员卡认证信息。每个独立的系统有一张。
系统启动时,操作员插入操作员卡,并输入口令,该口令经一个单向函数变换后,来源一卡通世界。产生的结果必须与操作员卡中存储的认证信息的某些分量一致,才能启动系统。这就保证了只有操作员卡的合法拥有者才能凭操作员卡启动系统。系统启动后,从操作员卡中读出系统信息和密钥信息,就能开始正常运行。
采用操作员卡作为密钥注入设备,充分利用了AT88SC1604卡的硬件加密措施。它与系统使用的软件加密措施相结合,保证了主密钥的安全。此外,使用操作员卡保存主密钥,便于主密钥的更换(需要时回收操作员卡,重新写入密钥,并更新管理中心密钥数据库即可),这也符合现代密钥管理的要求,提高了系统的安全性。
三、小结
校园卡系统的密钥管理体制,是按照现代信息系统密钥管理的一般要求,并结合校园卡系统的具体情况建立起来的一种二级密钥管理体制。它具有很好的安全性,同时对应用系统操作人员是透明的,能较好满足了校园卡系统中密钥管理的要求。
参考文献
(1) 何大可,一种迭代型分组密码的差分密码分析,西南交大学报,1998.6
(2) 于宏军、赵冬艳,智能IC卡技术全书,电子工业出版社,1997
(3) 杨波,网络安全理论与应用,电子工业出版社,2002
(4) 智能卡技术汇编,深圳爱迪尔电子有限公司,1995