GBase新聞
GBase 8s是如何實現(xiàn)庫中數(shù)據(jù)安全保障的?
隨著計算機網(wǎng)絡的廣泛應用,網(wǎng)上信息的開放性與共享性日益增強,但隨之而來的是信息安全問題愈發(fā)嚴重。數(shù)據(jù)庫是這些數(shù)據(jù)信息存儲的主要場所,因此確保數(shù)據(jù)庫中存儲以及存取信息的安全是確保網(wǎng)絡安全的首要問題。為此,需要在通用的數(shù)據(jù)庫管理系統(tǒng)基礎上,圍繞安全性功能進行體系化設計,從而增強數(shù)據(jù)庫系統(tǒng)的安全性。
作為廣泛應用于金融、電信等超大規(guī)模領域的GBase 8s,是如何實現(xiàn)數(shù)據(jù)安全的呢?本篇文章將從“數(shù)據(jù)安全、安全功能組成”兩個方面為您揭開它的神秘面紗。
一、數(shù)據(jù)安全
· 數(shù)據(jù)保密性保護
存儲數(shù)據(jù)的保密性是安全數(shù)據(jù)庫的最重要的功能之一,GBase 安全數(shù)據(jù)庫的數(shù)據(jù)加密采用庫內(nèi)加密的方式,在數(shù)據(jù)庫管理系統(tǒng)的內(nèi)核存儲引擎級進行數(shù)據(jù)加解密處理,即數(shù)據(jù)在進行物理I/O時完成加/解密工作。
由于數(shù)據(jù)頁只有在真正進行I/O時才進行加解密操作,從而對于合法用戶來講是完全透明的,因此也可以稱為透明存儲加密。
GBase 8s存儲數(shù)據(jù)按頁進行加密,頁數(shù)據(jù)的完整性通過page trailer的校驗碼來保證。數(shù)據(jù)解密后,使用Page header的校驗碼對解密后的數(shù)據(jù)進行校驗,防止數(shù)據(jù)在加解密過程中被篡改。當用戶查詢數(shù)據(jù)時,系統(tǒng)將符合要求的數(shù)據(jù)解密后返回給用戶。
· 數(shù)據(jù)完整性保護
一個GBase 8s實例可以創(chuàng)建多個dbspace,一個dbspace可以包含多個物理chunk,一個chunk分成多個連續(xù)擴展區(qū)extent,一個表或者索引占用的空間被稱為一個tablespace,一個extent包含多個物理頁page。如下圖所示:
GBase8s存儲結構示意圖
其中,dbspace、tablespace和extent屬于邏輯存儲單元;chunk和page屬于物理存儲單元。
數(shù)據(jù)頁page是最基本的存儲單元,是最小的I/O單元,如下圖所示。GBase 8s進行一次I/O的最小單元是一個page,即使我們只對一個page里的某一行記錄進行了修改,GBase 8s也需要對整個數(shù)據(jù)頁進行讀取到內(nèi)存和寫入磁盤的操作。磁盤的一個數(shù)據(jù)頁讀取到內(nèi)存會分配一個同樣大小的內(nèi)存page來存儲。GBase8s支持不同大小的數(shù)據(jù)頁:2KB、4KB、8KB、16KB。
一個數(shù)據(jù)頁的內(nèi)部存儲結構如下圖所示,一個數(shù)據(jù)頁總體上分成三部分:頁頭、頁尾和數(shù)據(jù)部分。
GBase8s數(shù)據(jù)頁內(nèi)部結構
頁頭中的chksum用于校驗該頁所存儲的數(shù)據(jù),用于校驗數(shù)據(jù)的完整性。當write page時寫page 的校驗碼信息到chksum中,當read page時,首先重新計算該page的校驗碼信息,然后和chksum的校驗碼信息進行對比。如果不相等,說明此page的完整性信息被破壞了;如果相等,說明該頁的數(shù)據(jù)完整性得到了保證,可正常訪問。GBase 8s通過page 中保存校驗碼信息的方式來檢查以頁結構形式存儲在數(shù)據(jù)庫中的用戶數(shù)據(jù)是否出現(xiàn)完整性錯誤。
在數(shù)據(jù)庫服務的內(nèi)部,用戶數(shù)據(jù)存在如下三種形態(tài):密文磁盤、密文緩存、明文結果。當數(shù)據(jù)庫服務從磁盤文件中加載為緩存時,數(shù)據(jù)庫服務通過該數(shù)據(jù)頁chksum內(nèi)存儲的校驗信息對該數(shù)據(jù)頁進行完整性校驗,當需要返回用戶明文結果集時,通過chksum內(nèi)存儲的校驗信息對密文數(shù)據(jù)解密后的明文數(shù)據(jù)進行完整性校驗。防止用戶數(shù)據(jù)在加解密過程中遭到篡改。當數(shù)據(jù)庫服務收到用戶寫請求時,以上步驟反向執(zhí)行。
GBase 8s安全數(shù)據(jù)庫在事務處理上通過采用成熟的主流技術來實現(xiàn)高效的事務處理,這些技術主要包括:鎖技術、多版本并行控制技術(multiversioning)。這些技術在保證事務ACID特征的前提下大大提高了事務的并發(fā)處理能力。
鎖是一種軟件機制,用于控制對數(shù)據(jù)庫中數(shù)據(jù)的訪問。在出現(xiàn)同時讀取和更新數(shù)據(jù)的多用戶環(huán)境中,鎖能夠確保每個事務的原子性、隔離性、一致性和持續(xù)性(ACID)不受到威脅,并且維護數(shù)據(jù)的完整性。
鎖的粒度越粗,它就能鎖住越多的數(shù)據(jù)庫對象。例如,對于能夠在一個磁盤頁上包含4 行的表,在該頁放置一個鎖,將鎖住其中包含的所有 4 個行;相反,如果使用行鎖,那么將僅鎖住一個行。因此,鎖的粒度越粗,并發(fā)性就越低,從而影響到性能,尤其在應用程序試圖訪問相同的行集時,不過,粗粒度也意味著在某些情況下鎖住相同數(shù)量的行需要的鎖數(shù)量更少。例如,鎖住整個表僅需要一個表鎖。
1、 鎖粒度
GBase 8s提供6種粒度的鎖:
2、 隔離級別
GBase 8s提供以下五個級別的并發(fā)性:
GBase 8s安全數(shù)據(jù)庫通過對死鎖監(jiān)測,會自動檢測一個事務的死鎖并回滾一個或多個事務來防止死鎖,并設法提取小的事務來進行回滾,從而降低由于回滾造成的大量磁盤刷新以提高性能。
二、安全功能組成
· 用戶認證
DBMS的用戶認證分為用戶標識與身份鑒別。每個進入DBMS的用戶首先需要有一個用戶標識,并在DBMS的整個生命周期實現(xiàn)用戶標識的唯一性。用戶身份鑒別采用了用戶密碼及數(shù)據(jù)證書雙重認證的鑒別機制。
· 用戶授權
每個授權用戶有一組數(shù)據(jù)庫安全域特性,可決定用戶下列安全域特性內(nèi)容:可用特權和授權角色、可用存儲空間(如表空間)限額、可用系統(tǒng)資源限制等安全屬性。
· 訪問控制
1、 自主訪問控制
當一個主體訪問某個客體時,自主訪問控制根據(jù)訪問控制表檢查,以確認主體對客體的訪問操作是否合法。
2、 標記與強制訪問控制
DBMS中的主體與客體均需標以敏感標記(簡稱標記),標記分為安全等級標記與范疇標記,等級標記是用正整數(shù)表示,而范疇標記則用集合表示,由負責MAC管理的安全管理員設定主體和客體的密級和范疇。
· 安全審計
GBase 8s提供了審計工具,它能定義有關的審計事件,記錄用戶的有關操作,并能記錄身份鑒別、自主訪問控制、標記、強制訪問控制中的有關審計數(shù)據(jù),能進行相關的審計分析并自動報警,并能對審計數(shù)據(jù)進行查閱。
· 數(shù)據(jù)安全
1、 數(shù)據(jù)加密
GBase 8s安全數(shù)據(jù)庫采用國家密碼管理局審批的密碼卡加密,密碼支持包括密鑰生成、密鑰銷毀、密鑰運算。
2、 數(shù)據(jù)完整性
GBase 8s使用密碼卡硬件的雜湊算法實現(xiàn)數(shù)據(jù)庫用戶數(shù)據(jù)完整性保護功能。數(shù)據(jù)庫的數(shù)據(jù)是以數(shù)據(jù)頁的形式存儲在磁盤文件之中,每個數(shù)據(jù)頁都有chksum字段用來保護該數(shù)據(jù)頁的完整性,chksum校驗碼是通過密碼卡雜湊算法生成,數(shù)據(jù)庫在訪問數(shù)據(jù)頁時對每個數(shù)據(jù)頁的chksum校驗碼進行校驗,以保護該數(shù)據(jù)頁的完整性。
· 備份恢復
在發(fā)生故障后,GBase 8s可快速實現(xiàn)數(shù)據(jù)的備份。根據(jù)不同級別,GBase 8s可實現(xiàn)一下三個級別的備份:
1、 零級備份:全量備份
2、 一級備份:最近一次零級備份后的增量部分備份
3、 二級備份:最近一次一級備份后的增量部分備份
· 角色管理
GBase 8s安全數(shù)據(jù)管理系統(tǒng)分權的基本安全思想是最小特權的授權原則,對一個主體(用戶)僅賦予完成預定任務所必需的最小權限。基于該安全策略,把數(shù)據(jù)庫管理系統(tǒng)的用戶由原來單一的超級數(shù)據(jù)庫管理員變成現(xiàn)在的三類角色:安全管理員、審計管理員、數(shù)據(jù)管理員。它們分別承擔著不同的職責,并且期望它們?nèi)咧粦荒苌婕捌渌麅烧叩臋嗔Ψ秶瑥亩鴮崿F(xiàn)整個數(shù)據(jù)庫系統(tǒng)的分權管理,即所謂的三權分立原則。
· 資源限制
資源管理主要包括對用戶連接數(shù)量控制、服務器存儲空間監(jiān)控預警、數(shù)據(jù)空間占用監(jiān)控等功能。
· 通訊安全
用戶端與數(shù)據(jù)庫服務端的信息訪問,使用以SSL為基礎的安全協(xié)議來建立安全保密數(shù)據(jù)傳輸路徑。使用加密算法保護鏈路層安全,使用證書對服務端和客戶端進行雙向驗證,保證客戶端和服務端之間通訊的保密性和完整性。
· 可信路徑
GBase 8s的可信路徑由兩部分組成:系統(tǒng)管理用戶的安全態(tài)下的初始化過程和數(shù)據(jù)庫正常服務時管理員同服務端的安全通道。
通過“數(shù)據(jù)安全、安全功能組成”兩個方面的加強,GBase 8s構建了強大的安全機制,有效地保障了庫中的數(shù)據(jù)信息安全,為我國金融、電信等行業(yè)的數(shù)據(jù)信息安全提供中國力量!