裴樹軍 張圓緒 婁淑慧
摘要:針對HDFS集群環(huán)境中Kerberos協(xié)議身份認證機制所面臨的時間同步問題、KDC安全問題、字典攻擊問題以及抵賴機制問題,提出了一種基于公鑰加密體系改進HDFs環(huán)境下Kerberos協(xié)議的身份認證機制,首先,分析現(xiàn)存HDFs體系下的身份認證過程,并提出認證過程所面臨的安全問題;其次,結(jié)合公鑰加密機制與數(shù)據(jù)簽名機制對HDFS下的Kerbems協(xié)議進行了針對性的修正,并給出了改進后Kerberos協(xié)議在HDFS環(huán)境下詳細的身份認證工作流程;最后,根據(jù)公鑰加密特點以及HDFs集群特性,充分分析論證了改進Kerbems在HDFS環(huán)境下的可行性.實驗表明,在公鑰級安全保證下,改進后的Kerberos協(xié)議與現(xiàn)有的身份認證機制相比在認證請求達到120次以上后時間性能優(yōu)勢明顯,為HDFs集群提供了更可靠、更高效的身份認證解決方案.
關(guān)鍵詞:云計算;Had00p Distributed File system;身份認證;Kerberos;公鑰加密
DoI:10.15938/j.jhust.2016.04.003
中圖分類號:TP99
文獻標志碼:A
文章編號:1007-2683(2016)04-0013-06
0引言
Hadoop是Apache基金會旗下一款具備PT級數(shù)據(jù)存儲與分析能力的分布式系統(tǒng)基礎(chǔ)架構(gòu),作為云計算領(lǐng)域內(nèi)海量數(shù)據(jù)的存儲與計算的核心技術(shù)取得了廣泛的應用,該架構(gòu)主要由分布式文件系統(tǒng)HDFS(Hadoop Distributed File System)與分布式編程模型Mapreduce兩個核心組件組成.HDFS是Google的分布式文件系統(tǒng)GFS(Goode File Sys-tern)的開源實現(xiàn),為Hadoop平臺提供基礎(chǔ)的分布式文件存儲服務,是整個Hadoop得以運行的基礎(chǔ)。在身份認證安全方面,HDFS是基于Kerberos協(xié)議實現(xiàn)的.但鑒于對稱密鑰機制下的Kerberos其安全性面臨著很大的不足,很多學者也做了相關(guān)的研究.張曉提出了一種基于PKI改進的Kerberos協(xié)議,該方案通過使用公鑰加密機制代替對稱密鑰機制使得認證協(xié)議安全性達到了公鑰級別,但在時間效率上卻有著不足,邵葉秦等提出了一種公鑰加密機制與私鑰加密機制相結(jié)合的Kerberos協(xié)議,在安全性和時間上均有所提高,但由于對稱密鑰是由密鑰分發(fā)中心KDC生成,在對稱密鑰交換上存在安全漏洞.李延改等提出了一種基于數(shù)字證書CA的HDFS環(huán)境下的認證及安全傳輸機制,該改進為通信雙方提供證明自身身份的數(shù)字證書,實現(xiàn)了通信雙方的身份認證,但管理過于繁多的數(shù)字證書增加了使用者的開銷。
本文將在綜合分析HDFS現(xiàn)存Kerberos認證機制的基礎(chǔ)上,充分利用公鑰加密機制與對稱密鑰加密機制各自特點,將對稱密鑰的生成管理方由集中式的KDC改變?yōu)榉植际降募悍丈暾堈?,以期最終給出一套完善的HDFS環(huán)境下的Kerberos協(xié)議身份認證機制。
1.Kerberos應用分析
Hadoop在設計之初,默認整個集群是在一個可信任的域中,并沒有為集群引入各實體間的認證機制,隨著Hadoop應用的不斷普及Hadoop設計者也逐漸意識到集群存在的安全性問題,針對Hadoop的安全缺陷,自Hadoopl.0.0版本后,為其引入了基于Kerberos協(xié)議的第三方安全身份認證機制,用于保障各通信節(jié)點間的可信性。
1.1基于Kerberos協(xié)議下的HDFS認證機制
Kerberos最初是由MIT研發(fā)的,當前最新的協(xié)議版本為Kerberos V5,該協(xié)議可為處于不安全的網(wǎng)絡環(huán)境下通信的雙方提供可信認的身份認證機制,該協(xié)議在網(wǎng)絡安全與身份認證領(lǐng)域有著廣泛的應用,HDFS下Kerberos的基本原理:在Hadoop集群中建立一個集中保存客戶端、DataNode以及NameNode的用戶名和密碼的認證中心KDC,進行用戶的身份認證和授權(quán)工作,KDC在是由兩個邏輯上相互獨立的認證服務器AS和票據(jù)發(fā)放服務器TGS組成的,Hadoop集群下的任何需要申請服務的用戶在申請服務時,首先通過與AS服務器通信獲得票據(jù)授權(quán)票據(jù)TGT,然后利用TGT與TGS服務器通信獲取用于服務的票據(jù)Ticket,最后用戶利用票據(jù)Ticket與所需服務提供節(jié)點通信取得服務。
HDFS下Kerberos協(xié)議具體實現(xiàn)過程如圖4所示
1.2 HDFS下Kerberos協(xié)議安全性分析
通過為HDFS引入Kerberos協(xié)議,解決了原有HDFS集群所遇到的如下安全問題
1)非法用戶利用Hadoop集群的動態(tài)擴展特性,偽裝成DataNode節(jié)點服務器加入到HDFS集群內(nèi),接收NameNode分派的文件數(shù)據(jù)信息;
2)非法用戶通過更改網(wǎng)絡發(fā)送數(shù)據(jù)包偽裝成授權(quán)用戶的身份,向NameNode與DataNode請求服務資源;
3)在非安全的網(wǎng)絡環(huán)境中,非法用戶可以竊聽數(shù)據(jù)報文的交換過程,并可使用重放攻擊干擾Nam—eNode、DataNode服務器的正常運行.
雖然Kerberos協(xié)議可以為HDFS提供身份認證機制,但是HDFS下的Kerberos身份認證機制還存在局限性,面臨著如下安全問題:
1)HDFS集群時間同步性問題.由于在整個Kerberos協(xié)議身份認證過程中會通過借助對比時間戳來判斷用戶身份真實性,這就要求整個HDFS集群內(nèi)部網(wǎng)絡具備很高的時鐘同步能力,而這對于構(gòu)建于廉價商用機群之上的HDFS集群來說難于實現(xiàn)的.即使HDFS集群所處的Kerberos服務域內(nèi)可做到高度的時鐘同步,使得接收方可以在規(guī)定的可信時間內(nèi)(通常設置t=5min)得到新消息,但只要惡意用戶事先準備好偽造的消息,一旦截獲服務票據(jù)并馬上發(fā)出,Kerberos機制是難以在這5分鐘內(nèi)檢測出惡意用戶發(fā)起的攻擊。
2)KDC的安全性及“瓶頸”問題.KDC作為Kerberos認證協(xié)議中的一個重要組成部分,用于存儲和分發(fā)HDFS集群客戶端、NameNode和DataNode的密鑰等相關(guān)信息.一方面,集中式的密鑰存儲簡化了整個系統(tǒng)的管理復雜難度,然而一旦KDC被惡意用戶攻破,則將會對整個HDFS集群安全造成災難性的打擊;另一方面為應對非法用戶惡意收集票據(jù)用于重放攻擊,KDC需要為密鑰設定一個安全的有效期時限,這樣的設計使得HDFS集群認證申請方為保證自身持有密鑰的有效性需要周期性的向KDC申請票據(jù).鑒于HDFS自身集群規(guī)模龐大性以及申請方需要周期性的向中心服務器KDC提出申請,這將導致服務器服務能力下降和處理能力減弱,產(chǎn)生性能瓶頸。
3)字典攻擊問題.在Kerberos認證過程中,AS服務器并不是直接驗證用戶身份,而是通過返回用客戶端密鑰Kc加密的TGT信息,只有知道Kc的用戶才可解密得到TGT,進而進行后續(xù)的認證步驟.然而目前即使引入了認證技術(shù)及數(shù)據(jù)加密技術(shù)的強健安全網(wǎng)絡(RSN)在通信安全方面依然存在相關(guān)的安全隱患,汪定。等指出即使在強健安全網(wǎng)絡(RSN)環(huán)境下,基于中間人MitM的信息篡改、信息竊取等攻擊方式依然具有嚴重威脅性,并提出中一個關(guān)于MitM攻擊的框架和有效攻擊條件,給出該框架下一個有效攻擊實例,因此若惡意用戶可在HDFS集群通信線路上收集足夠數(shù)量的TGT信息,從而可以通過離線的口令分析技術(shù),進行針對性的密鑰破解.針對惡意用戶的離線分析狀況,基于對稱加密體制目前還無法給出有效性防止方案.
4)抵賴機制問題.有效的不可抵賴機制是現(xiàn)如今通信網(wǎng)絡雙方所極為推崇的重要安全技術(shù).當前的不可抵賴機制實現(xiàn)是基于數(shù)字簽名技術(shù),而數(shù)字簽名的實現(xiàn)則依賴于散列函數(shù)與公鑰加密算法.由于Kerberos協(xié)議采用的是對稱加密機制而非公私鑰機制,所以也就不能為信息的發(fā)送方提供數(shù)字簽名技術(shù),不能實現(xiàn)HDFS集群認證過程中發(fā)送信息不可抵賴機制。
為消除HDFS下Kerberos身份認證機制的這些局限性問題,本文將會在Hadoop集群現(xiàn)有的認證機制的的框架內(nèi)就Kerberos協(xié)議做出適當?shù)男薷?,通過為Kerberos協(xié)議引入非對稱加密體質(zhì),充分利用現(xiàn)有非對稱密鑰機制的特點解決上述Hadoop集群身份認證問題。
2.Kerberos改進及實現(xiàn)
在保證現(xiàn)有Kerberos認證框架前提下,本方案對Kerberos協(xié)議認證內(nèi)容做了改進性修正(具體流程參見圖5).首先,服務申請方在生成請求信息時摒棄了原有協(xié)議中采取的對稱加密方式,而是采用公鑰加密技術(shù)對傳輸信息進行安全級別更高的公鑰加密,并且加密信息中包含本次連接所使用的對稱加密密鑰;其次,在HDFS集群用戶認證信息發(fā)送的端與端之間引入數(shù)字簽名技術(shù),對所需傳輸內(nèi)容采取先簽名后傳輸策略;最后,鑒于公鑰加密技術(shù)的引進,修改后協(xié)議在認證信息方面只保留了基本的信息字段,舍棄了不再需要的IP地址等信息,做到了HDFS集群內(nèi)端與端之間傳遞認證信息精簡化。
改進后協(xié)議認證流程如下:
2.1 Client請求NameNode
認證過程中用到符號說明如下:
Client:服務的請求方
KDC:Key Distribute Center密鑰分發(fā)中心
2.2 Client請求DataNode服務過程
該部分認證同Client請求NameNode服務過程類似,限于篇幅不再累述.
3.結(jié)果分析
下面將分別從安全性與時間效率兩個方面對改進后的Kerberos協(xié)議在HDFS下身份認證過程進行分析.
3.1安全性分析
通過對傳輸信息的數(shù)據(jù)簽名確保了發(fā)送者的身份的可識別,通過對傳輸數(shù)據(jù)的公鑰加密確保了只有私鑰持有者可以解密得到正確的數(shù)據(jù),這一改進解決了原有認證機制的安全隱患,具體安全性分析如下:
1)相比較于改進前,改進后的認證協(xié)議對集群內(nèi)時間同步性要求降低.由于只有擁有私鑰的一方才可以解密使用公鑰加密的數(shù)據(jù)并且公鑰加密體制破解難度大,使得時間戳在認證協(xié)議中變?yōu)檩o助判斷票據(jù)有效性和防止重放攻擊的手段.
2)改進后的Kerberos協(xié)議引入公鑰加密體制,用戶各自本地化存儲私鑰,公鑰信息在集群內(nèi)獲得,使得KDC服務器無需實現(xiàn)集中存儲包含所有用戶密碼機密敏感信息.通過此改進將極大降低了KDC服務可能面臨的安全隱患,即使KDC服務器被攻破,攻擊者也無法獲取用戶的私鑰信息,無法冒充用戶身份取得服務。
3)通過引入公鑰加密,使得改進后認證過程杜絕了字典攻擊的發(fā)生。
4)在用戶、KDC服務器、NameNode和DataNode的認證信息發(fā)送、接收過程中都使用了公私鑰加密及私鑰簽名,基于私鑰的私有性,使得信息發(fā)送方的身份真實性得到了有效的證明,防止了抵賴.
3.2效率分析
實驗仿真
測試系統(tǒng)中使用一臺服務器作為獨立密鑰分發(fā)中心KDC,一臺服務器作為NameNode節(jié)點,三臺服務器為DataNode節(jié)點,三臺服務器作為Client節(jié)點.測試系統(tǒng)使用Hadoop-1.0.O版本搭建,各個組成部分所使用的軟硬件配置如表1:
為最大限度的減少機器本身性能對實驗數(shù)據(jù)的影響,現(xiàn)將改進前后的兩套系統(tǒng)分別部署到相應的機器上,依次驗證兩套系統(tǒng)在不同請求規(guī)模級別下用戶認證過程所需的平均時間值.現(xiàn)在分別對以下幾種規(guī)模性請求情況進行測試:3個認證請求、15個認證請求、30個認證請求、45個認證請求、60個認證請求、90個認證請求、105個認證請求、120個認證請求、135個認證請求。
注:為使實驗接近真實規(guī)模,在有限的三臺Cli.ent上采用了改變請求信息中IDc字段值的辦法模擬不同的申請者,已達到規(guī)模性認證請求情況.
下圖是認證協(xié)議改進前后兩種情況所對應的平均時間測試的對比結(jié)果:
通過圖6關(guān)于認證協(xié)議改進前與改進后的對比實驗結(jié)果可以得出:在該實驗環(huán)境下,隨著請求次數(shù)增加二者均呈近似線性增長趨勢,但改進后增長幅度要小于改進前.在請求低于120以下時改進后時間需求要大于改進前,但隨著請求高于120次改進后時間效率更占優(yōu)勢.總之,改進后更適用于大規(guī)模請求,更適合Hadoop集群環(huán)境下的身份認證請求過程。
4.結(jié)論
Hadoop經(jīng)歷了從無安全機制到引入Kerberos身份認證機制的過程,本文也正是在基于Kerberos協(xié)議的基礎(chǔ)上結(jié)合Hadoop集群本身的特點,開展了相關(guān)身份認證安全研究,首先,分析并指出了原有Kerberos協(xié)議中對稱密鑰機制在Hadoop集群環(huán)境下可能會遇到的時鐘同步、KDC安全、字典攻擊以及抵賴機制等相關(guān)安全問題;其次,針對相關(guān)問題提出基于公鑰加密體制的Kerberos協(xié)議改進策略;最后通過相關(guān)分析驗證了改進協(xié)議在解決上述問題的可行性,當然Hadoop面臨的是一系列的安全問題,認證只是其中的保證集群安全的起始部分,還包括訪問控制、數(shù)據(jù)存儲安全等安全問題,這些問題也將是后續(xù)需要研究并解決的問題。