錢兆樓
(淮安信息職業(yè)技術(shù)學(xué)院,江蘇 淮安 223003)
基于Hadoop的NoSQL數(shù)據(jù)庫安全探討
錢兆樓
(淮安信息職業(yè)技術(shù)學(xué)院,江蘇 淮安 223003)
針對當(dāng)前云計算平臺下的數(shù)據(jù)庫安全問題,文章以NoSQL非關(guān)系型數(shù)據(jù)庫中最為典型的HBase數(shù)據(jù)安全為背景,提出在采用傳統(tǒng)的基于Hadoop安全機(jī)制方法外,還必須強(qiáng)化HBase的安全,從而才能更好地實(shí)現(xiàn)對非關(guān)系型數(shù)據(jù)庫的安全保障。
Hadoop平臺;NoSQL數(shù)據(jù)庫;HBase;安全機(jī)制;安全策略
隨著信息化時代的來臨,復(fù)雜的數(shù)據(jù)類型和應(yīng)用場景給數(shù)據(jù)庫提出了更高的要求。面對海量數(shù)據(jù)的到來,傳統(tǒng)的數(shù)據(jù)庫已經(jīng)無法滿足應(yīng)用場景的需要,由此非關(guān)系型數(shù)據(jù)庫應(yīng)運(yùn)而生。之所以NoSQL數(shù)據(jù)庫發(fā)展起來,并迅速被人們所接納,是因?yàn)槠錇楹A繑?shù)據(jù)處理提供了一個新的解決方案,并具有高可擴(kuò)展性、高并發(fā)性等優(yōu)勢。本文則以NoSQL非關(guān)系型數(shù)據(jù)庫之中的HBase數(shù)據(jù)庫為例,就其安全策略進(jìn)行探討。
與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫進(jìn)行比較,NoSQL主要改變了傳統(tǒng)的存儲結(jié)構(gòu)和架構(gòu),從而可更好地滿足對大規(guī)模數(shù)據(jù)的存儲、訪問。在關(guān)系型數(shù)據(jù)庫之中,其存儲的數(shù)據(jù)大部分都是結(jié)構(gòu)化的數(shù)據(jù),并且存儲在由不同行列組成的二維表格之中,其中所有含包含的字段都是全部相同。通過這種方式可便于相關(guān)表的連接,但是通常會占用大量的磁盤空間,并限制了海量數(shù)據(jù)的處理性能。而對于NoSQL數(shù)據(jù)庫來講,是一種以“鍵值對”作為主要存儲架構(gòu)的數(shù)據(jù)庫,在該數(shù)據(jù)庫中,其每一行的結(jié)構(gòu)不需要完全相同,每行也可以用不同的字段,從而非常有利于存儲非結(jié)構(gòu)化的數(shù)據(jù)。
在實(shí)際中,對非關(guān)系型數(shù)據(jù)庫的訪問通常是通過鍵值對作為訪問接口。這種以鍵值對訪問的方式,不僅可隨著數(shù)據(jù)量的增加而橫向擴(kuò)展,同時還可提高負(fù)載能力。而通過橫向擴(kuò)展,將產(chǎn)生的海量數(shù)據(jù)以鍵值對的方式存儲在云計算平臺中的各個節(jié)點(diǎn),提高了整個云平臺的集群性能,并且不需要對整個數(shù)據(jù)庫進(jìn)行掃描,即可通過加入新的節(jié)點(diǎn)來實(shí)現(xiàn)擴(kuò)展。因此,針對這種分布式的數(shù)據(jù)存儲方式,在對其安全進(jìn)行考慮中,通常需要從內(nèi)部和外部進(jìn)行考慮,即從數(shù)據(jù)庫內(nèi)部安全和非關(guān)系型數(shù)據(jù)庫客戶端與服務(wù)器端外部通信兩方面入手。
要解決HBase的安全問題,需要解決兩方面的問題,一方面提高Hadoop的安全性;另一方面提高非關(guān)系型數(shù)據(jù)庫的訪問安全。因此本文的思路是在Hadoop層引入Kerberos認(rèn)證、 ACL權(quán)限認(rèn)證和Token認(rèn)證,在非關(guān)系型數(shù)據(jù)庫中引入Coprocessor機(jī)制,從而保障非關(guān)系型數(shù)據(jù)庫的訪問安全。
3.1Kerberos認(rèn)證機(jī)制
Kerberos認(rèn)證通常被認(rèn)為是一種基于對稱密鑰體制的計算機(jī)網(wǎng)絡(luò)認(rèn)證協(xié)議,通過該協(xié)議,可實(shí)現(xiàn)機(jī)器級別的安全訪問認(rèn)證。換句話說,在非安全訪問條件下,某個實(shí)體要想對另外一個實(shí)體進(jìn)行訪問,必須通過Kerberos才能向另外一個實(shí)體證明自己的合法身份。因此,通常我們將Kerberos認(rèn)證看成是第三方可信認(rèn)證,并被稱為密鑰分發(fā)中心。在該中心中,有兩個獨(dú)立的邏輯部分:票據(jù)授權(quán)中心(Ticket Granting Service, TGS)和認(rèn)證中心(Authentication Service, AS)。Kerberos則持有一個密鑰庫,對不同用戶的密鑰進(jìn)行記錄,而這個密鑰也只有Kerberos和用戶才能知道。如在云計算平臺下,兩個不同的實(shí)體需要通信,那么就會產(chǎn)生一個臨時的會話密鑰,對兩者之間的通信進(jìn)行加密。
在對該認(rèn)證進(jìn)行使用的過程中,管理員首先會手動將集群平臺中的服務(wù)器節(jié)點(diǎn)添加到Kerberos數(shù)據(jù)庫之中,然后會在Kerberos的認(rèn)證中心中產(chǎn)生對應(yīng)的Kerberos。通過 Keytab文件,即可以實(shí)現(xiàn)與認(rèn)證中心的通話,并獲取密鑰分發(fā)中心發(fā)放的臨時密鑰,并最終云計算平臺中的目標(biāo)節(jié)點(diǎn)認(rèn)證。
3.2基于ACL的權(quán)限控制
在Hadoop的安全配置中,可支持權(quán)限控制,并且分為兩級:服務(wù)級授權(quán)(Service Level Authorization, SLA)以及上層的Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS)文件權(quán)限控制和Map Reduce隊列權(quán)限驗(yàn)證,其中上述的服務(wù)級授權(quán)通常為系統(tǒng)級,主要對Hadoop的服務(wù)訪問方面的控制。同時在Hadoop平臺下,其底層的HDFS文件系統(tǒng)本身可通過訪問控制列表的方式來管理和控制服務(wù)級的訪問權(quán)限。同時,Hadoop擁有9個不同的可配置訪問控制列表,從而針對不同的訪問設(shè)置不同的控制功能。
通過ACL訪問控制,Hadoop可保證HBase數(shù)據(jù)庫在與底層的HDFS文件系統(tǒng)進(jìn)行訪問過程中的安全,從而通過這種組和用戶的限制,進(jìn)一步防止非法用戶對數(shù)據(jù)的訪問和操作。
3.3Token認(rèn)證
研究認(rèn)為,用戶在向HDF發(fā)出數(shù)據(jù)請求之后,可根據(jù)自己的需要,制定相應(yīng)的用戶名和組。如果在這個過程中,沒有對用戶的身份進(jìn)行認(rèn)證的話,那么訪問用戶就很可能偽裝成他人對HDFS文件系統(tǒng)進(jìn)行訪問。由此,這給Hadoop平臺下得HDFS文件系統(tǒng)帶來極大的威脅。因此,加強(qiáng)對HDFS訪問的安全控制是保障非關(guān)系型數(shù)據(jù)庫的一種重要手段,也就是Token認(rèn)證。Token認(rèn)證包含兩類:Name Node Delegation Token和Block Access Token。其中Delegation Token的生成過程如圖1所示。

