校園一卡通安全方案研究與設計
文章出處:http://hz-huyue.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