夏春梅+虞翔



摘 要: 為了提升數據庫安全性能,設計基于SSL的數據庫安全代理系統。系統借助SSL的私密通信能力、用戶身份驗證能力和數據參數驗證能力構建SSL安全代理接口,為用戶訪問需求驗證提供數據和信道的加解密處理,防止不法分子攻擊數據庫。構建了以委任代理、訪問代理和數據代理為主要功能的系統功能模型,給出數據通信流程,并對實現數據通信的握手協議和SSL記錄協議層進行介紹。經實驗驗證可得,所設計的數據庫安全代理模型可有效避免攻擊,防止數據庫私密數據被盜取。
關鍵詞: 數據庫; 安全代理; 握手協議; SSL記錄協議層
中圖分類號: TN915.08?34; TP311.13 文獻標識碼: A 文章編號: 1004?373X(2017)13?0098?03
Abstract: A database security proxy system based on SSL was designed to improve the security performance of database. The SSL security proxy interface is constructed in the system by virtue of the private communication capacity, user authentication capacity and data parameter validation capacity of SSL to provide the encryption and decryption of data and channel for user access demand, and prevent the lawbreaker attacking the database. The system function model taking the mandate agent, access agent and data agent as the main functions was constructed. The data communication process is given. The handshake protocol and SSL record protocol layer to implement the data communication are introduced. The experimental verification results show that the designed database security proxy model can effectively avoid the attack, and prevent the database private data being stolen.
Keywords: database; security proxy; handshake protocol; SSL record protocol layer
0 引 言
計算機網絡在信息化時代中占據了極其重要的地位,數據庫是計算機網絡信息的載體,但凡是信息系統都離不開數據庫提供的信息存儲與管理功能。數據庫中含有的私密信息存儲和通信漏洞為其安全帶來了隱患,不同區域間網絡服務器的地址存儲不集中、用戶權限管理不徹底、信息加密失誤、遠程跟蹤檢測不完善等漏洞都為不法分子對數據庫的攻擊提供了入口,數據庫安全代理的建立是解決上述隱患的重要手段[1]。絕大多數的數據庫都以用戶口令為安全代理,這種方式雖然使用起來極其簡單,但安全性薄弱,不法分子只需使用簡單的攻擊方式便能從中套用到信息密鑰,而且隨著用戶與網絡服務器之間的數據交互增多,信息密鑰的丟失率也不斷上漲,對用戶的信息安全造成了不小的影響[2]。為了優化數據庫安全性能,提出基于SSL(Secure Sockets Layer,安全套接層)的數據庫安全代理系統。
1 SSL優勢分析
SSL是一種用于計算機網絡應用的安全協議,能夠給出用戶權限檢測、信道數據檢測和信息加密等多種類型的應用服務,在需要安全保衛的網絡應用中出現幾率頗高[3]。SSL構建于穩定的網絡傳輸層中,使用時與網絡應用層內的算法和功能互不干擾,可自動提供雙向通道保密通信以及用戶權限與密鑰的認證[4]。圖1為SSL結構圖。
如圖1所示,SSL擁有兩個協議層,上層結構包括握手、加密參數修改、告警與應用數據四種協議,用來進行用戶與網絡服務器之間的信息傳導、加密、協商與檢測,通過檢測的信息才能被記錄到計算機應用中生成數據。下層包括SSL記錄協議層、傳輸控制協議與地理位置三種并列協議,可對數據和信道進行封裝、加密、解密和協議修正,并有避免重復攻擊的能力[5]。經SSL處理過的信道具備下述數據保衛能力:
(1) 私密通信能力:數據收發者使用握手協議對數據進行加密,提供給用戶加密流程及密鑰,加密流程通常采取對稱加密形式,默認的是數據加密標準算法。
(2) 用戶身份驗證能力:在握手協議的處理下,數據收發者也可進行非對稱加密,也就是使用數字證書提供單向或雙向的用戶身份驗證,默認的非對稱加密算法是公鑰加密算法。
(3) 數據參數驗證能力:數據參數也就是數據完整性,使用的驗證介質是鑒別碼[6],鑒別碼的理論基礎是哈希函數,包括安全哈希算法和消息摘要算法。
SSL借助自身的保衛能力對數據庫的安全能力進行研究,摒棄以往的明文密鑰,改用私密密鑰,對數據庫的信道進行遠程訪問安全加密,并構建額外的信道增強數據庫對不法分子攻擊的防護能力,從根本上杜絕攻擊,防止數據庫私密信息被盜取。
2 基于SSL的數據庫安全代理系統設計
以往的數據庫使用網絡服務器接收用戶訪問需求,存在極大的安全隱患,設計的基于SSL的數據庫安全代理系統對用戶訪問需求進行管理,經驗證無不良情況存在時,再將訪問需求反饋給網絡服務器,這些處理過程需要通過數據通信接口實現[7],管理訪問需求的接口稱為SSL安全代理接口,接口中存在兩個數據收發端口,分別是代理用戶端和代理服務端。
為了使設計的系統能夠與多種類型的數據庫進行互通,對安全代理接口進行封裝,所用的技術是組件對象模型,方便進行維修和數據調用。代理用戶端負責與提供用戶訪問需求的軟件接口進行溝通,還提供了與網絡服務器之間的交互端口[8]。代理服務端與數據庫、代理用戶端連接,能夠處理代理用戶端中的數據,并對數據庫中的數據進行提取和寫入,利用SSL將管理結果反饋給用戶軟件。
圖2為基于SSL的數據庫安全代理系統的結構,可見整個系統的工作流程均受到了SSL的監管,同時,系統的通信模塊提供了兩個通信接口,分別位于代理用戶端和代理服務端。當用戶需求接入到SSL安全代理接口后,代理用戶端的通信接口將反饋出接收狀態給用戶,經代理服務端進行數據加密處理后,通信接口將反饋出數據管理狀態給用戶。用戶將根據數據管理狀態確定是否有進入到數據庫的權限。SSL監管模塊對系統所有的數據傳輸通道進行安全加密,通信接口每產生一次通信信號,SSL監管模塊便進行一次安全加密。
圖3描述了系統各模塊之間的數據通信流程,用戶軟件從代理用戶端中獲取通信位置,使用通信位置向網絡服務器傳輸用戶訪問需求。當網絡服務器感應到訪問需求,經SSL監管模塊加密后的信道將訪問需求反饋給通信模塊,通過通信模塊將訪問需求傳輸到代理服務器。代理服務器對訪問需求的完整性進行測試,不完整的訪問需求代表此用戶無數據庫訪問權限,SSL監管模塊不會提供給此用戶通信模塊的通信密鑰以及數據庫密鑰。完整的訪問需求在用戶進入到數據庫之前便可完成對通信模塊和數據庫的SSL密鑰驗證。由于不法分子借助其他媒介進入數據庫時不會產生SSL密鑰驗證結果,系統一旦檢測到這一問題,將踢出不法分子,并記錄IP地址。
3 數據庫安全代理系統功能實現
3.1 系統功能模型
基于SSL的數據庫安全代理系統為數據庫初步定制的功能包括委任代理功能、訪問代理功能和數據代理功能,各功能分別位于不同的等級中,如圖4所示。
委任代理功能位于系統的第一等級,負責構建數據庫與用戶之間的訪問鏈接和終止訪問指令,向用戶軟件傳輸SSL安全代理接口的管理結果。由于位于系統的最前端,委任代理功能還負責存儲代理信息,并向第二、第三等級分配代理任務;訪問代理功能位于第二等級,負責整個系統的安全問題,包括用戶訪問權限驗證、訪問權限完整性以及數據與信道的加密和解密;數據代理功能位于最后的等級中,負責接收SSL安全代理接口管理結果,并向數據庫發出數據調用請求,請求通過后還需要對用戶調出的數據進行加密和解密。
3.2 基于SSL的通信模塊功能實現
系統通信模塊的各項功能都是由SSL提供的,在代理用戶端與用戶軟件進行數據通信時,SSL先給出TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協議/因特網互聯協議)請求[9],使用握手協議進行通信處理,驗證數據收發者之間的身份,使用算法協商獲得安全信道,在安全信道中進行數據轉發和指令傳輸。在代理服務器與數據庫進行數據通信之前,SSL把用戶訪問需求以加密形式調取出來,在SSL記錄協議層中對用戶訪問需求進行解密,隨后反饋到代理服務器,使用握手協議實現通信。從以上通信方式中能夠看出,握手協議和SSL記錄協議層是實現數據庫安全代理的關鍵,表1對握手協議的信息流通方向進行了概括,圖5給出了SSL記錄協議層的數據加密結構。從表1和圖5可以看出,握手協議的信息由SSL記錄協議層加密為若干個私密結構的報文,私密結構主要包括各類型數據的長度和信道編號。
4 仿真實驗
4.1 實驗環境搭建
基于SSL的數據庫安全代理系統的設計目標是保護數據庫私密數據不被竊取,并減少攻擊成功次數,下面通過實驗驗證本文系統對設計目標的實現情況。在數據庫所處的網絡狀態下,不法分子普遍使用的攻擊工具名為Sniffer[10],中文名為嗅探器,也稱作抓包軟件。Sniffer能夠檢測到任意網絡時段中是否存在通信信號,具有監視網絡狀態、提取數據流量、診斷數據信號的功能,對于未經加密數據的攻擊成功率和數據截獲精度極高。
本次實驗使用Sniffer搭建出三條數據庫攻擊通道,每條數據通道的攻擊類型都不相同,攻擊強度均設為最大。第一條通道模擬了數據庫合法用戶的IP地址,第二條通道已知合法用戶的通信密鑰,第三條通道已知合法用戶的數據庫密鑰。三條通道的攻擊次數均為1 000次。實驗過程中不更改合法用戶的IP地址和兩種密鑰,本文系統的實驗對照組選擇兩款性價比較高的數據庫安全代理系統,分別是SQL Server代理系統和ATE代理系統,實驗在如圖6所示的某大學實驗室內進行。
4.2 結果與討論
SQL Server代理系統、ATE代理系統和本文系統在三條數據庫攻擊通道中的攻擊成功次數和私密數據竊取量如表2,表3,表4所示。實驗結果表明,本文系統在合法用戶的IP地址和通信密鑰已知的情況下,不法分子無法對數據庫進行成功攻擊,私密數據竊取量為0M。在合法用戶數據庫密鑰已知的情況下,不法分子的1 000次攻擊僅有3次成功,但仍然無法獲取數據庫內的私密數據。相比SQL Server代理系統和ATE代理系統而言,本文系統表現出了非常優異的防護性能。
5 結 語
現有的數據庫安全代理系統都不能為數據庫提供優質的安全防護,本文設計了一種基于SSL的數據庫安全代理系統,對數據庫通信通道、用戶驗證通道和數據庫數據進行了加密處理。從實驗結果來看,本文系統能夠從根本上保證數據庫中數據的安全。
參考文獻
[1] 姚華.常見數據庫加密技術對比[J].計算機與網絡,2015,41(14):36.
[2] 蘆彩林,鄒恒,何淑賢.網絡入侵中未知協議識別單元的設計與測試[J].現代電子技術,2015,38(22):25?28.
[3] 丁瑞琦,張衛國.新型煤礦安全監控系統數據庫密鑰管理方法[J].工礦自動化,2015,41(8):93?95.
[4] LIANG K, MAN H A, LIU J K, et al. A DFA?based functional proxy re?encryption scheme for secure public cloud data sharing [J]. IEEE transactions on information forensics & security, 2014, 9(10): 1667?1680.
[5] 賀蘊彬.基于SQL Server數據庫安全機制問題的研究與分析[J].信息安全與技術,2014,5(1):48?50.
[6] 崔翹楚,魏長安.信息化體系結構ATE軟件開發平臺設計方法[J].現代電子技術,2015,38(22):29?33.
[7] 姜珊.計算機數據庫安全管理分析與探討[J].科技創新導報,2015(26):195?196.
[8] 張帆,毋濤.基于云計算的服裝物料管理系統[J].西安工程大學學報,2015,29(6):740?745.
[9] 李偉.計算機數據庫安全管理研究[J].城市建設理論研究, 2014,13(18):215.
[10] CARNAVALET X D C, MANNAN M. A large?scale evaluation of high?impact password strength meters [J]. ACM transactions on information & system security, 2015, 18(1): 1?32.