校园一卡通安全方案研究与设计
文章出处:http://www.ifyousmell.com 作者:王国伟 王瑞 薛勇 人气: 发表时间:2011年11月23日
1 引言
“校园一卡通”是以IC卡为信息载体的适用于高校校园管理和消费的综合系统,IC卡取代了校园内使用的各种个人证件和现金支付手段,在一张IC卡上实现消费和管理等多种功能。在校园一卡通中,各应用子系统将系统产生的电子账单传到结算中心,在这个交易过程中,校园卡本身的伪造和攻击以及交易过程中传输的金融数据的安全性非常重要。由于“校园一卡通”的交易数据涉及到全校师生以及后勤部门的切身经济利,交易数据的篡改将会造成巨额的经济损失和“校园一卡通”软、硬件设备的作废,因此其安全性是整个“校园一卡通”系统安全性的根本保证。
2 安全方案设计
2.1 卡片的安全
作为一个IC卡应用系统,“校园一卡通”充分利用IC卡提供的硬件加密逻辑分发、管理和使用IC卡,IC卡的硬件加密逻辑(主要体现为主密码、分区密码和擦除密码)可以说是IC卡的密钥,在“校园一卡通”系统中,正是将其纳入整个密钥管理体制来统一管理的。
整个密钥管理系统采用三级密钥体制,由密钥管理中心根据传统3DES算法产生系统的根密钥、二级密钥和会话密钥。密钥的分发采用根密钥和二级密钥的分发采用智能卡(CPU卡)作为传递介质以及线路加密的方式。
2.1.1 密钥生成前的准备工作
根据功能,密钥生成系统由根密钥系统、二级密钥系统和SAM卡密钥系统组成。密钥生成系统的主要任务是利用各种密钥的生成机制和加密算法,并将生成的密钥存储在具有密钥导出功能的CPU智能卡,即SAM(Security Access Module)卡。密钥的发行采用由上一级生成下一级所需的各种子密钥。系统在生成相应的密钥时,同时生成相应的认证密钥,将其存储在相应的认证卡中,以控制和配合密钥卡的使用。密钥卡必须通过其认证卡的相互认证(外部认证)后才能正常使用。
2.1.2 根密钥生成
密钥和密钥种子的产生一般用随机数的方法产生。对于高密级的根密钥,要求绝对地随机产生,比如采用掷币法或投骰法等产生真随机数。根密钥采取由多人、多批次分开完成注入:由学校不同的负责人分别输入16位(取值范围0,1,.... 9,A,.....,F)种子A和种子B,种子A和种子B在密钥发生器中产生所需的所有密钥,保存在密钥母卡和密钥控制卡中,密钥母卡中的密钥只能在密钥控制卡的控制下导入、导出。种子A和种子B必须安全保存,当密钥母卡或密钥控制卡意外损坏、丢失或因使用次数过多而自然损坏时,可用种子A和种子B恢复出相同的密钥。同时,密钥发生器还要产生几套不同的密钥保存在密钥母卡中,万一出现某套密钥泄漏,可实时启用另一套密钥 。
第一步,输人种子A和种子B:由两人独立输入一个16位数(或少于16位),分别作为SeedA和SeedB ;
第二步,计算种子C:SeedC=SeedA o SeedB;
第三步,密钥种子的初始化:
重复执行从第四步以第六步,直到所有的原始密钥全部生成。
2.1.3 二级密钥的生成及分发
第一步:录入二级业务分散代码,将业务分散代码写入二级密钥母卡。二级密钥母卡上以密文二进制方式存放业务分散代码。
第二步:发行二级密钥认证卡1和二级密钥认证卡2,用来为二级密钥母卡提供直接导出和分散导出的保护密钥。发行PSAM卡传输卡,作用是为PSAM卡的发行提供主控密钥。
根密钥母卡和根密钥认证卡生成后,递交给二级密钥生成系统,用于生成二级密钥母卡和二级密钥认证卡,二级密钥生成系统先利用根密钥认证卡对根密钥母卡进行外部认证,过程如下:
(1)首先校验根密钥认证卡的PIN,获得根密钥认证卡的使用权;
(2)二级密钥生成系统对根密钥卡发出随机数命令,获得8字节的随机数;
(3)二级密钥生成系统对根密钥认证卡发内部认证命令,将上一步获得的随机数传过去,根密钥认证卡用卡中的内部认证密钥加密该随机数,将加密结果送给二级密钥生成系统;
(4)二级密钥生成系统用外部认证命令,将加密结果送给根密钥卡,根密钥卡内部进行解密,将解密的随机数与卡中保留的随机数比较,如相同则说明卡中的外部认证密钥与根密钥认证卡中的内部认证密钥相同,认证通过。
认证通过后,二级密钥生成系统将根密钥卡中的根密钥导出,生成二级密钥到密钥卡中。
第三步:使用根密钥母卡和根密钥认证卡发行二级密钥母卡;产生随机数作为根密钥母卡的保护密钥,根密钥认证卡上的分散因子对根密钥母卡上的密钥密文分散导出,利用随机数产生二级密钥母卡上的主控密钥,将需要的多组密钥添加到二级密钥母卡上。
第四步:用二级密钥母卡、二级密钥认证卡,发行PSAM母卡和PSAM母卡认证卡。二级密钥认证卡1上的密钥添加到二级密钥母卡上作为保护密钥,同时作为PSAM母卡的主控密钥;二级密钥母卡上的消费密钥以密文形式直接装入PSAM母卡。
2.2 数据传输的安全
校园卡用户交易数据使用会话密钥进行加密,按“一次一密”的方式工作。这样,即便对某一次的交易数据进行攻击,也不能对整个校园一卡通系统的密钥体系产生影响。会话密钥生命周期很短,其产生和分配的速度要求很高。采用用户向密钥
产生系统申请产生会话密钥,分发采用公开密钥密码体制的方式,由PKI和密钥产生系统结合进行分发。即:利用公开密钥密码(PKI)分配传统密码的会话密钥,再利用传统密码对会话进行加密保护,会话密钥由密钥管理中心应用户申请产生。
2.2.1 会话密钥的生成
用二级密钥母卡,二级密钥认证卡1,二级密钥认证卡2,PSAM母卡认证卡发行用户卡母卡。用户卡母卡上的密钥分散导出,生成会话密钥,发行学生用的校园卡。学生申请校园卡之前,必须经过“校园一卡通”管理中心的身份审核,生成个人
密钥对:生成RSA密钥对,其中,私钥存储到指定的文件中,公钥导出,用于生成数字证书。
2.2.2 会话密钥的分发
PKI下的CA以及会话密钥产生系统协调负责管理用户的公开加密密钥并辅助传统密码体制的会话密钥的产生与分配。
(4)撤消连接
会话结束以后,便撤消连接,将用于本次会话的RN和K 销毁。
2.3 密钥的存储和销毁
密钥注入以后,应该存储在加密设备里,并以加密的方式存放,对密钥的解密操作的口令由专门的密码操作人员保管,这样即使破解者拿到装有密钥的加密设备也可以保证密钥的安全。密钥的使用是有使用期限的,一旦密钥的有效期到达,必须清除原密钥或者更新。为保证加密设备能够连续工作而不出意外,可以设计新密钥生效后,原有密钥可以持续使用一定时间,以防止密钥更换时期出现的意外情况。
3 结语
本文提出结合传统密码算法和现代密码算法相结合的方法实现密钥管理方案,这种方案利用公钥密码分配传统的会话密钥,再用传统会话密钥进行保密的交易数据传输,同时会话密钥始终不在网络信道中出现,既方便又安全。由于现代密码算法在数字签名方面的特有的技术特性,该方案为一卡通中实现数字签名功能带来了极大的便利。CA设计方案以及Web工作的数字签名系统与密钥管理的结合,可以在很大程度上弥补目前”校园一卡通”中数字签名不被重视的缺陷。
收稿日期:2007年11月27日,修回日期:2008年1月4日
作者简介:王国伟,男,硕士,讲师,研究方向:计算机网络及安全技术研究。王瑞,男,硕士,研究方向:信息系统研
究。薛勇,男,经济师,研究方向:信息经济研究。
参考文献
[1]张玉清,陈建奇,杨波等.公钥基础设施(PKI)实现和管理电子安全[M].北京:清华大学出版社,2002:365~ 368
[2]林飞.一种基于RSA的认证加密方案[D].暨南大学,2000
[3]Schneier.B,吴世忠等译.应用密码学:协议、算法与C源程序[M].北京:机械工业出版社,2000:147
[4]黄正金,张其善.一种新型密钥管理系统的设计与实现[J].电子技术应用,2002,(11):34~35
[5]张焕国,刘玉珍.密码学引论[M].武汉:武汉大学出版社,2003:114~121,215~219