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