劉怡博,傅民倉
(1.武警工程大學(xué) 研究生大隊,陜西 西安 710086;2.武警工程大學(xué) 通信工程系,陜西 西安 710086)
C/S(Client/Server,客戶機/服務(wù)器)模式,是 20 世紀 80 年代末逐步成長起來的一種模式,是軟件系統(tǒng)體系結(jié)構(gòu)的一種。C/S結(jié)構(gòu)的關(guān)鍵在于功能的分布,一些功能放在前端機(即客戶機)上執(zhí)行,另一些功能放在后端機(即服務(wù)器)上執(zhí)行。功能的分布在于減少計算機系統(tǒng)的各種瓶頸問題。C/S模式簡單地講就是基于內(nèi)部網(wǎng)絡(luò)的應(yīng)用系統(tǒng)[1]。C#綜合了VB簡單的可視化操作和C++的高運行效率,以其強大的操作能力、優(yōu)雅的語法風格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言[2]。隨著現(xiàn)代信息技術(shù)、網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,給數(shù)據(jù)的管理工作模式帶來了深刻的影響,傳統(tǒng)的手工管理模式數(shù)據(jù)量大,管理方法單調(diào)繁瑣,不僅費時費力,還無法直觀表達統(tǒng)計結(jié)果,查詢和分析都不方便。為改變這種落后的管理方式,適應(yīng)現(xiàn)代化管理的要求,采用計算機技術(shù)實現(xiàn)對數(shù)據(jù)管理的自動化是解決這一問題的有效方法。利用現(xiàn)代計算機技術(shù),使用C#語言設(shè)計基于C/S模式的數(shù)據(jù)庫管理系統(tǒng),依其特定的數(shù)據(jù)處理環(huán)境,是數(shù)據(jù)管理的迫切需要,是信息化建設(shè)不可或缺的支撐平臺,將各單位的管理推入了科學(xué)化、規(guī)范化的軌道,有力地促進了各單位整體管理水平的提高。
當用戶向數(shù)據(jù)庫管理系統(tǒng)注冊新用戶記錄時,用SHA-1加密用戶名和密碼,并將這對加密后的口令插入數(shù)據(jù)庫。當用戶登錄信息系統(tǒng)時,用同樣的方法對用戶輸入的口令進行加密,然后將它與從數(shù)據(jù)庫中的加密口令進行比較。
其關(guān)鍵代碼如下[3]:
在客戶端和服務(wù)器端通過RSA簽名體制實現(xiàn)認證,完成鑒別通信。
RSA體制是由 R.L.Rivest,A.Shamir和 L.Adleman于1978年設(shè)計的用數(shù)論構(gòu)造雙鑰方法。該算法設(shè)計之精巧,安全性和效率之高,至今無人能超越。RSA算法的高明之處在于它既是一個加密算法又是一個簽名算法,加密(簽名)和解密(驗證)使用了完全相同的操作[4]。
在實際的操作中,并不會直接用私鑰去加密要發(fā)送的數(shù)據(jù)或文件,這是因為非對稱加密的算法非常耗時并且密文的長度要大于明文的長度,直接加密系統(tǒng)的開銷非常大。
需要了解另外一個概念:消息摘要。所謂的消息摘要就是通過一種單向算法計算出來的唯一對應(yīng)一個文件或數(shù)據(jù)的固定長度的值,也被稱作數(shù)字摘要。根據(jù)不同的算法,消息摘要的長度一般為128位或160位。常用的消息摘要的算法有MD5和SHA1。一個文件的消息摘要就同一個人的指紋一樣,它可以唯一代表這個文件,如果這個文件被修改了,那么它的消息摘要也一定會發(fā)生變化,所以,可以通過對一個文件的消息摘要進行簽名來代替對它本身進行簽名。并且,我們還可以通過驗證消息摘要,來確定發(fā)送的數(shù)據(jù)是否完整或曾經(jīng)被修改過。
其關(guān)鍵代碼如下[5-6]:
數(shù)據(jù)庫是存放數(shù)據(jù)的軟件系統(tǒng),都保存著企業(yè)、組織和政府部門的各種重要的信息。加密是一種幫助保護數(shù)據(jù)的機制。加密通過將數(shù)據(jù)打亂,達到只有經(jīng)過授權(quán)的人員才能訪問和讀取數(shù)據(jù)的目的,從而幫助提供數(shù)據(jù)的保密性。SQL Server 2005中,提供了完整的加密機制,其結(jié)構(gòu)圖如圖 1所示[7]。
圖1 SQL Server 2005的加密機制Fig.1 Encryption mechanism of SQL Server 2005
以對稱加密/解密為例,使用SQL Server 2005實現(xiàn)數(shù)據(jù)庫加密的基本步驟可以使用T-SQL語言描述[8]:
1)產(chǎn)生對稱密鑰
2)用對稱密鑰加密數(shù)據(jù)
3)用對稱密鑰解密數(shù)據(jù)
系統(tǒng)安全層有兩個方面,一是代碼訪問控制,二是操作級的權(quán)限驗證。第一個層面與具體的開發(fā)語言與運行平臺相關(guān),第二個層面的安全管理借鑒RBAC(基于角色的訪問控制)模型來設(shè)計和實現(xiàn)。RBAC有角色、對象、權(quán)限、操作等幾個主要實體構(gòu)成,并按分為RBAC0,RBAC1,RBAC2等3個級別。
1)對 象
有的地方稱為“安全對象”,系統(tǒng)中需要進行訪問控制的一切實體都可稱為“安全對象”,例如:雇員、部門、合同等等?!鞍踩珜ο蟆睕]有新增操作,系統(tǒng)中其他業(yè)務(wù)實體本來就是“安全對象”,因此在新增業(yè)務(wù)實體的同時(例如:新增雇員)也隱式的添加了一個雇員安全對象。系統(tǒng)預(yù)置了業(yè)務(wù)實體類型級的“安全對象”用于將權(quán)限僅僅控制在業(yè)務(wù)實體類型層次,例如:只將權(quán)限控制在能夠新增、刪除雇員,而不控制能夠修改雇員“張三”的層次。
2)操 作
操作是權(quán)限驗證的最小單位,往往是業(yè)務(wù)實體的一個方法。例如:修改雇員的基本信息等。操作是定義在“預(yù)置的安全對象”類型上的,新增的業(yè)務(wù)實體繼承了它對應(yīng)的“業(yè)務(wù)實體類型”的操作。
3)權(quán) 限
有的地方稱為“授權(quán)項”(ACE),它是“某個安全對象”+“某個操作”+“是否許可”+“期限”構(gòu)成的聯(lián)合體。例如:雇員+修改基本信息+可以修改+1年有效期。
4)角 色
角色是一個權(quán)限的集合,往往與真實組織機構(gòu)中的崗位對應(yīng)(并非一一對應(yīng)),有時候也僅僅作為簡化授權(quán)的一種實體存在[9]。
權(quán)限管理模式圖如圖2所示[10-11]。
圖2 權(quán)限管理模式圖Fig.2 Model diagram of authority management
目前網(wǎng)絡(luò)安全所面臨的形勢依然嚴峻,數(shù)據(jù)庫中存放著大量的數(shù)據(jù),保護數(shù)據(jù)不受內(nèi)部和外部的侵害是一項重要的任務(wù)。數(shù)據(jù)庫系統(tǒng)是計算機信息系統(tǒng)的核心組成部分,SQL Server2005提供了全方面多層次的安全保護措施,合理地設(shè)置各層次的安全服務(wù)措施,切實有效地對敏感數(shù)據(jù)進行保護,不但可以提高數(shù)據(jù)庫的管理效率,更保障了數(shù)據(jù)庫中數(shù)據(jù)的安全。本文采用用戶口令、C/S之間的簽名認證、數(shù)據(jù)庫加密、系統(tǒng)分配角色和用戶權(quán)限,保證數(shù)據(jù)庫管理系統(tǒng)的安全。這也是數(shù)據(jù)庫管理系統(tǒng)設(shè)計和管理的重中之重。這些措施地恰當使用到達了預(yù)期的目的,增加了系統(tǒng)的安全可靠性。
[1]劉志剛.基于C/S技術(shù)的江西理工大學(xué)學(xué)生管理系統(tǒng)的研究與設(shè)計[D].南昌:南昌大學(xué),2009.
[2]Bradley J C,Millspaugh A C.Visual C#2008程序設(shè)計教程[M].楊繼萍,馬海軍,等譯.北京:清華大學(xué)出版社,2010.
[3]羅斌.Visual C#2005數(shù)據(jù)庫開發(fā)經(jīng)典案例[M].北京:中國水利水電出版社,2008.
[4]楊曉元.現(xiàn)代密碼學(xué)[M].西安:西安電子科技大學(xué)出版社,2009.
[5]馬臣云,王彥.精通PKI網(wǎng)絡(luò)安全認證技術(shù)與編程實現(xiàn)[M].北京:人民郵電出版社,2008.
[6]王冰.計算機等級考試報名系統(tǒng)的設(shè)計與實現(xiàn) [D].吉林:吉林大學(xué),2009.
[7]趙松濤.深入淺出SQL Server 2005系統(tǒng)管理與應(yīng)用開發(fā)[M].北京:電子工業(yè)出版社,2009.
[8]宋敏,程鳳娟.SQL Server 2005安全機制研究[J].電腦與信息技術(shù),2008(10):68-70.SONG Min,CHENG Feng-juan.SQL Server 2005 security mechanism research[J].Computer and Information Technology,2008(10):68-70.
[9]鄧延平.機務(wù)維修管理系統(tǒng)的設(shè)計與實現(xiàn)[D].廣州:華南理工大學(xué),2010.
[10]Booch G,Maksimchuk R A.面向?qū)ο蠓治雠c設(shè)計[M].3版.王海鵬,潘加宇,譯.北京:人民郵電出版社,2009.
[11]胡荷芬,張帆,高斐.UML系統(tǒng)建?;A(chǔ)教程[M].北京:清華大學(xué)出版社,2010.