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