用戶二次登錄法在一卡通系統(tǒng)數(shù)據(jù)庫(kù)中的應(yīng)用
1、研究背景和意義
隨著數(shù)字化校園的興起和應(yīng)用的深入,如今的校園一卡通系統(tǒng)規(guī)模越來(lái)越大,功能越來(lái)越復(fù)雜,在系統(tǒng)實(shí)際的應(yīng)用中存在諸多問(wèn)題,其中,如何確保整個(gè)系統(tǒng)的安全使用是關(guān)鍵所在。只有妥善地解決了校園一卡通系統(tǒng)的安全問(wèn)題,才能促進(jìn)其進(jìn)步和健康發(fā)展。
由于一卡通系統(tǒng)建立在校園網(wǎng)的基礎(chǔ)上,系統(tǒng)涉及到一些收費(fèi)、消費(fèi)數(shù)據(jù)和基本信息等一些敏感數(shù)據(jù),許多關(guān)鍵的業(yè)務(wù)系統(tǒng)運(yùn)行在數(shù)據(jù)庫(kù)平臺(tái)上,數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)為眾多用戶所共享,如果數(shù)據(jù)庫(kù)安全無(wú)法保證,其上的應(yīng)用系統(tǒng)也會(huì)被非法訪問(wèn)或破壞,這就對(duì)校園一卡通系統(tǒng)的安全性特別是數(shù)據(jù)庫(kù)的安全提出了更高的要求,如何有效防止應(yīng)用中可能存在的各種攻擊、破壞和欺詐,使校園一卡通的數(shù)據(jù)庫(kù)系統(tǒng)可以在開(kāi)放的網(wǎng)絡(luò)環(huán)境中安全地運(yùn)行,實(shí)現(xiàn)一套完整有效的數(shù)據(jù)庫(kù)安全控制方案就成為校園一卡通系統(tǒng)中的重中之重。
本文的重點(diǎn)在于結(jié)合學(xué)校一卡通系統(tǒng)的實(shí)際業(yè)務(wù)流程,針對(duì)一卡通系統(tǒng)的特點(diǎn),通過(guò)對(duì)一卡通系統(tǒng)數(shù)據(jù)庫(kù)安全要求進(jìn)行分析,提出了一個(gè)切實(shí)有效的數(shù)據(jù)庫(kù)安全技術(shù)方法即數(shù)據(jù)庫(kù)用戶二次登錄法。此方法可以有效防止系統(tǒng)應(yīng)用中可能存在的對(duì)數(shù)據(jù)庫(kù)的各種攻擊、破壞和欺詐,使校園一卡通系統(tǒng)可以在開(kāi)放的網(wǎng)絡(luò)環(huán)境中安全地運(yùn)行。
2、一卡通系統(tǒng)的數(shù)據(jù)庫(kù)安全的基本要求
1).物理上的數(shù)據(jù)庫(kù)完整性
一卡通系統(tǒng)中存有很多消費(fèi)和收費(fèi)的業(yè)務(wù)數(shù)據(jù),并且,機(jī)房計(jì)費(fèi)系統(tǒng)和綜合消費(fèi)系統(tǒng)(餐飲消費(fèi))對(duì)數(shù)據(jù)庫(kù)服務(wù)器的不可間斷性也提出了很高的要求。
2).訪問(wèn)控制
一卡通系統(tǒng)下分多個(gè)子系統(tǒng),各個(gè)子系統(tǒng)擁有各自的數(shù)據(jù),對(duì)數(shù)據(jù)庫(kù)中對(duì)象的權(quán)限要求并不一樣,越權(quán)訪問(wèn)會(huì)帶來(lái)一定的隱患,并造成管理上的混亂。
3).可審計(jì)性
一卡通系統(tǒng)數(shù)據(jù)庫(kù)中包含很多消費(fèi)和收費(fèi)的敏感數(shù)據(jù),對(duì)這些子系統(tǒng),我們必須能夠追蹤到誰(shuí)訪問(wèn)或修改過(guò)子系統(tǒng)中的數(shù)據(jù)。在這一點(diǎn)上,除了數(shù)據(jù)庫(kù)本身的日志之外,一卡通系統(tǒng)也要記錄系統(tǒng)日志,使審計(jì)更加準(zhǔn)確。
4).用戶認(rèn)證
一卡通系統(tǒng)數(shù)據(jù)庫(kù)安全設(shè)計(jì),由于一卡通系統(tǒng)在安全方面有比較高的要求,因此我們必須確保每個(gè)用戶被正確地識(shí)別,既便于審計(jì)追蹤,也為了限制對(duì)特定的數(shù)據(jù)進(jìn)行訪問(wèn)。
5).可用性
一卡通系統(tǒng)中的很多子系統(tǒng),如機(jī)房計(jì)費(fèi)系統(tǒng)和綜合消費(fèi)系統(tǒng)對(duì)數(shù)據(jù)庫(kù)服務(wù)器的可用性提出了很高的要求,用戶應(yīng)該隨時(shí)可以訪問(wèn)數(shù)據(jù)庫(kù)以及所有被批準(zhǔn)訪問(wèn)的數(shù)據(jù)。
3、一卡通系統(tǒng)數(shù)據(jù)庫(kù)用戶二次登錄法
3.1 技術(shù)需求分析
在一卡通應(yīng)用系統(tǒng)中,當(dāng)各個(gè)子系統(tǒng)的客戶端應(yīng)用程序訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器的時(shí)候,都需要提供一個(gè)合法的數(shù)據(jù)庫(kù)用戶名和訪問(wèn)口令組合,通常來(lái)說(shuō),訪問(wèn)數(shù)據(jù)庫(kù)的用戶名不需改變,因此如何保護(hù)用戶口令就成了我們非常關(guān)心的內(nèi)容。
首先要明確的一點(diǎn)是,我們這里所說(shuō)的維護(hù)用戶口令指的是第2條中的用戶口令。
常見(jiàn)的數(shù)據(jù)庫(kù)用戶L]令處理方法有如下三種:
(1)把用戶名和口令直接寫到程序語(yǔ)句中。
(2)將用戶名和口令加密后保存在客戶端程序的某一配置文件或注冊(cè)表中。
(3)用戶二次登錄的方法:客戶端程序先用一個(gè)權(quán)限極低的用戶登錄數(shù)據(jù)庫(kù),從口令密文表中取得正常工作用戶的口令密文,然后用正常工作用戶名和根據(jù)密文計(jì)算出來(lái)的口令再次登錄數(shù)據(jù)庫(kù)。
上述幾種保護(hù)口令的方法不是太簡(jiǎn)單死板就是需要數(shù)據(jù)庫(kù)管理員的干預(yù),通過(guò)分析常見(jiàn)方法的優(yōu)缺點(diǎn),我們?cè)谝豢ㄍㄏ到y(tǒng)中使用了一種新的用戶二次登錄法,自動(dòng)維護(hù)數(shù)據(jù)庫(kù)用戶的口令,更加安全和實(shí)用。
3.2 設(shè)計(jì)方案
結(jié)合上述二次登錄技術(shù),一卡通系統(tǒng)中提出的自動(dòng)維護(hù)數(shù)據(jù)庫(kù)用戶口令的方法如下:
首先給定一個(gè)維護(hù)周期,數(shù)據(jù)庫(kù)到期隨機(jī)或者根據(jù)周期信息自動(dòng)生成一個(gè)口令密文.接著從口令密文中計(jì)算出新的用戶口令,然后自動(dòng)重新設(shè)置用戶口令以及數(shù)據(jù)庫(kù)中相關(guān)的口令密文。
所有操作無(wú)需數(shù)據(jù)庫(kù)管理員的干預(yù),對(duì)客戶端程序也毫無(wú)影響,此時(shí)用戶口令對(duì)管理員和客戶端應(yīng)用程序來(lái)說(shuō)都是透明的。
自動(dòng)維護(hù)用戶口令包含數(shù)據(jù)庫(kù)服務(wù)器端和客戶端的實(shí)現(xiàn),分述如下:在服務(wù)器端可以將生成口令密文和修改用戶口令的算法寫在存儲(chǔ)過(guò)程中,這個(gè)存儲(chǔ)過(guò)程可以由作業(yè)周期性地調(diào)度,也可以由客戶端程序在維護(hù)周期內(nèi)首次運(yùn)行時(shí)調(diào)用執(zhí)行。
客戶端要完成的工作根據(jù)服務(wù)器端的存儲(chǔ)過(guò)程調(diào)度的方法的不同而稍有不同。如果服務(wù)器端的存儲(chǔ)過(guò)程由作業(yè)調(diào)度執(zhí)行,那么客戶端只需要在第一次登錄數(shù)據(jù)庫(kù)時(shí)取得用戶口令的密文,然后計(jì)算出口令并進(jìn)行第二次登錄。
為了增加口令被破譯的難度,在這里使用了多重加密算法技術(shù),可同時(shí)應(yīng)用于生成密文和從密文計(jì)算出【]令的算法中。在生成密文的時(shí)候,先設(shè)定幾種生成算法,然后通過(guò)密文種子信息或隨機(jī)值來(lái)選取不同的密 生成算法。在從密文計(jì)算出口令的時(shí)候,同樣先設(shè)定幾種算法,接著由密文本身的相關(guān)信息或通過(guò)附加位的方式來(lái)確定具體采用的是哪一種計(jì)算算法,最后通過(guò)密文計(jì)算出口令。
3.3 二次登錄法的實(shí)現(xiàn)
根據(jù)上一節(jié)的設(shè)計(jì)思想, 下面給出在一卡通系統(tǒng)q 的具體的實(shí)現(xiàn)方案。為了敘述方便,我們假定服務(wù)器的數(shù)據(jù)庫(kù)名稱為Sdataoase,創(chuàng)建此數(shù)據(jù)庫(kù)的管理員為DataMaster,客戶端的應(yīng)用程序?yàn)镻roClient。實(shí)現(xiàn)修改口令的存儲(chǔ)過(guò)程是ChangeUserPWD,存儲(chǔ)口令密文的數(shù)據(jù)表是TPass—word Cry,第一次登錄數(shù)據(jù)庫(kù)取得密文的用戶為CU:m’,而正常工作時(shí)使用的用戶是L0GUSER。
3.3.1 服務(wù)器端數(shù)據(jù)庫(kù)操作
a.創(chuàng)建客戶端訪問(wèn)服務(wù)器數(shù)據(jù)庫(kù)的正常工作用戶(LOGUSER),配置LOGUSER訪問(wèn)數(shù)據(jù)庫(kù)中各數(shù)據(jù)表的訪問(wèn)權(quán)限。
b.創(chuàng)建LOGUSER用戶口令密文數(shù)據(jù)表TPassword Cry:用戶名LOGUSER即客戶端訪問(wèn)服務(wù)器數(shù)據(jù)庫(kù)的正常工作用戶,既客戶端二次登錄時(shí)的用戶。
c.創(chuàng)建客戶端程序用戶表TelientUser:用戶名和用戶口令可采用一定的加密算法加密。共享用戶名對(duì)應(yīng)數(shù)據(jù)表TPassword Cry中的LOGUSER,用于在TPassword Cry表中查找客戶端二次登錄數(shù)據(jù)庫(kù)時(shí)的用戶名和口令密文的位置。
d 創(chuàng)建客戶端程序首次登錄用CUser,給CUser設(shè)置具有訪問(wèn)客戶端程序用戶表TC1 j entUser和口令密文數(shù)據(jù)表TPassword Cry的權(quán)限。
e.在數(shù)據(jù)庫(kù)中添加存儲(chǔ)過(guò)程ChangeUserPWD。
3.3.2 存儲(chǔ)過(guò)程本身的安全性
如果一個(gè)加密算法本身沒(méi)有安全性,那么不論加密算法有多好都是沒(méi)有用的。有些數(shù)據(jù)庫(kù)中,存儲(chǔ)過(guò)程的默認(rèn)設(shè)置是可以看到源碼的,因此要注意將它加密后存儲(chǔ)。在Oracle數(shù)據(jù)庫(kù)中,可采用Oracle自帶的包裝程序wrap來(lái)進(jìn)行相關(guān)處理。
3.3.3 客戶端應(yīng)用程序的二次登錄訪問(wèn)
a.ProClient以普通用戶CUser/CPassword登錄數(shù)據(jù)庫(kù),訪問(wèn)用戶表TCIientUser:
b.客戶端用戶輸入用戶名和口令,ProClient對(duì)用戶名和輸入口令進(jìn)行加密,比較TCIientUser表中信息,如果口令正確,則進(jìn)行下一步操作,否則報(bào)告登錄出錯(cuò)。
C.如果客戶程序是在一個(gè)維護(hù)周期中第一次登錄,此時(shí)需調(diào)用存儲(chǔ)過(guò)程changeuserPwD修改用戶口令和口令密文。
d.讀取共享用戶名LOGUSER,然后在口令密文數(shù)據(jù)表TPassword Cry中讀取相應(yīng)的口令密文,根據(jù)密文計(jì)算出具體口令。
e.客戶端應(yīng)用程序ProC1lent以用戶名LOGUSER進(jìn)行二次登錄,開(kāi)始數(shù)據(jù)庫(kù)的相關(guān)數(shù)據(jù)處理操作。一卡通系統(tǒng)中所采用的自動(dòng)維護(hù)數(shù)據(jù)庫(kù)用戶口令的方法具有很強(qiáng)的適用性和靈活性,不針對(duì)具體的數(shù)據(jù)庫(kù)和程序開(kāi)發(fā)環(huán)境,適用于c/s或B/s結(jié)構(gòu)的客戶端應(yīng)用程序。另外,具體的密文生成算法,自動(dòng)維護(hù)用戶口令的周期,從密文計(jì)算出口令的算法以及算法的多重程度可根據(jù)具體情況進(jìn)行靈活調(diào)節(jié)。
4、結(jié)束語(yǔ)
本文根據(jù)系統(tǒng)在數(shù)據(jù)庫(kù)安全方面的基本要求,對(duì)一卡通系統(tǒng)在數(shù)據(jù)庫(kù)安全方面的基本要求作了分析,從用戶口令認(rèn)證的安全層面考慮提出了數(shù)據(jù)庫(kù)用戶二次登錄法來(lái)保障一卡通系統(tǒng)數(shù)據(jù)庫(kù)的安全,此方法可以有效防止系統(tǒng)應(yīng)用中可能存在的對(duì)數(shù)據(jù)庫(kù)的各種攻擊、破壞和欺詐,使校園一卡通系統(tǒng)可以在開(kāi)放的網(wǎng)絡(luò)環(huán)境中安全地運(yùn)行。