劉怡博,傅民倉
(1.武警工程大學 研究生大隊,陜西 西安 710086;2.武警工程大學 通信工程系,陜西 西安 710086)
C/S(Client/Server,客戶機/服務器)模式,是 20 世紀 80 年代末逐步成長起來的一種模式,是軟件系統體系結構的一種。C/S結構的關鍵在于功能的分布,一些功能放在前端機(即客戶機)上執行,另一些功能放在后端機(即服務器)上執行。功能的分布在于減少計算機系統的各種瓶頸問題。C/S模式簡單地講就是基于內部網絡的應用系統[1]。C#綜合了VB簡單的可視化操作和C++的高運行效率,以其強大的操作能力、優雅的語法風格、創新的語言特性和便捷的面向組件編程的支持成為.NET開發的首選語言[2]。隨著現代信息技術、網絡技術的迅速發展,給數據的管理工作模式帶來了深刻的影響,傳統的手工管理模式數據量大,管理方法單調繁瑣,不僅費時費力,還無法直觀表達統計結果,查詢和分析都不方便。為改變這種落后的管理方式,適應現代化管理的要求,采用計算機技術實現對數據管理的自動化是解決這一問題的有效方法。利用現代計算機技術,使用C#語言設計基于C/S模式的數據庫管理系統,依其特定的數據處理環境,是數據管理的迫切需要,是信息化建設不可或缺的支撐平臺,將各單位的管理推入了科學化、規范化的軌道,有力地促進了各單位整體管理水平的提高。
當用戶向數據庫管理系統注冊新用戶記錄時,用SHA-1加密用戶名和密碼,并將這對加密后的口令插入數據庫。當用戶登錄信息系統時,用同樣的方法對用戶輸入的口令進行加密,然后將它與從數據庫中的加密口令進行比較。
其關鍵代碼如下[3]:


在客戶端和服務器端通過RSA簽名體制實現認證,完成鑒別通信。
RSA體制是由 R.L.Rivest,A.Shamir和 L.Adleman于1978年設計的用數論構造雙鑰方法。該算法設計之精巧,安全性和效率之高,至今無人能超越。RSA算法的高明之處在于它既是一個加密算法又是一個簽名算法,加密(簽名)和解密(驗證)使用了完全相同的操作[4]。
在實際的操作中,并不會直接用私鑰去加密要發送的數據或文件,這是因為非對稱加密的算法非常耗時并且密文的長度要大于明文的長度,直接加密系統的開銷非常大。
需要了解另外一個概念:消息摘要。所謂的消息摘要就是通過一種單向算法計算出來的唯一對應一個文件或數據的固定長度的值,也被稱作數字摘要。根據不同的算法,消息摘要的長度一般為128位或160位。常用的消息摘要的算法有MD5和SHA1。一個文件的消息摘要就同一個人的指紋一樣,它可以唯一代表這個文件,如果這個文件被修改了,那么它的消息摘要也一定會發生變化,所以,可以通過對一個文件的消息摘要進行簽名來代替對它本身進行簽名。并且,我們還可以通過驗證消息摘要,來確定發送的數據是否完整或曾經被修改過。
其關鍵代碼如下[5-6]:


數據庫是存放數據的軟件系統,都保存著企業、組織和政府部門的各種重要的信息。加密是一種幫助保護數據的機制。加密通過將數據打亂,達到只有經過授權的人員才能訪問和讀取數據的目的,從而幫助提供數據的保密性。SQL Server 2005中,提供了完整的加密機制,其結構圖如圖 1所示[7]。

圖1 SQL Server 2005的加密機制Fig.1 Encryption mechanism of SQL Server 2005
以對稱加密/解密為例,使用SQL Server 2005實現數據庫加密的基本步驟可以使用T-SQL語言描述[8]:
1)產生對稱密鑰

2)用對稱密鑰加密數據

3)用對稱密鑰解密數據


系統安全層有兩個方面,一是代碼訪問控制,二是操作級的權限驗證。第一個層面與具體的開發語言與運行平臺相關,第二個層面的安全管理借鑒RBAC(基于角色的訪問控制)模型來設計和實現。RBAC有角色、對象、權限、操作等幾個主要實體構成,并按分為RBAC0,RBAC1,RBAC2等3個級別。
1)對 象
有的地方稱為“安全對象”,系統中需要進行訪問控制的一切實體都可稱為“安全對象”,例如:雇員、部門、合同等等。“安全對象”沒有新增操作,系統中其他業務實體本來就是“安全對象”,因此在新增業務實體的同時(例如:新增雇員)也隱式的添加了一個雇員安全對象。系統預置了業務實體類型級的“安全對象”用于將權限僅僅控制在業務實體類型層次,例如:只將權限控制在能夠新增、刪除雇員,而不控制能夠修改雇員“張三”的層次。
2)操 作
操作是權限驗證的最小單位,往往是業務實體的一個方法。例如:修改雇員的基本信息等。操作是定義在“預置的安全對象”類型上的,新增的業務實體繼承了它對應的“業務實體類型”的操作。
3)權 限
有的地方稱為“授權項”(ACE),它是“某個安全對象”+“某個操作”+“是否許可”+“期限”構成的聯合體。例如:雇員+修改基本信息+可以修改+1年有效期。
4)角 色
角色是一個權限的集合,往往與真實組織機構中的崗位對應(并非一一對應),有時候也僅僅作為簡化授權的一種實體存在[9]。
權限管理模式圖如圖2所示[10-11]。

圖2 權限管理模式圖Fig.2 Model diagram of authority management
目前網絡安全所面臨的形勢依然嚴峻,數據庫中存放著大量的數據,保護數據不受內部和外部的侵害是一項重要的任務。數據庫系統是計算機信息系統的核心組成部分,SQL Server2005提供了全方面多層次的安全保護措施,合理地設置各層次的安全服務措施,切實有效地對敏感數據進行保護,不但可以提高數據庫的管理效率,更保障了數據庫中數據的安全。本文采用用戶口令、C/S之間的簽名認證、數據庫加密、系統分配角色和用戶權限,保證數據庫管理系統的安全。這也是數據庫管理系統設計和管理的重中之重。這些措施地恰當使用到達了預期的目的,增加了系統的安全可靠性。
[1]劉志剛.基于C/S技術的江西理工大學學生管理系統的研究與設計[D].南昌:南昌大學,2009.
[2]Bradley J C,Millspaugh A C.Visual C#2008程序設計教程[M].楊繼萍,馬海軍,等譯.北京:清華大學出版社,2010.
[3]羅斌.Visual C#2005數據庫開發經典案例[M].北京:中國水利水電出版社,2008.
[4]楊曉元.現代密碼學[M].西安:西安電子科技大學出版社,2009.
[5]馬臣云,王彥.精通PKI網絡安全認證技術與編程實現[M].北京:人民郵電出版社,2008.
[6]王冰.計算機等級考試報名系統的設計與實現 [D].吉林:吉林大學,2009.
[7]趙松濤.深入淺出SQL Server 2005系統管理與應用開發[M].北京:電子工業出版社,2009.
[8]宋敏,程鳳娟.SQL Server 2005安全機制研究[J].電腦與信息技術,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]鄧延平.機務維修管理系統的設計與實現[D].廣州:華南理工大學,2010.
[10]Booch G,Maksimchuk R A.面向對象分析與設計[M].3版.王海鵬,潘加宇,譯.北京:人民郵電出版社,2009.
[11]胡荷芬,張帆,高斐.UML系統建模基礎教程[M].北京:清華大學出版社,2010.