校園一卡通系統(tǒng)中密鑰管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
文章出處:http://m.dipdnbxp.cn 作者: 人氣: 發(fā)表時(shí)間:2011年09月13日
摘要:以密鑰管理在校園一卡通系統(tǒng)中的應(yīng)用為中心,研究密鑰管理系統(tǒng)在一卡通系統(tǒng)中的具體應(yīng)用模式,并在校園一卡通項(xiàng)目中實(shí)現(xiàn)了密鑰管理。首先以IC卡技術(shù)和密碼算法技術(shù)為基礎(chǔ),提出了一卡通系統(tǒng)的密鑰管理系統(tǒng)的解決方案;然后針對系統(tǒng)的實(shí)現(xiàn),詳細(xì)描述了密鑰分散的設(shè)計(jì)和實(shí)現(xiàn)過程;最后對系統(tǒng)中使用的算法進(jìn)行了描述和安全性分析。
我校的校園一卡通項(xiàng)目采用雙界面CPU卡作為加密和存儲介質(zhì),CPU卡的加密\解密功能由內(nèi)嵌的硬件加密協(xié)處理器來實(shí)現(xiàn),具有很高的安全性。按照對稱加密體制設(shè)計(jì)和實(shí)現(xiàn)了一種新型密鑰管理系統(tǒng)。系統(tǒng)中的密鑰涉及到兩部分,一部分是由銀行負(fù)責(zé)產(chǎn)生并維護(hù)的密鑰,另一部分由校園一卡通系統(tǒng)中的密鑰管理系統(tǒng)產(chǎn)生,并由校方進(jìn)行維護(hù)。密鑰管理系統(tǒng)作為一卡通工程的核心部分,符合PBOC的密鑰管理規(guī)范,密鑰管理系統(tǒng)將生成涉及PBOC交易的8個(gè)主密鑰,并安全存放和使用。
1 密鑰系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
密鑰管理包括密鑰的生成、裝入、傳遞、存儲、恢復(fù)、銷毀等內(nèi)容。密鑰管理系統(tǒng)中使用的密鑰都是雙倍長度的密鑰(16B),交易過程中使用的過程密鑰都是單倍長度(8B)。
一卡通生成的主密鑰稱為根密鑰,標(biāo)志為G*K,主要有消費(fèi)/取現(xiàn)共享密鑰。一卡通生成和使用的密鑰稱為主密鑰,或稱為一卡通專有密鑰,標(biāo)志為M *K。用戶卡使用的經(jīng)過主密鑰分散的密鑰成為用戶卡密鑰,標(biāo)志為D*K。用戶卡交易過程中使用的過程密鑰標(biāo)志為S*K。
系統(tǒng)利用密鑰卡來承載密鑰,密鑰卡在一卡通密鑰管理系統(tǒng)內(nèi),一卡通與一卡通,一卡通與用戶卡之間進(jìn)行安全的傳遞。
1.1 密鑰類型
在密鑰管理系統(tǒng)中的密鑰可分為三大類:一卡通共享密鑰;一卡通專有密鑰和管理密鑰[2]。一卡通共享密鑰由一卡通生成和維護(hù),安全存放在一卡通的母卡A和母卡B中。消費(fèi)/取現(xiàn)根密鑰是一卡通共享主密鑰,用于PBOC卡的取現(xiàn)/消費(fèi)交易。一卡通專有密鑰由一卡通生成和維護(hù),安全存放在一卡通的母卡A 和母卡B中。一卡通生成其他交易使用的主密鑰,包括部分PBOC卡片的維護(hù)密鑰。管理密鑰有兩種作用:作為認(rèn)證密鑰和保護(hù)密鑰(傳輸密鑰)。認(rèn)證密鑰用來對卡片做外部認(rèn)證的,一般記為ADMK。保護(hù)密鑰是用來對主密鑰進(jìn)行加密保護(hù)注入到卡片或輸出到另一張卡片。保護(hù)密鑰分為導(dǎo)人密鑰和導(dǎo)出密鑰兩種,所有保護(hù)密鑰都用外層的認(rèn)證密鑰加密保護(hù)進(jìn)入卡片中。
1.2 密鑰的索引
每張用戶卡含有兩組密鑰,用兩個(gè)索引值來區(qū)分。正常時(shí)使用第一索引的密鑰,異常情況下(如密鑰泄露)啟用第二索引。此機(jī)制保證在異常情況下更換密鑰時(shí),不需收回已發(fā)出的用戶卡,只需將應(yīng)用系統(tǒng)(包括PSAM)中的密鑰更新為新的索引。
每個(gè)版本的消費(fèi)/取現(xiàn)根密鑰含有兩個(gè)索引,預(yù)留兩個(gè)索引作為根密鑰的備用索引。所以,消費(fèi)/取現(xiàn)密鑰采用4個(gè)索引。
1.3 密鑰卡的分類
為了將共享密鑰安全地傳遞到各個(gè)子系統(tǒng),一卡通密鑰管理系統(tǒng)采用幾種密鑰卡來實(shí)現(xiàn)。密鑰卡分為3類:母卡;控制卡和認(rèn)證卡。
母卡里存放著一卡通生成的專有密鑰,一卡通的母卡由母卡A 租母卡B實(shí)現(xiàn),只有同時(shí)持有A、B卡,才可以將主密鑰導(dǎo)出,一卡通發(fā)行一卡通的發(fā)卡母卡,發(fā)卡母卡里存放著一卡通的消費(fèi)/取現(xiàn)主密鑰,一卡通將專有密鑰注入發(fā)卡母卡,一卡通利用該卡將消費(fèi)/取現(xiàn)密鑰,圈存、圈提等密鑰注入用戶卡。
控制卡里的主密鑰是有輸出次數(shù)控制的,一卡通密鑰管理系統(tǒng)里有總控卡、HSAM 控制卡、PSAM 控制卡三種。總控卡的主密鑰由一卡通母卡A和母卡B導(dǎo)人;HSAM 控制卡、PSAM 控制卡是總控卡的子卡??偪貑T持有HSAM 控制卡,將密鑰導(dǎo)人HSAM 模組,HSAM 控制卡的主密鑰只能導(dǎo)出一次;操作員持有PSAM 控制卡,將一卡通的M *K導(dǎo)人PSAM 卡;一卡通發(fā)卡母卡是由一卡通發(fā)行的,一卡通將銀行生成的其他專有密鑰注入發(fā)卡母卡,發(fā)卡員利用一卡通發(fā)卡母卡和發(fā)卡控制卡來發(fā)行用戶卡。
認(rèn)證密鑰卡的主密鑰文件里存放著密鑰卡的認(rèn)證密鑰,有一卡通操作員卡、一卡通認(rèn)證密鑰卡兩種。一卡通操作員卡是一卡通制卡員持有的制卡“鑰匙”,操作卡里存放著一卡通密鑰卡的管理密鑰,不可以輸出,但可以對密鑰卡的管理密鑰進(jìn)行認(rèn)證修改;一卡通認(rèn)證密鑰卡是一卡通密鑰卡的認(rèn)證密鑰卡,由一卡通發(fā)行,一卡通用它來驗(yàn)證一卡通所發(fā)下來的一卡通卡是否正確,并可以修改該一卡通卡的管理密鑰。
1.4 系統(tǒng)結(jié)構(gòu)
一卡通密鑰管理系統(tǒng)包含了幾項(xiàng)主要的功能模塊:密鑰生成模塊;密鑰傳遞模塊;用戶卡發(fā)卡(相關(guān)系統(tǒng));PSAM 卡管理系統(tǒng)模塊;測試發(fā)卡(附加功能模塊);一卡通交易測試系統(tǒng)(附加功能模塊);密鑰的應(yīng)用關(guān)系。如圖1所示為密鑰管理系統(tǒng)發(fā)卡過程中卡片產(chǎn)生的主要流程圖。
?、傩@“一卡通”密鑰生成模塊。利用密鑰生成模塊來生成所需的主密鑰,包括:消費(fèi)主密鑰;圈存、圈提主密鑰;解鎖(PIN)主密鑰、重裝(PIN)主密鑰;修改(透支限額)主密鑰,應(yīng)用維護(hù)主密鑰;TAC主密鑰。
圖1 密鑰管理系統(tǒng)總體流程圖
一卡通主密鑰由種子A、種子B、系統(tǒng)的隨機(jī)數(shù)決定生成,生成的主密鑰由一卡通決定該密鑰的版本和索引,也可以采用系統(tǒng)默認(rèn)的順序。一卡通主密鑰生成后,分別注入到母卡A、母卡B,母卡A和母卡B由校領(lǐng)導(dǎo)保存,并持有該卡的PIN。
主密鑰的生成算法為:輸入種子A(SEEDA)和種子B(SEEDB)后,產(chǎn)生一個(gè)隨機(jī)數(shù)RAND,該隨機(jī)數(shù)固定在這個(gè)生成模塊上。KEY1=3DES(SEEDA I1SEEDB,RAND),主密鑰檢查該KEY的強(qiáng)度,若合格則作為候選的主密鑰輸出;若不合格,RAND=RAND+1;繼續(xù)產(chǎn)生KEY1,直到產(chǎn)生合格的主密鑰。KEY2—3DES(SEEDA l l SEEDB,RAND+ +),繼續(xù)產(chǎn)生KEY2,直到輸出外界所需個(gè)數(shù)的主密鑰。系統(tǒng)可以采用KG卡來實(shí)現(xiàn)這一個(gè)過程,如圖2所示。
圖2 一卡通密鑰生成模塊圖
主密鑰生成后,注入到母卡A 和母卡B中,母卡A中的主密鑰必須使用母卡B的主密鑰方可以導(dǎo)出。必須同時(shí)持有母卡A、母卡B及密鑰卡的密碼,才可以導(dǎo)出其中的主密鑰。
② 校園“一卡通”密鑰傳遞模塊。利用圖2所表示的密鑰生成模塊,學(xué)校兩位校領(lǐng)導(dǎo)分別在密鑰系統(tǒng)上輸人種子A、B,密鑰系統(tǒng)生成一卡通系統(tǒng)所需的密鑰,并分別保存在母卡A和母卡B中。為了便于使用,密鑰系統(tǒng)將母卡A、B的密鑰合成在一張總控卡中(包括多個(gè)版本和多個(gè)索引)。校方嚴(yán)格保管好總控卡,為最大程度上防范風(fēng)險(xiǎn),通過總控卡,密鑰系統(tǒng)分別制作出3種不同的密鑰卡,參見圖3。發(fā)卡母卡和發(fā)卡控制卡交給發(fā)卡機(jī)構(gòu)(建設(shè)銀行或其他發(fā)卡公司)I主機(jī)HSAM 卡內(nèi)的密鑰(圈存密鑰、卡片應(yīng)用維護(hù)密鑰等)通過安全方式傳遞給IC卡片瞥理系統(tǒng) 校園IC卡結(jié)算服務(wù)器、圈存設(shè)備。密鑰系統(tǒng)還做出PSAM 卡發(fā)卡控制卡,利用PSAM 卡發(fā)卡子系統(tǒng)發(fā)出PSAM 卡。
圖3 密鑰卡制作示意圖
2 相關(guān)算法
CPU雙界面卡一般采用DES加密算法,這是一種迭代分組密碼算法,使用的密鑰長度為64位,為了進(jìn)一步提高系統(tǒng)安全強(qiáng)度,在我們的校園一卡通系統(tǒng)中,雙界面CPU卡采用的是三重DES算法,采用的密碼長度為128位。相關(guān)算法如下。
2.1 3DES算法
MK對輸入數(shù)據(jù)進(jìn)行3DEA運(yùn)算。如圖4所示。
推導(dǎo)DK右半部分的方法是:將分散數(shù)據(jù)的最右16個(gè)數(shù)字求反,作為輸入數(shù)據(jù);將MK作為加密密鑰;用MK對輸入數(shù)據(jù)進(jìn)行3DES運(yùn)算。如圖5所示。
密鑰分散算法為:
2.3 安全報(bào)文算法
3 結(jié) 論
按照PB0C的密鑰管理系統(tǒng)規(guī)范,并結(jié)合我校校園一卡通的具體情況,我們開發(fā)了一個(gè)嚴(yán)密靈活的雙界面CPU卡密鑰管理系統(tǒng),該系統(tǒng)包括密鑰管理系統(tǒng)和PSAM 卡發(fā)卡子系統(tǒng)。它具有很好的安全性,密鑰管理系統(tǒng)既保證密鑰的安全存放、安全傳遞和安全使用;也有對異常情況的應(yīng)對措施,這樣保證了高強(qiáng)度的校園一卡通系統(tǒng)的安全性。
【稿件聲明】:如需轉(zhuǎn)載,必須注明來源和作者,保留文中圖片和內(nèi)容的完整性,違者將依法追究。