校園一卡通系統安全機制及應用方案
文章出處:http://hz-huyue.com 作者:石潤華,葛麗娜,鐘誠 人氣: 發表時間:2010年07月28日
前 言
Java 卡是一種可以運行Java 程序的接觸式微處理器智能卡 。在Java 卡出現前,智能卡應用研發是一個復雜漫長的過程,各生產商對智能卡的研制都各不相同,沒有一個通用的開發環境。由于Java 虛擬機的使用,Java 卡的Applet 能夠在不同卡片的JCAE(Java Card Application En2vironment) 上執行,即通過Java 虛擬機的機制來達到跨平臺的能力,真正實現一卡通的功能,大大增強了智能卡的靈活性。
Java 卡的出現統一了智能卡的編程接口(API) ,統一了智能卡的編程語言(Java 語言) ,為智能卡更大范圍的應用提供了基礎,真正使智能卡行業成為一個統一標準的產業。
1 校園一卡通應用系統及其安全性分析
校園一卡通系統是一種基于Java 卡的智能卡管理系統,以校園網絡為基礎,以Java 卡為個人信息載體,以讀卡器作為局域網前端設備,直接與持卡人進行信息交換,各個功能子系統間既分工又協作。用戶可以通過校園網進行數據查詢。使得校園管理工作高效有序、快速簡捷。真正做到一卡在手,萬事諸行。其功能包括了一般校園管理的諸多方面,其結構如圖1 所示。
校園一卡通系統是建立在校園網絡的基礎上,通過校園局域網,中心系統可以對各功能子系統進行統一管理;各功能子系統可以進行信息傳遞和交流;用戶可以對個人信息進行查詢。
為了保護系統數據安全和設備安全,防止對系統的惡意攻擊,需要對系統進行網絡安全防護。校園一卡通系統的數據量龐大、涉及面廣,尤其包含有許多重要、隱私信息。所以確保數據的機密性、完整性、正確性和不可否認性是另一個必須考慮的安全問題。在校園一卡通系統里,數據庫是信息存儲中心和系統運行的基礎?;谒暮诵牡匚?其安全問題更是不能忽視。對于數據庫安全問題,首要的任務是怎樣控制用戶訪問權限,只有經過認證、授權的用戶才能訪問數據庫。校園卡自身的安全也是整個應用系統安全的不可分割的重要組成部分。一旦校園卡的安全性受到破壞,那么整個系統也就無安全性可言。
2 校園一卡通系統安全防護
2. 1 網絡層安全防護
為了保護系統數據安全和設備安全,防止對系統的惡意攻擊,需要對系統進行網絡防護。
(1) 設置防火墻:防火墻是一種行之有效且應用廣泛的網絡安全機制,可防止Internet 上的不安全因素蔓延到局域網內部。在興邦校園一卡通系統里,為了增強網絡安全性,抵抗網絡攻擊,在各個功能子系統、數據庫、中心系統和校園局域網連接處放置防火墻。其網絡邏輯結構簡圖見圖2。
(2) 入侵檢測:入侵檢測技術是為保證計算機系統的安全而設計與配置的一種能夠及時發現并報告系統中未授權或異?,F象的技術,是一種用于檢測計算機網絡中違反安全策略行為的技術。通過引入入侵檢測技術,在網絡中實時檢測攻擊事件的發生,并在攻擊事件發生的早期階段,切斷攻擊者的連接,保護系統安全。這里采用分布式混合入侵檢測———基于網絡的入侵檢測和基于主機的入侵檢測的方法。
①在各個子系統服務器進出校園局域網處放置基于網絡的入侵檢測引擎,不停地監視此網段中的各種數據包,對每個數據包或可疑的數據包進行特征分析。如果數據包與入侵檢測系統中的某些規則吻合,則入侵檢測系統就會發出警報或者直接切斷網絡的連接。
②在各個子系統服務器上安裝基于主機的入侵檢測系統,對該主機的網絡實時連接以及系統審計日志進行智能分析和判斷,如果其中主體活動十分可疑,入侵檢測系統就會采取相應措施。
(3) 病毒防范:在網絡環境下,計算機病毒有著驚人的破壞力,病毒防范是網絡安全建設中需要考慮的重要環節。因此在各個子系統管理主機上安裝有查、殺病毒程序或軟件。
2. 2 信息安全———加密與認證為了確保系統數據的機密性、完整性、正確性和不可否認性,需要進行數據加密和實體認證。在興邦校園一卡通系統里,發行者是整個應用系統中權限最高、最為關鍵的實體,有權修改卡內數據的權限(雖然不一定是數據所有者) 。要求要有很高的權威性,并被其他實體所信任。在所設計的一卡通應用系統里, 可由發行者代行CA[5 ]簽證權力,發行者以自己的私鑰向其他實體簽發證書,證書采用X. 509 標準 。這里的實體是:持卡者、卡、終端(讀寫器) 和發行者(校園發卡中心) 。為了防止惡意攻擊,需要進行實體認證,增強授權訪問控制。授權就是確認其權限的合法性。在校園一卡通應用系統里實體間的認證,主要是指卡對持卡者的認證、終端對卡的認證、卡對終端的認證、發行者對終端的認證。
(1) 卡對持卡者的認證:要求持卡者輸入個人識別碼pin ,檢驗pin ,若pin 正確就驗證其合法身份,可以為其服務。否則停止服務,并自鎖(輸入密碼不正確超過一定次數后) 。
(2) 卡和終端(興邦讀寫器) 的雙向認證:
①卡產生一個隨機數RC 。
②卡構造一條消息, M = ( TC , RC) ,其中TC 是卡的時間標記。
③卡用終端公鑰PT 加密EPT ( C- C , ESC ( M) ) 發送給終端。C- C 為卡的證書, SC 為卡的私人密鑰。
④終端用私鑰ST 解密DS T ( EPT ( C- C , ESC ( M) ) ) =( C- C , ESC ( M) ) ,確認C- C 并得到PC 。確認密鑰沒過期。PC 為卡的公開密鑰。
⑤終端用PC 去解ESC ( M) , DPC ( ESC ( M) ) = M ,這樣既證明了卡的簽名又證明了所簽發信息的完整性。
⑥終端檢查M 中的TC 以證實消息是剛發來的。
⑦作為一個可選項, 終端對照舊隨機數數據庫檢查M 中的RC 以確保消息不是舊消息重放。
⑧終端產生另一個隨機數RT 。
⑨終端構造一條消息, M′= ( TT , RT , RC) ,其中TT 是終端的時間標記, RC 是卡在第1 步中產生的隨機數。
⑩終端用卡的公鑰PC 加密EPC ( C- T , ES T ( M) ) 發送給卡。ST 為終端私人密鑰。
1.1 卡用私鑰SC 解密DSC ( EPC ( C- T , ES T ( M) ) ) =( C- T , ES T ( M) ) ,確認C- T 并得到,確認密鑰沒過期。PT為終端的公開密鑰。
1.2 卡用PT解密ES T ( M) , DPT ( ES T ( M) ) = M′。以確認終端的簽名和消息的完整性。
1.3 卡檢查M 中的TT ,并證實消息是剛發送來的。
1.4 作為可選項,卡可檢查M′中RT以確保消息不是重放的舊消息。
(3) 發行者對終端的單向認證:其認證過程同卡對終端雙向認證的①~ ⑦步。
對于數據加密,混合應用對稱加密密碼體制(DES) 和非對稱加密密碼體制(RAS) ,并采用兩級密鑰:數據加密密鑰和密鑰加密密鑰。數據加密密鑰隨機產生,一次一密(Java 卡芯片內需要有產生隨機密碼的專用程序,其他實體相同) 。發送方采用對稱加密算法DES ,對保密信息用數據加密密鑰k 進行加密。采用公鑰加密算法RAS對數據加密密鑰k 用接收方密鑰加密密鑰Px (即用戶的公鑰) 進行加密。發送方把證書連同兩種加密信息傳送給接收方,接收方先檢驗對方證書, 驗證后用自己的私鑰Sx 解密數據加密密鑰k ,再用k 解密保密信息m。
2. 3 校園一卡通系統數據庫安全策略
針對數據庫具有客體較多、生存周期長、客體具有層次性和多項性、客體邏輯結構與物理結構的分離、數據庫的安全與數據語法有關以及防范推理攻擊等特點,建立如下多層結構、層層隔離、層層防護的安全模型:
對訪問者的請求,通過防火墻的初級過濾之后,交由CORBA 層。CORBA 封裝底層網絡通信協議,實現跨平臺通信,并以組件的形式提交應用服務器(Web 服務器) 。應用服務器接收用戶請求,然后把用戶請求傳送至中間代理Agent 。Agent 請求識別與認證服務程序對用戶進行認證。然后Agent 通過訪問權限規則庫和審計日志庫檢驗用戶的請求是否越權。驗證為合法用戶的合理請求后,則授權訪問中心系統數據庫;否則拒絕該請求,并且將非法請求記錄在審計日志庫。若同一來源的非法請求數量過多,將對該來源的請求作一些懲罰性的處理,比如拒絕該來源的一切請求(如圖3 所示) 。
2. 4 校園卡的安全防護
校園一卡通系統功能齊全,涉及部門多,尤其校園卡上存儲信息量多,要求安全性高。因此,除了一般智能卡的安全機制外,還補加了以下安全措施:
(1) 一卡一密。在校園一卡通系統中,采取了一卡一密安全措施。卡的密鑰由用戶保管,并且用戶可以重新設置密鑰,密鑰以密文的形式傳輸與保存。這樣攻擊者雖然可以竊聽通信線,卻無法知道某一張卡的密鑰,也就無法偽造一張完全相同的卡。因為不可能每個人所持有的校園卡上設置的密鑰均相同,所以攻擊者即使知道了某一張卡的密鑰,也無法推算出其他人的卡上的密鑰。
(2) 一次一密。這里的密鑰是指會話密鑰(數據加密 密鑰) 。攻擊者即使通過竊聽通訊線,獲取整個通訊過程中的明文和密文,但系統采用一次一密,密鑰隨機產生,破解全部密文理論上不可能。
(3) 鎖死與解鎖。如果連續多次輸入密碼錯誤,卡片將鎖死,用戶只有到發卡機構進行解鎖,才可以繼續使用該卡片。這樣可以防止攻擊者偷竊到系統中的一張校園卡,通過試密碼的方法試出卡片持有者的密碼,從而冒充該卡片的真正持有者進入系統。
3 結束語
校園一卡通系統是今后校園現代化管理的必然趨勢,但因為服務種類多、涉及的信息量大,使得安全問題尤其重要。文中從多層次多角度對校園一卡通應用系統進行了安全分析,并采取了相應安全防護,為應用系統安全性分析與防護提供了范例。