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