王 琦
(1.南京工程學(xué)院 計(jì)算機(jī)工程系,江蘇 南京 211167;2.南京大學(xué) 計(jì)算機(jī)系,江蘇 南京210046)
目前,基于網(wǎng)絡(luò)的在線考試系統(tǒng)己經(jīng)成為現(xiàn)代考試方式的有力補(bǔ)充和發(fā)展。相對(duì)于傳統(tǒng)的筆試,網(wǎng)絡(luò)在線考試不僅減輕了在組織考試、評(píng)卷、成績(jī)統(tǒng)計(jì)等方面所花費(fèi)的人力和物力,而且突破了時(shí)間與空間的限制,節(jié)省了資源,提高了評(píng)分的客觀性、公正性和準(zhǔn)確度,大大改善了考試工作的效率[1]。
由于Web自身存在的安全性問題,給在線考試的安全和管理帶來(lái)了潛在的威脅。本文針對(duì)基于Web環(huán)境的在線考試系統(tǒng)進(jìn)行研究,提出了一套完整的在線考試系統(tǒng)安全設(shè)計(jì)方案。
針對(duì)在線考試系統(tǒng)數(shù)據(jù)安全性要求較高的特點(diǎn),在系統(tǒng)中采用了多層次的安全技術(shù)來(lái)保證考試的安全。
網(wǎng)絡(luò)考試系統(tǒng)的數(shù)據(jù)庫(kù)服務(wù)器采用SQL Server 2005,后臺(tái)包含了與考試相關(guān)的各種數(shù)據(jù),包括用戶信息、試題信息、組卷方案信息、成績(jī)信息等。除了采用SQL Server與Windows相結(jié)合的方式登錄數(shù)據(jù)庫(kù)服務(wù)器來(lái)實(shí)現(xiàn)安全性的身份驗(yàn)證方式以外,還根據(jù)不同類別用戶的功能確定不同的操作對(duì)象和操作級(jí)別,從源頭保證數(shù)據(jù)操作的安全。通過(guò)建立角色,將訪問許可集中授予角色,之后將需要擁有這一許可的用戶加到角色中,這些用戶即繼承角色的訪問許可。需要撤銷用戶的訪問許可時(shí),將用戶從角色中刪除即可[2]。
試題數(shù)據(jù)以可讀的形式存儲(chǔ)在數(shù)據(jù)庫(kù)中,高明的入侵者可以采用某種方式進(jìn)入考試系統(tǒng)竊取或篡改數(shù)據(jù)。為了防止泄密,試題庫(kù)需要加密存儲(chǔ)。用戶編輯輸入完試題后,將其加密存儲(chǔ)到數(shù)據(jù)庫(kù)中,需要更新及查詢時(shí),先解密成明文再進(jìn)行相應(yīng)操作[3]。
由于非對(duì)稱加密算法的運(yùn)行速度比對(duì)稱加密算法的速度慢很多,當(dāng)需要加密大量的數(shù)據(jù)時(shí),建議采用對(duì)稱加密算法,以提高加解密速度。本系統(tǒng)采用3DES(3 Data Encryption Standard)加密,密鑰空間為 2112,即用兩個(gè)密鑰對(duì)一個(gè)分組進(jìn)行3次DES加密,先用第一個(gè)密鑰加密,然后用第二個(gè)密鑰解密,最后再用第一個(gè)密鑰加密;解密時(shí),首先用第一個(gè)密鑰解密,然后用第二個(gè)密鑰加密,最后再用第一個(gè)密鑰解密[4]。
學(xué)生的答題數(shù)據(jù)和教師的批改成績(jī)也屬于敏感數(shù)據(jù),若不加保護(hù)則可被輕易的篡改從而無(wú)法保證考試的公平與合法。加密后的答卷保存在數(shù)據(jù)庫(kù)中,閱卷時(shí)教師再解密成明文批閱,批閱后的成績(jī)同樣加密保存在數(shù)據(jù)庫(kù)中。加密算法仍選用3DES。
用戶的信息檔案涉及到個(gè)人信息和權(quán)限管理,尤其是管理員及教師的資料,這些數(shù)據(jù)都要加密處理。加密算法也選用3DES。
在考試系統(tǒng)中采用數(shù)字簽名技術(shù),主要是為防止惡意篡改考卷及成績(jī)并保證它們的合法性。一是要保證考生的答卷是合法的未經(jīng)篡改的有效答卷;二是要保證它經(jīng)過(guò)正常的考試過(guò)程,考生事后不可否認(rèn);三是要保證教師的批改成績(jī)是合法的未經(jīng)篡改的有效成績(jī);四是要保證它經(jīng)過(guò)正常的批改過(guò)程,教師事后不可否認(rèn)。
以學(xué)生數(shù)字簽名為例。簽名的內(nèi)容是答卷的信息摘要和考生信息。本系統(tǒng)采用DSA(Digital Signature Algorithm)。DSA同樣屬于公鑰密碼體系,是Schnorr和ElGamal簽名算法的變種,被美國(guó)NIST(美國(guó)國(guó)家標(biāo)準(zhǔn)局)作為數(shù)字簽名標(biāo)準(zhǔn)(Digital Signature Standard)。隨機(jī)種子和初始化參數(shù)的選取非常重要,用戶根據(jù)自身的要求,選擇隨機(jī)種子和初始化參數(shù),可以增加算法的安全性[5]。
為保證試卷等數(shù)據(jù)在傳輸過(guò)程中的安全,確保私有性和保密性,不會(huì)被可能使用網(wǎng)絡(luò)監(jiān)控軟件的竊聽者查看到,系統(tǒng)采用 SSL(Security Socket Layer)加密傳輸[6]。
SSL是一個(gè)用來(lái)保證文件安全傳輸?shù)膮f(xié)議,可以在服務(wù)器和客戶機(jī)之間建立一條安全通道,從而實(shí)現(xiàn)在Internet中傳輸保密數(shù)據(jù)。在TCP協(xié)議族中,SSL位于TCP層之上、應(yīng)用層之下。這使它可以獨(dú)立于應(yīng)用層,從而使應(yīng)用層協(xié)議(諸如http)可以直接建立在SSL上。SSL協(xié)議由SSL記錄協(xié)議(SSL Record Protocol)和SSL握手協(xié)議(SSL Handshake Protocol)兩部分組成:SSL記錄協(xié)議建立在可靠的傳輸協(xié)議(如TCP)之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能的支持;SSL握手協(xié)議建立在SSL記錄協(xié)議之上,用于在實(shí)際的數(shù)據(jù)傳輸開始前通信雙方進(jìn)行身份認(rèn)證(協(xié)商加密算法、交換加密密鑰等)。
SSL能實(shí)現(xiàn)數(shù)據(jù)的安全保密傳輸是指通過(guò)SSL傳輸?shù)臄?shù)據(jù)經(jīng)過(guò)服務(wù)器與客戶機(jī)的公開密鑰密碼體制加密而且密鑰是在傳輸開始時(shí)經(jīng)協(xié)商隨機(jī)產(chǎn)生的。這樣即使在傳輸過(guò)程中數(shù)據(jù)被非法竊取,第三方?jīng)]有解密密鑰也無(wú)法獲得傳輸?shù)脑紨?shù)據(jù)或篡改原始數(shù)據(jù)。
定期進(jìn)行數(shù)據(jù)備份是減少數(shù)據(jù)損失的有效手段,能讓數(shù)據(jù)庫(kù)在遭到破壞(惡意或者誤操作)后,及時(shí)恢復(fù)數(shù)據(jù)資源。
(1)屏蔽操作
在學(xué)生考試過(guò)程中,必須保證一定的操作安全性。有些操作可能是誤操作,有些可能是惡意的。學(xué)生的考試用機(jī)可能存儲(chǔ)與考試相關(guān)的資料,需要對(duì)一些快捷鍵、鼠標(biāo)鍵、菜單命令和USB接口進(jìn)行屏蔽,避免學(xué)生獲取試題資料。同時(shí),考試系統(tǒng)頁(yè)面在刷新時(shí)會(huì)重新生成新的試題,在實(shí)現(xiàn)時(shí)要加以避免,以免學(xué)生通過(guò)此方法多次生成試卷。
(2)二次登陸
在考試中,可能某些考生因成績(jī)不理想而擅自再次登錄考試系統(tǒng)、再次做答,系統(tǒng)要記錄考生的考試狀態(tài),杜絕考生二次登陸。同時(shí)系統(tǒng)應(yīng)定期提取學(xué)生的答題情況并存放到服務(wù)器的數(shù)據(jù)庫(kù)中,以便在死機(jī)、誤操作、網(wǎng)絡(luò)故障等原因造成考試意外中斷時(shí)恢復(fù)到之前的狀態(tài)。
(3)防火墻技術(shù)
防火墻是指設(shè)置在不同網(wǎng)絡(luò)(如可信任的企業(yè)內(nèi)部網(wǎng)和不可信的公共網(wǎng))或網(wǎng)絡(luò)安全域之間的一系列部件的組合。它是不同網(wǎng)絡(luò)或網(wǎng)絡(luò)安全域之間信息的唯一出入口,通過(guò)監(jiān)測(cè)、限制、更改跨越防火墻的數(shù)據(jù)流,盡可能地對(duì)外部屏蔽網(wǎng)絡(luò)內(nèi)部的信息、結(jié)構(gòu)和運(yùn)行狀況,有選擇地接受外部訪問,對(duì)內(nèi)部強(qiáng)化設(shè)備監(jiān)管、控制對(duì)服務(wù)器與外部網(wǎng)絡(luò)的訪問,在被保護(hù)網(wǎng)絡(luò)和外部網(wǎng)絡(luò)之間架起一道屏障,以防止發(fā)生不可預(yù)測(cè)的、潛在的破壞性侵入。
本系統(tǒng)采用包過(guò)濾技術(shù),限定考試機(jī)允許進(jìn)行的網(wǎng)絡(luò)訪問,并且對(duì)考試機(jī)的IP地址進(jìn)行限制,使得只有規(guī)定范圍內(nèi)的機(jī)器才可以進(jìn)行考試。
由于網(wǎng)絡(luò)本身的原因,給在線考試的安全和管理帶來(lái)了潛在的威脅。本文針對(duì)在線考試系統(tǒng)數(shù)據(jù)安全性要求較高的特點(diǎn),在系統(tǒng)中采用了多層次的安全技術(shù),提出了一套完整的安全策略,并以案例驗(yàn)證了策略方法的可行性和有效性。
[1]王海燕.關(guān)于網(wǎng)絡(luò)考試的安全性研究[J].赤峰學(xué)院學(xué)報(bào)(自然科學(xué)版),2008,24(1):98-100.
[2]孫占鋒.基于ASP.NET的網(wǎng)絡(luò)考考試系統(tǒng)的用戶權(quán)限設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2007(11):794-795,797.
[3]李美滿.網(wǎng)絡(luò)考試系統(tǒng)題庫(kù)與成績(jī)安全性研究[J].計(jì)算機(jī)應(yīng)用,2005,25(S1):133-134,137.
[4]汪瑩.基于3DES加密算法的高校公共課程網(wǎng)絡(luò)考試系統(tǒng)題庫(kù)安全性研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2009(7):78-79.
[5]顏晶晶,康振華.DSA數(shù)字簽名技術(shù)及其在JAVA中的實(shí)現(xiàn)[J].中國(guó)現(xiàn)代教育裝備,2006(6):72-74.
[6]張峰嶺.基于Java2的身份認(rèn)證數(shù)字簽名和SSL實(shí)現(xiàn)技術(shù)[J].現(xiàn)代計(jì)算機(jī),2002(4):27-31.