校園一卡通安全方案研究與設(shè)計(jì)
文章出處:http://www.mjagi.com 作者:王國偉 王瑞 薛勇 人氣: 發(fā)表時(shí)間:2011年11月23日
1 引言
“校園一卡通”是以IC卡為信息載體的適用于高校校園管理和消費(fèi)的綜合系統(tǒng),IC卡取代了校園內(nèi)使用的各種個(gè)人證件和現(xiàn)金支付手段,在一張IC卡上實(shí)現(xiàn)消費(fèi)和管理等多種功能。在校園一卡通中,各應(yīng)用子系統(tǒng)將系統(tǒng)產(chǎn)生的電子賬單傳到結(jié)算中心,在這個(gè)交易過程中,校園卡本身的偽造和攻擊以及交易過程中傳輸?shù)慕鹑跀?shù)據(jù)的安全性非常重要。由于“校園一卡通”的交易數(shù)據(jù)涉及到全校師生以及后勤部門的切身經(jīng)濟(jì)利,交易數(shù)據(jù)的篡改將會(huì)造成巨額的經(jīng)濟(jì)損失和“校園一卡通”軟、硬件設(shè)備的作廢,因此其安全性是整個(gè)“校園一卡通”系統(tǒng)安全性的根本保證。
2 安全方案設(shè)計(jì)
2.1 卡片的安全
作為一個(gè)IC卡應(yīng)用系統(tǒng),“校園一卡通”充分利用IC卡提供的硬件加密邏輯分發(fā)、管理和使用IC卡,IC卡的硬件加密邏輯(主要體現(xiàn)為主密碼、分區(qū)密碼和擦除密碼)可以說是IC卡的密鑰,在“校園一卡通”系統(tǒng)中,正是將其納入整個(gè)密鑰管理體制來統(tǒng)一管理的。
整個(gè)密鑰管理系統(tǒng)采用三級(jí)密鑰體制,由密鑰管理中心根據(jù)傳統(tǒng)3DES算法產(chǎn)生系統(tǒng)的根密鑰、二級(jí)密鑰和會(huì)話密鑰。密鑰的分發(fā)采用根密鑰和二級(jí)密鑰的分發(fā)采用智能卡(CPU卡)作為傳遞介質(zhì)以及線路加密的方式。
2.1.1 密鑰生成前的準(zhǔn)備工作
根據(jù)功能,密鑰生成系統(tǒng)由根密鑰系統(tǒng)、二級(jí)密鑰系統(tǒng)和SAM卡密鑰系統(tǒng)組成。密鑰生成系統(tǒng)的主要任務(wù)是利用各種密鑰的生成機(jī)制和加密算法,并將生成的密鑰存儲(chǔ)在具有密鑰導(dǎo)出功能的CPU智能卡,即SAM(Security Access Module)卡。密鑰的發(fā)行采用由上一級(jí)生成下一級(jí)所需的各種子密鑰。系統(tǒng)在生成相應(yīng)的密鑰時(shí),同時(shí)生成相應(yīng)的認(rèn)證密鑰,將其存儲(chǔ)在相應(yīng)的認(rèn)證卡中,以控制和配合密鑰卡的使用。密鑰卡必須通過其認(rèn)證卡的相互認(rèn)證(外部認(rèn)證)后才能正常使用。
2.1.2 根密鑰生成
密鑰和密鑰種子的產(chǎn)生一般用隨機(jī)數(shù)的方法產(chǎn)生。對(duì)于高密級(jí)的根密鑰,要求絕對(duì)地隨機(jī)產(chǎn)生,比如采用擲幣法或投骰法等產(chǎn)生真隨機(jī)數(shù)。根密鑰采取由多人、多批次分開完成注入:由學(xué)校不同的負(fù)責(zé)人分別輸入16位(取值范圍0,1,.... 9,A,.....,F(xiàn))種子A和種子B,種子A和種子B在密鑰發(fā)生器中產(chǎn)生所需的所有密鑰,保存在密鑰母卡和密鑰控制卡中,密鑰母卡中的密鑰只能在密鑰控制卡的控制下導(dǎo)入、導(dǎo)出。種子A和種子B必須安全保存,當(dāng)密鑰母卡或密鑰控制卡意外損壞、丟失或因使用次數(shù)過多而自然損壞時(shí),可用種子A和種子B恢復(fù)出相同的密鑰。同時(shí),密鑰發(fā)生器還要產(chǎn)生幾套不同的密鑰保存在密鑰母卡中,萬一出現(xiàn)某套密鑰泄漏,可實(shí)時(shí)啟用另一套密鑰 。
第一步,輸人種子A和種子B:由兩人獨(dú)立輸入一個(gè)16位數(shù)(或少于16位),分別作為SeedA和SeedB ;
第二步,計(jì)算種子C:SeedC=SeedA o SeedB;
第三步,密鑰種子的初始化:
重復(fù)執(zhí)行從第四步以第六步,直到所有的原始密鑰全部生成。
2.1.3 二級(jí)密鑰的生成及分發(fā)
第一步:錄入二級(jí)業(yè)務(wù)分散代碼,將業(yè)務(wù)分散代碼寫入二級(jí)密鑰母卡。二級(jí)密鑰母卡上以密文二進(jìn)制方式存放業(yè)務(wù)分散代碼。
第二步:發(fā)行二級(jí)密鑰認(rèn)證卡1和二級(jí)密鑰認(rèn)證卡2,用來為二級(jí)密鑰母卡提供直接導(dǎo)出和分散導(dǎo)出的保護(hù)密鑰。發(fā)行PSAM卡傳輸卡,作用是為PSAM卡的發(fā)行提供主控密鑰。
根密鑰母卡和根密鑰認(rèn)證卡生成后,遞交給二級(jí)密鑰生成系統(tǒng),用于生成二級(jí)密鑰母卡和二級(jí)密鑰認(rèn)證卡,二級(jí)密鑰生成系統(tǒng)先利用根密鑰認(rèn)證卡對(duì)根密鑰母卡進(jìn)行外部認(rèn)證,過程如下:
(1)首先校驗(yàn)根密鑰認(rèn)證卡的PIN,獲得根密鑰認(rèn)證卡的使用權(quán);
(2)二級(jí)密鑰生成系統(tǒng)對(duì)根密鑰卡發(fā)出隨機(jī)數(shù)命令,獲得8字節(jié)的隨機(jī)數(shù);
(3)二級(jí)密鑰生成系統(tǒng)對(duì)根密鑰認(rèn)證卡發(fā)內(nèi)部認(rèn)證命令,將上一步獲得的隨機(jī)數(shù)傳過去,根密鑰認(rèn)證卡用卡中的內(nèi)部認(rèn)證密鑰加密該隨機(jī)數(shù),將加密結(jié)果送給二級(jí)密鑰生成系統(tǒng);
(4)二級(jí)密鑰生成系統(tǒng)用外部認(rèn)證命令,將加密結(jié)果送給根密鑰卡,根密鑰卡內(nèi)部進(jìn)行解密,將解密的隨機(jī)數(shù)與卡中保留的隨機(jī)數(shù)比較,如相同則說明卡中的外部認(rèn)證密鑰與根密鑰認(rèn)證卡中的內(nèi)部認(rèn)證密鑰相同,認(rèn)證通過。
認(rèn)證通過后,二級(jí)密鑰生成系統(tǒng)將根密鑰卡中的根密鑰導(dǎo)出,生成二級(jí)密鑰到密鑰卡中。
第三步:使用根密鑰母卡和根密鑰認(rèn)證卡發(fā)行二級(jí)密鑰母卡;產(chǎn)生隨機(jī)數(shù)作為根密鑰母卡的保護(hù)密鑰,根密鑰認(rèn)證卡上的分散因子對(duì)根密鑰母卡上的密鑰密文分散導(dǎo)出,利用隨機(jī)數(shù)產(chǎn)生二級(jí)密鑰母卡上的主控密鑰,將需要的多組密鑰添加到二級(jí)密鑰母卡上。
第四步:用二級(jí)密鑰母卡、二級(jí)密鑰認(rèn)證卡,發(fā)行PSAM母卡和PSAM母卡認(rèn)證卡。二級(jí)密鑰認(rèn)證卡1上的密鑰添加到二級(jí)密鑰母卡上作為保護(hù)密鑰,同時(shí)作為PSAM母卡的主控密鑰;二級(jí)密鑰母卡上的消費(fèi)密鑰以密文形式直接裝入PSAM母卡。
2.2 數(shù)據(jù)傳輸?shù)陌踩?nbsp;
校園卡用戶交易數(shù)據(jù)使用會(huì)話密鑰進(jìn)行加密,按“一次一密”的方式工作。這樣,即便對(duì)某一次的交易數(shù)據(jù)進(jìn)行攻擊,也不能對(duì)整個(gè)校園一卡通系統(tǒng)的密鑰體系產(chǎn)生影響。會(huì)話密鑰生命周期很短,其產(chǎn)生和分配的速度要求很高。采用用戶向密鑰
產(chǎn)生系統(tǒng)申請(qǐng)產(chǎn)生會(huì)話密鑰,分發(fā)采用公開密鑰密碼體制的方式,由PKI和密鑰產(chǎn)生系統(tǒng)結(jié)合進(jìn)行分發(fā)。即:利用公開密鑰密碼(PKI)分配傳統(tǒng)密碼的會(huì)話密鑰,再利用傳統(tǒng)密碼對(duì)會(huì)話進(jìn)行加密保護(hù),會(huì)話密鑰由密鑰管理中心應(yīng)用戶申請(qǐng)產(chǎn)生。
2.2.1 會(huì)話密鑰的生成
用二級(jí)密鑰母卡,二級(jí)密鑰認(rèn)證卡1,二級(jí)密鑰認(rèn)證卡2,PSAM母卡認(rèn)證卡發(fā)行用戶卡母卡。用戶卡母卡上的密鑰分散導(dǎo)出,生成會(huì)話密鑰,發(fā)行學(xué)生用的校園卡。學(xué)生申請(qǐng)校園卡之前,必須經(jīng)過“校園一卡通”管理中心的身份審核,生成個(gè)人
密鑰對(duì):生成RSA密鑰對(duì),其中,私鑰存儲(chǔ)到指定的文件中,公鑰導(dǎo)出,用于生成數(shù)字證書。
2.2.2 會(huì)話密鑰的分發(fā)
PKI下的CA以及會(huì)話密鑰產(chǎn)生系統(tǒng)協(xié)調(diào)負(fù)責(zé)管理用戶的公開加密密鑰并輔助傳統(tǒng)密碼體制的會(huì)話密鑰的產(chǎn)生與分配。
(4)撤消連接
會(huì)話結(jié)束以后,便撤消連接,將用于本次會(huì)話的RN和K 銷毀。
2.3 密鑰的存儲(chǔ)和銷毀
密鑰注入以后,應(yīng)該存儲(chǔ)在加密設(shè)備里,并以加密的方式存放,對(duì)密鑰的解密操作的口令由專門的密碼操作人員保管,這樣即使破解者拿到裝有密鑰的加密設(shè)備也可以保證密鑰的安全。密鑰的使用是有使用期限的,一旦密鑰的有效期到達(dá),必須清除原密鑰或者更新。為保證加密設(shè)備能夠連續(xù)工作而不出意外,可以設(shè)計(jì)新密鑰生效后,原有密鑰可以持續(xù)使用一定時(shí)間,以防止密鑰更換時(shí)期出現(xiàn)的意外情況。
3 結(jié)語
本文提出結(jié)合傳統(tǒng)密碼算法和現(xiàn)代密碼算法相結(jié)合的方法實(shí)現(xiàn)密鑰管理方案,這種方案利用公鑰密碼分配傳統(tǒng)的會(huì)話密鑰,再用傳統(tǒng)會(huì)話密鑰進(jìn)行保密的交易數(shù)據(jù)傳輸,同時(shí)會(huì)話密鑰始終不在網(wǎng)絡(luò)信道中出現(xiàn),既方便又安全。由于現(xiàn)代密碼算法在數(shù)字簽名方面的特有的技術(shù)特性,該方案為一卡通中實(shí)現(xiàn)數(shù)字簽名功能帶來了極大的便利。CA設(shè)計(jì)方案以及Web工作的數(shù)字簽名系統(tǒng)與密鑰管理的結(jié)合,可以在很大程度上彌補(bǔ)目前”校園一卡通”中數(shù)字簽名不被重視的缺陷。
收稿日期:2007年11月27日,修回日期:2008年1月4日
作者簡(jiǎn)介:王國偉,男,碩士,講師,研究方向:計(jì)算機(jī)網(wǎng)絡(luò)及安全技術(shù)研究。王瑞,男,碩士,研究方向:信息系統(tǒng)研
究。薛勇,男,經(jīng)濟(jì)師,研究方向:信息經(jīng)濟(jì)研究。
參考文獻(xiàn)
[1]張玉清,陳建奇,楊波等.公鑰基礎(chǔ)設(shè)施(PKI)實(shí)現(xiàn)和管理電子安全[M].北京:清華大學(xué)出版社,2002:365~ 368
[2]林飛.一種基于RSA的認(rèn)證加密方案[D].暨南大學(xué),2000
[3]Schneier.B,吳世忠等譯.應(yīng)用密碼學(xué):協(xié)議、算法與C源程序[M].北京:機(jī)械工業(yè)出版社,2000:147
[4]黃正金,張其善.一種新型密鑰管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2002,(11):34~35
[5]張煥國,劉玉珍.密碼學(xué)引論[M].武漢:武漢大學(xué)出版社,2003:114~121,215~219