校園一卡通系統密鑰管理設計思路淺析
文章出處:http://5052h112.com 作者:李振濤 人氣: 發表時間:2011年07月14日
IC卡又稱智能卡(Smart Card),即集成電路卡(Integrated Circuit Card)。它是將一個集成電路芯片鑲嵌于塑料基片中,封裝成卡的形式。IC卡芯片具有寫入和存儲數據的能力,IC卡存儲器中的內容根據需要可以有條件的供外部讀取,或供內部信息處理和判定之用。
校園一卡通系統(簡稱校園卡系統)是一個多功能IC卡應用系統。所謂“多功能”,是指以一張IC卡同時支持多種不同的應用子系統,而各個子應用系統本身是在統一規劃的前提下分別開發的,包括學生上機管理、食堂收費管理、圖書館管理、校內小額消費、教務處學生成績管理、學生選課、學生處的管理、校醫院醫療等,而這些管理項目用IC卡應用系統都能很好的實現;其次,學校是一個相對獨立的實體,這就為整個系統在設計中整體規劃,在實現中分步進行,在使用中統一管理、統一結算打下了堅實的基礎。
實現這樣一個多功能校園卡系統,無疑具有巨大的優越性。從學校講,這樣的系統將大大降低整個系統的成本,減少IC卡生命周期(指IC卡發放、使用及回收的全過程)的維護工作量和整個系統的維護工作量;從使用者角度講,用一張IC卡就能完成系統所覆蓋的各種應用,實現“一卡通全校”,這將極大方便使用者。此外,在學校的各個管理部門內引入基于IC卡的計算機管理系統,對于提高工作效率和管理水平、減少現金流通、實施更加有效的財務監督等,都將有很大好處。
對于這樣一個多功能IC卡應用系統,保證系統的安全顯得尤為重要。為了杜絕偽卡、防止非授權用卡、以及防止個人隱私泄漏必須使用現代密碼技術。
隨著密碼技術在民用領域的普遍使用,標準密碼算法(如AES、DES、RSA、IDEA等)的細節都是公開的。這樣,用密碼技術保護的信息系統的安全就應取決于對密鑰的保護,而不是對密碼算法或設備本身的保密,即“所有秘密寓于密鑰之中”,密鑰管理在安全保密系統的設計中就顯得更加重要。
二、 密鑰的管理
1、密鑰管理的基本要求
密鑰管理歷來是一個很棘手的問題。它不僅與技術有關,還與人的因素有關。技術上再完善,通過人員這個口子仍然可能把核心機密泄露出去。特別是當密鑰管理存在一些漏洞或薄弱環節時,從密鑰管理的途徑竊取機密要比單純從破譯的途徑竊取機密的代價要小得多。
密鑰管理主要包括密鑰的產生、檢驗、分配、傳遞、保管、使用和銷毀等過程。好的密鑰管理系統應當盡量不依賴人的因素,其具體要求如下:
1)密鑰難以被非法竊取;
2)在一定條件下竊取了密鑰也沒有用;
3)密鑰的分配和更換過程在用戶看來是透明的,用戶不一定要親自掌握密鑰。
這三點也是評價一個密鑰管理系統性能好壞的標準。
校園卡系統的密鑰管理方式是在現實環境的制約下,盡量滿足這三項要求來設計的。
2、校園卡系統密鑰管理體制
在建立校園卡系統密鑰管理體制時,還要考慮了以下幾方面的情況:
1)校園卡系統是建立在非實時網絡環境基礎上的,為保證在非聯網狀態下系統的正常運行,不能采用實時的交互式密鑰交換協議;
2)校園卡系統是一個專用系統,對開放性要求不高,可以采用單鑰密碼體制來管理密鑰;
3)充分利用IC卡內部的主密碼區、各區分區密碼區和擦除密碼區,將其納入整個系統的密鑰管理體系,統一管理。
校園卡系統的密鑰管理體制采用一種二級密鑰管理體制,主密鑰由人工注入,通過密鑰協議產生工作密鑰,分別寫入主密碼區、各分區密碼區和擦除密碼區,用工作密鑰來保證IC卡,以及校園卡管理中心、校園卡結算中心和各應用子系統間傳輸數據的安全性。
2.1 校園卡系統工作密鑰產生、存儲、使用協議
校園卡系統密鑰管理體制AT88SC1604卡有一個主密碼區,4個分區密碼區和4個擦除密碼區,這些密碼區的內容必須在個人化IC卡時寫入。在設計校園卡系統時,我們曾了解過一些IC卡應用系統,其IC卡上密碼區的數據是由無密鑰控制的簡單算法(如異或、取反、移位等)生成的,其安全性顯然是很差的
校園卡系統中對IC卡上各密碼區數據提出的要求是:
1)必須由專用的密碼算法生成,以保證強度;
2)密碼區數據的隨機性要好;
3)密碼區數據要和個人信息聯系;
4)密碼區數據能由各應用子系統獨立生成,不能依賴網絡;
5)IC卡各分區的安全性要獨立,并體現分級保護原則;
校園IC卡主密碼、各分區密碼和分區擦除密碼的產生方法如圖2-1所示。持卡人的姓名、身份證號經過一個初始運算后,其結果與4個獨立的主密鑰(一級密鑰)K1、K2、K3、K4一起參與加密運算DES、IDEA、流密碼和DES,產生工作密鑰(二級密鑰),該工作密鑰的某些字節分別作為主密碼、各分區密碼和擦除密碼,在個人化IC卡時寫入IC卡的主密碼區、各分區密碼區以及擦除密碼區。
校園卡“密鑰”產生方法
由于采用不同密碼算法生成不同密碼區密碼,保證了各密碼區密碼的隨機性以及相對獨立性,而且通過各密碼區數據,要想計算出主密鑰,在計算上是不可能的應用子系統通過系統操作員卡獲得該應用所需的一級主密鑰(詳見下述),當需要對IC卡操作時,從IC卡檔案區讀出持卡人姓名和身份證號,并完成初始運算和相應的加密運算,產生該IC卡的主密碼、某分區的分區密碼和擦除密碼,便可對IC卡操作了。
該產生方法滿足了以上提出的五項要求,它與AT88SC1604卡的硬件保護措施相結合(如熔絲后各區密碼只能比較,不能讀出;密碼連續比較錯誤,將使IC卡損壞),較好地保證了校園卡系統中IC卡的安全性。
2.2 數據傳輸密鑰管理協議
為保證校園卡管理、結算中心和各應用子系統間數據(主要是電子底帳)傳輸的安全,必須對傳輸數據進行加密和認證,以保證數據的完整性、正確性和有效性。傳輸數據的加密和認證也是在工作密鑰的控制下進行的。以上機收費子系統為例,它與校園卡管理、結算中心間傳遞的數據中,只有電子底帳是經過加密和認證的,其使用的工作密鑰產生協議如圖2-2所示。
數據傳輸密鑰產生方法
“底帳時戳”是產生工作密鑰的參數,它是用來標記每個機房每天產生底帳的唯一標識,每個電子底帳文件都具有唯一的時戳。“底帳時戳”由機房管理機產生并維護,附在電子底帳中一起傳到結算中心。結算中心從底帳文件中獲得該底帳的時戳,并和該機房的主密鑰一起產生工作密鑰,從而對電子底帳解密和認證。
采用這種二級密鑰管理體制,保證了每個底帳文件用不同的工作密鑰進行加密、認證,并且不需要機房和結算中心之間進行交互對話,從而簡化了管理過程,適合現在的管理模式。
2.3 應用子系統主密鑰注入協議
為了保證校園卡系統的非聯網運行能力,各應用子系統必須要在本地管理所需的主密鑰(一級密鑰),而不能每次運行都從校園卡管理中心獲得主密鑰,尤其對于產生IC卡密碼區數據的主密鑰更是如此。因此,在校園卡系統中,采用了專用的密鑰注入設備——操作員卡。
目前采用的操作員卡也是一張AT88SC1604卡,其內部數據區加密存儲了系統信息(如機房號、操作員號)、本系統所需的密鑰信息、以及操作員卡認證信息。每個獨立的系統有一張。
系統啟動時,操作員插入操作員卡,并輸入口令,該口令經一個單向函數變換后。產生的結果必須與操作員卡中存儲的認證信息的某些分量一致,才能啟動系統。這就保證了只有操作員卡的合法擁有者才能憑操作員卡啟動系統。系統啟動后,從操作員卡中讀出系統信息和密鑰信息,就能開始正常運行。
采用操作員卡作為密鑰注入設備,充分利用了AT88SC1604卡的硬件加密措施。它與系統使用的軟件加密措施相結合,保證了主密鑰的安全。此外,使用操作員卡保存主密鑰,便于主密鑰的更換(需要時回收操作員卡,重新寫入密鑰,并更新管理中心密鑰數據庫即可),這也符合現代密鑰管理的要求,提高了系統的安全性。
三、小結
校園卡系統的密鑰管理體制,是按照現代信息系統密鑰管理的一般要求,并結合校園卡系統的具體情況建立起來的一種二級密鑰管理體制。它具有很好的安全性,同時對應用系統操作人員是透明的,能較好滿足了校園卡系統中密鑰管理的要求。