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