萬盛學電腦網

 萬盛學電腦網 >> 健康知識 >> 分布式數據庫的安全探討

分布式數據庫的安全探討

  分布式數據庫系統是物理上分散而邏輯上集中的數據庫系統。分布式數據庫系統使用計算機網絡將地理位置分散而管理和控制需要不同程度集中的多個邏輯單位(通常是集中式數據庫)連接起來,共同組成一個統一的數據庫系統。因此,分布式數據庫系統可以看成是計算機網絡與數據庫系統的有機組合。   Internet的高速發展推動著分布式數據庫的發展,但同時也增加了分布式數據庫安全問題的復雜性。如何才能保證開放網絡環境中分布式數據庫系統的安全?   一般情況下,分布式數據庫面臨著兩大類安全問題:一類由單站點故障、網絡故障等自然因素引起,這類故障通常可利用網絡提供的安全性來實現安全防護,所以說網絡安全是分布式數據庫安全的基礎;另一類來自本機或網絡上的人為攻擊,即黑客攻擊,目前黑客攻擊網絡的方式主要有竊聽、重發攻擊、假冒攻擊、越權攻擊、破譯密文等,針對這類安全隱患,我們分別介紹下列分布式數據庫安全關鍵技術。   身份驗證     為了防止各種假冒攻擊,在執行真正的數據訪問操作之前,要在客戶和數據庫服務器之間進行雙向身份驗證,比如用戶在登錄分布式數據庫時,或分布式數據庫系統服務器與服務器之間進行數據傳輸時,都需要驗證身份。   著名的Kerberos協議是一種基於對層碼體制的身份驗證協議。在該協議中各站點從一個密鑰管理中心站點獲得與目標站點通信用的密鑰,從而進行安全通信。由於密鑰管理中心負責管理和安全分發大量密鑰,容易造成系統性能瓶頸,而且系統內必須有一個被所有站點信任的密鑰管理中心,因此該協議應用場合存在著一定的局限性。   為了簡化站點間通信密鑰的分發,開放式網絡應用系統一般采用基於公鑰密碼體制的雙向身份驗證技術。在這種技術中,每個站點都生成一個非對稱密碼算法(如RSA)的公鑰對,其中的私鑰由站點自己保存,並可通過可信渠道將自己的公鑰分發給分布式系統中的其他站點。這樣任意兩個站點均可利用所獲得的公鑰信息相互驗證身份。   保密通信     客戶與服務器、服務器與服務器之間身份驗證成功後,就可以進行數據傳輸了,為了對抗報文竊聽和報文重發攻擊,需要在通信雙方之間建立保密信道,對數據進行加密傳輸。在分布式數據庫系統中,由於傳輸的數據量往往很大,所以加解密算法的速度對系統性能的影響很大。非對稱密碼體制運算復雜、速度慢,所以一般采用對稱密碼算法來進行加解密。其實建立保密信道的過程也就是約定會話密鑰,用會話密鑰來加解密數據的過程。通常這一過程也可以和身份驗證結合在一起。保密通信可以由分布式數據庫系統實現,也可以采用底層網絡協議提供的安全體制,如SSL(Secure Socket Layer)。   訪問控制     在通常的數據庫管理系統中,為了防止越權攻擊,任何用戶不能直接操作庫存數據。用戶的數據訪問請求先要送到訪問控制模塊審查,然後系統的訪問控制模塊代理有訪問權限的用戶去完成相應的數據操作。用戶的訪問控制有兩種形式:自主訪問授權控制和強制訪問授權控制。其中自主訪問授權控制由管理員設置訪問控制表,此表規定用戶能夠進行的操作和不能進行的操作。而強制訪問授權控制先給系統內的用戶和數據對象分別授予安全級別,根據用戶、數據對象之間的安全級別關系限定用戶的操作權限。在這兩種方式中,數據對象的粒度越小,訪問權限就規定得越細,從而系統管理的開銷就越大,尤其是在分布式數據庫系統中,一方面用戶、數據對象多,另一方面要進行分布式訪問控制,更加劇了系統訪問控制的負擔。事實上系統中許多用戶具有相似的訪問權限,因此可以根據用戶權限確定角色,一個角色可以授予多個用戶,同時一個用戶可以擁有多個角色,這樣可以在一定程度上降低系統訪問控制管理的開銷。   庫文加密     為對抗黑客利用網絡協議、操作系統安全漏洞繞過數據庫的安全機制而直接訪問數據庫文件,有必要對庫文進行加密。庫文加密方法主要有兩種,一種為ANSI(美國國家標准協會)頒布的數據加密標准DES。DES使用64位密碼,算法實現在一小塊集成電路芯片上,以1Mb/s的運算速度處理密文。另一種方法稱為公鑰制密系統,其思路是給每個用戶兩個碼,一個加密碼,一個解密碼。用戶的加密碼是公開的,就像電話號碼一樣,,但只有相應的解密碼才能對報文解密,且不可能從加密碼中推導出解密碼,因為該制密系統為不對稱加密,即加密過程不可逆。(但該算法不可逆並未得到求證,也沒有辦法證明其可逆。)   對庫文的加密,系統應該同時提供幾種不同安全強度、速度的加解密算法,這樣用戶可以根據數據對象的重要程度和訪問速度要求來設置適當的算法。同時,系統還應該能調整被加密數據對象的粒度,這樣能夠在保證重要數據對象安全性的同時提高訪問速度。此外,對加密的數據對象巧妙地建立加密數據索引,也可以進行密文的快速檢索。如果攻擊者已知原始庫文的部分信息,並試圖據此利用密碼分析方法破譯密文,那可以使用基本加密算法反饋連接方式或其他方式給每個待加密的對象分配不同的加密密鑰。   密碼體制與密碼管理     在分布式數據庫系統中,身份驗證、保密通信、庫文加密等都利用到了加解密算法,但是它們的利用背景不同:身份驗證僅需傳輸少量控制信息;保密通信除了傳輸少量控制信息外,通常還傳遞大量數據信息;庫文加密則需要設計不同粒度的數據對象,而且還要考慮數據庫的插入、刪除、更改數據密碼等操作。因此應針對分布式數據庫系統不同操作步驟的特點來選擇合適的加解密算法。   此外,由於密碼體制的保密強度強烈依賴於密鑰的保密性,因此對分布式數據庫中所涉及的大量公鑰、密鑰需制定嚴格的管理方案,以保證公鑰不被假冒、密鑰不被洩漏。否則保密機制再好,密碼體制安全強度再高,系統也無安全可言。密鑰管理包括密鑰產生、密鑰分發、密鑰存儲、密鑰更新、密鑰作廢刪除等,其核心問題是密鑰分發。
copyright © 萬盛學電腦網 all rights reserved