摘 要:由于嵌入式平臺的開放性和智能化,嵌入式數據庫面臨的安全威脅日益增長。在此提出一種嵌入式數據庫安全增強方案,融合多種安全技術,如指紋識別、訪問控制、數據加密等,設計了一種基于嵌入式數據庫的安全中間件,構造訪問嵌入式數據庫的安全通道,對嵌入式數據庫系統進行安全增強。該安全方案在嵌入式數據庫Berkeley DB系統上得到了應用,驗證了嵌入式數據庫安全方案的可行性,能夠有效地增強嵌入式數據庫的安全性。
關鍵詞:嵌入式數據庫; 指紋識別; 中間件; 數據加密
中圖分類號:TN92; TP309 文獻標識碼:A
文章編號:1004-373X(2010)14-0021-04
Design and Implementation of Security-enhanced Scheme for Embedded Database
SHEN Yong, ZHU Wen-jing
(College of Computer Science Engineering, Jiangsu University of Science and Technology, Zhenjiang 212003, China)
Abstract: The threat to the embedded databases is growing with the open and intelligent application of embedded platforms. A security enhancement scheme of embedded databases is proposed. A security middleware is designed to construct a secure channel to access the embedded databases by integrating multiple security technologies, such as fingerprint identification, access control, and data encryption to enhance the security of EDBS. The scheme has been applied to Berkeley DB embedded database system. The application verifies that the security enhancement scheme of embedded databases is feasible and the security of embedded databases can be enhanced effectively.
Keywords: embedded database; fingerprint identification; middleware; data encryption
0 引 言
隨著嵌入式系統和無線通信網絡技術的飛速發展,嵌入式設備數據的存儲以及數據存儲量在不斷的增加,因此引入了嵌入式數據庫技術[1]。嵌入式數據庫運行在嵌入式系統上,與應用程序緊密集成,被應用程序所啟動,并伴隨應用程序的退出而終止[2]。
比較典型的嵌入式數據庫有:Berkeley DB,TimesTen,FastDB,SQLite等[3-4]。與通用數據庫相比,嵌入式數據庫的特點有:內核足夠小,性能高,成本低,可裁減,嵌入性[5]。
由于嵌入式平臺的開放性和智能化,其面臨的安全威脅也日益增長[6]。嵌入式數據庫需要在信息安全方面得到更加可靠的保障。
目前,通用數據庫的安全研究已相對成熟,如:SQL Server,Oracle數據庫在授權認證、審核與入侵檢測、數據加密等方面都有各自的安全機制。而嵌入式數據庫,如Berkeley DB,SQLite等,還未能有相對完善的安全機制來保障。
本文結合嵌入式數據庫本身的特點,在分析嵌入式數據庫安全威脅的基礎上,結合多種信息安全技術,提出了嵌入式數據庫安全增強方案。
1 嵌入式數據庫安全威脅
一般地,嵌入式數據庫自身的安全機制薄弱,安全設計不完整,無法提供方便易用的安全接口。因此,嵌入式數據庫系統應用會存在一些安全問題,主要有:
(1) 身份誤用
用戶濫用嵌入式設備,身份管理不嚴格,造成用戶信息或密碼泄露。或者,黑客通過信息截獲方式盜取用戶賬戶信息,從而成為合法用戶,成功登錄到嵌入式數據庫系統,造成信息的泄漏。
(2) 數據存儲安全
嵌入式設備易被盜取,信息易被人利用。黑客可通過無線設備與嵌入式設備進行同步,瀏覽或復制存儲在嵌入式設備上的數據。
(3) 數據傳輸安全
數據庫信息在網絡傳輸過程中,易被黑客通過監聽方式截獲。
(4) 缺乏審計
嵌入式數據庫系統一般設計為輕型數據庫系統,無審計功能,一旦發生數據庫安全事件,不易察覺,也不易防范。
2 嵌入式數據庫安全增強方案設計
本文提出了一種嵌入式數據庫安全增強方案,如圖1所示,將多種安全技術相融合,在應用系統和嵌入式數據庫間設置安全中間件(embedded database secure middleware,EDSM),從而構造訪問嵌入式數據庫的安全通道。
圖1 嵌入式數據庫安全架構
EDSM包括身份認證、訪問控制、安全存儲、安全通信和安全審計等模塊,其功能結構如圖2所示。
圖2 EDSM功能結構
圖2中,安全通信模塊主要解決遠程訪問嵌入式數據庫的安全問題。
2.1 基于指紋識別的身份認證機制設計
指紋識別[7]安全性相對較高,技術相對成熟,其應用日益廣泛。
指紋識別身份認證一般有2種方式:一種是先輸入用戶的ID,從指紋庫中將對應的指紋特征提取出來,然后與現場采集指紋的特征值進行匹配,根據相似度來進行驗證;另一種是直接采集現場指紋,提取指紋特征值到指紋庫中逐一匹配,并識別用戶身份。第一種方式檢索速度較快,且用戶數可以較多;第二種方式使用方便,但檢索速度較慢。考慮到嵌入式系統資源有限的情況,本文選取第一種方式,有助于提高身份認證的速度。指紋識別身份認證流程如圖3所示。
該系統除指紋識別的身份認證,還提供口令認證方式。用戶可根據需求組合認證方法。
身份認證需要用到用戶信息表(user information list,UIL),如表1所示,通過統計用戶登錄次數,便于管理員查看用戶使用情況,當出現安全問題時便于查找隱患。信息表中的密碼和指紋特征值需加密存儲。
圖3 指紋識別認證流程圖
表1 用戶信息表結構
用戶ID用戶名口令指紋特征值登錄次數角色ID
1zhjian* * * * * ** * * * * *130
2wxing* * * * * ** * * * * *221
2.2 基于RBAC的訪問控制機制設計
RBAC在用戶和訪問權限之間引入了角色的概念,用戶與特定的一個或多個角色相關聯,角色與一個或多個訪問權限相關聯,角色由數據庫管理員根據需要添加或刪除[8]。RBAC模型如圖4所示。
圖4 RBAC模型圖
訪問控制實際上就是授權操作,將權限授權給有資格的用戶,同時令所有未授權的人員無法使用數據庫。本文提出三級安全訪問控制,對應著三級授權,即操作系統登錄授權、嵌入式數據庫使用授權及嵌入式數據庫對象操作與命令,如表2所示。
嵌入式數據庫管理員具有數據庫操作的最高權限,可以定義用戶和角色,并為用戶分配角色。用戶先獲得用戶名,其次是根據角色獲得權限,根據權限決定能夠訪問數據庫的對象。
表2 三級授權機制
對象對象類型操作權限
屬性列(字段)Table Select,Insert,
Update,Delete
基本表TableSelect,Insert,Update,
Delete,Index,All Privileges
數據庫DataBaseCreate Table
角色與權限通過角色控制列表(role control list, RCL)來描述。訪問控制通過用戶信息表和角色控制列表來實現,如表3所示。
表3 角色控制表結構
角色ID角色名稱對象類型操作權限
0DBAdminDataBase1111
1TableUserTable01110
2FiledUserField01100
RCL中,角色ID用來惟一標識角色,角色名稱定義了3種不同的角色。對象類型表示角色是否對數據庫、表、字段具有操作權限,如角色為TableUser時,表示對某表有操作權限。Table0表示對所有的數據表有操作權限,Table后面的0可以根據定義改為1,2,3等不同的數字,代表不同的數據表對象。操作權限表示對數據的查看、修改、添加和刪除操作。其中,1111表示對數據庫具有所有權限;1101表示對所有數據表的查看、修改和添加具有權限,但不能刪除表;1100表示對某數據表的所有字段具有查看、修改功能,不能添加或刪除字段信息。
2.3 安全存儲設計
安全存儲設計是為了保障嵌入式數據庫的數據表在存儲時的安全。本文以Berkeley DB為例,介紹安全存儲設計。
Berkeley DB中數據庫的記錄是以關鍵字(Key)和數據(Data)以Key/Data對的方式存放的,組成了數據庫中的一個基本結構單元[9]。data可以由一個結構體構成,結構體中變量相當于是普通數據表中的字段。初始化數據庫時需定義數據庫句柄,然后根據句柄創建數據庫名。
按照數據庫結構層次,加密粒度可以分為表級、記錄級、字段級加密。根據不同的應用需要,對數據表可選擇合適的加密粒度。
(1)表級加密。
表級加密的對象是數據庫中的表,需要對數據庫中一些包含敏感信息的表進行加密。表級加密采取對表的文件名,或者對定義文件名的指針或句柄加密。
(2)記錄級加密。
記錄級加密的對象是數據表中的記錄,將需要加密的記錄中的所有字段值連接一起進行加密。
(3)字段級加密。
字段級加密的對象是關系中的某個敏感字段。
數據庫的安全存儲由加密說明表(encryption description list,EDL)描述加密信息和粒度,對加密的表或字段進行記錄,如表4所示。
表4 加密說明表結構
ID數據表名加密粒度字段名加密密鑰
0Table00/1/2Field0* * * * * *
1Table10/1/2Field3* * * * * *
EDL中,加密粒度為0/1/2分別對應表/記錄/字段級加密。若為記錄級加密,需要在加密字段前部添加加密標記字符;若為字段級加密,需要在其后說明字段名。加密密鑰由系統隨時產生,在存儲數據表時系統自動加密,訪問數據表時系統自動解密。
2.4 安全審計設計
安全審計主要是對用戶登錄事件、數據庫訪問事件、數據庫更改等關鍵事件進行記錄,在身份認證模塊、訪問控制、安全存儲等模塊中都存在安全審計的內容。
安全審計模塊主要生成三類日志信息:非法登錄、非法訪問和非法更新。
2.5 安全通信設計
為防止遠程訪問數據庫造成的安全威脅,安全通信模塊采用SSL協議[10]提供安全保護。
3 測試與分析
為驗證EDSM的安全性和可行性,本文對一個Berkeley DB應用——醫院移動查房系統(hospital mobile rounds system,HMRS)進行了安全增強。
HMRS將嵌入式數據庫技術應用在無線手持設備上,醫生或護士利用該設備登記就醫、用藥、病情等信息,并可查詢病人治療情況。
該移動設備涉及到病人的個人隱私和醫院的敏感信息,并非所有的人都能使用。一旦非法用戶使用造成信息泄露,將對醫院和病人造成損害。對HMRS進行身份認證、訪問控制、數據存儲和安全日志測試,測試結果如圖5、圖6所示。
圖5 指紋識別認證登錄
基于指紋識別的認證方式,有效地防止了非法用戶的登錄,是一種安全可靠的認證方法。
不同角色對數據庫有不同的訪問權限,具有不同權限的用戶對數據庫的訪問粒度也不同。該部分測試表明了EDSM的訪問控制和安全存儲的有效性。
日志測試表明,對于用戶連續登錄失敗,修改機密信息的操作都會進行安全記錄。日志數據不是太大,適用于嵌入式系統應用。
該移動設備上的信息存儲在Berkeley DB中,并可通過存儲卡或網絡,將信息傳送到PC機上。存儲卡中的數據經過加密處理,SSL保證了數據傳輸過程中的機密性。
圖6 病人信息顯示
4 結 語
本文針對嵌入式數據庫自身特點和安全需求,設計了一種適合嵌入式數據庫的安全增強方案。通過在Berkeley DB應用中增加EDSM測試,表明該方案可以靈活、有效地防止非法登錄、非授權訪問,實現數據的安全存儲和傳輸,并能對非法或異常事件進行安全記錄。
隨著嵌入式數據庫的廣泛應用,有效的安全增強方案將成為嵌入式數據庫系統設計的重點。
參考文獻
[1]翁時輝.嵌入式數據庫的發展與應用[J].華南金融電腦,2009(1):18-22.
[2]BARBARA D. Mobile computing and databases-a survey.IEEE Trans on Knowledge and Data Engineering, 1999, 11(1): 108-117.
[3]朱偉玲.安全嵌入式數據庫管理系統的分析與設計[D].鎮江:江蘇大學,2008.
[4]宋麗娜.嵌入式數據庫典型技術:SQLite和Berkeley DB的研究[J].科技信息,2008(14):173-175.
[5]歐書云.嵌入式數據庫系統的應用[J].單片機與嵌入式系統應用,2008(7):6-8.
[6]龔星宇,許佳, 龔尚福.嵌入式數據庫的研究[J].現代電子技術,2007,30(9):62-63.
[7]趙戰生,杜虹,呂述望.信息安全保密教程[M].合肥:中國科學技術大學出版社,2006.
[8]姜宇鋒,付鈺,吳曉平.基于RBAC的權限設計與實現[J].計算機與數字工程,2009(6):98-101.
[9]Berkeley D B. Solid data[ M] . [ S.l.] : Sleepycat and Solid Data Systems, 2002.
[10]俸皓.SSL/TLS在嵌入式系統中的研究與實現[D].成都:電子科技大學,2004.