圖1 Delegation Token生成流程
通過圖1看出,當(dāng)用戶在通過Kerberos和Namennode中,會隨機(jī)生成一個Master Key,然后與Namennode共享,從而完成對 Delegation Token的認(rèn)證。
而所謂的Block Access Tokens通常是由對稱加密體制自動生成。在這個過程中,Name Node和所有的Data Nodes通常是共同享用一個密鑰,而這個密鑰則成了一個主密鑰。對這個密鑰來講,當(dāng)一個HDFS客戶端需要對某個block進(jìn)行訪問的時候,它才將這個Block的ID與其相應(yīng)的Block Access Token都全部發(fā)送給對應(yīng)的Data Node,在Data Node接收到這個信息之后,會重新計算Token Authenticator,然后將這個計算值也其接收到的Token Authenticator進(jìn)行對比,如果這兩者匹配,那么可以通過驗(yàn)證,如果不一致,則不能通過驗(yàn)證。因?yàn)閷τ谠撜J(rèn)證方式來講,只有其中的Name Node和Data Nodes才知道密鑰,任何第三方都不知道。
3.4Coprocessor機(jī)制
HBase Coprocessor 通常被認(rèn)為是HBase數(shù)據(jù)庫的一個非常重要的框架,在該框架中,它允許用戶可在服務(wù)器端插入自己定制的執(zhí)行代碼。而這種執(zhí)行代碼包括兩種不同的模式:Observer 模式、Endpoint模式。這兩種模式統(tǒng)也可以類似于我們傳統(tǒng)數(shù)據(jù)庫當(dāng)中的觸發(fā)器和存儲過程的概念。在基于Coprocessor框架中,HBase數(shù)據(jù)庫可實(shí)現(xiàn)訪問控制、聚合以及二次索引等一些非常豐富的特性。
總之,要加強(qiáng)非關(guān)系型數(shù)據(jù)庫的安全,必須結(jié)合Hadoop和非關(guān)系型數(shù)據(jù)庫的特點(diǎn),在加強(qiáng)對Hadoop訪問安全控制的基礎(chǔ)上,還必須從NoSQL數(shù)據(jù)庫自身入手,這樣可以更好地實(shí)現(xiàn)對非關(guān)系型數(shù)據(jù)的保護(hù)。也只有加強(qiáng)海量數(shù)據(jù)的保護(hù),才能為后續(xù)大數(shù)據(jù)技術(shù)的更好開展奠定基礎(chǔ)。
[1[陸嘉恒.Hadoop實(shí)戰(zhàn)[M[.北京:機(jī)械工業(yè)出版社,2012.
[2[李延改,趙華偉.基于PKI的HDFS認(rèn)證及安全傳輸機(jī)制研究[J[.山東科學(xué),2014(27):34-41.
[3[邵偉.基于Map Reduce模型的并行計算平臺設(shè)計[J[.計算機(jī)光盤軟件與應(yīng)用,2013(9):120-121.
Discussion on the security of NoSQL database based on Hadoop
Qian Zhaolou
(Huaian College of Information Technology, Huaian 223003, China)
Aiming at the safety problem of the database platform under the current cloud computing, the security of HBase data is taken as a typical background of NoSQL in non relational database, this paper proposed using the traditional method based on Hadoop security mechanism, and must strengthen the security of HBase, which can better do good safety to non relational database.
Hadoop platform; NoSQL database; HBase; security mechanism; security policy
錢兆樓(1978— ),男,江蘇淮安,碩士,講師,工程師;研究方向:網(wǎng)絡(luò)與信息安全,軟件工程。