CPU卡應用系統密鑰管理技術
文章出處:http://www.katarog.com 作者:廣州市明華澳漢科技有限公司技術部 人氣: 發表時間:2011年10月11日
一、密鑰管理系統的設計前提
密鑰管理是密碼技術的重要環節。在現代密碼學中,在密碼編碼學和密碼分析學之外,又獨立出一支密鑰管理學。密鑰管理包括密鑰的生成、分配、注入、保管、銷毀等環節,而其中最重要的就是密鑰的分配。IC卡的密鑰管理機制直接關系到整個系統的安全性、靈活性、通用性。密鑰的生成、發行、更新是系統的一個核心問題。
為保證一個大型的CPU卡應用系統的安全使用、保證信息不被侵犯,應在系統實施前建立起一套完整的密鑰管理系統。密鑰管理系統的設計目標是在安全、靈活的前提下,可以安全地產生各級主密鑰和各類子密鑰,并將子密鑰安全地下發給子系統的發卡中心,用來產生SAM卡、用戶卡和操作員卡的各種密鑰,確保以上所有環節中密鑰的安全性和一致性,實現集中式的密鑰管理。在全省內保證各個城市能夠發行自己的用戶卡和密鑰卡,并由省級管理中心進行監控。
二、密鑰管理系統的設計方法
1.系統安全的設計
本文以一個省級醫療保險CPU卡應用系統為例,介紹密鑰管理系統的設計。該系統是面向省級醫療保險行業、在各個城市進行應用的系統,系統最終所發行的卡片包括SAM卡和用戶 卡。SAM卡將放在多種脫機使用的設備上;用戶卡是由用產自己保存與使用并存儲用產的基本信息和電子資金信息。系統設計的關鍵是保障系統既具有可用性、開放性,又具有足夠的安全性。
本系統密鑰的存儲、傳輸都是使用智能卡來實現的,因為智能卡具有高度的安全性。用戶卡(提供給最終用戶使用的卡片)上的密鑰根本無法讀出,只是在達到一定的安全狀態時才可以使用。SAM卡(用來識別用戶卡的認證密鑰卡)中的密鑰可以用來分散出用戶卡中部分脫機使用的密鑰,但也無法讀出。各級發行密鑰母卡上的密鑰在達到足夠的安全狀態時可以導出,但導出的密鑰為密文,只有送到同類的卡片內才可以解密。
本系統的安全機制主要有卡片的物理安全、智能卡操作系統的安全、安全的算法、安全的密鑰生成與存儲、密鑰的安全傳輸與分散、保障安全的管理措施與審計制度。
2.密鑰的分層管理
密鑰主要分層進行管理,即省級密鑰管理中心只負責生成種子密鑰,各個城市根據密鑰種子負責生成自己的密鑰系統和用戶卡,這樣既可以在全省范圍內統一規劃,又可以靈活使用。
3.安全的密鑰管理體制
密鑰受到嚴格的權限控制,特別是對密鑰的使用權限進行分級管理和控制;密鑰的生成、注入、導出等功能由發卡中心(省醫療保險基金管理中心)進行統一的控制和管理。
三、系統功能
密鑰管理系統的目標就是安全地產生各級主密鑰和各類子密鑰。并將子密鑰安全地下發給子系統的發卡中心,用來產生SAM卡、用戶卡和操作員卡中的各種密鑰,確保以上所有環節中密鑰的安全性和一致性,實現集中式的密鑰管理。系統通過IC卡硬件、IC卡操作系統、合理的密鑰管理系統設計、嚴格的安全管理規定來實現以上目標。
密鑰管理系統是IC卡應用系統中最重要的環節,主要功能有密鑰的產生、分配、使用、更新和銷毀。
1.密鑰的生成
產生省級各類主密鑰和市級各類子密鑰:產生用戶卡和操作員卡的各種密鑰。密鑰生成主要由三種形式結合使用:
·使用安全可靠、快速的軟件生成方法;
·使用卡片存儲密鑰;
·使用加密機生成密鑰。在密鑰生成過程中,必須在安全、保密的環境下進行。
2.密鑰的分配:密鑰生成之后,再根據不同的業務種類進行密鑰的分發。之后將密鑰下發給城市,并保證密鑰的安全性和一致性。密鑰在IC卡中以密文的形式進行下裝或分發到各個子系統,并且密鑰受到相應的安全控管,只有達到安全條件才可以使用密鑰進行分配或下裝。IC卡作為傳輸密鑰的載體,由于其自身的安全系數非常高,通過合理的設計完全可以有效進行密鑰傳輸和分發。
3.密鑰的使用:在各個分系統和IC卡中,可以設計密鑰使用的安全條件,只有達到密鑰的安全使用條件,才可以使用密鑰進行相應的操作。而且密鑰的使用過程中,都是以非可見性的形式存儲的,任何人都沒有權限進行讀取,包括卡片制造商和系統商。密鑰在受到非法攻擊時,能夠自行鎖住,從而達到防止非法破譯的目的。
4.密鑰的更新:密鑰的更新涉及到的安全問題比較多,由于大多數密鑰的更新是在安全強度較弱的環境進行的,且涉及的范圍很大,所以應當謹慎地進行密鑰更新。如果需要更新密鑰,可以在安全保密的狀態下,密鑰以密文的形式,并且在一定的安全條件管理下,定期地進行更新。
5.密鑰的失效:密鑰在使用一段時間后,由于安全的需要,可以將其強制失效,但可以起用備份密鑰進行管理。如果密鑰受到非法攻擊,其也可以自動換效,以保護整個密鑰系統的安全。密鑰卡和存有關鍵數據的IC卡失效之后,必須回收秘密銷毀。
密鑰管理系統主要分為兩大模塊:
·省級密鑰管理模塊
·市級密鑰管理模塊
省級密鑰管理模塊的主要功能是產生省級主密鑰,并為各城市產生城市主密鑰,以密鑰卡的形式傳輸到各城市,同時在密鑰卡上記錄發卡信息以便跟蹤審計,密鑰卡的文件結構和使用方法以書面形式記載。
市級密鑰管理模塊的主要功能是生成SAM卡、生成和安裝用戶卡上的各種密鑰并且初始化用戶卡。
四、密鑰管理系統的運行與管理地點的設置
考慮到醫療保險IC卡發行的要求,密鑰管理系統應在省或市醫療保險基金管理中心運行與管理。其中生成母密鑰的密碼應在省勞動和社會保障廳或市勞動和社會保障局封存。
五、密鑰管理系統的總體功能結構
1.母密鑰生成模塊
該模塊負責生成醫療保險系統的根密鑰(即母密鑰),只能在省醫療保險基金管理中心使用與控制。在完成二級密鑰的生成后,應將母密鑰卡進行封存。母密鑰的生成必須在高度安全保密的情況下進行,并由少數人進行管理。生成母密鑰的種子由相關各部門的主要負責入輸入,然后再使用安全算法進行處理,最終生成醫療保險系統的母密鑰。母密鑰生成之后,分成多個載體進行保存和使用。
·存放到IC卡中生成母密鑰卡(密鑰不可見)用于生成二級密鑰卡,并且每張每密鑰卡都受到PLN和外部認證密鑰卡的保護,也就是說在生成母密鑰卡的同時也給每張母密鑰卡生成一個PLN和外部認證密鑰,且相對應生成外部認證密鑰卡,在使用母密鑰卡生成二級密鑰時,首先輸入個人密碼,然后母密鑰卡和外部認證卡進行雙向認證,達到使用母密鑰的安全條件后才可以使用母密鑰生成下級密鑰。
·密鑰種子必須以書面的形式嚴格保密存儲且必須分開由幾個人各掌管一部分。
·母密鑰的作用是生成二級密鑰。
2.二級密鑰生成模塊
用母密鑰根據醫療保險系統的要求,生成二級密鑰。二級密鑰包括:發卡主密鑰、市級主密鑰、省級應用主密鑰。該級別的密鑰由省醫療保險基金管理中心使用與保管。
發卡主密鑰的作用:用于生成與發卡相關的各級功能密鑰,即發放密鑰、掛失密鑰、補辦密鑰、注銷密鑰、充值密鑰、查詢密鑰。
市級主密鑰的作用:根據系統要求,生成與市級應用相關的應用密鑰。
省級應用主密鑰的作用:根據系統功能要求,生成各種功能的省級應用密鑰。
3.發卡密鑰生成模塊:該模塊將按要求生成各個市的發卡密鑰。
4.市級密鑰生成模塊:該模塊將按要求,用本市的市級主密鑰生成相應的各種應用密鑰。
5.省級應用密鑰生成模塊:該模塊將按要求,用省級應用主密鑰生成省級各種應用密鑰。
6.密鑰管理:該模塊將按要求,對所有密鑰的生成、發放進行記錄與管理,并負責各種密鑰卡的掛失、注銷、黑名單、補辦等管理。
六、密鑰的安全特性
1.密鑰的裝載
密鑰的裝載采用方式,其控制過程如下:
·卡片主控密鑰在卡片主控密鑰的控制下更新;
·應用主控密鑰在片卡主控密鑰的控制下裝載;
·應用主控密鑰在應用主控密鑰的控制下更新;
·應用主密鑰在應用主控密鑰的控制下裝載和更新。
2.密鑰的訪問
·密鑰不允許直接讀;
·密鑰必須在主控密鑰的控制下更新;
·各級密鑰不能被外界直接訪問,只能接受內部操作系統發來的指令進行計算;
·計算臨時密鑰產生的結果只保留在卡片內部,不能被外界直接訪問。
3.密鑰的屬性:密鑰的使用都有一定的限制,必須滿足密鑰屬性的要求。
七、密鑰的生成流程(略)
八、系統的發卡流程
1.IC卡生產發行過程的安全機制
當省或城市向卡廠訂購卡片時,制造商使用傳輸密鑰裝入測試合格的IC卡芯片內制成卡片,運送省級或城市IC管理中心。傳輸密鑰用來控制IC卡的安全傳輸,以防止卡片在生產商和省級或城市之間運送時被替換。
當省級或市級IC卡管理中心接到訂購的IC卡后,首先使用傳輸密鑰對卡片進行鑒別,以檢驗卡片的合法性,防止非法卡片。
鑒別通過后,將省級或市級IC卡管理中心自己的主控密鑰用廠商傳輸密鑰加密,載入到IC卡中,再在IC卡中用廠商傳輸密鑰解密,得到主控密鑰用來替換掉IC卡中的傳輸密鑰,之后才可以在本系統內使用主控密鑰進行密鑰的裝載。
2.發卡流程
用來發行用戶卡的IC卡由指定的用戶卡制造商提供。省級或市級給每個授權的用戶卡制造商發放一張用戶卡傳輸主密鑰卡,卡廠將傳輸主密鑰裝入測試合格的IC卡芯片內制成卡片,再運送市級IC卡應用管理中心。
市級IC卡管理中心首先使用用戶卡制造主密鑰卡對這些卡片進行認證,確保卡片安全傳輸,認證通過以后,使用市級主密鑰卡、城市主密鑰卡授權卡、SAM卡母卡、SAM卡母卡授權將這些卡片初始化成用戶卡。